astn 0.111.30 → 0.112.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 (59) hide show
  1. package/dist/exceptional/authoring_parse/ast/context.d.ts +11 -0
  2. package/dist/exceptional/authoring_parse/ast/context.js +43 -0
  3. package/dist/exceptional/authoring_parse/ast/helpers.d.ts +10 -0
  4. package/dist/exceptional/authoring_parse/ast/helpers.js +45 -0
  5. package/dist/exceptional/authoring_parse/ast/iterator.d.ts +9 -0
  6. package/dist/exceptional/authoring_parse/ast/iterator.js +29 -0
  7. package/dist/exceptional/authoring_parse/ast/refiners.d.ts +10 -0
  8. package/dist/exceptional/authoring_parse/ast/refiners.js +266 -0
  9. package/dist/exceptional/authoring_parse/astn_parse_generic.d.ts +4 -3
  10. package/dist/exceptional/authoring_parse/astn_parse_generic.js +1 -1
  11. package/dist/exceptional/authoring_parse/iterator.d.ts +7 -0
  12. package/dist/exceptional/authoring_parse/iterator.js +3 -0
  13. package/dist/exceptional/authoring_parse/iterators/characters.d.ts +36 -0
  14. package/dist/exceptional/authoring_parse/iterators/characters.js +113 -0
  15. package/dist/exceptional/authoring_parse/iterators/string_iterator.d.ts +36 -0
  16. package/dist/exceptional/authoring_parse/iterators/string_iterator.js +113 -0
  17. package/dist/exceptional/authoring_parse/iterators/token_iterator.d.ts +17 -0
  18. package/dist/exceptional/authoring_parse/iterators/token_iterator.js +50 -0
  19. package/dist/exceptional/authoring_parse/iterators/tokens.d.ts +22 -0
  20. package/dist/exceptional/authoring_parse/iterators/tokens.js +61 -0
  21. package/dist/exceptional/authoring_parse/parse.d.ts +2 -2
  22. package/dist/exceptional/authoring_parse/parse.js +14 -32
  23. package/dist/exceptional/authoring_parse/refine_guard.d.ts +3 -0
  24. package/dist/exceptional/authoring_parse/refine_guard.js +48 -0
  25. package/dist/exceptional/authoring_parse/refiners/ast.d.ts +10 -0
  26. package/dist/exceptional/authoring_parse/refiners/ast.js +266 -0
  27. package/dist/exceptional/authoring_parse/refiners/token.d.ts +9 -0
  28. package/dist/exceptional/authoring_parse/refiners/token.js +519 -0
  29. package/dist/exceptional/authoring_parse/string_iterator.d.ts +3 -8
  30. package/dist/exceptional/authoring_parse/token_iterator.d.ts +5 -0
  31. package/dist/exceptional/authoring_parse/token_iterator.js +3 -0
  32. package/dist/exceptional/authoring_parse/tokens/context.d.ts +9 -0
  33. package/dist/exceptional/authoring_parse/tokens/context.js +37 -0
  34. package/dist/exceptional/authoring_parse/tokens/helpers.d.ts +3 -0
  35. package/dist/exceptional/authoring_parse/tokens/helpers.js +14 -0
  36. package/dist/exceptional/authoring_parse/tokens/iterator.d.ts +27 -0
  37. package/dist/exceptional/authoring_parse/tokens/iterator.js +108 -0
  38. package/dist/exceptional/authoring_parse/tokens/refiners.d.ts +7 -0
  39. package/dist/exceptional/authoring_parse/tokens/refiners.js +521 -0
  40. package/dist/implementation/algorithms/operations/impure/string/serialize_apostrophed_string.js +2 -2
  41. package/dist/implementation/algorithms/operations/impure/string/serialize_backticked_string.js +2 -2
  42. package/dist/implementation/algorithms/operations/impure/string/serialize_quoted_string.js +2 -2
  43. package/dist/implementation/algorithms/procedures/unguaranteed/convert_to_json.js +4 -4
  44. package/dist/implementation/algorithms/procedures/unguaranteed/validate_astn.js +4 -4
  45. package/dist/implementation/algorithms/transformations/authoring_parse_tree/ide.js +2 -2
  46. package/dist/implementation/algorithms/transformations/authoring_target/fountain_pen_block.d.ts +1 -1
  47. package/dist/implementation/algorithms/transformations/authoring_target/fountain_pen_block.js +2 -2
  48. package/dist/implementation/algorithms/transformations/parse_result/string.d.ts +5 -0
  49. package/dist/implementation/algorithms/transformations/parse_result/string.js +90 -0
  50. package/dist/implementation/generated/pareto/generic/parse/parse.d.ts +1 -1
  51. package/dist/implementation/generated/pareto/generic/parse/parse.js +4 -4
  52. package/dist/implementation/generated/pareto/generic/parse/string_iterator.js +3 -3
  53. package/dist/implementation/generated/pareto/generic/parse/token.js +3 -3
  54. package/dist/implementation/generated/pareto/generic/resolve.js +5 -5
  55. package/dist/implementation/generated/pareto/generic/unmarshall.js +27 -27
  56. package/dist/implementation/generated/pareto/schemas/astn_schema/resolve.js +3 -3
  57. package/dist/shorthands/parse_result.d.ts +6 -0
  58. package/dist/shorthands/parse_result.js +36 -0
  59. package/package.json +8 -8
