@cloudflare/containers 0.0.19 → 0.0.21
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/README.md +27 -74
- package/dist/lib/container.d.ts +18 -4
- package/dist/lib/container.js +97 -101
- package/dist/lib/container.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -60,14 +60,13 @@ The main class that extends a container-enbled Durable Object to provide additio
|
|
|
60
60
|
|
|
61
61
|
#### Properties
|
|
62
62
|
|
|
63
|
-
- `defaultPort?`: Optional default port to use when communicating with the container. If not set, you must specify port in containerFetch calls
|
|
63
|
+
- `defaultPort?`: Optional default port to use when communicating with the container. If not set, you must specify port in `containerFetch` calls, or use `switchPort`.
|
|
64
64
|
- `requiredPorts?`: Array of ports that should be checked for availability during container startup. Used by startAndWaitForPorts when no specific ports are provided.
|
|
65
65
|
- `sleepAfter`: How long to keep the container alive without activity (format: number for seconds, or string like "5m", "30s", "1h")
|
|
66
|
-
- `manualStart`: If true, container won't start automatically on DO start (default: false). Set as a class property or via constructor options.
|
|
67
66
|
- `env`: Environment variables to pass to the container (Record<string, string>)
|
|
68
67
|
- `entrypoint?`: Custom entrypoint to override container default (string[])
|
|
69
68
|
- `enableInternet`: Whether to enable internet access for the container (boolean, default: true)
|
|
70
|
-
- Lifecycle methods: `onStart`, `onStop`, `onError`
|
|
69
|
+
- Lifecycle methods: `onStart`, `onStop`, `onError`, `onActivityExpired`
|
|
71
70
|
|
|
72
71
|
#### Constructor Options
|
|
73
72
|
|
|
@@ -75,8 +74,6 @@ The main class that extends a container-enbled Durable Object to provide additio
|
|
|
75
74
|
constructor(ctx: any, env: Env, options?: {
|
|
76
75
|
defaultPort?: number; // Override default port
|
|
77
76
|
sleepAfter?: string | number; // Override sleep timeout
|
|
78
|
-
manualStart?: boolean; // Disable automatic container start (preferred way)
|
|
79
|
-
explicitContainerStart?: boolean; // Legacy option, use manualStart instead
|
|
80
77
|
env?: Record<string, string>; // Environment variables to pass to the container
|
|
81
78
|
entrypoint?: string[]; // Custom entrypoint to override container default
|
|
82
79
|
enableInternet?: boolean; // Whether to enable internet access for the container
|
|
@@ -86,23 +83,35 @@ constructor(ctx: any, env: Env, options?: {
|
|
|
86
83
|
#### Methods
|
|
87
84
|
|
|
88
85
|
##### Lifecycle Methods
|
|
86
|
+
All lifecycle methods can be implemented as async if needed.
|
|
89
87
|
|
|
90
88
|
- `onStart()`: Called when container starts successfully - override to add custom behavior
|
|
91
89
|
- `onStop()`: Called when container shuts down - override to add custom behavior
|
|
92
90
|
- `onError(error)`: Called when container encounters an error - override to add custom behavior
|
|
91
|
+
- `onActivityExpired()`: Called when the activity is expired - override to add custom behavior, like communicating with the container to see if it should be shutdown.
|
|
92
|
+
|
|
93
|
+
By default, it calls `ctx.container.destroy()`.
|
|
94
|
+
If you don't stop the container here, the activity tracker will be renewed, and this lifecycle hook will be called again when the timer re-expires.
|
|
93
95
|
|
|
94
96
|
##### Container Methods
|
|
95
97
|
|
|
96
98
|
- `fetch(request)`: Default handler to forward HTTP requests to the container. Can be overridden.
|
|
97
|
-
- `containerFetch(...)`: Sends an HTTP
|
|
99
|
+
- `containerFetch(...)`: Sends an HTTP request to the container. Supports both standard fetch API signatures:
|
|
98
100
|
- `containerFetch(request, port?)`: Traditional signature with Request object
|
|
99
101
|
- `containerFetch(url, init?, port?)`: Standard fetch-like signature with URL string/object and RequestInit options
|
|
100
|
-
Either port parameter or defaultPort must be specified.
|
|
102
|
+
Either port parameter or defaultPort must be specified.
|
|
103
|
+
When you call any of the fetch functions, the activity will be automatically renewed, and if the container will be started if not already running.
|
|
104
|
+
**Do not use 'containerFetch' when trying to send a Request object with a websocket, until [this issue is addressed](https://github.com/cloudflare/workerd/issues/2319).
|
|
105
|
+
You can overcome this limitation by doing:
|
|
106
|
+
`container.fetch(switchPort(request, port))`
|
|
107
|
+
|
|
101
108
|
- `start()`: Starts the container if it's not running and sets up monitoring, without waiting for any ports to be ready.
|
|
102
109
|
- `startAndWaitForPorts(ports?, maxTries?)`: Starts the container using `start()` and then waits for specified ports to be ready. If no ports are specified, uses `requiredPorts` or `defaultPort`. If no ports can be determined, just starts the container without port checks.
|
|
103
|
-
- `stop(
|
|
110
|
+
- `stop(signal = SIGTERM)`: Sends the specified signal to the container.
|
|
111
|
+
- `destroy()`: Forcefully destroys the container.
|
|
104
112
|
- `renewActivityTimeout()`: Manually renews the container activity timeout (extends container lifetime)
|
|
105
113
|
- `stopDueToInactivity()`: Called automatically when the container times out due to inactivity
|
|
114
|
+
- `alarm()`: Default alarm handler. It's in charge of renewing the container activity and keeping the durable object alive. You can override `alarm()`, but because its functionality is currently vital to managing the container lifecycle, we recommend calling `schedule` to schedule tasks instead.
|
|
106
115
|
|
|
107
116
|
### Utility Functions
|
|
108
117
|
|
|
@@ -131,6 +140,8 @@ export class MyContainer extends Container {
|
|
|
131
140
|
// Lifecycle method called when container shuts down
|
|
132
141
|
override onStop(): void {
|
|
133
142
|
console.log('Container stopped!');
|
|
143
|
+
// you can also call startAndWaitForPorts() again
|
|
144
|
+
// this.startAndWaitForPorts();
|
|
134
145
|
}
|
|
135
146
|
|
|
136
147
|
// Lifecycle method called on errors
|
|
@@ -139,6 +150,14 @@ export class MyContainer extends Container {
|
|
|
139
150
|
throw error;
|
|
140
151
|
}
|
|
141
152
|
|
|
153
|
+
// Lifecycle method when the container class considers the activity to be expired
|
|
154
|
+
override onActivityExpired() {
|
|
155
|
+
console.log(
|
|
156
|
+
'Container activity expired'
|
|
157
|
+
);
|
|
158
|
+
await this.destroy();
|
|
159
|
+
}
|
|
160
|
+
|
|
142
161
|
// Custom method that will extend the container's lifetime
|
|
143
162
|
async performBackgroundTask(): Promise<void> {
|
|
144
163
|
// Do some work...
|
|
@@ -205,72 +224,6 @@ export class ConfiguredContainer extends Container {
|
|
|
205
224
|
}
|
|
206
225
|
```
|
|
207
226
|
|
|
208
|
-
### Manual Container Start Example
|
|
209
|
-
|
|
210
|
-
For more control over container lifecycle, you can use the `explicitContainerStart` option to disable automatic container startup:
|
|
211
|
-
|
|
212
|
-
```typescript
|
|
213
|
-
import { Container } from '@cloudflare/containers';
|
|
214
|
-
|
|
215
|
-
export class ManualStartContainer extends Container {
|
|
216
|
-
// Configure default port for the container
|
|
217
|
-
defaultPort = 8080;
|
|
218
|
-
|
|
219
|
-
// Specify multiple required ports that must be ready before the container is considered started
|
|
220
|
-
// if this is not specified, by default, you will wait only defaultPort
|
|
221
|
-
requiredPorts = [8080, 9090, 3000];
|
|
222
|
-
|
|
223
|
-
// Disable automatic container startup
|
|
224
|
-
manualStart = true;
|
|
225
|
-
|
|
226
|
-
constructor(ctx: any, env: any) {
|
|
227
|
-
// You can also set explicitContainerStart via constructor options
|
|
228
|
-
// super(ctx, env, {
|
|
229
|
-
// explicitContainerStart: true
|
|
230
|
-
// });
|
|
231
|
-
super(ctx, env);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
/**
|
|
235
|
-
* Handle incoming requests - start the container on demand
|
|
236
|
-
*/
|
|
237
|
-
async fetch(request: Request): Promise<Response> {
|
|
238
|
-
const url = new URL(request.url);
|
|
239
|
-
|
|
240
|
-
// Start the container if it's not already running
|
|
241
|
-
if (!this.ctx.container.running) {
|
|
242
|
-
try {
|
|
243
|
-
// Handle different startup paths
|
|
244
|
-
if (url.pathname === '/start') {
|
|
245
|
-
// Just start the container without waiting for any ports
|
|
246
|
-
await this.start();
|
|
247
|
-
return new Response('Container started but ports not yet verified!');
|
|
248
|
-
}
|
|
249
|
-
else if (url.pathname === '/start-api') {
|
|
250
|
-
// Only wait for the API port (3000)
|
|
251
|
-
await this.startAndWaitForPorts(3000);
|
|
252
|
-
return new Response('API port is ready!');
|
|
253
|
-
}
|
|
254
|
-
else if (url.pathname === '/start-all') {
|
|
255
|
-
// Wait for all required ports (uses requiredPorts property)
|
|
256
|
-
await this.startAndWaitForPorts();
|
|
257
|
-
return new Response('All container ports are ready!');
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
// For other paths, just wait for the default port
|
|
261
|
-
await this.startAndWaitForPorts(this.defaultPort);
|
|
262
|
-
}
|
|
263
|
-
} catch (error) {
|
|
264
|
-
return new Response(`Failed to start container: ${error}`, { status: 500 });
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
// For all other requests, forward to the container
|
|
269
|
-
return await this.containerFetch(request);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
```
|
|
273
|
-
|
|
274
227
|
### Multiple Ports and Custom Routing
|
|
275
228
|
|
|
276
229
|
You can create a container that doesn't use a default port and instead routes traffic to different ports based on request path or other factors:
|
package/dist/lib/container.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { ContainerOptions, ContainerStartOptions, ContainerStartConfigOptions, Schedule, StopParams } from '../types';
|
|
2
2
|
import { DurableObject } from 'cloudflare:workers';
|
|
3
|
+
export type Signal = 'SIGKILL' | 'SIGINT' | 'SIGTERM';
|
|
4
|
+
export type SignalInteger = number;
|
|
3
5
|
export declare class Container<Env = unknown> extends DurableObject<Env> {
|
|
4
6
|
defaultPort?: number;
|
|
5
7
|
requiredPorts?: number[];
|
|
@@ -84,7 +86,7 @@ export declare class Container<Env = unknown> extends DurableObject<Env> {
|
|
|
84
86
|
* Shuts down the container.
|
|
85
87
|
* @param signal - The signal to send to the container (default: 15 for SIGTERM)
|
|
86
88
|
*/
|
|
87
|
-
stop(signal?:
|
|
89
|
+
stop(signal?: Signal | SignalInteger): Promise<void>;
|
|
88
90
|
/**
|
|
89
91
|
* Destroys the container. It will trigger onError instead of onStop.
|
|
90
92
|
*/
|
|
@@ -100,6 +102,15 @@ export declare class Container<Env = unknown> extends DurableObject<Env> {
|
|
|
100
102
|
* @param params - Object containing exitCode and reason for the stop
|
|
101
103
|
*/
|
|
102
104
|
onStop(_: StopParams): void | Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Lifecycle method called when the container is running, and the activity timeout
|
|
107
|
+
* expiration has been reached.
|
|
108
|
+
*
|
|
109
|
+
* If you want to shutdown the container, you should call this.destroy() here
|
|
110
|
+
*
|
|
111
|
+
* By default, this method calls `this.destroy()`
|
|
112
|
+
*/
|
|
113
|
+
onActivityExpired(): Promise<void>;
|
|
103
114
|
/**
|
|
104
115
|
* Error handler for container errors
|
|
105
116
|
* Override this method in subclasses to handle container errors
|
|
@@ -153,7 +164,6 @@ export declare class Container<Env = unknown> extends DurableObject<Env> {
|
|
|
153
164
|
private state;
|
|
154
165
|
private monitor;
|
|
155
166
|
private monitorSetup;
|
|
156
|
-
private openStreamCount;
|
|
157
167
|
private sleepAfterMs;
|
|
158
168
|
private blockConcurrencyThrowable;
|
|
159
169
|
/**
|
|
@@ -163,6 +173,7 @@ export declare class Container<Env = unknown> extends DurableObject<Env> {
|
|
|
163
173
|
private requestAndPortFromContainerFetchArgs;
|
|
164
174
|
private startContainerIfNotRunning;
|
|
165
175
|
private setupMonitorCallbacks;
|
|
176
|
+
deleteSchedules(name: string): void;
|
|
166
177
|
/**
|
|
167
178
|
* Method called when an alarm fires
|
|
168
179
|
* Executes any scheduled tasks that are due
|
|
@@ -171,13 +182,16 @@ export declare class Container<Env = unknown> extends DurableObject<Env> {
|
|
|
171
182
|
isRetry: boolean;
|
|
172
183
|
retryCount: number;
|
|
173
184
|
}): Promise<void>;
|
|
185
|
+
timeout?: ReturnType<typeof setTimeout>;
|
|
186
|
+
resolve?: () => void;
|
|
174
187
|
private syncPendingStoppedEvents;
|
|
175
188
|
private callOnStop;
|
|
176
189
|
/**
|
|
177
190
|
* Schedule the next alarm based on upcoming tasks
|
|
178
|
-
* @private
|
|
179
191
|
*/
|
|
180
|
-
|
|
192
|
+
scheduleNextAlarm(ms?: number): Promise<void>;
|
|
193
|
+
listSchedules<T = string>(name: string): Promise<Schedule<T>[]>;
|
|
194
|
+
private toSchedule;
|
|
181
195
|
/**
|
|
182
196
|
* Get a scheduled task by ID
|
|
183
197
|
* @template T Type of the payload data
|
package/dist/lib/container.js
CHANGED
|
@@ -7,14 +7,14 @@ import { DurableObject } from 'cloudflare:workers';
|
|
|
7
7
|
// ====================
|
|
8
8
|
const NO_CONTAINER_INSTANCE_ERROR = 'there is no container instance that can be provided to this durable object';
|
|
9
9
|
const RUNTIME_SIGNALLED_ERROR = 'runtime signalled the container to exit:';
|
|
10
|
-
const
|
|
10
|
+
const UNEXPECTED_EXIT_ERROR = 'container exited with unexpected exit code:';
|
|
11
11
|
const NOT_LISTENING_ERROR = 'the container is not listening';
|
|
12
12
|
const CONTAINER_STATE_KEY = '__CF_CONTAINER_STATE';
|
|
13
13
|
// maxRetries before scheduling next alarm is purposely set to 3,
|
|
14
14
|
// as according to DO docs at https://developers.cloudflare.com/durable-objects/api/alarms/
|
|
15
15
|
// the maximum amount for alarm retries is 6.
|
|
16
|
-
const
|
|
17
|
-
const PING_TIMEOUT_MS =
|
|
16
|
+
const MAX_ALARM_RETRIES = 3;
|
|
17
|
+
const PING_TIMEOUT_MS = 5000;
|
|
18
18
|
const DEFAULT_SLEEP_AFTER = '10m'; // Default sleep after inactivity time
|
|
19
19
|
const INSTANCE_POLL_INTERVAL_MS = 300; // Default interval for polling container state
|
|
20
20
|
// Timeout for getting container instance and launching a VM
|
|
@@ -34,6 +34,11 @@ const FALLBACK_PORT_TO_CHECK = 33;
|
|
|
34
34
|
// Since the timing isn't working, hard coding a max attempts seems
|
|
35
35
|
// to be the only viable solution for now
|
|
36
36
|
const TEMPORARY_HARDCODED_ATTEMPT_MAX = 6;
|
|
37
|
+
const signalToNumbers = {
|
|
38
|
+
SIGINT: 2,
|
|
39
|
+
SIGTERM: 15,
|
|
40
|
+
SIGKILL: 9,
|
|
41
|
+
};
|
|
37
42
|
// =====================
|
|
38
43
|
// =====================
|
|
39
44
|
// HELPER FUNCTIONS
|
|
@@ -47,7 +52,7 @@ function isErrorOfType(e, matchingString) {
|
|
|
47
52
|
const isNoInstanceError = (error) => isErrorOfType(error, NO_CONTAINER_INSTANCE_ERROR);
|
|
48
53
|
const isRuntimeSignalledError = (error) => isErrorOfType(error, RUNTIME_SIGNALLED_ERROR);
|
|
49
54
|
const isNotListeningError = (error) => isErrorOfType(error, NOT_LISTENING_ERROR);
|
|
50
|
-
const isContainerExitNonZeroError = (error) => isErrorOfType(error,
|
|
55
|
+
const isContainerExitNonZeroError = (error) => isErrorOfType(error, UNEXPECTED_EXIT_ERROR);
|
|
51
56
|
function getExitCodeFromError(error) {
|
|
52
57
|
if (!(error instanceof Error)) {
|
|
53
58
|
return null;
|
|
@@ -62,8 +67,8 @@ function getExitCodeFromError(error) {
|
|
|
62
67
|
if (isContainerExitNonZeroError(error)) {
|
|
63
68
|
return +error.message
|
|
64
69
|
.toLowerCase()
|
|
65
|
-
.slice(error.message.toLowerCase().indexOf(
|
|
66
|
-
|
|
70
|
+
.slice(error.message.toLowerCase().indexOf(UNEXPECTED_EXIT_ERROR) +
|
|
71
|
+
UNEXPECTED_EXIT_ERROR.length +
|
|
67
72
|
1);
|
|
68
73
|
}
|
|
69
74
|
return null;
|
|
@@ -85,31 +90,6 @@ function addTimeoutSignal(existingSignal, timeoutMs) {
|
|
|
85
90
|
controller.signal.addEventListener('abort', () => clearTimeout(timeoutId));
|
|
86
91
|
return controller.signal;
|
|
87
92
|
}
|
|
88
|
-
// ==== Stream helpers ====
|
|
89
|
-
function attachOnClosedHook(stream, onClosed) {
|
|
90
|
-
let destructor = () => {
|
|
91
|
-
onClosed();
|
|
92
|
-
destructor = null;
|
|
93
|
-
};
|
|
94
|
-
// we pass the readableStream through a transform stream to detect if the
|
|
95
|
-
// body has been closed.
|
|
96
|
-
const transformStream = new TransformStream({
|
|
97
|
-
transform(chunk, controller) {
|
|
98
|
-
controller.enqueue(chunk);
|
|
99
|
-
},
|
|
100
|
-
flush() {
|
|
101
|
-
if (destructor) {
|
|
102
|
-
destructor();
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
cancel() {
|
|
106
|
-
if (destructor) {
|
|
107
|
-
destructor();
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
});
|
|
111
|
-
return stream.pipeThrough(transformStream);
|
|
112
|
-
}
|
|
113
93
|
// ===============================
|
|
114
94
|
// CONTAINER STATE WRAPPER
|
|
115
95
|
// ===============================
|
|
@@ -385,7 +365,7 @@ export class Container extends DurableObject {
|
|
|
385
365
|
if (i === triesLeft - 1) {
|
|
386
366
|
try {
|
|
387
367
|
// TODO: Remove attempts, the end user doesn't care about this
|
|
388
|
-
this.onError(`Failed to verify port ${port} is available after ${options.retries} attempts, last error: ${errorMessage}`);
|
|
368
|
+
await this.onError(`Failed to verify port ${port} is available after ${options.retries} attempts, last error: ${errorMessage}`);
|
|
389
369
|
}
|
|
390
370
|
catch { }
|
|
391
371
|
throw e;
|
|
@@ -419,8 +399,8 @@ export class Container extends DurableObject {
|
|
|
419
399
|
* Shuts down the container.
|
|
420
400
|
* @param signal - The signal to send to the container (default: 15 for SIGTERM)
|
|
421
401
|
*/
|
|
422
|
-
async stop(signal =
|
|
423
|
-
this.container.signal(signal);
|
|
402
|
+
async stop(signal = 'SIGTERM') {
|
|
403
|
+
this.container.signal(typeof signal === 'string' ? signalToNumbers[signal] : signal);
|
|
424
404
|
}
|
|
425
405
|
/**
|
|
426
406
|
* Destroys the container. It will trigger onError instead of onStop.
|
|
@@ -443,6 +423,17 @@ export class Container extends DurableObject {
|
|
|
443
423
|
onStop(_) {
|
|
444
424
|
// Default implementation does nothing
|
|
445
425
|
}
|
|
426
|
+
/**
|
|
427
|
+
* Lifecycle method called when the container is running, and the activity timeout
|
|
428
|
+
* expiration has been reached.
|
|
429
|
+
*
|
|
430
|
+
* If you want to shutdown the container, you should call this.destroy() here
|
|
431
|
+
*
|
|
432
|
+
* By default, this method calls `this.destroy()`
|
|
433
|
+
*/
|
|
434
|
+
async onActivityExpired() {
|
|
435
|
+
await this.stop();
|
|
436
|
+
}
|
|
446
437
|
/**
|
|
447
438
|
* Error handler for container errors
|
|
448
439
|
* Override this method in subclasses to handle container errors
|
|
@@ -562,33 +553,7 @@ export class Container extends DurableObject {
|
|
|
562
553
|
try {
|
|
563
554
|
// Renew the activity timeout whenever a request is proxied
|
|
564
555
|
this.renewActivityTimeout();
|
|
565
|
-
if (request.body != null) {
|
|
566
|
-
this.openStreamCount++;
|
|
567
|
-
const destructor = () => {
|
|
568
|
-
this.openStreamCount--;
|
|
569
|
-
this.renewActivityTimeout();
|
|
570
|
-
};
|
|
571
|
-
const readable = attachOnClosedHook(request.body, destructor);
|
|
572
|
-
request = new Request(request, { body: readable });
|
|
573
|
-
}
|
|
574
556
|
const res = await tcpPort.fetch(containerUrl, request);
|
|
575
|
-
if (res.webSocket) {
|
|
576
|
-
this.openStreamCount++;
|
|
577
|
-
// TODO: This does not seem to work :(
|
|
578
|
-
res.webSocket.addEventListener('close', async () => {
|
|
579
|
-
this.openStreamCount--;
|
|
580
|
-
this.renewActivityTimeout();
|
|
581
|
-
});
|
|
582
|
-
}
|
|
583
|
-
else if (res.body != null) {
|
|
584
|
-
this.openStreamCount++;
|
|
585
|
-
const destructor = () => {
|
|
586
|
-
this.openStreamCount--;
|
|
587
|
-
this.renewActivityTimeout();
|
|
588
|
-
};
|
|
589
|
-
const readable = attachOnClosedHook(res.body, destructor);
|
|
590
|
-
return new Response(readable, res);
|
|
591
|
-
}
|
|
592
557
|
return res;
|
|
593
558
|
}
|
|
594
559
|
catch (e) {
|
|
@@ -631,8 +596,6 @@ export class Container extends DurableObject {
|
|
|
631
596
|
state;
|
|
632
597
|
monitor;
|
|
633
598
|
monitorSetup = false;
|
|
634
|
-
// openStreamCount keeps track of the number of open streams to the container
|
|
635
|
-
openStreamCount = 0;
|
|
636
599
|
sleepAfterMs = 0;
|
|
637
600
|
// ==========================
|
|
638
601
|
// GENERAL HELPERS
|
|
@@ -655,16 +618,10 @@ export class Container extends DurableObject {
|
|
|
655
618
|
*/
|
|
656
619
|
sql(strings, ...values) {
|
|
657
620
|
let query = '';
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
return [...this.ctx.storage.sql.exec(query, ...values)];
|
|
663
|
-
}
|
|
664
|
-
catch (e) {
|
|
665
|
-
console.error(`Failed to execute SQL query: ${query}`, e);
|
|
666
|
-
throw this.onError(e);
|
|
667
|
-
}
|
|
621
|
+
// Construct the SQL query with placeholders
|
|
622
|
+
query = strings.reduce((acc, str, i) => acc + str + (i < values.length ? '?' : ''), '');
|
|
623
|
+
// Execute the SQL query with the provided values
|
|
624
|
+
return [...this.ctx.storage.sql.exec(query, ...values)];
|
|
668
625
|
}
|
|
669
626
|
requestAndPortFromContainerFetchArgs(requestOrUrl, portOrInit, portParam) {
|
|
670
627
|
let request;
|
|
@@ -821,14 +778,26 @@ export class Container extends DurableObject {
|
|
|
821
778
|
await this.state.setStoppedWithCode(exitCode);
|
|
822
779
|
this.monitorSetup = false;
|
|
823
780
|
this.monitor = undefined;
|
|
781
|
+
return;
|
|
824
782
|
}
|
|
825
783
|
try {
|
|
826
784
|
// TODO: Be able to retrigger onError
|
|
827
785
|
await this.onError(error);
|
|
828
786
|
}
|
|
829
787
|
catch { }
|
|
788
|
+
})
|
|
789
|
+
.finally(() => {
|
|
790
|
+
this.monitorSetup = false;
|
|
791
|
+
if (this.timeout) {
|
|
792
|
+
if (this.resolve)
|
|
793
|
+
this.resolve();
|
|
794
|
+
clearTimeout(this.timeout);
|
|
795
|
+
}
|
|
830
796
|
});
|
|
831
797
|
}
|
|
798
|
+
deleteSchedules(name) {
|
|
799
|
+
this.sql `DELETE FROM container_schedules WHERE callback = ${name}`;
|
|
800
|
+
}
|
|
832
801
|
// ============================
|
|
833
802
|
// ALARMS AND SCHEDULES
|
|
834
803
|
// ============================
|
|
@@ -837,7 +806,7 @@ export class Container extends DurableObject {
|
|
|
837
806
|
* Executes any scheduled tasks that are due
|
|
838
807
|
*/
|
|
839
808
|
async alarm(alarmProps) {
|
|
840
|
-
if (alarmProps.isRetry && alarmProps.retryCount >
|
|
809
|
+
if (alarmProps.isRetry && alarmProps.retryCount > MAX_ALARM_RETRIES) {
|
|
841
810
|
const scheduleCount = Number(this.sql `SELECT COUNT(*) as count FROM container_schedules`[0]?.count) || 0;
|
|
842
811
|
const hasScheduledTasks = scheduleCount > 0;
|
|
843
812
|
if (hasScheduledTasks || this.container.running) {
|
|
@@ -849,18 +818,19 @@ export class Container extends DurableObject {
|
|
|
849
818
|
// The only way for this DO to stop having alarms is:
|
|
850
819
|
// 1. The container is not running anymore.
|
|
851
820
|
// 2. Activity expired and it exits.
|
|
852
|
-
|
|
821
|
+
const prevAlarm = Date.now();
|
|
822
|
+
await this.ctx.storage.setAlarm(prevAlarm);
|
|
853
823
|
await this.ctx.storage.sync();
|
|
854
824
|
const now = Math.floor(Date.now() / 1000);
|
|
855
825
|
// Get all schedules that should be executed now
|
|
856
826
|
const result = this.sql `
|
|
857
827
|
SELECT * FROM container_schedules;
|
|
858
828
|
`;
|
|
859
|
-
let
|
|
829
|
+
let minTime = Date.now() + 3 * 60 * 1000;
|
|
860
830
|
// Process each due schedule
|
|
861
831
|
for (const row of result) {
|
|
862
832
|
if (row.time > now) {
|
|
863
|
-
|
|
833
|
+
minTime = Math.min(minTime, row.time * 1000);
|
|
864
834
|
continue;
|
|
865
835
|
}
|
|
866
836
|
const callback = this[row.callback];
|
|
@@ -891,23 +861,36 @@ export class Container extends DurableObject {
|
|
|
891
861
|
}
|
|
892
862
|
if (this.isActivityExpired()) {
|
|
893
863
|
await this.stopDueToInactivity();
|
|
894
|
-
|
|
864
|
+
// renewActivityTimeout makes sure we don't spam calls here
|
|
865
|
+
this.renewActivityTimeout();
|
|
866
|
+
return;
|
|
867
|
+
}
|
|
868
|
+
const alarmNow = await this.ctx.storage.getAlarm();
|
|
869
|
+
if (alarmNow !== prevAlarm) {
|
|
870
|
+
await this.ctx.storage.setAlarm(Date.now());
|
|
895
871
|
return;
|
|
896
872
|
}
|
|
897
873
|
// Math.min(3m or maxTime, sleepTimeout)
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
const timeout = Math.max(0, maxTime - Date.now());
|
|
874
|
+
minTime = Math.min(minTime, this.sleepAfterMs);
|
|
875
|
+
const timeout = Math.max(0, minTime - Date.now());
|
|
901
876
|
// await a sleep for maxTime to keep the DO alive for
|
|
902
877
|
// at least this long
|
|
903
878
|
await new Promise(resolve => {
|
|
904
|
-
|
|
879
|
+
this.resolve = resolve;
|
|
880
|
+
if (!this.container.running) {
|
|
881
|
+
resolve();
|
|
882
|
+
return;
|
|
883
|
+
}
|
|
884
|
+
this.timeout = setTimeout(() => {
|
|
905
885
|
resolve();
|
|
906
886
|
}, timeout);
|
|
907
887
|
});
|
|
888
|
+
await this.ctx.storage.setAlarm(Date.now());
|
|
908
889
|
// we exit and we have another alarm,
|
|
909
890
|
// the next alarm is the one that decides if it should stop the loop.
|
|
910
891
|
}
|
|
892
|
+
timeout;
|
|
893
|
+
resolve;
|
|
911
894
|
// synchronises container state with the container source of truth to process events
|
|
912
895
|
async syncPendingStoppedEvents() {
|
|
913
896
|
const state = await this.state.getState();
|
|
@@ -938,37 +921,34 @@ export class Container extends DurableObject {
|
|
|
938
921
|
}
|
|
939
922
|
/**
|
|
940
923
|
* Schedule the next alarm based on upcoming tasks
|
|
941
|
-
* @private
|
|
942
924
|
*/
|
|
943
925
|
async scheduleNextAlarm(ms = 1000) {
|
|
944
|
-
const existingAlarm = await this.ctx.storage.getAlarm();
|
|
945
926
|
const nextTime = ms + Date.now();
|
|
946
927
|
// if not already set
|
|
947
|
-
if (
|
|
948
|
-
|
|
949
|
-
|
|
928
|
+
if (this.timeout) {
|
|
929
|
+
if (this.resolve)
|
|
930
|
+
this.resolve();
|
|
931
|
+
clearTimeout(this.timeout);
|
|
950
932
|
}
|
|
933
|
+
await this.ctx.storage.setAlarm(nextTime);
|
|
934
|
+
await this.ctx.storage.sync();
|
|
951
935
|
}
|
|
952
|
-
|
|
953
|
-
* Get a scheduled task by ID
|
|
954
|
-
* @template T Type of the payload data
|
|
955
|
-
* @param id ID of the scheduled task
|
|
956
|
-
* @returns The Schedule object or undefined if not found
|
|
957
|
-
*/
|
|
958
|
-
async getSchedule(id) {
|
|
936
|
+
async listSchedules(name) {
|
|
959
937
|
const result = this.sql `
|
|
960
|
-
SELECT * FROM container_schedules WHERE
|
|
938
|
+
SELECT * FROM container_schedules WHERE callback = ${name} LIMIT 1
|
|
961
939
|
`;
|
|
962
940
|
if (!result || result.length === 0) {
|
|
963
|
-
return
|
|
941
|
+
return [];
|
|
964
942
|
}
|
|
965
|
-
|
|
943
|
+
return result.map((this.toSchedule));
|
|
944
|
+
}
|
|
945
|
+
toSchedule(schedule) {
|
|
966
946
|
let payload;
|
|
967
947
|
try {
|
|
968
948
|
payload = JSON.parse(schedule.payload);
|
|
969
949
|
}
|
|
970
950
|
catch (e) {
|
|
971
|
-
console.error(`Error parsing payload for schedule ${id}:`, e);
|
|
951
|
+
console.error(`Error parsing payload for schedule ${schedule.id}:`, e);
|
|
972
952
|
payload = undefined;
|
|
973
953
|
}
|
|
974
954
|
if (schedule.type === 'delayed') {
|
|
@@ -989,6 +969,22 @@ export class Container extends DurableObject {
|
|
|
989
969
|
time: schedule.time,
|
|
990
970
|
};
|
|
991
971
|
}
|
|
972
|
+
/**
|
|
973
|
+
* Get a scheduled task by ID
|
|
974
|
+
* @template T Type of the payload data
|
|
975
|
+
* @param id ID of the scheduled task
|
|
976
|
+
* @returns The Schedule object or undefined if not found
|
|
977
|
+
*/
|
|
978
|
+
async getSchedule(id) {
|
|
979
|
+
const result = this.sql `
|
|
980
|
+
SELECT * FROM container_schedules WHERE id = ${id} LIMIT 1
|
|
981
|
+
`;
|
|
982
|
+
if (!result || result.length === 0) {
|
|
983
|
+
return undefined;
|
|
984
|
+
}
|
|
985
|
+
const schedule = result[0];
|
|
986
|
+
return this.toSchedule(schedule);
|
|
987
|
+
}
|
|
992
988
|
isActivityExpired() {
|
|
993
989
|
return this.sleepAfterMs <= Date.now();
|
|
994
990
|
}
|
|
@@ -997,11 +993,11 @@ export class Container extends DurableObject {
|
|
|
997
993
|
*/
|
|
998
994
|
async stopDueToInactivity() {
|
|
999
995
|
const alreadyStopped = !this.container.running;
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
return;
|
|
996
|
+
if (alreadyStopped) {
|
|
997
|
+
return false;
|
|
1003
998
|
}
|
|
1004
|
-
await this.
|
|
999
|
+
await this.onActivityExpired();
|
|
1000
|
+
return true;
|
|
1005
1001
|
}
|
|
1006
1002
|
}
|
|
1007
1003
|
//# sourceMappingURL=container.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/lib/container.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/lib/container.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,uBAAuB;AACvB,uBAAuB;AACvB,iBAAiB;AACjB,uBAAuB;AACvB,uBAAuB;AAEvB,MAAM,2BAA2B,GAC/B,4EAA4E,CAAC;AAC/E,MAAM,uBAAuB,GAAG,0CAA0C,CAAC;AAC3E,MAAM,qBAAqB,GAAG,6CAA6C,CAAC;AAC5E,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAC7D,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAEnD,iEAAiE;AACjE,2FAA2F;AAC3F,6CAA6C;AAC7C,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,sCAAsC;AACzE,MAAM,yBAAyB,GAAG,GAAG,CAAC,CAAC,+CAA+C;AAEtF,4DAA4D;AAC5D,6DAA6D;AAC7D,0CAA0C;AAC1C,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAE3C,yDAAyD;AACzD,+DAA+D;AAC/D,6EAA6E;AAC7E,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,4CAA4C;AAC5C,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CACtC,CAAC,gCAAgC,GAAG,IAAI,CAAC,GAAG,yBAAyB,CACtE,CAAC;AACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,yBAAyB,CAAC,CAAC;AAEhG,0DAA0D;AAC1D,wCAAwC;AACxC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,mEAAmE;AACnE,yCAAyC;AACzC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAI1C,MAAM,eAAe,GAAkC;IACrD,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,CAAC;CACX,CAAC;AAEF,wBAAwB;AACxB,wBAAwB;AACxB,qBAAqB;AACrB,wBAAwB;AACxB,wBAAwB;AAExB,0BAA0B;AAE1B,SAAS,aAAa,CAAC,CAAU,EAAE,cAAsB;IACvD,MAAM,WAAW,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/D,OAAO,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAW,EAAE,CACpD,aAAa,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;AACpD,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAW,EAAE,CAC1D,aAAa,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AAChD,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;AACnG,MAAM,2BAA2B,GAAG,CAAC,KAAc,EAAW,EAAE,CAC9D,aAAa,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;AAE9C,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,OAAO;aAClB,WAAW,EAAE;aACb,KAAK,CACJ,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;YAC1D,uBAAuB,CAAC,MAAM;YAC9B,CAAC,CACJ,CAAC;IACN,CAAC;IAED,IAAI,2BAA2B,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,OAAO;aAClB,WAAW,EAAE;aACb,KAAK,CACJ,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC;YACxD,qBAAqB,CAAC,MAAM;YAC5B,CAAC,CACJ,CAAC;IACN,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,cAAuC,EAAE,SAAiB;IAClF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IAEzC,gCAAgC;IAChC,IAAI,cAAc,EAAE,OAAO,EAAE,CAAC;QAC5B,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,UAAU,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,cAAc,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IAEpE,cAAc;IACd,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAElE,8CAA8C;IAC9C,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAE3E,OAAO,UAAU,CAAC,MAAM,CAAC;AAC3B,CAAC;AAED,kCAAkC;AAClC,8BAA8B;AAC9B,kCAAkC;AAElC;;;;;;;GAOG;AACH,MAAM,cAAc;IAEE;IADpB,MAAM,CAAS;IACf,YAAoB,OAAwC;QAAxC,YAAO,GAAP,OAAO,CAAiC;IAAG,CAAC;IAEhE,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QACvC,IAAI,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC;QAChF,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAQ,mBAAmB,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,GAAG;oBACZ,MAAM,EAAE,SAAS;oBACjB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;iBACvB,CAAC;gBACF,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,MAAO,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAAuB;QACtD,IAAI,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACzD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,MAAM;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3D,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAQ,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;CACF;AAED,kCAAkC;AAClC,kCAAkC;AAClC,2BAA2B;AAC3B,kCAAkC;AAClC,kCAAkC;AAElC,MAAM,OAAO,SAAyB,SAAQ,aAAkB;IAC9D,4BAA4B;IAC5B,wBAAwB;IACxB,4BAA4B;IAE5B,mEAAmE;IACnE,WAAW,CAAU;IAErB,kFAAkF;IAClF,qEAAqE;IACrE,aAAa,CAAY;IAEzB,8DAA8D;IAC9D,4DAA4D;IAC5D,oEAAoE;IACpE,UAAU,GAAoB,mBAAmB,CAAC;IAElD,qCAAqC;IACrC,2DAA2D;IAC3D,OAAO,GAAiC,EAAE,CAAC;IAC3C,UAAU,CAAsC;IAChD,cAAc,GAA4C,IAAI,CAAC;IAE/D,4BAA4B;IAC5B,uBAAuB;IACvB,4BAA4B;IAE5B,YAAY,GAAyB,EAAE,GAAQ,EAAE,OAA0B;QACzE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEhB,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,IAAI,EAAE;YACxC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAE5B,wCAAwC;YACxC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,sGAAsG,CACvG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAE/B,4BAA4B;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;gBAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YAC9E,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;gBAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAC7E,CAAC;QAED,6CAA6C;QAC7C,IAAI,CAAC,GAAG,CAAA;;;;;;;;;;KAUP,CAAC;QAEF,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,yBAAyB;IACzB,6BAA6B;IAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACI,KAAK,CAAC,KAAK,CAChB,OAAqC,EACrC,WAAsC;QAEtC,MAAM,WAAW,GACf,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;QAC5F,MAAM,IAAI,CAAC,0BAA0B,CACnC;YACE,KAAK,EAAE,WAAW,EAAE,MAAM;YAC1B,YAAY,EAAE,yBAAyB;YACvC,OAAO,EAAE,sBAAsB;YAC/B,WAAW;SACZ,EACD,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACI,KAAK,CAAC,oBAAoB,CAC/B,KAAyB,EACzB,mBAKC;QAED,iCAAiC;QACjC,IAAI,YAAY,GAAa,EAAE,CAAC;QAEhC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,uDAAuD;YACvD,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,gDAAgD;YAChD,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC1C,wCAAwC;YACxC,YAAY,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAE1C,mBAAmB,KAAK,EAAE,CAAC;QAE3B,IAAI,mBAAmB,GAAG,mBAAmB,CAAC,oBAAoB;YAChE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,GAAG,yBAAyB,CAAC;YACjF,CAAC,CAAC,sBAAsB,CAAC;QAE3B,mBAAmB,KAAK,EAAE,CAAC;QAE3B,IAAI,mBAAmB,GAAG,mBAAmB,CAAC,kBAAkB;YAC9D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,GAAG,yBAAyB,CAAC;YAC/E,CAAC,CAAC,kBAAkB,CAAC;QAEvB,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,mBAAmB,CAAC,KAAK;YAChC,OAAO,EAAE,mBAAmB;YAC5B,YAAY,EAAE,mBAAmB,CAAC,YAAY,IAAI,yBAAyB;YAC3E,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,sBAAsB;SACvD,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACzD,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5C,yCAAyC;gBACzC,MAAM,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;gBAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,CAAC;YAED,OAAO;QACT,CAAC;QAED,2CAA2C;QAC3C,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEtC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;YACtC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAC5C,GAAG,CAAC,IAAI,CAAC,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,KAAK,IAAI,EAAE;YACnE,0CAA0C;YAC1C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;YACjE,MAAM,SAAS,GAAG,mBAAmB,GAAG,SAAS,CAAC;YAElD,kBAAkB;YAClB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAI,SAAS,GAAG,KAAK,CAAC;gBAEtB,4CAA4C;gBAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,IAAI,CAAC;wBACH,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;wBACxE,MAAM,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;wBAE/D,sCAAsC;wBACtC,SAAS,GAAG,IAAI,CAAC;wBACjB,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC;oBACvC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,0EAA0E;wBAC1E,MAAM,YAAY,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAEhE,OAAO,CAAC,IAAI,CAAC,kBAAkB,IAAI,KAAK,YAAY,EAAE,CAAC,CAAC;wBAExD,iDAAiD;wBACjD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;4BAC5B,IAAI,CAAC;gCACH,MAAM,IAAI,CAAC,OAAO,CAChB,IAAI,KAAK,CACP,qFAAqF,CACtF,CACF,CAAC;4BACJ,CAAC;4BAAC,MAAM,CAAC,CAAA,CAAC;4BAEV,MAAM,CAAC,CAAC;wBACV,CAAC;wBAED,qEAAqE;wBACrE,IAAI,CAAC,KAAK,SAAS,GAAG,CAAC,EAAE,CAAC;4BACxB,IAAI,CAAC;gCACH,8DAA8D;gCAC9D,MAAM,IAAI,CAAC,OAAO,CAChB,yBAAyB,IAAI,uBAAuB,OAAO,CAAC,OAAO,0BAA0B,YAAY,EAAE,CAC5G,CAAC;4BACJ,CAAC;4BAAC,MAAM,CAAC,CAAA,CAAC;4BACV,MAAM,CAAC,CAAC;wBACV,CAAC;wBAED,iCAAiC;wBACjC,MAAM,OAAO,CAAC,GAAG,CAAC;4BAChB,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;4BACjE,aAAa;yBACd,CAAC,CAAC;wBAEH,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;4BAC3B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;wBAClD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,YAAY,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,IAAI,EAAE;YAC9C,sBAAsB;YACtB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,sBAAsB;IACtB,0BAA0B;IAE1B;;;OAGG;IACI,KAAK,CAAC,IAAI,CAAC,SAAiC,SAAS;QAC1D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvF,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,sCAAsC;IACxC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,CAAa;QACzB,sCAAsC;IACxC,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,iBAAiB;QAC5B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACI,OAAO,CAAC,KAAc;QAC3B,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,KAAK,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,oBAAoB;QACzB,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAChE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;IAC/C,CAAC;IAED,qBAAqB;IACrB,iBAAiB;IACjB,qBAAqB;IAErB;;;;;;;OAOG;IACI,KAAK,CAAC,QAAQ,CACnB,IAAmB,EACnB,QAAgB,EAChB,OAAW;QAEX,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAEzB,gDAAgD;QAChD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,IAAI,CAAC,QAAsB,CAAC,KAAK,UAAU,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,oBAAoB,CAAC,CAAC;QACxD,CAAC;QAED,iDAAiD;QACjD,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;YACzB,+BAA+B;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YAEpD,IAAI,CAAC,GAAG,CAAA;;kBAEI,EAAE,KAAK,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,SAAS;OACjF,CAAC;YAEF,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAE/B,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,OAAY;gBACrB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;aAClB,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,kCAAkC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;YAElD,IAAI,CAAC,GAAG,CAAA;;kBAEI,EAAE,KAAK,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,IAAI,KAAK,IAAI;OACnF,CAAC;YAEF,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAE/B,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,OAAY;gBACrB,cAAc,EAAE,IAAI;gBACpB,IAAI;gBACJ,IAAI,EAAE,SAAS;aAChB,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IAED,eAAe;IACf,WAAW;IACX,eAAe;IAEf;;;;;;;;;;;;;;;;OAgBG;IACI,KAAK,CAAC,cAAc,CACzB,YAAoC,EACpC,UAAiC,EACjC,SAAkB;QAElB,iFAAiF;QACjF,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,oCAAoC,CAC/D,YAAY,EACZ,UAAU,EACV,SAAS,CACV,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1D,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACnE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzB,OAAO,IAAI,QAAQ,CACjB,qVAAqV,EACrV,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,IAAI,QAAQ,CACjB,8BAA8B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAC1E,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAK,CAAC,CAAC;QAEjD,uCAAuC;QACvC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE5D,IAAI,CAAC;YACH,2DAA2D;YAC3D,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,CAAC;YACV,CAAC;YAED,8DAA8D;YAC9D,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;gBACnD,OAAO,IAAI,QAAQ,CAAC,4CAA4C,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACrF,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACxE,OAAO,IAAI,QAAQ,CACjB,wCAAwC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACpF,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACM,KAAK,CAAC,KAAK,CAAC,OAAgB;QACnC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,IAAI,QAAQ,CACjB,yHAAyH,EACzH,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;QACJ,CAAC;QAED,6DAA6D;QAC7D,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,kCAAkC;IAClC,kCAAkC;IAClC,8BAA8B;IAC9B,kCAAkC;IAClC,kCAAkC;IAElC,6BAA6B;IAC7B,yBAAyB;IACzB,6BAA6B;IAErB,SAAS,CAAiD;IAClE,wEAAwE;IAChE,YAAY,GAAG,KAAK,CAAC;IACrB,KAAK,CAAiB;IACtB,OAAO,CAA+B;IAEtC,YAAY,GAAG,KAAK,CAAC;IAErB,YAAY,GAAG,CAAC,CAAC;IAEzB,6BAA6B;IAC7B,sBAAsB;IACtB,6BAA6B;IAE7B,2DAA2D;IAC3D,0EAA0E;IAC1E,uFAAuF;IAC/E,KAAK,CAAC,yBAAyB,CACrC,gBAAoC;QAEpC,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,IAAI,EAAE;YAC/C,IAAI,CAAC;gBACH,OAAO,MAAM,gBAAgB,EAAE,CAAC;YAClC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,GAAG,CACT,OAA6B,EAC7B,GAAG,MAA4C;QAE/C,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,4CAA4C;QAC5C,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAExF,iDAAiD;QACjD,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,CAAQ,CAAC;IACjE,CAAC;IAEO,oCAAoC,CAC1C,YAAoC,EACpC,UAAiC,EACjC,SAAkB;QAElB,IAAI,OAAgB,CAAC;QACrB,IAAI,IAAwB,CAAC;QAE7B,4DAA4D;QAC5D,IAAI,YAAY,YAAY,OAAO,EAAE,CAAC;YACpC,gDAAgD;YAChD,OAAO,GAAG,YAAY,CAAC;YACvB,IAAI,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,+CAA+C;YAC/C,MAAM,GAAG,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YACtF,MAAM,IAAI,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;YACpE,IAAI;gBACF,OAAO,UAAU,KAAK,QAAQ;oBAC5B,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,OAAO,SAAS,KAAK,QAAQ;wBAC7B,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,SAAS,CAAC;YAElB,0BAA0B;YAC1B,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,qFAAqF;QACrF,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;QAEhC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,8CAA8C;IAC9C,yCAAyC;IACzC,8CAA8C;IAE9C,iDAAiD;IACjD,kCAAkC;IAC1B,KAAK,CAAC,0BAA0B,CACtC,WAAwB,EACxB,OAAqC;QAErC,0CAA0C;QAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC1C,CAAC;YAED,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;YACtC,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAChD,GAAG,CAAC,IAAI,CAAC,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAC9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;YACzD,2DAA2D;YAC3D,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;YACjD,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;YAC1D,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC;YAEtE,2CAA2C;YAC3C,MAAM,WAAW,GAA0B;gBACzC,cAAc;aACf,CAAC;YAEF,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC;YAC1E,IAAI,UAAU;gBAAE,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC;YAEpD,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;gBAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAY,CAAC,CAAC;gBAE3D,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,OAAO,GAAG,IAAI,KAAK,CACvB,wGAAwG,CACzG,CAAC;oBAEF,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC9B,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBAEV,MAAM,OAAO,CAAC;gBAChB,CAAC;qBAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC1B,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBAEV,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,MAAM,WAAW,EAAE,CAAC;gBACtB,CAAC;gBAED,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACjC,CAAC;YAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAE5B,8CAA8C;YAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAChE,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;gBAC5E,MAAM,IAAI,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;gBACjF,OAAO,KAAK,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,mBAAmB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBACzD,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1D,MAAM,WAAW,EAAE,CAAC;gBACtB,CAAC;gBAED,OAAO,CAAC,IAAI,CACV,uCAAuC,EACvC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;gBAEF,MAAM,OAAO,CAAC,GAAG,CAAC;oBAChB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;oBAC7D,aAAa;iBACd,CAAC,CAAC;gBAEH,IAAI,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;gBACJ,CAAC;gBAED,kDAAkD;gBAClD,mFAAmF;gBACnF,IAAI,+BAA+B,KAAK,KAAK,EAAE,CAAC;oBAC9C,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;wBAChF,iEAAiE;wBACjE,2FAA2F;wBAC3F,sBAAsB;wBACtB,EAAE;wBACF,iFAAiF;wBACjF,0DAA0D;wBAC1D,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;oBACnB,CAAC;oBAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAC/C,CAAC;gBAED,SAAS;YACX,CAAC;QACH,CAAC;QAED,+EAA+E;QAC/E,MAAM,IAAI,KAAK,CAAC,iCAAiC,WAAW,CAAC,OAAO,WAAW,CAAC,CAAC;IACnF,CAAC;IAEO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO;YACV,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;YAChB,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,IAAI,EAAE;gBAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;YAC9B,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,uBAAuB;gBACvB,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,qCAAqC;gBACrC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,IAAI,CAAC,OAAO;oBAAE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CAAC,IAAY;QAC1B,IAAI,CAAC,GAAG,CAAA,oDAAoD,IAAI,EAAE,CAAC;IACrE,CAAC;IAED,+BAA+B;IAC/B,2BAA2B;IAC3B,+BAA+B;IAE/B;;;OAGG;IAEM,KAAK,CAAC,KAAK,CAAC,UAAoD;QACvE,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,UAAU,GAAG,iBAAiB,EAAE,CAAC;YACpE,MAAM,aAAa,GACjB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA,mDAAmD,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrF,MAAM,iBAAiB,GAAG,aAAa,GAAG,CAAC,CAAC;YAC5C,IAAI,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAChD,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACjC,CAAC;YACD,OAAO;QACT,CAAC;QAED,oEAAoE;QACpE,qDAAqD;QACrD,4CAA4C;QAC5C,qCAAqC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,gDAAgD;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAMrB;;QAEE,CAAC;QACL,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAEzC,4BAA4B;QAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;gBACnB,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;gBAC7C,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAsB,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAChD,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,QAAQ,iCAAiC,CAAC,CAAC;gBACzE,SAAS;YACX,CAAC;YAED,uCAAuC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAE1C,IAAI,CAAC;gBACH,6CAA6C;gBAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAElE,yEAAyE;gBACzE,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;YAED,2DAA2D;YAC3D,IAAI,CAAC,GAAG,CAAA,8CAA8C,GAAG,CAAC,EAAE,EAAE,CAAC;QACjE,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACjC,2DAA2D;YAC3D,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,wCAAwC;QACxC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAElD,qDAAqD;QACrD,qBAAqB;QACrB,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YAED,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,OAAO,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAE5C,qCAAqC;QACrC,qEAAqE;IACvE,CAAC;IAED,OAAO,CAAiC;IACxC,OAAO,CAAc;IAErB,oFAAoF;IAC5E,KAAK,CAAC,wBAAwB;QACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1D,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;YACpE,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,YAAwB;QAC/C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;YAC/B,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;gBACzB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;QAED,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB,CAAC,EAAE,GAAG,IAAI;QACtC,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEjC,qBAAqB;QACrB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,aAAa,CAAa,IAAY;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAa;2DACmB,IAAI;KAC1D,CAAC;QAEF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA,IAAI,CAAC,UAAa,CAAA,CAAC,CAAC;IACxC,CAAC;IAEO,UAAU,CAAa,QAAqB;QAClD,IAAI,OAAU,CAAC;QACf,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAM,CAAC;QAC9C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,sCAAsC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO,GAAG,SAAyB,CAAC;QACtC,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,EAAE;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,OAAO;gBACP,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,cAAc,EAAE,QAAQ,CAAC,cAAe;aACzC,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,EAAE;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,OAAO;YACP,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAa,EAAU;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAa;qDACa,EAAE;KAClD,CAAC;QAEF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAEO,iBAAiB;QACvB,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB;QAC/B,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAE/C,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|