exiftool-vendored 31.3.0 → 32.0.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.
- package/CHANGELOG.md +9 -1
- package/CLAUDE.md +1 -1
- package/README.md +41 -8
- package/dist/DefaultExifToolOptions.d.ts +2 -1
- package/dist/DefaultExifToolOptions.js +3 -2
- package/dist/DefaultExifToolOptions.js.map +1 -1
- package/dist/ExifDateTime.d.ts +2 -1
- package/dist/ExifDateTime.js +19 -8
- package/dist/ExifDateTime.js.map +1 -1
- package/dist/ExifTool.d.ts +19 -8
- package/dist/ExifTool.js +26 -25
- package/dist/ExifTool.js.map +1 -1
- package/dist/ExifToolOptions.d.ts +4 -2
- package/dist/ExifToolOptions.js.map +1 -1
- package/dist/File.d.ts +1 -1
- package/dist/IsWin32.d.ts +1 -1
- package/dist/Lazy.d.ts +4 -1
- package/dist/Lazy.js +7 -1
- package/dist/Lazy.js.map +1 -1
- package/dist/ReadRawTask.d.ts +9 -2
- package/dist/ReadRawTask.js +21 -4
- package/dist/ReadRawTask.js.map +1 -1
- package/dist/Settings.d.ts +82 -0
- package/dist/Settings.js +154 -0
- package/dist/Settings.js.map +1 -0
- package/dist/Tags.d.ts +22 -22
- package/dist/Tags.js +1 -1
- package/dist/Tags.js.map +1 -1
- package/dist/Timezones.d.ts +9 -3
- package/dist/Timezones.js +81 -33
- package/dist/Timezones.js.map +1 -1
- package/package.json +9 -9
package/dist/ReadRawTask.js
CHANGED
|
@@ -33,22 +33,39 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.ReadRawTask = void 0;
|
|
36
|
+
exports.ReadRawTask = exports.DefaultReadRawTaskOptions = exports.ReadRawTaskOptionFields = void 0;
|
|
37
37
|
const batch_cluster_1 = require("batch-cluster");
|
|
38
38
|
const _path = __importStar(require("node:path"));
|
|
39
|
+
const DefaultExifToolOptions_1 = require("./DefaultExifToolOptions");
|
|
39
40
|
const ErrorsAndWarnings_1 = require("./ErrorsAndWarnings");
|
|
40
41
|
const ExifToolTask_1 = require("./ExifToolTask");
|
|
41
42
|
const FilenameCharsetArgs_1 = require("./FilenameCharsetArgs");
|
|
43
|
+
const Pick_1 = require("./Pick");
|
|
44
|
+
exports.ReadRawTaskOptionFields = [
|
|
45
|
+
"readArgs",
|
|
46
|
+
"ignoreMinorErrors",
|
|
47
|
+
"useMWG",
|
|
48
|
+
];
|
|
49
|
+
exports.DefaultReadRawTaskOptions = {
|
|
50
|
+
...(0, Pick_1.pick)(DefaultExifToolOptions_1.DefaultExifToolOptions, ...exports.ReadRawTaskOptionFields),
|
|
51
|
+
};
|
|
42
52
|
class ReadRawTask extends ExifToolTask_1.ExifToolTask {
|
|
43
53
|
sourceFile;
|
|
44
54
|
args;
|
|
45
|
-
static for(filename,
|
|
46
|
-
const args = [
|
|
55
|
+
static for(filename, options) {
|
|
56
|
+
const args = [
|
|
57
|
+
...FilenameCharsetArgs_1.Utf8FilenameCharsetArgs,
|
|
58
|
+
...(options?.readArgs ?? []),
|
|
59
|
+
];
|
|
60
|
+
const opts = { ...exports.DefaultReadRawTaskOptions, ...options };
|
|
47
61
|
if (!args.includes("-json"))
|
|
48
62
|
args.push("-json");
|
|
63
|
+
if (opts.useMWG) {
|
|
64
|
+
args.push("-use", "MWG");
|
|
65
|
+
}
|
|
49
66
|
const sourceFile = _path.resolve(filename);
|
|
50
67
|
args.push(sourceFile);
|
|
51
|
-
return new ReadRawTask(sourceFile, args,
|
|
68
|
+
return new ReadRawTask(sourceFile, args, opts);
|
|
52
69
|
}
|
|
53
70
|
constructor(sourceFile, args, options) {
|
|
54
71
|
super(args, options);
|
package/dist/ReadRawTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadRawTask.js","sourceRoot":"","sources":["../src/ReadRawTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAuC;AACvC,iDAAmC;AACnC,2DAAwD;
|
|
1
|
+
{"version":3,"file":"ReadRawTask.js","sourceRoot":"","sources":["../src/ReadRawTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAuC;AACvC,iDAAmC;AACnC,qEAAkE;AAClE,2DAAwD;AAExD,iDAA8C;AAC9C,+DAAgE;AAChE,iCAA8B;AAGjB,QAAA,uBAAuB,GAAG;IACrC,UAAU;IACV,mBAAmB;IACnB,QAAQ;CACoC,CAAC;AAElC,QAAA,yBAAyB,GAAG;IACvC,GAAG,IAAA,WAAI,EAAC,+CAAsB,EAAE,GAAG,+BAAuB,CAAC;CAChB,CAAC;AAI9C,MAAa,WAAY,SAAQ,2BAAqB;IAkBzC;IACS;IAlBpB,MAAM,CAAC,GAAG,CAAC,QAAgB,EAAE,OAA4B;QACvD,MAAM,IAAI,GAAa;YACrB,GAAG,6CAAuB;YAC1B,GAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;SAC7B,CAAC;QACF,MAAM,IAAI,GAAG,EAAE,GAAG,iCAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtB,OAAO,IAAI,WAAW,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,YACW,UAAkB,EACT,IAAc,EAChC,OAAqC;QAErC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAJZ,eAAU,GAAV,UAAU,CAAQ;QACT,SAAI,GAAJ,IAAI,CAAU;IAIlC,CAAC;IAEQ,QAAQ;QACf,OAAO,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IAC/C,CAAC;IAES,KAAK,CAAC,IAAY,EAAE,GAAW;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,qCAAiB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,IAAA,sBAAM,GAAE,CAAC,KAAK,CAAC,sCAAsC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,MAAM,GAAG,IAAI,SAAS,CAAC;QACzB,CAAC;IACH,CAAC;CACF;AAzCD,kCAyCC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import * as bc from "batch-cluster";
|
|
2
|
+
/**
|
|
3
|
+
* A function that unsubscribes from a Setting change listener.
|
|
4
|
+
* @see Setting.onChange
|
|
5
|
+
*/
|
|
6
|
+
export type UnsubscribeFunction = () => void;
|
|
7
|
+
/**
|
|
8
|
+
* A setting value that can be observed for changes.
|
|
9
|
+
*
|
|
10
|
+
* Each Setting instance manages its own value and listeners, providing
|
|
11
|
+
* a clean, composable alternative to global event buses or proxies.
|
|
12
|
+
*/
|
|
13
|
+
export declare class Setting<T> {
|
|
14
|
+
#private;
|
|
15
|
+
readonly defaultValue: T;
|
|
16
|
+
constructor(defaultValue: T);
|
|
17
|
+
/** Get the current value */
|
|
18
|
+
get value(): T;
|
|
19
|
+
/** Set a new value, notifying listeners if changed */
|
|
20
|
+
set value(newValue: T);
|
|
21
|
+
/**
|
|
22
|
+
* Subscribe to value changes.
|
|
23
|
+
*
|
|
24
|
+
* @returns Unsubscribe function
|
|
25
|
+
*/
|
|
26
|
+
onChange(listener: (oldValue: T, newValue: T) => void): UnsubscribeFunction;
|
|
27
|
+
/** Reset to default value */
|
|
28
|
+
reset(): void;
|
|
29
|
+
/** Allow implicit coercion in conditionals */
|
|
30
|
+
valueOf(): T;
|
|
31
|
+
toString(): string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Library-wide configuration settings for exiftool-vendored
|
|
35
|
+
*
|
|
36
|
+
* @see ExifToolOptions for per-instance settings.
|
|
37
|
+
*/
|
|
38
|
+
export declare const Settings: {
|
|
39
|
+
/**
|
|
40
|
+
* Allow parsing of archaic timezone offsets that are no longer in use.
|
|
41
|
+
*
|
|
42
|
+
* These include historical offsets like:
|
|
43
|
+
* - "-10:30" (Hawaii 1896-1947)
|
|
44
|
+
* - "-04:30" (Venezuela 1912-1965, 2007-2016)
|
|
45
|
+
* - "+04:51" (Bombay until 1955)
|
|
46
|
+
* - and others from
|
|
47
|
+
* https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
|
48
|
+
*
|
|
49
|
+
* **Warning**: Enabling this may lead to incorrect timezone parsing for
|
|
50
|
+
* modern files, as these offsets are not currently used anywhere. Only enable
|
|
51
|
+
* this if you are specifically working with historical photographs or scanned
|
|
52
|
+
* archival material.
|
|
53
|
+
*
|
|
54
|
+
* @default false
|
|
55
|
+
*/
|
|
56
|
+
allowArchaicTimezoneOffsets: Setting<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Allow parsing of the UTC-12:00 timezone offset ("Baker Island Time") as a
|
|
59
|
+
* valid timezone.
|
|
60
|
+
*
|
|
61
|
+
* This timezone is not used for any populated land, and is disabled by
|
|
62
|
+
* default to prevent incorrect timezone parsing from files with mangled
|
|
63
|
+
* metadata.
|
|
64
|
+
*
|
|
65
|
+
* @default false
|
|
66
|
+
*/
|
|
67
|
+
allowBakerIslandTime: Setting<boolean>;
|
|
68
|
+
/**
|
|
69
|
+
* Logger instance used throughout exiftool-vendored.
|
|
70
|
+
*
|
|
71
|
+
* By default, this is set to ConsoleLogger if NODE_DEBUG=exiftool-vendored is
|
|
72
|
+
* set, otherwise NoLogger.
|
|
73
|
+
*
|
|
74
|
+
* This can be changed at runtime to redirect logging output. When changed,
|
|
75
|
+
* the batch-cluster global logger is also updated for consistency.
|
|
76
|
+
*
|
|
77
|
+
* @default ConsoleLogger or NoLogger based on NODE_DEBUG
|
|
78
|
+
*/
|
|
79
|
+
logger: Setting<() => bc.Logger>;
|
|
80
|
+
/** Reset all settings to their default values */
|
|
81
|
+
reset(): void;
|
|
82
|
+
};
|
package/dist/Settings.js
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.Settings = exports.Setting = void 0;
|
|
37
|
+
const bc = __importStar(require("batch-cluster"));
|
|
38
|
+
const node_util_1 = require("node:util");
|
|
39
|
+
/**
|
|
40
|
+
* A setting value that can be observed for changes.
|
|
41
|
+
*
|
|
42
|
+
* Each Setting instance manages its own value and listeners, providing
|
|
43
|
+
* a clean, composable alternative to global event buses or proxies.
|
|
44
|
+
*/
|
|
45
|
+
class Setting {
|
|
46
|
+
defaultValue;
|
|
47
|
+
#value;
|
|
48
|
+
#listeners = new Set();
|
|
49
|
+
constructor(defaultValue) {
|
|
50
|
+
this.defaultValue = defaultValue;
|
|
51
|
+
this.#value = this.defaultValue;
|
|
52
|
+
}
|
|
53
|
+
/** Get the current value */
|
|
54
|
+
get value() {
|
|
55
|
+
return this.#value;
|
|
56
|
+
}
|
|
57
|
+
/** Set a new value, notifying listeners if changed */
|
|
58
|
+
set value(newValue) {
|
|
59
|
+
if (this.#value !== newValue) {
|
|
60
|
+
const old = this.#value;
|
|
61
|
+
this.#value = newValue;
|
|
62
|
+
for (const ea of this.#listeners) {
|
|
63
|
+
ea(old, newValue);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Subscribe to value changes.
|
|
69
|
+
*
|
|
70
|
+
* @returns Unsubscribe function
|
|
71
|
+
*/
|
|
72
|
+
onChange(listener) {
|
|
73
|
+
this.#listeners.add(listener);
|
|
74
|
+
return () => this.#listeners.delete(listener);
|
|
75
|
+
}
|
|
76
|
+
/** Reset to default value */
|
|
77
|
+
reset() {
|
|
78
|
+
this.value = this.defaultValue;
|
|
79
|
+
}
|
|
80
|
+
/** Allow implicit coercion in conditionals */
|
|
81
|
+
valueOf() {
|
|
82
|
+
return this.#value;
|
|
83
|
+
}
|
|
84
|
+
toString() {
|
|
85
|
+
return String(this.#value);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.Setting = Setting;
|
|
89
|
+
const _debuglog = (0, node_util_1.debuglog)("exiftool-vendored");
|
|
90
|
+
function noop() { }
|
|
91
|
+
const ConsoleLogger = {
|
|
92
|
+
trace: noop,
|
|
93
|
+
debug: _debuglog,
|
|
94
|
+
info: _debuglog,
|
|
95
|
+
warn: console.warn,
|
|
96
|
+
error: console.error,
|
|
97
|
+
};
|
|
98
|
+
const defaultLogger = () => (_debuglog.enabled ? ConsoleLogger : bc.NoLogger);
|
|
99
|
+
/**
|
|
100
|
+
* Library-wide configuration settings for exiftool-vendored
|
|
101
|
+
*
|
|
102
|
+
* @see ExifToolOptions for per-instance settings.
|
|
103
|
+
*/
|
|
104
|
+
exports.Settings = {
|
|
105
|
+
/**
|
|
106
|
+
* Allow parsing of archaic timezone offsets that are no longer in use.
|
|
107
|
+
*
|
|
108
|
+
* These include historical offsets like:
|
|
109
|
+
* - "-10:30" (Hawaii 1896-1947)
|
|
110
|
+
* - "-04:30" (Venezuela 1912-1965, 2007-2016)
|
|
111
|
+
* - "+04:51" (Bombay until 1955)
|
|
112
|
+
* - and others from
|
|
113
|
+
* https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
|
114
|
+
*
|
|
115
|
+
* **Warning**: Enabling this may lead to incorrect timezone parsing for
|
|
116
|
+
* modern files, as these offsets are not currently used anywhere. Only enable
|
|
117
|
+
* this if you are specifically working with historical photographs or scanned
|
|
118
|
+
* archival material.
|
|
119
|
+
*
|
|
120
|
+
* @default false
|
|
121
|
+
*/
|
|
122
|
+
allowArchaicTimezoneOffsets: new Setting(false),
|
|
123
|
+
/**
|
|
124
|
+
* Allow parsing of the UTC-12:00 timezone offset ("Baker Island Time") as a
|
|
125
|
+
* valid timezone.
|
|
126
|
+
*
|
|
127
|
+
* This timezone is not used for any populated land, and is disabled by
|
|
128
|
+
* default to prevent incorrect timezone parsing from files with mangled
|
|
129
|
+
* metadata.
|
|
130
|
+
*
|
|
131
|
+
* @default false
|
|
132
|
+
*/
|
|
133
|
+
allowBakerIslandTime: new Setting(false),
|
|
134
|
+
/**
|
|
135
|
+
* Logger instance used throughout exiftool-vendored.
|
|
136
|
+
*
|
|
137
|
+
* By default, this is set to ConsoleLogger if NODE_DEBUG=exiftool-vendored is
|
|
138
|
+
* set, otherwise NoLogger.
|
|
139
|
+
*
|
|
140
|
+
* This can be changed at runtime to redirect logging output. When changed,
|
|
141
|
+
* the batch-cluster global logger is also updated for consistency.
|
|
142
|
+
*
|
|
143
|
+
* @default ConsoleLogger or NoLogger based on NODE_DEBUG
|
|
144
|
+
*/
|
|
145
|
+
logger: new Setting(defaultLogger),
|
|
146
|
+
/** Reset all settings to their default values */
|
|
147
|
+
reset() {
|
|
148
|
+
for (const ea of Object.values(this)) {
|
|
149
|
+
if (ea instanceof Setting)
|
|
150
|
+
ea.reset();
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=Settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../src/Settings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAoC;AACpC,yCAAqC;AAQrC;;;;;GAKG;AACH,MAAa,OAAO;IAIG;IAHrB,MAAM,CAAI;IACD,UAAU,GAAG,IAAI,GAAG,EAAsC,CAAC;IAEpE,YAAqB,YAAe;QAAf,iBAAY,GAAZ,YAAY,CAAG;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,4BAA4B;IAC5B,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,sDAAsD;IACtD,IAAI,KAAK,CAAC,QAAW;QACnB,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAA4C;QACnD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,6BAA6B;IAC7B,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;IACjC,CAAC;IAED,8CAA8C;IAC9C,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,QAAQ;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;CACF;AA/CD,0BA+CC;AAED,MAAM,SAAS,GAAG,IAAA,oBAAQ,EAAC,mBAAmB,CAAC,CAAC;AAChD,SAAS,IAAI,KAAI,CAAC;AAElB,MAAM,aAAa,GAAc;IAC/B,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,KAAK,EAAE,OAAO,CAAC,KAAK;CACrB,CAAC;AAEF,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAE9E;;;;GAIG;AACU,QAAA,QAAQ,GAAG;IACtB;;;;;;;;;;;;;;;;OAgBG;IACH,2BAA2B,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC;IAE/C;;;;;;;;;OASG;IACH,oBAAoB,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC;IAExC;;;;;;;;;;OAUG;IACH,MAAM,EAAE,IAAI,OAAO,CAAkB,aAAa,CAAC;IAEnD,iDAAiD;IACjD,KAAK;QACH,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,EAAE,YAAY,OAAO;gBAAE,EAAE,CAAC,KAAK,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;CACF,CAAC"}
|