@@ -0,0 +1,521 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Tokenizer_Result = exports.Delimited_String = exports.Annotated_Token = exports.Trivia = exports.Whitespace = void 0;
27
+ const _ea = __importStar(require("exupery-core-alg"));
28
+ const iterator_1 = require("./iterator");
29
+ const from_character_list_1 = require("exupery-standard-library/dist/implementation/algorithms/operations/impure/text/from_character_list");
30
+ const parse_hexadecimal_1 = require("exupery-standard-library/dist/implementation/algorithms/operations/impure/integer/parse_hexadecimal");
31
+ //this file contains the tokenizer functionality, each function return a type from the 'token' schema
32
+ const temp_get_current_character = ($) => {
33
+ return $['get current']().transform(($) => $, () => null);
34
+ };
35
+ const Whitespace = (context) => {
36
+ const start = context.iterator['get state']().location;
37
+ return {
38
+ 'value': (0, from_character_list_1.$$)(_ea.build_list(($i) => {
39
+ while (true) {
40
+ {
41
+ const $ = temp_get_current_character(context.iterator);
42
+ if ($ === null) {
43
+ return;
44
+ }
45
+ if ((0, iterator_1.is_control_character)($)) {
46
+ return context.lexer_error(['unexpected control character', $], {
47
+ 'start': context.iterator['get state']().location,
48
+ 'end': context.iterator['get state']().location,
49
+ });
50
+ }
51
+ switch ($) {
52
+ case 0x09: // \t
53
+ context.iterator['consume']();
54
+ $i['add element']($);
55
+ break;
56
+ case 0x0A: // \n
57
+ context.iterator['consume']();
58
+ $i['add element']($);
59
+ break;
60
+ case 0x0D: // \r
61
+ context.iterator['consume']();
62
+ $i['add element']($);
63
+ break;
64
+ case 0x20: // space
65
+ context.iterator['consume']();
66
+ $i['add element']($);
67
+ break;
68
+ case 0x2C: // ,
69
+ context.iterator['consume']();
70
+ $i['add element']($);
71
+ break;
72
+ default:
73
+ return;
74
+ }
75
+ }
76
+ }
77
+ })),
78
+ 'range': {
79
+ 'start': start,
80
+ 'end': context.iterator['get state']().location,
81
+ }
82
+ };
83
+ };
84
+ exports.Whitespace = Whitespace;
85
+ const Trivia = (context) => {
86
+ return {
87
+ 'leading whitespace': (0, exports.Whitespace)(context),
88
+ 'comments': _ea.build_list(($i) => {
89
+ while (true) {
90
+ const $ = temp_get_current_character(context.iterator);
91
+ if ($ === null) {
92
+ return; //normal end of input
93
+ }
94
+ switch ($) {
95
+ case 0x2F: // /
96
+ const start = context.iterator['get state']().location;
97
+ const next_char = context.iterator['look ahead'](1).transform(($) => $, () => null);
98
+ if (next_char === null) {
99
+ const start = context.iterator['get state']().location;
100
+ context.iterator['consume']();
101
+ const end = context.iterator['get state']().location;
102
+ return context.lexer_error(['dangling slash', null], {
103
+ 'start': start,
104
+ 'end': end
105
+ });
106
+ }
107
+ switch (next_char) {
108
+ case 0x2F: // /
109
+ context.iterator['consume'](); // consume the first /
110
+ context.iterator['consume'](); // consume the second /
111
+ const Character = {
112
+ line_feed: 0x0A, // \n
113
+ carriage_return: 0x0D, // \r
114
+ solidus: 0x2F, // /
115
+ };
116
+ $i['add element']({
117
+ 'type': ['line', null],
118
+ 'content': (0, from_character_list_1.$$)(_ea.build_list(($i) => {
119
+ while (true) {
120
+ const $ = temp_get_current_character(context.iterator);
121
+ if ($ === null) {
122
+ return;
123
+ }
124
+ switch ($) {
125
+ case Character.line_feed:
126
+ return;
127
+ case Character.carriage_return:
128
+ return;
129
+ default:
130
+ context.iterator['consume']();
131
+ $i['add element']($);
132
+ }
133
+ }
134
+ })),
135
+ 'range': {
136
+ 'start': start,
137
+ 'end': context.iterator['get state']().location,
138
+ },
139
+ 'trailing whitespace': (0, exports.Whitespace)(context)
140
+ });
141
+ break;
142
+ case 0x2A: { // *
143
+ context.iterator['consume'](); // consume the first /
144
+ context.iterator['consume'](); // consume the asterisk
145
+ $i['add element']({
146
+ 'type': ['block', null],
147
+ 'content': (0, from_character_list_1.$$)(_ea.build_list(($i) => {
148
+ let found_asterisk = false;
149
+ const Character = {
150
+ solidus: 0x2F, // /
151
+ asterisk: 0x2A, // *
152
+ };
153
+ while (true) {
154
+ const $ = temp_get_current_character(context.iterator);
155
+ if ($ === null) {
156
+ return context.lexer_error(['unterminated block comment', null], {
157
+ 'start': start,
158
+ 'end': context.iterator['get state']().location
159
+ });
160
+ }
161
+ if ($ === Character.solidus && found_asterisk) {
162
+ context.iterator['consume'](); // consume the solidus
163
+ //found asterisk before solidus, so this is the end of the comment
164
+ return;
165
+ }
166
+ //not a solidus, so this is part of the comment
167
+ if (found_asterisk) {
168
+ $i['add element'](Character.asterisk); // add the asterisk that was found before but was not part of the end delimiter
169
+ }
170
+ if ($ === Character.asterisk) {
171
+ found_asterisk = true;
172
+ }
173
+ else {
174
+ $i['add element']($);
175
+ }
176
+ context.iterator['consume']();
177
+ }
178
+ })),
179
+ 'range': {
180
+ 'start': start,
181
+ 'end': context.iterator['get state']().location,
182
+ },
183
+ 'trailing whitespace': (0, exports.Whitespace)(context)
184
+ });
185
+ break;
186
+ }
187
+ default:
188
+ return context.lexer_error(['dangling slash', null], {
189
+ 'start': start,
190
+ 'end': context.iterator['get state']().location
191
+ });
192
+ }
193
+ break;
194
+ default:
195
+ return;
196
+ }
197
+ }
198
+ })
199
+ };
200
+ };
201
+ exports.Trivia = Trivia;
202
+ const Annotated_Token = (context) => {
203
+ const WhitespaceChars = {
204
+ tab: 0x09, // \t
205
+ line_feed: 0x0A, // \n
206
+ carriage_return: 0x0D, // \r
207
+ space: 0x20, //
208
+ comma: 0x2C, // ,
209
+ };
210
+ const $ = temp_get_current_character(context.iterator);
211
+ if ($ === null) {
212
+ return context.lexer_error(['unexpected end of input', null], {
213
+ 'start': context.iterator['get state']().location,
214
+ 'end': context.iterator['get state']().location,
215
+ });
216
+ }
217
+ return {
218
+ 'start': context.iterator['get state']().location,
219
+ 'type': _ea.block(() => {
220
+ const Character = {
221
+ open_angle_bracket: 0x3C, // <
222
+ open_brace: 0x7B, // {
223
+ open_bracket: 0x5B, // [
224
+ open_paren: 0x28, // (
225
+ close_angle_bracket: 0x3E, // >
226
+ close_brace: 0x7D, // }
227
+ close_bracket: 0x5D, // ]
228
+ close_paren: 0x29, // )
229
+ apostrophe: 0x27, // '
230
+ asterisk: 0x2A, // *
231
+ at: 0x40, // @
232
+ backtick: 0x60, // `
233
+ bang: 0x21,
234
+ colon: 0x3A, // :
235
+ pipe: 0x7C, // |
236
+ quotation_mark: 0x22, // "
237
+ slash: 0x2F, // /
238
+ tilde: 0x7E, // ~
239
+ hash: 0x23, // #
240
+ space: 0x20, // space
241
+ tab: 0x09, // \t
242
+ };
243
+ switch ($) {
244
+ case Character.open_brace:
245
+ context.iterator['consume']();
246
+ return ['{', null];
247
+ case Character.open_bracket:
248
+ context.iterator['consume']();
249
+ return ['[', null];
250
+ case Character.open_angle_bracket:
251
+ context.iterator['consume']();
252
+ return ['<', null];
253
+ case Character.open_paren:
254
+ context.iterator['consume']();
255
+ return ['(', null];
256
+ case Character.close_brace:
257
+ context.iterator['consume']();
258
+ return ['}', null];
259
+ case Character.close_bracket:
260
+ context.iterator['consume']();
261
+ return [']', null];
262
+ case Character.close_angle_bracket:
263
+ context.iterator['consume']();
264
+ return ['>', null];
265
+ case Character.close_paren:
266
+ context.iterator['consume']();
267
+ return [')', null];
268
+ //individuals
269
+ case Character.hash:
270
+ context.iterator['consume']();
271
+ return ['#', null];
272
+ case Character.pipe:
273
+ context.iterator['consume']();
274
+ return ['|', null];
275
+ case Character.tilde:
276
+ context.iterator['consume']();
277
+ return ['~', null];
278
+ case Character.asterisk:
279
+ context.iterator['consume']();
280
+ return ['*', null];
281
+ case Character.at:
282
+ context.iterator['consume']();
283
+ return ['@', null];
284
+ case Character.bang:
285
+ context.iterator['consume']();
286
+ return ['!', null];
287
+ case Character.colon:
288
+ context.iterator['consume']();
289
+ return [':', null];
290
+ case Character.quotation_mark:
291
+ context.iterator['consume']();
292
+ return ['string', {
293
+ 'value': (0, exports.Delimited_String)(($) => $ === Character.quotation_mark, true, context),
294
+ 'type': ['quoted', null],
295
+ }];
296
+ case Character.backtick:
297
+ context.iterator['consume']();
298
+ return ['string', {
299
+ 'value': (0, exports.Delimited_String)(($) => $ === Character.backtick, false, context),
300
+ 'type': ['backticked', null],
301
+ }];
302
+ case Character.apostrophe:
303
+ context.iterator['consume']();
304
+ return ['string', {
305
+ 'value': (0, exports.Delimited_String)(($) => $ === Character.apostrophe, false, context),
306
+ 'type': ['apostrophed', null],
307
+ }];
308
+ default:
309
+ return ['string', {
310
+ 'type': ['undelimited', null],
311
+ 'value': (0, from_character_list_1.$$)(_ea.build_list(($i) => {
312
+ while (true) {
313
+ const $ = temp_get_current_character(context.iterator);
314
+ if ($ === null) {
315
+ return;
316
+ }
317
+ if ((0, iterator_1.is_control_character)($)) {
318
+ return context.lexer_error(['unexpected control character', $], {
319
+ 'start': context.iterator['get state']().location,
320
+ 'end': context.iterator['get state']().location,
321
+ });
322
+ }
323
+ if ($ === Character.open_brace ||
324
+ $ === Character.close_brace ||
325
+ $ === Character.open_bracket ||
326
+ $ === Character.close_bracket ||
327
+ $ === Character.open_angle_bracket ||
328
+ $ === Character.close_angle_bracket ||
329
+ $ === Character.open_paren ||
330
+ $ === Character.close_paren ||
331
+ $ === Character.apostrophe ||
332
+ $ === Character.asterisk ||
333
+ $ === Character.at ||
334
+ $ === Character.backtick ||
335
+ $ === Character.bang ||
336
+ $ === Character.colon ||
337
+ $ === Character.pipe ||
338
+ $ === Character.quotation_mark ||
339
+ $ === Character.slash ||
340
+ $ === Character.tilde ||
341
+ $ === WhitespaceChars.comma ||
342
+ $ === WhitespaceChars.space ||
343
+ $ === WhitespaceChars.tab ||
344
+ $ === WhitespaceChars.line_feed ||
345
+ $ === WhitespaceChars.carriage_return) {
346
+ return;
347
+ }
348
+ context.iterator['consume']();
349
+ $i['add element']($);
350
+ }
351
+ })),
352
+ }];
353
+ }
354
+ }),
355
+ 'end': context.iterator['get state']().location,
356
+ 'trailing trivia': (0, exports.Trivia)(context)
357
+ };
358
+ };
359
+ exports.Annotated_Token = Annotated_Token;
360
+ const Delimited_String = (is_end_character, allow_newlines, context) => {
361
+ const Character = {
362
+ backspace: 0x08, // \b
363
+ form_feed: 0x0C, // \f
364
+ tab: 0x09, // \t
365
+ line_feed: 0x0A, // \n
366
+ carriage_return: 0x0D, // \r
367
+ quotation_mark: 0x22, // "
368
+ backtick: 0x60, // `
369
+ apostrophe: 0x27, // '
370
+ reverse_solidus: 0x5C, // \
371
+ solidus: 0x2F, // /
372
+ a: 0x61, // a
373
+ b: 0x62, // b
374
+ f: 0x66, // f
375
+ n: 0x6E, // n
376
+ r: 0x72, // r
377
+ t: 0x74, // t
378
+ u: 0x75, // u
379
+ A: 0x41, // A
380
+ F: 0x46, // F
381
+ };
382
+ const start = context.iterator['get state']().location;
383
+ const txt = (0, from_character_list_1.$$)(_ea.build_list(($i) => {
384
+ while (true) {
385
+ const $ = temp_get_current_character(context.iterator);
386
+ if ($ === null) {
387
+ return context.lexer_error(['unterminated string', null], {
388
+ 'start': start,
389
+ 'end': context.iterator['get state']().location
390
+ });
391
+ }
392
+ if ((0, iterator_1.is_control_character)($)) {
393
+ return context.lexer_error(['unexpected control character', $], {
394
+ 'start': context.iterator['get state']().location,
395
+ 'end': context.iterator['get state']().location,
396
+ });
397
+ }
398
+ if (is_end_character($)) {
399
+ context.iterator['consume'](); // consume the end character
400
+ return;
401
+ }
402
+ switch ($) {
403
+ case Character.line_feed:
404
+ case Character.carriage_return:
405
+ if (!allow_newlines) {
406
+ return context.lexer_error(['unexpected end of line in delimited string', null], {
407
+ 'start': start,
408
+ 'end': context.iterator['get state']().location
409
+ });
410
+ }
411
+ context.iterator['consume']();
412
+ $i['add element']($);
413
+ break;
414
+ case Character.reverse_solidus: // \ (escape)
415
+ context.iterator['consume']();
416
+ {
417
+ const $ = temp_get_current_character(context.iterator);
418
+ if ($ === null) {
419
+ return context.lexer_error(['missing character after escape', null], {
420
+ 'start': start,
421
+ 'end': context.iterator['get state']().location
422
+ });
423
+ }
424
+ switch ($) {
425
+ case Character.quotation_mark:
426
+ context.iterator['consume']();
427
+ $i['add element'](Character.quotation_mark);
428
+ break;
429
+ case Character.apostrophe:
430
+ context.iterator['consume']();
431
+ $i['add element'](Character.apostrophe);
432
+ break;
433
+ case Character.backtick:
434
+ context.iterator['consume']();
435
+ $i['add element'](Character.backtick);
436
+ break;
437
+ case Character.reverse_solidus:
438
+ context.iterator['consume']();
439
+ $i['add element'](Character.reverse_solidus);
440
+ break;
441
+ case Character.solidus:
442
+ context.iterator['consume']();
443
+ $i['add element'](Character.solidus);
444
+ break;
445
+ case Character.b:
446
+ context.iterator['consume']();
447
+ $i['add element'](Character.backspace);
448
+ break;
449
+ case Character.f:
450
+ context.iterator['consume']();
451
+ $i['add element'](Character.form_feed);
452
+ break;
453
+ case Character.n:
454
+ context.iterator['consume']();
455
+ $i['add element'](Character.line_feed);
456
+ break;
457
+ case Character.r:
458
+ context.iterator['consume']();
459
+ $i['add element'](Character.carriage_return);
460
+ break;
461
+ case Character.t:
462
+ context.iterator['consume']();
463
+ $i['add element'](Character.tab);
464
+ break;
465
+ case Character.u:
466
+ context.iterator['consume']();
467
+ $i['add element']((0, parse_hexadecimal_1.$$)((0, from_character_list_1.$$)((_ea.build_list(($i) => {
468
+ const get_char = () => {
469
+ const char = temp_get_current_character(context.iterator);
470
+ if (char === null) {
471
+ return context.lexer_error(['unterminated unicode escape sequence', null], {
472
+ 'start': start,
473
+ 'end': context.iterator['get state']().location
474
+ });
475
+ }
476
+ if (char < Character.a || (char > Character.f && char < Character.A) || char > Character.F || char < 0x30 || char > 0x39) {
477
+ return context.lexer_error(['invalid unicode escape sequence', null], {
478
+ 'start': start,
479
+ 'end': context.iterator['get state']().location
480
+ });
481
+ }
482
+ context.iterator['consume']();
483
+ return char;
484
+ };
485
+ $i['add element'](get_char());
486
+ $i['add element'](get_char());
487
+ $i['add element'](get_char());
488
+ $i['add element'](get_char());
489
+ })))));
490
+ break;
491
+ default:
492
+ return context.lexer_error(['unknown escape character', null], {
493
+ 'start': start,
494
+ 'end': context.iterator['get state']().location
495
+ });
496
+ }
497
+ }
498
+ break;
499
+ default:
500
+ context.iterator['consume']();
501
+ $i['add element']($);
502
+ }
503
+ }
504
+ }));
505
+ return txt;
506
+ };
507
+ exports.Delimited_String = Delimited_String;
508
+ const Tokenizer_Result = (context) => {
509
+ return {
510
+ 'leading trivia': (0, exports.Trivia)(context),
511
+ 'tokens': _ea.build_list($i => {
512
+ while (temp_get_current_character(context.iterator) !== null) {
513
+ const token = (0, exports.Annotated_Token)(context);
514
+ $i['add element'](token);
515
+ }
516
+ }),
517
+ 'end': context.iterator['get state']().location
518
+ };
519
+ };
520
+ exports.Tokenizer_Result = Tokenizer_Result;
521
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmaW5lcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZXhjZXB0aW9uYWwvYXV0aG9yaW5nX3BhcnNlL3Rva2Vucy9yZWZpbmVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNEQUF1QztBQVN2Qyx5Q0FBc0U7QUFFdEUsNElBQWlKO0FBQ2pKLDJJQUFnSjtBQUVoSixxR0FBcUc7QUFHckcsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLENBQXNCLEVBQWlCLEVBQUU7SUFDekUsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQy9CLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ1IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUNiLENBQUE7QUFDTCxDQUFDLENBQUE7QUFFTSxNQUFNLFVBQVUsR0FBRyxDQUN0QixPQUE2QixFQUNkLEVBQUU7SUFFakIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQTtJQUN0RCxPQUFPO1FBQ0gsT0FBTyxFQUFFLElBQUEsd0JBQXNCLEVBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQzFELE9BQU8sSUFBSSxFQUFFLENBQUM7Z0JBQ1YsQ0FBQztvQkFDRyxNQUFNLENBQUMsR0FBRywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7b0JBQ3RELElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO3dCQUNiLE9BQU07b0JBQ1YsQ0FBQztvQkFDRCxJQUFJLElBQUEsK0JBQW9CLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDMUIsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUN0QixDQUFDLDhCQUE4QixFQUFFLENBQUMsQ0FBQyxFQUNuQzs0QkFDSSxPQUFPLEVBQUUsT0FB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
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.$$ = void 0;
4
- const escape_character_1 = require("pareto-standard-operations/dist/implementation/operations/impure/text/escape_character");
4
+ const escape_character_1 = require("pareto-standard-operations/dist/implementation/algorithms/operations/impure/text/escape_character");
5
5
  const $$ = ($) => ($['add delimiters'] ? "'" : "")
