@qikdev/mcp 6.6.48 → 6.7.1

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 (40) hide show
  1. package/README.md +26 -41
  2. package/build/src/tools/campaign.d.ts +41 -0
  3. package/build/src/tools/campaign.d.ts.map +1 -0
  4. package/build/src/tools/campaign.js +331 -0
  5. package/build/src/tools/campaign.js.map +1 -0
  6. package/build/src/tools/checkin.d.ts +25 -0
  7. package/build/src/tools/checkin.d.ts.map +1 -0
  8. package/build/src/tools/checkin.js +199 -0
  9. package/build/src/tools/checkin.js.map +1 -0
  10. package/build/src/tools/definition.d.ts +90 -0
  11. package/build/src/tools/definition.d.ts.map +1 -0
  12. package/build/src/tools/definition.js +803 -0
  13. package/build/src/tools/definition.js.map +1 -0
  14. package/build/src/tools/filters.d.ts +11 -0
  15. package/build/src/tools/filters.d.ts.map +1 -0
  16. package/build/src/tools/filters.js +146 -0
  17. package/build/src/tools/filters.js.map +1 -0
  18. package/build/src/tools/glossary.d.ts +9 -0
  19. package/build/src/tools/glossary.d.ts.map +1 -1
  20. package/build/src/tools/glossary.js +200 -23
  21. package/build/src/tools/glossary.js.map +1 -1
  22. package/build/src/tools/index.d.ts.map +1 -1
  23. package/build/src/tools/index.js +56 -1
  24. package/build/src/tools/index.js.map +1 -1
  25. package/build/src/tools/list.d.ts.map +1 -1
  26. package/build/src/tools/list.js +41 -1
  27. package/build/src/tools/list.js.map +1 -1
  28. package/build/src/tools/relationships.d.ts +11 -0
  29. package/build/src/tools/relationships.d.ts.map +1 -0
  30. package/build/src/tools/relationships.js +130 -0
  31. package/build/src/tools/relationships.js.map +1 -0
  32. package/build/src/tools/reporting.d.ts +22 -0
  33. package/build/src/tools/reporting.d.ts.map +1 -0
  34. package/build/src/tools/reporting.js +219 -0
  35. package/build/src/tools/reporting.js.map +1 -0
  36. package/build/src/tools/sms.d.ts +13 -0
  37. package/build/src/tools/sms.d.ts.map +1 -0
  38. package/build/src/tools/sms.js +128 -0
  39. package/build/src/tools/sms.js.map +1 -0
  40. package/package.json +1 -1
package/README.md CHANGED
@@ -22,53 +22,38 @@ A comprehensive Model Context Protocol (MCP) server for the Qik platform, enabli
22
22
  - **Scope and Permission Awareness**: Respects content scopes and user permissions
23
23
  - **Batch Operations**: Supports efficient bulk operations where available
24
24
 
25
- ## šŸ“¦ Installation
25
+ ## šŸ“¦ Quick Start
26
+
27
+ Just run:
26
28
 
27
29
  ```bash
28
- npm install -g @qikdev/mcp
30
+ npx @qikdev/mcp setup
29
31
  ```
30
32
 
31
- ## šŸ”§ Setup
33
+ This interactive setup will:
34
+ 1. Prompt you for your Qik API access token
35
+ 2. Validate your token against the Qik API
36
+ 3. Automatically configure Claude Desktop to use the MCP server
37
+
38
+ That's it! Restart Claude Desktop and you're ready to go.
39
+
40
+ ## šŸ”§ Getting Your Access Token
41
+
42
+ 1. Log in to your Qik dashboard at https://app.qik.dev
43
+ 2. Navigate to Settings → API Access
44
+ 3. Generate a new access token
45
+ 4. Copy the token and paste it when prompted during setup
46
+
47
+ ## šŸ“‹ CLI Commands
32
48
 
33
- ### Quick Setup
34
49
  ```bash
35
- qik-mcp-server setup
50
+ npx @qikdev/mcp setup # Initial setup (interactive)
51
+ npx @qikdev/mcp status # Check configuration status
52
+ npx @qikdev/mcp update-token # Update your access token
53
+ npx @qikdev/mcp install # Add to Claude Desktop config
54
+ npx @qikdev/mcp remove # Remove from Claude Desktop config
36
55
  ```
37
56
 
