@livequery/rest 2.0.89 → 2.0.92

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 CHANGED
@@ -1,18 +1,40 @@
1
1
  # @livequery/rest
2
2
 
3
- REST transporter for [livequery](https://github.com/livequery) connects your livequery client to a REST API backend with optional real-time WebSocket support.
3
+ `@livequery/rest` is a REST + WebSocket transporter for `@livequery/core`.
4
+
5
+ It adapts the `LivequeryTransporter` interface to:
6
+
7
+ - HTTP requests for `query`, `add`, `update`, `delete`, and `trigger`
8
+ - optional WebSocket subscriptions for realtime collection updates
9
+ - request/response hooks for auth, caching, logging, or mocking
10
+
11
+ This package does not implement local cache or collection state management. That stays in `@livequery/core`. This package is only the transport layer between a livequery client and your backend.
4
12
 
5
13
  ## Installation
6
14
 
7
15
  ```bash
8
16
  npm install @livequery/rest
9
- # or
17
+ ```
18
+
19
+ ```bash
10
20
  bun add @livequery/rest
11
21
  ```
12
22
 
13
- ## Usage
23
+ ## What It Implements
24
+
25
+ `RestTransporter` implements the `LivequeryTransporter` contract from `@livequery/core`:
26
+
27
+ - `query()` returns an `Observable<Partial<LivequeryQueryResult>>`
28
+ - `add()` sends `POST`
29
+ - `update()` sends `PATCH`
30
+ - `delete()` sends `DELETE`
31
+ - `trigger()` sends `POST /<ref>/~<action>`
32
+
33
+ When a WebSocket endpoint is configured, `query()` can also attach a realtime subscription and merge server-pushed `DataChangeEvent`s into the observable stream.
34
+
35
+ ## Quick Start
14
36
 
15
- ### Basic REST
37
+ ### REST only
16
38
 
17
39
  ```ts
18
40
  import { RestTransporter } from '@livequery/rest'
@@ -22,88 +44,424 @@ const transporter = new RestTransporter({
22
44
  })
23
45
  ```
24
46
 
25
- ### With WebSocket (real-time updates)
47
+ ### REST + realtime
48
+
49
+ ```ts
50
+ import { RestTransporter } from '@livequery/rest'
51
+
52
+ const transporter = new RestTransporter({
53
+ api: 'https://api.example.com',
54
+ ws: 'wss://api.example.com/ws'
55
+ })
56
+ ```
57
+
58
+ ### With `@livequery/core`
26
59
 
27
60
  ```ts
61
+ import { LivequeryCore } from '@livequery/core'
62
+ import { RestTransporter } from '@livequery/rest'
63
+
28
64
  const transporter = new RestTransporter({
29
65
  api: 'https://api.example.com',
30
66
  ws: 'wss://api.example.com/ws'
31
67
  })
68
+
69
+ const core = new LivequeryCore({
70
+ storage,
71
+ transporters: {
72
+ rest: transporter
73
+ }
74
+ })
75
+ ```
76
+
77
+ ## Constructor
78
+
79
+ ```ts
80
+ type RestTransporterConfig = {
81
+ api: string
82
+ ws?: string
83
+ onRequest?: (
84
+ request: RestTransporterRequest & { ref: string }
85
+ ) =>
86
+ | void
87
+ | Partial<RestTransporterRequest & { response?: LivequeryResult<any> }>
88
+ | Promise<void | Partial<RestTransporterRequest & { response?: LivequeryResult<any> }>>
89
+ onResponse?: (
90
+ request: RestTransporterRequest & { ref: string },
91
+ response: LivequeryResult<any>
92
+ ) => void | Promise<void>
93
+ }
94
+ ```
95
+
96
+ ### Options
97
+
98
+ | Option | Type | Description |
99
+ | --- | --- | --- |
100
+ | `api` | `string` | Base HTTP URL used for all REST calls. |
101
+ | `ws` | `string` | Optional WebSocket endpoint for realtime sync. |
102
+ | `onRequest` | `function` | Optional interceptor before `fetch()`. Can override request fields or return a fake response. |
103
+ | `onResponse` | `function` | Optional hook called after the response is resolved. |
104
+
105
+ ## Request Model
106
+
107
+ Outgoing requests use this shape internally:
108
+
109
+ ```ts
110
+ type RestTransporterRequest = {
111
+ url: string
112
+ method: string
113
+ query?: Record<string, any>
114
+ body?: Record<string, any> | string
115
+ headers?: Record<string, string | undefined>
116
+ }
117
+ ```
118
+
119
+ The transporter builds URLs like this:
120
+
121
+ ```text
122
+ <api>/<ref>
123
+ <api>/<ref>?<query>
124
+ <api>/<ref>/~<action>
125
+ ```
126
+
127
+ Examples:
128
+
129
+ ```text
130
+ GET /users
131
+ GET /users/123
132
+ POST /users
133
+ PATCH /users/123
134
+ DELETE /users/123
135
+ POST /users/~ban
32
136
  ```
33
137
 
34
- ### Request / Response Hooks
138
+ ## Hooks
35
139
 
36
- Use `onRequest` to modify or intercept outgoing requests (e.g. inject auth headers), and `onResponse` to inspect responses.
140
+ ### `onRequest`
141
+
142
+ Use `onRequest` to:
143
+
144
+ - inject auth headers
145
+ - override request body or URL
146
+ - short-circuit requests from cache
147
+ - mock server responses in tests
37
148
 
38
149
  ```ts
39
150
  const transporter = new RestTransporter({
40
151
  api: 'https://api.example.com',
41
152
  ws: 'wss://api.example.com/ws',
42
-
43
- onRequest: async ({ url, method, headers, ref }) => {
153
+ onRequest: async ({ headers }) => {
44
154
  const token = await getAccessToken()
155
+
156
+ return {
157
+ headers: {
158
+ ...headers,
159
+ Authorization: `Bearer ${token}`
160
+ }
161
+ }
162
+ }
163
+ })
164
+ ```
165
+
166
+ To skip the network completely, return a `response`:
167
+
168
+ ```ts
169
+ const transporter = new RestTransporter({
170
+ api: 'https://api.example.com',
171
+ onRequest: ({ ref }) => {
172
+ const cached = cache.get(ref)
173
+ if (!cached) return
174
+
45
175
  return {
46
- headers: { Authorization: `Bearer ${token}` }
176
+ response: {
177
+ data: cached
178
+ }
47
179
  }
48
- },
180
+ }
181
+ })
182
+ ```
183
+
184
+ ### `onResponse`
185
+
186
+ Use `onResponse` for logging, metrics, or centralized error inspection:
49
187
 
188
+ ```ts
189
+ const transporter = new RestTransporter({
190
+ api: 'https://api.example.com',
50
191
  onResponse: async (request, response) => {
51
- if (response.error) console.error('API error', response.error)
192
+ if (response.error) {
193
+ console.error('Livequery REST error', {
194
+ url: request.url,
195
+ method: request.method,
196
+ error: response.error
197
+ })
198
+ }
52
199
  }
53
200
  })
54
201
  ```
55
202
 
56
- You can also short-circuit a request by returning a `response` from `onRequest` — useful for caching or mocking:
203
+ ## REST Response Contract
204
+
205
+ The transporter expects your backend to return a `LivequeryResult<T>` envelope:
57
206
 
58
207
  ```ts
59
- onRequest: ({ ref }) => {
60
- const cached = cache.get(ref)
61
- if (cached) return { response: { data: cached } }
208
+ type LivequeryResult<T> = {
209
+ data: T
210
+ error?: {
211
+ code: string
212
+ message: string
213
+ }
62
214
  }
63
215
  ```
64
216
 
65
- ## API
217
+ ### Collection query response
66
218
 
67
- ### `RestTransporter`
219
+ For collection reads, `data` should look like:
68
220
 
69
- #### Constructor options (`RestTransporterConfig`)
221
+ ```ts
222
+ type LivequeryCollectionResponse<T> = {
223
+ summary?: Record<string, any>
224
+ items: T[]
225
+ subscription_token?: string
226
+ count?: {
227
+ prev: number
228
+ next: number
229
+ total: number
230
+ current: number
231
+ }
232
+ has?: {
233
+ prev: boolean
234
+ next: boolean
235
+ }
236
+ cursor?: {
237
+ first: string
238
+ last: string
239
+ }
240
+ }
241
+ ```
70
242
 
71
- | Option | Type | Description |
72
- |---|---|---|
73
- | `api` | `string` | Base URL of your REST API |
74
- | `ws` | `string` (optional) | WebSocket endpoint for real-time updates |
75
- | `onRequest` | function (optional) | Interceptor called before each request. Return partial request overrides or a fake response. |
76
- | `onResponse` | function (optional) | Called after each response. |
243
+ Example:
244
+
245
+ ```json
246
+ {
247
+ "data": {
248
+ "items": [
249
+ { "id": "u1", "name": "Ada" },
250
+ { "id": "u2", "name": "Linus" }
251
+ ],
252
+ "summary": {
253
+ "active": 2
254
+ },
255
+ "count": {
256
+ "prev": 0,
257
+ "next": 20,
258
+ "current": 2,
259
+ "total": 22
260
+ },
261
+ "has": {
262
+ "prev": false,
263
+ "next": true
264
+ },
265
+ "cursor": {
266
+ "first": "cursor-1",
267
+ "last": "cursor-2"
268
+ },
269
+ "subscription_token": "rt_abc123"
270
+ }
271
+ }
272
+ ```
273
+
274
+ ### Single document response
77
275
 
78
- #### Methods
276
+ For document reads, `data` should contain `item`:
277
+
278
+ ```json
279
+ {
280
+ "data": {
281
+ "item": {
282
+ "id": "u1",
283
+ "name": "Ada"
284
+ }
285
+ }
286
+ }
287
+ ```
79
288
 
80
- These follow the `LivequeryTransporter` interface from `@livequery/core`:
289
+ ### Create response
81
290
 
82
- | Method | Description |
83
- |---|---|
84
- | `query(ref, filters)` | Query a collection or document. Returns an Observable. |
85
- | `add(ref, data)` | Create a new document (`POST`) |
86
- | `update(ref, id, data)` | Update a document (`PATCH`) |
87
- | `delete(ref, id)` | Delete a document (`DELETE`) |
88
- | `trigger({ ref, action, payload })` | Trigger a custom action (`POST /ref/~action`) |
291
+ `add()` accepts either of these backend shapes:
89
292
 
90
- ### `Socket`
293
+ ```json
294
+ {
295
+ "data": {
296
+ "item": {
297
+ "id": "u1",
298
+ "name": "Ada"
299
+ }
300
+ }
301
+ }
302
+ ```
303
+
304
+ ```json
305
+ {
306
+ "data": {
307
+ "id": "u1",
308
+ "name": "Ada"
309
+ }
310
+ }
311
+ ```
312
+
313
+ ## Query Output Shape
314
+
315
+ `query()` converts server data into the shape expected by `@livequery/core`:
316
+
317
+ ```ts
318
+ type LivequeryQueryResult = {
319
+ changes: DataChangeEvent[]
320
+ summary: Record<string, any>
321
+ paging: {
322
+ total: number
323
+ current: number
324
+ next?: { count: number; cursor: string }
325
+ prev?: { count: number; cursor: string }
326
+ }
327
+ source: 'query' | 'realtime' | 'action'
328
+ error: { code: string; message: string }
329
+ }
330
+ ```
331
+
332
+ Collection responses are converted to `added` events for each returned item. Document responses are converted to a single `added` event for the returned document.
333
+
334
+ ## Realtime
335
+
336
+ If `ws` is provided, the transporter creates a `Socket` instance and adds these headers to REST calls:
337
+
338
+ - `socket_id`
339
+ - `x-lcid`
340
+ - `x-lgid`
341
+
342
+ This lets your backend bind the HTTP query to the active realtime session.
343
+
344
+ ### Realtime flow
345
+
346
+ 1. A collection query returns `subscription_token`.
347
+ 2. The transporter forwards that token to the socket with a `subscribe` event.
348
+ 3. The socket listens for server `sync` messages.
349
+ 4. Incoming changes are emitted as `DataChangeEvent`s with `source: 'realtime'`.
350
+
351
+ Realtime listening is only attached for standard collection queries. It is skipped when:
352
+
353
+ - no `ws` endpoint is configured
354
+ - the request is a cursor query using `:after`
355
+ - the request is a cursor query using `:before`
356
+ - the request is an around query using `:around`
357
+
358
+ ### WebSocket protocol expected by `Socket`
359
+
360
+ When the socket opens, it sends:
361
+
362
+ ```json
363
+ { "event": "start", "data": { "id": "<client_id>" } }
364
+ ```
365
+
366
+ It also sends a heartbeat every 60 seconds:
367
+
368
+ ```json
369
+ { "event": "ping" }
370
+ ```
91
371
 
92
- Manages the WebSocket connection lifecycle automatically — reconnects on failure, sends heartbeat pings, and routes server-pushed `DataChangeEvent`s to the appropriate collection streams.
372
+ To subscribe a collection query, it sends:
373
+
374
+ ```json
375
+ { "event": "subscribe", "data": { "realtime_token": "<token>" } }
376
+ ```
377
+
378
+ The server should respond with a hello message containing the gateway id:
379
+
380
+ ```json
381
+ { "event": "hello", "gid": "gateway-1" }
382
+ ```
383
+
384
+ Realtime sync messages should look like:
385
+
386
+ ```json
387
+ {
388
+ "event": "sync",
389
+ "data": {
390
+ "changes": [
391
+ {
392
+ "ref": "users",
393
+ "id": "u1",
394
+ "type": "modified",
395
+ "data": { "name": "Ada Lovelace" }
396
+ }
397
+ ]
398
+ }
399
+ }
400
+ ```
401
+
402
+ Each sync change is routed to `listen(ref)` subscribers and normalized to:
403
+
404
+ ```ts
405
+ type DataChangeEvent = {
406
+ collection_ref: string
407
+ id: string
408
+ type: 'added' | 'removed' | 'modified'
409
+ data?: Record<string, any>
410
+ }
411
+ ```
412
+
413
+ ## Public API
414
+
415
+ ### `RestTransporter`
416
+
417
+ ```ts
418
+ import { RestTransporter } from '@livequery/rest'
419
+ ```
420
+
421
+ Methods:
422
+
423
+ - `query({ ref, filters })`
424
+ - `add(ref, data)`
425
+ - `update(collectionRef, id, data)`
426
+ - `delete(collectionRef, id)`
427
+ - `trigger({ ref, action, payload })`
428
+
429
+ ### `Socket`
93
430
 
94
431
  ```ts
95
432
  import { Socket } from '@livequery/rest'
433
+ ```
434
+
435
+ The socket class is exported for low-level integrations and debugging.
436
+
437
+ Example:
96
438
 
439
+ ```ts
97
440
  const socket = new Socket('wss://api.example.com/ws')
98
- socket.listen('users/123').subscribe(change => console.log(change))
99
- socket.stop() // close connection
441
+
442
+ socket.listen('users').subscribe(change => {
443
+ console.log(change)
444
+ })
445
+
446
+ socket.stop()
447
+ ```
448
+
449
+ ## Error Handling
450
+
451
+ If `fetch()` throws or the backend returns an error envelope, the transporter surfaces it as:
452
+
453
+ ```ts
454
+ {
455
+ error: {
456
+ code: string,
457
+ message: string
458
+ }
459
+ }
100
460
  ```
101
461
 
102
- ## Real-time Flow
462
+ For `query()`, errors are emitted as an observable result with `source: 'query'`.
103
463
 
104
- 1. On `query()`, a `subscription_token` returned by the server is forwarded to the socket.
105
- 2. The socket subscribes to the token and listens for `sync` events from the server.
106
- 3. Incoming changes are emitted as `DataChangeEvent`s with `source: "realtime"`.
464
+ For `add()`, `update()`, `delete()`, and `trigger()`, errors are thrown as rejected promises.
107
465
 
108
466
  ## Build
109
467
 
@@ -111,7 +469,11 @@ socket.stop() // close connection
111
469
  bun run build
112
470
  ```
113
471
 
114
- Outputs ESM + type declarations to `dist/`.
472
+ Build steps:
473
+
474
+ - clean `dist/`
475
+ - bundle ESM output with Bun
476
+ - generate `.d.ts` files with TypeScript
115
477
 
116
478
  ## License
117
479
 
@@ -1 +1 @@
1
- {"version":3,"file":"RestTransporter.d.ts","sourceRoot":"","sources":["../src/RestTransporter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,oBAAoB,EAAE,eAAe,EAAmB,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAI3J,MAAM,MAAM,sBAAsB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAA;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAC/C,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAE3C,MAAM,MAAM,qBAAqB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,WAAW,CAAC,OAAO,CAAC,sBAAsB,GAAG;QAAE,QAAQ,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC,CAAC,GAAG,IAAI,CAAA;IAC5J,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC3H,CAAA;AAID,MAAM,MAAM,2BAA2B,CAAC,CAAC,SAAS,GAAG,IAAI;IACrD,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,IAAI,EAAE,CAAC,CAAA;IACP,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAC7D,CAAA;IACD,GAAG,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAA;IACrC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1C,CAAA;AAGD,qBAAa,eAAgB,YAAW,oBAAoB;;IAKpD,OAAO,CAAC,MAAM;IAHlB,OAAO,CAAC,MAAM,CAAoB;gBAGtB,MAAM,EAAE,qBAAqB;IA+DzC,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;KAAE;IAyF9E,GAAG,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAMlE,MAAM,CAAC,CAAC,SAAS,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAI1E,MAAM,CAAC,CAAC,SAAS,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAKxD,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,eAAe;CAGvD"}
1
+ {"version":3,"file":"RestTransporter.d.ts","sourceRoot":"","sources":["../src/RestTransporter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,oBAAoB,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAI1I,MAAM,MAAM,sBAAsB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAA;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAC/C,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAE3C,MAAM,MAAM,qBAAqB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,WAAW,CAAC,OAAO,CAAC,sBAAsB,GAAG;QAAE,QAAQ,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC,CAAC,GAAG,IAAI,CAAA;IAC5J,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC3H,CAAA;AAID,MAAM,MAAM,2BAA2B,CAAC,CAAC,SAAS,GAAG,IAAI;IACrD,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,IAAI,EAAE,CAAC,CAAA;IACP,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAC7D,CAAA;IACD,GAAG,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAA;IACrC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1C,CAAA;AAGD,qBAAa,eAAgB,YAAW,oBAAoB;;IAKpD,OAAO,CAAC,MAAM;IAHlB,OAAO,CAAC,MAAM,CAAoB;gBAGtB,MAAM,EAAE,qBAAqB;IA+DzC,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;KAAE;IAyF9E,GAAG,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAMlE,MAAM,CAAC,CAAC,SAAS,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAI1E,MAAM,CAAC,CAAC,SAAS,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAKxD,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,eAAe;CAGvD"}
package/dist/index.js.map CHANGED
@@ -85,7 +85,7 @@
85
85
  "import rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nconst _state = {};\nfunction v7(options, buf, offset) {\n let bytes;\n if (options) {\n bytes = v7Bytes(options.random ?? options.rng?.() ?? rng(), options.msecs, options.seq, buf, offset);\n }\n else {\n const now = Date.now();\n const rnds = rng();\n updateV7State(_state, now, rnds);\n bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset);\n }\n return buf ?? unsafeStringify(bytes);\n}\nexport function updateV7State(state, now, rnds) {\n state.msecs ??= -Infinity;\n state.seq ??= 0;\n if (now > state.msecs) {\n state.seq = (rnds[6] << 23) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];\n state.msecs = now;\n }\n else {\n state.seq = (state.seq + 1) | 0;\n if (state.seq === 0) {\n state.msecs++;\n }\n }\n return state;\n}\nfunction v7Bytes(rnds, msecs, seq, buf, offset = 0) {\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n if (!buf) {\n buf = new Uint8Array(16);\n offset = 0;\n }\n else {\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n }\n msecs ??= Date.now();\n seq ??= ((rnds[6] * 0x7f) << 24) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];\n buf[offset++] = (msecs / 0x10000000000) & 0xff;\n buf[offset++] = (msecs / 0x100000000) & 0xff;\n buf[offset++] = (msecs / 0x1000000) & 0xff;\n buf[offset++] = (msecs / 0x10000) & 0xff;\n buf[offset++] = (msecs / 0x100) & 0xff;\n buf[offset++] = msecs & 0xff;\n buf[offset++] = 0x70 | ((seq >>> 28) & 0x0f);\n buf[offset++] = (seq >>> 20) & 0xff;\n buf[offset++] = 0x80 | ((seq >>> 14) & 0x3f);\n buf[offset++] = (seq >>> 6) & 0xff;\n buf[offset++] = ((seq << 2) & 0xff) | (rnds[10] & 0x03);\n buf[offset++] = rnds[11];\n buf[offset++] = rnds[12];\n buf[offset++] = rnds[13];\n buf[offset++] = rnds[14];\n buf[offset++] = rnds[15];\n return buf;\n}\nexport default v7;\n",
86
86
  "import { fromEvent, Observable, Subject, BehaviorSubject, merge, ReplaySubject, Subscription, of, interval, EMPTY } from \"rxjs\";\nimport { catchError, finalize, ignoreElements, map, mergeMap, retry, switchMap, takeUntil, tap } from \"rxjs/operators\";\nimport type { DataChangeEvent } from '@livequery/core'\nimport { v7 as uuidv7 } from 'uuid';\n\nexport type LivequerySocketMetadata = {\n client_id: string\n gateway_id?: string\n connected: boolean\n session: number\n}\n\nexport class Socket extends BehaviorSubject<LivequerySocketMetadata> {\n\n public readonly client_id = uuidv7()\n public readonly $gateway = new ReplaySubject<string>(1)\n public readonly $connected = new BehaviorSubject(false)\n\n #topics = new Map<string, { stream: Subject<DataChangeEvent>, listen_count: number }>()\n #$input = new ReplaySubject<{ data: object, event: string }>(1000)\n\n #running: Subscription | undefined\n\n constructor(private endpoint: string) {\n super({\n client_id: uuidv7(),\n connected: false,\n session: 0\n })\n this.#init()\n }\n\n #init() {\n if (typeof WebSocket == 'undefined') return\n if (this.#running) return\n this.#running = of(1).pipe(\n takeUntil(this.pipe(ignoreElements())),\n mergeMap(async () => new WebSocket(this.endpoint)),\n switchMap(ws => merge(\n fromEvent(ws, 'closed').pipe(map(e => { throw e })),\n fromEvent(ws, 'close').pipe(map(e => { throw e })),\n fromEvent(ws, 'error').pipe(map(e => { throw e })),\n fromEvent(ws, 'open').pipe(\n switchMap(() => interval(60000)),\n tap(() => ws.send(JSON.stringify({ event: 'ping' })))\n ),\n fromEvent(ws, 'open').pipe(\n tap(() => {\n this.next({\n ... this.value,\n connected: true,\n session: this.value.session + 1\n })\n console.log(this.value.session == 1 ? 'Websocket connected' : `Websocket re-connected (${this.value.session})`)\n ws.send(JSON.stringify({ event: 'start', data: { id: this.client_id } }))\n }), \n mergeMap(() => this.#$input),\n tap(data => ws.send(JSON.stringify(data)))\n ),\n fromEvent(ws, 'message').pipe(\n tap((evt: any) => {\n const e = JSON.parse(evt.data) as { event: string }\n const fn = (this as any)[`$${e.event}`]\n typeof fn == 'function' && fn.call(this, e)\n })\n )\n ).pipe(\n finalize(() => ws.close())\n )),\n catchError(e => {\n this.$connected.next(false)\n throw e\n }),\n retry({ delay: 1000 })\n ).subscribe()\n }\n\n stop() {\n this.complete()\n }\n\n private $sync(e: { data: { changes: Array<DataChangeEvent & { ref: string }> } }) {\n for (const change of e.data.changes) {\n change.collection_ref = change.ref\n this.#topics.get(change.ref)?.stream.next(change)\n }\n }\n\n private $hello(e: { gid: string }) {\n this.$gateway.next(e.gid)\n }\n\n\n subscribeWith(realtime_token: string) {\n this.#$input.next({ event: 'subscribe', data: { realtime_token } })\n }\n\n\n listen(ref: string): Observable<DataChangeEvent> {\n if (!this.#topics.has(ref)) {\n const stream = new Subject<DataChangeEvent>()\n this.#topics.set(ref, { stream, listen_count: 0 })\n }\n const topic = this.#topics.get(ref)\n if (!topic) return EMPTY\n topic.listen_count++\n return topic.stream.pipe(\n finalize(() => {\n topic.listen_count--\n setTimeout(() => {\n if (topic.listen_count == 0) {\n this.#$input.next({ event: 'unsubscribe', data: { ref } })\n }\n }, 2000)\n })\n )\n }\n}",
87
87
  "\n\n\n\nexport const parseJson = (str: string) => {\n try {\n return JSON.parse(str)\n } catch (e) {\n return null\n }\n}",
88
- "import { of, firstValueFrom, EMPTY, from } from 'rxjs';\nimport { catchError, filter, first, map, mergeMap, take } from 'rxjs/operators';\nimport { merge } from 'rxjs'\nimport { Socket } from './Socket.js';\nimport type { Doc, LivequeryTransporter, LivequeryResult, LivequeryPaging, LivequeryQueryResult, LivequeryAction, LivequeryFilters } from '@livequery/core'\nimport { parseJson } from './helpers/parseJson.js';\n\n\nexport type RestTransporterRequest = {\n url: string\n method: string\n query?: Record<string, any>\n body?: Record<string, any> | string\n headers?: Record<string, string | undefined>\n}\n\nexport type Promiseable<T> = T | Promise<T>\n\nexport type RestTransporterConfig = {\n api: string\n ws?: string\n onRequest?: (options: RestTransporterRequest & { ref: string }) => Promiseable<Partial<RestTransporterRequest & { response?: LivequeryResult<any> }>> | void\n onResponse?: (request: RestTransporterRequest & { ref: string }, response: LivequeryResult<any>) => Promise<void> | void\n}\n\n\n\nexport type LivequeryCollectionResponse<T extends Doc> = {\n summary?: any,\n items: T[],\n item: T\n subscription_token?: string,\n count: {\n prev: number, next: number, total: number, current: number\n }\n has: { prev: boolean, next: boolean }\n cursor: { first: string, last: string }\n}\n\n\nexport class RestTransporter implements LivequeryTransporter {\n\n private socket: Socket | undefined\n\n constructor(\n private config: RestTransporterConfig\n ) {\n if (config.ws) {\n this.socket = new Socket(config.ws!)\n }\n }\n\n async #call<T>(req: Omit<RestTransporterRequest, 'url'> & { ref: string, action?: string }) {\n const url = `${await this.config.api}/${req.ref}${req.action ? `/~${req.action}` : ''}${Object.keys(req.query || {}).length > 0 ? `?${new URLSearchParams(req.query).toString()}` : ''}`\n const base_headers = {\n ...req.body ? {\n 'Content-Type': 'application/json'\n } : {},\n ... this.socket ? {\n socket_id: this.socket.client_id,\n 'x-lcid': this.socket.client_id,\n 'x-lgid': await firstValueFrom(this.socket.$gateway)\n } : {}\n }\n const original_request: RestTransporterRequest & { ref: string } = {\n url,\n method: req.method,\n body: req.body,\n headers: base_headers,\n query: req.query,\n ref: req.ref\n }\n const { response: fake_response, headers, ...modified } = await this.config.onRequest?.(original_request) || {}\n if (fake_response) {\n this.config.onResponse && await this.config.onResponse(original_request, fake_response)\n if (fake_response.error) throw fake_response.error\n return fake_response.data as T\n }\n const request = {\n ref: req.ref,\n url,\n method: req.method,\n ...req.body ? { body: typeof req.body === 'string' ? req.body : JSON.stringify(req.body) } : {},\n ...modified as any as {},\n headers: {\n ...req.body && typeof req.body != 'string' ? { 'Content-Type': 'application/json' } : {},\n ...base_headers,\n ...headers\n },\n }\n const response: LivequeryResult<T> = fake_response ? fake_response : await (async () => {\n try {\n const result = await fetch(request.url, request);\n return parseJson(await result.text()) || {}\n } catch (e) {\n return {\n error: {\n code: e instanceof Error ? e.name : 'UnknownError',\n message: e instanceof Error ? e.message : 'An unknown error occurred'\n }\n }\n }\n })();\n this.config.onResponse && await this.config.onResponse(request, response)\n if (response.error) throw response.error\n return response.data\n }\n\n query<T extends Doc>({ ref, filters }: { ref: string, filters: LivequeryFilters<T> }) {\n const ready$ = from(this.socket ? (this.socket.pipe(filter(s => !!s.connected), map(() => Date.now()))) : of(1)).pipe(first())\n const watch$ = (!this.socket || !filters || filters[':after'] || filters[':before'] || filters[':around']) ? EMPTY : this.socket.listen(ref)\n const refs = ref.split('/')\n const collection_ref = refs.length % 2 == 0 ? refs.slice(0, -1).join('/') : ref\n\n return merge(\n\n\n ready$.pipe(\n take(1),\n mergeMap(() => (\n from(this.#call<LivequeryCollectionResponse<T>>({\n ref,\n method: 'GET',\n query: filters\n })).pipe(\n map(collection => {\n collection.subscription_token && this.socket?.subscribeWith(collection.subscription_token)\n // If collection\n if (collection.items) {\n const items = Array.isArray(collection.items) ? collection.items : []\n const length = items.length\n return {\n summary: collection.summary,\n paging: {\n current: collection?.count?.current ?? length,\n total: collection?.count?.total ?? length,\n next: collection?.has?.next ? {\n count: collection?.count?.next || 0,\n cursor: collection?.cursor?.last\n } : undefined,\n prev: collection?.has?.prev ? {\n count: collection?.count?.prev || 0,\n cursor: collection?.cursor?.first\n } : undefined\n },\n changes: items.map(data => ({\n data,\n type: 'added',\n id: data.id,\n collection_ref\n })),\n source: \"query\"\n } as Partial<LivequeryQueryResult>\n }\n\n // If document \n return {\n summary: collection.summary,\n changes: [{\n data: collection.item,\n type: 'added',\n id: collection.item.id,\n collection_ref\n }],\n source: \"query\"\n } as Partial<LivequeryQueryResult>\n }),\n catchError(e => {\n const error = e instanceof Error ? { code: e.name, message: e.message } : { code: e.code || 'UnknownError', message: e.message || 'An unknown error occurred' }\n return of({ error, source: \"query\" } as Partial<LivequeryQueryResult>)\n })\n\n )))\n ),\n\n watch$.pipe(\n map((change) => {\n const id = change.data?.id\n if (id) {\n const e: Partial<LivequeryQueryResult> = {\n changes: [\n {\n ...change,\n collection_ref,\n id\n }\n ],\n source: \"realtime\"\n }\n return e\n }\n }),\n filter(Boolean)\n )\n )\n }\n\n async add<T extends Doc>(ref: string, data: Partial<Omit<T, 'id'>>) {\n const r = await this.#call<{ item: T, id: string }>({ method: 'POST', ref, body: data, query: {} })\n if (r.id) return r as any as T\n return r.item\n }\n\n update<T extends Doc>(collection_ref: string, id: string, data: Partial<T>) {\n return this.#call<T>({ method: 'PATCH', ref: collection_ref + '/' + id, body: data, query: {} })\n }\n\n delete<T extends Doc>(collection_ref: string, id: string) {\n return this.#call<T>({ method: 'DELETE', ref: collection_ref + '/' + id, body: undefined, query: {} })\n }\n\n\n trigger<T>({ ref, action, payload }: LivequeryAction) {\n return this.#call<T>({ method: 'POST', ref, action, body: payload, query: {} })\n }\n}\n"
88
+ "import { of, firstValueFrom, EMPTY, from } from 'rxjs';\nimport { catchError, filter, first, map, mergeMap, take } from 'rxjs/operators';\nimport { merge } from 'rxjs'\nimport { Socket } from './Socket.js';\nimport type { Doc, LivequeryTransporter, LivequeryResult, LivequeryQueryResult, LivequeryAction, LivequeryFilters } from '@livequery/core'\nimport { parseJson } from './helpers/parseJson.js';\n\n\nexport type RestTransporterRequest = {\n url: string\n method: string\n query?: Record<string, any>\n body?: Record<string, any> | string\n headers?: Record<string, string | undefined>\n}\n\nexport type Promiseable<T> = T | Promise<T>\n\nexport type RestTransporterConfig = {\n api: string\n ws?: string\n onRequest?: (options: RestTransporterRequest & { ref: string }) => Promiseable<Partial<RestTransporterRequest & { response?: LivequeryResult<any> }>> | void\n onResponse?: (request: RestTransporterRequest & { ref: string }, response: LivequeryResult<any>) => Promise<void> | void\n}\n\n\n\nexport type LivequeryCollectionResponse<T extends Doc> = {\n summary?: any,\n items: T[],\n item: T\n subscription_token?: string,\n count: {\n prev: number, next: number, total: number, current: number\n }\n has: { prev: boolean, next: boolean }\n cursor: { first: string, last: string }\n}\n\n\nexport class RestTransporter implements LivequeryTransporter {\n\n private socket: Socket | undefined\n\n constructor(\n private config: RestTransporterConfig\n ) {\n if (config.ws) {\n this.socket = new Socket(config.ws!)\n }\n }\n\n async #call<T>(req: Omit<RestTransporterRequest, 'url'> & { ref: string, action?: string }) {\n const url = `${await this.config.api}/${req.ref}${req.action ? `/~${req.action}` : ''}${Object.keys(req.query || {}).length > 0 ? `?${new URLSearchParams(req.query).toString()}` : ''}`\n const base_headers = {\n ...req.body ? {\n 'Content-Type': 'application/json'\n } : {},\n ... this.socket ? {\n socket_id: this.socket.client_id,\n 'x-lcid': this.socket.client_id,\n 'x-lgid': await firstValueFrom(this.socket.$gateway)\n } : {}\n }\n const original_request: RestTransporterRequest & { ref: string } = {\n url,\n method: req.method,\n body: req.body,\n headers: base_headers,\n query: req.query,\n ref: req.ref\n }\n const { response: fake_response, headers, ...modified } = await this.config.onRequest?.(original_request) || {}\n if (fake_response) {\n this.config.onResponse && await this.config.onResponse(original_request, fake_response)\n if (fake_response.error) throw fake_response.error\n return fake_response.data as T\n }\n const request = {\n ref: req.ref,\n url,\n method: req.method,\n ...req.body ? { body: typeof req.body === 'string' ? req.body : JSON.stringify(req.body) } : {},\n ...modified as any as {},\n headers: {\n ...req.body && typeof req.body != 'string' ? { 'Content-Type': 'application/json' } : {},\n ...base_headers,\n ...headers\n },\n }\n const response: LivequeryResult<T> = fake_response ? fake_response : await (async () => {\n try {\n const result = await fetch(request.url, request);\n return parseJson(await result.text()) || {}\n } catch (e) {\n return {\n error: {\n code: e instanceof Error ? e.name : 'UnknownError',\n message: e instanceof Error ? e.message : 'An unknown error occurred'\n }\n }\n }\n })();\n this.config.onResponse && await this.config.onResponse(request, response)\n if (response.error) throw response.error\n return response.data\n }\n\n query<T extends Doc>({ ref, filters }: { ref: string, filters: LivequeryFilters<T> }) {\n const ready$ = from(this.socket ? (this.socket.pipe(filter(s => !!s.connected), map(() => Date.now()))) : of(1)).pipe(first())\n const watch$ = (!this.socket || !filters || filters[':after'] || filters[':before'] || filters[':around']) ? EMPTY : this.socket.listen(ref)\n const refs = ref.split('/')\n const collection_ref = refs.length % 2 == 0 ? refs.slice(0, -1).join('/') : ref\n\n return merge(\n\n\n ready$.pipe(\n take(1),\n mergeMap(() => (\n from(this.#call<LivequeryCollectionResponse<T>>({\n ref,\n method: 'GET',\n query: filters\n })).pipe(\n map(collection => {\n collection.subscription_token && this.socket?.subscribeWith(collection.subscription_token)\n // If collection\n if (collection.items) {\n const items = Array.isArray(collection.items) ? collection.items : []\n const length = items.length\n return {\n summary: collection.summary,\n paging: {\n current: collection?.count?.current ?? length,\n total: collection?.count?.total ?? length,\n next: collection?.has?.next ? {\n count: collection?.count?.next || 0,\n cursor: collection?.cursor?.last\n } : undefined,\n prev: collection?.has?.prev ? {\n count: collection?.count?.prev || 0,\n cursor: collection?.cursor?.first\n } : undefined\n },\n changes: items.map(data => ({\n data,\n type: 'added',\n id: data.id,\n collection_ref\n })),\n source: \"query\"\n } as Partial<LivequeryQueryResult>\n }\n\n // If document \n return {\n summary: collection.summary,\n changes: [{\n data: collection.item,\n type: 'added',\n id: collection.item.id,\n collection_ref\n }],\n source: \"query\"\n } as Partial<LivequeryQueryResult>\n }),\n catchError(e => {\n const error = e instanceof Error ? { code: e.name, message: e.message } : { code: e.code || 'UnknownError', message: e.message || 'An unknown error occurred' }\n return of({ error, source: \"query\" } as Partial<LivequeryQueryResult>)\n })\n\n )))\n ),\n\n watch$.pipe(\n map((change) => {\n const id = change.data?.id\n if (id) {\n const e: Partial<LivequeryQueryResult> = {\n changes: [\n {\n ...change,\n collection_ref,\n id\n }\n ],\n source: \"realtime\"\n }\n return e\n }\n }),\n filter(Boolean)\n )\n )\n }\n\n async add<T extends Doc>(ref: string, data: Partial<Omit<T, 'id'>>) {\n const r = await this.#call<{ item: T, id: string }>({ method: 'POST', ref, body: data, query: {} })\n if (r.id) return r as any as T\n return r.item\n }\n\n update<T extends Doc>(collection_ref: string, id: string, data: Partial<T>) {\n return this.#call<T>({ method: 'PATCH', ref: collection_ref + '/' + id, body: data, query: {} })\n }\n\n delete<T extends Doc>(collection_ref: string, id: string) {\n return this.#call<T>({ method: 'DELETE', ref: collection_ref + '/' + id, body: undefined, query: {} })\n }\n\n\n trigger<T>({ ref, action, payload }: LivequeryAction) {\n return this.#call<T>({ method: 'POST', ref, action, body: payload, query: {} })\n }\n}\n"
89
89
  ],
90
90
  "mappings": ";AAgBA,IAAI,gBAAgB,QAAQ,CAAC,GAAG,GAAG;AAAA,EACjC,gBAAgB,OAAO,kBAClB,EAAE,WAAW,CAAC,EAAE,aAAa,SAAS,QAAS,CAAC,IAAG,IAAG;AAAA,IAAE,GAAE,YAAY;AAAA,OACvE,QAAS,CAAC,IAAG,IAAG;AAAA,IAAE,SAAS,KAAK;AAAA,MAAG,IAAI,OAAO,UAAU,eAAe,KAAK,IAAG,CAAC;AAAA,QAAG,GAAE,KAAK,GAAE;AAAA;AAAA,EAChG,OAAO,cAAc,GAAG,CAAC;AAAA;AAGpB,SAAS,SAAS,CAAC,GAAG,GAAG;AAAA,EAC9B,IAAI,OAAO,MAAM,cAAc,MAAM;AAAA,IACjC,MAAM,IAAI,UAAU,yBAAyB,OAAO,CAAC,IAAI,+BAA+B;AAAA,EAC5F,cAAc,GAAG,CAAC;AAAA,EAClB,SAAS,EAAE,GAAG;AAAA,IAAE,KAAK,cAAc;AAAA;AAAA,EACnC,EAAE,YAAY,MAAM,OAAO,OAAO,OAAO,CAAC,KAAK,GAAG,YAAY,EAAE,WAAW,IAAI;AAAA;AAsF1E,SAAS,SAAS,CAAC,SAAS,YAAY,GAAG,WAAW;AAAA,EAC3D,SAAS,KAAK,CAAC,OAAO;AAAA,IAAE,OAAO,iBAAiB,IAAI,QAAQ,IAAI,EAAE,QAAS,CAAC,SAAS;AAAA,MAAE,QAAQ,KAAK;AAAA,KAAI;AAAA;AAAA,EACxG,OAAO,KAAK,MAAM,IAAI,UAAU,QAAS,CAAC,SAAS,QAAQ;AAAA,IACvD,SAAS,SAAS,CAAC,OAAO;AAAA,MAAE,IAAI;AAAA,QAAE,KAAK,UAAU,KAAK,KAAK,CAAC;AAAA,QAAK,OAAO,GAAG;AAAA,QAAE,OAAO,CAAC;AAAA;AAAA;AAAA,IACrF,SAAS,QAAQ,CAAC,OAAO;AAAA,MAAE,IAAI;AAAA,QAAE,KAAK,UAAU,SAAS,KAAK,CAAC;AAAA,QAAK,OAAO,GAAG;AAAA,QAAE,OAAO,CAAC;AAAA;AAAA;AAAA,IACxF,SAAS,IAAI,CAAC,QAAQ;AAAA,MAAE,OAAO,OAAO,QAAQ,OAAO,KAAK,IAAI,MAAM,OAAO,KAAK,EAAE,KAAK,WAAW,QAAQ;AAAA;AAAA,IAC1G,MAAM,YAAY,UAAU,MAAM,SAAS,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC;AAAA,GACvE;AAAA;AAGI,SAAS,WAAW,CAAC,SAAS,MAAM;AAAA,EACzC,IAAI,IAAI,EAAE,OAAO,GAAG,MAAM,QAAQ,GAAG;AAAA,IAAE,IAAI,EAAE,KAAK;AAAA,MAAG,MAAM,EAAE;AAAA,IAAI,OAAO,EAAE;AAAA,KAAO,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,OAAO,QAAQ,OAAO,aAAa,aAAa,WAAW,QAAQ,SAAS;AAAA,EAC/L,OAAO,EAAE,OAAO,KAAK,CAAC,GAAG,EAAE,WAAW,KAAK,CAAC,GAAG,EAAE,YAAY,KAAK,CAAC,GAAG,OAAO,WAAW,eAAe,EAAE,OAAO,YAAY,QAAQ,GAAG;AAAA,IAAE,OAAO;AAAA,MAAU;AAAA,EAC1J,SAAS,IAAI,CAAC,GAAG;AAAA,IAAE,OAAO,QAAS,CAAC,GAAG;AAAA,MAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;AAAA;AAAA;AAAA,EAC3D,SAAS,IAAI,CAAC,IAAI;AAAA,IACd,IAAI;AAAA,MAAG,MAAM,IAAI,UAAU,iCAAiC;AAAA,IAC5D,OAAO,MAAM,IAAI,GAAG,GAAG,OAAO,IAAI,KAAK;AAAA,MAAG,IAAI;AAAA,QAC1C,IAAI,IAAI,GAAG,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,YAAY,GAAG,KAAK,EAAE,cAAc,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG;AAAA,UAAM,OAAO;AAAA,QAC3J,IAAI,IAAI,GAAG;AAAA,UAAG,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,KAAK;AAAA,QACtC,QAAQ,GAAG;AAAA,eACF;AAAA,eAAQ;AAAA,YAAG,IAAI;AAAA,YAAI;AAAA,eACnB;AAAA,YAAG,EAAE;AAAA,YAAS,OAAO,EAAE,OAAO,GAAG,IAAI,MAAM,MAAM;AAAA,eACjD;AAAA,YAAG,EAAE;AAAA,YAAS,IAAI,GAAG;AAAA,YAAI,KAAK,CAAC,CAAC;AAAA,YAAG;AAAA,eACnC;AAAA,YAAG,KAAK,EAAE,IAAI,IAAI;AAAA,YAAG,EAAE,KAAK,IAAI;AAAA,YAAG;AAAA;AAAA,YAEpC,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,QAAQ,GAAG,OAAO,KAAK,GAAG,OAAO,IAAI;AAAA,cAAE,IAAI;AAAA,cAAG;AAAA,YAAU;AAAA,YAC3G,IAAI,GAAG,OAAO,MAAM,CAAC,KAAM,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,KAAM;AAAA,cAAE,EAAE,QAAQ,GAAG;AAAA,cAAI;AAAA,YAAO;AAAA,YACrF,IAAI,GAAG,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI;AAAA,cAAE,EAAE,QAAQ,EAAE;AAAA,cAAI,IAAI;AAAA,cAAI;AAAA,YAAO;AAAA,YACpE,IAAI,KAAK,EAAE,QAAQ,EAAE,IAAI;AAAA,cAAE,EAAE,QAAQ,EAAE;AAAA,cAAI,EAAE,IAAI,KAAK,EAAE;AAAA,cAAG;AAAA,YAAO;AAAA,YAClE,IAAI,EAAE;AAAA,cAAI,EAAE,IAAI,IAAI;AAAA,YACpB,EAAE,KAAK,IAAI;AAAA,YAAG;AAAA;AAAA,QAEtB,KAAK,KAAK,KAAK,SAAS,CAAC;AAAA,QAC3B,OAAO,GAAG;AAAA,QAAE,KAAK,CAAC,GAAG,CAAC;AAAA,QAAG,IAAI;AAAA,gBAAK;AAAA,QAAU,IAAI,IAAI;AAAA;AAAA,IACtD,IAAI,GAAG,KAAK;AAAA,MAAG,MAAM,GAAG;AAAA,IAAI,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,KAAU,WAAG,MAAM,KAAK;AAAA;AAAA;AAoB9E,SAAS,QAAQ,CAAC,GAAG;AAAA,EAC1B,IAAI,IAAI,OAAO,WAAW,cAAc,OAAO,UAAU,IAAI,KAAK,EAAE,IAAI,IAAI;AAAA,EAC5E,IAAI;AAAA,IAAG,OAAO,EAAE,KAAK,CAAC;AAAA,EACtB,IAAI,KAAK,OAAO,EAAE,WAAW;AAAA,IAAU,OAAO;AAAA,MAC1C,MAAM,QAAS,GAAG;AAAA,QACd,IAAI,KAAK,KAAK,EAAE;AAAA,UAAQ,IAAS;AAAA,QACjC,OAAO,EAAE,OAAO,KAAK,EAAE,MAAM,MAAM,CAAC,EAAE;AAAA;AAAA,IAE9C;AAAA,EACA,MAAM,IAAI,UAAU,IAAI,4BAA4B,iCAAiC;AAAA;AAGhF,SAAS,MAAM,CAAC,GAAG,GAAG;AAAA,EAC3B,IAAI,IAAI,OAAO,WAAW,cAAc,EAAE,OAAO;AAAA,EACjD,IAAI,CAAC;AAAA,IAAG,OAAO;AAAA,EACf,IAAI,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;AAAA,EAC/B,IAAI;AAAA,IACA,QAAQ,MAAW,aAAK,MAAM,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG;AAAA,MAAM,GAAG,KAAK,EAAE,KAAK;AAAA,IAE7E,OAAO,OAAO;AAAA,IAAE,IAAI,EAAE,MAAa;AAAA,YACnC;AAAA,IACI,IAAI;AAAA,MACA,IAAI,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE;AAAA,QAAY,EAAE,KAAK,CAAC;AAAA,cAEnD;AAAA,MAAU,IAAI;AAAA,QAAG,MAAM,EAAE;AAAA;AAAA;AAAA,EAE7B,OAAO;AAAA;AAmBF,SAAS,aAAa,CAAC,IAAI,MAAM,MAAM;AAAA,EAC5C,IAAI,QAAQ,UAAU,WAAW;AAAA,IAAG,SAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,GAAI,IAAI,GAAG,KAAK;AAAA,MACjF,IAAI,MAAM,EAAE,KAAK,OAAO;AAAA,QACpB,IAAI,CAAC;AAAA,UAAI,KAAK,MAAM,UAAU,MAAM,KAAK,MAAM,GAAG,CAAC;AAAA,QACnD,GAAG,KAAK,KAAK;AAAA,MACjB;AAAA,IACJ;AAAA,EACA,OAAO,GAAG,OAAO,MAAM,MAAM,UAAU,MAAM,KAAK,IAAI,CAAC;AAAA;AAGlD,SAAS,OAAO,CAAC,GAAG;AAAA,EACzB,OAAO,gBAAgB,WAAW,KAAK,IAAI,GAAG,QAAQ,IAAI,QAAQ,CAAC;AAAA;AAG9D,SAAS,gBAAgB,CAAC,SAAS,YAAY,WAAW;AAAA,EAC/D,IAAI,CAAC,OAAO;AAAA,IAAe,MAAM,IAAI,UAAU,sCAAsC;AAAA,EACrF,IAAI,IAAI,UAAU,MAAM,SAAS,cAAc,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AAAA,EAC5D,OAAO,IAAI,OAAO,QAAQ,OAAO,kBAAkB,aAAa,gBAAgB,QAAQ,SAAS,GAAG,KAAK,MAAM,GAAG,KAAK,OAAO,GAAG,KAAK,UAAU,WAAW,GAAG,EAAE,OAAO,iBAAiB,QAAS,GAAG;AAAA,IAAE,OAAO;AAAA,KAAS;AAAA,EACtN,SAAS,WAAW,CAAC,GAAG;AAAA,IAAE,OAAO,QAAS,CAAC,GAAG;AAAA,MAAE,OAAO,QAAQ,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM;AAAA;AAAA;AAAA,EACxF,SAAS,IAAI,CAAC,GAAG,GAAG;AAAA,IAAE,IAAI,EAAE,IAAI;AAAA,MAAE,EAAE,KAAK,QAAS,CAAC,GAAG;AAAA,QAAE,OAAO,IAAI,QAAQ,QAAS,CAAC,GAAG,GAAG;AAAA,UAAE,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,GAAG,CAAC;AAAA,SAAI;AAAA;AAAA,MAAM,IAAI;AAAA,QAAG,EAAE,KAAK,EAAE,EAAE,EAAE;AAAA,IAAG;AAAA;AAAA,EACrK,SAAS,MAAM,CAAC,GAAG,GAAG;AAAA,IAAE,IAAI;AAAA,MAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAAA,MAAK,OAAO,GAAG;AAAA,MAAE,OAAO,EAAE,GAAG,IAAI,CAAC;AAAA;AAAA;AAAA,EAC5E,SAAS,IAAI,CAAC,GAAG;AAAA,IAAE,EAAE,iBAAiB,UAAU,QAAQ,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,SAAS,MAAM,IAAI,OAAO,EAAE,GAAG,IAAI,CAAC;AAAA;AAAA,EACpH,SAAS,OAAO,CAAC,OAAO;AAAA,IAAE,OAAO,QAAQ,KAAK;AAAA;AAAA,EAC9C,SAAS,MAAM,CAAC,OAAO;AAAA,IAAE,OAAO,SAAS,KAAK;AAAA;AAAA,EAC9C,SAAS,MAAM,CAAC,GAAG,GAAG;AAAA,IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE;AAAA,MAAQ,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;AAAA;AAAA;AASzE,SAAS,aAAa,CAAC,GAAG;AAAA,EAC/B,IAAI,CAAC,OAAO;AAAA,IAAe,MAAM,IAAI,UAAU,sCAAsC;AAAA,EACrF,IAAI,IAAI,EAAE,OAAO,gBAAgB;AAAA,EACjC,OAAO,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,OAAO,aAAa,aAAa,SAAS,CAAC,IAAI,EAAE,OAAO,UAAU,GAAG,IAAI,CAAC,GAAG,KAAK,MAAM,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,GAAG,EAAE,OAAO,iBAAiB,QAAS,GAAG;AAAA,IAAE,OAAO;AAAA,KAAS;AAAA,EAC9M,SAAS,IAAI,CAAC,GAAG;AAAA,IAAE,EAAE,KAAK,EAAE,MAAM,QAAS,CAAC,GAAG;AAAA,MAAE,OAAO,IAAI,QAAQ,QAAS,CAAC,SAAS,QAAQ;AAAA,QAAE,IAAI,EAAE,GAAG,CAAC,GAAG,OAAO,SAAS,QAAQ,EAAE,MAAM,EAAE,KAAK;AAAA,OAAI;AAAA;AAAA;AAAA,EACzJ,SAAS,MAAM,CAAC,SAAS,QAAQ,GAAG,GAAG;AAAA,IAAE,QAAQ,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAG;AAAA,MAAE,QAAQ,EAAE,OAAO,IAAG,MAAM,EAAE,CAAC;AAAA,OAAM,MAAM;AAAA;AAAA;;;AC3PnH,SAAS,UAAU,CAAC,OAAO;AAAA,EAC9B,OAAO,OAAO,UAAU;AAAA;;;ACDrB,SAAS,gBAAgB,CAAC,YAAY;AAAA,EACzC,IAAI,SAAS,QAAS,CAAC,UAAU;AAAA,IAC7B,MAAM,KAAK,QAAQ;AAAA,IACnB,SAAS,QAAQ,IAAI,MAAM,EAAE;AAAA;AAAA,EAEjC,IAAI,WAAW,WAAW,MAAM;AAAA,EAChC,SAAS,YAAY,OAAO,OAAO,MAAM,SAAS;AAAA,EAClD,SAAS,UAAU,cAAc;AAAA,EACjC,OAAO;AAAA;;;ACPJ,IAAI,sBAAsB,iBAAiB,QAAS,CAAC,QAAQ;AAAA,EAChE,OAAO,SAAS,uBAAuB,CAAC,QAAQ;AAAA,IAC5C,OAAO,IAAI;AAAA,IACX,KAAK,UAAU,SACT,OAAO,SAAS;AAAA,IAA8C,OAAO,IAAI,QAAS,CAAC,KAAK,GAAG;AAAA,MAAE,OAAO,IAAI,IAAI,OAAO,IAAI,SAAS;AAAA,KAAI,EAAE,KAAK;AAAA,GAAM,IACjJ;AAAA,IACN,KAAK,OAAO;AAAA,IACZ,KAAK,SAAS;AAAA;AAAA,CAErB;;;ACVM,SAAS,SAAS,CAAC,KAAK,MAAM;AAAA,EACjC,IAAI,KAAK;AAAA,IACL,IAAI,QAAQ,IAAI,QAAQ,IAAI;AAAA,IAC5B,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC;AAAA,EACrC;AAAA;;;ACAJ,IAAI,eAAgB,QAAS,GAAG;AAAA,EAC5B,SAAS,aAAY,CAAC,iBAAiB;AAAA,IACnC,KAAK,kBAAkB;AAAA,IACvB,KAAK,SAAS;AAAA,IACd,KAAK,aAAa;AAAA,IAClB,KAAK,cAAc;AAAA;AAAA,EAEvB,cAAa,UAAU,cAAc,QAAS,GAAG;AAAA,IAC7C,IAAI,KAAK,IAAI,KAAK;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI,CAAC,KAAK,QAAQ;AAAA,MACd,KAAK,SAAS;AAAA,MACd,IAAI,aAAa,KAAK;AAAA,MACtB,IAAI,YAAY;AAAA,QACZ,KAAK,aAAa;AAAA,QAClB,IAAI,MAAM,QAAQ,UAAU,GAAG;AAAA,UAC3B,IAAI;AAAA,YACA,SAAS,eAAe,SAAS,UAAU,GAAG,iBAAiB,aAAa,KAAK,EAAG,CAAC,eAAe,MAAM,iBAAiB,aAAa,KAAK,GAAG;AAAA,cAC5I,IAAI,WAAW,eAAe;AAAA,cAC9B,SAAS,OAAO,IAAI;AAAA,YACxB;AAAA,YAEJ,OAAO,OAAO;AAAA,YAAE,MAAM,EAAE,OAAO,MAAM;AAAA,oBACrC;AAAA,YACI,IAAI;AAAA,cACA,IAAI,kBAAkB,CAAC,eAAe,SAAS,KAAK,aAAa;AAAA,gBAAS,GAAG,KAAK,YAAY;AAAA,sBAElG;AAAA,cAAU,IAAI;AAAA,gBAAK,MAAM,IAAI;AAAA;AAAA;AAAA,QAErC,EACK;AAAA,UACD,WAAW,OAAO,IAAI;AAAA;AAAA,MAE9B;AAAA,MACA,IAAI,mBAAmB,KAAK;AAAA,MAC5B,IAAI,WAAW,gBAAgB,GAAG;AAAA,QAC9B,IAAI;AAAA,UACA,iBAAiB;AAAA,UAErB,OAAO,GAAG;AAAA,UACN,SAAS,aAAa,sBAAsB,EAAE,SAAS,CAAC,CAAC;AAAA;AAAA,MAEjE;AAAA,MACA,IAAI,cAAc,KAAK;AAAA,MACvB,IAAI,aAAa;AAAA,QACb,KAAK,cAAc;AAAA,QACnB,IAAI;AAAA,UACA,SAAS,gBAAgB,SAAS,WAAW,GAAG,kBAAkB,cAAc,KAAK,EAAG,CAAC,gBAAgB,MAAM,kBAAkB,cAAc,KAAK,GAAG;AAAA,YACnJ,IAAI,YAAY,gBAAgB;AAAA,YAChC,IAAI;AAAA,cACA,cAAc,SAAS;AAAA,cAE3B,OAAO,KAAK;AAAA,cACR,SAAS,WAAW,QAAQ,WAAgB,YAAI,SAAS,CAAC;AAAA,cAC1D,IAAI,eAAe,qBAAqB;AAAA,gBACpC,SAAS,cAAc,cAAc,CAAC,GAAG,OAAO,MAAM,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC;AAAA,cAChF,EACK;AAAA,gBACD,OAAO,KAAK,GAAG;AAAA;AAAA;AAAA,UAG3B;AAAA,UAEJ,OAAO,OAAO;AAAA,UAAE,MAAM,EAAE,OAAO,MAAM;AAAA,kBACrC;AAAA,UACI,IAAI;AAAA,YACA,IAAI,mBAAmB,CAAC,gBAAgB,SAAS,KAAK,cAAc;AAAA,cAAS,GAAG,KAAK,aAAa;AAAA,oBAEtG;AAAA,YAAU,IAAI;AAAA,cAAK,MAAM,IAAI;AAAA;AAAA;AAAA,MAErC;AAAA,MACA,IAAI,QAAQ;AAAA,QACR,MAAM,IAAI,oBAAoB,MAAM;AAAA,MACxC;AAAA,IACJ;AAAA;AAAA,EAEJ,cAAa,UAAU,MAAM,QAAS,CAAC,UAAU;AAAA,IAC7C,IAAI;AAAA,IACJ,IAAI,YAAY,aAAa,MAAM;AAAA,MAC/B,IAAI,KAAK,QAAQ;AAAA,QACb,cAAc,QAAQ;AAAA,MAC1B,EACK;AAAA,QACD,IAAI,oBAAoB,eAAc;AAAA,UAClC,IAAI,SAAS,UAAU,SAAS,WAAW,IAAI,GAAG;AAAA,YAC9C;AAAA,UACJ;AAAA,UACA,SAAS,WAAW,IAAI;AAAA,QAC5B;AAAA,SACC,KAAK,eAAe,KAAK,KAAK,iBAAiB,QAAQ,OAAY,YAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;AAAA;AAAA,IAEtG;AAAA;AAAA,EAEJ,cAAa,UAAU,aAAa,QAAS,CAAC,QAAQ;AAAA,IAClD,IAAI,aAAa,KAAK;AAAA,IACtB,OAAO,eAAe,UAAW,MAAM,QAAQ,UAAU,KAAK,WAAW,SAAS,MAAM;AAAA;AAAA,EAE5F,cAAa,UAAU,aAAa,QAAS,CAAC,QAAQ;AAAA,IAClD,IAAI,aAAa,KAAK;AAAA,IACtB,KAAK,aAAa,MAAM,QAAQ,UAAU,KAAK,WAAW,KAAK,MAAM,GAAG,cAAc,aAAa,CAAC,YAAY,MAAM,IAAI;AAAA;AAAA,EAE9H,cAAa,UAAU,gBAAgB,QAAS,CAAC,QAAQ;AAAA,IACrD,IAAI,aAAa,KAAK;AAAA,IACtB,IAAI,eAAe,QAAQ;AAAA,MACvB,KAAK,aAAa;AAAA,IACtB,EACK,SAAI,MAAM,QAAQ,UAAU,GAAG;AAAA,MAChC,UAAU,YAAY,MAAM;AAAA,IAChC;AAAA;AAAA,EAEJ,cAAa,UAAU,SAAS,QAAS,CAAC,UAAU;AAAA,IAChD,IAAI,cAAc,KAAK;AAAA,IACvB,eAAe,UAAU,aAAa,QAAQ;AAAA,IAC9C,IAAI,oBAAoB,eAAc;AAAA,MAClC,SAAS,cAAc,IAAI;AAAA,IAC/B;AAAA;AAAA,EAEJ,cAAa,QAAS,QAAS,GAAG;AAAA,IAC9B,IAAI,QAAQ,IAAI;AAAA,IAChB,MAAM,SAAS;AAAA,IACf,OAAO;AAAA,IACR;AAAA,EACH,OAAO;AAAA,EACT;AAEK,IAAI,qBAAqB,aAAa;AACtC,SAAS,cAAc,CAAC,OAAO;AAAA,EAClC,OAAQ,iBAAiB,gBACpB,SAAS,YAAY,SAAS,WAAW,MAAM,MAAM,KAAK,WAAW,MAAM,GAAG,KAAK,WAAW,MAAM,WAAW;AAAA;AAExH,SAAS,aAAa,CAAC,WAAW;AAAA,EAC9B,IAAI,WAAW,SAAS,GAAG;AAAA,IACvB,UAAU;AAAA,EACd,EACK;AAAA,IACD,UAAU,YAAY;AAAA;AAAA;;;AC3IvB,IAAI,SAAS;AAAA,EAChB,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,SAAS;AAAA,EACT,uCAAuC;AAAA,EACvC,0BAA0B;AAC9B;;;ACLO,IAAI,kBAAkB;AAAA,EACzB,YAAY,QAAS,CAAC,SAAS,SAAS;AAAA,IACpC,IAAI,OAAO,CAAC;AAAA,IACZ,SAAS,KAAK,EAAG,KAAK,UAAU,QAAQ,MAAM;AAAA,MAC1C,KAAK,KAAK,KAAK,UAAU;AAAA,IAC7B;AAAA,IACA,IAAI,WAAW,gBAAgB;AAAA,IAC/B,IAAI,aAAa,QAAQ,aAAkB,YAAS,YAAI,SAAS,YAAY;AAAA,MACzE,OAAO,SAAS,WAAW,MAAM,UAAU,cAAc,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;AAAA,IAC9F;AAAA,IACA,OAAO,WAAW,MAAW,WAAG,cAAc,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;AAAA;AAAA,EAEnF,cAAc,QAAS,CAAC,QAAQ;AAAA,IAC5B,IAAI,WAAW,gBAAgB;AAAA,IAC/B,SAAS,aAAa,QAAQ,aAAkB,YAAS,YAAI,SAAS,iBAAiB,cAAc,MAAM;AAAA;AAAA,EAE/G,UAAU;AACd;;;AChBO,SAAS,oBAAoB,CAAC,KAAK;AAAA,EACtC,gBAAgB,WAAW,QAAS,GAAG;AAAA,IACnC,IAAI,mBAAmB,OAAO;AAAA,IAC9B,IAAI,kBAAkB;AAAA,MAClB,iBAAiB,GAAG;AAAA,IACxB,EACK;AAAA,MACD,MAAM;AAAA;AAAA,GAEb;AAAA;;;ACXE,SAAS,IAAI,GAAG;;;ACAhB,IAAI,wBAAyB,QAAS,GAAG;AAAA,EAAE,OAAO,mBAAmB,KAAK,WAAW,SAAS;AAAA,EAAM;AACpG,SAAS,iBAAiB,CAAC,OAAO;AAAA,EACrC,OAAO,mBAAmB,KAAK,WAAW,KAAK;AAAA;AAE5C,SAAS,gBAAgB,CAAC,OAAO;AAAA,EACpC,OAAO,mBAAmB,KAAK,OAAO,SAAS;AAAA;AAE5C,SAAS,kBAAkB,CAAC,MAAM,OAAO,OAAO;AAAA,EACnD,OAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA;;;ACXJ,IAAI,UAAU;AACP,SAAS,YAAY,CAAC,IAAI;AAAA,EAC7B,IAAI,OAAO,uCAAuC;AAAA,IAC9C,IAAI,SAAS,CAAC;AAAA,IACd,IAAI,QAAQ;AAAA,MACR,UAAU,EAAE,aAAa,OAAO,OAAO,KAAK;AAAA,IAChD;AAAA,IACA,GAAG;AAAA,IACH,IAAI,QAAQ;AAAA,MACR,IAAI,KAAK,SAAS,cAAc,GAAG,aAAa,QAAQ,GAAG;AAAA,MAC3D,UAAU;AAAA,MACV,IAAI,aAAa;AAAA,QACb,MAAM;AAAA,MACV;AAAA,IACJ;AAAA,EACJ,EACK;AAAA,IACD,GAAG;AAAA;AAAA;AAGJ,SAAS,YAAY,CAAC,KAAK;AAAA,EAC9B,IAAI,OAAO,yCAAyC,SAAS;AAAA,IACzD,QAAQ,cAAc;AAAA,IACtB,QAAQ,QAAQ;AAAA,EACpB;AAAA;;;AChBJ,IAAI,aAAc,QAAS,CAAC,QAAQ;AAAA,EAChC,UAAU,aAAY,MAAM;AAAA,EAC5B,SAAS,WAAU,CAAC,aAAa;AAAA,IAC7B,IAAI,QAAQ,OAAO,KAAK,IAAI,KAAK;AAAA,IACjC,MAAM,YAAY;AAAA,IAClB,IAAI,aAAa;AAAA,MACb,MAAM,cAAc;AAAA,MACpB,IAAI,eAAe,WAAW,GAAG;AAAA,QAC7B,YAAY,IAAI,KAAK;AAAA,MACzB;AAAA,IACJ,EACK;AAAA,MACD,MAAM,cAAc;AAAA;AAAA,IAExB,OAAO;AAAA;AAAA,EAEX,YAAW,SAAS,QAAS,CAAC,MAAM,OAAO,UAAU;AAAA,IACjD,OAAO,IAAI,eAAe,MAAM,OAAO,QAAQ;AAAA;AAAA,EAEnD,YAAW,UAAU,OAAO,QAAS,CAAC,OAAO;AAAA,IACzC,IAAI,KAAK,WAAW;AAAA,MAChB,0BAA0B,iBAAiB,KAAK,GAAG,IAAI;AAAA,IAC3D,EACK;AAAA,MACD,KAAK,MAAM,KAAK;AAAA;AAAA;AAAA,EAGxB,YAAW,UAAU,QAAQ,QAAS,CAAC,KAAK;AAAA,IACxC,IAAI,KAAK,WAAW;AAAA,MAChB,0BAA0B,kBAAkB,GAAG,GAAG,IAAI;AAAA,IAC1D,EACK;AAAA,MACD,KAAK,YAAY;AAAA,MACjB,KAAK,OAAO,GAAG;AAAA;AAAA;AAAA,EAGvB,YAAW,UAAU,WAAW,QAAS,GAAG;AAAA,IACxC,IAAI,KAAK,WAAW;AAAA,MAChB,0BAA0B,uBAAuB,IAAI;AAAA,IACzD,EACK;AAAA,MACD,KAAK,YAAY;AAAA,MACjB,KAAK,UAAU;AAAA;AAAA;AAAA,EAGvB,YAAW,UAAU,cAAc,QAAS,GAAG;AAAA,IAC3C,IAAI,CAAC,KAAK,QAAQ;AAAA,MACd,KAAK,YAAY;AAAA,MACjB,OAAO,UAAU,YAAY,KAAK,IAAI;AAAA,MACtC,KAAK,cAAc;AAAA,IACvB;AAAA;AAAA,EAEJ,YAAW,UAAU,QAAQ,QAAS,CAAC,OAAO;AAAA,IAC1C,KAAK,YAAY,KAAK,KAAK;AAAA;AAAA,EAE/B,YAAW,UAAU,SAAS,QAAS,CAAC,KAAK;AAAA,IACzC,IAAI;AAAA,MACA,KAAK,YAAY,MAAM,GAAG;AAAA,cAE9B;AAAA,MACI,KAAK,YAAY;AAAA;AAAA;AAAA,EAGzB,YAAW,UAAU,YAAY,QAAS,GAAG;AAAA,IACzC,IAAI;AAAA,MACA,KAAK,YAAY,SAAS;AAAA,cAE9B;AAAA,MACI,KAAK,YAAY;AAAA;AAAA;AAAA,EAGzB,OAAO;AAAA,EACT,YAAY;AAEd,IAAI,QAAQ,SAAS,UAAU;AAC/B,SAAS,IAAI,CAAC,IAAI,SAAS;AAAA,EACvB,OAAO,MAAM,KAAK,IAAI,OAAO;AAAA;AAEjC,IAAI,mBAAoB,QAAS,GAAG;AAAA,EAChC,SAAS,iBAAgB,CAAC,iBAAiB;AAAA,IACvC,KAAK,kBAAkB;AAAA;AAAA,EAE3B,kBAAiB,UAAU,OAAO,QAAS,CAAC,OAAO;AAAA,IAC/C,IAAI,kBAAkB,KAAK;AAAA,IAC3B,IAAI,gBAAgB,MAAM;AAAA,MACtB,IAAI;AAAA,QACA,gBAAgB,KAAK,KAAK;AAAA,QAE9B,OAAO,OAAO;AAAA,QACV,qBAAqB,KAAK;AAAA;AAAA,IAElC;AAAA;AAAA,EAEJ,kBAAiB,UAAU,QAAQ,QAAS,CAAC,KAAK;AAAA,IAC9C,IAAI,kBAAkB,KAAK;AAAA,IAC3B,IAAI,gBAAgB,OAAO;AAAA,MACvB,IAAI;AAAA,QACA,gBAAgB,MAAM,GAAG;AAAA,QAE7B,OAAO,OAAO;AAAA,QACV,qBAAqB,KAAK;AAAA;AAAA,IAElC,EACK;AAAA,MACD,qBAAqB,GAAG;AAAA;AAAA;AAAA,EAGhC,kBAAiB,UAAU,WAAW,QAAS,GAAG;AAAA,IAC9C,IAAI,kBAAkB,KAAK;AAAA,IAC3B,IAAI,gBAAgB,UAAU;AAAA,MAC1B,IAAI;AAAA,QACA,gBAAgB,SAAS;AAAA,QAE7B,OAAO,OAAO;AAAA,QACV,qBAAqB,KAAK;AAAA;AAAA,IAElC;AAAA;AAAA,EAEJ,OAAO;AAAA,EACT;AACF,IAAI,iBAAkB,QAAS,CAAC,QAAQ;AAAA,EACpC,UAAU,iBAAgB,MAAM;AAAA,EAChC,SAAS,eAAc,CAAC,gBAAgB,OAAO,UAAU;AAAA,IACrD,IAAI,QAAQ,OAAO,KAAK,IAAI,KAAK;AAAA,IACjC,IAAI;AAAA,IACJ,IAAI,WAAW,cAAc,KAAK,CAAC,gBAAgB;AAAA,MAC/C,kBAAkB;AAAA,QACd,MAAO,mBAAmB,QAAQ,mBAAwB,YAAI,iBAAiB;AAAA,QAC/E,OAAO,UAAU,QAAQ,UAAe,YAAI,QAAQ;AAAA,QACpD,UAAU,aAAa,QAAQ,aAAkB,YAAI,WAAW;AAAA,MACpE;AAAA,IACJ,EACK;AAAA,MACD,IAAI;AAAA,MACJ,IAAI,SAAS,OAAO,0BAA0B;AAAA,QAC1C,YAAY,OAAO,OAAO,cAAc;AAAA,QACxC,UAAU,cAAc,QAAS,GAAG;AAAA,UAAE,OAAO,MAAM,YAAY;AAAA;AAAA,QAC/D,kBAAkB;AAAA,UACd,MAAM,eAAe,QAAQ,KAAK,eAAe,MAAM,SAAS;AAAA,UAChE,OAAO,eAAe,SAAS,KAAK,eAAe,OAAO,SAAS;AAAA,UACnE,UAAU,eAAe,YAAY,KAAK,eAAe,UAAU,SAAS;AAAA,QAChF;AAAA,MACJ,EACK;AAAA,QACD,kBAAkB;AAAA;AAAA;AAAA,IAG1B,MAAM,cAAc,IAAI,iBAAiB,eAAe;AAAA,IACxD,OAAO;AAAA;AAAA,EAEX,OAAO;AAAA,EACT,UAAU;AAEZ,SAAS,oBAAoB,CAAC,OAAO;AAAA,EACjC,IAAI,OAAO,uCAAuC;AAAA,IAC9C,aAAa,KAAK;AAAA,EACtB,EACK;AAAA,IACD,qBAAqB,KAAK;AAAA;AAAA;AAGlC,SAAS,mBAAmB,CAAC,KAAK;AAAA,EAC9B,MAAM;AAAA;AAEV,SAAS,yBAAyB,CAAC,cAAc,YAAY;AAAA,EACzD,IAAI,wBAAwB,OAAO;AAAA,EACnC,yBAAyB,gBAAgB,WAAW,QAAS,GAAG;AAAA,IAAE,OAAO,sBAAsB,cAAc,UAAU;AAAA,GAAI;AAAA;AAExH,IAAI,iBAAiB;AAAA,EACxB,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AACd;;;ACtLO,IAAI,aAAc,QAAS,GAAG;AAAA,EAAE,OAAQ,OAAO,WAAW,cAAc,OAAO,cAAe;AAAA,EAAmB;;;ACAjH,SAAS,QAAQ,CAAC,GAAG;AAAA,EACxB,OAAO;AAAA;;;ACOJ,SAAS,aAAa,CAAC,KAAK;AAAA,EAC/B,IAAI,IAAI,WAAW,GAAG;AAAA,IAClB,OAAO;AAAA,EACX;AAAA,EACA,IAAI,IAAI,WAAW,GAAG;AAAA,IAClB,OAAO,IAAI;AAAA,EACf;AAAA,EACA,OAAO,SAAS,KAAK,CAAC,OAAO;AAAA,IACzB,OAAO,IAAI,OAAO,QAAS,CAAC,MAAM,IAAI;AAAA,MAAE,OAAO,GAAG,IAAI;AAAA,OAAM,KAAK;AAAA;AAAA;;;ACTzE,IAAI,aAAc,QAAS,GAAG;AAAA,EAC1B,SAAS,WAAU,CAAC,WAAW;AAAA,IAC3B,IAAI,WAAW;AAAA,MACX,KAAK,aAAa;AAAA,IACtB;AAAA;AAAA,EAEJ,YAAW,UAAU,OAAO,QAAS,CAAC,UAAU;AAAA,IAC5C,IAAI,cAAa,IAAI;AAAA,IACrB,YAAW,SAAS;AAAA,IACpB,YAAW,WAAW;AAAA,IACtB,OAAO;AAAA;AAAA,EAEX,YAAW,UAAU,YAAY,QAAS,CAAC,gBAAgB,OAAO,UAAU;AAAA,IACxE,IAAI,QAAQ;AAAA,IACZ,IAAI,aAAa,aAAa,cAAc,IAAI,iBAAiB,IAAI,eAAe,gBAAgB,OAAO,QAAQ;AAAA,IACnH,aAAa,QAAS,GAAG;AAAA,MACrB,IAAI,KAAK,OAAO,WAAW,GAAG,UAAU,SAAS,GAAG;AAAA,MACpD,WAAW,IAAI,WAEP,SAAS,KAAK,YAAY,MAAM,IAClC,SAEM,MAAM,WAAW,UAAU,IAE3B,MAAM,cAAc,UAAU,CAAC;AAAA,KAC9C;AAAA,IACD,OAAO;AAAA;AAAA,EAEX,YAAW,UAAU,gBAAgB,QAAS,CAAC,MAAM;AAAA,IACjD,IAAI;AAAA,MACA,OAAO,KAAK,WAAW,IAAI;AAAA,MAE/B,OAAO,KAAK;AAAA,MACR,KAAK,MAAM,GAAG;AAAA;AAAA;AAAA,EAGtB,YAAW,UAAU,UAAU,QAAS,CAAC,MAAM,aAAa;AAAA,IACxD,IAAI,QAAQ;AAAA,IACZ,cAAc,eAAe,WAAW;AAAA,IACxC,OAAO,IAAI,YAAY,QAAS,CAAC,SAAS,QAAQ;AAAA,MAC9C,IAAI,aAAa,IAAI,eAAe;AAAA,QAChC,MAAM,QAAS,CAAC,OAAO;AAAA,UACnB,IAAI;AAAA,YACA,KAAK,KAAK;AAAA,YAEd,OAAO,KAAK;AAAA,YACR,OAAO,GAAG;AAAA,YACV,WAAW,YAAY;AAAA;AAAA;AAAA,QAG/B,OAAO;AAAA,QACP,UAAU;AAAA,MACd,CAAC;AAAA,MACD,MAAM,UAAU,UAAU;AAAA,KAC7B;AAAA;AAAA,EAEL,YAAW,UAAU,aAAa,QAAS,CAAC,YAAY;AAAA,IACpD,IAAI;AAAA,IACJ,QAAQ,KAAK,KAAK,YAAY,QAAQ,OAAY,YAAS,YAAI,GAAG,UAAU,UAAU;AAAA;AAAA,EAE1F,YAAW,UAAU,cAAqB,QAAS,GAAG;AAAA,IAClD,OAAO;AAAA;AAAA,EAEX,YAAW,UAAU,OAAO,QAAS,GAAG;AAAA,IACpC,IAAI,aAAa,CAAC;AAAA,IAClB,SAAS,KAAK,EAAG,KAAK,UAAU,QAAQ,MAAM;AAAA,MAC1C,WAAW,MAAM,UAAU;AAAA,IAC/B;AAAA,IACA,OAAO,cAAc,UAAU,EAAE,IAAI;AAAA;AAAA,EAEzC,YAAW,UAAU,YAAY,QAAS,CAAC,aAAa;AAAA,IACpD,IAAI,QAAQ;AAAA,IACZ,cAAc,eAAe,WAAW;AAAA,IACxC,OAAO,IAAI,YAAY,QAAS,CAAC,SAAS,QAAQ;AAAA,MAC9C,IAAI;AAAA,MACJ,MAAM,UAAU,QAAS,CAAC,GAAG;AAAA,QAAE,OAAQ,QAAQ;AAAA,SAAO,QAAS,CAAC,KAAK;AAAA,QAAE,OAAO,OAAO,GAAG;AAAA,SAAM,QAAS,GAAG;AAAA,QAAE,OAAO,QAAQ,KAAK;AAAA,OAAI;AAAA,KACvI;AAAA;AAAA,EAEL,YAAW,SAAS,QAAS,CAAC,WAAW;AAAA,IACrC,OAAO,IAAI,YAAW,SAAS;AAAA;AAAA,EAEnC,OAAO;AAAA,EACT;AAEF,SAAS,cAAc,CAAC,aAAa;AAAA,EACjC,IAAI;AAAA,EACJ,QAAQ,KAAK,gBAAgB,QAAQ,gBAAqB,YAAI,cAAc,OAAO,aAAa,QAAQ,OAAY,YAAI,KAAK;AAAA;AAEjI,SAAS,UAAU,CAAC,OAAO;AAAA,EACvB,OAAO,SAAS,WAAW,MAAM,IAAI,KAAK,WAAW,MAAM,KAAK,KAAK,WAAW,MAAM,QAAQ;AAAA;AAElG,SAAS,YAAY,CAAC,OAAO;AAAA,EACzB,OAAQ,SAAS,iBAAiB,cAAgB,WAAW,KAAK,KAAK,eAAe,KAAK;AAAA;;;AClGxF,IAAI,0BAA0B,iBAAiB,QAAS,CAAC,QAAQ;AAAA,EACpE,OAAO,SAAS,2BAA2B,GAAG;AAAA,IAC1C,OAAO,IAAI;AAAA,IACX,KAAK,OAAO;AAAA,IACZ,KAAK,UAAU;AAAA;AAAA,CAEtB;;;ACDD,IAAI,UAAW,QAAS,CAAC,QAAQ;AAAA,EAC7B,UAAU,UAAS,MAAM;AAAA,EACzB,SAAS,QAAO,GAAG;AAAA,IACf,IAAI,QAAQ,OAAO,KAAK,IAAI,KAAK;AAAA,IACjC,MAAM,SAAS;AAAA,IACf,MAAM,mBAAmB;AAAA,IACzB,MAAM,YAAY,CAAC;AAAA,IACnB,MAAM,YAAY;AAAA,IAClB,MAAM,WAAW;AAAA,IACjB,MAAM,cAAc;AAAA,IACpB,OAAO;AAAA;AAAA,EAEX,SAAQ,UAAU,OAAO,QAAS,CAAC,UAAU;AAAA,IACzC,IAAI,UAAU,IAAI,iBAAiB,MAAM,IAAI;AAAA,IAC7C,QAAQ,WAAW;AAAA,IACnB,OAAO;AAAA;AAAA,EAEX,SAAQ,UAAU,iBAAiB,QAAS,GAAG;AAAA,IAC3C,IAAI,KAAK,QAAQ;AAAA,MACb,MAAM,IAAI;AAAA,IACd;AAAA;AAAA,EAEJ,SAAQ,UAAU,OAAO,QAAS,CAAC,OAAO;AAAA,IACtC,IAAI,QAAQ;AAAA,IACZ,aAAa,QAAS,GAAG;AAAA,MACrB,IAAI,KAAK;AAAA,MACT,MAAM,eAAe;AAAA,MACrB,IAAI,CAAC,MAAM,WAAW;AAAA,QAClB,IAAI,CAAC,MAAM,kBAAkB;AAAA,UACzB,MAAM,mBAAmB,MAAM,KAAK,MAAM,SAAS;AAAA,QACvD;AAAA,QACA,IAAI;AAAA,UACA,SAAS,KAAK,SAAS,MAAM,gBAAgB,GAAG,KAAK,GAAG,KAAK,EAAG,CAAC,GAAG,MAAM,KAAK,GAAG,KAAK,GAAG;AAAA,YACtF,IAAI,WAAW,GAAG;AAAA,YAClB,SAAS,KAAK,KAAK;AAAA,UACvB;AAAA,UAEJ,OAAO,OAAO;AAAA,UAAE,MAAM,EAAE,OAAO,MAAM;AAAA,kBACrC;AAAA,UACI,IAAI;AAAA,YACA,IAAI,MAAM,CAAC,GAAG,SAAS,KAAK,GAAG;AAAA,cAAS,GAAG,KAAK,EAAE;AAAA,oBAEtD;AAAA,YAAU,IAAI;AAAA,cAAK,MAAM,IAAI;AAAA;AAAA;AAAA,MAErC;AAAA,KACH;AAAA;AAAA,EAEL,SAAQ,UAAU,QAAQ,QAAS,CAAC,KAAK;AAAA,IACrC,IAAI,QAAQ;AAAA,IACZ,aAAa,QAAS,GAAG;AAAA,MACrB,MAAM,eAAe;AAAA,MACrB,IAAI,CAAC,MAAM,WAAW;AAAA,QAClB,MAAM,WAAW,MAAM,YAAY;AAAA,QACnC,MAAM,cAAc;AAAA,QACpB,IAAI,YAAY,MAAM;AAAA,QACtB,OAAO,UAAU,QAAQ;AAAA,UACrB,UAAU,MAAM,EAAE,MAAM,GAAG;AAAA,QAC/B;AAAA,MACJ;AAAA,KACH;AAAA;AAAA,EAEL,SAAQ,UAAU,WAAW,QAAS,GAAG;AAAA,IACrC,IAAI,QAAQ;AAAA,IACZ,aAAa,QAAS,GAAG;AAAA,MACrB,MAAM,eAAe;AAAA,MACrB,IAAI,CAAC,MAAM,WAAW;AAAA,QAClB,MAAM,YAAY;AAAA,QAClB,IAAI,YAAY,MAAM;AAAA,QACtB,OAAO,UAAU,QAAQ;AAAA,UACrB,UAAU,MAAM,EAAE,SAAS;AAAA,QAC/B;AAAA,MACJ;AAAA,KACH;AAAA;AAAA,EAEL,SAAQ,UAAU,cAAc,QAAS,GAAG;AAAA,IACxC,KAAK,YAAY,KAAK,SAAS;AAAA,IAC/B,KAAK,YAAY,KAAK,mBAAmB;AAAA;AAAA,EAE7C,OAAO,eAAe,SAAQ,WAAW,YAAY;AAAA,IACjD,KAAK,QAAS,GAAG;AAAA,MACb,IAAI;AAAA,MACJ,SAAS,KAAK,KAAK,eAAe,QAAQ,OAAY,YAAS,YAAI,GAAG,UAAU;AAAA;AAAA,IAEpF,YAAY;AAAA,IACZ,cAAc;AAAA,EAClB,CAAC;AAAA,EACD,SAAQ,UAAU,gBAAgB,QAAS,CAAC,YAAY;AAAA,IACpD,KAAK,eAAe;AAAA,IACpB,OAAO,OAAO,UAAU,cAAc,KAAK,MAAM,UAAU;AAAA;AAAA,EAE/D,SAAQ,UAAU,aAAa,QAAS,CAAC,YAAY;AAAA,IACjD,KAAK,eAAe;AAAA,IACpB,KAAK,wBAAwB,UAAU;AAAA,IACvC,OAAO,KAAK,gBAAgB,UAAU;AAAA;AAAA,EAE1C,SAAQ,UAAU,kBAAkB,QAAS,CAAC,YAAY;AAAA,IACtD,IAAI,QAAQ;AAAA,IACZ,IAAI,KAAK,MAAM,WAAW,GAAG,UAAU,YAAY,GAAG,WAAW,YAAY,GAAG;AAAA,IAChF,IAAI,YAAY,WAAW;AAAA,MACvB,OAAO;AAAA,IACX;AAAA,IACA,KAAK,mBAAmB;AAAA,IACxB,UAAU,KAAK,UAAU;AAAA,IACzB,OAAO,IAAI,aAAa,QAAS,GAAG;AAAA,MAChC,MAAM,mBAAmB;AAAA,MACzB,UAAU,WAAW,UAAU;AAAA,KAClC;AAAA;AAAA,EAEL,SAAQ,UAAU,0BAA0B,QAAS,CAAC,YAAY;AAAA,IAC9D,IAAI,KAAK,MAAM,WAAW,GAAG,UAAU,cAAc,GAAG,aAAa,YAAY,GAAG;AAAA,IACpF,IAAI,UAAU;AAAA,MACV,WAAW,MAAM,WAAW;AAAA,IAChC,EACK,SAAI,WAAW;AAAA,MAChB,WAAW,SAAS;AAAA,IACxB;AAAA;AAAA,EAEJ,SAAQ,UAAU,eAAe,QAAS,GAAG;AAAA,IACzC,IAAI,cAAa,IAAI;AAAA,IACrB,YAAW,SAAS;AAAA,IACpB,OAAO;AAAA;AAAA,EAEX,SAAQ,SAAS,QAAS,CAAC,aAAa,QAAQ;AAAA,IAC5C,OAAO,IAAI,iBAAiB,aAAa,MAAM;AAAA;AAAA,EAEnD,OAAO;AAAA,EACT,UAAU;AAEZ,IAAI,mBAAoB,QAAS,CAAC,QAAQ;AAAA,EACtC,UAAU,mBAAkB,MAAM;AAAA,EAClC,SAAS,iBAAgB,CAAC,aAAa,QAAQ;AAAA,IAC3C,IAAI,QAAQ,OAAO,KAAK,IAAI,KAAK;AAAA,IACjC,MAAM,cAAc;AAAA,IACpB,MAAM,SAAS;AAAA,IACf,OAAO;AAAA;AAAA,EAEX,kBAAiB,UAAU,OAAO,QAAS,CAAC,OAAO;AAAA,IAC/C,IAAI,IAAI;AAAA,KACP,MAAM,KAAK,KAAK,iBAAiB,QAAQ,OAAY,YAAS,YAAI,GAAG,UAAU,QAAQ,OAAY,aAAa,GAAG,KAAK,IAAI,KAAK;AAAA;AAAA,EAEtI,kBAAiB,UAAU,QAAQ,QAAS,CAAC,KAAK;AAAA,IAC9C,IAAI,IAAI;AAAA,KACP,MAAM,KAAK,KAAK,iBAAiB,QAAQ,OAAY,YAAS,YAAI,GAAG,WAAW,QAAQ,OAAY,aAAa,GAAG,KAAK,IAAI,GAAG;AAAA;AAAA,EAErI,kBAAiB,UAAU,WAAW,QAAS,GAAG;AAAA,IAC9C,IAAI,IAAI;AAAA,KACP,MAAM,KAAK,KAAK,iBAAiB,QAAQ,OAAY,YAAS,YAAI,GAAG,cAAc,QAAQ,OAAY,aAAa,GAAG,KAAK,EAAE;AAAA;AAAA,EAEnI,kBAAiB,UAAU,aAAa,QAAS,CAAC,YAAY;AAAA,IAC1D,IAAI,IAAI;AAAA,IACR,QAAQ,MAAM,KAAK,KAAK,YAAY,QAAQ,OAAY,YAAS,YAAI,GAAG,UAAU,UAAU,OAAO,QAAQ,OAAY,YAAI,KAAK;AAAA;AAAA,EAEpI,OAAO;AAAA,EACT,OAAO;;AC7JT,IAAI,kBAAmB,QAAS,CAAC,QAAQ;AAAA,EACrC,UAAU,kBAAiB,MAAM;AAAA,EACjC,SAAS,gBAAe,CAAC,QAAQ;AAAA,IAC7B,IAAI,QAAQ,OAAO,KAAK,IAAI,KAAK;AAAA,IACjC,MAAM,SAAS;AAAA,IACf,OAAO;AAAA;AAAA,EAEX,OAAO,eAAe,iBAAgB,WAAW,SAAS;AAAA,IACtD,KAAK,QAAS,GAAG;AAAA,MACb,OAAO,KAAK,SAAS;AAAA;AAAA,IAEzB,YAAY;AAAA,IACZ,cAAc;AAAA,EAClB,CAAC;AAAA,EACD,iBAAgB,UAAU,aAAa,QAAS,CAAC,YAAY;AAAA,IACzD,IAAI,eAAe,OAAO,UAAU,WAAW,KAAK,MAAM,UAAU;AAAA,IACpE,CAAC,aAAa,UAAU,WAAW,KAAK,KAAK,MAAM;AAAA,IACnD,OAAO;AAAA;AAAA,EAEX,iBAAgB,UAAU,WAAW,QAAS,GAAG;AAAA,IAC7C,IAAI,KAAK,MAAM,WAAW,GAAG,UAAU,cAAc,GAAG,aAAa,SAAS,GAAG;AAAA,IACjF,IAAI,UAAU;AAAA,MACV,MAAM;AAAA,IACV;AAAA,IACA,KAAK,eAAe;AAAA,IACpB,OAAO;AAAA;AAAA,EAEX,iBAAgB,UAAU,OAAO,QAAS,CAAC,OAAO;AAAA,IAC9C,OAAO,UAAU,KAAK,KAAK,MAAO,KAAK,SAAS,KAAM;AAAA;AAAA,EAE1D,OAAO;AAAA,EACT,OAAO;;ACjCF,IAAI,wBAAwB;AAAA,EAC/B,KAAK,QAAS,GAAG;AAAA,IACb,QAAQ,sBAAsB,YAAY,MAAM,IAAI;AAAA;AAAA,EAExD,UAAU;AACd;;;ACFA,IAAI,gBAAiB,QAAS,CAAC,QAAQ;AAAA,EACnC,UAAU,gBAAe,MAAM;AAAA,EAC/B,SAAS,cAAa,CAAC,aAAa,aAAa,oBAAoB;AAAA,IACjE,IAAI,gBAAqB,WAAG;AAAA,MAAE,cAAc;AAAA,IAAU;AAAA,IACtD,IAAI,gBAAqB,WAAG;AAAA,MAAE,cAAc;AAAA,IAAU;AAAA,IACtD,IAAI,uBAA4B,WAAG;AAAA,MAAE,qBAAqB;AAAA,IAAuB;AAAA,IACjF,IAAI,QAAQ,OAAO,KAAK,IAAI,KAAK;AAAA,IACjC,MAAM,cAAc;AAAA,IACpB,MAAM,cAAc;AAAA,IACpB,MAAM,qBAAqB;AAAA,IAC3B,MAAM,UAAU,CAAC;AAAA,IACjB,MAAM,sBAAsB;AAAA,IAC5B,MAAM,sBAAsB,gBAAgB;AAAA,IAC5C,MAAM,cAAc,KAAK,IAAI,GAAG,WAAW;AAAA,IAC3C,MAAM,cAAc,KAAK,IAAI,GAAG,WAAW;AAAA,IAC3C,OAAO;AAAA;AAAA,EAEX,eAAc,UAAU,OAAO,QAAS,CAAC,OAAO;AAAA,IAC5C,IAAI,KAAK,MAAM,YAAY,GAAG,WAAW,UAAU,GAAG,SAAS,sBAAsB,GAAG,qBAAqB,qBAAqB,GAAG,oBAAoB,cAAc,GAAG;AAAA,IAC1K,IAAI,CAAC,WAAW;AAAA,MACZ,QAAQ,KAAK,KAAK;AAAA,MAClB,CAAC,uBAAuB,QAAQ,KAAK,mBAAmB,IAAI,IAAI,WAAW;AAAA,IAC/E;AAAA,IACA,KAAK,YAAY;AAAA,IACjB,OAAO,UAAU,KAAK,KAAK,MAAM,KAAK;AAAA;AAAA,EAE1C,eAAc,UAAU,aAAa,QAAS,CAAC,YAAY;AAAA,IACvD,KAAK,eAAe;AAAA,IACpB,KAAK,YAAY;AAAA,IACjB,IAAI,eAAe,KAAK,gBAAgB,UAAU;AAAA,IAClD,IAAI,KAAK,MAAM,sBAAsB,GAAG,qBAAqB,UAAU,GAAG;AAAA,IAC1E,IAAI,OAAO,QAAQ,MAAM;AAAA,IACzB,SAAS,IAAI,EAAG,IAAI,KAAK,UAAU,CAAC,WAAW,QAAQ,KAAK,sBAAsB,IAAI,GAAG;AAAA,MACrF,WAAW,KAAK,KAAK,EAAE;AAAA,IAC3B;AAAA,IACA,KAAK,wBAAwB,UAAU;AAAA,IACvC,OAAO;AAAA;AAAA,EAEX,eAAc,UAAU,cAAc,QAAS,GAAG;AAAA,IAC9C,IAAI,KAAK,MAAM,cAAc,GAAG,aAAa,qBAAqB,GAAG,oBAAoB,UAAU,GAAG,SAAS,sBAAsB,GAAG;AAAA,IACxI,IAAI,sBAAsB,sBAAsB,IAAI,KAAK;AAAA,IACzD,cAAc,YAAY,qBAAqB,QAAQ,UAAU,QAAQ,OAAO,GAAG,QAAQ,SAAS,kBAAkB;AAAA,IACtH,IAAI,CAAC,qBAAqB;AAAA,MACtB,IAAI,MAAM,mBAAmB,IAAI;AAAA,MACjC,IAAI,OAAO;AAAA,MACX,SAAS,IAAI,EAAG,IAAI,QAAQ,UAAU,QAAQ,MAAM,KAAK,KAAK,GAAG;AAAA,QAC7D,OAAO;AAAA,MACX;AAAA,MACA,QAAQ,QAAQ,OAAO,GAAG,OAAO,CAAC;AAAA,IACtC;AAAA;AAAA,EAEJ,OAAO;AAAA,EACT,OAAO;;ACtDF,IAAI,aAAa,iBAAiB,QAAS,CAAC,QAAQ;AAAA,EACvD,OAAO,SAAS,cAAc,GAAG;AAAA,IAC7B,OAAO,IAAI;AAAA,IACX,KAAK,OAAO;AAAA,IACZ,KAAK,UAAU;AAAA;AAAA,CAEtB;;;ACLM,SAAS,cAAc,CAAC,QAAQ,SAAQ;AAAA,EAC3C,IAAI,YAAY,OAAO,YAAW;AAAA,EAClC,OAAO,IAAI,QAAQ,QAAS,CAAC,SAAS,QAAQ;AAAA,IAC1C,IAAI,aAAa,IAAI,eAAe;AAAA,MAChC,MAAM,QAAS,CAAC,OAAO;AAAA,QACnB,QAAQ,KAAK;AAAA,QACb,WAAW,YAAY;AAAA;AAAA,MAE3B,OAAO;AAAA,MACP,UAAU,QAAS,GAAG;AAAA,QAClB,IAAI,WAAW;AAAA,UACX,QAAQ,QAAO,YAAY;AAAA,QAC/B,EACK;AAAA,UACD,OAAO,IAAI,UAAY;AAAA;AAAA;AAAA,IAGnC,CAAC;AAAA,IACD,OAAO,UAAU,UAAU;AAAA,GAC9B;AAAA;;ACrBE,IAAI,cAAe,QAAS,CAAC,GAAG;AAAA,EAAE,OAAO,KAAK,OAAO,EAAE,WAAW,YAAY,OAAO,MAAM;AAAA;;;ACC3F,SAAS,SAAS,CAAC,OAAO;AAAA,EAC7B,OAAO,WAAW,UAAU,QAAQ,UAAe,YAAS,YAAI,MAAM,IAAI;AAAA;;;ACAvE,SAAS,mBAAmB,CAAC,OAAO;AAAA,EACvC,OAAO,WAAW,MAAM,WAAkB;AAAA;;;ACFvC,SAAS,eAAe,CAAC,KAAK;AAAA,EACjC,OAAO,OAAO,iBAAiB,WAAW,QAAQ,QAAQ,QAAa,YAAS,YAAI,IAAI,OAAO,cAAc;AAAA;;;ACF1G,SAAS,gCAAgC,CAAC,OAAO;AAAA,EACpD,OAAO,IAAI,UAAU,mBAAmB,UAAU,QAAQ,OAAO,UAAU,WAAW,sBAAsB,MAAM,QAAQ,OAAO,0HAA0H;AAAA;;;ACDxP,SAAS,iBAAiB,GAAG;AAAA,EAChC,IAAI,OAAO,WAAW,cAAc,CAAC,OAAO,UAAU;AAAA,IAClD,OAAO;AAAA,EACX;AAAA,EACA,OAAO,OAAO;AAAA;AAEX,IAAI,WAAW,kBAAkB;;;ACJjC,SAAS,UAAU,CAAC,OAAO;AAAA,EAC9B,OAAO,WAAW,UAAU,QAAQ,UAAe,YAAS,YAAI,MAAM,SAAgB;AAAA;;;ACDnF,SAAS,kCAAkC,CAAC,gBAAgB;AAAA,EAC/D,OAAO,iBAAiB,MAAM,WAAW,SAAS,oCAAoC,GAAG;AAAA,IACrF,IAAI,QAAQ,IAAI,OAAO;AAAA,IACvB,OAAO,YAAY,MAAM,QAAS,CAAC,IAAI;AAAA,MACnC,QAAQ,GAAG;AAAA,aACF;AAAA,UACD,SAAS,eAAe,UAAU;AAAA,UAClC,GAAG,QAAQ;AAAA,aACV;AAAA,UACD,GAAG,KAAK,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;AAAA,UACzB,GAAG,QAAQ;AAAA,aACV;AAAA,UACD,IAAI;AAAA,YAAO;AAAA,UACX,OAAO,CAAC,GAAG,QAAQ,OAAO,KAAK,CAAC,CAAC;AAAA,aAChC;AAAA,UACD,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,OAAO,GAAG;AAAA,UAC5C,IAAI,CAAC;AAAA,YAAM,OAAO,CAAC,GAAG,CAAC;AAAA,UACvB,OAAO,CAAC,GAAG,QAAa,SAAC,CAAC;AAAA,aACzB;AAAA,UAAG,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC;AAAA,aACvB;AAAA,UAAG,OAAO,CAAC,GAAG,QAAQ,KAAK,CAAC;AAAA,aAC5B;AAAA,UAAG,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC;AAAA,aACvB;AAAA,UACD,GAAG,KAAK;AAAA,UACR,OAAO,CAAC,GAAG,CAAC;AAAA,aACX;AAAA,UAAG,OAAO,CAAC,GAAG,EAAE;AAAA,aAChB;AAAA,UACD,OAAO,YAAY;AAAA,UACnB,OAAO,CAAC,CAAC;AAAA,aACR;AAAA,UAAI,OAAO,CAAC,CAAC;AAAA;AAAA,KAEzB;AAAA,GACJ;AAAA;AAEE,SAAS,oBAAoB,CAAC,KAAK;AAAA,EACtC,OAAO,WAAW,QAAQ,QAAQ,QAAa,YAAS,YAAI,IAAI,SAAS;AAAA;;;ACxBtE,SAAS,SAAS,CAAC,OAAO;AAAA,EAC7B,IAAI,iBAAiB,YAAY;AAAA,IAC7B,OAAO;AAAA,EACX;AAAA,EACA,IAAI,SAAS,MAAM;AAAA,IACf,IAAI,oBAAoB,KAAK,GAAG;AAAA,MAC5B,OAAO,sBAAsB,KAAK;AAAA,IACtC;AAAA,IACA,IAAI,YAAY,KAAK,GAAG;AAAA,MACpB,OAAO,cAAc,KAAK;AAAA,IAC9B;AAAA,IACA,IAAI,UAAU,KAAK,GAAG;AAAA,MAClB,OAAO,YAAY,KAAK;AAAA,IAC5B;AAAA,IACA,IAAI,gBAAgB,KAAK,GAAG;AAAA,MACxB,OAAO,kBAAkB,KAAK;AAAA,IAClC;AAAA,IACA,IAAI,WAAW,KAAK,GAAG;AAAA,MACnB,OAAO,aAAa,KAAK;AAAA,IAC7B;AAAA,IACA,IAAI,qBAAqB,KAAK,GAAG;AAAA,MAC7B,OAAO,uBAAuB,KAAK;AAAA,IACvC;AAAA,EACJ;AAAA,EACA,MAAM,iCAAiC,KAAK;AAAA;AAEzC,SAAS,qBAAqB,CAAC,KAAK;AAAA,EACvC,OAAO,IAAI,WAAW,QAAS,CAAC,YAAY;AAAA,IACxC,IAAI,MAAM,IAAI,YAAmB;AAAA,IACjC,IAAI,WAAW,IAAI,SAAS,GAAG;AAAA,MAC3B,OAAO,IAAI,UAAU,UAAU;AAAA,IACnC;AAAA,IACA,MAAM,IAAI,UAAU,gEAAgE;AAAA,GACvF;AAAA;AAEE,SAAS,aAAa,CAAC,OAAO;AAAA,EACjC,OAAO,IAAI,WAAW,QAAS,CAAC,YAAY;AAAA,IACxC,SAAS,IAAI,EAAG,IAAI,MAAM,UAAU,CAAC,WAAW,QAAQ,KAAK;AAAA,MACzD,WAAW,KAAK,MAAM,EAAE;AAAA,IAC5B;AAAA,IACA,WAAW,SAAS;AAAA,GACvB;AAAA;AAEE,SAAS,WAAW,CAAC,SAAS;AAAA,EACjC,OAAO,IAAI,WAAW,QAAS,CAAC,YAAY;AAAA,IACxC,QACK,KAAK,QAAS,CAAC,OAAO;AAAA,MACvB,IAAI,CAAC,WAAW,QAAQ;AAAA,QACpB,WAAW,KAAK,KAAK;AAAA,QACrB,WAAW,SAAS;AAAA,MACxB;AAAA,OACD,QAAS,CAAC,KAAK;AAAA,MAAE,OAAO,WAAW,MAAM,GAAG;AAAA,KAAI,EAC9C,KAAK,MAAM,oBAAoB;AAAA,GACvC;AAAA;AAEE,SAAS,YAAY,CAAC,UAAU;AAAA,EACnC,OAAO,IAAI,WAAW,QAAS,CAAC,YAAY;AAAA,IACxC,IAAI,KAAK;AAAA,IACT,IAAI;AAAA,MACA,SAAS,aAAa,SAAS,QAAQ,GAAG,eAAe,WAAW,KAAK,EAAG,CAAC,aAAa,MAAM,eAAe,WAAW,KAAK,GAAG;AAAA,QAC9H,IAAI,QAAQ,aAAa;AAAA,QACzB,WAAW,KAAK,KAAK;AAAA,QACrB,IAAI,WAAW,QAAQ;AAAA,UACnB;AAAA,QACJ;AAAA,MACJ;AAAA,MAEJ,OAAO,OAAO;AAAA,MAAE,MAAM,EAAE,OAAO,MAAM;AAAA,cACrC;AAAA,MACI,IAAI;AAAA,QACA,IAAI,gBAAgB,CAAC,aAAa,SAAS,KAAK,WAAW;AAAA,UAAS,GAAG,KAAK,UAAU;AAAA,gBAE1F;AAAA,QAAU,IAAI;AAAA,UAAK,MAAM,IAAI;AAAA;AAAA;AAAA,IAEjC,WAAW,SAAS;AAAA,GACvB;AAAA;AAEE,SAAS,iBAAiB,CAAC,eAAe;AAAA,EAC7C,OAAO,IAAI,WAAW,QAAS,CAAC,YAAY;AAAA,IACxC,QAAQ,eAAe,UAAU,EAAE,MAAM,QAAS,CAAC,KAAK;AAAA,MAAE,OAAO,WAAW,MAAM,GAAG;AAAA,KAAI;AAAA,GAC5F;AAAA;AAEE,SAAS,sBAAsB,CAAC,gBAAgB;AAAA,EACnD,OAAO,kBAAkB,mCAAmC,cAAc,CAAC;AAAA;AAE/E,SAAS,OAAO,CAAC,eAAe,YAAY;AAAA,EACxC,IAAI,iBAAiB;AAAA,EACrB,IAAI,KAAK;AAAA,EACT,OAAO,UAAU,MAAW,WAAQ,WAAG,QAAS,GAAG;AAAA,IAC/C,IAAI,OAAO;AAAA,IACX,OAAO,YAAY,MAAM,QAAS,CAAC,IAAI;AAAA,MACnC,QAAQ,GAAG;AAAA,aACF;AAAA,UACD,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AAAA,UAC1B,kBAAkB,cAAc,aAAa;AAAA,UAC7C,GAAG,QAAQ;AAAA,aACV;AAAA,UAAG,OAAO,CAAC,GAAG,gBAAgB,KAAK,CAAC;AAAA,aACpC;AAAA,UACD,IAAI,EAAE,oBAAoB,GAAG,KAAK,GAAG,CAAC,kBAAkB;AAAA,YAAO,OAAO,CAAC,GAAG,CAAC;AAAA,UAC3E,QAAQ,kBAAkB;AAAA,UAC1B,WAAW,KAAK,KAAK;AAAA,UACrB,IAAI,WAAW,QAAQ;AAAA,YACnB,OAAO,CAAC,CAAC;AAAA,UACb;AAAA,UACA,GAAG,QAAQ;AAAA,aACV;AAAA,UAAG,OAAO,CAAC,GAAG,CAAC;AAAA,aACf;AAAA,UAAG,OAAO,CAAC,GAAG,EAAE;AAAA,aAChB;AAAA,UACD,QAAQ,GAAG,KAAK;AAAA,UAChB,MAAM,EAAE,OAAO,MAAM;AAAA,UACrB,OAAO,CAAC,GAAG,EAAE;AAAA,aACZ;AAAA,UACD,GAAG,KAAK,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;AAAA,UACzB,IAAI,EAAE,qBAAqB,CAAC,kBAAkB,SAAS,KAAK,gBAAgB;AAAA,YAAU,OAAO,CAAC,GAAG,CAAC;AAAA,UAClG,OAAO,CAAC,GAAG,GAAG,KAAK,eAAe,CAAC;AAAA,aAClC;AAAA,UACD,GAAG,KAAK;AAAA,UACR,GAAG,QAAQ;AAAA,aACV;AAAA,UAAG,OAAO,CAAC,GAAG,EAAE;AAAA,aAChB;AAAA,UACD,IAAI;AAAA,YAAK,MAAM,IAAI;AAAA,UACnB,OAAO,CAAC,CAAC;AAAA,aACR;AAAA,UAAI,OAAO,CAAC,CAAC;AAAA,aACb;AAAA,UACD,WAAW,SAAS;AAAA,UACpB,OAAO,CAAC,CAAC;AAAA;AAAA,KAEpB;AAAA,GACJ;AAAA;;;AC5IE,SAAS,eAAe,CAAC,oBAAoB,WAAW,MAAM,OAAO,QAAQ;AAAA,EAChF,IAAI,UAAe,WAAG;AAAA,IAAE,QAAQ;AAAA,EAAG;AAAA,EACnC,IAAI,WAAgB,WAAG;AAAA,IAAE,SAAS;AAAA,EAAO;AAAA,EACzC,IAAI,uBAAuB,UAAU,SAAS,QAAS,GAAG;AAAA,IACtD,KAAK;AAAA,IACL,IAAI,QAAQ;AAAA,MACR,mBAAmB,IAAI,KAAK,SAAS,MAAM,KAAK,CAAC;AAAA,IACrD,EACK;AAAA,MACD,KAAK,YAAY;AAAA;AAAA,KAEtB,KAAK;AAAA,EACR,mBAAmB,IAAI,oBAAoB;AAAA,EAC3C,IAAI,CAAC,QAAQ;AAAA,IACT,OAAO;AAAA,EACX;AAAA;;;ACdG,SAAS,OAAO,CAAC,QAAQ;AAAA,EAC5B,OAAO,WAAW,WAAW,QAAQ,WAAgB,YAAS,YAAI,OAAO,IAAI;AAAA;AAE1E,SAAS,OAAO,CAAC,MAAM;AAAA,EAC1B,OAAO,QAAS,CAAC,QAAQ;AAAA,IACrB,IAAI,QAAQ,MAAM,GAAG;AAAA,MACjB,OAAO,OAAO,KAAK,QAAS,CAAC,cAAc;AAAA,QACvC,IAAI;AAAA,UACA,OAAO,KAAK,cAAc,IAAI;AAAA,UAElC,OAAO,KAAK;AAAA,UACR,KAAK,MAAM,GAAG;AAAA;AAAA,OAErB;AAAA,IACL;AAAA,IACA,MAAM,IAAI,UAAU,wCAAwC;AAAA;AAAA;;;ACd7D,SAAS,wBAAwB,CAAC,aAAa,QAAQ,YAAY,SAAS,YAAY;AAAA,EAC3F,OAAO,IAAI,mBAAmB,aAAa,QAAQ,YAAY,SAAS,UAAU;AAAA;AAEtF,IAAI,qBAAsB,QAAS,CAAC,QAAQ;AAAA,EACxC,UAAU,qBAAoB,MAAM;AAAA,EACpC,SAAS,mBAAkB,CAAC,aAAa,QAAQ,YAAY,SAAS,YAAY,mBAAmB;AAAA,IACjG,IAAI,QAAQ,OAAO,KAAK,MAAM,WAAW,KAAK;AAAA,IAC9C,MAAM,aAAa;AAAA,IACnB,MAAM,oBAAoB;AAAA,IAC1B,MAAM,QAAQ,SACR,QAAS,CAAC,OAAO;AAAA,MACf,IAAI;AAAA,QACA,OAAO,KAAK;AAAA,QAEhB,OAAO,KAAK;AAAA,QACR,YAAY,MAAM,GAAG;AAAA;AAAA,QAG3B,OAAO,UAAU;AAAA,IACvB,MAAM,SAAS,UACT,QAAS,CAAC,KAAK;AAAA,MACb,IAAI;AAAA,QACA,QAAQ,GAAG;AAAA,QAEf,OAAO,MAAK;AAAA,QACR,YAAY,MAAM,IAAG;AAAA,gBAEzB;AAAA,QACI,KAAK,YAAY;AAAA;AAAA,QAGvB,OAAO,UAAU;AAAA,IACvB,MAAM,YAAY,aACZ,QAAS,GAAG;AAAA,MACV,IAAI;AAAA,QACA,WAAW;AAAA,QAEf,OAAO,KAAK;AAAA,QACR,YAAY,MAAM,GAAG;AAAA,gBAEzB;AAAA,QACI,KAAK,YAAY;AAAA;AAAA,QAGvB,OAAO,UAAU;AAAA,IACvB,OAAO;AAAA;AAAA,EAEX,oBAAmB,UAAU,cAAc,QAAS,GAAG;AAAA,IACnD,IAAI;AAAA,IACJ,IAAI,CAAC,KAAK,qBAAqB,KAAK,kBAAkB,GAAG;AAAA,MACrD,IAAI,WAAW,KAAK;AAAA,MACpB,OAAO,UAAU,YAAY,KAAK,IAAI;AAAA,MACtC,CAAC,cAAc,KAAK,KAAK,gBAAgB,QAAQ,OAAY,aAAa,GAAG,KAAK,IAAI;AAAA,IAC1F;AAAA;AAAA,EAEJ,OAAO;AAAA,EACT,UAAU;;;ACvDL,SAAS,SAAS,CAAC,WAAW,OAAO;AAAA,EACxC,IAAI,UAAe,WAAG;AAAA,IAAE,QAAQ;AAAA,EAAG;AAAA,EACnC,OAAO,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACzC,OAAO,UAAU,yBAAyB,YAAY,QAAS,CAAC,OAAO;AAAA,MAAE,OAAO,gBAAgB,YAAY,WAAW,QAAS,GAAG;AAAA,QAAE,OAAO,WAAW,KAAK,KAAK;AAAA,SAAM,KAAK;AAAA,OAAM,QAAS,GAAG;AAAA,MAAE,OAAO,gBAAgB,YAAY,WAAW,QAAS,GAAG;AAAA,QAAE,OAAO,WAAW,SAAS;AAAA,SAAM,KAAK;AAAA,OAAM,QAAS,CAAC,KAAK;AAAA,MAAE,OAAO,gBAAgB,YAAY,WAAW,QAAS,GAAG;AAAA,QAAE,OAAO,WAAW,MAAM,GAAG;AAAA,SAAM,KAAK;AAAA,KAAI,CAAC;AAAA,GACna;AAAA;;;ACNE,SAAS,WAAW,CAAC,WAAW,OAAO;AAAA,EAC1C,IAAI,UAAe,WAAG;AAAA,IAAE,QAAQ;AAAA,EAAG;AAAA,EACnC,OAAO,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACzC,WAAW,IAAI,UAAU,SAAS,QAAS,GAAG;AAAA,MAAE,OAAO,OAAO,UAAU,UAAU;AAAA,OAAM,KAAK,CAAC;AAAA,GACjG;AAAA;;;ACFE,SAAS,kBAAkB,CAAC,OAAO,WAAW;AAAA,EACjD,OAAO,UAAU,KAAK,EAAE,KAAK,YAAY,SAAS,GAAG,UAAU,SAAS,CAAC;AAAA;;;ACDtE,SAAS,eAAe,CAAC,OAAO,WAAW;AAAA,EAC9C,OAAO,UAAU,KAAK,EAAE,KAAK,YAAY,SAAS,GAAG,UAAU,SAAS,CAAC;AAAA;;;ACHtE,SAAS,aAAa,CAAC,OAAO,WAAW;AAAA,EAC5C,OAAO,IAAI,WAAW,QAAS,CAAC,YAAY;AAAA,IACxC,IAAI,IAAI;AAAA,IACR,OAAO,UAAU,SAAS,QAAS,GAAG;AAAA,MAClC,IAAI,MAAM,MAAM,QAAQ;AAAA,QACpB,WAAW,SAAS;AAAA,MACxB,EACK;AAAA,QACD,WAAW,KAAK,MAAM,IAAI;AAAA,QAC1B,IAAI,CAAC,WAAW,QAAQ;AAAA,UACpB,KAAK,SAAS;AAAA,QAClB;AAAA;AAAA,KAEP;AAAA,GACJ;AAAA;;;ACXE,SAAS,gBAAgB,CAAC,OAAO,WAAW;AAAA,EAC/C,OAAO,IAAI,WAAW,QAAS,CAAC,YAAY;AAAA,IACxC,IAAI;AAAA,IACJ,gBAAgB,YAAY,WAAW,QAAS,GAAG;AAAA,MAC/C,YAAW,MAAM,UAAiB;AAAA,MAClC,gBAAgB,YAAY,WAAW,QAAS,GAAG;AAAA,QAC/C,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,UACC,KAAK,UAAS,KAAK,GAAG,QAAQ,GAAG,OAAO,OAAO,GAAG;AAAA,UAEvD,OAAO,KAAK;AAAA,UACR,WAAW,MAAM,GAAG;AAAA,UACpB;AAAA;AAAA,QAEJ,IAAI,MAAM;AAAA,UACN,WAAW,SAAS;AAAA,QACxB,EACK;AAAA,UACD,WAAW,KAAK,KAAK;AAAA;AAAA,SAE1B,GAAG,IAAI;AAAA,KACb;AAAA,IACD,OAAO,QAAS,GAAG;AAAA,MAAE,OAAO,WAAW,cAAa,QAAQ,cAAkB,YAAS,YAAI,UAAS,MAAM,KAAK,UAAS,OAAO;AAAA;AAAA,GAClI;AAAA;;;AC3BE,SAAS,qBAAqB,CAAC,OAAO,WAAW;AAAA,EACpD,IAAI,CAAC,OAAO;AAAA,IACR,MAAM,IAAI,MAAM,yBAAyB;AAAA,EAC7C;AAAA,EACA,OAAO,IAAI,WAAW,QAAS,CAAC,YAAY;AAAA,IACxC,gBAAgB,YAAY,WAAW,QAAS,GAAG;AAAA,MAC/C,IAAI,YAAW,MAAM,OAAO,eAAe;AAAA,MAC3C,gBAAgB,YAAY,WAAW,QAAS,GAAG;AAAA,QAC/C,UAAS,KAAK,EAAE,KAAK,QAAS,CAAC,QAAQ;AAAA,UACnC,IAAI,OAAO,MAAM;AAAA,YACb,WAAW,SAAS;AAAA,UACxB,EACK;AAAA,YACD,WAAW,KAAK,OAAO,KAAK;AAAA;AAAA,SAEnC;AAAA,SACF,GAAG,IAAI;AAAA,KACb;AAAA,GACJ;AAAA;;;AClBE,SAAS,0BAA0B,CAAC,OAAO,WAAW;AAAA,EACzD,OAAO,sBAAsB,mCAAmC,KAAK,GAAG,SAAS;AAAA;;;ACU9E,SAAS,SAAS,CAAC,OAAO,WAAW;AAAA,EACxC,IAAI,SAAS,MAAM;AAAA,IACf,IAAI,oBAAoB,KAAK,GAAG;AAAA,MAC5B,OAAO,mBAAmB,OAAO,SAAS;AAAA,IAC9C;AAAA,IACA,IAAI,YAAY,KAAK,GAAG;AAAA,MACpB,OAAO,cAAc,OAAO,SAAS;AAAA,IACzC;AAAA,IACA,IAAI,UAAU,KAAK,GAAG;AAAA,MAClB,OAAO,gBAAgB,OAAO,SAAS;AAAA,IAC3C;AAAA,IACA,IAAI,gBAAgB,KAAK,GAAG;AAAA,MACxB,OAAO,sBAAsB,OAAO,SAAS;AAAA,IACjD;AAAA,IACA,IAAI,WAAW,KAAK,GAAG;AAAA,MACnB,OAAO,iBAAiB,OAAO,SAAS;AAAA,IAC5C;AAAA,IACA,IAAI,qBAAqB,KAAK,GAAG;AAAA,MAC7B,OAAO,2BAA2B,OAAO,SAAS;AAAA,IACtD;AAAA,EACJ;AAAA,EACA,MAAM,iCAAiC,KAAK;AAAA;;;AChCzC,SAAS,IAAI,CAAC,OAAO,WAAW;AAAA,EACnC,OAAO,YAAY,UAAU,OAAO,SAAS,IAAI,UAAU,KAAK;AAAA;;ACD7D,SAAS,GAAG,CAAC,SAAS,SAAS;AAAA,EAClC,OAAO,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACzC,IAAI,QAAQ;AAAA,IACZ,OAAO,UAAU,yBAAyB,YAAY,QAAS,CAAC,OAAO;AAAA,MACnE,WAAW,KAAK,QAAQ,KAAK,SAAS,OAAO,OAAO,CAAC;AAAA,KACxD,CAAC;AAAA,GACL;AAAA;;;ACLE,SAAS,cAAc,CAAC,QAAQ,YAAY,SAAS,YAAY,cAAc,QAAQ,mBAAmB,qBAAqB;AAAA,EAClI,IAAI,SAAS,CAAC;AAAA,EACd,IAAI,SAAS;AAAA,EACb,IAAI,QAAQ;AAAA,EACZ,IAAI,aAAa;AAAA,EACjB,IAAI,gBAAgB,QAAS,GAAG;AAAA,IAC5B,IAAI,cAAc,CAAC,OAAO,UAAU,CAAC,QAAQ;AAAA,MACzC,WAAW,SAAS;AAAA,IACxB;AAAA;AAAA,EAEJ,IAAI,YAAY,QAAS,CAAC,OAAO;AAAA,IAAE,OAAQ,SAAS,aAAa,WAAW,KAAK,IAAI,OAAO,KAAK,KAAK;AAAA;AAAA,EACtG,IAAI,aAAa,QAAS,CAAC,OAAO;AAAA,IAC9B,UAAU,WAAW,KAAK,KAAK;AAAA,IAC/B;AAAA,IACA,IAAI,gBAAgB;AAAA,IACpB,UAAU,QAAQ,OAAO,OAAO,CAAC,EAAE,UAAU,yBAAyB,YAAY,QAAS,CAAC,YAAY;AAAA,MACpG,iBAAiB,QAAQ,iBAAsB,aAAa,aAAa,UAAU;AAAA,MACnF,IAAI,QAAQ;AAAA,QACR,UAAU,UAAU;AAAA,MACxB,EACK;AAAA,QACD,WAAW,KAAK,UAAU;AAAA;AAAA,OAE/B,QAAS,GAAG;AAAA,MACX,gBAAgB;AAAA,OACjB,WAAW,QAAS,GAAG;AAAA,MACtB,IAAI,eAAe;AAAA,QACf,IAAI;AAAA,UACA;AAAA,UACA,IAAI,UAAU,QAAS,GAAG;AAAA,YACtB,IAAI,gBAAgB,OAAO,MAAM;AAAA,YACjC,IAAI,mBAAmB;AAAA,cACnB,gBAAgB,YAAY,mBAAmB,QAAS,GAAG;AAAA,gBAAE,OAAO,WAAW,aAAa;AAAA,eAAI;AAAA,YACpG,EACK;AAAA,cACD,WAAW,aAAa;AAAA;AAAA;AAAA,UAGhC,OAAO,OAAO,UAAU,SAAS,YAAY;AAAA,YACzC,QAAQ;AAAA,UACZ;AAAA,UACA,cAAc;AAAA,UAElB,OAAO,KAAK;AAAA,UACR,WAAW,MAAM,GAAG;AAAA;AAAA,MAE5B;AAAA,KACH,CAAC;AAAA;AAAA,EAEN,OAAO,UAAU,yBAAyB,YAAY,WAAW,QAAS,GAAG;AAAA,IACzE,aAAa;AAAA,IACb,cAAc;AAAA,GACjB,CAAC;AAAA,EACF,OAAO,QAAS,GAAG;AAAA,IACf,wBAAwB,QAAQ,wBAA6B,aAAa,oBAAoB;AAAA;AAAA;;;ACpD/F,SAAS,QAAQ,CAAC,SAAS,gBAAgB,YAAY;AAAA,EAC1D,IAAI,eAAoB,WAAG;AAAA,IAAE,aAAa;AAAA,EAAU;AAAA,EACpD,IAAI,WAAW,cAAc,GAAG;AAAA,IAC5B,OAAO,SAAS,QAAS,CAAC,GAAG,GAAG;AAAA,MAAE,OAAO,IAAI,QAAS,CAAC,GAAG,IAAI;AAAA,QAAE,OAAO,eAAe,GAAG,GAAG,GAAG,EAAE;AAAA,OAAI,EAAE,UAAU,QAAQ,GAAG,CAAC,CAAC,CAAC;AAAA,OAAM,UAAU;AAAA,EACnJ,EACK,SAAI,OAAO,mBAAmB,UAAU;AAAA,IACzC,aAAa;AAAA,EACjB;AAAA,EACA,OAAO,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IAAE,OAAO,eAAe,QAAQ,YAAY,SAAS,UAAU;AAAA,GAAI;AAAA;;;ACXpH,IAAI,UAAU,MAAM;AACpB,SAAS,WAAW,CAAC,IAAI,MAAM;AAAA,EAC3B,OAAO,QAAQ,IAAI,IAAI,GAAG,MAAW,WAAG,cAAc,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI;AAAA;AAE/E,SAAS,gBAAgB,CAAC,IAAI;AAAA,EACjC,OAAO,IAAI,QAAS,CAAC,MAAM;AAAA,IAAE,OAAO,YAAY,IAAI,IAAI;AAAA,GAAI;AAAA;;;ACAhE,IAAI,0BAA0B,CAAC,eAAe,gBAAgB;AAC9D,IAAI,qBAAqB,CAAC,oBAAoB,qBAAqB;AACnE,IAAI,gBAAgB,CAAC,MAAM,KAAK;AACzB,SAAS,SAAS,CAAC,QAAQ,WAAW,SAAS,gBAAgB;AAAA,EAClE,IAAI,WAAW,OAAO,GAAG;AAAA,IACrB,iBAAiB;AAAA,IACjB,UAAU;AAAA,EACd;AAAA,EACA,IAAI,gBAAgB;AAAA,IAChB,OAAO,UAAU,QAAQ,WAAW,OAAO,EAAE,KAAK,iBAAiB,cAAc,CAAC;AAAA,EACtF;AAAA,EACA,IAAI,KAAK,OAAO,cAAc,MAAM,IAC9B,mBAAmB,IAAI,QAAS,CAAC,YAAY;AAAA,IAAE,OAAO,QAAS,CAAC,SAAS;AAAA,MAAE,OAAO,OAAO,YAAY,WAAW,SAAS,OAAO;AAAA;AAAA,GAAO,IAErI,wBAAwB,MAAM,IACxB,wBAAwB,IAAI,wBAAwB,QAAQ,SAAS,CAAC,IACtE,0BAA0B,MAAM,IAC5B,cAAc,IAAI,wBAAwB,QAAQ,SAAS,CAAC,IAC5D,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,SAAS,GAAG;AAAA,EACnD,IAAI,CAAC,KAAK;AAAA,IACN,IAAI,YAAY,MAAM,GAAG;AAAA,MACrB,OAAO,SAAS,QAAS,CAAC,WAAW;AAAA,QAAE,OAAO,UAAU,WAAW,WAAW,OAAO;AAAA,OAAI,EAAE,UAAU,MAAM,CAAC;AAAA,IAChH;AAAA,EACJ;AAAA,EACA,IAAI,CAAC,KAAK;AAAA,IACN,MAAM,IAAI,UAAU,sBAAsB;AAAA,EAC9C;AAAA,EACA,OAAO,IAAI,WAAW,QAAS,CAAC,YAAY;AAAA,IACxC,IAAI,UAAU,QAAS,GAAG;AAAA,MACtB,IAAI,OAAO,CAAC;AAAA,MACZ,SAAS,KAAK,EAAG,KAAK,UAAU,QAAQ,MAAM;AAAA,QAC1C,KAAK,MAAM,UAAU;AAAA,MACzB;AAAA,MACA,OAAO,WAAW,KAAK,IAAI,KAAK,SAAS,OAAO,KAAK,EAAE;AAAA;AAAA,IAE3D,IAAI,OAAO;AAAA,IACX,OAAO,QAAS,GAAG;AAAA,MAAE,OAAO,OAAO,OAAO;AAAA;AAAA,GAC7C;AAAA;AAEL,SAAS,uBAAuB,CAAC,QAAQ,WAAW;AAAA,EAChD,OAAO,QAAS,CAAC,YAAY;AAAA,IAAE,OAAO,QAAS,CAAC,SAAS;AAAA,MAAE,OAAO,OAAO,YAAY,WAAW,OAAO;AAAA;AAAA;AAAA;AAE3G,SAAS,uBAAuB,CAAC,QAAQ;AAAA,EACrC,OAAO,WAAW,OAAO,WAAW,KAAK,WAAW,OAAO,cAAc;AAAA;AAE7E,SAAS,yBAAyB,CAAC,QAAQ;AAAA,EACvC,OAAO,WAAW,OAAO,EAAE,KAAK,WAAW,OAAO,GAAG;AAAA;AAEzD,SAAS,aAAa,CAAC,QAAQ;AAAA,EAC3B,OAAO,WAAW,OAAO,gBAAgB,KAAK,WAAW,OAAO,mBAAmB;AAAA;;ACtDvF,IAAI,SAAU,QAAS,CAAC,QAAQ;AAAA,EAC5B,UAAU,SAAQ,MAAM;AAAA,EACxB,SAAS,OAAM,CAAC,WAAW,MAAM;AAAA,IAC7B,OAAO,OAAO,KAAK,IAAI,KAAK;AAAA;AAAA,EAEhC,QAAO,UAAU,WAAW,QAAS,CAAC,OAAO,OAAO;AAAA,IAChD,IAAI,UAAe,WAAG;AAAA,MAAE,QAAQ;AAAA,IAAG;AAAA,IACnC,OAAO;AAAA;AAAA,EAEX,OAAO;AAAA,EACT,YAAY;;;ACXP,IAAI,mBAAmB;AAAA,EAC1B,aAAa,QAAS,CAAC,SAAS,SAAS;AAAA,IACrC,IAAI,OAAO,CAAC;AAAA,IACZ,SAAS,KAAK,EAAG,KAAK,UAAU,QAAQ,MAAM;AAAA,MAC1C,KAAK,KAAK,KAAK,UAAU;AAAA,IAC7B;AAAA,IACA,IAAI,WAAW,iBAAiB;AAAA,IAChC,IAAI,aAAa,QAAQ,aAAkB,YAAS,YAAI,SAAS,aAAa;AAAA,MAC1E,OAAO,SAAS,YAAY,MAAM,UAAU,cAAc,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;AAAA,IAC/F;AAAA,IACA,OAAO,YAAY,MAAW,WAAG,cAAc,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;AAAA;AAAA,EAEpF,eAAe,QAAS,CAAC,QAAQ;AAAA,IAC7B,IAAI,WAAW,iBAAiB;AAAA,IAChC,SAAS,aAAa,QAAQ,aAAkB,YAAS,YAAI,SAAS,kBAAkB,eAAe,MAAM;AAAA;AAAA,EAEjH,UAAU;AACd;;;ACdA,IAAI,cAAe,QAAS,CAAC,QAAQ;AAAA,EACjC,UAAU,cAAa,MAAM;AAAA,EAC7B,SAAS,YAAW,CAAC,WAAW,MAAM;AAAA,IAClC,IAAI,QAAQ,OAAO,KAAK,MAAM,WAAW,IAAI,KAAK;AAAA,IAClD,MAAM,YAAY;AAAA,IAClB,MAAM,OAAO;AAAA,IACb,MAAM,UAAU;AAAA,IAChB,OAAO;AAAA;AAAA,EAEX,aAAY,UAAU,WAAW,QAAS,CAAC,OAAO,OAAO;AAAA,IACrD,IAAI;AAAA,IACJ,IAAI,UAAe,WAAG;AAAA,MAAE,QAAQ;AAAA,IAAG;AAAA,IACnC,IAAI,KAAK,QAAQ;AAAA,MACb,OAAO;AAAA,IACX;AAAA,IACA,KAAK,QAAQ;AAAA,IACb,IAAI,KAAK,KAAK;AAAA,IACd,IAAI,YAAY,KAAK;AAAA,IACrB,IAAI,MAAM,MAAM;AAAA,MACZ,KAAK,KAAK,KAAK,eAAe,WAAW,IAAI,KAAK;AAAA,IACtD;AAAA,IACA,KAAK,UAAU;AAAA,IACf,KAAK,QAAQ;AAAA,IACb,KAAK,MAAM,KAAK,KAAK,QAAQ,QAAQ,OAAY,YAAI,KAAK,KAAK,eAAe,WAAW,KAAK,IAAI,KAAK;AAAA,IACvG,OAAO;AAAA;AAAA,EAEX,aAAY,UAAU,iBAAiB,QAAS,CAAC,WAAW,KAAK,OAAO;AAAA,IACpE,IAAI,UAAe,WAAG;AAAA,MAAE,QAAQ;AAAA,IAAG;AAAA,IACnC,OAAO,iBAAiB,YAAY,UAAU,MAAM,KAAK,WAAW,IAAI,GAAG,KAAK;AAAA;AAAA,EAEpF,aAAY,UAAU,iBAAiB,QAAS,CAAC,YAAY,IAAI,OAAO;AAAA,IACpE,IAAI,UAAe,WAAG;AAAA,MAAE,QAAQ;AAAA,IAAG;AAAA,IACnC,IAAI,SAAS,QAAQ,KAAK,UAAU,SAAS,KAAK,YAAY,OAAO;AAAA,MACjE,OAAO;AAAA,IACX;AAAA,IACA,IAAI,MAAM,MAAM;AAAA,MACZ,iBAAiB,cAAc,EAAE;AAAA,IACrC;AAAA,IACA;AAAA;AAAA,EAEJ,aAAY,UAAU,UAAU,QAAS,CAAC,OAAO,OAAO;AAAA,IACpD,IAAI,KAAK,QAAQ;AAAA,MACb,OAAO,IAAI,MAAM,8BAA8B;AAAA,IACnD;AAAA,IACA,KAAK,UAAU;AAAA,IACf,IAAI,QAAQ,KAAK,SAAS,OAAO,KAAK;AAAA,IACtC,IAAI,OAAO;AAAA,MACP,OAAO;AAAA,IACX,EACK,SAAI,KAAK,YAAY,SAAS,KAAK,MAAM,MAAM;AAAA,MAChD,KAAK,KAAK,KAAK,eAAe,KAAK,WAAW,KAAK,IAAI,IAAI;AAAA,IAC/D;AAAA;AAAA,EAEJ,aAAY,UAAU,WAAW,QAAS,CAAC,OAAO,QAAQ;AAAA,IACtD,IAAI,UAAU;AAAA,IACd,IAAI;AAAA,IACJ,IAAI;AAAA,MACA,KAAK,KAAK,KAAK;AAAA,MAEnB,OAAO,GAAG;AAAA,MACN,UAAU;AAAA,MACV,aAAa,IAAI,IAAI,IAAI,MAAM,oCAAoC;AAAA;AAAA,IAEvE,IAAI,SAAS;AAAA,MACT,KAAK,YAAY;AAAA,MACjB,OAAO;AAAA,IACX;AAAA;AAAA,EAEJ,aAAY,UAAU,cAAc,QAAS,GAAG;AAAA,IAC5C,IAAI,CAAC,KAAK,QAAQ;AAAA,MACd,IAAI,KAAK,MAAM,KAAK,GAAG,IAAI,YAAY,GAAG;AAAA,MAC1C,IAAI,UAAU,UAAU;AAAA,MACxB,KAAK,OAAO,KAAK,QAAQ,KAAK,YAAY;AAAA,MAC1C,KAAK,UAAU;AAAA,MACf,UAAU,SAAS,IAAI;AAAA,MACvB,IAAI,MAAM,MAAM;AAAA,QACZ,KAAK,KAAK,KAAK,eAAe,WAAW,IAAI,IAAI;AAAA,MACrD;AAAA,MACA,KAAK,QAAQ;AAAA,MACb,OAAO,UAAU,YAAY,KAAK,IAAI;AAAA,IAC1C;AAAA;AAAA,EAEJ,OAAO;AAAA,EACT,MAAM;;;ACtFR,IAAI,YAAa,QAAS,GAAG;AAAA,EACzB,SAAS,UAAS,CAAC,qBAAqB,KAAK;AAAA,IACzC,IAAI,QAAa,WAAG;AAAA,MAAE,MAAM,WAAU;AAAA,IAAK;AAAA,IAC3C,KAAK,sBAAsB;AAAA,IAC3B,KAAK,MAAM;AAAA;AAAA,EAEf,WAAU,UAAU,WAAW,QAAS,CAAC,MAAM,OAAO,OAAO;AAAA,IACzD,IAAI,UAAe,WAAG;AAAA,MAAE,QAAQ;AAAA,IAAG;AAAA,IACnC,OAAO,IAAI,KAAK,oBAAoB,MAAM,IAAI,EAAE,SAAS,OAAO,KAAK;AAAA;AAAA,EAEzE,WAAU,MAAM,sBAAsB;AAAA,EACtC,OAAO;AAAA,EACT;;;ACXF,IAAI,iBAAkB,QAAS,CAAC,QAAQ;AAAA,EACpC,UAAU,iBAAgB,MAAM;AAAA,EAChC,SAAS,eAAc,CAAC,iBAAiB,KAAK;AAAA,IAC1C,IAAI,QAAa,WAAG;AAAA,MAAE,MAAM,UAAU;AAAA,IAAK;AAAA,IAC3C,IAAI,QAAQ,OAAO,KAAK,MAAM,iBAAiB,GAAG,KAAK;AAAA,IACvD,MAAM,UAAU,CAAC;AAAA,IACjB,MAAM,UAAU;AAAA,IAChB,OAAO;AAAA;AAAA,EAEX,gBAAe,UAAU,QAAQ,QAAS,CAAC,QAAQ;AAAA,IAC/C,IAAI,UAAU,KAAK;AAAA,IACnB,IAAI,KAAK,SAAS;AAAA,MACd,QAAQ,KAAK,MAAM;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,IAAI;AAAA,IACJ,KAAK,UAAU;AAAA,IACf,GAAG;AAAA,MACC,IAAK,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,KAAK,GAAI;AAAA,QACtD;AAAA,MACJ;AAAA,IACJ,SAAU,SAAS,QAAQ,MAAM;AAAA,IACjC,KAAK,UAAU;AAAA,IACf,IAAI,OAAO;AAAA,MACP,OAAQ,SAAS,QAAQ,MAAM,GAAI;AAAA,QAC/B,OAAO,YAAY;AAAA,MACvB;AAAA,MACA,MAAM;AAAA,IACV;AAAA;AAAA,EAEJ,OAAO;AAAA,EACT,SAAS;;;AC/BJ,IAAI,iBAAiB,IAAI,eAAe,WAAW;AACnD,IAAI,QAAQ;;;ACFZ,SAAS,WAAW,CAAC,OAAO;AAAA,EAC/B,OAAO,SAAS,WAAW,MAAM,QAAQ;AAAA;;;ACFtC,SAAS,WAAW,CAAC,OAAO;AAAA,EAC/B,OAAO,iBAAiB,QAAQ,CAAC,MAAM,KAAK;AAAA;;;ACGzC,SAAS,KAAK,CAAC,SAAS,qBAAqB,WAAW;AAAA,EAC3D,IAAI,YAAiB,WAAG;AAAA,IAAE,UAAU;AAAA,EAAG;AAAA,EACvC,IAAI,cAAmB,WAAG;AAAA,IAAE,YAAY;AAAA,EAAgB;AAAA,EACxD,IAAI,mBAAmB;AAAA,EACvB,IAAI,uBAAuB,MAAM;AAAA,IAC7B,IAAI,YAAY,mBAAmB,GAAG;AAAA,MAClC,YAAY;AAAA,IAChB,EACK;AAAA,MACD,mBAAmB;AAAA;AAAA,EAE3B;AAAA,EACA,OAAO,IAAI,WAAW,QAAS,CAAC,YAAY;AAAA,IACxC,IAAI,MAAM,YAAY,OAAO,IAAI,CAAC,UAAU,UAAU,IAAI,IAAI;AAAA,IAC9D,IAAI,MAAM,GAAG;AAAA,MACT,MAAM;AAAA,IACV;AAAA,IACA,IAAI,IAAI;AAAA,IACR,OAAO,UAAU,SAAS,QAAS,GAAG;AAAA,MAClC,IAAI,CAAC,WAAW,QAAQ;AAAA,QACpB,WAAW,KAAK,GAAG;AAAA,QACnB,IAAI,KAAK,kBAAkB;AAAA,UACvB,KAAK,SAAS,WAAW,gBAAgB;AAAA,QAC7C,EACK;AAAA,UACD,WAAW,SAAS;AAAA;AAAA,MAE5B;AAAA,OACD,GAAG;AAAA,GACT;AAAA;;;AC/BE,SAAS,QAAQ,CAAC,QAAQ,WAAW;AAAA,EACxC,IAAI,WAAgB,WAAG;AAAA,IAAE,SAAS;AAAA,EAAG;AAAA,EACrC,IAAI,cAAmB,WAAG;AAAA,IAAE,YAAY;AAAA,EAAgB;AAAA,EACxD,IAAI,SAAS,GAAG;AAAA,IACZ,SAAS;AAAA,EACb;AAAA,EACA,OAAO,MAAM,QAAQ,QAAQ,SAAS;AAAA;;ACNnC,SAAS,QAAQ,CAAC,YAAY;AAAA,EACjC,IAAI,eAAoB,WAAG;AAAA,IAAE,aAAa;AAAA,EAAU;AAAA,EACpD,OAAO,SAAS,UAAU,UAAU;AAAA;;;ACHjC,IAAI,QAAQ,IAAI,WAAW,QAAS,CAAC,YAAY;AAAA,EAAE,OAAO,WAAW,SAAS;AAAA,CAAI;;;ACCzF,SAAS,IAAI,CAAC,KAAK;AAAA,EACf,OAAO,IAAI,IAAI,SAAS;AAAA;AAKrB,SAAS,YAAY,CAAC,MAAM;AAAA,EAC/B,OAAO,YAAY,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI;AAAA;AAE3C,SAAS,SAAS,CAAC,MAAM,cAAc;AAAA,EAC1C,OAAO,OAAO,KAAK,IAAI,MAAM,WAAW,KAAK,IAAI,IAAI;AAAA;;;ACPlD,SAAS,KAAK,GAAG;AAAA,EACpB,IAAI,OAAO,CAAC;AAAA,EACZ,SAAS,KAAK,EAAG,KAAK,UAAU,QAAQ,MAAM;AAAA,IAC1C,KAAK,MAAM,UAAU;AAAA,EACzB;AAAA,EACA,IAAI,YAAY,aAAa,IAAI;AAAA,EACjC,IAAI,aAAa,UAAU,MAAM,QAAQ;AAAA,EACzC,IAAI,UAAU;AAAA,EACd,OAAO,CAAC,QAAQ,SAER,QACF,QAAQ,WAAW,IAEb,UAAU,QAAQ,EAAE,IAEpB,SAAS,UAAU,EAAE,KAAK,SAAS,SAAS,CAAC;AAAA;;AClBtD,SAAS,EAAE,GAAG;AAAA,EACjB,IAAI,OAAO,CAAC;AAAA,EACZ,SAAS,KAAK,EAAG,KAAK,UAAU,QAAQ,MAAM;AAAA,IAC1C,KAAK,MAAM,UAAU;AAAA,EACzB;AAAA,EACA,IAAI,YAAY,aAAa,IAAI;AAAA,EACjC,OAAO,KAAK,MAAM,SAAS;AAAA;;ACLxB,SAAS,WAAU,CAAC,UAAU;AAAA,EACjC,OAAO,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACzC,IAAI,WAAW;AAAA,IACf,IAAI,YAAY;AAAA,IAChB,IAAI;AAAA,IACJ,WAAW,OAAO,UAAU,yBAAyB,YAAY,WAAW,WAAW,QAAS,CAAC,KAAK;AAAA,MAClG,gBAAgB,UAAU,SAAS,KAAK,YAAW,QAAQ,EAAE,MAAM,CAAC,CAAC;AAAA,MACrE,IAAI,UAAU;AAAA,QACV,SAAS,YAAY;AAAA,QACrB,WAAW;AAAA,QACX,cAAc,UAAU,UAAU;AAAA,MACtC,EACK;AAAA,QACD,YAAY;AAAA;AAAA,KAEnB,CAAC;AAAA,IACF,IAAI,WAAW;AAAA,MACX,SAAS,YAAY;AAAA,MACrB,WAAW;AAAA,MACX,cAAc,UAAU,UAAU;AAAA,IACtC;AAAA,GACH;AAAA;;ACtBE,SAAS,OAAM,CAAC,WAAW,SAAS;AAAA,EACvC,OAAO,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACzC,IAAI,QAAQ;AAAA,IACZ,OAAO,UAAU,yBAAyB,YAAY,QAAS,CAAC,OAAO;AAAA,MAAE,OAAO,UAAU,KAAK,SAAS,OAAO,OAAO,KAAK,WAAW,KAAK,KAAK;AAAA,KAAI,CAAC;AAAA,GACxJ;AAAA;;ACLE,SAAS,SAAQ,CAAC,UAAU;AAAA,EAC/B,OAAO,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACzC,IAAI;AAAA,MACA,OAAO,UAAU,UAAU;AAAA,cAE/B;AAAA,MACI,WAAW,IAAI,QAAQ;AAAA;AAAA,GAE9B;AAAA;;ACNE,SAAS,KAAI,CAAC,QAAO;AAAA,EACxB,OAAO,UAAS,IAER,QAAS,GAAG;AAAA,IAAE,OAAO;AAAA,MACvB,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACpC,IAAI,OAAO;AAAA,IACX,OAAO,UAAU,yBAAyB,YAAY,QAAS,CAAC,OAAO;AAAA,MACnE,IAAI,EAAE,QAAQ,QAAO;AAAA,QACjB,WAAW,KAAK,KAAK;AAAA,QACrB,IAAI,UAAS,MAAM;AAAA,UACf,WAAW,SAAS;AAAA,QACxB;AAAA,MACJ;AAAA,KACH,CAAC;AAAA,GACL;AAAA;;;ACfF,SAAS,eAAc,CAAC,cAAc;AAAA,EACzC,OAAO,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACzC,IAAI,WAAW;AAAA,IACf,OAAO,UAAU,yBAAyB,YAAY,QAAS,CAAC,OAAO;AAAA,MACnE,WAAW;AAAA,MACX,WAAW,KAAK,KAAK;AAAA,OACtB,QAAS,GAAG;AAAA,MACX,IAAI,CAAC,UAAU;AAAA,QACX,WAAW,KAAK,YAAY;AAAA,MAChC;AAAA,MACA,WAAW,SAAS;AAAA,KACvB,CAAC;AAAA,GACL;AAAA;;;ACXE,SAAS,aAAY,CAAC,cAAc;AAAA,EACvC,IAAI,iBAAsB,WAAG;AAAA,IAAE,eAAe;AAAA,EAAqB;AAAA,EACnE,OAAO,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACzC,IAAI,WAAW;AAAA,IACf,OAAO,UAAU,yBAAyB,YAAY,QAAS,CAAC,OAAO;AAAA,MACnE,WAAW;AAAA,MACX,WAAW,KAAK,KAAK;AAAA,OACtB,QAAS,GAAG;AAAA,MAAE,OAAQ,WAAW,WAAW,SAAS,IAAI,WAAW,MAAM,aAAa,CAAC;AAAA,KAAK,CAAC;AAAA,GACpG;AAAA;AAEL,SAAS,mBAAmB,GAAG;AAAA,EAC3B,OAAO,IAAI;AAAA;;;ACRR,SAAS,MAAK,CAAC,WAAW,cAAc;AAAA,EAC3C,IAAI,kBAAkB,UAAU,UAAU;AAAA,EAC1C,OAAO,QAAS,CAAC,QAAQ;AAAA,IACrB,OAAO,OAAO,KAAK,YAAY,QAAO,QAAS,CAAC,GAAG,GAAG;AAAA,MAAE,OAAO,UAAU,GAAG,GAAG,MAAM;AAAA,KAAI,IAAI,UAAU,MAAK,CAAC,GAAG,kBAAkB,gBAAe,YAAY,IAAI,cAAa,QAAS,GAAG;AAAA,MAAE,OAAO,IAAI;AAAA,KAAe,CAAC;AAAA;AAAA;;ACNxN,SAAS,eAAc,GAAG;AAAA,EAC7B,OAAO,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACzC,OAAO,UAAU,yBAAyB,YAAY,IAAI,CAAC;AAAA,GAC9D;AAAA;;ACDE,SAAS,MAAK,CAAC,eAAe;AAAA,EACjC,IAAI,kBAAuB,WAAG;AAAA,IAAE,gBAAgB;AAAA,EAAU;AAAA,EAC1D,IAAI;AAAA,EACJ,IAAI,iBAAiB,OAAO,kBAAkB,UAAU;AAAA,IACpD,UAAS;AAAA,EACb,EACK;AAAA,IACD,UAAS;AAAA,MACL,OAAO;AAAA,IACX;AAAA;AAAA,EAEJ,IAAI,KAAK,QAAO,OAAO,SAAQ,OAAY,YAAI,WAAW,IAAI,SAAQ,QAAO,OAAO,KAAK,QAAO,gBAAgB,iBAAiB,OAAY,YAAI,QAAQ;AAAA,EACzJ,OAAO,UAAS,IACV,WACA,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACpC,IAAI,QAAQ;AAAA,IACZ,IAAI;AAAA,IACJ,IAAI,oBAAoB,QAAS,GAAG;AAAA,MAChC,IAAI,YAAY;AAAA,MAChB,WAAW,OAAO,UAAU,yBAAyB,YAAY,QAAS,CAAC,OAAO;AAAA,QAC9E,IAAI,gBAAgB;AAAA,UAChB,QAAQ;AAAA,QACZ;AAAA,QACA,WAAW,KAAK,KAAK;AAAA,SACtB,WAAW,QAAS,CAAC,KAAK;AAAA,QACzB,IAAI,UAAU,QAAO;AAAA,UACjB,IAAI,UAAU,QAAS,GAAG;AAAA,YACtB,IAAI,UAAU;AAAA,cACV,SAAS,YAAY;AAAA,cACrB,WAAW;AAAA,cACX,kBAAkB;AAAA,YACtB,EACK;AAAA,cACD,YAAY;AAAA;AAAA;AAAA,UAGpB,IAAI,UAAS,MAAM;AAAA,YACf,IAAI,WAAW,OAAO,WAAU,WAAW,MAAM,MAAK,IAAI,UAAU,OAAM,KAAK,KAAK,CAAC;AAAA,YACrF,IAAI,uBAAuB,yBAAyB,YAAY,QAAS,GAAG;AAAA,cACxE,qBAAqB,YAAY;AAAA,cACjC,QAAQ;AAAA,eACT,QAAS,GAAG;AAAA,cACX,WAAW,SAAS;AAAA,aACvB;AAAA,YACD,SAAS,UAAU,oBAAoB;AAAA,UAC3C,EACK;AAAA,YACD,QAAQ;AAAA;AAAA,QAEhB,EACK;AAAA,UACD,WAAW,MAAM,GAAG;AAAA;AAAA,OAE3B,CAAC;AAAA,MACF,IAAI,WAAW;AAAA,QACX,SAAS,YAAY;AAAA,QACrB,WAAW;AAAA,QACX,kBAAkB;AAAA,MACtB;AAAA;AAAA,IAEJ,kBAAkB;AAAA,GACrB;AAAA;;AC/DF,SAAS,UAAS,CAAC,SAAS,gBAAgB;AAAA,EAC/C,OAAO,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACzC,IAAI,kBAAkB;AAAA,IACtB,IAAI,QAAQ;AAAA,IACZ,IAAI,aAAa;AAAA,IACjB,IAAI,gBAAgB,QAAS,GAAG;AAAA,MAAE,OAAO,cAAc,CAAC,mBAAmB,WAAW,SAAS;AAAA;AAAA,IAC/F,OAAO,UAAU,yBAAyB,YAAY,QAAS,CAAC,OAAO;AAAA,MACnE,oBAAoB,QAAQ,oBAAyB,aAAa,gBAAgB,YAAY;AAAA,MAC9F,IAAI,aAAa;AAAA,MACjB,IAAI,aAAa;AAAA,MACjB,UAAU,QAAQ,OAAO,UAAU,CAAC,EAAE,UAAW,kBAAkB,yBAAyB,YAAY,QAAS,CAAC,YAAY;AAAA,QAAE,OAAO,WAAW,KAAK,iBAAiB,eAAe,OAAO,YAAY,YAAY,YAAY,IAAI,UAAU;AAAA,SAAM,QAAS,GAAG;AAAA,QAC9P,kBAAkB;AAAA,QAClB,cAAc;AAAA,OACjB,CAAE;AAAA,OACJ,QAAS,GAAG;AAAA,MACX,aAAa;AAAA,MACb,cAAc;AAAA,KACjB,CAAC;AAAA,GACL;AAAA;;ACjBE,SAAS,UAAS,CAAC,UAAU;AAAA,EAChC,OAAO,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACzC,UAAU,QAAQ,EAAE,UAAU,yBAAyB,YAAY,QAAS,GAAG;AAAA,MAAE,OAAO,WAAW,SAAS;AAAA,OAAM,IAAI,CAAC;AAAA,IACvH,CAAC,WAAW,UAAU,OAAO,UAAU,UAAU;AAAA,GACpD;AAAA;;ACJE,SAAS,IAAG,CAAC,gBAAgB,OAAO,UAAU;AAAA,EACjD,IAAI,cAAc,WAAW,cAAc,KAAK,SAAS,WAEjD,EAAE,MAAM,gBAAgB,OAAc,SAAmB,IAC3D;AAAA,EACN,OAAO,cACD,QAAQ,QAAS,CAAC,QAAQ,YAAY;AAAA,IACpC,IAAI;AAAA,KACH,KAAK,YAAY,eAAe,QAAQ,OAAY,aAAa,GAAG,KAAK,WAAW;AAAA,IACrF,IAAI,UAAU;AAAA,IACd,OAAO,UAAU,yBAAyB,YAAY,QAAS,CAAC,OAAO;AAAA,MACnE,IAAI;AAAA,OACH,MAAK,YAAY,UAAU,QAAQ,QAAY,aAAa,IAAG,KAAK,aAAa,KAAK;AAAA,MACvF,WAAW,KAAK,KAAK;AAAA,OACtB,QAAS,GAAG;AAAA,MACX,IAAI;AAAA,MACJ,UAAU;AAAA,OACT,MAAK,YAAY,cAAc,QAAQ,QAAY,aAAa,IAAG,KAAK,WAAW;AAAA,MACpF,WAAW,SAAS;AAAA,OACrB,QAAS,CAAC,KAAK;AAAA,MACd,IAAI;AAAA,MACJ,UAAU;AAAA,OACT,MAAK,YAAY,WAAW,QAAQ,QAAY,aAAa,IAAG,KAAK,aAAa,GAAG;AAAA,MACtF,WAAW,MAAM,GAAG;AAAA,OACrB,QAAS,GAAG;AAAA,MACX,IAAI,KAAI;AAAA,MACR,IAAI,SAAS;AAAA,SACR,MAAK,YAAY,iBAAiB,QAAQ,QAAY,aAAa,IAAG,KAAK,WAAW;AAAA,MAC3F;AAAA,OACC,KAAK,YAAY,cAAc,QAAQ,OAAY,aAAa,GAAG,KAAK,WAAW;AAAA,KACvF,CAAC;AAAA,GACL,IAEG;AAAA;;ACrCZ,IAAI;AACJ,IAAM,QAAQ,IAAI,WAAW,EAAE;AAC/B,SAAwB,GAAG,GAAG;AAAA,EAC1B,IAAI,CAAC,iBAAiB;AAAA,IAClB,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,iBAAiB;AAAA,MAC1D,MAAM,IAAI,MAAM,0GAA0G;AAAA,IAC9H;AAAA,IACA,kBAAkB,OAAO,gBAAgB,KAAK,MAAM;AAAA,EACxD;AAAA,EACA,OAAO,gBAAgB,KAAK;AAAA;;;ACRhC,IAAM,YAAY,CAAC;AACnB,SAAS,IAAI,EAAG,IAAI,KAAK,EAAE,GAAG;AAAA,EAC1B,UAAU,MAAM,IAAI,KAAO,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AACpD;AACO,SAAS,eAAe,CAAC,KAAK,SAAS,GAAG;AAAA,EAC7C,QAAQ,UAAU,IAAI,SAAS,MAC3B,UAAU,IAAI,SAAS,MACvB,UAAU,IAAI,SAAS,MACvB,UAAU,IAAI,SAAS,MACvB,MACA,UAAU,IAAI,SAAS,MACvB,UAAU,IAAI,SAAS,MACvB,MACA,UAAU,IAAI,SAAS,MACvB,UAAU,IAAI,SAAS,MACvB,MACA,UAAU,IAAI,SAAS,MACvB,UAAU,IAAI,SAAS,MACvB,MACA,UAAU,IAAI,SAAS,OACvB,UAAU,IAAI,SAAS,OACvB,UAAU,IAAI,SAAS,OACvB,UAAU,IAAI,SAAS,OACvB,UAAU,IAAI,SAAS,OACvB,UAAU,IAAI,SAAS,MAAM,YAAY;AAAA;;;ACvBjD,IAAM,SAAS,CAAC;AAChB,SAAS,EAAE,CAAC,SAAS,KAAK,QAAQ;AAAA,EAC9B,IAAI;AAAA,EACJ,IAAI,SAAS;AAAA,IACT,QAAQ,QAAQ,QAAQ,UAAU,QAAQ,MAAM,KAAK,IAAI,GAAG,QAAQ,OAAO,QAAQ,KAAK,KAAK,MAAM;AAAA,EACvG,EACK;AAAA,IACD,MAAM,MAAM,KAAK,IAAI;AAAA,IACrB,MAAM,OAAO,IAAI;AAAA,IACjB,cAAc,QAAQ,KAAK,IAAI;AAAA,IAC/B,QAAQ,QAAQ,MAAM,OAAO,OAAO,OAAO,KAAK,KAAK,MAAM;AAAA;AAAA,EAE/D,OAAO,OAAO,gBAAgB,KAAK;AAAA;AAEhC,SAAS,aAAa,CAAC,OAAO,KAAK,MAAM;AAAA,EAC5C,MAAM,UAAU;AAAA,EAChB,MAAM,QAAQ;AAAA,EACd,IAAI,MAAM,MAAM,OAAO;AAAA,IACnB,MAAM,MAAO,KAAK,MAAM,KAAO,KAAK,MAAM,KAAO,KAAK,MAAM,IAAK,KAAK;AAAA,IACtE,MAAM,QAAQ;AAAA,EAClB,EACK;AAAA,IACD,MAAM,MAAO,MAAM,MAAM,IAAK;AAAA,IAC9B,IAAI,MAAM,QAAQ,GAAG;AAAA,MACjB,MAAM;AAAA,IACV;AAAA;AAAA,EAEJ,OAAO;AAAA;AAEX,SAAS,OAAO,CAAC,MAAM,OAAO,KAAK,KAAK,SAAS,GAAG;AAAA,EAChD,IAAI,KAAK,SAAS,IAAI;AAAA,IAClB,MAAM,IAAI,MAAM,mCAAmC;AAAA,EACvD;AAAA,EACA,IAAI,CAAC,KAAK;AAAA,IACN,MAAM,IAAI,WAAW,EAAE;AAAA,IACvB,SAAS;AAAA,EACb,EACK;AAAA,IACD,IAAI,SAAS,KAAK,SAAS,KAAK,IAAI,QAAQ;AAAA,MACxC,MAAM,IAAI,WAAW,mBAAmB,UAAU,SAAS,4BAA4B;AAAA,IAC3F;AAAA;AAAA,EAEJ,UAAU,KAAK,IAAI;AAAA,EACnB,QAAU,KAAK,KAAK,OAAS,KAAO,KAAK,MAAM,KAAO,KAAK,MAAM,IAAK,KAAK;AAAA,EAC3E,IAAI,YAAa,QAAQ,gBAAiB;AAAA,EAC1C,IAAI,YAAa,QAAQ,aAAe;AAAA,EACxC,IAAI,YAAa,QAAQ,WAAa;AAAA,EACtC,IAAI,YAAa,QAAQ,QAAW;AAAA,EACpC,IAAI,YAAa,QAAQ,MAAS;AAAA,EAClC,IAAI,YAAY,QAAQ;AAAA,EACxB,IAAI,YAAY,MAAS,QAAQ,KAAM;AAAA,EACvC,IAAI,YAAa,QAAQ,KAAM;AAAA,EAC/B,IAAI,YAAY,MAAS,QAAQ,KAAM;AAAA,EACvC,IAAI,YAAa,QAAQ,IAAK;AAAA,EAC9B,IAAI,YAAc,OAAO,IAAK,MAAS,KAAK,MAAM;AAAA,EAClD,IAAI,YAAY,KAAK;AAAA,EACrB,IAAI,YAAY,KAAK;AAAA,EACrB,IAAI,YAAY,KAAK;AAAA,EACrB,IAAI,YAAY,KAAK;AAAA,EACrB,IAAI,YAAY,KAAK;AAAA,EACrB,OAAO;AAAA;AAEX,IAAe;;ACpDR,MAAM,eAAe,gBAAyC;AAAA,EAW7C;AAAA,EATJ,YAAY,WAAO;AAAA,EACnB,WAAW,IAAI,cAAsB,CAAC;AAAA,EACtC,aAAa,IAAI,gBAAgB,KAAK;AAAA,EAEtD,UAAU,IAAI;AAAA,EACd,UAAU,IAAI,cAA+C,IAAI;AAAA,EAEjE;AAAA,EAEA,WAAW,CAAS,UAAkB;AAAA,IAClC,MAAM;AAAA,MACF,WAAW,WAAO;AAAA,MAClB,WAAW;AAAA,MACX,SAAS;AAAA,IACb,CAAC;AAAA,IALe;AAAA,IAMhB,KAAK,MAAM;AAAA;AAAA,EAGf,KAAK,GAAG;AAAA,IACJ,IAAI,OAAO,aAAa;AAAA,MAAa;AAAA,IACrC,IAAI,KAAK;AAAA,MAAU;AAAA,IACnB,KAAK,WAAW,GAAG,CAAC,EAAE,KAClB,WAAU,KAAK,KAAK,gBAAe,CAAC,CAAC,GACrC,SAAS,YAAY,IAAI,UAAU,KAAK,QAAQ,CAAC,GACjD,WAAU,QAAM,MACZ,UAAU,IAAI,QAAQ,EAAE,KAAK,IAAI,OAAK;AAAA,MAAE,MAAM;AAAA,KAAG,CAAC,GAClD,UAAU,IAAI,OAAO,EAAE,KAAK,IAAI,OAAK;AAAA,MAAE,MAAM;AAAA,KAAG,CAAC,GACjD,UAAU,IAAI,OAAO,EAAE,KAAK,IAAI,OAAK;AAAA,MAAE,MAAM;AAAA,KAAG,CAAC,GACjD,UAAU,IAAI,MAAM,EAAE,KAClB,WAAU,MAAM,SAAS,KAAK,CAAC,GAC/B,KAAI,MAAM,GAAG,KAAK,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CACxD,GACA,UAAU,IAAI,MAAM,EAAE,KAClB,KAAI,MAAM;AAAA,MACN,KAAK,KAAK;AAAA,WACF,KAAK;AAAA,QACT,WAAW;AAAA,QACX,SAAS,KAAK,MAAM,UAAU;AAAA,MAClC,CAAC;AAAA,MACD,QAAQ,IAAI,KAAK,MAAM,WAAW,IAAI,wBAAwB,2BAA2B,KAAK,MAAM,UAAU;AAAA,MAC9G,GAAG,KAAK,KAAK,UAAU,EAAE,OAAO,SAAS,MAAM,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC,CAAC;AAAA,KAC3E,GACD,SAAS,MAAM,KAAK,OAAO,GAC3B,KAAI,UAAQ,GAAG,KAAK,KAAK,UAAU,IAAI,CAAC,CAAC,CAC7C,GACA,UAAU,IAAI,SAAS,EAAE,KACrB,KAAI,CAAC,QAAa;AAAA,MACd,MAAM,IAAI,KAAK,MAAM,IAAI,IAAI;AAAA,MAC7B,MAAM,KAAM,KAAa,IAAI,EAAE;AAAA,MAC/B,OAAO,MAAM,cAAc,GAAG,KAAK,MAAM,CAAC;AAAA,KAC7C,CACL,CACJ,EAAE,KACE,UAAS,MAAM,GAAG,MAAM,CAAC,CAC7B,CAAC,GACD,YAAW,OAAK;AAAA,MACZ,KAAK,WAAW,KAAK,KAAK;AAAA,MAC1B,MAAM;AAAA,KACT,GACD,OAAM,EAAE,OAAO,KAAK,CAAC,CACzB,EAAE,UAAU;AAAA;AAAA,EAGhB,IAAI,GAAG;AAAA,IACH,KAAK,SAAS;AAAA;AAAA,EAGV,KAAK,CAAC,GAAoE;AAAA,IAC9E,WAAW,UAAU,EAAE,KAAK,SAAS;AAAA,MACjC,OAAO,iBAAiB,OAAO;AAAA,MAC/B,KAAK,QAAQ,IAAI,OAAO,GAAG,GAAG,OAAO,KAAK,MAAM;AAAA,IACpD;AAAA;AAAA,EAGI,MAAM,CAAC,GAAoB;AAAA,IAC/B,KAAK,SAAS,KAAK,EAAE,GAAG;AAAA;AAAA,EAI5B,aAAa,CAAC,gBAAwB;AAAA,IAClC,KAAK,QAAQ,KAAK,EAAE,OAAO,aAAa,MAAM,EAAE,eAAe,EAAE,CAAC;AAAA;AAAA,EAItE,MAAM,CAAC,KAA0C;AAAA,IAC7C,IAAI,CAAC,KAAK,QAAQ,IAAI,GAAG,GAAG;AAAA,MACxB,MAAM,SAAS,IAAI;AAAA,MACnB,KAAK,QAAQ,IAAI,KAAK,EAAE,QAAQ,cAAc,EAAE,CAAC;AAAA,IACrD;AAAA,IACA,MAAM,QAAQ,KAAK,QAAQ,IAAI,GAAG;AAAA,IAClC,IAAI,CAAC;AAAA,MAAO,OAAO;AAAA,IACnB,MAAM;AAAA,IACN,OAAO,MAAM,OAAO,KAChB,UAAS,MAAM;AAAA,MACX,MAAM;AAAA,MACN,WAAW,MAAM;AAAA,QACb,IAAI,MAAM,gBAAgB,GAAG;AAAA,UACzB,KAAK,QAAQ,KAAK,EAAE,OAAO,eAAe,MAAM,EAAE,IAAI,EAAE,CAAC;AAAA,QAC7D;AAAA,SACD,IAAI;AAAA,KACV,CACL;AAAA;AAER;;;ACjHO,IAAM,YAAY,CAAC,QAAgB;AAAA,EACtC,IAAI;AAAA,IACA,OAAO,KAAK,MAAM,GAAG;AAAA,IACvB,OAAO,GAAG;AAAA,IACR,OAAO;AAAA;AAAA;;;ACgCR,MAAM,gBAAgD;AAAA,EAK7C;AAAA,EAHJ;AAAA,EAER,WAAW,CACC,SACV;AAAA,IADU;AAAA,IAER,IAAI,QAAO,IAAI;AAAA,MACX,KAAK,SAAS,IAAI,OAAO,QAAO,EAAG;AAAA,IACvC;AAAA;AAAA,OAGE,KAAQ,CAAC,KAA6E;AAAA,IACxF,MAAM,MAAM,GAAG,MAAM,KAAK,OAAO,OAAO,IAAI,MAAM,IAAI,SAAS,KAAK,IAAI,WAAW,KAAK,OAAO,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,SAAS,IAAI,IAAI,IAAI,gBAAgB,IAAI,KAAK,EAAE,SAAS,MAAM;AAAA,IACpL,MAAM,eAAe;AAAA,SACd,IAAI,OAAO;AAAA,QACV,gBAAgB;AAAA,MACpB,IAAI,CAAC;AAAA,SACD,KAAK,SAAS;AAAA,QACd,WAAW,KAAK,OAAO;AAAA,QACvB,UAAU,KAAK,OAAO;AAAA,QACtB,UAAU,MAAM,eAAe,KAAK,OAAO,QAAQ;AAAA,MACvD,IAAI,CAAC;AAAA,IACT;AAAA,IACA,MAAM,mBAA6D;AAAA,MAC/D;AAAA,MACA,QAAQ,IAAI;AAAA,MACZ,MAAM,IAAI;AAAA,MACV,SAAS;AAAA,MACT,OAAO,IAAI;AAAA,MACX,KAAK,IAAI;AAAA,IACb;AAAA,IACA,QAAQ,UAAU,eAAe,YAAY,aAAa,MAAM,KAAK,OAAO,YAAY,gBAAgB,KAAK,CAAC;AAAA,IAC9G,IAAI,eAAe;AAAA,MACf,KAAK,OAAO,cAAc,MAAM,KAAK,OAAO,WAAW,kBAAkB,aAAa;AAAA,MACtF,IAAI,cAAc;AAAA,QAAO,MAAM,cAAc;AAAA,MAC7C,OAAO,cAAc;AAAA,IACzB;AAAA,IACA,MAAM,UAAU;AAAA,MACZ,KAAK,IAAI;AAAA,MACT;AAAA,MACA,QAAQ,IAAI;AAAA,SACT,IAAI,OAAO,EAAE,MAAM,OAAO,IAAI,SAAS,WAAW,IAAI,OAAO,KAAK,UAAU,IAAI,IAAI,EAAE,IAAI,CAAC;AAAA,SAC3F;AAAA,MACH,SAAS;AAAA,WACF,IAAI,QAAQ,OAAO,IAAI,QAAQ,WAAW,EAAE,gBAAgB,mBAAmB,IAAI,CAAC;AAAA,WACpF;AAAA,WACA;AAAA,MACP;AAAA,IACJ;AAAA,IACA,MAAM,WAA+B,gBAAgB,gBAAgB,OAAO,YAAY;AAAA,MACpF,IAAI;AAAA,QACA,MAAM,SAAS,MAAM,MAAM,QAAQ,KAAK,OAAO;AAAA,QAC/C,OAAO,UAAU,MAAM,OAAO,KAAK,CAAC,KAAK,CAAC;AAAA,QAC5C,OAAO,GAAG;AAAA,QACR,OAAO;AAAA,UACH,OAAO;AAAA,YACH,MAAM,aAAa,QAAQ,EAAE,OAAO;AAAA,YACpC,SAAS,aAAa,QAAQ,EAAE,UAAU;AAAA,UAC9C;AAAA,QACJ;AAAA;AAAA,OAEL;AAAA,IACH,KAAK,OAAO,cAAc,MAAM,KAAK,OAAO,WAAW,SAAS,QAAQ;AAAA,IACxE,IAAI,SAAS;AAAA,MAAO,MAAM,SAAS;AAAA,IACnC,OAAO,SAAS;AAAA;AAAA,EAGpB,KAAoB,GAAG,KAAK,WAA0D;AAAA,IAClF,MAAM,SAAS,KAAK,KAAK,SAAU,KAAK,OAAO,KAAK,QAAO,OAAK,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,IAAK,GAAG,CAAC,CAAC,EAAE,KAAK,OAAM,CAAC;AAAA,IAC7H,MAAM,SAAU,CAAC,KAAK,UAAU,CAAC,WAAW,QAAQ,aAAa,QAAQ,cAAc,QAAQ,aAAc,QAAQ,KAAK,OAAO,OAAO,GAAG;AAAA,IAC3I,MAAM,OAAO,IAAI,MAAM,GAAG;AAAA,IAC1B,MAAM,iBAAiB,KAAK,SAAS,KAAK,IAAI,KAAK,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG,IAAI;AAAA,IAE5E,OAAO,MAGH,OAAO,KACH,MAAK,CAAC,GACN,SAAS,MACL,KAAK,KAAK,MAAsC;AAAA,MAC5C;AAAA,MACA,QAAQ;AAAA,MACR,OAAO;AAAA,IACX,CAAC,CAAC,EAAE,KACA,IAAI,gBAAc;AAAA,MACd,WAAW,sBAAsB,KAAK,QAAQ,cAAc,WAAW,kBAAkB;AAAA,MAEzF,IAAI,WAAW,OAAO;AAAA,QAClB,MAAM,QAAQ,MAAM,QAAQ,WAAW,KAAK,IAAI,WAAW,QAAQ,CAAC;AAAA,QACpE,MAAM,SAAS,MAAM;AAAA,QACrB,OAAO;AAAA,UACH,SAAS,WAAW;AAAA,UACpB,QAAQ;AAAA,YACJ,SAAS,YAAY,OAAO,WAAW;AAAA,YACvC,OAAO,YAAY,OAAO,SAAS;AAAA,YACnC,MAAM,YAAY,KAAK,OAAO;AAAA,cAC1B,OAAO,YAAY,OAAO,QAAQ;AAAA,cAClC,QAAQ,YAAY,QAAQ;AAAA,YAChC,IAAI;AAAA,YACJ,MAAM,YAAY,KAAK,OAAO;AAAA,cAC1B,OAAO,YAAY,OAAO,QAAQ;AAAA,cAClC,QAAQ,YAAY,QAAQ;AAAA,YAChC,IAAI;AAAA,UACR;AAAA,UACA,SAAS,MAAM,IAAI,WAAS;AAAA,YACxB;AAAA,YACA,MAAM;AAAA,YACN,IAAI,KAAK;AAAA,YACT;AAAA,UACJ,EAAE;AAAA,UACF,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,MAGA,OAAO;AAAA,QACH,SAAS,WAAW;AAAA,QACpB,SAAS,CAAC;AAAA,UACN,MAAM,WAAW;AAAA,UACjB,MAAM;AAAA,UACN,IAAI,WAAW,KAAK;AAAA,UACpB;AAAA,QACJ,CAAC;AAAA,QACD,QAAQ;AAAA,MACZ;AAAA,KACH,GACD,YAAW,OAAK;AAAA,MACZ,MAAM,QAAQ,aAAa,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,EAAE,QAAQ,IAAI,EAAE,MAAM,EAAE,QAAQ,gBAAgB,SAAS,EAAE,WAAW,4BAA4B;AAAA,MAC9J,OAAO,GAAG,EAAE,OAAO,QAAQ,QAAQ,CAAkC;AAAA,KACxE,CAEL,CAAE,CACV,GAEA,OAAO,KACH,IAAI,CAAC,WAAW;AAAA,MACZ,MAAM,KAAK,OAAO,MAAM;AAAA,MACxB,IAAI,IAAI;AAAA,QACJ,MAAM,IAAmC;AAAA,UACrC,SAAS;AAAA,YACL;AAAA,iBACO;AAAA,cACH;AAAA,cACA;AAAA,YACJ;AAAA,UACJ;AAAA,UACA,QAAQ;AAAA,QACZ;AAAA,QACA,OAAO;AAAA,MACX;AAAA,KACH,GACD,QAAO,OAAO,CAClB,CACJ;AAAA;AAAA,OAGE,IAAkB,CAAC,KAAa,MAA8B;AAAA,IAChE,MAAM,IAAI,MAAM,KAAK,MAA+B,EAAE,QAAQ,QAAQ,KAAK,MAAM,MAAM,OAAO,CAAC,EAAE,CAAC;AAAA,IAClG,IAAI,EAAE;AAAA,MAAI,OAAO;AAAA,IACjB,OAAO,EAAE;AAAA;AAAA,EAGb,MAAqB,CAAC,gBAAwB,IAAY,MAAkB;AAAA,IACxE,OAAO,KAAK,MAAS,EAAE,QAAQ,SAAS,KAAK,iBAAiB,MAAM,IAAI,MAAM,MAAM,OAAO,CAAC,EAAE,CAAC;AAAA;AAAA,EAGnG,MAAqB,CAAC,gBAAwB,IAAY;AAAA,IACtD,OAAO,KAAK,MAAS,EAAE,QAAQ,UAAU,KAAK,iBAAiB,MAAM,IAAI,MAAM,WAAW,OAAO,CAAC,EAAE,CAAC;AAAA;AAAA,EAIzG,OAAU,GAAG,KAAK,QAAQ,WAA4B;AAAA,IAClD,OAAO,KAAK,MAAS,EAAE,QAAQ,QAAQ,KAAK,QAAQ,MAAM,SAAS,OAAO,CAAC,EAAE,CAAC;AAAA;AAEtF;",
91
91
  "debugId": "7EB45DAB51F9F0E264756E2164756E21",
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "repository": {
4
4
  "url": "https://github.com/livequery/rest"
5
5
  },
6
- "version": "2.0.89",
6
+ "version": "2.0.92",
7
7
  "type": "module",
8
8
  "description": "",
9
9
  "main": "build/index.js",
@@ -23,7 +23,7 @@
23
23
  "uuid": "^13.0.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@livequery/core": "2.0.74",
26
+ "@livequery/core": "2.0.92",
27
27
  "typescript": "5.6.3"
28
28
  },
29
29
  "peerDependencies": {},