smart-web-mcp 0.4.4 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +43 -24
  3. package/dist/browser-session.d.ts +46 -0
  4. package/dist/browser-session.js +215 -0
  5. package/dist/browser-session.js.map +1 -0
  6. package/dist/index.js +57 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/shared.d.ts +27 -2
  9. package/dist/shared.js +54 -10
  10. package/dist/shared.js.map +1 -1
  11. package/dist/smartcrawl.d.ts +67 -0
  12. package/dist/smartcrawl.js +393 -0
  13. package/dist/smartcrawl.js.map +1 -0
  14. package/dist/smartfetch/archive-fallback.js +2 -2
  15. package/dist/smartfetch/archive-fallback.js.map +1 -1
  16. package/dist/smartfetch/provider-policy.js +24 -6
  17. package/dist/smartfetch/provider-policy.js.map +1 -1
  18. package/dist/smartfetch/provider-types.d.ts +1 -0
  19. package/dist/smartfetch/providers/dcinside.js +1 -1
  20. package/dist/smartfetch/providers/dcinside.js.map +1 -1
  21. package/dist/smartfetch/providers/hackernews.d.ts +2 -0
  22. package/dist/smartfetch/providers/hackernews.js +154 -0
  23. package/dist/smartfetch/providers/hackernews.js.map +1 -0
  24. package/dist/smartfetch/providers/index.js +3 -1
  25. package/dist/smartfetch/providers/index.js.map +1 -1
  26. package/dist/smartfetch/providers/naver-blog.js +1 -1
  27. package/dist/smartfetch/providers/naver-blog.js.map +1 -1
  28. package/dist/smartfetch/providers/naver-cafe.d.ts +2 -0
  29. package/dist/smartfetch/providers/naver-cafe.js +163 -0
  30. package/dist/smartfetch/providers/naver-cafe.js.map +1 -0
  31. package/dist/smartfetch/providers/x.js +3 -3
  32. package/dist/smartfetch/providers/x.js.map +1 -1
  33. package/dist/smartfetch/providers/youtube.js +20 -4
  34. package/dist/smartfetch/providers/youtube.js.map +1 -1
  35. package/dist/smartfetch-internals.d.ts +13 -0
  36. package/dist/smartfetch-internals.js +19 -0
  37. package/dist/smartfetch-internals.js.map +1 -0
  38. package/dist/smartfetch.d.ts +11 -1
  39. package/dist/smartfetch.js +104 -124
  40. package/dist/smartfetch.js.map +1 -1
  41. package/dist/smartsearch.d.ts +12 -1
  42. package/dist/smartsearch.js +198 -24
  43. package/dist/smartsearch.js.map +1 -1
  44. package/package.json +11 -5
@@ -1,14 +1,18 @@
1
- import { envEnabled, envFlag, fetchText, resolveDuckDuckGoUrl, stripTags, uniqueResults } from "./shared.js";
1
+ import { envEnabled, fetchText, resolveDuckDuckGoUrl, smartWebProfile, stripTags, uniqueResults } from "./shared.js";
2
+ import { runSmartcrawl } from "./smartcrawl.js";
2
3
  const DEFAULT_TIMEOUT_MS = 12000;
3
4
  const DEFAULT_USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36";
4
5
  function localOnlyMode() {
5
- return envFlag("SMART_WEB_LOCAL_ONLY");
6
+ return envEnabled("SMART_WEB_LOCAL_ONLY", false, { private: true });
7
+ }
8
+ function privateProfileMode() {
9
+ return smartWebProfile() === "private";
6
10
  }
7
11
  function exaEnabled() {
8
- return envEnabled("SMARTSEARCH_ENABLE_EXA", true);
12
+ return envEnabled("SMARTSEARCH_ENABLE_EXA", true, { private: false });
9
13
  }
10
14
  function braveEnabled() {
11
- return envEnabled("SMARTSEARCH_ENABLE_BRAVE", true);
15
+ return envEnabled("SMARTSEARCH_ENABLE_BRAVE", true, { private: false });
12
16
  }
