exiftool_vendored 9.78.0 → 9.99.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of exiftool_vendored might be problematic. Click here for more details.

Files changed (1409) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Image-ExifTool-9.99/Changes +7164 -0
  3. data/bin/Image-ExifTool-9.99/MANIFEST +937 -0
  4. data/bin/Image-ExifTool-9.99/META.yml +27 -0
  5. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/Makefile.PL +0 -0
  6. data/bin/Image-ExifTool-9.99/README +233 -0
  7. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/exif2iptc.args +0 -0
  8. data/bin/Image-ExifTool-9.99/arg_files/exif2xmp.args +45 -0
  9. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/gps2xmp.args +0 -0
  10. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/iptc2exif.args +0 -0
  11. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/iptc2xmp.args +0 -0
  12. data/bin/Image-ExifTool-9.99/arg_files/iptcCore.args +224 -0
  13. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/pdf2xmp.args +0 -0
  14. data/bin/Image-ExifTool-9.99/arg_files/xmp2exif.args +46 -0
  15. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/xmp2gps.args +0 -0
  16. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/xmp2iptc.args +0 -0
  17. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/xmp2pdf.args +0 -0
  18. data/bin/Image-ExifTool-9.99/config_files/convert_regions.config +81 -0
  19. data/bin/Image-ExifTool-9.99/config_files/example.config +343 -0
  20. data/bin/Image-ExifTool-9.99/config_files/photoshop_paths.config +54 -0
  21. data/bin/Image-ExifTool-9.99/config_files/picasa_faces.config +369 -0
  22. data/bin/Image-ExifTool-9.99/exiftool +6245 -0
  23. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/fmt_files/gpx.fmt +0 -0
  24. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/fmt_files/gpx_wpt.fmt +0 -0
  25. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/fmt_files/kml.fmt +0 -0
  26. data/bin/Image-ExifTool-9.99/html/ExifTool.html +2067 -0
  27. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/MIE1.1-20070121.pdf +0 -0
  28. data/bin/Image-ExifTool-9.99/html/Shift.html +173 -0
  29. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/AFCP.html +0 -0
  30. data/bin/Image-ExifTool-9.99/html/TagNames/AIFF.html +146 -0
  31. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/APE.html +0 -0
  32. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/APP12.html +0 -0
  33. data/bin/Image-ExifTool-9.99/html/TagNames/ASF.html +1066 -0
  34. data/bin/Image-ExifTool-9.99/html/TagNames/Apple.html +74 -0
  35. data/bin/Image-ExifTool-9.99/html/TagNames/Audible.html +177 -0
  36. data/bin/Image-ExifTool-9.99/html/TagNames/BMP.html +110 -0
  37. data/bin/Image-ExifTool-9.99/html/TagNames/Canon.html +9318 -0
  38. data/bin/Image-ExifTool-9.99/html/TagNames/CanonCustom.html +2081 -0
  39. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/CanonRaw.html +0 -0
  40. data/bin/Image-ExifTool-9.99/html/TagNames/CanonVRD.html +1958 -0
  41. data/bin/Image-ExifTool-9.99/html/TagNames/Casio.html +1606 -0
  42. data/bin/Image-ExifTool-9.99/html/TagNames/Composite.html +704 -0
  43. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/DICOM.html +0 -0
  44. data/bin/Image-ExifTool-9.99/html/TagNames/DNG.html +289 -0
  45. data/bin/Image-ExifTool-9.99/html/TagNames/DPX.html +224 -0
  46. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/DV.html +0 -0
  47. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/DarwinCore.html +0 -0
  48. data/bin/Image-ExifTool-9.99/html/TagNames/DjVu.html +313 -0
  49. data/bin/Image-ExifTool-9.99/html/TagNames/EXE.html +697 -0
  50. data/bin/Image-ExifTool-9.99/html/TagNames/EXIF.html +3381 -0
  51. data/bin/Image-ExifTool-9.99/html/TagNames/Extra.html +437 -0
  52. data/bin/Image-ExifTool-9.99/html/TagNames/FLAC.html +183 -0
  53. data/bin/Image-ExifTool-9.99/html/TagNames/FLIR.html +1340 -0
  54. data/bin/Image-ExifTool-9.99/html/TagNames/Flash.html +419 -0
  55. data/bin/Image-ExifTool-9.99/html/TagNames/FlashPix.html +1465 -0
  56. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Font.html +0 -0
  57. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/FotoStation.html +0 -0
  58. data/bin/Image-ExifTool-9.99/html/TagNames/FujiFilm.html +813 -0
  59. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/GE.html +0 -0
  60. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/GIF.html +0 -0
  61. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/GIMP.html +0 -0
  62. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/GPS.html +0 -0
  63. data/bin/Image-ExifTool-9.99/html/TagNames/GeoTiff.html +2298 -0
  64. data/bin/Image-ExifTool-9.99/html/TagNames/H264.html +393 -0
  65. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/HP.html +0 -0
  66. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/HTML.html +0 -0
  67. data/bin/Image-ExifTool-9.99/html/TagNames/ICC_Profile.html +711 -0
  68. data/bin/Image-ExifTool-9.99/html/TagNames/ID3.html +1593 -0
  69. data/bin/Image-ExifTool-9.99/html/TagNames/IPTC.html +903 -0
  70. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/ITC.html +0 -0
  71. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/JFIF.html +0 -0
  72. data/bin/Image-ExifTool-9.99/html/TagNames/JPEG.html +602 -0
  73. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/JVC.html +0 -0
  74. data/bin/Image-ExifTool-9.99/html/TagNames/Jpeg2000.html +464 -0
  75. data/bin/Image-ExifTool-9.99/html/TagNames/Kodak.html +1891 -0
  76. data/bin/Image-ExifTool-9.99/html/TagNames/KyoceraRaw.html +92 -0
  77. data/bin/Image-ExifTool-9.99/html/TagNames/LNK.html +478 -0
  78. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Leaf.html +0 -0
  79. data/bin/Image-ExifTool-9.99/html/TagNames/Lytro.html +122 -0
  80. data/bin/Image-ExifTool-9.99/html/TagNames/M2TS.html +133 -0
  81. data/bin/Image-ExifTool-9.99/html/TagNames/MIE.html +1026 -0
  82. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/MIFF.html +0 -0
  83. data/bin/Image-ExifTool-9.99/html/TagNames/MNG.html +847 -0
  84. data/bin/Image-ExifTool-9.99/html/TagNames/MOI.html +60 -0
  85. data/bin/Image-ExifTool-9.99/html/TagNames/MPC.html +97 -0
  86. data/bin/Image-ExifTool-9.99/html/TagNames/MPEG.html +249 -0
  87. data/bin/Image-ExifTool-9.99/html/TagNames/MPF.html +199 -0
  88. data/bin/Image-ExifTool-9.99/html/TagNames/MWG.html +577 -0
  89. data/bin/Image-ExifTool-9.99/html/TagNames/MXF.html +6673 -0
  90. data/bin/Image-ExifTool-9.99/html/TagNames/Matroska.html +1069 -0
  91. data/bin/Image-ExifTool-9.99/html/TagNames/Microsoft.html +2073 -0
  92. data/bin/Image-ExifTool-9.99/html/TagNames/Minolta.html +2612 -0
  93. data/bin/Image-ExifTool-9.99/html/TagNames/MinoltaRaw.html +326 -0
  94. data/bin/Image-ExifTool-9.99/html/TagNames/Nikon.html +4814 -0
  95. data/bin/Image-ExifTool-9.99/html/TagNames/NikonCapture.html +799 -0
  96. data/bin/Image-ExifTool-9.99/html/TagNames/NikonCustom.html +5633 -0
  97. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Nintendo.html +0 -0
  98. data/bin/Image-ExifTool-9.99/html/TagNames/OOXML.html +280 -0
  99. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Ogg.html +0 -0
  100. data/bin/Image-ExifTool-9.99/html/TagNames/Olympus.html +3531 -0
  101. data/bin/Image-ExifTool-9.99/html/TagNames/OpenEXR.html +222 -0
  102. data/bin/Image-ExifTool-9.99/html/TagNames/PDF.html +745 -0
  103. data/bin/Image-ExifTool-9.99/html/TagNames/PGF.html +80 -0
  104. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/PICT.html +0 -0
  105. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/PLIST.html +0 -0
  106. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/PNG.html +0 -0
  107. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/PSP.html +0 -0
  108. data/bin/Image-ExifTool-9.99/html/TagNames/Palm.html +388 -0
  109. data/bin/Image-ExifTool-9.99/html/TagNames/Panasonic.html +1690 -0
  110. data/bin/Image-ExifTool-9.99/html/TagNames/PanasonicRaw.html +451 -0
  111. data/bin/Image-ExifTool-9.99/html/TagNames/Pentax.html +4655 -0
  112. data/bin/Image-ExifTool-9.99/html/TagNames/PhaseOne.html +253 -0
  113. data/bin/Image-ExifTool-9.99/html/TagNames/PhotoCD.html +402 -0
  114. data/bin/Image-ExifTool-9.99/html/TagNames/PhotoMechanic.html +196 -0
  115. data/bin/Image-ExifTool-9.99/html/TagNames/Photoshop.html +570 -0
  116. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/PostScript.html +0 -0
  117. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/PrintIM.html +0 -0
  118. data/bin/Image-ExifTool-9.99/html/TagNames/Qualcomm.html +4778 -0
  119. data/bin/Image-ExifTool-9.99/html/TagNames/QuickTime.html +6036 -0
  120. data/bin/Image-ExifTool-9.99/html/TagNames/RIFF.html +1314 -0
  121. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/RSRC.html +0 -0
  122. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/RTF.html +0 -0
  123. data/bin/Image-ExifTool-9.99/html/TagNames/Radiance.html +87 -0
  124. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Rawzor.html +0 -0
  125. data/bin/Image-ExifTool-9.99/html/TagNames/Real.html +780 -0
  126. data/bin/Image-ExifTool-9.99/html/TagNames/Reconyx.html +132 -0
  127. data/bin/Image-ExifTool-9.99/html/TagNames/Ricoh.html +800 -0
  128. data/bin/Image-ExifTool-9.99/html/TagNames/Samsung.html +604 -0
  129. data/bin/Image-ExifTool-9.99/html/TagNames/Sanyo.html +366 -0
  130. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Scalado.html +0 -0
  131. data/bin/Image-ExifTool-9.99/html/TagNames/Shortcuts.html +276 -0
  132. data/bin/Image-ExifTool-9.99/html/TagNames/Sigma.html +469 -0
  133. data/bin/Image-ExifTool-9.99/html/TagNames/SigmaRaw.html +438 -0
  134. data/bin/Image-ExifTool-9.99/html/TagNames/Sony.html +8640 -0
  135. data/bin/Image-ExifTool-9.99/html/TagNames/SonyIDC.html +267 -0
  136. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Stim.html +0 -0
  137. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Theora.html +0 -0
  138. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Torrent.html +0 -0
  139. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Unknown.html +0 -0
  140. data/bin/Image-ExifTool-9.99/html/TagNames/VCard.html +433 -0
  141. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Vorbis.html +0 -0
  142. data/bin/Image-ExifTool-9.99/html/TagNames/XMP.html +9175 -0
  143. data/bin/Image-ExifTool-9.99/html/TagNames/ZIP.html +205 -0
  144. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/iWork.html +0 -0
  145. data/bin/Image-ExifTool-9.99/html/TagNames/index.html +211 -0
  146. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/style.css +0 -0
  147. data/bin/Image-ExifTool-9.99/html/ancient_history.html +7608 -0
  148. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/canon_raw.html +0 -0
  149. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/commentary.html +0 -0
  150. data/bin/Image-ExifTool-9.99/html/config.html +355 -0
  151. data/bin/Image-ExifTool-9.99/html/data_members.html +279 -0
  152. data/bin/Image-ExifTool-9.99/html/exiftool_pod.html +2503 -0
  153. data/bin/Image-ExifTool-9.99/html/faq.html +1530 -0
  154. data/bin/Image-ExifTool-9.99/html/filename.html +352 -0
  155. data/bin/Image-ExifTool-9.99/html/geotag.html +654 -0
  156. data/bin/Image-ExifTool-9.99/html/history.html +488 -0
  157. data/bin/Image-ExifTool-9.99/html/htmldump.html +738 -0
  158. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/idiosyncracies.html +0 -0
  159. data/bin/Image-ExifTool-9.99/html/index.html +1330 -0
  160. data/bin/Image-ExifTool-9.99/html/install.html +251 -0
  161. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/metafiles.html +0 -0
  162. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/overview.png +0 -0
  163. data/bin/Image-ExifTool-9.99/html/standards.html +286 -0
  164. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/struct.html +0 -0
  165. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/style.css +0 -0
  166. data/bin/Image-ExifTool-9.99/html/under.html +128 -0
  167. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/verbose.html +0 -0
  168. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/writing.html +0 -0
  169. data/bin/Image-ExifTool-9.99/lib/File/RandomAccess.pm +378 -0
  170. data/bin/Image-ExifTool-9.99/lib/File/RandomAccess.pod +231 -0
  171. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool.pm +7498 -0
  172. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool.pod +2494 -0
  173. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/AES.pm +501 -0
  174. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/AFCP.pm +286 -0
  175. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/AIFF.pm +289 -0
  176. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/APE.pm +264 -0
  177. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/APP12.pm +322 -0
  178. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/ASF.pm +885 -0
  179. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Apple.pm +126 -0
  180. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Audible.pm +317 -0
  181. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/BMP.pm +179 -0
  182. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/BZZ.pm +472 -0
  183. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/BigTIFF.pm +282 -0
  184. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/BuildTagLookup.pm +2508 -0
  185. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Canon.pm +8457 -0
  186. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/CanonCustom.pm +2582 -0
  187. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/CanonRaw.pm +910 -0
  188. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/CanonVRD.pm +2228 -0
  189. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/CaptureOne.pm +235 -0
  190. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Casio.pm +2058 -0
  191. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Charset.pm +396 -0
  192. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Arabic.pm +0 -0
  193. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Baltic.pm +0 -0
  194. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Cyrillic.pm +0 -0
  195. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Greek.pm +0 -0
  196. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Hebrew.pm +0 -0
  197. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/JIS.pm +0 -0
  198. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Latin.pm +0 -0
  199. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Latin2.pm +0 -0
  200. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacArabic.pm +0 -0
  201. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacChineseCN.pm +0 -0
  202. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacChineseTW.pm +0 -0
  203. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacCroatian.pm +0 -0
  204. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacCyrillic.pm +0 -0
  205. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacGreek.pm +0 -0
  206. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacHebrew.pm +0 -0
  207. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacIceland.pm +0 -0
  208. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacJapanese.pm +0 -0
  209. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacKorean.pm +0 -0
  210. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacLatin2.pm +0 -0
  211. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacRSymbol.pm +0 -0
  212. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacRoman.pm +0 -0
  213. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacRomanian.pm +0 -0
  214. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacThai.pm +0 -0
  215. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacTurkish.pm +0 -0
  216. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/PDFDoc.pm +0 -0
  217. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/ShiftJIS.pm +0 -0
  218. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Symbol.pm +0 -0
  219. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Thai.pm +0 -0
  220. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Turkish.pm +0 -0
  221. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Vietnam.pm +0 -0
  222. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/DICOM.pm +3874 -0
  223. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/DNG.pm +835 -0
  224. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/DPX.pm +181 -0
  225. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/DV.pm +319 -0
  226. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/DarwinCore.pm +322 -0
  227. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/DjVu.pm +376 -0
  228. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/EXE.pm +1250 -0
  229. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Exif.pm +4672 -0
  230. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/FLAC.pm +297 -0
  231. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/FLIR.pm +1533 -0
  232. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Fixup.pm +354 -0
  233. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Flash.pm +755 -0
  234. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/FlashPix.pm +1935 -0
  235. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Font.pm +647 -0
  236. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/FotoStation.pm +261 -0
  237. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/FujiFilm.pm +1195 -0
  238. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/GE.pm +81 -0
  239. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/GIF.pm +542 -0
  240. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/GIMP.pm +258 -0
  241. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/GPS.pm +558 -0
  242. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/GeoTiff.pm +2263 -0
  243. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Geotag.pm +1219 -0
  244. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/H264.pm +1112 -0
  245. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/HP.pm +263 -0
  246. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/HTML.pm +576 -0
  247. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/HtmlDump.pm +895 -0
  248. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/ICC_Profile.pm +1000 -0
  249. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/ID3.pm +1569 -0
  250. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/IPTC.pm +1264 -0
  251. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/ITC.pm +215 -0
  252. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Import.pm +329 -0
  253. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/InDesign.pm +277 -0
  254. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/JPEG.pm +605 -0
  255. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/JPEGDigest.pm +2511 -0
  256. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/JVC.pm +130 -0
  257. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Jpeg2000.pm +873 -0
  258. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Kodak.pm +2096 -0
  259. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/KyoceraRaw.pm +173 -0
  260. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/LNK.pm +723 -0
  261. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/cs.pm +1588 -0
  262. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/de.pm +8692 -0
  263. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/en_ca.pm +848 -0
  264. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/en_gb.pm +863 -0
  265. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/es.pm +4019 -0
  266. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/fi.pm +2854 -0
  267. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/fr.pm +4758 -0
  268. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/it.pm +7918 -0
  269. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/ja.pm +5835 -0
  270. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/ko.pm +2330 -0
  271. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/nl.pm +3222 -0
  272. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/pl.pm +1276 -0
  273. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/ru.pm +768 -0
  274. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/sv.pm +638 -0
  275. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/tr.pm +544 -0
  276. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/zh_cn.pm +1330 -0
  277. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/zh_tw.pm +801 -0
  278. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Leaf.pm +516 -0
  279. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lytro.pm +217 -0
  280. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/M2TS.pm +725 -0
  281. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MIE.pm +2564 -0
  282. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MIEUnits.pod +377 -0
  283. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MIFF.pm +279 -0
  284. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MNG.pm +684 -0
  285. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MOI.pm +158 -0
  286. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MPC.pm +156 -0
  287. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MPEG.pm +736 -0
  288. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MPF.pm +292 -0
  289. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MWG.pm +753 -0
  290. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MXF.pm +3032 -0
  291. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MakerNotes.pm +1713 -0
  292. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Matroska.pm +892 -0
  293. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Microsoft.pm +893 -0
  294. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Minolta.pm +2950 -0
  295. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MinoltaRaw.pm +534 -0
  296. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Nikon.pm +6728 -0
  297. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/NikonCapture.pm +940 -0
  298. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/NikonCustom.pm +6331 -0
  299. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Nintendo.pm +128 -0
  300. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/OOXML.pm +409 -0
  301. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Ogg.pm +237 -0
  302. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Olympus.pm +3796 -0
  303. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/OpenEXR.pm +324 -0
  304. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PDF.pm +2328 -0
  305. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PGF.pm +143 -0
  306. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PICT.pm +1260 -0
  307. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PLIST.pm +453 -0
  308. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PNG.pm +1190 -0
  309. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PPM.pm +169 -0
  310. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PSP.pm +306 -0
  311. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Palm.pm +403 -0
  312. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Panasonic.pm +2366 -0
  313. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PanasonicRaw.pm +639 -0
  314. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Pentax.pm +5941 -0
  315. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PhaseOne.pm +551 -0
  316. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PhotoCD.pm +507 -0
  317. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PhotoMechanic.pm +256 -0
  318. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Photoshop.pm +650 -0
  319. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PostScript.pm +696 -0
  320. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PrintIM.pm +125 -0
  321. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Qualcomm.pm +1344 -0
  322. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/QuickTime.pm +6572 -0
  323. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/README +981 -0
  324. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/RIFF.pm +1478 -0
  325. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/RSRC.pm +241 -0
  326. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/RTF.pm +383 -0
  327. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Radiance.pm +144 -0
  328. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Rawzor.pm +189 -0
  329. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Real.pm +739 -0
  330. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Reconyx.pm +190 -0
  331. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Ricoh.pm +1121 -0
  332. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Samsung.pm +1168 -0
  333. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Sanyo.pm +440 -0
  334. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Scalado.pm +141 -0
  335. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Shift.pl +596 -0
  336. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Shortcuts.pm +335 -0
  337. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Sigma.pm +684 -0
  338. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/SigmaRaw.pm +668 -0
  339. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Sony.pm +9086 -0
  340. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/SonyIDC.pm +331 -0
  341. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Stim.pm +196 -0
  342. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/TagInfoXML.pm +826 -0
  343. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/TagLookup.pm +8931 -0
  344. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/TagNames.pod +29124 -0
  345. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Theora.pm +145 -0
  346. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Torrent.pm +317 -0
  347. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Unknown.pm +66 -0
  348. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/VCard.pm +405 -0
  349. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Vorbis.pm +238 -0
  350. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WriteCanonRaw.pl +637 -0
  351. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WriteExif.pl +3743 -0
  352. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WriteIPTC.pl +702 -0
  353. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WritePDF.pl +768 -0
  354. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WritePNG.pl +390 -0
  355. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WritePhotoshop.pl +266 -0
  356. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WritePostScript.pl +772 -0
  357. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WriteQuickTime.pl +358 -0
  358. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WriteXMP.pl +1367 -0
  359. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Writer.pl +6164 -0
  360. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/XMP.pm +4034 -0
  361. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/XMP2.pl +1579 -0
  362. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/XMPStruct.pl +826 -0
  363. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/ZIP.pm +667 -0
  364. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/iWork.pm +223 -0
  365. data/bin/Image-ExifTool-9.99/perl-Image-ExifTool.spec +112 -0
  366. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/AFCP.t +0 -0
  367. data/bin/Image-ExifTool-9.99/t/AFCP_2.out +39 -0
  368. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/AFCP_3.out +0 -0
  369. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/AIFF.t +0 -0
  370. data/bin/Image-ExifTool-9.99/t/AIFF_2.out +33 -0
  371. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/APE.t +0 -0
  372. data/bin/Image-ExifTool-9.99/t/APE_2.out +29 -0
  373. data/bin/Image-ExifTool-9.99/t/APE_3.out +58 -0
  374. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ASF.t +0 -0
  375. data/bin/Image-ExifTool-9.99/t/ASF_2.out +56 -0
  376. data/bin/Image-ExifTool-9.99/t/Audible.t +28 -0
  377. data/bin/Image-ExifTool-9.99/t/Audible_2.out +40 -0
  378. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/BMP.t +0 -0
  379. data/bin/Image-ExifTool-9.99/t/BMP_2.out +23 -0
  380. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/BigTIFF.t +0 -0
  381. data/bin/Image-ExifTool-9.99/t/BigTIFF_2.out +21 -0
  382. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Canon.t +0 -0
  383. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/CanonRaw.t +0 -0
  384. data/bin/Image-ExifTool-9.99/t/CanonRaw_2.out +169 -0
  385. data/bin/Image-ExifTool-9.99/t/CanonRaw_4.out +220 -0
  386. data/bin/Image-ExifTool-9.99/t/CanonRaw_5.out +209 -0
  387. data/bin/Image-ExifTool-9.99/t/CanonRaw_6.out +233 -0
  388. data/bin/Image-ExifTool-9.99/t/CanonRaw_7.out +250 -0
  389. data/bin/Image-ExifTool-9.99/t/CanonVRD.t +220 -0
  390. data/bin/Image-ExifTool-9.99/t/CanonVRD_11.out +121 -0
  391. data/bin/Image-ExifTool-9.99/t/CanonVRD_12.out +13 -0
  392. data/bin/Image-ExifTool-9.99/t/CanonVRD_13.out +102 -0
  393. data/bin/Image-ExifTool-9.99/t/CanonVRD_14.out +101 -0
  394. data/bin/Image-ExifTool-9.99/t/CanonVRD_15.out +5 -0
  395. data/bin/Image-ExifTool-9.99/t/CanonVRD_16.out +5 -0
  396. data/bin/Image-ExifTool-9.99/t/CanonVRD_17.out +5 -0
  397. data/bin/Image-ExifTool-9.99/t/CanonVRD_18.out +5 -0
  398. data/bin/Image-ExifTool-9.99/t/CanonVRD_19.out +5 -0
  399. data/bin/Image-ExifTool-9.99/t/CanonVRD_2.out +119 -0
  400. data/bin/Image-ExifTool-9.99/t/CanonVRD_20.out +5 -0
  401. data/bin/Image-ExifTool-9.99/t/CanonVRD_21.out +1 -0
  402. data/bin/Image-ExifTool-9.99/t/CanonVRD_3.out +119 -0
  403. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/CanonVRD_4.out +0 -0
  404. data/bin/Image-ExifTool-9.99/t/CanonVRD_5.out +2 -0
  405. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/CanonVRD_6.out +0 -0
  406. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/CanonVRD_7.out +0 -0
  407. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/CanonVRD_8.out +0 -0
  408. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/CanonVRD_9.out +0 -0
  409. data/bin/Image-ExifTool-9.99/t/Canon_2.out +356 -0
  410. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Canon_3.out +0 -0
  411. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Casio.t +0 -0
  412. data/bin/Image-ExifTool-9.99/t/Casio_2.out +72 -0
  413. data/bin/Image-ExifTool-9.99/t/Casio_3.out +102 -0
  414. data/bin/Image-ExifTool-9.99/t/Casio_4.out +28 -0
  415. data/bin/Image-ExifTool-9.99/t/Casio_5.out +80 -0
  416. data/bin/Image-ExifTool-9.99/t/Casio_6.out +117 -0
  417. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/DICOM.t +0 -0
  418. data/bin/Image-ExifTool-9.99/t/DICOM_2.out +109 -0
  419. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/DNG.t +0 -0
  420. data/bin/Image-ExifTool-9.99/t/DNG_2.out +328 -0
  421. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/DNG_3.out +0 -0
  422. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/DPX.t +0 -0
  423. data/bin/Image-ExifTool-9.99/t/DPX_2.out +39 -0
  424. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/DV.t +0 -0
  425. data/bin/Image-ExifTool-9.99/t/DV_2.out +26 -0
  426. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/DjVu.t +0 -0
  427. data/bin/Image-ExifTool-9.99/t/DjVu_2.out +46 -0
  428. data/bin/Image-ExifTool-9.99/t/EXE.t +31 -0
  429. data/bin/Image-ExifTool-9.99/t/EXE_2.out +41 -0
  430. data/bin/Image-ExifTool-9.99/t/EXE_3.out +16 -0
  431. data/bin/Image-ExifTool-9.99/t/EXE_4.out +15 -0
  432. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool.t +0 -0
  433. data/bin/Image-ExifTool-9.99/t/ExifTool_16.out +184 -0
  434. data/bin/Image-ExifTool-9.99/t/ExifTool_17.out +598 -0
  435. data/bin/Image-ExifTool-9.99/t/ExifTool_2.out +418 -0
  436. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_20.out +0 -0
  437. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_21.out +0 -0
  438. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_22.out +0 -0
  439. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_23.out +0 -0
  440. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_24.out +0 -0
  441. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_25.out +0 -0
  442. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_26.out +0 -0
  443. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_27.out +0 -0
  444. data/bin/Image-ExifTool-9.99/t/ExifTool_28.out +11 -0
  445. data/bin/Image-ExifTool-9.99/t/ExifTool_3.out +89 -0
  446. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_4.out +0 -0
  447. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_5.out +0 -0
  448. data/bin/Image-ExifTool-9.99/t/ExifTool_6.out +71 -0
  449. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_7.out +0 -0
  450. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_8.out +0 -0
  451. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_9.out +0 -0
  452. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FLAC.t +0 -0
  453. data/bin/Image-ExifTool-9.99/t/FLAC_2.out +26 -0
  454. data/bin/Image-ExifTool-9.99/t/FLAC_3.out +20 -0
  455. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FLIR.t +0 -0
  456. data/bin/Image-ExifTool-9.99/t/FLIR_2.out +112 -0
  457. data/bin/Image-ExifTool-9.99/t/FLIR_3.out +49 -0
  458. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Flash.t +0 -0
  459. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FlashPix.t +0 -0
  460. data/bin/Image-ExifTool-9.99/t/FlashPix_2.out +49 -0
  461. data/bin/Image-ExifTool-9.99/t/Flash_2.out +22 -0
  462. data/bin/Image-ExifTool-9.99/t/Flash_3.out +55 -0
  463. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Font.t +0 -0
  464. data/bin/Image-ExifTool-9.99/t/Font_2.out +24 -0
  465. data/bin/Image-ExifTool-9.99/t/Font_3.out +36 -0
  466. data/bin/Image-ExifTool-9.99/t/Font_4.out +27 -0
  467. data/bin/Image-ExifTool-9.99/t/Font_5.out +27 -0
  468. data/bin/Image-ExifTool-9.99/t/Font_6.out +37 -0
  469. data/bin/Image-ExifTool-9.99/t/Font_7.out +37 -0
  470. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FotoStation.t +0 -0
  471. data/bin/Image-ExifTool-9.99/t/FotoStation_2.out +41 -0
  472. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FotoStation_3.out +0 -0
  473. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FujiFilm.t +0 -0
  474. data/bin/Image-ExifTool-9.99/t/FujiFilm_2.out +89 -0
  475. data/bin/Image-ExifTool-9.99/t/FujiFilm_3.out +90 -0
  476. data/bin/Image-ExifTool-9.99/t/FujiFilm_4.out +141 -0
  477. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FujiFilm_5.out +0 -0
  478. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/GE.t +0 -0
  479. data/bin/Image-ExifTool-9.99/t/GE_2.out +86 -0
  480. data/bin/Image-ExifTool-9.99/t/GE_3.out +86 -0
  481. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/GIF.t +0 -0
  482. data/bin/Image-ExifTool-9.99/t/GIF_2.out +42 -0
  483. data/bin/Image-ExifTool-9.99/t/GIF_3.out +43 -0
  484. data/bin/Image-ExifTool-9.99/t/GIF_4.out +18 -0
  485. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/GIMP.t +0 -0
  486. data/bin/Image-ExifTool-9.99/t/GIMP_2.out +65 -0
  487. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/GPS.t +0 -0
  488. data/bin/Image-ExifTool-9.99/t/GPS_2.out +96 -0
  489. data/bin/Image-ExifTool-9.99/t/GPS_3.out +98 -0
  490. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/GeoTiff.t +0 -0
  491. data/bin/Image-ExifTool-9.99/t/GeoTiff_2.out +38 -0
  492. data/bin/Image-ExifTool-9.99/t/GeoTiff_3.out +38 -0
  493. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/GeoTiff_4.out +0 -0
  494. data/bin/Image-ExifTool-9.99/t/Geotag.t +172 -0
  495. data/bin/Image-ExifTool-9.99/t/Geotag_10.out +15 -0
  496. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_2.out +0 -0
  497. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_3.out +0 -0
  498. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_5.out +0 -0
  499. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_6.out +0 -0
  500. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_7.out +0 -0
  501. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_8.out +0 -0
  502. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_9.out +0 -0
  503. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/HTML.t +0 -0
  504. data/bin/Image-ExifTool-9.99/t/HTML_2.out +69 -0
  505. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/IPTC.t +0 -0
  506. data/bin/Image-ExifTool-9.99/t/IPTC_2.out +60 -0
  507. data/bin/Image-ExifTool-9.99/t/IPTC_4.out +58 -0
  508. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/IPTC_5.out +0 -0
  509. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/IPTC_6.out +0 -0
  510. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/IPTC_7.out +0 -0
  511. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/IPTC_8.out +0 -0
  512. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ITC.t +0 -0
  513. data/bin/Image-ExifTool-9.99/t/ITC_2.out +21 -0
  514. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/InDesign.t +0 -0
  515. data/bin/Image-ExifTool-9.99/t/InDesign_2.out +20 -0
  516. data/bin/Image-ExifTool-9.99/t/InDesign_3.out +22 -0
  517. data/bin/Image-ExifTool-9.99/t/InDesign_4.out +12 -0
  518. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/JVC.t +0 -0
  519. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/JVC_2.out +0 -0
  520. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/JVC_3.out +0 -0
  521. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Jpeg2000.t +0 -0
  522. data/bin/Image-ExifTool-9.99/t/Jpeg2000_2.out +65 -0
  523. data/bin/Image-ExifTool-9.99/t/Jpeg2000_3.out +53 -0
  524. data/bin/Image-ExifTool-9.99/t/Jpeg2000_4.out +17 -0
  525. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Kodak.t +0 -0
  526. data/bin/Image-ExifTool-9.99/t/Kodak_2.out +111 -0
  527. data/bin/Image-ExifTool-9.99/t/Kodak_3.out +121 -0
  528. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/KyoceraRaw.t +0 -0
  529. data/bin/Image-ExifTool-9.99/t/KyoceraRaw_2.out +28 -0
  530. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/LNK.t +0 -0
  531. data/bin/Image-ExifTool-9.99/t/LNK_2.out +46 -0
  532. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang.t +0 -0
  533. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_1.out +0 -0
  534. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_10.out +0 -0
  535. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_11.out +0 -0
  536. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_12.out +0 -0
  537. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_13.out +0 -0
  538. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_14.out +0 -0
  539. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_15.out +0 -0
  540. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_16.out +0 -0
  541. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_17.out +0 -0
  542. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_18.out +0 -0
  543. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_2.out +0 -0
  544. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_3.out +0 -0
  545. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_4.out +0 -0
  546. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_5.out +0 -0
  547. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_6.out +0 -0
  548. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_7.out +0 -0
  549. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_8.out +0 -0
  550. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_9.out +0 -0
  551. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lytro.t +0 -0
  552. data/bin/Image-ExifTool-9.99/t/Lytro_2.out +109 -0
  553. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/M2TS.t +0 -0
  554. data/bin/Image-ExifTool-9.99/t/M2TS_2.out +29 -0
  555. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MIE.t +0 -0
  556. data/bin/Image-ExifTool-9.99/t/MIE_2.out +69 -0
  557. data/bin/Image-ExifTool-9.99/t/MIE_3.out +136 -0
  558. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MIE_5.out +0 -0
  559. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MIE_6.out +0 -0
  560. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MIFF.t +0 -0
  561. data/bin/Image-ExifTool-9.99/t/MIFF_2.out +110 -0
  562. data/bin/Image-ExifTool-9.99/t/MOI.t +27 -0
  563. data/bin/Image-ExifTool-9.99/t/MOI_2.out +11 -0
  564. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MP3.t +0 -0
  565. data/bin/Image-ExifTool-9.99/t/MP3_2.out +46 -0
  566. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MWG.t +0 -0
  567. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MWG_2.out +0 -0
  568. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MWG_3.out +0 -0
  569. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MWG_4.out +0 -0
  570. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MWG_5.out +0 -0
  571. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MWG_6.out +0 -0
  572. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MXF.t +0 -0
  573. data/bin/Image-ExifTool-9.99/t/MXF_2.out +79 -0
  574. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Matroska.t +0 -0
  575. data/bin/Image-ExifTool-9.99/t/Matroska_2.out +66 -0
  576. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Minolta.t +0 -0
  577. data/bin/Image-ExifTool-9.99/t/Minolta_2.out +135 -0
  578. data/bin/Image-ExifTool-9.99/t/Minolta_3.out +148 -0
  579. data/bin/Image-ExifTool-9.99/t/Minolta_4.out +150 -0
  580. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Nikon.t +0 -0
  581. data/bin/Image-ExifTool-9.99/t/Nikon_2.out +84 -0
  582. data/bin/Image-ExifTool-9.99/t/Nikon_3.out +100 -0
  583. data/bin/Image-ExifTool-9.99/t/Nikon_4.out +176 -0
  584. data/bin/Image-ExifTool-9.99/t/Nikon_5.out +169 -0
  585. data/bin/Image-ExifTool-9.99/t/Nikon_7.out +261 -0
  586. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Nikon_8.out +0 -0
  587. data/bin/Image-ExifTool-9.99/t/Olympus.t +94 -0
  588. data/bin/Image-ExifTool-9.99/t/Olympus_2.out +81 -0
  589. data/bin/Image-ExifTool-9.99/t/Olympus_3.out +83 -0
  590. data/bin/Image-ExifTool-9.99/t/Olympus_4.out +194 -0
  591. data/bin/Image-ExifTool-9.99/t/Olympus_5.out +266 -0
  592. data/bin/Image-ExifTool-9.99/t/Olympus_6.out +153 -0
  593. data/bin/Image-ExifTool-9.99/t/Olympus_7.out +483 -0
  594. data/bin/Image-ExifTool-9.99/t/Olympus_8.out +15 -0
  595. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/OpenEXR.t +0 -0
  596. data/bin/Image-ExifTool-9.99/t/OpenEXR_2.out +25 -0
  597. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF.t +0 -0
  598. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_10.out +0 -0
  599. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_11.out +0 -0
  600. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_12.out +0 -0
  601. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_14.out +0 -0
  602. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_15.out +0 -0
  603. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_16.out +0 -0
  604. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_17.out +0 -0
  605. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_18.out +0 -0
  606. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_19.out +0 -0
  607. data/bin/Image-ExifTool-9.99/t/PDF_2.out +118 -0
  608. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_20.out +0 -0
  609. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_22.out +0 -0
  610. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_4.out +0 -0
  611. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_5.out +0 -0
  612. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_6.out +0 -0
  613. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_7.out +0 -0
  614. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_8.out +0 -0
  615. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_9.out +0 -0
  616. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PGF.t +0 -0
  617. data/bin/Image-ExifTool-9.99/t/PGF_2.out +34 -0
  618. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PICT.t +0 -0
  619. data/bin/Image-ExifTool-9.99/t/PICT_2.out +17 -0
  620. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PLIST.t +0 -0
  621. data/bin/Image-ExifTool-9.99/t/PLIST_2.out +21 -0
  622. data/bin/Image-ExifTool-9.99/t/PLIST_3.out +21 -0
  623. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PNG.t +0 -0
  624. data/bin/Image-ExifTool-9.99/t/PNG_2.out +24 -0
  625. data/bin/Image-ExifTool-9.99/t/PNG_3.out +123 -0
  626. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PNG_4.out +0 -0
  627. data/bin/Image-ExifTool-9.99/t/PNG_5.out +18 -0
  628. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PPM.t +0 -0
  629. data/bin/Image-ExifTool-9.99/t/PPM_2.out +17 -0
  630. data/bin/Image-ExifTool-9.99/t/PPM_3.out +11 -0
  631. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PSP.t +0 -0
  632. data/bin/Image-ExifTool-9.99/t/PSP_2.out +34 -0
  633. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Palm.t +0 -0
  634. data/bin/Image-ExifTool-9.99/t/Palm_2.out +32 -0
  635. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Panasonic.t +0 -0
  636. data/bin/Image-ExifTool-9.99/t/Panasonic_2.out +101 -0
  637. data/bin/Image-ExifTool-9.99/t/Panasonic_3.out +121 -0
  638. data/bin/Image-ExifTool-9.99/t/Panasonic_4.out +206 -0
  639. data/bin/Image-ExifTool-9.99/t/Panasonic_5.out +244 -0
  640. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Pentax.t +0 -0
  641. data/bin/Image-ExifTool-9.99/t/Pentax_2.out +225 -0
  642. data/bin/Image-ExifTool-9.99/t/Pentax_3.out +266 -0
  643. data/bin/Image-ExifTool-9.99/t/Pentax_4.out +131 -0
  644. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PhotoCD.t +0 -0
  645. data/bin/Image-ExifTool-9.99/t/PhotoCD_2.out +37 -0
  646. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PhotoMechanic.t +0 -0
  647. data/bin/Image-ExifTool-9.99/t/PhotoMechanic_2.out +83 -0
  648. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PhotoMechanic_3.out +0 -0
  649. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Photoshop.t +0 -0
  650. data/bin/Image-ExifTool-9.99/t/Photoshop_2.out +98 -0
  651. data/bin/Image-ExifTool-9.99/t/Photoshop_3.out +110 -0
  652. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PostScript.t +0 -0
  653. data/bin/Image-ExifTool-9.99/t/PostScript_2.out +66 -0
  654. data/bin/Image-ExifTool-9.99/t/PostScript_3.out +134 -0
  655. data/bin/Image-ExifTool-9.99/t/QuickTime.t +54 -0
  656. data/bin/Image-ExifTool-9.99/t/QuickTime_2.out +133 -0
  657. data/bin/Image-ExifTool-9.99/t/QuickTime_3.out +73 -0
  658. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/QuickTime_4.out +0 -0
  659. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/QuickTime_5.out +0 -0
  660. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/RIFF.t +0 -0
  661. data/bin/Image-ExifTool-9.99/t/RIFF_2.out +25 -0
  662. data/bin/Image-ExifTool-9.99/t/RIFF_3.out +54 -0
  663. data/bin/Image-ExifTool-9.99/t/RIFF_4.out +18 -0
  664. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/RTF.t +0 -0
  665. data/bin/Image-ExifTool-9.99/t/RTF_2.out +21 -0
  666. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Radiance.t +0 -0
  667. data/bin/Image-ExifTool-9.99/t/Radiance_2.out +24 -0
  668. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Real.t +0 -0
  669. data/bin/Image-ExifTool-9.99/t/Real_2.out +69 -0
  670. data/bin/Image-ExifTool-9.99/t/Real_3.out +19 -0
  671. data/bin/Image-ExifTool-9.99/t/Real_4.out +12 -0
  672. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Ricoh.t +0 -0
  673. data/bin/Image-ExifTool-9.99/t/Ricoh_2.out +72 -0
  674. data/bin/Image-ExifTool-9.99/t/Ricoh_3.out +100 -0
  675. data/bin/Image-ExifTool-9.99/t/Ricoh_4.out +114 -0
  676. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Sanyo.t +0 -0
  677. data/bin/Image-ExifTool-9.99/t/Sanyo_2.out +103 -0
  678. data/bin/Image-ExifTool-9.99/t/Sanyo_3.out +113 -0
  679. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Sigma.t +0 -0
  680. data/bin/Image-ExifTool-9.99/t/Sigma_2.out +93 -0
  681. data/bin/Image-ExifTool-9.99/t/Sigma_3.out +96 -0
  682. data/bin/Image-ExifTool-9.99/t/Sigma_4.out +65 -0
  683. data/bin/Image-ExifTool-9.99/t/Sigma_5.out +194 -0
  684. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Sony.t +0 -0
  685. data/bin/Image-ExifTool-9.99/t/Sony_2.out +86 -0
  686. data/bin/Image-ExifTool-9.99/t/Sony_3.out +87 -0
  687. data/bin/Image-ExifTool-9.99/t/Sony_5.out +34 -0
  688. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/TestLib.pm +0 -0
  689. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Torrent.t +0 -0
  690. data/bin/Image-ExifTool-9.99/t/Torrent_2.out +32 -0
  691. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Unknown.t +0 -0
  692. data/bin/Image-ExifTool-9.99/t/Unknown_2.out +92 -0
  693. data/bin/Image-ExifTool-9.99/t/Unknown_3.out +92 -0
  694. data/bin/Image-ExifTool-9.99/t/VCard.t +31 -0
  695. data/bin/Image-ExifTool-9.99/t/VCard_2.out +54 -0
  696. data/bin/Image-ExifTool-9.99/t/VCard_3.out +88 -0
  697. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Vorbis.t +0 -0
  698. data/bin/Image-ExifTool-9.99/t/Vorbis_2.out +29 -0
  699. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer.t +0 -0
  700. data/bin/Image-ExifTool-9.99/t/Writer_10.out +246 -0
  701. data/bin/Image-ExifTool-9.99/t/Writer_11.out +39 -0
  702. data/bin/Image-ExifTool-9.99/t/Writer_13.out +165 -0
  703. data/bin/Image-ExifTool-9.99/t/Writer_14.out +69 -0
  704. data/bin/Image-ExifTool-9.99/t/Writer_15.out +175 -0
  705. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_16.out +0 -0
  706. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_17.out +0 -0
  707. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_18.out +0 -0
  708. data/bin/Image-ExifTool-9.99/t/Writer_19.out +36 -0
  709. data/bin/Image-ExifTool-9.99/t/Writer_2.out +172 -0
  710. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_22.out +0 -0
  711. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_24.out +0 -0
  712. data/bin/Image-ExifTool-9.99/t/Writer_25.out +40 -0
  713. data/bin/Image-ExifTool-9.99/t/Writer_26.out +34 -0
  714. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_27.out +0 -0
  715. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_28.out +0 -0
  716. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_29.out +0 -0
  717. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_30.out +0 -0
  718. data/bin/Image-ExifTool-9.99/t/Writer_31.out +99 -0
  719. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_32.out +0 -0
  720. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_33.out +0 -0
  721. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_34.out +0 -0
  722. data/bin/Image-ExifTool-9.99/t/Writer_35.out +188 -0
  723. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_36.out +0 -0
  724. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_37.out +0 -0
  725. data/bin/Image-ExifTool-9.99/t/Writer_38.out +63 -0
  726. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_39.out +0 -0
  727. data/bin/Image-ExifTool-9.99/t/Writer_4.out +87 -0
  728. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_40.out +0 -0
  729. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_41.out +0 -0
  730. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_42.out +0 -0
  731. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_43.out +0 -0
  732. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_44.out +0 -0
  733. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_45.out +0 -0
  734. data/bin/Image-ExifTool-9.99/t/Writer_46.out +105 -0
  735. data/bin/Image-ExifTool-9.99/t/Writer_47.out +57 -0
  736. data/bin/Image-ExifTool-9.99/t/Writer_48.out +31 -0
  737. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_50.out +0 -0
  738. data/bin/Image-ExifTool-9.99/t/Writer_51.out +405 -0
  739. data/bin/Image-ExifTool-9.99/t/Writer_52.out +23 -0
  740. data/bin/Image-ExifTool-9.99/t/Writer_53.out +35 -0
  741. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_54.out +0 -0
  742. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_55.out +0 -0
  743. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_56.out +0 -0
  744. data/bin/Image-ExifTool-9.99/t/Writer_6.out +186 -0
  745. data/bin/Image-ExifTool-9.99/t/Writer_7.out +151 -0
  746. data/bin/Image-ExifTool-9.99/t/Writer_9.out +242 -0
  747. data/bin/Image-ExifTool-9.99/t/XMP.t +557 -0
  748. data/bin/Image-ExifTool-9.99/t/XMP_10.out +37 -0
  749. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_11.out +0 -0
  750. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_12.out +0 -0
  751. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_13.out +0 -0
  752. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_14.out +0 -0
  753. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_15.out +0 -0
  754. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_16.out +0 -0
  755. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_17.out +0 -0
  756. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_18.out +0 -0
  757. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_19.out +0 -0
  758. data/bin/Image-ExifTool-9.99/t/XMP_2.out +140 -0
  759. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_20.out +0 -0
  760. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_21.out +0 -0
  761. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_22.out +0 -0
  762. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_23.out +0 -0
  763. data/bin/Image-ExifTool-9.99/t/XMP_24.out +32 -0
  764. data/bin/Image-ExifTool-9.99/t/XMP_25.out +28 -0
  765. data/bin/Image-ExifTool-9.99/t/XMP_26.out +51 -0
  766. data/bin/Image-ExifTool-9.99/t/XMP_27.out +95 -0
  767. data/bin/Image-ExifTool-9.99/t/XMP_28.out +46 -0
  768. data/bin/Image-ExifTool-9.99/t/XMP_29.out +26 -0
  769. data/bin/Image-ExifTool-9.99/t/XMP_3.out +138 -0
  770. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_30.out +0 -0
  771. data/bin/Image-ExifTool-9.99/t/XMP_31.out +20 -0
  772. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_32.out +0 -0
  773. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_34.out +0 -0
  774. data/bin/Image-ExifTool-9.99/t/XMP_36.out +19 -0
  775. data/bin/Image-ExifTool-9.99/t/XMP_37.out +36 -0
  776. data/bin/Image-ExifTool-9.99/t/XMP_39.out +45 -0
  777. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_40.out +0 -0
  778. data/bin/Image-ExifTool-9.99/t/XMP_41.out +181 -0
  779. data/bin/Image-ExifTool-9.99/t/XMP_42.out +8 -0
  780. data/bin/Image-ExifTool-9.99/t/XMP_43.out +6 -0
  781. data/bin/Image-ExifTool-9.99/t/XMP_44.out +35 -0
  782. data/bin/Image-ExifTool-9.99/t/XMP_5.out +30 -0
  783. data/bin/Image-ExifTool-9.99/t/XMP_6.out +89 -0
  784. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_7.out +0 -0
  785. data/bin/Image-ExifTool-9.99/t/XMP_8.out +19 -0
  786. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_9.out +0 -0
  787. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ZIP.t +0 -0
  788. data/bin/Image-ExifTool-9.99/t/ZIP_2.out +19 -0
  789. data/bin/Image-ExifTool-9.99/t/ZIP_3.out +18 -0
  790. data/bin/Image-ExifTool-9.99/t/ZIP_4.out +214 -0
  791. data/bin/Image-ExifTool-9.99/t/ZIP_5.out +136 -0
  792. data/bin/Image-ExifTool-9.99/t/ZIP_6.out +50 -0
  793. data/bin/Image-ExifTool-9.99/t/ZIP_7.out +29 -0
  794. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/AFCP.jpg +0 -0
  795. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/AIFF.aif +0 -0
  796. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/APE.ape +0 -0
  797. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/APE.mpc +0 -0
  798. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ASF.wmv +0 -0
  799. data/bin/Image-ExifTool-9.99/t/images/Audible.aa +0 -0
  800. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/BMP.bmp +0 -0
  801. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/BigTIFF.btf +0 -0
  802. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Canon.jpg +0 -0
  803. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Canon1DmkIII.jpg +0 -0
  804. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/CanonRaw.cr2 +0 -0
  805. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/CanonRaw.crw +0 -0
  806. data/bin/Image-ExifTool-9.99/t/images/CanonVRD.dr4 +0 -0
  807. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/CanonVRD.vrd +0 -0
  808. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/CaptureOne.eip +0 -0
  809. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Casio.jpg +0 -0
  810. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Casio2.jpg +0 -0
  811. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/CasioQVCI.jpg +0 -0
  812. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/DICOM.dcm +0 -0
  813. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/DNG.dng +0 -0
  814. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/DPX.dpx +0 -0
  815. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/DV.dv +0 -0
  816. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/DjVu.djvu +0 -0
  817. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/EXE.elf +0 -0
  818. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/EXE.exe +0 -0
  819. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/EXE.macho +0 -0
  820. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ExifTool.jpg +0 -0
  821. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ExifTool.tif +0 -0
  822. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ExtendedXMP.jpg +0 -0
  823. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FLAC.flac +0 -0
  824. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FLAC.ogg +0 -0
  825. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FLIR.fpf +0 -0
  826. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FLIR.jpg +0 -0
  827. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Flash.flv +0 -0
  828. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Flash.swf +0 -0
  829. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FlashPix.ppt +0 -0
  830. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Font.afm +0 -0
  831. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Font.dfont +0 -0
  832. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Font.pfa +0 -0
  833. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Font.pfb +0 -0
  834. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Font.pfm +0 -0
  835. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Font.ttf +0 -0
  836. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FotoStation.jpg +0 -0
  837. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FujiFilm.jpg +0 -0
  838. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FujiFilm.raf +0 -0
  839. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/GE.jpg +0 -0
  840. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/GIF.gif +0 -0
  841. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/GIMP.xcf +0 -0
  842. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/GPS.jpg +0 -0
  843. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/GeoTiff.tif +0 -0
  844. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Geotag.gpx +0 -0
  845. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Geotag.igc +0 -0
  846. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Geotag.kml +0 -0
  847. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Geotag.log +0 -0
  848. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Geotag.xml +0 -0
  849. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Geotag2.log +0 -0
  850. data/bin/Image-ExifTool-9.99/t/images/Geotag3.log +7 -0
  851. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/HTML.html +0 -0
  852. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/IPTC.jpg +0 -0
  853. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ITC.itc +0 -0
  854. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/InDesign.indd +0 -0
  855. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/JVC.jpg +0 -0
  856. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/JVC2.jpg +0 -0
  857. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Jpeg2000.j2c +0 -0
  858. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Jpeg2000.jp2 +0 -0
  859. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Kodak.jpg +0 -0
  860. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/KyoceraRaw.raw +0 -0
  861. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/LNK.lnk +0 -0
  862. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Lytro.lfp +0 -0
  863. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/M2TS.mts +0 -0
  864. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/MIE.mie +0 -0
  865. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/MIFF.miff +0 -0
  866. data/bin/Image-ExifTool-9.99/t/images/MOI.moi +0 -0
  867. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/MP3.mp3 +0 -0
  868. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/MWG.jpg +0 -0
  869. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/MXF.mxf +0 -0
  870. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Matroska.mkv +0 -0
  871. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Minolta.jpg +0 -0
  872. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Minolta.mrw +0 -0
  873. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Nikon.jpg +0 -0
  874. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Nikon.nef +0 -0
  875. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/NikonD2Hs.jpg +0 -0
  876. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/NikonD70.jpg +0 -0
  877. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/OOXML.docx +0 -0
  878. data/bin/Image-ExifTool-9.99/t/images/Olympus.dss +0 -0
  879. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Olympus.jpg +0 -0
  880. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Olympus2.jpg +0 -0
  881. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/OlympusE1.jpg +0 -0
  882. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/OpenDoc.ods +0 -0
  883. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/OpenEXR.exr +0 -0
  884. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PDF.pdf +0 -0
  885. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PDF2.pdf +0 -0
  886. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PGF.pgf +0 -0
  887. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PICT.pict +0 -0
  888. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PLIST-bin.plist +0 -0
  889. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PLIST-xml.plist +0 -0
  890. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PNG.png +0 -0
  891. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PPM.ppm +0 -0
  892. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PSP.psp +0 -0
  893. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Palm.mobi +0 -0
  894. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Panasonic.jpg +0 -0
  895. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Panasonic.rw2 +0 -0
  896. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Pentax.avi +0 -0
  897. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Pentax.jpg +0 -0
  898. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PhotoCD.pcd +0 -0
  899. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PhotoMechanic.jpg +0 -0
  900. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Photoshop.psd +0 -0
  901. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PostScript.eps +0 -0
  902. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/QuickTime.m4a +0 -0
  903. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/QuickTime.mov +0 -0
  904. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/RIFF.avi +0 -0
  905. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/RIFF.wav +0 -0
  906. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/RIFF.webp +0 -0
  907. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/RTF.rtf +0 -0
  908. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Radiance.hdr +0 -0
  909. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Real.ra +0 -0
  910. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Real.ram +0 -0
  911. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Real.rm +0 -0
  912. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Ricoh.jpg +0 -0
  913. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Ricoh2.jpg +0 -0
  914. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Sanyo.jpg +0 -0
  915. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Sigma.jpg +0 -0
  916. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Sigma.x3f +0 -0
  917. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/SigmaDP2.x3f +0 -0
  918. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Sony.jpg +0 -0
  919. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Sony.pmp +0 -0
  920. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Torrent.torrent +0 -0
  921. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Unknown.jpg +0 -0
  922. data/bin/Image-ExifTool-9.99/t/images/VCard.ics +94 -0
  923. data/bin/Image-ExifTool-9.99/t/images/VCard.vcf +45 -0
  924. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Vorbis.ogg +0 -0
  925. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Writer.jpg +0 -0
  926. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP.inx +0 -0
  927. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP.jpg +0 -0
  928. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP.svg +0 -0
  929. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP.xml +0 -0
  930. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP.xmp +0 -0
  931. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP2.xmp +0 -0
  932. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP3.xmp +0 -0
  933. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP4.xmp +0 -0
  934. data/bin/Image-ExifTool-9.99/t/images/XMP5.xmp +157 -0
  935. data/bin/Image-ExifTool-9.99/t/images/XMP6.xmp +48 -0
  936. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ZIP.gz +0 -0
  937. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ZIP.zip +0 -0
  938. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/iWork.numbers +0 -0
  939. data/lib/exiftool_vendored/version.rb +1 -1
  940. metadata +941 -904
  941. data/bin/Image-ExifTool-9.78/Changes +0 -6884
  942. data/bin/Image-ExifTool-9.78/MANIFEST +0 -900
  943. data/bin/Image-ExifTool-9.78/META.yml +0 -27
  944. data/bin/Image-ExifTool-9.78/README +0 -227
  945. data/bin/Image-ExifTool-9.78/arg_files/exif2xmp.args +0 -42
  946. data/bin/Image-ExifTool-9.78/arg_files/iptcCore.args +0 -172
  947. data/bin/Image-ExifTool-9.78/arg_files/xmp2exif.args +0 -43
  948. data/bin/Image-ExifTool-9.78/config_files/ExifTool_config +0 -341
  949. data/bin/Image-ExifTool-9.78/config_files/convert_regions.config +0 -81
  950. data/bin/Image-ExifTool-9.78/exiftool +0 -5969
  951. data/bin/Image-ExifTool-9.78/html/ExifTool.html +0 -2018
  952. data/bin/Image-ExifTool-9.78/html/Shift.html +0 -173
  953. data/bin/Image-ExifTool-9.78/html/TagNames/AIFF.html +0 -146
  954. data/bin/Image-ExifTool-9.78/html/TagNames/ASF.html +0 -1066
  955. data/bin/Image-ExifTool-9.78/html/TagNames/Apple.html +0 -69
  956. data/bin/Image-ExifTool-9.78/html/TagNames/BMP.html +0 -110
  957. data/bin/Image-ExifTool-9.78/html/TagNames/Canon.html +0 -8414
  958. data/bin/Image-ExifTool-9.78/html/TagNames/CanonCustom.html +0 -2081
  959. data/bin/Image-ExifTool-9.78/html/TagNames/CanonVRD.html +0 -1222
  960. data/bin/Image-ExifTool-9.78/html/TagNames/Casio.html +0 -1606
  961. data/bin/Image-ExifTool-9.78/html/TagNames/Composite.html +0 -696
  962. data/bin/Image-ExifTool-9.78/html/TagNames/DNG.html +0 -285
  963. data/bin/Image-ExifTool-9.78/html/TagNames/DPX.html +0 -190
  964. data/bin/Image-ExifTool-9.78/html/TagNames/DjVu.html +0 -313
  965. data/bin/Image-ExifTool-9.78/html/TagNames/EXE.html +0 -697
  966. data/bin/Image-ExifTool-9.78/html/TagNames/EXIF.html +0 -3365
  967. data/bin/Image-ExifTool-9.78/html/TagNames/Extra.html +0 -341
  968. data/bin/Image-ExifTool-9.78/html/TagNames/FLAC.html +0 -183
  969. data/bin/Image-ExifTool-9.78/html/TagNames/FLIR.html +0 -1340
  970. data/bin/Image-ExifTool-9.78/html/TagNames/Flash.html +0 -419
  971. data/bin/Image-ExifTool-9.78/html/TagNames/FlashPix.html +0 -1465
  972. data/bin/Image-ExifTool-9.78/html/TagNames/FujiFilm.html +0 -789
  973. data/bin/Image-ExifTool-9.78/html/TagNames/GeoTiff.html +0 -2184
  974. data/bin/Image-ExifTool-9.78/html/TagNames/H264.html +0 -393
  975. data/bin/Image-ExifTool-9.78/html/TagNames/ICC_Profile.html +0 -711
  976. data/bin/Image-ExifTool-9.78/html/TagNames/ID3.html +0 -1471
  977. data/bin/Image-ExifTool-9.78/html/TagNames/IPTC.html +0 -902
  978. data/bin/Image-ExifTool-9.78/html/TagNames/JPEG.html +0 -602
  979. data/bin/Image-ExifTool-9.78/html/TagNames/Jpeg2000.html +0 -464
  980. data/bin/Image-ExifTool-9.78/html/TagNames/Kodak.html +0 -1881
  981. data/bin/Image-ExifTool-9.78/html/TagNames/KyoceraRaw.html +0 -92
  982. data/bin/Image-ExifTool-9.78/html/TagNames/LNK.html +0 -478
  983. data/bin/Image-ExifTool-9.78/html/TagNames/Lytro.html +0 -122
  984. data/bin/Image-ExifTool-9.78/html/TagNames/M2TS.html +0 -133
  985. data/bin/Image-ExifTool-9.78/html/TagNames/MIE.html +0 -1026
  986. data/bin/Image-ExifTool-9.78/html/TagNames/MNG.html +0 -847
  987. data/bin/Image-ExifTool-9.78/html/TagNames/MPC.html +0 -97
  988. data/bin/Image-ExifTool-9.78/html/TagNames/MPEG.html +0 -249
  989. data/bin/Image-ExifTool-9.78/html/TagNames/MPF.html +0 -199
  990. data/bin/Image-ExifTool-9.78/html/TagNames/MWG.html +0 -567
  991. data/bin/Image-ExifTool-9.78/html/TagNames/MXF.html +0 -6673
  992. data/bin/Image-ExifTool-9.78/html/TagNames/Matroska.html +0 -1069
  993. data/bin/Image-ExifTool-9.78/html/TagNames/Microsoft.html +0 -2069
  994. data/bin/Image-ExifTool-9.78/html/TagNames/Minolta.html +0 -2585
  995. data/bin/Image-ExifTool-9.78/html/TagNames/MinoltaRaw.html +0 -326
  996. data/bin/Image-ExifTool-9.78/html/TagNames/Nikon.html +0 -4734
  997. data/bin/Image-ExifTool-9.78/html/TagNames/NikonCapture.html +0 -799
  998. data/bin/Image-ExifTool-9.78/html/TagNames/NikonCustom.html +0 -4794
  999. data/bin/Image-ExifTool-9.78/html/TagNames/OOXML.html +0 -280
  1000. data/bin/Image-ExifTool-9.78/html/TagNames/Olympus.html +0 -3447
  1001. data/bin/Image-ExifTool-9.78/html/TagNames/OpenEXR.html +0 -222
  1002. data/bin/Image-ExifTool-9.78/html/TagNames/PDF.html +0 -745
  1003. data/bin/Image-ExifTool-9.78/html/TagNames/PGF.html +0 -80
  1004. data/bin/Image-ExifTool-9.78/html/TagNames/Palm.html +0 -388
  1005. data/bin/Image-ExifTool-9.78/html/TagNames/Panasonic.html +0 -1686
  1006. data/bin/Image-ExifTool-9.78/html/TagNames/PanasonicRaw.html +0 -451
  1007. data/bin/Image-ExifTool-9.78/html/TagNames/Pentax.html +0 -4601
  1008. data/bin/Image-ExifTool-9.78/html/TagNames/PhaseOne.html +0 -258
  1009. data/bin/Image-ExifTool-9.78/html/TagNames/PhotoCD.html +0 -402
  1010. data/bin/Image-ExifTool-9.78/html/TagNames/PhotoMechanic.html +0 -196
  1011. data/bin/Image-ExifTool-9.78/html/TagNames/Photoshop.html +0 -570
  1012. data/bin/Image-ExifTool-9.78/html/TagNames/Qualcomm.html +0 -4778
  1013. data/bin/Image-ExifTool-9.78/html/TagNames/QuickTime.html +0 -5729
  1014. data/bin/Image-ExifTool-9.78/html/TagNames/RIFF.html +0 -1314
  1015. data/bin/Image-ExifTool-9.78/html/TagNames/Radiance.html +0 -87
  1016. data/bin/Image-ExifTool-9.78/html/TagNames/Real.html +0 -780
  1017. data/bin/Image-ExifTool-9.78/html/TagNames/Reconyx.html +0 -132
  1018. data/bin/Image-ExifTool-9.78/html/TagNames/Ricoh.html +0 -794
  1019. data/bin/Image-ExifTool-9.78/html/TagNames/Samsung.html +0 -603
  1020. data/bin/Image-ExifTool-9.78/html/TagNames/Sanyo.html +0 -366
  1021. data/bin/Image-ExifTool-9.78/html/TagNames/Shortcuts.html +0 -274
  1022. data/bin/Image-ExifTool-9.78/html/TagNames/Sigma.html +0 -377
  1023. data/bin/Image-ExifTool-9.78/html/TagNames/SigmaRaw.html +0 -438
  1024. data/bin/Image-ExifTool-9.78/html/TagNames/Sony.html +0 -7481
  1025. data/bin/Image-ExifTool-9.78/html/TagNames/SonyIDC.html +0 -267
  1026. data/bin/Image-ExifTool-9.78/html/TagNames/XMP.html +0 -7971
  1027. data/bin/Image-ExifTool-9.78/html/TagNames/ZIP.html +0 -205
  1028. data/bin/Image-ExifTool-9.78/html/TagNames/index.html +0 -207
  1029. data/bin/Image-ExifTool-9.78/html/ancient_history.html +0 -7356
  1030. data/bin/Image-ExifTool-9.78/html/config.html +0 -354
  1031. data/bin/Image-ExifTool-9.78/html/data_members.html +0 -277
  1032. data/bin/Image-ExifTool-9.78/html/exiftool_pod.html +0 -2414
  1033. data/bin/Image-ExifTool-9.78/html/faq.html +0 -1499
  1034. data/bin/Image-ExifTool-9.78/html/filename.html +0 -331
  1035. data/bin/Image-ExifTool-9.78/html/geotag.html +0 -652
  1036. data/bin/Image-ExifTool-9.78/html/history.html +0 -431
  1037. data/bin/Image-ExifTool-9.78/html/htmldump.html +0 -734
  1038. data/bin/Image-ExifTool-9.78/html/index.html +0 -1298
  1039. data/bin/Image-ExifTool-9.78/html/install.html +0 -251
  1040. data/bin/Image-ExifTool-9.78/html/standards.html +0 -286
  1041. data/bin/Image-ExifTool-9.78/html/under.html +0 -127
  1042. data/bin/Image-ExifTool-9.78/lib/File/RandomAccess.pm +0 -378
  1043. data/bin/Image-ExifTool-9.78/lib/File/RandomAccess.pod +0 -231
  1044. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool.pm +0 -7070
  1045. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool.pod +0 -2437
  1046. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/AES.pm +0 -501
  1047. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/AFCP.pm +0 -284
  1048. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/AIFF.pm +0 -286
  1049. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/APE.pm +0 -262
  1050. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/APP12.pm +0 -322
  1051. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/ASF.pm +0 -884
  1052. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Apple.pm +0 -115
  1053. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/BMP.pm +0 -179
  1054. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/BZZ.pm +0 -472
  1055. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/BigTIFF.pm +0 -282
  1056. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/BuildTagLookup.pm +0 -2445
  1057. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Canon.pm +0 -8184
  1058. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/CanonCustom.pm +0 -2582
  1059. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/CanonRaw.pm +0 -908
  1060. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/CanonVRD.pm +0 -1519
  1061. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/CaptureOne.pm +0 -235
  1062. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Casio.pm +0 -2057
  1063. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Charset.pm +0 -396
  1064. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/DICOM.pm +0 -3874
  1065. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/DNG.pm +0 -835
  1066. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/DPX.pm +0 -151
  1067. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/DV.pm +0 -319
  1068. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/DarwinCore.pm +0 -322
  1069. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/DjVu.pm +0 -376
  1070. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/EXE.pm +0 -1228
  1071. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Exif.pm +0 -4652
  1072. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/FLAC.pm +0 -296
  1073. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/FLIR.pm +0 -1531
  1074. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Fixup.pm +0 -354
  1075. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Flash.pm +0 -755
  1076. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/FlashPix.pm +0 -1929
  1077. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Font.pm +0 -643
  1078. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/FotoStation.pm +0 -259
  1079. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/FujiFilm.pm +0 -1162
  1080. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/GE.pm +0 -81
  1081. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/GIF.pm +0 -542
  1082. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/GIMP.pm +0 -258
  1083. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/GPS.pm +0 -546
  1084. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/GeoTiff.pm +0 -2202
  1085. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Geotag.pm +0 -1201
  1086. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/H264.pm +0 -1112
  1087. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/HP.pm +0 -262
  1088. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/HTML.pm +0 -576
  1089. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/HtmlDump.pm +0 -895
  1090. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/ICC_Profile.pm +0 -1000
  1091. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/ID3.pm +0 -1532
  1092. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/IPTC.pm +0 -1264
  1093. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/ITC.pm +0 -215
  1094. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Import.pm +0 -313
  1095. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/InDesign.pm +0 -277
  1096. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/JPEG.pm +0 -601
  1097. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/JPEGDigest.pm +0 -2511
  1098. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/JVC.pm +0 -130
  1099. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Jpeg2000.pm +0 -873
  1100. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Kodak.pm +0 -2080
  1101. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/KyoceraRaw.pm +0 -173
  1102. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/LNK.pm +0 -723
  1103. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/cs.pm +0 -1588
  1104. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/de.pm +0 -8683
  1105. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/en_ca.pm +0 -848
  1106. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/en_gb.pm +0 -863
  1107. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/es.pm +0 -4020
  1108. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/fi.pm +0 -2854
  1109. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/fr.pm +0 -4748
  1110. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/it.pm +0 -7920
  1111. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/ja.pm +0 -5827
  1112. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/ko.pm +0 -2331
  1113. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/nl.pm +0 -3222
  1114. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/pl.pm +0 -1168
  1115. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/ru.pm +0 -768
  1116. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/sv.pm +0 -638
  1117. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/tr.pm +0 -544
  1118. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1330
  1119. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/zh_tw.pm +0 -801
  1120. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Leaf.pm +0 -515
  1121. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lytro.pm +0 -217
  1122. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/M2TS.pm +0 -725
  1123. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MIE.pm +0 -2561
  1124. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MIEUnits.pod +0 -377
  1125. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MIFF.pm +0 -279
  1126. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MNG.pm +0 -684
  1127. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MPC.pm +0 -156
  1128. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MPEG.pm +0 -736
  1129. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MPF.pm +0 -292
  1130. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MWG.pm +0 -748
  1131. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MXF.pm +0 -3032
  1132. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MakerNotes.pm +0 -1686
  1133. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Matroska.pm +0 -891
  1134. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Microsoft.pm +0 -884
  1135. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Minolta.pm +0 -2901
  1136. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MinoltaRaw.pm +0 -534
  1137. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Nikon.pm +0 -6578
  1138. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/NikonCapture.pm +0 -940
  1139. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/NikonCustom.pm +0 -5445
  1140. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Nintendo.pm +0 -128
  1141. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/OOXML.pm +0 -409
  1142. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Ogg.pm +0 -237
  1143. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Olympus.pm +0 -3696
  1144. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/OpenEXR.pm +0 -324
  1145. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PDF.pm +0 -2327
  1146. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PGF.pm +0 -143
  1147. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PICT.pm +0 -1260
  1148. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PLIST.pm +0 -453
  1149. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PNG.pm +0 -1190
  1150. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PPM.pm +0 -169
  1151. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PSP.pm +0 -305
  1152. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Palm.pm +0 -403
  1153. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Panasonic.pm +0 -2355
  1154. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PanasonicRaw.pm +0 -638
  1155. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Pentax.pm +0 -5877
  1156. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PhaseOne.pm +0 -557
  1157. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PhotoCD.pm +0 -507
  1158. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PhotoMechanic.pm +0 -256
  1159. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Photoshop.pm +0 -648
  1160. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PostScript.pm +0 -694
  1161. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PrintIM.pm +0 -125
  1162. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Qualcomm.pm +0 -1344
  1163. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/QuickTime.pm +0 -6305
  1164. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/README +0 -967
  1165. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/RIFF.pm +0 -1478
  1166. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/RSRC.pm +0 -241
  1167. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/RTF.pm +0 -383
  1168. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Radiance.pm +0 -144
  1169. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Rawzor.pm +0 -190
  1170. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Real.pm +0 -736
  1171. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Reconyx.pm +0 -190
  1172. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Ricoh.pm +0 -1114
  1173. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Samsung.pm +0 -1158
  1174. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Sanyo.pm +0 -439
  1175. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Scalado.pm +0 -141
  1176. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Shift.pl +0 -596
  1177. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Shortcuts.pm +0 -333
  1178. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Sigma.pm +0 -589
  1179. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/SigmaRaw.pm +0 -665
  1180. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Sony.pm +0 -8366
  1181. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/SonyIDC.pm +0 -330
  1182. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Stim.pm +0 -196
  1183. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/TagInfoXML.pm +0 -806
  1184. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/TagLookup.pm +0 -8745
  1185. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/TagNames.pod +0 -27987
  1186. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Theora.pm +0 -145
  1187. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Torrent.pm +0 -317
  1188. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Unknown.pm +0 -66
  1189. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Vorbis.pm +0 -237
  1190. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WriteCanonRaw.pl +0 -637
  1191. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WriteExif.pl +0 -3743
  1192. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WriteIPTC.pl +0 -702
  1193. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WritePDF.pl +0 -768
  1194. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WritePNG.pl +0 -390
  1195. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WritePhotoshop.pl +0 -266
  1196. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WritePostScript.pl +0 -777
  1197. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WriteQuickTime.pl +0 -358
  1198. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WriteXMP.pl +0 -1358
  1199. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Writer.pl +0 -5972
  1200. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/XMP.pm +0 -3840
  1201. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/XMP2.pl +0 -1305
  1202. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/XMPStruct.pl +0 -826
  1203. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/ZIP.pm +0 -667
  1204. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/iWork.pm +0 -223
  1205. data/bin/Image-ExifTool-9.78/perl-Image-ExifTool.spec +0 -110
  1206. data/bin/Image-ExifTool-9.78/t/AFCP_2.out +0 -37
  1207. data/bin/Image-ExifTool-9.78/t/AIFF_2.out +0 -32
  1208. data/bin/Image-ExifTool-9.78/t/APE_2.out +0 -28
  1209. data/bin/Image-ExifTool-9.78/t/APE_3.out +0 -57
  1210. data/bin/Image-ExifTool-9.78/t/ASF_2.out +0 -54
  1211. data/bin/Image-ExifTool-9.78/t/BMP_2.out +0 -21
  1212. data/bin/Image-ExifTool-9.78/t/BigTIFF_2.out +0 -19
  1213. data/bin/Image-ExifTool-9.78/t/CanonRaw_2.out +0 -166
  1214. data/bin/Image-ExifTool-9.78/t/CanonRaw_4.out +0 -216
  1215. data/bin/Image-ExifTool-9.78/t/CanonRaw_5.out +0 -208
  1216. data/bin/Image-ExifTool-9.78/t/CanonRaw_6.out +0 -231
  1217. data/bin/Image-ExifTool-9.78/t/CanonRaw_7.out +0 -247
  1218. data/bin/Image-ExifTool-9.78/t/CanonVRD.t +0 -129
  1219. data/bin/Image-ExifTool-9.78/t/CanonVRD_11.out +0 -118
  1220. data/bin/Image-ExifTool-9.78/t/CanonVRD_12.out +0 -12
  1221. data/bin/Image-ExifTool-9.78/t/CanonVRD_2.out +0 -116
  1222. data/bin/Image-ExifTool-9.78/t/CanonVRD_3.out +0 -116
  1223. data/bin/Image-ExifTool-9.78/t/CanonVRD_5.out +0 -3
  1224. data/bin/Image-ExifTool-9.78/t/Canon_2.out +0 -353
  1225. data/bin/Image-ExifTool-9.78/t/Casio_2.out +0 -70
  1226. data/bin/Image-ExifTool-9.78/t/Casio_3.out +0 -100
  1227. data/bin/Image-ExifTool-9.78/t/Casio_4.out +0 -26
  1228. data/bin/Image-ExifTool-9.78/t/Casio_5.out +0 -78
  1229. data/bin/Image-ExifTool-9.78/t/Casio_6.out +0 -115
  1230. data/bin/Image-ExifTool-9.78/t/DICOM_2.out +0 -108
  1231. data/bin/Image-ExifTool-9.78/t/DNG_2.out +0 -326
  1232. data/bin/Image-ExifTool-9.78/t/DPX_2.out +0 -35
  1233. data/bin/Image-ExifTool-9.78/t/DV_2.out +0 -24
  1234. data/bin/Image-ExifTool-9.78/t/DjVu_2.out +0 -44
  1235. data/bin/Image-ExifTool-9.78/t/EXE.t +0 -31
  1236. data/bin/Image-ExifTool-9.78/t/EXE_2.out +0 -40
  1237. data/bin/Image-ExifTool-9.78/t/EXE_3.out +0 -15
  1238. data/bin/Image-ExifTool-9.78/t/EXE_4.out +0 -14
  1239. data/bin/Image-ExifTool-9.78/t/ExifTool_16.out +0 -181
  1240. data/bin/Image-ExifTool-9.78/t/ExifTool_17.out +0 -597
  1241. data/bin/Image-ExifTool-9.78/t/ExifTool_2.out +0 -416
  1242. data/bin/Image-ExifTool-9.78/t/ExifTool_28.out +0 -10
  1243. data/bin/Image-ExifTool-9.78/t/ExifTool_3.out +0 -87
  1244. data/bin/Image-ExifTool-9.78/t/ExifTool_6.out +0 -68
  1245. data/bin/Image-ExifTool-9.78/t/FLAC_2.out +0 -25
  1246. data/bin/Image-ExifTool-9.78/t/FLAC_3.out +0 -19
  1247. data/bin/Image-ExifTool-9.78/t/FLIR_2.out +0 -110
  1248. data/bin/Image-ExifTool-9.78/t/FLIR_3.out +0 -47
  1249. data/bin/Image-ExifTool-9.78/t/FlashPix_2.out +0 -48
  1250. data/bin/Image-ExifTool-9.78/t/Flash_2.out +0 -20
  1251. data/bin/Image-ExifTool-9.78/t/Flash_3.out +0 -53
  1252. data/bin/Image-ExifTool-9.78/t/Font_2.out +0 -23
  1253. data/bin/Image-ExifTool-9.78/t/Font_3.out +0 -35
  1254. data/bin/Image-ExifTool-9.78/t/Font_4.out +0 -26
  1255. data/bin/Image-ExifTool-9.78/t/Font_5.out +0 -26
  1256. data/bin/Image-ExifTool-9.78/t/Font_6.out +0 -36
  1257. data/bin/Image-ExifTool-9.78/t/Font_7.out +0 -36
  1258. data/bin/Image-ExifTool-9.78/t/FotoStation_2.out +0 -39
  1259. data/bin/Image-ExifTool-9.78/t/FujiFilm_2.out +0 -87
  1260. data/bin/Image-ExifTool-9.78/t/FujiFilm_3.out +0 -88
  1261. data/bin/Image-ExifTool-9.78/t/FujiFilm_4.out +0 -137
  1262. data/bin/Image-ExifTool-9.78/t/GE_2.out +0 -84
  1263. data/bin/Image-ExifTool-9.78/t/GE_3.out +0 -84
  1264. data/bin/Image-ExifTool-9.78/t/GIF_2.out +0 -40
  1265. data/bin/Image-ExifTool-9.78/t/GIF_3.out +0 -41
  1266. data/bin/Image-ExifTool-9.78/t/GIF_4.out +0 -16
  1267. data/bin/Image-ExifTool-9.78/t/GIMP_2.out +0 -63
  1268. data/bin/Image-ExifTool-9.78/t/GPS_2.out +0 -94
  1269. data/bin/Image-ExifTool-9.78/t/GPS_3.out +0 -96
  1270. data/bin/Image-ExifTool-9.78/t/GeoTiff_2.out +0 -36
  1271. data/bin/Image-ExifTool-9.78/t/GeoTiff_3.out +0 -36
  1272. data/bin/Image-ExifTool-9.78/t/Geotag.t +0 -181
  1273. data/bin/Image-ExifTool-9.78/t/HTML_2.out +0 -68
  1274. data/bin/Image-ExifTool-9.78/t/IPTC_2.out +0 -58
  1275. data/bin/Image-ExifTool-9.78/t/IPTC_4.out +0 -56
  1276. data/bin/Image-ExifTool-9.78/t/ITC_2.out +0 -19
  1277. data/bin/Image-ExifTool-9.78/t/InDesign_2.out +0 -19
  1278. data/bin/Image-ExifTool-9.78/t/InDesign_3.out +0 -21
  1279. data/bin/Image-ExifTool-9.78/t/InDesign_4.out +0 -11
  1280. data/bin/Image-ExifTool-9.78/t/Jpeg2000_2.out +0 -63
  1281. data/bin/Image-ExifTool-9.78/t/Jpeg2000_3.out +0 -51
  1282. data/bin/Image-ExifTool-9.78/t/Jpeg2000_4.out +0 -15
  1283. data/bin/Image-ExifTool-9.78/t/Kodak_2.out +0 -109
  1284. data/bin/Image-ExifTool-9.78/t/Kodak_3.out +0 -119
  1285. data/bin/Image-ExifTool-9.78/t/KyoceraRaw_2.out +0 -27
  1286. data/bin/Image-ExifTool-9.78/t/LNK_2.out +0 -45
  1287. data/bin/Image-ExifTool-9.78/t/Lytro_2.out +0 -107
  1288. data/bin/Image-ExifTool-9.78/t/M2TS_2.out +0 -27
  1289. data/bin/Image-ExifTool-9.78/t/MIE_2.out +0 -67
  1290. data/bin/Image-ExifTool-9.78/t/MIE_3.out +0 -134
  1291. data/bin/Image-ExifTool-9.78/t/MIFF_2.out +0 -108
  1292. data/bin/Image-ExifTool-9.78/t/MP3_2.out +0 -45
  1293. data/bin/Image-ExifTool-9.78/t/MXF_2.out +0 -78
  1294. data/bin/Image-ExifTool-9.78/t/Matroska_2.out +0 -64
  1295. data/bin/Image-ExifTool-9.78/t/Minolta_2.out +0 -133
  1296. data/bin/Image-ExifTool-9.78/t/Minolta_3.out +0 -146
  1297. data/bin/Image-ExifTool-9.78/t/Minolta_4.out +0 -148
  1298. data/bin/Image-ExifTool-9.78/t/Nikon_2.out +0 -82
  1299. data/bin/Image-ExifTool-9.78/t/Nikon_3.out +0 -98
  1300. data/bin/Image-ExifTool-9.78/t/Nikon_4.out +0 -174
  1301. data/bin/Image-ExifTool-9.78/t/Nikon_5.out +0 -167
  1302. data/bin/Image-ExifTool-9.78/t/Nikon_7.out +0 -259
  1303. data/bin/Image-ExifTool-9.78/t/Olympus.t +0 -85
  1304. data/bin/Image-ExifTool-9.78/t/Olympus_2.out +0 -79
  1305. data/bin/Image-ExifTool-9.78/t/Olympus_3.out +0 -81
  1306. data/bin/Image-ExifTool-9.78/t/Olympus_4.out +0 -192
  1307. data/bin/Image-ExifTool-9.78/t/Olympus_5.out +0 -264
  1308. data/bin/Image-ExifTool-9.78/t/Olympus_6.out +0 -151
  1309. data/bin/Image-ExifTool-9.78/t/Olympus_7.out +0 -482
  1310. data/bin/Image-ExifTool-9.78/t/OpenEXR_2.out +0 -23
  1311. data/bin/Image-ExifTool-9.78/t/PDF_2.out +0 -117
  1312. data/bin/Image-ExifTool-9.78/t/PGF_2.out +0 -32
  1313. data/bin/Image-ExifTool-9.78/t/PICT_2.out +0 -15
  1314. data/bin/Image-ExifTool-9.78/t/PLIST_2.out +0 -20
  1315. data/bin/Image-ExifTool-9.78/t/PLIST_3.out +0 -20
  1316. data/bin/Image-ExifTool-9.78/t/PNG_2.out +0 -22
  1317. data/bin/Image-ExifTool-9.78/t/PNG_3.out +0 -121
  1318. data/bin/Image-ExifTool-9.78/t/PNG_5.out +0 -17
  1319. data/bin/Image-ExifTool-9.78/t/PPM_2.out +0 -15
  1320. data/bin/Image-ExifTool-9.78/t/PPM_3.out +0 -9
  1321. data/bin/Image-ExifTool-9.78/t/PSP_2.out +0 -32
  1322. data/bin/Image-ExifTool-9.78/t/Palm_2.out +0 -31
  1323. data/bin/Image-ExifTool-9.78/t/Panasonic_2.out +0 -99
  1324. data/bin/Image-ExifTool-9.78/t/Panasonic_3.out +0 -119
  1325. data/bin/Image-ExifTool-9.78/t/Panasonic_4.out +0 -204
  1326. data/bin/Image-ExifTool-9.78/t/Panasonic_5.out +0 -242
  1327. data/bin/Image-ExifTool-9.78/t/Pentax_2.out +0 -221
  1328. data/bin/Image-ExifTool-9.78/t/Pentax_3.out +0 -263
  1329. data/bin/Image-ExifTool-9.78/t/Pentax_4.out +0 -127
  1330. data/bin/Image-ExifTool-9.78/t/PhotoCD_2.out +0 -35
  1331. data/bin/Image-ExifTool-9.78/t/PhotoMechanic_2.out +0 -81
  1332. data/bin/Image-ExifTool-9.78/t/Photoshop_2.out +0 -96
  1333. data/bin/Image-ExifTool-9.78/t/Photoshop_3.out +0 -108
  1334. data/bin/Image-ExifTool-9.78/t/PostScript_2.out +0 -64
  1335. data/bin/Image-ExifTool-9.78/t/PostScript_3.out +0 -132
  1336. data/bin/Image-ExifTool-9.78/t/QuickTime.t +0 -54
  1337. data/bin/Image-ExifTool-9.78/t/QuickTime_2.out +0 -131
  1338. data/bin/Image-ExifTool-9.78/t/QuickTime_3.out +0 -72
  1339. data/bin/Image-ExifTool-9.78/t/RIFF_2.out +0 -24
  1340. data/bin/Image-ExifTool-9.78/t/RIFF_3.out +0 -52
  1341. data/bin/Image-ExifTool-9.78/t/RIFF_4.out +0 -16
  1342. data/bin/Image-ExifTool-9.78/t/RTF_2.out +0 -20
  1343. data/bin/Image-ExifTool-9.78/t/Radiance_2.out +0 -22
  1344. data/bin/Image-ExifTool-9.78/t/Real_2.out +0 -68
  1345. data/bin/Image-ExifTool-9.78/t/Real_3.out +0 -18
  1346. data/bin/Image-ExifTool-9.78/t/Real_4.out +0 -11
  1347. data/bin/Image-ExifTool-9.78/t/Ricoh_2.out +0 -70
  1348. data/bin/Image-ExifTool-9.78/t/Ricoh_3.out +0 -98
  1349. data/bin/Image-ExifTool-9.78/t/Ricoh_4.out +0 -112
  1350. data/bin/Image-ExifTool-9.78/t/Sanyo_2.out +0 -101
  1351. data/bin/Image-ExifTool-9.78/t/Sanyo_3.out +0 -111
  1352. data/bin/Image-ExifTool-9.78/t/Sigma_2.out +0 -91
  1353. data/bin/Image-ExifTool-9.78/t/Sigma_3.out +0 -94
  1354. data/bin/Image-ExifTool-9.78/t/Sigma_4.out +0 -63
  1355. data/bin/Image-ExifTool-9.78/t/Sigma_5.out +0 -192
  1356. data/bin/Image-ExifTool-9.78/t/Sony_2.out +0 -84
  1357. data/bin/Image-ExifTool-9.78/t/Sony_3.out +0 -85
  1358. data/bin/Image-ExifTool-9.78/t/Sony_5.out +0 -32
  1359. data/bin/Image-ExifTool-9.78/t/Torrent_2.out +0 -31
  1360. data/bin/Image-ExifTool-9.78/t/Unknown_2.out +0 -90
  1361. data/bin/Image-ExifTool-9.78/t/Unknown_3.out +0 -90
  1362. data/bin/Image-ExifTool-9.78/t/Vorbis_2.out +0 -28
  1363. data/bin/Image-ExifTool-9.78/t/Writer_10.out +0 -242
  1364. data/bin/Image-ExifTool-9.78/t/Writer_11.out +0 -37
  1365. data/bin/Image-ExifTool-9.78/t/Writer_13.out +0 -161
  1366. data/bin/Image-ExifTool-9.78/t/Writer_14.out +0 -67
  1367. data/bin/Image-ExifTool-9.78/t/Writer_15.out +0 -172
  1368. data/bin/Image-ExifTool-9.78/t/Writer_19.out +0 -34
  1369. data/bin/Image-ExifTool-9.78/t/Writer_2.out +0 -169
  1370. data/bin/Image-ExifTool-9.78/t/Writer_25.out +0 -38
  1371. data/bin/Image-ExifTool-9.78/t/Writer_26.out +0 -32
  1372. data/bin/Image-ExifTool-9.78/t/Writer_31.out +0 -97
  1373. data/bin/Image-ExifTool-9.78/t/Writer_35.out +0 -187
  1374. data/bin/Image-ExifTool-9.78/t/Writer_38.out +0 -62
  1375. data/bin/Image-ExifTool-9.78/t/Writer_4.out +0 -85
  1376. data/bin/Image-ExifTool-9.78/t/Writer_46.out +0 -79
  1377. data/bin/Image-ExifTool-9.78/t/Writer_47.out +0 -56
  1378. data/bin/Image-ExifTool-9.78/t/Writer_48.out +0 -29
  1379. data/bin/Image-ExifTool-9.78/t/Writer_51.out +0 -403
  1380. data/bin/Image-ExifTool-9.78/t/Writer_52.out +0 -22
  1381. data/bin/Image-ExifTool-9.78/t/Writer_53.out +0 -33
  1382. data/bin/Image-ExifTool-9.78/t/Writer_6.out +0 -183
  1383. data/bin/Image-ExifTool-9.78/t/Writer_7.out +0 -150
  1384. data/bin/Image-ExifTool-9.78/t/Writer_9.out +0 -238
  1385. data/bin/Image-ExifTool-9.78/t/XMP.t +0 -525
  1386. data/bin/Image-ExifTool-9.78/t/XMP_10.out +0 -36
  1387. data/bin/Image-ExifTool-9.78/t/XMP_2.out +0 -138
  1388. data/bin/Image-ExifTool-9.78/t/XMP_24.out +0 -31
  1389. data/bin/Image-ExifTool-9.78/t/XMP_25.out +0 -28
  1390. data/bin/Image-ExifTool-9.78/t/XMP_26.out +0 -52
  1391. data/bin/Image-ExifTool-9.78/t/XMP_27.out +0 -93
  1392. data/bin/Image-ExifTool-9.78/t/XMP_28.out +0 -44
  1393. data/bin/Image-ExifTool-9.78/t/XMP_29.out +0 -24
  1394. data/bin/Image-ExifTool-9.78/t/XMP_3.out +0 -136
  1395. data/bin/Image-ExifTool-9.78/t/XMP_31.out +0 -19
  1396. data/bin/Image-ExifTool-9.78/t/XMP_36.out +0 -18
  1397. data/bin/Image-ExifTool-9.78/t/XMP_37.out +0 -35
  1398. data/bin/Image-ExifTool-9.78/t/XMP_39.out +0 -44
  1399. data/bin/Image-ExifTool-9.78/t/XMP_41.out +0 -180
  1400. data/bin/Image-ExifTool-9.78/t/XMP_5.out +0 -29
  1401. data/bin/Image-ExifTool-9.78/t/XMP_6.out +0 -87
  1402. data/bin/Image-ExifTool-9.78/t/XMP_8.out +0 -17
  1403. data/bin/Image-ExifTool-9.78/t/ZIP_2.out +0 -18
  1404. data/bin/Image-ExifTool-9.78/t/ZIP_3.out +0 -17
  1405. data/bin/Image-ExifTool-9.78/t/ZIP_4.out +0 -213
  1406. data/bin/Image-ExifTool-9.78/t/ZIP_5.out +0 -134
  1407. data/bin/Image-ExifTool-9.78/t/ZIP_6.out +0 -49
  1408. data/bin/Image-ExifTool-9.78/t/ZIP_7.out +0 -28
  1409. data/bin/Image-ExifTool-9.78/t/images/XMP5.xmp +0 -158
