docgen-utils 1.0.18 → 1.0.20
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/README.md +63 -18
- package/dist/bundle.js +3466 -2528
- package/dist/bundle.min.js +242 -252
- package/dist/cli.js +3644 -2544
- package/dist/packages/cli/commands/export-docs.js +1 -1
- package/dist/packages/cli/commands/export-docs.js.map +1 -1
- package/dist/packages/cli/commands/export-slides.d.ts.map +1 -1
- package/dist/packages/cli/commands/export-slides.js +11 -7
- package/dist/packages/cli/commands/export-slides.js.map +1 -1
- package/dist/packages/cli/index.js.map +1 -1
- package/dist/packages/docs/common.d.ts +1 -0
- package/dist/packages/docs/common.d.ts.map +1 -1
- package/dist/packages/docs/convert.d.ts.map +1 -1
- package/dist/packages/docs/convert.js +6 -15
- package/dist/packages/docs/convert.js.map +1 -1
- package/dist/packages/docs/import-docx.d.ts.map +1 -1
- package/dist/packages/docs/import-docx.js +168 -82
- package/dist/packages/docs/import-docx.js.map +1 -1
- package/dist/packages/docs/parse-colors.d.ts +0 -5
- package/dist/packages/docs/parse-colors.d.ts.map +1 -1
- package/dist/packages/docs/parse-colors.js +2 -2
- package/dist/packages/docs/parse-colors.js.map +1 -1
- package/dist/packages/docs/parse-css.d.ts +0 -9
- package/dist/packages/docs/parse-css.d.ts.map +1 -1
- package/dist/packages/docs/parse-css.js +4 -6
- package/dist/packages/docs/parse-css.js.map +1 -1
- package/dist/packages/docs/parse-helpers.d.ts +0 -1
- package/dist/packages/docs/parse-helpers.d.ts.map +1 -1
- package/dist/packages/docs/parse-helpers.js +1 -1
- package/dist/packages/docs/parse-helpers.js.map +1 -1
- package/dist/packages/docs/parse-inline.d.ts +0 -13
- package/dist/packages/docs/parse-inline.d.ts.map +1 -1
- package/dist/packages/docs/parse-inline.js +7 -7
- package/dist/packages/docs/parse-inline.js.map +1 -1
- package/dist/packages/docs/parse-layout.d.ts.map +1 -1
- package/dist/packages/docs/parse-layout.js +1 -14
- package/dist/packages/docs/parse-layout.js.map +1 -1
- package/dist/packages/docs/parse-special.js +1 -1
- package/dist/packages/docs/parse-special.js.map +1 -1
- package/dist/packages/docs/parse.d.ts.map +1 -1
- package/dist/packages/docs/parse.js +76 -30
- package/dist/packages/docs/parse.js.map +1 -1
- package/dist/packages/shared/fetch-with-proxy.d.ts +13 -8
- package/dist/packages/shared/fetch-with-proxy.d.ts.map +1 -1
- package/dist/packages/shared/fetch-with-proxy.js +189 -22
- package/dist/packages/shared/fetch-with-proxy.js.map +1 -1
- package/dist/packages/shared/zip-guard.d.ts +37 -0
- package/dist/packages/shared/zip-guard.d.ts.map +1 -0
- package/dist/packages/shared/zip-guard.js +101 -0
- package/dist/packages/shared/zip-guard.js.map +1 -0
- package/dist/packages/slides/convert.d.ts +1 -3
- package/dist/packages/slides/convert.d.ts.map +1 -1
- package/dist/packages/slides/convert.js +8 -74
- package/dist/packages/slides/convert.js.map +1 -1
- package/dist/packages/slides/createPresentation.d.ts +1 -1
- package/dist/packages/slides/createPresentation.d.ts.map +1 -1
- package/dist/packages/slides/createPresentation.js +1 -10
- package/dist/packages/slides/createPresentation.js.map +1 -1
- package/dist/packages/slides/import-pptx.d.ts.map +1 -1
- package/dist/packages/slides/import-pptx.js +5 -7
- package/dist/packages/slides/import-pptx.js.map +1 -1
- package/dist/packages/slides/parse.d.ts +0 -22
- package/dist/packages/slides/parse.d.ts.map +1 -1
- package/dist/packages/slides/parse.js +38 -42
- package/dist/packages/slides/parse.js.map +1 -1
- package/dist/packages/slides/transform.d.ts.map +1 -1
- package/dist/packages/slides/transform.js +1 -5
- package/dist/packages/slides/transform.js.map +1 -1
- package/dist/packages/slides/vendor/VENDORING.md +2 -2
- package/package.json +16 -10
- package/dist/packages/cli/commands/common.d.ts +0 -2
- package/dist/packages/cli/commands/common.d.ts.map +0 -1
- package/dist/packages/cli/commands/common.js +0 -22
- package/dist/packages/cli/commands/common.js.map +0 -1
|
@@ -1,33 +1,200 @@
|
|
|
1
|
+
import * as http from "node:http";
|
|
2
|
+
import * as tls from "node:tls";
|
|
3
|
+
import { URL } from "node:url";
|
|
4
|
+
const userAgent = "Mozilla/5.0 (compatible; Copilot/1.0)";
|
|
1
5
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Uses undici ProxyAgent when HTTPS_PROXY or HTTP_PROXY environment variables are set.
|
|
6
|
+
* Create a TCP tunnel through an HTTP proxy using the CONNECT method.
|
|
4
7
|
*/
|
|
5
|
-
|
|
8
|
+
function connectThroughProxy(proxy, targetHost, targetPort) {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
const req = http.request({
|
|
11
|
+
host: proxy.hostname,
|
|
12
|
+
port: Number(proxy.port),
|
|
13
|
+
method: "CONNECT",
|
|
14
|
+
path: `${targetHost}:${targetPort}`,
|
|
15
|
+
});
|
|
16
|
+
req.on("connect", (res, socket) => {
|
|
17
|
+
if (res.statusCode === 200) {
|
|
18
|
+
resolve(socket);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
socket.destroy();
|
|
22
|
+
reject(new Error(`Proxy CONNECT failed with status ${res.statusCode}`));
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
req.on("error", reject);
|
|
26
|
+
req.end();
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Upgrade a raw TCP socket to TLS.
|
|
31
|
+
* Uses the documented tls.connect({ socket, servername }) API.
|
|
32
|
+
* @see https://nodejs.org/api/tls.html#tlsconnectoptions-callback
|
|
33
|
+
*/
|
|
34
|
+
function upgradeTls(rawSocket, servername) {
|
|
35
|
+
return new Promise((resolve, reject) => {
|
|
36
|
+
const tlsSocket = tls.connect({ socket: rawSocket, servername }, () => {
|
|
37
|
+
resolve(tlsSocket);
|
|
38
|
+
});
|
|
39
|
+
tlsSocket.on("error", reject);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
6
42
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
43
|
+
* Parse a raw HTTP/1.1 response from a TLS socket stream.
|
|
44
|
+
* Handles both Content-Length and chunked Transfer-Encoding.
|
|
45
|
+
*/
|
|
46
|
+
function parseHttpResponse(tlsSocket) {
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
let headerDone = false;
|
|
49
|
+
let raw = Buffer.alloc(0);
|
|
50
|
+
let statusCode = 0;
|
|
51
|
+
let statusText = "";
|
|
52
|
+
const headers = {};
|
|
53
|
+
const bodyChunks = [];
|
|
54
|
+
let contentLength = -1;
|
|
55
|
+
let isChunked = false;
|
|
56
|
+
let bodyBytesRead = 0;
|
|
57
|
+
let headerEndIndex = -1;
|
|
58
|
+
function tryParseHeaders() {
|
|
59
|
+
const str = raw.toString("utf-8");
|
|
60
|
+
const idx = str.indexOf("\r\n\r\n");
|
|
61
|
+
if (idx === -1)
|
|
62
|
+
return false;
|
|
63
|
+
headerEndIndex = Buffer.byteLength(str.slice(0, idx + 4), "utf-8");
|
|
64
|
+
const headerSection = str.slice(0, idx);
|
|
65
|
+
const lines = headerSection.split("\r\n");
|
|
66
|
+
// Parse status line: HTTP/1.1 200 OK
|
|
67
|
+
const statusLine = lines[0];
|
|
68
|
+
const match = statusLine.match(/^HTTP\/\d\.\d\s+(\d+)\s*(.*)/);
|
|
69
|
+
if (match) {
|
|
70
|
+
statusCode = parseInt(match[1], 10);
|
|
71
|
+
statusText = match[2];
|
|
72
|
+
}
|
|
73
|
+
// Parse headers
|
|
74
|
+
for (let i = 1; i < lines.length; i++) {
|
|
75
|
+
const colonIdx = lines[i].indexOf(":");
|
|
76
|
+
if (colonIdx > 0) {
|
|
77
|
+
const key = lines[i].slice(0, colonIdx).trim().toLowerCase();
|
|
78
|
+
const val = lines[i].slice(colonIdx + 1).trim();
|
|
79
|
+
headers[key] = val;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (headers["transfer-encoding"]?.includes("chunked")) {
|
|
83
|
+
isChunked = true;
|
|
84
|
+
}
|
|
85
|
+
else if (headers["content-length"]) {
|
|
86
|
+
contentLength = parseInt(headers["content-length"], 10);
|
|
87
|
+
}
|
|
88
|
+
// Push any leftover bytes after headers as body
|
|
89
|
+
const bodyStart = raw.slice(headerEndIndex);
|
|
90
|
+
if (bodyStart.length > 0) {
|
|
91
|
+
bodyChunks.push(bodyStart);
|
|
92
|
+
bodyBytesRead += bodyStart.length;
|
|
93
|
+
}
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
function decodeChunkedBody(buf) {
|
|
97
|
+
const parts = [];
|
|
98
|
+
let offset = 0;
|
|
99
|
+
while (offset < buf.length) {
|
|
100
|
+
const lineEnd = buf.indexOf(Buffer.from("\r\n"), offset);
|
|
101
|
+
if (lineEnd === -1)
|
|
102
|
+
break;
|
|
103
|
+
const sizeHex = buf.slice(offset, lineEnd).toString("utf-8").trim();
|
|
104
|
+
const chunkSize = parseInt(sizeHex, 16);
|
|
105
|
+
if (chunkSize === 0)
|
|
106
|
+
break;
|
|
107
|
+
const chunkStart = lineEnd + 2;
|
|
108
|
+
const chunkEnd = chunkStart + chunkSize;
|
|
109
|
+
if (chunkEnd > buf.length)
|
|
110
|
+
break;
|
|
111
|
+
parts.push(buf.slice(chunkStart, chunkEnd));
|
|
112
|
+
offset = chunkEnd + 2; // skip trailing \r\n
|
|
113
|
+
}
|
|
114
|
+
return Buffer.concat(parts);
|
|
115
|
+
}
|
|
116
|
+
tlsSocket.on("data", (chunk) => {
|
|
117
|
+
if (!headerDone) {
|
|
118
|
+
raw = Buffer.concat([raw, chunk]);
|
|
119
|
+
if (tryParseHeaders()) {
|
|
120
|
+
headerDone = true;
|
|
121
|
+
// Check if body is already complete
|
|
122
|
+
if (!isChunked &&
|
|
123
|
+
contentLength >= 0 &&
|
|
124
|
+
bodyBytesRead >= contentLength) {
|
|
125
|
+
tlsSocket.destroy();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
bodyChunks.push(chunk);
|
|
131
|
+
bodyBytesRead += chunk.length;
|
|
132
|
+
if (!isChunked &&
|
|
133
|
+
contentLength >= 0 &&
|
|
134
|
+
bodyBytesRead >= contentLength) {
|
|
135
|
+
tlsSocket.destroy();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
tlsSocket.on("end", finish);
|
|
140
|
+
tlsSocket.on("close", finish);
|
|
141
|
+
let finished = false;
|
|
142
|
+
function finish() {
|
|
143
|
+
if (finished)
|
|
144
|
+
return;
|
|
145
|
+
finished = true;
|
|
146
|
+
let body = Buffer.concat(bodyChunks);
|
|
147
|
+
if (isChunked) {
|
|
148
|
+
body = decodeChunkedBody(body);
|
|
149
|
+
}
|
|
150
|
+
else if (contentLength >= 0) {
|
|
151
|
+
body = body.subarray(0, contentLength);
|
|
152
|
+
}
|
|
153
|
+
const responseHeaders = new Headers(headers);
|
|
154
|
+
resolve({
|
|
155
|
+
ok: statusCode >= 200 && statusCode < 300,
|
|
156
|
+
status: statusCode,
|
|
157
|
+
statusText,
|
|
158
|
+
headers: responseHeaders,
|
|
159
|
+
arrayBuffer: () => Promise.resolve(body.buffer.slice(body.byteOffset, body.byteOffset + body.byteLength)),
|
|
160
|
+
text: () => Promise.resolve(body.toString("utf-8")),
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
tlsSocket.on("error", (err) => {
|
|
164
|
+
if (!finished)
|
|
165
|
+
reject(err);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Fetch a URL with optional proxy support.
|
|
171
|
+
* Uses only documented Node.js APIs: http.CONNECT, tls.connect(), raw HTTP write.
|
|
9
172
|
*
|
|
10
173
|
* @param url - The URL to fetch
|
|
11
|
-
* @returns A Promise resolving to a Response
|
|
174
|
+
* @returns A Promise resolving to a ProxyResponse or native Response
|
|
12
175
|
*/
|
|
13
176
|
export async function fetchWithProxy(url) {
|
|
14
|
-
const proxyUrl = process.env.HTTPS_PROXY ||
|
|
15
|
-
process.env.
|
|
177
|
+
const proxyUrl = process.env.HTTPS_PROXY ||
|
|
178
|
+
process.env.HTTP_PROXY ||
|
|
179
|
+
process.env.https_proxy ||
|
|
180
|
+
process.env.http_proxy;
|
|
16
181
|
if (proxyUrl) {
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
182
|
+
const proxy = new URL(proxyUrl);
|
|
183
|
+
const target = new URL(url);
|
|
184
|
+
// 1. Tunnel through proxy
|
|
185
|
+
const rawSocket = await connectThroughProxy(proxy, target.hostname, 443);
|
|
186
|
+
// 2. TLS handshake (documented: tls.connect with socket option)
|
|
187
|
+
const tlsSocket = await upgradeTls(rawSocket, target.hostname);
|
|
188
|
+
// 3. Write raw HTTP/1.1 request (per Node.js CONNECT docs pattern)
|
|
189
|
+
const requestLine = `GET ${target.pathname}${target.search} HTTP/1.1\r\n` +
|
|
190
|
+
`Host: ${target.hostname}\r\n` +
|
|
191
|
+
`User-Agent: ${userAgent}\r\n` +
|
|
192
|
+
`Connection: close\r\n` +
|
|
193
|
+
`\r\n`;
|
|
194
|
+
tlsSocket.write(requestLine);
|
|
195
|
+
// 4. Parse raw HTTP response
|
|
196
|
+
return parseHttpResponse(tlsSocket);
|
|
26
197
|
}
|
|
27
|
-
return fetch(url, {
|
|
28
|
-
headers: {
|
|
29
|
-
'User-Agent': userAgent,
|
|
30
|
-
},
|
|
31
|
-
});
|
|
198
|
+
return fetch(url, { headers: { "User-Agent": userAgent } });
|
|
32
199
|
}
|
|
33
200
|
//# sourceMappingURL=fetch-with-proxy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-with-proxy.js","sourceRoot":"","sources":["../../../packages/shared/fetch-with-proxy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fetch-with-proxy.js","sourceRoot":"","sources":["../../../packages/shared/fetch-with-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zip bomb protection for JSZip-based document processing.
|
|
3
|
+
*
|
|
4
|
+
* PPTX, DOCX (and XLSX) files are ZIP archives — this is how the Office Open
|
|
5
|
+
* XML format works. When docgen calls JSZip.loadAsync() to read a PPTX or
|
|
6
|
+
* DOCX, it decompresses the contents into memory. A "zip bomb" exploits this:
|
|
7
|
+
* a malicious file that is tiny on disk (passes upload size checks) but
|
|
8
|
+
* contains entries crafted from highly repetitive data that inflate to an
|
|
9
|
+
* enormous size in memory, crashing the process.
|
|
10
|
+
*
|
|
11
|
+
* The signature of a zip bomb is an extreme compression ratio
|
|
12
|
+
* (uncompressed / compressed). Legitimate Office documents compress 2–10:1;
|
|
13
|
+
* a bomb is typically 1,000:1 or more.
|
|
14
|
+
*
|
|
15
|
+
* The ZIP format stores each entry's uncompressed size in the central-directory
|
|
16
|
+
* header. JSZip reads this metadata during loadAsync WITHOUT decompressing any
|
|
17
|
+
* data. This module uses that metadata to reject suspicious archives before any
|
|
18
|
+
* inflation occurs.
|
|
19
|
+
*/
|
|
20
|
+
import JSZip from "jszip";
|
|
21
|
+
/**
|
|
22
|
+
* Load a ZIP archive from an ArrayBuffer with zip bomb protections.
|
|
23
|
+
*
|
|
24
|
+
* Checks (in order):
|
|
25
|
+
* 1. Compression ratio per entry — primary zip bomb signal
|
|
26
|
+
* 2. Overall compression ratio — catches distributed bombs
|
|
27
|
+
* 3. Entry count — zip-of-zips / resource limit
|
|
28
|
+
* 4. Total uncompressed size — memory ceiling
|
|
29
|
+
*
|
|
30
|
+
* Throws a descriptive Error if any limit is exceeded so callers can
|
|
31
|
+
* surface a safe message (e.g. HTTP 400) without crashing.
|
|
32
|
+
*
|
|
33
|
+
* @param arrayBuffer - Raw bytes of the ZIP-based file (PPTX, DOCX, …).
|
|
34
|
+
* @returns - Parsed JSZip instance ready for file access.
|
|
35
|
+
*/
|
|
36
|
+
export declare function loadZipSafely(arrayBuffer: ArrayBuffer): Promise<JSZip>;
|
|
37
|
+
//# sourceMappingURL=zip-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip-guard.d.ts","sourceRoot":"","sources":["../../../packages/shared/zip-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAuC1B;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CA2D5E"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zip bomb protection for JSZip-based document processing.
|
|
3
|
+
*
|
|
4
|
+
* PPTX, DOCX (and XLSX) files are ZIP archives — this is how the Office Open
|
|
5
|
+
* XML format works. When docgen calls JSZip.loadAsync() to read a PPTX or
|
|
6
|
+
* DOCX, it decompresses the contents into memory. A "zip bomb" exploits this:
|
|
7
|
+
* a malicious file that is tiny on disk (passes upload size checks) but
|
|
8
|
+
* contains entries crafted from highly repetitive data that inflate to an
|
|
9
|
+
* enormous size in memory, crashing the process.
|
|
10
|
+
*
|
|
11
|
+
* The signature of a zip bomb is an extreme compression ratio
|
|
12
|
+
* (uncompressed / compressed). Legitimate Office documents compress 2–10:1;
|
|
13
|
+
* a bomb is typically 1,000:1 or more.
|
|
14
|
+
*
|
|
15
|
+
* The ZIP format stores each entry's uncompressed size in the central-directory
|
|
16
|
+
* header. JSZip reads this metadata during loadAsync WITHOUT decompressing any
|
|
17
|
+
* data. This module uses that metadata to reject suspicious archives before any
|
|
18
|
+
* inflation occurs.
|
|
19
|
+
*/
|
|
20
|
+
import JSZip from "jszip";
|
|
21
|
+
/**
|
|
22
|
+
* Maximum compression ratio (total uncompressed / compressed input size).
|
|
23
|
+
* Legitimate DOCX/PPTX files rarely exceed 10:1; 100:1 is a generous ceiling
|
|
24
|
+
* that still catches all known zip-bomb payloads.
|
|
25
|
+
*
|
|
26
|
+
* This is the primary zip bomb signal — a tiny file that claims to expand
|
|
27
|
+
* to an enormous amount of data.
|
|
28
|
+
*/
|
|
29
|
+
const MAX_COMPRESSION_RATIO = 100;
|
|
30
|
+
/**
|
|
31
|
+
* Maximum number of entries (files + directories) inside the archive.
|
|
32
|
+
* Protects against "zip of many files" attacks and limits iteration cost.
|
|
33
|
+
* Real PPTX/DOCX files have fewer than 500 entries in practice.
|
|
34
|
+
*/
|
|
35
|
+
const MAX_ZIP_ENTRIES = 1000;
|
|
36
|
+
/**
|
|
37
|
+
* Maximum total uncompressed size across all entries (500 MB).
|
|
38
|
+
* This is a memory-protection ceiling, not a security check per se —
|
|
39
|
+
* the compression ratio check above is what catches actual zip bombs.
|
|
40
|
+
* Upstream callers (e.g. Picasso's FileTransferService) already enforce
|
|
41
|
+
* a compressed-size limit, so we do not duplicate that check here.
|
|
42
|
+
*/
|
|
43
|
+
const MAX_TOTAL_UNCOMPRESSED_BYTES = 500 * 1024 * 1024;
|
|
44
|
+
/**
|
|
45
|
+
* Load a ZIP archive from an ArrayBuffer with zip bomb protections.
|
|
46
|
+
*
|
|
47
|
+
* Checks (in order):
|
|
48
|
+
* 1. Compression ratio per entry — primary zip bomb signal
|
|
49
|
+
* 2. Overall compression ratio — catches distributed bombs
|
|
50
|
+
* 3. Entry count — zip-of-zips / resource limit
|
|
51
|
+
* 4. Total uncompressed size — memory ceiling
|
|
52
|
+
*
|
|
53
|
+
* Throws a descriptive Error if any limit is exceeded so callers can
|
|
54
|
+
* surface a safe message (e.g. HTTP 400) without crashing.
|
|
55
|
+
*
|
|
56
|
+
* @param arrayBuffer - Raw bytes of the ZIP-based file (PPTX, DOCX, …).
|
|
57
|
+
* @returns - Parsed JSZip instance ready for file access.
|
|
58
|
+
*/
|
|
59
|
+
export async function loadZipSafely(arrayBuffer) {
|
|
60
|
+
const zip = await JSZip.loadAsync(arrayBuffer);
|
|
61
|
+
const entries = Object.values(zip.files);
|
|
62
|
+
// ── 1 & 2. Compression-ratio gates (primary zip bomb detection) ──────────
|
|
63
|
+
// Read uncompressed sizes from ZIP central-directory metadata.
|
|
64
|
+
// JSZip populates this during loadAsync — no decompression required.
|
|
65
|
+
let totalUncompressedBytes = 0;
|
|
66
|
+
for (const file of entries) {
|
|
67
|
+
if (file.dir)
|
|
68
|
+
continue;
|
|
69
|
+
const uncompressedSize = (file._data?.uncompressedSize) ?? 0;
|
|
70
|
+
// Per-entry ratio: catches a single large-ratio entry even if it would
|
|
71
|
+
// not skew the overall ratio (e.g. one bomb entry among many small ones).
|
|
72
|
+
if (arrayBuffer.byteLength > 0) {
|
|
73
|
+
const entryRatio = uncompressedSize / arrayBuffer.byteLength;
|
|
74
|
+
if (entryRatio > MAX_COMPRESSION_RATIO) {
|
|
75
|
+
throw new Error(`Zip bomb detected: entry "${file.name}" has a compression ratio of ` +
|
|
76
|
+
`${entryRatio.toFixed(1)}:1, which exceeds the limit of ${MAX_COMPRESSION_RATIO}:1.`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
totalUncompressedBytes += uncompressedSize;
|
|
80
|
+
}
|
|
81
|
+
// Overall ratio: catches distributed bombs spread across many entries.
|
|
82
|
+
if (arrayBuffer.byteLength > 0) {
|
|
83
|
+
const overallRatio = totalUncompressedBytes / arrayBuffer.byteLength;
|
|
84
|
+
if (overallRatio > MAX_COMPRESSION_RATIO) {
|
|
85
|
+
throw new Error(`Zip bomb detected: overall compression ratio of ${overallRatio.toFixed(1)}:1 ` +
|
|
86
|
+
`exceeds the limit of ${MAX_COMPRESSION_RATIO}:1.`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// ── 3. Entry-count gate ──────────────────────────────────────────────────
|
|
90
|
+
if (entries.length > MAX_ZIP_ENTRIES) {
|
|
91
|
+
throw new Error(`Archive contains too many entries: ${entries.length} exceeds ` +
|
|
92
|
+
`the limit of ${MAX_ZIP_ENTRIES}.`);
|
|
93
|
+
}
|
|
94
|
+
// ── 4. Total uncompressed size gate (memory ceiling) ─────────────────────
|
|
95
|
+
if (totalUncompressedBytes > MAX_TOTAL_UNCOMPRESSED_BYTES) {
|
|
96
|
+
throw new Error(`Archive total uncompressed size of ${totalUncompressedBytes} bytes exceeds ` +
|
|
97
|
+
`the limit of ${MAX_TOTAL_UNCOMPRESSED_BYTES} bytes.`);
|
|
98
|
+
}
|
|
99
|
+
return zip;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=zip-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip-guard.js","sourceRoot":"","sources":["../../../packages/shared/zip-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;GAOG;AACH,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC;;;;GAIG;AACH,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,4BAA4B,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAavD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAwB;IAC1D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEzC,4EAA4E;IAC5E,+DAA+D;IAC/D,qEAAqE;IACrE,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG;YAAE,SAAS;QAEvB,MAAM,gBAAgB,GACpB,CAAE,IAAsC,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAEzE,uEAAuE;QACvE,0EAA0E;QAC1E,IAAI,WAAW,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC;YAC7D,IAAI,UAAU,GAAG,qBAAqB,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,CAAC,IAAI,+BAA+B;oBACnE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC,qBAAqB,KAAK,CACvF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,sBAAsB,IAAI,gBAAgB,CAAC;IAC7C,CAAC;IAED,uEAAuE;IACvE,IAAI,WAAW,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,sBAAsB,GAAG,WAAW,CAAC,UAAU,CAAC;QACrE,IAAI,YAAY,GAAG,qBAAqB,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,mDAAmD,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;gBAC7E,wBAAwB,qBAAqB,KAAK,CACrD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,IAAI,OAAO,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,sCAAsC,OAAO,CAAC,MAAM,WAAW;YAC7D,gBAAgB,eAAe,GAAG,CACrC,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,IAAI,sBAAsB,GAAG,4BAA4B,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CACb,sCAAsC,sBAAsB,iBAAiB;YAC3E,gBAAgB,4BAA4B,SAAS,CACxD,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -33,8 +33,6 @@ export declare function applyBackground(background: SlideBackground, slide: Slid
|
|
|
33
33
|
* @param slide - The target PptxGenJS Slide instance.
|
|
34
34
|
* @param pres - The PptxGenJS presentation instance (needed for `pres.ShapeType`).
|
|
35
35
|
* Typed as `any` because `ShapeType` is a runtime property.
|
|
36
|
-
* @param bgColor - Optional background color (hex) for blending transparent gradients.
|
|
37
|
-
* Used for LibreOffice compatibility since it doesn't support gradient alpha.
|
|
38
36
|
*/
|
|
39
|
-
export declare function addElementsToSlide(elements: SlideElement[], slide: Slide, pres: any
|
|
37
|
+
export declare function addElementsToSlide(elements: SlideElement[], slide: Slide, pres: any): Promise<void>;
|
|
40
38
|
//# sourceMappingURL=convert.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../packages/slides/convert.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,KAAK,EAKN,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAEb,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../packages/slides/convert.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,KAAK,EAKN,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAEb,MAAM,UAAU,CAAC;AAqClB;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,UAAU,SAAI,EACd,cAAc,SAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAMD;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,IAAI,CAAC,CAkBf;AAgFD;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,KAAK,EAEZ,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,IAAI,CAAC,CAwcf"}
|
|
@@ -30,73 +30,6 @@ function addAltFonts(runs) {
|
|
|
30
30
|
return runs;
|
|
31
31
|
}
|
|
32
32
|
// ---------------------------------------------------------------------------
|
|
33
|
-
// Color blending utilities for LibreOffice compatibility
|
|
34
|
-
// ---------------------------------------------------------------------------
|
|
35
|
-
/**
|
|
36
|
-
* Parse a hex color string to RGB components.
|
|
37
|
-
*/
|
|
38
|
-
function hexToRgb(hex) {
|
|
39
|
-
const h = hex.replace('#', '');
|
|
40
|
-
return {
|
|
41
|
-
r: parseInt(h.substring(0, 2), 16),
|
|
42
|
-
g: parseInt(h.substring(2, 4), 16),
|
|
43
|
-
b: parseInt(h.substring(4, 6), 16),
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Convert RGB components to hex color string.
|
|
48
|
-
*/
|
|
49
|
-
function rgbToHex(r, g, b) {
|
|
50
|
-
const toHex = (n) => Math.round(Math.max(0, Math.min(255, n))).toString(16).padStart(2, '0');
|
|
51
|
-
return `${toHex(r)}${toHex(g)}${toHex(b)}`.toUpperCase();
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Blend a foreground color with a background color at the given opacity.
|
|
55
|
-
* This simulates how a semi-transparent color appears over a background.
|
|
56
|
-
*
|
|
57
|
-
* @param fgHex - Foreground color in hex (e.g., "D4A84B")
|
|
58
|
-
* @param bgHex - Background color in hex (e.g., "1A3C34")
|
|
59
|
-
* @param opacity - Opacity of foreground (0-1, where 1 is fully opaque)
|
|
60
|
-
* @returns Blended color in hex
|
|
61
|
-
*/
|
|
62
|
-
function blendColors(fgHex, bgHex, opacity) {
|
|
63
|
-
const fg = hexToRgb(fgHex);
|
|
64
|
-
const bg = hexToRgb(bgHex);
|
|
65
|
-
// Alpha blending: result = fg * opacity + bg * (1 - opacity)
|
|
66
|
-
const r = fg.r * opacity + bg.r * (1 - opacity);
|
|
67
|
-
const g = fg.g * opacity + bg.g * (1 - opacity);
|
|
68
|
-
const b = fg.b * opacity + bg.b * (1 - opacity);
|
|
69
|
-
return rgbToHex(r, g, b);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Apply opacity to a gradient by blending its colors with the background.
|
|
73
|
-
* This is used for LibreOffice compatibility since LibreOffice doesn't properly
|
|
74
|
-
* render gradient fills with per-stop alpha values.
|
|
75
|
-
*
|
|
76
|
-
* @param gradient - Original gradient properties
|
|
77
|
-
* @param opacity - CSS opacity (0-1)
|
|
78
|
-
* @param bgColor - Background color in hex to blend with
|
|
79
|
-
* @returns New gradient with blended colors
|
|
80
|
-
*/
|
|
81
|
-
function applyOpacityToGradient(gradient, opacity, bgColor) {
|
|
82
|
-
return {
|
|
83
|
-
...gradient,
|
|
84
|
-
stops: gradient.stops.map(stop => {
|
|
85
|
-
// Also factor in any existing stop transparency
|
|
86
|
-
const stopOpacity = stop.transparency !== undefined
|
|
87
|
-
? (100 - stop.transparency) / 100
|
|
88
|
-
: 1;
|
|
89
|
-
const effectiveOpacity = opacity * stopOpacity;
|
|
90
|
-
return {
|
|
91
|
-
...stop,
|
|
92
|
-
color: blendColors(stop.color, bgColor, effectiveOpacity),
|
|
93
|
-
// Remove transparency since it's now baked into the color
|
|
94
|
-
transparency: undefined,
|
|
95
|
-
};
|
|
96
|
-
}),
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
// ---------------------------------------------------------------------------
|
|
100
33
|
// fetchImageAsDataUrl
|
|
101
34
|
// ---------------------------------------------------------------------------
|
|
102
35
|
/**
|
|
@@ -262,12 +195,10 @@ async function getImageSource(src) {
|
|
|
262
195
|
* @param slide - The target PptxGenJS Slide instance.
|
|
263
196
|
* @param pres - The PptxGenJS presentation instance (needed for `pres.ShapeType`).
|
|
264
197
|
* Typed as `any` because `ShapeType` is a runtime property.
|
|
265
|
-
* @param bgColor - Optional background color (hex) for blending transparent gradients.
|
|
266
|
-
* Used for LibreOffice compatibility since it doesn't support gradient alpha.
|
|
267
198
|
*/
|
|
268
199
|
export async function addElementsToSlide(elements, slide,
|
|
269
200
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
270
|
-
pres
|
|
201
|
+
pres) {
|
|
271
202
|
// ---- First pass: slide background images ----
|
|
272
203
|
for (const el of elements) {
|
|
273
204
|
if (el.type === 'slideBackgroundImage') {
|
|
@@ -581,8 +512,10 @@ pres, bgColor) {
|
|
|
581
512
|
shapeOptions.align = el.style.align;
|
|
582
513
|
if (el.style.valign)
|
|
583
514
|
shapeOptions.valign = el.style.valign;
|
|
584
|
-
if (el.style.fontFill)
|
|
515
|
+
if (el.style.fontFill) {
|
|
585
516
|
shapeOptions.fontFill = el.style.fontFill;
|
|
517
|
+
delete shapeOptions.color;
|
|
518
|
+
}
|
|
586
519
|
// Zero out OOXML default insets (~7pt horizontal, ~3.6pt vertical)
|
|
587
520
|
// so text positioning matches CSS box model exactly.
|
|
588
521
|
// Explicit margin/inset from parsed styles will override this default.
|
|
@@ -635,8 +568,9 @@ pres, bgColor) {
|
|
|
635
568
|
margin: el.style.margin,
|
|
636
569
|
inset: 0,
|
|
637
570
|
};
|
|
638
|
-
if (el.style.
|
|
639
|
-
listOptions.
|
|
571
|
+
if (el.style.transparency !== null && el.style.transparency !== undefined) {
|
|
572
|
+
listOptions.transparency = el.style.transparency;
|
|
573
|
+
}
|
|
640
574
|
slide.addText(addAltFonts(el.items), listOptions);
|
|
641
575
|
}
|
|
642
576
|
else {
|
|
@@ -646,7 +580,7 @@ pres, bgColor) {
|
|
|
646
580
|
const heightPt = el.position.h * 72;
|
|
647
581
|
const isSingleLine = heightPt <= lineHeightPt * 1.5;
|
|
648
582
|
let adjustedX = el.position.x;
|
|
649
|
-
let adjustedW
|
|
583
|
+
let adjustedW;
|
|
650
584
|
let adjustedH = el.position.h;
|
|
651
585
|
if (isSingleLine) {
|
|
652
586
|
// Add width buffer for single-line text to account for minor font metric
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../packages/slides/convert.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,IAAe;IAClC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAClD,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,GAAG;gBAAE,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,yDAAyD;AACzD,8EAA8E;AAE9E;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/B,OAAO;QACL,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QAClC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QAClC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;KACnC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IAC/C,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrG,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,KAAa,EAAE,KAAa,EAAE,OAAe;IAChE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE3B,6DAA6D;IAC7D,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;IAEhD,OAAO,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,sBAAsB,CAC7B,QAA2B,EAC3B,OAAe,EACf,OAAe;IAEf,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC/B,gDAAgD;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,KAAK,SAAS;gBACjD,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG;gBACjC,CAAC,CAAC,CAAC,CAAC;YACN,MAAM,gBAAgB,GAAG,OAAO,GAAG,WAAW,CAAC;YAE/C,OAAO;gBACL,GAAG,IAAI;gBACP,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC;gBACzD,0DAA0D;gBAC1D,YAAY,EAAE,SAAS;aACxB,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;GAEG;AACH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAW,EACX,UAAU,GAAG,CAAC,EACd,cAAc,GAAG,GAAG;IAEpB,IAAI,SAAS,GAAiB,IAAI,CAAC;IAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAEpD,gEAAgE;YAChE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;gBACjF,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBACpD,OAAO,CAAC,IAAI,CAAC,wBAAwB,QAAQ,CAAC,MAAM,iBAAiB,KAAK,UAAU,GAAG,GAAG,CAAC,CAAC;oBAC5F,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;oBACnB,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/D,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC7C,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAChC,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAgB,CAAC,CAAC;gBAC1D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;gBACxB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAEtE,0BAA0B;YAC1B,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC,mCAAmC,KAAK,UAAU,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7F,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;gBACnB,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,EAAE,OAAO,IAAI,eAAe,CAAC;IACtD,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAA2B,EAC3B,KAAY;IAEZ,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACnD,0CAA0C;QAC1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC3D,KAAK,CAAC,UAAU,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACvC,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACjE,KAAK,CAAC,UAAU,GAAG;YACjB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,UAAU,CAAC,QAAQ;SAC9B,CAAC;IACJ,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QAC3D,KAAK,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;IACjD,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,yDAAyD;AACzD,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,uDAAuD;AAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,2BAA2B;AAElD,8FAA8F;AAC9F,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAE3G;;;;;;;;;GASG;AACH,SAAS,WAAW,CAAC,GAAmD;IACtE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC;IAEzB,iBAAiB;IACjB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAsC;QAC9C,CAAC,GAAG,CAAC,CAAC;IACR,CAAC;IACD,gBAAgB;IAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,CAAC,IAAI,CAAC,CAAC;QACP,CAAC,GAAG,CAAC,CAAC;IACR,CAAC;IACD,kBAAkB;IAClB,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC;QACpB,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,mBAAmB;IACnB,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC;QACpB,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,+CAA+C;IAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACxB,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,KAAK,UAAU,cAAc,CAC3B,GAAW;IAEX,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC/C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,yBAAyB,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAwB,EACxB,KAAY;AACZ,8DAA8D;AAC9D,IAAS,EACT,OAAgB;IAEhB,gDAAgD;IAChD,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,EAAE,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC1E,SAAS;YACX,CAAC;YACD,MAAM,YAAY,GAAiB;gBACjC,GAAG,MAAM;gBACT,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;aACjB,CAAC;YACF,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChC,YAAY,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACrF,CAAC;YACD,kDAAkD;YAClD,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS;gBAAE,YAAY,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;YACzE,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS;gBAAE,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;YACnE,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS;gBAAE,YAAY,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;YACzE,0CAA0C;YAC1C,IAAI,EAAE,CAAC,YAAY,KAAK,SAAS;gBAAE,YAAY,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;YAC/E,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,EAAE,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YACvC,SAAS;QACX,CAAC;QAED,gDAAgD;QAChD,0EAA0E;QAC1E,uEAAuE;QACvE,yDAAyD;QACzD,EAAE;QACF,wEAAwE;QACxE,sEAAsE;QACtE,wEAAwE;QACxE,sEAAsE;QACtE,iDAAiD;QACjD,MAAM,aAAa,GACjB,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;YAC/B,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO;gBAAE,SAAS,CAAC,qBAAqB;YAC7C,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YAC1B,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YAC1B,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YAC1B,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzD,SAAS;YACX,CAAC;YACD,MAAM,YAAY,GAAiB;gBACjC,GAAG,MAAM;gBACT,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;aACjB,CAAC;YACF,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;gBACnF,wEAAwE;gBACxE,uEAAuE;gBACvE,+DAA+D;gBAC/D,EAAE;gBACF,qCAAqC;gBACrC,8DAA8D;gBAC9D,yEAAyE;gBACzE,EAAE;gBACF,yEAAyE;gBACzE,uEAAuE;gBACvE,iEAAiE;gBACjE,MAAM,QAAQ,GAAG,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC;gBACpD,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC/C,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;gBACvC,wDAAwD;gBACxD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnE,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC;gBACnE,iEAAiE;gBACjE,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACzC,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACzC,uEAAuE;gBACvE,4EAA4E;gBAC5E,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC;gBACtB,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC;gBACtB,YAAY,CAAC,MAAM,GAAG;oBACpB,IAAI,EAAE,MAAM;oBACZ,CAAC,EAAE,KAAK;oBACR,CAAC,EAAE,KAAK;oBACR,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;oBAChB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;iBACjB,CAAC;YACJ,CAAC;iBAAM,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvC,YAAY,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACrF,CAAC;YACD,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;gBAClB,YAAY,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;YAC1C,CAAC;YACD,kDAAkD;YAClD,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS;gBAAE,YAAY,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;YACzE,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS;gBAAE,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;YACnE,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS;gBAAE,YAAY,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;YACzE,0CAA0C;YAC1C,IAAI,EAAE,CAAC,YAAY,KAAK,SAAS;gBAAE,YAAY,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;YAC/E,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,EAAE,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;gBACpE,SAAS;YACX,CAAC;YACD,MAAM,YAAY,GAAiB;gBACjC,GAAG,MAAM;gBACT,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;aACjB,CAAC;YACF,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChC,YAAY,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACrF,CAAC;YACD,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAA4D;gBACxE,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,KAAK,EAAE,EAAE,CAAC,KAAK;aAChB,CAAC;YACF,IAAI,EAAE,CAAC,YAAY,IAAI,IAAI;gBAAE,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;YACrE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;gBAClC,CAAC,EAAE,EAAE,CAAC,EAAE;gBACR,CAAC,EAAE,EAAE,CAAC,EAAE;gBACR,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;gBAChB,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;gBAChB,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC/B,uFAAuF;YACvF,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACpC,IAAI,oBAAgE,CAAC;YACrE,IAAI,EAAE,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClE,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACpC,oBAAoB,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;YACjD,CAAC;iBAAM,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC9B,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACrC,CAAC;iBAAM,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACvC,CAAC;YAED,wDAAwD;YACxD,MAAM,YAAY,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;YACjF,2EAA2E;YAC3E,+EAA+E;YAC/E,MAAM,iBAAiB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM;gBACxC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,eAAe;gBACxE,CAAC,CAAC,CAAC,CAAC;YACN,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;YACxD,MAAM,YAAY,GAAG,QAAQ,IAAI,YAAY,GAAG,GAAG,CAAC;YACpD,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEnE,+EAA+E;YAC/E,8EAA8E;YAC9E,0EAA0E;YAC1E,yDAAyD;YACzD,IAAI,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC9B,IAAI,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC9B,IAAI,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAE9B,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;gBAC1C,2DAA2D;gBAC3D,MAAM,aAAa,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAChG,MAAM,aAAa,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;gBACpD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;gBAE9B,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvB,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;oBAChD,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;gBAC5C,CAAC;qBAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBAC7B,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;oBAC1C,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;gBAC5C,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpC,0EAA0E;gBAC1E,oFAAoF;gBACpF,6EAA6E;gBAC7E,oEAAoE;gBACpE,MAAM,kBAAkB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChF,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7D,MAAM,cAAc,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,mBAAmB,CAAC;gBAC3D,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,cAAc,CAAC;YAC7C,CAAC;YAED,MAAM,YAAY,GAAgB;gBAChC,CAAC,EAAE,SAAS;gBACZ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,SAAS;gBACZ,CAAC,EAAE,SAAS;gBACZ,KAAK,EAAE,SAAS;gBAChB,+EAA+E;gBAC/E,4EAA4E;gBAC5E,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY;aACvD,CAAC;YAEF,6DAA6D;YAC7D,IAAI,oBAAoB,EAAE,CAAC;gBACxB,YAAoB,CAAC,MAAM,GAAG,oBAAoB,CAAC;YACtD,CAAC;YAED,+EAA+E;YAC/E,IAAI,gBAAgB,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;YAC7C,MAAM,cAAc,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAChG,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC;gBACnE,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;oBAC9B,iEAAiE;oBACjE,MAAM,UAAU,GAAG,CAAC,GAAG,GAAG,gBAAgB,CAAC,GAAG,GAAG,CAAC;oBAClD,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC;gBACzE,CAAC;qBAAM,CAAC;oBACN,gBAAgB,GAAG,mBAAmB,CAAC;gBACzC,CAAC;YACH,CAAC;YAED,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACtB,mEAAmE;gBACnE,oEAAoE;gBACpE,kEAAkE;gBAClE,+DAA+D;gBAC/D,EAAE;gBACF,mEAAmE;gBACnE,kEAAkE;gBAClE,oEAAoE;gBACpE,sBAAsB;gBACtB,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,cAAc,GAAsB;wBACxC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ;wBACpB,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;4BACxC,4EAA4E;4BAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,KAAK,SAAS;gCAChD,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG;gCACjC,CAAC,CAAC,CAAC,CAAC;4BACN,MAAM,eAAe,GAAG,UAAU,GAAG,cAAc,CAAC;4BACpD,OAAO;gCACL,GAAG,IAAI;gCACP,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG,GAAG,CAAC;6BACtD,CAAC;wBACJ,CAAC,CAAC;qBACH,CAAC;oBACF,YAAY,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxE,CAAC;YACH,CAAC;iBAAM,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACzB,YAAY,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7C,IAAI,gBAAgB,IAAI,IAAI;oBAAE,YAAY,CAAC,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC;YAClF,CAAC;YACD,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAKV;oBACF,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;oBAC1B,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;iBAC3B,CAAC;gBACF,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI;oBAAE,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC3F,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ;oBAAE,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACvE,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC/B,CAAC;YACD,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC;gBAAE,YAAY,CAAC,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;YAC3E,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM;gBAAE,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAqB,CAAC;YAC1E,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ;gBAAE,YAAY,CAAC,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YACpE,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM;gBAAE,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YAE3D,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ;oBAAE,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACjE,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACtB,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;oBAC1C,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC1C,IAAI,GAAG;wBAAE,YAAY,CAAC,OAAO,GAAG,GAAG,CAAC;gBACtC,CAAC;gBACD,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK;oBAAE,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;gBACxD,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI;oBAAE,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;gBACrD,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK;oBAAE,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;gBACxD,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM;oBAAE,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC3D,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ;oBAAE,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACjE,mEAAmE;gBACnE,qDAAqD;gBACrD,uEAAuE;gBACvE,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC;gBACvB,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM;oBAAE,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC3D,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS;oBAAE,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;gBACtE,iEAAiE;gBACjE,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW;oBAAE,YAAY,CAAC,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;gBAC1E,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;oBAClB,YAAY,CAAC,IAAI,GAAG;wBAClB,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;wBACxB,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;wBAC1B,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;qBAC/B,CAAC;gBACJ,CAAC;gBACD,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC5C,oEAAoE;oBACpE,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,UAAyB,CAAC;gBAC3D,CAAC;YACH,CAAC;YAED,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,QAAqB,CAAC,EAAE,YAAY,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;aAAM,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9B,6DAA6D;YAC7D,oFAAoF;YACpF,MAAM,cAAc,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC;YAC5C,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,cAAc,CAAC;YAEjD,MAAM,WAAW,GAAgB;gBAC/B,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,SAAS;gBACZ,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ;gBAC3B,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;gBACtE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS;gBAClC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK;gBACrB,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW;gBACjC,eAAe,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe;gBACzC,cAAc,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc;gBACvC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM;gBACvB,KAAK,EAAE,CAAC;aACT,CAAC;YACF,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM;gBAAE,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YAC1D,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,KAAkB,CAAC,EAAE,WAAW,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,0BAA0B;YAC1B,MAAM,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YAC9E,2EAA2E;YAC3E,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,QAAQ,IAAI,YAAY,GAAG,GAAG,CAAC;YAEpD,IAAI,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC9B,IAAI,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC9B,IAAI,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAE9B,IAAI,YAAY,EAAE,CAAC;gBACjB,yEAAyE;gBACzE,8EAA8E;gBAC9E,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACzC,2DAA2D;gBAC3D,MAAM,aAAa,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1E,MAAM,aAAa,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;gBACpD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;gBAE7B,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvB,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;oBAChD,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;gBAC5C,CAAC;qBAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBAC7B,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;oBAC1C,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;gBAC5C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,oFAAoF;gBACpF,iFAAiF;gBACjF,2EAA2E;gBAC3E,MAAM,aAAa,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC3C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;gBAE7B,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvB,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;oBAChD,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;gBAC5C,CAAC;qBAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBAC7B,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;oBAC1C,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;gBAC5C,CAAC;gBAED,+DAA+D;gBAC/D,kEAAkE;gBAClE,kEAAkE;gBAClE,qCAAqC;gBACrC,MAAM,cAAc,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC5C,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,cAAc,CAAC;YAC7C,CAAC;YAED,MAAM,WAAW,GAAgB;gBAC/B,CAAC,EAAE,SAAS;gBACZ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAChB,CAAC,EAAE,SAAS;gBACZ,CAAC,EAAE,SAAS;gBACZ,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ;gBAC3B,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;gBACtE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,SAAS;gBAClC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI;gBACnB,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM;gBACvB,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS;gBAC7B,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK;gBAChC,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW;gBACjC,eAAe,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe;gBACzC,cAAc,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc;gBACvC,KAAK,EAAE,CAAC;gBACR,6EAA6E;gBAC7E,IAAI,EAAE,CAAC,YAAY;aACpB,CAAC;YAEF,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK;gBAAE,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YACvD,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM;gBAAE,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YAC1D,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YACxE,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC1E,WAAW,CAAC,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;YACnD,CAAC;YACD,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW;gBAAE,WAAW,CAAC,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;YACzE,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACtB,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACzC,OAAO,WAAW,CAAC,KAAK,CAAC;YAC3B,CAAC;YACD,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClB,WAAW,CAAC,IAAI,GAAG;oBACjB,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;oBACxB,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;oBAC1B,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;iBAC/B,CAAC;YACJ,CAAC;YACD,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBACxB,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,UAAyB,CAAC;YAC1D,CAAC;YAED,6CAA6C;YAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;YAClF,KAAK,CAAC,OAAO,CAAC,IAA0B,EAAE,WAAW,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../packages/slides/convert.ts"],"names":[],"mappings":"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"}
|