13
17
  function searxngEnabled() {
14
18
  return envEnabled("SMARTSEARCH_ENABLE_SEARXNG", true);
@@ -27,6 +31,88 @@ function extractSiteOperator(query) {
27
31
  function stripSiteOperators(query) {
28
32
  return query.replace(/(?:^|\s)site:[^\s]+/gi, " ").replace(/\s+/g, " ").trim();
29
33
  }
34
+ function hostToRootUrl(host) {
35
+ if (!host)
36
+ return "";
37
+ const normalized = host.replace(/^https?:\/\//i, "").replace(/\/.*$/, "");
38
+ return normalized ? `https://${normalized}/` : "";
39
+ }
40
+ function inferCrawlMode(startUrl, requestedMode) {
41
+ if (requestedMode)
42
+ return requestedMode;
43
+ try {
44
+ const parsed = new URL(startUrl);
45
+ const host = parsed.hostname.toLowerCase();
46
+ const path = parsed.pathname.toLowerCase();
47
+ if (host.startsWith("docs.") || host.includes("readthedocs") || /\/(docs|guide|reference|manual|api)(?:\/|$)/.test(path))
48
+ return "docs";
49
+ if (host.startsWith("news.") || host.startsWith("forum.") || host.startsWith("discuss.") || /\/(c|category|forum|board|news)(?:\/|$)/.test(path))
50
+ return "board";
51
+ }
52
+ catch {
53
+ // Fall through to auto mode.
54
+ }
55
+ return "auto";
56
+ }
57
+ function buildSearchResponse(response, handoff) {
58
+ return handoff ? { ...response, handoff } : response;
59
+ }
60
+ async function maybeRunCrawlHandoff(response, options, runtime) {
61
+ if (!options.siteCrawl)
62
+ return buildSearchResponse(response);
63
+ const siteOperator = extractSiteOperator(options.query);
64
+ const startUrl = String(options.crawlUrl || hostToRootUrl(siteOperator)).trim();
65
+ if (!startUrl) {
66
+ return buildSearchResponse(response, {
67
+ tool: "smartcrawl",
68
+ performed: false,
69
+ reason: "site_crawl requested without crawlUrl or site: operator",
70
+ start_url: "",
71
+ query: stripSiteOperators(options.query),
72
+ mode: options.crawlMode || "auto",
73
+ items: [],
74
+ pages_attempted: 0,
75
+ pages_loaded: 0,
76
+ errors: [],
77
+ });
78
+ }
79
+ const crawlQuery = stripSiteOperators(options.query);
80
+ const mode = inferCrawlMode(startUrl, options.crawlMode);
81
+ const crawl = await (runtime.runSmartcrawl || runSmartcrawl)({
82
+ url: startUrl,
83
+ ...(crawlQuery ? { query: crawlQuery } : {}),
84
+ mode,
85
+ ...(options.crawlLimit === undefined ? {} : { limit: options.crawlLimit }),
86
+ ...(options.crawlMaxPages === undefined ? {} : { maxPages: options.crawlMaxPages }),
87
+ ...(options.crawlMaxDepth === undefined ? {} : { maxDepth: options.crawlMaxDepth }),
88
+ ...(options.crawlTimeoutMs === undefined ? {} : { timeoutMs: options.crawlTimeoutMs }),
89
+ });
90
+ const performed = crawl.evidence.pages_loaded > 0;
91
+ const reason = crawl.evidence.pages_loaded === 0
92
+ ? "site_crawl attempted but loaded no pages"
93
+ : crawl.partial
94
+ ? "site_crawl completed with partial results"
95
+ : "site_crawl completed";
96
+ return buildSearchResponse(response, {
97
+ tool: "smartcrawl",
98
+ performed,
99
+ reason,
100
+ start_url: startUrl,
101
+ query: crawlQuery,
102
+ mode,
103
+ items: crawl.items.map((item) => ({
104
+ title: item.title,
105
+ url: item.url,
106
+ snippet: item.snippet,
107
+ kind: item.kind,
108
+ score: item.score,
109
+ depth: item.depth,
110
+ })),
111
+ pages_attempted: crawl.evidence.pages_attempted,
112
+ pages_loaded: crawl.evidence.pages_loaded,
113
+ errors: crawl.errors.map((item) => `${item.code}: ${item.message}`),
114
+ });
115
+ }
30
116
  async function searchVelog(query, numResults, timeoutMs) {
31
117
  const keyword = stripSiteOperators(query) || query;
32
118
  const result = await fetchText("https://v2.velog.io/graphql", timeoutMs, {
@@ -92,6 +178,47 @@ async function searchStackExchange(query, numResults, timeoutMs) {
92
178
  return { ok: false, note: `StackExchange parse error: ${message}` };
93
179
  }
94
180
  }
181
+ async function searchHackerNews(query, numResults, timeoutMs) {
182
+ const q = stripSiteOperators(query) || query;
183
+ const result = await fetchText(`https://hn.algolia.com/api/v1/search?query=${encodeURIComponent(q)}&tags=story&hitsPerPage=${Math.min(numResults, 20)}`, timeoutMs, {
184
+ headers: {
185
+ accept: "application/json,text/plain,*/*",
186
+ "user-agent": DEFAULT_USER_AGENT,
187
+ },
188
+ });
189
+ if (!result.ok)
190
+ return { ok: false, note: result.error || `Hacker News error ${result.status}` };
191
+ try {
192
+ const data = result.text ? JSON.parse(result.text) : {};
193
+ const raw = Array.isArray(data?.hits) ? data.hits : [];
194
+ const results = uniqueResults(raw.map((item) => {
195
+ const objectId = String(item?.objectID || "").trim();
196
+ let linkedHost = "";
197
+ try {
198
+ linkedHost = item?.url ? new URL(String(item.url)).hostname.replace(/^www\./, "") : "";
199
+ }
200
+ catch {
201
+ linkedHost = "";
202
+ }
203
+ return {
204
+ title: String(item?.title || item?.story_title || `HN #${objectId}`).trim(),
205
+ url: objectId ? `https://news.ycombinator.com/item?id=${objectId}` : "",
206
+ snippet: [
207
+ item?.points ? `▲ ${item.points}` : "",
208
+ item?.author ? `by ${item.author}` : "",
209
+ item?.created_at ? String(item.created_at).slice(0, 10) : "",
210
+ linkedHost ? `→ ${linkedHost}` : "",
211
+ ].filter(Boolean).join(" · "),
212
+ engine: "hackernews",
213
+ };
214
+ }).filter((item) => item.url)).slice(0, numResults);
215
+ return { ok: results.length > 0, results, note: results.length > 0 ? "" : "Hacker News search returned no results" };
216
+ }
217
+ catch (error) {
218
+ const message = error instanceof Error ? error.message : String(error);
219
+ return { ok: false, note: `Hacker News parse error: ${message}` };
220
+ }
221
+ }
95
222
  function braveHtmlEnabled() {
96
223
  const defaultValue = !localOnlyMode();
97
224
  return envEnabled("SMARTSEARCH_ENABLE_BRAVE_HTML", defaultValue);
@@ -240,7 +367,7 @@ async function searchSearxng(baseUrl, query, numResults, timeoutMs) {
240
367
  return { ok: false, note: `SearXNG parse error: ${message}` };
241
368
  }
242
369
  }
243
- export async function runSmartsearch(options) {
370
+ export async function runSmartsearch(options, runtime = {}) {
244
371
  const query = options.query.trim();
245
372
  const numResults = Math.max(1, Math.min(20, Math.floor(Number(options.numResults || 8))));
246
373
  const searchType = options.searchType || "auto";
@@ -252,26 +379,49 @@ export async function runSmartsearch(options) {
252
379
  try {
253
380
  const siteOperator = extractSiteOperator(query);
254
381
  if (siteOperator === "velog.io") {
255
- const velog = await searchVelog(query, numResults, timeoutMs);
256
- fallbacks.push("velog");
257
- if (velog.ok)
258
- return { engine: "velog", query, results: velog.results, fallbacks_tried: fallbacks, notes };
259
- if (velog.note)
260
- notes.push(velog.note);
382
+ if (privateProfileMode()) {
383
+ notes.push("Velog site fallback disabled by private profile");
384
+ }
385
+ else {
386
+ const velog = await searchVelog(query, numResults, timeoutMs);
387
+ fallbacks.push("velog");
388
+ if (velog.ok)
389
+ return maybeRunCrawlHandoff({ engine: "velog", query, results: velog.results, fallbacks_tried: fallbacks, notes }, options, runtime);
390
+ if (velog.note)
391
+ notes.push(velog.note);
392
+ }
261
393
  }
262
394
  if (["stackoverflow.com", "superuser.com", "serverfault.com", "stackapps.com"].includes(siteOperator)) {
263
- const stackexchange = await searchStackExchange(query, numResults, timeoutMs);
264
- fallbacks.push("stackexchange");
265
- if (stackexchange.ok)
266
- return { engine: "stackexchange", query, results: stackexchange.results, fallbacks_tried: fallbacks, notes };
267
- if (stackexchange.note)
268
- notes.push(stackexchange.note);
395
+ if (privateProfileMode()) {
396
+ notes.push("StackExchange site fallback disabled by private profile");
397
+ }
398
+ else {
399
+ const stackexchange = await searchStackExchange(query, numResults, timeoutMs);
400
+ fallbacks.push("stackexchange");
401
+ if (stackexchange.ok)
402
+ return maybeRunCrawlHandoff({ engine: "stackexchange", query, results: stackexchange.results, fallbacks_tried: fallbacks, notes }, options, runtime);
403
+ if (stackexchange.note)
404
+ notes.push(stackexchange.note);
405
+ }
406
+ }
407
+ if (siteOperator === "news.ycombinator.com") {
408
+ if (privateProfileMode()) {
409
+ notes.push("Hacker News site fallback disabled by private profile");
410
+ }
411
+ else {
412
+ const hackernews = await searchHackerNews(query, numResults, timeoutMs);
413
+ fallbacks.push("hackernews");
414
+ if (hackernews.ok)
415
+ return maybeRunCrawlHandoff({ engine: "hackernews", query, results: hackernews.results, fallbacks_tried: fallbacks, notes }, options, runtime);
416
+ if (hackernews.note)
417
+ notes.push(hackernews.note);
418
+ }
269
419
  }
270
420
  if (exaEnabled()) {
271
421
  const exa = await searchExa(query, numResults, searchType, contextMaxCharacters, timeoutMs);
272
422
  fallbacks.push("exa");
273
423
  if (exa.ok)
274
- return { engine: "exa", query, results: exa.results, fallbacks_tried: fallbacks, notes };
424
+ return maybeRunCrawlHandoff({ engine: "exa", query, results: exa.results, fallbacks_tried: fallbacks, notes }, options, runtime);
275
425
  if (exa.note)
276
426
  notes.push(exa.note);
277
427
  }
@@ -282,7 +432,7 @@ export async function runSmartsearch(options) {
282
432
  const brave = await searchBrave(query, numResults, timeoutMs);
283
433
  fallbacks.push("brave");
284
434
  if (brave.ok)
285
- return { engine: "brave", query, results: brave.results, fallbacks_tried: fallbacks, notes };
435
+ return maybeRunCrawlHandoff({ engine: "brave", query, results: brave.results, fallbacks_tried: fallbacks, notes }, options, runtime);
286
436
  if (brave.note)
287
437
  notes.push(brave.note);
288
438
  }
@@ -293,7 +443,7 @@ export async function runSmartsearch(options) {
293
443
  const searxng = await searchSearxng(searxngBaseUrl, query, numResults, timeoutMs);
294
444
  fallbacks.push("searxng");
295
445
  if (searxng.ok)
296
- return { engine: "searxng", query, results: searxng.results, fallbacks_tried: fallbacks, notes };
446
+ return maybeRunCrawlHandoff({ engine: "searxng", query, results: searxng.results, fallbacks_tried: fallbacks, notes }, options, runtime);
297
447
  if (searxng.note)
298
448
  notes.push(searxng.note);
299
449
  }
@@ -304,7 +454,7 @@ export async function runSmartsearch(options) {
304
454
  const ddg = await searchDuckDuckGo(query, numResults, timeoutMs);
305
455
  fallbacks.push("duckduckgo");
306
456
  if (ddg.ok)
307
- return { engine: "duckduckgo", query, results: ddg.results, fallbacks_tried: fallbacks, notes };
457
+ return maybeRunCrawlHandoff({ engine: "duckduckgo", query, results: ddg.results, fallbacks_tried: fallbacks, notes }, options, runtime);
308
458
  if (ddg.note)
309
459
  notes.push(ddg.note);
310
460
  }
@@ -315,18 +465,18 @@ export async function runSmartsearch(options) {
315
465
  const braveHtml = await searchBraveHtml(query, numResults, timeoutMs);
316
466
  fallbacks.push("brave_html");
317
467
  if (braveHtml.ok)
318
- return { engine: "brave_html", query, results: braveHtml.results, fallbacks_tried: fallbacks, notes };
468
+ return maybeRunCrawlHandoff({ engine: "brave_html", query, results: braveHtml.results, fallbacks_tried: fallbacks, notes }, options, runtime);
319
469
  if (braveHtml.note)
320
470
  notes.push(braveHtml.note);
321
471
  }
322
472
  else {
323
473
  notes.push("Brave HTML disabled by configuration");
324
474
  }
325
- return { engine: "none", query, results: [], fallbacks_tried: fallbacks, notes };
475
+ return maybeRunCrawlHandoff({ engine: "none", query, results: [], fallbacks_tried: fallbacks, notes }, options, runtime);
326
476
  }
327
477
  catch (error) {
328
478
  const message = error instanceof Error ? error.message : String(error);
329
- return { engine: "error", query, results: [], fallbacks_tried: fallbacks, notes: [...notes, message] };
479
+ return maybeRunCrawlHandoff({ engine: "error", query, results: [], fallbacks_tried: fallbacks, notes: [...notes, message] }, options, runtime);
330
480
  }
331
481
  }
332
482
  export function renderSmartsearch(response) {
@@ -340,6 +490,30 @@ export function renderSmartsearch(response) {
340
490
  lines.push(item.snippet);
341
491
  parts.push(lines.join("\n"));
342
492
  });
493
+ if (response.handoff) {
494
+ const handoffLines = [
495
+ `Tool: ${response.handoff.tool}`,
496
+ `Performed: ${response.handoff.performed ? "yes" : "no"}`,
497
+ ];
498
+ if (response.handoff.start_url)
499
+ handoffLines.push(`Start URL: ${response.handoff.start_url}`);
500
+ if (response.handoff.query)
501
+ handoffLines.push(`Query: ${response.handoff.query}`);
502
+ handoffLines.push(`Mode: ${response.handoff.mode}`);
503
+ handoffLines.push(`Reason: ${response.handoff.reason}`);
504
+ if (response.handoff.performed) {
505
+ handoffLines.push(`Pages attempted: ${response.handoff.pages_attempted}`);
506
+ if (response.handoff.pages_loaded !== response.handoff.pages_attempted)
507
+ handoffLines.push(`Pages loaded: ${response.handoff.pages_loaded}`);
508
+ if (response.handoff.items.length > 0) {
509
+ handoffLines.push("Top crawl results:");
510
+ handoffLines.push(...response.handoff.items.slice(0, 3).map((item, index) => `${index + 1}. ${item.title || item.url} - ${item.url}`));
511
+ }
512
+ if (response.handoff.errors.length > 0)
513
+ handoffLines.push(...response.handoff.errors.map((item) => `- ${item}`));
514
+ }
515
+ parts.push(`Crawl handoff:\n${handoffLines.join("\n")}`);
516
+ }
343
517
  if (response.notes.length > 0)
344
518
  parts.push(`Notes:\n${response.notes.map((item) => `- ${item}`).join("\n")}`);
345
519
  return parts.join("\n\n").trim();
@@ -1 +1 @@
1
- {"version":3,"file":"smartsearch.js","sourceRoot":"","sources":["../src/smartsearch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smartsearch.js","sourceRoot":"","sources":["../src/smartsearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,UAAU,EAAE,SAAS,EAAE,oBAAoB,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACjK,OAAO,EAAkB,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAsB/D,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAChC,MAAM,kBAAkB,GAAG,iHAAiH,CAAA;AAE5I,SAAS,aAAa;IACpB,OAAO,UAAU,CAAC,sBAAsB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AACrE,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO,eAAe,EAAE,KAAK,SAAS,CAAA;AACxC,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,UAAU,CAAC,wBAAwB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;AACvE,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,UAAU,CAAC,0BAA0B,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,UAAU,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,CAAA;IACrC,OAAO,UAAU,CAAC,+BAA+B,EAAE,YAAY,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AAClD,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;IACnD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAClD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;AAChF,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IACpB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACzE,OAAO,UAAU,CAAC,CAAC,CAAC,WAAW,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;AACnD,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB,EAAE,aAA8B;IACtE,IAAI,aAAa;QAAE,OAAO,aAAa,CAAA;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;QAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,6CAA6C,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAA;QACvI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAA;IAClK,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAyC,EAAE,OAAuB;IAC7F,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;AACtD,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,QAAyC,EAAE,OAA2B,EAAE,OAA2B;IACrI,IAAI,CAAC,OAAO,CAAC,SAAS;QAAE,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAE5D,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC/E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,mBAAmB,CAAC,QAAQ,EAAE;YACnC,IAAI,EAAE,YAAY;YAClB,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,yDAAyD;YACjE,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC;YACxC,IAAI,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM;YACjC,KAAK,EAAE,EAAE;YACT,eAAe,EAAE,CAAC;YAClB,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,IAAI,aAAa,CAAC,CAAC;QAC3D,GAAG,EAAE,QAAQ;QACb,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,IAAI;QACJ,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1E,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;QACnF,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;QACnF,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;KACvF,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,KAAK,CAAC;QAC9C,CAAC,CAAC,0CAA0C;QAC5C,CAAC,CAAC,KAAK,CAAC,OAAO;YACb,CAAC,CAAC,2CAA2C;YAC7C,CAAC,CAAC,sBAAsB,CAAA;IAE5B,OAAO,mBAAmB,CAAC,QAAQ,EAAE;QACnC,IAAI,EAAE,YAAY;QAClB,SAAS;QACT,MAAM;QACN,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,UAAU;QACjB,IAAI;QACJ,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QACH,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,eAAe;QAC/C,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY;QACzC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;KACpE,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,UAAkB,EAAE,SAAiB;IAC7E,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAA;IAClD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,6BAA6B,EAAE,SAAS,EAAE;QACvE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,kBAAkB;SACjC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK,EAAE,0IAA0I;YACjJ,SAAS,EAAE,EAAE,OAAO,EAAE;SACvB,CAAC;KACH,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,sBAAsB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAA;IAE1G,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAE,IAAY,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAE,IAAY,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9G,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;YACpD,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACvC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;YAC7G,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACrD,MAAM,EAAE,OAAO;SACQ,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC,IAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAEzF,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kCAAkC,EAAE,CAAA;IAChH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,6BAA6B,OAAO,EAAE,EAAE,CAAA;IAC7E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,KAAa,EAAE,UAAkB,EAAE,SAAiB;IACrF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QACzC,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;YAChC,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC9B,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,eAAe,CAAA;IACvB,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAA;IAC5C,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,0DAA0D,kBAAkB,CAAC,IAAI,CAAC,MAAM,kBAAkB,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,4BAA4B,EAC9K,SAAS,EACT;QACE,OAAO,EAAE;YACP,MAAM,EAAE,iCAAiC;YACzC,YAAY,EAAE,kBAAkB;SACjC;KACF,CACF,CAAA;IAED,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,uBAAuB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAA;IAE3G,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAE,IAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAE,IAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1E,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;YACpD,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YAC3C,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACpC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACpD,MAAM,EAAE,eAAe;SACA,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC,IAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QACzF,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,0CAA0C,EAAE,CAAA;IACxH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,8BAA8B,OAAO,EAAE,EAAE,CAAA;IAC9E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,UAAkB,EAAE,SAAiB;IAClF,MAAM,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAA;IAC5C,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,8CAA8C,kBAAkB,CAAC,CAAC,CAAC,2BAA2B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,EACxH,SAAS,EACT;QACE,OAAO,EAAE;YACP,MAAM,EAAE,iCAAiC;YACzC,YAAY,EAAE,kBAAkB;SACjC;KACF,CACF,CAAA;IAED,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,qBAAqB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAA;IAEzG,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAE,IAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,IAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;QACxE,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;YAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YACpD,IAAI,UAAU,GAAG,EAAE,CAAA;YACnB,IAAI,CAAC;gBACH,UAAU,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACxF,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,GAAG,EAAE,CAAA;YACjB,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,WAAW,IAAI,OAAO,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE;gBAC3E,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;gBACvE,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;oBACtC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;oBACvC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC5D,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;iBACpC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC7B,MAAM,EAAE,YAAY;aACE,CAAA;QAC1B,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAEjE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wCAAwC,EAAE,CAAA;IACtH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,4BAA4B,OAAO,EAAE,EAAE,CAAA;IAC5E,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,CAAA;IACrC,OAAO,UAAU,CAAC,+BAA+B,EAAE,YAAY,CAAC,CAAA;AAClE,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,KAAa,EAAE,UAAkB,EAAE,UAAkB,EAAE,oBAA4B,EAAE,SAAiB;IAC7H,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAA;IAEvE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,2BAA2B,EAAE,SAAS,EAAE;QACrE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,MAAM;SACpB;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK;YACL,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;YACjD,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;YACpC,QAAQ,EAAE;gBACR,UAAU,EAAE;oBACV,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;iBACpE;aACF;SACF,CAAC;KACH,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,aAAa,MAAM,CAAC,MAAM,EAAE,EAAE,CAAA;IAEjG,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAE,IAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAE,IAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9E,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;YACpD,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACpD,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACnC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAC/G,MAAM,EAAE,KAAK;SACU,CAAA,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAEhD,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAA;IACvG,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,oBAAoB,OAAO,EAAE,EAAE,CAAA;IACpE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,UAAkB,EAAE,SAAiB;IAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA;IAC/C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAA;IAEhF,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,oDAAoD,kBAAkB,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,EACjH,SAAS,EACT;QACE,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,iBAAiB,EAAE,MAAM;YACzB,sBAAsB,EAAE,MAAM;SAC/B;KACF,CACF,CAAA;IAED,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,eAAe,MAAM,CAAC,MAAM,EAAE,EAAE,CAAA;IAEnG,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAE,IAAY,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAE,IAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;QACvF,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;YACpD,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACpD,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACnC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAC/C,MAAM,EAAE,OAAO;SACQ,CAAA,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAEhD,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAA;IACzG,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,sBAAsB,OAAO,EAAE,EAAE,CAAA;IACtE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,UAAkB,EAAE,SAAiB;IAClF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,uCAAuC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE;QAC5G,OAAO,EAAE;YACP,YAAY,EAAE,kBAAkB;SACjC;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,oBAAoB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAA;IAExG,IAAI,gDAAgD,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAA;IACvF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACtE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAA;QAC/F,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,sDAAsD,CAAC;eAC9E,KAAK,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAA;QAC5E,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAChC,OAAO;YACL,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACnC,GAAG,EAAE,oBAAoB,CAAC,MAAM,CAAC;YACjC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,EAAE,YAAY;SACE,CAAA;IAC1B,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IAEnD,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gCAAgC,EAAE,CAAA;AAC9G,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,KAAa,EAAE,UAAkB,EAAE,SAAiB;IACjF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,qCAAqC,kBAAkB,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE;QACrH,OAAO,EAAE;YACP,YAAY,EAAE,kBAAkB;YAChC,MAAM,EAAE,0BAA0B;SACnC;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,oBAAoB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAA;IAExG,MAAM,OAAO,GAAmB,EAAE,CAAA;IAClC,MAAM,KAAK,GAAG,qMAAqM,CAAA;IACnN,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAClC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,EAAE,YAAY;SACrB,CAAC,CAAA;QACF,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU;YAAE,MAAK;IACzC,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IAErC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gCAAgC,EAAE,CAAA;AACpH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,OAAe,EAAE,KAAa,EAAE,UAAkB,EAAE,SAAiB;IAChG,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,GAAG,cAAc,aAAa,kBAAkB,CAAC,KAAK,CAAC,yCAAyC,EAChG,SAAS,EACT;QACE,OAAO,EAAE;YACP,MAAM,EAAE,iCAAiC;YACzC,YAAY,EAAE,kBAAkB;SACjC;KACF,CACF,CAAA;IAED,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,iBAAiB,MAAM,CAAC,MAAM,EAAE,EAAE,CAAA;IAErG,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAE,IAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAE,IAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9E,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;YACpD,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACpD,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACnC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,WAAW,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAC9E,MAAM,EAAE,SAAS;SACM,CAAA,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QAEhD,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6BAA6B,EAAE,CAAA;IAC3G,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,OAAO,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,wBAAwB,OAAO,EAAE,EAAE,CAAA;IACxE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA2B,EAAE,UAA8B,EAAE;IAChG,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAA;IAC/C,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IACtG,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAA;IAC7F,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC5F,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC/C,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;YAChC,IAAI,kBAAkB,EAAE,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;YAC/D,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;gBAC7D,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACvB,IAAI,KAAK,CAAC,EAAE;oBAAE,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;gBAClJ,IAAI,KAAK,CAAC,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACtG,IAAI,kBAAkB,EAAE,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAA;YACvE,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;gBAC7E,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;gBAC/B,IAAI,aAAa,CAAC,EAAE;oBAAE,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;gBAC1K,IAAI,aAAa,CAAC,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;QAED,IAAI,YAAY,KAAK,sBAAsB,EAAE,CAAC;YAC5C,IAAI,kBAAkB,EAAE,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;YACrE,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;gBACvE,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;gBAC5B,IAAI,UAAU,CAAC,EAAE;oBAAE,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;gBACjK,IAAI,UAAU,CAAC,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;QAED,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAA;YAC3F,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACrB,IAAI,GAAG,CAAC,EAAE;gBAAE,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC5I,IAAI,GAAG,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;QAC7C,CAAC;QAED,IAAI,YAAY,EAAE,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;YAC7D,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACvB,IAAI,KAAK,CAAC,EAAE;gBAAE,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAClJ,IAAI,KAAK,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACxC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;QAC/C,CAAC;QAED,IAAI,cAAc,EAAE,IAAI,cAAc,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;YACjF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACzB,IAAI,OAAO,CAAC,EAAE;gBAAE,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YACxJ,IAAI,OAAO,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5C,CAAC;aAAM,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;QACjD,CAAC;QAED,IAAI,iBAAiB,EAAE,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;YAChE,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAC5B,IAAI,GAAG,CAAC,EAAE;gBAAE,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YACnJ,IAAI,GAAG,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,gBAAgB,EAAE,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;YACrE,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAC5B,IAAI,SAAS,CAAC,EAAE;gBAAE,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC/J,IAAI,SAAS,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAChD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;QACpD,CAAC;QAED,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAC1H,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtE,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAChJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAwB;IACxD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IACxC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAElE,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QACnE,IAAI,IAAI,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,YAAY,GAAG;YACnB,SAAS,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;YAChC,cAAc,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;SAC1D,CAAA;QACD,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS;YAAE,YAAY,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;QAC7F,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK;YAAE,YAAY,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;QACjF,YAAY,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QACnD,YAAY,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QACvD,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC/B,YAAY,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;YACzE,IAAI,QAAQ,CAAC,OAAO,CAAC,YAAY,KAAK,QAAQ,CAAC,OAAO,CAAC,eAAe;gBAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;YAC3I,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;gBACvC,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YACxI,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAA;QAClH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,mBAAmB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC5G,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;AAClC,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "smart-web-mcp",
3
3
  "mcpName": "io.github.rich-jojo/smart-web",
4
- "version": "0.4.4",
4
+ "version": "0.5.1",
5
5
  "packageManager": "npm@10.8.2",
6
- "description": "Portable MCP server that provides smart web search and browser-aware fetch tools.",
6
+ "description": "Portable MCP server that provides smart web search, fetch, and crawl tools.",
7
7
  "homepage": "https://github.com/rich-jojo/smart-web",
8
8
  "bugs": {
9
9
  "url": "https://github.com/rich-jojo/smart-web/issues"
@@ -15,6 +15,7 @@
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": "./dist/lib.js",
18
+ "./smartcrawl": "./dist/smartcrawl.js",
18
19
  "./smartfetch": "./dist/smartfetch.js",
19
20
  "./smartsearch": "./dist/smartsearch.js",
20
21
  "./shared": "./dist/shared.js"
@@ -31,20 +32,25 @@
31
32
  "scripts": {
32
33
  "build": "tsc -p tsconfig.json",
33
34
  "dev": "tsx src/index.ts",
34
- "test": "node --import tsx --test src/shared.test.ts src/assets.test.ts src/render.test.ts src/providers.test.ts src/provider-policy.test.ts src/archive-fallback.test.ts src/mcp.test.ts",
35
+ "typecheck": "tsc -p tsconfig.json --noEmit",
36
+ "test": "node --import tsx --test src/shared.test.ts src/assets.test.ts src/render.test.ts src/providers.test.ts src/smartcrawl.test.ts src/provider-policy.test.ts src/archive-fallback.test.ts src/mcp.test.ts",
35
37
  "check:meta": "node scripts/check-metadata.mjs",
36
38
  "check": "npm run build && npm run check:meta && npm run test",
37
- "prepare": "npm run build"
39
+ "hooks:install": "node scripts/install-git-hooks.mjs",
40
+ "prepare": "npm run build && npm run hooks:install"
38
41
  },
39
42
  "keywords": [
40
43
  "mcp",
41
44
  "web-search",
42
45
  "web-fetch",
46
+ "web-crawl",
43
47
  "claude-code",
44
48
  "opencode",
45
49
  "youtube",
50
+ "crawler",
46
51
  "smartfetch",
47
- "smartsearch"
52
+ "smartsearch",
53
+ "smartcrawl"
48
54
  ],
49
55
  "author": "rich-jojo",
50
56
  "license": "MIT",