@dbos-inc/dbos-sdk 1.30.21-preview.g838bed7f8d → 1.31.4-preview

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,8 +4,14 @@ exports.RetrievedHandle = exports.InvokedHandle = exports.WorkflowContextImpl =
4
4
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
5
  const dbos_executor_1 = require("./dbos-executor");
6
6
  const transaction_1 = require("./transaction");
7
+ const error_1 = require("./error");
8
+ const serialize_error_1 = require("serialize-error");
9
+ const utils_1 = require("./utils");
10
+ const user_database_1 = require("./user_database");
11
+ const api_1 = require("@opentelemetry/api");
7
12
  const context_1 = require("./context");
8
13
  const decorators_1 = require("./decorators");
14
+ const procedure_1 = require("./procedure");
9
15
  exports.StatusString = {
10
16
  PENDING: "PENDING",
11
17
  SUCCESS: "SUCCESS",
@@ -49,6 +55,160 @@ class WorkflowContextImpl extends context_1.DBOSContextImpl {
49
55
  functionIDGetIncrement() {
50
56
  return this.functionID++;
51
57
  }
58
+ /**
59
+ * Retrieve the transaction snapshot information of the current transaction
60
+ */
61
+ async #retrieveSnapshot(query) {
62
+ const rows = await query("SELECT pg_current_snapshot()::text as txn_snapshot;", []);
63
+ return rows[0].txn_snapshot;
64
+ }
65
+ retrieveTxSnapshot(client) {
66
+ const func = (sql, args) => this.#dbosExec.userDatabase.queryWithClient(client, sql, ...args);
67
+ return this.#retrieveSnapshot(func);
68
+ }
69
+ retrieveProcSnapshot(client) {
70
+ const func = (sql, args) => client.query(sql, args).then(v => v.rows);
71
+ return this.#retrieveSnapshot(func);
72
+ }
73
+ /**
74
+ * Check if an operation has already executed in a workflow.
75
+ * If it previously executed successfully, return its output.
76
+ * If it previously executed and threw an error, throw that error.
77
+ * Otherwise, return DBOSNull.
78
+ * Also return the transaction snapshot information of this current transaction.
79
+ */
80
+ async #checkExecution(query, funcID) {
81
+ // Note: we read the current snapshot, not the recorded one!
82
+ const rows = await query("(SELECT output, error, txn_snapshot, true as recorded FROM dbos.transaction_outputs WHERE workflow_uuid=$1 AND function_id=$2 UNION ALL SELECT null as output, null as error, pg_current_snapshot()::text as txn_snapshot, false as recorded) ORDER BY recorded", [this.workflowUUID, funcID]);
83
+ if (rows.length === 0 || rows.length > 2) {
84
+ this.logger.error("Unexpected! This should never happen. Returned rows: " + rows.toString());
85
+ throw new error_1.DBOSError("This should never happen. Returned rows: " + rows.toString());
86
+ }
87
+ const res = {
88
+ output: dbos_executor_1.dbosNull,
89
+ txn_snapshot: ""
90
+ };
91
+ // recorded=false row will be first because we used ORDER BY.
92
+ res.txn_snapshot = rows[0].txn_snapshot;
93
+ if (rows.length === 2) {
94
+ if (utils_1.DBOSJSON.parse(rows[1].error) !== null) {
95
+ throw (0, serialize_error_1.deserializeError)(utils_1.DBOSJSON.parse(rows[1].error));
96
+ }
97
+ else {
98
+ res.output = utils_1.DBOSJSON.parse(rows[1].output);
99
+ }
100
+ }
101
+ return res;
102
+ }
103
+ checkTxExecution(client, funcID) {
104
+ const func = (sql, args) => this.#dbosExec.userDatabase.queryWithClient(client, sql, ...args);
105
+ return this.#checkExecution(func, funcID);
106
+ }
107
+ checkProcExecution(client, funcID) {
108
+ const func = (sql, args) => client.query(sql, args).then(v => v.rows);
109
+ return this.#checkExecution(func, funcID);
110
+ }
111
+ /**
112
+ * Write all entries in the workflow result buffer to the database.
113
+ * If it encounters a primary key error, this indicates a concurrent execution with the same UUID, so throw an DBOSError.
114
+ */
115
+ async #flushResultBuffer(query, isKeyConflict) {
116
+ const funcIDs = Array.from(this.resultBuffer.keys());
117
+ if (funcIDs.length === 0) {
118
+ return;
119
+ }
120
+ funcIDs.sort();
121
+ try {
122
+ let sqlStmt = "INSERT INTO dbos.transaction_outputs (workflow_uuid, function_id, output, error, txn_id, txn_snapshot, created_at) VALUES ";
123
+ let paramCnt = 1;
124
+ const values = [];
125
+ for (const funcID of funcIDs) {
126
+ // Capture output and also transaction snapshot information.
127
+ // Initially, no txn_id because no queries executed.
128
+ const recorded = this.resultBuffer.get(funcID);
129
+ const output = recorded.output;
130
+ const txnSnapshot = recorded.txn_snapshot;
131
+ const createdAt = recorded.created_at;
132
+ if (paramCnt > 1) {
133
+ sqlStmt += ", ";
134
+ }
135
+ sqlStmt += `($${paramCnt++}, $${paramCnt++}, $${paramCnt++}, $${paramCnt++}, null, $${paramCnt++}, $${paramCnt++})`;
136
+ values.push(this.workflowUUID, funcID, utils_1.DBOSJSON.stringify(output), utils_1.DBOSJSON.stringify(null), txnSnapshot, createdAt);
137
+ }
138
+ this.logger.debug(sqlStmt);
139
+ await query(sqlStmt, values);
140
+ }
141
+ catch (error) {
142
+ if (isKeyConflict(error)) {
143
+ // Serialization and primary key conflict (Postgres).
144
+ throw new error_1.DBOSWorkflowConflictUUIDError(this.workflowUUID);
145
+ }
146
+ else {
147
+ throw error;
148
+ }
149
+ }
150
+ }
151
+ flushResultBuffer(client) {
152
+ const func = (sql, args) => this.#dbosExec.userDatabase.queryWithClient(client, sql, ...args);
153
+ return this.#flushResultBuffer(func, (error) => this.#dbosExec.userDatabase.isKeyConflictError(error));
154
+ }
155
+ flushResultBufferProc(client) {
156
+ const func = (sql, args) => client.query(sql, args).then(v => v.rows);
157
+ return this.#flushResultBuffer(func, user_database_1.pgNodeIsKeyConflictError);
158
+ }
159
+ /**
160
+ * Write a operation's output to the database.
161
+ */
162
+ async #recordOutput(query, funcID, txnSnapshot, output, isKeyConflict) {
163
+ try {
164
+ const serialOutput = utils_1.DBOSJSON.stringify(output);
165
+ const rows = await query("INSERT INTO dbos.transaction_outputs (workflow_uuid, function_id, output, txn_id, txn_snapshot, created_at) VALUES ($1, $2, $3, (select pg_current_xact_id_if_assigned()::text), $4, $5) RETURNING txn_id;", [this.workflowUUID, funcID, serialOutput, txnSnapshot, Date.now()]);
166
+ return rows[0].txn_id;
167
+ }
168
+ catch (error) {
169
+ if (isKeyConflict(error)) {
170
+ // Serialization and primary key conflict (Postgres).
171
+ throw new error_1.DBOSWorkflowConflictUUIDError(this.workflowUUID);
172
+ }
173
+ else {
174
+ throw error;
175
+ }
176
+ }
177
+ }
178
+ recordOutputTx(client, funcID, txnSnapshot, output) {
179
+ const func = (sql, args) => this.#dbosExec.userDatabase.queryWithClient(client, sql, ...args);
180
+ return this.#recordOutput(func, funcID, txnSnapshot, output, (error) => this.#dbosExec.userDatabase.isKeyConflictError(error));
181
+ }
182
+ recordOutputProc(client, funcID, txnSnapshot, output) {
183
+ const func = (sql, args) => client.query(sql, args).then(v => v.rows);
184
+ return this.#recordOutput(func, funcID, txnSnapshot, output, user_database_1.pgNodeIsKeyConflictError);
185
+ }
186
+ /**
187
+ * Record an error in an operation to the database.
188
+ */
189
+ async #recordError(query, funcID, txnSnapshot, err, isKeyConflict) {
190
+ try {
191
+ const serialErr = utils_1.DBOSJSON.stringify((0, serialize_error_1.serializeError)(err));
192
+ await query("INSERT INTO dbos.transaction_outputs (workflow_uuid, function_id, error, txn_id, txn_snapshot, created_at) VALUES ($1, $2, $3, null, $4, $5) RETURNING txn_id;", [this.workflowUUID, funcID, serialErr, txnSnapshot, Date.now()]);
193
+ }
194
+ catch (error) {
195
+ if (isKeyConflict(error)) {
196
+ // Serialization and primary key conflict (Postgres).
197
+ throw new error_1.DBOSWorkflowConflictUUIDError(this.workflowUUID);
198
+ }
199
+ else {
200
+ throw error;
201
+ }
202
+ }
203
+ }
204
+ recordErrorTx(client, funcID, txnSnapshot, err) {
205
+ const func = (sql, args) => this.#dbosExec.userDatabase.queryWithClient(client, sql, ...args);
206
+ return this.#recordError(func, funcID, txnSnapshot, err, (error) => this.#dbosExec.userDatabase.isKeyConflictError(error));
207
+ }
208
+ recordErrorProc(client, funcID, txnSnapshot, err) {
209
+ const func = (sql, args) => client.query(sql, args).then(v => v.rows);
210
+ return this.#recordError(func, funcID, txnSnapshot, err, user_database_1.pgNodeIsKeyConflictError);
211
+ }
52
212
  /**
53
213
  * Invoke another workflow as its child workflow and return a workflow handle.
54
214
  * The child workflow is guaranteed to be executed exactly once, even if the workflow is retried with the same UUID.
@@ -110,9 +270,167 @@ class WorkflowContextImpl extends context_1.DBOSContextImpl {
110
270
  async childWorkflow(wf, ...args) {
111
271
  return this.startChildWorkflow(wf, ...args);
112
272
  }
273
+ async #invokeProcLocal(proc, args, span, config, funcId) {
274
+ let retryWaitMillis = 1;
275
+ const backoffFactor = 1.5;
276
+ const maxRetryWaitMs = 2000; // Maximum wait 2 seconds.
277
+ const readOnly = config.readOnly ?? false;
278
+ while (true) {
279
+ let txn_snapshot = "invalid";
280
+ const wrappedProcedure = async (client) => {
281
+ const ctxt = new procedure_1.StoredProcedureContextImpl(client, this, span, this.#dbosExec.logger, proc.name);
282
+ if (this.presetUUID) {
283
+ const check = await this.checkProcExecution(client, this.functionID);
284
+ txn_snapshot = check.txn_snapshot;
285
+ if (check.output !== dbos_executor_1.dbosNull) {
286
+ ctxt.span.setAttribute("cached", true);
287
+ ctxt.span.setStatus({ code: api_1.SpanStatusCode.OK });
288
+ this.#dbosExec.tracer.endSpan(ctxt.span);
289
+ return check.output;
290
+ }
291
+ }
292
+ else {
293
+ // Collect snapshot information for read-only transactions and non-preset UUID transactions, if not already collected above
294
+ txn_snapshot = await this.retrieveProcSnapshot(client);
295
+ }
296
+ // For non-read-only transactions, flush the result buffer.
297
+ if (!readOnly) {
298
+ await this.flushResultBufferProc(client);
299
+ }
300
+ let cresult;
301
+ await (0, context_1.runWithDBOSContext)(ctxt, async () => {
302
+ cresult = await proc(ctxt, ...args);
303
+ });
304
+ const result = cresult;
305
+ if (readOnly) {
306
+ // Buffer the output of read-only transactions instead of synchronously writing it.
307
+ const readOutput = {
308
+ output: result,
309
+ txn_snapshot: txn_snapshot,
310
+ created_at: Date.now(),
311
+ };
312
+ this.resultBuffer.set(funcId, readOutput);
313
+ }
314
+ else {
315
+ // Synchronously record the output of write transactions and obtain the transaction ID.
316
+ const pg_txn_id = await this.recordOutputProc(client, funcId, txn_snapshot, result);
317
+ ctxt.span.setAttribute("pg_txn_id", pg_txn_id);
318
+ this.resultBuffer.clear();
319
+ }
320
+ return result;
321
+ };
322
+ try {
323
+ const result = await this.#dbosExec.executeProcedure(wrappedProcedure, { isolationLevel: config.isolationLevel });
324
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
325
+ return result;
326
+ }
327
+ catch (err) {
328
+ if (this.#dbosExec.userDatabase.isRetriableTransactionError(err)) {
329
+ // serialization_failure in PostgreSQL
330
+ span.addEvent("TXN SERIALIZATION FAILURE", { "retryWaitMillis": retryWaitMillis }, performance.now());
331
+ // Retry serialization failures.
332
+ await (0, utils_1.sleepms)(retryWaitMillis);
333
+ retryWaitMillis *= backoffFactor;
334
+ retryWaitMillis = retryWaitMillis < maxRetryWaitMs ? retryWaitMillis : maxRetryWaitMs;
335
+ continue;
336
+ }
337
+ // Record and throw other errors.
338
+ const e = err;
339
+ await this.#dbosExec.executeProcedure(async (client) => {
340
+ await this.flushResultBufferProc(client);
341
+ await this.recordErrorProc(client, funcId, txn_snapshot, e);
342
+ }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
343
+ await this.#dbosExec.userDatabase.transaction(async (client) => {
344
+ await this.flushResultBuffer(client);
345
+ await this.recordErrorTx(client, funcId, txn_snapshot, e);
346
+ }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
347
+ this.resultBuffer.clear();
348
+ throw err;
349
+ }
350
+ }
351
+ }
352
+ async #invokeProcRemote(proc, args, span, config, funcId) {
353
+ const readOnly = config.readOnly ?? false;
354
+ const $jsonCtx = {
355
+ request: this.request,
356
+ authenticatedUser: this.authenticatedUser,
357
+ authenticatedRoles: this.authenticatedRoles,
358
+ assumedRole: this.assumedRole,
359
+ };
360
+ // Note, node-pg converts JS arrays to postgres array literals, so must call JSON.strigify on
361
+ // args and bufferedResults before being passed to dbosExec.callProcedure
362
+ const $args = [this.workflowUUID, funcId, this.presetUUID, $jsonCtx, null, JSON.stringify(args)];
363
+ if (!readOnly) {
364
+ // function_id, output, txn_snapshot, created_at
365
+ const bufferedResults = new Array();
366
+ for (const [functionID, { output, txn_snapshot, created_at }] of this.resultBuffer.entries()) {
367
+ bufferedResults.push([functionID, output, txn_snapshot, created_at]);
368
+ }
369
+ // sort by function ID
370
+ bufferedResults.sort((a, b) => a[0] - b[0]);
371
+ $args.unshift(bufferedResults.length > 0 ? JSON.stringify(bufferedResults) : null);
372
+ }
373
+ const [{ return_value }] = await this.#dbosExec.callProcedure(proc, $args);
374
+ const { error, output, txn_snapshot, txn_id, created_at } = return_value;
375
+ // buffered results are persisted in r/w stored procs, even if it returns an error
376
+ if (!readOnly) {
377
+ this.resultBuffer.clear();
378
+ }
379
+ // if the stored proc returns an error, deserialize and throw it.
380
+ // stored proc saves the error in tx_output before returning
381
+ if (error) {
382
+ throw (0, serialize_error_1.deserializeError)(error);
383
+ }
384
+ // if txn_snapshot is provided, the output needs to be buffered
385
+ if (readOnly && txn_snapshot) {
386
+ this.resultBuffer.set(funcId, {
387
+ output,
388
+ txn_snapshot,
389
+ created_at: created_at ?? Date.now(),
390
+ });
391
+ }
392
+ if (!readOnly) {
393
+ this.resultBuffer.clear();
394
+ }
395
+ if (txn_id) {
396
+ span.setAttribute("pg_txn_id", txn_id);
397
+ }
398
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
399
+ return output;
400
+ }
113
401
  // TODO: ConfiguredInstance support
114
402
  async procedure(proc, ...args) {
115
- return this.#dbosExec.callProcedureFunction(proc, this, ...args);
403
+ const procInfo = this.#dbosExec.getProcedureInfo(proc);
404
+ if (procInfo === undefined) {
405
+ throw new error_1.DBOSNotRegisteredError(proc.name);
406
+ }
407
+ const executeLocally = procInfo.config.executeLocally ?? false;
408
+ const funcId = this.functionIDGetIncrement();
409
+ const span = this.#dbosExec.tracer.startSpan(proc.name, {
410
+ operationUUID: this.workflowUUID,
411
+ operationType: dbos_executor_1.OperationType.PROCEDURE,
412
+ authenticatedUser: this.authenticatedUser,
413
+ assumedRole: this.assumedRole,
414
+ authenticatedRoles: this.authenticatedRoles,
415
+ readOnly: procInfo.config.readOnly ?? false,
416
+ isolationLevel: procInfo.config.isolationLevel,
417
+ executeLocally,
418
+ }, this.span);
419
+ try {
420
+ const result = executeLocally
421
+ ? await this.#invokeProcLocal(proc, args, span, procInfo.config, funcId)
422
+ : await this.#invokeProcRemote(proc, args, span, procInfo.config, funcId);
423
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
424
+ return result;
425
+ }
426
+ catch (e) {
427
+ const { message } = e;
428
+ span.setStatus({ code: api_1.SpanStatusCode.ERROR, message });
429
+ throw e;
430
+ }
431
+ finally {
432
+ this.#dbosExec.tracer.endSpan(span);
433
+ }
116
434
  }
117
435
  /**
118
436
  * Execute a transactional function.
@@ -138,7 +456,7 @@ class WorkflowContextImpl extends context_1.DBOSContextImpl {
138
456
  async send(destinationUUID, message, topic) {
139
457
  const functionID = this.functionIDGetIncrement();
140
458
  await this.#dbosExec.userDatabase.transaction(async (client) => {
141
- await this.#dbosExec.flushResultBuffer(client, this.resultBuffer, this.workflowUUID);
459
+ await this.flushResultBuffer(client);
142
460
  }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
143
461
  this.resultBuffer.clear();
144
462
  await this.#dbosExec.systemDatabase.send(this.workflowUUID, functionID, destinationUUID, message, topic);
@@ -152,7 +470,7 @@ class WorkflowContextImpl extends context_1.DBOSContextImpl {
152
470
  const functionID = this.functionIDGetIncrement();
153
471
  const timeoutFunctionID = this.functionIDGetIncrement();
154
472
  await this.#dbosExec.userDatabase.transaction(async (client) => {
155
- await this.#dbosExec.flushResultBuffer(client, this.resultBuffer, this.workflowUUID);
473
+ await this.flushResultBuffer(client);
156
474
  }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
157
475
  this.resultBuffer.clear();
158
476
  return this.#dbosExec.systemDatabase.recv(this.workflowUUID, functionID, timeoutFunctionID, topic, timeoutSeconds);
@@ -164,7 +482,7 @@ class WorkflowContextImpl extends context_1.DBOSContextImpl {
164
482
  async setEvent(key, value) {
165
483
  const functionID = this.functionIDGetIncrement();
166
484
  await this.#dbosExec.userDatabase.transaction(async (client) => {
167
- await this.#dbosExec.flushResultBuffer(client, this.resultBuffer, this.workflowUUID);
485
+ await this.flushResultBuffer(client);
168
486
  }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
169
487
  this.resultBuffer.clear();
170
488
  await this.#dbosExec.systemDatabase.setEvent(this.workflowUUID, functionID, key, value);
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/workflow.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,mDAAwE;AAExE,+CAAgF;AAShF,uCAA0F;AAC1F,6CAA2E;AAmG9D,QAAA,YAAY,GAAG;IAC1B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAuDX,MAAa,mBAAoB,SAAQ,yBAAe;IAW3C;IAEA;IACA;IACA;IAdX,UAAU,GAAW,CAAC,CAAC;IACd,SAAS,CAAC;IACV,YAAY,GAAgC,IAAI,GAAG,EAA0B,CAAC;IAC9E,cAAc,CAAU;IACxB,mBAAmB,CAAC;IAE7B,YACE,QAAsB,EACtB,SAAsC,EACtC,YAAoB,EACX,cAA8B,EACvC,YAAoB,EACX,UAAmB,EACnB,sBAA8B,EAAE,EAAE,oDAAoD;IACtF,sBAA8B,EAAE,CAAC,4CAA4C;;QAEtF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CACpC,YAAY,EACZ;YACE,MAAM,EAAE,oBAAY,CAAC,OAAO;YAC5B,aAAa,EAAE,YAAY;YAC3B,aAAa,EAAE,6BAAa,CAAC,QAAQ;YACrC,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,IAAI,EAAE;YACrD,kBAAkB,EAAE,SAAS,EAAE,kBAAkB,IAAI,EAAE;YACvD,WAAW,EAAE,SAAS,EAAE,WAAW,IAAI,EAAE;SAC1C,EACD,SAAS,EAAE,IAAI,CAChB,CAAC;QACF,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAlB7C,mBAAc,GAAd,cAAc,CAAgB;QAE9B,eAAU,GAAV,UAAU,CAAS;QACnB,wBAAmB,GAAnB,mBAAmB,CAAa;QAChC,wBAAmB,GAAnB,mBAAmB,CAAa;QAezC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,4BAAY,CAAC,gBAAgB,KAAK,YAAY,CAAC;QACrE,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QACrD,IAAI,CAAC,mBAAmB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1G,CAAC;IAED,sBAAsB;QACpB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAyB,EAAkB,EAAE,GAAG,IAAO;QAC7E,yGAAyG;QACzG,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,MAAM,CAAC;QAC3D,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE;YACzC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;SACzC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAyB,EAAkB,EAAE,GAAG,IAAO;QAC9E,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACnF,CAAC;IAED;;;OAGG;IACH,aAAa,CAAmB,MAAS,EAAE,YAAgC,EAAE,OAAgB,EAAE,kBAA6C,EAAE,KAAqB;QAEjK,MAAM,GAAG,GAAG,IAAA,oCAAuB,EAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,KAAK,GAA4B,EAAE,CAAC;QAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAExG,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc;oBAChC,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAE,EAAE,CAAC,kBAAmD,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;oBAC9J,CAAC,CAAC,SAAS,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc;oBAChC,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAE,EAAE,CAAC,kBAAmD,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;yBAC3J,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACvC,CAAC,CAAC,SAAS,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,KAA4B,CAAC;IACtC,CAAC;IAED,aAAa,CAAmB,MAAS,EAAE,YAAqB,EAAE,KAAqB;QACrF,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAmC,CAAC;QACvG,CAAC;aACI,CAAC;YACJ,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAA4B,EAAE,KAAK,CAAmC,CAAC;QAC/H,CAAC;IACH,CAAC;IAED,cAAc,CAAmB,MAAS,EAAE,YAAqB;QAC/D,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAA8B,CAAC;QAC5F,CAAC;aACI,CAAC;YACJ,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAA4B,CAA8B,CAAC;QACpH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAyB,EAAkB,EAAE,GAAG,IAAO;QACxE,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,SAAS,CAAyB,IAA2B,EAAE,GAAG,IAAO;QAC7E,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACnE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAyB,GAAsB,EAAE,OAAkC,EAAE,GAAG,IAAO;QAC9G,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAyB,MAA0B,EAAE,OAAkC,EAAE,GAAG,IAAO;QAC/G,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAI,eAAuB,EAAE,OAAU,EAAE,KAAc;QAC/D,MAAM,UAAU,GAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEzD,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,MAA0B,EAAE,EAAE;YACjF,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACvF,CAAC,EAAE,EAAE,cAAc,EAAE,4BAAc,CAAC,aAAa,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3G,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAI,KAAc,EAAE,iBAAyB,4BAAY,CAAC,6BAA6B;QAC/F,MAAM,UAAU,GAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACzD,MAAM,iBAAiB,GAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEhE,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,MAA0B,EAAE,EAAE;YACjF,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACvF,CAAC,EAAE,EAAE,cAAc,EAAE,4BAAc,CAAC,aAAa,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IACrH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAI,GAAW,EAAE,KAAQ;QACrC,MAAM,UAAU,GAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEzD,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,MAA0B,EAAE,EAAE;YACjF,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACvF,CAAC,EAAE,EAAE,cAAc,EAAE,4BAAc,CAAC,aAAa,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1F,CAAC;IAED;;;OAGG;IACH,MAAM,CAAmB,MAA8B;QACrD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,IAAA,oCAAuB,EAAC,MAAM,CAAC,CAAC;YAE5C,MAAM,KAAK,GAA4B,EAAE,CAAC;YAC1C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS;oBAC3B,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,kBAAqD,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;oBACnH,CAAC,CAAC,EAAE,CAAC,UAAU;wBACb,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,kBAAsD,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;wBACjH,CAAC,CAAC,EAAE,CAAC,UAAU;4BACb,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAyD,EAAE,GAAG,IAAI,CAAC;4BAC/G,CAAC,CAAC,SAAS,CAAC;YACpB,CAAC;YACD,OAAO,KAAyB,CAAC;QACnC,CAAC;aACI,CAAC;YACJ,MAAM,UAAU,GAAG,MAA4B,CAAC;YAChD,MAAM,GAAG,GAAG,IAAA,oCAAuB,EAAC,UAAU,CAAC,CAAC;YAEhD,MAAM,KAAK,GAA4B,EAAE,CAAC;YAC1C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS;oBAC3B,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,kBAAqD,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;oBACzH,CAAC,CAAC,EAAE,CAAC,UAAU;wBACb,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,kBAAsD,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;wBACvH,CAAC,CAAC,SAAS,CAAC;YAClB,CAAC;YACD,OAAO,KAA2B,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CAAI,UAAkB,EAAE,GAAW,EAAE,iBAAyB,4BAAY,CAAC,6BAA6B;QAC9G,MAAM,UAAU,GAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG;YACb,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU;YACV,iBAAiB;SAClB,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAI,UAAkB;QACpC,MAAM,UAAU,GAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACzD,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACvG,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,UAAkB;QAC9B,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAChD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,WAAmB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF;AA9PD,kDA8PC;AA0BD;;GAEG;AACH,MAAa,aAAa;IACH;IAAyC;IAAsC;IAA+B;IACxH;IAA8B;IADzC,YAAqB,cAA8B,EAAW,eAA2B,EAAW,YAAoB,EAAW,YAAoB,EAC5I,UAAmB,EAAW,gBAAyB;QAD7C,mBAAc,GAAd,cAAc,CAAgB;QAAW,oBAAe,GAAf,eAAe,CAAY;QAAW,iBAAY,GAAZ,YAAY,CAAQ;QAAW,iBAAY,GAAZ,YAAY,CAAQ;QAC5I,eAAU,GAAV,UAAU,CAAS;QAAW,qBAAgB,GAAhB,gBAAgB,CAAS;IAAI,CAAC;IAEvE,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC1G,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAI,IAAI,CAAC,YAAY,CAAM,CAAC;IAChF,CAAC;CACF;AAnBD,sCAmBC;AAED;;GAEG;AACH,MAAa,eAAe;IACL;IAAyC;IAA+B;IAA8B;IAA3H,YAAqB,cAA8B,EAAW,YAAoB,EAAW,UAAmB,EAAW,gBAAyB;QAA/H,mBAAc,GAAd,cAAc,CAAgB;QAAW,iBAAY,GAAZ,YAAY,CAAQ;QAAW,eAAU,GAAV,UAAU,CAAS;QAAW,qBAAgB,GAAhB,gBAAgB,CAAS;IAAI,CAAC;IAEzJ,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAI,IAAI,CAAC,YAAY,CAAM,CAAC;IAChF,CAAC;CACF;AAlBD,0CAkBC"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/workflow.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,mDAAwE;AAExE,+CAAgF;AAEhF,mCAA2F;AAC3F,qDAAmE;AACnE,mCAA4C;AAE5C,mDAA+E;AAC/E,4CAAoD;AAEpD,uCAA0F;AAC1F,6CAA2E;AAC3E,2CAAyH;AAkG5G,QAAA,YAAY,GAAG;IAC1B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAyDX,MAAa,mBAAoB,SAAQ,yBAAe;IAW3C;IAEA;IACA;IACA;IAdX,UAAU,GAAW,CAAC,CAAC;IACd,SAAS,CAAC;IACV,YAAY,GAAgC,IAAI,GAAG,EAA0B,CAAC;IAC9E,cAAc,CAAU;IACxB,mBAAmB,CAAC;IAE7B,YACE,QAAsB,EACtB,SAAsC,EACtC,YAAoB,EACX,cAA8B,EACvC,YAAoB,EACX,UAAmB,EACnB,sBAA8B,EAAE,EAAE,oDAAoD;IACtF,sBAA8B,EAAE,CAAC,4CAA4C;;QAEtF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CACpC,YAAY,EACZ;YACE,MAAM,EAAE,oBAAY,CAAC,OAAO;YAC5B,aAAa,EAAE,YAAY;YAC3B,aAAa,EAAE,6BAAa,CAAC,QAAQ;YACrC,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,IAAI,EAAE;YACrD,kBAAkB,EAAE,SAAS,EAAE,kBAAkB,IAAI,EAAE;YACvD,WAAW,EAAE,SAAS,EAAE,WAAW,IAAI,EAAE;SAC1C,EACD,SAAS,EAAE,IAAI,CAChB,CAAC;QACF,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAlB7C,mBAAc,GAAd,cAAc,CAAgB;QAE9B,eAAU,GAAV,UAAU,CAAS;QACnB,wBAAmB,GAAnB,mBAAmB,CAAa;QAChC,wBAAmB,GAAnB,mBAAmB,CAAa;QAezC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,4BAAY,CAAC,gBAAgB,KAAK,YAAY,CAAC;QACrE,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QACrD,IAAI,CAAC,mBAAmB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1G,CAAC;IAED,sBAAsB;QACpB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,KAAoB;QAC1C,MAAM,IAAI,GAAG,MAAM,KAAK,CAA2B,qDAAqD,EAAE,EAAE,CAAC,CAAC;QAC9G,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9B,CAAC;IAED,kBAAkB,CAAC,MAA0B;QAC3C,MAAM,IAAI,GAAG,CAAI,GAAW,EAAE,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,CAAI,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACvH,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,oBAAoB,CAAC,MAAkB;QACrC,MAAM,IAAI,GAAG,CAAI,GAAW,EAAE,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAW,CAAC,CAAC;QACnG,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CAAI,KAAoB,EAAE,MAAc;QAC3D,4DAA4D;QAC5D,MAAM,IAAI,GAAG,MAAM,KAAK,CACtB,iQAAiQ,EACjQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAC5B,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7F,MAAM,IAAI,iBAAS,CAAC,2CAA2C,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,MAAM,GAAG,GAAmB;YAC1B,MAAM,EAAE,wBAAQ;YAChB,YAAY,EAAE,EAAE;SACjB,CAAA;QACD,6DAA6D;QAC7D,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QACxC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,gBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC3C,MAAM,IAAA,kCAAgB,EAAC,gBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,MAAM,GAAG,gBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAM,CAAC;YACnD,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gBAAgB,CAAI,MAA0B,EAAE,MAAc;QAC5D,MAAM,IAAI,GAAG,CAAI,GAAW,EAAE,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,CAAI,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACvH,OAAO,IAAI,CAAC,eAAe,CAAI,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB,CAAI,MAAkB,EAAE,MAAc;QACtD,MAAM,IAAI,GAAG,CAAI,GAAW,EAAE,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAW,CAAC,CAAC;QACnG,OAAO,IAAI,CAAC,eAAe,CAAI,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAC,KAAoB,EAAE,aAA0C;QACvF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,4HAA4H,CAAC;YAC3I,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,MAAM,MAAM,GAAU,EAAE,CAAC;YACzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,4DAA4D;gBAC5D,oDAAoD;gBACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,QAAS,CAAC,MAAM,CAAC;gBAChC,MAAM,WAAW,GAAG,QAAS,CAAC,YAAY,CAAC;gBAC3C,MAAM,SAAS,GAAG,QAAS,CAAC,UAAW,CAAC;gBACxC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACjB,OAAO,IAAI,IAAI,CAAC;gBAClB,CAAC;gBACD,OAAO,IAAI,KAAK,QAAQ,EAAE,MAAM,QAAQ,EAAE,MAAM,QAAQ,EAAE,MAAM,QAAQ,EAAE,YAAY,QAAQ,EAAE,MAAM,QAAQ,EAAE,GAAG,CAAC;gBACpH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,gBAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YACvH,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3B,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,qDAAqD;gBACrD,MAAM,IAAI,qCAA6B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,MAA0B;QAC1C,MAAM,IAAI,GAAG,CAAI,GAAW,EAAE,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,CAAI,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACvH,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,qBAAqB,CAAC,MAAkB;QACtC,MAAM,IAAI,GAAG,CAAI,GAAW,EAAE,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAW,CAAC,CAAC;QACnG,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,wCAAwB,CAAC,CAAC;IACjE,CAAC;IAGD;;OAEG;IACH,KAAK,CAAC,aAAa,CAAI,KAAoB,EAAE,MAAc,EAAE,WAAmB,EAAE,MAAS,EAAE,aAA0C;QACrI,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,gBAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAsB,4MAA4M,EACxP,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,qDAAqD;gBACrD,MAAM,IAAI,qCAA6B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc,CAAI,MAA0B,EAAE,MAAc,EAAE,WAAmB,EAAE,MAAS;QAC1F,MAAM,IAAI,GAAG,CAAI,GAAW,EAAE,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,CAAI,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACvH,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IACjI,CAAC;IAED,gBAAgB,CAAI,MAAkB,EAAE,MAAc,EAAE,WAAmB,EAAE,MAAS;QACpF,MAAM,IAAI,GAAG,CAAI,GAAW,EAAE,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAW,CAAC,CAAC;QACnG,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,wCAAwB,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,KAAoB,EAAE,MAAc,EAAE,WAAmB,EAAE,GAAU,EAAE,aAA0C;QAClI,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,gBAAQ,CAAC,SAAS,CAAC,IAAA,gCAAc,EAAC,GAAG,CAAC,CAAC,CAAC;YAC1D,MAAM,KAAK,CAAsB,gKAAgK,EAC/L,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,qDAAqD;gBACrD,MAAM,IAAI,qCAA6B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,aAAa,CAAC,MAA0B,EAAE,MAAc,EAAE,WAAmB,EAAE,GAAU;QACvF,MAAM,IAAI,GAAG,CAAI,GAAW,EAAE,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,CAAI,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACvH,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7H,CAAC;IAED,eAAe,CAAC,MAAkB,EAAE,MAAc,EAAE,WAAmB,EAAE,GAAU;QACjF,MAAM,IAAI,GAAG,CAAI,GAAW,EAAE,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAW,CAAC,CAAC;QACnG,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,wCAAwB,CAAC,CAAC;IACrF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAyB,EAAkB,EAAE,GAAG,IAAO;QAC7E,yGAAyG;QACzG,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,MAAM,CAAC;QAC3D,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE;YACzC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;SACzC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAyB,EAAkB,EAAE,GAAG,IAAO;QAC9E,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACnF,CAAC;IAED;;;OAGG;IACH,aAAa,CAAmB,MAAS,EAAE,YAAgC,EAAE,OAAgB,EAAE,kBAA6C,EAAE,KAAqB;QAEjK,MAAM,GAAG,GAAG,IAAA,oCAAuB,EAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,KAAK,GAA4B,EAAE,CAAC;QAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAExG,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc;oBAChC,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAE,EAAE,CAAC,kBAAmD,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;oBAC9J,CAAC,CAAC,SAAS,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc;oBAChC,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAE,EAAE,CAAC,kBAAmD,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;yBAC3J,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACvC,CAAC,CAAC,SAAS,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,KAA4B,CAAC;IACtC,CAAC;IAED,aAAa,CAAmB,MAAS,EAAE,YAAqB,EAAE,KAAqB;QACrF,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAmC,CAAC;QACvG,CAAC;aACI,CAAC;YACJ,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAA4B,EAAE,KAAK,CAAmC,CAAC;QAC/H,CAAC;IACH,CAAC;IACD,cAAc,CAAmB,MAAS,EAAE,YAAqB;QAC/D,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAA8B,CAAC;QAC5F,CAAC;aACI,CAAC;YACJ,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAA4B,CAA8B,CAAC;QACpH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAyB,EAAkB,EAAE,GAAG,IAAO;QACxE,OAAO,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAI,IAAwB,EAAE,IAAe,EAAE,IAAU,EAAE,MAA6B,EAAE,MAAc;QAC5H,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,MAAM,aAAa,GAAG,GAAG,CAAC;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,0BAA0B;QACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;QAE1C,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,YAAY,GAAG,SAAS,CAAC;YAC7B,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAAkB,EAAc,EAAE;gBAChE,MAAM,IAAI,GAAG,IAAI,sCAA0B,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAElG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,KAAK,GAAmB,MAAM,IAAI,CAAC,kBAAkB,CAAI,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;oBACxF,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;oBAClC,IAAI,KAAK,CAAC,MAAM,KAAK,wBAAQ,EAAE,CAAC;wBAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;wBACvC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAc,CAAC,EAAE,EAAE,CAAC,CAAC;wBACjD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACzC,OAAO,KAAK,CAAC,MAAW,CAAC;oBAC3B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,2HAA2H;oBAC3H,YAAY,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBACzD,CAAC;gBAED,2DAA2D;gBAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;gBAC3C,CAAC;gBAED,IAAI,OAAsB,CAAC;gBAC3B,MAAM,IAAA,4BAAkB,EAAC,IAAI,EAAE,KAAK,IAAG,EAAE;oBACvC,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,OAAQ,CAAA;gBAEvB,IAAI,QAAQ,EAAE,CAAC;oBACb,mFAAmF;oBACnF,MAAM,UAAU,GAAmB;wBACjC,MAAM,EAAE,MAAM;wBACd,YAAY,EAAE,YAAY;wBAC1B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;qBACvB,CAAA;oBACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,uFAAuF;oBACvF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAI,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;oBACvF,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;oBAC/C,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBAC5B,CAAC;gBAED,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;gBAClH,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAc,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjE,sCAAsC;oBACtC,IAAI,CAAC,QAAQ,CAAC,2BAA2B,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtG,gCAAgC;oBAChC,MAAM,IAAA,eAAO,EAAC,eAAe,CAAC,CAAC;oBAC/B,eAAe,IAAI,aAAa,CAAC;oBACjC,eAAe,GAAG,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;oBACtF,SAAS;gBACX,CAAC;gBAED,iCAAiC;gBACjC,MAAM,CAAC,GAAU,GAAY,CAAC;gBAC9B,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAkB,EAAE,EAAE;oBACjE,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;oBACzC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC9D,CAAC,EAAE,EAAE,cAAc,EAAE,4BAAc,CAAC,aAAa,EAAE,CAAC,CAAC;gBAErD,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,MAA0B,EAAE,EAAE;oBACjF,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBACrC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC5D,CAAC,EAAE,EAAE,cAAc,EAAE,4BAAc,CAAC,aAAa,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBAC1B,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAI,IAAwB,EAAE,IAAe,EAAE,IAAU,EAAE,MAA6B,EAAE,MAAc;QAC7H,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;QAE1C,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;QAEF,6FAA6F;QAC7F,yEAAyE;QACzE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,gDAAgD;YAChD,MAAM,eAAe,GAAG,IAAI,KAAK,EAAsC,CAAC;YACxE,KAAK,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC7F,eAAe,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;YACvE,CAAC;YACD,sBAAsB;YACtB,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrF,CAAC;QAGD,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAc,IAAI,EAAE,KAAK,CAAC,CAAC;QAExF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;QAEzE,kFAAkF;QAClF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;QAED,iEAAiE;QACjE,4DAA4D;QAC5D,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAA,kCAAgB,EAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,+DAA+D;QAC/D,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE;gBAC5B,MAAM;gBACN,YAAY;gBACZ,UAAU,EAAE,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE;aACrC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAc,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,OAAO,MAAO,CAAC;IACjB,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,SAAS,CAAI,IAAwB,EAAE,GAAG,IAAe;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAAC,MAAM,IAAI,8BAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAC5E,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAS,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAChD,IAAI,CAAC,IAAI,EACT;YACE,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,aAAa,EAAE,6BAAa,CAAC,SAAS;YACtC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK;YAC3C,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc;YAC9C,cAAc;SACf,EACD,IAAI,CAAC,IAAI,CACV,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,cAAc;gBAC3B,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACxE,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5E,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAc,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,EAAE,OAAO,EAAE,GAAG,CAAwB,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAc,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACxD,MAAM,CAAC,CAAC;QACV,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAyB,GAAsB,EAAE,OAAkC,EAAE,GAAG,IAAO;QAC9G,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAyB,MAA0B,EAAE,OAAkC,EAAE,GAAG,IAAO;QAC/G,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAI,eAAuB,EAAE,OAAU,EAAE,KAAc;QAC/D,MAAM,UAAU,GAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEzD,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,MAA0B,EAAE,EAAE;YACjF,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC,EAAE,EAAE,cAAc,EAAE,4BAAc,CAAC,aAAa,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3G,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAI,KAAc,EAAE,iBAAyB,4BAAY,CAAC,6BAA6B;QAC/F,MAAM,UAAU,GAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACzD,MAAM,iBAAiB,GAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEhE,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,MAA0B,EAAE,EAAE;YACjF,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC,EAAE,EAAE,cAAc,EAAE,4BAAc,CAAC,aAAa,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IACrH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAI,GAAW,EAAE,KAAQ;QACrC,MAAM,UAAU,GAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEzD,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,MAA0B,EAAE,EAAE;YACjF,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC,EAAE,EAAE,cAAc,EAAE,4BAAc,CAAC,aAAa,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1F,CAAC;IAED;;;OAGG;IACH,MAAM,CAAmB,MAA8B;QACrD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,IAAA,oCAAuB,EAAC,MAAM,CAAC,CAAC;YAE5C,MAAM,KAAK,GAA4B,EAAE,CAAC;YAC1C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS;oBAC3B,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,kBAAqD,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;oBACnH,CAAC,CAAC,EAAE,CAAC,UAAU;wBACb,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,kBAAsD,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;wBACjH,CAAC,CAAC,EAAE,CAAC,UAAU;4BACb,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,kBAA8C,EAAE,GAAG,IAAI,CAAC;4BACpG,CAAC,CAAC,SAAS,CAAC;YACpB,CAAC;YACD,OAAO,KAAyB,CAAC;QACnC,CAAC;aACI,CAAC;YACJ,MAAM,UAAU,GAAG,MAA4B,CAAC;YAChD,MAAM,GAAG,GAAG,IAAA,oCAAuB,EAAC,UAAU,CAAC,CAAC;YAEhD,MAAM,KAAK,GAA4B,EAAE,CAAC;YAC1C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS;oBAC3B,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,kBAAqD,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;oBACzH,CAAC,CAAC,EAAE,CAAC,UAAU;wBACb,CAAC,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,kBAAsD,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;wBACvH,CAAC,CAAC,SAAS,CAAC;YAClB,CAAC;YACD,OAAO,KAA2B,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CAAI,UAAkB,EAAE,GAAW,EAAE,iBAAyB,4BAAY,CAAC,6BAA6B;QAC9G,MAAM,UAAU,GAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG;YACb,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU;YACV,iBAAiB;SAClB,CAAC;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAI,UAAkB;QACpC,MAAM,UAAU,GAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACzD,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACvG,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,UAAkB;QAC9B,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAChD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,WAAmB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF;AAxlBD,kDAwlBC;AA0BD;;GAEG;AACH,MAAa,aAAa;IACH;IAAyC;IAAsC;IAA+B;IACxH;IAA8B;IADzC,YAAqB,cAA8B,EAAW,eAA2B,EAAW,YAAoB,EAAW,YAAoB,EAC5I,UAAmB,EAAW,gBAAyB;QAD7C,mBAAc,GAAd,cAAc,CAAgB;QAAW,oBAAe,GAAf,eAAe,CAAY;QAAW,iBAAY,GAAZ,YAAY,CAAQ;QAAW,iBAAY,GAAZ,YAAY,CAAQ;QAC5I,eAAU,GAAV,UAAU,CAAS;QAAW,qBAAgB,GAAhB,gBAAgB,CAAS;IAAI,CAAC;IAEvE,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC1G,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAI,IAAI,CAAC,YAAY,CAAM,CAAC;IAChF,CAAC;CACF;AAnBD,sCAmBC;AAED;;GAEG;AACH,MAAa,eAAe;IACL;IAAyC;IAA+B;IAA8B;IAA3H,YAAqB,cAA8B,EAAW,YAAoB,EAAW,UAAmB,EAAW,gBAAyB;QAA/H,mBAAc,GAAd,cAAc,CAAgB;QAAW,iBAAY,GAAZ,YAAY,CAAQ;QAAW,eAAU,GAAV,UAAU,CAAS;QAAW,qBAAgB,GAAhB,gBAAgB,CAAS;IAAI,CAAC;IAEzJ,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAI,IAAI,CAAC,YAAY,CAAM,CAAC;IAChF,CAAC;CACF;AAlBD,0CAkBC"}