circuitscript 0.1.31 → 0.1.33

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 (58) hide show
  1. package/dist/cjs/BaseVisitor.js +37 -3
  2. package/dist/cjs/RefdesAnnotationVisitor.js +27 -10
  3. package/dist/cjs/antlr/CircuitScriptParser.js +990 -831
  4. package/dist/cjs/draw_symbols.js +38 -34
  5. package/dist/cjs/environment.js +24 -4
  6. package/dist/cjs/execute.js +107 -68
  7. package/dist/cjs/globals.js +4 -2
  8. package/dist/cjs/graph.js +14 -12
  9. package/dist/cjs/helpers.js +85 -16
  10. package/dist/cjs/layout.js +50 -25
  11. package/dist/cjs/main.js +16 -18
  12. package/dist/cjs/objects/ClassComponent.js +199 -30
  13. package/dist/cjs/objects/types.js +5 -1
  14. package/dist/cjs/regenerate-tests.js +3 -3
  15. package/dist/cjs/render.js +5 -3
  16. package/dist/cjs/rules-check/no-connect-on-connected-pin.js +9 -8
  17. package/dist/cjs/rules-check/rules.js +7 -2
  18. package/dist/cjs/rules-check/unconnected-pins.js +10 -8
  19. package/dist/cjs/utils.js +2 -1
  20. package/dist/cjs/validate/SymbolValidatorVisitor.js +0 -10
  21. package/dist/cjs/visitor.js +284 -191
  22. package/dist/esm/BaseVisitor.js +37 -3
  23. package/dist/esm/RefdesAnnotationVisitor.js +27 -10
  24. package/dist/esm/antlr/CircuitScriptParser.js +989 -830
  25. package/dist/esm/antlr/CircuitScriptVisitor.js +1 -0
  26. package/dist/esm/draw_symbols.js +38 -34
  27. package/dist/esm/environment.js +21 -1
  28. package/dist/esm/execute.js +108 -69
  29. package/dist/esm/globals.js +2 -0
  30. package/dist/esm/graph.js +14 -12
  31. package/dist/esm/helpers.js +86 -17
  32. package/dist/esm/layout.js +51 -26
  33. package/dist/esm/main.js +16 -18
  34. package/dist/esm/objects/ClassComponent.js +201 -30
  35. package/dist/esm/objects/types.js +7 -1
  36. package/dist/esm/regenerate-tests.js +3 -3
  37. package/dist/esm/render.js +5 -3
  38. package/dist/esm/rules-check/no-connect-on-connected-pin.js +9 -8
  39. package/dist/esm/rules-check/rules.js +7 -2
  40. package/dist/esm/rules-check/unconnected-pins.js +10 -8
  41. package/dist/esm/utils.js +2 -1
  42. package/dist/esm/validate/SymbolValidatorVisitor.js +0 -10
  43. package/dist/esm/visitor.js +185 -92
  44. package/dist/types/BaseVisitor.d.ts +15 -5
  45. package/dist/types/RefdesAnnotationVisitor.d.ts +2 -0
  46. package/dist/types/antlr/CircuitScriptParser.d.ts +32 -14
  47. package/dist/types/antlr/CircuitScriptVisitor.d.ts +2 -0
  48. package/dist/types/environment.d.ts +7 -1
  49. package/dist/types/execute.d.ts +4 -1
  50. package/dist/types/globals.d.ts +2 -0
  51. package/dist/types/graph.d.ts +2 -2
  52. package/dist/types/helpers.d.ts +2 -1
  53. package/dist/types/layout.d.ts +5 -4
  54. package/dist/types/objects/ClassComponent.d.ts +34 -9
  55. package/dist/types/objects/types.d.ts +19 -3
  56. package/dist/types/validate/SymbolValidatorVisitor.d.ts +0 -4
  57. package/dist/types/visitor.d.ts +7 -1
  58. package/package.json +1 -1