6
6
  + (0, escape_character_1.$$)($.value, {
7
7
  'character code': 39, // '
@@ -9,4 +9,4 @@ const $$ = ($) => ($['add delimiters'] ? "'" : "")
9
9
  })
10
10
  + ($['add delimiters'] ? "'" : "");
11
11
  exports.$$ = $$;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplX2Fwb3N0cm9waGVkX3N0cmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9pbXBsZW1lbnRhdGlvbi9hbGdvcml0aG1zL29wZXJhdGlvbnMvaW1wdXJlL3N0cmluZy9zZXJpYWxpemVfYXBvc3Ryb3BoZWRfc3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDZIQUFrSTtBQUkzSCxNQUFNLEVBQUUsR0FBRyxDQUFDLENBR2xCLEVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO01BQ3hDLElBQUEscUJBQW1CLEVBQ2pCLENBQUMsQ0FBQyxLQUFLLEVBQ1A7UUFDSSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsSUFBSTtRQUMxQix1QkFBdUIsRUFBRSxFQUFFLEVBQUUsSUFBSTtLQUNwQyxDQUNKO01BQ0MsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQVh6QixRQUFBLEVBQUUsTUFXdUIifQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplX2Fwb3N0cm9waGVkX3N0cmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9pbXBsZW1lbnRhdGlvbi9hbGdvcml0aG1zL29wZXJhdGlvbnMvaW1wdXJlL3N0cmluZy9zZXJpYWxpemVfYXBvc3Ryb3BoZWRfc3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLHdJQUE2STtBQUl0SSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBR2xCLEVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO01BQ3hDLElBQUEscUJBQW1CLEVBQ2pCLENBQUMsQ0FBQyxLQUFLLEVBQ1A7UUFDSSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsSUFBSTtRQUMxQix1QkFBdUIsRUFBRSxFQUFFLEVBQUUsSUFBSTtLQUNwQyxDQUNKO01BQ0MsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQVh6QixRQUFBLEVBQUUsTUFXdUIifQ==
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.$$ = void 0;
4
- const escape_character_1 = require("pareto-standard-operations/dist/implementation/operations/impure/text/escape_character");
4
+ const escape_character_1 = require("pareto-standard-operations/dist/implementation/algorithms/operations/impure/text/escape_character");
5
5
  const $$ = ($) => ($['add delimiters'] ? '`' : '')
