@hooklink/cli 0.1.51 → 0.1.53
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/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +112 -105
- package/dist/commands/connect.js.map +1 -1
- package/dist/core/http-forwarder.d.ts +9 -7
- package/dist/core/http-forwarder.d.ts.map +1 -1
- package/dist/core/http-forwarder.js +216 -103
- package/dist/core/http-forwarder.js.map +1 -1
- package/dist/core/websocket-client.d.ts +26 -6
- package/dist/core/websocket-client.d.ts.map +1 -1
- package/dist/core/websocket-client.js +184 -15
- package/dist/core/websocket-client.js.map +1 -1
- package/dist/types/index.d.ts +6 -12
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -9,7 +9,6 @@ const http_1 = __importDefault(require("http"));
|
|
|
9
9
|
const https_1 = __importDefault(require("https"));
|
|
10
10
|
const zlib_1 = require("zlib");
|
|
11
11
|
const sentry_1 = require("../utils/sentry");
|
|
12
|
-
const STREAM_CHUNK_SIZE = 64 * 1024; // 64KB chunks for streaming
|
|
13
12
|
const COMPRESS_MIN_SIZE = 1024; // Only compress bodies > 1KB
|
|
14
13
|
const MAX_INTERNAL_REDIRECTS = 10; // Max same-origin redirects to follow internally
|
|
15
14
|
// Keep-alive agents reuse TCP connections across requests
|
|
@@ -435,128 +434,242 @@ class HttpForwarder {
|
|
|
435
434
|
return result;
|
|
436
435
|
}
|
|
437
436
|
/**
|
|
438
|
-
*
|
|
439
|
-
*
|
|
437
|
+
* Stream the upstream HTTP response chunk-by-chunk via callbacks.
|
|
438
|
+
* Binary content and non-tunnel responses stream directly.
|
|
439
|
+
* Text content that needs URL rewriting falls back to the buffered forward() path.
|
|
440
440
|
*/
|
|
441
441
|
async forwardStreaming(request, callbacks) {
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
const
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
});
|
|
442
|
+
const startTime = Date.now();
|
|
443
|
+
try {
|
|
444
|
+
// Resolve URL (same logic as forward())
|
|
445
|
+
const url = this.resolveUrl(request);
|
|
446
|
+
// Decode request body if base64-encoded
|
|
447
|
+
let requestData = request.body;
|
|
448
|
+
if (request.bodyEncoding === 'base64' && request.body) {
|
|
449
|
+
requestData = Buffer.from(request.body, 'base64');
|
|
451
450
|
}
|
|
452
|
-
|
|
453
|
-
|
|
451
|
+
// Follow same-origin redirects to reach the final URL, then stream
|
|
452
|
+
const headers = this.filterHeaders(request.headers);
|
|
453
|
+
const forwardedHost = request.headers['x-forwarded-host'] ||
|
|
454
|
+
request.headers['X-Forwarded-Host'];
|
|
455
|
+
if (forwardedHost) {
|
|
456
|
+
headers['host'] = String(forwardedHost);
|
|
454
457
|
}
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
});
|
|
461
|
-
}
|
|
462
|
-
// Decode request body
|
|
463
|
-
let requestData = request.body;
|
|
464
|
-
if (request.bodyEncoding === 'base64' && request.body) {
|
|
465
|
-
requestData = Buffer.from(request.body, 'base64');
|
|
466
|
-
}
|
|
467
|
-
const headers = this.filterHeaders(request.headers);
|
|
468
|
-
const forwardedHost = request.headers['x-forwarded-host'] || request.headers['X-Forwarded-Host'];
|
|
469
|
-
if (forwardedHost) {
|
|
470
|
-
headers['host'] = String(forwardedHost);
|
|
471
|
-
}
|
|
472
|
-
const isHttps = url.protocol === 'https:';
|
|
473
|
-
const transport = isHttps ? https_1.default : http_1.default;
|
|
474
|
-
const agent = isHttps ? httpsAgent : httpAgent;
|
|
475
|
-
return new Promise((resolve, reject) => {
|
|
458
|
+
const needsUrlRewriting = !!forwardedHost;
|
|
459
|
+
const finalUrl = url.toString();
|
|
460
|
+
// Issue the HTTP request using Node.js native API for streaming
|
|
461
|
+
const parsedUrl = new URL(finalUrl);
|
|
462
|
+
const transport = parsedUrl.protocol === 'https:' ? https_1.default : http_1.default;
|
|
476
463
|
const reqOptions = {
|
|
477
464
|
method: request.method,
|
|
478
|
-
hostname:
|
|
479
|
-
port:
|
|
480
|
-
path:
|
|
465
|
+
hostname: parsedUrl.hostname,
|
|
466
|
+
port: parsedUrl.port || (parsedUrl.protocol === 'https:' ? 443 : 80),
|
|
467
|
+
path: parsedUrl.pathname + parsedUrl.search,
|
|
481
468
|
headers,
|
|
482
|
-
agent,
|
|
469
|
+
agent: parsedUrl.protocol === 'https:' ? httpsAgent : httpAgent,
|
|
483
470
|
timeout: 120000,
|
|
484
471
|
};
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
472
|
+
await new Promise((resolve, reject) => {
|
|
473
|
+
const req = transport.request(reqOptions, (res) => {
|
|
474
|
+
const statusCode = res.statusCode || 502;
|
|
475
|
+
const contentType = res.headers['content-type'];
|
|
476
|
+
const binary = isBinaryContentType(contentType);
|
|
477
|
+
// Check if we need URL rewriting (text content in tunnel mode)
|
|
478
|
+
// If so, buffer the response and rewrite URLs before sending
|
|
479
|
+
if (needsUrlRewriting && !binary && isTextContentType(contentType)) {
|
|
480
|
+
const chunks = [];
|
|
481
|
+
res.on('data', (chunk) => chunks.push(chunk));
|
|
482
|
+
res.on('end', async () => {
|
|
483
|
+
try {
|
|
484
|
+
const fullBody = Buffer.concat(chunks);
|
|
485
|
+
let bodyStr = fullBody.toString('utf8');
|
|
486
|
+
// Build remote origin for URL rewriting
|
|
487
|
+
const remoteProto = request.headers['x-forwarded-proto'] ||
|
|
488
|
+
request.headers['X-Forwarded-Proto'] ||
|
|
489
|
+
'https';
|
|
490
|
+
const remoteOrigin = `${remoteProto}://${forwardedHost}`;
|
|
491
|
+
const effectiveBaseUrl = request.targetUrl
|
|
492
|
+
? new URL(request.targetUrl).origin
|
|
493
|
+
: this.targetUrl;
|
|
494
|
+
// Rewrite URLs in body
|
|
495
|
+
bodyStr = this.rewriteUrls(bodyStr, remoteOrigin, effectiveBaseUrl);
|
|
496
|
+
// Strip CSP meta tags from HTML
|
|
497
|
+
if (contentType && contentType.toLowerCase().includes('text/html')) {
|
|
498
|
+
bodyStr = bodyStr.replace(/<meta\b[^>]*http-equiv\s*=\s*["']?\s*content-security-policy(?:-report-only)?\s*["']?[^>]*>/gi, '');
|
|
499
|
+
bodyStr = bodyStr.replace(/<meta\b[^>]*content\s*=\s*["'][^"']*content-security-policy[^"']*["'][^>]*>/gi, '');
|
|
500
|
+
bodyStr = bodyStr.replace(/\sintegrity\s*=\s*["'][^"']*["']/gi, '');
|
|
501
|
+
bodyStr = bodyStr.replace(/\scrossorigin\s*=\s*["'][^"']*["']/gi, '');
|
|
502
|
+
}
|
|
503
|
+
// Sanitize and rewrite response headers
|
|
504
|
+
const sanitizedHeaders = this.sanitizeHeaders(res.headers);
|
|
505
|
+
delete sanitizedHeaders['content-security-policy'];
|
|
506
|
+
delete sanitizedHeaders['content-security-policy-report-only'];
|
|
507
|
+
delete sanitizedHeaders['x-frame-options'];
|
|
508
|
+
delete sanitizedHeaders['cross-origin-opener-policy'];
|
|
509
|
+
delete sanitizedHeaders['cross-origin-embedder-policy'];
|
|
510
|
+
delete sanitizedHeaders['cross-origin-resource-policy'];
|
|
511
|
+
if (typeof sanitizedHeaders['location'] === 'string') {
|
|
512
|
+
sanitizedHeaders['location'] = this.rewriteUrl(sanitizedHeaders['location'], remoteOrigin, effectiveBaseUrl);
|
|
513
|
+
}
|
|
514
|
+
if (typeof sanitizedHeaders['link'] === 'string') {
|
|
515
|
+
sanitizedHeaders['link'] = this.rewriteUrls(sanitizedHeaders['link'], remoteOrigin, effectiveBaseUrl);
|
|
516
|
+
}
|
|
517
|
+
if (forwardedHost && sanitizedHeaders['set-cookie']) {
|
|
518
|
+
sanitizedHeaders['set-cookie'] = this.rewriteCookieDomains(sanitizedHeaders['set-cookie'], String(forwardedHost), effectiveBaseUrl);
|
|
519
|
+
}
|
|
520
|
+
// Remove content-length since we may have changed the body size
|
|
521
|
+
delete sanitizedHeaders['content-length'];
|
|
522
|
+
callbacks.onStart(statusCode, sanitizedHeaders);
|
|
523
|
+
await callbacks.onChunk(Buffer.from(bodyStr, 'utf8'));
|
|
524
|
+
callbacks.onEnd(Date.now() - startTime);
|
|
525
|
+
resolve();
|
|
505
526
|
}
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
}
|
|
527
|
+
catch (err) {
|
|
528
|
+
reject(err);
|
|
529
|
+
}
|
|
530
|
+
});
|
|
531
|
+
res.on('error', reject);
|
|
510
532
|
return;
|
|
511
533
|
}
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
534
|
+
// Follow same-origin redirects for GET/HEAD
|
|
535
|
+
const location = res.headers['location'];
|
|
536
|
+
const isGetOrHead = request.method === 'GET' || request.method === 'HEAD';
|
|
537
|
+
if (isGetOrHead && location && statusCode >= 300 && statusCode < 400) {
|
|
538
|
+
const resolved = new URL(location, finalUrl);
|
|
539
|
+
const localOrigin = new URL(finalUrl).origin;
|
|
540
|
+
if (resolved.origin === localOrigin) {
|
|
541
|
+
// Follow redirect by re-issuing as streaming
|
|
542
|
+
res.resume(); // drain the current response
|
|
543
|
+
this.forwardStreaming({ ...request, targetUrl: resolved.toString() }, callbacks).then(resolve, reject);
|
|
544
|
+
return;
|
|
545
|
+
}
|
|
518
546
|
}
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
547
|
+
// Sanitize response headers
|
|
548
|
+
const sanitizedHeaders = this.sanitizeHeaders(res.headers);
|
|
549
|
+
// Strip security headers that break tunnels
|
|
550
|
+
delete sanitizedHeaders['content-security-policy'];
|
|
551
|
+
delete sanitizedHeaders['content-security-policy-report-only'];
|
|
552
|
+
delete sanitizedHeaders['x-frame-options'];
|
|
553
|
+
delete sanitizedHeaders['cross-origin-opener-policy'];
|
|
554
|
+
delete sanitizedHeaders['cross-origin-embedder-policy'];
|
|
555
|
+
delete sanitizedHeaders['cross-origin-resource-policy'];
|
|
556
|
+
// Rewrite Location header for redirects
|
|
557
|
+
if (needsUrlRewriting && typeof sanitizedHeaders['location'] === 'string') {
|
|
558
|
+
const effectiveBaseUrl = request.targetUrl
|
|
559
|
+
? new URL(request.targetUrl).origin
|
|
560
|
+
: this.targetUrl;
|
|
561
|
+
const remoteProto = request.headers['x-forwarded-proto'] ||
|
|
562
|
+
request.headers['X-Forwarded-Proto'] ||
|
|
563
|
+
'https';
|
|
564
|
+
const remoteOrigin = `${remoteProto}://${forwardedHost}`;
|
|
565
|
+
sanitizedHeaders['location'] = this.rewriteUrl(sanitizedHeaders['location'], remoteOrigin, effectiveBaseUrl);
|
|
537
566
|
}
|
|
567
|
+
// Remove content-length since we are streaming (chunked transfer)
|
|
568
|
+
delete sanitizedHeaders['content-length'];
|
|
569
|
+
sanitizedHeaders['transfer-encoding'] = 'chunked';
|
|
570
|
+
// Send headers immediately
|
|
571
|
+
callbacks.onStart(statusCode, sanitizedHeaders);
|
|
572
|
+
// Stream data chunks
|
|
573
|
+
res.on('data', async (chunk) => {
|
|
574
|
+
try {
|
|
575
|
+
// Pause the stream while we wait for backpressure resolution
|
|
576
|
+
res.pause();
|
|
577
|
+
await callbacks.onChunk(chunk);
|
|
578
|
+
res.resume();
|
|
579
|
+
}
|
|
580
|
+
catch (err) {
|
|
581
|
+
req.destroy();
|
|
582
|
+
reject(err);
|
|
583
|
+
}
|
|
584
|
+
});
|
|
585
|
+
res.on('end', () => {
|
|
586
|
+
callbacks.onEnd(Date.now() - startTime);
|
|
587
|
+
resolve();
|
|
588
|
+
});
|
|
589
|
+
res.on('error', (err) => {
|
|
590
|
+
callbacks.onError(err);
|
|
591
|
+
reject(err);
|
|
592
|
+
});
|
|
538
593
|
});
|
|
539
|
-
|
|
540
|
-
//
|
|
541
|
-
|
|
542
|
-
|
|
594
|
+
req.on('error', (err) => {
|
|
595
|
+
// Check if retryable
|
|
596
|
+
if (isRetryableError(err)) {
|
|
597
|
+
// Retry once with same streaming logic
|
|
598
|
+
const retryReq = transport.request(reqOptions, (res) => {
|
|
599
|
+
// Simplified retry: buffer and send as single chunk to avoid complexity
|
|
600
|
+
const chunks = [];
|
|
601
|
+
const statusCode = res.statusCode || 502;
|
|
602
|
+
const sanitizedHeaders = this.sanitizeHeaders(res.headers);
|
|
603
|
+
delete sanitizedHeaders['content-security-policy'];
|
|
604
|
+
delete sanitizedHeaders['content-security-policy-report-only'];
|
|
605
|
+
res.on('data', (chunk) => chunks.push(chunk));
|
|
606
|
+
res.on('end', async () => {
|
|
607
|
+
callbacks.onStart(statusCode, sanitizedHeaders);
|
|
608
|
+
const body = Buffer.concat(chunks);
|
|
609
|
+
if (body.length > 0) {
|
|
610
|
+
await callbacks.onChunk(body);
|
|
611
|
+
}
|
|
612
|
+
callbacks.onEnd(Date.now() - startTime);
|
|
613
|
+
resolve();
|
|
614
|
+
});
|
|
615
|
+
res.on('error', (retryErr) => {
|
|
616
|
+
callbacks.onError(retryErr);
|
|
617
|
+
reject(retryErr);
|
|
618
|
+
});
|
|
619
|
+
});
|
|
620
|
+
retryReq.on('error', (retryErr) => {
|
|
621
|
+
callbacks.onError(retryErr);
|
|
622
|
+
reject(retryErr);
|
|
623
|
+
});
|
|
624
|
+
if (requestData) {
|
|
625
|
+
retryReq.write(requestData);
|
|
626
|
+
}
|
|
627
|
+
retryReq.end();
|
|
628
|
+
}
|
|
629
|
+
else {
|
|
630
|
+
callbacks.onError(err);
|
|
631
|
+
reject(err);
|
|
632
|
+
}
|
|
543
633
|
});
|
|
544
|
-
|
|
545
|
-
|
|
634
|
+
req.on('timeout', () => {
|
|
635
|
+
req.destroy(new Error('Request timeout'));
|
|
546
636
|
});
|
|
637
|
+
if (requestData) {
|
|
638
|
+
req.write(requestData);
|
|
639
|
+
}
|
|
640
|
+
req.end();
|
|
547
641
|
});
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
642
|
+
}
|
|
643
|
+
catch (error) {
|
|
644
|
+
const code = error.code;
|
|
645
|
+
const isLocalError = (code && LOCAL_ERROR_CODES.has(code)) ||
|
|
646
|
+
(error instanceof Error && LOCAL_ERROR_MESSAGES.some((msg) => error.message.includes(msg)));
|
|
647
|
+
if (!isLocalError) {
|
|
648
|
+
(0, sentry_1.captureException)(error);
|
|
649
|
+
}
|
|
650
|
+
callbacks.onError(error instanceof Error ? error : new Error(String(error)));
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
/**
|
|
654
|
+
* Resolve the target URL from a request (shared logic between forward and forwardStreaming)
|
|
655
|
+
*/
|
|
656
|
+
resolveUrl(request) {
|
|
657
|
+
if (request.targetUrl) {
|
|
658
|
+
const parsed = new URL(request.targetUrl);
|
|
659
|
+
if (parsed.pathname === '/') {
|
|
660
|
+
const url = new URL(request.path, request.targetUrl);
|
|
661
|
+
Object.entries(request.query).forEach(([key, value]) => {
|
|
662
|
+
url.searchParams.append(key, value);
|
|
663
|
+
});
|
|
664
|
+
return url;
|
|
557
665
|
}
|
|
558
|
-
|
|
666
|
+
return parsed;
|
|
667
|
+
}
|
|
668
|
+
const url = new URL(request.path, this.targetUrl);
|
|
669
|
+
Object.entries(request.query).forEach(([key, value]) => {
|
|
670
|
+
url.searchParams.append(key, value);
|
|
559
671
|
});
|
|
672
|
+
return url;
|
|
560
673
|
}
|
|
561
674
|
setTargetUrl(url) {
|
|
562
675
|
this.targetUrl = url;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-forwarder.js","sourceRoot":"","sources":["../../src/core/http-forwarder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-forwarder.js","sourceRoot":"","sources":["../../src/core/http-forwarder.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA6C;AAC7C,gDAA6C;AAC7C,kDAA0B;AAC1B,+BAAgC;AAEhC,4CAAmD;AAEnD,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,6BAA6B;AAC7D,MAAM,sBAAsB,GAAG,EAAE,CAAC,CAAC,iDAAiD;AAEpF,0DAA0D;AAC1D,MAAM,SAAS,GAAG,IAAI,cAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;AACtE,MAAM,UAAU,GAAG,IAAI,eAAK,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;AAEnG,iFAAiF;AACjF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,+BAA+B,CAAC,CAAC,CAAC;AAC3F,MAAM,kBAAkB,GAAG,CAAC,gBAAgB,EAAE,oCAAoC,CAAC,CAAC;AAEpF,yEAAyE;AACzE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,+BAA+B,CAAC,CAAC,CAAC;AACtJ,MAAM,oBAAoB,GAAG,CAAC,gBAAgB,EAAE,oCAAoC,EAAE,yBAAyB,CAAC,CAAC;AAEjH,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;IACnD,IAAI,IAAI,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,4BAA4B,GAAG;IACnC,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,4BAA4B;IAC5B,mBAAmB;IACnB,mBAAmB;IACnB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;CACtB,CAAC;AAEF,MAAM,0BAA0B,GAAG;IACjC,SAAS;IACT,oBAAoB;IACpB,0BAA0B;IAC1B,4BAA4B;IAC5B,mBAAmB;IACnB,0BAA0B;IAC1B,8BAA8B;CAC/B,CAAC;AAEF,SAAS,mBAAmB,CAAC,WAA+B;IAC1D,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/B,MAAM,EAAE,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,OAAO,4BAA4B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,iBAAiB,CAAC,WAA+B;IACxD,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/B,MAAM,EAAE,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAa,aAAa;IAKxB,YAAY,SAAiB;QAH7B,6EAA6E;QACrE,kBAAa,GAAwB,IAAI,GAAG,EAAE,CAAC;QAGrD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,GAAwB;QACvC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAyB;QACrC,IAAI,CAAC;YACH,kFAAkF;YAClF,+EAA+E;YAC/E,6EAA6E;YAC7E,4EAA4E;YAC5E,IAAI,GAAQ,CAAC;YACb,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC1C,IAAI,MAAM,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;oBAC5B,kEAAkE;oBAClE,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC/C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;wBACrD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBACtC,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,gEAAgE;oBAChE,GAAG,GAAG,MAAM,CAAC;gBACf,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBACrD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;YACL,CAAC;YAED,wCAAwC;YACxC,IAAI,WAAW,GAAgC,OAAO,CAAC,IAAI,CAAC;YAC5D,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtD,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpD,CAAC;YAED,6EAA6E;YAC7E,6EAA6E;YAC7E,uEAAuE;YACvE,IAAI,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;YACrC,MAAM,WAAW,GAAgC,WAAW,CAAC;YAC7D,IAAI,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEzD,uEAAuE;YACvE,qEAAqE;YACrE,iDAAiD;YACjD,MAAM,aAAa,GACjB,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBACnC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACtC,IAAI,aAAa,EAAE,CAAC;gBAClB,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,gBAAgB,GAAa,EAAE,CAAC;YACtC,IAAI,QAA+B,CAAC;YACpC,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;YAE/C,SAAS,CAAC;gBACR,MAAM,WAAW,GAAG;oBAClB,MAAM,EAAE,aAAa;oBACrB,GAAG,EAAE,UAAU;oBACf,OAAO,EAAE,cAAc;oBACvB,IAAI,EAAE,WAAW;oBACjB,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;oBAC1B,YAAY,EAAE,CAAC;oBACf,OAAO,EAAE,MAAM;oBACf,aAAa,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;oBAChC,gBAAgB,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;oBACnC,YAAY,EAAE,aAAsB;oBACpC,SAAS;oBACT,UAAU;iBACX,CAAC;gBAEF,IAAI,CAAC;oBACH,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,WAAW,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC1B,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,WAAW,CAAC,CAAC;oBACtC,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,CAAC;oBACZ,CAAC;gBACH,CAAC;gBAED,4CAA4C;gBAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAClD,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;oBACtE,gBAAgB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;gBACpC,CAAC;gBAED,8EAA8E;gBAC9E,6EAA6E;gBAC7E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAuB,CAAC;gBACpE,MAAM,WAAW,GAAG,aAAa,KAAK,KAAK,IAAI,aAAa,KAAK,MAAM,CAAC;gBACxE,IACE,WAAW;oBACX,QAAQ;oBACR,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;oBAC7B,aAAa,GAAG,sBAAsB,EACtC,CAAC;oBACD,gDAAgD;oBAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAE/C,sEAAsE;oBACtE,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;wBACpC,aAAa,EAAE,CAAC;wBAChB,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;wBAEjC,oDAAoD;wBACpD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAChC,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAChE,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;4BAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC9F,cAAc,GAAG,EAAE,GAAG,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;wBACzD,CAAC;wBAED,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,MAAM;YACR,CAAC;YAED,gFAAgF;YAChF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBACpD,MAAM,cAAc,GAAG,YAAY;oBACjC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;oBAC/D,CAAC,CAAC,EAAE,CAAC;gBACP,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,cAAc,CAAC,CAAC;YAC5E,CAAC;YAED,kCAAkC;YAClC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,CAE9C,CAAC;YACd,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACnD,CAAC,CAAC,QAAQ,CAAC,IAAI;gBACf,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;YAExD,2DAA2D;YAC3D,MAAM,UAAU,GACd,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBACnC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACtC,MAAM,WAAW,GACf,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;gBACpC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;gBACpC,OAAO,CAAC;YACV,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,WAAW,MAAM,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAE1E,wDAAwD;YACxD,sFAAsF;YACtF,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS;gBACxC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM;gBACnC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YAEnB,sDAAsD;YACtD,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM,IAAI,YAAY,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACtE,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;YACtE,CAAC;YAED,oFAAoF;YACpF,IACE,CAAC,MAAM;gBACP,OAAO,mBAAmB,KAAK,QAAQ;gBACvC,mBAAmB,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EACvD,CAAC;gBACD,+DAA+D;gBAC/D,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,+FAA+F,EAC/F,EAAE,CACH,CAAC;gBAEF,uEAAuE;gBACvE,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,+EAA+E,EAC/E,EAAE,CACH,CAAC;gBAEF,0EAA0E;gBAC1E,4EAA4E;YAC9E,CAAC;YAED,uEAAuE;YACvE,OAAO,QAAQ,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;YACnD,OAAO,QAAQ,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;YAC/D,OAAO,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC3C,OAAO,QAAQ,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YACtD,OAAO,QAAQ,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;YACxD,OAAO,QAAQ,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;YAExD,2FAA2F;YAC3F,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;YAEpE,uEAAuE;YACvE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC;YAEtE,wCAAwC;YACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,YAAY,IAAI,OAAO,gBAAgB,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACrE,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAC5C,gBAAgB,CAAC,UAAU,CAAC,EAC5B,YAAY,EACZ,gBAAgB,CACjB,CAAC;YACJ,CAAC;YAED,+DAA+D;YAC/D,IAAI,YAAY,IAAI,OAAO,gBAAgB,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACjE,gBAAgB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CACzC,gBAAgB,CAAC,MAAM,CAAC,EACxB,YAAY,EACZ,gBAAgB,CACjB,CAAC;YACJ,CAAC;YAED,gEAAgE;YAChE,IAAI,UAAU,IAAI,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;gBACjD,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,oBAAoB,CACxD,gBAAgB,CAAC,YAAY,CAAC,EAC9B,UAAU,EACV,gBAAgB,CACjB,CAAC;YACJ,CAAC;YAED,4DAA4D;YAC5D,IAAI,CAAC,MAAM,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;gBAC5F,MAAM,UAAU,GAAG,IAAA,eAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBACxE,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;gBAC9C,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;gBAC1C,OAAO;oBACL,IAAI,EAAE,UAAU;oBAChB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,UAAU,EAAE,QAAQ,CAAC,MAAM;oBAC3B,OAAO,EAAE,gBAAgB;oBACzB,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACnC,YAAY,EAAE,QAAQ;iBACvB,CAAC;YACJ,CAAC;YAED,4CAA4C;YAC5C,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,QAAQ,CAAC,MAAM;gBAC3B,OAAO,EAAE,gBAAgB;gBACzB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO;gBAC1D,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;aACzC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,kFAAkF;YAClF,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;YACnD,MAAM,YAAY,GAChB,CAAC,IAAI,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC,KAAK,YAAY,KAAK,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9F,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YAED,wBAAwB;YACxB,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK,EAAE,aAAa;oBACpB,OAAO,EAAE,8CAA8C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;iBAClH,CAAC;aACH,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,aAAa,CACnB,OAA+B;QAE/B,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,MAAM,WAAW,GAAG;YAClB,MAAM;YACN,YAAY;YACZ,SAAS;YACT,iBAAiB;YACjB,mBAAmB;YACnB,uBAAuB;YACvB,0BAA0B;SAC3B,CAAC;QAEF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC7C,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,eAAe,CAAC,OAAgB;QACtC,MAAM,SAAS,GAAsC,EAAE,CAAC;QACxD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QAEtE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CACvC,OAAkC,CACnC,EAAE,CAAC;YACF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACzB,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,8DAA8D;gBAC9D,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE,CAAC;oBACvC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,oBAAoB,CAC1B,OAA0B,EAC1B,UAAkB,EAClB,OAAgB;QAEhB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;QAC9D,8DAA8D;QAC9D,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9C,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAChC,0EAA0E;YAC1E,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAC9B,qBAAqB,EACrB,CAAC,MAAM,EAAE,MAAc,EAAE,EAAE;gBACzB,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC/B,IACE,CAAC,KAAK,SAAS;oBACf,CAAC,KAAK,IAAI,SAAS,EAAE;oBACrB,CAAC,KAAK,WAAW;oBACjB,CAAC,KAAK,YAAY,EAClB,CAAC;oBACD,OAAO,UAAU,YAAY,EAAE,CAAC;gBAClC,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,CACF,CAAC;YAEF,gFAAgF;YAChF,oEAAoE;YAEpE,4DAA4D;YAC5D,oEAAoE;YAEpE,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,OAAgB;QACtC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhC,wDAAwD;QACxD,0EAA0E;QAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtE,MAAM,SAAS,GAAG,GAAG,WAAW,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAExB,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,WAAW,CAAC,IAAY,EAAE,YAAoB,EAAE,OAAgB;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,mBAAmB,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,4CAA4C;YAC5C,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjD,qDAAqD;YACrD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC/D,0DAA0D;YAC1D,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjE,CAAC;QAED,iFAAiF;QACjF,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACzD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnD,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3D,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACjE,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACzD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,UAAU,CAAC,GAAW,EAAE,YAAoB,EAAE,OAAgB;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,kDAAkD;QAClD,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACpD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/B,OAAO,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;QACD,wDAAwD;QACxD,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,MAAM,GAAG,GAAG,CAAC;QACjB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjE,CAAC;QACD,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACzD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACzD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAyB,EAAE,SAA0B;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,wCAAwC;YACxC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAErC,wCAAwC;YACxC,IAAI,WAAW,GAAgC,OAAO,CAAC,IAAI,CAAC;YAC5D,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtD,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpD,CAAC;YAED,mEAAmE;YACnE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,aAAa,GACjB,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBACnC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACtC,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,iBAAiB,GAAG,CAAC,CAAC,aAAa,CAAC;YAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YAEhC,gEAAgE;YAChE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAK,CAAC,CAAC,CAAC,cAAI,CAAC;YACjE,MAAM,UAAU,GAAwB;gBACtC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM;gBAC3C,OAAO;gBACP,KAAK,EAAE,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBAC/D,OAAO,EAAE,MAAM;aAChB,CAAC;YAEF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAoB,EAAE,EAAE;oBACjE,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC;oBACzC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAuB,CAAC;oBACtE,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;oBAEhD,+DAA+D;oBAC/D,6DAA6D;oBAC7D,IAAI,iBAAiB,IAAI,CAAC,MAAM,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;wBACnE,MAAM,MAAM,GAAa,EAAE,CAAC;wBAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;wBACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;4BACvB,IAAI,CAAC;gCACH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gCACvC,IAAI,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gCAExC,wCAAwC;gCACxC,MAAM,WAAW,GACf,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;oCACpC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;oCACpC,OAAO,CAAC;gCACV,MAAM,YAAY,GAAG,GAAG,WAAW,MAAM,aAAa,EAAE,CAAC;gCACzD,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS;oCACxC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM;oCACnC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;gCAEnB,uBAAuB;gCACvB,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;gCAEpE,gCAAgC;gCAChC,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oCACnE,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,+FAA+F,EAC/F,EAAE,CACH,CAAC;oCACF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,+EAA+E,EAC/E,EAAE,CACH,CAAC;oCACF,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;oCACpE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC;gCACxE,CAAC;gCAED,wCAAwC;gCACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gCAC3D,OAAO,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;gCACnD,OAAO,gBAAgB,CAAC,qCAAqC,CAAC,CAAC;gCAC/D,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;gCAC3C,OAAO,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;gCACtD,OAAO,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;gCACxD,OAAO,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;gCAExD,IAAI,OAAO,gBAAgB,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE,CAAC;oCACrD,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAC5C,gBAAgB,CAAC,UAAU,CAAC,EAC5B,YAAY,EACZ,gBAAgB,CACjB,CAAC;gCACJ,CAAC;gCACD,IAAI,OAAO,gBAAgB,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;oCACjD,gBAAgB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CACzC,gBAAgB,CAAC,MAAM,CAAC,EACxB,YAAY,EACZ,gBAAgB,CACjB,CAAC;gCACJ,CAAC;gCACD,IAAI,aAAa,IAAI,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;oCACpD,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,oBAAoB,CACxD,gBAAgB,CAAC,YAAY,CAAC,EAC9B,MAAM,CAAC,aAAa,CAAC,EACrB,gBAAgB,CACjB,CAAC;gCACJ,CAAC;gCAED,gEAAgE;gCAChE,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;gCAE1C,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;gCAChD,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;gCACtD,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;gCACxC,OAAO,EAAE,CAAC;4BACZ,CAAC;4BAAC,OAAO,GAAG,EAAE,CAAC;gCACb,MAAM,CAAC,GAAG,CAAC,CAAC;4BACd,CAAC;wBACH,CAAC,CAAC,CAAC;wBACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBACxB,OAAO;oBACT,CAAC;oBAED,4CAA4C;oBAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAuB,CAAC;oBAC/D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC;oBAC1E,IAAI,WAAW,IAAI,QAAQ,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;wBACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;wBAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;wBAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;4BACpC,6CAA6C;4BAC7C,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,6BAA6B;4BAC3C,IAAI,CAAC,gBAAgB,CACnB,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAC9C,SAAS,CACV,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;4BACxB,OAAO;wBACT,CAAC;oBACH,CAAC;oBAED,4BAA4B;oBAC5B,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAE3D,4CAA4C;oBAC5C,OAAO,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;oBACnD,OAAO,gBAAgB,CAAC,qCAAqC,CAAC,CAAC;oBAC/D,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;oBAC3C,OAAO,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;oBACtD,OAAO,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;oBACxD,OAAO,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;oBAExD,wCAAwC;oBACxC,IAAI,iBAAiB,IAAI,OAAO,gBAAgB,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE,CAAC;wBAC1E,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS;4BACxC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM;4BACnC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;wBACnB,MAAM,WAAW,GACf,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;4BACpC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;4BACpC,OAAO,CAAC;wBACV,MAAM,YAAY,GAAG,GAAG,WAAW,MAAM,aAAa,EAAE,CAAC;wBACzD,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAC5C,gBAAgB,CAAC,UAAU,CAAW,EACtC,YAAY,EACZ,gBAAgB,CACjB,CAAC;oBACJ,CAAC;oBAED,kEAAkE;oBAClE,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;oBAC1C,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;oBAElD,2BAA2B;oBAC3B,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;oBAEhD,qBAAqB;oBACrB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE;wBACrC,IAAI,CAAC;4BACH,6DAA6D;4BAC7D,GAAG,CAAC,KAAK,EAAE,CAAC;4BACZ,MAAM,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;4BAC/B,GAAG,CAAC,MAAM,EAAE,CAAC;wBACf,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,GAAG,CAAC,OAAO,EAAE,CAAC;4BACd,MAAM,CAAC,GAAG,CAAC,CAAC;wBACd,CAAC;oBACH,CAAC,CAAC,CAAC;oBAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;wBACjB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;wBACxC,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC,CAAC;oBAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;wBACtB,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACvB,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBACtB,qBAAqB;oBACrB,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC1B,uCAAuC;wBACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAoB,EAAE,EAAE;4BACtE,wEAAwE;4BACxE,MAAM,MAAM,GAAa,EAAE,CAAC;4BAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC;4BACzC,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;4BAC3D,OAAO,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;4BACnD,OAAO,gBAAgB,CAAC,qCAAqC,CAAC,CAAC;4BAE/D,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;4BACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;gCACvB,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;gCAChD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gCACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oCACpB,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gCAChC,CAAC;gCACD,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;gCACxC,OAAO,EAAE,CAAC;4BACZ,CAAC,CAAC,CAAC;4BACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;gCAC3B,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gCAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC;4BACnB,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;wBACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;4BAChC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;4BAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC;wBACnB,CAAC,CAAC,CAAC;wBACH,IAAI,WAAW,EAAE,CAAC;4BAChB,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;wBAC9B,CAAC;wBACD,QAAQ,CAAC,GAAG,EAAE,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACvB,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;oBACrB,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBAEH,IAAI,WAAW,EAAE,CAAC;oBAChB,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACzB,CAAC;gBACD,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;YACnD,MAAM,YAAY,GAChB,CAAC,IAAI,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrC,CAAC,KAAK,YAAY,KAAK,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9F,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,SAAS,CAAC,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,OAAyB;QAC1C,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,MAAM,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBACrD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;gBACH,OAAO,GAAG,CAAC;YACb,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACrD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,YAAY,CAAC,GAAW;QACtB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACvB,CAAC;CACF;AA7uBD,sCA6uBC"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import { WSRequestMessage, WSResponseMessage } from '../types';
|
|
3
|
-
export interface StreamingCallbacks {
|
|
4
|
-
onHeader: (statusCode: number, headers: Record<string, string>) => void;
|
|
5
|
-
onChunk: (data: Buffer, isFinal: boolean) => void;
|
|
6
|
-
}
|
|
2
|
+
import { WSRequestMessage, WSResponseMessage, StreamCallbacks } from '../types';
|
|
7
3
|
export interface WebSocketClientOptions {
|
|
8
4
|
wsUrl: string;
|
|
9
5
|
apiKey: string;
|
|
@@ -11,9 +7,10 @@ export interface WebSocketClientOptions {
|
|
|
11
7
|
endpointIds?: string[];
|
|
12
8
|
trialToken?: string;
|
|
13
9
|
sessionId?: string;
|
|
10
|
+
poolIndex?: number;
|
|
14
11
|
maxReconnectAttempts?: number;
|
|
15
12
|
onRequest: (request: WSRequestMessage) => Promise<WSResponseMessage>;
|
|
16
|
-
|
|
13
|
+
onStreamingRequest?: (request: WSRequestMessage, callbacks: StreamCallbacks) => Promise<void>;
|
|
17
14
|
}
|
|
18
15
|
export declare class WebSocketClient extends EventEmitter {
|
|
19
16
|
private ws;
|
|
@@ -36,8 +33,31 @@ export declare class WebSocketClient extends EventEmitter {
|
|
|
36
33
|
private scheduleReconnect;
|
|
37
34
|
private handleMessage;
|
|
38
35
|
private handleRequest;
|
|
36
|
+
/**
|
|
37
|
+
* Wait until WS send buffer drains below the high water mark.
|
|
38
|
+
* This propagates backpressure from the WS transport up to the HTTP stream.
|
|
39
|
+
*/
|
|
40
|
+
private waitForDrain;
|
|
39
41
|
private sendRaw;
|
|
40
42
|
disconnect(): void;
|
|
41
43
|
isConnected(): boolean;
|
|
42
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* WebSocket connection pool: maintains multiple parallel connections
|
|
47
|
+
* to avoid head-of-line blocking on a single WS connection.
|
|
48
|
+
*/
|
|
49
|
+
export declare class WebSocketPool extends EventEmitter {
|
|
50
|
+
private connections;
|
|
51
|
+
private poolSize;
|
|
52
|
+
private options;
|
|
53
|
+
private connectedCount;
|
|
54
|
+
private sessionId;
|
|
55
|
+
constructor(options: WebSocketClientOptions & {
|
|
56
|
+
poolSize?: number;
|
|
57
|
+
});
|
|
58
|
+
connect(): Promise<void>;
|
|
59
|
+
disconnect(): void;
|
|
60
|
+
isConnected(): boolean;
|
|
61
|
+
getActiveConnectionCount(): number;
|
|
62
|
+
}
|
|
43
63
|
//# sourceMappingURL=websocket-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../src/core/websocket-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../src/core/websocket-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQhF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrE,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/F;AAED,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAM;IAClC,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,mBAAmB,CAA+B;IAG1D,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAI7B;gBAES,OAAO,EAAE,sBAAsB;IAQrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmG9B,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;YA0BX,aAAa;YAuCb,aAAa;IAuG3B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,OAAO;IAMf,UAAU,IAAI,IAAI;IAalB,WAAW,IAAI,OAAO;CAGvB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,sBAAsB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAQ7D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA6E9B,UAAU,IAAI,IAAI;IAQlB,WAAW,IAAI,OAAO;IAItB,wBAAwB,IAAI,MAAM;CAGnC"}
|