iobroker.mcp 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -47,9 +47,11 @@ The adapter can be configured through the ioBroker admin interface using JSONCon
47
47
  When running as a web extension and no user is set here, the host `web` instance's default user is used.
48
48
 
49
49
  ### Permissions
50
- - **Allow setting states**: Allow MCP clients to write state values (the `set_state` tool). Default: **on**.
51
- - **Allow object/file changes**: Allow MCP clients to create/modify objects and write files (the `set_object`
52
- and `write_file` tools). Default: **off**. When off, these tools are not exposed at all.
50
+ - **Allow setting states**: Allow MCP clients to write state values (the `set_state` and `set_states` tools).
51
+ Default: **on**.
52
+ - **Allow object/file changes**: Allow MCP clients to create/modify/delete objects and files (the `set_object`,
53
+ `delete_object`, `create_state`, `create_scene`, `write_file`, `delete_file`, `rename_file` and `mkdir`
54
+ tools). Default: **off**. When off, these tools are not exposed at all.
53
55
 
54
56
  ### SSL/TLS Configuration
55
57
  - **Enable HTTPS**: Enable HTTPS/SSL for secure connections
@@ -67,27 +69,37 @@ state (tracked via the `Mcp-Session-Id` header). Point your MCP client at:
67
69
 
68
70
  ### Available tools
69
71
 
70
- | Tool | Description |
71
- |------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
72
- | `get_states` | Retrieve the current value of one or multiple states |
73
- | `get_object` | Read a single object by its ID |
74
- | `search_objects` | Search objects/states by keyword, role or room |
75
- | `list_devices` | List detected devices grouped by room (uses the ioBroker type-detector to expose functional devices with named controls); optional `language` and `room` filter |
76
- | `list_instances` | List adapter instances with their status |
77
- | `list_hosts` | List ioBroker hosts with their status |
78
- | `list_rooms` | List rooms (`enum.rooms.*`) with localized names and member details; optional `language` and `withIcons` |
79
- | `list_functions` | List functions (`enum.functions.*`) with localized names and member details; optional `language` and `withIcons` |
80
- | `history_query` | Query historical values (requires a history adapter) |
81
- | `read_file` | Read a file from an adapter file storage (optional base64) |
82
- | `get_logs` | Retrieve system logs |
83
- | `write_log` | Write a message to the ioBroker log |
84
- | `system_info` | Get system and js-controller information |
85
- | `set_state` | Set the value of a state (value coerced to the state type) — requires *Allow setting states* |
86
- | `set_object` | Create/update an object (merges common/native) requires *Allow object/file changes* |
87
- | `write_file` | Write a file to an adapter file storage — requires *Allow object/file changes* |
88
-
89
- All object/state access runs with the permissions of the configured **Default User**. The write tools
90
- (`set_state`, `set_object`, `write_file`) are only registered when their respective permission option is enabled.
72
+ | Tool | Description |
73
+ |------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
74
+ | `get_states` | Retrieve the current value of one or multiple states; IDs may contain wildcards (e.g. `hue.0.*.brightness`) |
75
+ | `get_object` | Read a single object by its ID |
76
+ | `search_objects` | Search objects/states by keyword (matched against ID and name); optional filters for object `type`, `role`, `room` and source `adapter` instance |
77
+ | `list_devices` | List detected devices grouped by room (uses the ioBroker type-detector to expose functional devices with named controls); optional `language` and `room` filter |
78
+ | `list_instances` | List adapter instances with their status |
79
+ | `list_adapters` | List installed adapters with metadata (version, title, description, keywords) |
80
+ | `list_hosts` | List ioBroker hosts with their status |
81
+ | `list_rooms` | List rooms (`enum.rooms.*`) with localized names and member details; optional `language` and `withIcons` |
82
+ | `list_functions` | List functions (`enum.functions.*`) with localized names and member details; optional `language` and `withIcons` |
83
+ | `history_query` | Query historical values (requires a history adapter); aggregations: `raw`, `min`, `max`, `avg`, `sum`, `count`, `minmax`, `percentile`, `quantile`, `integral` |
84
+ | `read_file` | Read a file from an adapter file storage (optional base64) |
85
+ | `list_files` | List a directory in an adapter file storage |
86
+ | `file_exists` | Check whether a file exists in an adapter file storage |
87
+ | `get_logs` | Retrieve system logs |
88
+ | `write_log` | Write a message to the ioBroker log |
89
+ | `system_info` | Get system and js-controller information |
90
+ | `set_state` | Set the value of a state (value coerced to the state type) — requires *Allow setting states* |
91
+ | `set_states` | Set multiple states in one call (for scenes/group actions like "all lights off") — requires *Allow setting states* |
92
+ | `set_object` | Create/update an object (merges common/native) requires *Allow object/file changes* |
93
+ | `delete_object` | Delete an object, optionally with all children — requires *Allow object/file changes* |
94
+ | `create_state` | Create a new state object with type/role/unit/min/max and optional initial value — requires *Allow object/file changes* |
95
+ | `create_scene` | Create or update a scene for the ioBroker `scenes` adapter (state/value pairs applied together) — requires *Allow object/file changes* |
96
+ | `write_file` | Write a file to an adapter file storage — requires *Allow object/file changes* |
97
+ | `delete_file` | Delete a file from an adapter file storage — requires *Allow object/file changes* |
98
+ | `rename_file` | Rename/move a file within the same adapter file storage — requires *Allow object/file changes* |
99
+ | `mkdir` | Create a directory in an adapter file storage — requires *Allow object/file changes* |
100
+
101
+ All object/state access runs with the permissions of the configured **Default User**. The write tools are only
102
+ registered when their respective permission option is enabled.
91
103
 
92
104
  ### Resources & live updates (SSE)
93
105
 
@@ -121,7 +133,20 @@ tools rather than as subscribable resources.)
121
133
  Placeholder for the next version (at the beginning of the line):
122
134
  ### **WORK IN PROGRESS**
123
135
  -->
124
- ### 0.1.3 (2026-05-27)
136
+ ### 0.2.0 (2026-06-11)
137
+ * (@GermanBluefox) Many changes: see the previous changelog entry
138
+
139
+ ### 0.1.4 (2026-06-11)
140
+ * (@GermanBluefox) Added wildcard support to `get_states` (e.g. `hue.0.*.brightness`)
141
+ * (@GermanBluefox) Added `set_states` for writing multiple states in one call (scenes/group actions)
142
+ * (@GermanBluefox) Added `delete_object` and `create_state` tools (gated by *Allow object/file changes*)
143
+ * (@GermanBluefox) Added `create_scene` tool that creates scenes for the ioBroker `scenes` adapter
144
+ * (@GermanBluefox) Added file management tools: `list_files`, `file_exists`, `delete_file`, `rename_file`, `mkdir`
145
+ * (@GermanBluefox) Added `list_adapters` to list installed adapters with metadata
146
+ * (@GermanBluefox) Extended `search_objects` with `type` and `adapter` filters; the keyword now also matches object names
147
+ * (@GermanBluefox) Extended `history_query` with the aggregations `count`, `minmax`, `percentile`, `quantile` and `integral`
148
+
149
+ ### 0.1.4 (2026-05-28)
125
150
  * (@GermanBluefox) Initial development
126
151
 
127
152
  ### 0.0.1 (2025-01-03)
@@ -21,6 +21,11 @@ const AGG_MAP = {
21
21
  max: 'max',
22
22
  avg: 'average',
23
23
  sum: 'total',
24
+ count: 'count',
25
+ minmax: 'minmax',
26
+ percentile: 'percentile',
27
+ quantile: 'quantile',
28
+ integral: 'integral',
24
29
  };
25
30
  const WEB_EXTENSION_PREFIX = 'mcp/';
26
31
  /** Languages offered for localized names. */
