poe-code 15.0.5 → 15.0.6

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.
Files changed (59) hide show
  1. package/dist/metafile.json +1 -1
  2. package/package.json +1 -1
  3. package/packages/safe-bash/dist/commands/archive/index.d.ts +2 -0
  4. package/packages/safe-bash/dist/commands/archive/index.d.ts.map +1 -1
  5. package/packages/safe-bash/dist/commands/archive/index.js +11 -3
  6. package/packages/safe-bash/dist/commands/archive/index.js.map +1 -1
  7. package/packages/safe-bash/dist/commands/archive/unzip/arguments.d.ts +32 -0
  8. package/packages/safe-bash/dist/commands/archive/unzip/arguments.d.ts.map +1 -0
  9. package/packages/safe-bash/dist/commands/archive/unzip/arguments.js +214 -0
  10. package/packages/safe-bash/dist/commands/archive/unzip/arguments.js.map +1 -0
  11. package/packages/safe-bash/dist/commands/archive/unzip/safety.d.ts +28 -0
  12. package/packages/safe-bash/dist/commands/archive/unzip/safety.d.ts.map +1 -0
  13. package/packages/safe-bash/dist/commands/archive/unzip/safety.js +288 -0
  14. package/packages/safe-bash/dist/commands/archive/unzip/safety.js.map +1 -0
  15. package/packages/safe-bash/dist/commands/archive/unzip.d.ts +4 -0
  16. package/packages/safe-bash/dist/commands/archive/unzip.d.ts.map +1 -0
  17. package/packages/safe-bash/dist/commands/archive/unzip.js +264 -0
  18. package/packages/safe-bash/dist/commands/archive/unzip.js.map +1 -0
  19. package/packages/safe-bash/dist/commands/archive/zip/safety.d.ts +28 -0
  20. package/packages/safe-bash/dist/commands/archive/zip/safety.d.ts.map +1 -0
  21. package/packages/safe-bash/dist/commands/archive/zip/safety.js +228 -0
  22. package/packages/safe-bash/dist/commands/archive/zip/safety.js.map +1 -0
  23. package/packages/safe-bash/dist/commands/archive/zip-format.d.ts +39 -0
  24. package/packages/safe-bash/dist/commands/archive/zip-format.d.ts.map +1 -0
  25. package/packages/safe-bash/dist/commands/archive/zip-format.js +509 -0
  26. package/packages/safe-bash/dist/commands/archive/zip-format.js.map +1 -0
  27. package/packages/safe-bash/dist/commands/archive/zip.d.ts +4 -0
  28. package/packages/safe-bash/dist/commands/archive/zip.d.ts.map +1 -0
  29. package/packages/safe-bash/dist/commands/archive/zip.js +290 -0
  30. package/packages/safe-bash/dist/commands/archive/zip.js.map +1 -0
  31. package/packages/safe-bash/dist/commands/bytes/compression/codec.d.ts +1 -1
  32. package/packages/safe-bash/dist/commands/bytes/compression/codec.d.ts.map +1 -1
  33. package/packages/safe-bash/dist/commands/bytes/compression/codec.js +2 -2
  34. package/packages/safe-bash/dist/commands/bytes/compression/codec.js.map +1 -1
  35. package/packages/safe-bash/dist/core.browser.js +1937 -389
  36. package/packages/safe-bash/dist/core.browser.js.map +4 -4
  37. package/packages/safe-bash/dist/shell/runtime.d.ts +1 -0
  38. package/packages/safe-bash/dist/shell/runtime.d.ts.map +1 -1
  39. package/packages/safe-bash/dist/shell/runtime.js +4 -1
  40. package/packages/safe-bash/dist/shell/runtime.js.map +1 -1
  41. package/packages/safe-fs/dist/core.d.ts +2 -1
  42. package/packages/safe-fs/dist/fs/scoped.d.ts +12 -2
  43. package/packages/safe-fs/dist/index.d.ts +2 -1
  44. package/packages/safe-js/dist/browser/chunks/{chunk-GQOAEEHU.js → chunk-3EJ7BQOJ.js} +89 -5
  45. package/packages/safe-js/dist/browser/chunks/{chunk-GQOAEEHU.js.map → chunk-3EJ7BQOJ.js.map} +3 -3
  46. package/packages/safe-js/dist/browser/safe-fs-core.js +3 -1
  47. package/packages/safe-js/dist/browser/safe-fs.js +3 -1
  48. package/packages/safe-js/dist/chunks/{chunk-DIISVPWF.js → chunk-742TUUOL.js} +89 -5
  49. package/packages/safe-js/dist/chunks/{chunk-DIISVPWF.js.map → chunk-742TUUOL.js.map} +3 -3
  50. package/packages/safe-js/dist/chunks/{chunk-L6LDJNBY.js → chunk-NMX3FJ3X.js} +3 -3
  51. package/packages/safe-js/dist/chunks/{chunk-CAWKMCKD.js → chunk-UVHJFEFO.js} +2 -2
  52. package/packages/safe-js/dist/cli.js +3 -3
  53. package/packages/safe-js/dist/index.js +3 -3
  54. package/packages/safe-js/dist/safe-fs-core.js +3 -1
  55. package/packages/safe-js/dist/safe-fs-core.js.map +1 -1
  56. package/packages/safe-js/dist/safe-fs-node.js +4 -2
  57. package/packages/safe-js/dist/safe-fs.js +4 -2
  58. /package/packages/safe-js/dist/chunks/{chunk-L6LDJNBY.js.map → chunk-NMX3FJ3X.js.map} +0 -0
  59. /package/packages/safe-js/dist/chunks/{chunk-CAWKMCKD.js.map → chunk-UVHJFEFO.js.map} +0 -0