38
- This will guide you through:
39
- 1. Entering your Qik API access token
40
- 2. Configuring your API URL (defaults to https://api.qik.dev)
41
- 3. Automatically adding the server to your MCP configuration
42
-
43
- ### Manual Setup
44
-
45
- 1. **Get your Qik API Access Token**:
46
- - Log in to your Qik dashboard at https://app.qik.dev
47
- - Navigate to Settings → API Access
48
- - Generate a new access token
49
-
50
- 2. **Configure Environment Variables**:
51
- ```bash
52
- export QIK_ACCESS_TOKEN="your_access_token_here"
53
- export QIK_API_URL="https://api.qik.dev" # Optional, defaults to this
54
- ```
55
-
56
- 3. **Add to MCP Configuration**:
57
- Add this to your MCP settings file:
58
- ```json
59
- {
60
- "mcpServers": {
61
- "qik": {
62
- "command": "npx",
63
- "args": ["@qikdev/mcp", "run"],
64
- "env": {
65
- "NODE_ENV": "production"
66
- }
67
- }
68
- }
69
- }
70
- ```
71
-
72
57
  ## šŸ› ļø Available Tools
73
58
 
74
59
  ### Authentication & Session
@@ -193,10 +178,10 @@ The server automatically caches glossary data for 5 minutes to improve performan
193
178
  ### Authentication Issues
194
179
  ```bash
195
180
  # Check your token status
196
- qik-mcp-server status
181
+ npx @qikdev/mcp status
197
182
 
198
183
  # Reconfigure if needed
199
- qik-mcp-server setup
184
+ npx @qikdev/mcp setup
200
185
  ```
201
186
 
202
187
  ### Common Issues
@@ -0,0 +1,41 @@
1
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const getCampaignRecipientsTool: Tool;
3
+ export declare const getCampaignAnalyticsTool: Tool;
4
+ export declare const sendCampaignTool: Tool;
5
+ export declare const sendTestCampaignTool: Tool;
6
+ export declare function handleGetCampaignRecipients(args: {
7
+ campaignId: string;
8
+ }): Promise<{
9
+ content: Array<{
10
+ type: string;
11
+ text: string;
12
+ }>;
13
+ }>;
14
+ export declare function handleGetCampaignAnalytics(args: {
15
+ campaignId: string;
16
+ }): Promise<{
17
+ content: Array<{
18
+ type: string;
19
+ text: string;
20
+ }>;
21
+ }>;
22
+ export declare function handleSendCampaign(args: {
23
+ campaignId: string;
24
+ scheduleDate?: string;
25
+ }): Promise<{
26
+ content: Array<{
27
+ type: string;
28
+ text: string;
29
+ }>;
30
+ }>;
31
+ export declare function handleSendTestCampaign(args: {
32
+ campaignId: string;
33
+ profileIds?: string[];
34
+ emails?: string[];
35
+ }): Promise<{
36
+ content: Array<{
37
+ type: string;
38
+ text: string;
39
+ }>;
40
+ }>;
41
+ //# sourceMappingURL=campaign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign.d.ts","sourceRoot":"","sources":["../../../src/tools/campaign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI1D,eAAO,MAAM,yBAAyB,EAAE,IAmBvC,CAAC;AAGF,eAAO,MAAM,wBAAwB,EAAE,IAoBtC,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,IAwB9B,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,IA4BlC,CAAC;AAGF,wBAAsB,2BAA2B,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA2E3I;AAGD,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAoD1I;AAGD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAsDzJ;AAGD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA2EhL"}
@@ -0,0 +1,331 @@
1
+ import { ConfigManager } from "../config.js";
2
+ // Tool for previewing campaign recipients
3
+ export const getCampaignRecipientsTool = {
4
+ name: "get_campaign_recipients",
5
+ description: `Preview who would receive a campaign before sending.
6
+
7
+ Returns profiles that match the campaign's targeting criteria:
8
+ - **valid**: Profiles with email addresses who will receive the campaign
9
+ - **invalid**: Profiles without email or who already received it
10
+
11
+ Use this before publishing to verify targeting is correct.`,
12
+ inputSchema: {
13
+ type: "object",
14
+ properties: {
15
+ campaignId: {
16
+ type: "string",
17
+ description: "The campaign ID to preview recipients for"
18
+ }
19
+ },
20
+ required: ["campaignId"]
21
+ },
22
+ };
23
+ // Tool for getting campaign analytics
24
+ export const getCampaignAnalyticsTool = {
25
+ name: "get_campaign_analytics",
26
+ description: `Get email campaign performance metrics.
27
+
28
+ Returns:
29
+ - **total**: Number of emails sent
30
+ - **opened**: Number of emails opened (tracked via read receipts)
31
+ - **clicked**: Number of emails with link clicks
32
+
33
+ Use this to measure campaign effectiveness after sending.`,
34
+ inputSchema: {
35
+ type: "object",
36
+ properties: {
37
+ campaignId: {
38
+ type: "string",
39
+ description: "The campaign ID to get analytics for"
40
+ }
41
+ },
42
+ required: ["campaignId"]
43
+ },
44
+ };
45
+ // Tool for publishing/sending a campaign
46
+ export const sendCampaignTool = {
47
+ name: "send_campaign",
48
+ description: `Publish and send an email campaign to its recipients.
49
+
50
+ Campaign must be in 'draft' state with valid recipients.
51
+ Can schedule for later or send immediately.
52
+
53
+ **States:** draft → scheduled/processing → sent
54
+
55
+ **IMPORTANT:** This will send real emails. Use get_campaign_recipients first to verify targeting.`,
56
+ inputSchema: {
57
+ type: "object",
58
+ properties: {
59
+ campaignId: {
60
+ type: "string",
61
+ description: "The campaign ID to publish"
62
+ },
63
+ scheduleDate: {
64
+ type: "string",
65
+ description: "ISO date string to schedule sending (optional - sends immediately if omitted)"
66
+ }
67
+ },
68
+ required: ["campaignId"]
69
+ },
70
+ };
71
+ // Tool for sending test emails
72
+ export const sendTestCampaignTool = {
73
+ name: "send_test_campaign",
74
+ description: `Send test email(s) from a campaign to specific recipients.
75
+
76
+ Test emails have [TEST] prefix in subject line.
77
+ Use this to preview how the email looks before publishing to all recipients.
78
+
79
+ Provide either profile IDs or raw email addresses.`,
80
+ inputSchema: {
81
+ type: "object",
82
+ properties: {
83
+ campaignId: {
84
+ type: "string",
85
+ description: "The campaign ID to send test from"
86
+ },
87
+ profileIds: {
88
+ type: "array",
89
+ items: { type: "string" },
90
+ description: "Profile IDs to send test email to"
91
+ },
92
+ emails: {
93
+ type: "array",
94
+ items: { type: "string" },
95
+ description: "Raw email addresses to send test to"
96
+ }
97
+ },
98
+ required: ["campaignId"]
99
+ },
100
+ };
101
+ // Handler for get_campaign_recipients
102
+ export async function handleGetCampaignRecipients(args) {
103
+ try {
104
+ const configManager = new ConfigManager();
105
+ const config = await configManager.loadConfig();
106
+ if (!config) {
107
+ throw new Error('Qik MCP server not configured. Run setup first.');
108
+ }
109
+ const response = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/campaign/${args.campaignId}/preflight`, {
110
+ headers: {
111
+ 'Authorization': `Bearer ${config.accessToken}`,
112
+ 'Content-Type': 'application/json',
113
+ },
114
+ });
115
+ if (!response.ok) {
116
+ const errorText = await response.text();
117
+ throw new Error(`HTTP ${response.status}: ${errorText}`);
118
+ }
119
+ const data = await response.json();
120
+ const { recipients } = data;
121
+ let resultText = `# Campaign Recipients Preview\n\n`;
122
+ resultText += `## Summary\n`;
123
+ resultText += `- **Valid recipients**: ${recipients.valid.total}\n`;
124
+ resultText += `- **Invalid recipients**: ${recipients.invalid.total}\n\n`;
125
+ if (recipients.valid.total > 0) {
126
+ resultText += `## Valid Recipients (first 10)\n\n`;
127
+ const validSample = recipients.valid.profiles.slice(0, 10);
128
+ for (const profile of validSample) {
129
+ const name = [profile.firstName, profile.lastName].filter(Boolean).join(' ') || 'Unknown';
130
+ const email = profile.emails?.[0] || 'No email';
131
+ resultText += `- ${name} (${email})\n`;
132
+ }
133
+ if (recipients.valid.total > 10) {
134
+ resultText += `- ... and ${recipients.valid.total - 10} more\n`;
135
+ }
136
+ resultText += '\n';
137
+ }
138
+ if (recipients.invalid.total > 0) {
139
+ resultText += `## Invalid Recipients (first 10)\n\n`;
140
+ const invalidSample = recipients.invalid.profiles.slice(0, 10);
141
+ for (const item of invalidSample) {
142
+ const profile = item.profile;
143
+ const name = [profile.firstName, profile.lastName].filter(Boolean).join(' ') || 'Unknown';
144
+ resultText += `- ${name}: ${item.message}\n`;
145
+ }
146
+ if (recipients.invalid.total > 10) {
147
+ resultText += `- ... and ${recipients.invalid.total - 10} more\n`;
148
+ }
149
+ resultText += '\n';
150
+ }
151
+ resultText += `---\n`;
152
+ resultText += `šŸ’” Use \`send_campaign\` to publish, or \`send_test_campaign\` to preview first.`;
153
+ return {
154
+ content: [{
155
+ type: "text",
156
+ text: resultText
157
+ }]
158
+ };
159
+ }
160
+ catch (error) {
161
+ return {
162
+ content: [{
163
+ type: "text",
164
+ text: `āŒ Failed to get campaign recipients: ${error.message}`
165
+ }]
166
+ };
167
+ }
168
+ }
169
+ // Handler for get_campaign_analytics
170
+ export async function handleGetCampaignAnalytics(args) {
171
+ try {
172
+ const configManager = new ConfigManager();
173
+ const config = await configManager.loadConfig();
174
+ if (!config) {
175
+ throw new Error('Qik MCP server not configured. Run setup first.');
176
+ }
177
+ const response = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/campaign/${args.campaignId}/analytics`, {
178
+ headers: {
179
+ 'Authorization': `Bearer ${config.accessToken}`,
180
+ 'Content-Type': 'application/json',
181
+ },
182
+ });
183
+ if (!response.ok) {
184
+ const errorText = await response.text();
185
+ throw new Error(`HTTP ${response.status}: ${errorText}`);
186
+ }
187
+ const data = await response.json();
188
+ const { total, opened, clicked } = data;
189
+ const openRate = total > 0 ? ((opened / total) * 100).toFixed(1) : '0';
190
+ const clickRate = total > 0 ? ((clicked / total) * 100).toFixed(1) : '0';
191
+ let resultText = `# Campaign Analytics\n\n`;
192
+ resultText += `## Metrics\n`;
193
+ resultText += `- **Total sent**: ${total}\n`;
194
+ resultText += `- **Opened**: ${opened} (${openRate}%)\n`;
195
+ resultText += `- **Clicked**: ${clicked} (${clickRate}%)\n\n`;
196
+ if (total === 0) {
197
+ resultText += `āš ļø No emails have been sent yet. Campaign may still be in draft state.`;
198
+ }
199
+ return {
200
+ content: [{
201
+ type: "text",
202
+ text: resultText
203
+ }]
204
+ };
205
+ }
206
+ catch (error) {
207
+ return {
208
+ content: [{
209
+ type: "text",
210
+ text: `āŒ Failed to get campaign analytics: ${error.message}`
211
+ }]
212
+ };
213
+ }
214
+ }
215
+ // Handler for send_campaign
216
+ export async function handleSendCampaign(args) {
217
+ try {
218
+ const configManager = new ConfigManager();
219
+ const config = await configManager.loadConfig();
220
+ if (!config) {
221
+ throw new Error('Qik MCP server not configured. Run setup first.');
222
+ }
223
+ const body = {};
224
+ if (args.scheduleDate) {
225
+ body.date = args.scheduleDate;
226
+ }
227
+ const response = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/campaign/${args.campaignId}/publish`, {
228
+ method: 'POST',
229
+ headers: {
230
+ 'Authorization': `Bearer ${config.accessToken}`,
231
+ 'Content-Type': 'application/json',
232
+ },
233
+ body: JSON.stringify(body)
234
+ });
235
+ if (!response.ok) {
236
+ const errorText = await response.text();
237
+ throw new Error(`HTTP ${response.status}: ${errorText}`);
238
+ }
239
+ const campaign = await response.json();
240
+ let resultText = `# Campaign Published\n\n`;
241
+ resultText += `āœ… Campaign "${campaign.title}" has been ${args.scheduleDate ? 'scheduled' : 'published'}.\n\n`;
242
+ resultText += `- **ID**: ${campaign._id}\n`;
243
+ resultText += `- **Status**: ${campaign.state || 'processing'}\n`;
244
+ if (args.scheduleDate) {
245
+ resultText += `- **Scheduled for**: ${args.scheduleDate}\n`;
246
+ }
247
+ resultText += `\nšŸ’” Use \`get_campaign_analytics\` to track performance.`;
248
+ return {
249
+ content: [{
250
+ type: "text",
251
+ text: resultText
252
+ }]
253
+ };
254
+ }
255
+ catch (error) {
256
+ return {
257
+ content: [{
258
+ type: "text",
259
+ text: `āŒ Failed to publish campaign: ${error.message}`
260
+ }]
261
+ };
262
+ }
263
+ }
264
+ // Handler for send_test_campaign
265
+ export async function handleSendTestCampaign(args) {
266
+ try {
267
+ const configManager = new ConfigManager();
268
+ const config = await configManager.loadConfig();
269
+ if (!config) {
270
+ throw new Error('Qik MCP server not configured. Run setup first.');
271
+ }
272
+ if (!args.profileIds?.length && !args.emails?.length) {
273
+ return {
274
+ content: [{
275
+ type: "text",
276
+ text: `āŒ Please provide either profileIds or emails to send test to.`
277
+ }]
278
+ };
279
+ }
280
+ const body = {};
281
+ if (args.profileIds?.length) {
282
+ body.ids = args.profileIds;
283
+ }
284
+ if (args.emails?.length) {
285
+ body.emails = args.emails;
286
+ }
287
+ const response = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/campaign/${args.campaignId}/test`, {
288
+ method: 'POST',
289
+ headers: {
290
+ 'Authorization': `Bearer ${config.accessToken}`,
291
+ 'Content-Type': 'application/json',
292
+ },
293
+ body: JSON.stringify(body)
294
+ });
295
+ if (!response.ok) {
296
+ const errorText = await response.text();
297
+ throw new Error(`HTTP ${response.status}: ${errorText}`);
298
+ }
299
+ const result = await response.json();
300
+ let resultText = `# Test Email Sent\n\n`;
301
+ resultText += `āœ… Test email(s) sent successfully.\n\n`;
302
+ if (args.emails?.length) {
303
+ resultText += `**Sent to emails:**\n`;
304
+ for (const email of args.emails) {
305
+ resultText += `- ${email}\n`;
306
+ }
307
+ }
308
+ if (args.profileIds?.length) {
309
+ resultText += `**Sent to profile IDs:**\n`;
310
+ for (const id of args.profileIds) {
311
+ resultText += `- ${id}\n`;
312
+ }
313
+ }
314
+ resultText += `\nšŸ’” Check your inbox. Test emails have [TEST] prefix in subject.`;
315
+ return {
316
+ content: [{
317
+ type: "text",
318
+ text: resultText
319
+ }]
320
+ };
321
+ }
322
+ catch (error) {
323
+ return {
324
+ content: [{
325
+ type: "text",
326
+ text: `āŒ Failed to send test campaign: ${error.message}`
327
+ }]
328
+ };
329
+ }
330
+ }
331
+ //# sourceMappingURL=campaign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"campaign.js","sourceRoot":"","sources":["../../../src/tools/campaign.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const createCheckinTool: Tool;
3
+ export declare const checkoutTool: Tool;
4
+ export declare function handleCreateCheckin(args: {
5
+ eventId: string;
6
+ profileIds: string[];
7
+ checkedInBy?: string;
8
+ absent?: boolean;
9
+ }): Promise<{
10
+ content: Array<{
11
+ type: string;
12
+ text: string;
13
+ }>;
14
+ }>;
15
+ export declare function handleCheckout(args: {
16
+ checkinIds: string[];
17
+ checkedOutBy?: string;
18
+ pin?: string;
19
+ }): Promise<{
20
+ content: Array<{
21
+ type: string;
22
+ text: string;
23
+ }>;
24
+ }>;
25
+ //# sourceMappingURL=checkin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkin.d.ts","sourceRoot":"","sources":["../../../src/tools/checkin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG1D,eAAO,MAAM,iBAAiB,EAAE,IAiC/B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IA4B1B,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA+E9D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA4E9D"}