6
6
  + (0, escape_character_1.$$)($.value, {
7
7
  'character code': 96, // `
@@ -9,4 +9,4 @@ const $$ = ($) => ($['add delimiters'] ? '`' : '')
9
9
  })
10
10
  + ($['add delimiters'] ? '`' : '');
11
11
  exports.$$ = $$;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplX2JhY2t0aWNrZWRfc3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL2FsZ29yaXRobXMvb3BlcmF0aW9ucy9pbXB1cmUvc3RyaW5nL3NlcmlhbGl6ZV9iYWNrdGlja2VkX3N0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSw2SEFBa0k7QUFJM0gsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUdsQixFQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztNQUN4QyxJQUFBLHFCQUFtQixFQUNqQixDQUFDLENBQUMsS0FBSyxFQUNQO1FBQ0ksZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLElBQUk7UUFDMUIsdUJBQXVCLEVBQUUsRUFBRSxFQUFFLElBQUk7S0FFcEMsQ0FDSjtNQUNDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7QUFaekIsUUFBQSxFQUFFLE1BWXVCIn0=
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplX2JhY2t0aWNrZWRfc3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL2FsZ29yaXRobXMvb3BlcmF0aW9ucy9pbXB1cmUvc3RyaW5nL3NlcmlhbGl6ZV9iYWNrdGlja2VkX3N0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSx3SUFBNkk7QUFJdEksTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUdsQixFQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztNQUN4QyxJQUFBLHFCQUFtQixFQUNqQixDQUFDLENBQUMsS0FBSyxFQUNQO1FBQ0ksZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLElBQUk7UUFDMUIsdUJBQXVCLEVBQUUsRUFBRSxFQUFFLElBQUk7S0FFcEMsQ0FDSjtNQUNDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7QUFaekIsUUFBQSxFQUFFLE1BWXVCIn0=
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.$$ = void 0;
4
- const escape_character_1 = require("pareto-standard-operations/dist/implementation/operations/impure/text/escape_character");
4
+ const escape_character_1 = require("pareto-standard-operations/dist/implementation/algorithms/operations/impure/text/escape_character");
5
5
  const $$ = ($) => ($['add delimiters'] ? '"' : '')