@@ -59,7 +64,9 @@ class McpServer {
59
64
  constructor(server, webSettings, adapter, instanceSettings, app) {
60
65
  this.app = app;
61
66
  this.adapter = adapter;
62
- this.config = instanceSettings ? instanceSettings.native : adapter.config;
67
+ this.config = instanceSettings
68
+ ? instanceSettings.native
69
+ : adapter.config;
63
70
  this.namespace = instanceSettings
64
71
  ? instanceSettings._id.substring('system.adapter.'.length)
65
72
  : this.adapter.namespace;
@@ -328,8 +335,9 @@ class McpServer {
328
335
  return { content: [{ type: 'text', text: JSON.stringify({ ok: false, error: message }) }], isError: true };
329
336
  };
330
337
  server.registerTool('get_states', {
331
- description: 'Retrieve the current value of one or multiple states',
332
- inputSchema: { ids: zod_1.z.array(zod_1.z.string()).describe('Array of state IDs') },
338
+ description: 'Retrieve the current value of one or multiple states. IDs may contain wildcards, ' +
339
+ 'e.g. "hue.0.*.brightness" expands to all matching states.',
340
+ inputSchema: { ids: zod_1.z.array(zod_1.z.string()).describe('Array of state IDs (wildcards "*" allowed)') },
333
341
  }, async ({ ids }) => {
334
342
  try {
335
343
  return ok({ ok: true, data: { states: await this.getStates(ids) } });
@@ -357,6 +365,26 @@ class McpServer {
357
365
  return fail(e);
358
366
  }
359
367
  });
368
+ server.registerTool('set_states', {
369
+ description: 'Set multiple states in one call (e.g. for scenes or group actions like "all lights off"). ' +
370
+ 'Each value is coerced to its state type. Failures of single states do not abort the rest.',
371
+ inputSchema: {
372
+ states: zod_1.z
373
+ .array(zod_1.z.object({
374
+ id: zod_1.z.string().describe('State ID'),
375
+ value: zod_1.z.any().describe('New value (type depends on the state)'),
376
+ ack: zod_1.z.boolean().optional().describe('Acknowledge flag (default false)'),
377
+ }))
378
+ .describe('Array of state/value pairs to write'),
379
+ },
380
+ }, async ({ states }) => {
381
+ try {
382
+ return ok({ ok: true, data: { results: await this.setStates(states) } });
383
+ }
384
+ catch (e) {
385
+ return fail(e);
386
+ }
387
+ });
360
388
  }
361
389
  server.registerTool('get_logs', {
362
390
  description: 'Retrieve system logs',
@@ -383,11 +411,17 @@ class McpServer {
383
411
  }
384
412
  });
385
413
  server.registerTool('search_objects', {
386
- description: 'Search objects and states by keywords',
414
+ description: 'Search objects and states by keyword (matched against ID and name) with optional ' +
415
+ 'filters for object type, role, room and source adapter instance',
387
416
  inputSchema: {
388
- query: zod_1.z.string().describe('Keyword to search for'),
417
+ query: zod_1.z.string().describe('Keyword to search for in object IDs and names'),
418
+ type: zod_1.z
419
+ .string()
420
+ .optional()
421
+ .describe('Filter by object type, e.g. state, channel, device, enum, script, instance'),
389
422
  role: zod_1.z.string().optional(),
390
423
  room: zod_1.z.string().optional(),
424
+ adapter: zod_1.z.string().optional().describe('Filter by source adapter instance, e.g. "hue.0"'),
391
425
  limit: zod_1.z.number().int().default(50),
392
426
  },
393
427
  }, async (args) => {
@@ -422,7 +456,32 @@ class McpServer {
422
456
  id: zod_1.z.string(),
423
457
  from: zod_1.z.string().optional().describe('Start time (ISO8601)'),
424
458
  to: zod_1.z.string().optional().describe('End time (ISO8601)'),
425
- agg: zod_1.z.enum(['raw', 'min', 'max', 'avg', 'sum']).default('raw'),
459
+ agg: zod_1.z
460
+ .enum([
461
+ 'raw',
462
+ 'min',
463
+ 'max',
464
+ 'avg',
465
+ 'sum',
466
+ 'count',
467
+ 'minmax',
468
+ 'percentile',
469
+ 'quantile',
470
+ 'integral',
471
+ ])
472
+ .default('raw'),
473
+ percentile: zod_1.z
474
+ .number()
475
+ .min(0)
476
+ .max(100)
477
+ .optional()
478
+ .describe('Percentile (0-100), only used with agg=percentile'),
479
+ quantile: zod_1.z
480
+ .number()
481
+ .min(0)
482
+ .max(1)
483
+ .optional()
484
+ .describe('Quantile (0-1), only used with agg=quantile'),
426
485
  interval: zod_1.z.string().optional().describe('Aggregation interval, e.g. 15m, 1h'),
427
486
  limit: zod_1.z.number().int().default(1000),
428
487
  },
@@ -450,6 +509,23 @@ class McpServer {
450
509
  return fail(e);
451
510
  }
452
511
  });
512
+ server.registerTool('list_adapters', {
513
+ description: 'List all installed adapters with metadata (version, title, description, keywords). ' +
514
+ 'Unlike list_instances this lists what is installed, not what is running.',
515
+ inputSchema: {
516
+ language: zod_1.z
517
+ .enum(LANGUAGES)
518
+ .optional()
519
+ .describe('Language for title/description (defaults to the adapter language)'),
520
+ },
521
+ }, async ({ language }) => {
522
+ try {
523
+ return ok({ ok: true, data: { adapters: await this.listAdapters(language) } });
524
+ }
525
+ catch (e) {
526
+ return fail(e);
527
+ }
528
+ });
453
529
  const enumInput = {
454
530
  language: zod_1.z.enum(LANGUAGES).optional().describe('Language for names (defaults to the adapter language)'),
455
531
  withIcons: zod_1.z.boolean().optional().describe('Include the icons of the enum and its members'),
@@ -502,6 +578,32 @@ class McpServer {
502
578
  return fail(e);
503
579
  }
504
580
  });
581
+ server.registerTool('list_files', {
582
+ description: 'List a directory in an adapter file storage, e.g. "vis-2.0/main" or "0_userdata.0"',
583
+ inputSchema: { path: zod_1.z.string().describe('Path as "<adapter>[/<dir>]"') },
584
+ }, async ({ path }) => {
585
+ try {
586
+ return ok({ ok: true, data: { path, files: await this.listFiles(path) } });
587
+ }
588
+ catch (e) {
589
+ return fail(e);
590
+ }
591
+ });
592
+ server.registerTool('file_exists', {
593
+ description: 'Check whether a file exists in an adapter file storage',
594
+ inputSchema: { path: zod_1.z.string().describe('Path as "<adapter>/<dir>/<file>"') },
595
+ }, async ({ path }) => {
596
+ try {
597
+ const { adapterName, fileName } = McpServer.parseFilePath(path);
598
+ const exists = await this.adapter.fileExistsAsync(adapterName, fileName, {
599
+ user: this.defaultUser,
600
+ });
601
+ return ok({ ok: true, data: { path, exists: !!exists } });
602
+ }
603
+ catch (e) {
604
+ return fail(e);
605
+ }
606
+ });
505
607
  // Always-on log writing (does not change states or objects).
506
608
  server.registerTool('write_log', {
507
609
  description: 'Write a message to the ioBroker log',
@@ -538,6 +640,73 @@ class McpServer {
538
640
  return fail(e);
539
641
  }
540
642
  });
643
+ server.registerTool('delete_object', {
644
+ description: 'Delete an ioBroker object (and optionally all its children). ' +
645
+ 'Be careful: deleting objects that were not created by the user can break adapters.',
646
+ inputSchema: {
647
+ id: zod_1.z.string().describe('Object ID'),
648
+ recursive: zod_1.z.boolean().optional().describe('Also delete all child objects'),
649
+ },
650
+ }, async ({ id, recursive }) => {
651
+ try {
652
+ await this.deleteObject(id, recursive);
653
+ return ok({ ok: true, data: { id, deleted: true } });
654
+ }
655
+ catch (e) {
656
+ return fail(e);
657
+ }
658
+ });
659
+ server.registerTool('create_state', {
660
+ description: 'Create a new state object (e.g. under "0_userdata.0."). Fails if the object already ' +
661
+ 'exists - use set_object to modify existing objects.',
662
+ inputSchema: {
663
+ id: zod_1.z.string().describe('Full state ID, e.g. "0_userdata.0.myState"'),
664
+ name: zod_1.z.string().optional().describe('Display name (defaults to the last ID segment)'),
665
+ type: zod_1.z
666
+ .enum(['boolean', 'number', 'string', 'array', 'object', 'mixed'])
667
+ .default('mixed')
668
+ .describe('Value type of the state'),
669
+ role: zod_1.z.string().default('state').describe('Role, e.g. switch.light, value.temperature'),
670
+ read: zod_1.z.boolean().default(true),
671
+ write: zod_1.z.boolean().default(true),
672
+ unit: zod_1.z.string().optional(),
673
+ min: zod_1.z.number().optional(),
674
+ max: zod_1.z.number().optional(),
675
+ step: zod_1.z.number().optional(),
676
+ def: zod_1.z.any().optional().describe('Initial value (written with ack=true)'),
677
+ desc: zod_1.z.string().optional().describe('Description'),
678
+ },
679
+ }, async (args) => {
680
+ try {
681
+ return ok({ ok: true, data: await this.createState(args) });
682
+ }
683
+ catch (e) {
684
+ return fail(e);
685
+ }
686
+ });
687
+ server.registerTool('create_scene', {
688
+ description: 'Create or update a scene for the ioBroker "scenes" adapter: a named collection of ' +
689
+ 'state/value pairs applied together (e.g. "movie night" dims lights and closes blinds). ' +
690
+ 'Activate the scene by setting its state to true. Requires an installed scene instance.',
691
+ inputSchema: {
692
+ name: zod_1.z.string().describe('Scene name, becomes part of the ID (e.g. "movie_night")'),
693
+ members: zod_1.z
694
+ .array(zod_1.z.object({
695
+ id: zod_1.z.string().describe('State ID to set'),
696
+ value: zod_1.z.any().describe('Value applied when the scene is activated'),
697
+ }))
698
+ .describe('State/value pairs that define the scene'),
699
+ instance: zod_1.z.string().optional().describe('Scene adapter instance (default "scene.0")'),
700
+ description: zod_1.z.string().optional(),
701
+ },
702
+ }, async (args) => {
703
+ try {
704
+ return ok({ ok: true, data: await this.createScene(args) });
705
+ }
706
+ catch (e) {
707
+ return fail(e);
708
+ }
709
+ });
541
710
  server.registerTool('write_file', {
542
711
  description: 'Write a file to an adapter file storage, e.g. "vis-2.0/main/vis-views.json"',
543
712
  inputSchema: {
@@ -554,6 +723,51 @@ class McpServer {
554
723
  return fail(e);
555
724
  }
556
725
  });
726
+ server.registerTool('delete_file', {
727
+ description: 'Delete a file from an adapter file storage',
728
+ inputSchema: { path: zod_1.z.string().describe('Path as "<adapter>/<dir>/<file>"') },
729
+ }, async ({ path }) => {
730
+ try {
731
+ const { adapterName, fileName } = McpServer.parseFilePath(path);
732
+ await this.adapter.delFileAsync(adapterName, fileName, { user: this.defaultUser });
733
+ return ok({ ok: true, data: { path, deleted: true } });
734
+ }
735
+ catch (e) {
736
+ return fail(e);
737
+ }
738
+ });
739
+ server.registerTool('rename_file', {
740
+ description: 'Rename or move a file/directory within the same adapter file storage, ' +
741
+ 'e.g. "vis-2.0/main/a.json" -> "vis-2.0/backup/a.json"',
742
+ inputSchema: {
743
+ path: zod_1.z.string().describe('Current path as "<adapter>/<dir>/<file>"'),
744
+ new_path: zod_1.z.string().describe('New path as "<adapter>/<dir>/<file>" (same adapter)'),
745
+ },
746
+ }, async ({ path, new_path }) => {
747
+ try {
748
+ await this.renameFile(path, new_path);
749
+ return ok({ ok: true, data: { path: new_path } });
750
+ }
751
+ catch (e) {
752
+ return fail(e);
753
+ }
754
+ });
755
+ server.registerTool('mkdir', {
756
+ description: 'Create a directory in an adapter file storage, e.g. "0_userdata.0/my-folder"',
757
+ inputSchema: { path: zod_1.z.string().describe('Path as "<adapter>/<dir>"') },
758
+ }, async ({ path }) => {
759
+ try {
760
+ const { adapterName, dirName } = McpServer.parseDirPath(path);
761
+ if (!dirName) {
762
+ throw new Error('Path must contain a directory after the adapter, e.g. "0_userdata.0/my-folder"');
763
+ }
764
+ await this.adapter.mkdirAsync(adapterName, dirName, { user: this.defaultUser });
765
+ return ok({ ok: true, data: { path } });
766
+ }
767
+ catch (e) {
768
+ return fail(e);
769
+ }
770
+ });
557
771
  }
558
772
  // --- Resources: expose states and objects via the canonical ioBroker URI scheme ---
559
773
  // States as `iobstate://<id>`, objects as `iobobject://<id>`. On change the server pushes a
@@ -619,20 +833,31 @@ class McpServer {
619
833
  // ---------------------------------------------------------------------
620
834
  // Tool implementations (return plain data; the wrappers serialize them)
621
835
  // ---------------------------------------------------------------------
836
+ /** Build the result entry for one state. */
837
+ static stateEntry(id, state) {
838
+ if (!state) {
839
+ return { id, value: null, ack: false, ts: Date.now() };
840
+ }
841
+ const entry = { id, value: state.val, ack: state.ack, ts: state.ts };
842
+ if (state.lc !== state.ts) {
843
+ entry.lc = state.lc;
844
+ }
845
+ return entry;
846
+ }
622
847
  async getStates(ids) {
623
848
  const states = [];
624
849
  for (const id of ids) {
625
850
  try {
626
- const state = await this.adapter.getForeignStateAsync(id, { user: this.defaultUser });
627
- if (state) {
628
- const entry = { id, value: state.val, ack: state.ack, ts: state.ts };
629
- if (state.lc !== state.ts) {
630
- entry.lc = state.lc;
851
+ if (id.includes('*')) {
852
+ // Wildcard pattern: expand to all matching states.
853
+ const matches = await this.adapter.getForeignStatesAsync(id, { user: this.defaultUser });
854
+ for (const matchId of Object.keys(matches || {})) {
855
+ states.push(McpServer.stateEntry(matchId, matches[matchId]));
631
856
  }
632
- states.push(entry);
633
857
  }
634
858
  else {
635
- states.push({ id, value: null, ack: false, ts: Date.now() });
859
+ const state = await this.adapter.getForeignStateAsync(id, { user: this.defaultUser });
860
+ states.push(McpServer.stateEntry(id, state));
636
861
  }
637
862
  }
638
863
  catch (e) {
@@ -647,6 +872,20 @@ class McpServer {
647
872
  }
648
873
  return states;
649
874
  }
875
+ /** Write multiple states; failures of single states are reported per item and do not abort the rest. */
876
+ async setStates(items) {
877
+ const results = [];
878
+ for (const item of items) {
879
+ try {
880
+ const written = await this.setState(item.id, item.value, item.ack ?? false);
881
+ results.push({ id: item.id, value: written });
882
+ }
883
+ catch (e) {
884
+ results.push({ id: item.id, error: e instanceof Error ? e.message : String(e) });
885
+ }
886
+ }
887
+ return results;
888
+ }
650
889
  getLogs(params) {
651
890
  return new Promise((resolve, reject) => {
652
891
  const message = { data: { size: params.limit || 200 } };
@@ -697,17 +936,22 @@ class McpServer {
697
936
  };
698
937
  }
699
938
  async searchObjects(params) {
700
- const { query = '', role, room, limit = 100 } = params;
939
+ const { query = '', type, role, room, adapter, limit = 100 } = params;
701
940
  const result = await this.adapter.getObjectListAsync({
702
941
  startkey: '',
703
942
  endkey: '\u9999',
704
943
  }, { sorted: true, user: this.defaultUser });
705
944
  const allObjects = result.rows;
706
945
  const roomMembers = room ? await this.getEnumMembers('enum.rooms.', room) : null;
946
+ const needle = query.toLowerCase();
707
947
  const results = [];
708
948
  for (const obj of allObjects) {
709
949
  const o = obj.value;
710
- if (query && !obj.value._id.toLowerCase().includes(query.toLowerCase())) {
950
+ const name = this.getName(o?.common?.name);
951
+ if (needle && !obj.value._id.toLowerCase().includes(needle) && !name.toLowerCase().includes(needle)) {
952
+ continue;
953
+ }
954
+ if (type && o?.type !== type) {
711
955
  continue;
712
956
  }
713
957
  if (role && o?.common?.role !== role) {
@@ -716,12 +960,16 @@ class McpServer {
716
960
  if (roomMembers && !roomMembers.includes(obj.value._id)) {
717
961
  continue;
718
962
  }
963
+ const sourceAdapter = obj.value._id.match(/^([^.]+\.\d+)/)?.[1] || '';
964
+ if (adapter && sourceAdapter !== adapter) {
965
+ continue;
966
+ }
719
967
  results.push({
720
968
  id: obj.value._id,
721
969
  type: o?.type || 'state',
722
970
  role: o?.common?.role || '',
723
- name: this.getName(o?.common?.name),
724
- adapter: obj.value._id.match(/^([^.]+\.\d+)/)?.[1] || '',
971
+ name,
972
+ adapter: sourceAdapter,
725
973
  });
726
974
  if (results.length >= limit) {
727
975
  break;
@@ -750,6 +998,12 @@ class McpServer {
750
998
  if (params.to) {
751
999
  options.end = new Date(params.to).getTime();
752
1000
  }
1001
+ if (params.percentile !== undefined) {
1002
+ options.percentile = params.percentile;
1003
+ }
1004
+ if (params.quantile !== undefined) {
1005
+ options.quantile = params.quantile;
1006
+ }
753
1007
  const step = params.interval ? this.parseInterval(params.interval) : undefined;
754
1008
  if (step) {
755
1009
  options.step = step;
@@ -781,6 +1035,22 @@ class McpServer {
781
1035
  }
782
1036
  return result;
783
1037
  }
1038
+ /** List installed adapters (system.adapter.<name> objects, no instances). */
1039
+ async listAdapters(language) {
1040
+ const lang = language || this.language;
1041
+ const view = await this.adapter.getObjectViewAsync('system', 'adapter', { startkey: 'system.adapter.', endkey: 'system.adapter.香' }, { user: this.defaultUser });
1042
+ return view.rows.map(row => {
1043
+ const common = (row.value?.common || {});
1044
+ return {
1045
+ name: common.name || row.id.replace('system.adapter.', ''),
1046
+ version: common.version || '',
1047
+ title: getText(common.titleLang || common.title, lang),
1048
+ description: getText(common.desc, lang),
1049
+ keywords: common.keywords || [],
1050
+ mode: common.mode || '',
1051
+ };
1052
+ });
1053
+ }
784
1054
  async listHosts() {
785
1055
  const objs = await this.adapter.getForeignObjectsAsync('system.host.*', 'host', { user: this.defaultUser });
786
1056
  const result = [];
@@ -918,6 +1188,26 @@ class McpServer {
918
1188
  const data = base64 ? Buffer.from(content, 'base64') : content;
919
1189
  await this.adapter.writeFileAsync(adapterName, fileName, data, { user: this.defaultUser });
920
1190
  }
1191
+ /** List a directory in an adapter file storage. */
1192
+ async listFiles(path) {
1193
+ const { adapterName, dirName } = McpServer.parseDirPath(path);
1194
+ const entries = await this.adapter.readDirAsync(adapterName, dirName, { user: this.defaultUser });
1195
+ return (entries || []).map(entry => ({
1196
+ file: entry.file,
1197
+ isDir: !!entry.isDir,
1198
+ size: entry.stats?.size,
1199
+ modified: entry.modifiedAt,
1200
+ }));
1201
+ }
1202
+ /** Rename/move a file within the same adapter file storage. */
1203
+ async renameFile(path, newPath) {
1204
+ const from = McpServer.parseFilePath(path);
1205
+ const to = McpServer.parseFilePath(newPath);
1206
+ if (from.adapterName !== to.adapterName) {
1207
+ throw new Error('Renaming across adapter storages is not supported; both paths must share the adapter');
1208
+ }
1209
+ await this.adapter.renameAsync(from.adapterName, from.fileName, to.fileName, { user: this.defaultUser });
1210
+ }
921
1211
  /** Create or update an object, merging common/native into an existing object (n8n `setIobObject`). */
922
1212
  async setObject(id, obj) {
923
1213
  let existing = await this.adapter.getForeignObjectAsync(id, { user: this.defaultUser });
@@ -946,6 +1236,99 @@ class McpServer {
946
1236
  }
947
1237
  return { adapterName, fileName };
948
1238
  }
1239
+ /** Split a directory path "<adapter>[/<dir>]" into adapter name and (possibly empty) directory. */
1240
+ static parseDirPath(path) {
1241
+ const [adapterName, ...rest] = path.replace(/^\//, '').replace(/\/$/, '').split('/');
1242
+ if (!adapterName) {
1243
+ throw new Error('Path must start with an adapter name, e.g. "vis-2.0/main" or "0_userdata.0"');
1244
+ }
1245
+ return { adapterName, dirName: rest.join('/') };
1246
+ }
1247
+ /** Delete an object, optionally with all its children. */
1248
+ async deleteObject(id, recursive) {
1249
+ const existing = await this.adapter.getForeignObjectAsync(id, { user: this.defaultUser });
1250
+ if (!existing) {
1251
+ throw new Error(`Object "${id}" does not exist`);
1252
+ }
1253
+ await this.adapter.delForeignObjectAsync(id, { user: this.defaultUser, recursive: !!recursive });
1254
+ }
1255
+ /** Create a new state object; refuses to overwrite an existing object. */
1256
+ async createState(params) {
1257
+ const existing = await this.adapter.getForeignObjectAsync(params.id, { user: this.defaultUser });
1258
+ if (existing) {
1259
+ throw new Error(`Object "${params.id}" already exists - use set_object to modify it`);
1260
+ }
1261
+ const common = {
1262
+ name: params.name || params.id.split('.').pop() || params.id,
1263
+ type: params.type || 'mixed',
1264
+ role: params.role || 'state',
1265
+ read: params.read !== false,
1266
+ write: params.write !== false,
1267
+ };
1268
+ if (params.unit !== undefined) {
1269
+ common.unit = params.unit;
1270
+ }
1271
+ if (params.min !== undefined) {
1272
+ common.min = params.min;
1273
+ }
1274
+ if (params.max !== undefined) {
1275
+ common.max = params.max;
1276
+ }
1277
+ if (params.step !== undefined) {
1278
+ common.step = params.step;
1279
+ }
1280
+ if (params.desc !== undefined) {
1281
+ common.desc = params.desc;
1282
+ }
1283
+ await this.adapter.setForeignObjectAsync(params.id, { type: 'state', common, native: {} }, { user: this.defaultUser });
1284
+ if (params.def !== undefined) {
1285
+ const coerced = McpServer.coerceValue(params.def, common.type);
1286
+ await this.adapter.setForeignStateAsync(params.id, coerced, true, { user: this.defaultUser });
1287
+ }
1288
+ return { id: params.id };
1289
+ }
1290
+ /** Create or update a scene object for the ioBroker "scenes" adapter. */
1291
+ async createScene(params) {
1292
+ const instance = params.instance || 'scene.0';
1293
+ const instanceObj = await this.adapter.getForeignObjectAsync(`system.adapter.${instance}`, {
1294
+ user: this.defaultUser,
1295
+ });
1296
+ if (!instanceObj) {
1297
+ throw new Error(`Scene adapter instance "${instance}" is not installed. Install the ioBroker "scenes" adapter first.`);
1298
+ }
1299
+ // Scene IDs may not contain the characters that are forbidden in ioBroker IDs.
1300
+ const sceneName = params.name.replace(/[\s.*?"'[\]]/g, '_');
1301
+ const id = `${instance}.${sceneName}`;
1302
+ const sceneObj = {
1303
+ type: 'state',
1304
+ common: {
1305
+ name: params.name,
1306
+ type: 'boolean',
1307
+ role: 'scene.state',
1308
+ desc: params.description || '',
1309
+ read: true,
1310
+ write: true,
1311
+ def: false,
1312
+ engine: `system.adapter.${instance}`,
1313
+ enabled: true,
1314
+ },
1315
+ native: {
1316
+ onTrue: { trigger: {}, cron: null, astro: null },
1317
+ onFalse: { enabled: false, trigger: {}, cron: null, astro: null },
1318
+ members: params.members.map(member => ({
1319
+ id: member.id,
1320
+ setIfTrue: member.value,
1321
+ setIfFalse: null,
1322
+ stopAllDelays: true,
1323
+ delay: 0,
1324
+ disabled: false,
1325
+ })),
1326
+ burstInterval: 0,
1327
+ },
1328
+ };
1329
+ await this.adapter.setForeignObjectAsync(id, sceneObj, { user: this.defaultUser });
1330
+ return { id, members: params.members.length };
1331
+ }
949
1332
  // --- helpers ---
950
1333
  /** Resolve the member ids of a room/function enum matched by id or (localized) name. */
951
1334
  async getEnumMembers(prefix, nameOrId) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/lib/mcp-server.ts"],"names":[],"mappings":";;;;;AAAA,sDAAgG;AAChG,6CAAyC;AACzC,sDAAyB;AACzB,6BAAwB;AACxB,oEAAsG;AACtG,0FAAmG;AACnG,iEAI4C;AAC5C,uCAA8D;AAC9D,uCAAwC;AAKxC,MAAM,WAAW,GAAG,cAAc,CAAC;AACnC,MAAM,cAAc,GAAG,OAAO,CAAC;AAQ/B,6FAA6F;AAC7F,MAAM,OAAO,GAA4D;IACrE,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,OAAO;CACf,CAAC;AACF,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAEpC,6CAA6C;AAC7C,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAU,CAAC;AAEjG,0EAA0E;AAC1E,SAAS,OAAO,CAAC,IAA6C,EAAE,QAA4B;IACxF,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;AAC3C,CAAC;AAoDD,gFAAgF;AAChF,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,wEAAwE;AACxE,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,MAAqB,SAAS;IACT,OAAO,CAAa;IACpB,GAAG,CAAU;IAC9B,2CAA2C;IAC1B,QAAQ,GAAmC,EAAE,CAAC;IAC/D,0GAA0G;IACzF,kBAAkB,GAA2B,EAAE,CAAC;IACjE,qGAAqG;IACpF,SAAS,GAA0B,EAAE,CAAC;IAC/C,MAAM,CAAmB;IAChB,SAAS,CAAS;IAClB,SAAS,CAAU;IACnB,YAAY,CAAS;IACtC,uEAAuE;IACtD,WAAW,CAA0B;IACtD,oEAAoE;IACnD,QAAQ,CAAqB;IAE9C,YACI,MAAgC,EAChC,WAMC,EACD,OAAmB,EACnB,gBAAgD,EAChD,GAAY;QAEZ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAE,gBAAgB,CAAC,MAA2B,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAChG,IAAI,CAAC,SAAS,GAAG,gBAAgB;YAC7B,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,gBAAgB,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAEtE,2EAA2E;QAC3E,sFAAsF;QACtF,mFAAmF;QACnF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,IAAI,OAAO,CAAW,CAAC;QAC1F,IAAI,CAAC,WAAW,GAAG,CACf,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,OAAO,EAAE,CAC/C,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,IAAI,IAAI,CAAC;QAE7C,wFAAwF;QACxF,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,KAAK,IAAI,CAAC;QAEvE,2FAA2F;QAC3F,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAEO,UAAU;QACd,qFAAqF;QACrF,yFAAyF;QACzF,yFAAyF;QACzF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/E,qFAAqF;QACrF,wFAAwF;QACxF,MAAM,UAAU,GAAG,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAElD,2FAA2F;QAC3F,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,QAAQ,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;YACxE,GAAG,CAAC,IAAI,CAAC;gBACL,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;gBACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;aAC9C,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,yFAAyF;QACzF,yEAAyE;QACzE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,IAAc,EAAE,IAAkB,EAAE,EAAE;gBAC9D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClE,IAAI,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;gBAC/C,GAAG,CAAC,IAAI,CAAC;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,cAAc;oBACvB,MAAM,EAAE,SAAS;oBACjB,WAAW,EAAE,MAAM;iBACtB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;gBACvD,GAAG,CAAC,IAAI,CAAC;oBACL,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,cAAc;oBACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAC1B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;iBACzB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;YAC/D,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;YAClD,KAAK,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;YACrD,KAAK,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,4FAA4F;QAC5F,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;gBACzC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAU,EAAE,IAAa,EAAE,GAAa,EAAE,KAAmB,EAAE,EAAE;gBAC3E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnF,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,WAAW;QACP,OAAO;YACH,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,qBAAqB;YAC1B,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,KAAK;SACb,CAAC;IACN,CAAC;IAED,sEAAsE;IAC9D,KAAK,CAAC,aAAa,CAAC,GAAY,EAAE,GAAa;QACnD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAC;QACtE,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5E,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,+DAA+D;YAC/D,IAAI,SAAS,IAAI,CAAC,IAAA,8BAAmB,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,2CAA2C,EAAE;oBAC7E,EAAE,EAAE,IAAI;iBACX,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YAEhD,SAAS,GAAG,IAAI,iDAA6B,CAAC;gBAC1C,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAA,wBAAU,GAAE;gBACtC,oBAAoB,EAAE,CAAC,GAAW,EAAE,EAAE;oBAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,SAAU,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;oBACtE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;gBAC9D,CAAC;aACJ,CAAC,CAAC;YAEH,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;gBACrB,MAAM,GAAG,GAAG,SAAU,CAAC,SAAS,CAAC;gBACjC,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;gBACzD,CAAC;YACL,CAAC,CAAC;YAEF,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,iFAAiF;IACzE,KAAK,CAAC,uBAAuB,CAAC,GAAY,EAAE,GAAa;QAC7D,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAC;QACtE,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACtD,OAAO;QACX,CAAC;QACD,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,EAAU,EAAE,MAAyC;QAC7D,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,EAAU,EAAE,IAAwC;QAC7D,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,yFAAyF;IACjF,iBAAiB,CAAC,IAAwB,EAAE,EAAU;QAC1D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACnC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;oBACjC,SAAS;gBACb,CAAC;gBACD,MAAM,MAAM,GAAG,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;oBAChD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;wBACzD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,GAAG,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC9E,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,kGAAkG;IAC1F,KAAK,GAAG,CAAC,OAA4B,EAAQ,EAAE;QACnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;QACtE,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACnC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;oBAClC,SAAS;gBACb,CAAC;gBACD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;gBAC7D,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;oBAC9C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;wBACzD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,GAAG,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC9E,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,qFAAqF;IAC7E,OAAO,CAAC,GAAW;QACvB,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC/F,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC;QAC9D,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACnD,CAAC;IAED,iGAAiG;IACzF,KAAK,CAAC,YAAY,CAAC,GAAW;QAClC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;iBAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC;QACL,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,qGAAqG;IAC7F,KAAK,CAAC,cAAc,CAAC,GAAW;QACpC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,OAAO;QACX,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;iBAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC;IACL,CAAC;IAED,8DAA8D;IACtD,KAAK,CAAC,cAAc,CAAC,OAAuB;QAChD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,aAA0B;QAC3C,MAAM,MAAM,GAAG,IAAI,kBAAY,CAC3B,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,EAC9C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAClE,CAAC;QAEF,MAAM,EAAE,GAAG,CAAC,IAAa,EAAc,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACxG,MAAM,IAAI,GAAG,CAAC,KAAc,EAAc,EAAE;YACxC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;YACpD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC/G,CAAC,CAAC;QAEF,MAAM,CAAC,YAAY,CACf,YAAY,EACZ;YACI,WAAW,EAAE,sDAAsD;YACnE,WAAW,EAAE,EAAE,GAAG,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;SAC3E,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACd,IAAI,CAAC;gBACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC5B,MAAM,CAAC,YAAY,CACf,WAAW,EACX;gBACI,WAAW,EACP,2FAA2F;gBAC/F,WAAW,EAAE;oBACT,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACnC,KAAK,EAAE,OAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;oBAChE,OAAO,EAAE,OAAC;yBACL,MAAM,CAAC,EAAE,GAAG,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;yBAC3F,QAAQ,EAAE;iBAClB;aACJ,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC7B,IAAI,CAAC;oBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;oBACtE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC1D,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;YACL,CAAC,CACJ,CAAC;QACN,CAAC;QAED,MAAM,CAAC,YAAY,CACf,UAAU,EACV;YACI,WAAW,EAAE,sBAAsB;YACnC,WAAW,EAAE;gBACT,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACrE,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;gBACpC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;gBACpC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aACjC;SACJ,EACD,KAAK,EAAC,IAAI,EAAC,EAAE;YACT,IAAI,CAAC;gBACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACtE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,0CAA0C,EAAE,EAAE,KAAK,IAAI,EAAE;YACvG,IAAI,CAAC;gBACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB;YACI,WAAW,EAAE,uCAAuC;YACpD,WAAW,EAAE;gBACT,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;gBACnD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC3B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;gBAC3B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;aACtC;SACJ,EACD,KAAK,EAAC,IAAI,EAAC,EAAE;YACT,IAAI,CAAC;gBACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,MAAM,CAAC,YAAY,CACf,cAAc,EACd;YACI,WAAW,EACP,iFAAiF;gBACjF,0EAA0E;YAC9E,WAAW,EAAE;gBACT,QAAQ,EAAE,OAAC;qBACN,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;qBAC3E,QAAQ,EAAE;qBACV,QAAQ,CAAC,4EAA4E,CAAC;gBAC3F,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;aACvF;SACJ,EACD,KAAK,EAAC,IAAI,EAAC,EAAE;YACT,IAAI,CAAC;gBACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3E,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,MAAM,CAAC,YAAY,CACf,eAAe,EACf;YACI,WAAW,EAAE,iEAAiE;YAC9E,WAAW,EAAE;gBACT,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;gBACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;gBAC5D,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBACxD,GAAG,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC/D,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;gBAC9E,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;aACxC;SACJ,EACD,KAAK,EAAC,IAAI,EAAC,EAAE;YACT,IAAI,CAAC;gBACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB,EAAE,WAAW,EAAE,8CAA8C,EAAE,EAC/D,KAAK,IAAI,EAAE;YACP,IAAI,CAAC;gBACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7E,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,2CAA2C,EAAE,EAAE,KAAK,IAAI,EAAE;YACvG,IAAI,CAAC;gBACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG;YACd,QAAQ,EAAE,OAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YACxG,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;SAC9F,CAAC;QAEF,MAAM,CAAC,YAAY,CACf,YAAY,EACZ,EAAE,WAAW,EAAE,+DAA+D,EAAE,WAAW,EAAE,SAAS,EAAE,EACxG,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;YAC9B,IAAI,CAAC;gBACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YACjG,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB;YACI,WAAW,EAAE,uEAAuE;YACpF,WAAW,EAAE,SAAS;SACzB,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;YAC9B,IAAI,CAAC;gBACD,OAAO,EAAE,CAAC;oBACN,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;iBAC9E,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,MAAM,CAAC,YAAY,CACf,YAAY,EACZ;YACI,WAAW,EAAE,yCAAyC;YACtD,WAAW,EAAE,EAAE,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC,EAAE;SACrG,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;YACb,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACxF,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,MAAM,CAAC,YAAY,CACf,WAAW,EACX;YACI,WAAW,EAAE,8EAA8E;YAC3F,WAAW,EAAE;gBACT,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;gBAC7D,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;aAClF;SACJ,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;YACvB,IAAI,CAAC;gBACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,6DAA6D;QAC7D,MAAM,CAAC,YAAY,CACf,WAAW,EACX;YACI,WAAW,EAAE,qCAAqC;YAClD,WAAW,EAAE;gBACT,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;gBACnB,KAAK,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;aACpE;SACJ,EACD,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAuB,EAAE;YACxC,IAAI,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;gBACjC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;YACvE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,wFAAwF;QACxF,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAChC,MAAM,CAAC,YAAY,CACf,YAAY,EACZ;gBACI,WAAW,EACP,oFAAoF;oBACpF,4EAA4E;gBAChF,WAAW,EAAE;oBACT,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;oBACpC,GAAG,EAAE,OAAC;yBACD,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,GAAG,EAAE,CAAC;yBAC3B,QAAQ,CAAC,4EAA4E,CAAC;iBAC9F;aACJ,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;gBAClB,IAAI,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,GAA+B,CAAC,CAAC;oBACzE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC1C,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;YACL,CAAC,CACJ,CAAC;YAEF,MAAM,CAAC,YAAY,CACf,YAAY,EACZ;gBACI,WAAW,EAAE,6EAA6E;gBAC1F,WAAW,EAAE;oBACT,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;oBAC7D,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;oBAChF,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;iBACpF;aACJ,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;gBAChC,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC5C,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5C,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;YACL,CAAC,CACJ,CAAC;QACN,CAAC;QAED,qFAAqF;QACrF,4FAA4F;QAC5F,2FAA2F;QAC3F,MAAM,CAAC,gBAAgB,CACnB,OAAO,EACP,IAAI,yBAAgB,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC5D;YACI,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,6DAA6D;YAC1E,QAAQ,EAAE,kBAAkB;SAC/B,EACD,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;YACrB,MAAM,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACtF,MAAM,IAAI,GAAG,KAAK;gBACd,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;gBAChF,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YACxB,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvG,CAAC,CACJ,CAAC;QAEF,MAAM,CAAC,gBAAgB,CACnB,QAAQ,EACR,IAAI,yBAAgB,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC7D;YACI,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,yDAAyD;YACtE,QAAQ,EAAE,kBAAkB;SAC/B,EACD,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;YACrB,MAAM,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACrF,OAAO;gBACH,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;aACjG,CAAC;QACN,CAAC,CACJ,CAAC;QAEF,+FAA+F;QAC/F,gGAAgG;QAChG,MAAM,CAAC,gBAAgB,CACnB,KAAK,EACL,IAAI,yBAAgB,CAAC,GAAG,cAAc,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EACtE;YACI,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAE,kEAAkE;YAC/E,QAAQ,EAAE,kBAAkB;SAC/B,EACD,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;YACf,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC;YACrE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS;iBACtB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;iBAClD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACrF,OAAO,OAAO,CAAC,OAAO,CAAC;gBACnB,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;aACtG,CAAC,CAAC;QACP,CAAC,CACJ,CAAC;QAEF,0FAA0F;QAC1F,wFAAwF;QACxF,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;YACpE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,mCAAwB,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE;YACtE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YAC/B,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IAEhE,KAAK,CAAC,SAAS,CAAC,GAAa;QACjC,MAAM,MAAM,GAA8B,EAAE,CAAC;QAC7C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACtF,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,KAAK,GAA4B,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;oBAC9F,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;wBACxB,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;oBACxB,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACjE,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC;oBACR,EAAE;oBACF,KAAK,EAAE,IAAI;oBACX,GAAG,EAAE,KAAK;oBACV,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;oBACd,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;iBACpD,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,OAAO,CAAC,MAKf;QACG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,OAAO,GAA4B,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,EAAE,CAAC;YACjF,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAgC,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACvE,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAgC,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YACtE,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,MAAW,EAAE,EAAE;gBACnF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,yBAAyB,CAAC,CAAC,CAAC;oBAC9D,OAAO;gBACX,CAAC;gBACD,IAAI,IAAI,GAAU,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACpC,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1C,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,OAAO,CACH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACb,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,QAAQ;oBACnB,MAAM,EAAE,GAAG,CAAC,IAAI;oBAChB,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;iBAC1B,CAAC,CAAC,CACN,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,aAAa;QACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;YACzF,IAAI,EAAE,IAAI,CAAC,WAAW;SACzB,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,OAAO,EAAE,MAAM,EAAE,gBAAgB,IAAI,SAAS,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,UAAU,EAAE;YAC3F,IAAI,EAAE,IAAI,CAAC,WAAW;SACzB,CAAC,CAAC;QAEH,OAAO;YACH,aAAa,EAAE,mBAAmB;YAClC,QAAQ,EAAE,iBAAE,CAAC,QAAQ,EAAE;YACvB,QAAQ,EAAE,iBAAE,CAAC,QAAQ,EAAE;YACvB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YAClC,QAAQ,EAAE,UAAU,CAAC,CAAC,iBAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvD,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,EAAE;YACxD,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,MAAM,EAAE,CAAC;YACnC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM;SACpD,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAK3B;QACG,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAChD;YACI,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,QAAQ;SACnB,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAC3C,CAAC;QACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEjF,MAAM,OAAO,GAA8B,EAAE,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;YACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACtE,SAAS;YACb,CAAC;YACD,IAAI,IAAI,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnC,SAAS;YACb,CAAC;YACD,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtD,SAAS;YACb,CAAC;YACD,OAAO,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG;gBACjB,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,OAAO;gBACxB,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;gBAC3B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC;gBACnC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;aAC3D,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC1B,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAAwD;QAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,IAAA,gCAAsB,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3F,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAO1B;QACG,MAAM,OAAO,GAA+B;YACxC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,MAAM;YACjD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;SAC9B,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACpD,CAAC;QACD,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAChD,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,4FAA4F;QAC3F,OAAmC,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAE7D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,aAAa;QACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,UAAU,EAAE;YACnF,IAAI,EAAE,IAAI,CAAC,WAAW;SACzB,CAAC,CAAC;QACH,MAAM,MAAM,GAA8B,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;YACrD,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,MAAM,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1G,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,MAAM,YAAY,EAAE;gBAC7E,IAAI,EAAE,IAAI,CAAC,WAAW;aACzB,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC;gBACR,EAAE;gBACF,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO;gBAC/B,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG;gBACxB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;gBAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE;gBACnC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,IAAI,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;aACpE,CAAC,CAAC;QACP,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,SAAS;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5G,MAAM,MAAM,GAA8B,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;YACrD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,MAAM,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1G,MAAM,CAAC,IAAI,CAAC;gBACR,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;gBACtC,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG;gBACxB,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,IAAI,EAAE;gBAClD,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,IAAI,EAAE;aAC5C,CAAC,CAAC;QACP,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,SAAS,CACnB,IAA2B,EAC3B,QAA6B,EAC7B,SAAmB;QAEnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC/C,QAAQ,EACR,MAAM,EACN,EAAE,QAAQ,EAAE,QAAQ,IAAI,GAAG,EAAE,MAAM,EAAE,QAAQ,IAAI,IAAI,EAAE,EACvD,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAC7B,CAAC;QAEF,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,8EAA8E;QAC9E,MAAM,KAAK,GAAmD,EAAE,CAAC;QAEjE,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;YAC1B,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAc,CAAC;YACnD,MAAM,OAAO,GAAiB;gBAC1B,EAAE,EAAE,OAAO,CAAC,GAAG;gBACf,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE;gBACrG,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBACzC,KAAK,EAAE,EAAE;aACZ,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAErB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gBACxC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACpB,IAAI,CAAC;wBACD,KAAK,CAAC,MAAM,CAAC;4BACT,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC;oBAChG,CAAC;oBAAC,MAAM,CAAC;wBACL,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;oBAC1B,CAAC;oBACD,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxB,CAAC;gBACD,IAAI,GAAG,EAAE,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAc,CAAC;oBAC1C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;wBACf,EAAE,EAAE,MAAM;wBACV,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE;wBACtF,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;wBACpC,SAAS,EAAE,CAAC,CAAC,IAAI;wBACjB,GAAG,EAAE,CAAC,CAAC,GAAG;wBACV,GAAG,EAAE,CAAC,CAAC,GAAG;wBACV,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;qBACf,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,8FAA8F;IACtF,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,KAAc,EAAE,GAAY;QAC3D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACrF,MAAM,SAAS,GAAI,GAAG,EAAE,MAAgC,EAAE,IAAI,CAAC;QAC/D,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACtF,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,kEAAkE;IAC1D,MAAM,CAAC,WAAW,CAAC,KAAc,EAAE,IAAqC;QAC5E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,KAA4B,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,KAA4B,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,CAAC,CAAC,KAAK,CAAC;YACnB,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,CAAC;YAC3D,CAAC;YACD,OAAO,KAA4B,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1D,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,KAA4B,CAAC;IACxC,CAAC;IAED,gDAAgD;IACxC,KAAK,CAAC,QAAQ,CAClB,IAAY,EACZ,MAAgB;QAEhB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACjG,MAAM,IAAI,GAAI,IAAkC,EAAE,IAAI,CAAC;QACvD,MAAM,QAAQ,GAAI,IAA8B,EAAE,QAAQ,CAAC;QAC3D,IAAI,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO;gBACH,IAAI;gBACJ,QAAQ;gBACR,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAChD,CAAC;QACN,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC/D,CAAC;IAED,+CAA+C;IACvC,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAe,EAAE,MAAgB;QACnE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,IAAI,GAAoB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAChF,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,sGAAsG;IAC9F,KAAK,CAAC,SAAS,CAAC,EAAU,EAAE,GAA6B;QAC7D,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACxF,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACb,QAAQ,CAAC,MAAM,GAAG,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAA2B,CAAC;YACrF,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACb,QAAQ,CAAC,MAAM,GAAG,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YAC5D,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,QAAQ,GAAG,GAAsB,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,kFAAkF;IAC1E,MAAM,CAAC,aAAa,CAAC,IAAY;QACrC,MAAM,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;QAC3G,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED,kBAAkB;IAElB,wFAAwF;IAChF,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,QAAgB;QACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1G,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YAClD,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;gBAC1F,OAAQ,GAAG,EAAE,MAAM,EAAE,OAAoB,IAAI,EAAE,CAAC;YACpD,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,8EAA8E;IACtE,OAAO,CAAC,IAA6C;QACzD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IAED,mEAAmE;IAC3D,aAAa,CAAC,QAAgB;QAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACjD,IAAI,CAAC,CAAC,EAAE,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAE,CAAC;QACtF,OAAO,KAAK,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,MAAM;QACF,IAAI,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACL,SAAS;QACb,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC;gBACD,KAAK,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;QACL,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAClD,CAAC;CACJ;AAjnCD,4BAinCC"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/lib/mcp-server.ts"],"names":[],"mappings":"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"}
package/dist/main.js CHANGED
@@ -9,6 +9,8 @@ const express_1 = __importDefault(require("express"));
9
9
  const mcp_server_1 = __importDefault(require("./lib/mcp-server"));
10
10
  class Mcp extends adapter_core_1.Adapter {
11
11
  webServer;
12
+ /** Pending self-terminate timer used when running embedded in a web instance. */
13
+ terminateTimer;
12
14
  constructor(options = {}) {
13
15
  super({
14
16
  ...options,
@@ -26,6 +28,10 @@ class Mcp extends adapter_core_1.Adapter {
26
28
  }
27
29
  onUnload(callback) {
28
30
  try {
31
+ if (this.terminateTimer) {
32
+ this.clearTimeout(this.terminateTimer);
33
+ this.terminateTimer = undefined;
34
+ }
29
35
  void this.setState('info.connection', false, true);
30
36
  this.log.info(`terminating http${this.config.secure ? 's' : ''} server on port ${this.config.port}`);
31
37
  if (this.webServer?.mcpServer) {
@@ -97,13 +103,14 @@ class Mcp extends adapter_core_1.Adapter {
97
103
  this.log.error(`Cannot start server on ${this.config.bind || '0.0.0.0'}:${serverPort}: ${e}`);
98
104
  }
99
105
  if (!serverListening) {
100
- this.terminate ? this.terminate(adapter_core_1.EXIT_CODES.ADAPTER_REQUESTED_TERMINATION) : process.exit(1);
106
+ this.terminate?.(adapter_core_1.EXIT_CODES.ADAPTER_REQUESTED_TERMINATION);
101
107
  }
102
108
  });
103
109
  this.getPort(this.config.port, !this.config.bind || this.config.bind === '0.0.0.0' ? undefined : this.config.bind || undefined, port => {
104
110
  if (port !== this.config.port) {
105
111
  this.log.error(`port ${this.config.port} already in use`);
106
- process.exit(1);
112
+ this.terminate?.(adapter_core_1.EXIT_CODES.ADAPTER_REQUESTED_TERMINATION);
113
+ return;
107
114
  }
108
115
  serverPort = port;
109
116
  this.webServer.server.listen(port, !this.config.bind || this.config.bind === '0.0.0.0' ? undefined : this.config.bind || undefined, async () => {
@@ -118,7 +125,11 @@ class Mcp extends adapter_core_1.Adapter {
118
125
  if (this.config.webInstance) {
119
126
  console.log('Adapter runs as a part of web service');
120
127
  this.log.warn('Adapter runs as a part of web service');
121
- this.setForeignState(`system.adapter.${this.namespace}.alive`, false, true, () => setTimeout(() => this.terminate(adapter_core_1.EXIT_CODES.ADAPTER_REQUESTED_TERMINATION), 1000));
128
+ this.setForeignState(`system.adapter.${this.namespace}.alive`, false, true, () => {
129
+ // Tracked timer so onUnload can cancel it; otherwise an early unload would
130
+ // race with terminate() and leave a dangling timer behind.
131
+ this.terminateTimer = this.setTimeout(() => this.terminate(adapter_core_1.EXIT_CODES.ADAPTER_REQUESTED_TERMINATION), 1000);
132
+ });
122
133
  }
123
134
  else {
124
135
  if (this.config.secure) {
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/io-package.json CHANGED
@@ -1,9 +1,22 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "mcp",
4
- "version": "0.1.3",
4
+ "version": "0.2.0",
5
5
  "news": {
6
- "0.1.3": {
6
+ "0.2.0": {
7
+ "en": "Many changes: see the previous changelog entry",
8
+ "de": "Viele Änderungen: siehe den vorherigen Changelog-Eintrag",
9
+ "ru": "Много изменений: см. предыдущую запись Changelog",
10
+ "pt": "Muitas alterações: veja o item anterior do changelog",
11
+ "nl": "Veel wijzigingen: zie het vorige wijzigingslog-item",
12
+ "fr": "Nombreux changements : voir l'entrée précédente du journal des changements",
13
+ "it": "Molte modifiche: vedi la precedente voce changelog",
14
+ "es": "Muchos cambios: ver la entrada de cambio anterior",
15
+ "pl": "Wiele zmian: zobacz poprzedni wpis changelog",
16
+ "uk": "Багато змін: див. запис попередньої зміни",
17
+ "zh-cn": "许多更改: 参见上一个更改日志条目"
18
+ },
19
+ "0.1.4": {
7
20
  "en": "Initial development",
8
21
  "de": "Entwicklung",
9
22
  "ru": "Начальное развитие",
package/manifest.json CHANGED
@@ -19,14 +19,14 @@
19
19
  },
20
20
  {
21
21
  "name": "get_states",
22
- "description": "Retrieve the current value of one or multiple states",
22
+ "description": "Retrieve the current value of one or multiple states. IDs may contain wildcards (e.g. hue.0.*.brightness)",
23
23
  "parameters": {
24
24
  "type": "object",
25
25
  "properties": {
26
26
  "ids": {
27
27
  "type": "array",
28
28
  "items": { "type": "string" },
29
- "description": "Array of state IDs"
29
+ "description": "Array of state IDs (wildcards \"*\" allowed)"
30
30
  }
31
31
  },
32
32
  "required": ["ids"]
@@ -51,6 +51,28 @@
51
51
  "required": ["id", "value"]
52
52
  }
53
53
  },
54
+ {
55
+ "name": "set_states",
56
+ "description": "Set multiple states in one call (e.g. for scenes or group actions)",
57
+ "parameters": {
58
+ "type": "object",
59
+ "properties": {
60
+ "states": {
61
+ "type": "array",
62
+ "items": {
63
+ "type": "object",
64
+ "properties": {
65
+ "id": { "type": "string", "description": "State ID" },
66
+ "value": { "description": "New value (type depends on the state)" },
67
+ "ack": { "type": "boolean", "default": false }
68
+ },
69
+ "required": ["id", "value"]
70
+ }
71
+ }
72
+ },
73
+ "required": ["states"]
74
+ }
75
+ },
54
76
  {
55
77
  "name": "history_query",
56
78
  "description": "Query historical values of a state",
@@ -62,9 +84,11 @@
62
84
  "to": { "type": "string", "description": "End time (ISO8601)" },
63
85
  "agg": {
64
86
  "type": "string",
65
- "enum": ["raw", "min", "max", "avg", "sum"],
87
+ "enum": ["raw", "min", "max", "avg", "sum", "count", "minmax", "percentile", "quantile", "integral"],
66
88
  "default": "raw"
67
89
  },
90
+ "percentile": { "type": "number", "description": "Percentile (0-100), only with agg=percentile" },
91
+ "quantile": { "type": "number", "description": "Quantile (0-1), only with agg=quantile" },
68
92
  "interval": { "type": "string", "description": "Aggregation interval, e.g. 15m, 1h" },
69
93
  "limit": { "type": "integer", "default": 1000 }
70
94
  },
@@ -73,7 +97,21 @@
73
97
  },
74
98
  {
75
99
  "name": "list_instances",
76
- "description": "List all adapters with their status"
100
+ "description": "List all adapter instances with their status"
101
+ },
102
+ {
103
+ "name": "list_adapters",
104
+ "description": "List all installed adapters with metadata (version, title, description, keywords)",
105
+ "parameters": {
106
+ "type": "object",
107
+ "properties": {
108
+ "language": { "type": "string", "description": "Language for title/description" }
109
+ }
110
+ }
111
+ },
112
+ {
113
+ "name": "list_hosts",
114
+ "description": "List all ioBroker hosts with their status"
77
115
  },
78
116
  {
79
117
  "name": "get_logs",
@@ -91,25 +129,205 @@
91
129
  }
92
130
  }
93
131
  },
132
+ {
133
+ "name": "write_log",
134
+ "description": "Write a message to the ioBroker log",
135
+ "parameters": {
136
+ "type": "object",
137
+ "properties": {
138
+ "message": { "type": "string" },
139
+ "level": { "type": "string", "enum": ["error", "warn", "info", "debug"], "default": "info" }
140
+ },
141
+ "required": ["message"]
142
+ }
143
+ },
94
144
  {
95
145
  "name": "system_info",
96
146
  "description": "Get system and js-controller information"
97
147
  },
98
148
  {
99
149
  "name": "search_objects",
100
- "description": "Search objects and states by keywords",
150
+ "description": "Search objects and states by keyword (matched against ID and name) with optional filters",
101
151
  "parameters": {
102
152
  "type": "object",
103
153
  "properties": {
104
- "query": { "type": "string", "description": "Keyword to search for" },
154
+ "query": { "type": "string", "description": "Keyword to search for in object IDs and names" },
155
+ "type": { "type": "string", "description": "Filter by object type, e.g. state, channel, device, script" },
105
156
  "role": { "type": "string", "description": "Filter by role" },
106
157
  "room": { "type": "string", "description": "Filter by room" },
158
+ "adapter": { "type": "string", "description": "Filter by source adapter instance, e.g. hue.0" },
107
159
  "limit": { "type": "integer", "default": 50 },
108
160
  "offset": { "type": "integer", "default": 0 }
109
161
  },
110
162
  "required": ["query"]
111
163
  }
112
164
  },
165
+ {
166
+ "name": "get_object",
167
+ "description": "Read a single ioBroker object by its ID",
168
+ "parameters": {
169
+ "type": "object",
170
+ "properties": {
171
+ "id": { "type": "string", "description": "Object ID" }
172
+ },
173
+ "required": ["id"]
174
+ }
175
+ },
176
+ {
177
+ "name": "set_object",
178
+ "description": "Create or update an ioBroker object (merges common/native) - requires object change permission",
179
+ "parameters": {
180
+ "type": "object",
181
+ "properties": {
182
+ "id": { "type": "string", "description": "Object ID" },
183
+ "obj": { "type": "object", "description": "Partial object with type/common/native" }
184
+ },
185
+ "required": ["id", "obj"]
186
+ }
187
+ },
188
+ {
189
+ "name": "delete_object",
190
+ "description": "Delete an ioBroker object (optionally with all children) - requires object change permission",
191
+ "parameters": {
192
+ "type": "object",
193
+ "properties": {
194
+ "id": { "type": "string", "description": "Object ID" },
195
+ "recursive": { "type": "boolean", "description": "Also delete all child objects" }
196
+ },
197
+ "required": ["id"]
198
+ }
199
+ },
200
+ {
201
+ "name": "create_state",
202
+ "description": "Create a new state object - requires object change permission",
203
+ "parameters": {
204
+ "type": "object",
205
+ "properties": {
206
+ "id": { "type": "string", "description": "Full state ID, e.g. 0_userdata.0.myState" },
207
+ "name": { "type": "string" },
208
+ "type": {
209
+ "type": "string",
210
+ "enum": ["boolean", "number", "string", "array", "object", "mixed"],
211
+ "default": "mixed"
212
+ },
213
+ "role": { "type": "string", "default": "state" },
214
+ "read": { "type": "boolean", "default": true },
215
+ "write": { "type": "boolean", "default": true },
216
+ "unit": { "type": "string" },
217
+ "min": { "type": "number" },
218
+ "max": { "type": "number" },
219
+ "step": { "type": "number" },
220
+ "def": { "description": "Initial value (written with ack=true)" },
221
+ "desc": { "type": "string" }
222
+ },
223
+ "required": ["id"]
224
+ }
225
+ },
226
+ {
227
+ "name": "create_scene",
228
+ "description": "Create or update a scene for the ioBroker scenes adapter - requires object change permission",
229
+ "parameters": {
230
+ "type": "object",
231
+ "properties": {
232
+ "name": { "type": "string", "description": "Scene name, becomes part of the ID" },
233
+ "members": {
234
+ "type": "array",
235
+ "items": {
236
+ "type": "object",
237
+ "properties": {
238
+ "id": { "type": "string", "description": "State ID to set" },
239
+ "value": { "description": "Value applied when the scene is activated" }
240
+ },
241
+ "required": ["id", "value"]
242
+ }
243
+ },
244
+ "instance": { "type": "string", "description": "Scene adapter instance (default scene.0)" },
245
+ "description": { "type": "string" }
246
+ },
247
+ "required": ["name", "members"]
248
+ }
249
+ },
250
+ {
251
+ "name": "read_file",
252
+ "description": "Read a file from an adapter file storage",
253
+ "parameters": {
254
+ "type": "object",
255
+ "properties": {
256
+ "path": { "type": "string", "description": "Path as <adapter>/<dir>/<file>" },
257
+ "base64": { "type": "boolean", "description": "Return binary content base64-encoded" }
258
+ },
259
+ "required": ["path"]
260
+ }
261
+ },
262
+ {
263
+ "name": "write_file",
264
+ "description": "Write a file to an adapter file storage - requires object change permission",
265
+ "parameters": {
266
+ "type": "object",
267
+ "properties": {
268
+ "path": { "type": "string", "description": "Path as <adapter>/<dir>/<file>" },
269
+ "content": { "type": "string", "description": "File content (UTF-8, or base64 when base64=true)" },
270
+ "base64": { "type": "boolean", "description": "Treat content as base64-encoded binary" }
271
+ },
272
+ "required": ["path", "content"]
273
+ }
274
+ },
275
+ {
276
+ "name": "list_files",
277
+ "description": "List a directory in an adapter file storage",
278
+ "parameters": {
279
+ "type": "object",
280
+ "properties": {
281
+ "path": { "type": "string", "description": "Path as <adapter>[/<dir>]" }
282
+ },
283
+ "required": ["path"]
284
+ }
285
+ },
286
+ {
287
+ "name": "file_exists",
288
+ "description": "Check whether a file exists in an adapter file storage",
289
+ "parameters": {
290
+ "type": "object",
291
+ "properties": {
292
+ "path": { "type": "string", "description": "Path as <adapter>/<dir>/<file>" }
293
+ },
294
+ "required": ["path"]
295
+ }
296
+ },
297
+ {
298
+ "name": "delete_file",
299
+ "description": "Delete a file from an adapter file storage - requires object change permission",
300
+ "parameters": {
301
+ "type": "object",
302
+ "properties": {
303
+ "path": { "type": "string", "description": "Path as <adapter>/<dir>/<file>" }
304
+ },
305
+ "required": ["path"]
306
+ }
307
+ },
308
+ {
309
+ "name": "rename_file",
310
+ "description": "Rename or move a file within the same adapter file storage - requires object change permission",
311
+ "parameters": {
312
+ "type": "object",
313
+ "properties": {
314
+ "path": { "type": "string", "description": "Current path as <adapter>/<dir>/<file>" },
315
+ "new_path": { "type": "string", "description": "New path as <adapter>/<dir>/<file> (same adapter)" }
316
+ },
317
+ "required": ["path", "new_path"]
318
+ }
319
+ },
320
+ {
321
+ "name": "mkdir",
322
+ "description": "Create a directory in an adapter file storage - requires object change permission",
323
+ "parameters": {
324
+ "type": "object",
325
+ "properties": {
326
+ "path": { "type": "string", "description": "Path as <adapter>/<dir>" }
327
+ },
328
+ "required": ["path"]
329
+ }
330
+ },
113
331
  {
114
332
  "name": "list_rooms",
115
333
  "description": "List all rooms (enum.rooms.*)",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.mcp",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "description": "MCP server for ioBroker",
5
5
  "author": {
6
6
  "name": "ioBroker",