nowaikit 4.11.0 → 4.12.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.
Files changed (77) hide show
  1. package/desktop/renderer/dist/assets/index-DIXajM0H.js +55 -0
  2. package/desktop/renderer/dist/index.html +1 -1
  3. package/dist/cli/config-store.d.ts +1 -1
  4. package/dist/cli/config-store.d.ts.map +1 -1
  5. package/dist/cli/detect-clients.d.ts +1 -1
  6. package/dist/cli/detect-clients.d.ts.map +1 -1
  7. package/dist/cli/detect-clients.js +56 -12
  8. package/dist/cli/detect-clients.js.map +1 -1
  9. package/dist/cli/setup.js +2 -2
  10. package/dist/cli/setup.js.map +1 -1
  11. package/dist/cli/writers/index.d.ts.map +1 -1
  12. package/dist/cli/writers/index.js +20 -0
  13. package/dist/cli/writers/index.js.map +1 -1
  14. package/dist/direct/llm-client.js +2 -2
  15. package/dist/direct/llm-client.js.map +1 -1
  16. package/dist/server.d.ts.map +1 -1
  17. package/dist/server.js +2 -1
  18. package/dist/server.js.map +1 -1
  19. package/dist/servicenow/client.d.ts +12 -0
  20. package/dist/servicenow/client.d.ts.map +1 -1
  21. package/dist/servicenow/client.js +54 -0
  22. package/dist/servicenow/client.js.map +1 -1
  23. package/dist/tools/access-admin.d.ts +162 -0
  24. package/dist/tools/access-admin.d.ts.map +1 -0
  25. package/dist/tools/access-admin.js +216 -0
  26. package/dist/tools/access-admin.js.map +1 -0
  27. package/dist/tools/ai-agent-exec.d.ts +70 -0
  28. package/dist/tools/ai-agent-exec.d.ts.map +1 -0
  29. package/dist/tools/ai-agent-exec.js +73 -0
  30. package/dist/tools/ai-agent-exec.js.map +1 -0
  31. package/dist/tools/approvals-extra.d.ts +202 -0
  32. package/dist/tools/approvals-extra.d.ts.map +1 -0
  33. package/dist/tools/approvals-extra.js +212 -0
  34. package/dist/tools/approvals-extra.js.map +1 -0
  35. package/dist/tools/catalog-fulfillment.d.ts +349 -0
  36. package/dist/tools/catalog-fulfillment.d.ts.map +1 -0
  37. package/dist/tools/catalog-fulfillment.js +222 -0
  38. package/dist/tools/catalog-fulfillment.js.map +1 -0
  39. package/dist/tools/grc-extra.d.ts +149 -0
  40. package/dist/tools/grc-extra.d.ts.map +1 -0
  41. package/dist/tools/grc-extra.js +115 -0
  42. package/dist/tools/grc-extra.js.map +1 -0
  43. package/dist/tools/index.d.ts +1600 -107
  44. package/dist/tools/index.d.ts.map +1 -1
  45. package/dist/tools/index.js +38 -0
  46. package/dist/tools/index.js.map +1 -1
  47. package/dist/tools/oncall.d.ts +165 -0
  48. package/dist/tools/oncall.d.ts.map +1 -0
  49. package/dist/tools/oncall.js +155 -0
  50. package/dist/tools/oncall.js.map +1 -0
  51. package/dist/tools/platform-ops.d.ts +156 -0
  52. package/dist/tools/platform-ops.d.ts.map +1 -0
  53. package/dist/tools/platform-ops.js +141 -0
  54. package/dist/tools/platform-ops.js.map +1 -0
  55. package/dist/tools/service-mapping.d.ts +108 -0
  56. package/dist/tools/service-mapping.d.ts.map +1 -0
  57. package/dist/tools/service-mapping.js +144 -0
  58. package/dist/tools/service-mapping.js.map +1 -0
  59. package/dist/tools/service-portfolio.d.ts +93 -0
  60. package/dist/tools/service-portfolio.d.ts.map +1 -0
  61. package/dist/tools/service-portfolio.js +86 -0
  62. package/dist/tools/service-portfolio.js.map +1 -0
  63. package/dist/tools/sla.d.ts +222 -0
  64. package/dist/tools/sla.d.ts.map +1 -0
  65. package/dist/tools/sla.js +160 -0
  66. package/dist/tools/sla.js.map +1 -0
  67. package/dist/tools/sn-parity.d.ts +239 -0
  68. package/dist/tools/sn-parity.d.ts.map +1 -0
  69. package/dist/tools/sn-parity.js +236 -0
  70. package/dist/tools/sn-parity.js.map +1 -0
  71. package/dist/tools/survey.d.ts +140 -0
  72. package/dist/tools/survey.d.ts.map +1 -0
  73. package/dist/tools/survey.js +118 -0
  74. package/dist/tools/survey.js.map +1 -0
  75. package/dist/tools-manifest.json +1537 -0
  76. package/package.json +15 -8
  77. package/desktop/renderer/dist/assets/index-BQ4P9VJR.js +0 -49