6
6
  + (0, escape_character_1.$$)($.value, {
7
7
  'character code': 34, // "
@@ -9,4 +9,4 @@ const $$ = ($) => ($['add delimiters'] ? '"' : '')
9
9
  })
10
10
  + ($['add delimiters'] ? '"' : '');
11
11
  exports.$$ = $$;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplX3F1b3RlZF9zdHJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvaW1wbGVtZW50YXRpb24vYWxnb3JpdGhtcy9vcGVyYXRpb25zL2ltcHVyZS9zdHJpbmcvc2VyaWFsaXplX3F1b3RlZF9zdHJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsNkhBQWtJO0FBSTNILE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FHbEIsRUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7TUFDeEMsSUFBQSxxQkFBbUIsRUFDakIsQ0FBQyxDQUFDLEtBQUssRUFDUDtRQUNJLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxJQUFJO1FBQzFCLHVCQUF1QixFQUFFLEVBQUUsRUFBRSxJQUFJO0tBQ3BDLENBQ0o7TUFDQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBWHpCLFFBQUEsRUFBRSxNQVd1QiJ9
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplX3F1b3RlZF9zdHJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvaW1wbGVtZW50YXRpb24vYWxnb3JpdGhtcy9vcGVyYXRpb25zL2ltcHVyZS9zdHJpbmcvc2VyaWFsaXplX3F1b3RlZF9zdHJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0Esd0lBQTZJO0FBSXRJLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FHbEIsRUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7TUFDeEMsSUFBQSxxQkFBbUIsRUFDakIsQ0FBQyxDQUFDLEtBQUssRUFDUDtRQUNJLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxJQUFJO1FBQzFCLHVCQUF1QixFQUFFLEVBQUUsRUFBRSxJQUFJO0tBQ3BDLENBQ0o7TUFDQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBWHpCLFFBQUEsRUFBRSxNQVd1QiJ9
@@ -27,11 +27,11 @@ exports.$$ = void 0;
27
27
  const _ea = __importStar(require("exupery-core-alg"));
