@bobfrankston/rmfmail 1.0.499 → 1.0.500
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/client/app.js +86 -1
- package/client/app.js.map +1 -1
- package/client/app.ts +71 -1
- package/client/components/message-list.js +34 -1
- package/client/components/message-list.js.map +1 -1
- package/client/components/message-list.ts +31 -1
- package/client/components/message-viewer.js +58 -14
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +56 -14
- package/client/index.html +9 -4
- package/client/lib/api-client.js +9 -0
- package/client/lib/api-client.js.map +1 -1
- package/client/lib/api-client.ts +12 -0
- package/client/lib/mailxapi.js +9 -0
- package/client/styles/components.css +47 -0
- package/package.json +1 -1
- package/packages/mailx-service/index.d.ts +16 -0
- package/packages/mailx-service/index.d.ts.map +1 -1
- package/packages/mailx-service/index.js +70 -0
- package/packages/mailx-service/index.js.map +1 -1
- package/packages/mailx-service/index.ts +50 -0
- package/packages/mailx-service/jsonrpc.js +8 -0
- package/packages/mailx-service/jsonrpc.js.map +1 -1
- package/packages/mailx-service/jsonrpc.ts +8 -0
- package/packages/mailx-store/db.d.ts +13 -0
- package/packages/mailx-store/db.d.ts.map +1 -1
- package/packages/mailx-store/db.js +31 -0
- package/packages/mailx-store/db.js.map +1 -1
- package/packages/mailx-store/db.ts +33 -1
- package/packages/mailx-store-web/android-bootstrap.js +12 -0
- package/packages/mailx-store-web/android-bootstrap.js.map +1 -1
- package/packages/mailx-store-web/android-bootstrap.ts +10 -0
- package/packages/mailx-store-web/web-jsonrpc.js +10 -0
- package/packages/mailx-store-web/web-jsonrpc.js.map +1 -1
- package/packages/mailx-store-web/web-jsonrpc.ts +10 -0
- package/packages/mailx-store-web/web-service.d.ts +17 -0
- package/packages/mailx-store-web/web-service.d.ts.map +1 -1
- package/packages/mailx-store-web/web-service.js +107 -4
- package/packages/mailx-store-web/web-service.js.map +1 -1
- package/packages/mailx-store-web/web-service.ts +100 -4
- package/packages/mailx-store-web/web-settings.d.ts +2 -0
- package/packages/mailx-store-web/web-settings.d.ts.map +1 -1
- package/packages/mailx-store-web/web-settings.js +2 -0
- package/packages/mailx-store-web/web-settings.js.map +1 -1
- package/packages/mailx-store-web/web-settings.ts +2 -0
package/client/app.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { initFolderTree, refreshFolderTree, updateFolderCounts, setFolderSynced, getFolderSynced, setOutboxTotal } from "./components/folder-tree.js";
|
|
7
|
-
import { initMessageList, loadMessages, loadUnifiedInbox, loadSearchResults, reloadCurrentFolder, clearSearchMode, getSelectedMessages, markBodiesCached, getCurrentFocused, releaseFocus, removeMessagesAndReconcile, setRowFlagged, scrollFocusedIntoView } from "./components/message-list.js";
|
|
7
|
+
import { initMessageList, loadMessages, loadUnifiedInbox, loadSearchResults, reloadCurrentFolder, clearSearchMode, getSelectedMessages, markBodiesCached, getCurrentFocused, releaseFocus, removeMessagesAndReconcile, setRowFlagged, scrollFocusedIntoView, refreshPriorityIndex } from "./components/message-list.js";
|
|
8
8
|
import { showMessage, getCurrentMessage, initViewer, popOutCurrentMessage, toggleFullscreenPreview, showPreviewBodyMenu } from "./components/message-viewer.js";
|
|
9
9
|
import { connectWebSocket, onWsEvent, triggerSync, syncAccount, reauthenticate, getAccounts, getFolders, deleteMessage, deleteMessages, undeleteMessage, restartServer, getSyncPending, getVersion, getSettings, saveSettings, getAutocompleteSettings, saveAutocompleteSettings, repairAccounts, updateFlags, markAsSpamMessages, logClientEvent, sendMessage as apiSendMessage } from "./lib/api-client.js";
|
|
10
10
|
import * as messageState from "./lib/message-state.js";
|
|
@@ -1265,6 +1265,10 @@ function applyTheme(theme: "system" | "light" | "dark"): void {
|
|
|
1265
1265
|
// Reflect in the Settings menu radios so the two paths stay in sync.
|
|
1266
1266
|
const radio = document.getElementById(`opt-theme-${theme}`) as HTMLInputElement | null;
|
|
1267
1267
|
if (radio) radio.checked = true;
|
|
1268
|
+
// Update the submenu's "current" badge so the user sees the choice
|
|
1269
|
+
// without expanding.
|
|
1270
|
+
const cur = document.getElementById("theme-submenu-current");
|
|
1271
|
+
if (cur) cur.textContent = theme.charAt(0).toUpperCase() + theme.slice(1);
|
|
1268
1272
|
}
|
|
1269
1273
|
|
|
1270
1274
|
// Restore saved theme + wire the Settings radios. Defaults to "system".
|
|
@@ -1276,6 +1280,24 @@ function applyTheme(theme: "system" | "light" | "dark"): void {
|
|
|
1276
1280
|
if ((e.target as HTMLInputElement).checked) applyTheme(t);
|
|
1277
1281
|
});
|
|
1278
1282
|
}
|
|
1283
|
+
// Wire the submenu toggle. Click to expand; click outside / on a radio closes.
|
|
1284
|
+
const togBtn = document.getElementById("theme-submenu-toggle");
|
|
1285
|
+
const popout = document.getElementById("theme-submenu-popout");
|
|
1286
|
+
if (togBtn && popout) {
|
|
1287
|
+
togBtn.addEventListener("click", (e) => {
|
|
1288
|
+
e.stopPropagation();
|
|
1289
|
+
const open = popout.hidden;
|
|
1290
|
+
popout.hidden = !open;
|
|
1291
|
+
togBtn.setAttribute("aria-expanded", String(open));
|
|
1292
|
+
});
|
|
1293
|
+
// Close on radio change so the menu doesn't linger after the choice.
|
|
1294
|
+
popout.querySelectorAll<HTMLInputElement>('input[type="radio"]').forEach(r => {
|
|
1295
|
+
r.addEventListener("change", () => {
|
|
1296
|
+
popout.hidden = true;
|
|
1297
|
+
togBtn.setAttribute("aria-expanded", "false");
|
|
1298
|
+
});
|
|
1299
|
+
});
|
|
1300
|
+
}
|
|
1279
1301
|
})();
|
|
1280
1302
|
// Highlight the current rail target. For now just inbox is the default; once
|
|
1281
1303
|
// calendar/tasks ship, update this on view change.
|
|
@@ -1296,6 +1318,34 @@ document.addEventListener("mailx-compose", ((e: CustomEvent) => {
|
|
|
1296
1318
|
}) as EventListener);
|
|
1297
1319
|
document.addEventListener("mailx-delete", () => deleteSelectedMessages());
|
|
1298
1320
|
|
|
1321
|
+
// Share / mailto intents (Android-side: MainActivity routes share-sheet
|
|
1322
|
+
// invocations and mailto: links here. Desktop has no equivalent today —
|
|
1323
|
+
// MSIX / Windows share-target requires packaging changes we deferred).
|
|
1324
|
+
// Payload: { action, text, subject, mailto }. Mailto URLs are parsed
|
|
1325
|
+
// (RFC 2368: mailto:to?subject=...&body=...&cc=...&bcc=...) and used to
|
|
1326
|
+
// pre-fill compose. Plain shares (text/url) drop into the body / subject.
|
|
1327
|
+
document.addEventListener("mailx-share-intent", ((e: CustomEvent) => {
|
|
1328
|
+
const detail = e.detail || {};
|
|
1329
|
+
const init: any = { mode: "new", to: [], cc: [], bcc: [], subject: "", bodyHtml: "" };
|
|
1330
|
+
if (detail.mailto) {
|
|
1331
|
+
try {
|
|
1332
|
+
const url = new URL(detail.mailto);
|
|
1333
|
+
const to = decodeURIComponent(url.pathname).split(",").map((s: string) => s.trim()).filter(Boolean);
|
|
1334
|
+
init.to = to;
|
|
1335
|
+
const sp = url.searchParams;
|
|
1336
|
+
const subj = sp.get("subject"); if (subj) init.subject = subj;
|
|
1337
|
+
const body = sp.get("body"); if (body) init.bodyHtml = `<p>${body.replace(/\n/g, "<br>")}</p>`;
|
|
1338
|
+
const cc = sp.get("cc"); if (cc) init.cc = cc.split(",").map(s => s.trim()).filter(Boolean);
|
|
1339
|
+
const bcc = sp.get("bcc"); if (bcc) init.bcc = bcc.split(",").map(s => s.trim()).filter(Boolean);
|
|
1340
|
+
} catch { /* malformed mailto: — drop the URL into body so user can fix */ init.bodyHtml = `<p>${escapeHtml(detail.mailto)}</p>`; }
|
|
1341
|
+
} else {
|
|
1342
|
+
if (detail.subject) init.subject = detail.subject;
|
|
1343
|
+
if (detail.text) init.bodyHtml = `<p>${escapeHtml(String(detail.text)).replace(/\n/g, "<br>")}</p>`;
|
|
1344
|
+
}
|
|
1345
|
+
sessionStorage.setItem("composeInit", JSON.stringify(init));
|
|
1346
|
+
showComposeOverlay(init.subject || "Compose");
|
|
1347
|
+
}) as EventListener);
|
|
1348
|
+
|
|
1299
1349
|
// ── Search ──
|
|
1300
1350
|
|
|
1301
1351
|
let searchTimeout: ReturnType<typeof setTimeout>;
|
|
@@ -1729,6 +1779,11 @@ if (splitter) {
|
|
|
1729
1779
|
|
|
1730
1780
|
connectWebSocket();
|
|
1731
1781
|
|
|
1782
|
+
// Priority-sender index — fetch once on load. Refreshed on the contacts
|
|
1783
|
+
// configChanged event (below) so changes from another device propagate
|
|
1784
|
+
// without a full reload.
|
|
1785
|
+
refreshPriorityIndex().catch(() => { /* service may not be up yet */ });
|
|
1786
|
+
|
|
1732
1787
|
onWsEvent((event) => {
|
|
1733
1788
|
const statusSync = document.getElementById("status-sync");
|
|
1734
1789
|
const startupStatus = document.getElementById("startup-status");
|
|
@@ -2963,6 +3018,21 @@ optFlagged?.addEventListener("change", () => {
|
|
|
2963
3018
|
reloadCurrentFolder();
|
|
2964
3019
|
});
|
|
2965
3020
|
|
|
3021
|
+
// Priority-senders-only filter — same pattern as flagged-only. Adds
|
|
3022
|
+
// .priority-only to the list body; CSS hides any row without .priority.
|
|
3023
|
+
const optPriorityOnly = document.getElementById("opt-priority-only") as HTMLInputElement | null;
|
|
3024
|
+
if (optPriorityOnly) {
|
|
3025
|
+
optPriorityOnly.checked = localStorage.getItem("mailx-priority-only") === "true";
|
|
3026
|
+
const body0 = document.getElementById("ml-body");
|
|
3027
|
+
if (optPriorityOnly.checked) body0?.classList.add("priority-only");
|
|
3028
|
+
optPriorityOnly.addEventListener("change", () => {
|
|
3029
|
+
const body = document.getElementById("ml-body");
|
|
3030
|
+
if (optPriorityOnly.checked) body?.classList.add("priority-only");
|
|
3031
|
+
else body?.classList.remove("priority-only");
|
|
3032
|
+
localStorage.setItem("mailx-priority-only", String(optPriorityOnly.checked));
|
|
3033
|
+
});
|
|
3034
|
+
}
|
|
3035
|
+
|
|
2966
3036
|
// Folder counts toggle
|
|
2967
3037
|
optFolderCounts?.addEventListener("change", () => {
|
|
2968
3038
|
const tree = document.getElementById("folder-tree");
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Message list component — renders paginated message rows.
|
|
3
3
|
* Reads from message-state; operations mutate state, list reacts.
|
|
4
4
|
*/
|
|
5
|
-
import { getMessages as apiGetMessages, getUnifiedInbox as apiGetUnifiedInbox, searchMessages, updateFlags, getThreadMessages, moveMessages as apiMoveMessages } from "../lib/api-client.js";
|
|
5
|
+
import { getMessages as apiGetMessages, getUnifiedInbox as apiGetUnifiedInbox, searchMessages, updateFlags, getThreadMessages, moveMessages as apiMoveMessages, getPriorityLists } from "../lib/api-client.js";
|
|
6
6
|
import * as state from "../lib/message-state.js";
|
|
7
7
|
import { showMessage as viewerShow, clearViewer as viewerClear } from "./message-viewer.js";
|
|
8
8
|
import { showContextMenu } from "./context-menu.js";
|
|
@@ -43,6 +43,37 @@ let currentSortDir = "desc";
|
|
|
43
43
|
* `releaseFocus()` which clears highlight + viewer in the same call. */
|
|
44
44
|
let focusedRow = null;
|
|
45
45
|
const rowByKey = new Map();
|
|
46
|
+
/** Priority sender / domain index, populated on app load and refreshed when
|
|
47
|
+
* the user marks/unmarks a sender. Module-scoped so MessageRow can hit it
|
|
48
|
+
* during construction without a service round-trip per row. */
|
|
49
|
+
let prioritySenders = new Set();
|
|
50
|
+
let priorityDomains = new Set();
|
|
51
|
+
function isPriorityAddr(addr) {
|
|
52
|
+
const lower = (addr || "").trim().toLowerCase();
|
|
53
|
+
if (!lower)
|
|
54
|
+
return false;
|
|
55
|
+
if (prioritySenders.has(lower))
|
|
56
|
+
return true;
|
|
57
|
+
const at = lower.indexOf("@");
|
|
58
|
+
const domain = at >= 0 ? lower.slice(at + 1) : "";
|
|
59
|
+
return !!domain && priorityDomains.has(domain);
|
|
60
|
+
}
|
|
61
|
+
/** Refresh the priority index from the service. Call on app load, after
|
|
62
|
+
* any user action that changes priority (mark/unmark), or whenever
|
|
63
|
+
* contacts.jsonc reloads. After refresh, every visible row's `.priority`
|
|
64
|
+
* class is recomputed without a full re-render. */
|
|
65
|
+
export async function refreshPriorityIndex() {
|
|
66
|
+
try {
|
|
67
|
+
const r = await getPriorityLists();
|
|
68
|
+
prioritySenders = new Set((r?.senders || []).map(s => (s || "").toLowerCase()));
|
|
69
|
+
priorityDomains = new Set((r?.domains || []).map(d => (d || "").toLowerCase()));
|
|
70
|
+
// Re-tag any currently rendered rows.
|
|
71
|
+
for (const row of rowByKey.values()) {
|
|
72
|
+
row.el.classList.toggle("priority", isPriorityAddr(row.msg?.from?.address || ""));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch { /* service may not be ready yet */ }
|
|
76
|
+
}
|
|
46
77
|
function rowKey(accountId, uid) {
|
|
47
78
|
return `${accountId}:${uid}`;
|
|
48
79
|
}
|
|
@@ -750,6 +781,8 @@ class MessageRow {
|
|
|
750
781
|
row.classList.add("pending-reconcile");
|
|
751
782
|
if (msg.inReplyTo)
|
|
752
783
|
row.classList.add("is-reply");
|
|
784
|
+
if (isPriorityAddr(msg.from?.address || ""))
|
|
785
|
+
row.classList.add("priority");
|
|
753
786
|
row.dataset.uid = String(msg.uid);
|
|
754
787
|
row.dataset.accountId = accountId;
|
|
755
788
|
row.dataset.folderId = String(msg.folderId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-list.js","sourceRoot":"","sources":["message-list.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message-list.js","sourceRoot":"","sources":["message-list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,eAAe,IAAI,kBAAkB,EAAE,cAAc,EAA4B,WAAW,EAAE,iBAAiB,EAAE,YAAY,IAAI,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACzO,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIhD,IAAI,eAAqC,CAAC;AAC1C,IAAI,gBAAwB,CAAC;AAC7B,IAAI,eAAuB,CAAC;AAC5B,IAAI,iBAAiB,GAAG,EAAE,CAAC,CAAC,2FAA2F;AACvH,IAAI,cAAc,GAAuB,IAAI,CAAC;AAC9C,IAAI,WAAmB,CAAC;AACxB,IAAI,aAAqB,CAAC;AAC1B,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAChC,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,kDAAkD;AAClD,IAAI,WAAW,GAAG,MAAM,CAAC;AACzB,IAAI,cAAc,GAAmB,MAAM,CAAC;AAE5C;;;;;;;;;;;;;;yEAcyE;AACzE,IAAI,UAAU,GAAsB,IAAI,CAAC;AACzC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE/C;;gEAEgE;AAChE,IAAI,eAAe,GAAgB,IAAI,GAAG,EAAE,CAAC;AAC7C,IAAI,eAAe,GAAgB,IAAI,GAAG,EAAE,CAAC;AAC7C,SAAS,cAAc,CAAC,IAAY;IAChC,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,OAAO,CAAC,CAAC,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AACD;;;oDAGoD;AACpD,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACtC,IAAI,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACnC,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChF,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChF,sCAAsC;QACtC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAClC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACtF,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,MAAM,CAAC,SAAiB,EAAE,GAAoB;IACnD,OAAO,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,GAAe;IAC7B,IAAI,UAAU,IAAI,UAAU,KAAK,GAAG;QAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACpE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACtB,UAAU,GAAG,GAAG,CAAC;IACjB,uEAAuE;IACvE,qEAAqE;IACrE,kDAAkD;IAClD,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5C,kEAAkE;IAClE,qEAAqE;IACrE,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACpF,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9D,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACxF,CAAC;AAED;;iCAEiC;AACjC,MAAM,UAAU,iBAAiB;IAC7B,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED;;mBAEmB;AACnB,SAAS,eAAe,CAAC,SAAiB,EAAE,GAAW;IACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,CAAC;IACd,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;gEAGgE;AAChE,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,GAAW,EAAE,GAAY;IACtE,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,GAAG;QAAE,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;uEACuE;AACvE,MAAM,UAAU,qBAAqB;IACjC,IAAI,UAAU;QAAE,UAAU,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,YAAY;IACxB,IAAI,UAAU;QAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9C,UAAU,GAAG,IAAI,CAAC;IAClB,WAAW,EAAE,CAAC;IACd,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACrF,CAAC;AAED;;kEAEkE;AAClE,MAAM,UAAU,gBAAgB,CAAC,KAA2C;IACxE,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACxC,KAAK,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,GAAG,uBAAuB,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;eACjG,IAAI,CAAC,aAAa,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;QACxD,IAAI,GAAG;YAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACpD,CAAC;AACL,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,mBAAmB;IAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9B,SAAS,EAAG,CAAiB,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;QACrD,GAAG,EAAE,MAAM,CAAE,CAAiB,CAAC,OAAO,CAAC,GAAG,CAAC;QAC3C,QAAQ,EAAE,MAAM,CAAE,CAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;KACxD,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,cAAc;IACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,IAAI;QAAE,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IACjG,qEAAqE;IACrE,qEAAqE;IACrE,gDAAgD;IAChD,IAAI,UAAU,EAAE,CAAC;QACb,UAAU,GAAG,IAAI,CAAC;QAClB,WAAW,EAAE,CAAC;QACd,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;AACL,CAAC;AAED;;;0EAG0E;AAC1E,SAAS,WAAW,CAAC,IAAY;IAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAE,qBAAqB;IAClE,OAAO,mBAAmB,GAAG,GAAG,CAAC;AACrC,CAAC;AAED;uEACuE;AACvE,SAAS,eAAe;IACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO;IACzD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACzC,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC;AACpB,CAAC;AAED;;;oEAGoE;AACpE,SAAS,aAAa,KAAgD,CAAC;AAEvE,wEAAwE;AACxE,yEAAyE;AACzE,IAAI,CAAE,MAAc,CAAC,uBAAuB,EAAE,CAAC;IAC1C,MAAc,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QACvC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;YAAE,eAAe,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAAE,OAAO;QACzD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QACvC,6DAA6D;QAC7D,2DAA2D;QAC3D,8DAA8D;QAC9D,4DAA4D;QAC5D,4DAA4D;QAC5D,8DAA8D;QAC9D,2DAA2D;QAC3D,2DAA2D;QAC3D,4DAA4D;QAC5D,UAAU;QACV,gEAAgE;QAChE,gEAAgE;QAChE,4DAA4D;QAC5D,0DAA0D;QAC1D,6DAA6D;QAC7D,6CAA6C;QAC7C,IAAI,MAAM,CAAC,OAAO,CAAC,0EAA0E,CAAC;YAAE,OAAO;QACvG,eAAe,EAAE,CAAC;IACtB,CAAC,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAAC,IAAiB,EAAE,EAAe;IACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO;IACrC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACrE,CAAC;AAED;;;;2CAI2C;AAC3C,SAAS,kBAAkB;IACvB,IAAI,cAAc,EAAE,WAAW;QAAE,OAAO,cAAc,CAAC;IACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAuB,CAAC;AACxE,CAAC;AAED,MAAM,OAAO,GAA+B,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAClG,MAAM,OAAO,GAA+B,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACnJ,MAAM,eAAe,GAA+B,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAE1I,MAAM,UAAU,eAAe,CAAC,OAA6B;IACzD,eAAe,GAAG,OAAO,CAAC;IAE1B,kBAAkB;IAClB,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,IAAI,EAAE,CAAC;QACP,uEAAuE;QACvE,uEAAuE;QACvE,oEAAoE;QACpE,uBAAuB;QACvB,0DAA0D;QAC1D,wEAAwE;QACxE,sEAAsE;QACtE,kEAAkE;QAClE,uEAAuE;QACvE,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YACtC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC;YACxB,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC;YACxB,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC;YACrC,cAAc,GAAG,KAAK,CAAC;QAC3B,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YACrC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,QAAQ,EAAE,CAAC;gBAC/F,cAAc,GAAG,IAAI,CAAC;YAC1B,CAAC;QACL,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE;YACnC,iEAAiE;YACjE,mEAAmE;YACnE,IAAI,IAAI,CAAC,SAAS,KAAK,mBAAmB,EAAE,CAAC;gBACzC,cAAc,GAAG,IAAI,CAAC;YAC1B,CAAC;QACL,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;YACjC,IAAI,OAAO;gBAAE,OAAO;YACpB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;YAChF,IAAI,UAAU,IAAI,WAAW,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;gBACjD,gBAAgB,EAAE,CAAC;YACvB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,wEAAwE;IACxE,uEAAuE;IACvE,mEAAmE;IACnE,yCAAyC;IACzC,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,CAAM,EAAE,EAAE;QACvD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;QAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3D,0BAA0B,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAC3E,sEAAsE;IACtE,mEAAmE;IACnE,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACnC,MAAM,GAAG,GAAI,CAAC,CAAC,MAAsB,CAAC,OAAO,CAAc,kBAAkB,CAAC,CAAC;YAC/E,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;gBACtB,cAAc,GAAG,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACJ,WAAW,GAAG,GAAG,CAAC;gBAClB,cAAc,GAAG,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YACrD,CAAC;YACD,oEAAoE;YACpE,kEAAkE;YAClE,qCAAqC;YACrC,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,IAAI,gBAAgB,IAAI,eAAe,EAAE,CAAC;gBACrE,YAAY,CAAC,gBAAgB,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACJ,mBAAmB,EAAE,CAAC;gBACtB,oBAAoB,EAAE,CAAC;YAC3B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,oBAAoB,EAAE,CAAC;AAC3B,CAAC;AAED;;mCAEmC;AACnC,SAAS,mBAAmB;IACxB,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE;QAC1B,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACjE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACjE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9E,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9E,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO;QACP,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,WAAW,CAAC,KAAY,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,oBAAoB;IACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,CAAC,gBAAgB,CAAc,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACjE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACvF,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CACtC,IAA0C;IAE1C,MAAM,YAAY,GAAG,UAAU;QAC3B,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;QAC9D,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,IAAI,EAAE,CAAC;QACP,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnF,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC7D,MAAM,EAAE,GAAG,GAAkB,CAAC;YAC9B,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,EAAE,CAAC,MAAM,EAAE,CAAC;QACzC,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,GAAG,yCAAyC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,YAAY,IAAI,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YACpG,+DAA+D;QACnE,CAAC;aAAM,CAAC;YACJ,6DAA6D;YAC7D,iDAAiD;YACjD,YAAY,EAAE,CAAC;QACnB,CAAC;IACL,CAAC;AACL,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB;IAC/B,IAAI,UAAU,EAAE,CAAC;QACb,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACrB,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;SAAM,IAAI,gBAAgB,IAAI,eAAe,EAAE,CAAC;QAC7C,YAAY,CAAC,gBAAgB,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;AACL,CAAC;AAED;;wEAEwE;AACxE,MAAM,UAAU,eAAe;IAC3B,UAAU,GAAG,KAAK,CAAC;IACnB,kBAAkB,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED,wCAAwC;AACxC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAU,GAAG,IAAI;IACpD,WAAW,GAAG,IAAI,CAAC;IACnB,UAAU,GAAG,KAAK,CAAC;IACnB,iBAAiB,GAAG,EAAE,CAAC;IACvB,mBAAmB,GAAG,KAAK,CAAC,CAAC,0CAA0C;IACvE,WAAW,GAAG,CAAC,CAAC;IAChB,aAAa,GAAG,CAAC,CAAC;IAElB,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAC1D,IAAI,UAAU;QAAE,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC;IAEhD,MAAM,WAAW,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEvG,IAAI,UAAU,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,wCAAwC,CAAC;IAC9D,CAAC;IAED,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC3C,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;QAE7B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,yBAAyB,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,sBAAsB,CAAC,CAAC,CAAC,wCAAwC,QAAQ,CAAC;YACtJ,OAAO;QACX,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,UAAU,EAAE,CAAC;YACb,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;YAC7B,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO;QACpC,IAAI,CAAC,SAAS,GAAG,gCAAgC,CAAC,CAAC,OAAO,QAAQ,CAAC;IACvE,CAAC;AACL,CAAC;AAED,0BAA0B;AAC1B,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAa,EAAE,KAAK,GAAG,KAAK,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,CAAC;IAC9F,UAAU,GAAG,IAAI,CAAC;IAClB,WAAW,GAAG,KAAK,CAAC;IACpB,kBAAkB,GAAG,KAAK,CAAC;IAC3B,WAAW,GAAG,CAAC,CAAC;IAChB,aAAa,GAAG,CAAC,CAAC;IAElB,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,oEAAoE;IACpE,mEAAmE;IACnE,mEAAmE;IACnE,+CAA+C;IAC/C,YAAY,EAAE,CAAC;IAEf,IAAI,CAAC,SAAS,GAAG,0CAA0C,CAAC;IAE5D,IAAI,CAAC;QACD,mCAAmC;QACnC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,KAAa,CAAC;YAClB,IAAI,CAAC;gBAAC,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,IAAI,CAAC,SAAS,GAAG,2CAA2C,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEzH,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,IAAI,SAAS;gBAC3C,CAAC,CAAC,MAAM,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC;gBACrD,CAAC,CAAC,MAAM,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAC3C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CACpI,CAAC;YACF,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;YAC/B,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,IAAI,CAAC,SAAS,GAAG,8CAA8C,CAAC;gBAAC,OAAO;YAAC,CAAC;YACtG,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAClC,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC9E,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;QAE7B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,yCAAyC,KAAK,SAAS,CAAC;YACzE,OAAO;QACX,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,iEAAiE;QACjE,+DAA+D;QAC/D,WAAW,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,uCAAuC,CAAC,CAAC,OAAO,QAAQ,CAAC;IAC9E,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,QAAgB,EAAE,IAAI,GAAG,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,UAAU,GAAG,IAAI;IAChH,UAAU,GAAG,KAAK,CAAC;IACnB,WAAW,GAAG,KAAK,CAAC;IACpB,oEAAoE;IACpE,oEAAoE;IACpE,wBAAwB;IACxB,eAAe,EAAE,CAAC;IAClB,oEAAoE;IACpE,4EAA4E;IAC5E,+DAA+D;IAC/D,oEAAoE;IACpE,2EAA2E;IAC3E,8DAA8D;IAC9D,IAAI,UAAU;QAAE,iBAAiB,GAAG,UAAU,CAAC;IAC/C,MAAM,EAAE,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;IAC3C,mBAAmB,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,QAAQ;WAClE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;WACrE,EAAE,KAAK,YAAY,IAAI,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC7G,gBAAgB,GAAG,SAAS,CAAC;IAC7B,eAAe,GAAG,QAAQ,CAAC;IAC3B,WAAW,GAAG,CAAC,CAAC;IAChB,aAAa,GAAG,CAAC,CAAC;IAElB,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,sBAAsB;IACtB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAC1D,IAAI,UAAU;QAAE,UAAU,CAAC,WAAW,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAE7E,MAAM,WAAW,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEvG,IAAI,UAAU,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,wCAAwC,CAAC;IAC9D,CAAC;IAED,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC;QACpG,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QAC1G,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,oBAAoB,EAAE,CAAC;QAEvB,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,yBAAyB,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa,QAAQ,CAAC;YACtG,OAAO;QACX,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAE9C,IAAI,UAAU,EAAE,CAAC;YACb,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,qBAAqB,CAAC,GAAG,EAAE;gBACvB,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;gBAC7B,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO;QACpC,IAAI,CAAC,SAAS,GAAG,gCAAgC,CAAC,CAAC,OAAO,QAAQ,CAAC;IACvE,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,OAAO,GAAG,IAAI,CAAC;IACf,WAAW,EAAE,CAAC;IAEd,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,UAAU;YACrB,CAAC,CAAC,MAAM,cAAc,CAAC,kBAAkB,EAAE,WAAW,CAAC;YACvD,CAAC,CAAC,WAAW;gBACT,CAAC,CAAC,MAAM,kBAAkB,CAAC,WAAW,CAAC;gBACvC,CAAC,CAAC,MAAM,cAAc,CAAC,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QAChG,kBAAkB;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACpC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;YAAS,CAAC;QACP,OAAO,GAAG,KAAK,CAAC;IACpB,CAAC;AACL,CAAC;AAED,+CAA+C;AAC/C,SAAS,cAAc,CAAC,IAAiB,EAAE,SAAiB,EAAE,KAAY;IACtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC,UAAU;QAAE,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,WAAW,CAAC,IAAiB;IAClC,kEAAkE;IAClE,oEAAoE;IACpE,sEAAsE;IACtE,gEAAgE;IAChE,mEAAmE;IACnE,iEAAiE;IACjE,4DAA4D;IAC5D,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG;QAAE,OAAO;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAgB,CAAC;IAC9D,IAAI,QAAQ;QAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAiB,EAAE,QAAmC;IAC5E,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,QAAQ,IAAI,CAAgB,CAAC;QACjF,IAAI,GAAG;YAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;AACL,CAAC;AAED;;oFAEoF;AACpF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAmB,EAAE,OAAY;IACnE,4BAA4B;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,IAAI,MAAM,GAAU,EAAE,CAAC;IACvB,IAAI,CAAC;QAAC,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACrG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,GAAG,CAAC;QAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,CAAC,SAAS,GAAG,yBAAyB,CAAC;QAC9C,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,OAAO,IAAI,cAAc,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YACtC,gEAAgE;YAChE,6DAA6D;YAC7D,8DAA8D;YAC9D,8DAA8D;YAC9D,MAAM,QAAQ,GAAG;gBACb,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,cAAc,EAAE,GAAG,CAAC,cAAc;aACrC,CAAC;YACF,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAuB,CAAC,CAAC;YAC5F,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtD,KAAK,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAC5C,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;IACpC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;IACzC,2BAA2B;IAC3B,UAAU,CAAC,GAAG,EAAE;QACZ,MAAM,OAAO,GAAG,CAAC,CAAa,EAAE,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EAAE,CAAC;gBACpC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACf,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC,EAAE,CAAC,CAAC,CAAC;AACV,CAAC;AAED;;;;;;;;;;;;;;;;;;2DAkB2D;AAC3D,MAAM,UAAU;IAKD;IACA;IALX,EAAE,CAAc;IACR,MAAM,CAAkB;IAEhC,YACW,GAAQ,EACR,SAAiB,EACxB,UAAmB,EACnB,WAAmB,EACnB,cAAuB;QAJhB,QAAG,GAAH,GAAG,CAAK;QACR,cAAS,GAAT,SAAS,CAAQ;QAKxB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;QACd,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;QACzB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACvD,IAAI,GAAG,CAAC,OAAO;YAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACxD,IAAI,GAAG,CAAC,SAAS;YAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;YAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAClC,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,GAAG,CAAC,QAAQ;YAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QACtD,IAAI,UAAU;YAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEjD,mEAAmE;QACnE,MAAM,QAAQ,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;YACpD,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC;YAC9C,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACjF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC;QAC/B,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;QACvC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3E,oCAAoC;QACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/D,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,oBAAoB;QACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,mBAAmB,IAAI,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QACzD,CAAC;QACD,IAAI,cAAc,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC3C,GAAG,CAAC,SAAS,GAAG,gBAAgB,CAAC;YACjC,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpD,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACjD,SAAS,CAAC,SAAS,GAAG,eAAe,CAAC;YACtC,SAAS,CAAC,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC;YACvC,SAAS,CAAC,KAAK,GAAG,cAAc,GAAG,CAAC,UAAU,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QACD,IAAK,GAAG,CAAC,SAAoB,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,mBAAmB,GAAG,CAAC,SAAS,WAAW,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QAED,8DAA8D;QAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;QACjC,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,UAAU,IAAI,WAAW,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAClD,UAAU,CAAC,SAAS,GAAG,gBAAgB,CAAC;YACxC,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7C,UAAU,CAAC,KAAK,GAAG,GAAG,WAAW,8CAA8C,CAAC;YAChF,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC7C,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,MAAM,eAAe,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;YACjC,OAAO,CAAC,WAAW,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;YAC1C,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,oBAAoB;QACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAExC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEzB,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACxE,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,0EAA0E;IAC1E,MAAM,CAAC,IAAiB;QACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED;;;wDAGoD;IACpD,MAAM;QACF,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACjB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,WAAW,CAAC,GAAY,IAAU,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9E,IAAI,UAAU,KAAc,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5E,cAAc,CAAC,GAAY,IAAU,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/E,eAAe,CAAC,GAAY;QACxB,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9C,CAAC;IACD,cAAc,KAAW,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE9D,aAAa,CAAC,CAAa;QAC/B,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACJ,cAAc,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC1C,CAAC;QACD,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;QACzB,aAAa,EAAE,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,CAAa;QAC3C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI;YACpB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAc,6BAA6B,CAAC,CAAC;YAC/E,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,aAAa,GAAG,IAAI;YACtB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,MAAM;YAClD,CAAC,CAAC,CAAC,CAAC;QACR,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;YAC3B;gBACI,KAAK,EAAE,eAAe,WAAW,CAAC,MAAM,GAAG;gBAC3C,MAAM,EAAE,GAAG,EAAE;oBACT,IAAI,CAAC,IAAI;wBAAE,OAAO;oBAClB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;oBACtC,KAAK,MAAM,CAAC,IAAI,WAAW;wBAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBACzD,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;oBAC7D,aAAa,EAAE,CAAC;gBACpB,CAAC;gBACD,QAAQ,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC;aACrC;YACD;gBACI,KAAK,EAAE,kBAAkB,aAAa,CAAC,CAAC,CAAC,KAAK,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrE,MAAM,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE;gBAC/B,QAAQ,EAAE,aAAa,KAAK,CAAC;aAChC;YACD;gBACI,KAAK,EAAE,kBAAkB;gBACzB,MAAM,EAAE,GAAG,EAAE;oBACT,IAAI,CAAC,IAAI;wBAAE,OAAO;oBAClB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;oBACtC,KAAK,MAAM,CAAC,IAAI,WAAW;wBAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC5D,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;oBAC7D,aAAa,EAAE,CAAC;gBACpB,CAAC;gBACD,QAAQ,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC;aACrC;SACJ,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,CAAa;QACnC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,YAAY,GAAa,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,SAAS;YACtB,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC;YACvD,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC;YACD,MAAM,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;IAEO,UAAU,CAAC,CAAa;QAC5B,IAAI,cAAc,EAAE,CAAC;YAAC,cAAc,GAAG,KAAK,CAAC;YAAC,OAAO;QAAC,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,aAAmC,CAAC;QACzD,IAAI,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;YACzB,aAAa,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACpC,IAAI,MAAM,EAAE,CAAC;gBACT,cAAc,EAAE,CAAC;gBACjB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7B,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3B,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACJ,cAAc,EAAE,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;aAAM,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;QAC7B,CAAC;aAAM,CAAC;YACJ,cAAc,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,aAAa,EAAE,CAAC;IACpB,CAAC;IAEO,gBAAgB,CAAC,CAAa;QAClC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,sBAAsB,EAAE;YAC3D,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;SACnH,CAAC,CAAC,CAAC;IACR,CAAC;IAEO,WAAW,CAAC,CAAY;QAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;QAC7B,CAAC;QACD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,CAAC,CAAC,YAAa,CAAC,OAAO,CAAC,8BAA8B,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC,YAAa,CAAC,OAAO,CAAC,6BAA6B,EAAE,IAAI,CAAC,SAAS,CAAC;YAClE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG;YACjB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ;YAC3B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;SAC5B,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,YAAa,CAAC,aAAa,GAAG,UAAU,CAAC;QAC3C,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC5C,KAAK,CAAC,WAAW,GAAG,GAAG,QAAQ,CAAC,MAAM,WAAW,CAAC;YAClD,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,4GAA4G,CAAC;YACnI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,YAAa,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1C,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,GAAgB;QAClC,IAAI,cAAc,GAAyC,IAAI,CAAC;QAChE,MAAM,aAAa,GAAG,GAAG,CAAC;QAC1B,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,EAAc,EAAE,EAAE;YAClD,IAAI,cAAc;gBAAE,YAAY,CAAC,cAAc,CAAC,CAAC;YACjD,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM,IAAI,GAAG,GAAG,CAAC,aAAmC,CAAC;gBACrD,MAAM,YAAY,GAAG,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;gBACjE,IAAI,YAAY,EAAE,CAAC;oBACf,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACJ,cAAc,EAAE,CAAC;oBACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACvB,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC3C,CAAC;gBACD,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;gBACzB,aAAa,EAAE,CAAC;gBAChB,IAAI,CAAC;oBAAE,SAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7D,CAAC,EAAE,aAAa,CAAC,CAAC;QACtB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACtB,MAAM,eAAe,GAAG,GAAG,EAAE;YACzB,IAAI,cAAc,EAAE,CAAC;gBAAC,YAAY,CAAC,cAAc,CAAC,CAAC;gBAAC,cAAc,GAAG,IAAI,CAAC;YAAC,CAAC;QAChF,CAAC,CAAC;QACF,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IAEO,gBAAgB,CAAC,CAAa;QAClC,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,aAAmC,CAAC;QACzD,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,IAAI,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACvB,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACJ,cAAc,EAAE,CAAC;gBACjB,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,KAAK,GAAe;YACtB;gBACI,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW;gBAC3C,MAAM,EAAE,KAAK,IAAI,EAAE;oBACf,MAAM,QAAQ,GAAG,MAAM;wBACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC;wBACjD,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAC/B,IAAI,CAAC;wBACD,MAAM,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;wBAChD,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;wBACrB,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;wBACvD,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACtD,CAAC;oBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC;aACJ;YACD;gBACI,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;gBACpC,MAAM,EAAE,KAAK,IAAI,EAAE;oBACf,MAAM,QAAQ,GAAG,SAAS;wBACtB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC;wBACpD,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBAClC,IAAI,CAAC;wBACD,MAAM,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;wBAChD,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC;wBACrB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;oBACzD,CAAC;oBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC;aACJ;YACD,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAChD,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE;YACzH,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE;YAChI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE;YAC7H,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAChD;gBACI,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,KAAK,IAAI,EAAE;oBACf,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC/E,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC;wBAChC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,MAAM,CAAE,CAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACjG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAChB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC/E,IAAI,CAAC,IAAI;wBAAE,OAAO;oBAClB,IAAI,CAAC;wBACD,MAAM,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACtD,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACvE,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAChB,KAAK,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBACzC,CAAC;gBACL,CAAC;aACJ;YACD,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE;YAC1F,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAChD,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;YACvF,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAChD;gBACI,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,KAAK,IAAI,EAAE;oBACf,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;wBAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;wBAAC,OAAO;oBAAC,CAAC;oBACpE,IAAI,CAAC;wBAAC,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC/E,CAAC;aACJ;SACJ,CAAC;QAEF,eAAe,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;CACJ;AAED,SAAS,cAAc,CAAC,IAAiB,EAAE,SAAiB,EAAE,KAAY;IACtE,oEAAoE;IACpE,sEAAsE;IACtE,gEAAgE;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,YAAY,GAAU,KAAK,CAAC;IAChC,IAAI,UAAU,GAA4B,IAAI,CAAC;IAC/C,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,IAAI,GAAG,EAAe,CAAC;QACzC,UAAU,GAAG,IAAI,GAAG,EAAe,CAAC;QACpC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,QAAQ,GAAG,CAAC,SAAS,IAAI,SAAS,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5E,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;gBACtD,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,QAAQ,GAAG,CAAC,SAAS,IAAI,SAAS,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5E,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,IAAI;gBAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAChG,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC;QAChD,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvD,4DAA4D;QAC5D,8DAA8D;QAC9D,mCAAmC;QACnC,MAAM,cAAc,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,YAAY,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QACzF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;AACL,CAAC;AAGD,SAAS,UAAU,CAAC,OAAe;IAC/B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAEpE,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE;QACpC,OAAO,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAEpD,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE;QACrC,OAAO,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAExD,OAAO,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC1C,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;IACpB,OAAO,GAAG,CAAC,SAAS,CAAC;AACzB,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Reads from message-state; operations mutate state, list reacts.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { getMessages as apiGetMessages, getUnifiedInbox as apiGetUnifiedInbox, searchMessages, abortMessageListRequests, updateFlags, getThreadMessages, moveMessages as apiMoveMessages } from "../lib/api-client.js";
|
|
6
|
+
import { getMessages as apiGetMessages, getUnifiedInbox as apiGetUnifiedInbox, searchMessages, abortMessageListRequests, updateFlags, getThreadMessages, moveMessages as apiMoveMessages, getPriorityLists } from "../lib/api-client.js";
|
|
7
7
|
import * as state from "../lib/message-state.js";
|
|
8
8
|
import type { ListMessage } from "../lib/message-state.js";
|
|
9
9
|
import { showMessage as viewerShow, clearViewer as viewerClear } from "./message-viewer.js";
|
|
@@ -50,6 +50,35 @@ let currentSortDir: "asc" | "desc" = "desc";
|
|
|
50
50
|
let focusedRow: MessageRow | null = null;
|
|
51
51
|
const rowByKey = new Map<string, MessageRow>();
|
|
52
52
|
|
|
53
|
+
/** Priority sender / domain index, populated on app load and refreshed when
|
|
54
|
+
* the user marks/unmarks a sender. Module-scoped so MessageRow can hit it
|
|
55
|
+
* during construction without a service round-trip per row. */
|
|
56
|
+
let prioritySenders: Set<string> = new Set();
|
|
57
|
+
let priorityDomains: Set<string> = new Set();
|
|
58
|
+
function isPriorityAddr(addr: string): boolean {
|
|
59
|
+
const lower = (addr || "").trim().toLowerCase();
|
|
60
|
+
if (!lower) return false;
|
|
61
|
+
if (prioritySenders.has(lower)) return true;
|
|
62
|
+
const at = lower.indexOf("@");
|
|
63
|
+
const domain = at >= 0 ? lower.slice(at + 1) : "";
|
|
64
|
+
return !!domain && priorityDomains.has(domain);
|
|
65
|
+
}
|
|
66
|
+
/** Refresh the priority index from the service. Call on app load, after
|
|
67
|
+
* any user action that changes priority (mark/unmark), or whenever
|
|
68
|
+
* contacts.jsonc reloads. After refresh, every visible row's `.priority`
|
|
69
|
+
* class is recomputed without a full re-render. */
|
|
70
|
+
export async function refreshPriorityIndex(): Promise<void> {
|
|
71
|
+
try {
|
|
72
|
+
const r = await getPriorityLists();
|
|
73
|
+
prioritySenders = new Set((r?.senders || []).map(s => (s || "").toLowerCase()));
|
|
74
|
+
priorityDomains = new Set((r?.domains || []).map(d => (d || "").toLowerCase()));
|
|
75
|
+
// Re-tag any currently rendered rows.
|
|
76
|
+
for (const row of rowByKey.values()) {
|
|
77
|
+
row.el.classList.toggle("priority", isPriorityAddr(row.msg?.from?.address || ""));
|
|
78
|
+
}
|
|
79
|
+
} catch { /* service may not be ready yet */ }
|
|
80
|
+
}
|
|
81
|
+
|
|
53
82
|
function rowKey(accountId: string, uid: number | string): string {
|
|
54
83
|
return `${accountId}:${uid}`;
|
|
55
84
|
}
|
|
@@ -758,6 +787,7 @@ class MessageRow {
|
|
|
758
787
|
if (!msg.bodyPath) row.classList.add("not-downloaded");
|
|
759
788
|
if (msg.pending) row.classList.add("pending-reconcile");
|
|
760
789
|
if (msg.inReplyTo) row.classList.add("is-reply");
|
|
790
|
+
if (isPriorityAddr(msg.from?.address || "")) row.classList.add("priority");
|
|
761
791
|
row.dataset.uid = String(msg.uid);
|
|
762
792
|
row.dataset.accountId = accountId;
|
|
763
793
|
row.dataset.folderId = String(msg.folderId);
|
|
@@ -458,6 +458,28 @@ export async function showMessage(accountId, uid, folderId, specialUse, isRetry
|
|
|
458
458
|
}
|
|
459
459
|
},
|
|
460
460
|
});
|
|
461
|
+
// Mark / unmark sender as priority — visual highlight in
|
|
462
|
+
// the message list (gold left bar + bold sender name);
|
|
463
|
+
// strongest while unread, fades when read. Stored as
|
|
464
|
+
// `priority: true` on the contacts.jsonc preferred[]
|
|
465
|
+
// entry (auto-creates the entry if it doesn't exist).
|
|
466
|
+
items.push({
|
|
467
|
+
label: `★ Mark sender as priority: ${addr.address}`,
|
|
468
|
+
action: async () => {
|
|
469
|
+
try {
|
|
470
|
+
const { setPrioritySender } = await import("../lib/api-client.js");
|
|
471
|
+
await setPrioritySender(addr.address, true, name);
|
|
472
|
+
const { refreshPriorityIndex } = await import("./message-list.js");
|
|
473
|
+
await refreshPriorityIndex();
|
|
474
|
+
const status = document.getElementById("status-sync");
|
|
475
|
+
if (status)
|
|
476
|
+
status.textContent = `Priority: ${addr.address}`;
|
|
477
|
+
}
|
|
478
|
+
catch (e) {
|
|
479
|
+
alert(`Couldn't mark priority: ${e?.message || e}`);
|
|
480
|
+
}
|
|
481
|
+
},
|
|
482
|
+
});
|
|
461
483
|
items.push({ label: "", action: () => { }, separator: true });
|
|
462
484
|
}
|
|
463
485
|
items.push({ label: "Reply", action: () => document.dispatchEvent(new CustomEvent("mailx-compose", { detail: { mode: "reply" } })) });
|
|
@@ -669,7 +691,7 @@ export async function showMessage(accountId, uid, folderId, specialUse, isRetry
|
|
|
669
691
|
+ (reputationFlagged ? " mv-remote-banner-reputation" : "");
|
|
670
692
|
banner.innerHTML =
|
|
671
693
|
(isFlagged
|
|
672
|
-
? `<div class="mv-rb-flagged">⚠
|
|
694
|
+
? `<div class="mv-rb-flagged">⚠ Sender on your watch list (you marked this sender or domain suspicious)</div>`
|
|
673
695
|
: "") +
|
|
674
696
|
(reputationFlagged
|
|
675
697
|
? `<div class="mv-rb-reputation">${reputationText}</div>`
|
|
@@ -692,8 +714,8 @@ export async function showMessage(accountId, uid, folderId, specialUse, isRetry
|
|
|
692
714
|
`</div>` +
|
|
693
715
|
(deliveredTo || toAddr ? `<div class="mv-rb-actions"><button id="btn-allow-to">Always allow to: ${escapeText(deliveredTo || toAddr)}</button></div>` : "") +
|
|
694
716
|
`<div class="mv-rb-actions">` +
|
|
695
|
-
`<button id="btn-flag-sender" class="mv-rb-flag-btn" title="${escapeText(senderAddr)}">${isFlagged ? "
|
|
696
|
-
(senderDomain ? `<button id="btn-flag-domain" class="mv-rb-flag-btn" title="*@${escapeText(senderDomain)}">
|
|
717
|
+
`<button id="btn-flag-sender" class="mv-rb-flag-btn" title="${escapeText(senderAddr)}">${isFlagged ? "Unwatch" : "Watch (mark suspicious)"} sender</button>` +
|
|
718
|
+
(senderDomain ? `<button id="btn-flag-domain" class="mv-rb-flag-btn" title="*@${escapeText(senderDomain)}">Watch domain *@${escapeText(senderDomain)}</button>` : "") +
|
|
697
719
|
`</div>` +
|
|
698
720
|
`<div class="mv-rb-actions"><button id="btn-edit-allowlist" title="View / edit the full allowlist">Edit allowlist…</button></div>` +
|
|
699
721
|
`</div>`;
|
|
@@ -737,11 +759,15 @@ export async function showMessage(accountId, uid, folderId, specialUse, isRetry
|
|
|
737
759
|
await allowRemoteContent("recipient", addr);
|
|
738
760
|
loadRemote();
|
|
739
761
|
});
|
|
740
|
-
//
|
|
741
|
-
// flaggedSenders / flaggedDomains lists
|
|
742
|
-
//
|
|
743
|
-
//
|
|
744
|
-
//
|
|
762
|
+
// Watch (or unwatch) sender / domain — toggles the allowlist's
|
|
763
|
+
// flaggedSenders / flaggedDomains lists (kept under the legacy
|
|
764
|
+
// JSONC field names for backwards compat; UI now uses "watch /
|
|
765
|
+
// suspicious" wording to disambiguate from the per-message ⚑/★
|
|
766
|
+
// marker which means the OPPOSITE — "important to me"). Future
|
|
767
|
+
// messages from this sender/domain show a ⚠ banner at the top
|
|
768
|
+
// of the viewer. Note: marking a single sender is unreliable
|
|
769
|
+
// because spammers rotate addresses — see TODO for rules.jsonc
|
|
770
|
+
// which will support pattern-based matching as a primary tool.
|
|
745
771
|
const onFlagToggle = async (type, value) => {
|
|
746
772
|
if (!value)
|
|
747
773
|
return;
|
|
@@ -750,8 +776,8 @@ export async function showMessage(accountId, uid, folderId, specialUse, isRetry
|
|
|
750
776
|
const status = document.getElementById("status-sync");
|
|
751
777
|
if (status)
|
|
752
778
|
status.textContent = result.flagged
|
|
753
|
-
? `
|
|
754
|
-
: `
|
|
779
|
+
? `Watching ${type}: ${value}`
|
|
780
|
+
: `Unwatched ${type}: ${value}`;
|
|
755
781
|
// Re-render this message so the banner picks up the new
|
|
756
782
|
// flagged state without the user having to reselect.
|
|
757
783
|
if (currentMessage) {
|
|
@@ -761,7 +787,7 @@ export async function showMessage(accountId, uid, folderId, specialUse, isRetry
|
|
|
761
787
|
catch (e) {
|
|
762
788
|
const status = document.getElementById("status-sync");
|
|
763
789
|
if (status)
|
|
764
|
-
status.textContent = `
|
|
790
|
+
status.textContent = `Watch failed: ${e?.message || e}`;
|
|
765
791
|
}
|
|
766
792
|
};
|
|
767
793
|
banner.querySelector("#btn-flag-sender")?.addEventListener("click", () => onFlagToggle("sender", senderAddr));
|
|
@@ -861,10 +887,17 @@ export async function showMessage(accountId, uid, folderId, specialUse, isRetry
|
|
|
861
887
|
attEl.hidden = false;
|
|
862
888
|
for (let i = 0; i < msg.attachments.length; i++) {
|
|
863
889
|
const att = msg.attachments[i];
|
|
864
|
-
|
|
890
|
+
// Button (not <a href="#">): the browser/WebView2 native
|
|
891
|
+
// context menu offered "Open in new window" which navigated
|
|
892
|
+
// to msger.localhost/index.html# and 404'd. Switching to a
|
|
893
|
+
// button removes that path; download happens via a
|
|
894
|
+
// programmatic <a download> click which is reliable across
|
|
895
|
+
// msger / WebView2 / Android WebView (window.open of a blob
|
|
896
|
+
// URL is silently blocked in some hosts).
|
|
897
|
+
const chip = document.createElement("button");
|
|
898
|
+
chip.type = "button";
|
|
865
899
|
chip.className = "mv-att-chip";
|
|
866
900
|
chip.textContent = `\uD83D\uDCCE ${att.filename} (${formatSize(att.size)})`;
|
|
867
|
-
chip.href = "#";
|
|
868
901
|
chip.title = `${att.filename} (${att.mimeType})`;
|
|
869
902
|
chip.addEventListener("click", async (e) => {
|
|
870
903
|
e.preventDefault();
|
|
@@ -881,7 +914,18 @@ export async function showMessage(accountId, uid, folderId, specialUse, isRetry
|
|
|
881
914
|
const bytes = Uint8Array.from(atob(data.content), c => c.charCodeAt(0));
|
|
882
915
|
const blob = new Blob([bytes], { type: data.contentType });
|
|
883
916
|
const url = URL.createObjectURL(blob);
|
|
884
|
-
|
|
917
|
+
// Programmatic anchor with `download` attribute \u2014
|
|
918
|
+
// works in WebView2/msger where window.open(blob:)
|
|
919
|
+
// is blocked. Browser handles "open vs save" based
|
|
920
|
+
// on user prefs and the file's MIME type.
|
|
921
|
+
const a = document.createElement("a");
|
|
922
|
+
a.href = url;
|
|
923
|
+
a.download = att.filename || "attachment";
|
|
924
|
+
a.style.display = "none";
|
|
925
|
+
document.body.appendChild(a);
|
|
926
|
+
a.click();
|
|
927
|
+
// Defer revoke until the download has had time to start.
|
|
928
|
+
setTimeout(() => { a.remove(); URL.revokeObjectURL(url); }, 5000);
|
|
885
929
|
}
|
|
886
930
|
}
|
|
887
931
|
catch (err) {
|