@sharpee/transcript-tester 0.9.65-beta → 0.9.67-beta

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 (156) hide show
  1. package/{dist-esm/cli.d.ts → cli.d.ts} +0 -0
  2. package/cli.d.ts.map +1 -0
  3. package/{dist-npm/cli.js → cli.js} +0 -0
  4. package/cli.js.map +1 -0
  5. package/{dist-esm/condition-evaluator.d.ts → condition-evaluator.d.ts} +0 -0
  6. package/condition-evaluator.d.ts.map +1 -0
  7. package/{dist-npm/condition-evaluator.js → condition-evaluator.js} +0 -0
  8. package/condition-evaluator.js.map +1 -0
  9. package/{dist-esm/fast-cli.d.ts → fast-cli.d.ts} +0 -0
  10. package/fast-cli.d.ts.map +1 -0
  11. package/{dist-npm/fast-cli.js → fast-cli.js} +0 -0
  12. package/fast-cli.js.map +1 -0
  13. package/{dist-esm/index.d.ts → index.d.ts} +0 -0
  14. package/index.d.ts.map +1 -0
  15. package/{dist-npm/index.js → index.js} +0 -0
  16. package/index.js.map +1 -0
  17. package/{dist-esm/navigator.d.ts → navigator.d.ts} +0 -0
  18. package/navigator.d.ts.map +1 -0
  19. package/{dist-npm/navigator.js → navigator.js} +0 -0
  20. package/navigator.js.map +1 -0
  21. package/package.json +6 -25
  22. package/{dist-esm/parser.d.ts → parser.d.ts} +0 -0
  23. package/parser.d.ts.map +1 -0
  24. package/{dist-npm/parser.js → parser.js} +0 -0
  25. package/parser.js.map +1 -0
  26. package/{dist-esm/reporter.d.ts → reporter.d.ts} +0 -0
  27. package/reporter.d.ts.map +1 -0
  28. package/{dist-npm/reporter.js → reporter.js} +0 -0
  29. package/reporter.js.map +1 -0
  30. package/{dist-esm/runner.d.ts → runner.d.ts} +0 -0
  31. package/runner.d.ts.map +1 -0
  32. package/{dist-npm/runner.js → runner.js} +0 -0
  33. package/runner.js.map +1 -0
  34. package/{dist/story-loader.d.ts → story-loader.d.ts} +2 -2
  35. package/story-loader.d.ts.map +1 -0
  36. package/{dist/story-loader.js → story-loader.js} +5 -5
  37. package/story-loader.js.map +1 -0
  38. package/{dist-esm/types.d.ts → types.d.ts} +0 -0
  39. package/types.d.ts.map +1 -0
  40. package/{dist-npm/types.js → types.js} +0 -0
  41. package/types.js.map +1 -0
  42. package/.turbo/turbo-build.log +0 -4
  43. package/dist/cli.d.ts +0 -11
  44. package/dist/cli.d.ts.map +0 -1
  45. package/dist/cli.js +0 -367
  46. package/dist/cli.js.map +0 -1
  47. package/dist/condition-evaluator.d.ts +0 -30
  48. package/dist/condition-evaluator.d.ts.map +0 -1
  49. package/dist/condition-evaluator.js +0 -314
  50. package/dist/condition-evaluator.js.map +0 -1
  51. package/dist/fast-cli.d.ts +0 -13
  52. package/dist/fast-cli.d.ts.map +0 -1
  53. package/dist/fast-cli.js +0 -363
  54. package/dist/fast-cli.js.map +0 -1
  55. package/dist/index.d.ts +0 -17
  56. package/dist/index.d.ts.map +0 -1
  57. package/dist/index.js +0 -48
  58. package/dist/index.js.map +0 -1
  59. package/dist/navigator.d.ts +0 -27
  60. package/dist/navigator.d.ts.map +0 -1
  61. package/dist/navigator.js +0 -303
  62. package/dist/navigator.js.map +0 -1
  63. package/dist/parser.d.ts +0 -19
  64. package/dist/parser.d.ts.map +0 -1
  65. package/dist/parser.js +0 -453
  66. package/dist/parser.js.map +0 -1
  67. package/dist/reporter.d.ts +0 -41
  68. package/dist/reporter.d.ts.map +0 -1
  69. package/dist/reporter.js +0 -386
  70. package/dist/reporter.js.map +0 -1
  71. package/dist/runner.d.ts +0 -44
  72. package/dist/runner.d.ts.map +0 -1
  73. package/dist/runner.js +0 -977
  74. package/dist/runner.js.map +0 -1
  75. package/dist/story-loader.d.ts.map +0 -1
  76. package/dist/story-loader.js.map +0 -1
  77. package/dist/types.d.ts +0 -204
  78. package/dist/types.d.ts.map +0 -1
  79. package/dist/types.js +0 -8
  80. package/dist/types.js.map +0 -1
  81. package/dist-esm/cli.d.ts.map +0 -1
  82. package/dist-esm/cli.js +0 -332
  83. package/dist-esm/cli.js.map +0 -1
  84. package/dist-esm/condition-evaluator.d.ts.map +0 -1
  85. package/dist-esm/condition-evaluator.js +0 -311
  86. package/dist-esm/condition-evaluator.js.map +0 -1
  87. package/dist-esm/fast-cli.d.ts.map +0 -1
  88. package/dist-esm/fast-cli.js +0 -328
  89. package/dist-esm/fast-cli.js.map +0 -1
  90. package/dist-esm/index.d.ts.map +0 -1
  91. package/dist-esm/index.js +0 -21
  92. package/dist-esm/index.js.map +0 -1
  93. package/dist-esm/navigator.d.ts.map +0 -1
  94. package/dist-esm/navigator.js +0 -300
  95. package/dist-esm/navigator.js.map +0 -1
  96. package/dist-esm/parser.d.ts.map +0 -1
  97. package/dist-esm/parser.js +0 -415
  98. package/dist-esm/parser.js.map +0 -1
  99. package/dist-esm/reporter.d.ts.map +0 -1
  100. package/dist-esm/reporter.js +0 -342
  101. package/dist-esm/reporter.js.map +0 -1
  102. package/dist-esm/runner.d.ts.map +0 -1
  103. package/dist-esm/runner.js +0 -941
  104. package/dist-esm/runner.js.map +0 -1
  105. package/dist-esm/story-loader.d.ts +0 -31
  106. package/dist-esm/story-loader.d.ts.map +0 -1
  107. package/dist-esm/story-loader.js +0 -131
  108. package/dist-esm/story-loader.js.map +0 -1
  109. package/dist-esm/types.d.ts.map +0 -1
  110. package/dist-esm/types.js +0 -7
  111. package/dist-esm/types.js.map +0 -1
  112. package/dist-npm/cli.d.ts +0 -11
  113. package/dist-npm/cli.d.ts.map +0 -1
  114. package/dist-npm/cli.js.map +0 -1
  115. package/dist-npm/condition-evaluator.d.ts +0 -30
  116. package/dist-npm/condition-evaluator.d.ts.map +0 -1
  117. package/dist-npm/condition-evaluator.js.map +0 -1
  118. package/dist-npm/fast-cli.d.ts +0 -13
  119. package/dist-npm/fast-cli.d.ts.map +0 -1
  120. package/dist-npm/fast-cli.js.map +0 -1
  121. package/dist-npm/index.d.ts +0 -17
  122. package/dist-npm/index.d.ts.map +0 -1
  123. package/dist-npm/index.js.map +0 -1
  124. package/dist-npm/navigator.d.ts +0 -27
  125. package/dist-npm/navigator.d.ts.map +0 -1
  126. package/dist-npm/navigator.js.map +0 -1
  127. package/dist-npm/parser.d.ts +0 -19
  128. package/dist-npm/parser.d.ts.map +0 -1
  129. package/dist-npm/parser.js.map +0 -1
  130. package/dist-npm/reporter.d.ts +0 -41
  131. package/dist-npm/reporter.d.ts.map +0 -1
  132. package/dist-npm/reporter.js.map +0 -1
  133. package/dist-npm/runner.d.ts +0 -44
  134. package/dist-npm/runner.d.ts.map +0 -1
  135. package/dist-npm/runner.js.map +0 -1
  136. package/dist-npm/story-loader.d.ts +0 -31
  137. package/dist-npm/story-loader.d.ts.map +0 -1
  138. package/dist-npm/story-loader.js +0 -169
  139. package/dist-npm/story-loader.js.map +0 -1
  140. package/dist-npm/types.d.ts +0 -204
  141. package/dist-npm/types.d.ts.map +0 -1
  142. package/dist-npm/types.js.map +0 -1
  143. package/src/cli.ts +0 -385
  144. package/src/condition-evaluator.ts +0 -382
  145. package/src/fast-cli.ts +0 -403
  146. package/src/index.ts +0 -26
  147. package/src/navigator.ts +0 -365
  148. package/src/parser.ts +0 -488
  149. package/src/reporter.ts +0 -409
  150. package/src/runner.ts +0 -1152
  151. package/src/story-loader.ts +0 -168
  152. package/src/types.ts +0 -244
  153. package/tsconfig.esm.json +0 -11
  154. package/tsconfig.esm.tsbuildinfo +0 -1
  155. package/tsconfig.json +0 -22
  156. package/tsconfig.tsbuildinfo +0 -1
