@zengxingyuan/aamp-feishu-task-bridge 0.1.1-dev.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/feishu.js ADDED
@@ -0,0 +1,479 @@
1
+ import { Client, EventDispatcher, LoggerLevel, WSClient, defaultHttpInstance, } from '@larksuiteoapi/node-sdk';
2
+ function mergeHeaders(opts, headers) {
3
+ return {
4
+ ...(opts ?? {}),
5
+ headers: {
6
+ ...headers,
7
+ ...(opts?.headers ?? {}),
8
+ },
9
+ };
10
+ }
11
+ export function createFeishuHttpInstance(headers) {
12
+ if (!headers || Object.keys(headers).length === 0)
13
+ return undefined;
14
+ return {
15
+ request: (opts) => defaultHttpInstance.request(mergeHeaders(opts, headers)),
16
+ get: (url, opts) => defaultHttpInstance.get(url, mergeHeaders(opts, headers)),
17
+ delete: (url, opts) => defaultHttpInstance.delete(url, mergeHeaders(opts, headers)),
18
+ head: (url, opts) => defaultHttpInstance.head(url, mergeHeaders(opts, headers)),
19
+ options: (url, opts) => defaultHttpInstance.options(url, mergeHeaders(opts, headers)),
20
+ post: (url, data, opts) => defaultHttpInstance.post(url, data, mergeHeaders(opts, headers)),
21
+ put: (url, data, opts) => defaultHttpInstance.put(url, data, mergeHeaders(opts, headers)),
22
+ patch: (url, data, opts) => defaultHttpInstance.patch(url, data, mergeHeaders(opts, headers)),
23
+ };
24
+ }
25
+ function asRecord(value) {
26
+ if (!value || typeof value !== 'object' || Array.isArray(value))
27
+ return undefined;
28
+ return value;
29
+ }
30
+ function getString(value) {
31
+ return typeof value === 'string' && value.trim() ? value.trim() : undefined;
32
+ }
33
+ function normalizeFeishuWriteText(value) {
34
+ return value
35
+ .replace(/\\r\\n/g, '\n')
36
+ .replace(/\\n/g, '\n')
37
+ .replace(/\\r/g, '\n');
38
+ }
39
+ function getStringArray(value) {
40
+ if (!Array.isArray(value))
41
+ return undefined;
42
+ const values = value
43
+ .map((item) => getString(item))
44
+ .filter((item) => Boolean(item));
45
+ return values.length ? values : undefined;
46
+ }
47
+ function getArray(value) {
48
+ return Array.isArray(value) && value.length > 0 ? value : undefined;
49
+ }
50
+ function findStringByKeys(value, keys, depth = 0) {
51
+ if (depth > 5)
52
+ return undefined;
53
+ const record = asRecord(value);
54
+ if (!record)
55
+ return undefined;
56
+ for (const key of keys) {
57
+ const found = getString(record[key]);
58
+ if (found)
59
+ return found;
60
+ }
61
+ for (const nested of Object.values(record)) {
62
+ if (!nested || typeof nested !== 'object')
63
+ continue;
64
+ const found = findStringByKeys(nested, keys, depth + 1);
65
+ if (found)
66
+ return found;
67
+ }
68
+ return undefined;
69
+ }
70
+ function findStringArrayByKeys(value, keys, depth = 0) {
71
+ if (depth > 5)
72
+ return undefined;
73
+ const record = asRecord(value);
74
+ if (!record)
75
+ return undefined;
76
+ for (const key of keys) {
77
+ const found = getStringArray(record[key]);
78
+ if (found)
79
+ return found;
80
+ }
81
+ for (const nested of Object.values(record)) {
82
+ if (!nested || typeof nested !== 'object')
83
+ continue;
84
+ const found = findStringArrayByKeys(nested, keys, depth + 1);
85
+ if (found)
86
+ return found;
87
+ }
88
+ return undefined;
89
+ }
90
+ function collectEventTypes(raw, fallbackEventName) {
91
+ const eventTypes = findStringArrayByKeys(raw, ['event_types']);
92
+ if (eventTypes?.length)
93
+ return [...new Set(eventTypes)];
94
+ const eventType = findStringByKeys(raw, ['event_type']);
95
+ const type = findStringByKeys(raw, ['type']);
96
+ const values = [eventType, fallbackEventName, type]
97
+ .filter((value) => Boolean(value))
98
+ .filter((value) => value !== 'event_callback');
99
+ return [...new Set(values)];
100
+ }
101
+ export function normalizeFeishuTaskEvent(raw, fallbackEventName) {
102
+ const taskGuid = findStringByKeys(raw, ['task_guid', 'guid', 'task_id', 'resource_id', 'object_id']);
103
+ if (!taskGuid)
104
+ return null;
105
+ const timestamp = findStringByKeys(raw, ['create_time', 'ts', 'timestamp']);
106
+ const eventId = findStringByKeys(raw, ['event_id']);
107
+ if (!eventId)
108
+ return null;
109
+ return {
110
+ eventId,
111
+ taskGuid,
112
+ eventTypes: collectEventTypes(raw, fallbackEventName),
113
+ ...(timestamp ? { timestamp } : {}),
114
+ raw,
115
+ };
116
+ }
117
+ function readOriginUrl(record) {
118
+ const origin = asRecord(record.origin);
119
+ const href = asRecord(origin?.href);
120
+ return getString(href?.url);
121
+ }
122
+ function mapV2Task(record, fallbackGuid) {
123
+ return {
124
+ guid: getString(record.guid) ?? fallbackGuid,
125
+ ...(getString(record.task_id) ? { taskId: getString(record.task_id) } : {}),
126
+ summary: getString(record.summary) ?? '(untitled)',
127
+ ...(getString(record.description) ? { description: getString(record.description) } : {}),
128
+ ...(getString(record.url) ?? readOriginUrl(record) ? { url: getString(record.url) ?? readOriginUrl(record) } : {}),
129
+ ...(getString(record.status) ? { status: getString(record.status) } : {}),
130
+ ...(getString(record.parent_task_guid) ? { parentGuid: getString(record.parent_task_guid) } : {}),
131
+ ...(getString(record.rrule) ? { rrule: getString(record.rrule) } : {}),
132
+ ...(getArray(record.reminders) ? { reminders: getArray(record.reminders) } : {}),
133
+ };
134
+ }
135
+ function mapV2Subtask(record) {
136
+ const guid = getString(record.guid);
137
+ if (!guid)
138
+ return null;
139
+ return {
140
+ guid,
141
+ ...(getString(record.task_id) ? { taskId: getString(record.task_id) } : {}),
142
+ summary: getString(record.summary) ?? '(untitled)',
143
+ ...(getString(record.description) ? { description: getString(record.description) } : {}),
144
+ ...(getString(record.status) ? { status: getString(record.status) } : {}),
145
+ ...(getString(record.url) ?? readOriginUrl(record) ? { url: getString(record.url) ?? readOriginUrl(record) } : {}),
146
+ };
147
+ }
148
+ function inferCommentAuthorType(record, content) {
149
+ const authorType = getString(record.author_type)
150
+ ?? getString(record.creator_type)
151
+ ?? getString(record.operator_type);
152
+ if (authorType)
153
+ return authorType;
154
+ const agentCommentMarkers = [
155
+ '已收到任务派发请求',
156
+ '已收到您的回复',
157
+ '智能体执行完成',
158
+ '智能体执行失败',
159
+ '智能体需要更多信息',
160
+ '\n\n交付物:',
161
+ '失败原因:',
162
+ ];
163
+ if (agentCommentMarkers.some((marker) => content.includes(marker)))
164
+ return 'agent';
165
+ return 'human';
166
+ }
167
+ function mapV2Comment(record) {
168
+ const content = getString(record.content)
169
+ ?? getString(record.text)
170
+ ?? getString(record.plain_text)
171
+ ?? getString(asRecord(record.message)?.content);
172
+ if (!content)
173
+ return null;
174
+ return {
175
+ ...(getString(record.comment_id) ?? getString(record.id) ? { id: getString(record.comment_id) ?? getString(record.id) } : {}),
176
+ authorType: inferCommentAuthorType(record, content),
177
+ content,
178
+ ...(getString(record.create_time) ?? getString(record.created_at) ? { createdAt: getString(record.create_time) ?? getString(record.created_at) } : {}),
179
+ ...(getString(record.update_time) ?? getString(record.updated_at) ? { updatedAt: getString(record.update_time) ?? getString(record.updated_at) } : {}),
180
+ };
181
+ }
182
+ function mapV1Task(record, fallbackTaskId) {
183
+ const taskId = getString(record.id) ?? fallbackTaskId;
184
+ return {
185
+ guid: taskId,
186
+ taskId,
187
+ summary: getString(record.summary) ?? '(untitled)',
188
+ ...(getString(record.description) ? { description: getString(record.description) } : {}),
189
+ ...(readOriginUrl(record) ? { url: readOriginUrl(record) } : {}),
190
+ status: getString(record.complete_time) ? 'completed' : 'todo',
191
+ };
192
+ }
193
+ export class OapiFeishuTaskClient {
194
+ client;
195
+ config;
196
+ httpInstance;
197
+ logger;
198
+ wsClient;
199
+ constructor(config, options = {}) {
200
+ this.config = config;
201
+ this.logger = options.logger ?? console;
202
+ this.httpInstance = createFeishuHttpInstance(config.headers);
203
+ this.client = new Client({
204
+ appId: config.appId,
205
+ appSecret: config.appSecret,
206
+ ...(config.domain ? { domain: config.domain } : {}),
207
+ ...(this.httpInstance ? { httpInstance: this.httpInstance } : {}),
208
+ loggerLevel: LoggerLevel.info,
209
+ source: 'aamp-feishu-task-bridge',
210
+ });
211
+ }
212
+ async registerAgent() {
213
+ this.logger.log('[feishu agent] register via v2');
214
+ await this.registerV2AgentWithRawRequest({
215
+ params: {},
216
+ data: {},
217
+ });
218
+ }
219
+ async subscribeTaskEvents() {
220
+ const userIdType = this.config.userIdType ?? 'open_id';
221
+ this.logger.log(`[feishu task subscription] subscribe via v2 user_id_type=${userIdType}`);
222
+ await this.subscribeV2TaskEventsWithRawRequest({
223
+ params: { user_id_type: userIdType },
224
+ data: {},
225
+ });
226
+ }
227
+ async start(onEvent) {
228
+ const handlers = {};
229
+ for (const eventName of this.config.eventNames) {
230
+ handlers[eventName] = (data) => {
231
+ this.logger.log(`[feishu ws] event received name=${eventName}`);
232
+ const event = normalizeFeishuTaskEvent(data, eventName);
233
+ if (!event) {
234
+ this.logger.log(`[feishu] ignored ${eventName}: missing task identifier or event_id`);
235
+ return;
236
+ }
237
+ this.logger.log(`[feishu ws] normalized event=${event.eventId} task=${event.taskGuid}`);
238
+ void onEvent(event).catch((error) => {
239
+ this.logger.error(`[feishu event ${event.eventId}] ${error.message}`);
240
+ });
241
+ };
242
+ }
243
+ this.logger.log(`[feishu ws] starting app=${this.config.appId} events=${this.config.eventNames.join(',')}`);
244
+ this.wsClient = new WSClient({
245
+ appId: this.config.appId,
246
+ appSecret: this.config.appSecret,
247
+ ...(this.config.domain ? { domain: this.config.domain } : {}),
248
+ ...(this.httpInstance ? { httpInstance: this.httpInstance } : {}),
249
+ loggerLevel: LoggerLevel.info,
250
+ source: 'aamp-feishu-task-bridge',
251
+ onReady: () => {
252
+ this.logger.log('[feishu ws] connected');
253
+ },
254
+ onError: (error) => {
255
+ this.logger.error(`[feishu ws] ${error.message}`);
256
+ },
257
+ onReconnecting: () => {
258
+ this.logger.log('[feishu ws] reconnecting');
259
+ },
260
+ onReconnected: () => {
261
+ this.logger.log('[feishu ws] reconnected');
262
+ },
263
+ });
264
+ await this.wsClient.start({
265
+ eventDispatcher: new EventDispatcher({ loggerLevel: LoggerLevel.info }).register(handlers),
266
+ });
267
+ }
268
+ async stop() {
269
+ this.wsClient?.close({ force: true });
270
+ this.wsClient = undefined;
271
+ this.logger.log('[feishu ws] stopped');
272
+ }
273
+ async getTask(taskGuid) {
274
+ if (this.config.taskApiVersion === 'v1') {
275
+ this.logger.log(`[feishu task ${taskGuid}] get via v1`);
276
+ return this.getV1Task(taskGuid);
277
+ }
278
+ this.logger.log(`[feishu task ${taskGuid}] get via v2`);
279
+ return this.getV2Task(taskGuid).catch(async (error) => {
280
+ this.logger.log(`[feishu task ${taskGuid}] v2 get failed, trying v1 fallback: ${error.message}`);
281
+ return this.getV1Task(taskGuid);
282
+ });
283
+ }
284
+ async commentTask(taskGuid, content) {
285
+ const normalizedContent = normalizeFeishuWriteText(content);
286
+ if (this.config.taskApiVersion === 'v1') {
287
+ this.logger.log(`[feishu task ${taskGuid}] comment via v1`);
288
+ await this.commentV1Task(taskGuid, normalizedContent);
289
+ return;
290
+ }
291
+ this.logger.log(`[feishu task ${taskGuid}] comment via v2`);
292
+ await this.commentV2Task(taskGuid, normalizedContent).catch(async (error) => {
293
+ this.logger.log(`[feishu task ${taskGuid}] v2 comment failed, trying v1 fallback: ${error.message}`);
294
+ await this.commentV1Task(taskGuid, normalizedContent);
295
+ });
296
+ }
297
+ async appendTaskStep(taskGuid, content) {
298
+ if (!content.trim())
299
+ return;
300
+ this.logger.log(`[feishu task ${taskGuid}] append step via v2`);
301
+ await this.appendV2TaskSteps(taskGuid, [content]);
302
+ }
303
+ async appendTaskSteps(taskGuid, contents) {
304
+ const stepContents = contents.filter((content) => content.trim());
305
+ if (stepContents.length === 0)
306
+ return;
307
+ this.logger.log(`[feishu task ${taskGuid}] append ${stepContents.length} step(s) via v2`);
308
+ await this.appendV2TaskSteps(taskGuid, stepContents);
309
+ }
310
+ async completeTask(taskGuid) {
311
+ this.logger.log(`[feishu task ${taskGuid}] complete via v2 agent_task_status`);
312
+ await this.completeV2AgentTask(taskGuid);
313
+ }
314
+ async markTaskWaitingForHuman(taskGuid) {
315
+ this.logger.log(`[feishu task ${taskGuid}] block via v2 agent_task_status`);
316
+ await this.patchV2AgentTaskStatus(taskGuid, 3, '待确认');
317
+ }
318
+ async getV1Task(taskGuid) {
319
+ const response = await this.client.task.task.get({
320
+ path: { task_id: taskGuid },
321
+ params: { user_id_type: this.config.userIdType },
322
+ });
323
+ const task = asRecord(response.data?.task);
324
+ if (!task)
325
+ throw new Error(`Feishu task ${taskGuid} not found`);
326
+ return mapV1Task(task, taskGuid);
327
+ }
328
+ async getV2Task(taskGuid) {
329
+ const response = await this.client.task.v2.task.get({
330
+ path: { task_guid: taskGuid },
331
+ params: { user_id_type: this.config.userIdType },
332
+ });
333
+ const task = asRecord(response.data?.task);
334
+ if (!task)
335
+ throw new Error(`Feishu task ${taskGuid} not found`);
336
+ const details = mapV2Task(task, taskGuid);
337
+ details.subtasks = await this.listV2Subtasks(details.guid);
338
+ details.comments = await this.listV2Comments(details.guid).catch((error) => {
339
+ this.logger.log(`[feishu task ${taskGuid}] list comments failed: ${error.message}`);
340
+ return [];
341
+ });
342
+ return details;
343
+ }
344
+ async commentV1Task(taskGuid, content) {
345
+ await this.client.task.taskComment.create({
346
+ path: { task_id: taskGuid },
347
+ params: { user_id_type: this.config.userIdType },
348
+ data: {
349
+ content,
350
+ parent_id: '0',
351
+ create_milli_time: String(Date.now()),
352
+ },
353
+ });
354
+ }
355
+ async commentV2Task(taskGuid, content) {
356
+ await this.client.task.v2.comment.create({
357
+ params: { user_id_type: this.config.userIdType },
358
+ data: {
359
+ content,
360
+ resource_type: 'task',
361
+ resource_id: taskGuid,
362
+ },
363
+ });
364
+ }
365
+ async appendV2TaskSteps(taskGuid, contents) {
366
+ const timestamp = Math.floor(Date.now() / 1000);
367
+ const payload = {
368
+ params: { user_id_type: this.config.userIdType },
369
+ data: {
370
+ task_guid: taskGuid,
371
+ task_steps: contents.map((content) => ({ quote: '', content, timestamp })),
372
+ },
373
+ };
374
+ await this.appendV2TaskStepsWithRawRequest(payload);
375
+ }
376
+ async appendV2TaskStepsWithRawRequest(payload) {
377
+ const taskGuid = payload.data.task_guid;
378
+ if (!taskGuid)
379
+ throw new Error('Feishu task step append requires task_guid.');
380
+ const rawClient = this.client;
381
+ if (!rawClient.formatPayload || !rawClient.httpInstance || !rawClient.domain) {
382
+ throw new Error('Feishu task step raw REST append is unavailable in this @larksuiteoapi/node-sdk version.');
383
+ }
384
+ const formatted = await rawClient.formatPayload({
385
+ params: payload.params,
386
+ data: payload.data,
387
+ });
388
+ await rawClient.httpInstance.request({
389
+ method: 'POST',
390
+ url: `${rawClient.domain}/open-apis/task/v2/agent_task_step_info/append_task_steps`,
391
+ params: formatted.params,
392
+ data: formatted.data,
393
+ headers: formatted.headers,
394
+ });
395
+ }
396
+ async registerV2AgentWithRawRequest(payload) {
397
+ const rawClient = this.client;
398
+ if (!rawClient.formatPayload || !rawClient.httpInstance || !rawClient.domain) {
399
+ throw new Error('Feishu task agent raw REST registration is unavailable in this @larksuiteoapi/node-sdk version.');
400
+ }
401
+ const formatted = await rawClient.formatPayload({
402
+ params: payload.params,
403
+ data: payload.data,
404
+ });
405
+ await rawClient.httpInstance.request({
406
+ method: 'POST',
407
+ url: `${rawClient.domain}/open-apis/task/v2/agent/register_agent`,
408
+ params: formatted.params,
409
+ data: formatted.data,
410
+ headers: formatted.headers,
411
+ });
412
+ }
413
+ async subscribeV2TaskEventsWithRawRequest(payload) {
414
+ const rawClient = this.client;
415
+ if (!rawClient.formatPayload || !rawClient.httpInstance || !rawClient.domain) {
416
+ throw new Error('Feishu task event raw REST subscription is unavailable in this @larksuiteoapi/node-sdk version.');
417
+ }
418
+ const formatted = await rawClient.formatPayload({
419
+ params: payload.params,
420
+ data: payload.data,
421
+ });
422
+ await rawClient.httpInstance.request({
423
+ method: 'POST',
424
+ url: `${rawClient.domain}/open-apis/task/v2/task_v2/task_subscription`,
425
+ params: formatted.params,
426
+ data: formatted.data,
427
+ headers: formatted.headers,
428
+ });
429
+ }
430
+ async completeV2AgentTask(taskGuid) {
431
+ await this.patchV2AgentTaskStatus(taskGuid, 4, '执行完成');
432
+ }
433
+ async patchV2AgentTaskStatus(taskGuid, agentTaskStatus, agentTaskProgress) {
434
+ const task = {
435
+ agent_task_status: agentTaskStatus,
436
+ ...(agentTaskProgress ? { agent_task_progress: agentTaskProgress } : {}),
437
+ };
438
+ const updateFields = [
439
+ 'agent_task_status',
440
+ ...(agentTaskProgress ? ['agent_task_progress'] : []),
441
+ ];
442
+ await this.client.task.v2.task.patch({
443
+ path: { task_guid: taskGuid },
444
+ params: { user_id_type: this.config.userIdType },
445
+ data: {
446
+ task,
447
+ update_fields: updateFields,
448
+ },
449
+ });
450
+ }
451
+ async listV2Subtasks(taskGuid) {
452
+ const response = await this.client.task.v2.taskSubtask.list({
453
+ path: { task_guid: taskGuid },
454
+ params: {
455
+ user_id_type: this.config.userIdType,
456
+ page_size: 50,
457
+ },
458
+ });
459
+ const items = response.data?.items ?? [];
460
+ return items
461
+ .map((item) => mapV2Subtask(item))
462
+ .filter((item) => Boolean(item));
463
+ }
464
+ async listV2Comments(taskGuid) {
465
+ const response = await this.client.task.v2.comment.list({
466
+ params: {
467
+ user_id_type: this.config.userIdType,
468
+ resource_type: 'task',
469
+ resource_id: taskGuid,
470
+ page_size: 50,
471
+ },
472
+ });
473
+ const items = response.data?.items ?? [];
474
+ return items
475
+ .map((item) => mapV2Comment(item))
476
+ .filter((item) => Boolean(item));
477
+ }
478
+ }
479
+ //# sourceMappingURL=feishu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feishu.js","sourceRoot":"","sources":["../src/feishu.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,eAAe,EACf,WAAW,EACX,QAAQ,EACR,mBAAmB,GAGpB,MAAM,yBAAyB,CAAA;AA8ChC,SAAS,YAAY,CACnB,IAAuC,EACvC,OAA+B;IAE/B,OAAO;QACL,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,EAAE;YACP,GAAG,OAAO;YACV,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;SACzB;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAA2C;IAClF,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACnE,OAAO;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3E,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7E,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnF,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/E,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrF,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3F,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzF,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC9F,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACjF,OAAO,KAAmB,CAAA;AAC5B,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AAC7E,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAa;IAC7C,OAAO,KAAK;SACT,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;SACxB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;SACrB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3C,MAAM,MAAM,GAAG,KAAK;SACjB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAC9B,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAClD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AAC3C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACrE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,IAAc,EAAE,KAAK,GAAG,CAAC;IACjE,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9B,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAE7B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACpC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAA;IACzB,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,SAAQ;QACnD,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QACvD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAA;IACzB,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,IAAc,EAAE,KAAK,GAAG,CAAC;IACtE,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9B,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAE7B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACzC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAA;IACzB,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,SAAQ;QACnD,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QAC5D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAA;IACzB,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY,EAAE,iBAAyB;IAChE,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IAC9D,IAAI,UAAU,EAAE,MAAM;QAAE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;IAEvD,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IACvD,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC;SAChD,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAClD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,gBAAgB,CAAC,CAAA;IAChD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAY,EAAE,iBAAyB;IAC9E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;IACpG,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAE1B,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;IAC3E,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IACnD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAEzB,OAAO;QACL,OAAO;QACP,QAAQ;QACR,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,CAAC;QACrD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG;KACJ,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAAkB;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACnC,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,SAAS,CAAC,MAAkB,EAAE,YAAoB;IACzD,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY;QAC5C,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,YAAY;QAClD,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClH,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjF,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAkB;IACtC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,OAAO;QACL,IAAI;QACJ,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,YAAY;QAClD,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnH,CAAA;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAkB,EAAE,OAAe;IACjE,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;WAC3C,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;WAC9B,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IACpC,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IACjC,MAAM,mBAAmB,GAAG;QAC1B,WAAW;QACX,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,UAAU;QACV,OAAO;KACR,CAAA;IACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,OAAO,CAAA;IAClF,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,MAAkB;IACtC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;WACpC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;WACtB,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;WAC5B,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;IACjD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,OAAO;QACL,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7H,UAAU,EAAE,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC;QACnD,OAAO;QACP,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtJ,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvJ,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,MAAkB,EAAE,cAAsB;IAC3D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,cAAc,CAAA;IACrD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM;QACN,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,YAAY;QAClD,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;KAC/D,CAAA;AACH,CAAC;AAED,MAAM,OAAO,oBAAoB;IACd,MAAM,CAAQ;IACd,MAAM,CAAc;IACpB,YAAY,CAAe;IAC3B,MAAM,CAAQ;IACvB,QAAQ,CAAW;IAE3B,YAAY,MAAoB,EAAE,UAAuC,EAAE;QACzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAA;QACvC,IAAI,CAAC,YAAY,GAAG,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,WAAW,EAAE,WAAW,CAAC,IAAI;YAC7B,MAAM,EAAE,yBAAyB;SAClC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;QACjD,MAAM,IAAI,CAAC,6BAA6B,CAAC;YACvC,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,EAAE;SACT,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,SAAS,CAAA;QACtD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4DAA4D,UAAU,EAAE,CAAC,CAAA;QACzF,MAAM,IAAI,CAAC,mCAAmC,CAAC;YAC7C,MAAM,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE;YACpC,IAAI,EAAE,EAAE;SACT,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAkD;QAC5D,MAAM,QAAQ,GAA4C,EAAE,CAAA;QAC5D,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC/C,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAa,EAAE,EAAE;gBACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mCAAmC,SAAS,EAAE,CAAC,CAAA;gBAC/D,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;gBACvD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,SAAS,uCAAuC,CAAC,CAAA;oBACrF,OAAM;gBACR,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,KAAK,CAAC,OAAO,SAAS,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACvF,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;oBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBACvE,CAAC,CAAC,CAAA;YACJ,CAAC,CAAA;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,MAAM,CAAC,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC3G,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC;YAC3B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;YACxB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,WAAW,EAAE,WAAW,CAAC,IAAI;YAC7B,MAAM,EAAE,yBAAyB;YACjC,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;YAC1C,CAAC;YACD,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;gBACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACnD,CAAC;YACD,cAAc,EAAE,GAAG,EAAE;gBACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;YAC7C,CAAC;YACD,aAAa,EAAE,GAAG,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;YAC5C,CAAC;SACF,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxB,eAAe,EAAE,IAAI,eAAe,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;SAC3F,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,QAAQ,cAAc,CAAC,CAAA;YACvD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,QAAQ,cAAc,CAAC,CAAA;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAY,EAAE,EAAE;YAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,QAAQ,wCAAwC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YAChG,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,OAAe;QACjD,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;QAC3D,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,QAAQ,kBAAkB,CAAC,CAAA;YAC3D,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;YACrD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,QAAQ,kBAAkB,CAAC,CAAA;QAC3D,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAY,EAAE,EAAE;YACjF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,QAAQ,4CAA4C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACpG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB,EAAE,OAAe;QACpD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,OAAM;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,QAAQ,sBAAsB,CAAC,CAAA;QAC/D,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,QAAkB;QACxD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QACjE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,QAAQ,YAAY,YAAY,CAAC,MAAM,iBAAiB,CAAC,CAAA;QACzF,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,QAAQ,qCAAqC,CAAC,CAAA;QAC9E,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,QAAgB;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,QAAQ,kCAAkC,CAAC,CAAA;QAC3E,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IACvD,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,QAAgB;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/C,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;YAC3B,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;SACjD,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC1C,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,YAAY,CAAC,CAAA;QAC/D,OAAO,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAClC,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,QAAgB;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;YAClD,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC7B,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;SACjD,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC1C,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,YAAY,CAAC,CAAA;QAE/D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACzC,OAAO,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1D,OAAO,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;YAChF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,QAAQ,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACnF,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,OAAe;QAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACxC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;YAC3B,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAChD,IAAI,EAAE;gBACJ,OAAO;gBACP,SAAS,EAAE,GAAG;gBACd,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACtC;SACF,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,OAAe;QAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;YACvC,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAChD,IAAI,EAAE;gBACJ,OAAO;gBACP,aAAa,EAAE,MAAM;gBACrB,WAAW,EAAE,QAAQ;aACtB;SACF,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,QAAkB;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAoB;YAC/B,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAChD,IAAI,EAAE;gBACJ,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;aAC3E;SACF,CAAA;QAED,MAAM,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAA;IACrD,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAAC,OAAwB;QACpE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAA;QACvC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAE7E,MAAM,SAAS,GAAG,IAAI,CAAC,MAAmB,CAAA;QAC1C,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;QAC7G,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC;YAC9C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAA;QACF,MAAM,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG,SAAS,CAAC,MAAM,2DAA2D;YACnF,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,SAAS,CAAC,OAAO;SAC3B,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,6BAA6B,CAAC,OAA6B;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAmB,CAAA;QAC1C,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAA;QACpH,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC;YAC9C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAA;QACF,MAAM,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG,SAAS,CAAC,MAAM,yCAAyC;YACjE,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,SAAS,CAAC,OAAO;SAC3B,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,mCAAmC,CAAC,OAAgC;QAChF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAmB,CAAA;QAC1C,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAA;QACpH,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC;YAC9C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAA;QACF,MAAM,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG,SAAS,CAAC,MAAM,8CAA8C;YACtE,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,SAAS,CAAC,OAAO;SAC3B,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAChD,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;IACxD,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,QAAgB,EAAE,eAAuB,EAAE,iBAA0B;QACxG,MAAM,IAAI,GAAG;YACX,iBAAiB,EAAE,eAAe;YAClC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzE,CAAA;QACD,MAAM,YAAY,GAAG;YACnB,mBAAmB;YACnB,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAA;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC7B,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YAChD,IAAI,EAAE;gBACJ,IAAI;gBACJ,aAAa,EAAE,YAAY;aAC5B;SACF,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,QAAgB;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;YAC1D,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC7B,MAAM,EAAE;gBACN,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBACpC,SAAS,EAAE,EAAE;aACd;SACF,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAA;QACxC,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAkB,CAAC,CAAC;aAC/C,MAAM,CAAC,CAAC,IAAI,EAA6B,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/D,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,QAAgB;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YACtD,MAAM,EAAE;gBACN,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBACpC,aAAa,EAAE,MAAM;gBACrB,WAAW,EAAE,QAAQ;gBACrB,SAAS,EAAE,EAAE;aACd;SACF,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAA;QACxC,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAkB,CAAC,CAAC;aAC/C,MAAM,CAAC,CAAC,IAAI,EAA6B,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/D,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}