@get-technology-inc/jamf-docs-mcp-server 1.5.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{completions.d.ts → core/completions.d.ts} +3 -1
- package/dist/core/completions.d.ts.map +1 -0
- package/dist/{completions.js → core/completions.js} +5 -4
- package/dist/core/completions.js.map +1 -0
- package/dist/core/config.d.ts +56 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +59 -0
- package/dist/core/config.js.map +1 -0
- package/dist/{constants.d.ts → core/constants.d.ts} +3 -19
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/{constants.js → core/constants.js} +6 -86
- package/dist/core/constants.js.map +1 -0
- package/dist/core/create-server.d.ts +17 -0
- package/dist/core/create-server.d.ts.map +1 -0
- package/dist/core/create-server.js +70 -0
- package/dist/core/create-server.js.map +1 -0
- package/dist/core/http-client.d.ts +19 -0
- package/dist/core/http-client.d.ts.map +1 -0
- package/dist/core/http-client.js +62 -0
- package/dist/core/http-client.js.map +1 -0
- package/dist/core/index.d.ts +25 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +29 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/prompts/compare-versions.d.ts.map +1 -0
- package/dist/core/prompts/compare-versions.js.map +1 -0
- package/dist/core/prompts/index.d.ts.map +1 -0
- package/dist/core/prompts/index.js.map +1 -0
- package/dist/core/prompts/setup-guide.d.ts.map +1 -0
- package/dist/core/prompts/setup-guide.js.map +1 -0
- package/dist/core/prompts/troubleshoot.d.ts.map +1 -0
- package/dist/core/prompts/troubleshoot.js.map +1 -0
- package/dist/{resources → core/resources}/index.d.ts +2 -1
- package/dist/core/resources/index.d.ts.map +1 -0
- package/dist/{resources → core/resources}/index.js +6 -7
- package/dist/core/resources/index.js.map +1 -0
- package/dist/core/schemas/index.d.ts.map +1 -0
- package/dist/core/schemas/index.js.map +1 -0
- package/dist/core/schemas/output.d.ts.map +1 -0
- package/dist/core/schemas/output.js.map +1 -0
- package/dist/core/services/cache.d.ts +16 -0
- package/dist/core/services/cache.d.ts.map +1 -0
- package/dist/core/services/cache.js +16 -0
- package/dist/core/services/cache.js.map +1 -0
- package/dist/{services → core/services}/glossary.d.ts +2 -1
- package/dist/core/services/glossary.d.ts.map +1 -0
- package/dist/{services → core/services}/glossary.js +10 -11
- package/dist/core/services/glossary.js.map +1 -0
- package/dist/core/services/interfaces.d.ts +94 -0
- package/dist/core/services/interfaces.d.ts.map +1 -0
- package/dist/core/services/interfaces.js +8 -0
- package/dist/core/services/interfaces.js.map +1 -0
- package/dist/core/services/logging.d.ts.map +1 -0
- package/dist/core/services/logging.js.map +1 -0
- package/dist/{services → core/services}/metadata.d.ts +8 -7
- package/dist/core/services/metadata.d.ts.map +1 -0
- package/dist/{services → core/services}/metadata.js +43 -39
- package/dist/core/services/metadata.js.map +1 -0
- package/dist/{services → core/services}/scraper.d.ts +9 -4
- package/dist/core/services/scraper.d.ts.map +1 -0
- package/dist/{services → core/services}/scraper.js +77 -49
- package/dist/core/services/scraper.js.map +1 -0
- package/dist/core/services/search-suggestions.d.ts.map +1 -0
- package/dist/core/services/search-suggestions.js.map +1 -0
- package/dist/core/services/tokenizer.d.ts.map +1 -0
- package/dist/core/services/tokenizer.js.map +1 -0
- package/dist/{tools → core/tools}/batch-get-articles.d.ts +2 -1
- package/dist/core/tools/batch-get-articles.d.ts.map +1 -0
- package/dist/{tools → core/tools}/batch-get-articles.js +2 -2
- package/dist/core/tools/batch-get-articles.js.map +1 -0
- package/dist/{tools → core/tools}/get-article.d.ts +2 -1
- package/dist/core/tools/get-article.d.ts.map +1 -0
- package/dist/{tools → core/tools}/get-article.js +2 -2
- package/dist/core/tools/get-article.js.map +1 -0
- package/dist/core/tools/get-toc.d.ts +8 -0
- package/dist/core/tools/get-toc.d.ts.map +1 -0
- package/dist/{tools → core/tools}/get-toc.js +3 -3
- package/dist/core/tools/get-toc.js.map +1 -0
- package/dist/{tools → core/tools}/glossary-lookup.d.ts +2 -1
- package/dist/core/tools/glossary-lookup.d.ts.map +1 -0
- package/dist/{tools → core/tools}/glossary-lookup.js +2 -2
- package/dist/core/tools/glossary-lookup.js.map +1 -0
- package/dist/{tools → core/tools}/list-products.d.ts +2 -1
- package/dist/core/tools/list-products.d.ts.map +1 -0
- package/dist/{tools → core/tools}/list-products.js +2 -2
- package/dist/core/tools/list-products.js.map +1 -0
- package/dist/core/tools/search.d.ts +8 -0
- package/dist/core/tools/search.d.ts.map +1 -0
- package/dist/{tools → core/tools}/search.js +2 -2
- package/dist/core/tools/search.js.map +1 -0
- package/dist/core/types/context.d.ts +15 -0
- package/dist/core/types/context.d.ts.map +1 -0
- package/dist/core/types/context.js +8 -0
- package/dist/core/types/context.js.map +1 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/utils/bundle.d.ts.map +1 -0
- package/dist/core/utils/bundle.js.map +1 -0
- package/dist/core/utils/concurrency.d.ts.map +1 -0
- package/dist/core/utils/concurrency.js.map +1 -0
- package/dist/core/utils/doc-type.d.ts.map +1 -0
- package/dist/core/utils/doc-type.js.map +1 -0
- package/dist/core/utils/progress.d.ts.map +1 -0
- package/dist/core/utils/progress.js.map +1 -0
- package/dist/core/utils/sanitize.d.ts.map +1 -0
- package/dist/core/utils/sanitize.js.map +1 -0
- package/dist/core/utils/url.d.ts.map +1 -0
- package/dist/core/utils/url.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +26 -58
- package/dist/index.js.map +1 -1
- package/dist/{services → platforms/node}/cache.d.ts +17 -13
- package/dist/platforms/node/cache.d.ts.map +1 -0
- package/dist/{services → platforms/node}/cache.js +20 -18
- package/dist/platforms/node/cache.js.map +1 -0
- package/dist/platforms/node/config.d.ts +14 -0
- package/dist/platforms/node/config.d.ts.map +1 -0
- package/dist/platforms/node/config.js +99 -0
- package/dist/platforms/node/config.js.map +1 -0
- package/dist/platforms/node/index.d.ts +8 -0
- package/dist/platforms/node/index.d.ts.map +1 -0
- package/dist/platforms/node/index.js +8 -0
- package/dist/platforms/node/index.js.map +1 -0
- package/dist/platforms/node/logger.d.ts +12 -0
- package/dist/platforms/node/logger.d.ts.map +1 -0
- package/dist/platforms/node/logger.js +15 -0
- package/dist/platforms/node/logger.js.map +1 -0
- package/dist/platforms/node/metadata.d.ts +18 -0
- package/dist/platforms/node/metadata.d.ts.map +1 -0
- package/dist/platforms/node/metadata.js +35 -0
- package/dist/platforms/node/metadata.js.map +1 -0
- package/dist/transport/http.d.ts.map +1 -1
- package/dist/transport/http.js +3 -2
- package/dist/transport/http.js.map +1 -1
- package/dist/transport/index.js +1 -1
- package/dist/transport/index.js.map +1 -1
- package/package.json +22 -4
- package/dist/completions.d.ts.map +0 -1
- package/dist/completions.js.map +0 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/prompts/compare-versions.d.ts.map +0 -1
- package/dist/prompts/compare-versions.js.map +0 -1
- package/dist/prompts/index.d.ts.map +0 -1
- package/dist/prompts/index.js.map +0 -1
- package/dist/prompts/setup-guide.d.ts.map +0 -1
- package/dist/prompts/setup-guide.js.map +0 -1
- package/dist/prompts/troubleshoot.d.ts.map +0 -1
- package/dist/prompts/troubleshoot.js.map +0 -1
- package/dist/resources/index.d.ts.map +0 -1
- package/dist/resources/index.js.map +0 -1
- package/dist/schemas/index.d.ts.map +0 -1
- package/dist/schemas/index.js.map +0 -1
- package/dist/schemas/output.d.ts.map +0 -1
- package/dist/schemas/output.js.map +0 -1
- package/dist/services/cache.d.ts.map +0 -1
- package/dist/services/cache.js.map +0 -1
- package/dist/services/glossary.d.ts.map +0 -1
- package/dist/services/glossary.js.map +0 -1
- package/dist/services/logging.d.ts.map +0 -1
- package/dist/services/logging.js.map +0 -1
- package/dist/services/metadata.d.ts.map +0 -1
- package/dist/services/metadata.js.map +0 -1
- package/dist/services/scraper.d.ts.map +0 -1
- package/dist/services/scraper.js.map +0 -1
- package/dist/services/search-suggestions.d.ts.map +0 -1
- package/dist/services/search-suggestions.js.map +0 -1
- package/dist/services/tokenizer.d.ts.map +0 -1
- package/dist/services/tokenizer.js.map +0 -1
- package/dist/tools/batch-get-articles.d.ts.map +0 -1
- package/dist/tools/batch-get-articles.js.map +0 -1
- package/dist/tools/get-article.d.ts.map +0 -1
- package/dist/tools/get-article.js.map +0 -1
- package/dist/tools/get-toc.d.ts +0 -7
- package/dist/tools/get-toc.d.ts.map +0 -1
- package/dist/tools/get-toc.js.map +0 -1
- package/dist/tools/glossary-lookup.d.ts.map +0 -1
- package/dist/tools/glossary-lookup.js.map +0 -1
- package/dist/tools/list-products.d.ts.map +0 -1
- package/dist/tools/list-products.js.map +0 -1
- package/dist/tools/search.d.ts +0 -7
- package/dist/tools/search.d.ts.map +0 -1
- package/dist/tools/search.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils/bundle.d.ts.map +0 -1
- package/dist/utils/bundle.js.map +0 -1
- package/dist/utils/concurrency.d.ts.map +0 -1
- package/dist/utils/concurrency.js.map +0 -1
- package/dist/utils/doc-type.d.ts.map +0 -1
- package/dist/utils/doc-type.js.map +0 -1
- package/dist/utils/progress.d.ts.map +0 -1
- package/dist/utils/progress.js.map +0 -1
- package/dist/utils/sanitize.d.ts.map +0 -1
- package/dist/utils/sanitize.js.map +0 -1
- package/dist/utils/url.d.ts.map +0 -1
- package/dist/utils/url.js.map +0 -1
- /package/dist/{prompts → core/prompts}/compare-versions.d.ts +0 -0
- /package/dist/{prompts → core/prompts}/compare-versions.js +0 -0
- /package/dist/{prompts → core/prompts}/index.d.ts +0 -0
- /package/dist/{prompts → core/prompts}/index.js +0 -0
- /package/dist/{prompts → core/prompts}/setup-guide.d.ts +0 -0
- /package/dist/{prompts → core/prompts}/setup-guide.js +0 -0
- /package/dist/{prompts → core/prompts}/troubleshoot.d.ts +0 -0
- /package/dist/{prompts → core/prompts}/troubleshoot.js +0 -0
- /package/dist/{schemas → core/schemas}/index.d.ts +0 -0
- /package/dist/{schemas → core/schemas}/index.js +0 -0
- /package/dist/{schemas → core/schemas}/output.d.ts +0 -0
- /package/dist/{schemas → core/schemas}/output.js +0 -0
- /package/dist/{services → core/services}/logging.d.ts +0 -0
- /package/dist/{services → core/services}/logging.js +0 -0
- /package/dist/{services → core/services}/search-suggestions.d.ts +0 -0
- /package/dist/{services → core/services}/search-suggestions.js +0 -0
- /package/dist/{services → core/services}/tokenizer.d.ts +0 -0
- /package/dist/{services → core/services}/tokenizer.js +0 -0
- /package/dist/{types.d.ts → core/types.d.ts} +0 -0
- /package/dist/{types.js → core/types.js} +0 -0
- /package/dist/{utils → core/utils}/bundle.d.ts +0 -0
- /package/dist/{utils → core/utils}/bundle.js +0 -0
- /package/dist/{utils → core/utils}/concurrency.d.ts +0 -0
- /package/dist/{utils → core/utils}/concurrency.js +0 -0
- /package/dist/{utils → core/utils}/doc-type.d.ts +0 -0
- /package/dist/{utils → core/utils}/doc-type.js +0 -0
- /package/dist/{utils → core/utils}/progress.d.ts +0 -0
- /package/dist/{utils → core/utils}/progress.js +0 -0
- /package/dist/{utils → core/utils}/sanitize.d.ts +0 -0
- /package/dist/{utils → core/utils}/sanitize.js +0 -0
- /package/dist/{utils → core/utils}/url.d.ts +0 -0
- /package/dist/{utils → core/utils}/url.js +0 -0
|
@@ -4,30 +4,27 @@
|
|
|
4
4
|
* Dynamically fetches product versions and topic categories from the API
|
|
5
5
|
* with fallback to static constants.
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
7
|
+
import { httpGetJson } from '../http-client.js';
|
|
8
8
|
import * as cheerio from 'cheerio';
|
|
9
|
-
import { DOCS_API_URL, JAMF_PRODUCTS, JAMF_TOPICS
|
|
9
|
+
import { DOCS_API_URL, JAMF_PRODUCTS, JAMF_TOPICS } from '../constants.js';
|
|
10
10
|
import { extractVersionFromBundleId } from '../utils/bundle.js';
|
|
11
|
-
import { cache } from './cache.js';
|
|
12
|
-
import { createLogger } from './logging.js';
|
|
13
|
-
const log = createLogger('metadata');
|
|
14
11
|
// ============================================================================
|
|
15
12
|
// API Helpers
|
|
16
13
|
// ============================================================================
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
14
|
+
function makeFetchJson(requestConfig) {
|
|
15
|
+
return async (url) => {
|
|
16
|
+
return await httpGetJson(url, {
|
|
17
|
+
timeout: requestConfig.timeout,
|
|
18
|
+
headers: {
|
|
19
|
+
'User-Agent': requestConfig.userAgent
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
};
|
|
26
23
|
}
|
|
27
24
|
/**
|
|
28
25
|
* Discover all available versions for a product
|
|
29
26
|
*/
|
|
30
|
-
async function discoverProductVersions(productId) {
|
|
27
|
+
async function discoverProductVersions(productId, fetchJson, log) {
|
|
31
28
|
const product = JAMF_PRODUCTS[productId];
|
|
32
29
|
const versions = new Set();
|
|
33
30
|
try {
|
|
@@ -69,11 +66,11 @@ async function discoverProductVersions(productId) {
|
|
|
69
66
|
/**
|
|
70
67
|
* Fetch latest version and metadata for a product from the API
|
|
71
68
|
*/
|
|
72
|
-
async function fetchProductMetadata(productId) {
|
|
69
|
+
async function fetchProductMetadata(productId, fetchJson, log) {
|
|
73
70
|
const product = JAMF_PRODUCTS[productId];
|
|
74
71
|
try {
|
|
75
72
|
// Discover all available versions
|
|
76
|
-
const availableVersions = await discoverProductVersions(productId);
|
|
73
|
+
const availableVersions = await discoverProductVersions(productId, fetchJson, log);
|
|
77
74
|
// Search for a doc from this product to get the bundle ID and labels
|
|
78
75
|
const apiUrl = `${DOCS_API_URL}/api/search?q=${encodeURIComponent(product.name)}&rpp=5`;
|
|
79
76
|
const response = await fetchJson(apiUrl);
|
|
@@ -108,10 +105,12 @@ async function fetchProductMetadata(productId) {
|
|
|
108
105
|
* Get all products with their latest metadata
|
|
109
106
|
* Uses cache with fallback to static constants
|
|
110
107
|
*/
|
|
111
|
-
export async function getProductsMetadata() {
|
|
108
|
+
export async function getProductsMetadata(ctx) {
|
|
109
|
+
const log = ctx.logger.createLogger('metadata');
|
|
110
|
+
const fetchJson = makeFetchJson(ctx.config.request);
|
|
112
111
|
const cacheKey = 'metadata:products';
|
|
113
112
|
// Check cache
|
|
114
|
-
const cached = await cache.get(cacheKey);
|
|
113
|
+
const cached = await ctx.cache.get(cacheKey);
|
|
115
114
|
if (cached !== null) {
|
|
116
115
|
return cached;
|
|
117
116
|
}
|
|
@@ -119,7 +118,7 @@ export async function getProductsMetadata() {
|
|
|
119
118
|
const productIds = Object.keys(JAMF_PRODUCTS);
|
|
120
119
|
const fetchResults = await Promise.all(productIds.map(async (productId) => {
|
|
121
120
|
try {
|
|
122
|
-
const metadata = await fetchProductMetadata(productId);
|
|
121
|
+
const metadata = await fetchProductMetadata(productId, fetchJson, log);
|
|
123
122
|
return { productId, metadata };
|
|
124
123
|
}
|
|
125
124
|
catch (error) {
|
|
@@ -147,15 +146,16 @@ export async function getProductsMetadata() {
|
|
|
147
146
|
}
|
|
148
147
|
}
|
|
149
148
|
// Cache for 24 hours
|
|
150
|
-
await cache.set(cacheKey, products,
|
|
149
|
+
await ctx.cache.set(cacheKey, products, ctx.config.cacheTtl.article);
|
|
151
150
|
return products;
|
|
152
151
|
}
|
|
153
152
|
/**
|
|
154
153
|
* Get the bundle ID for a specific product and version
|
|
155
154
|
* Returns the latest bundle ID if version is undefined or 'current'
|
|
156
155
|
*/
|
|
157
|
-
export async function getBundleIdForVersion(productId, version) {
|
|
158
|
-
const
|
|
156
|
+
export async function getBundleIdForVersion(ctx, productId, version) {
|
|
157
|
+
const log = ctx.logger.createLogger('metadata');
|
|
158
|
+
const products = await getProductsMetadata(ctx);
|
|
159
159
|
const product = products.find(p => p.id === productId);
|
|
160
160
|
if (product === undefined) {
|
|
161
161
|
return null;
|
|
@@ -176,8 +176,8 @@ export async function getBundleIdForVersion(productId, version) {
|
|
|
176
176
|
/**
|
|
177
177
|
* Get available versions for a product
|
|
178
178
|
*/
|
|
179
|
-
export async function getAvailableVersions(productId) {
|
|
180
|
-
const products = await getProductsMetadata();
|
|
179
|
+
export async function getAvailableVersions(ctx, productId) {
|
|
180
|
+
const products = await getProductsMetadata(ctx);
|
|
181
181
|
const product = products.find(p => p.id === productId);
|
|
182
182
|
return product?.availableVersions ?? [];
|
|
183
183
|
}
|
|
@@ -238,10 +238,10 @@ function categoryToTopicId(title) {
|
|
|
238
238
|
/**
|
|
239
239
|
* Fetch topic categories from TOC for a product
|
|
240
240
|
*/
|
|
241
|
-
async function fetchTopicCategories(productId) {
|
|
241
|
+
async function fetchTopicCategories(productId, ctx, fetchJson, log) {
|
|
242
242
|
try {
|
|
243
243
|
// First get the latest bundle ID
|
|
244
|
-
const products = await getProductsMetadata();
|
|
244
|
+
const products = await getProductsMetadata(ctx);
|
|
245
245
|
const product = products.find(p => p.id === productId);
|
|
246
246
|
if (product === undefined) {
|
|
247
247
|
return [];
|
|
@@ -280,10 +280,12 @@ function upsertTopic(topicsMap, category) {
|
|
|
280
280
|
/**
|
|
281
281
|
* Get all topics, combining TOC-derived from all products and manual topics
|
|
282
282
|
*/
|
|
283
|
-
export async function getTopicsMetadata() {
|
|
283
|
+
export async function getTopicsMetadata(ctx) {
|
|
284
|
+
const log = ctx.logger.createLogger('metadata');
|
|
285
|
+
const fetchJson = makeFetchJson(ctx.config.request);
|
|
284
286
|
const cacheKey = 'metadata:topics';
|
|
285
287
|
// Check cache
|
|
286
|
-
const cached = await cache.get(cacheKey);
|
|
288
|
+
const cached = await ctx.cache.get(cacheKey);
|
|
287
289
|
if (cached !== null) {
|
|
288
290
|
return cached;
|
|
289
291
|
}
|
|
@@ -300,7 +302,7 @@ export async function getTopicsMetadata() {
|
|
|
300
302
|
const productIds = Object.keys(JAMF_PRODUCTS);
|
|
301
303
|
const tocResults = await Promise.all(productIds.map(async (productId) => {
|
|
302
304
|
try {
|
|
303
|
-
const categories = await fetchTopicCategories(productId);
|
|
305
|
+
const categories = await fetchTopicCategories(productId, ctx, fetchJson, log);
|
|
304
306
|
return { productId, categories };
|
|
305
307
|
}
|
|
306
308
|
catch (error) {
|
|
@@ -315,7 +317,7 @@ export async function getTopicsMetadata() {
|
|
|
315
317
|
}
|
|
316
318
|
const topics = Array.from(topicsMap.values());
|
|
317
319
|
// Cache for 24 hours
|
|
318
|
-
await cache.set(cacheKey, topics,
|
|
320
|
+
await ctx.cache.set(cacheKey, topics, ctx.config.cacheTtl.article);
|
|
319
321
|
return topics;
|
|
320
322
|
}
|
|
321
323
|
// ============================================================================
|
|
@@ -324,9 +326,11 @@ export async function getTopicsMetadata() {
|
|
|
324
326
|
/**
|
|
325
327
|
* Check which products have TOC content available
|
|
326
328
|
*/
|
|
327
|
-
export async function getProductAvailability() {
|
|
329
|
+
export async function getProductAvailability(ctx) {
|
|
330
|
+
const log = ctx.logger.createLogger('metadata');
|
|
331
|
+
const fetchJson = makeFetchJson(ctx.config.request);
|
|
328
332
|
const cacheKey = 'metadata:product-availability';
|
|
329
|
-
const cached = await cache.get(cacheKey);
|
|
333
|
+
const cached = await ctx.cache.get(cacheKey);
|
|
330
334
|
if (cached !== null) {
|
|
331
335
|
return cached;
|
|
332
336
|
}
|
|
@@ -334,7 +338,7 @@ export async function getProductAvailability() {
|
|
|
334
338
|
const productIds = Object.keys(JAMF_PRODUCTS);
|
|
335
339
|
const results = await Promise.all(productIds.map(async (productId) => {
|
|
336
340
|
try {
|
|
337
|
-
const categories = await fetchTopicCategories(productId);
|
|
341
|
+
const categories = await fetchTopicCategories(productId, ctx, fetchJson, log);
|
|
338
342
|
return { productId, hasContent: categories.length > 0 };
|
|
339
343
|
}
|
|
340
344
|
catch {
|
|
@@ -345,7 +349,7 @@ export async function getProductAvailability() {
|
|
|
345
349
|
availability[productId] = hasContent;
|
|
346
350
|
}
|
|
347
351
|
// Cache for 1 hour
|
|
348
|
-
await cache.set(cacheKey, availability, 60 * 60 * 1000);
|
|
352
|
+
await ctx.cache.set(cacheKey, availability, 60 * 60 * 1000);
|
|
349
353
|
return availability;
|
|
350
354
|
}
|
|
351
355
|
// ============================================================================
|
|
@@ -354,8 +358,8 @@ export async function getProductAvailability() {
|
|
|
354
358
|
/**
|
|
355
359
|
* Get products data formatted for resource response
|
|
356
360
|
*/
|
|
357
|
-
export async function getProductsResourceData() {
|
|
358
|
-
const products = await getProductsMetadata();
|
|
361
|
+
export async function getProductsResourceData(ctx) {
|
|
362
|
+
const products = await getProductsMetadata(ctx);
|
|
359
363
|
return {
|
|
360
364
|
description: 'Available Jamf products for documentation search',
|
|
361
365
|
products: products.map(p => ({
|
|
@@ -373,8 +377,8 @@ export async function getProductsResourceData() {
|
|
|
373
377
|
/**
|
|
374
378
|
* Get topics data formatted for resource response
|
|
375
379
|
*/
|
|
376
|
-
export async function getTopicsResourceData() {
|
|
377
|
-
const topics = await getTopicsMetadata();
|
|
380
|
+
export async function getTopicsResourceData(ctx) {
|
|
381
|
+
const topics = await getTopicsMetadata(ctx);
|
|
378
382
|
return {
|
|
379
383
|
description: 'Topic categories for filtering Jamf documentation searches',
|
|
380
384
|
totalTopics: topics.length,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/core/services/metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { type ProductId, type LocaleId } from '../constants.js';
|
|
8
8
|
import { type SearchResult, type ParsedArticle, type TocEntry, type SearchParams, type TokenInfo, type PaginationInfo, type ArticleSection, type FilterRelaxation, type TruncatedContentInfo } from '../types.js';
|
|
9
|
+
import type { ServerContext } from '../types/context.js';
|
|
9
10
|
export { ALLOWED_HOSTNAMES, isAllowedHostname } from '../utils/url.js';
|
|
10
11
|
/**
|
|
11
12
|
* Strip locale prefix (e.g. /en-US/, /ja-JP/) from URL path.
|
|
@@ -23,7 +24,11 @@ export declare function cleanSnippet(snippet: string, title: string, product: st
|
|
|
23
24
|
* Build Accept-Language header value for a given locale
|
|
24
25
|
*/
|
|
25
26
|
export declare function buildAcceptLanguage(locale: string): string;
|
|
26
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Fetch HTML from a URL with error handling.
|
|
29
|
+
* Requires a ServerContext for request configuration.
|
|
30
|
+
*/
|
|
31
|
+
export declare function fetchHtml(ctx: ServerContext, url: string, locale?: string): Promise<string>;
|
|
27
32
|
/**
|
|
28
33
|
* Search response with token and pagination info
|
|
29
34
|
*/
|
|
@@ -38,7 +43,7 @@ export interface SearchDocumentationResult {
|
|
|
38
43
|
/**
|
|
39
44
|
* Search Jamf documentation using Zoomin Search API
|
|
40
45
|
*/
|
|
41
|
-
export declare function searchDocumentation(params: SearchParams): Promise<SearchDocumentationResult>;
|
|
46
|
+
export declare function searchDocumentation(ctx: ServerContext, params: SearchParams): Promise<SearchDocumentationResult>;
|
|
42
47
|
/**
|
|
43
48
|
* Options for fetching articles
|
|
44
49
|
*/
|
|
@@ -60,7 +65,7 @@ export interface FetchArticleResult extends ParsedArticle {
|
|
|
60
65
|
* Fetch and parse a documentation article
|
|
61
66
|
* Uses backend URL (learn-be.jamf.com) for pre-rendered content
|
|
62
67
|
*/
|
|
63
|
-
export declare function fetchArticle(url: string, options?: FetchArticleOptions): Promise<FetchArticleResult>;
|
|
68
|
+
export declare function fetchArticle(ctx: ServerContext, url: string, options?: FetchArticleOptions): Promise<FetchArticleResult>;
|
|
64
69
|
/**
|
|
65
70
|
* Options for fetching table of contents
|
|
66
71
|
*/
|
|
@@ -81,5 +86,5 @@ export interface FetchTocResult {
|
|
|
81
86
|
* Fetch table of contents for a product
|
|
82
87
|
* Uses backend TOC endpoint (learn-be.jamf.com/bundle/{bundleId}/toc)
|
|
83
88
|
*/
|
|
84
|
-
export declare function fetchTableOfContents(product: ProductId, version?: string, options?: FetchTocOptions): Promise<FetchTocResult>;
|
|
89
|
+
export declare function fetchTableOfContents(ctx: ServerContext, product: ProductId, version?: string, options?: FetchTocOptions): Promise<FetchTocResult>;
|
|
85
90
|
//# sourceMappingURL=scraper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scraper.d.ts","sourceRoot":"","sources":["../../../src/core/services/scraper.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,20 +4,17 @@
|
|
|
4
4
|
* This module handles fetching and parsing HTML from learn.jamf.com
|
|
5
5
|
* (Jamf documentation has moved from docs.jamf.com to learn.jamf.com)
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
7
|
+
import { httpGetText, httpGetJson, HttpError } from '../http-client.js';
|
|
8
8
|
import * as cheerio from 'cheerio';
|
|
9
9
|
import { sanitizeErrorMessage } from '../utils/sanitize.js';
|
|
10
10
|
import { isAllowedHostname, extractLocaleFromUrl } from '../utils/url.js';
|
|
11
11
|
import TurndownService from 'turndown';
|
|
12
|
-
import { DOCS_BASE_URL, DOCS_API_URL, JAMF_PRODUCTS, JAMF_TOPICS, DOC_TYPE_LABEL_MAP,
|
|
12
|
+
import { DOCS_BASE_URL, DOCS_API_URL, JAMF_PRODUCTS, JAMF_TOPICS, DOC_TYPE_LABEL_MAP, SELECTORS, CONTENT_LIMITS, TOKEN_CONFIG, PAGINATION_CONFIG, DEFAULT_LOCALE, SUPPORTED_LOCALES } from '../constants.js';
|
|
13
13
|
import { JamfDocsError, JamfDocsErrorCode } from '../types.js';
|
|
14
14
|
import { extractVersionFromBundleId, extractProductSlug, compareVersions } from '../utils/bundle.js';
|
|
15
15
|
import { docTypeFromLabels } from '../utils/doc-type.js';
|
|
16
|
-
import { cache } from './cache.js';
|
|
17
|
-
import { createLogger } from './logging.js';
|
|
18
16
|
import { estimateTokens, createTokenInfo, extractSections, extractSection, extractSummary, truncateToTokenLimit, calculatePagination } from './tokenizer.js';
|
|
19
17
|
import { getBundleIdForVersion } from './metadata.js';
|
|
20
|
-
const log = createLogger('scraper');
|
|
21
18
|
// Initialize Turndown for HTML to Markdown conversion
|
|
22
19
|
const turndown = new TurndownService({
|
|
23
20
|
headingStyle: 'atx',
|
|
@@ -39,11 +36,11 @@ turndown.addRule('codeBlocks', {
|
|
|
39
36
|
});
|
|
40
37
|
// Rate limiter
|
|
41
38
|
let lastRequestTime = 0;
|
|
42
|
-
async function throttle() {
|
|
39
|
+
async function throttle(requestConfig) {
|
|
43
40
|
const now = Date.now();
|
|
44
41
|
const elapsed = now - lastRequestTime;
|
|
45
|
-
if (elapsed <
|
|
46
|
-
await new Promise(resolve => setTimeout(resolve,
|
|
42
|
+
if (elapsed < requestConfig.rateLimitDelay) {
|
|
43
|
+
await new Promise(resolve => setTimeout(resolve, requestConfig.rateLimitDelay - elapsed));
|
|
47
44
|
}
|
|
48
45
|
lastRequestTime = Date.now();
|
|
49
46
|
}
|
|
@@ -143,19 +140,16 @@ export function cleanSnippet(snippet, title, product) {
|
|
|
143
140
|
return cleaned;
|
|
144
141
|
}
|
|
145
142
|
/**
|
|
146
|
-
* Handle
|
|
143
|
+
* Handle HTTP errors and convert to JamfDocsError
|
|
147
144
|
*/
|
|
148
|
-
function
|
|
149
|
-
const status = error.
|
|
145
|
+
function handleHttpError(error, url, resourceType) {
|
|
146
|
+
const status = error.status;
|
|
150
147
|
if (status === 404) {
|
|
151
148
|
throw new JamfDocsError(`${resourceType} not found: ${url}`, JamfDocsErrorCode.NOT_FOUND, url, 404);
|
|
152
149
|
}
|
|
153
150
|
if (status === 429) {
|
|
154
151
|
throw new JamfDocsError('Rate limited. Please wait and try again.', JamfDocsErrorCode.RATE_LIMITED, url, 429);
|
|
155
152
|
}
|
|
156
|
-
if (error.code === 'ECONNABORTED') {
|
|
157
|
-
throw new JamfDocsError('Request timed out', JamfDocsErrorCode.TIMEOUT, url);
|
|
158
|
-
}
|
|
159
153
|
throw new JamfDocsError(`Network error: ${sanitizeErrorMessage(error.message)}`, JamfDocsErrorCode.NETWORK_ERROR, url);
|
|
160
154
|
}
|
|
161
155
|
/**
|
|
@@ -168,30 +162,59 @@ export function buildAcceptLanguage(locale) {
|
|
|
168
162
|
return `${locale},en;q=0.5`;
|
|
169
163
|
}
|
|
170
164
|
/**
|
|
171
|
-
* Fetch
|
|
165
|
+
* Fetch JSON from a URL with error handling
|
|
172
166
|
*/
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
167
|
+
function makeFetchJson(requestConfig) {
|
|
168
|
+
return async (url, locale) => {
|
|
169
|
+
await throttle(requestConfig);
|
|
170
|
+
try {
|
|
171
|
+
return await httpGetJson(url, {
|
|
172
|
+
timeout: requestConfig.timeout,
|
|
173
|
+
headers: {
|
|
174
|
+
'User-Agent': requestConfig.userAgent,
|
|
175
|
+
'Accept-Language': buildAcceptLanguage(locale ?? DEFAULT_LOCALE)
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
if (error instanceof HttpError) {
|
|
181
|
+
handleHttpError(error, url, 'Resource');
|
|
182
182
|
}
|
|
183
|
-
|
|
184
|
-
return response.data;
|
|
185
|
-
}
|
|
186
|
-
catch (error) {
|
|
187
|
-
if (axios.isAxiosError(error)) {
|
|
188
|
-
handleAxiosError(error, url, resourceType);
|
|
183
|
+
throw error;
|
|
189
184
|
}
|
|
190
|
-
|
|
191
|
-
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Fetch HTML from a URL with error handling
|
|
189
|
+
*/
|
|
190
|
+
function makeFetchHtml(requestConfig) {
|
|
191
|
+
return async (url, locale) => {
|
|
192
|
+
await throttle(requestConfig);
|
|
193
|
+
try {
|
|
194
|
+
return await httpGetText(url, {
|
|
195
|
+
timeout: requestConfig.timeout,
|
|
196
|
+
headers: {
|
|
197
|
+
'User-Agent': requestConfig.userAgent,
|
|
198
|
+
'Accept': 'text/html,application/xhtml+xml',
|
|
199
|
+
'Accept-Language': buildAcceptLanguage(locale ?? DEFAULT_LOCALE)
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
if (error instanceof HttpError) {
|
|
205
|
+
handleHttpError(error, url, 'Article');
|
|
206
|
+
}
|
|
207
|
+
throw error;
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Fetch HTML from a URL with error handling.
|
|
213
|
+
* Requires a ServerContext for request configuration.
|
|
214
|
+
*/
|
|
215
|
+
export async function fetchHtml(ctx, url, locale) {
|
|
216
|
+
return makeFetchHtml(ctx.config.request)(url, locale);
|
|
192
217
|
}
|
|
193
|
-
const fetchJson = async (url, locale) => await fetchUrl(url, 'application/json', 'Resource', locale);
|
|
194
|
-
export const fetchHtml = async (url, locale) => await fetchUrl(url, 'text/html,application/xhtml+xml', 'Article', locale);
|
|
195
218
|
/**
|
|
196
219
|
* Clean HTML content by removing unwanted elements
|
|
197
220
|
*/
|
|
@@ -423,7 +446,7 @@ function truncateSearchResults(paginatedResults, maxTokens) {
|
|
|
423
446
|
/**
|
|
424
447
|
* Fetch search results from API or cache
|
|
425
448
|
*/
|
|
426
|
-
async function fetchSearchResults(params, locale, cacheKey) {
|
|
449
|
+
async function fetchSearchResults(params, locale, cacheKey, cache, fetchJson, log) {
|
|
427
450
|
const cached = await cache.get(cacheKey);
|
|
428
451
|
if (cached !== null) {
|
|
429
452
|
return cached;
|
|
@@ -487,7 +510,9 @@ function deduplicateByLatestVersion(results) {
|
|
|
487
510
|
/**
|
|
488
511
|
* Search Jamf documentation using Zoomin Search API
|
|
489
512
|
*/
|
|
490
|
-
export async function searchDocumentation(params) {
|
|
513
|
+
export async function searchDocumentation(ctx, params) {
|
|
514
|
+
const log = ctx.logger.createLogger('scraper');
|
|
515
|
+
const fetchJson = makeFetchJson(ctx.config.request);
|
|
491
516
|
const page = params.page ?? PAGINATION_CONFIG.DEFAULT_PAGE;
|
|
492
517
|
const pageSize = params.limit ?? CONTENT_LIMITS.DEFAULT_SEARCH_RESULTS;
|
|
493
518
|
const maxTokens = params.maxTokens ?? TOKEN_CONFIG.DEFAULT_MAX_TOKENS;
|
|
@@ -499,7 +524,7 @@ export async function searchDocumentation(params) {
|
|
|
499
524
|
})}`;
|
|
500
525
|
let allResults;
|
|
501
526
|
try {
|
|
502
|
-
allResults = await fetchSearchResults(params, locale, cacheKey);
|
|
527
|
+
allResults = await fetchSearchResults(params, locale, cacheKey, ctx.cache, fetchJson, log);
|
|
503
528
|
}
|
|
504
529
|
catch (error) {
|
|
505
530
|
log.error(`Search error: ${String(error)}`);
|
|
@@ -568,7 +593,8 @@ export async function searchDocumentation(params) {
|
|
|
568
593
|
* Fetch and parse a documentation article
|
|
569
594
|
* Uses backend URL (learn-be.jamf.com) for pre-rendered content
|
|
570
595
|
*/
|
|
571
|
-
export async function fetchArticle(url, options = {}) {
|
|
596
|
+
export async function fetchArticle(ctx, url, options = {}) {
|
|
597
|
+
const fetchHtmlInner = makeFetchHtml(ctx.config.request);
|
|
572
598
|
const maxTokens = options.maxTokens ?? TOKEN_CONFIG.DEFAULT_MAX_TOKENS;
|
|
573
599
|
// Infer locale from URL if not explicitly provided (e.g., /ja-JP/bundle/...)
|
|
574
600
|
const locale = options.locale ?? extractLocaleFromUrl(url);
|
|
@@ -578,10 +604,10 @@ export async function fetchArticle(url, options = {}) {
|
|
|
578
604
|
const articleFetchUrl = transformToBackendUrl(cleanUrl);
|
|
579
605
|
const cacheKey = `${locale}:article:${displayUrl}`;
|
|
580
606
|
// Check cache for raw article (without section/token processing)
|
|
581
|
-
let rawArticle = await cache.get(cacheKey);
|
|
607
|
+
let rawArticle = await ctx.cache.get(cacheKey);
|
|
582
608
|
if (rawArticle === null) {
|
|
583
609
|
// Fetch HTML from backend URL (pre-rendered content, not SPA shell)
|
|
584
|
-
const html = await
|
|
610
|
+
const html = await fetchHtmlInner(articleFetchUrl, locale);
|
|
585
611
|
const $ = cheerio.load(html);
|
|
586
612
|
// Clean content
|
|
587
613
|
cleanHtml($);
|
|
@@ -632,7 +658,7 @@ export async function fetchArticle(url, options = {}) {
|
|
|
632
658
|
relatedArticles: relatedArticles !== undefined && relatedArticles.length > 0 ? relatedArticles : undefined
|
|
633
659
|
};
|
|
634
660
|
// Cache raw article
|
|
635
|
-
await cache.set(cacheKey, rawArticle);
|
|
661
|
+
await ctx.cache.set(cacheKey, rawArticle);
|
|
636
662
|
}
|
|
637
663
|
// At this point rawArticle is guaranteed to be non-null
|
|
638
664
|
const article = rawArticle;
|
|
@@ -686,7 +712,7 @@ export async function fetchArticle(url, options = {}) {
|
|
|
686
712
|
/**
|
|
687
713
|
* Discover the latest bundle version for a product via search API
|
|
688
714
|
*/
|
|
689
|
-
async function discoverLatestBundleId(product) {
|
|
715
|
+
async function discoverLatestBundleId(product, fetchJson, log) {
|
|
690
716
|
const productInfo = JAMF_PRODUCTS[product];
|
|
691
717
|
const baseBundleId = productInfo.bundleId;
|
|
692
718
|
try {
|
|
@@ -769,7 +795,7 @@ function countTocEntries(entries) {
|
|
|
769
795
|
* Build a flat TOC from search results when backend TOC endpoint returns empty.
|
|
770
796
|
* Searches for all articles under the given product and constructs TocEntry list.
|
|
771
797
|
*/
|
|
772
|
-
async function buildTocFromSearch(product, locale) {
|
|
798
|
+
async function buildTocFromSearch(product, locale, fetchJson, log) {
|
|
773
799
|
try {
|
|
774
800
|
const apiUrl = new URL(`${DOCS_API_URL}/api/search`);
|
|
775
801
|
apiUrl.searchParams.set('q', JAMF_PRODUCTS[product].name);
|
|
@@ -811,18 +837,20 @@ async function buildTocFromSearch(product, locale) {
|
|
|
811
837
|
* Fetch table of contents for a product
|
|
812
838
|
* Uses backend TOC endpoint (learn-be.jamf.com/bundle/{bundleId}/toc)
|
|
813
839
|
*/
|
|
814
|
-
export async function fetchTableOfContents(product, version = 'current', options = {}) {
|
|
840
|
+
export async function fetchTableOfContents(ctx, product, version = 'current', options = {}) {
|
|
841
|
+
const log = ctx.logger.createLogger('scraper');
|
|
842
|
+
const fetchJson = makeFetchJson(ctx.config.request);
|
|
815
843
|
const page = options.page ?? PAGINATION_CONFIG.DEFAULT_PAGE;
|
|
816
844
|
const maxTokens = options.maxTokens ?? TOKEN_CONFIG.DEFAULT_MAX_TOKENS;
|
|
817
845
|
const locale = options.locale ?? DEFAULT_LOCALE;
|
|
818
846
|
const cacheKey = `${locale}:toc:${product}:${version}`;
|
|
819
847
|
// Check cache
|
|
820
|
-
let allToc = await cache.get(cacheKey);
|
|
848
|
+
let allToc = await ctx.cache.get(cacheKey);
|
|
821
849
|
if (allToc === null) {
|
|
822
850
|
// Get bundle ID for the specified version (or latest if current)
|
|
823
|
-
let bundleId = await getBundleIdForVersion(product, version);
|
|
851
|
+
let bundleId = await getBundleIdForVersion(ctx, product, version);
|
|
824
852
|
// Fallback to discovery if metadata service fails
|
|
825
|
-
bundleId ??= await discoverLatestBundleId(product);
|
|
853
|
+
bundleId ??= await discoverLatestBundleId(product, fetchJson, log);
|
|
826
854
|
if (bundleId === null || bundleId === '') {
|
|
827
855
|
throw new JamfDocsError(`Could not find bundle for ${product} version ${version}`, JamfDocsErrorCode.NOT_FOUND);
|
|
828
856
|
}
|
|
@@ -847,10 +875,10 @@ export async function fetchTableOfContents(product, version = 'current', options
|
|
|
847
875
|
// Fallback: build TOC from search results when backend returns empty or fails
|
|
848
876
|
if (allToc.length === 0) {
|
|
849
877
|
log.info(`No TOC entries for ${product}, falling back to search-based discovery`);
|
|
850
|
-
allToc = await buildTocFromSearch(product, locale);
|
|
878
|
+
allToc = await buildTocFromSearch(product, locale, fetchJson, log);
|
|
851
879
|
}
|
|
852
880
|
// Cache result
|
|
853
|
-
await cache.set(cacheKey, allToc);
|
|
881
|
+
await ctx.cache.set(cacheKey, allToc);
|
|
854
882
|
}
|
|
855
883
|
// Count total entries
|
|
856
884
|
const totalItems = countTocEntries(allToc);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scraper.js","sourceRoot":"","sources":["../../../src/core/services/scraper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,eAAe,MAAM,UAAU,CAAC;AAEvC,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EAIlB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,aAAa,EACb,iBAAiB,EAYlB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKzD,OAAO,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,sDAAsD;AACtD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;IACnC,YAAY,EAAE,KAAK;IACnB,cAAc,EAAE,QAAQ;IACxB,gBAAgB,EAAE,GAAG;IACrB,WAAW,EAAE,GAAG;IAChB,eAAe,EAAE,IAAI;CACtB,CAAC,CAAC;AAEH,wBAAwB;AACxB,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE;IAC7B,MAAM,EAAE,KAAK;IACb,WAAW,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QAC7B,wCAAwC;QACxC,MAAM,WAAW,GAAG,IAA0F,CAAC;QAC/G,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACxE,OAAO,WAAW,QAAQ,KAAK,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5D,CAAC;CACF,CAAC,CAAC;AAEH,eAAe;AACf,IAAI,eAAe,GAAG,CAAC,CAAC;AAExB,KAAK,UAAU,QAAQ,CAAC,aAA4B;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,GAAG,GAAG,eAAe,CAAC;IAEtC,IAAI,OAAO,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;QAC3C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAC1B,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,cAAc,GAAG,OAAO,CAAC,CAC5D,CAAC;IACJ,CAAC;IAED,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC/B,CAAC;AAED,qDAAqD;AACrD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,IAAI,iBAAiB,EAAE,CAAC;YACpE,GAAG,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4BAA4B;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,GAAG,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACtC,GAAG,CAAC,QAAQ,GAAG,mBAAmB,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,GAAG,CAAC,QAAQ,KAAK,mBAAmB,EAAE,CAAC;QACzC,GAAG,CAAC,QAAQ,GAAG,gBAAgB,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,8BAA8B;AAC9B,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAEnD,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,aAAa,CAAC,sBAAsB,QAAQ,EAAE,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,qCAAqC;AACrC,MAAM,aAAa,GAA2B;IAC5C,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG;CACnF,CAAC;AAEF;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAY;IAC7B,6EAA6E;IAC7E,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,kBAAkB,GAAG,CAAC;QAC5D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,kBAAkB,GAAG,CAAC,CAAC;QACtD,CAAC,CAAC,IAAI,CAAC;IACT,8FAA8F;IAC9F,MAAM,cAAc,GAAG,EAAE,CAAC;IAC1B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,OAAO,IAAI,KAAK,IAAI,IAAI,UAAU,GAAG,cAAc,EAAE,CAAC;QACpD,IAAI,GAAG,IAAI,CAAC;QACZ,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpC,UAAU,EAAE,CAAC;IACf,CAAC;IACD,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3D,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,oCAAoC;AACpC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,2CAA2C;AAC3C,MAAM,YAAY,GAAG;IACnB,YAAY;IACZ,gCAAgC,EAAG,iCAAiC;CACrE,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,KAAa,EAAE,OAAsB;IACjF,IAAI,OAAO,GAAG,OAAO,CAAC;IAEtB,uCAAuC;IACvC,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,uDAAuD;IACvD,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACxC,MAAM,aAAa,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,OAAO,GAAG,KAAK,GAAG,aAAa,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAgB,EAAE,GAAW,EAAE,YAAoB;IAC1E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE5B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,MAAM,IAAI,aAAa,CAAC,GAAG,YAAY,eAAe,GAAG,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,MAAM,IAAI,aAAa,CAAC,0CAA0C,EAAE,iBAAiB,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChH,CAAC;IACD,MAAM,IAAI,aAAa,CAAC,kBAAkB,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,iBAAiB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACzH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,MAAM,WAAW,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,aAA4B;IACjD,OAAO,KAAK,EAAK,GAAW,EAAE,MAAe,EAAc,EAAE;QAC3D,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,MAAM,WAAW,CAAI,GAAG,EAAE;gBAC/B,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,OAAO,EAAE;oBACP,YAAY,EAAE,aAAa,CAAC,SAAS;oBACrC,iBAAiB,EAAE,mBAAmB,CAAC,MAAM,IAAI,cAAc,CAAC;iBACjE;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;gBAC/B,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,aAA4B;IACjD,OAAO,KAAK,EAAE,GAAW,EAAE,MAAe,EAAmB,EAAE;QAC7D,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,MAAM,WAAW,CAAC,GAAG,EAAE;gBAC5B,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,OAAO,EAAE;oBACP,YAAY,EAAE,aAAa,CAAC,SAAS;oBACrC,QAAQ,EAAE,iCAAiC;oBAC3C,iBAAiB,EAAE,mBAAmB,CAAC,MAAM,IAAI,cAAc,CAAC;iBACjE;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;gBAC/B,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAkB,EAAE,GAAW,EAAE,MAAe;IAC9E,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,CAAqB;IACtC,2BAA2B;IAC3B,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;IAE7B,oBAAoB;IACpB,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YACtC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,aAAa,GAAG,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QAChC,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YACpC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,aAAa,GAAG,GAAG,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,sFAAsF;IACtF,MAAM,WAAW,GAAG,mCAAmC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClE,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACxD,CAAC;IAED,2DAA2D;IAC3D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC/D,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED,8BAA8B;IAC9B,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9G,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AAC1G,CAAC;AAcD,6FAA6F;AAC7F,MAAM,oBAAoB,GAA8B,MAAM,CAAC,WAAW,CACvE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;IAChD,EAAE;IACF,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;CACnD,CAAC,CAC0B,CAAC;AAE/B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAc,CAAC;AAa5D;;;GAGG;AACH,SAAS,wBAAwB,CAC/B,UAAkC,EAClC,aAA6B;IAE7B,oBAAoB;IACpB,IAAI,QAAQ,GAAG,UAAU,CAAC;IAC1B,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;IAED,yBAAyB;IACzB,MAAM,UAAU,GAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACjE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAAA,MAAM;QAAA,CAAC;QAEjC,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACxE,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YAAA,SAAS;QAAA,CAAC;QAEnC,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAAA,SAAS;QAAA,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC;QACnD,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAErC,6BAA6B;QAC7B,QAAQ,GAAG,UAAU,CAAC;QACtB,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,QAAQ;YACR,UAAU,EAAE;gBACV,OAAO;gBACP,QAAQ;gBACR,OAAO,EAAE,2DAA2D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C;aACrI;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAC3B,OAA4B,EAC5B,SAA4C,EAC5C,gBAAoC;IAEpC,MAAM,cAAc,GAAG,0BAA0B,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;IAElF,+CAA+C;IAC/C,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,KAAK,EAAE,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAChG,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAC1G,CAAC;IAED,mCAAmC;IACnC,IAAI,cAAc,KAAK,gBAAgB,EAAE,CAAC;QACxC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAC1G,CAAC;IAED,wCAAwC;IACxC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,eAAe,GAAG,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACvE,IAAI,eAAe,KAAK,gBAAgB,EAAE,CAAC;gBACzC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;YAC7G,CAAC;QACH,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;AAC3G,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAC5B,OAAyF,EACzF,gBAAoC;IAEpC,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IACvC,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAE3F,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAC/B,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,UAAU,KAAK,IAAI;QACtC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC;QACjE,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;IACtE,MAAM,aAAa,GAAG,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS;QACvE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;QACtB,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAExH,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEjD,MAAM,YAAY,GAAiB;QACjC,KAAK,EAAE,WAAW;QAClB,GAAG,EAAE,sBAAsB,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC;QAC7D,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;KACnC,CAAC;IAEF,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;IACzC,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IACjF,MAAM,aAAa,GAAc,aAAa;SAC3C,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAExF,OAAO;QACL,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS;QACpE,cAAc,EAAE,SAAS,CAAC,cAAc;KACzC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAoB;IAC9C,MAAM,aAAa,GAAmB,EAAE,CAAC;IAEzC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,aAAa,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,MAAM,CAAC,OAAO;YACrB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,OAAO,CAAC;SACzE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;QACjC,aAAa,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;SAC/E,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;QACrC,MAAM,cAAc,GAAG,kBAAkB,CAAC,aAAa,CAAuB,CAAC;QAC/E,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,aAAa,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,aAAa;gBACpB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBACrC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAAC,OAAO,IAAI,CAAC;oBAAC,CAAC;oBAC9C,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAC9C,CAAC,CAAC;aACH,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAC5B,gBAAgC,EAChC,SAAiB;IAEjB,MAAM,UAAU,GAAG,cAAc,CAC/B,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAC7E,CAAC;IAEF,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,MAAM,YAAY,GAAmB,EAAE,CAAC;IAExC,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACzF,IAAI,aAAa,GAAG,YAAY,GAAG,SAAS,EAAE,CAAC;YAC7C,MAAM;QACR,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,aAAa,IAAI,YAAY,CAAC;IAChC,CAAC;IAED,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAyB;QAC7C,YAAY,EAAE,cAAc,CAAC,MAAM;QACnC,YAAY,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,eAAe,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;SACtE,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AAC7D,CAAC;AAcD;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,MAAoB,EACpB,MAAc,EACd,QAAgB,EAChB,KAAoB,EACpB,SAA0D,EAC1D,GAAW;IAEX,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAyB,QAAQ,CAAC,CAAC;IACjE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;IACvH,MAAM,UAAU,GAAG,eAAe;QAChC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,GAAG,cAAc,CAAC,2BAA2B,EAAE,cAAc,CAAC,oBAAoB,CAAC;QAC/H,CAAC,CAAC,cAAc,CAAC,kBAAkB,CAAC;IAEtC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,YAAY,aAAa,CAAC,CAAC;IACrD,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,KAAK,eAAe,MAAM,CAAC,OAAO,IAAI,KAAK,YAAY,MAAM,CAAC,KAAK,IAAI,KAAK,aAAa,MAAM,UAAU,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAE1J,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAuB,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;IAElF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;SAC7B,MAAM,CAAC,CAAC,OAAO,EAA8F,EAAE,CAC9G,OAAO,CAAC,cAAc,KAAK,IAAI,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,CACxE;SACA,MAAM,CAAC,OAAO,CAAC,EAAE;QAChB,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC;QAC7C,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,OAAO,CAAC,6CAA6C,SAAS,EAAE,CAAC,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAElE,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,0BAA0B,CAAC,OAA+B;IACjE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAgC,CAAC;IAErD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;YACxC,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC;QAClD,MAAM,GAAG,GAAG,GAAG,WAAW,IAAI,QAAQ,EAAE,CAAC;QAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAC7C,IAAI,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAkB,EAClB,MAAoB;IAEpB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,iBAAiB,CAAC,YAAY,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,cAAc,CAAC,sBAAsB,CAAC;IACvE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,kBAAkB,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC;IACjD,MAAM,QAAQ,GAAG,GAAG,MAAM,WAAW,IAAI,CAAC,SAAS,CAAC;QAClD,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK;QACjE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK;QACrE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;KACrC,CAAC,EAAE,CAAC;IAEL,IAAI,UAAkC,CAAC;IACvC,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAC7F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE5C,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO;YACL,OAAO,EAAE,EAAE;YACX,UAAU,EAAE;gBACV,IAAI,EAAE,CAAC;gBACP,QAAQ;gBACR,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,CAAC;gBACb,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK;aACf;YACD,SAAS,EAAE,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC;SAC1C,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAC/D,wBAAwB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAEtD,2DAA2D;IAC3D,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,EAAE;QAC1E,CAAC,CAAC,0BAA0B,CAAC,eAAe,CAAC;QAC7C,CAAC,CAAC,eAAe,CAAC;IAEpB,uBAAuB;IACvB,MAAM,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAElF,wBAAwB;IACxB,MAAM,gBAAgB,GAAG,cAAc;SACpC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC;SACzD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAEtB,8CAA8C;IAC9C,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,qBAAqB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACzG,MAAM,eAAe,GAAG,cAAc,CACpC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CACzE,CAAC;IAEF,qFAAqF;IACrF,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC;IACxC,MAAM,kBAAkB,GAAG,gBAAgB,KAAK,SAAS;WACpD,gBAAgB,KAAK,SAAS;WAC9B,gBAAgB,KAAK,EAAE;WACvB,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,kBAAkB;QACpC,CAAC,CAAC,YAAY,gBAAgB,2EAA2E;QACzG,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE;YACV,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,UAAU,EAAE,cAAc,CAAC,MAAM;YACjC,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,OAAO,EAAE,cAAc,CAAC,OAAO;SAChC;QACD,SAAS,EAAE;YACT,UAAU,EAAE,eAAe;YAC3B,SAAS;YACT,SAAS;SACV;QACD,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;AACJ,CAAC;AAqBD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAkB,EAClB,GAAW,EACX,UAA+B,EAAE;IAEjC,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC,kBAAkB,CAAC;IAEvE,6EAA6E;IAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAE3D,wFAAwF;IACxF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,GAAG,MAAM,YAAY,UAAU,EAAE,CAAC;IAEnD,iEAAiE;IACjE,IAAI,UAAU,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAgB,QAAQ,CAAC,CAAC;IAE9D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,oEAAoE;QACpE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,gBAAgB;QAChB,SAAS,CAAC,CAAC,CAAC,CAAC;QAEb,kBAAkB;QAClB,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QACtD,MAAM,cAAc,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;QAElE,wEAAwE;QACxE,mFAAmF;QACnF,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;aAC3C,OAAO,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;QAE3D,qBAAqB;QACrB,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC;aACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;aACnC,GAAG,EAAE;aACL,MAAM,CAAC,OAAO,CAAC,CAAC;QAEnB,2BAA2B;QAC3B,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,KAAK,IAAI;YACrD,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;gBACjC,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACzC,mDAAmD;gBACnD,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;gBAChC,CAAC;gBACD,wDAAwD;gBACxD,IAAI,WAAmB,CAAC;gBACxB,IAAI,CAAC;oBACH,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC7D,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW,GAAG,OAAO,CAAC;gBACxB,CAAC;gBACD,OAAO;oBACL,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE;oBAC1B,GAAG,EAAE,sBAAsB,CAAC,WAAW,CAAC;iBACzC,CAAC;YACJ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;YACtD,CAAC,CAAC,SAAS,CAAC;QAEd,gCAAgC;QAChC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAE5D,UAAU,GAAG;YACX,KAAK;YACL,OAAO;YACP,GAAG,EAAE,UAAU;YACf,OAAO;YACP,OAAO;YACP,UAAU,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC1D,eAAe,EAAE,eAAe,KAAK,SAAS,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;SAC3G,CAAC;QAEF,oBAAoB;QACpB,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,wDAAwD;IACxD,MAAM,OAAO,GAAG,UAAU,CAAC;IAE3B,uBAAuB;IACvB,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAErD,0BAA0B;IAC1B,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAEhF,wBAAwB;QACxB,IAAI,cAAc,GAAG,iBAAiB,aAAa,CAAC,OAAO,MAAM,CAAC;QAClE,cAAc,IAAI,uBAAuB,aAAa,CAAC,OAAO,CAAC,MAAM,gBAAgB,CAAC;QAEtF,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3D,cAAc,IAAI,GAAG,MAAM,KAAK,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,UAAU,YAAY,CAAC;QACpF,CAAC;QAED,cAAc,IAAI,2BAA2B,aAAa,CAAC,iBAAiB,iBAAiB,aAAa,CAAC,WAAW,CAAC,cAAc,EAAE,YAAY,CAAC;QAEpJ,OAAO;YACL,GAAG,OAAO;YACV,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,QAAQ,EAAE,WAAW;SACtB,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,IAAI,gBAAwB,CAAC;IAC7B,IAAI,SAAoB,CAAC;IAEzB,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;QAC5D,2BAA2B;QAC3B,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAClF,gBAAgB,GAAG,aAAa,CAAC,OAAO,CAAC;QACzC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;QAEpC,IAAI,aAAa,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACnC,uCAAuC;YACvC,gBAAgB,GAAG,aAAa,OAAO,CAAC,OAAO,6CAA6C,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9I,SAAS,GAAG,eAAe,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,0CAA0C;QAC1C,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACxE,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC;QAC1C,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC;IACvC,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,OAAO,EAAE,gBAAgB;QACzB,SAAS;QACT,QAAQ,EAAE,WAAW;KACtB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,sBAAsB,CACnC,OAAkB,EAClB,SAA0D,EAC1D,GAAW;IAEX,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC;IAE1C,IAAI,CAAC;QACH,2EAA2E;QAC3E,MAAM,MAAM,GAAG,GAAG,YAAY,iBAAiB,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;QAC7F,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAuB,MAAM,CAAC,CAAC;QAE/D,8CAA8C;QAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBAC5E,SAAS;YACX,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC;YAClD,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,wCAAwC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAe,EAAE,CAAC;IAE3B,kCAAkC;IAClC,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,CAAqB,EAAE,EAAW;IACvD,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IAE3D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAEnC,IAAI,KAAK,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wCAAwC;IACxC,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAElC,MAAM,KAAK,GAAa,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAEvC,qBAAqB;IACrB,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAChD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAe,EAAE,CAAC;QAChC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;YAC/C,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAoBD;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAe,EAAE,KAAK,GAAG,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5F,OAAO,GAAG,MAAM,KAAK,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,OAAmB;IAC1C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/H,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,OAAkB,EAClB,MAAc,EACd,SAA0D,EAC1D,GAAW;IAEX,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,YAAY,aAAa,CAAC,CAAC;QACrD,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7E,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YAC9B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAuB,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;QAClF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,OAAO,GAAe,EAAE,CAAC;QAE/B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;YACvC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAE5D,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAEzC,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEd,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,IAAI,CAAC,2BAA2B,OAAO,CAAC,MAAM,4BAA4B,OAAO,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,uCAAuC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9E,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAkB,EAClB,OAAkB,EAClB,OAAO,GAAG,SAAS,EACnB,UAA2B,EAAE;IAE7B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,iBAAiB,CAAC,YAAY,CAAC;IAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC,kBAAkB,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,MAAM,QAAQ,OAAO,IAAI,OAAO,EAAE,CAAC;IAEvD,cAAc;IACd,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAa,QAAQ,CAAC,CAAC;IAEvD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,iEAAiE;QACjE,IAAI,QAAQ,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAElE,kDAAkD;QAClD,QAAQ,KAAK,MAAM,sBAAsB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAEnE,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,aAAa,CACrB,6BAA6B,OAAO,YAAY,OAAO,EAAE,EACzD,iBAAiB,CAAC,SAAS,CAC5B,CAAC;QACJ,CAAC;QAED,qDAAqD;QACrD,MAAM,MAAM,GAAG,GAAG,YAAY,WAAW,QAAQ,MAAM,CAAC;QACxD,GAAG,CAAC,KAAK,CAAC,sBAAsB,MAAM,aAAa,MAAM,EAAE,CAAC,CAAC;QAE7D,MAAM,GAAG,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAyB,MAAM,EAAE,MAAM,CAAC,CAAC;YAExE,YAAY;YACZ,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;oBACnC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,mFAAmF;YACnF,GAAG,CAAC,KAAK,CAAC,kCAAkC,OAAO,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpH,CAAC;QAED,8EAA8E;QAC9E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,sBAAsB,OAAO,0CAA0C,CAAC,CAAC;YAClF,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACrE,CAAC;QAED,eAAe;QACf,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,sBAAsB;IACtB,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAE3C,gDAAgD;IAChD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,CAAC;IACrD,MAAM,cAAc,GAAG,mBAAmB,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE1E,wDAAwD;IACxD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEtF,qCAAqC;IACrC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,QAAQ,GAAG,YAAY,CAAC;IAE5B,+BAA+B;IAC/B,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;QAC3B,SAAS,GAAG,IAAI,CAAC;QACjB,QAAQ,GAAG,EAAE,CAAC;QACd,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YAE9C,IAAI,aAAa,GAAG,WAAW,GAAG,SAAS,EAAE,CAAC;gBAC5C,MAAM;YACR,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,aAAa,IAAI,WAAW,CAAC;QAC/B,CAAC;QAED,UAAU,GAAG,aAAa,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,GAAG,EAAE,QAAQ;QACb,UAAU,EAAE;YACV,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,UAAU;YACV,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,OAAO,EAAE,cAAc,CAAC,OAAO;SAChC;QACD,SAAS,EAAE;YACT,UAAU;YACV,SAAS;YACT,SAAS;SACV;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-suggestions.d.ts","sourceRoot":"","sources":["../../../src/core/services/search-suggestions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AA6KD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,gBAAgB,UAAQ,EACxB,cAAc,UAAQ,GACrB,iBAAiB,CASnB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,GAAG,MAAM,CA4B7F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-suggestions.js","sourceRoot":"","sources":["../../../src/core/services/search-suggestions.ts"],"names":[],"mappings":"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"}
|