@@ -0,0 +1,509 @@
1
+ import {} from "../../contracts/index.js";
2
+ import { yieldTurn } from "../../contracts/yield.js";
3
+ import { codec, CodecReader } from "../bytes/compression/codec.js";
4
+ import { fail, text } from "./internal.js";
5
+ const encoder = new TextEncoder();
6
+ const cp437 = "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ";
7
+ const crcTable = Uint32Array.from({ length: 256 }, (_, index) => {
8
+ let value = index;
9
+ for (let bit = 0; bit < 8; bit++)
10
+ value = (value >>> 1) ^ (value & 1 ? 0xedb88320 : 0);
11
+ return value >>> 0;
12
+ });
13
+ export function crc32(bytes, previous = 0) {
14
+ let value = previous ^ 0xffffffff;
15
+ for (const byte of bytes)
16
+ value = (value >>> 8) ^ crcTable[(value ^ byte) & 255];
17
+ return (value ^ 0xffffffff) >>> 0;
18
+ }
19
+ function number(value, maximum, label) {
20
+ if (!Number.isSafeInteger(value) || value < 0 || value > maximum)
21
+ fail(`ZIP ${label} limit exceeded or invalid value`);
22
+ }
23
+ function admit(limits, signal) {
24
+ signal.throwIfAborted();
25
+ for (const key of ["maxArchiveBytes", "maxEntryBytes", "maxTotalBytes", "maxMembers", "maxPathBytes", "maxDepth", "maxPaxBytes", "maxTextBytes", "chunkSize"]) {
26
+ number(limits[key], Number.MAX_SAFE_INTEGER, key);
27
+ }
28
+ if (limits.chunkSize < 512 || limits.chunkSize > 1024 * 1024)
29
+ fail("ZIP chunk size must be between 512 and 1048576");
30
+ return Math.min(limits.chunkSize, 64 * 1024);
31
+ }
32
+ function pathBytes(name, limits) {
33
+ if (name.length > Math.min(limits.maxPathBytes, 65535))
34
+ fail("ZIP path byte limit exceeded");
35
+ const bytes = encoder.encode(name);
36
+ if (!name || text(bytes) !== name || name.includes("\0"))
37
+ fail("ZIP invalid or unsafe path");
38
+ number(bytes.length, Math.min(limits.maxPathBytes, 65535), "path byte");
39
+ const parts = name.split("/");
40
+ if (parts.at(-1) === "")
41
+ parts.pop();
42
+ if (parts.some(part => !part || part === "." || part === ".."))
43
+ fail("ZIP unsafe traversal or absolute path");
44
+ number(parts.length, limits.maxDepth, "path depth");
45
+ return bytes;
46
+ }
47
+ function equal(first, second) {
48
+ return first.length === second.length && first.every((byte, index) => byte === second[index]);
49
+ }
50
+ function legacyName(bytes) {
51
+ let name = "";
52
+ for (const byte of bytes)
53
+ name += byte < 128 ? String.fromCharCode(byte) : cp437[byte - 128];
54
+ return name;
55
+ }
56
+ function extras(bytes, rawName, comment, central, limits) {
57
+ number(bytes.length, Math.min(limits.maxPaxBytes, 65535), "extra field");
58
+ const result = {};
59
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
60
+ const seen = new Set();
61
+ let offset = 0;
62
+ while (offset < bytes.length) {
63
+ if (offset + 4 > bytes.length)
64
+ fail("ZIP truncated extra field");
65
+ const identifier = view.getUint16(offset, true);
66
+ const length = view.getUint16(offset + 2, true);
67
+ offset += 4;
68
+ if (offset + length > bytes.length)
69
+ fail("ZIP truncated extra field payload");
70
+ if (seen.has(identifier))
71
+ fail("ZIP duplicate extra field");
72
+ seen.add(identifier);
73
+ if (identifier === 1)
74
+ fail("ZIP64 is unsupported");
75
+ if (identifier === 0x9901 || identifier === 0x0017 || identifier === 0x0018 || identifier === 0x0019)
76
+ fail("ZIP encryption is unsupported");
77
+ if (identifier === 0x7075 || identifier === 0x6375) {
78
+ if (length < 5 || bytes[offset] !== 1)
79
+ fail("ZIP unsupported or truncated Unicode extra field");
80
+ const original = identifier === 0x7075 ? rawName : comment;
81
+ if (view.getUint32(offset + 1, true) !== crc32(original))
82
+ fail("ZIP Unicode extra field CRC mismatch");
83
+ const decoded = text(bytes.subarray(offset + 5, offset + length));
84
+ if (identifier === 0x7075) {
85
+ pathBytes(decoded, limits);
86
+ result.name = decoded;
87
+ }
88
+ else
89
+ number(length - 5, limits.maxTextBytes, "Unicode comment");
90
+ }
91
+ if (identifier === 0x5455) {
92
+ if (!length)
93
+ fail("ZIP truncated timestamp extra field");
94
+ const flags = bytes[offset];
95
+ if (flags & ~7)
96
+ fail("ZIP unsupported timestamp flags");
97
+ const count = (flags & 1) + (central ? 0 : ((flags >>> 1) & 1) + ((flags >>> 2) & 1));
98
+ if (length !== 1 + count * 4)
99
+ fail("ZIP truncated or inconsistent timestamp extra field");
100
+ if (flags & 1)
101
+ result.modified = view.getInt32(offset + 1, true) * 1000;
102
+ }
103
+ offset += length;
104
+ }
105
+ return result;
106
+ }
107
+ function nameFrom(rawName, flags, metadata, limits) {
108
+ number(rawName.length, Math.min(limits.maxPathBytes, 65535), "raw path byte");
109
+ const raw = flags & 0x800 ? text(rawName) : legacyName(rawName);
110
+ pathBytes(raw, limits);
111
+ if (flags & 0x800 && metadata.name !== undefined && metadata.name !== raw)
112
+ fail("ZIP conflicting UTF-8 and Unicode extra names");
113
+ return metadata.name ?? raw;
114
+ }
115
+ function format(method, flags, version) {
116
+ number(flags, 65535, "general purpose flags");
117
+ if (flags & (1 | 64 | 0x2000))
118
+ fail("ZIP encryption is unsupported");
119
+ if (flags & ~0x80e || method === 0 && flags & 6)
120
+ fail("ZIP unsupported general purpose flags");
121
+ if (method !== 0 && method !== 8)
122
+ fail("ZIP unsupported compression method");
123
+ if (version < (method === 8 || flags & 8 ? 20 : 10) || version > 20)
124
+ fail("ZIP unsupported extraction version (including ZIP64)");
125
+ }
126
+ function dosModified(date, time) {
127
+ if (!date && !time)
128
+ return new Date(1980, 0, 1);
129
+ const year = 1980 + (date >>> 9);
130
+ const month = ((date >>> 5) & 15) - 1;
131
+ const day = date & 31;
132
+ const hours = time >>> 11;
133
+ const minutes = (time >>> 5) & 63;
134
+ const seconds = (time & 31) * 2;
135
+ const result = new Date(Date.UTC(year, month, day, hours, minutes, seconds));
136
+ if (result.getUTCFullYear() !== year || result.getUTCMonth() !== month || result.getUTCDate() !== day || hours > 23 || minutes > 59 || seconds > 59)
137
+ fail("ZIP invalid DOS timestamp");
138
+ return new Date(year, month, day, hours, minutes, seconds);
139
+ }
140
+ function entryBounds(entry, limits) {
141
+ pathBytes(entry.name, limits);
142
+ number(entry.size, Math.min(limits.maxEntryBytes, limits.maxTotalBytes, 0xfffffffe), "entry byte");
143
+ number(entry.data.length, Math.min(limits.maxArchiveBytes, 0xfffffffe), "compressed byte");
144
+ number(entry.crc32, 0xffffffff, "CRC32");
145
+ number(entry.mode, 0xffff, "mode");
146
+ format(entry.method, entry.flags ?? 0x800, entry.method === 8 || (entry.flags ?? 0) & 8 ? 20 : 10);
147
+ if (entry.directory !== entry.name.endsWith("/") || entry.directory && (entry.symlink || entry.size !== 0))
148
+ fail("ZIP inconsistent directory metadata");
149
+ const type = entry.mode & 0o170000;
150
+ if (type !== 0 && type !== (entry.directory ? 0o040000 : entry.symlink ? 0o120000 : 0o100000))
151
+ fail("ZIP unsupported or conflicting file type");
152
+ if (!Number.isFinite(entry.modified.getTime()))
153
+ fail("ZIP invalid modification time");
154
+ }
155
+ async function copyBytes(source, destination, start, chunkSize, signal) {
156
+ for (let offset = 0; offset < source.length; offset += chunkSize) {
157
+ signal.throwIfAborted();
158
+ destination.set(source.subarray(offset, offset + chunkSize), start + offset);
159
+ if (offset + chunkSize < source.length)
160
+ await yieldTurn(signal);
161
+ }
162
+ }
163
+ export async function readZipArchive(bytes, limits, signal) {
164
+ const chunkSize = admit(limits, signal);
165
+ number(bytes.length, Math.min(limits.maxArchiveBytes, 0xfffffffe), "archive byte");
166
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
167
+ let end = -1;
168
+ const lower = Math.max(0, bytes.length - 22 - 65535);
169
+ for (let offset = bytes.length - 22; offset >= lower; offset--) {
170
+ if ((bytes.length - offset) % 4096 === 0)
171
+ await yieldTurn(signal);
172
+ if (view.getUint32(offset, true) === 0x06054b50 && offset + 22 + view.getUint16(offset + 20, true) === bytes.length) {
173
+ const size = view.getUint32(offset + 12, true);
174
+ const start = view.getUint32(offset + 16, true);
175
+ const zip64 = size === 0xffffffff || start === 0xffffffff || view.getUint16(offset + 10, true) === 65535 || offset >= 20 && view.getUint32(offset - 20, true) === 0x07064b50;
176
+ if (!zip64 && start + size !== offset)
177
+ continue;
178
+ if (end !== -1)
179
+ fail("ZIP ambiguous end records");
180
+ end = offset;
181
+ }
182
+ }
183
+ if (end === -1)
184
+ fail("ZIP truncated or missing end of central directory");
185
+ const members = view.getUint16(end + 10, true);
186
+ const centralSize = view.getUint32(end + 12, true);
187
+ const centralStart = view.getUint32(end + 16, true);
188
+ if (members === 65535 || centralSize === 0xffffffff || centralStart === 0xffffffff)
189
+ fail("ZIP64 is unsupported");
190
+ if (view.getUint16(end + 4, true) || view.getUint16(end + 6, true) || view.getUint16(end + 8, true) !== members)
191
+ fail("ZIP multi-disk or inconsistent member count is unsupported");
192
+ if (centralStart + centralSize !== end)
193
+ fail("ZIP invalid central directory span or unsupported ZIP64/trailing records");
194
+ number(members, limits.maxMembers, "member");
195
+ number(bytes.length - end - 22, limits.maxTextBytes, "archive comment");
196
+ const entries = [];
197
+ const spans = [];
198
+ let offset = centralStart;
199
+ let total = 0;
200
+ for (let index = 0; index < members; index++) {
201
+ await yieldTurn(signal);
202
+ if (offset + 46 > end || view.getUint32(offset, true) !== 0x02014b50)
203
+ fail("ZIP truncated or invalid central header");
204
+ const versionMadeBy = view.getUint16(offset + 4, true);
205
+ const version = view.getUint16(offset + 6, true);
206
+ const flags = view.getUint16(offset + 8, true);
207
+ const method = view.getUint16(offset + 10, true);
208
+ format(method, flags, version);
209
+ const dosTime = view.getUint16(offset + 12, true);
210
+ const dosDate = view.getUint16(offset + 14, true);
211
+ const checksum = view.getUint32(offset + 16, true);
212
+ const compressedSize = view.getUint32(offset + 20, true);
213
+ const size = view.getUint32(offset + 24, true);
214
+ const nameLength = view.getUint16(offset + 28, true);
215
+ const extraLength = view.getUint16(offset + 30, true);
216
+ const commentLength = view.getUint16(offset + 32, true);
217
+ const internalAttributes = view.getUint16(offset + 36, true);
218
+ if (internalAttributes & ~1)
219
+ fail("ZIP unsupported internal attributes");
220
+ const externalAttributes = view.getUint32(offset + 38, true);
221
+ const local = view.getUint32(offset + 42, true);
222
+ if (view.getUint16(offset + 34, true))
223
+ fail("ZIP multi-disk member is unsupported");
224
+ if (compressedSize === 0xffffffff || size === 0xffffffff || local === 0xffffffff)
225
+ fail("ZIP64 is unsupported");
226
+ number(size, limits.maxEntryBytes, "entry byte");
227
+ if (method === 0 && compressedSize !== size)
228
+ fail("ZIP stored size mismatch");
229
+ total += size;
230
+ number(total, limits.maxTotalBytes, "total byte");
231
+ const next = offset + 46 + nameLength + extraLength + commentLength;
232
+ if (next > end)
233
+ fail("ZIP truncated central metadata");
234
+ number(commentLength, limits.maxTextBytes, "entry comment");
235
+ const rawName = bytes.subarray(offset + 46, offset + 46 + nameLength);
236
+ const centralExtra = bytes.subarray(offset + 46 + nameLength, next - commentLength);
237
+ const comment = bytes.subarray(next - commentLength, next);
238
+ if (flags & 0x800)
239
+ text(comment);
240
+ const centralMetadata = extras(centralExtra, rawName, comment, true, limits);
241
+ const name = nameFrom(rawName, flags, centralMetadata, limits);
242
+ if (local + 30 > centralStart || view.getUint32(local, true) !== 0x04034b50)
243
+ fail("ZIP invalid local header span");
244
+ if (view.getUint16(local + 4, true) !== version || view.getUint16(local + 6, true) !== flags || view.getUint16(local + 8, true) !== method || view.getUint16(local + 10, true) !== dosTime || view.getUint16(local + 12, true) !== dosDate)
245
+ fail("ZIP central/local metadata mismatch");
246
+ const localNameLength = view.getUint16(local + 26, true);
247
+ const localExtraLength = view.getUint16(local + 28, true);
248
+ const payloadStart = local + 30 + localNameLength + localExtraLength;
249
+ let payloadEnd = payloadStart + compressedSize;
250
+ if (payloadEnd > centralStart)
251
+ fail("ZIP truncated or overlapping local payload");
252
+ const localName = bytes.subarray(local + 30, local + 30 + localNameLength);
253
+ if (!equal(rawName, localName))
254
+ fail("ZIP central/local filename mismatch");
255
+ const localExtra = bytes.subarray(local + 30 + localNameLength, payloadStart);
256
+ const localMetadata = extras(localExtra, localName, comment, false, limits);
257
+ const localEffective = nameFrom(localName, flags, localMetadata, limits);
258
+ if (localMetadata.name !== undefined && localEffective !== name)
259
+ fail("ZIP central/local Unicode name mismatch");
260
+ if (centralMetadata.modified !== undefined && localMetadata.modified !== undefined && centralMetadata.modified !== localMetadata.modified)
261
+ fail("ZIP central/local timestamp mismatch");
262
+ for (const [position, expected] of [[14, checksum], [18, compressedSize], [22, size]]) {
263
+ const actual = view.getUint32(local + position, true);
264
+ if (actual !== expected && (!(flags & 8) || actual !== 0))
265
+ fail("ZIP central/local size or CRC mismatch");
266
+ }
267
+ if (flags & 8) {
268
+ const matches = [];
269
+ for (const signed of [false, true]) {
270
+ const descriptor = payloadEnd + (signed ? 4 : 0);
271
+ if (descriptor + 12 <= centralStart && (!signed || view.getUint32(payloadEnd, true) === 0x08074b50) && view.getUint32(descriptor, true) === checksum && view.getUint32(descriptor + 4, true) === compressedSize && view.getUint32(descriptor + 8, true) === size)
272
+ matches.push(descriptor + 12);
273
+ }
274
+ if (matches.length !== 1)
275
+ fail("ZIP truncated, ambiguous or mismatched data descriptor");
276
+ payloadEnd = matches[0];
277
+ }
278
+ const host = versionMadeBy >>> 8;
279
+ const unixMode = host === 3 || host === 19 ? externalAttributes >>> 16 : 0;
280
+ const directory = name.endsWith("/");
281
+ if (Boolean(externalAttributes & 16) && !directory)
282
+ fail("ZIP conflicting directory attributes");
283
+ const mode = unixMode || (directory ? 0o040755 : 0o100644);
284
+ const symlink = (mode & 0o170000) === 0o120000;
285
+ const modified = dosModified(dosDate, dosTime);
286
+ const timestamp = centralMetadata.modified ?? localMetadata.modified;
287
+ if (timestamp !== undefined)
288
+ modified.setTime(timestamp);
289
+ const entry = { name, data: bytes.subarray(payloadStart, payloadStart + compressedSize), size, method, crc32: checksum, modified, mode, directory, symlink, rawName, localName, comment, localExtra, centralExtra, flags, versionMadeBy, internalAttributes, externalAttributes, dosTime, dosDate };
290
+ entryBounds(entry, limits);
291
+ entries.push(entry);
292
+ spans.push({ start: local, end: payloadEnd });
293
+ offset = next;
294
+ }
295
+ if (offset !== end)
296
+ fail("ZIP central directory size or member count mismatch");
297
+ spans.sort((first, second) => first.start - second.start);
298
+ let covered = 0;
299
+ for (const span of spans) {
300
+ if (span.start !== covered)
301
+ fail("ZIP overlapping spans, gaps or self-extracting prefix are unsupported");
302
+ covered = span.end;
303
+ }
304
+ if (covered !== centralStart)
305
+ fail("ZIP unreferenced local data is unsupported");
306
+ for (const entry of entries) {
307
+ const data = new Uint8Array(entry.data.length);
308
+ await copyBytes(entry.data, data, 0, chunkSize, signal);
309
+ entry.data = data;
310
+ entry.rawName = new Uint8Array(entry.rawName);
311
+ entry.localName = new Uint8Array(entry.localName);
312
+ entry.comment = new Uint8Array(entry.comment);
313
+ entry.localExtra = new Uint8Array(entry.localExtra);
314
+ entry.centralExtra = new Uint8Array(entry.centralExtra);
315
+ await yieldTurn(signal);
316
+ }
317
+ return { entries, comment: new Uint8Array(bytes.subarray(end + 22)) };
318
+ }
319
+ export async function* decodeZipEntry(entry, limits, signal) {
320
+ const chunkSize = admit(limits, signal);
321
+ entryBounds(entry, limits);
322
+ const reader = new CodecReader((async function* () { yield entry.data; })(), signal);
323
+ let length = 0;
324
+ let checksum = 0;
325
+ const source = entry.method === 8 ? codec(reader, { mode: "inflate-raw", chunkSize }, signal) : (async function* () {
326
+ for (let offset = 0; offset < entry.data.length; offset += chunkSize) {
327
+ yield new Uint8Array(entry.data.subarray(offset, offset + chunkSize));
328
+ await yieldTurn(signal);
329
+ }
330
+ })();
331
+ try {
332
+ for await (const chunk of source) {
333
+ signal.throwIfAborted();
334
+ length += chunk.length;
335
+ number(length, Math.min(limits.maxEntryBytes, limits.maxTotalBytes), "decoded byte");
336
+ checksum = crc32(chunk, checksum);
337
+ yield chunk;
338
+ }
339
+ if (entry.method === 8 && await reader.chunk() !== undefined)
340
+ fail("ZIP trailing compressed data");
341
+ if (length !== entry.size)
342
+ fail("ZIP uncompressed size mismatch");
343
+ if (checksum !== entry.crc32)
344
+ fail("ZIP CRC32 mismatch");
345
+ }
346
+ finally {
347
+ await reader.close();
348
+ }
349
+ }
350
+ export async function makeZipEntry(name, bytes, attributes, limits, signal) {
351
+ const chunkSize = admit(limits, signal);
352
+ const entry = { name, data: bytes, size: bytes.length, method: 0, crc32: 0, ...attributes, modified: new Date(attributes.modified.getTime()) };
353
+ entryBounds(entry, limits);
354
+ for (let offset = 0; offset < bytes.length; offset += chunkSize) {
355
+ entry.crc32 = crc32(bytes.subarray(offset, offset + chunkSize), entry.crc32);
356
+ await yieldTurn(signal);
357
+ }
358
+ const reader = new CodecReader((async function* () { yield bytes; })(), signal);
359
+ try {
360
+ if (bytes.length && !entry.directory && !entry.symlink) {
361
+ const chunks = [];
362
+ let length = 0;
363
+ for await (const chunk of codec(reader, { mode: "deflate-raw", chunkSize }, signal)) {
364
+ length += chunk.length;
365
+ if (length >= bytes.length)
366
+ break;
367
+ chunks.push(new Uint8Array(chunk));
368
+ }
369
+ if (length < bytes.length) {
370
+ entry.data = new Uint8Array(length);
371
+ let offset = 0;
372
+ for (const chunk of chunks) {
373
+ entry.data.set(chunk, offset);
374
+ offset += chunk.length;
375
+ await yieldTurn(signal);
376
+ }
377
+ entry.method = 8;
378
+ return entry;
379
+ }
380
+ }
381
+ entry.data = new Uint8Array(bytes.length);
382
+ await copyBytes(bytes, entry.data, 0, chunkSize, signal);
383
+ return entry;
384
+ }
385
+ finally {
386
+ await reader.close();
387
+ }
388
+ }
389
+ function timestampExtra(modified) {
390
+ const seconds = Math.floor(modified.getTime() / 1000);
391
+ if (seconds < -0x80000000 || seconds > 0x7fffffff)
392
+ return new Uint8Array();
393
+ const bytes = new Uint8Array(9);
394
+ const view = new DataView(bytes.buffer);
395
+ view.setUint16(0, 0x5455, true);
396
+ view.setUint16(2, 5, true);
397
+ bytes[4] = 1;
398
+ view.setInt32(5, seconds, true);
399
+ return bytes;
400
+ }
401
+ export async function writeZipArchive(archive, limits, signal) {
402
+ const chunkSize = admit(limits, signal);
403
+ number(archive.entries.length, Math.min(limits.maxMembers, 65534), "member");
404
+ number(archive.comment.length, Math.min(limits.maxTextBytes, 65535), "archive comment");
405
+ let length = 22 + archive.comment.length;
406
+ let localLength = 0;
407
+ let total = 0;
408
+ const encoded = [];
409
+ for (const entry of archive.entries) {
410
+ await yieldTurn(signal);
411
+ entryBounds(entry, limits);
412
+ if (entry.method === 0 && entry.data.length !== entry.size)
413
+ fail("ZIP stored size mismatch");
414
+ total += entry.size;
415
+ number(total, limits.maxTotalBytes, "total byte");
416
+ const rawName = entry.rawName ?? pathBytes(entry.name, limits);
417
+ const flags = (entry.flags ?? 0x800) & ~8;
418
+ const comment = entry.comment ?? new Uint8Array();
419
+ number(comment.length, Math.min(limits.maxTextBytes, 65535), "entry comment");
420
+ if (flags & 0x800)
421
+ text(comment);
422
+ const localExtra = entry.localExtra ?? timestampExtra(entry.modified);
423
+ const centralExtra = entry.centralExtra ?? timestampExtra(entry.modified);
424
+ const localMetadata = extras(localExtra, rawName, comment, false, limits);
425
+ const centralMetadata = extras(centralExtra, rawName, comment, true, limits);
426
+ if (nameFrom(rawName, flags, centralMetadata, limits) !== entry.name || localMetadata.name !== undefined && nameFrom(rawName, flags, localMetadata, limits) !== entry.name || entry.localName && !equal(rawName, entry.localName))
427
+ fail("ZIP retained filename metadata mismatch");
428
+ if (localMetadata.modified !== undefined && centralMetadata.modified !== undefined && localMetadata.modified !== centralMetadata.modified)
429
+ fail("ZIP retained timestamp metadata mismatch");
430
+ const rounded = new Date(Math.ceil(Math.floor(entry.modified.getTime() / 1000) / 2) * 2000);
431
+ const year = Math.max(1980, Math.min(2107, rounded.getFullYear()));
432
+ const date = entry.dosDate ?? (((year - 1980) << 9) | ((rounded.getMonth() + 1) << 5) | rounded.getDate());
433
+ const time = entry.dosTime ?? ((rounded.getHours() << 11) | (rounded.getMinutes() << 5) | (rounded.getSeconds() >>> 1));
434
+ number(date, 65535, "DOS date");
435
+ number(time, 65535, "DOS time");
436
+ const dosTimestamp = dosModified(date, time).getTime();
437
+ const extendedTimestamp = centralMetadata.modified ?? localMetadata.modified;
438
+ if (extendedTimestamp === undefined ? dosTimestamp !== rounded.getTime() : Math.floor(extendedTimestamp / 1000) !== Math.floor(entry.modified.getTime() / 1000))
439
+ fail("ZIP retained or unrepresentable timestamp metadata mismatch");
440
+ for (const [value, maximum, label] of [[entry.versionMadeBy ?? 0x31e, 65535, "creator version"], [entry.internalAttributes ?? 0, 65535, "internal attributes"], [entry.externalAttributes ?? 0, 0xffffffff, "external attributes"]])
441
+ number(value, maximum, label);
442
+ if ((entry.internalAttributes ?? 0) & ~1)
443
+ fail("ZIP unsupported internal attributes");
444
+ if (entry.externalAttributes !== undefined) {
445
+ const host = (entry.versionMadeBy ?? 0x31e) >>> 8;
446
+ const unixMode = host === 3 || host === 19 ? entry.externalAttributes >>> 16 : 0;
447
+ const mode = unixMode || (entry.directory ? 0o040755 : 0o100644);
448
+ if (mode !== entry.mode || Boolean(entry.externalAttributes & 16) && !entry.directory)
449
+ fail("ZIP retained file attributes mismatch");
450
+ }
451
+ encoded.push({ entry, rawName, flags, localExtra, centralExtra, comment, date, time, offset: localLength });
452
+ localLength += 30 + rawName.length + localExtra.length + entry.data.length;
453
+ length += 76 + 2 * rawName.length + localExtra.length + centralExtra.length + comment.length + entry.data.length;
454
+ number(length, Math.min(limits.maxArchiveBytes, 0xfffffffe), "archive byte");
455
+ }
456
+ number(length, Math.min(limits.maxArchiveBytes, 0xfffffffe), "archive byte");
457
+ const bytes = new Uint8Array(length);
458
+ const view = new DataView(bytes.buffer);
459
+ let central = localLength;
460
+ for (const item of encoded) {
461
+ await yieldTurn(signal);
462
+ const { entry, rawName, flags, localExtra, centralExtra, comment, date, time, offset } = item;
463
+ const version = entry.method === 8 ? 20 : 10;
464
+ view.setUint32(offset, 0x04034b50, true);
465
+ view.setUint16(offset + 4, version, true);
466
+ view.setUint16(offset + 6, flags, true);
467
+ view.setUint16(offset + 8, entry.method, true);
468
+ view.setUint16(offset + 10, time, true);
469
+ view.setUint16(offset + 12, date, true);
470
+ view.setUint32(offset + 14, entry.crc32, true);
471
+ view.setUint32(offset + 18, entry.data.length, true);
472
+ view.setUint32(offset + 22, entry.size, true);
473
+ view.setUint16(offset + 26, rawName.length, true);
474
+ view.setUint16(offset + 28, localExtra.length, true);
475
+ bytes.set(rawName, offset + 30);
476
+ bytes.set(localExtra, offset + 30 + rawName.length);
477
+ await copyBytes(entry.data, bytes, offset + 30 + rawName.length + localExtra.length, chunkSize, signal);
478
+ view.setUint32(central, 0x02014b50, true);
479
+ view.setUint16(central + 4, entry.versionMadeBy ?? 0x31e, true);
480
+ view.setUint16(central + 6, version, true);
481
+ view.setUint16(central + 8, flags, true);
482
+ view.setUint16(central + 10, entry.method, true);
483
+ view.setUint16(central + 12, time, true);
484
+ view.setUint16(central + 14, date, true);
485
+ view.setUint32(central + 16, entry.crc32, true);
486
+ view.setUint32(central + 20, entry.data.length, true);
487
+ view.setUint32(central + 24, entry.size, true);
488
+ view.setUint16(central + 28, rawName.length, true);
489
+ view.setUint16(central + 30, centralExtra.length, true);
490
+ view.setUint16(central + 32, comment.length, true);
491
+ view.setUint16(central + 36, entry.internalAttributes ?? 0, true);
492
+ view.setUint32(central + 38, entry.externalAttributes ?? ((entry.mode | (entry.directory ? 0o040000 : entry.symlink ? 0o120000 : 0o100000)) * 65536 + (entry.directory ? 16 : 0)), true);
493
+ view.setUint32(central + 42, offset, true);
494
+ bytes.set(rawName, central + 46);
495
+ bytes.set(centralExtra, central + 46 + rawName.length);
496
+ bytes.set(comment, central + 46 + rawName.length + centralExtra.length);
497
+ central += 46 + rawName.length + centralExtra.length + comment.length;
498
+ }
499
+ view.setUint32(central, 0x06054b50, true);
500
+ view.setUint16(central + 8, encoded.length, true);
501
+ view.setUint16(central + 10, encoded.length, true);
502
+ view.setUint32(central + 12, central - localLength, true);
503
+ view.setUint32(central + 16, localLength, true);
504
+ view.setUint16(central + 20, archive.comment.length, true);
505
+ bytes.set(archive.comment, central + 22);
506
+ signal.throwIfAborted();
507
+ return bytes;
508
+ }
509
+ //# sourceMappingURL=zip-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip-format.js","sourceRoot":"","sources":["../../../src/commands/archive/zip-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAsB,MAAM,eAAe,CAAC;AA8B/D,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAClC,MAAM,KAAK,GAAG,kIAAkI,CAAC;AACjJ,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;IAC9D,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE;QAAE,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,OAAO,KAAK,KAAK,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,KAAK,CAAC,KAAiB,EAAE,QAAQ,GAAG,CAAC;IACnD,IAAI,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CAAE,CAAC;IAClF,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,MAAM,CAAC,KAAa,EAAE,OAAe,EAAE,KAAa;IAC3D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,OAAO;QAAE,IAAI,CAAC,OAAO,KAAK,kCAAkC,CAAC,CAAC;AACzH,CAAC;AAED,SAAS,KAAK,CAAC,MAAqB,EAAE,MAAmB;IACvD,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,CAAU,EAAE,CAAC;QACvK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,GAAG,GAAG,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI;QAAE,IAAI,CAAC,gDAAgD,CAAC,CAAC;IACrH,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,MAAqB;IACpD,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC7F,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACrC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC;QAAE,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAC9G,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,KAAK,CAAC,KAAiB,EAAE,MAAkB;IAClD,OAAO,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,UAAU,CAAC,KAAiB;IACnC,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;IAC7F,OAAO,IAAI,CAAC;AACd,CAAC;AAID,SAAS,MAAM,CAAC,KAAiB,EAAE,OAAmB,EAAE,OAAmB,EAAE,OAAgB,EAAE,MAAqB;IAClH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC;IACzE,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM;YAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,CAAC;QACZ,IAAI,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM;YAAE,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrB,IAAI,UAAU,KAAK,CAAC;YAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACnD,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM;YAAE,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC5I,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YACnD,IAAI,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,kDAAkD,CAAC,CAAC;YAChG,MAAM,QAAQ,GAAG,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3D,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC;gBAAE,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACvG,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;YAClE,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAAC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;YAAC,CAAC;;gBAC5E,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAE,CAAC;YAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;gBAAE,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtF,IAAI,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC;gBAAE,IAAI,CAAC,qDAAqD,CAAC,CAAC;YAC1F,IAAI,KAAK,GAAG,CAAC;gBAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;QAC1E,CAAC;QACD,MAAM,IAAI,MAAM,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAmB,EAAE,KAAa,EAAE,QAAuB,EAAE,MAAqB;IAClG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAChE,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvB,IAAI,KAAK,GAAG,KAAK,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG;QAAE,IAAI,CAAC,+CAA+C,CAAC,CAAC;IACjI,OAAO,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC;AAC9B,CAAC;AAED,SAAS,MAAM,CAAC,MAAc,EAAE,KAAa,EAAE,OAAe;IAC5D,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC;IAC9C,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;QAAE,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACrE,IAAI,KAAK,GAAG,CAAC,KAAK,IAAI,MAAM,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAC/F,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC;QAAE,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAC7E,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,GAAG,EAAE;QAAE,IAAI,CAAC,sDAAsD,CAAC,CAAC;AACpI,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,IAAY;IAC7C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7E,IAAI,MAAM,CAAC,cAAc,EAAE,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,MAAM,CAAC,UAAU,EAAE,KAAK,GAAG,IAAI,KAAK,GAAG,EAAE,IAAI,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,EAAE;QAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACvL,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,WAAW,CAAC,KAAe,EAAE,MAAqB;IACzD,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;IACnG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC3F,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnG,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;QAAE,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACxJ,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC;IACnC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAAE,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAChJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAAE,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACxF,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,MAAkB,EAAE,WAAuB,EAAE,KAAa,EAAE,SAAiB,EAAE,MAAmB;IACzH,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC;QACjE,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;QAC7E,IAAI,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM;YAAE,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAiB,EAAE,MAAqB,EAAE,MAAmB;IAChG,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5E,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACb,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IACrD,KAAK,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;QAC/D,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC;YAAE,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,UAAU,IAAI,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YACpH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,IAAI,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,UAAU,CAAC;YAC7K,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,KAAK,MAAM;gBAAE,SAAS;YAChD,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAClD,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;IACH,CAAC;IACD,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,IAAI,WAAW,KAAK,UAAU,IAAI,YAAY,KAAK,UAAU;QAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACjH,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,OAAO;QAAE,IAAI,CAAC,4DAA4D,CAAC,CAAC;IACpL,IAAI,YAAY,GAAG,WAAW,KAAK,GAAG;QAAE,IAAI,CAAC,0EAA0E,CAAC,CAAC;IACzH,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,EAAE,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IACxE,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,MAAM,KAAK,GAA0C,EAAE,CAAC;IACxD,IAAI,MAAM,GAAG,YAAY,CAAC;IAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7C,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,MAAM,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,UAAU;YAAE,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACtH,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACxD,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,kBAAkB,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACzE,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC;YAAE,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACpF,IAAI,cAAc,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU;YAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC/G,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACjD,IAAI,MAAM,KAAK,CAAC,IAAI,cAAc,KAAK,IAAI;YAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC9E,KAAK,IAAI,IAAI,CAAC;QACd,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,GAAG,EAAE,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;QACpE,IAAI,IAAI,GAAG,GAAG;YAAE,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACvD,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,GAAG,UAAU,EAAE,IAAI,GAAG,aAAa,CAAC,CAAC;QACpF,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,KAAK,GAAG,KAAK;YAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;QAC/D,IAAI,KAAK,GAAG,EAAE,GAAG,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,UAAU;YAAE,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACnH,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,OAAO;YAAE,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACxR,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,KAAK,GAAG,EAAE,GAAG,eAAe,GAAG,gBAAgB,CAAC;QACrE,IAAI,UAAU,GAAG,YAAY,GAAG,cAAc,CAAC;QAC/C,IAAI,UAAU,GAAG,YAAY;YAAE,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,GAAG,eAAe,CAAC,CAAC;QAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC;YAAE,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,GAAG,eAAe,EAAE,YAAY,CAAC,CAAC;QAC9E,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5E,MAAM,cAAc,GAAG,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QACzE,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI;YAAE,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACjH,IAAI,eAAe,CAAC,QAAQ,KAAK,SAAS,IAAI,aAAa,CAAC,QAAQ,KAAK,SAAS,IAAI,eAAe,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ;YAAE,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACxL,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAU,EAAE,CAAC;YAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;YACtD,IAAI,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC;gBAAE,IAAI,CAAC,wCAAwC,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnC,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,IAAI,UAAU,GAAG,EAAE,IAAI,YAAY,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;YAClS,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACzF,UAAU,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,KAAK,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAO,CAAC,kBAAkB,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACjG,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,QAAQ,CAAC;QAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC;QACrE,IAAI,SAAS,KAAK,SAAS;YAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,KAAK,GAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC9S,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9C,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,MAAM,KAAK,GAAG;QAAE,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;YAAE,IAAI,CAAC,uEAAuE,CAAC,CAAC;QAC1G,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,KAAK,YAAY;QAAE,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACjF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,KAAK,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;QAC/C,KAAK,CAAC,SAAS,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,SAAU,CAAC,CAAC;QACnD,KAAK,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;QAC/C,KAAK,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,UAAW,CAAC,CAAC;QACrD,KAAK,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,YAAa,CAAC,CAAC;QACzD,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,cAAc,CAAC,KAAe,EAAE,MAAqB,EAAE,MAAmB;IAC/F,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACrF,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;QAC9G,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC;YACrE,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;YACtE,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IACL,IAAI,CAAC;QACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;YACvB,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC,CAAC;YACrF,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAClC,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK,EAAE,KAAK,SAAS;YAAE,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACnG,IAAI,MAAM,KAAK,KAAK,CAAC,IAAI;YAAE,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAClE,IAAI,QAAQ,KAAK,KAAK,CAAC,KAAK;YAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC3D,CAAC;YAAS,CAAC;QAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,KAAiB,EAAE,UAAkF,EAAE,MAAqB,EAAE,MAAmB;IAChM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;IACzJ,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3B,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC;QAChE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7E,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAChF,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACvD,MAAM,MAAM,GAAiB,EAAE,CAAC;YAChC,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;gBACpF,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;gBACvB,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM;oBAAE,MAAM;gBAClC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;oBACvB,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC1B,CAAC;gBACD,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACjB,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,QAAc;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACtD,IAAI,OAAO,GAAG,CAAC,UAAU,IAAI,OAAO,GAAG,UAAU;QAAE,OAAO,IAAI,UAAU,EAAE,CAAC;IAC3E,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACb,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC;AACf,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAmB,EAAE,MAAqB,EAAE,MAAmB;IACnG,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC7E,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACxF,IAAI,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;IACzC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QACxB,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC7F,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;QACpB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,UAAU,EAAE,CAAC;QAClD,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC;QAC9E,IAAI,KAAK,GAAG,KAAK;YAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7E,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACnR,IAAI,aAAa,CAAC,QAAQ,KAAK,SAAS,IAAI,eAAe,CAAC,QAAQ,KAAK,SAAS,IAAI,aAAa,CAAC,QAAQ,KAAK,eAAe,CAAC,QAAQ;YAAE,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC5L,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3G,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACxH,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAChC,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,iBAAiB,GAAG,eAAe,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC;QAC7E,IAAI,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;YAAE,IAAI,CAAC,6DAA6D,CAAC,CAAC;QACrO,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAU;YAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5Q,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACtF,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;gBAAE,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACvI,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5G,WAAW,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3E,MAAM,IAAI,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QACjH,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,OAAO,GAAG,WAAW,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QACxB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC9F,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;QAChC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACxG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,aAAa,IAAI,KAAK,EAAE,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,KAAK,CAAC,kBAAkB,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,KAAK,CAAC,kBAAkB,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACzL,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3C,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC;QACjC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACvD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACxE,OAAO,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,GAAG,WAAW,EAAE,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3D,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,cAAc,EAAE,CAAC;IACxB,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type CommandDefinition } from "../../contracts/index.js";
2
+ import { type ArchiveCommandsOptions } from "./internal.js";
3
+ export declare function createZipCommand(options?: ArchiveCommandsOptions): CommandDefinition;
4
+ //# sourceMappingURL=zip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../../../src/commands/archive/zip.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+E,KAAK,iBAAiB,EAAiB,MAAM,0BAA0B,CAAC;AAM9J,OAAO,EAAwF,KAAK,sBAAsB,EAAsB,MAAM,eAAe,CAAC;AAoMtK,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,sBAA2B,GAAG,iBAAiB,CA4BxF"}