exiftool_vendored 13.38.0 → 13.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/Changes +42 -0
- data/bin/MANIFEST +3 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +49 -47
- data/bin/config_files/local_time.config +55 -0
- data/bin/exiftool +136 -90
- data/bin/lib/Image/ExifTool/Canon.pm +15 -12
- data/bin/lib/Image/ExifTool/DJI.pm +256 -20
- data/bin/lib/Image/ExifTool/Exif.pm +11 -6
- data/bin/lib/Image/ExifTool/Font.pm +388 -121
- data/bin/lib/Image/ExifTool/Geolocation.pm +10 -7
- data/bin/lib/Image/ExifTool/Geotag.pm +18 -1
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +2 -1
- data/bin/lib/Image/ExifTool/LNK.pm +77 -3
- data/bin/lib/Image/ExifTool/OOXML.pm +3 -2
- data/bin/lib/Image/ExifTool/Olympus.pm +5 -2
- data/bin/lib/Image/ExifTool/Pentax.pm +7 -2
- data/bin/lib/Image/ExifTool/QuickTime.pm +22 -4
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +42 -35
- data/bin/lib/Image/ExifTool/Red.pm +19 -9
- data/bin/lib/Image/ExifTool/Sony.pm +14 -9
- data/bin/lib/Image/ExifTool/TagLookup.pm +31 -0
- data/bin/lib/Image/ExifTool/TagNames.pod +164 -24
- data/bin/lib/Image/ExifTool/XMP2.pl +11 -5
- data/bin/lib/Image/ExifTool.pm +25 -8
- data/bin/lib/Image/ExifTool.pod +52 -45
- data/bin/perl-Image-ExifTool.spec +47 -46
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -1
|
@@ -992,6 +992,8 @@ my %tagLookup = (
|
|
|
992
992
|
'aggregationtype' => { 554 => 'aggregationType' },
|
|
993
993
|
'agreement' => { 557 => 'agreement' },
|
|
994
994
|
'ah2greeninterpolationthreshold' => { 155 => 0xe4e },
|
|
995
|
+
'aipromptinformation' => { 548 => 'AIPromptInformation' },
|
|
996
|
+
'aipromptwritername' => { 548 => 'AIPromptWriterName' },
|
|
995
997
|
'airplanemode' => { 260 => 0x9c0, 263 => 0x722, 264 => 0x782, 265 => 0x624, 266 => 0x654, 267 => 0x6bc },
|
|
996
998
|
'aiservocontinuousshooting' => { 89 => 0x15 },
|
|
997
999
|
'aiservofirstimage' => { 2 => 0x5 },
|
|
@@ -1002,6 +1004,8 @@ my %tagLookup = (
|
|
|
1002
1004
|
'aiservotrackingmethod' => { 90 => 0x504 },
|
|
1003
1005
|
'aiservotrackingsensitivity' => { 89 => 0x14, 90 => 0x502 },
|
|
1004
1006
|
'aisubjecttrackingmode' => { 345 => 0x309 },
|
|
1007
|
+
'aisystemused' => { 548 => 'AISystemUsed' },
|
|
1008
|
+
'aisystemversionused' => { 548 => 'AISystemVersionUsed' },
|
|
1005
1009
|
'album' => { 427 => ['albm',"\xa9alb"], 429 => 'album', 435 => ['albm',"\xa9alb"], 564 => 'album' },
|
|
1006
1010
|
'albumartist' => { 196 => 'WM/AlbumArtist', 427 => 'aART', 435 => 'albr' },
|
|
1007
1011
|
'albumcoverurl' => { 196 => 'WM/AlbumCoverURL' },
|
|
@@ -8981,6 +8985,11 @@ my %tagExists = (
|
|
|
8981
8985
|
'creatoros' => 1,
|
|
8982
8986
|
'creatorsoftware' => 1,
|
|
8983
8987
|
'creatorversion' => 1,
|
|
8988
|
+
'creditclass' => 1,
|
|
8989
|
+
'creditdir' => 1,
|
|
8990
|
+
'creditname' => 1,
|
|
8991
|
+
'creditrole' => 1,
|
|
8992
|
+
'crediturl' => 1,
|
|
8984
8993
|
'crgbtoerimm0spline' => 1,
|
|
8985
8994
|
'crgbtoerimm1spline' => 1,
|
|
8986
8995
|
'crgbtoerimm2spline' => 1,
|
|
@@ -9201,7 +9210,9 @@ my %tagExists = (
|
|
|
9201
9210
|
'depthswheight' => 1,
|
|
9202
9211
|
'depthswwidth' => 1,
|
|
9203
9212
|
'derivedimageref' => 1,
|
|
9213
|
+
'desc' => 1,
|
|
9204
9214
|
'descender' => 1,
|
|
9215
|
+
'descriptionurl' => 1,
|
|
9205
9216
|
'designer' => 1,
|
|
9206
9217
|
'designerurl' => 1,
|
|
9207
9218
|
'desiredreproductions' => 1,
|
|
@@ -9464,6 +9475,8 @@ my %tagExists = (
|
|
|
9464
9475
|
'entrypoint' => 1,
|
|
9465
9476
|
'entrytype' => 1,
|
|
9466
9477
|
'environmentmap' => 1,
|
|
9478
|
+
'environmenttarget' => 1,
|
|
9479
|
+
'environmenttargetunicode' => 1,
|
|
9467
9480
|
'envvardata' => 1,
|
|
9468
9481
|
'eppim' => 1,
|
|
9469
9482
|
'eprint' => 1,
|
|
@@ -9555,6 +9568,10 @@ my %tagExists = (
|
|
|
9555
9568
|
'extensionclassid' => 1,
|
|
9556
9569
|
'extensioncreatedate' => 1,
|
|
9557
9570
|
'extensiondescription' => 1,
|
|
9571
|
+
'extensionid' => 1,
|
|
9572
|
+
'extensionitemid' => 1,
|
|
9573
|
+
'extensionitemname' => 1,
|
|
9574
|
+
'extensionitemvalue' => 1,
|
|
9558
9575
|
'extensionmodifydate' => 1,
|
|
9559
9576
|
'extensionname' => 1,
|
|
9560
9577
|
'extensionpersistence' => 1,
|
|
@@ -10128,6 +10145,7 @@ my %tagExists = (
|
|
|
10128
10145
|
'highisomode' => 1,
|
|
10129
10146
|
'highlightdata' => 1,
|
|
10130
10147
|
'highlightendpoints' => 1,
|
|
10148
|
+
'highlightmarkers' => 1,
|
|
10131
10149
|
'highnote' => 1,
|
|
10132
10150
|
'highvelocity' => 1,
|
|
10133
10151
|
'hindsightsettings' => 1,
|
|
@@ -10187,6 +10205,7 @@ my %tagExists = (
|
|
|
10187
10205
|
'icingdetected' => 1,
|
|
10188
10206
|
'icondir' => 1,
|
|
10189
10207
|
'iconenvdata' => 1,
|
|
10208
|
+
'iconfile' => 1,
|
|
10190
10209
|
'iconfilename' => 1,
|
|
10191
10210
|
'iconindex' => 1,
|
|
10192
10211
|
'ics' => 1,
|
|
@@ -10205,6 +10224,7 @@ my %tagExists = (
|
|
|
10205
10224
|
'idependentanddisposablesamples' => 1,
|
|
10206
10225
|
'idlesequence' => 1,
|
|
10207
10226
|
'idletiming' => 1,
|
|
10227
|
+
'idlist' => 1,
|
|
10208
10228
|
'idsbasevalue' => 1,
|
|
10209
10229
|
'idstring' => 1,
|
|
10210
10230
|
'ifd0' => 1,
|
|
@@ -10692,7 +10712,10 @@ my %tagExists = (
|
|
|
10692
10712
|
'levelinfok3iii' => 1,
|
|
10693
10713
|
'libraryid' => 1,
|
|
10694
10714
|
'libraryname' => 1,
|
|
10715
|
+
'licenseeclass' => 1,
|
|
10716
|
+
'licenseedir' => 1,
|
|
10695
10717
|
'licenseinfourl' => 1,
|
|
10718
|
+
'licenseurl' => 1,
|
|
10696
10719
|
'lightingopt' => 1,
|
|
10697
10720
|
'lightness' => 1,
|
|
10698
10721
|
'lightroomworkflow' => 1,
|
|
@@ -10807,6 +10830,7 @@ my %tagExists = (
|
|
|
10807
10830
|
'maininfoifd' => 1,
|
|
10808
10831
|
'makeandmodel' => 1,
|
|
10809
10832
|
'makemodel' => 1,
|
|
10833
|
+
'makernotebyteorder' => 1,
|
|
10810
10834
|
'makernotepentax5a' => 1,
|
|
10811
10835
|
'makernotepentax5b' => 1,
|
|
10812
10836
|
'makernotepentax5c' => 1,
|
|
@@ -11156,6 +11180,7 @@ my %tagExists = (
|
|
|
11156
11180
|
'modenumber' => 1,
|
|
11157
11181
|
'modificationnumber' => 1,
|
|
11158
11182
|
'modificationpermissions' => 1,
|
|
11183
|
+
'modified' => 1,
|
|
11159
11184
|
'modifiedby' => 1,
|
|
11160
11185
|
'modifiedinfo' => 1,
|
|
11161
11186
|
'moiversion' => 1,
|
|
@@ -12211,6 +12236,7 @@ my %tagExists = (
|
|
|
12211
12236
|
'rjmd' => 1,
|
|
12212
12237
|
'rmeta' => 1,
|
|
12213
12238
|
'rnoiselines' => 1,
|
|
12239
|
+
'roamed' => 1,
|
|
12214
12240
|
'robots' => 1,
|
|
12215
12241
|
'rocinfo' => 1,
|
|
12216
12242
|
'roidescription' => 1,
|
|
@@ -12505,6 +12531,7 @@ my %tagExists = (
|
|
|
12505
12531
|
'shotinfoz9' => 1,
|
|
12506
12532
|
'shotlogdatatext' => 1,
|
|
12507
12533
|
'shotparamstext' => 1,
|
|
12534
|
+
'showcommand' => 1,
|
|
12508
12535
|
'showmode' => 1,
|
|
12509
12536
|
'showobjects' => 1,
|
|
12510
12537
|
'shutterangle' => 1,
|
|
@@ -13229,6 +13256,8 @@ my %tagExists = (
|
|
|
13229
13256
|
'vddimdacnominalvalues' => 1,
|
|
13230
13257
|
'vegasversionmajor' => 1,
|
|
13231
13258
|
'vegasversionminor' => 1,
|
|
13259
|
+
'vendorclass' => 1,
|
|
13260
|
+
'vendordir' => 1,
|
|
13232
13261
|
'vendorid' => 1,
|
|
13233
13262
|
'vendorname' => 1,
|
|
13234
13263
|
'vendorurl' => 1,
|
|
@@ -13410,6 +13439,7 @@ my %tagExists = (
|
|
|
13410
13439
|
'webpage' => 1,
|
|
13411
13440
|
'weight' => 1,
|
|
13412
13441
|
'what3words' => 1,
|
|
13442
|
+
'whatsnew' => 1,
|
|
13413
13443
|
'whitebalancematching' => 1,
|
|
13414
13444
|
'whitebalancergb' => 1,
|
|
13415
13445
|
'whitebalancetable' => 1,
|
|
@@ -13454,6 +13484,7 @@ my %tagExists = (
|
|
|
13454
13484
|
'wmcontentid' => 1,
|
|
13455
13485
|
'wmshadowfilesourcedrmtype' => 1,
|
|
13456
13486
|
'wmshadowfilesourcefiletype' => 1,
|
|
13487
|
+
'woffversion' => 1,
|
|
13457
13488
|
'word97' => 1,
|
|
13458
13489
|
'worddocument' => 1,
|
|
13459
13490
|
'words' => 1,
|
|
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
|
|
|
12
12
|
=head1 TAG TABLES
|
|
13
13
|
|
|
14
14
|
The tables listed below give the names of all tags recognized by ExifTool.
|
|
15
|
-
They contain a total of
|
|
15
|
+
They contain a total of 28858 tags, with 17929 unique tag names.
|
|
16
16
|
|
|
17
17
|
B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
|
|
18
18
|
table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
|
|
@@ -4711,8 +4711,9 @@ These tags belong to the ExifTool XMP-iptcCore family 1 group.
|
|
|
4711
4711
|
=head3 XMP iptcExt Tags
|
|
4712
4712
|
|
|
4713
4713
|
This table contains tags defined by the IPTC Extension schema version 1.7
|
|
4714
|
-
and IPTC Video Metadata version 1.3
|
|
4715
|
-
"Iptc4xmpExt", but ExifTool shortens this for the family
|
|
4714
|
+
and IPTC Video Metadata version 1.3, plus the AI additions. The actual
|
|
4715
|
+
namespace prefix is "Iptc4xmpExt", but ExifTool shortens this for the family
|
|
4716
|
+
1 group name. (See
|
|
4716
4717
|
L<http://www.iptc.org/standards/photo-metadata/iptc-standard/> and
|
|
4717
4718
|
L<https://iptc.org/standards/video-metadata-hub/>.)
|
|
4718
4719
|
|
|
@@ -4726,6 +4727,10 @@ These tags belong to the ExifTool XMP-iptcExt family 1 group.
|
|
|
4726
4727
|
AboutCvTermName lang-alt_+
|
|
4727
4728
|
AboutCvTermRefinedAbout string_+
|
|
4728
4729
|
AdditionalModelInformation string
|
|
4730
|
+
AIPromptInformation string
|
|
4731
|
+
AIPromptWriterName string
|
|
4732
|
+
AISystemUsed string
|
|
4733
|
+
AISystemVersionUsed string
|
|
4729
4734
|
ArtworkOrObject ArtworkOrObjectDetails Struct+
|
|
4730
4735
|
ArtworkCircaDateCreated string!_+
|
|
4731
4736
|
ArtworkContentDescription lang-alt_+
|
|
@@ -9536,7 +9541,7 @@ These tags are used by the R5, R5 and EOS 1DXmkIII.
|
|
|
9536
9541
|
|
|
9537
9542
|
=head3 Canon ColorData11 Tags
|
|
9538
9543
|
|
|
9539
|
-
These tags are used by the EOS R3, R7 and R6mkII
|
|
9544
|
+
These tags are used by the EOS R3, R7, R50 and R6mkII
|
|
9540
9545
|
|
|
9541
9546
|
Index2 Tag Name Writable
|
|
9542
9547
|
------ -------- --------
|
|
@@ -9625,7 +9630,7 @@ These tags are used by the EOS R3, R7 and R6mkII
|
|
|
9625
9630
|
|
|
9626
9631
|
=head3 Canon ColorData12 Tags
|
|
9627
9632
|
|
|
9628
|
-
These tags are used by the EOS R1 and
|
|
9633
|
+
These tags are used by the EOS R1, R5mkII and R50V
|
|
9629
9634
|
|
|
9630
9635
|
Index2 Tag Name Writable
|
|
9631
9636
|
------ -------- --------
|
|
@@ -11068,7 +11073,10 @@ ExifTool currently extracts timed GPS plus a few other tags from DJI devices
|
|
|
11068
11073
|
which use the following protocols: dvtm_AVATA2.proto (Avata 2),
|
|
11069
11074
|
dvtm_ac203.proto (Osmo Action 4), dvtm_ac204.proto (Osmo Action 5),
|
|
11070
11075
|
dvtm_wm265e.proto (Mavic 3), dvtm_pm320.proto (Matrice 30),
|
|
11071
|
-
dvtm_Mini4_Pro.proto (Mini 4 Pro)
|
|
11076
|
+
dvtm_Mini4_Pro.proto (Mini 4 Pro), dvtm_dji_neo.proto (DJI Neo),
|
|
11077
|
+
dvtm_Air3.proto (Air 3), dvtm_Air3s.proto (Air 3s), dvtm_PP-101.proto (Osmo
|
|
11078
|
+
Pocket 3), dvtm_oq101.proto (Osmo 360), dvtm_wa345e.proto (Matrice 4E) and
|
|
11079
|
+
dvtm_wm261.proto (Mavic Pro 3).
|
|
11072
11080
|
|
|
11073
11081
|
Note that with the protobuf format, numerical tags missing from the output
|
|
11074
11082
|
for a given protocol should be considered to have the default value of 0.
|
|
@@ -11089,6 +11097,30 @@ for a given protocol should be considered to have the default value of 0.
|
|
|
11089
11097
|
'dvtm_AVATA2_3-4-4-1' GPSInfo DJI GPSInfo
|
|
11090
11098
|
'dvtm_AVATA2_3-4-4-2' AbsoluteAltitude no
|
|
11091
11099
|
'dvtm_AVATA2_3-4-5-1' RelativeAltitude no
|
|
11100
|
+
'dvtm_Air3_1-1-5' SerialNumber no
|
|
11101
|
+
'dvtm_Air3_2-3' FrameInfo DJI FrameInfo
|
|
11102
|
+
'dvtm_Air3_3-1-2' TimeStamp no
|
|
11103
|
+
'dvtm_Air3_3-2-7-1' ISO no
|
|
11104
|
+
'dvtm_Air3_3-2-10-1' ShutterSpeed no
|
|
11105
|
+
'dvtm_Air3_3-2-11-1' FNumber no
|
|
11106
|
+
'dvtm_Air3_3-2-32-1' ColorTemperature no
|
|
11107
|
+
'dvtm_Air3_3-3-3' DroneInfo DJI DroneInfo
|
|
11108
|
+
'dvtm_Air3_3-3-4-1' GPSInfo DJI GPSInfo
|
|
11109
|
+
'dvtm_Air3_3-3-4-2' AbsoluteAltitude no
|
|
11110
|
+
'dvtm_Air3_3-3-5-1' RelativeAltitude no
|
|
11111
|
+
'dvtm_Air3_3-4-3' GimbalInfo DJI GimbalInfo
|
|
11112
|
+
'dvtm_Air3s_1-1-5' SerialNumber no
|
|
11113
|
+
'dvtm_Air3s_2-3' FrameInfo DJI FrameInfo
|
|
11114
|
+
'dvtm_Air3s_3-1-2' TimeStamp no
|
|
11115
|
+
'dvtm_Air3s_3-2-7-1' ISO no
|
|
11116
|
+
'dvtm_Air3s_3-2-10-1' ShutterSpeed no
|
|
11117
|
+
'dvtm_Air3s_3-2-11-1' FNumber no
|
|
11118
|
+
'dvtm_Air3s_3-2-32-1' ColorTemperature no
|
|
11119
|
+
'dvtm_Air3s_3-3-3' DroneInfo DJI DroneInfo
|
|
11120
|
+
'dvtm_Air3s_3-3-4-1' GPSInfo DJI GPSInfo
|
|
11121
|
+
'dvtm_Air3s_3-3-4-2' AbsoluteAltitude no
|
|
11122
|
+
'dvtm_Air3s_3-3-5-1' RelativeAltitude no
|
|
11123
|
+
'dvtm_Air3s_3-4-3' GimbalInfo DJI GimbalInfo
|
|
11092
11124
|
'dvtm_Mini4_Pro_1-1-5' SerialNumber no
|
|
11093
11125
|
'dvtm_Mini4_Pro_1-1-10' Model no
|
|
11094
11126
|
'dvtm_Mini4_Pro_2-3' FrameInfo DJI FrameInfo
|
|
@@ -11101,6 +11133,13 @@ for a given protocol should be considered to have the default value of 0.
|
|
|
11101
11133
|
'dvtm_Mini4_Pro_3-2-10-1' ShutterSpeed no
|
|
11102
11134
|
'dvtm_Mini4_Pro_3-2-11-1' FNumber no
|
|
11103
11135
|
'dvtm_Mini4_Pro_3-2-32-1' ColorTemperature no
|
|
11136
|
+
'dvtm_PP-101_1-1-5' SerialNumber no
|
|
11137
|
+
'dvtm_PP-101_1-1-10' Model no
|
|
11138
|
+
'dvtm_PP-101_2-3' FrameInfo DJI FrameInfo
|
|
11139
|
+
'dvtm_PP-101_3-1-2' TimeStamp no
|
|
11140
|
+
'dvtm_PP-101_3-2-9-1' ISO no
|
|
11141
|
+
'dvtm_PP-101_3-2-10-1' ShutterSpeed no
|
|
11142
|
+
'dvtm_PP-101_3-2-24-1' ColorTemperature no
|
|
11104
11143
|
'dvtm_ac203_1-1-5' SerialNumber no
|
|
11105
11144
|
'dvtm_ac203_1-1-10' Model no
|
|
11106
11145
|
'dvtm_ac203_2-3' FrameInfo DJI FrameInfo
|
|
@@ -11136,6 +11175,19 @@ for a given protocol should be considered to have the default value of 0.
|
|
|
11136
11175
|
'dvtm_dji_neo_3-4-3' DroneInfo DJI DroneInfo
|
|
11137
11176
|
'dvtm_dji_neo_3-4-4-1' GPSInfo DJI GPSInfo
|
|
11138
11177
|
'dvtm_dji_neo_3-4-4-2' AbsoluteAltitude no
|
|
11178
|
+
'dvtm_oq101_1-1-5' SerialNumber no
|
|
11179
|
+
'dvtm_oq101_1-1-10' Model no
|
|
11180
|
+
'dvtm_oq101_1-14-1' FNumber no
|
|
11181
|
+
'dvtm_oq101_3-1-2' TimeStamp no
|
|
11182
|
+
'dvtm_oq101_3-2-3-1' ISO no
|
|
11183
|
+
'dvtm_oq101_3-2-4-1' ShutterSpeed no
|
|
11184
|
+
'dvtm_oq101_3-2-6-1' ColorTemperature no
|
|
11185
|
+
'dvtm_oq101_3-2-10-2' AccelerometerX no
|
|
11186
|
+
'dvtm_oq101_3-2-10-3' AccelerometerY no
|
|
11187
|
+
'dvtm_oq101_3-2-10-4' AccelerometerZ no
|
|
11188
|
+
'dvtm_oq101_3-4-2-1' GPSInfo DJI GPSInfo
|
|
11189
|
+
'dvtm_oq101_3-4-2-2' AbsoluteAltitude no
|
|
11190
|
+
'dvtm_oq101_3-4-2-6-1' GPSDateTime no
|
|
11139
11191
|
'dvtm_pm320_1-1-5' SerialNumber no
|
|
11140
11192
|
'dvtm_pm320_1-1-10' Model no
|
|
11141
11193
|
'dvtm_pm320_2-2' FrameInfo DJI FrameInfo
|
|
@@ -11148,6 +11200,29 @@ for a given protocol should be considered to have the default value of 0.
|
|
|
11148
11200
|
'dvtm_pm320_3-3-4-2' AbsoluteAltitude no
|
|
11149
11201
|
'dvtm_pm320_3-3-5-1' RelativeAltitude no
|
|
11150
11202
|
'dvtm_pm320_3-4-3' GimbalInfo DJI GimbalInfo
|
|
11203
|
+
'dvtm_wa345e_1-1-5' SerialNumber no
|
|
11204
|
+
'dvtm_wa345e_1-1-10' Model no
|
|
11205
|
+
'dvtm_wa345e_2-2' FrameInfo DJI FrameInfo
|
|
11206
|
+
'dvtm_wa345e_3-1-2' TimeStamp no
|
|
11207
|
+
'dvtm_wa345e_3-3-3' DroneInfo DJI DroneInfo
|
|
11208
|
+
'dvtm_wa345e_3-3-4-1' GPSInfo DJI GPSInfo
|
|
11209
|
+
'dvtm_wa345e_3-3-4-2' AbsoluteAltitude no
|
|
11210
|
+
'dvtm_wa345e_3-3-4-6-1' GPSDateTime no
|
|
11211
|
+
'dvtm_wa345e_3-3-5-1' RelativeAltitude no
|
|
11212
|
+
'dvtm_wa345e_3-4-3' GimbalInfo DJI GimbalInfo
|
|
11213
|
+
'dvtm_wm261_1-1-5' SerialNumber no
|
|
11214
|
+
'dvtm_wm261_1-1-10' Model no
|
|
11215
|
+
'dvtm_wm261_2-3' FrameInfo DJI FrameInfo
|
|
11216
|
+
'dvtm_wm261_3-1-2' TimeStamp no
|
|
11217
|
+
'dvtm_wm261_3-2-9-1' ISO no
|
|
11218
|
+
'dvtm_wm261_3-2-10-1' ShutterSpeed no
|
|
11219
|
+
'dvtm_wm261_3-2-11-1' FNumber no
|
|
11220
|
+
'dvtm_wm261_3-3-3' DroneInfo DJI DroneInfo
|
|
11221
|
+
'dvtm_wm261_3-3-4-1' GPSInfo DJI GPSInfo
|
|
11222
|
+
'dvtm_wm261_3-3-4-2' AbsoluteAltitude no
|
|
11223
|
+
'dvtm_wm261_3-3-4-6-1' GPSDateTime no
|
|
11224
|
+
'dvtm_wm261_3-3-5-1' RelativeAltitude no
|
|
11225
|
+
'dvtm_wm261_3-4-3' GimbalInfo DJI GimbalInfo
|
|
11151
11226
|
'dvtm_wm265e_1-1-5' SerialNumber no
|
|
11152
11227
|
'dvtm_wm265e_1-1-10' Model no
|
|
11153
11228
|
'dvtm_wm265e_2-2' FrameInfo DJI FrameInfo
|
|
@@ -30645,6 +30720,7 @@ for the official QuickTime specification.
|
|
|
30645
30720
|
'free' KodakFree Kodak Free
|
|
30646
30721
|
Pittasoft QuickTime Pittasoft
|
|
30647
30722
|
ThumbnailImage no
|
|
30723
|
+
HighlightMarkers no
|
|
30648
30724
|
Free? no
|
|
30649
30725
|
'ftyp' FileType QuickTime FileType
|
|
30650
30726
|
'gdat' GPSData QuickTime Stream
|
|
@@ -30695,7 +30771,7 @@ for the official QuickTime specification.
|
|
|
30695
30771
|
The tags below are extracted from timed metadata in QuickTime and other
|
|
30696
30772
|
formats of video files when the ExtractEmbedded option is used. Although
|
|
30697
30773
|
most of these tags are combined into the single table below, ExifTool
|
|
30698
|
-
currently reads
|
|
30774
|
+
currently reads 116 different types of timed GPS metadata from video files.
|
|
30699
30775
|
|
|
30700
30776
|
Tag ID Tag Name Writable
|
|
30701
30777
|
------ -------- --------
|
|
@@ -36367,6 +36443,7 @@ Tags extracted from Redcode R3D video files.
|
|
|
36367
36443
|
0x1096 Filter no
|
|
36368
36444
|
0x10a0 Brain no
|
|
36369
36445
|
0x10a1 Sensor no
|
|
36446
|
+
0x10be Quality no
|
|
36370
36447
|
0x200d ColorTemperature no
|
|
36371
36448
|
0x204b RGBCurves no
|
|
36372
36449
|
0x2066 OriginalFrameRate no
|
|
@@ -40621,7 +40698,7 @@ Information extracted from MS Shell Link (Windows shortcut) files.
|
|
|
40621
40698
|
0x30020 CommandLineArguments no
|
|
40622
40699
|
0x30040 IconFileName no
|
|
40623
40700
|
0xa0000000 UnknownData LNK UnknownData
|
|
40624
|
-
0xa0000001 EnvVarData LNK
|
|
40701
|
+
0xa0000001 EnvVarData LNK EnvVarData
|
|
40625
40702
|
0xa0000002 ConsoleData LNK ConsoleData
|
|
40626
40703
|
0xa0000003 TrackerData LNK TrackerData
|
|
40627
40704
|
0xa0000004 ConsoleFEData LNK ConsoleFEData
|
|
@@ -40666,6 +40743,13 @@ Information extracted from MS Shell Link (Windows shortcut) files.
|
|
|
40666
40743
|
------ -------- --------
|
|
40667
40744
|
[no tags known]
|
|
40668
40745
|
|
|
40746
|
+
=head3 LNK EnvVarData Tags
|
|
40747
|
+
|
|
40748
|
+
Index1 Tag Name Writable
|
|
40749
|
+
------ -------- --------
|
|
40750
|
+
8 EnvironmentTarget no
|
|
40751
|
+
268 EnvironmentTargetUnicode no
|
|
40752
|
+
|
|
40669
40753
|
=head3 LNK ConsoleData Tags
|
|
40670
40754
|
|
|
40671
40755
|
Index1 Tag Name Writable
|
|
@@ -40700,6 +40784,26 @@ Information extracted from MS Shell Link (Windows shortcut) files.
|
|
|
40700
40784
|
------ -------- --------
|
|
40701
40785
|
8 CodePage no
|
|
40702
40786
|
|
|
40787
|
+
=head3 LNK INI Tags
|
|
40788
|
+
|
|
40789
|
+
Tags found in INI-format Windows .URL files.
|
|
40790
|
+
|
|
40791
|
+
Tag Name Writable
|
|
40792
|
+
-------- --------
|
|
40793
|
+
Author no
|
|
40794
|
+
Comment no
|
|
40795
|
+
Desc no
|
|
40796
|
+
HotKey no
|
|
40797
|
+
IDList no
|
|
40798
|
+
IconFile no
|
|
40799
|
+
IconIndex no
|
|
40800
|
+
Modified no
|
|
40801
|
+
Roamed no
|
|
40802
|
+
ShowCommand no
|
|
40803
|
+
URL no
|
|
40804
|
+
WhatsNew no
|
|
40805
|
+
WorkingDirectory no
|
|
40806
|
+
|
|
40703
40807
|
=head2 PCAP Tags
|
|
40704
40808
|
|
|
40705
40809
|
Tags extracted from CAP, PCAP and PCAPNG Packet Capture files.
|
|
@@ -40740,18 +40844,20 @@ Tags extracted from CAP, PCAP and PCAPNG Packet Capture files.
|
|
|
40740
40844
|
|
|
40741
40845
|
This table contains a collection of tags found in font files of various
|
|
40742
40846
|
formats. ExifTool current recognizes OTF, TTF, TTC, DFONT, PFA, PFB, PFM,
|
|
40743
|
-
AFM, ACFM and
|
|
40847
|
+
AFM, ACFM, AMFM, WOFF and WOFF2 font files.
|
|
40744
40848
|
|
|
40745
|
-
Tag ID
|
|
40746
|
-
------
|
|
40747
|
-
'AFM'
|
|
40748
|
-
'C2PA'
|
|
40749
|
-
'PFM'
|
|
40750
|
-
'PSInfo'
|
|
40751
|
-
'
|
|
40752
|
-
'
|
|
40753
|
-
'
|
|
40754
|
-
'
|
|
40849
|
+
Tag ID Tag Name Writable
|
|
40850
|
+
------ -------- --------
|
|
40851
|
+
'AFM' AFM Font AFM
|
|
40852
|
+
'C2PA' C2PA Jpeg2000
|
|
40853
|
+
'PFM' PFMHeader Font PFM
|
|
40854
|
+
'PSInfo' PSFontInfo Font PSInfo
|
|
40855
|
+
'WOFFVersion' WOFFVersion no
|
|
40856
|
+
'XML' XML Font XML
|
|
40857
|
+
'fontname' FontName no
|
|
40858
|
+
'name' Name Font Name
|
|
40859
|
+
'numfonts' NumFonts no
|
|
40860
|
+
'postfont' PostScriptFontName no
|
|
40755
40861
|
|
|
40756
40862
|
=head3 Font AFM Tags
|
|
40757
40863
|
|
|
@@ -40829,13 +40935,46 @@ Tags extracted from PostScript font files (PFA and PFB).
|
|
|
40829
40935
|
'isFixedPitch' IsFixedPitch no
|
|
40830
40936
|
'version' Version no
|
|
40831
40937
|
|
|
40938
|
+
=head3 Font XML Tags
|
|
40939
|
+
|
|
40940
|
+
Tags found in WOFF and WOFF2 XML metadata.
|
|
40941
|
+
|
|
40942
|
+
Tag ID Tag Name Writable
|
|
40943
|
+
------ -------- --------
|
|
40944
|
+
'copyrightText' Copyright no
|
|
40945
|
+
'creditsCreditClass' CreditClass no
|
|
40946
|
+
'creditsCreditDir' CreditDir no
|
|
40947
|
+
'creditsCreditName' CreditName no
|
|
40948
|
+
'creditsCreditRole' CreditRole no
|
|
40949
|
+
'creditsCreditUrl' CreditURL no
|
|
40950
|
+
'descriptionText' Description no
|
|
40951
|
+
'descriptionUrl' DescriptionUrl no
|
|
40952
|
+
'extensionId' ExtensionID no
|
|
40953
|
+
'extensionItemId' ExtensionItemID no
|
|
40954
|
+
'extensionItemName' ExtensionItemName no
|
|
40955
|
+
'extensionItemValue' ExtensionItemValue no
|
|
40956
|
+
'extensionName' ExtensionName no
|
|
40957
|
+
'licenseId' LicenseID no
|
|
40958
|
+
'licenseText' License no
|
|
40959
|
+
'licenseUrl' LicenseURL no
|
|
40960
|
+
'licenseeClass' LicenseeClass no
|
|
40961
|
+
'licenseeDir' LicenseeDir no
|
|
40962
|
+
'licenseeName' LicenseeName no
|
|
40963
|
+
'trademarkText' Trademark no
|
|
40964
|
+
'uniqueidId' UniqueID no
|
|
40965
|
+
'vendorClass' VendorClass no
|
|
40966
|
+
'vendorDir' VendorDir no
|
|
40967
|
+
'vendorName' VendorName no
|
|
40968
|
+
'vendorUrl' VendorURL no
|
|
40969
|
+
'version' Version no
|
|
40970
|
+
|
|
40832
40971
|
=head3 Font Name Tags
|
|
40833
40972
|
|
|
40834
40973
|
The following tags are extracted from the TrueType font "name" table found
|
|
40835
|
-
in OTF, TTF, TTC and
|
|
40836
|
-
adding a hyphen followed by a language code to the end of the
|
|
40837
|
-
"Copyright-fr" or "License-en-US"). Tags with no language
|
|
40838
|
-
default language of "en".
|
|
40974
|
+
in OTF, TTF, TTC, DFONT, WOFF and WOFF2 files. These tags support localized
|
|
40975
|
+
languages by adding a hyphen followed by a language code to the end of the
|
|
40976
|
+
tag name (eg. "Copyright-fr" or "License-en-US"). Tags with no language
|
|
40977
|
+
code use the default language of "en".
|
|
40839
40978
|
|
|
40840
40979
|
Tag ID Tag Name Writable
|
|
40841
40980
|
------ -------- --------
|
|
@@ -41160,7 +41299,7 @@ specification.
|
|
|
41160
41299
|
=head2 OOXML Tags
|
|
41161
41300
|
|
|
41162
41301
|
The Office Open XML (OOXML) format was introduced with Microsoft Office 2007
|
|
41163
|
-
and is used by file types such as DOCX, PPTX and
|
|
41302
|
+
and is used by file types such as DOCX, PPTX, XLSX and VSDX. These are
|
|
41164
41303
|
essentially ZIP archives containing XML files. The table below lists some
|
|
41165
41304
|
tags which have been observed in OOXML documents, but ExifTool will extract
|
|
41166
41305
|
any tags found from XML files of the OOXML document properties ("docProps")
|
|
@@ -41560,6 +41699,7 @@ FileName.
|
|
|
41560
41699
|
JPEGQualityEstimate File no
|
|
41561
41700
|
JUMBF JUMBF no
|
|
41562
41701
|
MIMEType File no
|
|
41702
|
+
MakerNoteByteOrder File no
|
|
41563
41703
|
MaxVal File no
|
|
41564
41704
|
NewGUID ExifTool no
|
|
41565
41705
|
Now ExifTool no
|
|
@@ -499,11 +499,12 @@ my %sImageRegion = ( # new in 1.5
|
|
|
499
499
|
NAMESPACE => 'Iptc4xmpExt',
|
|
500
500
|
TABLE_DESC => 'XMP IPTC Extension',
|
|
501
501
|
NOTES => q{
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
502
|
+
This table contains tags defined by the IPTC Extension schema version 1.7
|
|
503
|
+
and IPTC Video Metadata version 1.3, plus the AI additions. The actual
|
|
504
|
+
namespace prefix is "Iptc4xmpExt", but ExifTool shortens this for the family
|
|
505
|
+
1 group name. (See
|
|
506
|
+
L<http://www.iptc.org/standards/photo-metadata/iptc-standard/> and
|
|
507
|
+
L<https://iptc.org/standards/video-metadata-hub/>.)
|
|
507
508
|
},
|
|
508
509
|
AboutCvTerm => {
|
|
509
510
|
Struct => \%sCVTermDetails,
|
|
@@ -769,6 +770,11 @@ my %sImageRegion = ( # new in 1.5
|
|
|
769
770
|
ImageRegion => { Groups => { 2 => 'Image' }, List => 'Bag', Struct => \%sImageRegion },
|
|
770
771
|
# new Extension 1.6 property
|
|
771
772
|
EventId => { Name => 'EventID', List => 'Bag' },
|
|
773
|
+
# new AI tags
|
|
774
|
+
AISystemUsed => { },
|
|
775
|
+
AISystemVersionUsed => { },
|
|
776
|
+
AIPromptInformation => { },
|
|
777
|
+
AIPromptWriterName => { },
|
|
772
778
|
);
|
|
773
779
|
|
|
774
780
|
#------------------------------------------------------------------------------
|
data/bin/lib/Image/ExifTool.pm
CHANGED
|
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
|
|
30
30
|
%static_vars $advFmtSelf $configFile @configFiles $noConfig);
|
|
31
31
|
|
|
32
|
-
$VERSION = '13.
|
|
32
|
+
$VERSION = '13.41';
|
|
33
33
|
$RELEASE = '';
|
|
34
34
|
@ISA = qw(Exporter);
|
|
35
35
|
%EXPORT_TAGS = (
|
|
@@ -155,7 +155,7 @@ sub ReadValue($$$;$$$);
|
|
|
155
155
|
Real::Audio Real::Metafile Red RIFF AIFF ASF TNEF WTV DICOM FITS XISF MIE
|
|
156
156
|
JSON HTML XMP::SVG Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion
|
|
157
157
|
EXE::PEString EXE::DebugRSDS EXE::DebugNB10 EXE::Misc EXE::MachO EXE::PEF
|
|
158
|
-
EXE::ELF EXE::AR EXE::CHM LNK PCAP Font VCard Text VCard::VCalendar
|
|
158
|
+
EXE::ELF EXE::AR EXE::CHM LNK LNK::INI PCAP Font VCard Text VCard::VCalendar
|
|
159
159
|
VCard::VNote RSRC Rawzor ZIP ZIP::GZIP ZIP::RAR ZIP::RAR5 RTF OOXML iWork
|
|
160
160
|
ISO FLIR::AFF FLIR::FPF MacOS MacOS::MDItem FlashPix::DocTable
|
|
161
161
|
);
|
|
@@ -392,6 +392,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
|
|
|
392
392
|
LFR => 'LFP', # (Light Field RAW)
|
|
393
393
|
LIF => ['LIF', 'Leica Image File'],
|
|
394
394
|
LNK => ['LNK', 'Windows shortcut'],
|
|
395
|
+
LRF => ['MOV', 'Low-Resolution video File'],
|
|
395
396
|
LRI => ['LRI', 'Light RAW'],
|
|
396
397
|
LRV => ['MOV', 'Low-Resolution Video'],
|
|
397
398
|
M2T => 'M2TS',
|
|
@@ -544,6 +545,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
|
|
|
544
545
|
TTF => ['Font', 'True Type Font'],
|
|
545
546
|
TUB => 'PSP',
|
|
546
547
|
TXT => ['TXT', 'Text file'],
|
|
548
|
+
URL => ['LNK', 'Windows shortcut URL'],
|
|
547
549
|
VCARD=> ['VCard','Virtual Card'],
|
|
548
550
|
VCF => 'VCARD',
|
|
549
551
|
VOB => ['MPEG', 'Video Object'],
|
|
@@ -573,6 +575,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
|
|
|
573
575
|
XLTM => [['ZIP','FPX'], 'Office Open XML Spreadsheet Template Macro-enabled'],
|
|
574
576
|
XLTX => [['ZIP','FPX'], 'Office Open XML Spreadsheet Template'],
|
|
575
577
|
XMP => ['XMP', 'Extensible Metadata Platform'],
|
|
578
|
+
VSDX => ['ZIP', 'Visio Diagram Document'],
|
|
576
579
|
WOFF => ['Font', 'Web Open Font Format'],
|
|
577
580
|
WOFF2=> ['Font', 'Web Open Font Format 2'],
|
|
578
581
|
WPG => ['WPG', 'WordPerfect Graphics'],
|
|
@@ -814,6 +817,7 @@ my %fileDescription = (
|
|
|
814
817
|
VCard=> 'text/vcard',
|
|
815
818
|
VRD => 'application/octet-stream', #PH (NC)
|
|
816
819
|
VSD => 'application/x-visio',
|
|
820
|
+
VSDX => 'application/vnd.ms-visio.drawing',
|
|
817
821
|
WDP => 'image/vnd.ms-photo',
|
|
818
822
|
WEBM => 'video/webm',
|
|
819
823
|
WMA => 'audio/x-ms-wma',
|
|
@@ -974,7 +978,7 @@ $testLen = 1024; # number of bytes to read when testing for magic number
|
|
|
974
978
|
JXL => '(\xff\x0a|\0\0\0\x0cJXL \x0d\x0a......ftypjxl )',
|
|
975
979
|
LFP => '\x89LFP\x0d\x0a\x1a\x0a',
|
|
976
980
|
LIF => '\x70\0{3}.{4}\x2a.{4}<\0',
|
|
977
|
-
LNK => '.{4}\x01\x14\x02\0{5}\xc0\0{6}\x46',
|
|
981
|
+
LNK => '(.{4}\x01\x14\x02\0{5}\xc0\0{6}\x46|\[[InternetShortcut\][\x0d\x0a])',
|
|
978
982
|
LRI => 'LELR \0',
|
|
979
983
|
M2TS => '.{0,191}?\x47(.{187}|.{191})\x47(.{187}|.{191})\x47',
|
|
980
984
|
MacOS=> '\0\x05\x16\x07\0.\0\0Mac OS X ',
|
|
@@ -1138,6 +1142,7 @@ my @availableOptions = (
|
|
|
1138
1142
|
[ 'GeoMaxHDOP', undef, 'geotag maximum HDOP' ],
|
|
1139
1143
|
[ 'GeoMaxPDOP', undef, 'geotag maximum PDOP' ],
|
|
1140
1144
|
[ 'GeoMinSats', undef, 'geotag minimum satellites' ],
|
|
1145
|
+
[ 'GeoHPosErr', undef, 'geotag GPSHPositioningError based on $GPSDOP' ],
|
|
1141
1146
|
[ 'GeoSpeedRef', undef, 'geotag GPSSpeedRef' ],
|
|
1142
1147
|
[ 'GlobalTimeShift', undef, 'apply time shift to all extracted date/time values' ],
|
|
1143
1148
|
[ 'GPSQuadrant', undef, 'quadrant for GPS if not otherwise known' ],
|
|
@@ -1814,6 +1819,13 @@ my %systemTagsNotes = (
|
|
|
1814
1819
|
MM => 'Big-endian (Motorola, MM)',
|
|
1815
1820
|
},
|
|
1816
1821
|
},
|
|
1822
|
+
MakerNoteByteOrder => {
|
|
1823
|
+
Notes => 'byte order of maker notes. Generated only if different from ExifByteOrder',
|
|
1824
|
+
PrintConv => {
|
|
1825
|
+
II => 'Little-endian (Intel, II)',
|
|
1826
|
+
MM => 'Big-endian (Motorola, MM)',
|
|
1827
|
+
},
|
|
1828
|
+
},
|
|
1817
1829
|
ExifUnicodeByteOrder => {
|
|
1818
1830
|
Writable => 1,
|
|
1819
1831
|
WriteOnly => 1,
|
|
@@ -2298,7 +2310,8 @@ sub CleanWarning(;$)
|
|
|
2298
2310
|
return undef unless defined $evalWarning;
|
|
2299
2311
|
$str = $evalWarning;
|
|
2300
2312
|
}
|
|
2301
|
-
|
|
2313
|
+
# truncate at first " at " for warnings like "syntax error at (eval 80) line 1, at EOF"
|
|
2314
|
+
$str = $1 if $str =~ /(.*?) at /s;
|
|
2302
2315
|
$str =~ s/\s+$//s;
|
|
2303
2316
|
return $str;
|
|
2304
2317
|
}
|
|
@@ -8621,6 +8634,7 @@ sub DoProcessTIFF($$;$)
|
|
|
8621
8634
|
my $ifdName = ($$dirInfo{DirName} and $$dirInfo{DirName} =~ /^(ExifIFD|GPS)$/) ? $1 : 'IFD0';
|
|
8622
8635
|
if (not $tagTablePtr or $$tagTablePtr{GROUPS}{0} eq 'EXIF') {
|
|
8623
8636
|
$self->FoundTag('ExifByteOrder', $byteOrder) unless $outfile;
|
|
8637
|
+
$$self{ExifByteOrder} = $byteOrder;
|
|
8624
8638
|
} elsif ($$tagTablePtr{GROUPS}{0} eq 'MakerNotes') { # (for writing CR3 maker notes)
|
|
8625
8639
|
$ifdName = $$tagTablePtr{GROUPS}{0};
|
|
8626
8640
|
} else {
|
|
@@ -9680,10 +9694,10 @@ sub VPrint($$@)
|
|
|
9680
9694
|
# Print verbose directory information
|
|
9681
9695
|
# Inputs: 0) ExifTool object reference, 1) directory name or dirInfo ref
|
|
9682
9696
|
# 2) number of entries in directory (or 0 if unknown)
|
|
9683
|
-
# 3) optional size of directory in bytes
|
|
9684
|
-
sub VerboseDir(
|
|
9697
|
+
# 3) optional size of directory in bytes, 4) optional byte order for -v3 output
|
|
9698
|
+
sub VerboseDir($$;$$$)
|
|
9685
9699
|
{
|
|
9686
|
-
my ($self, $name, $entries, $size) = @_;
|
|
9700
|
+
my ($self, $name, $entries, $size, $byteOrder) = @_;
|
|
9687
9701
|
return unless $$self{OPTIONS}{Verbose};
|
|
9688
9702
|
if (ref $name eq 'HASH') {
|
|
9689
9703
|
$size = $$name{DirLen} unless $size;
|
|
@@ -9693,6 +9707,9 @@ sub VerboseDir($$;$$)
|
|
|
9693
9707
|
my $out = $$self{OPTIONS}{TextOut};
|
|
9694
9708
|
my $str = ($entries or defined $entries and not $size) ? " with $entries entries" : '';
|
|
9695
9709
|
$str .= ", $size bytes" if $size;
|
|
9710
|
+
if ($byteOrder and $$self{OPTIONS}{Verbose} > 2) {
|
|
9711
|
+
$str .= ', ' . (GetByteOrder() eq 'II' ? 'Little-endian' : 'Big-endian');
|
|
9712
|
+
}
|
|
9696
9713
|
print $out "$indent+ [$name directory$str]\n";
|
|
9697
9714
|
}
|
|
9698
9715
|
|
|
@@ -9815,7 +9832,7 @@ sub ProcessBinaryData($$$)
|
|
|
9815
9832
|
# extract known tags in numerical order
|
|
9816
9833
|
@tags = sort { ($a < 0 ? $a + 1e9 : $a) <=> ($b < 0 ? $b + 1e9 : $b) } TagTableKeys($tagTablePtr);
|
|
9817
9834
|
}
|
|
9818
|
-
$self->VerboseDir('BinaryData', undef, $size) if $verbose;
|
|
9835
|
+
$self->VerboseDir('BinaryData', undef, $size, GetByteOrder()) if $verbose;
|
|
9819
9836
|
# avoid creating unknown tags for tags that fail condition if Unknown is 1
|
|
9820
9837
|
$$self{NO_UNKNOWN} = 1 if $unknown < 2;
|
|
9821
9838
|
my ($index, %val);
|