@@ -130,20 +130,21 @@ export class CircuitScriptParser extends antlr.Parser {
130
130
  static RULE_array_expr = 57;
131
131
  static RULE_point_expr = 58;
132
132
  static RULE_import_expr = 59;
133
- static RULE_frame_expr = 60;
134
- static RULE_if_expr = 61;
135
- static RULE_if_inner_expr = 62;
136
- static RULE_else_expr = 63;
137
- static RULE_while_expr = 64;
138
- static RULE_for_expr = 65;
139
- static RULE_part_set_expr = 66;
140
- static RULE_part_set_key = 67;
141
- static RULE_part_match_block = 68;
142
- static RULE_part_sub_expr = 69;
143
- static RULE_part_condition_expr = 70;
144
- static RULE_part_condition_key_only_expr = 71;
145
- static RULE_part_value_expr = 72;
146
- static RULE_annotation_comment_expr = 73;
133
+ static RULE_import_annotation_expr = 60;
134
+ static RULE_frame_expr = 61;
135
+ static RULE_if_expr = 62;
136
+ static RULE_if_inner_expr = 63;
137
+ static RULE_else_expr = 64;
138
+ static RULE_while_expr = 65;
139
+ static RULE_for_expr = 66;
140
+ static RULE_part_set_expr = 67;
141
+ static RULE_part_set_key = 68;
142
+ static RULE_part_match_block = 69;
143
+ static RULE_part_sub_expr = 70;
144
+ static RULE_part_condition_expr = 71;
145
+ static RULE_part_condition_key_only_expr = 72;
146
+ static RULE_part_value_expr = 73;
147
+ static RULE_annotation_comment_expr = 74;
147
148
  static literalNames = [
148
149
  null, "':'", "','", "'='", "'..'", "'['", "']'", "'.'", "'set'",
149
150
  "'break'", "'branch'", "'create'", "'component'", "'graphic'", "'module'",
@@ -186,10 +187,11 @@ export class CircuitScriptParser extends antlr.Parser {
186
187
  "graphic_expressions_block", "create_graphic_expr", "create_module_expr",
187
188
  "nested_properties_inner", "graphic_expr", "property_expr", "property_key_expr",
188
189
  "property_value_expr", "wire_atom_expr", "wire_expr", "array_expr",
189
- "point_expr", "import_expr", "frame_expr", "if_expr", "if_inner_expr",
190
- "else_expr", "while_expr", "for_expr", "part_set_expr", "part_set_key",
191
- "part_match_block", "part_sub_expr", "part_condition_expr", "part_condition_key_only_expr",
192
- "part_value_expr", "annotation_comment_expr",
190
+ "point_expr", "import_expr", "import_annotation_expr", "frame_expr",
191
+ "if_expr", "if_inner_expr", "else_expr", "while_expr", "for_expr",
192
+ "part_set_expr", "part_set_key", "part_match_block", "part_sub_expr",
193
+ "part_condition_expr", "part_condition_key_only_expr", "part_value_expr",
194
+ "annotation_comment_expr",
193
195
  ];
194
196
  get grammarFileName() { return "CircuitScript.g4"; }
195
197
  get literalNames() { return CircuitScriptParser.literalNames; }
@@ -211,25 +213,25 @@ export class CircuitScriptParser extends antlr.Parser {
211
213
  let alternative;
212
214
  this.enterOuterAlt(localContext, 1);
213
215
  {
214
- this.state = 152;
216
+ this.state = 154;
215
217
  this.errorHandler.sync(this);
216
218
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
217
219
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
218
220
  if (alternative === 1) {
219
221
  {
220
- this.state = 150;
222
+ this.state = 152;
221
223
  this.errorHandler.sync(this);
222
224
  switch (this.tokenStream.LA(1)) {
223
225
  case CircuitScriptParser.Import:
224
226
  case CircuitScriptParser.From:
225
227
  {
226
- this.state = 148;
228
+ this.state = 150;
227
229
  this.import_expr();
228
230
  }
229
231
  break;
230
232
  case CircuitScriptParser.NEWLINE:
231
233
  {
232
- this.state = 149;
234
+ this.state = 151;
233
235
  this.match(CircuitScriptParser.NEWLINE);
234
236
  }
235
237
  break;
@@ -238,16 +240,16 @@ export class CircuitScriptParser extends antlr.Parser {
238
240
  }
239
241
  }
240
242
  }
241
- this.state = 154;
243
+ this.state = 156;
242
244
  this.errorHandler.sync(this);
243
245
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
244
246
  }
245
- this.state = 157;
247
+ this.state = 159;
246
248
  this.errorHandler.sync(this);
247
249
  _la = this.tokenStream.LA(1);
248
250
  do {
249
251
  {
250
- this.state = 157;
252
+ this.state = 159;
251
253
  this.errorHandler.sync(this);
252
254
  switch (this.tokenStream.LA(1)) {
253
255
  case CircuitScriptParser.T__3:
@@ -275,13 +277,13 @@ export class CircuitScriptParser extends antlr.Parser {
275
277
  case CircuitScriptParser.ANNOTATION_START:
276
278
  case CircuitScriptParser.ID:
277
279
  {
278
- this.state = 155;
280
+ this.state = 157;
279
281
  this.expression();
280
282
  }
281
283
  break;
282
284
  case CircuitScriptParser.NEWLINE:
283
285
  {
284
- this.state = 156;
286
+ this.state = 158;
285
287
  this.match(CircuitScriptParser.NEWLINE);
286
288
  }
287
289
  break;
@@ -289,11 +291,11 @@ export class CircuitScriptParser extends antlr.Parser {
289
291
  throw new antlr.NoViableAltException(this);
290
292
  }
291
293
  }
292
- this.state = 159;
294
+ this.state = 161;
293
295
  this.errorHandler.sync(this);
294
296
  _la = this.tokenStream.LA(1);
295
297
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 3472353393) !== 0) || ((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 8422405) !== 0));
296
- this.state = 161;
298
+ this.state = 163;
297
299
  this.match(CircuitScriptParser.EOF);
298
300
  }
299
301
  }
@@ -315,104 +317,104 @@ export class CircuitScriptParser extends antlr.Parser {
315
317
  let localContext = new ExpressionContext(this.context, this.state);
316
318
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
317
319
  try {
318
- this.state = 177;
320
+ this.state = 179;
319
321
  this.errorHandler.sync(this);
320
322
  switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context)) {
321
323
  case 1:
322
324
  this.enterOuterAlt(localContext, 1);
323
325
  {
324
- this.state = 163;
326
+ this.state = 165;
325
327
  this.graph_expressions();
326
328
  }
327
329
  break;
328
330
  case 2:
329
331
  this.enterOuterAlt(localContext, 2);
330
332
  {
331
- this.state = 164;
333
+ this.state = 166;
332
334
  this.assignment_expr();
333
335
  }
334
336
  break;
335
337
  case 3:
336
338
  this.enterOuterAlt(localContext, 3);
337
339
  {
338
- this.state = 165;
340
+ this.state = 167;
339
341
  this.operator_assignment_expr();
340
342
  }
341
343
  break;
342
344
  case 4:
343
345
  this.enterOuterAlt(localContext, 4);
344
346
  {
345
- this.state = 166;
347
+ this.state = 168;
346
348
  this.property_set_expr();
347
349
  }
348
350
  break;
349
351
  case 5:
350
352
  this.enterOuterAlt(localContext, 5);
351
353
  {
352
- this.state = 167;
354
+ this.state = 169;
353
355
  this.property_set_expr2();
354
356
  }
355
357
  break;
356
358
  case 6:
357
359
  this.enterOuterAlt(localContext, 6);
358
360
  {
359
- this.state = 168;
361
+ this.state = 170;
360
362
  this.double_dot_property_set_expr();
361
363
  }
362
364
  break;
363
365
  case 7:
364
366
  this.enterOuterAlt(localContext, 7);
365
367
  {
366
- this.state = 169;
368
+ this.state = 171;
367
369
  this.function_def_expr();
368
370
  }
369
371
  break;
370
372
  case 8:
371
373
  this.enterOuterAlt(localContext, 8);
372
374
  {
373
- this.state = 170;
375
+ this.state = 172;
374
376
  this.function_call_expr();
375
377
  }
376
378
  break;
377
379
  case 9:
378
380
  this.enterOuterAlt(localContext, 9);
379
381
  {
380
- this.state = 171;
382
+ this.state = 173;
381
383
  this.import_expr();
382
384
  }
383
385
  break;
384
386
  case 10:
385
387
  this.enterOuterAlt(localContext, 10);
386
388
  {
387
- this.state = 172;
389
+ this.state = 174;
388
390
  this.atom_expr();
389
391
  }
390
392
  break;
391
393
  case 11:
392
394
  this.enterOuterAlt(localContext, 11);
393
395
  {
394
- this.state = 173;
396
+ this.state = 175;
395
397
  this.frame_expr();
396
398
  }
397
399
  break;
398
400
  case 12:
399
401
  this.enterOuterAlt(localContext, 12);
400
402
  {
401
- this.state = 174;
403
+ this.state = 176;
402
404
  this.flow_expressions();
403
405
  }
404
406
  break;
405
407
  case 13:
406
408
  this.enterOuterAlt(localContext, 13);
407
409
  {
408
- this.state = 175;
410
+ this.state = 177;
409
411
  this.annotation_comment_expr();
410
412
  }
411
413
  break;
412
414
  case 14:
413
415
  this.enterOuterAlt(localContext, 14);
414
416
  {
415
- this.state = 176;
417
+ this.state = 178;
416
418
  this.part_set_expr();
417
419
  }
418
420
  break;
@@ -436,41 +438,41 @@ export class CircuitScriptParser extends antlr.Parser {
436
438
  let localContext = new Flow_expressionsContext(this.context, this.state);
437
439
  this.enterRule(localContext, 4, CircuitScriptParser.RULE_flow_expressions);
438
440
  try {
439
- this.state = 184;
441
+ this.state = 186;
440
442
  this.errorHandler.sync(this);
441
443
  switch (this.tokenStream.LA(1)) {
442
444
  case CircuitScriptParser.If:
443
445
  this.enterOuterAlt(localContext, 1);
444
446
  {
445
- this.state = 179;
447
+ this.state = 181;
446
448
  this.if_expr();
447
449
  }
448
450
  break;
449
451
  case CircuitScriptParser.While:
450
452
  this.enterOuterAlt(localContext, 2);
451
453
  {
452
- this.state = 180;
454
+ this.state = 182;
453
455
  this.while_expr();
454
456
  }
455
457
  break;
456
458
  case CircuitScriptParser.For:
457
459
  this.enterOuterAlt(localContext, 3);
458
460
  {
459
- this.state = 181;
461
+ this.state = 183;
460
462
  this.for_expr();
461
463
  }
462
464
  break;
463
465
  case CircuitScriptParser.Break:
464
466
  this.enterOuterAlt(localContext, 4);
465
467
  {
466
- this.state = 182;
468
+ this.state = 184;
467
469
  this.match(CircuitScriptParser.Break);
468
470
  }
469
471
  break;
470
472
  case CircuitScriptParser.Continue:
471
473
  this.enterOuterAlt(localContext, 5);
472
474
  {
473
- this.state = 183;
475
+ this.state = 185;
474
476
  this.match(CircuitScriptParser.Continue);
475
477
  }
476
478
  break;
@@ -496,20 +498,20 @@ export class CircuitScriptParser extends antlr.Parser {
496
498
  let localContext = new Graph_expressionsContext(this.context, this.state);
497
499
  this.enterRule(localContext, 6, CircuitScriptParser.RULE_graph_expressions);
498
500
  try {
499
- this.state = 188;
501
+ this.state = 190;
500
502
  this.errorHandler.sync(this);
501
503
  switch (this.interpreter.adaptivePredict(this.tokenStream, 6, this.context)) {
502
504
  case 1:
503
505
  this.enterOuterAlt(localContext, 1);
504
506
  {
505
- this.state = 186;
507
+ this.state = 188;
506
508
  this.graph_linear_expression();
507
509
  }
508
510
  break;
509
511
  case 2:
510
512
  this.enterOuterAlt(localContext, 2);
511
513
  {
512
- this.state = 187;
514
+ this.state = 189;
513
515
  this.path_block();
514
516
  }
515
517
  break;
@@ -533,48 +535,48 @@ export class CircuitScriptParser extends antlr.Parser {
533
535
  let localContext = new Graph_linear_expressionContext(this.context, this.state);
534
536
  this.enterRule(localContext, 8, CircuitScriptParser.RULE_graph_linear_expression);
535
537
  try {
536
- this.state = 196;
538
+ this.state = 198;
537
539
  this.errorHandler.sync(this);
538
540
  switch (this.interpreter.adaptivePredict(this.tokenStream, 7, this.context)) {
539
541
  case 1:
540
542
  this.enterOuterAlt(localContext, 1);
541
543
  {
542
- this.state = 190;
544
+ this.state = 192;
543
545
  this.add_component_expr();
544
546
  }
545
547
  break;
546
548
  case 2:
547
549
  this.enterOuterAlt(localContext, 2);
548
550
  {
549
- this.state = 191;
551
+ this.state = 193;
550
552
  this.to_component_expr();
551
553
  }
552
554
  break;
553
555
  case 3:
554
556
  this.enterOuterAlt(localContext, 3);
555
557
  {
556
- this.state = 192;
558
+ this.state = 194;
557
559
  this.at_component_expr();
558
560
  }
559
561
  break;
560
562
  case 4:
561
563
  this.enterOuterAlt(localContext, 4);
562
564
  {
563
- this.state = 193;
565
+ this.state = 195;
564
566
  this.at_block();
565
567
  }
566
568
  break;
567
569
  case 5:
568
570
  this.enterOuterAlt(localContext, 5);
569
571
  {
570
- this.state = 194;
572
+ this.state = 196;
571
573
  this.wire_expr();
572
574
  }
573
575
  break;
574
576
  case 6:
575
577
  this.enterOuterAlt(localContext, 6);
576
578
  {
577
- this.state = 195;
579
+ this.state = 197;
578
580
  this.point_expr();
579
581
  }
580
582
  break;
@@ -601,21 +603,21 @@ export class CircuitScriptParser extends antlr.Parser {
601
603
  try {
602
604
  this.enterOuterAlt(localContext, 1);
603
605
  {
604
- this.state = 198;
606
+ this.state = 200;
605
607
  this.match(CircuitScriptParser.NEWLINE);
606
- this.state = 199;
608
+ this.state = 201;
607
609
  this.match(CircuitScriptParser.INDENT);
608
- this.state = 202;
610
+ this.state = 204;
609
611
  this.errorHandler.sync(this);
610
612
  _la = this.tokenStream.LA(1);
611
613
  do {
612
614
  {
613
- this.state = 202;
615
+ this.state = 204;
614
616
  this.errorHandler.sync(this);
615
617
  switch (this.tokenStream.LA(1)) {
616
618
  case CircuitScriptParser.NEWLINE:
617
619
  {
618
- this.state = 200;
620
+ this.state = 202;
619
621
  this.match(CircuitScriptParser.NEWLINE);
620
622
  }
621
623
  break;
@@ -644,7 +646,7 @@ export class CircuitScriptParser extends antlr.Parser {
644
646
  case CircuitScriptParser.ANNOTATION_START:
645
647
  case CircuitScriptParser.ID:
646
648
  {
647
- this.state = 201;
649
+ this.state = 203;
648
650
  this.expression();
649
651
  }
650
652
  break;
@@ -652,11 +654,11 @@ export class CircuitScriptParser extends antlr.Parser {
652
654
  throw new antlr.NoViableAltException(this);
653
655
  }
654
656
  }
655
- this.state = 204;
657
+ this.state = 206;
656
658
  this.errorHandler.sync(this);
657
659
  _la = this.tokenStream.LA(1);
658
660
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 3472353393) !== 0) || ((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 8422405) !== 0));
659
- this.state = 206;
661
+ this.state = 208;
660
662
  this.match(CircuitScriptParser.DEDENT);
661
663
  }
662
664
  }
@@ -681,7 +683,7 @@ export class CircuitScriptParser extends antlr.Parser {
681
683
  try {
682
684
  this.enterOuterAlt(localContext, 1);
683
685
  {
684
- this.state = 208;
686
+ this.state = 210;
685
687
  _la = this.tokenStream.LA(1);
686
688
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 7341056) !== 0))) {
687
689
  this.errorHandler.recoverInline(this);
@@ -690,9 +692,9 @@ export class CircuitScriptParser extends antlr.Parser {
690
692
  this.errorHandler.reportMatch(this);
691
693
  this.consume();
692
694
  }
693
- this.state = 209;
695
+ this.state = 211;
694
696
  this.match(CircuitScriptParser.T__0);
695
- this.state = 210;
697
+ this.state = 212;
696
698
  this.expressions_block();
697
699
  }
698
700
  }
@@ -717,32 +719,32 @@ export class CircuitScriptParser extends antlr.Parser {
717
719
  try {
718
720
  this.enterOuterAlt(localContext, 1);
719
721
  {
720
- this.state = 212;
722
+ this.state = 214;
721
723
  this.atom_expr();
722
- this.state = 213;
724
+ this.state = 215;
723
725
  this.match(CircuitScriptParser.T__0);
724
- this.state = 214;
726
+ this.state = 216;
725
727
  this.match(CircuitScriptParser.NEWLINE);
726
- this.state = 215;
728
+ this.state = 217;
727
729
  this.match(CircuitScriptParser.INDENT);
728
- this.state = 218;
730
+ this.state = 220;
729
731
  this.errorHandler.sync(this);
730
732
  _la = this.tokenStream.LA(1);
731
733
  do {
732
734
  {
733
- this.state = 218;
735
+ this.state = 220;
734
736
  this.errorHandler.sync(this);
735
737
  switch (this.tokenStream.LA(1)) {
736
738
  case CircuitScriptParser.NEWLINE:
737
739
  {
738
- this.state = 216;
740
+ this.state = 218;
739
741
  this.match(CircuitScriptParser.NEWLINE);
740
742
  }
741
743
  break;
742
744
  case CircuitScriptParser.ID:
743
745
  case CircuitScriptParser.INTEGER_VALUE:
744
746
  {
745
- this.state = 217;
747
+ this.state = 219;
746
748
  this.assignment_expr2();
747
749
  }
748
750
  break;
@@ -750,11 +752,11 @@ export class CircuitScriptParser extends antlr.Parser {
750
752
  throw new antlr.NoViableAltException(this);
751
753
  }
752
754
  }
753
- this.state = 220;
755
+ this.state = 222;
754
756
  this.errorHandler.sync(this);
755
757
  _la = this.tokenStream.LA(1);
756
758
  } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 259) !== 0));
757
- this.state = 222;
759
+ this.state = 224;
758
760
  this.match(CircuitScriptParser.DEDENT);
759
761
  }
760
762
  }
@@ -779,7 +781,7 @@ export class CircuitScriptParser extends antlr.Parser {
779
781
  try {
780
782
  this.enterOuterAlt(localContext, 1);
781
783
  {
782
- this.state = 224;
784
+ this.state = 226;
783
785
  _la = this.tokenStream.LA(1);
784
786
  if (!(_la === 59 || _la === 60)) {
785
787
  this.errorHandler.recoverInline(this);
@@ -788,9 +790,9 @@ export class CircuitScriptParser extends antlr.Parser {
788
790
  this.errorHandler.reportMatch(this);
789
791
  this.consume();
790
792
  }
791
- this.state = 225;
793
+ this.state = 227;
792
794
  this.match(CircuitScriptParser.T__0);
793
- this.state = 226;
795
+ this.state = 228;
794
796
  this.value_expr();
795
797
  }
796
798
  }
@@ -814,9 +816,9 @@ export class CircuitScriptParser extends antlr.Parser {
814
816
  try {
815
817
  this.enterOuterAlt(localContext, 1);
816
818
  {
817
- this.state = 228;
819
+ this.state = 230;
818
820
  this.match(CircuitScriptParser.Pin);
819
- this.state = 229;
821
+ this.state = 231;
820
822
  this.data_expr(0);
821
823
  }
822
824
  }
@@ -840,11 +842,11 @@ export class CircuitScriptParser extends antlr.Parser {
840
842
  try {
841
843
  this.enterOuterAlt(localContext, 1);
842
844
  {
843
- this.state = 231;
845
+ this.state = 233;
844
846
  this.match(CircuitScriptParser.ID);
845
- this.state = 232;
847
+ this.state = 234;
846
848
  this.match(CircuitScriptParser.T__0);
847
- this.state = 235;
849
+ this.state = 237;
848
850
  this.errorHandler.sync(this);
849
851
  switch (this.tokenStream.LA(1)) {
850
852
  case CircuitScriptParser.Minus:
@@ -855,13 +857,13 @@ export class CircuitScriptParser extends antlr.Parser {
855
857
  case CircuitScriptParser.STRING_VALUE:
856
858
  case CircuitScriptParser.PERCENTAGE_VALUE:
857
859
  {
858
- this.state = 233;
860
+ this.state = 235;
859
861
  this.value_expr();
860
862
  }
861
863
  break;
862
864
  case CircuitScriptParser.ID:
863
865
  {
864
- this.state = 234;
866
+ this.state = 236;
865
867
  this.match(CircuitScriptParser.ID);
866
868
  }
867
869
  break;
@@ -892,44 +894,44 @@ export class CircuitScriptParser extends antlr.Parser {
892
894
  let alternative;
893
895
  this.enterOuterAlt(localContext, 1);
894
896
  {
895
- this.state = 239;
897
+ this.state = 241;
896
898
  this.errorHandler.sync(this);
897
899
  switch (this.interpreter.adaptivePredict(this.tokenStream, 13, this.context)) {
898
900
  case 1:
899
901
  {
900
- this.state = 237;
902
+ this.state = 239;
901
903
  this.data_expr(0);
902
904
  }
903
905
  break;
904
906
  case 2:
905
907
  {
906
- this.state = 238;
908
+ this.state = 240;
907
909
  this.assignment_expr();
908
910
  }
909
911
  break;
910
912
  }
911
- this.state = 244;
913
+ this.state = 246;
912
914
  this.errorHandler.sync(this);
913
915
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
914
916
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
915
917
  if (alternative === 1) {
916
918
  {
917
919
  {
918
- this.state = 241;
920
+ this.state = 243;
919
921
  this.component_modifier_expr();
920
922
  }
921
923
  }
922
924
  }
923
- this.state = 246;
925
+ this.state = 248;
924
926
  this.errorHandler.sync(this);
925
927
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
926
928
  }
927
- this.state = 248;
929
+ this.state = 250;
928
930
  this.errorHandler.sync(this);
929
931
  _la = this.tokenStream.LA(1);
930
932
  if (_la === 16) {
931
933
  {
932
- this.state = 247;
934
+ this.state = 249;
933
935
  this.pin_select_expr();
934
936
  }
935
937
  }
@@ -955,9 +957,9 @@ export class CircuitScriptParser extends antlr.Parser {
955
957
  try {
956
958
  this.enterOuterAlt(localContext, 1);
957
959
  {
958
- this.state = 250;
960
+ this.state = 252;
959
961
  this.match(CircuitScriptParser.Add);
960
- this.state = 251;
962
+ this.state = 253;
961
963
  this.data_expr_with_assignment();
962
964
  }
963
965
  }
@@ -979,7 +981,7 @@ export class CircuitScriptParser extends antlr.Parser {
979
981
  let localContext = new Component_select_exprContext(this.context, this.state);
980
982
  this.enterRule(localContext, 26, CircuitScriptParser.RULE_component_select_expr);
981
983
  try {
982
- this.state = 256;
984
+ this.state = 258;
983
985
  this.errorHandler.sync(this);
984
986
  switch (this.tokenStream.LA(1)) {
985
987
  case CircuitScriptParser.T__4:
@@ -998,21 +1000,21 @@ export class CircuitScriptParser extends antlr.Parser {
998
1000
  case CircuitScriptParser.PERCENTAGE_VALUE:
999
1001
  this.enterOuterAlt(localContext, 1);
1000
1002
  {
1001
- this.state = 253;
1003
+ this.state = 255;
1002
1004
  this.data_expr_with_assignment();
1003
1005
  }
1004
1006
  break;
1005
1007
  case CircuitScriptParser.Pin:
1006
1008
  this.enterOuterAlt(localContext, 2);
1007
1009
  {
1008
- this.state = 254;
1010
+ this.state = 256;
1009
1011
  this.pin_select_expr();
1010
1012
  }
1011
1013
  break;
1012
1014
  case CircuitScriptParser.Point:
1013
1015
  this.enterOuterAlt(localContext, 3);
1014
1016
  {
1015
- this.state = 255;
1017
+ this.state = 257;
1016
1018
  this.match(CircuitScriptParser.Point);
1017
1019
  }
1018
1020
  break;
@@ -1041,7 +1043,7 @@ export class CircuitScriptParser extends antlr.Parser {
1041
1043
  try {
1042
1044
  this.enterOuterAlt(localContext, 1);
1043
1045
  {
1044
- this.state = 258;
1046
+ this.state = 260;
1045
1047
  _la = this.tokenStream.LA(1);
1046
1048
  if (!(_la === 60 || _la === 63)) {
1047
1049
  this.errorHandler.recoverInline(this);
@@ -1072,9 +1074,9 @@ export class CircuitScriptParser extends antlr.Parser {
1072
1074
  try {
1073
1075
  this.enterOuterAlt(localContext, 1);
1074
1076
  {
1075
- this.state = 260;
1077
+ this.state = 262;
1076
1078
  this.match(CircuitScriptParser.At);
1077
- this.state = 261;
1079
+ this.state = 263;
1078
1080
  this.component_select_expr();
1079
1081
  }
1080
1082
  }
@@ -1099,24 +1101,24 @@ export class CircuitScriptParser extends antlr.Parser {
1099
1101
  try {
1100
1102
  this.enterOuterAlt(localContext, 1);
1101
1103
  {
1102
- this.state = 263;
1104
+ this.state = 265;
1103
1105
  this.match(CircuitScriptParser.To);
1104
1106
  {
1105
- this.state = 264;
1107
+ this.state = 266;
1106
1108
  this.component_select_expr();
1107
- this.state = 269;
1109
+ this.state = 271;
1108
1110
  this.errorHandler.sync(this);
1109
1111
  _la = this.tokenStream.LA(1);
1110
1112
  while (_la === 2) {
1111
1113
  {
1112
1114
  {
1113
- this.state = 265;
1115
+ this.state = 267;
1114
1116
  this.match(CircuitScriptParser.T__1);
1115
- this.state = 266;
1117
+ this.state = 268;
1116
1118
  this.component_select_expr();
1117
1119
  }
1118
1120
  }
1119
- this.state = 271;
1121
+ this.state = 273;
1120
1122
  this.errorHandler.sync(this);
1121
1123
  _la = this.tokenStream.LA(1);
1122
1124
  }
@@ -1144,54 +1146,54 @@ export class CircuitScriptParser extends antlr.Parser {
1144
1146
  try {
1145
1147
  this.enterOuterAlt(localContext, 1);
1146
1148
  {
1147
- this.state = 272;
1149
+ this.state = 274;
1148
1150
  this.match(CircuitScriptParser.At);
1149
- this.state = 273;
1151
+ this.state = 275;
1150
1152
  this.component_select_expr();
1151
- this.state = 274;
1153
+ this.state = 276;
1152
1154
  this.match(CircuitScriptParser.To);
1153
- this.state = 275;
1155
+ this.state = 277;
1154
1156
  this.component_select_expr();
1155
- this.state = 280;
1157
+ this.state = 282;
1156
1158
  this.errorHandler.sync(this);
1157
1159
  _la = this.tokenStream.LA(1);
1158
1160
  while (_la === 2) {
1159
1161
  {
1160
1162
  {
1161
- this.state = 276;
1163
+ this.state = 278;
1162
1164
  this.match(CircuitScriptParser.T__1);
1163
- this.state = 277;
1165
+ this.state = 279;
1164
1166
  this.component_select_expr();
1165
1167
  }
1166
1168
  }
1167
- this.state = 282;
1169
+ this.state = 284;
1168
1170
  this.errorHandler.sync(this);
1169
1171
  _la = this.tokenStream.LA(1);
1170
1172
  }
1171
- this.state = 283;
1173
+ this.state = 285;
1172
1174
  this.match(CircuitScriptParser.T__0);
1173
- this.state = 284;
1175
+ this.state = 286;
1174
1176
  this.match(CircuitScriptParser.NEWLINE);
1175
- this.state = 285;
1177
+ this.state = 287;
1176
1178
  this.match(CircuitScriptParser.INDENT);
1177
- this.state = 288;
1179
+ this.state = 290;
1178
1180
  this.errorHandler.sync(this);
1179
1181
  _la = this.tokenStream.LA(1);
1180
1182
  do {
1181
1183
  {
1182
- this.state = 288;
1184
+ this.state = 290;
1183
1185
  this.errorHandler.sync(this);
1184
1186
  switch (this.tokenStream.LA(1)) {
1185
1187
  case CircuitScriptParser.NEWLINE:
1186
1188
  {
1187
- this.state = 286;
1189
+ this.state = 288;
1188
1190
  this.match(CircuitScriptParser.NEWLINE);
1189
1191
  }
1190
1192
  break;
1191
1193
  case CircuitScriptParser.INTEGER_VALUE:
1192
1194
  case CircuitScriptParser.STRING_VALUE:
1193
1195
  {
1194
- this.state = 287;
1196
+ this.state = 289;
1195
1197
  this.at_to_multiple_line_expr();
1196
1198
  }
1197
1199
  break;
@@ -1199,11 +1201,11 @@ export class CircuitScriptParser extends antlr.Parser {
1199
1201
  throw new antlr.NoViableAltException(this);
1200
1202
  }
1201
1203
  }
1202
- this.state = 290;
1204
+ this.state = 292;
1203
1205
  this.errorHandler.sync(this);
1204
1206
  _la = this.tokenStream.LA(1);
1205
1207
  } while (((((_la - 60)) & ~0x1F) === 0 && ((1 << (_la - 60)) & 137) !== 0));
1206
- this.state = 292;
1208
+ this.state = 294;
1207
1209
  this.match(CircuitScriptParser.DEDENT);
1208
1210
  }
1209
1211
  }
@@ -1228,25 +1230,25 @@ export class CircuitScriptParser extends antlr.Parser {
1228
1230
  try {
1229
1231
  this.enterOuterAlt(localContext, 1);
1230
1232
  {
1231
- this.state = 294;
1233
+ this.state = 296;
1232
1234
  this.pin_select_expr2();
1233
- this.state = 295;
1235
+ this.state = 297;
1234
1236
  this.match(CircuitScriptParser.T__0);
1235
- this.state = 296;
1237
+ this.state = 298;
1236
1238
  this.at_to_multiple_line_expr_to_pin();
1237
- this.state = 301;
1239
+ this.state = 303;
1238
1240
  this.errorHandler.sync(this);
1239
1241
  _la = this.tokenStream.LA(1);
1240
1242
  while (_la === 2) {
1241
1243
  {
1242
1244
  {
1243
- this.state = 297;
1245
+ this.state = 299;
1244
1246
  this.match(CircuitScriptParser.T__1);
1245
- this.state = 298;
1247
+ this.state = 300;
1246
1248
  this.at_to_multiple_line_expr_to_pin();
1247
1249
  }
1248
1250
  }
1249
- this.state = 303;
1251
+ this.state = 305;
1250
1252
  this.errorHandler.sync(this);
1251
1253
  _la = this.tokenStream.LA(1);
1252
1254
  }
@@ -1273,7 +1275,7 @@ export class CircuitScriptParser extends antlr.Parser {
1273
1275
  try {
1274
1276
  this.enterOuterAlt(localContext, 1);
1275
1277
  {
1276
- this.state = 304;
1278
+ this.state = 306;
1277
1279
  _la = this.tokenStream.LA(1);
1278
1280
  if (!(_la === 57 || _la === 60)) {
1279
1281
  this.errorHandler.recoverInline(this);
@@ -1305,23 +1307,23 @@ export class CircuitScriptParser extends antlr.Parser {
1305
1307
  try {
1306
1308
  this.enterOuterAlt(localContext, 1);
1307
1309
  {
1308
- this.state = 306;
1310
+ this.state = 308;
1309
1311
  this.at_block_header();
1310
- this.state = 307;
1312
+ this.state = 309;
1311
1313
  this.match(CircuitScriptParser.NEWLINE);
1312
- this.state = 308;
1314
+ this.state = 310;
1313
1315
  this.match(CircuitScriptParser.INDENT);
1314
- this.state = 311;
1316
+ this.state = 313;
1315
1317
  this.errorHandler.sync(this);
1316
1318
  _la = this.tokenStream.LA(1);
1317
1319
  do {
1318
1320
  {
1319
- this.state = 311;
1321
+ this.state = 313;
1320
1322
  this.errorHandler.sync(this);
1321
1323
  switch (this.tokenStream.LA(1)) {
1322
1324
  case CircuitScriptParser.NEWLINE:
1323
1325
  {
1324
- this.state = 309;
1326
+ this.state = 311;
1325
1327
  this.match(CircuitScriptParser.NEWLINE);
1326
1328
  }
1327
1329
  break;
@@ -1352,7 +1354,7 @@ export class CircuitScriptParser extends antlr.Parser {
1352
1354
  case CircuitScriptParser.INTEGER_VALUE:
1353
1355
  case CircuitScriptParser.STRING_VALUE:
1354
1356
  {
1355
- this.state = 310;
1357
+ this.state = 312;
1356
1358
  this.at_block_expressions();
1357
1359
  }
1358
1360
  break;
@@ -1360,11 +1362,11 @@ export class CircuitScriptParser extends antlr.Parser {
1360
1362
  throw new antlr.NoViableAltException(this);
1361
1363
  }
1362
1364
  }
1363
- this.state = 313;
1365
+ this.state = 315;
1364
1366
  this.errorHandler.sync(this);
1365
1367
  _la = this.tokenStream.LA(1);
1366
1368
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 3472353393) !== 0) || ((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 9012229) !== 0));
1367
- this.state = 315;
1369
+ this.state = 317;
1368
1370
  this.match(CircuitScriptParser.DEDENT);
1369
1371
  }
1370
1372
  }
@@ -1386,7 +1388,7 @@ export class CircuitScriptParser extends antlr.Parser {
1386
1388
  let localContext = new At_block_expressionsContext(this.context, this.state);
1387
1389
  this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_expressions);
1388
1390
  try {
1389
- this.state = 319;
1391
+ this.state = 321;
1390
1392
  this.errorHandler.sync(this);
1391
1393
  switch (this.tokenStream.LA(1)) {
1392
1394
  case CircuitScriptParser.T__3:
@@ -1415,7 +1417,7 @@ export class CircuitScriptParser extends antlr.Parser {
1415
1417
  case CircuitScriptParser.ID:
1416
1418
  this.enterOuterAlt(localContext, 1);
1417
1419
  {
1418
- this.state = 317;
1420
+ this.state = 319;
1419
1421
  this.expression();
1420
1422
  }
1421
1423
  break;
@@ -1423,7 +1425,7 @@ export class CircuitScriptParser extends antlr.Parser {
1423
1425
  case CircuitScriptParser.STRING_VALUE:
1424
1426
  this.enterOuterAlt(localContext, 2);
1425
1427
  {
1426
- this.state = 318;
1428
+ this.state = 320;
1427
1429
  this.at_block_pin_expr();
1428
1430
  }
1429
1431
  break;
@@ -1452,21 +1454,21 @@ export class CircuitScriptParser extends antlr.Parser {
1452
1454
  try {
1453
1455
  this.enterOuterAlt(localContext, 1);
1454
1456
  {
1455
- this.state = 321;
1457
+ this.state = 323;
1456
1458
  this.at_component_expr();
1457
- this.state = 322;
1459
+ this.state = 324;
1458
1460
  this.match(CircuitScriptParser.T__0);
1459
- this.state = 326;
1461
+ this.state = 328;
1460
1462
  this.errorHandler.sync(this);
1461
1463
  _la = this.tokenStream.LA(1);
1462
1464
  while (_la === 54) {
1463
1465
  {
1464
1466
  {
1465
- this.state = 323;
1467
+ this.state = 325;
1466
1468
  this.annotation_comment_expr();
1467
1469
  }
1468
1470
  }
1469
- this.state = 328;
1471
+ this.state = 330;
1470
1472
  this.errorHandler.sync(this);
1471
1473
  _la = this.tokenStream.LA(1);
1472
1474
  }
@@ -1492,11 +1494,11 @@ export class CircuitScriptParser extends antlr.Parser {
1492
1494
  try {
1493
1495
  this.enterOuterAlt(localContext, 1);
1494
1496
  {
1495
- this.state = 329;
1497
+ this.state = 331;
1496
1498
  this.pin_select_expr2();
1497
- this.state = 330;
1499
+ this.state = 332;
1498
1500
  this.match(CircuitScriptParser.T__0);
1499
- this.state = 333;
1501
+ this.state = 335;
1500
1502
  this.errorHandler.sync(this);
1501
1503
  switch (this.tokenStream.LA(1)) {
1502
1504
  case CircuitScriptParser.T__3:
@@ -1525,13 +1527,13 @@ export class CircuitScriptParser extends antlr.Parser {
1525
1527
  case CircuitScriptParser.NOT_CONNECTED:
1526
1528
  case CircuitScriptParser.ID:
1527
1529
  {
1528
- this.state = 331;
1530
+ this.state = 333;
1529
1531
  this.at_block_pin_expression_simple();
1530
1532
  }
1531
1533
  break;
1532
1534
  case CircuitScriptParser.NEWLINE:
1533
1535
  {
1534
- this.state = 332;
1536
+ this.state = 334;
1535
1537
  this.at_block_pin_expression_complex();
1536
1538
  }
1537
1539
  break;
@@ -1560,7 +1562,7 @@ export class CircuitScriptParser extends antlr.Parser {
1560
1562
  try {
1561
1563
  this.enterOuterAlt(localContext, 1);
1562
1564
  {
1563
- this.state = 337;
1565
+ this.state = 339;
1564
1566
  this.errorHandler.sync(this);
1565
1567
  switch (this.tokenStream.LA(1)) {
1566
1568
  case CircuitScriptParser.T__3:
@@ -1588,13 +1590,13 @@ export class CircuitScriptParser extends antlr.Parser {
1588
1590
  case CircuitScriptParser.ANNOTATION_START:
1589
1591
  case CircuitScriptParser.ID:
1590
1592
  {
1591
- this.state = 335;
1593
+ this.state = 337;
1592
1594
  this.expression();
1593
1595
  }
1594
1596
  break;
1595
1597
  case CircuitScriptParser.NOT_CONNECTED:
1596
1598
  {
1597
- this.state = 336;
1599
+ this.state = 338;
1598
1600
  this.match(CircuitScriptParser.NOT_CONNECTED);
1599
1601
  }
1600
1602
  break;
@@ -1623,7 +1625,7 @@ export class CircuitScriptParser extends antlr.Parser {
1623
1625
  try {
1624
1626
  this.enterOuterAlt(localContext, 1);
1625
1627
  {
1626
- this.state = 339;
1628
+ this.state = 341;
1627
1629
  this.expressions_block();
1628
1630
  }
1629
1631
  }
@@ -1647,25 +1649,25 @@ export class CircuitScriptParser extends antlr.Parser {
1647
1649
  try {
1648
1650
  this.enterOuterAlt(localContext, 1);
1649
1651
  {
1650
- this.state = 343;
1652
+ this.state = 345;
1651
1653
  this.errorHandler.sync(this);
1652
1654
  switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
1653
1655
  case 1:
1654
1656
  {
1655
- this.state = 341;
1657
+ this.state = 343;
1656
1658
  this.atom_expr();
1657
1659
  }
1658
1660
  break;
1659
1661
  case 2:
1660
1662
  {
1661
- this.state = 342;
1663
+ this.state = 344;
1662
1664
  this.function_call_expr();
1663
1665
  }
1664
1666
  break;
1665
1667
  }
1666
- this.state = 345;
1668
+ this.state = 347;
1667
1669
  this.match(CircuitScriptParser.T__2);
1668
- this.state = 346;
1670
+ this.state = 348;
1669
1671
  this.data_expr(0);
1670
1672
  }
1671
1673
  }
@@ -1690,9 +1692,9 @@ export class CircuitScriptParser extends antlr.Parser {
1690
1692
  try {
1691
1693
  this.enterOuterAlt(localContext, 1);
1692
1694
  {
1693
- this.state = 348;
1695
+ this.state = 350;
1694
1696
  this.atom_expr();
1695
- this.state = 349;
1697
+ this.state = 351;
1696
1698
  _la = this.tokenStream.LA(1);
1697
1699
  if (!(((((_la - 49)) & ~0x1F) === 0 && ((1 << (_la - 49)) & 31) !== 0))) {
1698
1700
  this.errorHandler.recoverInline(this);
@@ -1701,7 +1703,7 @@ export class CircuitScriptParser extends antlr.Parser {
1701
1703
  this.errorHandler.reportMatch(this);
1702
1704
  this.consume();
1703
1705
  }
1704
- this.state = 350;
1706
+ this.state = 352;
1705
1707
  this.data_expr(0);
1706
1708
  }
1707
1709
  }
@@ -1725,11 +1727,11 @@ export class CircuitScriptParser extends antlr.Parser {
1725
1727
  try {
1726
1728
  this.enterOuterAlt(localContext, 1);
1727
1729
  {
1728
- this.state = 352;
1730
+ this.state = 354;
1729
1731
  this.match(CircuitScriptParser.ID);
1730
- this.state = 353;
1732
+ this.state = 355;
1731
1733
  this.match(CircuitScriptParser.T__2);
1732
- this.state = 354;
1734
+ this.state = 356;
1733
1735
  this.data_expr(0);
1734
1736
  }
1735
1737
  }
@@ -1753,46 +1755,46 @@ export class CircuitScriptParser extends antlr.Parser {
1753
1755
  let _la;
1754
1756
  try {
1755
1757
  let alternative;
1756
- this.state = 379;
1758
+ this.state = 381;
1757
1759
  this.errorHandler.sync(this);
1758
1760
  switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context)) {
1759
1761
  case 1:
1760
1762
  this.enterOuterAlt(localContext, 1);
1761
1763
  {
1762
1764
  {
1763
- this.state = 356;
1765
+ this.state = 358;
1764
1766
  this.data_expr(0);
1765
- this.state = 361;
1767
+ this.state = 363;
1766
1768
  this.errorHandler.sync(this);
1767
1769
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1768
1770
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1769
1771
  if (alternative === 1) {
1770
1772
  {
1771
1773
  {
1772
- this.state = 357;
1774
+ this.state = 359;
1773
1775
  this.match(CircuitScriptParser.T__1);
1774
- this.state = 358;
1776
+ this.state = 360;
1775
1777
  this.data_expr(0);
1776
1778
  }
1777
1779
  }
1778
1780
  }
1779
- this.state = 363;
1781
+ this.state = 365;
1780
1782
  this.errorHandler.sync(this);
1781
1783
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1782
1784
  }
1783
- this.state = 368;
1785
+ this.state = 370;
1784
1786
  this.errorHandler.sync(this);
1785
1787
  _la = this.tokenStream.LA(1);
1786
1788
  while (_la === 2) {
1787
1789
  {
1788
1790
  {
1789
- this.state = 364;
1791
+ this.state = 366;
1790
1792
  this.match(CircuitScriptParser.T__1);
1791
- this.state = 365;
1793
+ this.state = 367;
1792
1794
  this.keyword_assignment_expr();
1793
1795
  }
1794
1796
  }
1795
- this.state = 370;
1797
+ this.state = 372;
1796
1798
  this.errorHandler.sync(this);
1797
1799
  _la = this.tokenStream.LA(1);
1798
1800
  }
@@ -1803,21 +1805,21 @@ export class CircuitScriptParser extends antlr.Parser {
1803
1805
  this.enterOuterAlt(localContext, 2);
1804
1806
  {
1805
1807
  {
1806
- this.state = 371;
1808
+ this.state = 373;
1807
1809
  this.keyword_assignment_expr();
1808
- this.state = 376;
1810
+ this.state = 378;
1809
1811
  this.errorHandler.sync(this);
1810
1812
  _la = this.tokenStream.LA(1);
1811
1813
  while (_la === 2) {
1812
1814
  {
1813
1815
  {
1814
- this.state = 372;
1816
+ this.state = 374;
1815
1817
  this.match(CircuitScriptParser.T__1);
1816
- this.state = 373;
1818
+ this.state = 375;
1817
1819
  this.keyword_assignment_expr();
1818
1820
  }
1819
1821
  }
1820
- this.state = 378;
1822
+ this.state = 380;
1821
1823
  this.errorHandler.sync(this);
1822
1824
  _la = this.tokenStream.LA(1);
1823
1825
  }
@@ -1846,11 +1848,11 @@ export class CircuitScriptParser extends antlr.Parser {
1846
1848
  try {
1847
1849
  this.enterOuterAlt(localContext, 1);
1848
1850
  {
1849
- this.state = 381;
1851
+ this.state = 383;
1850
1852
  this.atom_expr();
1851
- this.state = 382;
1853
+ this.state = 384;
1852
1854
  this.match(CircuitScriptParser.T__2);
1853
- this.state = 383;
1855
+ this.state = 385;
1854
1856
  this.data_expr(0);
1855
1857
  }
1856
1858
  }
@@ -1874,13 +1876,13 @@ export class CircuitScriptParser extends antlr.Parser {
1874
1876
  try {
1875
1877
  this.enterOuterAlt(localContext, 1);
1876
1878
  {
1877
- this.state = 385;
1879
+ this.state = 387;
1878
1880
  this.match(CircuitScriptParser.T__3);
1879
- this.state = 386;
1881
+ this.state = 388;
1880
1882
  this.match(CircuitScriptParser.ID);
1881
- this.state = 387;
1883
+ this.state = 389;
1882
1884
  this.match(CircuitScriptParser.T__2);
1883
- this.state = 388;
1885
+ this.state = 390;
1884
1886
  this.data_expr(0);
1885
1887
  }
1886
1888
  }
@@ -1913,7 +1915,7 @@ export class CircuitScriptParser extends antlr.Parser {
1913
1915
  let alternative;
1914
1916
  this.enterOuterAlt(localContext, 1);
1915
1917
  {
1916
- this.state = 407;
1918
+ this.state = 409;
1917
1919
  this.errorHandler.sync(this);
1918
1920
  switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context)) {
1919
1921
  case 1:
@@ -1921,11 +1923,11 @@ export class CircuitScriptParser extends antlr.Parser {
1921
1923
  localContext = new RoundedBracketsExprContext(localContext);
1922
1924
  this.context = localContext;
1923
1925
  previousContext = localContext;
1924
- this.state = 391;
1926
+ this.state = 393;
1925
1927
  this.match(CircuitScriptParser.OPEN_PAREN);
1926
- this.state = 392;
1928
+ this.state = 394;
1927
1929
  this.data_expr(0);
1928
- this.state = 393;
1930
+ this.state = 395;
1929
1931
  this.match(CircuitScriptParser.CLOSE_PAREN);
1930
1932
  }
1931
1933
  break;
@@ -1934,7 +1936,7 @@ export class CircuitScriptParser extends antlr.Parser {
1934
1936
  localContext = new ValueAtomExprContext(localContext);
1935
1937
  this.context = localContext;
1936
1938
  previousContext = localContext;
1937
- this.state = 397;
1939
+ this.state = 399;
1938
1940
  this.errorHandler.sync(this);
1939
1941
  switch (this.tokenStream.LA(1)) {
1940
1942
  case CircuitScriptParser.Minus:
@@ -1945,13 +1947,13 @@ export class CircuitScriptParser extends antlr.Parser {
1945
1947
  case CircuitScriptParser.STRING_VALUE:
1946
1948
  case CircuitScriptParser.PERCENTAGE_VALUE:
1947
1949
  {
1948
- this.state = 395;
1950
+ this.state = 397;
1949
1951
  this.value_expr();
1950
1952
  }
1951
1953
  break;
1952
1954
  case CircuitScriptParser.ID:
1953
1955
  {
1954
- this.state = 396;
1956
+ this.state = 398;
1955
1957
  this.atom_expr();
1956
1958
  }
1957
1959
  break;
@@ -1965,9 +1967,9 @@ export class CircuitScriptParser extends antlr.Parser {
1965
1967
  localContext = new UnaryOperatorExprContext(localContext);
1966
1968
  this.context = localContext;
1967
1969
  previousContext = localContext;
1968
- this.state = 399;
1970
+ this.state = 401;
1969
1971
  this.unary_operator();
1970
- this.state = 400;
1972
+ this.state = 402;
1971
1973
  this.data_expr(11);
1972
1974
  }
1973
1975
  break;
@@ -1976,7 +1978,7 @@ export class CircuitScriptParser extends antlr.Parser {
1976
1978
  localContext = new DataExprContext(localContext);
1977
1979
  this.context = localContext;
1978
1980
  previousContext = localContext;
1979
- this.state = 402;
1981
+ this.state = 404;
1980
1982
  this.create_component_expr();
1981
1983
  }
1982
1984
  break;
@@ -1985,7 +1987,7 @@ export class CircuitScriptParser extends antlr.Parser {
1985
1987
  localContext = new DataExprContext(localContext);
1986
1988
  this.context = localContext;
1987
1989
  previousContext = localContext;
1988
- this.state = 403;
1990
+ this.state = 405;
1989
1991
  this.create_graphic_expr();
1990
1992
  }
1991
1993
  break;
@@ -1994,7 +1996,7 @@ export class CircuitScriptParser extends antlr.Parser {
1994
1996
  localContext = new DataExprContext(localContext);
1995
1997
  this.context = localContext;
1996
1998
  previousContext = localContext;
1997
- this.state = 404;
1999
+ this.state = 406;
1998
2000
  this.create_module_expr();
1999
2001
  }
2000
2002
  break;
@@ -2003,7 +2005,7 @@ export class CircuitScriptParser extends antlr.Parser {
2003
2005
  localContext = new FunctionCallExprContext(localContext);
2004
2006
  this.context = localContext;
2005
2007
  previousContext = localContext;
2006
- this.state = 405;
2008
+ this.state = 407;
2007
2009
  this.function_call_expr();
2008
2010
  }
2009
2011
  break;
@@ -2012,13 +2014,13 @@ export class CircuitScriptParser extends antlr.Parser {
2012
2014
  localContext = new ArrayExprContext(localContext);
2013
2015
  this.context = localContext;
2014
2016
  previousContext = localContext;
2015
- this.state = 406;
2017
+ this.state = 408;
2016
2018
  this.array_expr();
2017
2019
  }
2018
2020
  break;
2019
2021
  }
2020
2022
  this.context.stop = this.tokenStream.LT(-1);
2021
- this.state = 429;
2023
+ this.state = 431;
2022
2024
  this.errorHandler.sync(this);
2023
2025
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
2024
2026
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -2028,18 +2030,18 @@ export class CircuitScriptParser extends antlr.Parser {
2028
2030
  }
2029
2031
  previousContext = localContext;
2030
2032
  {
2031
- this.state = 427;
2033
+ this.state = 429;
2032
2034
  this.errorHandler.sync(this);
2033
2035
  switch (this.interpreter.adaptivePredict(this.tokenStream, 35, this.context)) {
2034
2036
  case 1:
2035
2037
  {
2036
2038
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
2037
2039
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2038
- this.state = 409;
2040
+ this.state = 411;
2039
2041
  if (!(this.precpred(this.context, 10))) {
2040
2042
  throw this.createFailedPredicateException("this.precpred(this.context, 10)");
2041
2043
  }
2042
- this.state = 410;
2044
+ this.state = 412;
2043
2045
  _la = this.tokenStream.LA(1);
2044
2046
  if (!(((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 7) !== 0))) {
2045
2047
  this.errorHandler.recoverInline(this);
@@ -2048,7 +2050,7 @@ export class CircuitScriptParser extends antlr.Parser {
2048
2050
  this.errorHandler.reportMatch(this);
2049
2051
  this.consume();
2050
2052
  }
2051
- this.state = 411;
2053
+ this.state = 413;
2052
2054
  this.data_expr(11);
2053
2055
  }
2054
2056
  break;
@@ -2056,11 +2058,11 @@ export class CircuitScriptParser extends antlr.Parser {
2056
2058
  {
2057
2059
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
2058
2060
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2059
- this.state = 412;
2061
+ this.state = 414;
2060
2062
  if (!(this.precpred(this.context, 9))) {
2061
2063
  throw this.createFailedPredicateException("this.precpred(this.context, 9)");
2062
2064
  }
2063
- this.state = 413;
2065
+ this.state = 415;
2064
2066
  _la = this.tokenStream.LA(1);
2065
2067
  if (!(_la === 44 || _la === 45)) {
2066
2068
  this.errorHandler.recoverInline(this);
@@ -2069,7 +2071,7 @@ export class CircuitScriptParser extends antlr.Parser {
2069
2071
  this.errorHandler.reportMatch(this);
2070
2072
  this.consume();
2071
2073
  }
2072
- this.state = 414;
2074
+ this.state = 416;
2073
2075
  this.data_expr(10);
2074
2076
  }
2075
2077
  break;
@@ -2077,13 +2079,13 @@ export class CircuitScriptParser extends antlr.Parser {
2077
2079
  {
2078
2080
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
2079
2081
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2080
- this.state = 415;
2082
+ this.state = 417;
2081
2083
  if (!(this.precpred(this.context, 8))) {
2082
2084
  throw this.createFailedPredicateException("this.precpred(this.context, 8)");
2083
2085
  }
2084
- this.state = 416;
2086
+ this.state = 418;
2085
2087
  this.binary_operator();
2086
- this.state = 417;
2088
+ this.state = 419;
2087
2089
  this.data_expr(9);
2088
2090
  }
2089
2091
  break;
@@ -2091,11 +2093,11 @@ export class CircuitScriptParser extends antlr.Parser {
2091
2093
  {
2092
2094
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
2093
2095
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2094
- this.state = 419;
2096
+ this.state = 421;
2095
2097
  if (!(this.precpred(this.context, 7))) {
2096
2098
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
2097
2099
  }
2098
- this.state = 420;
2100
+ this.state = 422;
2099
2101
  _la = this.tokenStream.LA(1);
2100
2102
  if (!(_la === 42 || _la === 43)) {
2101
2103
  this.errorHandler.recoverInline(this);
@@ -2104,7 +2106,7 @@ export class CircuitScriptParser extends antlr.Parser {
2104
2106
  this.errorHandler.reportMatch(this);
2105
2107
  this.consume();
2106
2108
  }
2107
- this.state = 421;
2109
+ this.state = 423;
2108
2110
  this.data_expr(8);
2109
2111
  }
2110
2112
  break;
@@ -2112,22 +2114,22 @@ export class CircuitScriptParser extends antlr.Parser {
2112
2114
  {
2113
2115
  localContext = new ArrayIndexExprContext(new Data_exprContext(parentContext, parentState));
2114
2116
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2115
- this.state = 422;
2117
+ this.state = 424;
2116
2118
  if (!(this.precpred(this.context, 1))) {
2117
2119
  throw this.createFailedPredicateException("this.precpred(this.context, 1)");
2118
2120
  }
2119
- this.state = 423;
2121
+ this.state = 425;
2120
2122
  this.match(CircuitScriptParser.T__4);
2121
- this.state = 424;
2123
+ this.state = 426;
2122
2124
  this.data_expr(0);
2123
- this.state = 425;
2125
+ this.state = 427;
2124
2126
  this.match(CircuitScriptParser.T__5);
2125
2127
  }
2126
2128
  break;
2127
2129
  }
2128
2130
  }
2129
2131
  }
2130
- this.state = 431;
2132
+ this.state = 433;
2131
2133
  this.errorHandler.sync(this);
2132
2134
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
2133
2135
  }
@@ -2154,7 +2156,7 @@ export class CircuitScriptParser extends antlr.Parser {
2154
2156
  try {
2155
2157
  this.enterOuterAlt(localContext, 1);
2156
2158
  {
2157
- this.state = 432;
2159
+ this.state = 434;
2158
2160
  _la = this.tokenStream.LA(1);
2159
2161
  if (!(((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 63) !== 0))) {
2160
2162
  this.errorHandler.recoverInline(this);
@@ -2186,7 +2188,7 @@ export class CircuitScriptParser extends antlr.Parser {
2186
2188
  try {
2187
2189
  this.enterOuterAlt(localContext, 1);
2188
2190
  {
2189
- this.state = 434;
2191
+ this.state = 436;
2190
2192
  _la = this.tokenStream.LA(1);
2191
2193
  if (!(_la === 33 || _la === 45)) {
2192
2194
  this.errorHandler.recoverInline(this);
@@ -2219,16 +2221,16 @@ export class CircuitScriptParser extends antlr.Parser {
2219
2221
  this.enterOuterAlt(localContext, 1);
2220
2222
  {
2221
2223
  {
2222
- this.state = 437;
2224
+ this.state = 439;
2223
2225
  this.errorHandler.sync(this);
2224
2226
  _la = this.tokenStream.LA(1);
2225
2227
  if (_la === 45) {
2226
2228
  {
2227
- this.state = 436;
2229
+ this.state = 438;
2228
2230
  this.match(CircuitScriptParser.Minus);
2229
2231
  }
2230
2232
  }
2231
- this.state = 439;
2233
+ this.state = 441;
2232
2234
  _la = this.tokenStream.LA(1);
2233
2235
  if (!(((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 125) !== 0))) {
2234
2236
  this.errorHandler.recoverInline(this);
@@ -2261,40 +2263,40 @@ export class CircuitScriptParser extends antlr.Parser {
2261
2263
  try {
2262
2264
  this.enterOuterAlt(localContext, 1);
2263
2265
  {
2264
- this.state = 441;
2266
+ this.state = 443;
2265
2267
  this.match(CircuitScriptParser.Define);
2266
- this.state = 442;
2268
+ this.state = 444;
2267
2269
  this.match(CircuitScriptParser.ID);
2268
- this.state = 443;
2269
- this.match(CircuitScriptParser.OPEN_PAREN);
2270
2270
  this.state = 445;
2271
+ this.match(CircuitScriptParser.OPEN_PAREN);
2272
+ this.state = 447;
2271
2273
  this.errorHandler.sync(this);
2272
2274
  _la = this.tokenStream.LA(1);
2273
2275
  if (_la === 59) {
2274
2276
  {
2275
- this.state = 444;
2277
+ this.state = 446;
2276
2278
  this.function_args_expr();
2277
2279
  }
2278
2280
  }
2279
- this.state = 447;
2281
+ this.state = 449;
2280
2282
  this.match(CircuitScriptParser.CLOSE_PAREN);
2281
- this.state = 448;
2283
+ this.state = 450;
2282
2284
  this.match(CircuitScriptParser.T__0);
2283
- this.state = 449;
2285
+ this.state = 451;
2284
2286
  this.match(CircuitScriptParser.NEWLINE);
2285
- this.state = 450;
2287
+ this.state = 452;
2286
2288
  this.match(CircuitScriptParser.INDENT);
2287
- this.state = 453;
2289
+ this.state = 455;
2288
2290
  this.errorHandler.sync(this);
2289
2291
  _la = this.tokenStream.LA(1);
2290
2292
  do {
2291
2293
  {
2292
- this.state = 453;
2294
+ this.state = 455;
2293
2295
  this.errorHandler.sync(this);
2294
2296
  switch (this.tokenStream.LA(1)) {
2295
2297
  case CircuitScriptParser.NEWLINE:
2296
2298
  {
2297
- this.state = 451;
2299
+ this.state = 453;
2298
2300
  this.match(CircuitScriptParser.NEWLINE);
2299
2301
  }
2300
2302
  break;
@@ -2324,7 +2326,7 @@ export class CircuitScriptParser extends antlr.Parser {
2324
2326
  case CircuitScriptParser.ANNOTATION_START:
2325
2327
  case CircuitScriptParser.ID:
2326
2328
  {
2327
- this.state = 452;
2329
+ this.state = 454;
2328
2330
  this.function_expr();
2329
2331
  }
2330
2332
  break;
@@ -2332,11 +2334,11 @@ export class CircuitScriptParser extends antlr.Parser {
2332
2334
  throw new antlr.NoViableAltException(this);
2333
2335
  }
2334
2336
  }
2335
- this.state = 455;
2337
+ this.state = 457;
2336
2338
  this.errorHandler.sync(this);
2337
2339
  _la = this.tokenStream.LA(1);
2338
2340
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 3472877681) !== 0) || ((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 8422405) !== 0));
2339
- this.state = 457;
2341
+ this.state = 459;
2340
2342
  this.match(CircuitScriptParser.DEDENT);
2341
2343
  }
2342
2344
  }
@@ -2358,7 +2360,7 @@ export class CircuitScriptParser extends antlr.Parser {
2358
2360
  let localContext = new Function_exprContext(this.context, this.state);
2359
2361
  this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_expr);
2360
2362
  try {
2361
- this.state = 461;
2363
+ this.state = 463;
2362
2364
  this.errorHandler.sync(this);
2363
2365
  switch (this.tokenStream.LA(1)) {
2364
2366
  case CircuitScriptParser.T__3:
@@ -2387,14 +2389,14 @@ export class CircuitScriptParser extends antlr.Parser {
2387
2389
  case CircuitScriptParser.ID:
2388
2390
  this.enterOuterAlt(localContext, 1);
2389
2391
  {
2390
- this.state = 459;
2392
+ this.state = 461;
2391
2393
  this.expression();
2392
2394
  }
2393
2395
  break;
2394
2396
  case CircuitScriptParser.Return:
2395
2397
  this.enterOuterAlt(localContext, 2);
2396
2398
  {
2397
- this.state = 460;
2399
+ this.state = 462;
2398
2400
  this.function_return_expr();
2399
2401
  }
2400
2402
  break;
@@ -2422,49 +2424,49 @@ export class CircuitScriptParser extends antlr.Parser {
2422
2424
  let _la;
2423
2425
  try {
2424
2426
  let alternative;
2425
- this.state = 492;
2427
+ this.state = 494;
2426
2428
  this.errorHandler.sync(this);
2427
2429
  switch (this.interpreter.adaptivePredict(this.tokenStream, 45, this.context)) {
2428
2430
  case 1:
2429
2431
  this.enterOuterAlt(localContext, 1);
2430
2432
  {
2431
- this.state = 463;
2433
+ this.state = 465;
2432
2434
  this.match(CircuitScriptParser.ID);
2433
- this.state = 468;
2435
+ this.state = 470;
2434
2436
  this.errorHandler.sync(this);
2435
2437
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2436
2438
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2437
2439
  if (alternative === 1) {
2438
2440
  {
2439
2441
  {
2440
- this.state = 464;
2442
+ this.state = 466;
2441
2443
  this.match(CircuitScriptParser.T__1);
2442
- this.state = 465;
2444
+ this.state = 467;
2443
2445
  this.match(CircuitScriptParser.ID);
2444
2446
  }
2445
2447
  }
2446
2448
  }
2447
- this.state = 470;
2449
+ this.state = 472;
2448
2450
  this.errorHandler.sync(this);
2449
2451
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2450
2452
  }
2451
- this.state = 477;
2453
+ this.state = 479;
2452
2454
  this.errorHandler.sync(this);
2453
2455
  _la = this.tokenStream.LA(1);
2454
2456
  while (_la === 2) {
2455
2457
  {
2456
2458
  {
2457
- this.state = 471;
2459
+ this.state = 473;
2458
2460
  this.match(CircuitScriptParser.T__1);
2459
- this.state = 472;
2461
+ this.state = 474;
2460
2462
  this.match(CircuitScriptParser.ID);
2461
- this.state = 473;
2463
+ this.state = 475;
2462
2464
  this.match(CircuitScriptParser.T__2);
2463
- this.state = 474;
2465
+ this.state = 476;
2464
2466
  this.value_expr();
2465
2467
  }
2466
2468
  }
2467
- this.state = 479;
2469
+ this.state = 481;
2468
2470
  this.errorHandler.sync(this);
2469
2471
  _la = this.tokenStream.LA(1);
2470
2472
  }
@@ -2473,29 +2475,29 @@ export class CircuitScriptParser extends antlr.Parser {
2473
2475
  case 2:
2474
2476
  this.enterOuterAlt(localContext, 2);
2475
2477
  {
2476
- this.state = 480;
2478
+ this.state = 482;
2477
2479
  this.match(CircuitScriptParser.ID);
2478
- this.state = 481;
2480
+ this.state = 483;
2479
2481
  this.match(CircuitScriptParser.T__2);
2480
- this.state = 482;
2482
+ this.state = 484;
2481
2483
  this.value_expr();
2482
- this.state = 489;
2484
+ this.state = 491;
2483
2485
  this.errorHandler.sync(this);
2484
2486
  _la = this.tokenStream.LA(1);
2485
2487
  while (_la === 2) {
2486
2488
  {
2487
2489
  {
2488
- this.state = 483;
2490
+ this.state = 485;
2489
2491
  this.match(CircuitScriptParser.T__1);
2490
- this.state = 484;
2492
+ this.state = 486;
2491
2493
  this.match(CircuitScriptParser.ID);
2492
- this.state = 485;
2494
+ this.state = 487;
2493
2495
  this.match(CircuitScriptParser.T__2);
2494
- this.state = 486;
2496
+ this.state = 488;
2495
2497
  this.value_expr();
2496
2498
  }
2497
2499
  }
2498
- this.state = 491;
2500
+ this.state = 493;
2499
2501
  this.errorHandler.sync(this);
2500
2502
  _la = this.tokenStream.LA(1);
2501
2503
  }
@@ -2524,21 +2526,21 @@ export class CircuitScriptParser extends antlr.Parser {
2524
2526
  let alternative;
2525
2527
  this.enterOuterAlt(localContext, 1);
2526
2528
  {
2527
- this.state = 494;
2529
+ this.state = 496;
2528
2530
  this.match(CircuitScriptParser.ID);
2529
- this.state = 498;
2531
+ this.state = 500;
2530
2532
  this.errorHandler.sync(this);
2531
2533
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2532
2534
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2533
2535
  if (alternative === 1) {
2534
2536
  {
2535
2537
  {
2536
- this.state = 495;
2538
+ this.state = 497;
2537
2539
  this.trailer_expr2();
2538
2540
  }
2539
2541
  }
2540
2542
  }
2541
- this.state = 500;
2543
+ this.state = 502;
2542
2544
  this.errorHandler.sync(this);
2543
2545
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2544
2546
  }
@@ -2563,24 +2565,24 @@ export class CircuitScriptParser extends antlr.Parser {
2563
2565
  this.enterRule(localContext, 80, CircuitScriptParser.RULE_trailer_expr);
2564
2566
  let _la;
2565
2567
  try {
2566
- this.state = 507;
2568
+ this.state = 509;
2567
2569
  this.errorHandler.sync(this);
2568
2570
  switch (this.tokenStream.LA(1)) {
2569
2571
  case CircuitScriptParser.OPEN_PAREN:
2570
2572
  this.enterOuterAlt(localContext, 1);
2571
2573
  {
2572
- this.state = 501;
2573
- this.match(CircuitScriptParser.OPEN_PAREN);
2574
2574
  this.state = 503;
2575
+ this.match(CircuitScriptParser.OPEN_PAREN);
2576
+ this.state = 505;
2575
2577
  this.errorHandler.sync(this);
2576
2578
  _la = this.tokenStream.LA(1);
2577
2579
  if (_la === 5 || _la === 11 || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 4265621505) !== 0)) {
2578
2580
  {
2579
- this.state = 502;
2581
+ this.state = 504;
2580
2582
  this.parameters();
2581
2583
  }
2582
2584
  }
2583
- this.state = 505;
2585
+ this.state = 507;
2584
2586
  this.match(CircuitScriptParser.CLOSE_PAREN);
2585
2587
  }
2586
2588
  break;
@@ -2588,7 +2590,7 @@ export class CircuitScriptParser extends antlr.Parser {
2588
2590
  case CircuitScriptParser.T__6:
2589
2591
  this.enterOuterAlt(localContext, 2);
2590
2592
  {
2591
- this.state = 506;
2593
+ this.state = 508;
2592
2594
  this.trailer_expr2();
2593
2595
  }
2594
2596
  break;
@@ -2614,26 +2616,26 @@ export class CircuitScriptParser extends antlr.Parser {
2614
2616
  let localContext = new Trailer_expr2Context(this.context, this.state);
2615
2617
  this.enterRule(localContext, 82, CircuitScriptParser.RULE_trailer_expr2);
2616
2618
  try {
2617
- this.state = 515;
2619
+ this.state = 517;
2618
2620
  this.errorHandler.sync(this);
2619
2621
  switch (this.tokenStream.LA(1)) {
2620
2622
  case CircuitScriptParser.T__6:
2621
2623
  this.enterOuterAlt(localContext, 1);
2622
2624
  {
2623
- this.state = 509;
2625
+ this.state = 511;
2624
2626
  this.match(CircuitScriptParser.T__6);
2625
- this.state = 510;
2627
+ this.state = 512;
2626
2628
  this.match(CircuitScriptParser.ID);
2627
2629
  }
2628
2630
  break;
2629
2631
  case CircuitScriptParser.T__4:
2630
2632
  this.enterOuterAlt(localContext, 2);
2631
2633
  {
2632
- this.state = 511;
2634
+ this.state = 513;
2633
2635
  this.match(CircuitScriptParser.T__4);
2634
- this.state = 512;
2636
+ this.state = 514;
2635
2637
  this.data_expr(0);
2636
- this.state = 513;
2638
+ this.state = 515;
2637
2639
  this.match(CircuitScriptParser.T__5);
2638
2640
  }
2639
2641
  break;
@@ -2663,18 +2665,18 @@ export class CircuitScriptParser extends antlr.Parser {
2663
2665
  let alternative;
2664
2666
  this.enterOuterAlt(localContext, 1);
2665
2667
  {
2666
- this.state = 518;
2668
+ this.state = 520;
2667
2669
  this.errorHandler.sync(this);
2668
2670
  _la = this.tokenStream.LA(1);
2669
2671
  if (_la === 44 || _la === 46) {
2670
2672
  {
2671
- this.state = 517;
2673
+ this.state = 519;
2672
2674
  this.net_namespace_expr();
2673
2675
  }
2674
2676
  }
2675
- this.state = 520;
2676
- this.match(CircuitScriptParser.ID);
2677
2677
  this.state = 522;
2678
+ this.match(CircuitScriptParser.ID);
2679
+ this.state = 524;
2678
2680
  this.errorHandler.sync(this);
2679
2681
  alternative = 1;
2680
2682
  do {
@@ -2682,7 +2684,7 @@ export class CircuitScriptParser extends antlr.Parser {
2682
2684
  case 1:
2683
2685
  {
2684
2686
  {
2685
- this.state = 521;
2687
+ this.state = 523;
2686
2688
  this.trailer_expr();
2687
2689
  }
2688
2690
  }
@@ -2690,7 +2692,7 @@ export class CircuitScriptParser extends antlr.Parser {
2690
2692
  default:
2691
2693
  throw new antlr.NoViableAltException(this);
2692
2694
  }
2693
- this.state = 524;
2695
+ this.state = 526;
2694
2696
  this.errorHandler.sync(this);
2695
2697
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 51, this.context);
2696
2698
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
@@ -2717,23 +2719,23 @@ export class CircuitScriptParser extends antlr.Parser {
2717
2719
  try {
2718
2720
  this.enterOuterAlt(localContext, 1);
2719
2721
  {
2720
- this.state = 527;
2722
+ this.state = 529;
2721
2723
  this.errorHandler.sync(this);
2722
2724
  _la = this.tokenStream.LA(1);
2723
2725
  if (_la === 44) {
2724
2726
  {
2725
- this.state = 526;
2727
+ this.state = 528;
2726
2728
  this.match(CircuitScriptParser.Addition);
2727
2729
  }
2728
2730
  }
2729
- this.state = 529;
2730
- this.match(CircuitScriptParser.Divide);
2731
2731
  this.state = 531;
2732
+ this.match(CircuitScriptParser.Divide);
2733
+ this.state = 533;
2732
2734
  this.errorHandler.sync(this);
2733
2735
  switch (this.interpreter.adaptivePredict(this.tokenStream, 53, this.context)) {
2734
2736
  case 1:
2735
2737
  {
2736
- this.state = 530;
2738
+ this.state = 532;
2737
2739
  this.data_expr(0);
2738
2740
  }
2739
2741
  break;
@@ -2760,9 +2762,9 @@ export class CircuitScriptParser extends antlr.Parser {
2760
2762
  try {
2761
2763
  this.enterOuterAlt(localContext, 1);
2762
2764
  {
2763
- this.state = 533;
2765
+ this.state = 535;
2764
2766
  this.match(CircuitScriptParser.Return);
2765
- this.state = 534;
2767
+ this.state = 536;
2766
2768
  this.data_expr(0);
2767
2769
  }
2768
2770
  }
@@ -2786,11 +2788,11 @@ export class CircuitScriptParser extends antlr.Parser {
2786
2788
  try {
2787
2789
  this.enterOuterAlt(localContext, 1);
2788
2790
  {
2789
- this.state = 536;
2791
+ this.state = 538;
2790
2792
  this.property_key_expr();
2791
- this.state = 537;
2793
+ this.state = 539;
2792
2794
  this.match(CircuitScriptParser.T__0);
2793
- this.state = 538;
2795
+ this.state = 540;
2794
2796
  this.expressions_block();
2795
2797
  }
2796
2798
  }
@@ -2815,27 +2817,27 @@ export class CircuitScriptParser extends antlr.Parser {
2815
2817
  try {
2816
2818
  this.enterOuterAlt(localContext, 1);
2817
2819
  {
2818
- this.state = 540;
2820
+ this.state = 542;
2819
2821
  this.match(CircuitScriptParser.Create);
2820
- this.state = 541;
2822
+ this.state = 543;
2821
2823
  this.match(CircuitScriptParser.Component);
2822
- this.state = 542;
2824
+ this.state = 544;
2823
2825
  this.match(CircuitScriptParser.T__0);
2824
- this.state = 543;
2826
+ this.state = 545;
2825
2827
  this.match(CircuitScriptParser.NEWLINE);
2826
- this.state = 544;
2828
+ this.state = 546;
2827
2829
  this.match(CircuitScriptParser.INDENT);
2828
- this.state = 547;
2830
+ this.state = 549;
2829
2831
  this.errorHandler.sync(this);
2830
2832
  _la = this.tokenStream.LA(1);
2831
2833
  do {
2832
2834
  {
2833
- this.state = 547;
2835
+ this.state = 549;
2834
2836
  this.errorHandler.sync(this);
2835
2837
  switch (this.tokenStream.LA(1)) {
2836
2838
  case CircuitScriptParser.NEWLINE:
2837
2839
  {
2838
- this.state = 545;
2840
+ this.state = 547;
2839
2841
  this.match(CircuitScriptParser.NEWLINE);
2840
2842
  }
2841
2843
  break;
@@ -2843,7 +2845,7 @@ export class CircuitScriptParser extends antlr.Parser {
2843
2845
  case CircuitScriptParser.INTEGER_VALUE:
2844
2846
  case CircuitScriptParser.STRING_VALUE:
2845
2847
  {
2846
- this.state = 546;
2848
+ this.state = 548;
2847
2849
  this.property_expr();
2848
2850
  }
2849
2851
  break;
@@ -2851,11 +2853,11 @@ export class CircuitScriptParser extends antlr.Parser {
2851
2853
  throw new antlr.NoViableAltException(this);
2852
2854
  }
2853
2855
  }
2854
- this.state = 549;
2856
+ this.state = 551;
2855
2857
  this.errorHandler.sync(this);
2856
2858
  _la = this.tokenStream.LA(1);
2857
2859
  } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 275) !== 0));
2858
- this.state = 551;
2860
+ this.state = 553;
2859
2861
  this.match(CircuitScriptParser.DEDENT);
2860
2862
  }
2861
2863
  }
@@ -2880,21 +2882,21 @@ export class CircuitScriptParser extends antlr.Parser {
2880
2882
  try {
2881
2883
  this.enterOuterAlt(localContext, 1);
2882
2884
  {
2883
- this.state = 553;
2885
+ this.state = 555;
2884
2886
  this.match(CircuitScriptParser.NEWLINE);
2885
- this.state = 554;
2887
+ this.state = 556;
2886
2888
  this.match(CircuitScriptParser.INDENT);
2887
- this.state = 557;
2889
+ this.state = 559;
2888
2890
  this.errorHandler.sync(this);
2889
2891
  _la = this.tokenStream.LA(1);
2890
2892
  do {
2891
2893
  {
2892
- this.state = 557;
2894
+ this.state = 559;
2893
2895
  this.errorHandler.sync(this);
2894
2896
  switch (this.tokenStream.LA(1)) {
2895
2897
  case CircuitScriptParser.NEWLINE:
2896
2898
  {
2897
- this.state = 555;
2899
+ this.state = 557;
2898
2900
  this.match(CircuitScriptParser.NEWLINE);
2899
2901
  }
2900
2902
  break;
@@ -2902,7 +2904,7 @@ export class CircuitScriptParser extends antlr.Parser {
2902
2904
  case CircuitScriptParser.For:
2903
2905
  case CircuitScriptParser.ID:
2904
2906
  {
2905
- this.state = 556;
2907
+ this.state = 558;
2906
2908
  this.graphic_expr();
2907
2909
  }
2908
2910
  break;
@@ -2910,11 +2912,11 @@ export class CircuitScriptParser extends antlr.Parser {
2910
2912
  throw new antlr.NoViableAltException(this);
2911
2913
  }
2912
2914
  }
2913
- this.state = 559;
2915
+ this.state = 561;
2914
2916
  this.errorHandler.sync(this);
2915
2917
  _la = this.tokenStream.LA(1);
2916
2918
  } while (_la === 16 || _la === 27 || _la === 59 || _la === 67);
2917
- this.state = 561;
2919
+ this.state = 563;
2918
2920
  this.match(CircuitScriptParser.DEDENT);
2919
2921
  }
2920
2922
  }
@@ -2939,26 +2941,26 @@ export class CircuitScriptParser extends antlr.Parser {
2939
2941
  try {
2940
2942
  this.enterOuterAlt(localContext, 1);
2941
2943
  {
2942
- this.state = 563;
2944
+ this.state = 565;
2943
2945
  this.match(CircuitScriptParser.Create);
2944
- this.state = 564;
2946
+ this.state = 566;
2945
2947
  this.match(CircuitScriptParser.Graphic);
2946
- this.state = 568;
2948
+ this.state = 570;
2947
2949
  this.errorHandler.sync(this);
2948
2950
  _la = this.tokenStream.LA(1);
2949
2951
  if (_la === 55) {
2950
2952
  {
2951
- this.state = 565;
2953
+ this.state = 567;
2952
2954
  this.match(CircuitScriptParser.OPEN_PAREN);
2953
- this.state = 566;
2955
+ this.state = 568;
2954
2956
  this.match(CircuitScriptParser.ID);
2955
- this.state = 567;
2957
+ this.state = 569;
2956
2958
  this.match(CircuitScriptParser.CLOSE_PAREN);
2957
2959
  }
2958
2960
  }
2959
- this.state = 570;
2961
+ this.state = 572;
2960
2962
  this.match(CircuitScriptParser.T__0);
2961
- this.state = 571;
2963
+ this.state = 573;
2962
2964
  this.graphic_expressions_block();
2963
2965
  }
2964
2966
  }
@@ -2983,49 +2985,49 @@ export class CircuitScriptParser extends antlr.Parser {
2983
2985
  try {
2984
2986
  this.enterOuterAlt(localContext, 1);
2985
2987
  {
2986
- this.state = 573;
2988
+ this.state = 575;
2987
2989
  this.match(CircuitScriptParser.Create);
2988
- this.state = 574;
2990
+ this.state = 576;
2989
2991
  this.match(CircuitScriptParser.Module);
2990
- this.state = 575;
2992
+ this.state = 577;
2991
2993
  this.match(CircuitScriptParser.T__0);
2992
- this.state = 576;
2994
+ this.state = 578;
2993
2995
  this.match(CircuitScriptParser.NEWLINE);
2994
- this.state = 577;
2996
+ this.state = 579;
2995
2997
  this.match(CircuitScriptParser.INDENT);
2996
- this.state = 581;
2998
+ this.state = 583;
2997
2999
  this.errorHandler.sync(this);
2998
3000
  _la = this.tokenStream.LA(1);
2999
3001
  do {
3000
3002
  {
3001
- this.state = 581;
3003
+ this.state = 583;
3002
3004
  this.errorHandler.sync(this);
3003
3005
  switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
3004
3006
  case 1:
3005
3007
  {
3006
- this.state = 578;
3008
+ this.state = 580;
3007
3009
  this.match(CircuitScriptParser.NEWLINE);
3008
3010
  }
3009
3011
  break;
3010
3012
  case 2:
3011
3013
  {
3012
- this.state = 579;
3014
+ this.state = 581;
3013
3015
  this.property_expr();
3014
3016
  }
3015
3017
  break;
3016
3018
  case 3:
3017
3019
  {
3018
- this.state = 580;
3020
+ this.state = 582;
3019
3021
  this.property_block_expr();
3020
3022
  }
3021
3023
  break;
3022
3024
  }
3023
3025
  }
3024
- this.state = 583;
3026
+ this.state = 585;
3025
3027
  this.errorHandler.sync(this);
3026
3028
  _la = this.tokenStream.LA(1);
3027
3029
  } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 275) !== 0));
3028
- this.state = 585;
3030
+ this.state = 587;
3029
3031
  this.match(CircuitScriptParser.DEDENT);
3030
3032
  }
3031
3033
  }
@@ -3051,21 +3053,21 @@ export class CircuitScriptParser extends antlr.Parser {
3051
3053
  this.enterOuterAlt(localContext, 1);
3052
3054
  {
3053
3055
  {
3054
- this.state = 587;
3056
+ this.state = 589;
3055
3057
  this.match(CircuitScriptParser.NEWLINE);
3056
- this.state = 588;
3058
+ this.state = 590;
3057
3059
  this.match(CircuitScriptParser.INDENT);
3058
- this.state = 591;
3060
+ this.state = 593;
3059
3061
  this.errorHandler.sync(this);
3060
3062
  _la = this.tokenStream.LA(1);
3061
3063
  do {
3062
3064
  {
3063
- this.state = 591;
3065
+ this.state = 593;
3064
3066
  this.errorHandler.sync(this);
3065
3067
  switch (this.tokenStream.LA(1)) {
3066
3068
  case CircuitScriptParser.NEWLINE:
3067
3069
  {
3068
- this.state = 589;
3070
+ this.state = 591;
3069
3071
  this.match(CircuitScriptParser.NEWLINE);
3070
3072
  }
3071
3073
  break;
@@ -3073,7 +3075,7 @@ export class CircuitScriptParser extends antlr.Parser {
3073
3075
  case CircuitScriptParser.INTEGER_VALUE:
3074
3076
  case CircuitScriptParser.STRING_VALUE:
3075
3077
  {
3076
- this.state = 590;
3078
+ this.state = 592;
3077
3079
  this.property_expr();
3078
3080
  }
3079
3081
  break;
@@ -3081,11 +3083,11 @@ export class CircuitScriptParser extends antlr.Parser {
3081
3083
  throw new antlr.NoViableAltException(this);
3082
3084
  }
3083
3085
  }
3084
- this.state = 593;
3086
+ this.state = 595;
3085
3087
  this.errorHandler.sync(this);
3086
3088
  _la = this.tokenStream.LA(1);
3087
3089
  } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 275) !== 0));
3088
- this.state = 595;
3090
+ this.state = 597;
3089
3091
  this.match(CircuitScriptParser.DEDENT);
3090
3092
  }
3091
3093
  }
@@ -3109,7 +3111,7 @@ export class CircuitScriptParser extends antlr.Parser {
3109
3111
  this.enterRule(localContext, 102, CircuitScriptParser.RULE_graphic_expr);
3110
3112
  let _la;
3111
3113
  try {
3112
- this.state = 623;
3114
+ this.state = 625;
3113
3115
  this.errorHandler.sync(this);
3114
3116
  switch (this.tokenStream.LA(1)) {
3115
3117
  case CircuitScriptParser.Pin:
@@ -3117,7 +3119,7 @@ export class CircuitScriptParser extends antlr.Parser {
3117
3119
  localContext = new GraphicCommandExprContext(localContext);
3118
3120
  this.enterOuterAlt(localContext, 1);
3119
3121
  {
3120
- this.state = 597;
3122
+ this.state = 599;
3121
3123
  localContext._command = this.tokenStream.LT(1);
3122
3124
  _la = this.tokenStream.LA(1);
3123
3125
  if (!(_la === 16 || _la === 59)) {
@@ -3127,37 +3129,37 @@ export class CircuitScriptParser extends antlr.Parser {
3127
3129
  this.errorHandler.reportMatch(this);
3128
3130
  this.consume();
3129
3131
  }
3130
- this.state = 599;
3132
+ this.state = 601;
3131
3133
  this.errorHandler.sync(this);
3132
3134
  _la = this.tokenStream.LA(1);
3133
3135
  if (_la === 1) {
3134
3136
  {
3135
- this.state = 598;
3137
+ this.state = 600;
3136
3138
  this.match(CircuitScriptParser.T__0);
3137
3139
  }
3138
3140
  }
3139
- this.state = 607;
3141
+ this.state = 609;
3140
3142
  this.errorHandler.sync(this);
3141
3143
  switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
3142
3144
  case 1:
3143
3145
  {
3144
- this.state = 601;
3146
+ this.state = 603;
3145
3147
  this.parameters();
3146
3148
  }
3147
3149
  break;
3148
3150
  case 2:
3149
3151
  {
3150
- this.state = 602;
3152
+ this.state = 604;
3151
3153
  this.match(CircuitScriptParser.OPEN_PAREN);
3152
- this.state = 603;
3154
+ this.state = 605;
3153
3155
  this.parameters();
3154
- this.state = 604;
3156
+ this.state = 606;
3155
3157
  this.match(CircuitScriptParser.CLOSE_PAREN);
3156
3158
  }
3157
3159
  break;
3158
3160
  case 3:
3159
3161
  {
3160
- this.state = 606;
3162
+ this.state = 608;
3161
3163
  this.nested_properties_inner();
3162
3164
  }
3163
3165
  break;
@@ -3168,33 +3170,33 @@ export class CircuitScriptParser extends antlr.Parser {
3168
3170
  localContext = new GraphicForExprContext(localContext);
3169
3171
  this.enterOuterAlt(localContext, 2);
3170
3172
  {
3171
- this.state = 609;
3173
+ this.state = 611;
3172
3174
  this.match(CircuitScriptParser.For);
3173
- this.state = 610;
3175
+ this.state = 612;
3174
3176
  this.match(CircuitScriptParser.ID);
3175
- this.state = 615;
3177
+ this.state = 617;
3176
3178
  this.errorHandler.sync(this);
3177
3179
  _la = this.tokenStream.LA(1);
3178
3180
  while (_la === 2) {
3179
3181
  {
3180
3182
  {
3181
- this.state = 611;
3183
+ this.state = 613;
3182
3184
  this.match(CircuitScriptParser.T__1);
3183
- this.state = 612;
3185
+ this.state = 614;
3184
3186
  this.match(CircuitScriptParser.ID);
3185
3187
  }
3186
3188
  }
3187
- this.state = 617;
3189
+ this.state = 619;
3188
3190
  this.errorHandler.sync(this);
3189
3191
  _la = this.tokenStream.LA(1);
3190
3192
  }
3191
- this.state = 618;
3193
+ this.state = 620;
3192
3194
  this.match(CircuitScriptParser.In);
3193
- this.state = 619;
3195
+ this.state = 621;
3194
3196
  this.data_expr(0);
3195
- this.state = 620;
3197
+ this.state = 622;
3196
3198
  this.match(CircuitScriptParser.T__0);
3197
- this.state = 621;
3199
+ this.state = 623;
3198
3200
  this.graphic_expressions_block();
3199
3201
  }
3200
3202
  break;
@@ -3219,14 +3221,29 @@ export class CircuitScriptParser extends antlr.Parser {
3219
3221
  property_expr() {
3220
3222
  let localContext = new Property_exprContext(this.context, this.state);
3221
3223
  this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_expr);
3224
+ let _la;
3222
3225
  try {
3223
3226
  this.enterOuterAlt(localContext, 1);
3224
3227
  {
3225
- this.state = 625;
3228
+ this.state = 627;
3226
3229
  this.property_key_expr();
3227
- this.state = 626;
3230
+ this.state = 631;
3231
+ this.errorHandler.sync(this);
3232
+ _la = this.tokenStream.LA(1);
3233
+ while (_la === 63) {
3234
+ {
3235
+ {
3236
+ this.state = 628;
3237
+ localContext._extra = this.match(CircuitScriptParser.STRING_VALUE);
3238
+ }
3239
+ }
3240
+ this.state = 633;
3241
+ this.errorHandler.sync(this);
3242
+ _la = this.tokenStream.LA(1);
3243
+ }
3244
+ this.state = 634;
3228
3245
  this.match(CircuitScriptParser.T__0);
3229
- this.state = 627;
3246
+ this.state = 635;
3230
3247
  this.property_value_expr();
3231
3248
  }
3232
3249
  }
@@ -3251,7 +3268,7 @@ export class CircuitScriptParser extends antlr.Parser {
3251
3268
  try {
3252
3269
  this.enterOuterAlt(localContext, 1);
3253
3270
  {
3254
- this.state = 629;
3271
+ this.state = 637;
3255
3272
  _la = this.tokenStream.LA(1);
3256
3273
  if (!(((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 19) !== 0))) {
3257
3274
  this.errorHandler.recoverInline(this);
@@ -3281,14 +3298,14 @@ export class CircuitScriptParser extends antlr.Parser {
3281
3298
  this.enterRule(localContext, 108, CircuitScriptParser.RULE_property_value_expr);
3282
3299
  let _la;
3283
3300
  try {
3284
- this.state = 640;
3301
+ this.state = 648;
3285
3302
  this.errorHandler.sync(this);
3286
3303
  switch (this.tokenStream.LA(1)) {
3287
3304
  case CircuitScriptParser.NEWLINE:
3288
3305
  localContext = new Nested_propertiesContext(localContext);
3289
3306
  this.enterOuterAlt(localContext, 1);
3290
3307
  {
3291
- this.state = 631;
3308
+ this.state = 639;
3292
3309
  this.nested_properties_inner();
3293
3310
  }
3294
3311
  break;
@@ -3309,21 +3326,21 @@ export class CircuitScriptParser extends antlr.Parser {
3309
3326
  localContext = new Single_line_propertyContext(localContext);
3310
3327
  this.enterOuterAlt(localContext, 2);
3311
3328
  {
3312
- this.state = 632;
3329
+ this.state = 640;
3313
3330
  this.data_expr(0);
3314
- this.state = 637;
3331
+ this.state = 645;
3315
3332
  this.errorHandler.sync(this);
3316
3333
  _la = this.tokenStream.LA(1);
3317
3334
  while (_la === 2) {
3318
3335
  {
3319
3336
  {
3320
- this.state = 633;
3337
+ this.state = 641;
3321
3338
  this.match(CircuitScriptParser.T__1);
3322
- this.state = 634;
3339
+ this.state = 642;
3323
3340
  this.data_expr(0);
3324
3341
  }
3325
3342
  }
3326
- this.state = 639;
3343
+ this.state = 647;
3327
3344
  this.errorHandler.sync(this);
3328
3345
  _la = this.tokenStream.LA(1);
3329
3346
  }
@@ -3351,27 +3368,27 @@ export class CircuitScriptParser extends antlr.Parser {
3351
3368
  let localContext = new Wire_atom_exprContext(this.context, this.state);
3352
3369
  this.enterRule(localContext, 110, CircuitScriptParser.RULE_wire_atom_expr);
3353
3370
  try {
3354
- this.state = 648;
3371
+ this.state = 656;
3355
3372
  this.errorHandler.sync(this);
3356
- switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context)) {
3373
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 71, this.context)) {
3357
3374
  case 1:
3358
3375
  localContext = new Wire_expr_direction_valueContext(localContext);
3359
3376
  this.enterOuterAlt(localContext, 1);
3360
3377
  {
3361
- this.state = 642;
3378
+ this.state = 650;
3362
3379
  this.match(CircuitScriptParser.ID);
3363
- this.state = 645;
3380
+ this.state = 653;
3364
3381
  this.errorHandler.sync(this);
3365
- switch (this.interpreter.adaptivePredict(this.tokenStream, 69, this.context)) {
3382
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context)) {
3366
3383
  case 1:
3367
3384
  {
3368
- this.state = 643;
3385
+ this.state = 651;
3369
3386
  this.match(CircuitScriptParser.INTEGER_VALUE);
3370
3387
  }
3371
3388
  break;
3372
3389
  case 2:
3373
3390
  {
3374
- this.state = 644;
3391
+ this.state = 652;
3375
3392
  this.data_expr(0);
3376
3393
  }
3377
3394
  break;
@@ -3382,7 +3399,7 @@ export class CircuitScriptParser extends antlr.Parser {
3382
3399
  localContext = new Wire_expr_direction_onlyContext(localContext);
3383
3400
  this.enterOuterAlt(localContext, 2);
3384
3401
  {
3385
- this.state = 647;
3402
+ this.state = 655;
3386
3403
  this.match(CircuitScriptParser.ID);
3387
3404
  }
3388
3405
  break;
@@ -3409,23 +3426,23 @@ export class CircuitScriptParser extends antlr.Parser {
3409
3426
  let alternative;
3410
3427
  this.enterOuterAlt(localContext, 1);
3411
3428
  {
3412
- this.state = 650;
3429
+ this.state = 658;
3413
3430
  this.match(CircuitScriptParser.Wire);
3414
- this.state = 654;
3431
+ this.state = 662;
3415
3432
  this.errorHandler.sync(this);
3416
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3433
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 72, this.context);
3417
3434
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3418
3435
  if (alternative === 1) {
3419
3436
  {
3420
3437
  {
3421
- this.state = 651;
3438
+ this.state = 659;
3422
3439
  this.wire_atom_expr();
3423
3440
  }
3424
3441
  }
3425
3442
  }
3426
- this.state = 656;
3443
+ this.state = 664;
3427
3444
  this.errorHandler.sync(this);
3428
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3445
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 72, this.context);
3429
3446
  }
3430
3447
  }
3431
3448
  }
@@ -3450,39 +3467,39 @@ export class CircuitScriptParser extends antlr.Parser {
3450
3467
  try {
3451
3468
  this.enterOuterAlt(localContext, 1);
3452
3469
  {
3453
- this.state = 657;
3470
+ this.state = 665;
3454
3471
  this.match(CircuitScriptParser.T__4);
3455
- this.state = 668;
3472
+ this.state = 676;
3456
3473
  this.errorHandler.sync(this);
3457
3474
  _la = this.tokenStream.LA(1);
3458
3475
  while (_la === 5 || _la === 11 || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 4265621505) !== 0)) {
3459
3476
  {
3460
3477
  {
3461
- this.state = 658;
3478
+ this.state = 666;
3462
3479
  this.data_expr(0);
3463
- this.state = 663;
3480
+ this.state = 671;
3464
3481
  this.errorHandler.sync(this);
3465
3482
  _la = this.tokenStream.LA(1);
3466
3483
  while (_la === 2) {
3467
3484
  {
3468
3485
  {
3469
- this.state = 659;
3486
+ this.state = 667;
3470
3487
  this.match(CircuitScriptParser.T__1);
3471
- this.state = 660;
3488
+ this.state = 668;
3472
3489
  this.data_expr(0);
3473
3490
  }
3474
3491
  }
3475
- this.state = 665;
3492
+ this.state = 673;
3476
3493
  this.errorHandler.sync(this);
3477
3494
  _la = this.tokenStream.LA(1);
3478
3495
  }
3479
3496
  }
3480
3497
  }
3481
- this.state = 670;
3498
+ this.state = 678;
3482
3499
  this.errorHandler.sync(this);
3483
3500
  _la = this.tokenStream.LA(1);
3484
3501
  }
3485
- this.state = 671;
3502
+ this.state = 679;
3486
3503
  this.match(CircuitScriptParser.T__5);
3487
3504
  }
3488
3505
  }
@@ -3506,20 +3523,20 @@ export class CircuitScriptParser extends antlr.Parser {
3506
3523
  try {
3507
3524
  this.enterOuterAlt(localContext, 1);
3508
3525
  {
3509
- this.state = 673;
3526
+ this.state = 681;
3510
3527
  this.match(CircuitScriptParser.Point);
3511
- this.state = 676;
3528
+ this.state = 684;
3512
3529
  this.errorHandler.sync(this);
3513
- switch (this.interpreter.adaptivePredict(this.tokenStream, 74, this.context)) {
3530
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 75, this.context)) {
3514
3531
  case 1:
3515
3532
  {
3516
- this.state = 674;
3533
+ this.state = 682;
3517
3534
  this.match(CircuitScriptParser.ID);
3518
3535
  }
3519
3536
  break;
3520
3537
  case 2:
3521
3538
  {
3522
- this.state = 675;
3539
+ this.state = 683;
3523
3540
  this.data_expr(0);
3524
3541
  }
3525
3542
  break;
@@ -3545,63 +3562,93 @@ export class CircuitScriptParser extends antlr.Parser {
3545
3562
  this.enterRule(localContext, 118, CircuitScriptParser.RULE_import_expr);
3546
3563
  let _la;
3547
3564
  try {
3548
- this.state = 695;
3565
+ this.state = 712;
3549
3566
  this.errorHandler.sync(this);
3550
- switch (this.interpreter.adaptivePredict(this.tokenStream, 76, this.context)) {
3567
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 80, this.context)) {
3551
3568
  case 1:
3552
3569
  localContext = new Import_simpleContext(localContext);
3553
3570
  this.enterOuterAlt(localContext, 1);
3554
3571
  {
3555
- this.state = 678;
3572
+ this.state = 686;
3556
3573
  this.match(CircuitScriptParser.Import);
3557
- this.state = 679;
3574
+ this.state = 687;
3558
3575
  localContext._moduleName = this.match(CircuitScriptParser.ID);
3576
+ this.state = 689;
3577
+ this.errorHandler.sync(this);
3578
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 76, this.context)) {
3579
+ case 1:
3580
+ {
3581
+ this.state = 688;
3582
+ this.import_annotation_expr();
3583
+ }
3584
+ break;
3585
+ }
3559
3586
  }
3560
3587
  break;
3561
3588
  case 2:
3562
3589
  localContext = new Import_all_simpleContext(localContext);
3563
3590
  this.enterOuterAlt(localContext, 2);
3564
3591
  {
3565
- this.state = 680;
3592
+ this.state = 691;
3566
3593
  this.match(CircuitScriptParser.From);
3567
- this.state = 681;
3594
+ this.state = 692;
3568
3595
  localContext._moduleName = this.match(CircuitScriptParser.ID);
3569
- this.state = 682;
3596
+ this.state = 693;
3570
3597
  this.match(CircuitScriptParser.Import);
3571
- this.state = 683;
3598
+ this.state = 694;
3572
3599
  this.match(CircuitScriptParser.Multiply);
3600
+ this.state = 696;
3601
+ this.errorHandler.sync(this);
3602
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 77, this.context)) {
3603
+ case 1:
3604
+ {
3605
+ this.state = 695;
3606
+ this.import_annotation_expr();
3607
+ }
3608
+ break;
3609
+ }
3573
3610
  }
3574
3611
  break;
3575
3612
  case 3:
3576
3613
  localContext = new Import_specificContext(localContext);
3577
3614
  this.enterOuterAlt(localContext, 3);
3578
3615
  {
3579
- this.state = 684;
3616
+ this.state = 698;
3580
3617
  this.match(CircuitScriptParser.From);
3581
- this.state = 685;
3618
+ this.state = 699;
3582
3619
  localContext._moduleName = this.match(CircuitScriptParser.ID);
3583
- this.state = 686;
3620
+ this.state = 700;
3584
3621
  this.match(CircuitScriptParser.Import);
3585
- this.state = 687;
3622
+ this.state = 701;
3586
3623
  localContext._ID = this.match(CircuitScriptParser.ID);
3587
3624
  localContext._funcNames.push(localContext._ID);
3588
- this.state = 692;
3625
+ this.state = 706;
3589
3626
  this.errorHandler.sync(this);
3590
3627
  _la = this.tokenStream.LA(1);
3591
3628
  while (_la === 2) {
3592
3629
  {
3593
3630
  {
3594
- this.state = 688;
3631
+ this.state = 702;
3595
3632
  this.match(CircuitScriptParser.T__1);
3596
- this.state = 689;
3633
+ this.state = 703;
3597
3634
  localContext._ID = this.match(CircuitScriptParser.ID);
3598
3635
  localContext._funcNames.push(localContext._ID);
3599
3636
  }
3600
3637
  }
3601
- this.state = 694;
3638
+ this.state = 708;
3602
3639
  this.errorHandler.sync(this);
3603
3640
  _la = this.tokenStream.LA(1);
3604
3641
  }
3642
+ this.state = 710;
3643
+ this.errorHandler.sync(this);
3644
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 79, this.context)) {
3645
+ case 1:
3646
+ {
3647
+ this.state = 709;
3648
+ this.import_annotation_expr();
3649
+ }
3650
+ break;
3651
+ }
3605
3652
  }
3606
3653
  break;
3607
3654
  }
@@ -3620,14 +3667,63 @@ export class CircuitScriptParser extends antlr.Parser {
3620
3667
  }
3621
3668
  return localContext;
3622
3669
  }
3670
+ import_annotation_expr() {
3671
+ let localContext = new Import_annotation_exprContext(this.context, this.state);
3672
+ this.enterRule(localContext, 120, CircuitScriptParser.RULE_import_annotation_expr);
3673
+ let _la;
3674
+ try {
3675
+ let alternative;
3676
+ this.enterOuterAlt(localContext, 1);
3677
+ {
3678
+ this.state = 714;
3679
+ this.match(CircuitScriptParser.ANNOTATION_START);
3680
+ this.state = 718;
3681
+ this.errorHandler.sync(this);
3682
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 81, this.context);
3683
+ while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3684
+ if (alternative === 1) {
3685
+ {
3686
+ {
3687
+ this.state = 715;
3688
+ _la = this.tokenStream.LA(1);
3689
+ if (!(_la === 45 || _la === 59)) {
3690
+ this.errorHandler.recoverInline(this);
3691
+ }
3692
+ else {
3693
+ this.errorHandler.reportMatch(this);
3694
+ this.consume();
3695
+ }
3696
+ }
3697
+ }
3698
+ }
3699
+ this.state = 720;
3700
+ this.errorHandler.sync(this);
3701
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 81, this.context);
3702
+ }
3703
+ }
3704
+ }
3705
+ catch (re) {
3706
+ if (re instanceof antlr.RecognitionException) {
3707
+ this.errorHandler.reportError(this, re);
3708
+ this.errorHandler.recover(this, re);
3709
+ }
3710
+ else {
3711
+ throw re;
3712
+ }
3713
+ }
3714
+ finally {
3715
+ this.exitRule();
3716
+ }
3717
+ return localContext;
3718
+ }
3623
3719
  frame_expr() {
3624
3720
  let localContext = new Frame_exprContext(this.context, this.state);
3625
- this.enterRule(localContext, 120, CircuitScriptParser.RULE_frame_expr);
3721
+ this.enterRule(localContext, 122, CircuitScriptParser.RULE_frame_expr);
3626
3722
  let _la;
3627
3723
  try {
3628
3724
  this.enterOuterAlt(localContext, 1);
3629
3725
  {
3630
- this.state = 697;
3726
+ this.state = 721;
3631
3727
  _la = this.tokenStream.LA(1);
3632
3728
  if (!(_la === 34 || _la === 35)) {
3633
3729
  this.errorHandler.recoverInline(this);
@@ -3636,9 +3732,9 @@ export class CircuitScriptParser extends antlr.Parser {
3636
3732
  this.errorHandler.reportMatch(this);
3637
3733
  this.consume();
3638
3734
  }
3639
- this.state = 698;
3735
+ this.state = 722;
3640
3736
  this.match(CircuitScriptParser.T__0);
3641
- this.state = 699;
3737
+ this.state = 723;
3642
3738
  this.expressions_block();
3643
3739
  }
3644
3740
  }
@@ -3658,42 +3754,42 @@ export class CircuitScriptParser extends antlr.Parser {
3658
3754
  }
3659
3755
  if_expr() {
3660
3756
  let localContext = new If_exprContext(this.context, this.state);
3661
- this.enterRule(localContext, 122, CircuitScriptParser.RULE_if_expr);
3757
+ this.enterRule(localContext, 124, CircuitScriptParser.RULE_if_expr);
3662
3758
  let _la;
3663
3759
  try {
3664
3760
  let alternative;
3665
3761
  this.enterOuterAlt(localContext, 1);
3666
3762
  {
3667
- this.state = 701;
3763
+ this.state = 725;
3668
3764
  this.match(CircuitScriptParser.If);
3669
- this.state = 702;
3765
+ this.state = 726;
3670
3766
  this.data_expr(0);
3671
- this.state = 703;
3767
+ this.state = 727;
3672
3768
  this.match(CircuitScriptParser.T__0);
3673
- this.state = 704;
3769
+ this.state = 728;
3674
3770
  this.expressions_block();
3675
- this.state = 708;
3771
+ this.state = 732;
3676
3772
  this.errorHandler.sync(this);
3677
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 77, this.context);
3773
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
3678
3774
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3679
3775
  if (alternative === 1) {
3680
3776
  {
3681
3777
  {
3682
- this.state = 705;
3778
+ this.state = 729;
3683
3779
  this.if_inner_expr();
3684
3780
  }
3685
3781
  }
3686
3782
  }
3687
- this.state = 710;
3783
+ this.state = 734;
3688
3784
  this.errorHandler.sync(this);
3689
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 77, this.context);
3785
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
3690
3786
  }
3691
- this.state = 712;
3787
+ this.state = 736;
3692
3788
  this.errorHandler.sync(this);
3693
3789
  _la = this.tokenStream.LA(1);
3694
3790
  if (_la === 32) {
3695
3791
  {
3696
- this.state = 711;
3792
+ this.state = 735;
3697
3793
  this.else_expr();
3698
3794
  }
3699
3795
  }
@@ -3715,19 +3811,19 @@ export class CircuitScriptParser extends antlr.Parser {
3715
3811
  }
3716
3812
  if_inner_expr() {
3717
3813
  let localContext = new If_inner_exprContext(this.context, this.state);
3718
- this.enterRule(localContext, 124, CircuitScriptParser.RULE_if_inner_expr);
3814
+ this.enterRule(localContext, 126, CircuitScriptParser.RULE_if_inner_expr);
3719
3815
  try {
3720
3816
  this.enterOuterAlt(localContext, 1);
3721
3817
  {
3722
- this.state = 714;
3818
+ this.state = 738;
3723
3819
  this.match(CircuitScriptParser.Else);
3724
- this.state = 715;
3820
+ this.state = 739;
3725
3821
  this.match(CircuitScriptParser.If);
3726
- this.state = 716;
3822
+ this.state = 740;
3727
3823
  this.data_expr(0);
3728
- this.state = 717;
3824
+ this.state = 741;
3729
3825
  this.match(CircuitScriptParser.T__0);
3730
- this.state = 718;
3826
+ this.state = 742;
3731
3827
  this.expressions_block();
3732
3828
  }
3733
3829
  }
@@ -3747,15 +3843,15 @@ export class CircuitScriptParser extends antlr.Parser {
3747
3843
  }
3748
3844
  else_expr() {
3749
3845
  let localContext = new Else_exprContext(this.context, this.state);
3750
- this.enterRule(localContext, 126, CircuitScriptParser.RULE_else_expr);
3846
+ this.enterRule(localContext, 128, CircuitScriptParser.RULE_else_expr);
3751
3847
  try {
3752
3848
  this.enterOuterAlt(localContext, 1);
3753
3849
  {
3754
- this.state = 720;
3850
+ this.state = 744;
3755
3851
  this.match(CircuitScriptParser.Else);
3756
- this.state = 721;
3852
+ this.state = 745;
3757
3853
  this.match(CircuitScriptParser.T__0);
3758
- this.state = 722;
3854
+ this.state = 746;
3759
3855
  this.expressions_block();
3760
3856
  }
3761
3857
  }
@@ -3775,17 +3871,17 @@ export class CircuitScriptParser extends antlr.Parser {
3775
3871
  }
3776
3872
  while_expr() {
3777
3873
  let localContext = new While_exprContext(this.context, this.state);
3778
- this.enterRule(localContext, 128, CircuitScriptParser.RULE_while_expr);
3874
+ this.enterRule(localContext, 130, CircuitScriptParser.RULE_while_expr);
3779
3875
  try {
3780
3876
  this.enterOuterAlt(localContext, 1);
3781
3877
  {
3782
- this.state = 724;
3878
+ this.state = 748;
3783
3879
  this.match(CircuitScriptParser.While);
3784
- this.state = 725;
3880
+ this.state = 749;
3785
3881
  this.data_expr(0);
3786
- this.state = 726;
3882
+ this.state = 750;
3787
3883
  this.match(CircuitScriptParser.T__0);
3788
- this.state = 727;
3884
+ this.state = 751;
3789
3885
  this.expressions_block();
3790
3886
  }
3791
3887
  }
@@ -3805,38 +3901,38 @@ export class CircuitScriptParser extends antlr.Parser {
3805
3901
  }
3806
3902
  for_expr() {
3807
3903
  let localContext = new For_exprContext(this.context, this.state);
3808
- this.enterRule(localContext, 130, CircuitScriptParser.RULE_for_expr);
3904
+ this.enterRule(localContext, 132, CircuitScriptParser.RULE_for_expr);
3809
3905
  let _la;
3810
3906
  try {
3811
3907
  this.enterOuterAlt(localContext, 1);
3812
3908
  {
3813
- this.state = 729;
3909
+ this.state = 753;
3814
3910
  this.match(CircuitScriptParser.For);
3815
- this.state = 730;
3911
+ this.state = 754;
3816
3912
  this.match(CircuitScriptParser.ID);
3817
- this.state = 735;
3913
+ this.state = 759;
3818
3914
  this.errorHandler.sync(this);
3819
3915
  _la = this.tokenStream.LA(1);
3820
3916
  while (_la === 2) {
3821
3917
  {
3822
3918
  {
3823
- this.state = 731;
3919
+ this.state = 755;
3824
3920
  this.match(CircuitScriptParser.T__1);
3825
- this.state = 732;
3921
+ this.state = 756;
3826
3922
  this.match(CircuitScriptParser.ID);
3827
3923
  }
3828
3924
  }
3829
- this.state = 737;
3925
+ this.state = 761;
3830
3926
  this.errorHandler.sync(this);
3831
3927
  _la = this.tokenStream.LA(1);
3832
3928
  }
3833
- this.state = 738;
3929
+ this.state = 762;
3834
3930
  this.match(CircuitScriptParser.In);
3835
- this.state = 739;
3931
+ this.state = 763;
3836
3932
  this.data_expr(0);
3837
- this.state = 740;
3933
+ this.state = 764;
3838
3934
  this.match(CircuitScriptParser.T__0);
3839
- this.state = 741;
3935
+ this.state = 765;
3840
3936
  this.expressions_block();
3841
3937
  }
3842
3938
  }
@@ -3856,36 +3952,36 @@ export class CircuitScriptParser extends antlr.Parser {
3856
3952
  }
3857
3953
  part_set_expr() {
3858
3954
  let localContext = new Part_set_exprContext(this.context, this.state);
3859
- this.enterRule(localContext, 132, CircuitScriptParser.RULE_part_set_expr);
3955
+ this.enterRule(localContext, 134, CircuitScriptParser.RULE_part_set_expr);
3860
3956
  let _la;
3861
3957
  try {
3862
3958
  this.enterOuterAlt(localContext, 1);
3863
3959
  {
3864
- this.state = 743;
3960
+ this.state = 767;
3865
3961
  this.match(CircuitScriptParser.T__7);
3866
- this.state = 744;
3962
+ this.state = 768;
3867
3963
  this.match(CircuitScriptParser.T__0);
3868
- this.state = 745;
3964
+ this.state = 769;
3869
3965
  this.data_expr(0);
3870
- this.state = 750;
3966
+ this.state = 774;
3871
3967
  this.errorHandler.sync(this);
3872
3968
  _la = this.tokenStream.LA(1);
3873
3969
  while (_la === 2) {
3874
3970
  {
3875
3971
  {
3876
- this.state = 746;
3972
+ this.state = 770;
3877
3973
  this.match(CircuitScriptParser.T__1);
3878
- this.state = 747;
3974
+ this.state = 771;
3879
3975
  this.data_expr(0);
3880
3976
  }
3881
3977
  }
3882
- this.state = 752;
3978
+ this.state = 776;
3883
3979
  this.errorHandler.sync(this);
3884
3980
  _la = this.tokenStream.LA(1);
3885
3981
  }
3886
- this.state = 753;
3982
+ this.state = 777;
3887
3983
  this.match(CircuitScriptParser.T__0);
3888
- this.state = 754;
3984
+ this.state = 778;
3889
3985
  this.part_match_block();
3890
3986
  }
3891
3987
  }
@@ -3905,12 +4001,12 @@ export class CircuitScriptParser extends antlr.Parser {
3905
4001
  }
3906
4002
  part_set_key() {
3907
4003
  let localContext = new Part_set_keyContext(this.context, this.state);
3908
- this.enterRule(localContext, 134, CircuitScriptParser.RULE_part_set_key);
4004
+ this.enterRule(localContext, 136, CircuitScriptParser.RULE_part_set_key);
3909
4005
  let _la;
3910
4006
  try {
3911
4007
  this.enterOuterAlt(localContext, 1);
3912
4008
  {
3913
- this.state = 756;
4009
+ this.state = 780;
3914
4010
  _la = this.tokenStream.LA(1);
3915
4011
  if (!(((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 59) !== 0))) {
3916
4012
  this.errorHandler.recoverInline(this);
@@ -3937,26 +4033,26 @@ export class CircuitScriptParser extends antlr.Parser {
3937
4033
  }
3938
4034
  part_match_block() {
3939
4035
  let localContext = new Part_match_blockContext(this.context, this.state);
3940
- this.enterRule(localContext, 136, CircuitScriptParser.RULE_part_match_block);
4036
+ this.enterRule(localContext, 138, CircuitScriptParser.RULE_part_match_block);
3941
4037
  let _la;
3942
4038
  try {
3943
4039
  this.enterOuterAlt(localContext, 1);
3944
4040
  {
3945
- this.state = 758;
4041
+ this.state = 782;
3946
4042
  this.match(CircuitScriptParser.NEWLINE);
3947
- this.state = 759;
4043
+ this.state = 783;
3948
4044
  this.match(CircuitScriptParser.INDENT);
3949
- this.state = 762;
4045
+ this.state = 786;
3950
4046
  this.errorHandler.sync(this);
3951
4047
  _la = this.tokenStream.LA(1);
3952
4048
  do {
3953
4049
  {
3954
- this.state = 762;
4050
+ this.state = 786;
3955
4051
  this.errorHandler.sync(this);
3956
4052
  switch (this.tokenStream.LA(1)) {
3957
4053
  case CircuitScriptParser.NEWLINE:
3958
4054
  {
3959
- this.state = 760;
4055
+ this.state = 784;
3960
4056
  this.match(CircuitScriptParser.NEWLINE);
3961
4057
  }
3962
4058
  break;
@@ -3966,7 +4062,7 @@ export class CircuitScriptParser extends antlr.Parser {
3966
4062
  case CircuitScriptParser.STRING_VALUE:
3967
4063
  case CircuitScriptParser.PERCENTAGE_VALUE:
3968
4064
  {
3969
- this.state = 761;
4065
+ this.state = 785;
3970
4066
  this.part_sub_expr();
3971
4067
  }
3972
4068
  break;
@@ -3974,11 +4070,11 @@ export class CircuitScriptParser extends antlr.Parser {
3974
4070
  throw new antlr.NoViableAltException(this);
3975
4071
  }
3976
4072
  }
3977
- this.state = 764;
4073
+ this.state = 788;
3978
4074
  this.errorHandler.sync(this);
3979
4075
  _la = this.tokenStream.LA(1);
3980
4076
  } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 315) !== 0));
3981
- this.state = 766;
4077
+ this.state = 790;
3982
4078
  this.match(CircuitScriptParser.DEDENT);
3983
4079
  }
3984
4080
  }
@@ -3998,29 +4094,29 @@ export class CircuitScriptParser extends antlr.Parser {
3998
4094
  }
3999
4095
  part_sub_expr() {
4000
4096
  let localContext = new Part_sub_exprContext(this.context, this.state);
4001
- this.enterRule(localContext, 138, CircuitScriptParser.RULE_part_sub_expr);
4097
+ this.enterRule(localContext, 140, CircuitScriptParser.RULE_part_sub_expr);
4002
4098
  try {
4003
- this.state = 771;
4099
+ this.state = 795;
4004
4100
  this.errorHandler.sync(this);
4005
- switch (this.interpreter.adaptivePredict(this.tokenStream, 83, this.context)) {
4101
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 88, this.context)) {
4006
4102
  case 1:
4007
4103
  this.enterOuterAlt(localContext, 1);
4008
4104
  {
4009
- this.state = 768;
4105
+ this.state = 792;
4010
4106
  this.part_condition_expr();
4011
4107
  }
4012
4108
  break;
4013
4109
  case 2:
4014
4110
  this.enterOuterAlt(localContext, 2);
4015
4111
  {
4016
- this.state = 769;
4112
+ this.state = 793;
4017
4113
  this.part_value_expr();
4018
4114
  }
4019
4115
  break;
4020
4116
  case 3:
4021
4117
  this.enterOuterAlt(localContext, 3);
4022
4118
  {
4023
- this.state = 770;
4119
+ this.state = 794;
4024
4120
  this.part_condition_key_only_expr();
4025
4121
  }
4026
4122
  break;
@@ -4042,68 +4138,68 @@ export class CircuitScriptParser extends antlr.Parser {
4042
4138
  }
4043
4139
  part_condition_expr() {
4044
4140
  let localContext = new Part_condition_exprContext(this.context, this.state);
4045
- this.enterRule(localContext, 140, CircuitScriptParser.RULE_part_condition_expr);
4141
+ this.enterRule(localContext, 142, CircuitScriptParser.RULE_part_condition_expr);
4046
4142
  let _la;
4047
4143
  try {
4048
4144
  let alternative;
4049
4145
  this.enterOuterAlt(localContext, 1);
4050
4146
  {
4051
- this.state = 773;
4147
+ this.state = 797;
4052
4148
  localContext._part_set_key = this.part_set_key();
4053
4149
  localContext._key_id.push(localContext._part_set_key);
4054
- this.state = 774;
4150
+ this.state = 798;
4055
4151
  this.match(CircuitScriptParser.T__0);
4056
- this.state = 775;
4152
+ this.state = 799;
4057
4153
  localContext._data_expr = this.data_expr(0);
4058
4154
  localContext._values.push(localContext._data_expr);
4059
- this.state = 783;
4155
+ this.state = 807;
4060
4156
  this.errorHandler.sync(this);
4061
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 84, this.context);
4157
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 89, this.context);
4062
4158
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
4063
4159
  if (alternative === 1) {
4064
4160
  {
4065
4161
  {
4066
- this.state = 776;
4162
+ this.state = 800;
4067
4163
  this.match(CircuitScriptParser.T__1);
4068
- this.state = 777;
4164
+ this.state = 801;
4069
4165
  localContext._part_set_key = this.part_set_key();
4070
4166
  localContext._key_id.push(localContext._part_set_key);
4071
- this.state = 778;
4167
+ this.state = 802;
4072
4168
  this.match(CircuitScriptParser.T__0);
4073
- this.state = 779;
4169
+ this.state = 803;
4074
4170
  localContext._data_expr = this.data_expr(0);
4075
4171
  localContext._values.push(localContext._data_expr);
4076
4172
  }
4077
4173
  }
4078
4174
  }
4079
- this.state = 785;
4175
+ this.state = 809;
4080
4176
  this.errorHandler.sync(this);
4081
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 84, this.context);
4177
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 89, this.context);
4082
4178
  }
4083
- this.state = 790;
4179
+ this.state = 814;
4084
4180
  this.errorHandler.sync(this);
4085
4181
  _la = this.tokenStream.LA(1);
4086
4182
  while (_la === 2) {
4087
4183
  {
4088
4184
  {
4089
- this.state = 786;
4185
+ this.state = 810;
4090
4186
  this.match(CircuitScriptParser.T__1);
4091
- this.state = 787;
4187
+ this.state = 811;
4092
4188
  localContext._id_only = this.part_set_key();
4093
4189
  }
4094
4190
  }
4095
- this.state = 792;
4191
+ this.state = 816;
4096
4192
  this.errorHandler.sync(this);
4097
4193
  _la = this.tokenStream.LA(1);
4098
4194
  }
4099
- this.state = 793;
4195
+ this.state = 817;
4100
4196
  this.match(CircuitScriptParser.T__0);
4101
- this.state = 803;
4197
+ this.state = 827;
4102
4198
  this.errorHandler.sync(this);
4103
4199
  switch (this.tokenStream.LA(1)) {
4104
4200
  case CircuitScriptParser.NEWLINE:
4105
4201
  {
4106
- this.state = 794;
4202
+ this.state = 818;
4107
4203
  this.part_match_block();
4108
4204
  }
4109
4205
  break;
@@ -4123,23 +4219,23 @@ export class CircuitScriptParser extends antlr.Parser {
4123
4219
  case CircuitScriptParser.PERCENTAGE_VALUE:
4124
4220
  {
4125
4221
  {
4126
- this.state = 795;
4222
+ this.state = 819;
4127
4223
  localContext._data_expr = this.data_expr(0);
4128
4224
  localContext._last_data.push(localContext._data_expr);
4129
- this.state = 800;
4225
+ this.state = 824;
4130
4226
  this.errorHandler.sync(this);
4131
4227
  _la = this.tokenStream.LA(1);
4132
4228
  while (_la === 2) {
4133
4229
  {
4134
4230
  {
4135
- this.state = 796;
4231
+ this.state = 820;
4136
4232
  this.match(CircuitScriptParser.T__1);
4137
- this.state = 797;
4233
+ this.state = 821;
4138
4234
  localContext._data_expr = this.data_expr(0);
4139
4235
  localContext._last_data.push(localContext._data_expr);
4140
4236
  }
4141
4237
  }
4142
- this.state = 802;
4238
+ this.state = 826;
4143
4239
  this.errorHandler.sync(this);
4144
4240
  _la = this.tokenStream.LA(1);
4145
4241
  }
@@ -4167,15 +4263,15 @@ export class CircuitScriptParser extends antlr.Parser {
4167
4263
  }
4168
4264
  part_condition_key_only_expr() {
4169
4265
  let localContext = new Part_condition_key_only_exprContext(this.context, this.state);
4170
- this.enterRule(localContext, 142, CircuitScriptParser.RULE_part_condition_key_only_expr);
4266
+ this.enterRule(localContext, 144, CircuitScriptParser.RULE_part_condition_key_only_expr);
4171
4267
  try {
4172
4268
  this.enterOuterAlt(localContext, 1);
4173
4269
  {
4174
- this.state = 805;
4270
+ this.state = 829;
4175
4271
  this.part_set_key();
4176
- this.state = 806;
4272
+ this.state = 830;
4177
4273
  this.match(CircuitScriptParser.T__0);
4178
- this.state = 807;
4274
+ this.state = 831;
4179
4275
  this.part_match_block();
4180
4276
  }
4181
4277
  }
@@ -4195,30 +4291,30 @@ export class CircuitScriptParser extends antlr.Parser {
4195
4291
  }
4196
4292
  part_value_expr() {
4197
4293
  let localContext = new Part_value_exprContext(this.context, this.state);
4198
- this.enterRule(localContext, 144, CircuitScriptParser.RULE_part_value_expr);
4294
+ this.enterRule(localContext, 146, CircuitScriptParser.RULE_part_value_expr);
4199
4295
  let _la;
4200
4296
  try {
4201
4297
  this.enterOuterAlt(localContext, 1);
4202
4298
  {
4203
- this.state = 809;
4299
+ this.state = 833;
4204
4300
  this.part_set_key();
4205
- this.state = 810;
4301
+ this.state = 834;
4206
4302
  this.match(CircuitScriptParser.T__0);
4207
- this.state = 811;
4303
+ this.state = 835;
4208
4304
  this.data_expr(0);
4209
- this.state = 816;
4305
+ this.state = 840;
4210
4306
  this.errorHandler.sync(this);
4211
4307
  _la = this.tokenStream.LA(1);
4212
4308
  while (_la === 2) {
4213
4309
  {
4214
4310
  {
4215
- this.state = 812;
4311
+ this.state = 836;
4216
4312
  this.match(CircuitScriptParser.T__1);
4217
- this.state = 813;
4313
+ this.state = 837;
4218
4314
  this.data_expr(0);
4219
4315
  }
4220
4316
  }
4221
- this.state = 818;
4317
+ this.state = 842;
4222
4318
  this.errorHandler.sync(this);
4223
4319
  _la = this.tokenStream.LA(1);
4224
4320
  }
@@ -4240,13 +4336,13 @@ export class CircuitScriptParser extends antlr.Parser {
4240
4336
  }
4241
4337
  annotation_comment_expr() {
4242
4338
  let localContext = new Annotation_comment_exprContext(this.context, this.state);
4243
- this.enterRule(localContext, 146, CircuitScriptParser.RULE_annotation_comment_expr);
4339
+ this.enterRule(localContext, 148, CircuitScriptParser.RULE_annotation_comment_expr);
4244
4340
  try {
4245
4341
  this.enterOuterAlt(localContext, 1);
4246
4342
  {
4247
- this.state = 819;
4343
+ this.state = 843;
4248
4344
  this.match(CircuitScriptParser.ANNOTATION_START);
4249
- this.state = 820;
4345
+ this.state = 844;
4250
4346
  this.match(CircuitScriptParser.ID);
4251
4347
  }
4252
4348
  }
@@ -4287,7 +4383,7 @@ export class CircuitScriptParser extends antlr.Parser {
4287
4383
  return true;
4288
4384
  }
4289
4385
  static _serializedATN = [
4290
- 4, 1, 70, 823, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7,
4386
+ 4, 1, 70, 847, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7,
4291
4387
  6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13,
4292
4388
  2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20,
4293
4389
  7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26,
@@ -4298,298 +4394,308 @@ export class CircuitScriptParser extends antlr.Parser {
4298
4394
  2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59,
4299
4395
  7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65,
4300
4396
  2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72,
4301
- 7, 72, 2, 73, 7, 73, 1, 0, 1, 0, 5, 0, 151, 8, 0, 10, 0, 12, 0, 154, 9, 0, 1, 0, 1, 0, 4, 0,
4302
- 158, 8, 0, 11, 0, 12, 0, 159, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4303
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 178, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 185, 8,
4304
- 2, 1, 3, 1, 3, 3, 3, 189, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 197, 8, 4, 1, 5, 1,
4305
- 5, 1, 5, 1, 5, 4, 5, 203, 8, 5, 11, 5, 12, 5, 204, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7,
4306
- 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 219, 8, 7, 11, 7, 12, 7, 220, 1, 7, 1, 7, 1, 8, 1, 8, 1,
4307
- 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 236, 8, 10, 1, 11, 1, 11, 3,
4308
- 11, 240, 8, 11, 1, 11, 5, 11, 243, 8, 11, 10, 11, 12, 11, 246, 9, 11, 1, 11, 3, 11, 249,
4309
- 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 257, 8, 13, 1, 14, 1, 14, 1, 15,
4310
- 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 268, 8, 16, 10, 16, 12, 16, 271, 9, 16,
4311
- 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 279, 8, 17, 10, 17, 12, 17, 282, 9, 17,
4312
- 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 289, 8, 17, 11, 17, 12, 17, 290, 1, 17, 1, 17,
4313
- 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 300, 8, 18, 10, 18, 12, 18, 303, 9, 18, 1, 19,
4314
- 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 312, 8, 20, 11, 20, 12, 20, 313, 1, 20,
4315
- 1, 20, 1, 21, 1, 21, 3, 21, 320, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 325, 8, 22, 10, 22,
4316
- 12, 22, 328, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 334, 8, 23, 1, 24, 1, 24, 3, 24,
4317
- 338, 8, 24, 1, 25, 1, 25, 1, 26, 1, 26, 3, 26, 344, 8, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1,
4318
- 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 5, 29, 360, 8, 29, 10,
4319
- 29, 12, 29, 363, 9, 29, 1, 29, 1, 29, 5, 29, 367, 8, 29, 10, 29, 12, 29, 370, 9, 29, 1,
4320
- 29, 1, 29, 1, 29, 5, 29, 375, 8, 29, 10, 29, 12, 29, 378, 9, 29, 3, 29, 380, 8, 29, 1,
4321
- 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1,
4322
- 32, 1, 32, 1, 32, 3, 32, 398, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1,
4323
- 32, 3, 32, 408, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1,
4324
- 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 428, 8, 32, 10, 32, 12,
4325
- 32, 431, 9, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 3, 35, 438, 8, 35, 1, 35, 1, 35, 1, 36,
4326
- 1, 36, 1, 36, 1, 36, 3, 36, 446, 8, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 4, 36,
4327
- 454, 8, 36, 11, 36, 12, 36, 455, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 462, 8, 37, 1, 38,
4328
- 1, 38, 1, 38, 5, 38, 467, 8, 38, 10, 38, 12, 38, 470, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38,
4329
- 5, 38, 476, 8, 38, 10, 38, 12, 38, 479, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38,
4330
- 1, 38, 5, 38, 488, 8, 38, 10, 38, 12, 38, 491, 9, 38, 3, 38, 493, 8, 38, 1, 39, 1, 39,
4331
- 5, 39, 497, 8, 39, 10, 39, 12, 39, 500, 9, 39, 1, 40, 1, 40, 3, 40, 504, 8, 40, 1, 40,
4332
- 1, 40, 3, 40, 508, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 516, 8, 41, 1,
4333
- 42, 3, 42, 519, 8, 42, 1, 42, 1, 42, 4, 42, 523, 8, 42, 11, 42, 12, 42, 524, 1, 43, 3,
4334
- 43, 528, 8, 43, 1, 43, 1, 43, 3, 43, 532, 8, 43, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45,
4335
- 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 548, 8, 46, 11, 46, 12, 46,
4336
- 549, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 558, 8, 47, 11, 47, 12, 47, 559,
4337
- 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 569, 8, 48, 1, 48, 1, 48, 1, 48,
4338
- 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 582, 8, 49, 11, 49, 12, 49,
4339
- 583, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 4, 50, 592, 8, 50, 11, 50, 12, 50, 593,
4340
- 1, 50, 1, 50, 1, 51, 1, 51, 3, 51, 600, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51,
4341
- 3, 51, 608, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 614, 8, 51, 10, 51, 12, 51, 617,
4342
- 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 624, 8, 51, 1, 52, 1, 52, 1, 52, 1, 52,
4343
- 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 5, 54, 636, 8, 54, 10, 54, 12, 54, 639, 9, 54,
4344
- 3, 54, 641, 8, 54, 1, 55, 1, 55, 1, 55, 3, 55, 646, 8, 55, 1, 55, 3, 55, 649, 8, 55, 1,
4345
- 56, 1, 56, 5, 56, 653, 8, 56, 10, 56, 12, 56, 656, 9, 56, 1, 57, 1, 57, 1, 57, 1, 57, 5,
4346
- 57, 662, 8, 57, 10, 57, 12, 57, 665, 9, 57, 5, 57, 667, 8, 57, 10, 57, 12, 57, 670, 9,
4347
- 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 3, 58, 677, 8, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1,
4348
- 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 5, 59, 691, 8, 59, 10, 59, 12, 59,
4349
- 694, 9, 59, 3, 59, 696, 8, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1,
4350
- 61, 5, 61, 707, 8, 61, 10, 61, 12, 61, 710, 9, 61, 1, 61, 3, 61, 713, 8, 61, 1, 62, 1,
4351
- 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1,
4352
- 64, 1, 65, 1, 65, 1, 65, 1, 65, 5, 65, 734, 8, 65, 10, 65, 12, 65, 737, 9, 65, 1, 65, 1,
4353
- 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 5, 66, 749, 8, 66, 10, 66, 12,
4354
- 66, 752, 9, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 4, 68, 763,
4355
- 8, 68, 11, 68, 12, 68, 764, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 3, 69, 772, 8, 69, 1, 70,
4356
- 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 5, 70, 782, 8, 70, 10, 70, 12, 70, 785,
4357
- 9, 70, 1, 70, 1, 70, 5, 70, 789, 8, 70, 10, 70, 12, 70, 792, 9, 70, 1, 70, 1, 70, 1, 70,
4358
- 1, 70, 1, 70, 5, 70, 799, 8, 70, 10, 70, 12, 70, 802, 9, 70, 3, 70, 804, 8, 70, 1, 71,
4359
- 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 5, 72, 815, 8, 72, 10, 72, 12, 72,
4360
- 818, 9, 72, 1, 73, 1, 73, 1, 73, 1, 73, 0, 1, 64, 74, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
4361
- 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62,
4362
- 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104,
4363
- 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136,
4364
- 138, 140, 142, 144, 146, 0, 15, 2, 0, 10, 10, 20, 22, 1, 0, 59, 60, 2, 0, 60, 60, 63,
4365
- 63, 2, 0, 57, 57, 60, 60, 1, 0, 49, 53, 1, 0, 46, 48, 1, 0, 44, 45, 1, 0, 42, 43, 1, 0, 36,
4366
- 41, 2, 0, 33, 33, 45, 45, 2, 0, 58, 58, 60, 64, 2, 0, 16, 16, 59, 59, 2, 0, 59, 60, 63,
4367
- 63, 1, 0, 34, 35, 2, 0, 59, 60, 62, 64, 870, 0, 152, 1, 0, 0, 0, 2, 177, 1, 0, 0, 0, 4, 184,
4368
- 1, 0, 0, 0, 6, 188, 1, 0, 0, 0, 8, 196, 1, 0, 0, 0, 10, 198, 1, 0, 0, 0, 12, 208, 1, 0, 0,
4369
- 0, 14, 212, 1, 0, 0, 0, 16, 224, 1, 0, 0, 0, 18, 228, 1, 0, 0, 0, 20, 231, 1, 0, 0, 0, 22,
4370
- 239, 1, 0, 0, 0, 24, 250, 1, 0, 0, 0, 26, 256, 1, 0, 0, 0, 28, 258, 1, 0, 0, 0, 30, 260,
4371
- 1, 0, 0, 0, 32, 263, 1, 0, 0, 0, 34, 272, 1, 0, 0, 0, 36, 294, 1, 0, 0, 0, 38, 304, 1, 0,
4372
- 0, 0, 40, 306, 1, 0, 0, 0, 42, 319, 1, 0, 0, 0, 44, 321, 1, 0, 0, 0, 46, 329, 1, 0, 0, 0,
4373
- 48, 337, 1, 0, 0, 0, 50, 339, 1, 0, 0, 0, 52, 343, 1, 0, 0, 0, 54, 348, 1, 0, 0, 0, 56, 352,
4374
- 1, 0, 0, 0, 58, 379, 1, 0, 0, 0, 60, 381, 1, 0, 0, 0, 62, 385, 1, 0, 0, 0, 64, 407, 1, 0,
4375
- 0, 0, 66, 432, 1, 0, 0, 0, 68, 434, 1, 0, 0, 0, 70, 437, 1, 0, 0, 0, 72, 441, 1, 0, 0, 0,
4376
- 74, 461, 1, 0, 0, 0, 76, 492, 1, 0, 0, 0, 78, 494, 1, 0, 0, 0, 80, 507, 1, 0, 0, 0, 82, 515,
4377
- 1, 0, 0, 0, 84, 518, 1, 0, 0, 0, 86, 527, 1, 0, 0, 0, 88, 533, 1, 0, 0, 0, 90, 536, 1, 0,
4378
- 0, 0, 92, 540, 1, 0, 0, 0, 94, 553, 1, 0, 0, 0, 96, 563, 1, 0, 0, 0, 98, 573, 1, 0, 0, 0,
4379
- 100, 587, 1, 0, 0, 0, 102, 623, 1, 0, 0, 0, 104, 625, 1, 0, 0, 0, 106, 629, 1, 0, 0, 0,
4380
- 108, 640, 1, 0, 0, 0, 110, 648, 1, 0, 0, 0, 112, 650, 1, 0, 0, 0, 114, 657, 1, 0, 0, 0,
4381
- 116, 673, 1, 0, 0, 0, 118, 695, 1, 0, 0, 0, 120, 697, 1, 0, 0, 0, 122, 701, 1, 0, 0, 0,
4382
- 124, 714, 1, 0, 0, 0, 126, 720, 1, 0, 0, 0, 128, 724, 1, 0, 0, 0, 130, 729, 1, 0, 0, 0,
4383
- 132, 743, 1, 0, 0, 0, 134, 756, 1, 0, 0, 0, 136, 758, 1, 0, 0, 0, 138, 771, 1, 0, 0, 0,
4384
- 140, 773, 1, 0, 0, 0, 142, 805, 1, 0, 0, 0, 144, 809, 1, 0, 0, 0, 146, 819, 1, 0, 0, 0,
4385
- 148, 151, 3, 118, 59, 0, 149, 151, 5, 67, 0, 0, 150, 148, 1, 0, 0, 0, 150, 149, 1, 0,
4386
- 0, 0, 151, 154, 1, 0, 0, 0, 152, 150, 1, 0, 0, 0, 152, 153, 1, 0, 0, 0, 153, 157, 1, 0,
4387
- 0, 0, 154, 152, 1, 0, 0, 0, 155, 158, 3, 2, 1, 0, 156, 158, 5, 67, 0, 0, 157, 155, 1, 0,
4388
- 0, 0, 157, 156, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 157, 1, 0, 0, 0, 159, 160, 1, 0,
4389
- 0, 0, 160, 161, 1, 0, 0, 0, 161, 162, 5, 0, 0, 1, 162, 1, 1, 0, 0, 0, 163, 178, 3, 6, 3,
4390
- 0, 164, 178, 3, 52, 26, 0, 165, 178, 3, 54, 27, 0, 166, 178, 3, 60, 30, 0, 167, 178,
4391
- 3, 14, 7, 0, 168, 178, 3, 62, 31, 0, 169, 178, 3, 72, 36, 0, 170, 178, 3, 84, 42, 0, 171,
4392
- 178, 3, 118, 59, 0, 172, 178, 3, 78, 39, 0, 173, 178, 3, 120, 60, 0, 174, 178, 3, 4,
4393
- 2, 0, 175, 178, 3, 146, 73, 0, 176, 178, 3, 132, 66, 0, 177, 163, 1, 0, 0, 0, 177, 164,
4394
- 1, 0, 0, 0, 177, 165, 1, 0, 0, 0, 177, 166, 1, 0, 0, 0, 177, 167, 1, 0, 0, 0, 177, 168,
4395
- 1, 0, 0, 0, 177, 169, 1, 0, 0, 0, 177, 170, 1, 0, 0, 0, 177, 171, 1, 0, 0, 0, 177, 172,
4396
- 1, 0, 0, 0, 177, 173, 1, 0, 0, 0, 177, 174, 1, 0, 0, 0, 177, 175, 1, 0, 0, 0, 177, 176,
4397
- 1, 0, 0, 0, 178, 3, 1, 0, 0, 0, 179, 185, 3, 122, 61, 0, 180, 185, 3, 128, 64, 0, 181,
4398
- 185, 3, 130, 65, 0, 182, 185, 5, 9, 0, 0, 183, 185, 5, 30, 0, 0, 184, 179, 1, 0, 0, 0,
4399
- 184, 180, 1, 0, 0, 0, 184, 181, 1, 0, 0, 0, 184, 182, 1, 0, 0, 0, 184, 183, 1, 0, 0, 0,
4400
- 185, 5, 1, 0, 0, 0, 186, 189, 3, 8, 4, 0, 187, 189, 3, 12, 6, 0, 188, 186, 1, 0, 0, 0, 188,
4401
- 187, 1, 0, 0, 0, 189, 7, 1, 0, 0, 0, 190, 197, 3, 24, 12, 0, 191, 197, 3, 32, 16, 0, 192,
4402
- 197, 3, 30, 15, 0, 193, 197, 3, 40, 20, 0, 194, 197, 3, 112, 56, 0, 195, 197, 3, 116,
4403
- 58, 0, 196, 190, 1, 0, 0, 0, 196, 191, 1, 0, 0, 0, 196, 192, 1, 0, 0, 0, 196, 193, 1, 0,
4404
- 0, 0, 196, 194, 1, 0, 0, 0, 196, 195, 1, 0, 0, 0, 197, 9, 1, 0, 0, 0, 198, 199, 5, 67, 0,
4405
- 0, 199, 202, 5, 69, 0, 0, 200, 203, 5, 67, 0, 0, 201, 203, 3, 2, 1, 0, 202, 200, 1, 0,
4406
- 0, 0, 202, 201, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 202, 1, 0, 0, 0, 204, 205, 1, 0,
4407
- 0, 0, 205, 206, 1, 0, 0, 0, 206, 207, 5, 70, 0, 0, 207, 11, 1, 0, 0, 0, 208, 209, 7, 0,
4408
- 0, 0, 209, 210, 5, 1, 0, 0, 210, 211, 3, 10, 5, 0, 211, 13, 1, 0, 0, 0, 212, 213, 3, 78,
4409
- 39, 0, 213, 214, 5, 1, 0, 0, 214, 215, 5, 67, 0, 0, 215, 218, 5, 69, 0, 0, 216, 219, 5,
4410
- 67, 0, 0, 217, 219, 3, 16, 8, 0, 218, 216, 1, 0, 0, 0, 218, 217, 1, 0, 0, 0, 219, 220,
4411
- 1, 0, 0, 0, 220, 218, 1, 0, 0, 0, 220, 221, 1, 0, 0, 0, 221, 222, 1, 0, 0, 0, 222, 223,
4412
- 5, 70, 0, 0, 223, 15, 1, 0, 0, 0, 224, 225, 7, 1, 0, 0, 225, 226, 5, 1, 0, 0, 226, 227,
4413
- 3, 70, 35, 0, 227, 17, 1, 0, 0, 0, 228, 229, 5, 16, 0, 0, 229, 230, 3, 64, 32, 0, 230,
4414
- 19, 1, 0, 0, 0, 231, 232, 5, 59, 0, 0, 232, 235, 5, 1, 0, 0, 233, 236, 3, 70, 35, 0, 234,
4415
- 236, 5, 59, 0, 0, 235, 233, 1, 0, 0, 0, 235, 234, 1, 0, 0, 0, 236, 21, 1, 0, 0, 0, 237,
4416
- 240, 3, 64, 32, 0, 238, 240, 3, 52, 26, 0, 239, 237, 1, 0, 0, 0, 239, 238, 1, 0, 0, 0,
4417
- 240, 244, 1, 0, 0, 0, 241, 243, 3, 20, 10, 0, 242, 241, 1, 0, 0, 0, 243, 246, 1, 0, 0,
4418
- 0, 244, 242, 1, 0, 0, 0, 244, 245, 1, 0, 0, 0, 245, 248, 1, 0, 0, 0, 246, 244, 1, 0, 0,
4419
- 0, 247, 249, 3, 18, 9, 0, 248, 247, 1, 0, 0, 0, 248, 249, 1, 0, 0, 0, 249, 23, 1, 0, 0,
4420
- 0, 250, 251, 5, 17, 0, 0, 251, 252, 3, 22, 11, 0, 252, 25, 1, 0, 0, 0, 253, 257, 3, 22,
4421
- 11, 0, 254, 257, 3, 18, 9, 0, 255, 257, 5, 20, 0, 0, 256, 253, 1, 0, 0, 0, 256, 254, 1,
4422
- 0, 0, 0, 256, 255, 1, 0, 0, 0, 257, 27, 1, 0, 0, 0, 258, 259, 7, 2, 0, 0, 259, 29, 1, 0,
4423
- 0, 0, 260, 261, 5, 18, 0, 0, 261, 262, 3, 26, 13, 0, 262, 31, 1, 0, 0, 0, 263, 264, 5,
4424
- 19, 0, 0, 264, 269, 3, 26, 13, 0, 265, 266, 5, 2, 0, 0, 266, 268, 3, 26, 13, 0, 267, 265,
4425
- 1, 0, 0, 0, 268, 271, 1, 0, 0, 0, 269, 267, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 33, 1,
4426
- 0, 0, 0, 271, 269, 1, 0, 0, 0, 272, 273, 5, 18, 0, 0, 273, 274, 3, 26, 13, 0, 274, 275,
4427
- 5, 19, 0, 0, 275, 280, 3, 26, 13, 0, 276, 277, 5, 2, 0, 0, 277, 279, 3, 26, 13, 0, 278,
4428
- 276, 1, 0, 0, 0, 279, 282, 1, 0, 0, 0, 280, 278, 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281,
4429
- 283, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 283, 284, 5, 1, 0, 0, 284, 285, 5, 67, 0, 0, 285,
4430
- 288, 5, 69, 0, 0, 286, 289, 5, 67, 0, 0, 287, 289, 3, 36, 18, 0, 288, 286, 1, 0, 0, 0,
4431
- 288, 287, 1, 0, 0, 0, 289, 290, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 290, 291, 1, 0, 0, 0,
4432
- 291, 292, 1, 0, 0, 0, 292, 293, 5, 70, 0, 0, 293, 35, 1, 0, 0, 0, 294, 295, 3, 28, 14,
4433
- 0, 295, 296, 5, 1, 0, 0, 296, 301, 3, 38, 19, 0, 297, 298, 5, 2, 0, 0, 298, 300, 3, 38,
4434
- 19, 0, 299, 297, 1, 0, 0, 0, 300, 303, 1, 0, 0, 0, 301, 299, 1, 0, 0, 0, 301, 302, 1, 0,
4435
- 0, 0, 302, 37, 1, 0, 0, 0, 303, 301, 1, 0, 0, 0, 304, 305, 7, 3, 0, 0, 305, 39, 1, 0, 0,
4436
- 0, 306, 307, 3, 44, 22, 0, 307, 308, 5, 67, 0, 0, 308, 311, 5, 69, 0, 0, 309, 312, 5,
4437
- 67, 0, 0, 310, 312, 3, 42, 21, 0, 311, 309, 1, 0, 0, 0, 311, 310, 1, 0, 0, 0, 312, 313,
4438
- 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 315, 1, 0, 0, 0, 315, 316,
4439
- 5, 70, 0, 0, 316, 41, 1, 0, 0, 0, 317, 320, 3, 2, 1, 0, 318, 320, 3, 46, 23, 0, 319, 317,
4440
- 1, 0, 0, 0, 319, 318, 1, 0, 0, 0, 320, 43, 1, 0, 0, 0, 321, 322, 3, 30, 15, 0, 322, 326,
4441
- 5, 1, 0, 0, 323, 325, 3, 146, 73, 0, 324, 323, 1, 0, 0, 0, 325, 328, 1, 0, 0, 0, 326, 324,
4442
- 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 45, 1, 0, 0, 0, 328, 326, 1, 0, 0, 0, 329, 330, 3,
4443
- 28, 14, 0, 330, 333, 5, 1, 0, 0, 331, 334, 3, 48, 24, 0, 332, 334, 3, 50, 25, 0, 333,
4444
- 331, 1, 0, 0, 0, 333, 332, 1, 0, 0, 0, 334, 47, 1, 0, 0, 0, 335, 338, 3, 2, 1, 0, 336, 338,
4445
- 5, 57, 0, 0, 337, 335, 1, 0, 0, 0, 337, 336, 1, 0, 0, 0, 338, 49, 1, 0, 0, 0, 339, 340,
4446
- 3, 10, 5, 0, 340, 51, 1, 0, 0, 0, 341, 344, 3, 78, 39, 0, 342, 344, 3, 84, 42, 0, 343,
4447
- 341, 1, 0, 0, 0, 343, 342, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 346, 5, 3, 0, 0, 346,
4448
- 347, 3, 64, 32, 0, 347, 53, 1, 0, 0, 0, 348, 349, 3, 78, 39, 0, 349, 350, 7, 4, 0, 0, 350,
4449
- 351, 3, 64, 32, 0, 351, 55, 1, 0, 0, 0, 352, 353, 5, 59, 0, 0, 353, 354, 5, 3, 0, 0, 354,
4450
- 355, 3, 64, 32, 0, 355, 57, 1, 0, 0, 0, 356, 361, 3, 64, 32, 0, 357, 358, 5, 2, 0, 0, 358,
4451
- 360, 3, 64, 32, 0, 359, 357, 1, 0, 0, 0, 360, 363, 1, 0, 0, 0, 361, 359, 1, 0, 0, 0, 361,
4452
- 362, 1, 0, 0, 0, 362, 368, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 364, 365, 5, 2, 0, 0, 365,
4453
- 367, 3, 56, 28, 0, 366, 364, 1, 0, 0, 0, 367, 370, 1, 0, 0, 0, 368, 366, 1, 0, 0, 0, 368,
4454
- 369, 1, 0, 0, 0, 369, 380, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 371, 376, 3, 56, 28, 0, 372,
4455
- 373, 5, 2, 0, 0, 373, 375, 3, 56, 28, 0, 374, 372, 1, 0, 0, 0, 375, 378, 1, 0, 0, 0, 376,
4456
- 374, 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 377, 380, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 379,
4457
- 356, 1, 0, 0, 0, 379, 371, 1, 0, 0, 0, 380, 59, 1, 0, 0, 0, 381, 382, 3, 78, 39, 0, 382,
4458
- 383, 5, 3, 0, 0, 383, 384, 3, 64, 32, 0, 384, 61, 1, 0, 0, 0, 385, 386, 5, 4, 0, 0, 386,
4459
- 387, 5, 59, 0, 0, 387, 388, 5, 3, 0, 0, 388, 389, 3, 64, 32, 0, 389, 63, 1, 0, 0, 0, 390,
4460
- 391, 6, 32, -1, 0, 391, 392, 5, 55, 0, 0, 392, 393, 3, 64, 32, 0, 393, 394, 5, 56, 0,
4461
- 0, 394, 408, 1, 0, 0, 0, 395, 398, 3, 70, 35, 0, 396, 398, 3, 78, 39, 0, 397, 395, 1,
4462
- 0, 0, 0, 397, 396, 1, 0, 0, 0, 398, 408, 1, 0, 0, 0, 399, 400, 3, 68, 34, 0, 400, 401,
4463
- 3, 64, 32, 11, 401, 408, 1, 0, 0, 0, 402, 408, 3, 92, 46, 0, 403, 408, 3, 96, 48, 0, 404,
4464
- 408, 3, 98, 49, 0, 405, 408, 3, 84, 42, 0, 406, 408, 3, 114, 57, 0, 407, 390, 1, 0, 0,
4465
- 0, 407, 397, 1, 0, 0, 0, 407, 399, 1, 0, 0, 0, 407, 402, 1, 0, 0, 0, 407, 403, 1, 0, 0,
4466
- 0, 407, 404, 1, 0, 0, 0, 407, 405, 1, 0, 0, 0, 407, 406, 1, 0, 0, 0, 408, 429, 1, 0, 0,
4467
- 0, 409, 410, 10, 10, 0, 0, 410, 411, 7, 5, 0, 0, 411, 428, 3, 64, 32, 11, 412, 413, 10,
4468
- 9, 0, 0, 413, 414, 7, 6, 0, 0, 414, 428, 3, 64, 32, 10, 415, 416, 10, 8, 0, 0, 416, 417,
4469
- 3, 66, 33, 0, 417, 418, 3, 64, 32, 9, 418, 428, 1, 0, 0, 0, 419, 420, 10, 7, 0, 0, 420,
4470
- 421, 7, 7, 0, 0, 421, 428, 3, 64, 32, 8, 422, 423, 10, 1, 0, 0, 423, 424, 5, 5, 0, 0, 424,
4471
- 425, 3, 64, 32, 0, 425, 426, 5, 6, 0, 0, 426, 428, 1, 0, 0, 0, 427, 409, 1, 0, 0, 0, 427,
4472
- 412, 1, 0, 0, 0, 427, 415, 1, 0, 0, 0, 427, 419, 1, 0, 0, 0, 427, 422, 1, 0, 0, 0, 428,
4473
- 431, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 65, 1, 0, 0, 0, 431, 429,
4474
- 1, 0, 0, 0, 432, 433, 7, 8, 0, 0, 433, 67, 1, 0, 0, 0, 434, 435, 7, 9, 0, 0, 435, 69, 1,
4475
- 0, 0, 0, 436, 438, 5, 45, 0, 0, 437, 436, 1, 0, 0, 0, 437, 438, 1, 0, 0, 0, 438, 439, 1,
4476
- 0, 0, 0, 439, 440, 7, 10, 0, 0, 440, 71, 1, 0, 0, 0, 441, 442, 5, 24, 0, 0, 442, 443, 5,
4477
- 59, 0, 0, 443, 445, 5, 55, 0, 0, 444, 446, 3, 76, 38, 0, 445, 444, 1, 0, 0, 0, 445, 446,
4478
- 1, 0, 0, 0, 446, 447, 1, 0, 0, 0, 447, 448, 5, 56, 0, 0, 448, 449, 5, 1, 0, 0, 449, 450,
4479
- 5, 67, 0, 0, 450, 453, 5, 69, 0, 0, 451, 454, 5, 67, 0, 0, 452, 454, 3, 74, 37, 0, 453,
4480
- 451, 1, 0, 0, 0, 453, 452, 1, 0, 0, 0, 454, 455, 1, 0, 0, 0, 455, 453, 1, 0, 0, 0, 455,
4481
- 456, 1, 0, 0, 0, 456, 457, 1, 0, 0, 0, 457, 458, 5, 70, 0, 0, 458, 73, 1, 0, 0, 0, 459,
4482
- 462, 3, 2, 1, 0, 460, 462, 3, 88, 44, 0, 461, 459, 1, 0, 0, 0, 461, 460, 1, 0, 0, 0, 462,
4483
- 75, 1, 0, 0, 0, 463, 468, 5, 59, 0, 0, 464, 465, 5, 2, 0, 0, 465, 467, 5, 59, 0, 0, 466,
4484
- 464, 1, 0, 0, 0, 467, 470, 1, 0, 0, 0, 468, 466, 1, 0, 0, 0, 468, 469, 1, 0, 0, 0, 469,
4485
- 477, 1, 0, 0, 0, 470, 468, 1, 0, 0, 0, 471, 472, 5, 2, 0, 0, 472, 473, 5, 59, 0, 0, 473,
4486
- 474, 5, 3, 0, 0, 474, 476, 3, 70, 35, 0, 475, 471, 1, 0, 0, 0, 476, 479, 1, 0, 0, 0, 477,
4487
- 475, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 493, 1, 0, 0, 0, 479, 477, 1, 0, 0, 0, 480,
4488
- 481, 5, 59, 0, 0, 481, 482, 5, 3, 0, 0, 482, 489, 3, 70, 35, 0, 483, 484, 5, 2, 0, 0, 484,
4489
- 485, 5, 59, 0, 0, 485, 486, 5, 3, 0, 0, 486, 488, 3, 70, 35, 0, 487, 483, 1, 0, 0, 0, 488,
4490
- 491, 1, 0, 0, 0, 489, 487, 1, 0, 0, 0, 489, 490, 1, 0, 0, 0, 490, 493, 1, 0, 0, 0, 491,
4491
- 489, 1, 0, 0, 0, 492, 463, 1, 0, 0, 0, 492, 480, 1, 0, 0, 0, 493, 77, 1, 0, 0, 0, 494, 498,
4492
- 5, 59, 0, 0, 495, 497, 3, 82, 41, 0, 496, 495, 1, 0, 0, 0, 497, 500, 1, 0, 0, 0, 498, 496,
4493
- 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 499, 79, 1, 0, 0, 0, 500, 498, 1, 0, 0, 0, 501, 503, 5,
4494
- 55, 0, 0, 502, 504, 3, 58, 29, 0, 503, 502, 1, 0, 0, 0, 503, 504, 1, 0, 0, 0, 504, 505,
4495
- 1, 0, 0, 0, 505, 508, 5, 56, 0, 0, 506, 508, 3, 82, 41, 0, 507, 501, 1, 0, 0, 0, 507, 506,
4496
- 1, 0, 0, 0, 508, 81, 1, 0, 0, 0, 509, 510, 5, 7, 0, 0, 510, 516, 5, 59, 0, 0, 511, 512,
4497
- 5, 5, 0, 0, 512, 513, 3, 64, 32, 0, 513, 514, 5, 6, 0, 0, 514, 516, 1, 0, 0, 0, 515, 509,
4498
- 1, 0, 0, 0, 515, 511, 1, 0, 0, 0, 516, 83, 1, 0, 0, 0, 517, 519, 3, 86, 43, 0, 518, 517,
4499
- 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 522, 5, 59, 0, 0, 521, 523,
4500
- 3, 80, 40, 0, 522, 521, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 522, 1, 0, 0, 0, 524, 525,
4501
- 1, 0, 0, 0, 525, 85, 1, 0, 0, 0, 526, 528, 5, 44, 0, 0, 527, 526, 1, 0, 0, 0, 527, 528,
4502
- 1, 0, 0, 0, 528, 529, 1, 0, 0, 0, 529, 531, 5, 46, 0, 0, 530, 532, 3, 64, 32, 0, 531, 530,
4503
- 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532, 87, 1, 0, 0, 0, 533, 534, 5, 23, 0, 0, 534, 535,
4504
- 3, 64, 32, 0, 535, 89, 1, 0, 0, 0, 536, 537, 3, 106, 53, 0, 537, 538, 5, 1, 0, 0, 538,
4505
- 539, 3, 10, 5, 0, 539, 91, 1, 0, 0, 0, 540, 541, 5, 11, 0, 0, 541, 542, 5, 12, 0, 0, 542,
4506
- 543, 5, 1, 0, 0, 543, 544, 5, 67, 0, 0, 544, 547, 5, 69, 0, 0, 545, 548, 5, 67, 0, 0, 546,
4507
- 548, 3, 104, 52, 0, 547, 545, 1, 0, 0, 0, 547, 546, 1, 0, 0, 0, 548, 549, 1, 0, 0, 0, 549,
4508
- 547, 1, 0, 0, 0, 549, 550, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 552, 5, 70, 0, 0, 552,
4509
- 93, 1, 0, 0, 0, 553, 554, 5, 67, 0, 0, 554, 557, 5, 69, 0, 0, 555, 558, 5, 67, 0, 0, 556,
4510
- 558, 3, 102, 51, 0, 557, 555, 1, 0, 0, 0, 557, 556, 1, 0, 0, 0, 558, 559, 1, 0, 0, 0, 559,
4511
- 557, 1, 0, 0, 0, 559, 560, 1, 0, 0, 0, 560, 561, 1, 0, 0, 0, 561, 562, 5, 70, 0, 0, 562,
4512
- 95, 1, 0, 0, 0, 563, 564, 5, 11, 0, 0, 564, 568, 5, 13, 0, 0, 565, 566, 5, 55, 0, 0, 566,
4513
- 567, 5, 59, 0, 0, 567, 569, 5, 56, 0, 0, 568, 565, 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569,
4514
- 570, 1, 0, 0, 0, 570, 571, 5, 1, 0, 0, 571, 572, 3, 94, 47, 0, 572, 97, 1, 0, 0, 0, 573,
4515
- 574, 5, 11, 0, 0, 574, 575, 5, 14, 0, 0, 575, 576, 5, 1, 0, 0, 576, 577, 5, 67, 0, 0, 577,
4516
- 581, 5, 69, 0, 0, 578, 582, 5, 67, 0, 0, 579, 582, 3, 104, 52, 0, 580, 582, 3, 90, 45,
4517
- 0, 581, 578, 1, 0, 0, 0, 581, 579, 1, 0, 0, 0, 581, 580, 1, 0, 0, 0, 582, 583, 1, 0, 0,
4518
- 0, 583, 581, 1, 0, 0, 0, 583, 584, 1, 0, 0, 0, 584, 585, 1, 0, 0, 0, 585, 586, 5, 70, 0,
4519
- 0, 586, 99, 1, 0, 0, 0, 587, 588, 5, 67, 0, 0, 588, 591, 5, 69, 0, 0, 589, 592, 5, 67,
4520
- 0, 0, 590, 592, 3, 104, 52, 0, 591, 589, 1, 0, 0, 0, 591, 590, 1, 0, 0, 0, 592, 593, 1,
4521
- 0, 0, 0, 593, 591, 1, 0, 0, 0, 593, 594, 1, 0, 0, 0, 594, 595, 1, 0, 0, 0, 595, 596, 5,
4522
- 70, 0, 0, 596, 101, 1, 0, 0, 0, 597, 599, 7, 11, 0, 0, 598, 600, 5, 1, 0, 0, 599, 598,
4523
- 1, 0, 0, 0, 599, 600, 1, 0, 0, 0, 600, 607, 1, 0, 0, 0, 601, 608, 3, 58, 29, 0, 602, 603,
4524
- 5, 55, 0, 0, 603, 604, 3, 58, 29, 0, 604, 605, 5, 56, 0, 0, 605, 608, 1, 0, 0, 0, 606,
4525
- 608, 3, 100, 50, 0, 607, 601, 1, 0, 0, 0, 607, 602, 1, 0, 0, 0, 607, 606, 1, 0, 0, 0, 608,
4526
- 624, 1, 0, 0, 0, 609, 610, 5, 27, 0, 0, 610, 615, 5, 59, 0, 0, 611, 612, 5, 2, 0, 0, 612,
4527
- 614, 5, 59, 0, 0, 613, 611, 1, 0, 0, 0, 614, 617, 1, 0, 0, 0, 615, 613, 1, 0, 0, 0, 615,
4528
- 616, 1, 0, 0, 0, 616, 618, 1, 0, 0, 0, 617, 615, 1, 0, 0, 0, 618, 619, 5, 28, 0, 0, 619,
4529
- 620, 3, 64, 32, 0, 620, 621, 5, 1, 0, 0, 621, 622, 3, 94, 47, 0, 622, 624, 1, 0, 0, 0,
4530
- 623, 597, 1, 0, 0, 0, 623, 609, 1, 0, 0, 0, 624, 103, 1, 0, 0, 0, 625, 626, 3, 106, 53,
4531
- 0, 626, 627, 5, 1, 0, 0, 627, 628, 3, 108, 54, 0, 628, 105, 1, 0, 0, 0, 629, 630, 7, 12,
4532
- 0, 0, 630, 107, 1, 0, 0, 0, 631, 641, 3, 100, 50, 0, 632, 637, 3, 64, 32, 0, 633, 634,
4533
- 5, 2, 0, 0, 634, 636, 3, 64, 32, 0, 635, 633, 1, 0, 0, 0, 636, 639, 1, 0, 0, 0, 637, 635,
4534
- 1, 0, 0, 0, 637, 638, 1, 0, 0, 0, 638, 641, 1, 0, 0, 0, 639, 637, 1, 0, 0, 0, 640, 631,
4535
- 1, 0, 0, 0, 640, 632, 1, 0, 0, 0, 641, 109, 1, 0, 0, 0, 642, 645, 5, 59, 0, 0, 643, 646,
4536
- 5, 60, 0, 0, 644, 646, 3, 64, 32, 0, 645, 643, 1, 0, 0, 0, 645, 644, 1, 0, 0, 0, 646, 649,
4537
- 1, 0, 0, 0, 647, 649, 5, 59, 0, 0, 648, 642, 1, 0, 0, 0, 648, 647, 1, 0, 0, 0, 649, 111,
4538
- 1, 0, 0, 0, 650, 654, 5, 15, 0, 0, 651, 653, 3, 110, 55, 0, 652, 651, 1, 0, 0, 0, 653,
4539
- 656, 1, 0, 0, 0, 654, 652, 1, 0, 0, 0, 654, 655, 1, 0, 0, 0, 655, 113, 1, 0, 0, 0, 656,
4540
- 654, 1, 0, 0, 0, 657, 668, 5, 5, 0, 0, 658, 663, 3, 64, 32, 0, 659, 660, 5, 2, 0, 0, 660,
4541
- 662, 3, 64, 32, 0, 661, 659, 1, 0, 0, 0, 662, 665, 1, 0, 0, 0, 663, 661, 1, 0, 0, 0, 663,
4542
- 664, 1, 0, 0, 0, 664, 667, 1, 0, 0, 0, 665, 663, 1, 0, 0, 0, 666, 658, 1, 0, 0, 0, 667,
4543
- 670, 1, 0, 0, 0, 668, 666, 1, 0, 0, 0, 668, 669, 1, 0, 0, 0, 669, 671, 1, 0, 0, 0, 670,
4544
- 668, 1, 0, 0, 0, 671, 672, 5, 6, 0, 0, 672, 115, 1, 0, 0, 0, 673, 676, 5, 20, 0, 0, 674,
4545
- 677, 5, 59, 0, 0, 675, 677, 3, 64, 32, 0, 676, 674, 1, 0, 0, 0, 676, 675, 1, 0, 0, 0, 677,
4546
- 117, 1, 0, 0, 0, 678, 679, 5, 25, 0, 0, 679, 696, 5, 59, 0, 0, 680, 681, 5, 26, 0, 0, 681,
4547
- 682, 5, 59, 0, 0, 682, 683, 5, 25, 0, 0, 683, 696, 5, 47, 0, 0, 684, 685, 5, 26, 0, 0,
4548
- 685, 686, 5, 59, 0, 0, 686, 687, 5, 25, 0, 0, 687, 692, 5, 59, 0, 0, 688, 689, 5, 2, 0,
4549
- 0, 689, 691, 5, 59, 0, 0, 690, 688, 1, 0, 0, 0, 691, 694, 1, 0, 0, 0, 692, 690, 1, 0, 0,
4550
- 0, 692, 693, 1, 0, 0, 0, 693, 696, 1, 0, 0, 0, 694, 692, 1, 0, 0, 0, 695, 678, 1, 0, 0,
4551
- 0, 695, 680, 1, 0, 0, 0, 695, 684, 1, 0, 0, 0, 696, 119, 1, 0, 0, 0, 697, 698, 7, 13, 0,
4552
- 0, 698, 699, 5, 1, 0, 0, 699, 700, 3, 10, 5, 0, 700, 121, 1, 0, 0, 0, 701, 702, 5, 31,
4553
- 0, 0, 702, 703, 3, 64, 32, 0, 703, 704, 5, 1, 0, 0, 704, 708, 3, 10, 5, 0, 705, 707, 3,
4554
- 124, 62, 0, 706, 705, 1, 0, 0, 0, 707, 710, 1, 0, 0, 0, 708, 706, 1, 0, 0, 0, 708, 709,
4555
- 1, 0, 0, 0, 709, 712, 1, 0, 0, 0, 710, 708, 1, 0, 0, 0, 711, 713, 3, 126, 63, 0, 712, 711,
4556
- 1, 0, 0, 0, 712, 713, 1, 0, 0, 0, 713, 123, 1, 0, 0, 0, 714, 715, 5, 32, 0, 0, 715, 716,
4557
- 5, 31, 0, 0, 716, 717, 3, 64, 32, 0, 717, 718, 5, 1, 0, 0, 718, 719, 3, 10, 5, 0, 719,
4558
- 125, 1, 0, 0, 0, 720, 721, 5, 32, 0, 0, 721, 722, 5, 1, 0, 0, 722, 723, 3, 10, 5, 0, 723,
4559
- 127, 1, 0, 0, 0, 724, 725, 5, 29, 0, 0, 725, 726, 3, 64, 32, 0, 726, 727, 5, 1, 0, 0, 727,
4560
- 728, 3, 10, 5, 0, 728, 129, 1, 0, 0, 0, 729, 730, 5, 27, 0, 0, 730, 735, 5, 59, 0, 0, 731,
4561
- 732, 5, 2, 0, 0, 732, 734, 5, 59, 0, 0, 733, 731, 1, 0, 0, 0, 734, 737, 1, 0, 0, 0, 735,
4562
- 733, 1, 0, 0, 0, 735, 736, 1, 0, 0, 0, 736, 738, 1, 0, 0, 0, 737, 735, 1, 0, 0, 0, 738,
4563
- 739, 5, 28, 0, 0, 739, 740, 3, 64, 32, 0, 740, 741, 5, 1, 0, 0, 741, 742, 3, 10, 5, 0,
4564
- 742, 131, 1, 0, 0, 0, 743, 744, 5, 8, 0, 0, 744, 745, 5, 1, 0, 0, 745, 750, 3, 64, 32,
4565
- 0, 746, 747, 5, 2, 0, 0, 747, 749, 3, 64, 32, 0, 748, 746, 1, 0, 0, 0, 749, 752, 1, 0,
4566
- 0, 0, 750, 748, 1, 0, 0, 0, 750, 751, 1, 0, 0, 0, 751, 753, 1, 0, 0, 0, 752, 750, 1, 0,
4567
- 0, 0, 753, 754, 5, 1, 0, 0, 754, 755, 3, 136, 68, 0, 755, 133, 1, 0, 0, 0, 756, 757, 7,
4568
- 14, 0, 0, 757, 135, 1, 0, 0, 0, 758, 759, 5, 67, 0, 0, 759, 762, 5, 69, 0, 0, 760, 763,
4569
- 5, 67, 0, 0, 761, 763, 3, 138, 69, 0, 762, 760, 1, 0, 0, 0, 762, 761, 1, 0, 0, 0, 763,
4570
- 764, 1, 0, 0, 0, 764, 762, 1, 0, 0, 0, 764, 765, 1, 0, 0, 0, 765, 766, 1, 0, 0, 0, 766,
4571
- 767, 5, 70, 0, 0, 767, 137, 1, 0, 0, 0, 768, 772, 3, 140, 70, 0, 769, 772, 3, 144, 72,
4572
- 0, 770, 772, 3, 142, 71, 0, 771, 768, 1, 0, 0, 0, 771, 769, 1, 0, 0, 0, 771, 770, 1, 0,
4573
- 0, 0, 772, 139, 1, 0, 0, 0, 773, 774, 3, 134, 67, 0, 774, 775, 5, 1, 0, 0, 775, 783, 3,
4574
- 64, 32, 0, 776, 777, 5, 2, 0, 0, 777, 778, 3, 134, 67, 0, 778, 779, 5, 1, 0, 0, 779, 780,
4575
- 3, 64, 32, 0, 780, 782, 1, 0, 0, 0, 781, 776, 1, 0, 0, 0, 782, 785, 1, 0, 0, 0, 783, 781,
4576
- 1, 0, 0, 0, 783, 784, 1, 0, 0, 0, 784, 790, 1, 0, 0, 0, 785, 783, 1, 0, 0, 0, 786, 787,
4577
- 5, 2, 0, 0, 787, 789, 3, 134, 67, 0, 788, 786, 1, 0, 0, 0, 789, 792, 1, 0, 0, 0, 790, 788,
4578
- 1, 0, 0, 0, 790, 791, 1, 0, 0, 0, 791, 793, 1, 0, 0, 0, 792, 790, 1, 0, 0, 0, 793, 803,
4579
- 5, 1, 0, 0, 794, 804, 3, 136, 68, 0, 795, 800, 3, 64, 32, 0, 796, 797, 5, 2, 0, 0, 797,
4580
- 799, 3, 64, 32, 0, 798, 796, 1, 0, 0, 0, 799, 802, 1, 0, 0, 0, 800, 798, 1, 0, 0, 0, 800,
4581
- 801, 1, 0, 0, 0, 801, 804, 1, 0, 0, 0, 802, 800, 1, 0, 0, 0, 803, 794, 1, 0, 0, 0, 803,
4582
- 795, 1, 0, 0, 0, 804, 141, 1, 0, 0, 0, 805, 806, 3, 134, 67, 0, 806, 807, 5, 1, 0, 0, 807,
4583
- 808, 3, 136, 68, 0, 808, 143, 1, 0, 0, 0, 809, 810, 3, 134, 67, 0, 810, 811, 5, 1, 0,
4584
- 0, 811, 816, 3, 64, 32, 0, 812, 813, 5, 2, 0, 0, 813, 815, 3, 64, 32, 0, 814, 812, 1,
4585
- 0, 0, 0, 815, 818, 1, 0, 0, 0, 816, 814, 1, 0, 0, 0, 816, 817, 1, 0, 0, 0, 817, 145, 1,
4586
- 0, 0, 0, 818, 816, 1, 0, 0, 0, 819, 820, 5, 54, 0, 0, 820, 821, 5, 59, 0, 0, 821, 147,
4587
- 1, 0, 0, 0, 89, 150, 152, 157, 159, 177, 184, 188, 196, 202, 204, 218, 220, 235, 239,
4588
- 244, 248, 256, 269, 280, 288, 290, 301, 311, 313, 319, 326, 333, 337, 343, 361,
4589
- 368, 376, 379, 397, 407, 427, 429, 437, 445, 453, 455, 461, 468, 477, 489, 492,
4590
- 498, 503, 507, 515, 518, 524, 527, 531, 547, 549, 557, 559, 568, 581, 583, 591,
4591
- 593, 599, 607, 615, 623, 637, 640, 645, 648, 654, 663, 668, 676, 692, 695, 708,
4592
- 712, 735, 750, 762, 764, 771, 783, 790, 800, 803, 816
4397
+ 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 1, 0, 1, 0, 5, 0, 153, 8, 0, 10, 0, 12, 0, 156, 9, 0, 1,
4398
+ 0, 1, 0, 4, 0, 160, 8, 0, 11, 0, 12, 0, 161, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4399
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 180, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
4400
+ 3, 2, 187, 8, 2, 1, 3, 1, 3, 3, 3, 191, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 199,
4401
+ 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 205, 8, 5, 11, 5, 12, 5, 206, 1, 5, 1, 5, 1, 6, 1, 6, 1,
4402
+ 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 221, 8, 7, 11, 7, 12, 7, 222, 1, 7, 1, 7,
4403
+ 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 238, 8, 10, 1,
4404
+ 11, 1, 11, 3, 11, 242, 8, 11, 1, 11, 5, 11, 245, 8, 11, 10, 11, 12, 11, 248, 9, 11, 1,
4405
+ 11, 3, 11, 251, 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 259, 8, 13, 1, 14,
4406
+ 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 270, 8, 16, 10, 16, 12, 16,
4407
+ 273, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 281, 8, 17, 10, 17, 12, 17,
4408
+ 284, 9, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 291, 8, 17, 11, 17, 12, 17, 292,
4409
+ 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 302, 8, 18, 10, 18, 12, 18, 305,
4410
+ 9, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 314, 8, 20, 11, 20, 12, 20,
4411
+ 315, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 322, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 327, 8,
4412
+ 22, 10, 22, 12, 22, 330, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 336, 8, 23, 1, 24, 1,
4413
+ 24, 3, 24, 340, 8, 24, 1, 25, 1, 25, 1, 26, 1, 26, 3, 26, 346, 8, 26, 1, 26, 1, 26, 1, 26,
4414
+ 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 5, 29, 362,
4415
+ 8, 29, 10, 29, 12, 29, 365, 9, 29, 1, 29, 1, 29, 5, 29, 369, 8, 29, 10, 29, 12, 29, 372,
4416
+ 9, 29, 1, 29, 1, 29, 1, 29, 5, 29, 377, 8, 29, 10, 29, 12, 29, 380, 9, 29, 3, 29, 382,
4417
+ 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32,
4418
+ 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 400, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32,
4419
+ 1, 32, 1, 32, 3, 32, 410, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32,
4420
+ 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 430, 8, 32,
4421
+ 10, 32, 12, 32, 433, 9, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 3, 35, 440, 8, 35, 1, 35,
4422
+ 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 448, 8, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36,
4423
+ 1, 36, 4, 36, 456, 8, 36, 11, 36, 12, 36, 457, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 464,
4424
+ 8, 37, 1, 38, 1, 38, 1, 38, 5, 38, 469, 8, 38, 10, 38, 12, 38, 472, 9, 38, 1, 38, 1, 38,
4425
+ 1, 38, 1, 38, 5, 38, 478, 8, 38, 10, 38, 12, 38, 481, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38,
4426
+ 1, 38, 1, 38, 1, 38, 5, 38, 490, 8, 38, 10, 38, 12, 38, 493, 9, 38, 3, 38, 495, 8, 38,
4427
+ 1, 39, 1, 39, 5, 39, 499, 8, 39, 10, 39, 12, 39, 502, 9, 39, 1, 40, 1, 40, 3, 40, 506,
4428
+ 8, 40, 1, 40, 1, 40, 3, 40, 510, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41,
4429
+ 518, 8, 41, 1, 42, 3, 42, 521, 8, 42, 1, 42, 1, 42, 4, 42, 525, 8, 42, 11, 42, 12, 42,
4430
+ 526, 1, 43, 3, 43, 530, 8, 43, 1, 43, 1, 43, 3, 43, 534, 8, 43, 1, 44, 1, 44, 1, 44, 1,
4431
+ 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 550, 8,
4432
+ 46, 11, 46, 12, 46, 551, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 560, 8, 47, 11,
4433
+ 47, 12, 47, 561, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 571, 8, 48, 1,
4434
+ 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 584, 8,
4435
+ 49, 11, 49, 12, 49, 585, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 4, 50, 594, 8, 50, 11,
4436
+ 50, 12, 50, 595, 1, 50, 1, 50, 1, 51, 1, 51, 3, 51, 602, 8, 51, 1, 51, 1, 51, 1, 51, 1,
4437
+ 51, 1, 51, 1, 51, 3, 51, 610, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 616, 8, 51, 10,
4438
+ 51, 12, 51, 619, 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 626, 8, 51, 1, 52, 1,
4439
+ 52, 5, 52, 630, 8, 52, 10, 52, 12, 52, 633, 9, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1,
4440
+ 54, 1, 54, 1, 54, 1, 54, 5, 54, 644, 8, 54, 10, 54, 12, 54, 647, 9, 54, 3, 54, 649, 8,
4441
+ 54, 1, 55, 1, 55, 1, 55, 3, 55, 654, 8, 55, 1, 55, 3, 55, 657, 8, 55, 1, 56, 1, 56, 5, 56,
4442
+ 661, 8, 56, 10, 56, 12, 56, 664, 9, 56, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 670, 8, 57,
4443
+ 10, 57, 12, 57, 673, 9, 57, 5, 57, 675, 8, 57, 10, 57, 12, 57, 678, 9, 57, 1, 57, 1, 57,
4444
+ 1, 58, 1, 58, 1, 58, 3, 58, 685, 8, 58, 1, 59, 1, 59, 1, 59, 3, 59, 690, 8, 59, 1, 59, 1,
4445
+ 59, 1, 59, 1, 59, 1, 59, 3, 59, 697, 8, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 5,
4446
+ 59, 705, 8, 59, 10, 59, 12, 59, 708, 9, 59, 1, 59, 3, 59, 711, 8, 59, 3, 59, 713, 8, 59,
4447
+ 1, 60, 1, 60, 5, 60, 717, 8, 60, 10, 60, 12, 60, 720, 9, 60, 1, 61, 1, 61, 1, 61, 1, 61,
4448
+ 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 5, 62, 731, 8, 62, 10, 62, 12, 62, 734, 9, 62, 1, 62,
4449
+ 3, 62, 737, 8, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64,
4450
+ 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 5, 66, 758, 8, 66, 10, 66,
4451
+ 12, 66, 761, 9, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67,
4452
+ 5, 67, 773, 8, 67, 10, 67, 12, 67, 776, 9, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 69,
4453
+ 1, 69, 1, 69, 1, 69, 4, 69, 787, 8, 69, 11, 69, 12, 69, 788, 1, 69, 1, 69, 1, 70, 1, 70,
4454
+ 1, 70, 3, 70, 796, 8, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 5, 71,
4455
+ 806, 8, 71, 10, 71, 12, 71, 809, 9, 71, 1, 71, 1, 71, 5, 71, 813, 8, 71, 10, 71, 12, 71,
4456
+ 816, 9, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 5, 71, 823, 8, 71, 10, 71, 12, 71, 826,
4457
+ 9, 71, 3, 71, 828, 8, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73,
4458
+ 5, 73, 839, 8, 73, 10, 73, 12, 73, 842, 9, 73, 1, 74, 1, 74, 1, 74, 1, 74, 0, 1, 64, 75,
4459
+ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44,
4460
+ 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88,
4461
+ 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124,
4462
+ 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 0, 16, 2, 0, 10, 10, 20,
4463
+ 22, 1, 0, 59, 60, 2, 0, 60, 60, 63, 63, 2, 0, 57, 57, 60, 60, 1, 0, 49, 53, 1, 0, 46, 48,
4464
+ 1, 0, 44, 45, 1, 0, 42, 43, 1, 0, 36, 41, 2, 0, 33, 33, 45, 45, 2, 0, 58, 58, 60, 64, 2,
4465
+ 0, 16, 16, 59, 59, 2, 0, 59, 60, 63, 63, 2, 0, 45, 45, 59, 59, 1, 0, 34, 35, 2, 0, 59, 60,
4466
+ 62, 64, 898, 0, 154, 1, 0, 0, 0, 2, 179, 1, 0, 0, 0, 4, 186, 1, 0, 0, 0, 6, 190, 1, 0, 0,
4467
+ 0, 8, 198, 1, 0, 0, 0, 10, 200, 1, 0, 0, 0, 12, 210, 1, 0, 0, 0, 14, 214, 1, 0, 0, 0, 16,
4468
+ 226, 1, 0, 0, 0, 18, 230, 1, 0, 0, 0, 20, 233, 1, 0, 0, 0, 22, 241, 1, 0, 0, 0, 24, 252,
4469
+ 1, 0, 0, 0, 26, 258, 1, 0, 0, 0, 28, 260, 1, 0, 0, 0, 30, 262, 1, 0, 0, 0, 32, 265, 1, 0,
4470
+ 0, 0, 34, 274, 1, 0, 0, 0, 36, 296, 1, 0, 0, 0, 38, 306, 1, 0, 0, 0, 40, 308, 1, 0, 0, 0,
4471
+ 42, 321, 1, 0, 0, 0, 44, 323, 1, 0, 0, 0, 46, 331, 1, 0, 0, 0, 48, 339, 1, 0, 0, 0, 50, 341,
4472
+ 1, 0, 0, 0, 52, 345, 1, 0, 0, 0, 54, 350, 1, 0, 0, 0, 56, 354, 1, 0, 0, 0, 58, 381, 1, 0,
4473
+ 0, 0, 60, 383, 1, 0, 0, 0, 62, 387, 1, 0, 0, 0, 64, 409, 1, 0, 0, 0, 66, 434, 1, 0, 0, 0,
4474
+ 68, 436, 1, 0, 0, 0, 70, 439, 1, 0, 0, 0, 72, 443, 1, 0, 0, 0, 74, 463, 1, 0, 0, 0, 76, 494,
4475
+ 1, 0, 0, 0, 78, 496, 1, 0, 0, 0, 80, 509, 1, 0, 0, 0, 82, 517, 1, 0, 0, 0, 84, 520, 1, 0,
4476
+ 0, 0, 86, 529, 1, 0, 0, 0, 88, 535, 1, 0, 0, 0, 90, 538, 1, 0, 0, 0, 92, 542, 1, 0, 0, 0,
4477
+ 94, 555, 1, 0, 0, 0, 96, 565, 1, 0, 0, 0, 98, 575, 1, 0, 0, 0, 100, 589, 1, 0, 0, 0, 102,
4478
+ 625, 1, 0, 0, 0, 104, 627, 1, 0, 0, 0, 106, 637, 1, 0, 0, 0, 108, 648, 1, 0, 0, 0, 110,
4479
+ 656, 1, 0, 0, 0, 112, 658, 1, 0, 0, 0, 114, 665, 1, 0, 0, 0, 116, 681, 1, 0, 0, 0, 118,
4480
+ 712, 1, 0, 0, 0, 120, 714, 1, 0, 0, 0, 122, 721, 1, 0, 0, 0, 124, 725, 1, 0, 0, 0, 126,
4481
+ 738, 1, 0, 0, 0, 128, 744, 1, 0, 0, 0, 130, 748, 1, 0, 0, 0, 132, 753, 1, 0, 0, 0, 134,
4482
+ 767, 1, 0, 0, 0, 136, 780, 1, 0, 0, 0, 138, 782, 1, 0, 0, 0, 140, 795, 1, 0, 0, 0, 142,
4483
+ 797, 1, 0, 0, 0, 144, 829, 1, 0, 0, 0, 146, 833, 1, 0, 0, 0, 148, 843, 1, 0, 0, 0, 150,
4484
+ 153, 3, 118, 59, 0, 151, 153, 5, 67, 0, 0, 152, 150, 1, 0, 0, 0, 152, 151, 1, 0, 0, 0,
4485
+ 153, 156, 1, 0, 0, 0, 154, 152, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155, 159, 1, 0, 0, 0,
4486
+ 156, 154, 1, 0, 0, 0, 157, 160, 3, 2, 1, 0, 158, 160, 5, 67, 0, 0, 159, 157, 1, 0, 0, 0,
4487
+ 159, 158, 1, 0, 0, 0, 160, 161, 1, 0, 0, 0, 161, 159, 1, 0, 0, 0, 161, 162, 1, 0, 0, 0,
4488
+ 162, 163, 1, 0, 0, 0, 163, 164, 5, 0, 0, 1, 164, 1, 1, 0, 0, 0, 165, 180, 3, 6, 3, 0, 166,
4489
+ 180, 3, 52, 26, 0, 167, 180, 3, 54, 27, 0, 168, 180, 3, 60, 30, 0, 169, 180, 3, 14, 7,
4490
+ 0, 170, 180, 3, 62, 31, 0, 171, 180, 3, 72, 36, 0, 172, 180, 3, 84, 42, 0, 173, 180,
4491
+ 3, 118, 59, 0, 174, 180, 3, 78, 39, 0, 175, 180, 3, 122, 61, 0, 176, 180, 3, 4, 2, 0,
4492
+ 177, 180, 3, 148, 74, 0, 178, 180, 3, 134, 67, 0, 179, 165, 1, 0, 0, 0, 179, 166, 1,
4493
+ 0, 0, 0, 179, 167, 1, 0, 0, 0, 179, 168, 1, 0, 0, 0, 179, 169, 1, 0, 0, 0, 179, 170, 1,
4494
+ 0, 0, 0, 179, 171, 1, 0, 0, 0, 179, 172, 1, 0, 0, 0, 179, 173, 1, 0, 0, 0, 179, 174, 1,
4495
+ 0, 0, 0, 179, 175, 1, 0, 0, 0, 179, 176, 1, 0, 0, 0, 179, 177, 1, 0, 0, 0, 179, 178, 1,
4496
+ 0, 0, 0, 180, 3, 1, 0, 0, 0, 181, 187, 3, 124, 62, 0, 182, 187, 3, 130, 65, 0, 183, 187,
4497
+ 3, 132, 66, 0, 184, 187, 5, 9, 0, 0, 185, 187, 5, 30, 0, 0, 186, 181, 1, 0, 0, 0, 186,
4498
+ 182, 1, 0, 0, 0, 186, 183, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 186, 185, 1, 0, 0, 0, 187,
4499
+ 5, 1, 0, 0, 0, 188, 191, 3, 8, 4, 0, 189, 191, 3, 12, 6, 0, 190, 188, 1, 0, 0, 0, 190, 189,
4500
+ 1, 0, 0, 0, 191, 7, 1, 0, 0, 0, 192, 199, 3, 24, 12, 0, 193, 199, 3, 32, 16, 0, 194, 199,
4501
+ 3, 30, 15, 0, 195, 199, 3, 40, 20, 0, 196, 199, 3, 112, 56, 0, 197, 199, 3, 116, 58,
4502
+ 0, 198, 192, 1, 0, 0, 0, 198, 193, 1, 0, 0, 0, 198, 194, 1, 0, 0, 0, 198, 195, 1, 0, 0,
4503
+ 0, 198, 196, 1, 0, 0, 0, 198, 197, 1, 0, 0, 0, 199, 9, 1, 0, 0, 0, 200, 201, 5, 67, 0, 0,
4504
+ 201, 204, 5, 69, 0, 0, 202, 205, 5, 67, 0, 0, 203, 205, 3, 2, 1, 0, 204, 202, 1, 0, 0,
4505
+ 0, 204, 203, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206, 204, 1, 0, 0, 0, 206, 207, 1, 0, 0,
4506
+ 0, 207, 208, 1, 0, 0, 0, 208, 209, 5, 70, 0, 0, 209, 11, 1, 0, 0, 0, 210, 211, 7, 0, 0,
4507
+ 0, 211, 212, 5, 1, 0, 0, 212, 213, 3, 10, 5, 0, 213, 13, 1, 0, 0, 0, 214, 215, 3, 78, 39,
4508
+ 0, 215, 216, 5, 1, 0, 0, 216, 217, 5, 67, 0, 0, 217, 220, 5, 69, 0, 0, 218, 221, 5, 67,
4509
+ 0, 0, 219, 221, 3, 16, 8, 0, 220, 218, 1, 0, 0, 0, 220, 219, 1, 0, 0, 0, 221, 222, 1, 0,
4510
+ 0, 0, 222, 220, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 225, 5, 70,
4511
+ 0, 0, 225, 15, 1, 0, 0, 0, 226, 227, 7, 1, 0, 0, 227, 228, 5, 1, 0, 0, 228, 229, 3, 70,
4512
+ 35, 0, 229, 17, 1, 0, 0, 0, 230, 231, 5, 16, 0, 0, 231, 232, 3, 64, 32, 0, 232, 19, 1,
4513
+ 0, 0, 0, 233, 234, 5, 59, 0, 0, 234, 237, 5, 1, 0, 0, 235, 238, 3, 70, 35, 0, 236, 238,
4514
+ 5, 59, 0, 0, 237, 235, 1, 0, 0, 0, 237, 236, 1, 0, 0, 0, 238, 21, 1, 0, 0, 0, 239, 242,
4515
+ 3, 64, 32, 0, 240, 242, 3, 52, 26, 0, 241, 239, 1, 0, 0, 0, 241, 240, 1, 0, 0, 0, 242,
4516
+ 246, 1, 0, 0, 0, 243, 245, 3, 20, 10, 0, 244, 243, 1, 0, 0, 0, 245, 248, 1, 0, 0, 0, 246,
4517
+ 244, 1, 0, 0, 0, 246, 247, 1, 0, 0, 0, 247, 250, 1, 0, 0, 0, 248, 246, 1, 0, 0, 0, 249,
4518
+ 251, 3, 18, 9, 0, 250, 249, 1, 0, 0, 0, 250, 251, 1, 0, 0, 0, 251, 23, 1, 0, 0, 0, 252,
4519
+ 253, 5, 17, 0, 0, 253, 254, 3, 22, 11, 0, 254, 25, 1, 0, 0, 0, 255, 259, 3, 22, 11, 0,
4520
+ 256, 259, 3, 18, 9, 0, 257, 259, 5, 20, 0, 0, 258, 255, 1, 0, 0, 0, 258, 256, 1, 0, 0,
4521
+ 0, 258, 257, 1, 0, 0, 0, 259, 27, 1, 0, 0, 0, 260, 261, 7, 2, 0, 0, 261, 29, 1, 0, 0, 0,
4522
+ 262, 263, 5, 18, 0, 0, 263, 264, 3, 26, 13, 0, 264, 31, 1, 0, 0, 0, 265, 266, 5, 19, 0,
4523
+ 0, 266, 271, 3, 26, 13, 0, 267, 268, 5, 2, 0, 0, 268, 270, 3, 26, 13, 0, 269, 267, 1,
4524
+ 0, 0, 0, 270, 273, 1, 0, 0, 0, 271, 269, 1, 0, 0, 0, 271, 272, 1, 0, 0, 0, 272, 33, 1, 0,
4525
+ 0, 0, 273, 271, 1, 0, 0, 0, 274, 275, 5, 18, 0, 0, 275, 276, 3, 26, 13, 0, 276, 277, 5,
4526
+ 19, 0, 0, 277, 282, 3, 26, 13, 0, 278, 279, 5, 2, 0, 0, 279, 281, 3, 26, 13, 0, 280, 278,
4527
+ 1, 0, 0, 0, 281, 284, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 282, 283, 1, 0, 0, 0, 283, 285,
4528
+ 1, 0, 0, 0, 284, 282, 1, 0, 0, 0, 285, 286, 5, 1, 0, 0, 286, 287, 5, 67, 0, 0, 287, 290,
4529
+ 5, 69, 0, 0, 288, 291, 5, 67, 0, 0, 289, 291, 3, 36, 18, 0, 290, 288, 1, 0, 0, 0, 290,
4530
+ 289, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 290, 1, 0, 0, 0, 292, 293, 1, 0, 0, 0, 293,
4531
+ 294, 1, 0, 0, 0, 294, 295, 5, 70, 0, 0, 295, 35, 1, 0, 0, 0, 296, 297, 3, 28, 14, 0, 297,
4532
+ 298, 5, 1, 0, 0, 298, 303, 3, 38, 19, 0, 299, 300, 5, 2, 0, 0, 300, 302, 3, 38, 19, 0,
4533
+ 301, 299, 1, 0, 0, 0, 302, 305, 1, 0, 0, 0, 303, 301, 1, 0, 0, 0, 303, 304, 1, 0, 0, 0,
4534
+ 304, 37, 1, 0, 0, 0, 305, 303, 1, 0, 0, 0, 306, 307, 7, 3, 0, 0, 307, 39, 1, 0, 0, 0, 308,
4535
+ 309, 3, 44, 22, 0, 309, 310, 5, 67, 0, 0, 310, 313, 5, 69, 0, 0, 311, 314, 5, 67, 0, 0,
4536
+ 312, 314, 3, 42, 21, 0, 313, 311, 1, 0, 0, 0, 313, 312, 1, 0, 0, 0, 314, 315, 1, 0, 0,
4537
+ 0, 315, 313, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316, 317, 1, 0, 0, 0, 317, 318, 5, 70, 0,
4538
+ 0, 318, 41, 1, 0, 0, 0, 319, 322, 3, 2, 1, 0, 320, 322, 3, 46, 23, 0, 321, 319, 1, 0, 0,
4539
+ 0, 321, 320, 1, 0, 0, 0, 322, 43, 1, 0, 0, 0, 323, 324, 3, 30, 15, 0, 324, 328, 5, 1, 0,
4540
+ 0, 325, 327, 3, 148, 74, 0, 326, 325, 1, 0, 0, 0, 327, 330, 1, 0, 0, 0, 328, 326, 1, 0,
4541
+ 0, 0, 328, 329, 1, 0, 0, 0, 329, 45, 1, 0, 0, 0, 330, 328, 1, 0, 0, 0, 331, 332, 3, 28,
4542
+ 14, 0, 332, 335, 5, 1, 0, 0, 333, 336, 3, 48, 24, 0, 334, 336, 3, 50, 25, 0, 335, 333,
4543
+ 1, 0, 0, 0, 335, 334, 1, 0, 0, 0, 336, 47, 1, 0, 0, 0, 337, 340, 3, 2, 1, 0, 338, 340, 5,
4544
+ 57, 0, 0, 339, 337, 1, 0, 0, 0, 339, 338, 1, 0, 0, 0, 340, 49, 1, 0, 0, 0, 341, 342, 3,
4545
+ 10, 5, 0, 342, 51, 1, 0, 0, 0, 343, 346, 3, 78, 39, 0, 344, 346, 3, 84, 42, 0, 345, 343,
4546
+ 1, 0, 0, 0, 345, 344, 1, 0, 0, 0, 346, 347, 1, 0, 0, 0, 347, 348, 5, 3, 0, 0, 348, 349,
4547
+ 3, 64, 32, 0, 349, 53, 1, 0, 0, 0, 350, 351, 3, 78, 39, 0, 351, 352, 7, 4, 0, 0, 352, 353,
4548
+ 3, 64, 32, 0, 353, 55, 1, 0, 0, 0, 354, 355, 5, 59, 0, 0, 355, 356, 5, 3, 0, 0, 356, 357,
4549
+ 3, 64, 32, 0, 357, 57, 1, 0, 0, 0, 358, 363, 3, 64, 32, 0, 359, 360, 5, 2, 0, 0, 360, 362,
4550
+ 3, 64, 32, 0, 361, 359, 1, 0, 0, 0, 362, 365, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 363, 364,
4551
+ 1, 0, 0, 0, 364, 370, 1, 0, 0, 0, 365, 363, 1, 0, 0, 0, 366, 367, 5, 2, 0, 0, 367, 369,
4552
+ 3, 56, 28, 0, 368, 366, 1, 0, 0, 0, 369, 372, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 370, 371,
4553
+ 1, 0, 0, 0, 371, 382, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 373, 378, 3, 56, 28, 0, 374, 375,
4554
+ 5, 2, 0, 0, 375, 377, 3, 56, 28, 0, 376, 374, 1, 0, 0, 0, 377, 380, 1, 0, 0, 0, 378, 376,
4555
+ 1, 0, 0, 0, 378, 379, 1, 0, 0, 0, 379, 382, 1, 0, 0, 0, 380, 378, 1, 0, 0, 0, 381, 358,
4556
+ 1, 0, 0, 0, 381, 373, 1, 0, 0, 0, 382, 59, 1, 0, 0, 0, 383, 384, 3, 78, 39, 0, 384, 385,
4557
+ 5, 3, 0, 0, 385, 386, 3, 64, 32, 0, 386, 61, 1, 0, 0, 0, 387, 388, 5, 4, 0, 0, 388, 389,
4558
+ 5, 59, 0, 0, 389, 390, 5, 3, 0, 0, 390, 391, 3, 64, 32, 0, 391, 63, 1, 0, 0, 0, 392, 393,
4559
+ 6, 32, -1, 0, 393, 394, 5, 55, 0, 0, 394, 395, 3, 64, 32, 0, 395, 396, 5, 56, 0, 0, 396,
4560
+ 410, 1, 0, 0, 0, 397, 400, 3, 70, 35, 0, 398, 400, 3, 78, 39, 0, 399, 397, 1, 0, 0, 0,
4561
+ 399, 398, 1, 0, 0, 0, 400, 410, 1, 0, 0, 0, 401, 402, 3, 68, 34, 0, 402, 403, 3, 64, 32,
4562
+ 11, 403, 410, 1, 0, 0, 0, 404, 410, 3, 92, 46, 0, 405, 410, 3, 96, 48, 0, 406, 410, 3,
4563
+ 98, 49, 0, 407, 410, 3, 84, 42, 0, 408, 410, 3, 114, 57, 0, 409, 392, 1, 0, 0, 0, 409,
4564
+ 399, 1, 0, 0, 0, 409, 401, 1, 0, 0, 0, 409, 404, 1, 0, 0, 0, 409, 405, 1, 0, 0, 0, 409,
4565
+ 406, 1, 0, 0, 0, 409, 407, 1, 0, 0, 0, 409, 408, 1, 0, 0, 0, 410, 431, 1, 0, 0, 0, 411,
4566
+ 412, 10, 10, 0, 0, 412, 413, 7, 5, 0, 0, 413, 430, 3, 64, 32, 11, 414, 415, 10, 9, 0,
4567
+ 0, 415, 416, 7, 6, 0, 0, 416, 430, 3, 64, 32, 10, 417, 418, 10, 8, 0, 0, 418, 419, 3,
4568
+ 66, 33, 0, 419, 420, 3, 64, 32, 9, 420, 430, 1, 0, 0, 0, 421, 422, 10, 7, 0, 0, 422, 423,
4569
+ 7, 7, 0, 0, 423, 430, 3, 64, 32, 8, 424, 425, 10, 1, 0, 0, 425, 426, 5, 5, 0, 0, 426, 427,
4570
+ 3, 64, 32, 0, 427, 428, 5, 6, 0, 0, 428, 430, 1, 0, 0, 0, 429, 411, 1, 0, 0, 0, 429, 414,
4571
+ 1, 0, 0, 0, 429, 417, 1, 0, 0, 0, 429, 421, 1, 0, 0, 0, 429, 424, 1, 0, 0, 0, 430, 433,
4572
+ 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 431, 432, 1, 0, 0, 0, 432, 65, 1, 0, 0, 0, 433, 431, 1,
4573
+ 0, 0, 0, 434, 435, 7, 8, 0, 0, 435, 67, 1, 0, 0, 0, 436, 437, 7, 9, 0, 0, 437, 69, 1, 0,
4574
+ 0, 0, 438, 440, 5, 45, 0, 0, 439, 438, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 441, 1, 0,
4575
+ 0, 0, 441, 442, 7, 10, 0, 0, 442, 71, 1, 0, 0, 0, 443, 444, 5, 24, 0, 0, 444, 445, 5, 59,
4576
+ 0, 0, 445, 447, 5, 55, 0, 0, 446, 448, 3, 76, 38, 0, 447, 446, 1, 0, 0, 0, 447, 448, 1,
4577
+ 0, 0, 0, 448, 449, 1, 0, 0, 0, 449, 450, 5, 56, 0, 0, 450, 451, 5, 1, 0, 0, 451, 452, 5,
4578
+ 67, 0, 0, 452, 455, 5, 69, 0, 0, 453, 456, 5, 67, 0, 0, 454, 456, 3, 74, 37, 0, 455, 453,
4579
+ 1, 0, 0, 0, 455, 454, 1, 0, 0, 0, 456, 457, 1, 0, 0, 0, 457, 455, 1, 0, 0, 0, 457, 458,
4580
+ 1, 0, 0, 0, 458, 459, 1, 0, 0, 0, 459, 460, 5, 70, 0, 0, 460, 73, 1, 0, 0, 0, 461, 464,
4581
+ 3, 2, 1, 0, 462, 464, 3, 88, 44, 0, 463, 461, 1, 0, 0, 0, 463, 462, 1, 0, 0, 0, 464, 75,
4582
+ 1, 0, 0, 0, 465, 470, 5, 59, 0, 0, 466, 467, 5, 2, 0, 0, 467, 469, 5, 59, 0, 0, 468, 466,
4583
+ 1, 0, 0, 0, 469, 472, 1, 0, 0, 0, 470, 468, 1, 0, 0, 0, 470, 471, 1, 0, 0, 0, 471, 479,
4584
+ 1, 0, 0, 0, 472, 470, 1, 0, 0, 0, 473, 474, 5, 2, 0, 0, 474, 475, 5, 59, 0, 0, 475, 476,
4585
+ 5, 3, 0, 0, 476, 478, 3, 70, 35, 0, 477, 473, 1, 0, 0, 0, 478, 481, 1, 0, 0, 0, 479, 477,
4586
+ 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 495, 1, 0, 0, 0, 481, 479, 1, 0, 0, 0, 482, 483,
4587
+ 5, 59, 0, 0, 483, 484, 5, 3, 0, 0, 484, 491, 3, 70, 35, 0, 485, 486, 5, 2, 0, 0, 486, 487,
4588
+ 5, 59, 0, 0, 487, 488, 5, 3, 0, 0, 488, 490, 3, 70, 35, 0, 489, 485, 1, 0, 0, 0, 490, 493,
4589
+ 1, 0, 0, 0, 491, 489, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 495, 1, 0, 0, 0, 493, 491,
4590
+ 1, 0, 0, 0, 494, 465, 1, 0, 0, 0, 494, 482, 1, 0, 0, 0, 495, 77, 1, 0, 0, 0, 496, 500, 5,
4591
+ 59, 0, 0, 497, 499, 3, 82, 41, 0, 498, 497, 1, 0, 0, 0, 499, 502, 1, 0, 0, 0, 500, 498,
4592
+ 1, 0, 0, 0, 500, 501, 1, 0, 0, 0, 501, 79, 1, 0, 0, 0, 502, 500, 1, 0, 0, 0, 503, 505, 5,
4593
+ 55, 0, 0, 504, 506, 3, 58, 29, 0, 505, 504, 1, 0, 0, 0, 505, 506, 1, 0, 0, 0, 506, 507,
4594
+ 1, 0, 0, 0, 507, 510, 5, 56, 0, 0, 508, 510, 3, 82, 41, 0, 509, 503, 1, 0, 0, 0, 509, 508,
4595
+ 1, 0, 0, 0, 510, 81, 1, 0, 0, 0, 511, 512, 5, 7, 0, 0, 512, 518, 5, 59, 0, 0, 513, 514,
4596
+ 5, 5, 0, 0, 514, 515, 3, 64, 32, 0, 515, 516, 5, 6, 0, 0, 516, 518, 1, 0, 0, 0, 517, 511,
4597
+ 1, 0, 0, 0, 517, 513, 1, 0, 0, 0, 518, 83, 1, 0, 0, 0, 519, 521, 3, 86, 43, 0, 520, 519,
4598
+ 1, 0, 0, 0, 520, 521, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 524, 5, 59, 0, 0, 523, 525,
4599
+ 3, 80, 40, 0, 524, 523, 1, 0, 0, 0, 525, 526, 1, 0, 0, 0, 526, 524, 1, 0, 0, 0, 526, 527,
4600
+ 1, 0, 0, 0, 527, 85, 1, 0, 0, 0, 528, 530, 5, 44, 0, 0, 529, 528, 1, 0, 0, 0, 529, 530,
4601
+ 1, 0, 0, 0, 530, 531, 1, 0, 0, 0, 531, 533, 5, 46, 0, 0, 532, 534, 3, 64, 32, 0, 533, 532,
4602
+ 1, 0, 0, 0, 533, 534, 1, 0, 0, 0, 534, 87, 1, 0, 0, 0, 535, 536, 5, 23, 0, 0, 536, 537,
4603
+ 3, 64, 32, 0, 537, 89, 1, 0, 0, 0, 538, 539, 3, 106, 53, 0, 539, 540, 5, 1, 0, 0, 540,
4604
+ 541, 3, 10, 5, 0, 541, 91, 1, 0, 0, 0, 542, 543, 5, 11, 0, 0, 543, 544, 5, 12, 0, 0, 544,
4605
+ 545, 5, 1, 0, 0, 545, 546, 5, 67, 0, 0, 546, 549, 5, 69, 0, 0, 547, 550, 5, 67, 0, 0, 548,
4606
+ 550, 3, 104, 52, 0, 549, 547, 1, 0, 0, 0, 549, 548, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551,
4607
+ 549, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 553, 1, 0, 0, 0, 553, 554, 5, 70, 0, 0, 554,
4608
+ 93, 1, 0, 0, 0, 555, 556, 5, 67, 0, 0, 556, 559, 5, 69, 0, 0, 557, 560, 5, 67, 0, 0, 558,
4609
+ 560, 3, 102, 51, 0, 559, 557, 1, 0, 0, 0, 559, 558, 1, 0, 0, 0, 560, 561, 1, 0, 0, 0, 561,
4610
+ 559, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0, 562, 563, 1, 0, 0, 0, 563, 564, 5, 70, 0, 0, 564,
4611
+ 95, 1, 0, 0, 0, 565, 566, 5, 11, 0, 0, 566, 570, 5, 13, 0, 0, 567, 568, 5, 55, 0, 0, 568,
4612
+ 569, 5, 59, 0, 0, 569, 571, 5, 56, 0, 0, 570, 567, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571,
4613
+ 572, 1, 0, 0, 0, 572, 573, 5, 1, 0, 0, 573, 574, 3, 94, 47, 0, 574, 97, 1, 0, 0, 0, 575,
4614
+ 576, 5, 11, 0, 0, 576, 577, 5, 14, 0, 0, 577, 578, 5, 1, 0, 0, 578, 579, 5, 67, 0, 0, 579,
4615
+ 583, 5, 69, 0, 0, 580, 584, 5, 67, 0, 0, 581, 584, 3, 104, 52, 0, 582, 584, 3, 90, 45,
4616
+ 0, 583, 580, 1, 0, 0, 0, 583, 581, 1, 0, 0, 0, 583, 582, 1, 0, 0, 0, 584, 585, 1, 0, 0,
4617
+ 0, 585, 583, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0, 586, 587, 1, 0, 0, 0, 587, 588, 5, 70, 0,
4618
+ 0, 588, 99, 1, 0, 0, 0, 589, 590, 5, 67, 0, 0, 590, 593, 5, 69, 0, 0, 591, 594, 5, 67,
4619
+ 0, 0, 592, 594, 3, 104, 52, 0, 593, 591, 1, 0, 0, 0, 593, 592, 1, 0, 0, 0, 594, 595, 1,
4620
+ 0, 0, 0, 595, 593, 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 597, 1, 0, 0, 0, 597, 598, 5,
4621
+ 70, 0, 0, 598, 101, 1, 0, 0, 0, 599, 601, 7, 11, 0, 0, 600, 602, 5, 1, 0, 0, 601, 600,
4622
+ 1, 0, 0, 0, 601, 602, 1, 0, 0, 0, 602, 609, 1, 0, 0, 0, 603, 610, 3, 58, 29, 0, 604, 605,
4623
+ 5, 55, 0, 0, 605, 606, 3, 58, 29, 0, 606, 607, 5, 56, 0, 0, 607, 610, 1, 0, 0, 0, 608,
4624
+ 610, 3, 100, 50, 0, 609, 603, 1, 0, 0, 0, 609, 604, 1, 0, 0, 0, 609, 608, 1, 0, 0, 0, 610,
4625
+ 626, 1, 0, 0, 0, 611, 612, 5, 27, 0, 0, 612, 617, 5, 59, 0, 0, 613, 614, 5, 2, 0, 0, 614,
4626
+ 616, 5, 59, 0, 0, 615, 613, 1, 0, 0, 0, 616, 619, 1, 0, 0, 0, 617, 615, 1, 0, 0, 0, 617,
4627
+ 618, 1, 0, 0, 0, 618, 620, 1, 0, 0, 0, 619, 617, 1, 0, 0, 0, 620, 621, 5, 28, 0, 0, 621,
4628
+ 622, 3, 64, 32, 0, 622, 623, 5, 1, 0, 0, 623, 624, 3, 94, 47, 0, 624, 626, 1, 0, 0, 0,
4629
+ 625, 599, 1, 0, 0, 0, 625, 611, 1, 0, 0, 0, 626, 103, 1, 0, 0, 0, 627, 631, 3, 106, 53,
4630
+ 0, 628, 630, 5, 63, 0, 0, 629, 628, 1, 0, 0, 0, 630, 633, 1, 0, 0, 0, 631, 629, 1, 0, 0,
4631
+ 0, 631, 632, 1, 0, 0, 0, 632, 634, 1, 0, 0, 0, 633, 631, 1, 0, 0, 0, 634, 635, 5, 1, 0,
4632
+ 0, 635, 636, 3, 108, 54, 0, 636, 105, 1, 0, 0, 0, 637, 638, 7, 12, 0, 0, 638, 107, 1,
4633
+ 0, 0, 0, 639, 649, 3, 100, 50, 0, 640, 645, 3, 64, 32, 0, 641, 642, 5, 2, 0, 0, 642, 644,
4634
+ 3, 64, 32, 0, 643, 641, 1, 0, 0, 0, 644, 647, 1, 0, 0, 0, 645, 643, 1, 0, 0, 0, 645, 646,
4635
+ 1, 0, 0, 0, 646, 649, 1, 0, 0, 0, 647, 645, 1, 0, 0, 0, 648, 639, 1, 0, 0, 0, 648, 640,
4636
+ 1, 0, 0, 0, 649, 109, 1, 0, 0, 0, 650, 653, 5, 59, 0, 0, 651, 654, 5, 60, 0, 0, 652, 654,
4637
+ 3, 64, 32, 0, 653, 651, 1, 0, 0, 0, 653, 652, 1, 0, 0, 0, 654, 657, 1, 0, 0, 0, 655, 657,
4638
+ 5, 59, 0, 0, 656, 650, 1, 0, 0, 0, 656, 655, 1, 0, 0, 0, 657, 111, 1, 0, 0, 0, 658, 662,
4639
+ 5, 15, 0, 0, 659, 661, 3, 110, 55, 0, 660, 659, 1, 0, 0, 0, 661, 664, 1, 0, 0, 0, 662,
4640
+ 660, 1, 0, 0, 0, 662, 663, 1, 0, 0, 0, 663, 113, 1, 0, 0, 0, 664, 662, 1, 0, 0, 0, 665,
4641
+ 676, 5, 5, 0, 0, 666, 671, 3, 64, 32, 0, 667, 668, 5, 2, 0, 0, 668, 670, 3, 64, 32, 0,
4642
+ 669, 667, 1, 0, 0, 0, 670, 673, 1, 0, 0, 0, 671, 669, 1, 0, 0, 0, 671, 672, 1, 0, 0, 0,
4643
+ 672, 675, 1, 0, 0, 0, 673, 671, 1, 0, 0, 0, 674, 666, 1, 0, 0, 0, 675, 678, 1, 0, 0, 0,
4644
+ 676, 674, 1, 0, 0, 0, 676, 677, 1, 0, 0, 0, 677, 679, 1, 0, 0, 0, 678, 676, 1, 0, 0, 0,
4645
+ 679, 680, 5, 6, 0, 0, 680, 115, 1, 0, 0, 0, 681, 684, 5, 20, 0, 0, 682, 685, 5, 59, 0,
4646
+ 0, 683, 685, 3, 64, 32, 0, 684, 682, 1, 0, 0, 0, 684, 683, 1, 0, 0, 0, 685, 117, 1, 0,
4647
+ 0, 0, 686, 687, 5, 25, 0, 0, 687, 689, 5, 59, 0, 0, 688, 690, 3, 120, 60, 0, 689, 688,
4648
+ 1, 0, 0, 0, 689, 690, 1, 0, 0, 0, 690, 713, 1, 0, 0, 0, 691, 692, 5, 26, 0, 0, 692, 693,
4649
+ 5, 59, 0, 0, 693, 694, 5, 25, 0, 0, 694, 696, 5, 47, 0, 0, 695, 697, 3, 120, 60, 0, 696,
4650
+ 695, 1, 0, 0, 0, 696, 697, 1, 0, 0, 0, 697, 713, 1, 0, 0, 0, 698, 699, 5, 26, 0, 0, 699,
4651
+ 700, 5, 59, 0, 0, 700, 701, 5, 25, 0, 0, 701, 706, 5, 59, 0, 0, 702, 703, 5, 2, 0, 0, 703,
4652
+ 705, 5, 59, 0, 0, 704, 702, 1, 0, 0, 0, 705, 708, 1, 0, 0, 0, 706, 704, 1, 0, 0, 0, 706,
4653
+ 707, 1, 0, 0, 0, 707, 710, 1, 0, 0, 0, 708, 706, 1, 0, 0, 0, 709, 711, 3, 120, 60, 0, 710,
4654
+ 709, 1, 0, 0, 0, 710, 711, 1, 0, 0, 0, 711, 713, 1, 0, 0, 0, 712, 686, 1, 0, 0, 0, 712,
4655
+ 691, 1, 0, 0, 0, 712, 698, 1, 0, 0, 0, 713, 119, 1, 0, 0, 0, 714, 718, 5, 54, 0, 0, 715,
4656
+ 717, 7, 13, 0, 0, 716, 715, 1, 0, 0, 0, 717, 720, 1, 0, 0, 0, 718, 716, 1, 0, 0, 0, 718,
4657
+ 719, 1, 0, 0, 0, 719, 121, 1, 0, 0, 0, 720, 718, 1, 0, 0, 0, 721, 722, 7, 14, 0, 0, 722,
4658
+ 723, 5, 1, 0, 0, 723, 724, 3, 10, 5, 0, 724, 123, 1, 0, 0, 0, 725, 726, 5, 31, 0, 0, 726,
4659
+ 727, 3, 64, 32, 0, 727, 728, 5, 1, 0, 0, 728, 732, 3, 10, 5, 0, 729, 731, 3, 126, 63,
4660
+ 0, 730, 729, 1, 0, 0, 0, 731, 734, 1, 0, 0, 0, 732, 730, 1, 0, 0, 0, 732, 733, 1, 0, 0,
4661
+ 0, 733, 736, 1, 0, 0, 0, 734, 732, 1, 0, 0, 0, 735, 737, 3, 128, 64, 0, 736, 735, 1, 0,
4662
+ 0, 0, 736, 737, 1, 0, 0, 0, 737, 125, 1, 0, 0, 0, 738, 739, 5, 32, 0, 0, 739, 740, 5, 31,
4663
+ 0, 0, 740, 741, 3, 64, 32, 0, 741, 742, 5, 1, 0, 0, 742, 743, 3, 10, 5, 0, 743, 127, 1,
4664
+ 0, 0, 0, 744, 745, 5, 32, 0, 0, 745, 746, 5, 1, 0, 0, 746, 747, 3, 10, 5, 0, 747, 129,
4665
+ 1, 0, 0, 0, 748, 749, 5, 29, 0, 0, 749, 750, 3, 64, 32, 0, 750, 751, 5, 1, 0, 0, 751, 752,
4666
+ 3, 10, 5, 0, 752, 131, 1, 0, 0, 0, 753, 754, 5, 27, 0, 0, 754, 759, 5, 59, 0, 0, 755, 756,
4667
+ 5, 2, 0, 0, 756, 758, 5, 59, 0, 0, 757, 755, 1, 0, 0, 0, 758, 761, 1, 0, 0, 0, 759, 757,
4668
+ 1, 0, 0, 0, 759, 760, 1, 0, 0, 0, 760, 762, 1, 0, 0, 0, 761, 759, 1, 0, 0, 0, 762, 763,
4669
+ 5, 28, 0, 0, 763, 764, 3, 64, 32, 0, 764, 765, 5, 1, 0, 0, 765, 766, 3, 10, 5, 0, 766,
4670
+ 133, 1, 0, 0, 0, 767, 768, 5, 8, 0, 0, 768, 769, 5, 1, 0, 0, 769, 774, 3, 64, 32, 0, 770,
4671
+ 771, 5, 2, 0, 0, 771, 773, 3, 64, 32, 0, 772, 770, 1, 0, 0, 0, 773, 776, 1, 0, 0, 0, 774,
4672
+ 772, 1, 0, 0, 0, 774, 775, 1, 0, 0, 0, 775, 777, 1, 0, 0, 0, 776, 774, 1, 0, 0, 0, 777,
4673
+ 778, 5, 1, 0, 0, 778, 779, 3, 138, 69, 0, 779, 135, 1, 0, 0, 0, 780, 781, 7, 15, 0, 0,
4674
+ 781, 137, 1, 0, 0, 0, 782, 783, 5, 67, 0, 0, 783, 786, 5, 69, 0, 0, 784, 787, 5, 67, 0,
4675
+ 0, 785, 787, 3, 140, 70, 0, 786, 784, 1, 0, 0, 0, 786, 785, 1, 0, 0, 0, 787, 788, 1, 0,
4676
+ 0, 0, 788, 786, 1, 0, 0, 0, 788, 789, 1, 0, 0, 0, 789, 790, 1, 0, 0, 0, 790, 791, 5, 70,
4677
+ 0, 0, 791, 139, 1, 0, 0, 0, 792, 796, 3, 142, 71, 0, 793, 796, 3, 146, 73, 0, 794, 796,
4678
+ 3, 144, 72, 0, 795, 792, 1, 0, 0, 0, 795, 793, 1, 0, 0, 0, 795, 794, 1, 0, 0, 0, 796, 141,
4679
+ 1, 0, 0, 0, 797, 798, 3, 136, 68, 0, 798, 799, 5, 1, 0, 0, 799, 807, 3, 64, 32, 0, 800,
4680
+ 801, 5, 2, 0, 0, 801, 802, 3, 136, 68, 0, 802, 803, 5, 1, 0, 0, 803, 804, 3, 64, 32, 0,
4681
+ 804, 806, 1, 0, 0, 0, 805, 800, 1, 0, 0, 0, 806, 809, 1, 0, 0, 0, 807, 805, 1, 0, 0, 0,
4682
+ 807, 808, 1, 0, 0, 0, 808, 814, 1, 0, 0, 0, 809, 807, 1, 0, 0, 0, 810, 811, 5, 2, 0, 0,
4683
+ 811, 813, 3, 136, 68, 0, 812, 810, 1, 0, 0, 0, 813, 816, 1, 0, 0, 0, 814, 812, 1, 0, 0,
4684
+ 0, 814, 815, 1, 0, 0, 0, 815, 817, 1, 0, 0, 0, 816, 814, 1, 0, 0, 0, 817, 827, 5, 1, 0,
4685
+ 0, 818, 828, 3, 138, 69, 0, 819, 824, 3, 64, 32, 0, 820, 821, 5, 2, 0, 0, 821, 823, 3,
4686
+ 64, 32, 0, 822, 820, 1, 0, 0, 0, 823, 826, 1, 0, 0, 0, 824, 822, 1, 0, 0, 0, 824, 825,
4687
+ 1, 0, 0, 0, 825, 828, 1, 0, 0, 0, 826, 824, 1, 0, 0, 0, 827, 818, 1, 0, 0, 0, 827, 819,
4688
+ 1, 0, 0, 0, 828, 143, 1, 0, 0, 0, 829, 830, 3, 136, 68, 0, 830, 831, 5, 1, 0, 0, 831, 832,
4689
+ 3, 138, 69, 0, 832, 145, 1, 0, 0, 0, 833, 834, 3, 136, 68, 0, 834, 835, 5, 1, 0, 0, 835,
4690
+ 840, 3, 64, 32, 0, 836, 837, 5, 2, 0, 0, 837, 839, 3, 64, 32, 0, 838, 836, 1, 0, 0, 0,
4691
+ 839, 842, 1, 0, 0, 0, 840, 838, 1, 0, 0, 0, 840, 841, 1, 0, 0, 0, 841, 147, 1, 0, 0, 0,
4692
+ 842, 840, 1, 0, 0, 0, 843, 844, 5, 54, 0, 0, 844, 845, 5, 59, 0, 0, 845, 149, 1, 0, 0,
4693
+ 0, 94, 152, 154, 159, 161, 179, 186, 190, 198, 204, 206, 220, 222, 237, 241, 246,
4694
+ 250, 258, 271, 282, 290, 292, 303, 313, 315, 321, 328, 335, 339, 345, 363, 370,
4695
+ 378, 381, 399, 409, 429, 431, 439, 447, 455, 457, 463, 470, 479, 491, 494, 500,
4696
+ 505, 509, 517, 520, 526, 529, 533, 549, 551, 559, 561, 570, 583, 585, 593, 595,
4697
+ 601, 609, 617, 625, 631, 645, 648, 653, 656, 662, 671, 676, 684, 689, 696, 706,
4698
+ 710, 712, 718, 732, 736, 759, 774, 786, 788, 795, 807, 814, 824, 827, 840
4593
4699
  ];
4594
4700
  static __ATN;
4595
4701
  static get _ATN() {
@@ -6416,6 +6522,7 @@ export class GraphicForExprContext extends Graphic_exprContext {
6416
6522
  }
6417
6523
  }
6418
6524
  export class Property_exprContext extends antlr.ParserRuleContext {
6525
+ _extra;
6419
6526
  constructor(parent, invokingState) {
6420
6527
  super(parent, invokingState);
6421
6528
  }
@@ -6425,6 +6532,14 @@ export class Property_exprContext extends antlr.ParserRuleContext {
6425
6532
  property_value_expr() {
6426
6533
  return this.getRuleContext(0, Property_value_exprContext);
6427
6534
  }
6535
+ STRING_VALUE(i) {
6536
+ if (i === undefined) {
6537
+ return this.getTokens(CircuitScriptParser.STRING_VALUE);
6538
+ }
6539
+ else {
6540
+ return this.getToken(CircuitScriptParser.STRING_VALUE, i);
6541
+ }
6542
+ }
6428
6543
  get ruleIndex() {
6429
6544
  return CircuitScriptParser.RULE_property_expr;
6430
6545
  }
@@ -6666,6 +6781,9 @@ export class Import_specificContext extends Import_exprContext {
6666
6781
  return this.getToken(CircuitScriptParser.ID, i);
6667
6782
  }
6668
6783
  }
6784
+ import_annotation_expr() {
6785
+ return this.getRuleContext(0, Import_annotation_exprContext);
6786
+ }
6669
6787
  accept(visitor) {
6670
6788
  if (visitor.visitImport_specific) {
6671
6789
  return visitor.visitImport_specific(this);
@@ -6693,6 +6811,9 @@ export class Import_all_simpleContext extends Import_exprContext {
6693
6811
  ID() {
6694
6812
  return this.getToken(CircuitScriptParser.ID, 0);
6695
6813
  }
6814
+ import_annotation_expr() {
6815
+ return this.getRuleContext(0, Import_annotation_exprContext);
6816
+ }
6696
6817
  accept(visitor) {
6697
6818
  if (visitor.visitImport_all_simple) {
6698
6819
  return visitor.visitImport_all_simple(this);
@@ -6714,6 +6835,9 @@ export class Import_simpleContext extends Import_exprContext {
6714
6835
  ID() {
6715
6836
  return this.getToken(CircuitScriptParser.ID, 0);
6716
6837
  }
6838
+ import_annotation_expr() {
6839
+ return this.getRuleContext(0, Import_annotation_exprContext);
6840
+ }
6717
6841
  accept(visitor) {
6718
6842
  if (visitor.visitImport_simple) {
6719
6843
  return visitor.visitImport_simple(this);
@@ -6723,6 +6847,41 @@ export class Import_simpleContext extends Import_exprContext {
6723
6847
  }
6724
6848
  }
6725
6849
  }
6850
+ export class Import_annotation_exprContext extends antlr.ParserRuleContext {
6851
+ constructor(parent, invokingState) {
6852
+ super(parent, invokingState);
6853
+ }
6854
+ ANNOTATION_START() {
6855
+ return this.getToken(CircuitScriptParser.ANNOTATION_START, 0);
6856
+ }
6857
+ ID(i) {
6858
+ if (i === undefined) {
6859
+ return this.getTokens(CircuitScriptParser.ID);
6860
+ }
6861
+ else {
6862
+ return this.getToken(CircuitScriptParser.ID, i);
6863
+ }
6864
+ }
6865
+ Minus(i) {
6866
+ if (i === undefined) {
6867
+ return this.getTokens(CircuitScriptParser.Minus);
6868
+ }
6869
+ else {
6870
+ return this.getToken(CircuitScriptParser.Minus, i);
6871
+ }
6872
+ }
6873
+ get ruleIndex() {
6874
+ return CircuitScriptParser.RULE_import_annotation_expr;
6875
+ }
6876
+ accept(visitor) {
6877
+ if (visitor.visitImport_annotation_expr) {
6878
+ return visitor.visitImport_annotation_expr(this);
6879
+ }
6880
+ else {
6881
+ return visitor.visitChildren(this);
6882
+ }
6883
+ }
6884
+ }
6726
6885
  export class Frame_exprContext extends antlr.ParserRuleContext {
6727
6886
  constructor(parent, invokingState) {
6728
6887
  super(parent, invokingState);