@weave_protocol/mund 0.5.1 → 0.5.2

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
@@ -547,6 +547,34 @@ Mund uses YAML-based rules in `rules/default.yaml`. Example:
547
547
  enabled: true
548
548
  ```
549
549
 
550
+ ### What the injection rules look for (0.5.2)
551
+
552
+ The injection rules look for intent, not a single phrase, and run on normalized text with zero-width characters removed and Unicode normalized. These families of rules fire on any phrasing that matches them:
553
+
554
+ | Rule | Catches |
555
+ |---|---|
556
+ | `prompt_injection_ignore` | Ignoring, forgetting or overriding earlier instructions (EN, DE, ES, FR, IT, PT) |
557
+ | `prompt_injection_new_task` | A new task, role or directive that replaces the agent's own |
558
+ | `prompt_injection_ai_addressed` | Text written to an AI reader ("if you are an AI…") |
559
+ | `prompt_injection_concealment` | Hiding actions from the user |
560
+ | `prompt_injection_authority` | False system, admin or developer authority |
561
+ | `prompt_injection_jailbreak` | Unrestricted personas, "no ethical guidelines", developer mode, forced prefixes |
562
+ | `prompt_injection_decode_execute` | Decode or translate, then act on the result |
563
+ | `prompt_injection_system` | System-prompt and instruction extraction |
564
+ | `prompt_injection_data_harvest` | Collecting the user's history, contacts or credentials |
565
+ | `transaction_directive` | Moving money to an account |
566
+ | `exfiltration_directive`, `templated_exfil_url` | Sending private data to a URL or address, and URLs with `{SESSION_TOKEN}`-style placeholders |
567
+ | `credential_file_access`, `environment_dump`, `log_tampering`, `privilege_escalation` | Dangerous operations requested in content |
568
+
569
+ Mund also reads text a person doesn't see:
570
+ - hidden HTML elements, `noscript`, `template` and comments;
571
+ - base64 that decodes to prose;
572
+ - Unicode tag characters;
573
+ - words split by zero-width characters;
574
+ - tool-call syntax embedded in content.
575
+
576
+ Treat a hit at `medium` or higher as actionable. That is the threshold Weave's CI uses: it holds detection on our attack corpus and false positives on a benign corpus (`tests/fixtures/benign`) to a committed baseline.
577
+
550
578
  ### Severity Levels
551
579
 
552
580
  | Level | Action | Example |
@@ -7,6 +7,7 @@ export declare class InjectionDetector implements IAnalyzer {
7
7
  name: string;
8
8
  type: string;
9
9
  analyze(content: string, rules: DetectionRule[]): Promise<SecurityIssue[]>;
10
+ private applyRules;
10
11
  /**
11
12
  * Normalize content to detect obfuscated injection attempts
12
13
  */
@@ -32,5 +33,11 @@ export declare class InjectionDetector implements IAnalyzer {
32
33
  */
33
34
  private getSuggestion;
34
35
  }
36
+ /** Text inside HTML a person doesn't see. */
37
+ export declare function hiddenHtmlText(html: string): string[];
38
+ /** Base64 runs that decode to readable text (not images or binary). */
39
+ export declare function decodeBase64Prose(content: string): string[];
40
+ /** ASCII hidden in Unicode tag characters, or undefined. */
41
+ export declare function decodeUnicodeTags(content: string): string | undefined;
35
42
  export default InjectionDetector;
36
43
  //# sourceMappingURL=injection-detector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"injection-detector.d.ts","sourceRoot":"","sources":["../../src/analyzers/injection-detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,SAAS,EAEf,MAAM,aAAa,CAAC;AAGrB,qBAAa,iBAAkB,YAAW,SAAS;IACjD,IAAI,SAAuB;IAC3B,IAAI,SAAe;IAEb,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAyChF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmEzB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAMjC;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,aAAa;CAUtB;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"injection-detector.d.ts","sourceRoot":"","sources":["../../src/analyzers/injection-detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,SAAS,EAEf,MAAM,aAAa,CAAC;AAGrB,qBAAa,iBAAkB,YAAW,SAAS;IACjD,IAAI,SAAuB;IAC3B,IAAI,SAAe;IAEb,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAyBhF,OAAO,CAAC,UAAU;IA6BlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmIzB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAMjC;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,aAAa;CAiBtB;AAWD,6CAA6C;AAC7C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBrD;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAe3D;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOrE;AAED,eAAe,iBAAiB,CAAC"}
@@ -7,27 +7,54 @@ export class InjectionDetector {
7
7
  name = 'InjectionDetector';
8
8
  type = 'injection';
9
9
  async analyze(content, rules) {
10
- const issues = [];
11
10
  const injectionRules = rules.filter(r => r.type === 'injection' && r.enabled);
12
- // Normalize content for detection
13
- const normalizedContent = this.normalizeContent(content);
14
- for (const rule of injectionRules) {
11
+ // The text as written, plus text an agent may see that a person doesn't:
12
+ // base64 that decodes to prose and invisible Unicode "tag" characters.
13
+ const views = [{ text: content }];
14
+ for (const decoded of decodeBase64Prose(content))
15
+ views.push({ text: decoded, via: 'base64' });
16
+ const tagText = decodeUnicodeTags(content);
17
+ if (tagText)
18
+ views.push({ text: tagText, via: 'unicode tags' });
19
+ const issues = [];
20
+ const seen = new Set();
21
+ for (const view of views) {
22
+ for (const issue of this.applyRules(content, view.text, injectionRules, view.via)) {
23
+ // One finding per rule per view position; the same phrase found twice via decoding counts once
24
+ const key = `${issue.rule_id}:${view.via ?? ''}:${issue.location?.start ?? issue.match}`;
25
+ if (!seen.has(key)) {
26
+ seen.add(key);
27
+ issues.push(issue);
28
+ }
29
+ }
30
+ }
31
+ // Additional heuristic checks
32
+ issues.push(...this.heuristicAnalysis(content));
33
+ return issues;
34
+ }
35
+ applyRules(original, text, rules, via) {
36
+ const issues = [];
37
+ const normalizedContent = this.normalizeContent(text);
38
+ for (const rule of rules) {
15
39
  if (!rule.pattern)
16
40
  continue;
17
41
  try {
18
42
  const regex = compileRulePattern(rule.pattern, 'gi');
19
43
  let match;
20
44
  while ((match = regex.exec(normalizedContent)) !== null) {
45
+ if (match[0].length === 0) {
46
+ regex.lastIndex++;
47
+ continue;
48
+ }
21
49
  const matchText = match[0];
22
- const location = this.getLocation(content, match.index, matchText.length);
23
50
  issues.push({
24
51
  rule_id: rule.id,
25
- rule_name: rule.name,
52
+ rule_name: via ? `${rule.name} (hidden in ${via})` : rule.name,
26
53
  type: rule.type,
27
54
  severity: rule.severity,
28
55
  action: rule.action,
29
56
  match: this.sanitizeMatch(matchText),
30
- location,
57
+ location: via ? undefined : this.getLocation(original, match.index, matchText.length),
31
58
  suggestion: this.getSuggestion(rule.id)
32
59
  });
33
60
  }
@@ -36,9 +63,6 @@ export class InjectionDetector {
36
63
  console.error(`Invalid regex pattern in rule ${rule.id}:`, error);
37
64
  }
38
65
  }
39
- // Additional heuristic checks
40
- const heuristicIssues = this.heuristicAnalysis(content);
41
- issues.push(...heuristicIssues);
42
66
  return issues;
43
67
  }
44
68
  /**
@@ -46,42 +70,105 @@ export class InjectionDetector {
46
70
  */
47
71
  normalizeContent(content) {
48
72
  return content
49
- // Remove zero-width characters
50
- .replace(/[\u200B-\u200D\uFEFF]/g, '')
51
- // Normalize Unicode variations
73
+ // Remove zero-width and invisible formatting characters
74
+ .replace(/[​-‍⁠­]/g, '')
75
+ // Normalize Unicode variations (fullwidth, ligatures)
52
76
  .normalize('NFKC')
53
- // Collapse multiple spaces
54
- .replace(/\s+/g, ' ')
55
- // Remove common obfuscation characters
56
- .replace(/[^\w\s.,!?'"()-]/g, ' ');
77
+ // Curly quotes read as straight ones ("don’t" → "don't")
78
+ .replace(/[‘’‛′]/g, "'")
79
+ .replace(/[“”‟″]/g, '"')
80
+ // Keep letters in every script (accents included), digits and light punctuation
81
+ .replace(/[^\p{L}\p{N}\s.,!?'"()-]/gu, ' ')
82
+ // Collapse whitespace
83
+ .replace(/\s+/g, ' ');
57
84
  }
58
85
  /**
59
86
  * Heuristic analysis for injection patterns
60
87
  */
61
88
  heuristicAnalysis(content) {
62
89
  const issues = [];
63
- // Check for role switching attempts
90
+ // Role markers. Chat-template tokens never belong in content, so they're
91
+ // high; a plain "System: you are" also opens many legitimate transcripts.
64
92
  const roleSwitchPatterns = [
65
- /\bsystem\s*:\s*you\s+are/i,
66
- /\bassistant\s*:\s*i\s+(will|can|am)/i,
67
- /\[system\]/i,
68
- /\<\|?system\|?\>/i,
69
- /\{system_prompt\}/i,
93
+ [/<\|\s*(?:im_start|im_end|system|user|assistant|endoftext|start_header_id|end_header_id|eot_id)\s*\|>/i, 'high'],
94
+ [/\[\/?INST\]|<<\/?SYS>>/, 'high'],
95
+ [/\[\s*(?:system|admin|administrator|developer)(?:\s+(?:override|message|prompt|note|instruction)s?)?[^\]\n]{0,30}\]/i, 'high'],
96
+ [/\<\|?system\|?\>/i, 'high'],
97
+ [/\{system_prompt\}/i, 'high'],
98
+ [/^\s*#{1,4}\s*(?:system|instruction)s?\s*:/im, 'high'],
99
+ [/\bsystem\s*:\s*you\s+are/i, 'low'],
100
+ [/\bassistant\s*:\s*i\s+(will|can|am)/i, 'low'],
70
101
  ];
71
- for (const pattern of roleSwitchPatterns) {
102
+ for (const [pattern, severity] of roleSwitchPatterns) {
72
103
  const match = content.match(pattern);
73
104
  if (match) {
74
105
  issues.push({
75
106
  rule_id: 'heuristic_role_switch',
76
107
  rule_name: 'Role Switching Attempt',
77
108
  type: 'injection',
78
- severity: 'high',
109
+ severity,
79
110
  action: 'alert',
80
111
  match: this.sanitizeMatch(match[0]),
81
112
  suggestion: 'This content appears to attempt to inject role-switching markers.'
82
113
  });
83
114
  }
84
115
  }
116
+ // Instructions in HTML a person never sees: hidden elements, noscript,
117
+ // template and comments. Hidden menus and labels are common; hidden text
118
+ // that addresses a reader with a directive is not.
119
+ for (const hidden of hiddenHtmlText(content)) {
120
+ if (ADDRESSES_READER.test(hidden) && DIRECTIVE_VERB.test(hidden)) {
121
+ issues.push({
122
+ rule_id: 'heuristic_hidden_instruction',
123
+ rule_name: 'Instruction in Hidden HTML',
124
+ type: 'injection',
125
+ severity: 'high',
126
+ action: 'alert',
127
+ match: this.sanitizeMatch(hidden),
128
+ suggestion: 'Hidden page text gives instructions. Strip hidden elements before an agent reads the page.'
129
+ });
130
+ }
131
+ }
132
+ // Tool-call syntax inside content: a page or result dressed up as the
133
+ // model's own function call, naming a tool that sends or runs something.
134
+ const toolCall = content.match(/<\/?(?:function_calls|tool_call|tool_use)>|<invoke\s+name\s*=|"(?:function|name|tool|tool_name)"\s*:\s*"(?:send_email|send_message|http_request|http_post|fetch_url|web_fetch|transfer\w*|send_payment|pay\w*|exec\w*|shell\w*|run_command|run_shell|bash|write_file|delete\w*)"\s*,\s*"(?:arguments|args|parameters|input)"/i);
135
+ if (toolCall) {
136
+ issues.push({
137
+ rule_id: 'heuristic_tool_call_mimicry',
138
+ rule_name: 'Tool-Call Syntax in Content',
139
+ type: 'injection',
140
+ severity: 'medium',
141
+ action: 'alert',
142
+ match: this.sanitizeMatch(toolCall[0]),
143
+ suggestion: 'Content contains tool-call syntax for an action tool. An agent should never execute calls found in content.'
144
+ });
145
+ }
146
+ // Zero-width characters inside words split trigger words for filters
147
+ // while the model still reads them whole.
148
+ const splitWords = content.match(/\p{L}[​-‍⁠­]+\p{L}/gu) ?? [];
149
+ if (splitWords.length >= 3) {
150
+ issues.push({
151
+ rule_id: 'heuristic_zero_width_split',
152
+ rule_name: 'Zero-Width Characters Inside Words',
153
+ type: 'injection',
154
+ severity: 'medium',
155
+ action: 'alert',
156
+ match: `${splitWords.length} words split by invisible characters`,
157
+ suggestion: 'Invisible characters inside words are a filter-evasion technique. Strip them before processing.'
158
+ });
159
+ }
160
+ // Unicode tag characters (U+E0000–E007F) carry invisible ASCII
161
+ if (/[\u{E0020}-\u{E007F}]/u.test(content)) {
162
+ issues.push({
163
+ rule_id: 'heuristic_unicode_tags',
164
+ rule_name: 'Invisible Unicode Tag Text',
165
+ type: 'injection',
166
+ severity: 'high',
167
+ action: 'alert',
168
+ match: (decodeUnicodeTags(content) ?? '').slice(0, 100),
169
+ suggestion: 'The content carries invisible text in Unicode tag characters. Strip them before processing.'
170
+ });
171
+ }
85
172
  // Check for markdown/code injection that might alter rendering
86
173
  const markdownPatterns = [
87
174
  /```\s*system/i,