@@ -0,0 +1,212 @@
1
+ import { ServiceNowError } from '../utils/errors.js';
2
+ import { requireWrite } from '../utils/permissions.js';
3
+ const QUOTE_TABLES = ['sn_quote_mgmt_core_quote', 'sn_sales_quote', 'quote'];
4
+ export function getApprovalsExtraToolDefinitions() {
5
+ return [
6
+ {
7
+ name: 'get_quote',
8
+ description: 'Get a CPQ/sales quote record by number or sys_id (tries known quote tables)',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {
12
+ number: { type: 'string', description: 'Quote number' },
13
+ sys_id: { type: 'string', description: 'Quote sys_id' },
14
+ table: { type: 'string', description: 'Explicit quote table if you know it' },
15
+ },
16
+ required: [],
17
+ },
18
+ },
19
+ {
20
+ name: 'list_quotes',
21
+ description: 'List CPQ/sales quotes with optional filters (state, account)',
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ table: { type: 'string', description: 'Explicit quote table if you know it' },
26
+ state: { type: 'string', description: 'Filter by state' },
27
+ account: { type: 'string', description: 'Filter by account sys_id' },
28
+ limit: { type: 'number', description: 'Max records (default 25)' },
29
+ },
30
+ required: [],
31
+ },
32
+ },
33
+ {
34
+ name: 'get_approval_history',
35
+ description: 'Get the approval progression/history for any record (sysapproval_approver rows, ordered)',
36
+ inputSchema: {
37
+ type: 'object',
38
+ properties: {
39
+ record: { type: 'string', description: 'sys_id of the record under approval (source record)' },
40
+ limit: { type: 'number', description: 'Max approver rows (default 100)' },
41
+ },
42
+ required: ['record'],
43
+ },
44
+ },
45
+ {
46
+ name: 'preview_approval_routing',
47
+ description: 'Preview the planned approver path for a record before/after submission (existing sysapproval_approver rows + matching approval rules)',
48
+ inputSchema: {
49
+ type: 'object',
50
+ properties: {
51
+ record: { type: 'string', description: 'sys_id of the record to preview routing for' },
52
+ table: { type: 'string', description: 'Table of the record (to match approval rules)' },
53
+ },
54
+ required: ['record'],
55
+ },
56
+ },
57
+ {
58
+ name: 'add_adhoc_approver',
59
+ description: 'Add an ad-hoc approver to an in-flight approval on a record (inserts a sysapproval_approver row). Requires WRITE_ENABLED=true',
60
+ inputSchema: {
61
+ type: 'object',
62
+ properties: {
63
+ record: { type: 'string', description: 'sys_id of the record under approval (sets sysapproval)' },
64
+ approver: { type: 'string', description: 'sys_id of the user to add as approver' },
65
+ source_table: { type: 'string', description: 'Table of the source record (source_table field)' },
66
+ },
67
+ required: ['record', 'approver'],
68
+ },
69
+ },
70
+ {
71
+ name: 'recall_approval_request',
72
+ description: 'Recall/withdraw approval requests on a record by cancelling pending approver rows (state → cancelled/no_longer_required). Requires WRITE_ENABLED=true',
73
+ inputSchema: {
74
+ type: 'object',
75
+ properties: {
76
+ record: { type: 'string', description: 'sys_id of the record whose approvals to recall' },
77
+ },
78
+ required: ['record'],
79
+ },
80
+ },
81
+ {
82
+ name: 'submit_for_approval',
83
+ description: 'Submit any record for approval by setting its approval field to "requested" (generic, not just change). Requires WRITE_ENABLED=true',
84
+ inputSchema: {
85
+ type: 'object',
86
+ properties: {
87
+ table: { type: 'string', description: 'Table of the record' },
88
+ sys_id: { type: 'string', description: 'sys_id of the record' },
89
+ approval_field: { type: 'string', description: 'Approval field name (default "approval")' },
90
+ },
91
+ required: ['table', 'sys_id'],
92
+ },
93
+ },
94
+ ];
95
+ }
96
+ async function findQuote(client, query, tables) {
97
+ for (const t of tables) {
98
+ try {
99
+ const r = await client.queryRecords({ table: t, query, limit: 1 });
100
+ if (r.count > 0)
101
+ return { table: t, record: r.records[0] };
102
+ }
103
+ catch { /* table may not exist in this instance */ }
104
+ }
105
+ return null;
106
+ }
107
+ export async function executeApprovalsExtraToolCall(client, name, args) {
108
+ switch (name) {
109
+ case 'get_quote': {
110
+ const tables = args.table ? [args.table] : QUOTE_TABLES;
111
+ if (args.sys_id) {
112
+ for (const t of tables) {
113
+ try {
114
+ return { table: t, quote: await client.getRecord(t, args.sys_id) };
115
+ }
116
+ catch { /* try next */ }
117
+ }
118
+ throw new ServiceNowError('Quote not found by sys_id in known quote tables', 'NOT_FOUND');
119
+ }
120
+ if (!args.number)
121
+ throw new ServiceNowError('number or sys_id is required', 'INVALID_REQUEST');
122
+ const hit = await findQuote(client, `number=${args.number}`, tables);
123
+ if (!hit)
124
+ throw new ServiceNowError(`Quote ${args.number} not found (CPQ/Sales quote tables may not be installed)`, 'NOT_FOUND');
125
+ return { table: hit.table, quote: hit.record };
126
+ }
127
+ case 'list_quotes': {
128
+ const tables = args.table ? [args.table] : QUOTE_TABLES;
129
+ const parts = [];
130
+ if (args.state)
131
+ parts.push(`state=${args.state}`);
132
+ if (args.account)
133
+ parts.push(`account=${args.account}`);
134
+ for (const t of tables) {
135
+ try {
136
+ const r = await client.queryRecords({ table: t, query: parts.join('^'), limit: args.limit ?? 25 });
137
+ if (r.count > 0 || t === tables[tables.length - 1])
138
+ return { table: t, ...r };
139
+ }
140
+ catch { /* try next */ }
141
+ }
142
+ return { count: 0, records: [], note: 'No CPQ/Sales quote table found on this instance.' };
143
+ }
144
+ case 'get_approval_history': {
145
+ if (!args.record)
146
+ throw new ServiceNowError('record is required', 'INVALID_REQUEST');
147
+ return await client.queryRecords({
148
+ table: 'sysapproval_approver',
149
+ query: `sysapproval=${args.record}^ORDERBYorder`,
150
+ fields: 'approver,approver.name,state,order,comments,sys_created_on,sys_updated_on,group',
151
+ limit: args.limit ?? 100,
152
+ });
153
+ }
154
+ case 'preview_approval_routing': {
155
+ if (!args.record)
156
+ throw new ServiceNowError('record is required', 'INVALID_REQUEST');
157
+ const existing = await client.queryRecords({
158
+ table: 'sysapproval_approver',
159
+ query: `sysapproval=${args.record}^ORDERBYorder`,
160
+ fields: 'approver,approver.name,state,order,group,group.name',
161
+ limit: 100,
162
+ });
163
+ let rules = { records: [], count: 0 };
164
+ if (args.table) {
165
+ rules = await client.queryRecords({
166
+ table: 'sysrule_assignment',
167
+ query: `table=${args.table}`,
168
+ fields: 'name,order,active',
169
+ limit: 20,
170
+ }).catch(() => ({ records: [], count: 0 }));
171
+ }
172
+ return {
173
+ record: args.record,
174
+ planned_approvers: existing.records,
175
+ matching_assignment_rules: rules.records,
176
+ note: 'Shows current sysapproval_approver rows (the actual planned path) plus any assignment rules for the table. A full pre-submission dry-run requires the record to be evaluated by the workflow engine.',
177
+ };
178
+ }
179
+ case 'add_adhoc_approver': {
180
+ requireWrite();
181
+ if (!args.record || !args.approver)
182
+ throw new ServiceNowError('record and approver are required', 'INVALID_REQUEST');
183
+ const payload = { sysapproval: args.record, approver: args.approver, state: 'requested' };
184
+ if (args.source_table)
185
+ payload.source_table = args.source_table;
186
+ const result = await client.createRecord('sysapproval_approver', payload);
187
+ return { ...result, summary: `Added ad-hoc approver ${args.approver} to record ${args.record}` };
188
+ }
189
+ case 'recall_approval_request': {
190
+ requireWrite();
191
+ if (!args.record)
192
+ throw new ServiceNowError('record is required', 'INVALID_REQUEST');
193
+ const pending = await client.queryRecords({ table: 'sysapproval_approver', query: `sysapproval=${args.record}^stateIN requested,not requested`, fields: 'sys_id', limit: 100 });
194
+ let cancelled = 0;
195
+ for (const r of pending.records) {
196
+ await client.updateRecord('sysapproval_approver', r.sys_id, { state: 'cancelled' }).then(() => cancelled++).catch(() => { });
197
+ }
198
+ return { record: args.record, cancelled, summary: `Recalled ${cancelled} pending approval request(s)` };
199
+ }
200
+ case 'submit_for_approval': {
201
+ requireWrite();
202
+ if (!args.table || !args.sys_id)
203
+ throw new ServiceNowError('table and sys_id are required', 'INVALID_REQUEST');
204
+ const field = args.approval_field || 'approval';
205
+ const result = await client.updateRecord(args.table, args.sys_id, { [field]: 'requested' });
206
+ return { ...result, summary: `Submitted ${args.table}/${args.sys_id} for approval (${field}=requested)` };
207
+ }
208
+ default:
209
+ return null;
210
+ }
211
+ }
212
+ //# sourceMappingURL=approvals-extra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals-extra.js","sourceRoot":"","sources":["../../src/tools/approvals-extra.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,349 @@
1
+ /**
2
+ * Catalog fulfillment + user criteria tools. Read: Tier 0. Create/update: Tier 1.
3
+ *
4
+ * Tables:
5
+ * sc_req_item — requested items (RITM)
6
+ * sc_task — catalog fulfillment tasks (SCTASK)
7
+ * sc_category — catalog categories
8
+ * user_criteria — audience/entitlement criteria
9
+ * sc_cat_item_user_criteria_mtom — criteria ↔ catalog item link (available-for)
10
+ */
11
+ import type { ServiceNowClient } from '../servicenow/client.js';
12
+ export declare function getCatalogFulfillmentToolDefinitions(): ({
13
+ name: string;
14
+ description: string;
15
+ inputSchema: {
16
+ type: string;
17
+ properties: {
18
+ number: {
19
+ type: string;
20
+ description: string;
21
+ };
22
+ sys_id: {
23
+ type: string;
24
+ description: string;
25
+ };
26
+ state?: undefined;
27
+ stage?: undefined;
28
+ fields?: undefined;
29
+ request_item?: undefined;
30
+ assignment_group?: undefined;
31
+ active?: undefined;
32
+ limit?: undefined;
33
+ close_notes?: undefined;
34
+ catalog?: undefined;
35
+ query?: undefined;
36
+ title?: undefined;
37
+ description?: undefined;
38
+ parent?: undefined;
39
+ name?: undefined;
40
+ roles?: undefined;
41
+ groups?: undefined;
42
+ users?: undefined;
43
+ match_all?: undefined;
44
+ catalog_item?: undefined;
45
+ user_criteria?: undefined;
46
+ };
47
+ required: never[];
48
+ };
49
+ } | {
50
+ name: string;
51
+ description: string;
52
+ inputSchema: {
53
+ type: string;
54
+ properties: {
55
+ sys_id: {
56
+ type: string;
57
+ description: string;
58
+ };
59
+ state: {
60
+ type: string;
61
+ description: string;
62
+ };
63
+ stage: {
64
+ type: string;
65
+ description: string;
66
+ };
67
+ fields: {
68
+ type: string;
69
+ description: string;
70
+ };
71
+ number?: undefined;
72
+ request_item?: undefined;
73
+ assignment_group?: undefined;
74
+ active?: undefined;
75
+ limit?: undefined;
76
+ close_notes?: undefined;
77
+ catalog?: undefined;
78
+ query?: undefined;
79
+ title?: undefined;
80
+ description?: undefined;
81
+ parent?: undefined;
82
+ name?: undefined;
83
+ roles?: undefined;
84
+ groups?: undefined;
85
+ users?: undefined;
86
+ match_all?: undefined;
87
+ catalog_item?: undefined;
88
+ user_criteria?: undefined;
89
+ };
90
+ required: string[];
91
+ };
92
+ } | {
93
+ name: string;
94
+ description: string;
95
+ inputSchema: {
96
+ type: string;
97
+ properties: {
98
+ request_item: {
99
+ type: string;
100
+ description: string;
101
+ };
102
+ assignment_group: {
103
+ type: string;
104
+ description: string;
105
+ };
106
+ active: {
107
+ type: string;
108
+ description: string;
109
+ };
110
+ limit: {
111
+ type: string;
112
+ description: string;
113
+ };
114
+ number?: undefined;
115
+ sys_id?: undefined;
116
+ state?: undefined;
117
+ stage?: undefined;
118
+ fields?: undefined;
119
+ close_notes?: undefined;
120
+ catalog?: undefined;
121
+ query?: undefined;
122
+ title?: undefined;
123
+ description?: undefined;
124
+ parent?: undefined;
125
+ name?: undefined;
126
+ roles?: undefined;
127
+ groups?: undefined;
128
+ users?: undefined;
129
+ match_all?: undefined;
130
+ catalog_item?: undefined;
131
+ user_criteria?: undefined;
132
+ };
133
+ required: never[];
134
+ };
135
+ } | {
136
+ name: string;
137
+ description: string;
138
+ inputSchema: {
139
+ type: string;
140
+ properties: {
141
+ sys_id: {
142
+ type: string;
143
+ description: string;
144
+ };
145
+ close_notes: {
146
+ type: string;
147
+ description: string;
148
+ };
149
+ state: {
150
+ type: string;
151
+ description: string;
152
+ };
153
+ number?: undefined;
154
+ stage?: undefined;
155
+ fields?: undefined;
156
+ request_item?: undefined;
157
+ assignment_group?: undefined;
158
+ active?: undefined;
159
+ limit?: undefined;
160
+ catalog?: undefined;
161
+ query?: undefined;
162
+ title?: undefined;
163
+ description?: undefined;
164
+ parent?: undefined;
165
+ name?: undefined;
166
+ roles?: undefined;
167
+ groups?: undefined;
168
+ users?: undefined;
169
+ match_all?: undefined;
170
+ catalog_item?: undefined;
171
+ user_criteria?: undefined;
172
+ };
173
+ required: string[];
174
+ };
175
+ } | {
176
+ name: string;
177
+ description: string;
178
+ inputSchema: {
179
+ type: string;
180
+ properties: {
181
+ catalog: {
182
+ type: string;
183
+ description: string;
184
+ };
185
+ query: {
186
+ type: string;
187
+ description: string;
188
+ };
189
+ limit: {
190
+ type: string;
191
+ description: string;
192
+ };
193
+ number?: undefined;
194
+ sys_id?: undefined;
195
+ state?: undefined;
196
+ stage?: undefined;
197
+ fields?: undefined;
198
+ request_item?: undefined;
199
+ assignment_group?: undefined;
200
+ active?: undefined;
201
+ close_notes?: undefined;
202
+ title?: undefined;
203
+ description?: undefined;
204
+ parent?: undefined;
205
+ name?: undefined;
206
+ roles?: undefined;
207
+ groups?: undefined;
208
+ users?: undefined;
209
+ match_all?: undefined;
210
+ catalog_item?: undefined;
211
+ user_criteria?: undefined;
212
+ };
213
+ required: never[];
214
+ };
215
+ } | {
216
+ name: string;
217
+ description: string;
218
+ inputSchema: {
219
+ type: string;
220
+ properties: {
221
+ title: {
222
+ type: string;
223
+ description: string;
224
+ };
225
+ catalog: {
226
+ type: string;
227
+ description: string;
228
+ };
229
+ description: {
230
+ type: string;
231
+ description: string;
232
+ };
233
+ parent: {
234
+ type: string;
235
+ description: string;
236
+ };
237
+ fields: {
238
+ type: string;
239
+ description: string;
240
+ };
241
+ number?: undefined;
242
+ sys_id?: undefined;
243
+ state?: undefined;
244
+ stage?: undefined;
245
+ request_item?: undefined;
246
+ assignment_group?: undefined;
247
+ active?: undefined;
248
+ limit?: undefined;
249
+ close_notes?: undefined;
250
+ query?: undefined;
251
+ name?: undefined;
252
+ roles?: undefined;
253
+ groups?: undefined;
254
+ users?: undefined;
255
+ match_all?: undefined;
256
+ catalog_item?: undefined;
257
+ user_criteria?: undefined;
258
+ };
259
+ required: string[];
260
+ };
261
+ } | {
262
+ name: string;
263
+ description: string;
264
+ inputSchema: {
265
+ type: string;
266
+ properties: {
267
+ name: {
268
+ type: string;
269
+ description: string;
270
+ };
271
+ roles: {
272
+ type: string;
273
+ description: string;
274
+ };
275
+ groups: {
276
+ type: string;
277
+ description: string;
278
+ };
279
+ users: {
280
+ type: string;
281
+ description: string;
282
+ };
283
+ match_all: {
284
+ type: string;
285
+ description: string;
286
+ };
287
+ fields: {
288
+ type: string;
289
+ description: string;
290
+ };
291
+ number?: undefined;
292
+ sys_id?: undefined;
293
+ state?: undefined;
294
+ stage?: undefined;
295
+ request_item?: undefined;
296
+ assignment_group?: undefined;
297
+ active?: undefined;
298
+ limit?: undefined;
299
+ close_notes?: undefined;
300
+ catalog?: undefined;
301
+ query?: undefined;
302
+ title?: undefined;
303
+ description?: undefined;
304
+ parent?: undefined;
305
+ catalog_item?: undefined;
306
+ user_criteria?: undefined;
307
+ };
308
+ required: string[];
309
+ };
310
+ } | {
311
+ name: string;
312
+ description: string;
313
+ inputSchema: {
314
+ type: string;
315
+ properties: {
316
+ catalog_item: {
317
+ type: string;
318
+ description: string;
319
+ };
320
+ user_criteria: {
321
+ type: string;
322
+ description: string;
323
+ };
324
+ number?: undefined;
325
+ sys_id?: undefined;
326
+ state?: undefined;
327
+ stage?: undefined;
328
+ fields?: undefined;
329
+ request_item?: undefined;
330
+ assignment_group?: undefined;
331
+ active?: undefined;
332
+ limit?: undefined;
333
+ close_notes?: undefined;
334
+ catalog?: undefined;
335
+ query?: undefined;
336
+ title?: undefined;
337
+ description?: undefined;
338
+ parent?: undefined;
339
+ name?: undefined;
340
+ roles?: undefined;
341
+ groups?: undefined;
342
+ users?: undefined;
343
+ match_all?: undefined;
344
+ };
345
+ required: string[];
346
+ };
347
+ })[];
348
+ export declare function executeCatalogFulfillmentToolCall(client: ServiceNowClient, name: string, args: Record<string, any>): Promise<any>;
349
+ //# sourceMappingURL=catalog-fulfillment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-fulfillment.d.ts","sourceRoot":"","sources":["../../src/tools/catalog-fulfillment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,wBAAgB,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgHnD;AAED,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,GAAG,CAAC,CAkFd"}