@@ -0,0 +1,1935 @@
1
+ #------------------------------------------------------------------------------
2
+ # File: FlashPix.pm
3
+ #
4
+ # Description: Read FlashPix meta information
5
+ #
6
+ # Revisions: 05/29/2006 - P. Harvey Created
7
+ #
8
+ # References: 1) http://www.exif.org/Exif2-2.PDF
9
+ # 2) http://www.graphcomp.com/info/specs/livepicture/fpx.pdf
10
+ # 3) http://search.cpan.org/~jdb/libwin32/
11
+ # 4) http://msdn.microsoft.com/en-us/library/aa380374.aspx
12
+ #------------------------------------------------------------------------------
13
+
14
+ package Image::ExifTool::FlashPix;
15
+
16
+ use strict;
17
+ use vars qw($VERSION);
18
+ use Image::ExifTool qw(:DataAccess :Utils);
19
+ use Image::ExifTool::Exif;
20
+ use Image::ExifTool::ASF; # for GetGUID()
21
+
22
+ $VERSION = '1.26';
23
+
24
+ sub ProcessFPX($$);
25
+ sub ProcessFPXR($$$);
26
+ sub ProcessProperties($$$);
27
+ sub ReadFPXValue($$$$$;$$);
28
+ sub ProcessHyperlinks($$);
29
+ sub ProcessContents($$$);
30
+ sub SetDocNum($$;$$$);
31
+
32
+ # sector type constants
33
+ sub HDR_SIZE () { 512; }
34
+ sub DIF_SECT () { 0xfffffffc; }
35
+ sub FAT_SECT () { 0xfffffffd; }
36
+ sub END_OF_CHAIN () { 0xfffffffe; }
37
+ sub FREE_SECT () { 0xffffffff; }
38
+
39
+ # format flags
40
+ sub VT_VECTOR () { 0x1000; }
41
+ sub VT_ARRAY () { 0x2000; }
42
+ sub VT_BYREF () { 0x4000; }
43
+ sub VT_RESERVED () { 0x8000; }
44
+
45
+ # other constants
46
+ sub VT_VARIANT () { 12; }
47
+ sub VT_LPSTR () { 30; }
48
+
49
+ # list of OLE format codes (unsupported codes commented out)
50
+ my %oleFormat = (
51
+ 0 => undef, # VT_EMPTY
52
+ 1 => undef, # VT_NULL
53
+ 2 => 'int16s', # VT_I2
54
+ 3 => 'int32s', # VT_I4
55
+ 4 => 'float', # VT_R4
56
+ 5 => 'double', # VT_R8
57
+ 6 => undef, # VT_CY
58
+ 7 => 'VT_DATE', # VT_DATE (double, number of days since Dec 30, 1899)
59
+ 8 => 'VT_BSTR', # VT_BSTR (int32u count, followed by binary string)
60
+ # 9 => 'VT_DISPATCH',
61
+ 10 => 'int32s', # VT_ERROR
62
+ 11 => 'int16s', # VT_BOOL
63
+ 12 => 'VT_VARIANT', # VT_VARIANT
64
+ # 13 => 'VT_UNKNOWN',
65
+ # 14 => 'VT_DECIMAL',
66
+ 16 => 'int8s', # VT_I1
67
+ 17 => 'int8u', # VT_UI1
68
+ 18 => 'int16u', # VT_UI2
69
+ 19 => 'int32u', # VT_UI4
70
+ 20 => 'int64s', # VT_I8
71
+ 21 => 'int64u', # VT_UI8
72
+ # 22 => 'VT_INT',
73
+ # 23 => 'VT_UINT',
74
+ # 24 => 'VT_VOID',
75
+ # 25 => 'VT_HRESULT',
76
+ # 26 => 'VT_PTR',
77
+ # 27 => 'VT_SAFEARRAY',
78
+ # 28 => 'VT_CARRAY',
79
+ # 29 => 'VT_USERDEFINED',
80
+ 30 => 'VT_LPSTR', # VT_LPSTR (int32u count, followed by string)
81
+ 31 => 'VT_LPWSTR', # VT_LPWSTR (int32u word count, followed by Unicode string)
82
+ 64 => 'VT_FILETIME',# VT_FILETIME (int64u, 100 ns increments since Jan 1, 1601)
83
+ 65 => 'VT_BLOB', # VT_BLOB
84
+ # 66 => 'VT_STREAM',
85
+ # 67 => 'VT_STORAGE',
86
+ # 68 => 'VT_STREAMED_OBJECT',
87
+ # 69 => 'VT_STORED_OBJECT',
88
+ # 70 => 'VT_BLOB_OBJECT',
89
+ 71 => 'VT_CF', # VT_CF
90
+ 72 => 'VT_CLSID', # VT_CLSID
91
+ );
92
+
93
+ # OLE flag codes (high nibble of property type)
94
+ my %oleFlags = (
95
+ 0x1000 => 'VT_VECTOR',
96
+ 0x2000 => 'VT_ARRAY', # not yet supported
97
+ 0x4000 => 'VT_BYREF', # ditto
98
+ 0x8000 => 'VT_RESERVED',
99
+ );
100
+
101
+ # byte sizes for supported VT_* format and flag types
102
+ my %oleFormatSize = (
103
+ VT_DATE => 8,
104
+ VT_BSTR => 4, # (+ string length)
105
+ VT_VARIANT => 4, # (+ data length)
106
+ VT_LPSTR => 4, # (+ string length)
107
+ VT_LPWSTR => 4, # (+ string character length)
108
+ VT_FILETIME => 8,
109
+ VT_BLOB => 4, # (+ data length)
110
+ VT_CF => 4, # (+ data length)
111
+ VT_CLSID => 16,
112
+ VT_VECTOR => 4, # (+ vector elements)
113
+ );
114
+
115
+ # names for each type of directory entry
116
+ my @dirEntryType = qw(INVALID STORAGE STREAM LOCKBYTES PROPERTY ROOT);
117
+
118
+ # list of code pages used by Microsoft
119
+ # (ref http://msdn.microsoft.com/en-us/library/dd317756(VS.85).aspx)
120
+ my %codePage = (
121
+ 037 => 'IBM EBCDIC US-Canada',
122
+ 437 => 'DOS United States',
123
+ 500 => 'IBM EBCDIC International',
124
+ 708 => 'Arabic (ASMO 708)',
125
+ 709 => 'Arabic (ASMO-449+, BCON V4)',
126
+ 710 => 'Arabic - Transparent Arabic',
127
+ 720 => 'DOS Arabic (Transparent ASMO)',
128
+ 737 => 'DOS Greek (formerly 437G)',
129
+ 775 => 'DOS Baltic',
130
+ 850 => 'DOS Latin 1 (Western European)',
131
+ 852 => 'DOS Latin 2 (Central European)',
132
+ 855 => 'DOS Cyrillic (primarily Russian)',
133
+ 857 => 'DOS Turkish',
134
+ 858 => 'DOS Multilingual Latin 1 with Euro',
135
+ 860 => 'DOS Portuguese',
136
+ 861 => 'DOS Icelandic',
137
+ 862 => 'DOS Hebrew',
138
+ 863 => 'DOS French Canadian',
139
+ 864 => 'DOS Arabic',
140
+ 865 => 'DOS Nordic',
141
+ 866 => 'DOS Russian (Cyrillic)',
142
+ 869 => 'DOS Modern Greek',
143
+ 870 => 'IBM EBCDIC Multilingual/ROECE (Latin 2)',
144
+ 874 => 'Windows Thai (same as 28605, ISO 8859-15)',
145
+ 875 => 'IBM EBCDIC Greek Modern',
146
+ 932 => 'Windows Japanese (Shift-JIS)',
147
+ 936 => 'Windows Simplified Chinese (PRC, Singapore)',
148
+ 949 => 'Windows Korean (Unified Hangul Code)',
149
+ 950 => 'Windows Traditional Chinese (Taiwan)',
150
+ 1026 => 'IBM EBCDIC Turkish (Latin 5)',
151
+ 1047 => 'IBM EBCDIC Latin 1/Open System',
152
+ 1140 => 'IBM EBCDIC US-Canada with Euro',
153
+ 1141 => 'IBM EBCDIC Germany with Euro',
154
+ 1142 => 'IBM EBCDIC Denmark-Norway with Euro',
155
+ 1143 => 'IBM EBCDIC Finland-Sweden with Euro',
156
+ 1144 => 'IBM EBCDIC Italy with Euro',
157
+ 1145 => 'IBM EBCDIC Latin America-Spain with Euro',
158
+ 1146 => 'IBM EBCDIC United Kingdom with Euro',
159
+ 1147 => 'IBM EBCDIC France with Euro',
160
+ 1148 => 'IBM EBCDIC International with Euro',
161
+ 1149 => 'IBM EBCDIC Icelandic with Euro',
162
+ 1200 => 'Unicode UTF-16, little endian',
163
+ 1201 => 'Unicode UTF-16, big endian',
164
+ 1250 => 'Windows Latin 2 (Central European)',
165
+ 1251 => 'Windows Cyrillic',
166
+ 1252 => 'Windows Latin 1 (Western European)',
167
+ 1253 => 'Windows Greek',
168
+ 1254 => 'Windows Turkish',
169
+ 1255 => 'Windows Hebrew',
170
+ 1256 => 'Windows Arabic',
171
+ 1257 => 'Windows Baltic',
172
+ 1258 => 'Windows Vietnamese',
173
+ 1361 => 'Korean (Johab)',
174
+ 10000 => 'Mac Roman (Western European)',
175
+ 10001 => 'Mac Japanese',
176
+ 10002 => 'Mac Traditional Chinese',
177
+ 10003 => 'Mac Korean',
178
+ 10004 => 'Mac Arabic',
179
+ 10005 => 'Mac Hebrew',
180
+ 10006 => 'Mac Greek',
181
+ 10007 => 'Mac Cyrillic',
182
+ 10008 => 'Mac Simplified Chinese',
183
+ 10010 => 'Mac Romanian',
184
+ 10017 => 'Mac Ukrainian',
185
+ 10021 => 'Mac Thai',
186
+ 10029 => 'Mac Latin 2 (Central European)',
187
+ 10079 => 'Mac Icelandic',
188
+ 10081 => 'Mac Turkish',
189
+ 10082 => 'Mac Croatian',
190
+ 12000 => 'Unicode UTF-32, little endian',
191
+ 12001 => 'Unicode UTF-32, big endian',
192
+ 20000 => 'CNS Taiwan',
193
+ 20001 => 'TCA Taiwan',
194
+ 20002 => 'Eten Taiwan',
195
+ 20003 => 'IBM5550 Taiwan',
196
+ 20004 => 'TeleText Taiwan',
197
+ 20005 => 'Wang Taiwan',
198
+ 20105 => 'IA5 (IRV International Alphabet No. 5, 7-bit)',
199
+ 20106 => 'IA5 German (7-bit)',
200
+ 20107 => 'IA5 Swedish (7-bit)',
201
+ 20108 => 'IA5 Norwegian (7-bit)',
202
+ 20127 => 'US-ASCII (7-bit)',
203
+ 20261 => 'T.61',
204
+ 20269 => 'ISO 6937 Non-Spacing Accent',
205
+ 20273 => 'IBM EBCDIC Germany',
206
+ 20277 => 'IBM EBCDIC Denmark-Norway',
207
+ 20278 => 'IBM EBCDIC Finland-Sweden',
208
+ 20280 => 'IBM EBCDIC Italy',
209
+ 20284 => 'IBM EBCDIC Latin America-Spain',
210
+ 20285 => 'IBM EBCDIC United Kingdom',
211
+ 20290 => 'IBM EBCDIC Japanese Katakana Extended',
212
+ 20297 => 'IBM EBCDIC France',
213
+ 20420 => 'IBM EBCDIC Arabic',
214
+ 20423 => 'IBM EBCDIC Greek',
215
+ 20424 => 'IBM EBCDIC Hebrew',
216
+ 20833 => 'IBM EBCDIC Korean Extended',
217
+ 20838 => 'IBM EBCDIC Thai',
218
+ 20866 => 'Russian/Cyrillic (KOI8-R)',
219
+ 20871 => 'IBM EBCDIC Icelandic',
220
+ 20880 => 'IBM EBCDIC Cyrillic Russian',
221
+ 20905 => 'IBM EBCDIC Turkish',
222
+ 20924 => 'IBM EBCDIC Latin 1/Open System with Euro',
223
+ 20932 => 'Japanese (JIS 0208-1990 and 0121-1990)',
224
+ 20936 => 'Simplified Chinese (GB2312)',
225
+ 20949 => 'Korean Wansung',
226
+ 21025 => 'IBM EBCDIC Cyrillic Serbian-Bulgarian',
227
+ 21027 => 'Extended Alpha Lowercase (deprecated)',
228
+ 21866 => 'Ukrainian/Cyrillic (KOI8-U)',
229
+ 28591 => 'ISO 8859-1 Latin 1 (Western European)',
230
+ 28592 => 'ISO 8859-2 (Central European)',
231
+ 28593 => 'ISO 8859-3 Latin 3',
232
+ 28594 => 'ISO 8859-4 Baltic',
233
+ 28595 => 'ISO 8859-5 Cyrillic',
234
+ 28596 => 'ISO 8859-6 Arabic',
235
+ 28597 => 'ISO 8859-7 Greek',
236
+ 28598 => 'ISO 8859-8 Hebrew (Visual)',
237
+ 28599 => 'ISO 8859-9 Turkish',
238
+ 28603 => 'ISO 8859-13 Estonian',
239
+ 28605 => 'ISO 8859-15 Latin 9',
240
+ 29001 => 'Europa 3',
241
+ 38598 => 'ISO 8859-8 Hebrew (Logical)',
242
+ 50220 => 'ISO 2022 Japanese with no halfwidth Katakana (JIS)',
243
+ 50221 => 'ISO 2022 Japanese with halfwidth Katakana (JIS-Allow 1 byte Kana)',
244
+ 50222 => 'ISO 2022 Japanese JIS X 0201-1989 (JIS-Allow 1 byte Kana - SO/SI)',
245
+ 50225 => 'ISO 2022 Korean',
246
+ 50227 => 'ISO 2022 Simplified Chinese',
247
+ 50229 => 'ISO 2022 Traditional Chinese',
248
+ 50930 => 'EBCDIC Japanese (Katakana) Extended',
249
+ 50931 => 'EBCDIC US-Canada and Japanese',
250
+ 50933 => 'EBCDIC Korean Extended and Korean',
251
+ 50935 => 'EBCDIC Simplified Chinese Extended and Simplified Chinese',
252
+ 50936 => 'EBCDIC Simplified Chinese',
253
+ 50937 => 'EBCDIC US-Canada and Traditional Chinese',
254
+ 50939 => 'EBCDIC Japanese (Latin) Extended and Japanese',
255
+ 51932 => 'EUC Japanese',
256
+ 51936 => 'EUC Simplified Chinese',
257
+ 51949 => 'EUC Korean',
258
+ 51950 => 'EUC Traditional Chinese',
259
+ 52936 => 'HZ-GB2312 Simplified Chinese',
260
+ 54936 => 'Windows XP and later: GB18030 Simplified Chinese (4 byte)',
261
+ 57002 => 'ISCII Devanagari',
262
+ 57003 => 'ISCII Bengali',
263
+ 57004 => 'ISCII Tamil',
264
+ 57005 => 'ISCII Telugu',
265
+ 57006 => 'ISCII Assamese',
266
+ 57007 => 'ISCII Oriya',
267
+ 57008 => 'ISCII Kannada',
268
+ 57009 => 'ISCII Malayalam',
269
+ 57010 => 'ISCII Gujarati',
270
+ 57011 => 'ISCII Punjabi',
271
+ 65000 => 'Unicode (UTF-7)',
272
+ 65001 => 'Unicode (UTF-8)',
273
+ );
274
+
275
+ # test for file extensions which may be variants of the FPX format
276
+ # (have seen one password-protected DOCX file that is FPX-like, so assume
277
+ # that all the rest could be as well)
278
+ my %fpxFileType = (
279
+ DOC => 1, DOCX => 1, DOCM => 1,
280
+ DOT => 1, DOTX => 1, DOTM => 1,
281
+ POT => 1, POTX => 1, POTM => 1,
282
+ PPS => 1, PPSX => 1, PPSM => 1,
283
+ PPT => 1, PPTX => 1, PPTM => 1, THMX => 1,
284
+ XLA => 1, XLAM => 1,
285
+ XLS => 1, XLSX => 1, XLSM => 1, XLSB => 1,
286
+ XLT => 1, XLTX => 1, XLTM => 1,
287
+ # non MSOffice types
288
+ FLA => 1, VSD => 1,
289
+ );
290
+
291
+ %Image::ExifTool::FlashPix::Main = (
292
+ PROCESS_PROC => \&ProcessFPXR,
293
+ GROUPS => { 2 => 'Image' },
294
+ NOTES => q{
295
+ The FlashPix file format, introduced in 1996, was developed by Kodak,
296
+ Hewlett-Packard and Microsoft. Internally the FPX file structure mimics
297
+ that of an old DOS disk with fixed-sized "sectors" (usually 512 bytes) and a
298
+ "file allocation table" (FAT). No wonder this image format never became
299
+ popular. However, some of the structures used in FlashPix streams are part
300
+ of the EXIF specification, and are still being used in the APP2 FPXR segment
301
+ of JPEG images by some digital cameras from manufacturers such as FujiFilm,
302
+ Hewlett-Packard, Kodak and Sanyo.
303
+
304
+ ExifTool extracts FlashPix information from both FPX images and the APP2
305
+ FPXR segment of JPEG images. As well, FlashPix information is extracted
306
+ from DOC, PPT, XLS (Microsoft Word, PowerPoint and Excel) documents, VSD
307
+ (Microsoft Visio) drawings, and FLA (Macromedia/Adobe Flash project) files
308
+ since these are based on the same file format as FlashPix (the Windows
309
+ Compound Binary File format). See
310
+ L<http://graphcomp.com/info/specs/livepicture/fpx.pdf> for the FlashPix
311
+ specification.
312
+ },
313
+ "\x05SummaryInformation" => {
314
+ Name => 'SummaryInfo',
315
+ SubDirectory => {
316
+ TagTable => 'Image::ExifTool::FlashPix::SummaryInfo',
317
+ },
318
+ },
319
+ "\x05DocumentSummaryInformation" => {
320
+ Name => 'DocumentInfo',
321
+ Multi => 1, # flag to process UserDefined information after this
322
+ SubDirectory => {
323
+ TagTable => 'Image::ExifTool::FlashPix::DocumentInfo',
324
+ },
325
+ },
326
+ "\x01CompObj" => {
327
+ Name => 'CompObj',
328
+ SubDirectory => {
329
+ TagTable => 'Image::ExifTool::FlashPix::CompObj',
330
+ DirStart => 0x1c, # skip stream header
331
+ },
332
+ },
333
+ "\x05Image Info" => {
334
+ Name => 'ImageInfo',
335
+ SubDirectory => {
336
+ TagTable => 'Image::ExifTool::FlashPix::ImageInfo',
337
+ },
338
+ },
339
+ "\x05Image Contents" => {
340
+ Name => 'Image',
341
+ SubDirectory => {
342
+ TagTable => 'Image::ExifTool::FlashPix::Image',
343
+ },
344
+ },
345
+ "Contents" => {
346
+ Name => 'Contents',
347
+ Notes => 'found in FLA files; may contain XMP',
348
+ SubDirectory => {
349
+ TagTable => 'Image::ExifTool::XMP::Main',
350
+ ProcessProc => \&ProcessContents,
351
+ },
352
+ },
353
+ "ICC Profile 0001" => {
354
+ Name => 'ICC_Profile',
355
+ SubDirectory => {
356
+ TagTable => 'Image::ExifTool::ICC_Profile::Main',
357
+ DirStart => 0x1c, # skip stream header
358
+ },
359
+ },
360
+ "\x05Extension List" => {
361
+ Name => 'Extensions',
362
+ SubDirectory => {
363
+ TagTable => 'Image::ExifTool::FlashPix::Extensions',
364
+ },
365
+ },
366
+ 'Subimage 0000 Header' => {
367
+ Name => 'SubimageHdr',
368
+ SubDirectory => {
369
+ TagTable => 'Image::ExifTool::FlashPix::SubimageHdr',
370
+ DirStart => 0x1c, # skip stream header
371
+ },
372
+ },
373
+ # 'Subimage 0000 Data'
374
+ "\x05Data Object" => { # plus instance number (eg. " 000000")
375
+ Name => 'DataObject',
376
+ SubDirectory => {
377
+ TagTable => 'Image::ExifTool::FlashPix::DataObject',
378
+ },
379
+ },
380
+ # "\x05Data Object Store" => { # plus instance number (eg. " 000000")
381
+ "\x05Transform" => { # plus instance number (eg. " 000000")
382
+ Name => 'Transform',
383
+ SubDirectory => {
384
+ TagTable => 'Image::ExifTool::FlashPix::Transform',
385
+ },
386
+ },
387
+ "\x05Operation" => { # plus instance number (eg. " 000000")
388
+ Name => 'Operation',
389
+ SubDirectory => {
390
+ TagTable => 'Image::ExifTool::FlashPix::Operation',
391
+ },
392
+ },
393
+ "\x05Global Info" => {
394
+ Name => 'GlobalInfo',
395
+ SubDirectory => {
396
+ TagTable => 'Image::ExifTool::FlashPix::GlobalInfo',
397
+ },
398
+ },
399
+ "\x05Screen Nail" => { # plus class ID (eg. "_bd0100609719a180")
400
+ Name => 'ScreenNail',
401
+ Groups => { 2 => 'Other' },
402
+ # strip off stream header
403
+ ValueConv => 'length($val) > 0x1c and $val = substr($val, 0x1c); \$val',
404
+ },
405
+ "\x05Audio Info" => {
406
+ Name => 'AudioInfo',
407
+ SubDirectory => {
408
+ TagTable => 'Image::ExifTool::FlashPix::AudioInfo',
409
+ },
410
+ },
411
+ 'Audio Stream' => { # plus instance number (eg. " 000000")
412
+ Name => 'AudioStream',
413
+ Groups => { 2 => 'Audio' },
414
+ # strip off stream header
415
+ ValueConv => 'length($val) > 0x1c and $val = substr($val, 0x1c); \$val',
416
+ },
417
+ 'Current User' => { #PH
418
+ Name => 'CurrentUser',
419
+ # not sure what the rest of this data is, but extract ASCII name from it - PH
420
+ ValueConv => q{
421
+ return undef if length $val < 12;
422
+ my ($size,$pos) = unpack('x4VV', $val);
423
+ my $len = $size - $pos - 4;
424
+ return undef if $len < 0 or length $val < $size + 8;
425
+ return substr($val, 8 + $pos, $len);
426
+ },
427
+ },
428
+ Preview => {
429
+ Name => 'PreviewImage',
430
+ Groups => { 2 => 'Preview' },
431
+ Binary => 1,
432
+ Notes => 'written by some FujiFilm models',
433
+ # skip 47-byte Fuji header
434
+ RawConv => q{
435
+ return undef unless length $val > 47;
436
+ $val = substr($val, 47);
437
+ return $val =~ /^\xff\xd8\xff/ ? $val : undef;
438
+ },
439
+ },
440
+ Property => {
441
+ Name => 'PreviewInfo',
442
+ SubDirectory => {
443
+ TagTable => 'Image::ExifTool::FlashPix::PreviewInfo',
444
+ ByteOrder => 'BigEndian',
445
+ },
446
+ },
447
+ );
448
+
449
+ # Summary Information properties
450
+ %Image::ExifTool::FlashPix::SummaryInfo = (
451
+ PROCESS_PROC => \&ProcessProperties,
452
+ GROUPS => { 2 => 'Document' },
453
+ NOTES => q{
454
+ The Dictionary, CodePage and LocalIndicator tags are common to all FlashPix
455
+ property tables, even though they are only listed in the SummaryInfo table.
456
+ },
457
+ 0x00 => { Name => 'Dictionary', Groups => { 2 => 'Other' }, Binary => 1 },
458
+ 0x01 => {
459
+ Name => 'CodePage',
460
+ Groups => { 2 => 'Other' },
461
+ PrintConv => \%codePage,
462
+ },
463
+ 0x02 => 'Title',
464
+ 0x03 => 'Subject',
465
+ 0x04 => { Name => 'Author', Groups => { 2 => 'Author' } },
466
+ 0x05 => 'Keywords',
467
+ 0x06 => 'Comments',
468
+ 0x07 => 'Template',
469
+ 0x08 => { Name => 'LastModifiedBy', Groups => { 2 => 'Author' } },
470
+ 0x09 => 'RevisionNumber',
471
+ 0x0a => { Name => 'TotalEditTime', PrintConv => 'ConvertTimeSpan($val)' }, # (in sec)
472
+ 0x0b => { Name => 'LastPrinted', Groups => { 2 => 'Time' } },
473
+ 0x0c => {
474
+ Name => 'CreateDate',
475
+ Groups => { 2 => 'Time' },
476
+ PrintConv => '$self->ConvertDateTime($val)',
477
+ },
478
+ 0x0d => {
479
+ Name => 'ModifyDate',
480
+ Groups => { 2 => 'Time' },
481
+ PrintConv => '$self->ConvertDateTime($val)',
482
+ },
483
+ 0x0e => 'Pages',
484
+ 0x0f => 'Words',
485
+ 0x10 => 'Characters',
486
+ 0x11 => {
487
+ Name => 'ThumbnailClip',
488
+ # (not a displayable format, so not in the "Preview" group)
489
+ Binary => 1,
490
+ },
491
+ 0x12 => {
492
+ Name => 'Software',
493
+ RawConv => '$$self{Software} = $val', # (use to determine file type)
494
+ },
495
+ 0x13 => {
496
+ Name => 'Security',
497
+ # see http://msdn.microsoft.com/en-us/library/aa379255(VS.85).aspx
498
+ PrintConv => {
499
+ 0 => 'None',
500
+ 1 => 'Password protected',
501
+ 2 => 'Read-only recommended',
502
+ 4 => 'Read-only enforced',
503
+ 8 => 'Locked for annotations',
504
+ },
505
+ },
506
+ 0x80000000 => { Name => 'LocaleIndicator', Groups => { 2 => 'Other' } },
507
+ );
508
+
509
+ # Document Summary Information properties (ref 4)
510
+ %Image::ExifTool::FlashPix::DocumentInfo = (
511
+ PROCESS_PROC => \&ProcessProperties,
512
+ GROUPS => { 2 => 'Document' },
513
+ NOTES => q{
514
+ The DocumentSummaryInformation property set includes a UserDefined property
515
+ set for which only the Hyperlinks and HyperlinkBase tags are pre-defined.
516
+ However, ExifTool will also extract any other information found in the
517
+ UserDefined properties.
518
+ },
519
+ 0x02 => 'Category',
520
+ 0x03 => 'PresentationTarget',
521
+ 0x04 => 'Bytes',
522
+ 0x05 => 'Lines',
523
+ 0x06 => 'Paragraphs',
524
+ 0x07 => 'Slides',
525
+ 0x08 => 'Notes',
526
+ 0x09 => 'HiddenSlides',
527
+ 0x0a => 'MMClips',
528
+ 0x0b => {
529
+ Name => 'ScaleCrop',
530
+ PrintConv => { 0 => 'No', 1 => 'Yes' },
531
+ },
532
+ 0x0c => 'HeadingPairs',
533
+ 0x0d => 'TitleOfParts',
534
+ 0x0e => 'Manager',
535
+ 0x0f => 'Company',
536
+ 0x10 => {
537
+ Name => 'LinksUpToDate',
538
+ PrintConv => { 0 => 'No', 1 => 'Yes' },
539
+ },
540
+ 0x11 => 'CharCountWithSpaces',
541
+ # 0x12 ?
542
+ 0x13 => { #PH (unconfirmed)
543
+ Name => 'SharedDoc',
544
+ PrintConv => { 0 => 'No', 1 => 'Yes' },
545
+ },
546
+ # 0x14 ?
547
+ # 0x15 ?
548
+ 0x16 => {
549
+ Name => 'HyperlinksChanged',
550
+ PrintConv => { 0 => 'No', 1 => 'Yes' },
551
+ },
552
+ 0x17 => { #PH (unconfirmed handling of lower 16 bits)
553
+ Name => 'AppVersion',
554
+ ValueConv => 'sprintf("%d.%.4d",$val >> 16, $val & 0xffff)',
555
+ },
556
+ '_PID_LINKBASE' => {
557
+ Name => 'HyperlinkBase',
558
+ ValueConv => '$self->Decode($val, "UCS2","II")',
559
+ },
560
+ '_PID_HLINKS' => {
561
+ Name => 'Hyperlinks',
562
+ RawConv => \&ProcessHyperlinks,
563
+ },
564
+ );
565
+
566
+ # Image Information properties
567
+ %Image::ExifTool::FlashPix::ImageInfo = (
568
+ PROCESS_PROC => \&ProcessProperties,
569
+ GROUPS => { 2 => 'Image' },
570
+ 0x21000000 => {
571
+ Name => 'FileSource',
572
+ PrintConv => {
573
+ 1 => 'Film Scanner',
574
+ 2 => 'Reflection Print Scanner',
575
+ 3 => 'Digital Camera',
576
+ 4 => 'Video Capture',
577
+ 5 => 'Computer Graphics',
578
+ },
579
+ },
580
+ 0x21000001 => {
581
+ Name => 'SceneType',
582
+ PrintConv => {
583
+ 1 => 'Original Scene',
584
+ 2 => 'Second Generation Scene',
585
+ 3 => 'Digital Scene Generation',
586
+ },
587
+ },
588
+ 0x21000002 => 'CreationPathVector',
589
+ 0x21000003 => 'SoftwareRelease',
590
+ 0x21000004 => 'UserDefinedID',
591
+ 0x21000005 => 'SharpnessApproximation',
592
+ 0x22000000 => { Name => 'Copyright', Groups => { 2 => 'Author' } },
593
+ 0x22000001 => { Name => 'OriginalImageBroker', Groups => { 2 => 'Author' } },
594
+ 0x22000002 => { Name => 'DigitalImageBroker', Groups => { 2 => 'Author' } },
595
+ 0x22000003 => { Name => 'Authorship', Groups => { 2 => 'Author' } },
596
+ 0x22000004 => { Name => 'IntellectualPropertyNotes', Groups => { 2 => 'Author' } },
597
+ 0x23000000 => {
598
+ Name => 'TestTarget',
599
+ PrintConv => {
600
+ 1 => 'Color Chart',
601
+ 2 => 'Gray Card',
602
+ 3 => 'Grayscale',
603
+ 4 => 'Resolution Chart',
604
+ 5 => 'Inch Scale',
605
+ 6 => 'Centimeter Scale',
606
+ 7 => 'Millimeter Scale',
607
+ 8 => 'Micrometer Scale',
608
+ },
609
+ },
610
+ 0x23000002 => 'GroupCaption',
611
+ 0x23000003 => 'CaptionText',
612
+ 0x23000004 => 'People',
613
+ 0x23000007 => 'Things',
614
+ 0x2300000A => {
615
+ Name => 'DateTimeOriginal',
616
+ Description => 'Date/Time Original',
617
+ Groups => { 2 => 'Time' },
618
+ PrintConv => '$self->ConvertDateTime($val)',
619
+ },
620
+ 0x2300000B => 'Events',
621
+ 0x2300000C => 'Places',
622
+ 0x2300000F => 'ContentDescriptionNotes',
623
+ 0x24000000 => { Name => 'Make', Groups => { 2 => 'Camera' } },
624
+ 0x24000001 => {
625
+ Name => 'Model',
626
+ Description => 'Camera Model Name',
627
+ Groups => { 2 => 'Camera' },
628
+ },
629
+ 0x24000002 => { Name => 'SerialNumber', Groups => { 2 => 'Camera' } },
630
+ 0x25000000 => {
631
+ Name => 'CreateDate',
632
+ Groups => { 2 => 'Time' },
633
+ PrintConv => '$self->ConvertDateTime($val)',
634
+ },
635
+ 0x25000001 => {
636
+ Name => 'ExposureTime',
637
+ PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
638
+ },
639
+ 0x25000002 => {
640
+ Name => 'FNumber',
641
+ PrintConv => 'sprintf("%.1f",$val)',
642
+ },
643
+ 0x25000003 => {
644
+ Name => 'ExposureProgram',
645
+ Groups => { 2 => 'Camera' },
646
+ # use PrintConv of corresponding EXIF tag
647
+ PrintConv => $Image::ExifTool::Exif::Main{0x8822}->{PrintConv},
648
+ },
649
+ 0x25000004 => 'BrightnessValue',
650
+ 0x25000005 => 'ExposureCompensation',
651
+ 0x25000006 => {
652
+ Name => 'SubjectDistance',
653
+ Groups => { 2 => 'Camera' },
654
+ PrintConv => 'sprintf("%.3f m", $val)',
655
+ },
656
+ 0x25000007 => {
657
+ Name => 'MeteringMode',
658
+ Groups => { 2 => 'Camera' },
659
+ PrintConv => $Image::ExifTool::Exif::Main{0x9207}->{PrintConv},
660
+ },
661
+ 0x25000008 => {
662
+ Name => 'LightSource',
663
+ Groups => { 2 => 'Camera' },
664
+ PrintConv => $Image::ExifTool::Exif::Main{0x9208}->{PrintConv},
665
+ },
666
+ 0x25000009 => {
667
+ Name => 'FocalLength',
668
+ Groups => { 2 => 'Camera' },
669
+ PrintConv => 'sprintf("%.1f mm",$val)',
670
+ },
671
+ 0x2500000A => {
672
+ Name => 'MaxApertureValue',
673
+ Groups => { 2 => 'Camera' },
674
+ ValueConv => '2 ** ($val / 2)',
675
+ PrintConv => 'sprintf("%.1f",$val)',
676
+ },
677
+ 0x2500000B => {
678
+ Name => 'Flash',
679
+ Groups => { 2 => 'Camera' },
680
+ PrintConv => {
681
+ 1 => 'No Flash',
682
+ 2 => 'Flash Fired',
683
+ },
684
+ },
685
+ 0x2500000C => {
686
+ Name => 'FlashEnergy',
687
+ Groups => { 2 => 'Camera' },
688
+ },
689
+ 0x2500000D => {
690
+ Name => 'FlashReturn',
691
+ Groups => { 2 => 'Camera' },
692
+ PrintConv => {
693
+ 1 => 'Subject Outside Flash Range',
694
+ 2 => 'Subject Inside Flash Range',
695
+ },
696
+ },
697
+ 0x2500000E => {
698
+ Name => 'BackLight',
699
+ PrintConv => {
700
+ 1 => 'Front Lit',
701
+ 2 => 'Back Lit 1',
702
+ 3 => 'Back Lit 2',
703
+ },
704
+ },
705
+ 0x2500000F => { Name => 'SubjectLocation', Groups => { 2 => 'Camera' } },
706
+ 0x25000010 => 'ExposureIndex',
707
+ 0x25000011 => {
708
+ Name => 'SpecialEffectsOpticalFilter',
709
+ PrintConv => {
710
+ 1 => 'None',
711
+ 2 => 'Colored',
712
+ 3 => 'Diffusion',
713
+ 4 => 'Multi-image',
714
+ 5 => 'Polarizing',
715
+ 6 => 'Split-field',
716
+ 7 => 'Star',
717
+ },
718
+ },
719
+ 0x25000012 => 'PerPictureNotes',
720
+ 0x26000000 => {
721
+ Name => 'SensingMethod',
722
+ Groups => { 2 => 'Camera' },
723
+ PrintConv => $Image::ExifTool::Exif::Main{0x9217}->{PrintConv},
724
+ },
725
+ 0x26000001 => { Name => 'FocalPlaneXResolution', Groups => { 2 => 'Camera' } },
726
+ 0x26000002 => { Name => 'FocalPlaneYResolution', Groups => { 2 => 'Camera' } },
727
+ 0x26000003 => {
728
+ Name => 'FocalPlaneResolutionUnit',
729
+ Groups => { 2 => 'Camera' },
730
+ PrintConv => $Image::ExifTool::Exif::Main{0xa210}->{PrintConv},
731
+ },
732
+ 0x26000004 => 'SpatialFrequencyResponse',
733
+ 0x26000005 => 'CFAPattern',
734
+ 0x27000001 => {
735
+ Name => 'FilmCategory',
736
+ PrintConv => {
737
+ 1 => 'Negative B&W',
738
+ 2 => 'Negative Color',
739
+ 3 => 'Reversal B&W',
740
+ 4 => 'Reversal Color',
741
+ 5 => 'Chromagenic',
742
+ 6 => 'Internegative B&W',
743
+ 7 => 'Internegative Color',
744
+ },
745
+ },
746
+ 0x26000007 => 'ISO',
747
+ 0x26000008 => 'Opto-ElectricConvFactor',
748
+ 0x27000000 => 'FilmBrand',
749
+ 0x27000001 => 'FilmCategory',
750
+ 0x27000002 => 'FilmSize',
751
+ 0x27000003 => 'FilmRollNumber',
752
+ 0x27000004 => 'FilmFrameNumber',
753
+ 0x29000000 => 'OriginalScannedImageSize',
754
+ 0x29000001 => 'OriginalDocumentSize',
755
+ 0x29000002 => {
756
+ Name => 'OriginalMedium',
757
+ PrintConv => {
758
+ 1 => 'Continuous Tone Image',
759
+ 2 => 'Halftone Image',
760
+ 3 => 'Line Art',
761
+ },
762
+ },
763
+ 0x29000003 => {
764
+ Name => 'TypeOfOriginal',
765
+ PrintConv => {
766
+ 1 => 'B&W Print',
767
+ 2 => 'Color Print',
768
+ 3 => 'B&W Document',
769
+ 4 => 'Color Document',
770
+ },
771
+ },
772
+ 0x28000000 => 'ScannerMake',
773
+ 0x28000001 => 'ScannerModel',
774
+ 0x28000002 => 'ScannerSerialNumber',
775
+ 0x28000003 => 'ScanSoftware',
776
+ 0x28000004 => { Name => 'ScanSoftwareRevisionDate', Groups => { 2 => 'Time' } },
777
+ 0x28000005 => 'ServiceOrganizationName',
778
+ 0x28000006 => 'ScanOperatorID',
779
+ 0x28000008 => {
780
+ Name => 'ScanDate',
781
+ Groups => { 2 => 'Time' },
782
+ PrintConv => '$self->ConvertDateTime($val)',
783
+ },
784
+ 0x28000009 => {
785
+ Name => 'ModifyDate',
786
+ Groups => { 2 => 'Time' },
787
+ PrintConv => '$self->ConvertDateTime($val)',
788
+ },
789
+ 0x2800000A => 'ScannerPixelSize',
790
+ );
791
+
792
+ # Image Contents properties
793
+ %Image::ExifTool::FlashPix::Image = (
794
+ PROCESS_PROC => \&ProcessProperties,
795
+ GROUPS => { 2 => 'Image' },
796
+ # VARS storage is used as a hash lookup for tagID's which aren't constant.
797
+ # The key is a mask for significant bits of the tagID, and the value
798
+ # is a lookup for tagID's for which this mask is valid.
799
+ VARS => {
800
+ # ID's are different for each subimage
801
+ 0xff00ffff => {
802
+ 0x02000000=>1, 0x02000001=>1, 0x02000002=>1, 0x02000003=>1,
803
+ 0x02000004=>1, 0x02000005=>1, 0x02000006=>1, 0x02000007=>1,
804
+ 0x03000001=>1,
805
+ },
806
+ },
807
+ 0x01000000 => 'NumberOfResolutions',
808
+ 0x01000002 => 'ImageWidth', # width of highest resolution image
809
+ 0x01000003 => 'ImageHeight',
810
+ 0x01000004 => 'DefaultDisplayHeight',
811
+ 0x01000005 => 'DefaultDisplayWidth',
812
+ 0x01000006 => {
813
+ Name => 'DisplayUnits',
814
+ PrintConv => {
815
+ 0 => 'inches',
816
+ 1 => 'meters',
817
+ 2 => 'cm',
818
+ 3 => 'mm',
819
+ },
820
+ },
821
+ 0x02000000 => 'SubimageWidth',
822
+ 0x02000001 => 'SubimageHeight',
823
+ 0x02000002 => {
824
+ Name => 'SubimageColor',
825
+ # decode only component count and color space of first component
826
+ ValueConv => 'sprintf("%.2x %.4x", unpack("x4vx4v",$val))',
827
+ PrintConv => {
828
+ '01 0000' => 'Opacity Only',
829
+ '01 8000' => 'Opacity Only (uncalibrated)',
830
+ '01 0001' => 'Monochrome',
831
+ '01 8001' => 'Monochrome (uncalibrated)',
832
+ '03 0002' => 'YCbCr',
833
+ '03 8002' => 'YCbCr (uncalibrated)',
834
+ '03 0003' => 'RGB',
835
+ '03 8003' => 'RGB (uncalibrated)',
836
+ '04 0002' => 'YCbCr with Opacity',
837
+ '04 8002' => 'YCbCr with Opacity (uncalibrated)',
838
+ '04 0003' => 'RGB with Opacity',
839
+ '04 8003' => 'RGB with Opacity (uncalibrated)',
840
+ },
841
+ },
842
+ 0x02000003 => {
843
+ Name => 'SubimageNumericalFormat',
844
+ PrintConv => {
845
+ 17 => '8-bit, Unsigned',
846
+ 18 => '16-bit, Unsigned',
847
+ 19 => '32-bit, Unsigned',
848
+ },
849
+ },
850
+ 0x02000004 => {
851
+ Name => 'DecimationMethod',
852
+ PrintConv => {
853
+ 0 => 'None (Full-sized Image)',
854
+ 8 => '8-point Prefilter',
855
+ },
856
+ },
857
+ 0x02000005 => 'DecimationPrefilterWidth',
858
+ 0x02000007 => 'SubimageICC_Profile',
859
+ 0x03000001 => { Name => 'JPEGTables', Binary => 1 },
860
+ 0x03000002 => 'MaxJPEGTableIndex',
861
+ );
862
+
863
+ # Extension List properties
864
+ %Image::ExifTool::FlashPix::Extensions = (
865
+ PROCESS_PROC => \&ProcessProperties,
866
+ GROUPS => { 2 => 'Other' },
867
+ VARS => {
868
+ # ID's are different for each extension type
869
+ 0x0000ffff => {
870
+ 0x0001=>1, 0x0002=>1, 0x0003=>1, 0x0004=>1,
871
+ 0x0005=>1, 0x0006=>1, 0x0007=>1, 0x1000=>1,
872
+ 0x2000=>1, 0x2001=>1, 0x3000=>1, 0x4000=>1,
873
+ },
874
+ 0x0000f00f => { 0x3001=>1, 0x3002=>1 },
875
+ },
876
+ 0x10000000 => 'UsedExtensionNumbers',
877
+ 0x0001 => 'ExtensionName',
878
+ 0x0002 => 'ExtensionClassID',
879
+ 0x0003 => {
880
+ Name => 'ExtensionPersistence',
881
+ PrintConv => {
882
+ 0 => 'Always Valid',
883
+ 1 => 'Invalidated By Modification',
884
+ 2 => 'Potentially Invalidated By Modification',
885
+ },
886
+ },
887
+ 0x0004 => { Name => 'ExtensionCreateDate', Groups => { 2 => 'Time' } },
888
+ 0x0005 => { Name => 'ExtensionModifyDate', Groups => { 2 => 'Time' } },
889
+ 0x0006 => 'CreatingApplication',
890
+ 0x0007 => 'ExtensionDescription',
891
+ 0x1000 => 'Storage-StreamPathname',
892
+ 0x2000 => 'FlashPixStreamPathname',
893
+ 0x2001 => 'FlashPixStreamFieldOffset',
894
+ 0x3000 => 'PropertySetPathname',
895
+ 0x3001 => 'PropertySetIDCodes',
896
+ 0x3002 => 'PropertyVectorElements',
897
+ 0x4000 => 'SubimageResolutions',
898
+ );
899
+
900
+ # Subimage Header tags
901
+ %Image::ExifTool::FlashPix::SubimageHdr = (
902
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
903
+ FORMAT => 'int32u',
904
+ # 0 => 'HeaderLength',
905
+ 1 => 'SubimageWidth',
906
+ 2 => 'SubimageHeight',
907
+ 3 => 'SubimageTileCount',
908
+ 4 => 'SubimageTileWidth',
909
+ 5 => 'SubimageTileHeight',
910
+ 6 => 'NumChannels',
911
+ # 7 => 'TileHeaderOffset',
912
+ # 8 => 'TileHeaderLength',
913
+ # ... followed by tile header table
914
+ );
915
+
916
+ # Data Object properties
917
+ %Image::ExifTool::FlashPix::DataObject = (
918
+ PROCESS_PROC => \&ProcessProperties,
919
+ GROUPS => { 2 => 'Other' },
920
+ 0x00010000 => 'DataObjectID',
921
+ 0x00010002 => 'LockedPropertyList',
922
+ 0x00010003 => 'DataObjectTitle',
923
+ 0x00010004 => 'LastModifier',
924
+ 0x00010005 => 'RevisionNumber',
925
+ 0x00010006 => { Name => 'DataCreateDate', Groups => { 2 => 'Time' } },
926
+ 0x00010007 => { Name => 'DataModifyDate', Groups => { 2 => 'Time' } },
927
+ 0x00010008 => 'CreatingApplication',
928
+ 0x00010100 => {
929
+ Name => 'DataObjectStatus',
930
+ PrintConv => q{
931
+ ($val & 0x0000ffff ? 'Exists' : 'Does Not Exist') .
932
+ ', ' . ($val & 0xffff0000 ? 'Not ' : '') . 'Purgeable'
933
+ },
934
+ },
935
+ 0x00010101 => {
936
+ Name => 'CreatingTransform',
937
+ PrintConv => '$val ? $val : "Source Image"',
938
+ },
939
+ 0x00010102 => 'UsingTransforms',
940
+ 0x10000000 => 'CachedImageHeight',
941
+ 0x10000001 => 'CachedImageWidth',
942
+ );
943
+
944
+ # Transform properties
945
+ %Image::ExifTool::FlashPix::Transform = (
946
+ PROCESS_PROC => \&ProcessProperties,
947
+ GROUPS => { 2 => 'Other' },
948
+ 0x00010000 => 'TransformNodeID',
949
+ 0x00010001 => 'OperationClassID',
950
+ 0x00010002 => 'LockedPropertyList',
951
+ 0x00010003 => 'TransformTitle',
952
+ 0x00010004 => 'LastModifier',
953
+ 0x00010005 => 'RevisionNumber',
954
+ 0x00010006 => { Name => 'TransformCreateDate', Groups => { 2 => 'Time' } },
955
+ 0x00010007 => { Name => 'TransformModifyDate', Groups => { 2 => 'Time' } },
956
+ 0x00010008 => 'CreatingApplication',
957
+ 0x00010100 => 'InputDataObjectList',
958
+ 0x00010101 => 'OutputDataObjectList',
959
+ 0x00010102 => 'OperationNumber',
960
+ 0x10000000 => 'ResultAspectRatio',
961
+ 0x10000001 => 'RectangleOfInterest',
962
+ 0x10000002 => 'Filtering',
963
+ 0x10000003 => 'SpatialOrientation',
964
+ 0x10000004 => 'ColorTwistMatrix',
965
+ 0x10000005 => 'ContrastAdjustment',
966
+ );
967
+
968
+ # Operation properties
969
+ %Image::ExifTool::FlashPix::Operation = (
970
+ PROCESS_PROC => \&ProcessProperties,
971
+ 0x00010000 => 'OperationID',
972
+ );
973
+
974
+ # Global Info properties
975
+ %Image::ExifTool::FlashPix::GlobalInfo = (
976
+ PROCESS_PROC => \&ProcessProperties,
977
+ 0x00010002 => 'LockedPropertyList',
978
+ 0x00010003 => 'TransformedImageTitle',
979
+ 0x00010004 => 'LastModifier',
980
+ 0x00010100 => 'VisibleOutputs',
981
+ 0x00010101 => 'MaximumImageIndex',
982
+ 0x00010102 => 'MaximumTransformIndex',
983
+ 0x00010103 => 'MaximumOperationIndex',
984
+ );
985
+
986
+ # Audio Info properties
987
+ %Image::ExifTool::FlashPix::AudioInfo = (
988
+ PROCESS_PROC => \&ProcessProperties,
989
+ GROUPS => { 2 => 'Audio' },
990
+ );
991
+
992
+ # MacroMedia flash contents
993
+ %Image::ExifTool::FlashPix::Contents = (
994
+ PROCESS_PROC => \&ProcessProperties,
995
+ GROUPS => { 2 => 'Image' },
996
+ );
997
+
998
+ # CompObj tags
999
+ %Image::ExifTool::FlashPix::CompObj = (
1000
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1001
+ GROUPS => { 2 => 'Other' },
1002
+ FORMAT => 'int32u',
1003
+ 0 => { Name => 'CompObjUserTypeLen' },
1004
+ 1 => {
1005
+ Name => 'CompObjUserType',
1006
+ Format => 'string[$val{0}]',
1007
+ RawConv => '$$self{CompObjUserType} = $val', # (use to determine file type)
1008
+ },
1009
+ );
1010
+
1011
+ # FujiFilm "Property" information (ref PH)
1012
+ %Image::ExifTool::FlashPix::PreviewInfo = (
1013
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1014
+ GROUPS => { 2 => 'Image' },
1015
+ NOTES => 'Preview information written by some FujiFilm models.',
1016
+ FIRST_ENTRY => 0,
1017
+ # values are all constant for for my samples except the two decoded tags
1018
+ # 0x0000: 01 01 00 00 02 01 00 00 00 00 00 00 00 xx xx 01
1019
+ # 0x0010: 01 00 00 00 00 00 00 xx xx 00 00 00 00 00 00 00
1020
+ # 0x0020: 00 00 00 00 00
1021
+ 0x0d => {
1022
+ Name => 'PreviewImageWidth',
1023
+ Format => 'int16u',
1024
+ },
1025
+ 0x17 => {
1026
+ Name => 'PreviewImageHeight',
1027
+ Format => 'int16u',
1028
+ },
1029
+ );
1030
+
1031
+ # composite FlashPix tags
1032
+ %Image::ExifTool::FlashPix::Composite = (
1033
+ GROUPS => { 2 => 'Image' },
1034
+ PreviewImage => {
1035
+ Groups => { 2 => 'Preview' },
1036
+ # extract JPEG preview from ScreenNail if possible
1037
+ Require => {
1038
+ 0 => 'ScreenNail',
1039
+ },
1040
+ Binary => 1,
1041
+ RawConv => q{
1042
+ return undef unless $val[0] =~ /\xff\xd8\xff/g;
1043
+ return substr($val[0], pos($val[0])-3);
1044
+ },
1045
+ },
1046
+ );
1047
+
1048
+ # add our composite tags
1049
+ Image::ExifTool::AddCompositeTags('Image::ExifTool::FlashPix');
1050
+
1051
+ #------------------------------------------------------------------------------
1052
+ # Process hyperlinks from PID_HYPERLINKS array
1053
+ # (ref http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnaro97ta/html/msdn_hyper97.asp)
1054
+ # Inputs: 0) value, 1) ExifTool ref
1055
+ # Returns: list of hyperlinks
1056
+ sub ProcessHyperlinks($$)
1057
+ {
1058
+ my ($val, $et) = @_;
1059
+
1060
+ # process as an array of VT_VARIANT's
1061
+ my $dirEnd = length $val;
1062
+ return undef if $dirEnd < 4;
1063
+ my $num = Get32u(\$val, 0);
1064
+ my $valPos = 4;
1065
+ my ($i, @vals);
1066
+ for ($i=0; $i<$num; ++$i) {
1067
+ # read VT_BLOB entries as an array of VT_VARIANT's
1068
+ my $value = ReadFPXValue($et, \$val, $valPos, VT_VARIANT, $dirEnd);
1069
+ last unless defined $value;
1070
+ push @vals, $value;
1071
+ }
1072
+ # filter values to extract only the links
1073
+ my @links;
1074
+ for ($i=0; $i<@vals; $i+=6) {
1075
+ push @links, $vals[$i+4]; # get address
1076
+ $links[-1] .= '#' . $vals[$i+5] if length $vals[$i+5]; # add subaddress
1077
+ }
1078
+ return \@links;
1079
+ }
1080
+
1081
+ #------------------------------------------------------------------------------
1082
+ # Read FlashPix value
1083
+ # Inputs: 0) ExifTool ref, 1) data ref, 2) value offset, 3) FPX format number,
1084
+ # 4) end offset, 5) flag for no padding, 6) code page
1085
+ # Returns: converted value (or list of values in list context) and updates
1086
+ # value offset to end of value if successful, or returns undef on error
1087
+ sub ReadFPXValue($$$$$;$$)
1088
+ {
1089
+ my ($et, $dataPt, $valPos, $type, $dirEnd, $noPad, $codePage) = @_;
1090
+ my @vals;
1091
+
1092
+ my $format = $oleFormat{$type & 0x0fff};
1093
+ while ($format) {
1094
+ my $count = 1;
1095
+ # handle VT_VECTOR types
1096
+ my $flags = $type & 0xf000;
1097
+ if ($flags) {
1098
+ if ($flags == VT_VECTOR) {
1099
+ $noPad = 1; # values don't seem to be padded inside vectors
1100
+ my $size = $oleFormatSize{VT_VECTOR};
1101
+ last if $valPos + $size > $dirEnd;
1102
+ $count = Get32u($dataPt, $valPos);
1103
+ push @vals, '' if $count == 0; # allow zero-element vector
1104
+ $valPos += 4;
1105
+ } else {
1106
+ # can't yet handle this property flag
1107
+ last;
1108
+ }
1109
+ }
1110
+ unless ($format =~ /^VT_/) {
1111
+ my $size = Image::ExifTool::FormatSize($format) * $count;
1112
+ last if $valPos + $size > $dirEnd;
1113
+ @vals = ReadValue($dataPt, $valPos, $format, $count, $size);
1114
+ # update position to end of value plus padding
1115
+ $valPos += ($count * $size + 3) & 0xfffffffc;
1116
+ last;
1117
+ }
1118
+ my $size = $oleFormatSize{$format};
1119
+ my ($item, $val);
1120
+ for ($item=0; $item<$count; ++$item) {
1121
+ last if $valPos + $size > $dirEnd;
1122
+ if ($format eq 'VT_VARIANT') {
1123
+ my $subType = Get32u($dataPt, $valPos);
1124
+ $valPos += $size;
1125
+ $val = ReadFPXValue($et, $dataPt, $valPos, $subType, $dirEnd, $noPad, $codePage);
1126
+ last unless defined $val;
1127
+ push @vals, $val;
1128
+ next; # avoid adding $size to $valPos again
1129
+ } elsif ($format eq 'VT_FILETIME') {
1130
+ # convert from time in 100 ns increments to time in seconds
1131
+ $val = 1e-7 * Image::ExifTool::Get64u($dataPt, $valPos);
1132
+ # print as date/time if value is greater than one year (PH hack)
1133
+ my $secDay = 24 * 3600;
1134
+ if ($val > 365 * $secDay) {
1135
+ # shift from Jan 1, 1601 to Jan 1, 1970
1136
+ my $unixTimeZero = 134774 * $secDay;
1137
+ $val -= $unixTimeZero;
1138
+ # there are a lot of bad programmers out there...
1139
+ my $sec100yr = 100 * 365 * $secDay;
1140
+ if ($val < 0 || $val > $sec100yr) {
1141
+ # some software writes the wrong byte order (but the proper word order)
1142
+ my @w = unpack("x${valPos}NN", $$dataPt);
1143
+ my $v2 = ($w[0] + $w[1] * 4294967296) * 1e-7 - $unixTimeZero;
1144
+ if ($v2 > 0 && $v2 < $sec100yr) {
1145
+ $val = $v2;
1146
+ # also check for wrong time base
1147
+ } elsif ($val < 0 && $val + $unixTimeZero > 0) {
1148
+ $val += $unixTimeZero;
1149
+ }
1150
+ }
1151
+ $val = Image::ExifTool::ConvertUnixTime($val);
1152
+ }
1153
+ } elsif ($format eq 'VT_DATE') {
1154
+ $val = Image::ExifTool::GetDouble($dataPt, $valPos);
1155
+ # shift zero from Dec 30, 1899 to Jan 1, 1970 and convert to secs
1156
+ $val = ($val - 25569) * 24 * 3600 if $val != 0;
1157
+ $val = Image::ExifTool::ConvertUnixTime($val);
1158
+ } elsif ($format =~ /STR$/) {
1159
+ my $len = Get32u($dataPt, $valPos);
1160
+ $len *= 2 if $format eq 'VT_LPWSTR'; # convert to byte count
1161
+ last if $valPos + $len + 4 > $dirEnd;
1162
+ $val = substr($$dataPt, $valPos + 4, $len);
1163
+ if ($format eq 'VT_LPWSTR') {
1164
+ # convert wide string from Unicode
1165
+ $val = $et->Decode($val, 'UCS2');
1166
+ } elsif ($codePage) {
1167
+ my $charset = $Image::ExifTool::charsetName{"cp$codePage"};
1168
+ if ($charset) {
1169
+ $val = $et->Decode($val, $charset);
1170
+ } elsif ($codePage eq 1200) { # UTF-16, little endian
1171
+ $val = $et->Decode(undef, 'UCS2', 'II');
1172
+ }
1173
+ }
1174
+ $val =~ s/\0.*//s; # truncate at null terminator
1175
+ # update position for string length
1176
+ # (the spec states that strings should be padded to align
1177
+ # on even 32-bit boundaries, but this isn't always the case)
1178
+ $valPos += $noPad ? $len : ($len + 3) & 0xfffffffc;
1179
+ } elsif ($format eq 'VT_BLOB' or $format eq 'VT_CF') {
1180
+ my $len = Get32u($dataPt, $valPos);
1181
+ last if $valPos + $len + 4 > $dirEnd;
1182
+ $val = substr($$dataPt, $valPos + 4, $len);
1183
+ # update position for data length plus padding
1184
+ # (does this padding disappear in arrays too?)
1185
+ $valPos += ($len + 3) & 0xfffffffc;
1186
+ } elsif ($format eq 'VT_CLSID') {
1187
+ $val = Image::ExifTool::ASF::GetGUID(substr($$dataPt, $valPos, $size));
1188
+ }
1189
+ $valPos += $size; # update value pointer to end of value
1190
+ push @vals, $val;
1191
+ }
1192
+ # join VT_ values with commas unless we want an array
1193
+ @vals = ( join $et->Options('ListSep'), @vals ) if @vals > 1 and not wantarray;
1194
+ last; # didn't really want to loop
1195
+ }
1196
+ $_[2] = $valPos; # return updated value position
1197
+
1198
+ if (wantarray) {
1199
+ return @vals;
1200
+ } elsif (@vals > 1) {
1201
+ return join(' ', @vals);
1202
+ } else {
1203
+ return $vals[0];
1204
+ }
1205
+ }
1206
+
1207
+ #------------------------------------------------------------------------------
1208
+ # Scan for XMP in FLA Contents (ref PH)
1209
+ # Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
1210
+ # Returns: 1 on success
1211
+ # Notes: FLA format is proprietary and I couldn't find any documentation,
1212
+ # so this routine is entirely based on observations from sample files
1213
+ sub ProcessContents($$$)
1214
+ {
1215
+ my ($et, $dirInfo, $tagTablePtr) = @_;
1216
+ my $dataPt = $$dirInfo{DataPt};
1217
+ my $isFLA;
1218
+
1219
+ # all of my FLA samples contain "Contents" data, an no other FPX-like samples have
1220
+ # this, but check the data for a familiar pattern to be sure this is FLA: the
1221
+ # Contents of all of my FLA samples start with two bytes (0x29,0x38,0x3f,0x43 or 0x47,
1222
+ # then 0x01) followed by a number of zero bytes (from 0x18 to 0x26 of them, related
1223
+ # somehow to the value of the first byte), followed by the string "DocumentPage"
1224
+ $isFLA = 1 if $$dataPt =~ /^..\0+\xff\xff\x01\0\x0d\0CDocumentPage/s;
1225
+
1226
+ # do a brute-force scan of the "Contents" for UTF-16 XMP
1227
+ # (this may always be little-endian, but allow for either endianness)
1228
+ if ($$dataPt =~ /<\0\?\0x\0p\0a\0c\0k\0e\0t\0 \0b\0e\0g\0i\0n\0=\0['"](\0\xff\xfe|\xfe\xff)/g) {
1229
+ $$dirInfo{DirStart} = pos($$dataPt) - 36;
1230
+ if ($$dataPt =~ /<\0\?\0x\0p\0a\0c\0k\0e\0t\0 \0e\0n\0d\0=\0['"]\0[wr]\0['"]\0\?\0>\0?/g) {
1231
+ $$dirInfo{DirLen} = pos($$dataPt) - $$dirInfo{DirStart};
1232
+ Image::ExifTool::XMP::ProcessXMP($et, $dirInfo, $tagTablePtr);
1233
+ # override format if not already FLA but XMP-dc:Format indicates it is
1234
+ $isFLA = 1 if $$et{FILE_TYPE} ne 'FLA' and $$et{VALUE}{Format} and
1235
+ $$et{VALUE}{Format} eq 'application/vnd.adobe.fla';
1236
+ }
1237
+ }
1238
+ $et->OverrideFileType('FLA') if $isFLA;
1239
+ return 1;
1240
+ }
1241
+
1242
+ #------------------------------------------------------------------------------
1243
+ # Check FPX byte order mark (BOM) and set byte order appropriately
1244
+ # Inputs: 0) data ref, 1) offset to BOM
1245
+ # Returns: true on success
1246
+ sub CheckBOM($$)
1247
+ {
1248
+ my ($dataPt, $pos) = @_;
1249
+ my $bom = Get16u($dataPt, $pos);
1250
+ return 1 if $bom == 0xfffe;
1251
+ return 0 unless $bom == 0xfeff;
1252
+ ToggleByteOrder();
1253
+ return 1;
1254
+ }
1255
+
1256
+ #------------------------------------------------------------------------------
1257
+ # Process FlashPix properties
1258
+ # Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
1259
+ # Returns: 1 on success
1260
+ sub ProcessProperties($$$)
1261
+ {
1262
+ my ($et, $dirInfo, $tagTablePtr) = @_;
1263
+ my $dataPt = $$dirInfo{DataPt};
1264
+ my $pos = $$dirInfo{DirStart} || 0;
1265
+ my $dirLen = $$dirInfo{DirLen} || length($$dataPt) - $pos;
1266
+ my $dirEnd = $pos + $dirLen;
1267
+ my $verbose = $et->Options('Verbose');
1268
+ my $n;
1269
+
1270
+ if ($dirLen < 48) {
1271
+ $et->Warn('Truncated FPX properties');
1272
+ return 0;
1273
+ }
1274
+ # check and set our byte order if necessary
1275
+ unless (CheckBOM($dataPt, $pos)) {
1276
+ $et->Warn('Bad FPX property byte order mark');
1277
+ return 0;
1278
+ }
1279
+ # get position of start of section
1280
+ $pos = Get32u($dataPt, $pos + 44);
1281
+ if ($pos < 48) {
1282
+ $et->Warn('Bad FPX property section offset');
1283
+ return 0;
1284
+ }
1285
+ for ($n=0; $n<2; ++$n) {
1286
+ my %dictionary; # dictionary to translate user-defined properties
1287
+ my $codePage;
1288
+ last if $pos + 8 > $dirEnd;
1289
+ # read property section header
1290
+ my $size = Get32u($dataPt, $pos);
1291
+ last unless $size;
1292
+ my $numEntries = Get32u($dataPt, $pos + 4);
1293
+ $verbose and $et->VerboseDir('Property Info', $numEntries, $size);
1294
+ if ($pos + 8 + 8 * $numEntries > $dirEnd) {
1295
+ $et->Warn('Truncated property list');
1296
+ last;
1297
+ }
1298
+ my $index;
1299
+ for ($index=0; $index<$numEntries; ++$index) {
1300
+ my $entry = $pos + 8 + 8 * $index;
1301
+ my $tag = Get32u($dataPt, $entry);
1302
+ my $offset = Get32u($dataPt, $entry + 4);
1303
+ my $valStart = $pos + 4 + $offset;
1304
+ last if $valStart >= $dirEnd;
1305
+ my $valPos = $valStart;
1306
+ my $type = Get32u($dataPt, $pos + $offset);
1307
+ if ($tag == 0) {
1308
+ # read dictionary to get tag name lookup for this property set
1309
+ my $i;
1310
+ for ($i=0; $i<$type; ++$i) {
1311
+ last if $valPos + 8 > $dirEnd;
1312
+ $tag = Get32u($dataPt, $valPos);
1313
+ my $len = Get32u($dataPt, $valPos + 4);
1314
+ $valPos += 8 + $len;
1315
+ last if $valPos > $dirEnd;
1316
+ my $name = substr($$dataPt, $valPos - $len, $len);
1317
+ $name =~ s/\0.*//s;
1318
+ next unless length $name;
1319
+ $dictionary{$tag} = $name;
1320
+ next if $$tagTablePtr{$name};
1321
+ $tag = $name;
1322
+ $name =~ s/(^| )([a-z])/\U$2/g; # start with uppercase
1323
+ $name =~ tr/-_a-zA-Z0-9//dc; # remove illegal characters
1324
+ next unless length $name;
1325
+ $et->VPrint(0, "$$et{INDENT}\[adding $name]\n") if $verbose;
1326
+ AddTagToTable($tagTablePtr, $tag, { Name => $name });
1327
+ }
1328
+ next;
1329
+ }
1330
+ # use tag name from dictionary if available
1331
+ my ($custom, $val);
1332
+ if (defined $dictionary{$tag}) {
1333
+ $tag = $dictionary{$tag};
1334
+ $custom = 1;
1335
+ }
1336
+ my @vals = ReadFPXValue($et, $dataPt, $valPos, $type, $dirEnd, undef, $codePage);
1337
+ @vals or $et->Warn('Error reading property value');
1338
+ $val = @vals > 1 ? \@vals : $vals[0];
1339
+ my $format = $type & 0x0fff;
1340
+ my $flags = $type & 0xf000;
1341
+ my $formStr = $oleFormat{$format} || "Type $format";
1342
+ $formStr .= '|' . ($oleFlags{$flags} || sprintf("0x%x",$flags)) if $flags;
1343
+ my $tagInfo;
1344
+ # check for common tag ID's: Dictionary, CodePage and LocaleIndicator
1345
+ # (must be done before masking because masked tags may overlap these ID's)
1346
+ if (not $custom and ($tag == 1 or $tag == 0x80000000)) {
1347
+ # get tagInfo from SummaryInfo table
1348
+ my $summaryTable = GetTagTable('Image::ExifTool::FlashPix::SummaryInfo');
1349
+ $tagInfo = $et->GetTagInfo($summaryTable, $tag);
1350
+ if ($tag == 1) {
1351
+ $val += 0x10000 if $val < 0; # (may be incorrectly stored as int16s)
1352
+ $codePage = $val; # save code page for translating values
1353
+ }
1354
+ } elsif ($$tagTablePtr{$tag}) {
1355
+ $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
1356
+ } elsif ($$tagTablePtr{VARS} and not $custom) {
1357
+ # mask off insignificant bits of tag ID if necessary
1358
+ my $masked = $$tagTablePtr{VARS};
1359
+ my $mask;
1360
+ foreach $mask (keys %$masked) {
1361
+ if ($masked->{$mask}->{$tag & $mask}) {
1362
+ $tagInfo = $et->GetTagInfo($tagTablePtr, $tag & $mask);
1363
+ last;
1364
+ }
1365
+ }
1366
+ }
1367
+ $et->HandleTag($tagTablePtr, $tag, $val,
1368
+ DataPt => $dataPt,
1369
+ Start => $valStart,
1370
+ Size => $valPos - $valStart,
1371
+ Format => $formStr,
1372
+ Index => $index,
1373
+ TagInfo => $tagInfo,
1374
+ Extra => ", type=$type",
1375
+ );
1376
+ }
1377
+ # issue warning if we hit end of property section prematurely
1378
+ $et->Warn('Truncated property data') if $index < $numEntries;
1379
+ last unless $$dirInfo{Multi};
1380
+ $pos += $size;
1381
+ }
1382
+
1383
+ return 1;
1384
+ }
1385
+
1386
+ #------------------------------------------------------------------------------
1387
+ # Load chain of sectors from file
1388
+ # Inputs: 0) RAF ref, 1) first sector number, 2) FAT ref, 3) sector size, 4) header size
1389
+ sub LoadChain($$$$$)
1390
+ {
1391
+ my ($raf, $sect, $fatPt, $sectSize, $hdrSize) = @_;
1392
+ return undef unless $raf;
1393
+ my $chain = '';
1394
+ my ($buff, %loadedSect);
1395
+ for (;;) {
1396
+ last if $sect >= END_OF_CHAIN;
1397
+ return undef if $loadedSect{$sect}; # avoid infinite loop
1398
+ $loadedSect{$sect} = 1;
1399
+ my $offset = $sect * $sectSize + $hdrSize;
1400
+ return undef unless ($offset <= 0x7fffffff or $$raf{LargeFileSupport}) and
1401
+ $raf->Seek($offset, 0) and
1402
+ $raf->Read($buff, $sectSize) == $sectSize;
1403
+ $chain .= $buff;
1404
+ # step to next sector in chain
1405
+ return undef if $sect * 4 > length($$fatPt) - 4;
1406
+ $sect = Get32u($fatPt, $sect * 4);
1407
+ }
1408
+ return $chain;
1409
+ }
1410
+
1411
+ #------------------------------------------------------------------------------
1412
+ # Extract information from a JPEG APP2 FPXR segment
1413
+ # Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
1414
+ # Returns: 1 on success
1415
+ sub ProcessFPXR($$$)
1416
+ {
1417
+ my ($et, $dirInfo, $tagTablePtr) = @_;
1418
+ my $dataPt = $$dirInfo{DataPt};
1419
+ my $dirStart = $$dirInfo{DirStart};
1420
+ my $dirLen = $$dirInfo{DirLen};
1421
+ my $verbose = $et->Options('Verbose');
1422
+
1423
+ if ($dirLen < 13) {
1424
+ $et->Warn('FPXR segment too small');
1425
+ return 0;
1426
+ }
1427
+
1428
+ # get version and segment type (version is 0 in all my samples)
1429
+ my ($vers, $type) = unpack('x5C2', $$dataPt);
1430
+
1431
+ if ($type == 1) { # a "Contents List" segment
1432
+
1433
+ $vers != 0 and $et->Warn("Untested FPXR version $vers");
1434
+ if ($$et{FPXR}) {
1435
+ $et->Warn('Multiple FPXR contents lists');
1436
+ delete $$et{FPXR};
1437
+ }
1438
+ my $numEntries = unpack('x7n', $$dataPt);
1439
+ my @contents;
1440
+ $verbose and $et->VerboseDir('Contents List', $numEntries);
1441
+ my $pos = 9;
1442
+ my $entry;
1443
+ for ($entry = 0; $entry < $numEntries; ++$entry) {
1444
+ if ($pos + 4 > $dirLen) {
1445
+ $et->Warn('Truncated FPXR contents');
1446
+ return 0;
1447
+ }
1448
+ my ($size, $default) = unpack("x${pos}Na", $$dataPt);
1449
+ pos($$dataPt) = $pos + 5;
1450
+ # according to the spec, this string is little-endian
1451
+ # (very odd, since the size word is big-endian),
1452
+ # and the first char must be '/'
1453
+ unless ($$dataPt =~ m{\G(/\0(..)*?)\0\0}sg) {
1454
+ $et->Warn('Invalid FPXR stream name');
1455
+ return 0;
1456
+ }
1457
+ # convert stream pathname to ascii
1458
+ my $name = Image::ExifTool::Decode(undef, $1, 'UCS2', 'II', 'Latin');
1459
+ if ($verbose) {
1460
+ my $psize = ($size == 0xffffffff) ? 'storage' : "$size bytes";
1461
+ $et->VPrint(0," | $entry) Name: '$name' [$psize]\n");
1462
+ }
1463
+ # remove directory specification
1464
+ $name =~ s{.*/}{}s;
1465
+ # read storage class ID if necessary
1466
+ my $classID;
1467
+ if ($size == 0xffffffff) {
1468
+ unless ($$dataPt =~ m{(.{16})}sg) {
1469
+ $et->Warn('Truncated FPXR storage class ID');
1470
+ return 0;
1471
+ }
1472
+ # unpack class ID in case we want to use it sometime
1473
+ $classID = Image::ExifTool::ASF::GetGUID($1);
1474
+ }
1475
+ # find the tagInfo if available
1476
+ my $tagInfo;
1477
+ unless ($$tagTablePtr{$name}) {
1478
+ # remove instance number or class ID from tag if necessary
1479
+ $tagInfo = $et->GetTagInfo($tagTablePtr, $1) if
1480
+ ($name =~ /(.*) \d{6}$/s and $$tagTablePtr{$1}) or
1481
+ ($name =~ /(.*)_[0-9a-f]{16}$/s and $$tagTablePtr{$1});
1482
+ }
1483
+ # update position in list
1484
+ $pos = pos($$dataPt);
1485
+ # add to our contents list
1486
+ push @contents, {
1487
+ Name => $name,
1488
+ Size => $size,
1489
+ Default => $default,
1490
+ ClassID => $classID,
1491
+ TagInfo => $tagInfo,
1492
+ };
1493
+ }
1494
+ # save contents list as $et member variable
1495
+ # (must do this last so we don't save list on error)
1496
+ $$et{FPXR} = \@contents;
1497
+
1498
+ } elsif ($type == 2) { # a "Stream Data" segment
1499
+
1500
+ # get the contents list index and stream data offset
1501
+ my ($index, $offset) = unpack('x7nN', $$dataPt);
1502
+ my $fpxr = $$et{FPXR};
1503
+ if ($fpxr and $$fpxr[$index]) {
1504
+ my $obj = $$fpxr[$index];
1505
+ # extract stream data (after 13-byte header)
1506
+ if (not defined $$obj{Stream}) {
1507
+ # ignore offset for first segment of this type
1508
+ # (in my sample images, this isn't always zero as one would expect)
1509
+ $$obj{Stream} = substr($$dataPt, $dirStart+13);
1510
+ } else {
1511
+ # add data at the proper offset to the stream
1512
+ my $overlap = length($$obj{Stream}) - $offset;
1513
+ my $start = $dirStart + 13;
1514
+ if ($overlap < 0 or $dirLen - $overlap < 13) {
1515
+ $et->WarnOnce("Bad FPXR stream $index offset",1);
1516
+ } else {
1517
+ # ignore any overlapping data in this segment
1518
+ # (this seems to be the convention)
1519
+ $start += $overlap;
1520
+ }
1521
+ # concatenate data with this stream
1522
+ $$obj{Stream} .= substr($$dataPt, $start);
1523
+ }
1524
+ # save value for this tag if stream is complete
1525
+ my $len = length $$obj{Stream};
1526
+ if ($len >= $$obj{Size}) {
1527
+ $et->VPrint(0, " + [FPXR stream $index, $len bytes]\n") if $verbose;
1528
+ if ($len > $$obj{Size}) {
1529
+ $et->Warn('Extra data in FPXR segment (truncated)');
1530
+ $$obj{Stream} = substr($$obj{Stream}, 0, $$obj{Size});
1531
+ }
1532
+ # handle this tag
1533
+ $et->HandleTag($tagTablePtr, $$obj{Name}, $$obj{Stream},
1534
+ DataPt => \$$obj{Stream},
1535
+ TagInfo => $$obj{TagInfo},
1536
+ );
1537
+ delete $$obj{Stream}; # done with this stream
1538
+ }
1539
+ # hack for improperly stored FujiFilm PreviewImage (stored with no contents list)
1540
+ } elsif ($index == 512 and $dirLen > 60 and ($$et{FujiPreview} or
1541
+ ($dirLen > 64 and substr($$dataPt, $dirStart+60, 4) eq "\xff\xd8\xff\xdb")))
1542
+ {
1543
+ $$et{FujiPreview} = '' unless defined $$et{FujiPreview};
1544
+ # recombine PreviewImage, skipping 13-byte FPXR header + 47-byte Fuji header
1545
+ $$et{FujiPreview} .= substr($$dataPt, $dirStart+60);
1546
+ } else {
1547
+ # (Kodak uses index 255 for a free segment in images from some cameras)
1548
+ $et->Warn("Unlisted FPXR segment (index $index)") if $index != 255;
1549
+ }
1550
+
1551
+ } elsif ($type ne 3) { # not a "Reserved" segment
1552
+
1553
+ $et->Warn("Unknown FPXR segment (type $type)");
1554
+
1555
+ }
1556
+
1557
+ # clean up if this was the last FPXR segment
1558
+ if ($$dirInfo{LastFPXR}) {
1559
+ if ($$et{FPXR}) {
1560
+ my $obj;
1561
+ foreach $obj (@{$$et{FPXR}}) {
1562
+ next unless defined $$obj{Stream} and length $$obj{Stream};
1563
+ # parse it even though it isn't the proper length
1564
+ $et->HandleTag($tagTablePtr, $$obj{Name}, $$obj{Stream},
1565
+ DataPt => \$$obj{Stream},
1566
+ TagInfo => $$obj{TagInfo},
1567
+ );
1568
+ }
1569
+ delete $$et{FPXR}; # delete our temporary variables
1570
+ }
1571
+ if ($$et{FujiPreview}) {
1572
+ $et->FoundTag('PreviewImage', $$et{FujiPreview});
1573
+ delete $$et{FujiPreview};
1574
+ }
1575
+ }
1576
+ return 1;
1577
+ }
1578
+
1579
+ #------------------------------------------------------------------------------
1580
+ # Set document number for objects
1581
+ # Inputs: 0) object hierarchy hash ref, 1) object index, 2) doc number list ref,
1582
+ # 3) doc numbers used at each level, 4) flag set for metadata levels
1583
+ sub SetDocNum($$;$$$)
1584
+ {
1585
+ my ($hier, $index, $doc, $used, $meta) = @_;
1586
+ my $obj = $$hier{$index} or return;
1587
+ return if exists $$obj{DocNum};
1588
+ $$obj{DocNum} = $doc;
1589
+ SetDocNum($hier, $$obj{Left}, $doc, $used, $meta) if $$obj{Left};
1590
+ SetDocNum($hier, $$obj{Right}, $doc, $used, $meta) if $$obj{Right};
1591
+ if (defined $$obj{Child}) {
1592
+ $used or $used = [ ];
1593
+ my @subDoc;
1594
+ push @subDoc, @$doc if $doc;
1595
+ # we must dive down 2 levels for each sub-document, so use the
1596
+ # $meta flag to add a sub-document level only for every 2nd generation
1597
+ if ($meta) {
1598
+ my $subNum = ($$used[scalar @subDoc] || 0);
1599
+ $$used[scalar @subDoc] = $subNum;
1600
+ push @subDoc, $subNum;
1601
+ } elsif (@subDoc) {
1602
+ $subDoc[-1] = ++$$used[$#subDoc];
1603
+ }
1604
+ SetDocNum($hier, $$obj{Child}, \@subDoc, $used, not $meta)
1605
+ }
1606
+ }
1607
+
1608
+ #------------------------------------------------------------------------------
1609
+ # Extract information from a FlashPix (FPX) file
1610
+ # Inputs: 0) ExifTool object ref, 1) dirInfo ref
1611
+ # Returns: 1 on success, 0 if this wasn't a valid FPX-format file
1612
+ sub ProcessFPX($$)
1613
+ {
1614
+ my ($et, $dirInfo) = @_;
1615
+ my $raf = $$dirInfo{RAF};
1616
+ my ($buff, $out, %dumpParms, $oldIndent, $miniStreamBuff);
1617
+ my ($tag, %hier, %objIndex);
1618
+
1619
+ # read header
1620
+ return 0 unless $raf->Read($buff,HDR_SIZE) == HDR_SIZE;
1621
+ # check signature
1622
+ return 0 unless $buff =~ /^\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1/;
1623
+
1624
+ # set FileType initially based on file extension (we may override this later)
1625
+ my $fileType = $$et{FILE_EXT};
1626
+ $fileType = 'FPX' unless $fileType and $fpxFileType{$fileType};
1627
+ $et->SetFileType($fileType);
1628
+ SetByteOrder(substr($buff, 0x1c, 2) eq "\xff\xfe" ? 'MM' : 'II');
1629
+ my $tagTablePtr = GetTagTable('Image::ExifTool::FlashPix::Main');
1630
+ my $verbose = $et->Options('Verbose');
1631
+ # copy LargeFileSupport option to RAF for use in LoadChain
1632
+ $$raf{LargeFileSupport} = $et->Options('LargeFileSupport');
1633
+
1634
+ my $sectSize = 1 << Get16u(\$buff, 0x1e);
1635
+ my $miniSize = 1 << Get16u(\$buff, 0x20);
1636
+ my $fatCount = Get32u(\$buff, 0x2c); # number of FAT sectors
1637
+ my $dirStart = Get32u(\$buff, 0x30); # first directory sector
1638
+ my $miniCutoff = Get32u(\$buff, 0x38); # minimum size for big-FAT streams
1639
+ my $miniStart = Get32u(\$buff, 0x3c); # first sector of mini-FAT
1640
+ my $miniCount = Get32u(\$buff, 0x40); # number of mini-FAT sectors
1641
+ my $difStart = Get32u(\$buff, 0x44); # first sector of DIF chain
1642
+ my $difCount = Get32u(\$buff, 0x48); # number of DIF sectors
1643
+
1644
+ if ($verbose) {
1645
+ $out = $et->Options('TextOut');
1646
+ $dumpParms{Out} = $out;
1647
+ $dumpParms{MaxLen} = 96 if $verbose == 3;
1648
+ print $out " Sector size=$sectSize\n FAT: Count=$fatCount\n";
1649
+ print $out " DIR: Start=$dirStart\n";
1650
+ print $out " MiniFAT: Mini-sector size=$miniSize Start=$miniStart Count=$miniCount Cutoff=$miniCutoff\n";
1651
+ print $out " DIF FAT: Start=$difStart Count=$difCount\n";
1652
+ }
1653
+ #
1654
+ # load the FAT
1655
+ #
1656
+ my $pos = 0x4c;
1657
+ my $endPos = length($buff);
1658
+ my $fat = '';
1659
+ my $fatCountCheck = 0;
1660
+ for (;;) {
1661
+ while ($pos <= $endPos - 4) {
1662
+ my $sect = Get32u(\$buff, $pos);
1663
+ $pos += 4;
1664
+ next if $sect == FREE_SECT;
1665
+ my $offset = $sect * $sectSize + HDR_SIZE;
1666
+ my $fatSect;
1667
+ unless ($raf->Seek($offset, 0) and
1668
+ $raf->Read($fatSect, $sectSize) == $sectSize)
1669
+ {
1670
+ $et->Error("Error reading FAT from sector $sect");
1671
+ return 1;
1672
+ }
1673
+ $fat .= $fatSect;
1674
+ ++$fatCountCheck;
1675
+ }
1676
+ last if $difStart >= END_OF_CHAIN;
1677
+ # read next DIF (Dual Indirect FAT) sector
1678
+ my $offset = $difStart * $sectSize + HDR_SIZE;
1679
+ unless ($raf->Seek($offset, 0) and $raf->Read($buff, $sectSize) == $sectSize) {
1680
+ $et->Error("Error reading DIF sector $difStart");
1681
+ return 1;
1682
+ }
1683
+ # set end of sector information in this DIF
1684
+ $pos = 0;
1685
+ $endPos = $sectSize - 4;
1686
+ # next time around we want to read next DIF in chain
1687
+ $difStart = Get32u(\$buff, $endPos);
1688
+ }
1689
+ if ($fatCountCheck != $fatCount) {
1690
+ $et->Warn("Bad number of FAT sectors (expected $fatCount but found $fatCountCheck)");
1691
+ }
1692
+ #
1693
+ # load the mini-FAT and the directory
1694
+ #
1695
+ my $miniFat = LoadChain($raf, $miniStart, \$fat, $sectSize, HDR_SIZE);
1696
+ my $dir = LoadChain($raf, $dirStart, \$fat, $sectSize, HDR_SIZE);
1697
+ unless (defined $miniFat and defined $dir) {
1698
+ $et->Error('Error reading mini-FAT or directory stream');
1699
+ return 1;
1700
+ }
1701
+ if ($verbose) {
1702
+ print $out " FAT [",length($fat)," bytes]:\n";
1703
+ HexDump(\$fat, undef, %dumpParms) if $verbose > 2;
1704
+ print $out " Mini-FAT [",length($miniFat)," bytes]:\n";
1705
+ HexDump(\$miniFat, undef, %dumpParms) if $verbose > 2;
1706
+ print $out " Directory [",length($dir)," bytes]:\n";
1707
+ HexDump(\$dir, undef, %dumpParms) if $verbose > 2;
1708
+ }
1709
+ #
1710
+ # process the directory
1711
+ #
1712
+ if ($verbose) {
1713
+ $oldIndent = $$et{INDENT};
1714
+ $$et{INDENT} .= '| ';
1715
+ $et->VerboseDir('FPX', undef, length $dir);
1716
+ }
1717
+ my $miniStream;
1718
+ $endPos = length($dir);
1719
+ my $index = 0;
1720
+
1721
+ for ($pos=0; $pos<=$endPos-128; $pos+=128, ++$index) {
1722
+
1723
+ # get directory entry type
1724
+ # (0=invalid, 1=storage, 2=stream, 3=lockbytes, 4=property, 5=root)
1725
+ my $type = Get8u(\$dir, $pos + 0x42);
1726
+ next if $type == 0; # skip invalid entries
1727
+ if ($type > 5) {
1728
+ $et->Warn("Invalid directory entry type $type");
1729
+ last; # rest of directory is probably garbage
1730
+ }
1731
+ # get entry name (note: this is supposed to be length in 2-byte
1732
+ # characters but this isn't what is done in my sample FPX file, so
1733
+ # be very tolerant of this count -- it's null terminated anyway)
1734
+ my $len = Get16u(\$dir, $pos + 0x40);
1735
+ $len > 32 and $len = 32;
1736
+ $tag = Image::ExifTool::Decode(undef, substr($dir,$pos,$len*2), 'UCS2', 'II', 'Latin');
1737
+ $tag =~ s/\0.*//s; # truncate at null (in case length was wrong)
1738
+
1739
+ my $sect = Get32u(\$dir, $pos + 0x74); # start sector number
1740
+ my $size = Get32u(\$dir, $pos + 0x78); # stream length
1741
+
1742
+ # load Ministream (referenced from first directory entry)
1743
+ unless ($miniStream) {
1744
+ $miniStreamBuff = LoadChain($raf, $sect, \$fat, $sectSize, HDR_SIZE);
1745
+ unless (defined $miniStreamBuff) {
1746
+ $et->Warn('Error loading Mini-FAT stream');
1747
+ last;
1748
+ }
1749
+ $miniStream = new File::RandomAccess(\$miniStreamBuff);
1750
+ }
1751
+
1752
+ my $tagInfo;
1753
+ if ($$tagTablePtr{$tag}) {
1754
+ $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
1755
+ } else {
1756
+ # remove instance number or class ID from tag if necessary
1757
+ $tagInfo = $et->GetTagInfo($tagTablePtr, $1) if
1758
+ ($tag =~ /(.*) \d{6}$/s and $$tagTablePtr{$1}) or
1759
+ ($tag =~ /(.*)_[0-9a-f]{16}$/s and $$tagTablePtr{$1});
1760
+ }
1761
+
1762
+ my $lSib = Get32u(\$dir, $pos + 0x44); # left sibling
1763
+ my $rSib = Get32u(\$dir, $pos + 0x48); # right sibling
1764
+ my $chld = Get32u(\$dir, $pos + 0x4c); # child directory
1765
+
1766
+ # save information about object hierachy
1767
+ my ($obj, $sub);
1768
+ $obj = $hier{$index} or $obj = $hier{$index} = { };
1769
+ $$obj{Left} = $lSib unless $lSib == FREE_SECT;
1770
+ $$obj{Right} = $rSib unless $rSib == FREE_SECT;
1771
+ unless ($chld == FREE_SECT) {
1772
+ $$obj{Child} = $chld;
1773
+ $sub = $hier{$chld} or $sub = $hier{$chld} = { };
1774
+ $$sub{Parent} = $index;
1775
+ }
1776
+
1777
+ next unless $tagInfo or $verbose;
1778
+
1779
+ # load the data for stream types
1780
+ my $extra = '';
1781
+ my $typeStr = $dirEntryType[$type] || $type;
1782
+ if ($typeStr eq 'STREAM') {
1783
+ if ($size >= $miniCutoff) {
1784
+ # stream is in the main FAT
1785
+ $buff = LoadChain($raf, $sect, \$fat, $sectSize, HDR_SIZE);
1786
+ } elsif ($size) {
1787
+ # stream is in the mini-FAT
1788
+ $buff = LoadChain($miniStream, $sect, \$miniFat, $miniSize, 0);
1789
+ } else {
1790
+ $buff = ''; # an empty stream
1791
+ }
1792
+ unless (defined $buff) {
1793
+ my $name = $tagInfo ? $$tagInfo{Name} : 'unknown';
1794
+ $et->Warn("Error reading $name stream");
1795
+ $buff = '';
1796
+ }
1797
+ } elsif ($typeStr eq 'ROOT') {
1798
+ $buff = $miniStreamBuff;
1799
+ $extra .= ' (Ministream)';
1800
+ } else {
1801
+ $buff = '';
1802
+ undef $size;
1803
+ }
1804
+ if ($verbose) {
1805
+ my $flags = Get8u(\$dir, $pos + 0x43); # 0=red, 1=black
1806
+ my $col = { 0 => 'Red', 1 => 'Black' }->{$flags} || $flags;
1807
+ $extra .= " Type=$typeStr Flags=$col";
1808
+ $extra .= " Left=$lSib" unless $lSib == FREE_SECT;
1809
+ $extra .= " Right=$rSib" unless $rSib == FREE_SECT;
1810
+ $extra .= " Child=$chld" unless $chld == FREE_SECT;
1811
+ $et->VerboseInfo($tag, $tagInfo,
1812
+ Index => $index,
1813
+ Value => $buff,
1814
+ DataPt => \$buff,
1815
+ Extra => $extra,
1816
+ Size => $size,
1817
+ );
1818
+ }
1819
+ if ($tagInfo and $buff) {
1820
+ my $num = $$et{NUM_FOUND};
1821
+ my $subdir = $$tagInfo{SubDirectory};
1822
+ if ($subdir) {
1823
+ my %dirInfo = (
1824
+ DataPt => \$buff,
1825
+ DirStart => $$subdir{DirStart},
1826
+ DirLen => length $buff,
1827
+ Multi => $$tagInfo{Multi},
1828
+ );
1829
+ my $subTablePtr = GetTagTable($$subdir{TagTable});
1830
+ $et->ProcessDirectory(\%dirInfo, $subTablePtr, $$subdir{ProcessProc});
1831
+ } else {
1832
+ $et->FoundTag($tagInfo, $buff);
1833
+ }
1834
+ # save object index number for all found tags
1835
+ my $num2 = $$et{NUM_FOUND};
1836
+ $objIndex{++$num} = $index while $num < $num2;
1837
+ }
1838
+ }
1839
+ # set document numbers for tags extracted from embedded documents
1840
+ unless ($$et{DOC_NUM}) {
1841
+ # initialize document number for all objects, beginning at root (index 0)
1842
+ SetDocNum(\%hier, 0);
1843
+ # set family 3 group name for all tags in embedded documents
1844
+ my $order = $$et{FILE_ORDER};
1845
+ my (@pri, $copy, $member);
1846
+ foreach $tag (keys %$order) {
1847
+ my $num = $$order{$tag};
1848
+ next unless defined $num and $objIndex{$num};
1849
+ my $obj = $hier{$objIndex{$num}} or next;
1850
+ my $docNums = $$obj{DocNum};
1851
+ next unless $docNums and @$docNums;
1852
+ $$et{TAG_EXTRA}{$tag}{G3} = join '-', @$docNums;
1853
+ push @pri, $tag unless $tag =~ / /; # save keys for priority sub-doc tags
1854
+ }
1855
+ # swap priority sub-document tags with main document tags if they exist
1856
+ foreach $tag (@pri) {
1857
+ for ($copy=1; ;++$copy) {
1858
+ my $key = "$tag ($copy)";
1859
+ last unless defined $$et{VALUE}{$key};
1860
+ my $extra = $$et{TAG_EXTRA}{$key};
1861
+ next if $extra and $$extra{G3}; # not Main if family 3 group is set
1862
+ foreach $member ('PRIORITY','VALUE','FILE_ORDER','TAG_INFO','TAG_EXTRA') {
1863
+ my $pHash = $$et{$member};
1864
+ my $t = $$pHash{$tag};
1865
+ $$pHash{$tag} = $$pHash{$key};
1866
+ $$pHash{$key} = $t;
1867
+ }
1868
+ last;
1869
+ }
1870
+ }
1871
+ }
1872
+ $$et{INDENT} = $oldIndent if $verbose;
1873
+ # try to better identify the file type
1874
+ if ($$et{VALUE}{FileType} eq 'FPX') {
1875
+ my $val = $$et{CompObjUserType} || $$et{Software};
1876
+ if ($val) {
1877
+ my %type = ( Word => 'DOC', PowerPoint => 'PPT', Excel => 'XLS' );
1878
+ my $pat;
1879
+ foreach $pat (sort keys %type) {
1880
+ next unless $val =~ /$pat/;
1881
+ $et->OverrideFileType($type{$pat});
1882
+ last;
1883
+ }
1884
+ }
1885
+ }
1886
+ return 1;
1887
+ }
1888
+
1889
+ 1; # end
1890
+
1891
+ __END__
1892
+
1893
+ =head1 NAME
1894
+
1895
+ Image::ExifTool::FlashPix - Read FlashPix meta information
1896
+
1897
+ =head1 SYNOPSIS
1898
+
1899
+ This module is used by Image::ExifTool
1900
+
1901
+ =head1 DESCRIPTION
1902
+
1903
+ This module contains routines required by Image::ExifTool to extract
1904
+ FlashPix meta information from FPX images, and from the APP2 FPXR segment of
1905
+ JPEG images.
1906
+
1907
+ =head1 AUTHOR
1908
+
1909
+ Copyright 2003-2015, Phil Harvey (phil at owl.phy.queensu.ca)
1910
+
1911
+ This library is free software; you can redistribute it and/or modify it
1912
+ under the same terms as Perl itself.
1913
+
1914
+ =head1 REFERENCES
1915
+
1916
+ =over 4
1917
+
1918
+ =item L<http://www.exif.org/Exif2-2.PDF>
1919
+
1920
+ =item L<http://www.graphcomp.com/info/specs/livepicture/fpx.pdf>
1921
+
1922
+ =item L<http://search.cpan.org/~jdb/libwin32/>
1923
+
1924
+ =item L<http://msdn.microsoft.com/en-us/library/aa380374.aspx>
1925
+
1926
+ =back
1927
+
1928
+ =head1 SEE ALSO
1929
+
1930
+ L<Image::ExifTool::TagNames/FlashPix Tags>,
1931
+ L<Image::ExifTool::TagNames/OOXML Tags>,
1932
+ L<Image::ExifTool(3pm)|Image::ExifTool>
1933
+
1934
+ =cut
1935
+