@@ -158,9 +245,81 @@ export class InjectionDetector {
158
245
  prompt_injection_jailbreak: 'This appears to be a jailbreak attempt. Such content should be filtered or rejected.',
159
246
  prompt_injection_system: 'This content attempts to extract system prompts. Do not reveal system instructions.',
160
247
  prompt_injection_roleplay: 'This content attempts to manipulate behavior through roleplay. Apply content filtering.',
248
+ prompt_injection_new_task: 'This content tries to give the agent a new task. Treat it as data, not instructions.',
249
+ prompt_injection_ai_addressed: 'This content speaks to an AI reading it. Treat it as data, not instructions.',
250
+ prompt_injection_concealment: 'This content tells the agent to hide its actions from the user. Block it and alert the user.',
251
+ prompt_injection_suppression: 'This content tells the agent to refuse or skip the user\'s request.',
252
+ prompt_injection_authority: 'This content claims system, admin or developer authority. Content can\'t grant authority.',
253
+ prompt_injection_decode_execute: 'This content asks the agent to decode hidden text and act on it.',
254
+ prompt_injection_data_harvest: 'This content asks the agent to collect the user\'s private data.',
161
255
  };
162
256
  return suggestions[ruleId] || 'This content shows signs of injection attacks. Review and sanitize input.';