@@ -1,342 +0,0 @@
1
- /**
2
- * Transcript Test Reporter
3
- *
4
- * Formats and displays test results with colors and diffs.
5
- */
6
- import * as fs from 'fs';
7
- import * as path from 'path';
8
- // Use chalk for colors (chalk@4 for CommonJS compatibility)
9
- import chalk from 'chalk';
10
- /**
11
- * Report results of running a single transcript
12
- */
13
- export function reportTranscript(result, options = {}) {
14
- const { verbose = false } = options;
15
- console.log();
16
- console.log(chalk.bold(`Running: ${result.transcript.filePath}`));
17
- if (result.transcript.header.title) {
18
- console.log(chalk.gray(` "${result.transcript.header.title}"`));
19
- }
20
- console.log();
21
- for (const cmd of result.commands) {
22
- reportCommand(cmd, verbose);
23
- }
24
- // Summary line
25
- console.log();
26
- reportTranscriptSummary(result);
27
- }
28
- /**
29
- * Report a single command result
30
- */
31
- function reportCommand(result, verbose) {
32
- const { command, passed, expectedFailure, skipped, actualOutput, error } = result;
33
- // Command input
34
- const inputDisplay = chalk.cyan(`> ${command.input}`);
35
- // Status indicator
36
- let status;
37
- if (skipped) {
38
- status = chalk.yellow('SKIP');
39
- }
40
- else if (expectedFailure) {
41
- status = chalk.magenta('EXPECTED FAIL');
42
- }
43
- else if (passed) {
44
- status = chalk.green('PASS');
45
- }
46
- else {
47
- status = chalk.red('FAIL');
48
- }
49
- // Compact format
50
- console.log(` ${inputDisplay.padEnd(50)} ${status}`);
51
- // Verbose output
52
- if (verbose || (!passed && !skipped && !expectedFailure)) {
53
- if (error) {
54
- console.log(chalk.red(` Error: ${error}`));
55
- }
56
- // Show assertion details
57
- for (const ar of result.assertionResults) {
58
- if (!ar.passed || verbose) {
59
- const icon = ar.passed ? chalk.green('✓') : chalk.red('✗');
60
- const msg = formatAssertion(ar);
61
- console.log(` ${icon} ${msg}`);
62
- }
63
- }
64
- // Always show actual output in verbose mode, or for failures
65
- if (verbose || (!passed && !skipped)) {
66
- console.log(chalk.gray(' ─── Output ───'));
67
- for (const line of actualOutput.split('\n')) {
68
- if (line.trim()) {
69
- console.log(chalk.white(` ${line}`));
70
- }
71
- }
72
- console.log(chalk.gray(' ─────────────'));
73
- // Show events in verbose mode
74
- if (verbose && result.actualEvents && result.actualEvents.length > 0) {
75
- console.log(chalk.gray(` ─── Events (${result.actualEvents.length}) ───`));
76
- for (const event of result.actualEvents) {
77
- const dataStr = Object.keys(event.data).length > 0
78
- ? ` ${chalk.gray(JSON.stringify(event.data))}`
79
- : '';
80
- console.log(chalk.blue(` • ${event.type}`) + dataStr);
81
- }
82
- console.log(chalk.gray(' ─────────────'));
83
- }
84
- }
85
- // Show diff for failures with expected output
86
- if (!passed && !skipped && command.expectedOutput.length > 0) {
87
- console.log();
88
- console.log(chalk.gray(' Expected:'));
89
- for (const line of command.expectedOutput) {
90
- console.log(chalk.green(` + ${line}`));
91
- }
92
- }
93
- }
94
- // Show reason for skips and expected failures
95
- if (skipped || expectedFailure) {
96
- const reason = result.assertionResults[0]?.assertion.reason;
97
- if (reason) {
98
- console.log(chalk.gray(` (${reason})`));
99
- }
100
- }
101
- }
102
- /**
103
- * Format an assertion result for display
104
- */
105
- function formatAssertion(result) {
106
- const { assertion, message } = result;
107
- switch (assertion.type) {
108
- case 'ok':
109
- return message || 'Exact match';
110
- case 'ok-contains':
111
- return message || `Contains "${assertion.value}"`;
112
- case 'ok-not-contains':
113
- return message || `Does not contain "${assertion.value}"`;
114
- case 'ok-matches':
115
- return message || `Matches ${assertion.pattern}`;
116
- case 'fail':
117
- return `Expected failure: ${assertion.reason}`;
118
- case 'skip':
119
- return `Skipped: ${assertion.reason || 'no reason given'}`;
120
- case 'todo':
121
- return `TODO: ${assertion.reason || 'not implemented'}`;
122
- case 'event-count':
123
- return message || `Event count: ${assertion.eventCount}`;
124
- case 'event-assert': {
125
- const prefix = assertion.assertTrue ? 'assertTrue' : 'assertFalse';
126
- const posStr = assertion.eventPosition ? ` Event ${assertion.eventPosition}:` : '';
127
- const dataStr = assertion.eventData ? ` ${JSON.stringify(assertion.eventData)}` : '';
128
- return message || `${prefix}:${posStr} ${assertion.eventType}${dataStr}`;
129
- }
130
- case 'state-assert': {
131
- const prefix = assertion.assertTrue ? 'assertTrue' : 'assertFalse';
132
- return message || `${prefix}: ${assertion.stateExpression}`;
133
- }
134
- default:
135
- return message || 'Unknown assertion';
136
- }
137
- }
138
- /**
139
- * Report transcript summary
140
- */
141
- function reportTranscriptSummary(result) {
142
- const { passed, failed, expectedFailures, skipped, duration } = result;
143
- const parts = [];
144
- if (passed > 0) {
145
- parts.push(chalk.green(`${passed} passed`));
146
- }
147
- if (failed > 0) {
148
- parts.push(chalk.red(`${failed} failed`));
149
- }
150
- if (expectedFailures > 0) {
151
- parts.push(chalk.magenta(`${expectedFailures} expected failures`));
152
- }
153
- if (skipped > 0) {
154
- parts.push(chalk.yellow(`${skipped} skipped`));
155
- }
156
- console.log(` ${parts.join(', ')} (${duration}ms)`);
157
- }
158
- /**
159
- * Report results of running multiple transcripts
160
- * Note: Individual transcripts should already be reported as they run.
161
- * This function only shows the aggregate summary.
162
- */
163
- export function reportTestRun(result, options = {}) {
164
- console.log();
165
- console.log(chalk.bold('━'.repeat(60)));
166
- console.log();
167
- // Overall summary
168
- const { totalPassed, totalFailed, totalExpectedFailures, totalSkipped, totalDuration } = result;
169
- const total = totalPassed + totalFailed + totalExpectedFailures + totalSkipped;
170
- console.log(chalk.bold(`Total: ${total} tests in ${result.transcripts.length} transcripts`));
171
- const parts = [];
172
- if (totalPassed > 0) {
173
- parts.push(chalk.green(`${totalPassed} passed`));
174
- }
175
- if (totalFailed > 0) {
176
- parts.push(chalk.red(`${totalFailed} failed`));
177
- }
178
- if (totalExpectedFailures > 0) {
179
- parts.push(chalk.magenta(`${totalExpectedFailures} expected failures`));
180
- }
181
- if (totalSkipped > 0) {
182
- parts.push(chalk.yellow(`${totalSkipped} skipped`));
183
- }
184
- console.log(parts.join(', '));
185
- console.log(chalk.gray(`Duration: ${totalDuration}ms`));
186
- console.log();
187
- // Final status
188
- if (totalFailed === 0) {
189
- console.log(chalk.green.bold('✓ All tests passed!'));
190
- }
191
- else {
192
- console.log(chalk.red.bold(`✗ ${totalFailed} test(s) failed`));
193
- }
194
- }
195
- /**
196
- * Get exit code based on results
197
- */
198
- export function getExitCode(result) {
199
- if (result.totalFailed > 0) {
200
- return 1;
201
- }
202
- return 0;
203
- }
204
- /**
205
- * Generate a timestamp string for filenames
206
- */
207
- export function generateTimestamp() {
208
- const now = new Date();
209
- const year = now.getFullYear();
210
- const month = String(now.getMonth() + 1).padStart(2, '0');
211
- const day = String(now.getDate()).padStart(2, '0');
212
- const hours = String(now.getHours()).padStart(2, '0');
213
- const minutes = String(now.getMinutes()).padStart(2, '0');
214
- const seconds = String(now.getSeconds()).padStart(2, '0');
215
- return `${year}-${month}-${day}_${hours}-${minutes}-${seconds}`;
216
- }
217
- /**
218
- * Write test results to a JSON file
219
- */
220
- export function writeResultsToJson(result, outputDir, timestamp) {
221
- // Ensure output directory exists
222
- if (!fs.existsSync(outputDir)) {
223
- fs.mkdirSync(outputDir, { recursive: true });
224
- }
225
- const filename = `results_${timestamp}.json`;
226
- const filepath = path.join(outputDir, filename);
227
- // Write JSON with serializable data (strip non-serializable like RegExp)
228
- const serializableResult = JSON.parse(JSON.stringify(result, (key, value) => {
229
- if (value instanceof RegExp) {
230
- return value.toString();
231
- }
232
- return value;
233
- }));
234
- fs.writeFileSync(filepath, JSON.stringify(serializableResult, null, 2));
235
- return filepath;
236
- }
237
- /**
238
- * Write a human-readable report to a text file
239
- */
240
- export function writeReportToFile(result, outputDir, timestamp) {
241
- // Ensure output directory exists
242
- if (!fs.existsSync(outputDir)) {
243
- fs.mkdirSync(outputDir, { recursive: true });
244
- }
245
- const filename = `report_${timestamp}.txt`;
246
- const filepath = path.join(outputDir, filename);
247
- const lines = [];
248
- lines.push('='.repeat(60));
249
- lines.push('TRANSCRIPT TEST REPORT');
250
- lines.push(`Generated: ${new Date().toISOString()}`);
251
- lines.push('='.repeat(60));
252
- lines.push('');
253
- // Overall summary
254
- const { totalPassed, totalFailed, totalExpectedFailures, totalSkipped, totalDuration } = result;
255
- const total = totalPassed + totalFailed + totalExpectedFailures + totalSkipped;
256
- lines.push(`Total: ${total} tests in ${result.transcripts.length} transcript(s)`);
257
- lines.push(` Passed: ${totalPassed}`);
258
- lines.push(` Failed: ${totalFailed}`);
259
- lines.push(` Expected Failures: ${totalExpectedFailures}`);
260
- lines.push(` Skipped: ${totalSkipped}`);
261
- lines.push(` Duration: ${totalDuration}ms`);
262
- lines.push('');
263
- // Per-transcript details
264
- for (const transcript of result.transcripts) {
265
- lines.push('-'.repeat(60));
266
- lines.push(`Transcript: ${transcript.transcript.filePath}`);
267
- if (transcript.transcript.header.title) {
268
- lines.push(` Title: ${transcript.transcript.header.title}`);
269
- }
270
- lines.push(` Results: ${transcript.passed} passed, ${transcript.failed} failed, ${transcript.expectedFailures} expected failures, ${transcript.skipped} skipped`);
271
- lines.push('');
272
- // Command details (only show failures in summary)
273
- const failedCommands = transcript.commands.filter(c => !c.passed && !c.skipped && !c.expectedFailure);
274
- if (failedCommands.length > 0) {
275
- lines.push(' FAILURES:');
276
- for (const cmd of failedCommands) {
277
- lines.push(` Line ${cmd.command.lineNumber}: > ${cmd.command.input}`);
278
- if (cmd.error) {
279
- lines.push(` Error: ${cmd.error}`);
280
- }
281
- for (const ar of cmd.assertionResults) {
282
- if (!ar.passed) {
283
- lines.push(` - ${ar.message || formatAssertionPlain(ar.assertion)}`);
284
- }
285
- }
286
- lines.push(' Actual output:');
287
- for (const line of cmd.actualOutput.split('\n')) {
288
- if (line.trim()) {
289
- lines.push(` ${line}`);
290
- }
291
- }
292
- lines.push('');
293
- }
294
- }
295
- }
296
- lines.push('='.repeat(60));
297
- if (totalFailed === 0) {
298
- lines.push('ALL TESTS PASSED');
299
- }
300
- else {
301
- lines.push(`${totalFailed} TEST(S) FAILED`);
302
- }
303
- lines.push('='.repeat(60));
304
- fs.writeFileSync(filepath, lines.join('\n'));
305
- return filepath;
306
- }
307
- /**
308
- * Format an assertion without chalk colors (for file output)
309
- */
310
- function formatAssertionPlain(assertion) {
311
- switch (assertion.type) {
312
- case 'ok':
313
- return 'Exact match';
314
- case 'ok-contains':
315
- return `Contains "${assertion.value}"`;
316
- case 'ok-not-contains':
317
- return `Does not contain "${assertion.value}"`;
318
- case 'ok-matches':
319
- return `Matches ${assertion.pattern}`;
320
- case 'fail':
321
- return `Expected failure: ${assertion.reason}`;
322
- case 'skip':
323
- return `Skipped: ${assertion.reason || 'no reason given'}`;
324
- case 'todo':
325
- return `TODO: ${assertion.reason || 'not implemented'}`;
326
- case 'event-count':
327
- return `Event count: ${assertion.eventCount}`;
328
- case 'event-assert': {
329
- const prefix = assertion.assertTrue ? 'assertTrue' : 'assertFalse';
330
- const posStr = assertion.eventPosition ? ` Event ${assertion.eventPosition}:` : '';
331
- const dataStr = assertion.eventData ? ` ${JSON.stringify(assertion.eventData)}` : '';
332
- return `${prefix}:${posStr} ${assertion.eventType}${dataStr}`;
333
- }
334
- case 'state-assert': {
335
- const prefix = assertion.assertTrue ? 'assertTrue' : 'assertFalse';
336
- return `${prefix}: ${assertion.stateExpression}`;
337
- }
338
- default:
339
- return 'Unknown assertion';
340
- }
341
- }
342
- //# sourceMappingURL=reporter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,UAAU,EAWV,gBAAgB,EAChB,aAAa,EAEd,MAAM,SAAS,CAAC;AAIjB;;GAEG;AACH,UAAU,UAAU;IAClB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACxD,SAAS,CAAC,IAAI,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IACjD,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED;;GAEG;AACH,UAAU,UAAU;IAClB,aAAa,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC;IAChC,SAAS,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,gBAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;IACrC,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC;IACzB,WAAW,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACnD,WAAW,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,GAAG,EAAE,CAAC;IAC9E,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,GAAG,GAAG,EAAE,CAAC;IACvD,WAAW,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC;IACvC,QAAQ,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACjE,SAAS,CAAC,IAAI,GAAG,CAAC;CACnB;AAmBD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAoC3B"}