@rapidrest/service-core 1.8.0 → 2.1.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/lib/ApiErrors.js +10 -0
- package/dist/lib/ApiErrors.js.map +1 -1
- package/dist/lib/BackgroundServiceManager.js +51 -9
- package/dist/lib/BackgroundServiceManager.js.map +1 -1
- package/dist/lib/EventListenerManager.js +35 -2
- package/dist/lib/EventListenerManager.js.map +1 -1
- package/dist/lib/NetUtils.js +215 -21
- package/dist/lib/NetUtils.js.map +1 -1
- package/dist/lib/ObjectFactory.js +7 -2
- package/dist/lib/ObjectFactory.js.map +1 -1
- package/dist/lib/RateLimiter.js.map +1 -1
- package/dist/lib/Server.js +121 -80
- package/dist/lib/Server.js.map +1 -1
- package/dist/lib/auth/AuthMiddleware.js +160 -100
- package/dist/lib/auth/AuthMiddleware.js.map +1 -1
- package/dist/lib/auth/JWTStrategy.js +6 -2
- package/dist/lib/auth/JWTStrategy.js.map +1 -1
- package/dist/lib/database/ConnectionManager.js +47 -1
- package/dist/lib/database/ConnectionManager.js.map +1 -1
- package/dist/lib/database/DatabaseErrors.js +88 -0
- package/dist/lib/database/DatabaseErrors.js.map +1 -0
- package/dist/lib/database/MongoRepository.js +31 -3
- package/dist/lib/database/MongoRepository.js.map +1 -1
- package/dist/lib/database/MongoSchemaSync.js +7 -1
- package/dist/lib/database/MongoSchemaSync.js.map +1 -1
- package/dist/lib/database/TypeOrmSupport.js +56 -6
- package/dist/lib/database/TypeOrmSupport.js.map +1 -1
- package/dist/lib/database/index.js +1 -0
- package/dist/lib/database/index.js.map +1 -1
- package/dist/lib/decorators/PersistenceDecorators.js +23 -0
- package/dist/lib/decorators/PersistenceDecorators.js.map +1 -1
- package/dist/lib/decorators/RouteDecorators.js +4 -2
- package/dist/lib/decorators/RouteDecorators.js.map +1 -1
- package/dist/lib/http/bun/BunRouter.js +119 -9
- package/dist/lib/http/bun/BunRouter.js.map +1 -1
- package/dist/lib/http/index.js +1 -0
- package/dist/lib/http/index.js.map +1 -1
- package/dist/lib/http/session/sessionMiddleware.js +62 -14
- package/dist/lib/http/session/sessionMiddleware.js.map +1 -1
- package/dist/lib/http/types.js +10 -1
- package/dist/lib/http/types.js.map +1 -1
- package/dist/lib/http/uWS/Adapters.js +31 -13
- package/dist/lib/http/uWS/Adapters.js.map +1 -1
- package/dist/lib/http/uWS/Router.js +80 -16
- package/dist/lib/http/uWS/Router.js.map +1 -1
- package/dist/lib/http/uWS/WebSocket.js +4 -2
- package/dist/lib/http/uWS/WebSocket.js.map +1 -1
- package/dist/lib/models/ModelUtils.js +910 -227
- package/dist/lib/models/ModelUtils.js.map +1 -1
- package/dist/lib/models/RepoUtils.js +863 -266
- package/dist/lib/models/RepoUtils.js.map +1 -1
- package/dist/lib/routes/BaseAdminRoute.js +5 -4
- package/dist/lib/routes/BaseAdminRoute.js.map +1 -1
- package/dist/lib/routes/BasePushRoute.js +104 -40
- package/dist/lib/routes/BasePushRoute.js.map +1 -1
- package/dist/lib/routes/CRUDRoute.js +31 -17
- package/dist/lib/routes/CRUDRoute.js.map +1 -1
- package/dist/lib/routes/RouteUtils.js +120 -29
- package/dist/lib/routes/RouteUtils.js.map +1 -1
- package/dist/lib/security/ACLUtils.js +170 -34
- package/dist/lib/security/ACLUtils.js.map +1 -1
- package/dist/types/ApiErrors.d.ts +10 -0
- package/dist/types/BackgroundServiceManager.d.ts +6 -0
- package/dist/types/EventListenerManager.d.ts +4 -0
- package/dist/types/NetUtils.d.ts +65 -6
- package/dist/types/RateLimiter.d.ts +4 -3
- package/dist/types/Server.d.ts +33 -2
- package/dist/types/auth/AuthMiddleware.d.ts +35 -4
- package/dist/types/database/ConnectionManager.d.ts +18 -0
- package/dist/types/database/DatabaseErrors.d.ts +26 -0
- package/dist/types/database/MongoRepository.d.ts +21 -2
- package/dist/types/database/index.d.ts +1 -0
- package/dist/types/decorators/PersistenceDecorators.d.ts +31 -0
- package/dist/types/decorators/RouteDecorators.d.ts +4 -2
- package/dist/types/http/bun/BunRouter.d.ts +23 -2
- package/dist/types/http/index.d.ts +2 -1
- package/dist/types/http/session/sessionMiddleware.d.ts +14 -4
- package/dist/types/http/types.d.ts +40 -0
- package/dist/types/http/uWS/Adapters.d.ts +10 -1
- package/dist/types/http/uWS/Router.d.ts +15 -2
- package/dist/types/models/ModelUtils.d.ts +301 -47
- package/dist/types/models/RepoUtils.d.ts +240 -4
- package/dist/types/routes/BasePushRoute.d.ts +5 -0
- package/dist/types/routes/CRUDRoute.d.ts +10 -0
- package/dist/types/routes/RouteUtils.d.ts +37 -1
- package/dist/types/security/ACLUtils.d.ts +68 -7
- package/package.json +1 -1
package/dist/lib/Server.js
CHANGED
|
@@ -18,6 +18,10 @@ import { DEFAULT_MAX_BODY_SIZE } from "./http/uWS/Adapters.js";
|
|
|
18
18
|
import { isBunRuntime } from "./http/RuntimeDetect.js";
|
|
19
19
|
import { SessionManager } from "./http/session/SessionManager.js";
|
|
20
20
|
import { createSessionMiddleware } from "./http/session/sessionMiddleware.js";
|
|
21
|
+
/** The metrics label used for every request that didn't match a registered application route. */
|
|
22
|
+
export const UNMATCHED_ROUTE_LABEL = "<unmatched>";
|
|
23
|
+
/** Default time `Server.stop()` waits for in-flight requests to finish, in milliseconds (`shutdown:drain_timeout`). */
|
|
24
|
+
export const DEFAULT_DRAIN_TIMEOUT_MS = 10000;
|
|
21
25
|
/**
|
|
22
26
|
* Provides an HTTP server utilizing uWebSockets.js. The server automatically registers all routes, and
|
|
23
27
|
* establishes database connections for all configured data stores. Additionally provides automatic authentication
|
|
@@ -134,19 +138,22 @@ export class Server {
|
|
|
134
138
|
///////////////////////////////////////////////////////////////////////////
|
|
135
139
|
// METRICS VARIABLES
|
|
136
140
|
///////////////////////////////////////////////////////////////////////////
|
|
141
|
+
// The `path` label of the request metrics is the matched route pattern (e.g. `/items/:id`), or
|
|
142
|
+
// `UNMATCHED_ROUTE_LABEL` for a request no route matched - never the raw request path, which a client controls and
|
|
143
|
+
// which would create a new, never-released time series per distinct URL.
|
|
137
144
|
this.metricRequestPath = new prom.Counter({
|
|
138
145
|
name: "request_path",
|
|
139
|
-
help: "A
|
|
146
|
+
help: "A count of the number of handled requests by the matched route pattern.",
|
|
140
147
|
labelNames: ["path"],
|
|
141
148
|
});
|
|
142
149
|
this.metricRequestStatus = new prom.Counter({
|
|
143
150
|
name: "request_status",
|
|
144
|
-
help: "A count of the resulting status code of handled requests by the requested method and
|
|
151
|
+
help: "A count of the resulting status code of handled requests by the requested method and matched route pattern.",
|
|
145
152
|
labelNames: ["method", "path", "statusCode"],
|
|
146
153
|
});
|
|
147
154
|
this.metricRequestTime = new prom.Histogram({
|
|
148
155
|
name: "request_time_milliseconds",
|
|
149
|
-
help: "A histogram of the response time of handled requests by the requested method,
|
|
156
|
+
help: "A histogram of the response time of handled requests by the requested method, matched route pattern and code.",
|
|
150
157
|
labelNames: ["method", "path", "statusCode"],
|
|
151
158
|
buckets: [5, 10, 25, 50, 100, 250, 500, 1000, 5000],
|
|
152
159
|
});
|
|
@@ -303,7 +310,7 @@ export class Server {
|
|
|
303
310
|
if (allowCredentials) {
|
|
304
311
|
res.setHeader("access-control-allow-credentials", "true");
|
|
305
312
|
}
|
|
306
|
-
res.setHeader("access-control-allow-methods", "GET,HEAD,OPTIONS,PUT,POST,DELETE");
|
|
313
|
+
res.setHeader("access-control-allow-methods", "GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE");
|
|
307
314
|
res.setHeader("access-control-allow-headers", corsAllowedHeaders);
|
|
308
315
|
}
|
|
309
316
|
// A real, app-registered `OPTIONS` route (e.g. an EAS route's `MS-ASProtocolVersions`
|
|
@@ -396,80 +403,8 @@ export class Server {
|
|
|
396
403
|
}
|
|
397
404
|
// Error handling. NOTE: Must be defined last.
|
|
398
405
|
// 4-param signature signals error handler to runChain
|
|
399
|
-
this.app.use(((err,
|
|
400
|
-
|
|
401
|
-
// Only log 500-level errors. 400-level errors are the client's fault and
|
|
402
|
-
// we don't need to spam the logs because of that.
|
|
403
|
-
if (!(err instanceof ApiError) || err.status >= 500) {
|
|
404
|
-
this.logger.error(err);
|
|
405
|
-
}
|
|
406
|
-
else {
|
|
407
|
-
this.logger.debug(err);
|
|
408
|
-
}
|
|
409
|
-
if (typeof err === "string") {
|
|
410
|
-
if (!res.headersSent) {
|
|
411
|
-
res.status(500);
|
|
412
|
-
}
|
|
413
|
-
res.json({ message: "Internal Server Error", status: 500 });
|
|
414
|
-
}
|
|
415
|
-
else if (err instanceof BulkError) {
|
|
416
|
-
const errs = err.errors;
|
|
417
|
-
if (err.stack && process.env.NODE_ENV !== "development") {
|
|
418
|
-
for (const err of errs) {
|
|
419
|
-
if (err) {
|
|
420
|
-
delete err.stack;
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
if (!res.headersSent) {
|
|
425
|
-
res.status(err.status);
|
|
426
|
-
}
|
|
427
|
-
// `Error.message` (and `ApiError`'s own `message`) is non-enumerable, so
|
|
428
|
-
// `JSON.stringify` silently drops it unless each error is reconstructed with it
|
|
429
|
-
// as an explicit own property first — the same fix the single-error branch below
|
|
430
|
-
// already applies.
|
|
431
|
-
res.json(errs.map((e) => (e ? { ...e, message: e.message } : e)));
|
|
432
|
-
}
|
|
433
|
-
else {
|
|
434
|
-
if (!(err instanceof ApiError)) {
|
|
435
|
-
const tmp = new ApiError(ApiErrors.INTERNAL_ERROR, 500, ApiErrorMessages.INTERNAL_ERROR);
|
|
436
|
-
tmp.stack = err.stack;
|
|
437
|
-
err = tmp;
|
|
438
|
-
}
|
|
439
|
-
// leverage NODE_ENV or another config?
|
|
440
|
-
if (err.stack && process.env.NODE_ENV !== "development") {
|
|
441
|
-
delete err.stack;
|
|
442
|
-
}
|
|
443
|
-
if (!res.headersSent) {
|
|
444
|
-
res.status(err.status);
|
|
445
|
-
}
|
|
446
|
-
const formattedError = {
|
|
447
|
-
...err,
|
|
448
|
-
// https://stackoverflow.com/a/25245824
|
|
449
|
-
level: err.level ? err.level.replace(/\[.*?m/g, "") : undefined, // eslint-disable-line no-control-regex
|
|
450
|
-
message: err.message,
|
|
451
|
-
};
|
|
452
|
-
res.json(formattedError);
|
|
453
|
-
}
|
|
454
|
-
this.metricFailedRequests.inc(1);
|
|
455
|
-
}
|
|
456
|
-
return next();
|
|
457
|
-
}));
|
|
458
|
-
this.app.use((req, res) => {
|
|
459
|
-
const start = req._metricsStart;
|
|
460
|
-
if (start !== undefined) {
|
|
461
|
-
this.metricRequestTime
|
|
462
|
-
.labels(req.method, req.path, String(res.statusCode))
|
|
463
|
-
.observe(Date.now() - start);
|
|
464
|
-
}
|
|
465
|
-
this.metricRequestPath.labels(req.path).inc();
|
|
466
|
-
this.metricRequestStatus.labels(req.method, req.path, String(res.statusCode)).inc();
|
|
467
|
-
this.metricTotalRequests.inc(1);
|
|
468
|
-
this.metricCompletedRequests.inc(1);
|
|
469
|
-
if (!res.writableEnded) {
|
|
470
|
-
res.send();
|
|
471
|
-
}
|
|
472
|
-
});
|
|
406
|
+
this.app.use(((err, req, res, next) => this.handleError(err, req, res, next)));
|
|
407
|
+
this.app.use((req, res) => this.recordRequestMetrics(req, res));
|
|
473
408
|
await this.postStart();
|
|
474
409
|
// IPv6: set listen_host to "::" in config; default binds to all IPv4 interfaces
|
|
475
410
|
const listenHost = this.config.get("listen_host") || "0.0.0.0";
|
|
@@ -484,7 +419,99 @@ export class Server {
|
|
|
484
419
|
});
|
|
485
420
|
}
|
|
486
421
|
/**
|
|
487
|
-
*
|
|
422
|
+
* Serializes one error for a client response. An `ApiError` keeps its own fields (`code`, `status`, `message`,
|
|
423
|
+
* ...). Anything else, such as a raw database driver error carrying the failed SQL `query` and its `parameters`,
|
|
424
|
+
* is replaced by the generic internal error so none of its details reach the client. Stack traces are never
|
|
425
|
+
* included.
|
|
426
|
+
*
|
|
427
|
+
* @param err The error to serialize.
|
|
428
|
+
*/
|
|
429
|
+
serializeError(err) {
|
|
430
|
+
if (!(err instanceof ApiError)) {
|
|
431
|
+
return { code: ApiErrors.INTERNAL_ERROR, status: 500, message: ApiErrorMessages.INTERNAL_ERROR };
|
|
432
|
+
}
|
|
433
|
+
const result = {
|
|
434
|
+
...err,
|
|
435
|
+
// https://stackoverflow.com/a/25245824
|
|
436
|
+
level: err.level ? err.level.replace(/\[.*?m/g, "") : undefined,
|
|
437
|
+
// `Error.message` (and `ApiError`'s own `message`) is non-enumerable, so `JSON.stringify` silently drops
|
|
438
|
+
// it unless it is copied as an explicit own property.
|
|
439
|
+
message: err.message,
|
|
440
|
+
};
|
|
441
|
+
delete result.stack;
|
|
442
|
+
return result;
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* The final error handling middleware. Logs the error and sends it to the client as JSON (see `serializeError()`).
|
|
446
|
+
*/
|
|
447
|
+
handleError(err, _req, res, next) {
|
|
448
|
+
if (err) {
|
|
449
|
+
// Only log 500-level errors. 400-level errors are the client's fault and
|
|
450
|
+
// we don't need to spam the logs because of that.
|
|
451
|
+
if (!(err instanceof ApiError) || err.status >= 500) {
|
|
452
|
+
this.logger.error(err);
|
|
453
|
+
}
|
|
454
|
+
else {
|
|
455
|
+
this.logger.debug(err);
|
|
456
|
+
}
|
|
457
|
+
if (typeof err === "string") {
|
|
458
|
+
if (!res.headersSent) {
|
|
459
|
+
res.status(500);
|
|
460
|
+
}
|
|
461
|
+
res.json({ message: "Internal Server Error", status: 500 });
|
|
462
|
+
}
|
|
463
|
+
else if (err instanceof BulkError) {
|
|
464
|
+
// Log the individual non-ApiError failures, since only a generic error is sent for them.
|
|
465
|
+
for (const item of err.errors) {
|
|
466
|
+
if (item && !(item instanceof ApiError)) {
|
|
467
|
+
this.logger.error(item);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
if (!res.headersSent) {
|
|
471
|
+
res.status(err.status);
|
|
472
|
+
}
|
|
473
|
+
res.json(err.errors.map((e) => (e ? this.serializeError(e) : e)));
|
|
474
|
+
}
|
|
475
|
+
else {
|
|
476
|
+
if (!res.headersSent) {
|
|
477
|
+
res.status(err instanceof ApiError ? err.status : 500);
|
|
478
|
+
}
|
|
479
|
+
res.json(this.serializeError(err));
|
|
480
|
+
}
|
|
481
|
+
this.metricFailedRequests.inc(1);
|
|
482
|
+
}
|
|
483
|
+
return next();
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* The final middleware of every request: records the request metrics and ends the response if nothing else did.
|
|
487
|
+
* Metrics are labeled with `req.routePattern` rather than the raw path, so their cardinality is bounded by the
|
|
488
|
+
* application's routes.
|
|
489
|
+
*/
|
|
490
|
+
recordRequestMetrics(req, res) {
|
|
491
|
+
const route = req.routePattern ?? UNMATCHED_ROUTE_LABEL;
|
|
492
|
+
const statusCode = String(res.statusCode);
|
|
493
|
+
const start = req._metricsStart;
|
|
494
|
+
if (start !== undefined) {
|
|
495
|
+
this.metricRequestTime.labels(req.method, route, statusCode).observe(Date.now() - start);
|
|
496
|
+
}
|
|
497
|
+
this.metricRequestPath.labels(route).inc();
|
|
498
|
+
this.metricRequestStatus.labels(req.method, route, statusCode).inc();
|
|
499
|
+
this.metricTotalRequests.inc(1);
|
|
500
|
+
this.metricCompletedRequests.inc(1);
|
|
501
|
+
if (!res.writableEnded) {
|
|
502
|
+
res.send();
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* Stops the server gracefully:
|
|
507
|
+
*
|
|
508
|
+
* 1. Stops all background services.
|
|
509
|
+
* 2. Stops accepting new connections and waits up to `shutdown:drain_timeout` milliseconds (default 10000) for
|
|
510
|
+
* in-flight requests to finish, then closes the remaining keep-alive and WebSocket connections.
|
|
511
|
+
* 3. Destroys the event listener manager, closing its redis subscription.
|
|
512
|
+
* 4. Closes all database connections.
|
|
513
|
+
*
|
|
514
|
+
* The whole sequence is bounded by a 30 second watchdog.
|
|
488
515
|
*/
|
|
489
516
|
stop() {
|
|
490
517
|
return new Promise(async (resolve, reject) => {
|
|
@@ -500,7 +527,21 @@ export class Server {
|
|
|
500
527
|
this.logger.info("Stopping server...");
|
|
501
528
|
try {
|
|
502
529
|
if (this.app?.isListening) {
|
|
503
|
-
this.app.
|
|
530
|
+
if (typeof this.app.shutdown === "function") {
|
|
531
|
+
const drainTimeout = Number(this.config?.get("shutdown:drain_timeout") ?? DEFAULT_DRAIN_TIMEOUT_MS);
|
|
532
|
+
this.logger.info("Waiting for in-flight requests to finish...");
|
|
533
|
+
await this.app.shutdown(Number.isFinite(drainTimeout) ? drainTimeout : DEFAULT_DRAIN_TIMEOUT_MS);
|
|
534
|
+
}
|
|
535
|
+
else {
|
|
536
|
+
this.app.close();
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
if (this.eventListenerManager) {
|
|
540
|
+
this.logger.info("Stopping event manager...");
|
|
541
|
+
// Through the object factory, so the destroyed instance is also dropped from it and a restart
|
|
542
|
+
// creates a new one instead of reusing this one's closed redis client.
|
|
543
|
+
await this.objectFactory.destroy(this.eventListenerManager);
|
|
544
|
+
this.eventListenerManager = undefined;
|
|
504
545
|
}
|
|
505
546
|
this.logger.info("Closing database connections...");
|
|
506
547
|
await this.connectionManager?.disconnect();
|
package/dist/lib/Server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/Server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/Server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,iGAAiG;AACjG,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAEnD,uHAAuH;AACvH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAkB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyGG;AACH,MAAM,OAAO,MAAM;IA6Df;;;;OAIG;IACH,YAAY,OAAsB;QAxClC,2EAA2E;QAC3E,oBAAoB;QACpB,2EAA2E;QAC3E,+FAA+F;QAC/F,mHAAmH;QACnH,yEAAyE;QAC/D,sBAAiB,GAAyB,IAAI,IAAI,CAAC,OAAO,CAAC;YACjE,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,yEAAyE;YAC/E,UAAU,EAAE,CAAC,MAAM,CAAC;SACvB,CAAC,CAAC;QACO,wBAAmB,GAAyB,IAAI,IAAI,CAAC,OAAO,CAAC;YACnE,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,6GAA6G;YACnH,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC;SAC/C,CAAC,CAAC;QACO,sBAAiB,GAA2B,IAAI,IAAI,CAAC,SAAS,CAAC;YACrE,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,+GAA+G;YACrH,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC;YAC5C,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;SACtD,CAAC,CAAC;QACO,4BAAuB,GAAyB,IAAI,IAAI,CAAC,OAAO,CAAC;YACvE,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,sDAAsD;SAC/D,CAAC,CAAC;QACO,yBAAoB,GAAyB,IAAI,IAAI,CAAC,OAAO,CAAC;YACpE,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,sCAAsC;SAC/C,CAAC,CAAC;QACO,wBAAmB,GAAyB,IAAI,IAAI,CAAC,OAAO,CAAC;YACnE,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,yCAAyC;SAClD,CAAC,CAAC;QAQC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW;YACZ,OAAO,CAAC,WAAW,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9G,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,cAAc;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,SAAS;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IACnD,CAAC;IAED;;OAEG;IACO,QAAQ;QACd,gBAAgB;IACpB,CAAC;IAED;;OAEG;IACO,SAAS;QACf,gBAAgB;IACpB,CAAC;IAED;;OAEG;IACI,KAAK;QACR,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,IAAI,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAEvC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAEtB,iGAAiG;gBACjG,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBAEtF,IAAI,CAAC,iBAAiB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACtG,MAAM,UAAU,GAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAqB,IAAI,GAAG,EAAE,CAAC;gBAE3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBACnD,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBAClC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,MAAM,CAAC,kEAAkE,CAAC,EAAE,CAAC,CAAC;oBAC9E,OAAO;gBACX,CAAC;gBAED,qDAAqD;gBACrD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;oBAClE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC7C,CAAC;gBAED,kBAAkB;gBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAChD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;oBAClE,MAAM,UAAU,GAAuB,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC;oBAClG,IAAI,UAAU,EAAE,CAAC;wBACb,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACvC,CAAC;gBACL,CAAC;gBAED,8FAA8F;gBAC9F,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;oBACjB,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;wBAC7E,MAAM,EAAE,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;wBACjE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;oBAC/E,CAAC;yBAAM,CAAC;wBACJ,MAAM,EAAE,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;wBAC7D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;oBAC3E,CAAC;gBACL,CAAC;gBAED,oCAAoC;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;gBAC3D,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAEzD,yBAAyB;gBACzB,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBAEpE,sDAAsD;gBACtD,MAAM,SAAS,GAAQ,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAChF,IAAI,SAAS,EAAE,CAAC;oBACZ,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACpG,CAAC;gBAED,gFAAgF;gBAChF,+EAA+E;gBAC/E,iFAAiF;gBACjF,gFAAgF;gBAChF,gDAAgD;gBAChD,MAAM,SAAS,GAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC9C,MAAM,WAAW,GAAW,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,qBAAqB,CAAC;gBAEtF,IAAI,YAAY,EAAE,EAAE,CAAC;oBACjB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;oBAC9D,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACJ,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;oBACrD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;oBAC5D,MAAM,MAAM,GAAqB,SAAS;wBACtC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;4BACP,aAAa,EAAE,SAAS,CAAC,GAAG;4BAC5B,cAAc,EAAE,SAAS,CAAC,IAAI;4BAC9B,YAAY,EAAE,SAAS,CAAC,EAAE;4BAC1B,UAAU,EAAE,SAAS,CAAC,UAAU;yBACnC,CAAC;wBACJ,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;oBAChB,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBACnD,CAAC;gBAED,OAAO;gBACP,MAAM,UAAU,GAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACtD,MAAM,WAAW,GAAkC,UAAU,CAAC,OAAO,CAAC;gBACtE,MAAM,kBAAkB,GAAG;oBACvB,QAAQ;oBACR,eAAe;oBACf,cAAc;oBACd,UAAU;oBACV,QAAQ;oBACR,YAAY;oBACZ,kBAAkB;iBACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAgB,EAAE,GAAiB,EAAE,IAAkB,EAAE,EAAE;oBACrE,MAAM,MAAM,GAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAY,IAAI,EAAE,CAAC;oBACvD,4EAA4E;oBAC5E,uFAAuF;oBACvF,IAAI,WAAW,GAAG,EAAE,CAAC;oBACrB,IAAI,gBAAgB,GAAG,KAAK,CAAC;oBAC7B,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;wBACtC,WAAW,GAAG,GAAG,CAAC;oBACtB,CAAC;yBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;wBAC5F,WAAW,GAAG,MAAM,CAAC;wBACrB,gBAAgB,GAAG,IAAI,CAAC;oBAC5B,CAAC;oBACD,IAAI,WAAW,EAAE,CAAC;wBACd,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,WAAW,CAAC,CAAC;wBAC1D,IAAI,gBAAgB,EAAE,CAAC;4BACnB,GAAG,CAAC,SAAS,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;wBAC9D,CAAC;wBACD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,wCAAwC,CAAC,CAAC;wBACxF,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,kBAAkB,CAAC,CAAC;oBACtE,CAAC;oBACD,sFAAsF;oBACtF,uFAAuF;oBACvF,uFAAuF;oBACvF,mFAAmF;oBACnF,uDAAuD;oBACvD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC1E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;wBACvB,OAAO;oBACX,CAAC;oBACD,OAAO,IAAI,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;gBAEH,yBAAyB;gBACzB,MAAM,OAAO,GAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI;oBAC/C,cAAc,EAAE,WAAW;iBAC9B,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAiB,EAAE,GAAiB,EAAE,IAAkB,EAAE,EAAE;oBACtE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;wBACxB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;oBACrC,CAAC;oBACD,OAAO,IAAI,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;gBAEH,0EAA0E;gBAC1E,iFAAiF;gBACjF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAgB,EAAE,IAAkB,EAAE,IAAkB,EAAE,EAAE;oBACrE,GAAW,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACxC,OAAO,IAAI,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;gBAEH,mFAAmF;gBACnF,iFAAiF;gBACjF,qFAAqF;gBACrF,MAAM,aAAa,GAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,aAAa,EAAE,CAAC;oBAChB,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;oBAChG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC/D,CAAC;gBAED,MAAM,SAAS,GAAe,EAAE,CAAC;gBAEjC,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;gBACxF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACnB,MAAM,CAAC,mCAAmC,CAAC,CAAC;oBAC5C,OAAO;gBACX,CAAC;gBAED,4CAA4C;gBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBACpD,MAAM,cAAc,GAAQ,EAAE,CAAC;gBAC/B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;oBAClE,IAAI,KAAK,CAAC,SAAS,YAAY,iBAAiB,EAAE,CAAC;wBAC/C,cAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;oBACjC,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,wBAAwB,EAAE;oBACjF,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,IAAI;oBAChB,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC;iBAC7C,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;gBACzC,CAAC;gBAED,uCAAuC;gBACvC,MAAM,KAAK,GAAQ,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACrE,IAAI,KAAK,EAAE,CAAC;oBACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;oBAClD,IAAI,CAAC,oBAAoB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,oBAAoB,EAAE;wBACnF,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;qBACpC,CAAC,CAAC;gBACP,CAAC;gBAED,kDAAkD;gBAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBAC3C,IAAI,CAAC;oBACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;wBACjE,MAAM,UAAU,GAAyB,KAAK,CAAC,SAAS;4BACpD,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC;4BACzD,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;wBACpD,IAAI,UAAU,EAAE,CAAC;4BACb,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;4BACxC,MAAM,KAAK,GAAQ,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;4BAClF,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;4BACrD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACtB,kFAAkF;4BAClF,2EAA2E;4BAC3E,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAC/C,CAAC;oBACL,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,OAAO;gBACX,CAAC;gBAED,8CAA8C;gBAC9C,sDAAsD;gBACtD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAQ,EAAE,GAAgB,EAAE,GAAiB,EAAE,IAAkB,EAAE,EAAE,CAChF,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAQ,CAAC,CAAC;gBAEnD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAgB,EAAE,GAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;gBAE3F,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBAEvB,gFAAgF;gBAChF,MAAM,UAAU,GAAW,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;gBACvE,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;gBAC/D,OAAO,EAAE,CAAC;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvB,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;OAOG;IACO,cAAc,CAAC,GAAQ;QAC7B,IAAI,CAAC,CAAC,GAAG,YAAY,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,CAAC,cAAc,EAAE,CAAC;QACrG,CAAC;QACD,MAAM,MAAM,GAAQ;YAChB,GAAG,GAAG;YACN,uCAAuC;YACvC,KAAK,EAAG,GAAW,CAAC,KAAK,CAAC,CAAC,CAAE,GAAW,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YACjF,yGAAyG;YACzG,sDAAsD;YACtD,OAAO,EAAE,GAAG,CAAC,OAAO;SACvB,CAAC;QACF,OAAO,MAAM,CAAC,KAAK,CAAC;QACpB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACO,WAAW,CAAC,GAAQ,EAAE,IAAiB,EAAE,GAAiB,EAAE,IAAkB;QACpF,IAAI,GAAG,EAAE,CAAC;YACN,yEAAyE;YACzE,kDAAkD;YAClD,IAAI,CAAC,CAAC,GAAG,YAAY,QAAQ,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;gBAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;YAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAChE,CAAC;iBAAM,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;gBAClC,yFAAyF;gBACzF,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBAC5B,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,YAAY,QAAQ,CAAC,EAAE,CAAC;wBACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC;gBACL,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC3B,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACnB,GAAG,CAAC,MAAM,CAAC,GAAG,YAAY,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC3D,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;YAED,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACO,oBAAoB,CAAC,GAAgB,EAAE,GAAiB;QAC9D,MAAM,KAAK,GAAW,GAAG,CAAC,YAAY,IAAI,qBAAqB,CAAC;QAChE,MAAM,UAAU,GAAW,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,KAAK,GAAwB,GAAW,CAAC,aAAa,CAAC;QAC7D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QAC3C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;QACrE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,EAAE,CAAC;QACf,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACI,IAAI;QACP,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,6FAA6F;YAC7F,+FAA+F;YAC/F,qDAAqD;YACrD,MAAM,KAAK,GAAmB,UAAU,CAAC,GAAG,EAAE;gBAC1C,MAAM,CAAC,6BAA6B,CAAC,CAAC;YAC1C,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAEhB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACpD,MAAM,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;YAErC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACvC,IAAI,CAAC;gBACD,IAAI,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;oBACxB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;wBAC1C,MAAM,YAAY,GAAW,MAAM,CAC/B,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,wBAAwB,CAAC,IAAI,wBAAwB,CACzE,CAAC;wBACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;wBAChE,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CACnB,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAC1E,CAAC;oBACN,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;oBACrB,CAAC;gBACL,CAAC;gBAED,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;oBAC9C,8FAA8F;oBAC9F,uEAAuE;oBACvE,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBAC5D,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;gBAC1C,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBACpD,MAAM,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC;gBAE3C,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,EAAE,CAAC;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO;QAChB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACJ"}
|