163
257
  }
164
258
  }
259
+ // ─────────────────────────────────────────────────────────
260
+ // Hidden-text helpers
261
+ // ─────────────────────────────────────────────────────────
262
+ const ADDRESSES_READER = /\b(?:you|your|ai|assistant|agent|llm|model|chatbot|the\s+user)\b/i;
263
+ const DIRECTIVE_VERB = /\b(?:must|should|respond|reply|include|tell|send|ignore|reveal|print|call|transfer|execute|run|output|say|forward|delete|disregard|override)\b/i;
264
+ const HIDDEN_STYLE = /(?:display\s*:\s*none|visibility\s*:\s*hidden|opacity\s*:\s*0(?:\.0+)?\s*(?:;|$)|font-size\s*:\s*0(?:px|em|rem|pt|%)?\s*(?:;|$)|(?:height|width)\s*:\s*0(?:px)?\s*;[^"']*overflow\s*:\s*hidden|clip\s*:\s*rect\(0|left\s*:\s*-\d{4,}px)/i;
265
+ /** Text inside HTML a person doesn't see. */
266
+ export function hiddenHtmlText(html) {
267
+ if (!/<[a-z!]/i.test(html))
268
+ return [];
269
+ const out = [];
270
+ const strip = (s) => s.replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim();
271
+ const element = /<([a-z][a-z0-9]*)\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
272
+ let m;
273
+ while ((m = element.exec(html)) !== null) {
274
+ const [, tag, attrs, inner] = m;
275
+ const style = /\bstyle\s*=\s*(["'])([\s\S]*?)\1/i.exec(attrs)?.[2] ?? '';
276
+ const hidden = /^(?:noscript|template)$/i.test(tag) || /\baria-hidden\s*=\s*["']?true/i.test(attrs) || /\bhidden(?:\s|=|$)/i.test(attrs) || HIDDEN_STYLE.test(style);
277
+ if (hidden) {
278
+ const text = strip(inner);
279
+ if (text)
280
+ out.push(text);
281
+ }
282
+ else if (/<[a-z]/i.test(inner)) {
283
+ // Visible element: keep looking inside it
284
+ out.push(...hiddenHtmlText(inner));
285
+ }
286
+ }
287
+ for (const c of html.matchAll(/<!--([\s\S]*?)-->/g)) {
288
+ const text = c[1].trim();
289
+ if (text)
290
+ out.push(text);
291
+ }
292
+ return out;
293
+ }
294
+ /** Base64 runs that decode to readable text (not images or binary). */
295
+ export function decodeBase64Prose(content) {
296
+ const out = [];
297
+ for (const m of content.matchAll(/(?<![A-Za-z0-9+/=])[A-Za-z0-9+/]{24,}={0,2}(?![A-Za-z0-9+/=])/g)) {
298
+ // data: URIs carry files, not text
299
+ if (/base64,\s*$/i.test(content.slice(Math.max(0, m.index - 10), m.index)))
300
+ continue;
301
+ let text;
302
+ try {
303
+ text = typeof atob === 'function' ? atob(m[0]) : Buffer.from(m[0], 'base64').toString('binary');
304
+ }
305
+ catch {
306
+ continue;
307
+ }
308
+ const printable = text.replace(/[^\x20-\x7E\n\t]/g, '').length / Math.max(text.length, 1);
309
+ if (printable > 0.95 && /[a-z]{2,}\s+[a-z]{2,}/i.test(text))
310
+ out.push(text);
311
+ }
312
+ return out;
313
+ }
314
+ /** ASCII hidden in Unicode tag characters, or undefined. */
315
+ export function decodeUnicodeTags(content) {
316
+ let out = '';
317
+ for (const ch of content) {
318
+ const cp = ch.codePointAt(0);
319
+ if (cp >= 0xe0020 && cp <= 0xe007e)
320
+ out += String.fromCharCode(cp - 0xe0000);
321
+ }
322
+ return out.trim() || undefined;
323
+ }
165
324
  export default InjectionDetector;
166
325
  //# sourceMappingURL=injection-detector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"injection-detector.js","sourceRoot":"","sources":["../../src/analyzers/injection-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"injection-detector.js","sourceRoot":"","sources":["../../src/analyzers/injection-detector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM5D,eAAO,MAAM,cAAc,EAAE,UAQ5B,CAAC;AAMF,eAAO,MAAM,kBAAkB,UAAY,CAAC;AAC5C,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAMvC,eAAO,MAAM,eAAe,EAAE,aAAa,EAuT1C,CAAC;AAMF,eAAO,MAAM,YAAY,EAAE,aAAa,EAmDvC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,aAAa,EAuExC,CAAC;AAMF,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAyC7C,CAAC;AAMF,eAAO,MAAM,qBAAqB,EAAE,aAAa,EA+BhD,CAAC;AAMF,eAAO,MAAM,sBAAsB,UAoBlC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,aAAa,EAMxC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM5D,eAAO,MAAM,cAAc,EAAE,UAQ5B,CAAC;AAMF,eAAO,MAAM,kBAAkB,UAAY,CAAC;AAC5C,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAMvC,eAAO,MAAM,eAAe,EAAE,aAAa,EAuT1C,CAAC;AAMF,eAAO,MAAM,YAAY,EAAE,aAAa,EAmDvC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,aAAa,EAuIxC,CAAC;AAMF,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAsI7C,CAAC;AAMF,eAAO,MAAM,qBAAqB,EAAE,aAAa,EAmDhD,CAAC;AAMF,eAAO,MAAM,sBAAsB,UAoBlC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,aAAa,EAMxC,CAAC"}