28
28
  const _easync = __importStar(require("exupery-core-async"));
29
29
  const parse = __importStar(require("../../../../exceptional/authoring_parse/parse"));
30
- const create_error_message = __importStar(require("../../../../exceptional/serializers/parse_result"));
30
+ const create_error_message = __importStar(require("../../transformations/parse_result/string"));
31
31
  const t_ast_2_json = __importStar(require("../../transformations/authoring_parse_tree/json_target"));
32
32
  const s_json = __importStar(require("pareto-json/dist/exceptional/serializers/json"));
33
- const log_1 = require("exupery-resources/dist/implementation/procedures/guaranteed/log");
34
- const get_instream_data_1 = require("exupery-resources/dist/implementation/queries/guaranteed/get_instream_data");
33
+ const log_1 = require("exupery-resources/dist/implementation/algorithms/procedures/guaranteed/log");
34
+ const get_instream_data_1 = require("exupery-resources/dist/implementation/algorithms/queries/guaranteed/get_instream_data");
35
35
  const $$ = () => _easync.up.action(_easync.upi.g(log_1.$$), _easync.uq.g(get_instream_data_1.$$, _easync.uq.fixed(null), _easync.ut.u(($) => parse.parse($, {
36
36
  'tab size': 4,
37
37
  }).map_result(($) => ({
@@ -47,4 +47,4 @@ const $$ = () => _easync.up.action(_easync.upi.g(log_1.$$), _easync.uq.g(get_ins
47
47
  ])
48
48
  })))));
49
49
  exports.$$ = $$;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydF90b19qc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL2FsZ29yaXRobXMvcHJvY2VkdXJlcy91bmd1YXJhbnRlZWQvY29udmVydF90b19qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXVDO0FBRXZDLDREQUE2QztBQUU3QyxxRkFBc0U7QUFDdEUsdUdBQXdGO0FBRXhGLHFHQUFzRjtBQUN0RixzRkFBdUU7QUFFdkUseUZBQTZGO0FBSzdGLGtIQUFzSDtBQUkvRyxNQUFNLEVBQUUsR0FBc0MsR0FFbkQsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFLLENBQUMsRUFDcEIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ1Isc0JBQW1CLEVBQ25CLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUN0QixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDUixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FDZCxDQUFDLEVBQ0Q7SUFDSSxVQUFVLEVBQUUsQ0FBQztDQUNoQixDQUNKLENBQUMsVUFBVSxDQUNSLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ0osT0FBTyxFQUNILEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUM5QixZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUN4QjtZQUNJLGFBQWEsRUFBRSxNQUFNO1lBQ3JCLFNBQVMsRUFBRSxJQUFJO1NBQ2xCLENBQ0osQ0FBQyxDQUFDO0NBRVYsQ0FBQyxDQUNMLEVBQ0QsQ0FBQyxDQUFDLEVBQWEsRUFBRSxDQUFDLENBQUM7SUFDZixXQUFXLEVBQUUsQ0FBQztDQUNqQixDQUFDLEVBQ0YsT0FBTyxDQUFDLEVBQUUsQ0FDTixRQUFLLEVBQ0wsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDSixPQUFPLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUN2QixnQkFBZ0Isb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxFQUFFLGVBQWUsRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7S0FDbEcsQ0FBQztDQUVMLENBQUMsQ0FDTCxDQUNKLENBQ0osQ0FDSixDQUFBO0FBeENZLFFBQUEsRUFBRSxNQXdDZCJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydF90b19qc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL2FsZ29yaXRobXMvcHJvY2VkdXJlcy91bmd1YXJhbnRlZWQvY29udmVydF90b19qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXVDO0FBRXZDLDREQUE2QztBQUU3QyxxRkFBc0U7QUFDdEUsZ0dBQWlGO0FBRWpGLHFHQUFzRjtBQUN0RixzRkFBdUU7QUFFdkUsb0dBQXdHO0FBS3hHLDZIQUFpSTtBQUkxSCxNQUFNLEVBQUUsR0FBc0MsR0FFbkQsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFLLENBQUMsRUFDcEIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ1Isc0JBQW1CLEVBQ25CLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUN0QixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDUixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FDZCxDQUFDLEVBQ0Q7SUFDSSxVQUFVLEVBQUUsQ0FBQztDQUNoQixDQUNKLENBQUMsVUFBVSxDQUNSLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ0osT0FBTyxFQUNILEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUM5QixZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUN4QjtZQUNJLGFBQWEsRUFBRSxNQUFNO1lBQ3JCLFNBQVMsRUFBRSxJQUFJO1NBQ2xCLENBQ0osQ0FBQyxDQUFDO0NBRVYsQ0FBQyxDQUNMLEVBQ0QsQ0FBQyxDQUFDLEVBQWEsRUFBRSxDQUFDLENBQUM7SUFDZixXQUFXLEVBQUUsQ0FBQztDQUNqQixDQUFDLEVBQ0YsT0FBTyxDQUFDLEVBQUUsQ0FDTixRQUFLLEVBQ0wsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDSixPQUFPLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQztRQUN2QixnQkFBZ0Isb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxFQUFFLGVBQWUsRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7S0FDbEcsQ0FBQztDQUVMLENBQUMsQ0FDTCxDQUNKLENBQ0osQ0FDSixDQUFBO0FBeENZLFFBQUEsRUFBRSxNQXdDZCJ9