forked from joskid/continuum
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontinuum.min.js
1191 lines (1190 loc) · 423 KB
/
continuum.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
continuum=function(e,c,a,d,b){return c.esprima=function(a){return function(b){'use strict',typeof define==='function'&&define.amd?define(['exports'],b):typeof a!=='undefined'?b(a):b(window.esprima={});}(function(r){function assert(a,b){if(!a)throw new Error('ASSERT: '+b);}function sliceSource(a,b){return g.slice(a,b);}function isDecimalDigit(a){return'0123456789'.indexOf(a)>=0;}function isHexDigit(a){return'0123456789abcdefABCDEF'.indexOf(a)>=0;}function isOctalDigit(a){return'01234567'.indexOf(a)>=0;}function isWhiteSpace(a){return a===' '||a==='\t'||a==='\v'||a==='\f'||a==='\xa0'||a.charCodeAt(0)>=5760&&'\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\ufeff'.indexOf(a)>=0;}function isLineTerminator(a){return a==='\n'||a==='\r'||a==='\u2028'||a==='\u2029';}function isIdentifierStart(a){return a==='$'||a==='_'||a==='\\'||a>='a'&&a<='z'||a>='A'&&a<='Z'||a.charCodeAt(0)>=128&&s.NonAsciiIdentifierStart.test(a);}function isIdentifierPart(a){return a==='$'||a==='_'||a==='\\'||a>='a'&&a<='z'||a>='A'&&a<='Z'||a>='0'&&a<='9'||a.charCodeAt(0)>=128&&s.NonAsciiIdentifierPart.test(a);}function isFutureReservedWord(a){switch(a){case'class':case'enum':case'export':case'extends':case'import':case'super':return!0;}return!1;}function isStrictModeReservedWord(a){switch(a){case'implements':case'interface':case'package':case'private':case'protected':case'public':case'static':case'yield':case'let':return!0;}return!1;}function isRestrictedWord(a){return a==='eval'||a==='arguments';}function isKeyword(a){var b=!1;
switch(id.length){case 2:b=a==='if'||a==='in'||a==='do';break;case 3:b=a==='var'||a==='for'||a==='new'||a==='try';break;case 4:b=a==='this'||a==='else'||a==='case'||a==='void'||a==='with';break;case 5:b=a==='while'||a==='break'||a==='catch'||a==='throw';break;case 6:b=a==='return'||a==='typeof'||a==='delete'||a==='switch'||a==='public';break;case 7:b=a==='default'||a==='finally'||a==='private';break;case 8:b=a==='function'||a==='continue'||a==='debugger';break;case 10:b=a==='instanceof';break;}if(b)return!0;switch(a){case'const':return!0;case'yield':case'let':return!0;}return l&&isStrictModeReservedWord(a)?!0:isFutureReservedWord(a);}function nextChar(){return g[a++];}function skipComment(){var b, c, d;
c=!1,d=!1;while(a<k){b=g[a];if(d)b=nextChar(),isLineTerminator(b)&&(d=!1,b==='\r'&&g[a]==='\n'&&++a,++i,j=a);else if(c)isLineTerminator(b)?(b==='\r'&&g[a+1]==='\n'&&++a,++i,++a,j=a,a>=k&&throwError({},e.UnexpectedToken,'ILLEGAL')):(b=nextChar(),a>=k&&throwError({},e.UnexpectedToken,'ILLEGAL'),b==='*'&&(b=g[a],b==='/'&&(++a,c=!1)));else if(b==='/'){b=g[a+1];if(b==='/')a+=2,d=!0;else if(b==='*')a+=2,c=!0,a>=k&&throwError({},e.UnexpectedToken,'ILLEGAL');else break;}else if(isWhiteSpace(b))++a;else if(isLineTerminator(b))++a,b==='\r'&&g[a]==='\n'&&++a,++i,j=a;else break;}}function scanHexEscape(f){var b, d, e, c=0;
d=f==='u'?4:2;for(b=0;b<d;++b)if(a<k&&isHexDigit(g[a]))e=nextChar(),c=c*16+'0123456789abcdef'.indexOf(e.toLowerCase());else return'';return String.fromCharCode(c);}function scanUnicodeCodePointEscape(){var c, b, d, f;
c=g[a],b=0,c==='}'&&throwError({},e.UnexpectedToken,'ILLEGAL');while(a<k){c=nextChar();if(!isHexDigit(c))break;b=b*16+'0123456789abcdef'.indexOf(c.toLowerCase());}return(b>1114111||c!=='}')&&throwError({},e.UnexpectedToken,'ILLEGAL'),b<=65535?String.fromCharCode(b):(d=(b-65536>>10)+55296,f=(b-65536&1023)+56320,String.fromCharCode(d,f));}function scanIdentifier(){var b, h, d, c, e, l;
b=g[a],b==='@'&&(h=!0,b=g[++a],b==='@'&&(l=!0,b=g[++a]));if(!isIdentifierStart(b))return;d=a;if(b==='\\'){++a;if(g[a]!=='u')return;++a,e=a,b=scanHexEscape('u');if(b){if(b==='\\'||!isIdentifierStart(b))return;c=b;}else a=e,c='u';}else c=nextChar();while(a<k){b=g[a];if(!isIdentifierPart(b))break;if(b==='\\'){++a;if(g[a]!=='u')return;++a,e=a,b=scanHexEscape('u');if(b){if(b==='\\'||!isIdentifierPart(b))return;c+=b;}else a=e,c+='u';}else c+=nextChar();}return h?{ type:f.AtSymbol, value:c, lineNumber:i, lineStart:j, internal:l, range:[d, a] }:c.length===1?{ type:f.Identifier, value:c, lineNumber:i, lineStart:j, range:[d, a] }:isKeyword(c)?{ type:f.Keyword, value:c, lineNumber:i, lineStart:j, range:[d, a] }:c==='null'?{ type:f.NullLiteral, value:c, lineNumber:i, lineStart:j, range:[d, a] }:c==='true'||c==='false'?{ type:f.BooleanLiteral, value:c, lineNumber:i, lineStart:j, range:[d, a] }:{ type:f.Identifier, value:c, lineNumber:i, lineStart:j, range:[d, a] };}function scanPunctuator(){var d=a, b=g[a], c, e, h;
if(b===';'||b==='{'||b==='}')return++a,{ type:f.Punctuator, value:b, lineNumber:i, lineStart:j, range:[d, a] };if(b===','||b==='('||b===')')return++a,{ type:f.Punctuator, value:b, lineNumber:i, lineStart:j, range:[d, a] };c=g[a+1];if(b==='.'&&!isDecimalDigit(c)&&c!=='.')return{ type:f.Punctuator, value:nextChar(), lineNumber:i, lineStart:j, range:[d, a] };e=g[a+2],h=g[a+3];if(b==='>'&&c==='>'&&e==='>'&&h==='=')return a+=4,{ type:f.Punctuator, value:'>>>=', lineNumber:i, lineStart:j, range:[d, a] };if(b==='='&&c==='='&&e==='=')return a+=3,{ type:f.Punctuator, value:'===', lineNumber:i, lineStart:j, range:[d, a] };if(b==='!'&&c==='='&&e==='=')return a+=3,{ type:f.Punctuator, value:'!==', lineNumber:i, lineStart:j, range:[d, a] };if(b==='>'&&c==='>'&&e==='>')return a+=3,{ type:f.Punctuator, value:'>>>', lineNumber:i, lineStart:j, range:[d, a] };if(b==='<'&&c==='<'&&e==='=')return a+=3,{ type:f.Punctuator, value:'<<=', lineNumber:i, lineStart:j, range:[d, a] };if(b==='>'&&c==='>'&&e==='=')return a+=3,{ type:f.Punctuator, value:'>>=', lineNumber:i, lineStart:j, range:[d, a] };if(b==='.'&&c==='.'&&e==='.')return a+=3,{ type:f.Punctuator, value:'...', lineNumber:i, lineStart:j, range:[d, a] };if(c==='='&&'<>=!+-*%&|^/'.indexOf(b)>=0)return a+=2,{ type:f.Punctuator, value:b+c, lineNumber:i, lineStart:j, range:[d, a] };if(b===c&&'+-<>&|'.indexOf(b)>=0&&'+-<>&|'.indexOf(c)>=0)return a+=2,{ type:f.Punctuator, value:b+c, lineNumber:i, lineStart:j, range:[d, a] };if(b==='='&&c==='>')return a+=2,{ type:f.Punctuator, value:'=>', lineNumber:i, lineStart:j, range:[d, a] };if('[]<>+-*%&|^!~?:=/'.indexOf(b)>=0)return{ type:f.Punctuator, value:nextChar(), lineNumber:i, lineStart:j, range:[d, a] };}function scanNumericLiteral(){var c, d, b, h;
b=g[a],assert(isDecimalDigit(b)||b==='.','Numeric literal must start with a decimal digit or a decimal point'),d=a,c='';if(b!=='.'){c=nextChar(),b=g[a];if(c==='0'){if(b==='x'||b==='X'){c+=nextChar();while(a<k){b=g[a];if(!isHexDigit(b))break;c+=nextChar();}return c.length<=2&&throwError({},e.UnexpectedToken,'ILLEGAL'),a<k&&(b=g[a],isIdentifierStart(b)&&throwError({},e.UnexpectedToken,'ILLEGAL')),{ type:f.NumericLiteral, value:parseInt(c,16), lineNumber:i, lineStart:j, range:[d, a] };}else if(b==='b'||b==='B'){nextChar(),c='';while(a<k){b=g[a];if(b!=='0'&&b!=='1')break;c+=nextChar();}return c.length===0&&throwError({},e.UnexpectedToken,'ILLEGAL'),a<k&&(b=g[a],(isIdentifierStart(b)||isDecimalDigit(b))&&throwError({},e.UnexpectedToken,'ILLEGAL')),{ type:f.NumericLiteral, value:parseInt(c,2), lineNumber:i, lineStart:j, range:[d, a] };}else if(b==='o'||b==='O'||isOctalDigit(b)){isOctalDigit(b)?(h=!0,c=nextChar()):(h=!1,nextChar(),c='');while(a<k){b=g[a];if(!isOctalDigit(b))break;c+=nextChar();}return c.length===0&&throwError({},e.UnexpectedToken,'ILLEGAL'),a<k&&(b=g[a],(isIdentifierStart(b)||isDecimalDigit(b))&&throwError({},e.UnexpectedToken,'ILLEGAL')),{ type:f.NumericLiteral, value:parseInt(c,8), octal:h, lineNumber:i, lineStart:j, range:[d, a] };}isDecimalDigit(b)&&throwError({},e.UnexpectedToken,'ILLEGAL');}while(a<k){b=g[a];if(!isDecimalDigit(b))break;c+=nextChar();}}if(b==='.'){c+=nextChar();while(a<k){b=g[a];if(!isDecimalDigit(b))break;c+=nextChar();}}if(b==='e'||b==='E'){c+=nextChar(),b=g[a],(b==='+'||b==='-')&&(c+=nextChar()),b=g[a];if(isDecimalDigit(b)){c+=nextChar();while(a<k){b=g[a];if(!isDecimalDigit(b))break;c+=nextChar();}}else b='character '+b,a>=k&&(b='<end>'),throwError({},e.UnexpectedToken,'ILLEGAL');}return a<k&&(b=g[a],isIdentifierStart(b)&&throwError({},e.UnexpectedToken,'ILLEGAL')),{ type:f.NumericLiteral, value:parseFloat(c), lineNumber:i, lineStart:j, range:[d, a] };}function scanStringLiteral(){var c='', h, n, b, d, l, o, m=!1;
h=g[a],assert(h==='\''||h==='"','String literal must starts with a quote'),n=a,++a;while(a<k){b=nextChar();if(b===h){h='';break;}if(b==='\\'){b=nextChar();if(!isLineTerminator(b))switch(b){case'n':c+='\n';break;case'r':c+='\r';break;case't':c+='\t';break;case'u':case'x':g[a]==='{'?(++a,c+=scanUnicodeCodePointEscape()):(o=a,l=scanHexEscape(b),l?c+=l:(a=o,c+=b));break;case'b':c+='\b';break;case'f':c+='\f';break;case'v':c+='\v';break;default:isOctalDigit(b)?(d='01234567'.indexOf(b),d!==0&&(m=!0),a<k&&isOctalDigit(g[a])&&(m=!0,d=d*8+'01234567'.indexOf(nextChar()),'0123'.indexOf(b)>=0&&a<k&&isOctalDigit(g[a])&&(d=d*8+'01234567'.indexOf(nextChar()))),c+=String.fromCharCode(d)):c+=b;break;}else++i,b==='\r'&&g[a]==='\n'&&++a;}else if(isLineTerminator(b))break;else c+=b;}return h!==''&&throwError({},e.UnexpectedToken,'ILLEGAL'),{ type:f.StringLiteral, value:c, octal:m, lineNumber:i, lineStart:j, range:[n, a] };}function scanTemplate(){var c='', b, m, h, l, p, n, d, o;
h=!1,l=!1,m=a,++a;while(a<k){b=nextChar();if(b==='`'){l=!0,h=!0;break;}if(b==='$'){if(g[a]==='{'){++a,h=!0;break;}c+=b;}else if(b==='\\'){b=nextChar();if(!isLineTerminator(b))switch(b){case'n':c+='\n';break;case'r':c+='\r';break;case't':c+='\t';break;case'u':case'x':g[a]==='{'?(++a,c+=scanUnicodeCodePointEscape()):(p=a,n=scanHexEscape(b),n?c+=n:(a=p,c+=b));break;case'b':c+='\b';break;case'f':c+='\f';break;case'v':c+='\v';break;default:isOctalDigit(b)?(d='01234567'.indexOf(b),d!==0&&(o=!0),a<k&&isOctalDigit(g[a])&&(o=!0,d=d*8+'01234567'.indexOf(nextChar()),'0123'.indexOf(b)>=0&&a<k&&isOctalDigit(g[a])&&(d=d*8+'01234567'.indexOf(nextChar()))),c+=String.fromCharCode(d)):c+=b;break;}else++i,b==='\r'&&g[a]==='\n'&&++a;}else isLineTerminator(b)?(++i,b==='\r'&&g[a]==='\n'&&++a):c+=b;}return!h&&throwError({},e.UnexpectedToken,'ILLEGAL'),{type:f.Template,value:{ cooked:c, raw:sliceSource(m+1,a-(l?1:2)) },tail:l,octal:o,lineNumber:i,lineStart:j,range:[m, a]};}function scanTemplateElement(c){var b;
return n=null,skipComment(),b=c.head?'`':'}',g[a]!==b&&throwError({},e.UnexpectedToken,'ILLEGAL'),scanTemplate();}function scanRegExp(){var c='', b, i, j, d, l, h=!1, f, m=!1;
n=null,skipComment(),i=a,b=g[a],assert(b==='/','Regular expression literal must start with a slash'),c=nextChar();while(a<k){b=nextChar(),c+=b;if(h)b===']'&&(h=!1);else if(b==='\\')b=nextChar(),isLineTerminator(b)&&throwError({},e.UnterminatedRegExp),c+=b;else if(b==='/'){m=!0;break;}else b==='['?h=!0:isLineTerminator(b)&&throwError({},e.UnterminatedRegExp);}!m&&throwError({},e.UnterminatedRegExp),j=c.substr(1,c.length-2),d='';while(a<k){b=g[a];if(!isIdentifierPart(b))break;++a;if(b==='\\'&&a<k){b=g[a];if(b==='u'){++a,f=a,b=scanHexEscape('u');if(b){d+=b,c+='\\u';for(;f<a;++f)c+=g[f];}else a=f,d+='u',c+='\\u';}else c+='\\';}else d+=b,c+=b;}try{l=new RegExp(j,d);}catch(a){throwError({},e.InvalidRegExp);}return{ literal:c, value:l, range:[i, a] };}function isIdentifierName(a){return a.type===f.Identifier||a.type===f.Keyword||a.type===f.BooleanLiteral||a.type===f.NullLiteral||a.type===f.AtSymbol;}function advance(){var b, c;
skipComment();if(a>=k)return{ type:f.EOF, lineNumber:i, lineStart:j, range:[a, a] };c=scanPunctuator();if(typeof c!=='undefined')return c;b=g[a];if(b==='\''||b==='"')return scanStringLiteral();if(b==='.'||isDecimalDigit(b))return scanNumericLiteral();if(b==='`')return scanTemplate();c=scanIdentifier();if(typeof c!=='undefined')return c;throwError({},e.UnexpectedToken,'ILLEGAL');}function lex(){var b;
return n?(a=n.range[1],i=n.lineNumber,j=n.lineStart,b=n,n=null,b):(n=null,advance());}function lookahead(){var b, c, d;
return n!==null?n:(b=a,c=i,d=j,n=advance(),a=b,i=c,j=d,n);}function lookahead2(){var b, d, e, f, g;
return b=typeof c.advance==='function'?c.advance:advance,d=a,e=i,f=j,n===null&&(n=b()),a=n.range[1],i=n.lineNumber,j=n.lineStart,g=b(),a=d,i=e,j=f,g;}function peekLineTerminator(){var c, b, d, e;
return c=a,b=i,d=j,skipComment(),e=i!==b,a=c,i=b,j=d,e;}function throwError(c,e){var b, f=Array.prototype.slice.call(arguments,2), d=e.replace(/%(\d)/g,function(b,a){ return f[a]||''; });
throw typeof c.lineNumber==='number'?(b=new Error('Line '+c.lineNumber+': '+d),b.index=c.range[0],b.lineNumber=c.lineNumber,b.column=c.range[0]-j+1):(b=new Error('Line '+i+': '+d),b.index=a,b.lineNumber=i,b.column=a-j+1),b;}function throwErrorTolerant(){try{throwError.apply(null,arguments);}catch(a){if(!c.errors)throw a;c.errors.push(a);}}function throwUnexpected(a){a.type===f.EOF&&throwError(a,e.UnexpectedEOS),a.type===f.NumericLiteral&&throwError(a,e.UnexpectedNumber),a.type===f.StringLiteral&&throwError(a,e.UnexpectedString),a.type===f.Identifier&&throwError(a,e.UnexpectedIdentifier);if(a.type===f.Keyword){if(isFutureReservedWord(a.value))throwError(a,e.UnexpectedReserved);else if(l&&isStrictModeReservedWord(a.value)){throwErrorTolerant(a,e.StrictReservedWord);return;}throwError(a,e.UnexpectedToken,a.value);}a.type===f.Template&&throwError(a,e.UnexpectedTemplate,a.value.raw),a.type===f.AtSymbol&&throwError(a,e.UnexpectedIdentifier),throwError(a,e.UnexpectedToken,a.value);}function expect(b){var a=lex();
(a.type!==f.Punctuator||a.value!==b)&&throwUnexpected(a);}function expectKeyword(b){var a=lex();
(a.type!==f.Keyword||a.value!==b)&&throwUnexpected(a);}function match(b){var a=lookahead();
return a.type===f.Punctuator&&a.value===b;}function matchKeyword(b){var a=lookahead();
return a.type===f.Keyword&&a.value===b;}function matchContextualKeyword(b){var a=lookahead();
return a.value===b&&a.type===f.Identifier||a.type===f.AtSymbol;}function matchAssign(){var b=lookahead(), a=b.value;
return b.type!==f.Punctuator?!1:a==='='||a==='*='||a==='/='||a==='%='||a==='+='||a==='-='||a==='<<='||a==='>>='||a==='>>>='||a==='&='||a==='^='||a==='|=';}function consumeSemicolon(){var b, c;
if(g[a]===';'){lex();return;}c=i,skipComment();if(i!==c)return;if(match(';')){lex();return;}b=lookahead(),b.type!==f.EOF&&!match('}')&&throwUnexpected(b);return;}function isLeftHandSide(a){return a.type===d.Identifier||a.type===d.MemberExpression;}function isAssignableLeftHandSide(a){return isLeftHandSide(a)||a.type===d.ObjectPattern||a.type===d.ArrayPattern;}function parseArrayInitialiser(){var b=[], c=[], g=null, h, a, f=!0, i;
expect('[');while(!match(']')){h=lookahead();switch(token.value){case'for':!f&&throwError({},e.ComprehensionError);matchKeyword('for');a=parseForStatement({ ignore_body:!0 });a.of=a.type===d.ForOfStatement;a.type=d.ComprehensionBlock;a.left.kind&&throwError({},e.ComprehensionError);c.push(a);break;case'if':!f&&throwError({},e.ComprehensionError);expectKeyword('if');expect('(');g=parseExpression();expect(')');break;case',':f=!1;lex();b.push(null);break;default:a=parseSpreadOrAssignmentExpression();b.push(a);a&&a.type===d.SpreadElement?!match(']')&&throwError({},e.ElementAfterSpreadElement):!(match(']')||matchKeyword('for')||matchKeyword('if'))&&(expect(','),f=!1);}}return expect(']'),g&&!c.length&&throwError({},e.ComprehensionRequiresBlock),c.length?(b.length!==1&&throwError({},e.ComprehensionError),{ type:d.ComprehensionExpression, filter:g, blocks:c, body:b[0] }):{ type:d.ArrayExpression, elements:b };}function parsePropertyFunction(a){var f, g, b, c;
return f=l,g=m,m=a.generator,b=a.params||[],c=parseConciseBody(),a.name&&l&&isRestrictedWord(b[0].name)&&throwErrorTolerant(a.name,e.StrictParamName),m&&!q&&throwError({},e.NoYieldInGenerator),l=f,m=g,{type:d.FunctionExpression,id:null,params:b,defaults:a.defaults||[],body:c,rest:a.rest||null,generator:a.generator,expression:c.type!==d.BlockStatement};}function parsePropertyMethodFunction(d){var e, b, a, c, f, g;
return b=l,l=!0,a=parseParams(),a.firstRestricted&&throwError(a.firstRestricted,a.message),a.stricted&&throwErrorTolerant(a.stricted,a.message),c=parsePropertyFunction({ defaults:a.defaults, params:a.params, rest:a.rest, generator:d.generator }),l=b,c;}function parseObjectPropertyKey(){var a=lex();
return a.type===f.StringLiteral||a.type===f.NumericLiteral?(l&&a.octal&&throwErrorTolerant(a,e.StrictOctalLiteral),createLiteral(a)):a.type===f.AtSymbol?a.internal?{ internal:!0, type:d.AtSymbol, name:a.value }:{ type:d.AtSymbol, name:a.value }:{ type:d.Identifier, name:a.value };}function parseObjectProperty(){var a, b, c, e;
a=lookahead();if(a.type===f.Identifier||a.type===f.AtSymbol)return c=parseObjectPropertyKey(),a.value==='get'&&!(match(':')||match('('))?(b=parseObjectPropertyKey(),expect('('),expect(')'),{ type:d.Property, key:b, value:parsePropertyFunction({ generator:!1 }), kind:'get' }):a.value==='set'&&!(match(':')||match('('))?(b=parseObjectPropertyKey(),e=parseParams(),e.name=a,e.generator=!1,{ type:d.Property, key:b, value:parsePropertyFunction(e), kind:'set' }):match(':')?(lex(),{ type:d.Property, key:c, value:parseAssignmentExpression(), kind:'init' }):match('(')?{ type:d.Property, key:c, value:parsePropertyMethodFunction({ generator:!1 }), kind:'init', method:!0 }:{ type:d.Property, key:c, value:c, kind:'init', shorthand:!0 };if(a.type===f.EOF||a.type===f.Punctuator)return!match('*')&&throwUnexpected(a),lex(),c=parseObjectPropertyKey(),!match('(')&&throwUnexpected(lex()),{ type:d.Property, key:c, value:parsePropertyMethodFunction({ generator:!0 }), kind:'init', method:!0 };{b=parseObjectPropertyKey();if(match(':'))return lex(),{ type:d.Property, key:b, value:parseAssignmentExpression(), kind:'init' };if(match('('))return{ type:d.Property, key:b, value:parsePropertyMethodFunction({ generator:!1 }), kind:'init', method:!0 };throwUnexpected(lex());}}function parseObjectInitialiser(){var g=[], a, b, c, f={}, h=String;
expect('{');while(!match('}'))a=parseObjectProperty(),a.key.type===d.Identifier||a.key.type===d.AtSymbol?b=a.key.name:b=h(a.key.value),c=a.kind==='init'?p.Data:a.kind==='get'?p.Get:p.Set,Object.prototype.hasOwnProperty.call(f,b)?(f[b]===p.Data?l&&c===p.Data?throwErrorTolerant({},e.StrictDuplicateProperty):c!==p.Data&&throwErrorTolerant({},e.AccessorDataProperty):c===p.Data?throwErrorTolerant({},e.AccessorDataProperty):f[b]&c&&throwErrorTolerant({},e.AccessorGetSet),f[b]|=c):f[b]=c,g.push(a),!match('}')&&expect(',');return expect('}'),{ type:d.ObjectExpression, properties:g };}function parseTemplateElement(b){var a=scanTemplateElement(b);
return l&&a.octal&&throwError(a,e.StrictOctalLiteral),{ type:d.TemplateElement, value:{ raw:a.value.raw, cooked:a.value.cooked }, tail:a.tail };}function parseTemplateLiteral(){var a, b, c;
a=parseTemplateElement({ head:!0 }),b=[a],c=[];while(!a.tail)c.push(parseExpression()),a=parseTemplateElement({ head:!1 }),b.push(a);return{ type:d.TemplateLiteral, templates:b, expressions:c };}function parseGroupExpression(){var a;
return expect('('),++h.parenthesizedCount,h.allowArrowFunction=!h.allowArrowFunction,a=parseExpression(),h.allowArrowFunction=!1,a.type!==d.ArrowFunctionExpression&&expect(')'),a;}function parsePrimaryExpression(){var c, a=lookahead(), b=a.type;
if(b===f.Identifier)return{ type:d.Identifier, name:lex().value };if(b===f.StringLiteral||b===f.NumericLiteral)return l&&a.octal&&throwErrorTolerant(a,e.StrictOctalLiteral),createLiteral(lex());if(b===f.Keyword){if(matchKeyword('this'))return lex(),{ type:d.ThisExpression };if(matchKeyword('function'))return parseFunctionExpression();if(matchKeyword('class'))return parseClassExpression();if(matchKeyword('super'))return lex(),{ type:d.Identifier, name:'super' };}return b===f.BooleanLiteral?(lex(),a.value=a.value==='true',createLiteral(a)):b===f.NullLiteral?(lex(),a.value=null,createLiteral(a)):match('[')?parseArrayInitialiser():match('{')?parseObjectInitialiser():match('(')?parseGroupExpression():match('/')||match('/=')?createLiteral(scanRegExp()):b===f.Template?parseTemplateLiteral():b===f.AtSymbol?{ internal:a.internal, type:d.AtSymbol, name:lex().value }:throwUnexpected(lex());}function parseArguments(){var c=[], b;
expect('(');if(!match(')'))while(a<k){b=parseSpreadOrAssignmentExpression(),c.push(b);if(match(')'))break;b.type===d.SpreadElement&&throwError({},e.ElementAfterSpreadElement),expect(',');}return expect(')'),c;}function parseSpreadOrAssignmentExpression(){return match('...')?(lex(),{ type:d.SpreadElement, argument:parseAssignmentExpression() }):parseAssignmentExpression();}function parseNonComputedProperty(){var a=lex();
return!isIdentifierName(a)&&throwUnexpected(a),a.type===f.AtSymbol?{ internal:a.internal, type:d.AtSymbol, name:a.value }:{ type:d.Identifier, name:a.value };}function parseNonComputedMember(){return expect('.'),parseNonComputedProperty();}function parseComputedMember(){var a;
return expect('['),a=parseExpression(),expect(']'),a;}function parseNewExpression(){var a;
return expectKeyword('new'),a={ type:d.NewExpression, callee:parseLeftHandSideExpression(), 'arguments':[] },match('(')&&(a['arguments']=parseArguments()),a;}function parseLeftHandSideExpressionAllowCall(){var a;
a=matchKeyword('new')?parseNewExpression():parsePrimaryExpression();while(match('.')||match('[')||match('(')||lookahead().type===f.Template)match('(')?a={ type:d.CallExpression, callee:a, 'arguments':parseArguments() }:match('[')?a={ type:d.MemberExpression, computed:!0, object:a, property:parseComputedMember() }:match('.')?a={ type:d.MemberExpression, computed:!1, object:a, property:parseNonComputedMember() }:a={ type:d.TaggedTemplateExpression, tag:a, template:parseTemplateLiteral() };return a;}function parseLeftHandSideExpression(){var a;
a=matchKeyword('new')?parseNewExpression():parsePrimaryExpression();while(match('.')||match('[')||lookahead().type===f.Template)match('[')?a={ type:d.MemberExpression, computed:!0, object:a, property:parseComputedMember() }:match('.')?a={ type:d.MemberExpression, computed:!1, object:a, property:parseNonComputedMember() }:a={ type:d.TaggedTemplateExpression, tag:a, template:parseTemplateLiteral() };return a;}function parsePostfixExpression(){var a=parseLeftHandSideExpressionAllowCall(), b=lookahead();
return b.type!==f.Punctuator?a:((match('++')||match('--'))&&!peekLineTerminator()&&(l&&a.type===d.Identifier&&isRestrictedWord(a.name)&&throwErrorTolerant({},e.StrictLHSPostfix),!isLeftHandSide(a)&&throwError({},e.InvalidLHSInAssignment),a={ type:d.UpdateExpression, operator:lex().value, argument:a, prefix:!1 }),a);}function parseUnaryExpression(){var b, a;
return b=lookahead(),b.type!==f.Punctuator&&b.type!==f.Keyword?parsePostfixExpression():match('++')||match('--')?(b=lex(),a=parseUnaryExpression(),l&&a.type===d.Identifier&&isRestrictedWord(a.name)&&throwErrorTolerant({},e.StrictLHSPrefix),!isLeftHandSide(a)&&throwError({},e.InvalidLHSInAssignment),a={ type:d.UpdateExpression, operator:b.value, argument:a, prefix:!0 },a):match('+')||match('-')||match('~')||match('!')?(a={ type:d.UnaryExpression, operator:lex().value, argument:parseUnaryExpression() },a):matchKeyword('delete')||matchKeyword('void')||matchKeyword('typeof')?(a={ type:d.UnaryExpression, operator:lex().value, argument:parseUnaryExpression() },l&&a.operator==='delete'&&a.argument.type===d.Identifier&&throwErrorTolerant({},e.StrictDelete),a):parsePostfixExpression();}function parseMultiplicativeExpression(){var a=parseUnaryExpression();
while(match('*')||match('/')||match('%'))a={ type:d.BinaryExpression, operator:lex().value, left:a, right:parseUnaryExpression() };return a;}function parseAdditiveExpression(){var a=parseMultiplicativeExpression();
while(match('+')||match('-'))a={ type:d.BinaryExpression, operator:lex().value, left:a, right:parseMultiplicativeExpression() };return a;}function parseShiftExpression(){var a=parseAdditiveExpression();
while(match('<<')||match('>>')||match('>>>'))a={ type:d.BinaryExpression, operator:lex().value, left:a, right:parseAdditiveExpression() };return a;}function parseRelationalExpression(){var a, b;
b=h.allowIn,h.allowIn=!0,a=parseShiftExpression();while(match('<')||match('>')||match('<=')||match('>=')||b&&matchKeyword('in')||matchKeyword('instanceof'))a={ type:d.BinaryExpression, operator:lex().value, left:a, right:parseShiftExpression() };return h.allowIn=b,a;}function parseEqualityExpression(){var a=parseRelationalExpression();
while(!peekLineTerminator()&&(matchContextualKeyword('is')||matchContextualKeyword('isnt'))||match('==')||match('!=')||match('===')||match('!=='))a={ type:d.BinaryExpression, operator:lex().value, left:a, right:parseRelationalExpression() };return a;}function parseBitwiseANDExpression(){var a=parseEqualityExpression();
while(match('&'))lex(),a={ type:d.BinaryExpression, operator:'&', left:a, right:parseEqualityExpression() };return a;}function parseBitwiseXORExpression(){var a=parseBitwiseANDExpression();
while(match('^'))lex(),a={ type:d.BinaryExpression, operator:'^', left:a, right:parseBitwiseANDExpression() };return a;}function parseBitwiseORExpression(){var a=parseBitwiseXORExpression();
while(match('|'))lex(),a={ type:d.BinaryExpression, operator:'|', left:a, right:parseBitwiseXORExpression() };return a;}function parseLogicalANDExpression(){var a=parseBitwiseORExpression();
while(match('&&'))lex(),a={ type:d.LogicalExpression, operator:'&&', left:a, right:parseBitwiseORExpression() };return a;}function parseLogicalORExpression(){var a=parseLogicalANDExpression();
while(match('||'))lex(),a={ type:d.LogicalExpression, operator:'||', left:a, right:parseLogicalANDExpression() };return a;}function parseConditionalExpression(){var a, b, c;
return a=parseLogicalORExpression(),match('?')&&(lex(),b=h.allowIn,h.allowIn=!0,c=parseAssignmentExpression(),h.allowIn=b,expect(':'),a={ type:d.ConditionalExpression, test:a, consequent:c, alternate:parseAssignmentExpression() }),a;}function reinterpretAsAssignmentBindingPattern(a){var b, c, f, g;
if(a.type===d.ObjectExpression){a.type=d.ObjectPattern;for(b=0,c=a.properties.length;b<c;b+=1)f=a.properties[b],f.kind!=='init'&&throwError({},e.InvalidLHSInAssignment),reinterpretAsAssignmentBindingPattern(f.value);}else if(a.type===d.ArrayExpression){a.type=d.ArrayPattern;for(b=0,c=a.elements.length;b<c;b+=1)g=a.elements[b],g&&reinterpretAsAssignmentBindingPattern(g);}else a.type===d.Identifier?isRestrictedWord(a.name)&&throwError({},e.InvalidLHSInAssignment):a.type===d.SpreadElement?(reinterpretAsAssignmentBindingPattern(a.argument),a.argument.type===d.ObjectPattern&&throwError({},e.ObjectPatternAsSpread)):a.type!==d.MemberExpression&&a.type!==d.CallExpression&&a.type!==d.NewExpression&&throwError({},e.InvalidLHSInAssignment);}function reinterpretAsDestructuredParameter(f,a){var b, c, g, h;
if(a.type===d.ObjectExpression){a.type=d.ObjectPattern;for(b=0,c=a.properties.length;b<c;b+=1)g=a.properties[b],g.kind!=='init'&&throwError({},e.InvalidLHSInFormalsList),reinterpretAsDestructuredParameter(f,g.value);}else if(a.type===d.ArrayExpression){a.type=d.ArrayPattern;for(b=0,c=a.elements.length;b<c;b+=1)h=a.elements[b],h&&reinterpretAsDestructuredParameter(f,h);}else a.type===d.Identifier?validateParam(f,a,a.name):a.type!==d.MemberExpression&&throwError({},e.InvalidLHSInFormalsList);}function reinterpretAsCoverFormalsList(i){var c, g, a, f, b, h;
f=[],h=null,b={ paramSet:{} };for(c=0,g=i.length;c<g;c+=1){a=i[c];if(a.type===d.Identifier)f.push(a),validateParam(b,a,a.name);else if(a.type===d.ObjectExpression||a.type===d.ArrayExpression)reinterpretAsDestructuredParameter(b,a),f.push(a);else if(a.type===d.SpreadElement)c!==g-1&&throwError({},e.ParameterAfterRestParameter),reinterpretAsDestructuredParameter(b,a.argument),h=a.argument;else return null;}return b.firstRestricted&&throwError(b.firstRestricted,b.message),b.stricted&&throwErrorTolerant(b.stricted,b.message),{ params:f, rest:h };}function parseArrowFunctionExpression(a){var c, e, b;
return expect('=>'),c=l,e=m,l=!0,m=!1,b=parseConciseBody(),l=c,m=e,{type:d.ArrowFunctionExpression,id:null,params:a.params,defaults:a.defaults||[],body:b,rest:a.rest,generator:!1,expression:b.type!==d.BlockStatement};}function parseAssignmentExpression(){var a, b, g, c, i;
if(matchKeyword('yield'))return parseYieldExpression();c=h.parenthesizedCount;if(match('(')){b=lookahead2();if(b.type===f.Punctuator&&b.value===')'||b.value==='...')return g=parseParams(),!match('=>')&&throwUnexpected(lex()),parseArrowFunctionExpression(g);}return b=lookahead(),a=parseConditionalExpression(),match('=>')&&a.type===d.Identifier&&(h.parenthesizedCount===c||h.parenthesizedCount===c+1)?(isRestrictedWord(a.name)&&throwError({},e.StrictParamName),parseArrowFunctionExpression({ params:[a], rest:null })):(matchAssign()&&(l&&a.type===d.Identifier&&isRestrictedWord(a.name)&&throwErrorTolerant(b,e.StrictLHSAssignment),match('=')&&(a.type===d.ObjectExpression||a.type===d.ArrayExpression)?reinterpretAsAssignmentBindingPattern(a):!isLeftHandSide(a)&&throwError({},e.InvalidLHSInAssignment),a={ type:d.AssignmentExpression, operator:lex().value, left:a, right:parseAssignmentExpression() }),a);}function parseExpression(){var b, c, f, i, g;
b=parseAssignmentExpression();if(match(',')){c={ type:d.SequenceExpression, expressions:[b] };while(a<k){if(!match(','))break;lex(),b=parseSpreadOrAssignmentExpression(),c.expressions.push(b);if(b.type===d.SpreadElement){i=!0,!match(')')&&throwError({},e.ElementAfterSpreadElement);break;}}}if(h.allowArrowFunction&&match(')')){g=lookahead2();if(g.value==='=>'){lex(),h.allowArrowFunction=!1,b=c?c.expressions:[b],f=reinterpretAsCoverFormalsList(b);if(f)return parseArrowFunctionExpression(f);throwUnexpected(g);}}return i&&throwError({},e.IllegalSpread),c||b;}function parseStatementList(){var c=[], b;
while(a<k){if(match('}'))break;b=parseSourceElement();if(typeof b==='undefined')break;c.push(b);}return c;}function parseBlock(){var a;
return expect('{'),a=parseStatementList(),expect('}'),{ type:d.BlockStatement, body:a };}function parseVariableIdentifier(){var a=lex();
return a.type!==f.Identifier&&throwUnexpected(a),{ type:d.Identifier, name:a.value };}function parseVariableDeclaration(c){var a, b=null;
return match('{')?(a=parseObjectInitialiser(),reinterpretAsAssignmentBindingPattern(a)):match('[')?(a=parseArrayInitialiser(),reinterpretAsAssignmentBindingPattern(a)):(a=parseVariableIdentifier(),l&&isRestrictedWord(a.name)&&throwErrorTolerant({},e.StrictVarName)),c==='const'?(!match('=')&&throwError({},e.NoUnintializedConst),expect('='),b=parseAssignmentExpression()):match('=')&&(lex(),b=parseAssignmentExpression()),{ type:d.VariableDeclarator, id:a, init:b };}function parseVariableDeclarationList(c){var b=[];
while(a<k){b.push(parseVariableDeclaration(c));if(!match(','))break;lex();}return b;}function parseVariableStatement(){var a;
return expectKeyword('var'),a=parseVariableDeclarationList(),consumeSemicolon(),{ type:d.VariableDeclaration, declarations:a, kind:'var' };}function parseConstLetDeclaration(a){var b;
return expectKeyword(a),b=parseVariableDeclarationList(a),consumeSemicolon(),{ type:d.VariableDeclaration, declarations:b, kind:a };}function parseAtSymbol(){var a=lex();
return a.type!==f.AtSymbol&&throwUnexpected(a),{ internal:a.internal, type:d.AtSymbol, name:a.value };}function parsePrivateStatement(){var a;
return expectKeyword('private'),a=parseSymbolDeclarationList(),consumeSemicolon(),{ type:d.SymbolDeclaration, declarations:a, kind:'private' };}function parseSymbolStatement(){var a;
return matchContextualKeyword('symbol'),lex(),a=parseSymbolDeclarationList(),consumeSemicolon(),{ type:d.SymbolDeclaration, declarations:a, kind:'symbol' };}function parseSymbolDeclarationList(){var b=[];
while(a<k){b.push(parseSymbolDeclaration());if(!match(','))break;lex();}return b;}function parseSymbolDeclaration(){var a, b=null;
return a=parseAtSymbol(),match('=')&&(lex(),b=parseAssignmentExpression()),{ type:d.SymbolDeclarator, id:a, init:b };}function parsePath(){var a, b;
a={ type:d.Path, body:[] };while(!0){b=parseVariableIdentifier(),a.body.push(b);if(!match('.'))break;lex();}return a;}function parseGlob(){return expect('*'),{ type:d.Glob };}function parseModuleDeclaration(){var a, c, b;
return lex(),a=parseVariableIdentifier(),match('{')?{ type:d.ModuleDeclaration, id:a, body:parseModuleBlock() }:(expect('='),c=lookahead(),c.type===f.StringLiteral?b={ type:d.ModuleDeclaration, id:a, from:parsePrimaryExpression() }:b={ type:d.ModuleDeclaration, id:a, from:parsePath() },consumeSemicolon(),b);}function parseExportSpecifierSetProperty(){var a;
return a={ type:d.ExportSpecifier, id:parseVariableIdentifier(), from:null },match(':')&&(lex(),a.from=parsePath()),a;}function parseExportSpecifier(){var a, b;
if(match('{')){lex(),b=[];do b.push(parseExportSpecifierSetProperty());while(match(',')&&lex());return expect('}'),{ type:d.ExportSpecifierSet, specifiers:b };}return match('*')?(a={ type:d.ExportSpecifier, id:parseGlob(), from:null },matchContextualKeyword('from')&&(lex(),a.from=parsePath())):a={ type:d.ExportSpecifier, id:parseVariableIdentifier(), from:null },a;}function parseExportDeclaration(){var b, c;
expectKeyword('export'),b=lookahead();if(b.type===f.Keyword||b.type===f.Identifier&&b.value==='module'){switch(token.value){case'function':return{ type:d.ExportDeclaration, declaration:parseFunctionDeclaration() };case'module':return{ type:d.ExportDeclaration, declaration:parseModuleDeclaration() };case'let':case'const':return{ type:d.ExportDeclaration, declaration:parseConstLetDeclaration(b.value) };case'var':return{ type:d.ExportDeclaration, declaration:parseStatement() };case'class':return{ type:d.ExportDeclaration, declaration:parseClassDeclaration() };}throwUnexpected(lex());}c=[parseExportSpecifier()];if(match(','))while(a<k){if(!match(','))break;lex(),c.push(parseExportSpecifier());}return consumeSemicolon(),{ type:d.ExportDeclaration, specifiers:c };}function parseImportDeclaration(){var a, b;
expectKeyword('import');if(match('*'))a=[parseGlob()];else if(match('{')){lex(),a=[];do a.push(parseImportSpecifier());while(match(',')&&lex());expect('}');}else a=[parseVariableIdentifier()];return!matchContextualKeyword('from')&&throwError({},e.NoFromAfterImport),lex(),lookahead().type===f.StringLiteral?b=parsePrimaryExpression():b=parsePath(),consumeSemicolon(),{ type:d.ImportDeclaration, specifiers:a, from:b };}function parseImportSpecifier(){var a;
return a={ type:d.ImportSpecifier, id:parseVariableIdentifier(), from:null },match(':')&&(lex(),a.from=parsePath()),a;}function parseEmptyStatement(){return expect(';'),{ type:d.EmptyStatement };}function parseExpressionStatement(){var a=parseExpression();
return consumeSemicolon(),{ type:d.ExpressionStatement, expression:a };}function parseIfStatement(){var b, c, a;
return expectKeyword('if'),expect('('),b=parseExpression(),expect(')'),c=parseStatement(),matchKeyword('else')?(lex(),a=parseStatement()):a=null,{ type:d.IfStatement, test:b, consequent:c, alternate:a };}function parseDoWhileStatement(){var a, b, c;
return expectKeyword('do'),c=h.inIteration,h.inIteration=!0,a=parseStatement(),h.inIteration=c,expectKeyword('while'),expect('('),b=parseExpression(),expect(')'),match(';')&&lex(),{ type:d.DoWhileStatement, body:a, test:b };}function parseWhileStatement(){var a, b, c;
return expectKeyword('while'),expect('('),a=parseExpression(),expect(')'),c=h.inIteration,h.inIteration=!0,b=parseStatement(),h.inIteration=c,{ type:d.WhileStatement, test:a, body:b };}function parseForVariableDeclaration(){var a=lex();
return{ type:d.VariableDeclaration, declarations:parseVariableDeclarationList(), kind:a.value };}function parseForStatement(l){var a, j, k, c, f, i, g, m;
return a=j=k=null,expectKeyword('for'),matchContextualKeyword('each')&&lex(),expect('('),match(';')?lex():(matchKeyword('var')||matchKeyword('let')||matchKeyword('const')?(h.allowIn=!1,a=parseForVariableDeclaration(),h.allowIn=!0,a.declarations.length===1&&(matchKeyword('in')||matchContextualKeyword('of'))&&(g=lookahead(),!((g.value==='in'||a.kind!=='var')&&a.declarations[0].init)&&(lex(),c=a,f=parseExpression(),a=null))):(h.allowIn=!1,a=parseExpression(),h.allowIn=!0,matchContextualKeyword('of')?(g=lex(),c=a,f=parseExpression(),a=null):matchKeyword('in')&&(!isAssignableLeftHandSide(a)&&throwError({},e.InvalidLHSInForIn),g=lex(),c=a,f=parseExpression(),a=null)),typeof c==='undefined'&&expect(';')),typeof c==='undefined'&&(!match(';')&&(j=parseExpression()),expect(';'),!match(')')&&(k=parseExpression())),expect(')'),m=h.inIteration,h.inIteration=!0,!(l!==b&&l.ignore_body)&&(i=parseStatement()),h.inIteration=m,typeof c==='undefined'?{ type:d.ForStatement, init:a, test:j, update:k, body:i }:g.value==='in'?{ type:d.ForInStatement, left:c, right:f, body:i, each:!1 }:{ type:d.ForOfStatement, left:c, right:f, body:i };}function parseContinueStatement(){var c, b=null;
return expectKeyword('continue'),g[a]===';'?(lex(),!h.inIteration&&throwError({},e.IllegalContinue),{ type:d.ContinueStatement, label:null }):peekLineTerminator()?(!h.inIteration&&throwError({},e.IllegalContinue),{ type:d.ContinueStatement, label:null }):(c=lookahead(),c.type===f.Identifier&&(b=parseVariableIdentifier(),!Object.prototype.hasOwnProperty.call(h.labelSet,b.name)&&throwError({},e.UnknownLabel,b.name)),consumeSemicolon(),b===null&&!h.inIteration&&throwError({},e.IllegalContinue),{ type:d.ContinueStatement, label:b });}function parseBreakStatement(){var c, b=null;
return expectKeyword('break'),g[a]===';'?(lex(),!(h.inIteration||h.inSwitch)&&throwError({},e.IllegalBreak),{ type:d.BreakStatement, label:null }):peekLineTerminator()?(!(h.inIteration||h.inSwitch)&&throwError({},e.IllegalBreak),{ type:d.BreakStatement, label:null }):(c=lookahead(),c.type===f.Identifier&&(b=parseVariableIdentifier(),!Object.prototype.hasOwnProperty.call(h.labelSet,b.name)&&throwError({},e.UnknownLabel,b.name)),consumeSemicolon(),b===null&&!(h.inIteration||h.inSwitch)&&throwError({},e.IllegalBreak),{ type:d.BreakStatement, label:b });}function parseReturnStatement(){var c, b=null;
return expectKeyword('return'),!h.inFunctionBody&&throwErrorTolerant({},e.IllegalReturn),g[a]===' '&&isIdentifierStart(g[a+1])?(b=parseExpression(),consumeSemicolon(),{ type:d.ReturnStatement, argument:b }):peekLineTerminator()?{ type:d.ReturnStatement, argument:null }:(!match(';')&&(c=lookahead(),!match('}')&&c.type!==f.EOF&&(b=parseExpression())),consumeSemicolon(),{ type:d.ReturnStatement, argument:b });}function parseWithStatement(){var a, b;
return l&&throwErrorTolerant({},e.StrictModeWith),expectKeyword('with'),expect('('),a=parseExpression(),expect(')'),b=parseStatement(),{ type:d.WithStatement, object:a, body:b };}function parseSwitchCase(){var b, e=[], c;
matchKeyword('default')?(lex(),b=null):(expectKeyword('case'),b=parseExpression()),expect(':');while(a<k){if(match('}')||matchKeyword('default')||matchKeyword('case'))break;c=parseSourceElement();if(typeof c==='undefined')break;e.push(c);}return{ type:d.SwitchCase, test:b, consequent:e };}function parseSwitchStatement(){var b, c, f, i, g;
expectKeyword('switch'),expect('('),b=parseExpression(),expect(')'),expect('{');if(match('}'))return lex(),{ type:d.SwitchStatement, discriminant:b };c=[],i=h.inSwitch,h.inSwitch=!0,g=!1;while(a<k){if(match('}'))break;f=parseSwitchCase(),f.test===null&&(g&&throwError({},e.MultipleDefaultsInSwitch),g=!0),c.push(f);}return h.inSwitch=i,expect('}'),{ type:d.SwitchStatement, discriminant:b, cases:c };}function parseThrowStatement(){var a;
return expectKeyword('throw'),peekLineTerminator()&&throwError({},e.NewlineAfterThrow),a=parseExpression(),consumeSemicolon(),{ type:d.ThrowStatement, argument:a };}function parseCatchClause(){var a;
return expectKeyword('catch'),expect('('),!match(')')&&(a=parseExpression(),l&&a.type===d.Identifier&&isRestrictedWord(a.name)&&throwErrorTolerant({},e.StrictCatchVariable)),expect(')'),{ type:d.CatchClause, param:a, body:parseBlock() };}function parseTryStatement(){var c, a=[], b=null;
return expectKeyword('try'),c=parseBlock(),matchKeyword('catch')&&a.push(parseCatchClause()),matchKeyword('finally')&&(lex(),b=parseBlock()),a.length===0&&!b&&throwError({},e.NoCatchOrFinally),{ type:d.TryStatement, block:c, guardedHandlers:[], handlers:a, finalizer:b };}function parseDebuggerStatement(){return expectKeyword('debugger'),consumeSemicolon(),{ type:d.DebuggerStatement };}function parseStatement(){var b=lookahead(), a, c;
b.type===f.EOF&&throwUnexpected(b);if(b.type===f.Punctuator)switch(token.value){case';':return parseEmptyStatement();case'{':return parseBlock();case'(':return parseExpressionStatement();default:break;}if(b.type===f.Keyword)switch(token.value){case'break':return parseBreakStatement();case'continue':return parseContinueStatement();case'debugger':return parseDebuggerStatement();case'do':return parseDoWhileStatement();case'for':return parseForStatement();case'function':return parseFunctionDeclaration();case'class':return parseClassDeclaration();case'if':return parseIfStatement();case'private':return parsePrivateStatement();case'return':return parseReturnStatement();case'switch':return parseSwitchStatement();case'throw':return parseThrowStatement();case'try':return parseTryStatement();case'var':return parseVariableStatement();case'while':return parseWhileStatement();case'with':return parseWithStatement();default:break;}return b.type===f.Identifier&&b.value==='symbol'&&lookahead2().type===f.AtSymbol?parseSymbolStatement():(a=parseExpression(),a.type===d.Identifier&&match(':')?(lex(),Object.prototype.hasOwnProperty.call(h.labelSet,a.name)&&throwError({},e.Redeclaration,'Label',a.name),h.labelSet[a.name]=!0,c=parseStatement(),delete h.labelSet[a.name],{ type:d.LabeledStatement, label:a, body:c }):(consumeSemicolon(),{ type:d.ExpressionStatement, expression:a }));}function parseConciseBody(){return match('{')?parseFunctionSourceElements():parseAssignmentExpression();}function parseFunctionSourceElements(){var c, i=[], b, j, g, n, o, p, q, m;
expect('{');while(a<k){b=lookahead();if(b.type!==f.StringLiteral)break;c=parseSourceElement(),i.push(c);if(c.expression.type!==d.Literal)break;j=sliceSource(b.range[0]+1,b.range[1]-1),j==='use strict'?(l=!0,g&&throwErrorTolerant(g,e.StrictOctalLiteral)):!g&&b.octal&&(g=b);}n=h.labelSet,o=h.inIteration,p=h.inSwitch,q=h.inFunctionBody,m=h.parenthesizedCount,h.labelSet={},h.inIteration=!1,h.inSwitch=!1,h.inFunctionBody=!0,h.parenthesizedCount=0;while(a<k){if(match('}'))break;c=parseSourceElement();if(typeof c==='undefined')break;i.push(c);}return expect('}'),h.labelSet=n,h.inIteration=o,h.inSwitch=p,h.inFunctionBody=q,h.parenthesizedCount=m,{ type:d.BlockStatement, body:i };}function validateParam(a,c,b){l?(isRestrictedWord(b)&&(a.stricted=c,a.message=e.StrictParamName),Object.prototype.hasOwnProperty.call(a.paramSet,b)&&(a.stricted=c,a.message=e.StrictParamDupe)):!a.firstRestricted&&(isRestrictedWord(b)?(a.firstRestricted=c,a.message=e.StrictParamName):isStrictModeReservedWord(b)?(a.firstRestricted=c,a.message=e.StrictReservedWord):Object.prototype.hasOwnProperty.call(a.paramSet,b)&&(a.firstRestricted=c,a.message=e.StrictParamDupe)),a.paramSet[b]=!0;}function parseParam(a){var c, d, b;
return c=lookahead(),c.value==='...'&&(c=lex(),d=!0),match('[')?(b=parseArrayInitialiser(),reinterpretAsDestructuredParameter(a,b)):match('{')?(d&&throwError({},e.ObjectPatternAsRestParameter),b=parseObjectInitialiser(),reinterpretAsDestructuredParameter(a,b)):(b=parseVariableIdentifier(),validateParam(a,c,c.value)),d?(!match(')')&&throwError({},e.ParameterAfterRestParameter),a.rest=b,!1):(match('=')?(lex(),a.defaults.push(parseAssignmentExpression())):a.defaults.length&&throwError({},e.DefaultsNotLast),a.params.push(b),!match(')'));}function parseParams(c){var b;
b={ params:[], defaults:[], rest:null, firstRestricted:c },expect('(');if(!match(')')){b.paramSet={};while(a<k){if(!parseParam(b))break;expect(',');}}return expect(')'),b;}function parseFunctionDeclaration(){var h, n, b, a, c, f, j, k, g, i;
return expectKeyword('function'),g=!1,match('*')&&(lex(),g=!0),b=lookahead(),h=parseVariableIdentifier(),l?isRestrictedWord(b.value)&&throwErrorTolerant(b,e.StrictFunctionName):isRestrictedWord(b.value)?(c=b,f=e.StrictFunctionName):isStrictModeReservedWord(b.value)&&(c=b,f=e.StrictReservedWord),a=parseParams(c),c=a.firstRestricted,a.message&&(f=a.message),j=l,k=m,m=g,i=!match('{'),n=parseConciseBody(),l&&c&&throwError(c,f),l&&a.stricted&&throwErrorTolerant(a.stricted,f),m&&!q&&throwError({},e.NoYieldInGenerator),l=j,m=k,{type:d.FunctionDeclaration,id:h,params:a.params,defaults:a.defaults,body:n,rest:a.rest,generator:g,expression:i};}function parseFunctionExpression(){var b, n=null, c, f, a, i, j, k, g, h;
return expectKeyword('function'),g=!1,match('*')&&(lex(),g=!0),!match('(')&&(b=lookahead(),n=parseVariableIdentifier(),l?isRestrictedWord(b.value)&&throwErrorTolerant(b,e.StrictFunctionName):isRestrictedWord(b.value)?(c=b,f=e.StrictFunctionName):isStrictModeReservedWord(b.value)&&(c=b,f=e.StrictReservedWord)),a=parseParams(c),c=a.firstRestricted,a.message&&(f=a.message),j=l,k=m,m=g,h=!match('{'),i=parseConciseBody(),l&&c&&throwError(c,f),l&&a.stricted&&throwErrorTolerant(a.stricted,f),m&&!q&&throwError({},e.NoYieldInGenerator),l=j,m=k,{type:d.FunctionExpression,id:n,params:a.params,defaults:a.defaults,body:i,rest:a.rest,generator:g,expression:h};}function parseYieldExpression(){var a, b, c;
return expectKeyword('yield'),!m&&throwErrorTolerant({},e.IllegalYield),a=!1,match('*')&&(lex(),a=!0),c=m,m=!1,b=parseAssignmentExpression(),m=c,q=!0,{ type:d.YieldExpression, argument:b, delegate:a };}function parseMethodDefinition(){var b, a, c;
return match('*')?(lex(),{type:d.MethodDefinition,key:parseObjectPropertyKey(),value:parsePropertyMethodFunction({ generator:!0 }),kind:''}):(b=lookahead(),a=parseObjectPropertyKey(),b.value==='get'&&!match('(')?(a=parseObjectPropertyKey(),expect('('),expect(')'),{ type:d.MethodDefinition, key:a, value:parsePropertyFunction({ generator:!1 }), kind:'get' }):b.value==='set'&&!match('(')?(a=parseObjectPropertyKey(),c=parseParams(),c.name=b,c.generator=!1,{ type:d.MethodDefinition, key:a, value:parsePropertyFunction(c), kind:'set' }):{ type:d.MethodDefinition, key:a, value:parsePropertyMethodFunction({ generator:!1 }), kind:'' });}function parseClassElement(){if(match(';')){lex();return;}else return lookahead().value==='private'&&lookahead2().type===f.AtSymbol?parsePrivateStatement():lookahead().value==='symbol'&&lookahead2().type===f.AtSymbol?parseSymbolStatement():parseMethodDefinition();}function parseClassBody(){var b, c=[];
expect('{');while(a<k){if(match('}'))break;b=parseClassElement(),typeof b!=='undefined'&&c.push(b);}return expect('}'),{ type:d.ClassBody, body:c };}function parseClassExpression(){var a, b, c, e;
return expectKeyword('class'),!matchKeyword('extends')&&!match('{')&&(a=parseVariableIdentifier()),matchKeyword('extends')&&(expectKeyword('extends'),c=m,m=!1,e=parseAssignmentExpression(),m=c),b=parseClassBody(),{ id:a, type:d.ClassExpression, body:b, superClass:e };}function parseClassDeclaration(){var f, a, b, c, e;
return expectKeyword('class'),f=lookahead(),a=parseVariableIdentifier(),matchKeyword('extends')&&(expectKeyword('extends'),c=m,m=!1,e=parseAssignmentExpression(),m=c),b=parseClassBody(),{ id:a, type:d.ClassDeclaration, body:b, superClass:e };}function parseSourceElement(){var a=lookahead();
if(a.type===f.Keyword)switch(token.value){case'const':case'let':return parseConstLetDeclaration(a.value);case'function':return parseFunctionDeclaration();default:return parseStatement();}if(a.type!==f.EOF)return parseStatement();}function parseProgramElement(){var a=lookahead(), b;
if(a.type===f.Keyword)switch(token.value){case'export':return parseExportDeclaration();case'import':return parseImportDeclaration();}if(a.value==='module'&&a.type===f.Identifier){b=a.lineNumber,a=lookahead2();if(a.type===f.Identifier&&a.lineNumber===b)return parseModuleDeclaration();}return parseSourceElement();}function parseProgramElements(){var b, h=[], c, i, g;
while(a<k){c=lookahead();if(c.type!==f.StringLiteral)break;b=parseProgramElement(),h.push(b);if(b.expression.type!==d.Literal)break;i=sliceSource(c.range[0]+1,c.range[1]-1),i==='use strict'?(l=!0,g&&throwErrorTolerant(g,e.StrictOctalLiteral)):!g&&c.octal&&(g=c);}while(a<k){b=parseProgramElement();if(typeof b==='undefined')break;h.push(b);}return h;}function parseModuleElement(){return parseProgramElement();}function parseModuleElements(){var c=[], b;
while(a<k){if(match('}'))break;b=parseModuleElement();if(typeof b==='undefined')break;c.push(b);}return c;}function parseModuleBlock(){var a;
return expect('{'),a=parseModuleElements(),expect('}'),{ type:d.BlockStatement, body:a };}function parseProgram(){var a;
return l=!1,m=!1,q=!1,a={ type:d.Program, body:parseProgramElements() },a;}function addComment(b,d,a,e,f){assert(typeof a==='number','Comment must have valid position');if(c.comments.length>0&&c.comments[c.comments.length-1].range[1]>a)return;c.comments.push({ type:b, value:d, range:[a, e], loc:f });}function scanComment(){var c, b, d, f, l, h;
c='',l=!1,h=!1;while(a<k){b=g[a];if(h)b=nextChar(),isLineTerminator(b)?(d.end={ line:i, column:a-j-1 },h=!1,addComment('Line',c,f,a-1,d),b==='\r'&&g[a]==='\n'&&++a,++i,j=a,c=''):a>=k?(h=!1,c+=b,d.end={ line:i, column:k-j },addComment('Line',c,f,k,d)):c+=b;else if(l)isLineTerminator(b)?(b==='\r'&&g[a+1]==='\n'?(++a,c+='\r\n'):c+=b,++i,++a,j=a,a>=k&&throwError({},e.UnexpectedToken,'ILLEGAL')):(b=nextChar(),a>=k&&throwError({},e.UnexpectedToken,'ILLEGAL'),c+=b,b==='*'&&(b=g[a],b==='/'&&(c=c.substr(0,c.length-1),l=!1,++a,d.end={ line:i, column:a-j },addComment('Block',c,f,a,d),c='')));else if(b==='/'){b=g[a+1];if(b==='/')d={ start:{ line:i, column:a-j } },f=a,a+=2,h=!0,a>=k&&(d.end={ line:i, column:a-j },h=!1,addComment('Line',c,f,a,d));else if(b==='*')f=a,a+=2,l=!0,d={ start:{ line:i, column:a-j-2 } },a>=k&&throwError({},e.UnexpectedToken,'ILLEGAL');else break;}else if(isWhiteSpace(b))++a;else if(isLineTerminator(b))++a,b==='\r'&&g[a]==='\n'&&++a,++i,j=a;else break;}}function filterCommentLocation(){var b, a, d, e=[];
for(b=0;b<c.comments.length;++b)a=c.comments[b],d={ type:a.type, value:a.value },c.range&&(d.range=a.range),c.loc&&(d.loc=a.loc),e.push(d);c.comments=e;}function collectToken(){var h, d, b, e, g;
return skipComment(),h=a,d={ start:{ line:i, column:a-j } },b=c.advance(),d.end={ line:i, column:a-j },b.type!==f.EOF&&(e=[b.range[0], b.range[1]],g=sliceSource(b.range[0],b.range[1]),c.tokens.push({ type:o[b.type], value:g, range:e, loc:d })),b;}function collectRegex(){var d, e, f, b;
return skipComment(),d=a,e={ start:{ line:i, column:a-j } },f=c.scanRegExp(),e.end={ line:i, column:a-j },c.tokens.length>0&&(b=c.tokens[c.tokens.length-1],b.range[0]===d&&b.type==='Punctuator'&&((b.value==='/'||b.value==='/=')&&c.tokens.pop())),c.tokens.push({ type:'RegularExpression', value:f.literal, range:[d, a], loc:e }),f;}function filterTokenLocation(){var b, a, d, e=[];
for(b=0;b<c.tokens.length;++b)a=c.tokens[b],d={ type:a.type, value:a.value },c.range&&(d.range=a.range),c.loc&&(d.loc=a.loc),e.push(d);c.tokens=e;}function createLiteral(a){return{ type:d.Literal, value:a.value };}function createRawLiteral(a){return{ type:d.Literal, value:a.value, raw:sliceSource(a.range[0],a.range[1]) };}function createLocationMarker(){var b={};
return b.range=[a, a],b.loc={ start:{ line:i, column:a-j }, end:{ line:i, column:a-j } },b.end=function(){this.range[1]=a,this.loc.end.line=i,this.loc.end.column=a-j;},b.applyGroup=function(a){c.range&&(a.groupRange=[this.range[0], this.range[1]]),c.loc&&(a.groupLoc={start:{ line:this.loc.start.line, column:this.loc.start.column },end:{ line:this.loc.end.line, column:this.loc.end.column }});},b.apply=function(a){c.range&&(a.range=[this.range[0], this.range[1]]),c.loc&&(a.loc={start:{ line:this.loc.start.line, column:this.loc.start.column },end:{ line:this.loc.end.line, column:this.loc.end.column }});},b;}function trackGroupExpression(){var a, b;
return skipComment(),a=createLocationMarker(),expect('('),++h.parenthesizedCount,h.allowArrowFunction=!h.allowArrowFunction,b=parseExpression(),h.allowArrowFunction=!1,b.type==='ArrowFunctionExpression'?(a.end(),a.apply(b)):(expect(')'),a.end(),a.applyGroup(b)),b;}function trackLeftHandSideExpression(){var b, a;
skipComment(),b=createLocationMarker(),a=matchKeyword('new')?parseNewExpression():parsePrimaryExpression();while(match('.')||match('[')||lookahead().type===f.Template)match('[')?(a={ type:d.MemberExpression, computed:!0, object:a, property:parseComputedMember() },b.end(),b.apply(a)):match('.')?(a={ type:d.MemberExpression, computed:!1, object:a, property:parseNonComputedMember() },b.end(),b.apply(a)):(a={ type:d.TaggedTemplateExpression, tag:a, template:parseTemplateLiteral() },b.end(),b.apply(a));return a;}function trackLeftHandSideExpressionAllowCall(){var b, a;
skipComment(),b=createLocationMarker(),a=matchKeyword('new')?parseNewExpression():parsePrimaryExpression();while(match('.')||match('[')||match('(')||lookahead().type===f.Template)match('(')?(a={ type:d.CallExpression, callee:a, 'arguments':parseArguments() },b.end(),b.apply(a)):match('[')?(a={ type:d.MemberExpression, computed:!0, object:a, property:parseComputedMember() },b.end(),b.apply(a)):match('.')?(a={ type:d.MemberExpression, computed:!1, object:a, property:parseNonComputedMember() },b.end(),b.apply(a)):(a={ type:d.TaggedTemplateExpression, tag:a, template:parseTemplateLiteral() },b.end(),b.apply(a));return a;}function filterGroup(c){var d, a, b;
d=Object.prototype.toString.apply(c)==='[object Array]'?[]:{};for(a in c)c.hasOwnProperty(a)&&a!=='groupRange'&&a!=='groupLoc'&&(b=c[a],b===null||typeof b!=='object'||b instanceof RegExp?d[a]=b:d[a]=filterGroup(b));return d;}function wrapTrackingFunction(a,b){return function(c){function isBinary(a){return a.type===d.LogicalExpression||a.type===d.BinaryExpression;}function visit(c){var d, e;
isBinary(c.left)&&visit(c.left),isBinary(c.right)&&visit(c.right),a&&(c.left.groupRange||c.right.groupRange?(d=c.left.groupRange?c.left.groupRange[0]:c.left.range[0],e=c.right.groupRange?c.right.groupRange[1]:c.right.range[1],c.range=[d, e]):typeof c.range==='undefined'&&(d=c.left.range[0],e=c.right.range[1],c.range=[d, e])),b&&(c.left.groupLoc||c.right.groupLoc?(d=c.left.groupLoc?c.left.groupLoc.start:c.left.loc.start,e=c.right.groupLoc?c.right.groupLoc.end:c.right.loc.end,c.loc={ start:d, end:e }):typeof c.loc==='undefined'&&(c.loc={ start:c.left.loc.start, end:c.right.loc.end }));}return function(){var e, d;
return skipComment(),e=createLocationMarker(),d=c.apply(null,arguments),e.end(),a&&typeof d.range==='undefined'&&e.apply(d),b&&typeof d.loc==='undefined'&&e.apply(d),isBinary(d)&&visit(d),d;};};}function patch(){var a;
c.comments&&(c.skipComment=skipComment,skipComment=scanComment),c.raw&&(c.createLiteral=createLiteral,createLiteral=createRawLiteral),(c.range||c.loc)&&(c.parseGroupExpression=parseGroupExpression,c.parseLeftHandSideExpression=parseLeftHandSideExpression,c.parseLeftHandSideExpressionAllowCall=parseLeftHandSideExpressionAllowCall,parseGroupExpression=trackGroupExpression,parseLeftHandSideExpression=trackLeftHandSideExpression,parseLeftHandSideExpressionAllowCall=trackLeftHandSideExpressionAllowCall,a=wrapTrackingFunction(c.range,c.loc),c.parseAdditiveExpression=parseAdditiveExpression,c.parseAssignmentExpression=parseAssignmentExpression,c.parseAtSymbol=parseAtSymbol,c.parseBitwiseANDExpression=parseBitwiseANDExpression,c.parseBitwiseORExpression=parseBitwiseORExpression,c.parseBitwiseXORExpression=parseBitwiseXORExpression,c.parseBlock=parseBlock,c.parseFunctionSourceElements=parseFunctionSourceElements,c.parseCatchClause=parseCatchClause,c.parseComputedMember=parseComputedMember,c.parseConditionalExpression=parseConditionalExpression,c.parseConstLetDeclaration=parseConstLetDeclaration,c.parseEqualityExpression=parseEqualityExpression,c.parseExportDeclaration=parseExportDeclaration,c.parseExportSpecifier=parseExportSpecifier,c.parseExportSpecifierSetProperty=parseExportSpecifierSetProperty,c.parseExpression=parseExpression,c.parseForVariableDeclaration=parseForVariableDeclaration,c.parseFunctionDeclaration=parseFunctionDeclaration,c.parseFunctionExpression=parseFunctionExpression,c.parseParam=parseParam,c.parseGlob=parseGlob,c.parseImportDeclaration=parseImportDeclaration,c.parseImportSpecifier=parseImportSpecifier,c.parseLogicalANDExpression=parseLogicalANDExpression,c.parseLogicalORExpression=parseLogicalORExpression,c.parseMultiplicativeExpression=parseMultiplicativeExpression,c.parseModuleDeclaration=parseModuleDeclaration,c.parseModuleBlock=parseModuleBlock,c.parseNewExpression=parseNewExpression,c.parseNonComputedProperty=parseNonComputedProperty,c.parseObjectProperty=parseObjectProperty,c.parseObjectPropertyKey=parseObjectPropertyKey,c.parseParam=parseParam,c.parsePath=parsePath,c.parsePostfixExpression=parsePostfixExpression,c.parsePrimaryExpression=parsePrimaryExpression,c.parsePrivateStatement=parsePrivateStatement,c.parseProgram=parseProgram,c.parsePropertyFunction=parsePropertyFunction,c.parseRelationalExpression=parseRelationalExpression,c.parseSpreadOrAssignmentExpression=parseSpreadOrAssignmentExpression,c.parseSymbolStatement=parseSymbolStatement,c.parseSymbolDeclarationList=parseSymbolDeclarationList,c.parseSymbolDeclaration=parseSymbolDeclaration,c.parseTemplateElement=parseTemplateElement,c.parseTemplateLiteral=parseTemplateLiteral,c.parseStatement=parseStatement,c.parseShiftExpression=parseShiftExpression,c.parseSwitchCase=parseSwitchCase,c.parseUnaryExpression=parseUnaryExpression,c.parseVariableDeclaration=parseVariableDeclaration,c.parseVariableIdentifier=parseVariableIdentifier,c.parseMethodDefinition=parseMethodDefinition,c.parseClassDeclaration=parseClassDeclaration,c.parseClassExpression=parseClassExpression,c.parseClassBody=parseClassBody,parseAdditiveExpression=a(c.parseAdditiveExpression),parseAssignmentExpression=a(c.parseAssignmentExpression),parseAtSymbol=a(c.parseAtSymbol),parseBitwiseANDExpression=a(c.parseBitwiseANDExpression),parseBitwiseORExpression=a(c.parseBitwiseORExpression),parseBitwiseXORExpression=a(c.parseBitwiseXORExpression),parseBlock=a(c.parseBlock),parseFunctionSourceElements=a(c.parseFunctionSourceElements),parseCatchClause=a(c.parseCatchClause),parseComputedMember=a(c.parseComputedMember),parseConditionalExpression=a(c.parseConditionalExpression),parseConstLetDeclaration=a(c.parseConstLetDeclaration),parseExportDeclaration=a(parseExportDeclaration),parseExportSpecifier=a(parseExportSpecifier),parseExportSpecifierSetProperty=a(parseExportSpecifierSetProperty),parseEqualityExpression=a(c.parseEqualityExpression),parseExpression=a(c.parseExpression),parseForVariableDeclaration=a(c.parseForVariableDeclaration),parseFunctionDeclaration=a(c.parseFunctionDeclaration),parseFunctionExpression=a(c.parseFunctionExpression),parseParam=a(c.parseParam),parseGlob=a(c.parseGlob),parseImportDeclaration=a(c.parseImportDeclaration),parseImportSpecifier=a(c.parseImportSpecifier),parseLogicalANDExpression=a(c.parseLogicalANDExpression),parseLogicalORExpression=a(c.parseLogicalORExpression),parseMultiplicativeExpression=a(c.parseMultiplicativeExpression),parseModuleDeclaration=a(c.parseModuleDeclaration),parseModuleBlock=a(c.parseModuleBlock),parseNewExpression=a(c.parseNewExpression),parseNonComputedProperty=a(c.parseNonComputedProperty),parseObjectProperty=a(c.parseObjectProperty),parseObjectPropertyKey=a(c.parseObjectPropertyKey),parseParam=a(c.parseParam),parsePath=a(c.parsePath),parsePostfixExpression=a(c.parsePostfixExpression),parsePrivateStatement=a(c.parsePrivateStatement),parsePrimaryExpression=a(c.parsePrimaryExpression),parseProgram=a(c.parseProgram),parsePropertyFunction=a(c.parsePropertyFunction),parseSymbolStatement=a(c.parseSymbolStatement),parseSymbolDeclarationList=a(c.parseSymbolDeclarationList),parseSymbolDeclaration=a(c.parseSymbolDeclaration),parseTemplateElement=a(c.parseTemplateElement),parseTemplateLiteral=a(c.parseTemplateLiteral),parseRelationalExpression=a(c.parseRelationalExpression),parseSpreadOrAssignmentExpression=a(c.parseSpreadOrAssignmentExpression),parseStatement=a(c.parseStatement),parseShiftExpression=a(c.parseShiftExpression),parseSwitchCase=a(c.parseSwitchCase),parseUnaryExpression=a(c.parseUnaryExpression),parseVariableDeclaration=a(c.parseVariableDeclaration),parseVariableIdentifier=a(c.parseVariableIdentifier),parseMethodDefinition=a(c.parseMethodDefinition),parseClassDeclaration=a(c.parseClassDeclaration),parseClassExpression=a(c.parseClassExpression),parseClassBody=a(c.parseClassBody)),typeof c.tokens!=='undefined'&&(c.advance=advance,c.scanRegExp=scanRegExp,advance=collectToken,scanRegExp=collectRegex);}function unpatch(){typeof c.skipComment==='function'&&(skipComment=c.skipComment),c.raw&&(createLiteral=c.createLiteral),(c.range||c.loc)&&(parseAdditiveExpression=c.parseAdditiveExpression,parseAssignmentExpression=c.parseAssignmentExpression,parseAtSymbol=c.parseAtSymbol,parseBitwiseANDExpression=c.parseBitwiseANDExpression,parseBitwiseORExpression=c.parseBitwiseORExpression,parseBitwiseXORExpression=c.parseBitwiseXORExpression,parseBlock=c.parseBlock,parseFunctionSourceElements=c.parseFunctionSourceElements,parseCatchClause=c.parseCatchClause,parseComputedMember=c.parseComputedMember,parseConditionalExpression=c.parseConditionalExpression,parseConstLetDeclaration=c.parseConstLetDeclaration,parseEqualityExpression=c.parseEqualityExpression,parseExportDeclaration=c.parseExportDeclaration,parseExportSpecifier=c.parseExportSpecifier,parseExportSpecifierSetProperty=c.parseExportSpecifierSetProperty,parseExpression=c.parseExpression,parseForVariableDeclaration=c.parseForVariableDeclaration,parseFunctionDeclaration=c.parseFunctionDeclaration,parseFunctionExpression=c.parseFunctionExpression,parseParam=c.parseParam,parseGlob=c.parseGlob,parseImportDeclaration=c.parseImportDeclaration,parseImportSpecifier=c.parseImportSpecifier,parseGroupExpression=c.parseGroupExpression,parseLeftHandSideExpression=c.parseLeftHandSideExpression,parseLeftHandSideExpressionAllowCall=c.parseLeftHandSideExpressionAllowCall,parseLogicalANDExpression=c.parseLogicalANDExpression,parseLogicalORExpression=c.parseLogicalORExpression,parseMultiplicativeExpression=c.parseMultiplicativeExpression,parseModuleDeclaration=c.parseModuleDeclaration,parseModuleBlock=c.parseModuleBlock,parseNewExpression=c.parseNewExpression,parseNonComputedProperty=c.parseNonComputedProperty,parseObjectProperty=c.parseObjectProperty,parseObjectPropertyKey=c.parseObjectPropertyKey,parsePath=c.parsePath,parsePostfixExpression=c.parsePostfixExpression,parsePrimaryExpression=c.parsePrimaryExpression,parsePrivateStatement=c.parsePrivateStatement,parseProgram=c.parseProgram,parsePropertyFunction=c.parsePropertyFunction,parseTemplateElement=c.parseTemplateElement,parseTemplateLiteral=c.parseTemplateLiteral,parseRelationalExpression=c.parseRelationalExpression,parseSpreadOrAssignmentExpression=c.parseSpreadOrAssignmentExpression,parseStatement=c.parseStatement,parseShiftExpression=c.parseShiftExpression,parseSymbolStatement=c.parseSymbolStatement,parseSymbolDeclarationList=c.parseSymbolDeclarationList,parseSymbolDeclaration=c.parseSymbolDeclaration,parseSwitchCase=c.parseSwitchCase,parseUnaryExpression=c.parseUnaryExpression,parseVariableDeclaration=c.parseVariableDeclaration,parseVariableIdentifier=c.parseVariableIdentifier,parseMethodDefinition=c.parseMethodDefinition,parseClassDeclaration=c.parseClassDeclaration,parseClassExpression=c.parseClassExpression,parseClassBody=c.parseClassBody),typeof c.scanRegExp==='function'&&(advance=c.advance,scanRegExp=c.scanRegExp);}function stringToArray(b){var d=b.length, c=[], a;
for(a=0;a<d;++a)c[a]=b.charAt(a);return c;}function parse(d,b){var e, f;
f=String,typeof d!=='string'&&!(d instanceof String)&&(d=f(d)),g=d,a=0,i=g.length>0?1:0,j=0,k=g.length,n=null,h={ allowIn:!0, labelSet:{}, parenthesizedCount:0, inFunctionBody:!1, inIteration:!1, inSwitch:!1 },c={},typeof b!=='undefined'&&(c.range=typeof b.range==='boolean'&&b.range,c.loc=typeof b.loc==='boolean'&&b.loc,c.raw=typeof b.raw==='boolean'&&b.raw,typeof b.tokens==='boolean'&&b.tokens&&(c.tokens=[]),typeof b.comment==='boolean'&&b.comment&&(c.comments=[]),typeof b.tolerant==='boolean'&&b.tolerant&&(c.errors=[])),k>0&&typeof g[0]==='undefined'&&(d instanceof String&&(g=d.valueOf()),typeof g[0]==='undefined'&&(g=stringToArray(d))),patch();try{e=parseProgram(),typeof c.comments!=='undefined'&&(filterCommentLocation(),e.comments=c.comments),typeof c.tokens!=='undefined'&&(filterTokenLocation(),e.tokens=c.tokens),typeof c.errors!=='undefined'&&(e.errors=c.errors),(c.range||c.loc)&&(e.body=filterGroup(e.body));}catch(a){throw a;}finally{unpatch(),c={};}return e;}'use strict';var f, o, d, p, e, s, g, l, m, q, a, i, j, k, n, h, c;
f={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,Template:9,AtSymbol:10},o={},o[f.BooleanLiteral]='Boolean',o[f.EOF]='<end>',o[f.Identifier]='Identifier',o[f.Keyword]='Keyword',o[f.NullLiteral]='Null',o[f.NumericLiteral]='Numeric',o[f.Punctuator]='Punctuator',o[f.StringLiteral]='String',o[f.AtSymbol]='AtSymbol',d={ArrayExpression:'ArrayExpression',ArrayPattern:'ArrayPattern',ArrowFunctionExpression:'ArrowFunctionExpression',AssignmentExpression:'AssignmentExpression',AtSymbol:'AtSymbol',BinaryExpression:'BinaryExpression',BlockStatement:'BlockStatement',BreakStatement:'BreakStatement',CallExpression:'CallExpression',CatchClause:'CatchClause',ClassBody:'ClassBody',ClassDeclaration:'ClassDeclaration',ClassExpression:'ClassExpression',ClassHeritage:'ClassHeritage',ComprehensionBlock:'ComprehensionBlock',ComprehensionExpression:'ComprehensionExpression',ConditionalExpression:'ConditionalExpression',ContinueStatement:'ContinueStatement',DebuggerStatement:'DebuggerStatement',DoWhileStatement:'DoWhileStatement',EmptyStatement:'EmptyStatement',ExportDeclaration:'ExportDeclaration',ExportSpecifier:'ExportSpecifier',ExportSpecifierSet:'ExportSpecifierSet',ExpressionStatement:'ExpressionStatement',ForInStatement:'ForInStatement',ForOfStatement:'ForOfStatement',ForStatement:'ForStatement',FunctionDeclaration:'FunctionDeclaration',FunctionExpression:'FunctionExpression',Glob:'Glob',Identifier:'Identifier',IfStatement:'IfStatement',ImportDeclaration:'ImportDeclaration',ImportSpecifier:'ImportSpecifier',LabeledStatement:'LabeledStatement',Literal:'Literal',LogicalExpression:'LogicalExpression',MemberExpression:'MemberExpression',MethodDefinition:'MethodDefinition',ModuleDeclaration:'ModuleDeclaration',NewExpression:'NewExpression',ObjectExpression:'ObjectExpression',ObjectPattern:'ObjectPattern',Path:'Path',Program:'Program',Property:'Property',ReturnStatement:'ReturnStatement',SequenceExpression:'SequenceExpression',SpreadElement:'SpreadElement',SwitchCase:'SwitchCase',SwitchStatement:'SwitchStatement',SymbolDeclaration:'SymbolDeclaration',SymbolDeclarator:'SymbolDeclarator',TaggedTemplateExpression:'TaggedTemplateExpression',TemplateElement:'TemplateElement',TemplateLiteral:'TemplateLiteral',ThisExpression:'ThisExpression',ThrowStatement:'ThrowStatement',TryStatement:'TryStatement',UnaryExpression:'UnaryExpression',UpdateExpression:'UpdateExpression',VariableDeclaration:'VariableDeclaration',VariableDeclarator:'VariableDeclarator',WhileStatement:'WhileStatement',WithStatement:'WithStatement',YieldExpression:'YieldExpression'},p={ Data:1, Get:2, Set:4 },e={UnexpectedToken:'Unexpected token %0',UnexpectedNumber:'Unexpected number',UnexpectedString:'Unexpected string',UnexpectedIdentifier:'Unexpected identifier',UnexpectedReserved:'Unexpected reserved word',UnexpectedTemplate:'Unexpected template %0',UnexpectedEOS:'Unexpected end of input',NewlineAfterThrow:'Illegal newline after throw',InvalidRegExp:'Invalid regular expression',UnterminatedRegExp:'Invalid regular expression: missing /',InvalidLHSInAssignment:'Invalid left-hand side in assignment',InvalidLHSInFormalsList:'Invalid left-hand side in formals list',InvalidLHSInForIn:'Invalid left-hand side in for-in',MultipleDefaultsInSwitch:'More than one default clause in switch statement',NoCatchOrFinally:'Missing catch or finally after try',UnknownLabel:'Undefined label \'%0\'',Redeclaration:'%0 \'%1\' has already been declared',IllegalContinue:'Illegal continue statement',IllegalBreak:'Illegal break statement',IllegalReturn:'Illegal return statement',IllegalYield:'Illegal yield expression',IllegalSpread:'Illegal spread element',StrictModeWith:'Strict mode code may not include a with statement',StrictCatchVariable:'Catch variable may not be eval or arguments in strict mode',StrictVarName:'Variable name may not be eval or arguments in strict mode',StrictParamName:'Parameter name eval or arguments is not allowed in strict mode',StrictParamDupe:'Strict mode function may not have duplicate parameter names',ParameterAfterRestParameter:'Rest parameter must be final parameter of an argument list',ElementAfterSpreadElement:'Spread must be the final element of an element list',ObjectPatternAsRestParameter:'Invalid rest parameter',ObjectPatternAsSpread:'Invalid spread argument',StrictFunctionName:'Function name may not be eval or arguments in strict mode',StrictOctalLiteral:'Octal literals are not allowed in strict mode.',StrictDelete:'Delete of an unqualified identifier in strict mode.',StrictDuplicateProperty:'Duplicate data property in object literal not allowed in strict mode',AccessorDataProperty:'Object literal may not have data and accessor property with the same name',AccessorGetSet:'Object literal may not have multiple get/set accessors with the same name',StrictLHSAssignment:'Assignment to eval or arguments is not allowed in strict mode',StrictLHSPostfix:'Postfix increment/decrement may not have eval or arguments operand in strict mode',StrictLHSPrefix:'Prefix increment/decrement may not have eval or arguments operand in strict mode',StrictReservedWord:'Use of future reserved word in strict mode',NoFromAfterImport:'Missing from after import',NoYieldInGenerator:'Missing yield in generator',NoUnintializedConst:'Const must be initialized',ComprehensionRequiresBlock:'Comprehension must have at least one block',ComprehensionError:'Comprehension Error',EachNotAllowed:'Each is not supported',DefaultsNotLast:'Default parameters must come last'},s={NonAsciiIdentifierStart:new RegExp('[\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]'),NonAsciiIdentifierPart:new RegExp('[\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u0800-\u082d\u0840-\u085b\u08a0\u08a2-\u08ac\u08e4-\u08fe\u0900-\u0963\u0966-\u096f\u0971-\u0977\u0979-\u097f\u0981-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7\u09c8\u09cb-\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09e6-\u09f1\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c58\u0c59\u0c60-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1\u0cf2\u0d02\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d57\u0d60-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772\u1773\u1780-\u17d3\u17d7\u17dc\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1877\u1880-\u18aa\u18b0-\u18f5\u1900-\u191c\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19d9\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1cd0-\u1cd2\u1cd4-\u1cf6\u1d00-\u1de6\u1dfc-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200c\u200d\u203f\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099\u309a\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua697\ua69f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua827\ua840-\ua873\ua880-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua900-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a\uaa7b\uaa80-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabea\uabec\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]')},typeof'esprima'[0]==='undefined'&&(sliceSource=function sliceArraySource(a,b){return g.slice(a,b).join('');}),r.version='1.1.0-dev-harmony',r.parse=parse,r.Syntax=function(){var a, b={};
typeof Object.create==='function'&&(b=Object.create(null));for(a in d)d.hasOwnProperty(a)&&(b[a]=d[a]);return typeof Object.freeze==='function'&&Object.freeze(b),b;}();}),a;}({}),c.functions=function(a){function toArray(a){var b=a.length;
if(!b)return[];if(b===1)return[a[0]];if(b===2)return[a[0], a[1]];if(b===3)return[a[0], a[1], a[2]];if(b>9)return h.call(a);if(b===4)return[a[0], a[1], a[2], a[3]];if(b===5)return[a[0], a[1], a[2], a[3], a[4]];if(b===6)return[a[0], a[1], a[2], a[3], a[4], a[5]];if(b===7)return[a[0], a[1], a[2], a[3], a[4], a[5], a[6]];if(b===8)return[a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]];if(b===9)return[a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]];}function slice(a,b,c){return a.length?!c&&!b?toArray(a):h.call(a,b,c):[];}function partial(d){var a=[], e=0, b=0;
for(var c=1;c<arguments.length;c++)arguments[c]===j&&b++,a[e++]=arguments[c];return b?function(){var h=arguments.length>b?arguments.length-b:0, f=[], g=0;
for(var c=0;c<e;c++)f[c]=a[c]===j?arguments[g++]:a[c];while(h--)f[c++]=arguments[g++];return d.apply(this,f);}:e?function(){return d.apply(this,i.apply(a,arguments));}:function(){return d.apply(this,arguments);};}function bind(b,c){var d=[], e=0;
for(var a=2;a<arguments.length;a++)d[e++]=arguments[a];return e?function(){return b.apply(c,i.apply(d,arguments));}:function(){return b.apply(c,arguments);};}var h=[].slice, i=[].concat, t=[].push;
a.toArray=toArray,a.slice=slice;var c, f, d;
typeof Function.prototype.bind==='function'&&!('prototype'in Function.prototype.bind)?(d=Function.prototype.bind,c=Function.prototype.call,f=Function.prototype.apply):void function(){var construct=function(){var a=new Array(6), b=['return function(F,_,$){ return new F(', ') }'];
return void function(){var e='';
for(var c=0;c<6;c++){var f='';
a[c]=new Array(6);for(var d=0;d<6;d++)a[c][d]=new Function(b[0]+(e+f).slice(0,-1)+b[1])(),f+='$['+d+'],';e+='_['+c+'],';}}(),function construct(k,h,i){var d=h.length, e=i.length, f=d in a?a[d]:a[d]=[];
if(e in f)var j=f[e];
else{var g='';
for(var c=0;c<d;c++)g+='_['+c+'],';for(var c=0;c<e;c++)g+='$['+c+'],';var j=f[e]=new Function(b[0]+g.slice(0,-1)+b[1])();
}return j(k,h,i);};}();
var a=document.createElement('iframe');
a.style.display='none',document.body.appendChild(a),a.src='javascript:',c=a.contentWindow.Function.prototype.call,f=c.apply,a=null,d=function bind(e){if(typeof this!=='function')throw new TypeError('Function.prototype.bind called on non-callable');var a=this, b=toArray(arguments);
var d=function(){if(this instanceof d)return construct(a,b,arguments);var e=toArray(b);
for(var f=0;f<arguments.length;f++)e[e.length]=arguments[f];return c.apply(a,e);};
return d;};}();var j=partial.__={};
a.partial=partial,a.bind=bind;var l=a.bindbind=bind(d,d), e=a.callbind=partial(bind,c), m=a.applybind=partial(bind,f), n=a.bindapply=m(d), r=a.call=e(c), s=a.apply=e(f);
var o=[null];
a.applyNew=function applyNew(a,b){return new(n(a,o.concat(b)))();},a.pushable=l([].push);var p=e({}.hasOwnProperty), q=e(function(){ }.toString);
var k={ configurable:!0, enumerable:!1, writable:!0, value:b };
var g=Object.getOwnPropertyNames&&!('prototype'in Object.getOwnPropertyNames)?Object.defineProperty:function g(a,b,c){ a[b]=c.value; };
return a.fname=function(){return Function.name==='Function'?function fname(a){return a?a.name||'':'';}:function fname(a){if(typeof a!=='function')return'';if(!p(a,'name')){var b=q(a).match(/^\n?function\s?([\w\$]*)?_?\(/);
b&&(k.value=b[1],g(a,'name',k));}return a.name||'';};}(),a;}(typeof d!=='undefined'?d.exports:{}),c.objects=function(c){function getBrandOf(a){return a===null?'Null':a===b?'Undefined':t(a).slice(8,-1);}function ensureObject(b,a){if(typeof a==='object'?a===null:typeof a!=='function')throw new TypeError(b+' called with non-object '+getBrandOf(a));}function is(a,b){return a===b?a!==0||1/a===1/b:a!==a&&b!==b;}function isObject(a){var b=typeof a;
return b==='object'?a!==null:b==='function';}function enumerate(b){var a=[], c=0;
for(a[c++]in b);return a;}function copy(a){return assign(h(m(a)),a);}function define(h,a,k){switch(typeof p){case'function':k=a;a=e(k);case'string':d.value=k;f(h,a,d);break;case'object':if(a instanceof Array)for(var c=0;c<a.length;c++){var g=a[c];
if(typeof g==='function')var l=e(g);
else if(typeof g==='string'&&typeof a[c+1]!=='function'||!e(a[c+1])){var l=g;
g=a[c+1];}l&&(d.value=g,f(h,l,d));}else if(a){var m=j(a);
for(var c=0;c<m.length;c++){var i=n(a,m[c]);
i&&(i.enumerable='get'in i,f(h,m[c],i));}}}return d.value=b,h;}function safeDefine(h,a,k){try{switch(typeof p){case'function':k=a;a=e(k);case'string':d.value=k;f(h,a,d);break;case'object':if(a instanceof Array)for(var c=0;c<a.length;c++){var g=a[c];
if(typeof g==='function')var l=e(g);
else if(typeof g==='string'&&typeof a[c+1]!=='function'||!e(a[c+1])){var l=g;
g=a[c+1];}if(l){d.value=g;try{f(h,l,d);}catch(a){}}}else if(a){var m=j(a);
for(var c=0;c<m.length;c++)try{var i=n(a,m[c]);
i&&(i.enumerable='get'in i,f(h,m[c],i));}catch(a){}}}}catch(a){}return d.value=b,h;}function assign(d,a,i){switch(typeof p){case'function':d[e(a)]=a;break;case'string':d[a]=i;break;case'object':if(a instanceof Array)for(var b=0;b<a.length;b++){var c=a[b];
if(typeof c==='function'&&e(c))var f=e(c);
else if(typeof c==='string'&&typeof a[b+1]!=='function'||!e(a[b+1])){var f=c;
c=a[b+1];}f&&(d[f]=c);}else if(a){var g=j(a);
for(var b=0;b<g.length;b++){var h=g[b];
d[h]=a[h];}}}return d;}function assignAll(b,c){for(var a=0;a<c.length;a++)assign(b,c[a]);return b;}function inherit(a,b,c,d){return define(a,'inherits',b),a.prototype=h(b.prototype),define(a.prototype,'constructor',a),c&&define(a.prototype,c),d&&define(a.prototype,d),a;}function Hash(){}var k=a('./functions'), r=k.callbind, u=k.bind, e=k.fname;
var t=r({}.toString), l=r({}.hasOwnProperty);
c.hasOwn=l;var o={ __proto__:[] }instanceof Array, g=!(!Object.getOwnPropertyNames||'prototype'in Object.getOwnPropertyNames);
var d={ configurable:!0, enumerable:!1, writable:!0, value:b };
c.getBrandOf=getBrandOf,c.is=is,c.isObject=isObject;if(g)var h=c.create=Object.create;
else{var i=function(){};
var p=[ 'constructor', 'hasOwnProperty', 'propertyIsEnumerable', 'isPrototypeOf', 'toLocaleString', 'toString', 'valueOf' ];
var h=c.create=function(b){var a=document.createElement('iframe');
a.style.display='none',document.body.appendChild(a),a.src='javascript:',i.prototype=a.contentWindow.Object.prototype,document.body.removeChild(a);while(p.length)delete i.prototype[p.pop()];return function h(a){return a===null?new i():(b.prototype=a,a=new b(),b.prototype=null,a);};}(function(){});
}var j=c.keys=function(){return g?Object.keys:function keys(a){var b=[], d=0;
for(var c in a)l(a,c)&&(b[d++]=c);return b;};}();
var m=c.getPrototypeOf=function(){return g?Object.getPrototypeOf:o?function m(a){return ensureObject('getPrototypeOf',a),a.__proto__;}:function m(a){ensureObject('getPrototypeOf',a);var b=a.constructor;
if(typeof b==='function'){var c=b.prototype;
if(a!==c)return c;else if(b._super)return b._super.prototype;else{delete a.constructor;var d=b._super=a.constructor;
return a.constructor=b,d?d.prototype:a instanceof Object?Object.prototype:null;}}if(a instanceof i)return null;if(a instanceof Object)return Object.prototype;};}();
var s=c.setPrototypeOf=function(){return o?function s(a,b){ensureObject('setPrototypeOf',a),a.__proto__=b;}:function s(a,b){};}();
var f=c.defineProperty=function(){return g?Object.defineProperty:function f(a,b,c){try{a[b]=c.value;}catch(a){}return a;};}();
var n=c.describeProperty=function(){return g?Object.getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){ensureObject('getOwnPropertyDescriptor',a);if(l(a,b))return{ value:a[b] };};}();
var v=c.properties=g?Object.getOwnPropertyNames:j;
c.isExtensible=g?Object.isExtensible:function isExtensible(){return!0;},c.enumerate=enumerate,c.copy=copy,c.define=define,c.safeDefine=safeDefine,c.assign=assign,c.assignAll=assignAll;var q=c.hide=function(){if(g){var a={ enumerable:!1 };
return function q(b,c){f(b,c,a);};}return function q(){};}();
return c.inherit=inherit,c.Hash=Hash,Hash.prototype=h(null),c;}(typeof d!=='undefined'?d.exports:{}),c.iteration=function(c){function Iterator(){}function Item(a,b){this[0]=a,this[1]=b;}function createItem(a,b){return new Item(a,b);}function iterate(a,e,c){if(a==null)return;var f=typeof a;
c=c||a;if(f==='number'||f==='boolean')e.call(c,new Item(0,a));else{a=Object(a);var i=a.__iterator__||a.iterator;
if(typeof i==='function'){var g=i.call(a);
if(g&&typeof g.next==='function')try{while(1)e.call(c,g.next());}catch(a){if(a===h)return;throw a;}}if(f!=='function'&&a.length)try{for(var b=0;b<a.length;b++)e.call(c,new Item(b,a[b]));}catch(a){if(a===h)return;throw a;}else{var j=d(a);
try{for(var b=0;b<j.length;b++){var k=j[b];
e.call(c,new Item(k,a[k]));}}catch(a){if(a===h)return;throw a;}}}}function each(a,h,i){if(!a)return;if(i===b){if(typeof a==='object'&&'length'in a)for(var c=0;c<a.length;c++)h(a[c],c,a);else if(f(a)){var e=d(a);
for(var c=0;c<e.length;c++){var g=e[c];
h(a[g],g,a);}}}else if(typeof a==='object'&&'length'in a)for(var c=0;c<a.length;c++)h.call(i,a[c],c,a);else if(f(a)){var e=d(a);
for(var c=0;c<e.length;c++){var g=e[c];
h.call(i,a[g],g,a);}}}function map(c,h,i){if(i===b){if(typeof c==='object'&&'length'in c){var e=new Array(c.length);
for(var a=0;a<c.length;a++)e[a]=h(c[a],a,c);}else if(f(c)){var e=d(c);
for(var a=0;a<e.length;a++){var g=e[a];
e[a]=h(c[g],g,c);}}}else if(typeof c==='object'&&'length'in c){var e=new Array(c.length);
for(var a=0;a<c.length;a++)e[a]=h.call(i,c[a],a,c);}else if(f(c)){var e=d(c);
for(var a=0;a<e.length;a++){var g=e[a];
e[a]=h.call(i,c[g],g,c);}}return e;}function fold(b,c,d){if(d)var e=c, a=0;
else{typeof c==='string'?d=fold[c]:d=c;var e=b[0], a=1;
}for(;a<b.length;a++)e=d(e,b[a],a,b);return e;}function repeat(d,b,c){if(typeof b==='function'){c=b;for(var a=0;a<d;a++)c();}else for(var a=0;a<d;a++)c.apply(this,b);}function generate(b,d){var c=new Array(b);
for(var a=0;a<b;a++)c[a]=d(a,b,c);return c;}var g=a('./objects'), i=a('./functions');
var j=g.define, d=g.keys, f=g.isObject, k=i.call, l=i.apply;
var h=c.StopIteration=e.StopIteration||{};
return j(Iterator.prototype,[function __iterator__(){return this;}]),c.Iterator=Iterator,c.Item=Item,j(Item.prototype,{ isItem:!0, length:2 },[function toString(){return this[0]+'';}, function valueOf(){return this[1];}]),c.createItem=createItem,c.iterate=iterate,c.each=each,c.map=map,c.fold=fold,fold['+']=function(a,b){return a+b;},fold['*']=function(a,b){return a-b;},fold['-']=function(a,b){return a*b;},fold['/']=function(a,b){return a/b;},c.repeat=repeat,c.generate=generate,c;}(typeof d!=='undefined'?d.exports:{}),c.utility=function(c){var e=a('./objects'), f=a('./functions');
var g=e.Hash, h=f.applybind;
var i=Math.random().toString(36).slice(2), j=Math.random()*(1<<30)|0;
c.uid=function uid(){return i+j++;};var k=0;
c.tag=function tag(a){a&&a.id===b&&(a.id=k++);},c.pushAll=h([].push,[]),c.nextTick=typeof process!=='undefined'?process.nextTick:function nextTick(a){setTimeout(a,1);},c.numbers=function(a){return function numbers(b,c){!isFinite(c)&&(c=b,b=0);var d=c-b, e;
if(c>a.length)while(d--)a[e=d+b]=''+e;return a.slice(b,c);};}([]),c.quotes=function quotes(a){a=(''+a).replace(/\\/g,'\\\\').replace(/\n/g,'\\n');var c=0, d=0, b=a.length;
while(b--)a[b]==='"'?d++:a[b]==='\''&&c++;return c>d?'"'+a.replace(/"/g,'\\"')+'"':'\''+a.replace(/'/g,'\\\'')+'\'';},c.unique=function unique(b){var c=new g(), d=[];
for(var a=0;a<b.length;a++)!(b[a]in c)&&(c[b[a]]=!0,d.push(b[a]));return d;};var d=9007199254740992;
return c.toInteger=function toInteger(a){return a===Infinity?d:a===-Infinity?-d:a-0>>0;},c.isNaN=function isNaN(a){return a!==a;},c.isFinite=function isFinite(a){return typeof value==='number'&&value===value&&value<Infinity&&value>-Infinity;},c.isInteger=function isInteger(a){return typeof a==='number'&&a===a&&a>-d&&a<d&&a>>0===a;},c;}(typeof d!=='undefined'?d.exports:{}),c.Queue=function(h){function QueueIterator(a){this.queue=a,this.index=a.index;}function Queue(a){this.index=this.length=0,a!=null?a instanceof Queue?(this.items=a.items.slice(a.front),this.length=this.items.length):(this.items=[],j(a,this.push,this)):this.items=[];}var b=a('./objects'), d=a('./functions'), c=a('./iteration');
var m=b.isObject, e=b.define, i=b.inherit, l=d.toArray, k=d.pushable, j=c.iterate, g=c.Iterator, f=c.StopIteration;
return i(QueueIterator,g,[function next(){if(this.index===this.queue.items.length)throw f;return this.queue.items[this.index++];}]),e(Queue.prototype,[function push(a){return this.items[this.items.length]=a,this.length++,this;},function shift(){if(this.length){var a=this.items[this.index];
return this.items[this.index++]=null,this.length--,this.index===500&&(this.items=this.items.slice(this.index),this.index=0),a;}},function empty(){return this.length=0,this.index=0,this.items=[],this;},function front(){return this.items[this.index];},function item(a){return this.items[this.index+a];},function __iterator__(){return new QueueIterator(this);}]),h.exports=Queue;}(typeof d!=='undefined'?d:{}),c.traversal=function(f){function clone(d,f){function recurse(c,d,b){try{var e=c[b];
if(!l(e))return d[b]=e;if(c[b]===e){if(r(c[b],a))return d[b]=c[b][a];d[b]=enqueue(c[b]);}}catch(a){}}function enqueue(d){var f=d instanceof Array?[]:q(B(d));
return c.push(d),e(g(d),function(a){b.push([d, f, a]);}),d[a]=f,f;}var b=new D(), a=j(), c=[], g=f?A:k, h=enqueue(d);
while(b.length)recurse.apply(this,b.shift());return e(c,function(b){delete b[a];}),h;}function createVisitor(a){return new g(a);}function visit(a,b){return new g(b).visit(a);}var c=a('./objects'), p=a('./functions'), w=a('./utility'), i=a('./iteration'), D=a('./Queue'), v=a('./Stack');
var l=c.isObject, r=c.hasOwn, q=c.create, m=c.define, k=c.keys, A=c.properties, B=c.getPrototypeOf, C=c.Hash, e=i.each, t=i.iterate, u=i.Item, s=i.StopIteration, j=w.uid, x=p.toArray, y=p.fname;
var z={}.hasOwnProperty;
f.clone=clone;var d=f.walk=function(){return typeof Set!=='undefined'&&typeof Set.prototype.add==='function'?function d(m,o){var i=[[m]], c=1, g=new Set();
do{var b=i[--c], j=k(b), l=j.length;
for(var e=0;e<l;e++){var a=b[j[e]];
if(a&&typeof a==='object'&&!g.has(a)){g.add(a);var f=o(a,b);
if(f===h)i[c++]=a;else if(f===n)return;}}}while(c);}:function d(q,r){var i=[[q]], l=[], b=1, e=0, c=j();
do{var g=i[--b], o=k(g), p=o.length;
for(var f=0;f<p;f++){var a=g[o[f]];
if(a&&typeof a==='object'&&!z.call(a,c)){a[c]=!0,l[e++]=a;var m=r(a,g);
if(m===h)i[b++]=a;else if(m===n){b=0;break;}}}}while(b);while(e--)delete l[e][c];};}();
var n=d.BREAK=0, o=d.CONTINUE=1, h=d.RECURSE=2;
f.collector=function(){function path(){var a=x(arguments);
for(var b=0;b<a.length;b++)if(typeof a[b]==='function')return function(b){for(var c=0;c<a.length;c++){var d=a[c], e=typeof d;
e==='string'?b=b[d]:e==='function'&&(b=d(b));}return b;};return function(b){for(var c=0;c<a.length;c++)b=b[a[c]];return b;};}function collector(c){var e=new C();
for(var a in c)c[a]instanceof Array?e[a]=path(c[a]):typeof c[a]==='function'?e[a]=c[a]:e[a]=c[a];return function(c){function walker(f){if('length'in f)return h;var c=e[f.type];
if(c===!0)a[a.length]=f;else if(c===h||c===o)return c;else if(typeof c==='string')f[c]&&d(f[c],walker);else if(typeof c==='function'){var g=c(f);
g!==b&&(a[a.length]=g);}return o;}var a=[];
return d(c,walker),a;};}return collector;}();var g=f.Visitor=function(){function VisitorHandlers(a){var b=this;
a instanceof Array?e(a,function(a){b[y(a)]=a;}):l(a)&&e(a,function(a,c){b[c]=a;});}function VisitorState(a,b,c){var d=this.stack=new v([[c]]);
this.dispatcher=a,this.handlers=b,this.branded=[],this.tag=j(),this.context={ push:function push(a){d.push(a);} };}function g(b,a){a instanceof VisitorHandlers?this.handlers=a:this.handlers=new VisitorHandlers(a),this.dispatcher=b;}return VisitorHandlers.prototype=q(null),m(VisitorState.prototype,[function cleanup(){e(this.branded,function(a){delete a[this.tag];},this),this.branded=[],this.tag=j();},function next(a){a instanceof u&&(a=a[1]);if(l(a)&&!r(a,this.tag)){m(a,this.tag,!0),this.branded.push(a);if(a instanceof Array)e(a.slice().reverse(),this.context.push);else{var b=this.dispatcher(a);
if(b===o)return;if(b in this.handlers)var c=this.handlers[b].call(this.context,a);
else if(this.handlers.__noSuchHandler__)var c=this.handlers.__noSuchHandler__.call(this.context,a);
if(c==n)throw s;if(c===h){var d=[];
t(a,d.push,d),e(d.reverse(),this.context.push);}}}}]),m(g.prototype,[function visit(b){if(b instanceof VisitorState)var a=b;
else var a=new VisitorState(this.dispatcher,this.handlers,b);
try{while(a.stack.length)a.next(a.stack.pop());a.cleanup();}catch(b){if(b!==s)throw b;var d=this;
var c=function(){return c=function(){},d.visit(a);};
return function resume(){return c();};}}]),g;}();
return f.createVisitor=createVisitor,f.visit=visit,f;}(typeof d!=='undefined'?d.exports:{}),c.Stack=function(h){function StackIterator(a){this.stack=a,this.index=a.length;}function Stack(a){this.empty(),a!=null&&k(a,this.push,this);}var d=a('./objects'), f=a('./functions'), c=a('./iteration');
var e=d.define, i=d.inherit, l=f.toArray, k=c.iterate, j=c.Iterator, g=c.StopIteration;
return i(StackIterator,j,[function next(){if(!this.index)throw g;return this.stack[--this.index];}]),e(Stack.prototype,[function push(a){return this.items.push(a),this.length++,this.top=a,this;},function pop(){return this.length--,this.top=this.items[this.length-1],this.items.pop();},function empty(){this.length=0,this.items=[],this.top=b;},function find(c,b){var a=this.length;
b||(b=this);while(a--)if(c.call(b,this.items[a],a,this))return this.items[a];},function filter(d,b){var a=this.length, c=new Stack();
b||(b=this);for(var a=0;a<this.length;a++)d.call(b,this[a],a,this)&&c.push(this[a]);return c;},function __iterator__(){return new StackIterator(this);}]),h.exports=Stack;}(typeof d!=='undefined'?d:{}),c.LinkedList=function(g){function LinkedListIterator(a){this.item=a.sentinel,this.sentinel=a.sentinel;}function Item(a){this.data=a;}function Sentinel(){this.next=null;}function find(a,c){if(a.lastFind&&a.lastFind.next.data===c)return a.lastFind;var b=a.tail, d=0;
while((b=b.next)!==a.sentinel)if(b.next.data===c)return a.lastFind=b;}function LinkedList(){var a=new Sentinel();
this.size=0,c(this,{ sentinel:a, tail:a, lastFind:null });}var d=a('./objects'), e=a('./iteration');
var c=d.define, f=d.inherit, h=e.Iterator, i=e.StopIteration;
return f(LinkedListIterator,h,[function next(){this.item=this.item.next;if(this.item===this.sentinel)throw i;return this.item.data;}]),c(Item.prototype,[function link(a){return a.next=this,a;},function unlink(){var a=this.next;
return this.next=a.next,a.next=null,this;},function clear(){var a=this.data;
return this.data=b,this.next=null,a;}]),f(Sentinel,Item,[function unlink(){return this;}, function clear(){}]),c(LinkedList.prototype,[function push(a){return this.tail=this.tail.link(new Item(a)),++this.size;},function pop(){var a=this.tail, c=a.data;
return this.tail=a.next,a.next=null,a.data=b,c;},function insert(c,d){var a=find(this,d);
if(a){var b=new Item(c);
return b.next=a.next,a.next=b,++this.size;}return!1;},function remove(b){var a=find(this,b);
return a?(a.unlink(),--this.size):!1;},function replace(c,d){var a=find(this,c);
if(a){var b=new Item(d);
return b.next=a.next.next,a.next.next=null,a.next=b,!0;}return!1;},function has(a){return!!find(this,a);},function items(){var a=this.tail, b=[];
while(a!==this.sentinel)b.push(a.data),a=a.next;return b;},function clear(){var b, a=this.tail;
while(a!==this.sentinel)b=a.next,a.clear(),a=b;return this.tail=this.sentinel,this.size=0,this;},function clone(){var a=this.items(), b=new LinkedList(), c=a.length;
while(c--)b.push(a[c]);return b;},function __iterator__(){return new LinkedListIterator(this);}]),g.exports=LinkedList;}(typeof d!=='undefined'?d:{}),c.DoublyLinkedList=function(f){function DoublyLinkedListIterator(a){this.item=a.sentinel,this.sentinel=a.sentinel;}function Item(a,b){this.data=a,this.after(b);}function Sentinel(a){this.next=this,this.prev=this;}function find(a,c){if(a.lastFind&&a.lastFind.data===c)return a.lastFind;var b=a.sentinel, d=0;
while((b=b.next)!==a.sentinel)if(b.data===c)return a.lastFind=b;}function DoublyLinkedList(){this.size=0,b(this,{ sentinel:new Sentinel(), lastFind:null });}var c=a('../lib/objects'), d=a('../lib/iteration');
var b=c.define, e=c.inherit, g=d.Iterator, h=d.StopIteration;
return e(DoublyLinkedListIterator,g,[function next(){this.item=this.item.next;if(this.item===this.sentinel)throw h;return this.item.data;}]),b(Item.prototype,[function after(a){return this.relink(a),this;},function before(a){return this.prev.relink(a),this;},function relink(a){return this.next&&(this.next.prev=this.prev,this.prev.next=this.next),this.prev=a,this.next=a.next,a.next.prev=this,a.next=this,this;},function unlink(){return this.next&&(this.next.prev=this.prev),this.prev&&(this.prev.next=this.next),this.prev=this.next=null,this;},function clear(){var a=this.data;
return this.next=this.prev=this.data=null,a;}]),e(Sentinel,Item,[function unlink(){return this;}]),b(DoublyLinkedList.prototype,[function first(){return this.sentinel.next.data;},function last(){return this.sentinel.prev.data;},function unshift(a){var b=new Item(a,this.sentinel);
return this.size++;},function push(a){var b=new Item(a,this.sentinel.prev);
return this.size++;},function insert(b,c){var a=find(this,c);
return a?(a=new Item(b,a),this.size++):!1;},function replace(b,c){var a=find(this,b);
return a?(new Item(c,a),a.unlink(),!0):!1;},function insertBefore(b,c){var a=find(this,c);
return a?(a=new Item(b,a.prev),this.size++):!1;},function pop(){if(this.size)return this.size--,this.sentinel.prev.unlink().data;},function shift(){if(this.size)return this.size--,this.sentinel.next.unlink().data;},function remove(b){var a=find(this,b);
return a?(a.unlink(),!0):!1;},function has(a){return!!find(this,a);},function items(){var a=this.sentinel, b=[];
while((a=a.next)!==this.sentinel)b.push(a.data);return b;},function clear(){var b, a=this.sentinel.next;
while(a!==this.sentinel)b=a.next,a.clear(),a=b;return this.lastFind=null,this.size=0,this;},function clone(){var a=this.sentinel, b=new DoublyLinkedList();
while((a=a.next)!==this.sentinel)b.push(a.data);return b;},function __iterator__(){return new DoublyLinkedListIterator(this);}]),f.exports=DoublyLinkedList;}(typeof d!=='undefined'?d:{}),c.HashMap=function(m){function HashMapIterator(a,b){this.item=a.list.sentinel,this.sentinel=a.list.sentinel,this.type=b||'items';}function HashMap(a){f(this,'list',new k()),this.clear(),a!=null&&e(a,function(a){a&&typeof a==='object'&&a.length===2&&this.set(a[0],a[1]);},this);}var c=a('./objects'), h=a('./functions'), i=a('./iteration'), k=a('./DoublyLinkedList');
var f=c.define, l=c.inherit, j=c.assign, d=c.Hash, g=h.bind, e=h.iterate, n=i.Iterator, o=i.StopIteration;
var b=j(new d(),{ 'string':'strings', 'number':'numbers', 'undefined':'others', 'boolean':'others', 'object':'others' });
return l(HashMapIterator,n,[function next(){var a=this.item=this.item.next;
if(a===this.sentinel)throw o;else return this.type==='key'?a.key:this.type==='value'?a.data:[a.key, a.data];}]),f(HashMap.prototype,[function get(a){var c=this[b[typeof a]][a];
if(c)return c.data;},function set(c,d){var e=this[b[typeof c]], a=e[c];
return a?a.data=d:(this.list.push(d),a=this.list.sentinel.prev,a.key=c,e[c]=a),this.size=this.list.size,d;},function has(a){return a in this[b[typeof a]];},function remove(a){var c=this[b[typeof a]];
return a in c?(c[a].unlink(),delete c[a],this.size=this.list.size,!0):!1;},function clear(){f(this,{ strings:new d(), numbers:new d(), others:new d() }),this.list.clear(),this.size=0;},function keys(){var a=[];
return e(this.__iterator__('key'),g(_push,a)),a;},function values(){var a=[];
return e(this.__iterator__('value'),g(_push,a)),a;},function items(){var a=[];
return e(this,g(_push,a)),a;},function __iterator__(a){return new HashMapIterator(this,a);}]),m.exports=HashMap;}(typeof d!=='undefined'?d:{}),c.HashSet=function(i){function HashSetIterator(a){this.item=a.list.sentinel,this.sentinel=a.list.sentinel;}function HashSet(){e(this,'list',new k()),this.clear();}var b=a('./objects'), f=a('./functions'), g=a('./iteration'), k=a('./DoublyLinkedList');
var e=b.define, h=b.inherit, j=b.assign, c=b.Hash, l=f.bind, m=f.iterate, n=g.Iterator, o=g.StopIteration;
var d=j(new c(),{ 'string':'strings', 'number':'numbers', 'undefined':'others', 'boolean':'others', 'object':'others' });
return h(HashSetIterator,n,[function next(){var a=this.item=this.item.next;
if(a===this.sentinel)throw o;else return a.data;}]),e(HashSet.prototype,[function add(a){var b=this[d[typeof a]], c=b[a];
return!c&&(this.list.push(a),b[a]=this.list.sentinel.prev,this.size=this.list.size),a;},function has(a){return a in this[d[typeof a]];},function remove(a){var b=this[d[typeof a]];
return a in b?(b[a].unlink(),delete b[a],this.size=this.list.size,!0):!1;},function clear(){e(this,{ strings:new c(), numbers:new c(), others:new c() }),this.list.clear(),this.size=0;},function values(){var a=[];
return m(this,l(_push,a)),a;},function __iterator__(){return new HashSetIterator(this);}]),i.exports=HashSet;}(typeof d!=='undefined'?d:{}),c.ObjectMap=function(j){function ObjectMapIterator(a,b){this.item=a.list.sentinel,this.sentinel=a.list.sentinel,this.type=b||'items';}function tag(a,b){if(a.tag in b)return b[a.tag];var d=h();
return c(b,a.tag,d),d;}function ObjectMap(a){c(this,{ list:new n(), tag:h() }),this.clear(),a!=null&&d(a,function(a){a&&typeof a==='object'&&a.length===2&&this.set(a[0],a[1]);},this);}var b=a('./objects'), f=a('./functions'), g=a('./iteration'), m=a('./utility'), n=a('./DoublyLinkedList');
var c=b.define, i=b.inherit, p=b.assign, l=b.Hash, h=m.uid, e=f.bind, d=f.iterate, k=g.Iterator, o=g.StopIteration;
return i(ObjectMapIterator,k,[function next(){var a=this.item=this.item.next;
if(a===this.sentinel)throw o;else return this.type==='key'?a.key:this.type==='value'?a.data:[a.key, a.data];}]),c(ObjectMap.prototype,[function get(b){var a=this.objects[b[this.tag]];
if(a)return a.data;},function set(c,b){var d=tag(this,c), a=this.objects[d];
return a?a.data=b:(this.list.push(b),a=this.list.sentinel.prev,a.key=c,this.objects[d]=a),this.size=this.list.size,b;},function has(a){return!!this.objects[a[this.tag]];},function remove(a){if(this.tag in a){var b=a[this.tag], c=this.objects[b];
if(c)return c.unlink(),this.objects[b]=null,this.size=this.list.size,!0;}return!1;},function clear(){c(this,'objects',new l()),this.list.clear(),this.size=0;},function forEach(c,b){var a=this.list.sentinel, d=a;
b=b||this;while(a.next!==d)a=a.next,c.call(b,a.data,a.key,this);},function keys(){var a=[];
return d(this.__iterator__('key'),e(_push,a)),a;},function values(){var a=[];
return d(this.__iterator__('value'),e(_push,a)),a;},function items(){var a=[];
return d(this,e(_push,a)),a;},function __iterator__(a){return new ObjectMapIterator(this,a);}]),j.exports=ObjectMap;}(typeof d!=='undefined'?d:{}),c.Emitter=function(e){function Emitter(){'_events'in this||c(this,'_events',new h());}var b=a('./objects'), f=a('./iteration'), i=a('./utility'), g=a('./ObjectMap');
var c=b.define, h=b.Hash, d=f.each;
return c(Emitter.prototype,[function on(c,e,a){var b=this._events;
a=a||this,d(c.split(/\s+/),function(c){!(c in b)&&(b[c]=new g()),b[c].set(e,a);});},function off(b,c){var a=this._events;
d(b.split(/\s+/),function(b){b in a&&a[b].remove(c);});},function once(b,c,a){a=a||this,this.on(b,function one(){this.off(b,one),c.apply(a,arguments);});},function emit(b,c,d,e,f){var a=this._events['*'];
a&&a.forEach(function(a,g){g.call(a,b,c,d,e,f);}),a=this._events[b],a&&a.forEach(function(a,b){b.call(a,c,d,e,f);});}]),e.exports=Emitter;}(typeof d!=='undefined'?d:{}),c.Feeder=function(b){function Feeder(b,c,e){var a=this;
this.queue=new d(),this.active=!1,this.pace=e||5,this.feeder=function feeder(){var d=Math.min(a.pace,a.queue.length);
while(a.active&&d--)b.call(c,a.queue.shift());a.queue.length?a.active&&setTimeout(feeder,15):a.active=!1;};}var c=a('./objects'), d=a('./Queue');
var e=c.define;
return e(Feeder.prototype,[function push(a){return this.queue.push(a),!this.active&&(this.active=!0,setTimeout(this.feeder,15)),this;},function pause(){this.active=!1;}]),b.exports=Feeder;}(typeof d!=='undefined'?d.exports:{}),c.PropertyList=function(i){function PropertyList(){this.hash=new f(),this.props=[],this.holes=0,this.length=0;}var d=a('./objects'), g=a('./iteration');
var h=d.isObject, e=d.define, j=d.inherit, f=d.Hash, k=g.Iterator, l=g.StopIteration;
var c=a('./utility').uid();
var PropertyListIterator=function(){function PropertyListIterator(c,b){this.list=c,this.type=b?a[b]:'items',this.index=0;}var a={ keys:0, values:1, attributes:2 };
return j(PropertyListIterator,k,[function next(){var b=this.list.props, a;
while(!a){if(this.index>=b.length)throw l;a=b[this.index++];}return this.type==='items'?a:a[this.type];}]),PropertyListIterator;}();
return e(PropertyList.prototype,[function get(a){var e=a==='__proto__'?c:a, d=this.hash[e];
if(d!==b)return this.props[d][1];},function set(d,e){var f=d==='__proto__'?c:d, a=this.hash[f], g;
return a===b?(a=this.hash[f]=this.props.length,g=this.props[a]=[d, e, 7],this.length++):this.props[a][1]=e,!0;},function query(a){var e=a==='__proto__'?c:a, d=this.hash[e];
return d===b?null:this.props[d][2];},function update(a,e){var f=a==='__proto__'?c:a, d=this.hash[f];
return d!==b?(this.props[d][2]=e,!0):!1;},function describe(a){var e=a==='__proto__'?c:a, d=this.hash[e];
return d===b?null:this.props[d];},function e(f,g,h){var i=f==='__proto__'?c:f, a=this.hash[i], d;
return a===b?(a=this.hash[i]=this.props.length,d=this.props[a]=[f, g, h],this.length++):(d=this.props[a],d[1]=g,d[2]=h),!0;},function remove(a){var d=a==='__proto__'?c:a, e=this.hash[d];
return e!==b?(this.hash[d]=b,this.props[e]=b,this.length--,!0):!1;},function has(a){var d=a==='__proto__'?c:a;
return this.hash[d]!==b;},function setProperty(d){var e=d[0], f=e==='__proto__'?c:e, a=this.hash[f];
a===b&&(a=this.hash[f]=this.props.length,this.length++),this.props[a]=d;},function hasAttribute(a,d){var e=a==='__proto__'?c:a, b=this.query(e);
if(b!==null)return(b&d)>0;},function compact(){var d=this.props, g=d.length, e=0, a;
this.hash=new f(),this.props=[],this.holes=0;for(var b=0;b<g;b++)if(a=d[b]){var h=a[0]==='__proto__'?c:a[0];
this.props[e]=a,this.hash[h]=e++;}},function each(d,a){var e=this.props.length, f=0, c;
a||(a=this);for(var b=0;b<e;b++)(c=this.props[b])&&d.call(a,c);},function map(e,a){var c=[], f=this.props.length, g=0, d;
a||(a=this);for(var b=0;b<f;b++)(d=this.props[b])&&(c[g]=e.call(a,d));return c;},function translate(e,b){var a=new PropertyList(), d=0;
return a.length=this.length,b||(b=this),this.each(function(f){f=e.call(b,f);var g=f[0]==='__proto__'?c:f[0];
a.props[d++]=f,a.hash[g]=d;}),a;},function filter(e,a){var b=new PropertyList(), d=0;
return a||(a=this),this.each(function(f){if(e.call(a,f)){var g=f[0]==='__proto__'?c:f[0];
b.props[d]=f,b.hash[g]=d++;}}),b;},function clone(a){return this.translate(function(b){return a?b.slice():b;});},function keys(){return this.map(function(a){return a[0];});},function values(){return this.map(function(a){return a[1];});},function items(){return this.map(function(a){return a.slice();});},function merge(a){each(a,this.define,this);},function __iterator__(a){return new PropertyListIterator(this,a);}]),a('util')&&void function(){function Token(a){this.value=a+'';}var b=a('util').inspect;
Token.prototype.inspect=function(){return this.value;},e(PropertyList.prototype,function inspect(){var a=new f();
return this.each(function(b){var c=[];
if(typeof b[0]==='string'){var d=b[0];
!(b[2]&1)&&c.push('hidden');}else{var d='_@_@'+b[0].Name;
b[0].Private&&c.push('private');}!(b[2]&2)&&c.push('frozen'),b[2]&8?c.push('accessor'):!(b[2]&4)&&c.push('readonly'),a[d]=new Token(c.join('/')+' '+(h(b[1])?b[1].BuiltinBrand:b[1]));}),b(a).replace(/'_@_@(\w+)'/g,'@$1');});}(),i.exports=PropertyList;}(typeof d!=='undefined'?d:{}),c.buffers=function(i,g){function DataView(a,c,d){if(!(a instanceof h))throw new TypeError('DataView must be initialized with an ArrayBuffer');this.byteOffset=c===b?a.byteOffset|0:c>>>0,this.byteLength=d===b?a.byteLength-this.byteOffset|0:d>>>0,this.buffer=a;}function boundsCheck(a,b,c){if(a<0)throw new RangeError('Tried to write to a negative index');if(a+b>c)throw new RangeError('Tried to write '+b+' bytes past the end of a buffer at index '+a+' of '+c);}function readFloat(h,i,o,f,k){var b, c, l=k*8-f-1, m=(1<<l)-1, n=m>>1, a=-7, d=o?k-1:0, j=o?-1:1, g=h[i+d];
d+=j,b=g&(1<<-a)-1,g>>=-a,a+=l;for(;a>0;b=b*256+h[i+d],d+=j,a-=8);c=b&(1<<-a)-1,b>>=-a,a+=f;for(;a>0;c=c*256+h[i+d],d+=j,a-=8);if(b===0)b=1-n;else if(b===m)return c?NaN:g?-Infinity:Infinity;else c+=e(2,f),b-=n;return(g?-1:1)*c*e(2,b-f);}function writeFloat(m,k,a,r,c,p){var b, d, g, i=p*8-c-1, j=(1<<i)-1, f=j>>1, q=c===23?e(2,-24)-e(2,-77):0, h=r?0:p-1, l=r?1:-1, s=a<0||a===0&&1/a<0?1:0;
a<0&&(a=-a),isNaN(a)||a===Infinity?(d=isNaN(a)?1:0,b=j):(b=n(a)/o|0,a*(g=e(2,-b))<1&&(b--,g*=2),b+f>=1?a+=q/g:a+=q*e(2,1-f),a*g>=2&&(b++,g/=2),b+f>=j?(d=0,b=j):b+f>=1?(d=(a*g-1)*e(2,c),b+=f):(d=a*e(2,f-1)*e(2,c),b=0));for(;c>=8;m[k+h]=d&255,h+=l,d/=256,c-=8);b=b<<c|d,i+=c;for(;i>0;m[k+h]=b&255,h+=l,b/=256,i-=8);m[k+h-l]|=s*128;}if('DataView'in i)return g.DataView=i.DataView,g.ArrayBuffer=i.ArrayBuffer,g;var k=a('./objects'), l=k.define, q=k.create, m=k.hide;
var n=Math.log, e=Math.pow, o=Math.LN2, p=[].slice, j=String.fromCharCode;
var f={ little:{ 1:[0], 2:[1, 0], 4:[3, 2, 1, 0], 8:[7, 6, 5, 4, 3, 2, 1, 0] }, big:{ 1:[0], 2:[0, 1], 4:[0, 1, 2, 3], 8:[0, 1, 2, 3, 4, 5, 6, 7] } };
var c=q(null), d=[];
void function(a){for(a=0;a<256;++a)c[d[a]=j(a)]=a,a>=128&&(c[j(63232+a)]=a);}(),g.DataView=DataView,l(DataView.prototype,[function getUint8(a){var b=this.buffer._data, c=a+this.byteOffset;
return b[c];},function getUint16(d,e){var a=this.buffer._data, b=(e?f.little:f.big)[2], c=d+this.byteOffset;
return a[c+b[1]]<<8|a[c+b[0]];},function getUint32(d,e){var a=this.buffer._data, b=(e?f.little:f.big)[4], c=d+this.byteOffset;
return((a[c+b[3]]<<8|a[c+b[2]])<<8|a[c+b[1]])<<8|a[c+b[0]];},function getInt8(b){var a=this.getUint8(b);
return a&128?a-256:a;},function getInt16(b,c){var a=this.getUint16(b,c);
return a&32768?a-65536:a;},function getInt32(b,c){var a=this.getUint32(b,c);
return a&2147483648?a-4294967296:a;},function getFloat32(a,b){return readFloat(this.buffer._data,this.byteOffset+a,b,23,4);},function getFloat64(a,b){return readFloat(this.buffer._data,this.byteOffset+a,b,52,8);},function setUint8(c,d){var a=this.buffer._data, b=c+this.byteOffset;
boundsCheck(b,1,a.length),a[b]=d&255;},function setUint16(e,c,g){var a=this.buffer._data, d=(g?f.little:f.big)[2], b=e+this.byteOffset;
boundsCheck(b,2,a.length),a[b+d[0]]=c&255,a[b+d[1]]=(c&65280)>>>8;},function setUint32(e,c,g){var a=this.buffer._data, d=(g?f.little:f.big)[4], b=e+this.byteOffset;
boundsCheck(b,4,a.length),a[b+d[0]]=c&255,a[b+d[1]]=(c&65280)>>>8,a[b+d[2]]=(c&16711680)>>>16,a[b+d[3]]=(c&4278190080)>>>24;},function setInt8(b,a){a<0&&(a|=256),this.setUint8(b,a);},function setInt16(b,a,c){a<0&&(a|=65536),this.setUint16(b,a,c);},function setInt32(b,a,c){a<0&&(a|=4294967296),this.setUint32(b,a,c);},function setFloat32(a,b,c){writeFloat(this.buffer._data,this.byteOffset+a,b,c,23,4);},function setFloat64(a,b,c){writeFloat(this.buffer._data,this.byteOffset+a,b,c,52,8);}]);var h=g.ArrayBuffer=function(){function readString(a){var d=[], e=a.length%8, b=0;
while(e--)d[b]=c[a[b++]];e=a.length>>3;while(e--)d.push(c[a[b++]],c[a[b++]],c[a[b++]],c[a[b++]],c[a[b++]],c[a[b++]],c[a[b++]],c[a[b++]]);return d;}function writeString(a){try{return j.apply(null,a);}catch(a){}var c='', e=a.length%8, b=0;
while(e--)c+=d[a[b++]];e=a.length>>3;while(e--)c+=d[a[b++]]+d[a[b++]]+d[a[b++]]+d[a[b++]]+d[a[b++]]+d[a[b++]]+d[a[b++]]+d[a[b++]];return c;}function zerodArray(a){var b=new Array(a);
while(a--)b[a]=0;return b;}function h(a){if(a==null)this._data=[];else{var b=typeof a;
b==='number'?this._data=zerodArray(a):b==='string'?this._data=readString(a):b==='object'&&(a instanceof h?this._data=a._data.slice():a.length?this._data=p.call(a):(a/=1)>0&&(this._data=zerodArray(a)));}if(!this._data)throw new TypeError('unable to convert input to size or buffer');m(this,'_data'),this.byteLength=this._data.length;}return l(h.prototype,[function slice(a,b){a==null?a=0:a<0?(a+=this.byteLength,a<0&&(a=0)):a>=this.byteLength&&(a=this.byteLength),b==null?b=this.byteLength:b<0?(b+=this.byteLength,b<0&&(b=0)):b>=this.byteLength&&(b=this.byteLength);var c=new h(0);
return c._data=this._data.slice(a,b),c.byteLength=c._data.length,c;}]),h;}();
return g;}(this,typeof d!=='undefined'?c:{}),c.constants=function(b){function Constants(b){this.hash=new j();for(var a=0;a<b.length;a++)this.hash[b[a]]=a;this.array=b;}function Token(a){this.name=a;}function BuiltinBrand(a){this.name=a,this.brand='[object '+a+']';}'use strict';var g=a('./lib/objects');
var k=g.create, h=g.define, i=g.keys, j=g.Hash;
h(Constants.prototype,[function getIndex(a){return this.hash[a];}, function getKey(a){return this.array[a];}]),h(Token.prototype,[function toString(){return this.name;}, function inspect(){return'['+this.name+']';}]),h(BuiltinBrand.prototype,[function toString(){return this.name;}, function inspect(){return this.name;}]),b.BRANDS={BooleanWrapper:new BuiltinBrand('Boolean'),GlobalObject:new BuiltinBrand('global'),BuiltinArguments:new BuiltinBrand('Arguments'),BuiltinArrayIterator:new BuiltinBrand('ArrayIterator'),BuiltinArray:new BuiltinBrand('Array'),BuiltinDate:new BuiltinBrand('Date'),BuiltinDataView:new BuiltinBrand('DataView'),BuiltinError:new BuiltinBrand('Error'),BuiltinFunction:new BuiltinBrand('Function'),BuiltinHandler:new BuiltinBrand('Handler'),BuiltinIterator:new BuiltinBrand('Iterator'),BuiltinJSON:new BuiltinBrand('JSON'),BuiltinMap:new BuiltinBrand('Map'),BuiltinMapIterator:new BuiltinBrand('MapIterator'),BuiltinMath:new BuiltinBrand('Math'),BuiltinModule:new BuiltinBrand('Module'),BuiltinObject:new BuiltinBrand('Object'),BuiltinProxy:new BuiltinBrand('Proxy'),BuiltinRegExp:new BuiltinBrand('RegExp'),BuiltinSet:new BuiltinBrand('Set'),BuiltinSetIterator:new BuiltinBrand('SetIterator'),BuiltinSymbol:new BuiltinBrand('Symbol'),BuiltinWeakMap:new BuiltinBrand('WeakMap'),NumberWrapper:new BuiltinBrand('Number'),StopIteration:new BuiltinBrand('StopIteration'),StringWrapper:new BuiltinBrand('String'),BuiltinArrayBuffer:new BuiltinBrand('ArrayBuffer'),BuiltinInt8Array:new BuiltinBrand('Int8Array'),BuiltinInt16Array:new BuiltinBrand('Int16Array'),BuiltinInt32Array:new BuiltinBrand('Int32Array'),BuiltinUint8Array:new BuiltinBrand('Uint8Array'),BuiltinUint16Array:new BuiltinBrand('Uint16Array'),BuiltinUint32Array:new BuiltinBrand('Uint32Array'),BuiltinFloat32Array:new BuiltinBrand('Float32Array'),BuiltinFloat64Array:new BuiltinBrand('Float64Array')},b.BRANDS.BuiltinString=b.BRANDS.StringWrapper,b.BRANDS.BuiltinNumber=b.BRANDS.NumberWrapper,b.BRANDS.BuiltinBoolean=b.BRANDS.BooleanWrapper,b.BINARYOPS=new Constants(['instanceof','in','==','!=','===','!==','<','>','<=','>=','*','/','%','+','-','<<','>>','>>>','|','&','^','string+']),b.UNARYOPS=new Constants(['delete', 'void', 'typeof', '+', '-', '~', '!']),b.FUNCTYPE=new Constants(['NORMAL', 'METHOD', 'ARROW']),b.SCOPE=new Constants(['EVAL', 'FUNCTION', 'GLOBAL', 'MODULE']),b.SYMBOLS={Break:new Token('Break'),Pause:new Token('Pause'),Throw:new Token('Throw'),Empty:new Token('Empty'),Resume:new Token('Resume'),Return:new Token('Return'),Normal:new Token('Normal'),Abrupt:new Token('Abrupt'),Builtin:new Token('Builtin'),Continue:new Token('Continue'),Reference:new Token('Reference'),Completion:new Token('Completion'),Uninitialized:new Token('Uninitialized')};var c=1, d=2, f=4, e=8;
return b.ATTRIBUTES={ENUMERABLE:c,CONFIGURABLE:d,WRITABLE:f,ACCESSOR:e,___:0,E__:c,_C_:d,EC_:c|d,__W:f,E_W:c|f,_CW:d|f,ECW:c|d|f,__A:e,E_A:c|e,_CA:d|e,ECA:c|d|e},b.AST=new Constants(i(a('esprima').Syntax)),b;}(typeof d!=='undefined'?d.exports:{}),c.errors=function(f,c,b){function Exception(d,g,e){var h={}, f=[], b='';
for(var c=0;c<e.length;c++){var a=e[c];
a[0]==='$'?(!h.hasOwnProperty(a)&&f.push(a),b+='+'+a):b+='+'+'"'+a.replace(/["\\\n]/g,'\\$0')+'"';}return this.name=d,this.type=g,new Function('e','return function '+d+'('+f.join(', ')+'){ return '+b.slice(1)+'; }')(this);}function Completion(a,b,c){this.type=a,this.value=b,this.target=c;}function AbruptCompletion(a,b,c){this.type=a,this.value=b,this.target=c;}function $$MakeException(c,a){!(a instanceof Array)&&(a=[a]);var d=f[c];
return b.createError(d.name,c,d.apply(null,a));}function $$ThrowException(a,b){return new AbruptCompletion('throw',$$MakeException(a,b));}'use strict';var g=a('./lib/objects'), j=a('./constants');
var h=g.define, i=g.inherit;
for(var d in c)for(var e in c[d])f[e]=new Exception(d,e,c[d][e]);return b.Completion=Completion,h(Completion.prototype,{ Completion:!0 }),h(Completion.prototype,[function toString(){return this.value;}, function valueOf(){return this.value;}]),i(AbruptCompletion,Completion,{ Abrupt:!0 }),b.AbruptCompletion=AbruptCompletion,b.$$MakeException=$$MakeException,b.$$ThrowException=$$ThrowException,b;}({},{TypeError:{bad_argument:['$0', ' received a bad argument, expecting a ', '$1'],cyclic_proto:['Cyclic __proto__ value'],incompatible_method_receiver:['Method ', '$0', ' called on incompatible receiver ', '$1'],invalid_lhs_in_assignment:['Invalid left-hand side in assignment'],invalid_lhs_in_for_in:['Invalid left-hand side in for-in'],invalid_lhs_in_postfix_op:['Invalid left-hand side expression in postfix operation'],invalid_lhs_in_prefix_op:['Invalid left-hand side expression in prefix operation'],redeclaration:['$0', ' \'', '$1', '\' has already been declared'],uncaught_exception:['Uncaught ', '$0'],stack_trace:['Stack Trace:\n', '$0'],called_non_callable:['$0', ' is not a function'],property_not_function:['Property \'', '$0', '\' of object ', '$1', ' is not a function'],not_constructor:['$0', ' is not a constructor'],cannot_convert_to_primitive:['Cannot convert object to primitive value'],with_expression:['$0', ' has no properties'],illegal_invocation:['Illegal invocation'],invalid_in_operator_use:['Cannot use \'in\' operator to search for \'', '$0', '\' in ', '$1'],instanceof_function_expected:['Expecting a function in instanceof check, but got ', '$0'],instanceof_nonobject_proto:['Function has non-object prototype \'', '$0', '\' in instanceof check'],null_to_object:['Cannot convert null to object'],undefined_to_object:['Cannot convert undefined to object'],object_not_coercible:['$0', ' cannot convert ', '$1', ' to an object'],reduce_no_initial:['Reduce of empty array with no initial value'],callback_must_be_callable:['$0', ' requires a function callback'],getter_must_be_callable:['Getter must be a function: ', '$0'],setter_must_be_callable:['Setter must be a function: ', '$0'],value_and_accessor:['A property cannot both have accessors and be writable or have a value, ', '$0'],proto_object_or_null:['Object prototype may only be an Object or null'],property_desc_object:['Property description must be an object: ', '$0'],redefine_disallowed:['Cannot redefine property: ', '$0'],apply_wrong_args:['Invalid arguments used in apply'],define_disallowed:['Cannot define property:', '$0', ', object is not extensible.'],non_extensible_proto:['$0', ' is not extensible'],invalid_weakmap_key:['Invalid value used as weak map key'],invalid_json:['String \'', '$0', '\' is not valid JSON'],circular_structure:['Converting circular structure to JSON'],called_on_non_function:['$0', ' called on non-function'],called_on_non_object:['$0', ' called on non-object'],called_on_null_or_undefined:['$0', ' called on null or undefined'],strict_delete_property:['Cannot delete property \'', '$0', '\' of ', '$1'],super_delete_property:['Cannot delete property \'', '$0', '\' from super'],strict_read_only_property:['Cannot assign to read only property \'', '$0', '\' of ', '$1'],strict_cannot_assign:['Cannot assign to read only \'', '$0', '\' in strict mode'],strict_poison_pill:['\'caller\', \'callee\', and \'arguments\' properties may not be accessed on strict mode functions or the arguments objects for calls to them'],object_not_extensible:['Can\'t add property ', '$0', ', object is not extensible'],proxy_prototype_inconsistent:['cannot report a prototype value that is inconsistent with target prototype value'],proxy_extensibility_inconsistent:['cannot report a non-extensible object as extensible or vice versa'],proxy_configurability_inconsistent:['cannot report innacurate configurability for property \'', '$0'],proxy_enumerate_properties:['enumerate trap failed to include non-configurable enumerable property \'', '$0', '\''],proxy_non_callable_trap:['Proxy trap for ', '$0', ' is not a function'],proxy_inconsistent:['Proxy trap ', '$0', ' returned an invalid value for a non-configurable property'],proxy_non_extensible:['Proxy trap ', '$0', ' returned an invalid value for a non-extensible object'],proxy_duplicate:['Proxy trap ', '$0', ' returned duplicate property'],proxy_non_object_result:['Proxy trap ', '$0', ' returned non-object result'],missing_fundamental_trap:['Proxy handler is missing fundamental trap ', '$0'],non_object_superclass:['non-object super class'],non_object_superproto:['non-object super prototype'],invalid_super_binding:['object has no super binding'],not_generic:['$0', ' is not generic and was called on an invalid target'],spread_non_object:['Expecting an object as spread argument, but got ', '$0'],called_on_incompatible_object:['$0', ' called on incompatible object'],double_initialization:['Initializating an already initialized ', '$0'],construct_arrow_function:['Arrow functions cannot be constructed'],generator_executing:['\'', '$0', '\' called on executing generator'],generator_closed:['\'', '$0', '\' called on closed generator'],generator_send_newborn:['Sent value into newborn generator'],unnamed_symbol:['Symbol must have a name'],symbol_redefine:['Symbol \'', '$0', '\' defined multiple times'],missing_fundamental_handler:['Exotic object missing fundamental handler for \'', '$0', '\''],buffer_unaligned_offset:['$0', ' was called with an unalign offset'],buffer_out_of_bounds:['$0', ' was was called with an out of bounds length and/or offset'],buffer_unaligned_length:['$0', ' was called with an unaligned length']},ReferenceError:{undefined_symbol:['Referenced undefined symbol @', '$0'],unknown_label:['Undefined label \'', '$0', '\''],undefined_method:['Object ', '$1', ' has no method \'', '$0', '\''],not_defined:['$0', ' is not defined'],uninitialized_const:['$0', ' is not initialized'],non_object_property_load:['Cannot read property \'', '$0', '\' of ', '$1'],non_object_property_store:['Cannot set property \'', '$0', '\' of ', '$1'],non_object_property_call:['Cannot call method \'', '$0', '\' of ', '$1'],no_setter_in_callback:['Cannot set property ', '$0', ' of ', '$1', ' which has only a getter']},RangeError:{invalid_array_length:['Invalid array length'],invalid_repeat_count:['Invalid repeat count'],stack_overflow:['Maximum call stack size exceeded'],invalid_time_value:['Invalid time value']},SyntaxError:{multiple_defaults_in_switch:['More than one default clause in switch statement'],newline_after_throw:['Illegal newline after throw'],no_catch_or_finally:['Missing catch or finally after try'],malformed_regexp:['Invalid regular expression: /', '$0', '/: ', '$1'],unterminated_regexp:['Invalid regular expression: missing /'],regexp_flags:['Cannot supply flags when constructing one RegExp from another'],unexpected_token:['Unexpected token ', '$0'],unexpected_token_number:['Unexpected number'],unexpected_token_string:['Unexpected string'],unexpected_token_identifier:['Unexpected identifier'],unexpected_reserved:['Unexpected reserved word'],unexpected_strict_reserved:['Unexpected strict mode reserved word'],unexpected_eos:['Unexpected end of input'],invalid_regexp_flags:['Invalid flags supplied to RegExp constructor \'', '$0', '\''],invalid_regexp:['Invalid RegExp pattern /', '$0', '/'],illegal_break:['Illegal break statement'],illegal_continue:['Illegal continue statement'],illegal_return:['Illegal return statement'],illegal_let:['Illegal let declaration outside extended mode'],illegal_access:['Illegal access'],strict_mode_with:['Strict mode code may not include a with statement'],strict_catch_variable:['Catch variable may not be eval or arguments in strict mode'],strict_param_name:['Parameter name eval or arguments is not allowed in strict mode'],strict_param_dupe:['Strict mode function may not have duplicate parameter names'],strict_var_name:['Variable name may not be eval or arguments in strict mode'],strict_function_name:['Function name may not be eval or arguments in strict mode'],strict_octal_literal:['Octal literals are not allowed in strict mode.'],strict_duplicate_property:['Duplicate data property in object literal not allowed in strict mode'],accessor_data_property:['Object literal may not have data and accessor property with the same name'],accessor_get_set:['Object literal may not have multiple get/set accessors with the same name'],strict_lhs_assignment:['Assignment to eval or arguments is not allowed in strict mode'],strict_lhs_postfix:['Postfix increment/decrement may not have eval or arguments operand in strict mode'],strict_lhs_prefix:['Prefix increment/decrement may not have eval or arguments operand in strict mode'],strict_reserved_word:['Use of future reserved word in strict mode'],strict_delete:['Delete of an unqualified identifier in strict mode.'],strict_caller:['Illegal access to a strict mode caller function.'],const_assign:['Assignment to constant variable.'],invalid_module_path:['Module does not export \'', '$0', '\', or export is not itself a module'],module_type_error:['Module \'', '$0', '\' used improperly']}},typeof d!=='undefined'?d.exports:{}),c.assembler=function(F){function StandardOpCode(b,c){var a=this.creator();
return this.id=a.id=as++,this.params=a.params=b,this.name=a.opname=c,a.opcode=this,a;}function InternedOpCode(a,b){return StandardOpCode.call(this,a,b);}function macro(c){var d=[], b=[];
var e=o(arguments,function(a,e){if(!e)return'';a instanceof Array||(a=[a]);var c=a.shift();
return b.push(c),c.opname+'('+aI(c.params,function(b){if(b in a)return typeof a[b]==='string'?ay(a[b]):a[b]+'';else{var c='$'+String.fromCharCode(e+96)+String.fromCharCode(b+97);
return d.push(c),c;}}).join(', ')+');';}).join('');
var f='return function '+c+'('+d.join(', ')+'){'+e+'}';
var a=Function.apply(null,o(b,function(a){return a.opname;}).concat(f)).apply(null,b);
return a.params=a.length,a.opname=c,a;}function serializeLocation(a){if(a)if(a.start)return a.start.line===a.end.line?[a.start.line, a.start.column, a.end.column]:[a.start.line, a.start.column, a.end.line, a.end.column];else if(a.line)return[a.line, a.column];return[];}function isSuperReference(a){return!!a&&a.type==='Identifier'&&a.name==='super';}function isPattern(a){return!!a&&a.type==='ObjectPattern'||a.type==='ArrayPattern';}function isLexicalDeclaration(a){return!!a&&a.type==='VariableDeclaration'&&a.kind!=='var';}function isFunction(a){return a.type==='FunctionDeclaration'||a.type==='FunctionExpression'||a.type==='ArrowFunctionExpression';}function isDeclaration(a){return a.type==='FunctionDeclaration'||a.type==='ClassDeclaration'||a.type==='VariableDeclaration';}function isAnonymousFunction(a){return!!a&&!(a.id&&a.id.name)&&a.type==='FunctionExpression'||a.type==='ArrowFunctionExpression';}function isUseStrictDirective(a){return a.type==='ExpressionStatement'&&a.expression.type==='Literal'&&a.expression.value==='use strict';}function isStrict(a){isFunction(a)?a=a.body.body:a.type==='Program'&&(a=a.body);if(a instanceof Array)for(var c=0, b;b=a[c];c++)if(isUseStrictDirective(b))return!0;else if(b.type!=='EmptyStatement'&&b.type!=='FunctionDeclaration')return!1;return!1;}function isGlobalOrEval(){return c.code.scopeType==='eval'||c.code.scopeType==='global';}function boundNames(a){return aP(a);}function pushNode(a){w&&u.push(w),w=a;}function popNode(){var a=u.pop();
a&&(w=a);}function recurse(a){a&&(pushNode(a),a.type?$[a.type](a):a.length&&e(a,recurse),popNode());}function loc(){var a=w, b=u.length;
while(a){if(a.loc)return a.loc;a=u[--b];}return aS;}function range(){var a=w, b=u.length;
while(a){if(a.range)return a.range;a=u[--b];}return aT;}function intern(a){return a;}function current(){return c.code.ops.length;}function last(){return c.code.ops[c.code.ops.length-1];}function pop(){return c.code.ops.pop();}function adjust(a){if(a)return a[0]=c.code.ops.length;}function initBindingIfNew(a){P(a);var b=A(0);
t(a,!1),r(),l(a),adjust(b);}function createBindingIfNew(a){P(a);var b=A(0);
t(a,!1),adjust(b);}function bindingDestructuring(a){pushNode(a),a.type==='Identifier'?initBindingIfNew(a.name):a.type==='ObjectPattern'?e(a.properties,bindingDestructuring):a.type==='Property'?bindingDestructuring(a.value):a.type==='ArrayPattern'&&e(a.elements,bindingDestructuring),popNode();}function FunctionDeclarationInstantiation(a){pushNode(a.body);var k=varDecls(a.body), m=k.length, g=!1, o=a.strict, j=[];
while(m--){var b=k[m];
pushNode(b);if(b.type==='FunctionDeclaration'){j.push(b),b.boundNames||(b.boundNames=boundNames(b));var d=b.boundNames[0];
d==='arguments'&&(g=!0),P(d);var n=A(0);
t(d,!1),adjust(n);}popNode();}e(a.params,bindingDestructuring),t('arguments',o),e(a.varDecls,createBindingIfNew),initLexicalDecls(a.body),e(j,function(a){pushNode(a),FunctionDeclaration(a),C(!1,a.id.name,a.code),l(a.id.name),h(),popNode();}),pushNode(a.params),am();var i=a.params.length-a.params.defaults.length;
e(a.params,function(b,c){pushNode(b),v(),aW(c);if(c>=i){var d=a7(0);
recurse(a.params.defaults[c-i]),f(),adjust(d);}x(1),x(2),b.type==='Identifier'?l(b.name):(destructure(b,l),h()),x(1),popNode();});var c=a.params.Rest;
c?(pushNode(c),ao(a.params.ExpectedArgumentCount),c.type==='Identifier'?l(c.name):(destructure(c,l),h()),popNode()):h(),!g&&l('arguments'),popNode(),popNode();}function initLexicalDecls(a){e(lexDecls(a),function(a){pushNode(a),e(a.boundNames,function(b){t(b,a.IsConstantDeclaration);}),popNode();});}function block(b){var a=new ControlTransfer(c.labels);
c.jumps.push(a),c.labels=new m(),pushScope('block'),b(),a.updateBreaks(current()),c.jumps.pop(),c.labels=a.labels,popScope();}function loop(b){var a=new ControlTransfer(c.labels);
c.jumps.push(a),c.labels=new m(),a.updateContinues(b()),a.updateBreaks(current()),c.jumps.pop(),c.labels=a.labels;}function unwinder(a,b){var d=current();
b(),c.code.unwinders.push(new Unwinder(a,d,current()));}function pushScope(a){c.currentScope=scope.create('block',c.currentScope),Y.push(current()),a==='with'?aL():a2();}function popScope(){c.currentScope.pop(),c.code.unwinders.push(new Unwinder('scope',Y.pop(),current())),at();}function iter(a,b){loop(function(){var c;
return unwinder('iteration',function(){if(isLexicalDeclaration(a.left)){var d=!0;
pushScope('block'),initLexicalDecls(a.left);}recurse(a.right),f(),b(),G('next'),c=current(),v(),v(),f(),I(),N(),a.left.type==='VariableDeclaration'?VariableDeclaration(a.left,!0):(recurse(a.left),x(1),D(),h()),recurse(a.body),d&&a0(),k(c),d&&popScope();}),c;});}function move(b,d,e){if(b.label)var a=c.jumps.find(function(a){return b.label.name in a.labels;});
else var a=c.jumps.find(function(b){return a&&b.continues;});
a&&a[d].push(e);}function args(a){pushNode(a),I(),e(a,function(a,b){pushNode(a),a&&a.type==='SpreadElement'?(recurse(a.argument),f(),aw()):(recurse(a),f(),J()),popNode();}),popNode();}function AssignmentExpression(a){a.operator==='='?isPattern(a.left)?(recurse(a.right),f(),destructure(a.left,aN)):(recurse(a.left),recurse(a.right),f(),D()):(recurse(a.left),v(),f(),recurse(a.right),f(),B(a.operator.slice(0,-1)),D());}function ArrayExpression(b){ap();var a=0;
e(b.elements,function(b){b?b.type==='SpreadElement'?(recurse(b.argument),f(),ax(a),a=0):(recurse(b),f(),a3(a),a=0):a++;}),al();}function ArrayPattern(a){}function ArrowFunctionExpression(d,b){var a=new j(d,null,'arrow','function');
return b&&(a.name=b.name||b),c.queue(a),C(!1,null,a),a;}function AtSymbol(a){a.internal?c.code.natives?V('@'+a.name):c.earlyError('illegal_internal_symbol',['@@'+a.name]):V(a.name);}function BinaryExpression(a){recurse(a.left),f(),recurse(a.right),f(),B(a.operator);}function BreakStatement(a){move(a,'breaks',k(0));}function BlockStatement(a){pushNode(a.body),block(function(){initLexicalDecls(a.body),e(lexDecls(a.body),function(a){pushNode(a),e(a.boundNames,function(b){a.type==='FunctionDeclaration'&&(FunctionDeclaration(a),C(!1,a.id.name,a.code),H(a.id.name));}),popNode();}),e(a.body,recurse);}),popNode();}function CallExpression(a){isSuperReference(a.callee)?(c.code.scopeType!=='function'&&c.earlyError(a,'illegal_super'),az()):recurse(a.callee),v(),f(),args(a.arguments),a.callee.type==='Identifier'&&a.callee.name==='eval'?au():(a.callee.type==='NativieIdentifier'?ad:N)(!!a.tail);}function CatchClause(a){pushNode(a.body),pushScope('block'),pushNode(a.param),c.currentScope.lexDeclare(a.param.name,'catch'),t(a.param.name,!1),H(a.param.name),popNode(),initLexicalDecls(a.body),e(a.body,recurse),popScope(),popNode();}function ClassBody(a){}function ClassDeclaration(a){c.currentScope.lexDeclare(a.id.name,'class'),ah(new ClassDefinition(a));}function ClassExpression(a){ae(new ClassDefinition(a));}function ClassHeritage(a){}function ConditionalExpression(a){recurse(a.test),f();var b=E(0);
recurse(a.consequent),f();var c=k(0);
adjust(b),recurse(a.alternate),f(),adjust(c);}function ContinueStatement(a){move(a,'continues',k(0));}function DoWhileStatement(a){loop(function(){var b=current();
recurse(a.body);var c=current();
return recurse(a.test),f(),A(b),c;});}function DebuggerStatement(a){a8();}function EmptyStatement(a){}function ExportSpecifier(a){}function ExportSpecifierSet(a){}function ExportDeclaration(a){a.declaration&&recurse(a.declaration);}function ExpressionStatement(a){recurse(a.expression),f(),isGlobalOrEval()?ar():h();}function ForStatement(a){loop(function(){if(a.init)if(a.init.type==='VariableDeclaration'){if(a.init.kind!=='var'){var b=!0;
pushScope('block'),initLexicalDecls(a.init);}recurse(a.init);}else recurse(a.init),f(),h();var c=current();
if(a.test){recurse(a.test),f();var d=E(0);
}return recurse(a.body),b&&a0(),a.update&&(recurse(a.update),f()),h(),k(c),adjust(d),b&&popScope(),c;});}function ForInStatement(a){iter(a,a5);}function ForOfStatement(a){iter(a,a4);}function FunctionDeclaration(a){return!a.code&&(c.currentScope.lexDeclare(a.id.name,'function'),a.code=new j(a,null,'normal','function'),c.queue(a.code)),a.code;}function FunctionExpression(a,d){var b=new j(a,null,'normal','function');
return a.id&&b.scope.varDeclare(a.id.name,'funcname'),d&&(b.name=d.name||d),c.queue(b),C(!0,intern(a.id?a.id.name:''),b),b;}function Glob(a){}function Identifier(a){c.code.natives&&aV.test(a.name)?(a.type='NativeIdentifier',a.name=a.name.slice(3),a1(a.name)):W(a.name);}function IfStatement(a){recurse(a.test),f();var b=E(0);
recurse(a.consequent);if(a.alternate){var c=k(0);
adjust(b),recurse(a.alternate),adjust(c);}else adjust(b);}function ImportDeclaration(a){}function ImportSpecifier(a){}function Literal(a){a.value instanceof RegExp?an(a.value):typeof a.value==='string'?T(a.value):L(a.value);}function LabeledStatement(a){c.labels?label in c.labels&&c.earlyError(a,'duplicate_label'):c.labels=new m(),c.labels[a.label.name]=!0,recurse(a.body),c.labels=null;}function LogicalExpression(a){recurse(a.left),f();var b=a.operator==='||'?ag(0):aq(0);
recurse(a.right),f(),adjust(b);}function MemberExpression(a){var b=isSuperReference(a.object);
b?c.code.scopeType!=='function'&&c.earlyError(a,'illegal_super_reference'):(recurse(a.object),f()),a.computed?(recurse(a.property),f(),b?aA():Q()):b?aB():G(symbol(a.property));}function MethodDefinition(a){}function ModuleDeclaration(a){a.body&&(a.code=new j(a,null,'normal','module'),a.code.path=c.code.path.concat(a.id.name),c.queue(a.code));}function NativeIdentifier(a){a1(a.name);}function NewExpression(a){recurse(a.callee),f(),args(a.arguments),a9();}function ObjectExpression(a){af(),e(a.properties,recurse);}function ObjectPattern(a){}function Path(a){}function Program(a){pushNode(a.body),e(a.body,recurse),popNode();}function Property(a){var b=a.value;
if(a.kind==='init'){var d=a.key.type==='Identifier'?a.key:a.key.value, g=d&&d.name||d;
g==='__proto__'&&(d='');if(a.method)pushNode(b),FunctionExpression(b,intern(d)),popNode();else if(isAnonymousFunction(b)){var h=a.type==='FunctionExpression'?FunctionExpression:ArrowFunctionExpression;
var e=h(b,d);
e.flags.writableName=!0;}else recurse(b);f(),g==='__proto__'?aj():ai(symbol(a.key));}else{var e=new j(b,null,'normal','function');
c.queue(e),ac(a.kind,e,symbol(a.key));}}function ReturnStatement(a){a.argument?(recurse(a.argument),f()):r(),K();}function SequenceExpression(a){e(a.expressions,function(a,b,c){recurse(a),f(),b<c.length-1&&h();});}function SwitchStatement(a){loop(function(){var c;
recurse(a.discriminant),f(),pushScope('block');if(a.cases){e(a.cases,initLexicalDecls);var b=[];
e(a.cases,function(a,d){a.test?(recurse(a.test),f(),b.push(ak(0))):(c=d,b.push(0));});if(c!=null)a6(b[c]);else{h();var d=k(0);
}e(a.cases,function(a,c){adjust(b[c]),e(a.consequent,recurse);}),d&&adjust(d);}else h();popScope();});}function SymbolDeclaration(a){var b=a.AtSymbols=[], d=a.kind==='symbol';
e(a.declarations,function(a){var e=a.init;
e&&(recurse(e),f());if(a.id.internal)if(!c.code.natives)c.earlyError('illegal_internal_symbol',['@@'+a.id.name]);else var g='@'+a.id.name;
else var g=a.id.name;
aC(g,d,!!e),b.push(g);});}function SymbolDeclarator(a){}function TemplateElement(a){}function TemplateLiteral(a,b){a.quasis&&(a.templates=a.quasis,delete a.quasis),e(a.templates,function(b,c){T(b.value.raw),!b.tail&&(recurse(a.expressions[c]),f(),B('string+')),c&&B('string+');});}function TaggedTemplateExpression(a){var b=[];
a.quasi&&(a.template=a.quasi,delete a.quasi),e(a.template.templates,function(a){b.push(a.value);}),r(),recurse(a.tag),f(),I(),aD(b),f(),J(),e(a.template.expressions,function(a){recurse(a),f(),J();}),N();}function ThisExpression(a){aE();}function ThrowStatement(a){recurse(a.argument),f(),aF();}function TryStatement(b){unwinder('try',function(){e(b.block.body,recurse);});var f=k(0), c=[];
for(var a=0, d;d=b.handlers[a];a++)recurse(d),a<b.handlers.length-1&&c.push(k(0));adjust(f);while(a--)c[a]&&adjust(c[a]);b.finalizer&&recurse(b.finalizer);}function UnaryExpression(a){recurse(a.argument),aH(a.operator);}function UpdateExpression(a){recurse(a.argument),aJ(!!a.prefix|(a.operator==='++')<<1);}function VariableDeclaration(a,d){if(a.kind==='var')var b=function(a){c.currentScope.varDeclare(a,'var'),l(a);};
else{var g=a.kind==='const'?aa:H;
var b=function(b){c.currentScope.lexDeclare(b,a.kind),g(b);};
}e(a.declarations,function(e){a.kind==='var'&&U(c.code.varDecls,boundNames(e.id));if(e.init)if(e.id&&e.id.type==='Identifier'&&isAnonymousFunction(e.init)){var g=a.type==='FunctionExpression'?FunctionExpression:ArrowFunctionExpression;
recurse(e.id);var i=g(e.init,e.id.name);
i.flags.writableName=!0;}else recurse(e.init),f();else!d&&r();isPattern(e.id)?(destructure(e.id,b),h()):b(e.id.name);});}function VariableDeclarator(a){}function WhileStatement(a){loop(function(){var b=current();
recurse(a.test),f();var c=E(0);
return recurse(a.body),k(b),adjust(c),b;});}function WithStatement(a){recurse(a.object),pushScope('with'),recurse(a.body),popScope();}function YieldExpression(a){a.argument?(recurse(a.argument),f()):r(),aM(a.delegate);}'use strict';var Z=a('util');
var i=a('./lib/objects'), y=a('./lib/functions'), q=a('./lib/iteration'), O=a('./lib/utility'), M=a('./lib/traversal'), R=a('./lib/Stack'), b2=a('./lib/HashMap');
var s=M.walk, p=M.collector, aU=M.Visitor, aR=y.fname, g=i.define, b1=i.assign, S=i.create, b5=i.copy, n=i.inherit, bf=i.keys, aY=i.hasOwn, aQ=i.isObject, m=i.Hash, aO=q.Iterator, aK=q.StopIteration, e=q.each, bg=q.repeat, o=q.map, a$=q.fold, aI=q.generate, ay=O.quotes, b4=O.uid, U=O.pushAll;
var X=s.CONTINUE, d=s.RECURSE, _=s.BREAK;
var bh=Math.random().toString(36).slice(2), c, a_=[].push, as=0;
g(StandardOpCode.prototype,[function creator(){var a=this;
return function(){return c.code.createDirective(a,arguments);};},function inspect(){return this.name;},function toString(){return this.name;},function valueOf(){return this.id;},function toJSON(){return this.id;}]),n(InternedOpCode,StandardOpCode,[function creator(){var a=this;
return function(b,d,e){return c.code.createDirective(a,[b, d, e]);};}]);var b0=new StandardOpCode(1,'ADD'), aq=new StandardOpCode(1,'AND'), ap=new StandardOpCode(0,'ARRAY'), J=new StandardOpCode(0,'ARG'), I=new StandardOpCode(0,'ARGS'), am=new StandardOpCode(0,'ARGUMENTS'), al=new StandardOpCode(0,'ARRAY_DONE'), B=new StandardOpCode(1,'BINARY'), t=new StandardOpCode(2,'BINDING'), N=new StandardOpCode(1,'CALL'), ak=new StandardOpCode(1,'CASE'), ah=new StandardOpCode(1,'CLASS_DECL'), ae=new StandardOpCode(1,'CLASS_EXPR'), ab=new StandardOpCode(0,'COMPLETE'), aa=new StandardOpCode(1,'CONST'), a9=new StandardOpCode(0,'CONSTRUCT'), a8=new StandardOpCode(0,'DEBUGGER'), a6=new StandardOpCode(1,'DEFAULT'), b9=new StandardOpCode(1,'DEFINE'), v=new StandardOpCode(0,'DUP'), Q=new StandardOpCode(0,'ELEMENT'), a5=new StandardOpCode(0,'ENUM'), bi=new StandardOpCode(1,'EXTENSIBLE'), au=new StandardOpCode(0,'EVAL'), aZ=new StandardOpCode(1,'FLIP'), C=new StandardOpCode(3,'FUNCTION'), f=new StandardOpCode(0,'GET'), P=new StandardOpCode(1,'HAS_BINDING'), b6=new StandardOpCode(0,'INC'), a3=new StandardOpCode(1,'INDEX'), aW=new InternedOpCode(1,'INTERNAL_MEMBER'), a4=new StandardOpCode(0,'ITERATE'), k=new StandardOpCode(1,'JUMP'), b7=new StandardOpCode(1,'JEQ_NULL'), b8=new StandardOpCode(1,'JEQ_UNDEFINED'), E=new StandardOpCode(1,'JFALSE'), ba=new StandardOpCode(2,'JLT'), bb=new StandardOpCode(2,'JLTE'), bc=new StandardOpCode(2,'JGT'), bd=new StandardOpCode(2,'JGTE'), be=new StandardOpCode(1,'JNEQ_NULL'), a7=new StandardOpCode(1,'JNEQ_UNDEFINED'), A=new StandardOpCode(1,'JTRUE'), H=new StandardOpCode(1,'LET'), L=new StandardOpCode(1,'LITERAL'), bj=new StandardOpCode(0,'LOG'), aX=new StandardOpCode(0,'LOOP'), G=new InternedOpCode(1,'MEMBER'), ac=new StandardOpCode(3,'METHOD'), ad=new StandardOpCode(1,'NATIVE_CALL'), a1=new InternedOpCode(1,'NATIVE_REF'), af=new StandardOpCode(0,'OBJECT'), ag=new StandardOpCode(1,'OR'), h=new StandardOpCode(0,'POP'), b3=new StandardOpCode(1,'POPN'), ai=new InternedOpCode(1,'PROPERTY'), aj=new StandardOpCode(0,'PROTO'), D=new StandardOpCode(0,'PUT'), W=new InternedOpCode(1,'REF'), V=new InternedOpCode(1,'REFSYMBOL'), an=new StandardOpCode(1,'REGEXP'), ao=new StandardOpCode(1,'REST'), K=new StandardOpCode(0,'RETURN'), x=new StandardOpCode(1,'ROTATE'), ar=new StandardOpCode(0,'SAVE'), a0=new StandardOpCode(0,'SCOPE_CLONE'), at=new StandardOpCode(0,'SCOPE_POP'), a2=new StandardOpCode(0,'SCOPE_PUSH'), av=new StandardOpCode(1,'SPREAD'), aw=new StandardOpCode(0,'SPREAD_ARG'), ax=new StandardOpCode(1,'SPREAD_ARRAY'), T=new InternedOpCode(1,'STRING'), az=new StandardOpCode(0,'SUPER_CALL'), aA=new StandardOpCode(0,'SUPER_ELEMENT'), aB=new StandardOpCode(1,'SUPER_MEMBER'), aC=new InternedOpCode(3,'SYMBOL'), aD=new StandardOpCode(1,'TEMPLATE'), aE=new StandardOpCode(0,'THIS'), aF=new StandardOpCode(0,'THROW'), aG=new StandardOpCode(0,'TO_OBJECT'), aH=new StandardOpCode(1,'UNARY'), r=new StandardOpCode(0,'UNDEFINED'), aJ=new StandardOpCode(1,'UPDATE'), l=new StandardOpCode(1,'VAR'), aL=new StandardOpCode(0,'WITH'), aM=new StandardOpCode(1,'YIELD');
var aN=macro('ASSIGN',W,[x, 1],D,h);
var j=F.code=function(){function Directives(){this.length=0;}function j(a,f,h,d,i){function Instruction(a,b){Directive.call(this,a,b);}n(Instruction,Directive,{ code:this });var b=a;
this.flags={},a.type==='Program'?(this.flags.topLevel=!0,this.imports=getImports(a),this.scope=scope.create('global')):(this.flags.topLevel=!1,b=b.body,a.type==='ModuleDeclaration'?(this.imports=getImports(b),this.scope=scope.create('module',c.currentScope),b=b.body):d==='eval'?this.scope=scope.create('eval',c.currentScope):this.scope=scope.create('normal',c.currentScope)),g(this,{body:b,source:f==null?c.code.source:f,children:[],createDirective:function(b,c){var a=new Instruction(b,c);
return this.ops.push(a),a;}}),a.id&&(this.name=a.id.name),a.generator&&(this.flags.generator=!0),this.path=[],this.range=a.range,this.loc=a.loc,this.unwinders=[],this.scopeType=d,this.lexicalType=h||'normal',this.flags.usesSuper=referencesSuper(this.body),this.lexDecls=lexDecls(b),this.varDecls=[],this.flags.strict=i||c.code&&c.code.flags.strict||isStrict(a),d==='module'&&(this.exportedNames=getExports(this.body),this.flags.strict=!0),this.ops=new Directives(),a.params&&(this.params=new Parameters(a),this.scope.varDeclare('arguments','arguments'),e(this.params.boundNames,function(a){this.varDeclare(a,'param');},this.scope));}n(Directives,Array,[function inspect(){var a=new Array((''+this.length).length+1).join(' ');
return this.map(function(b,c){return(a+c).slice(-a.length)+' '+b.inspect();}).join('\n');}]);var Directive=function(){function Directive(b,c){this.op=b,this.loc=loc(),this.range=range();for(var a=0;a<b.params;a++)this[a]=c[a];}return g(Directive.prototype,[function inspect(){var b=[];
for(var a=0;a<this.op.params;a++)b.push(Z.inspect(this[a]));return Z.inspect(this.op)+'('+b.join(', ')+')';}]),Directive;}();
var Parameters=function(){function ParametersIterator(a){this.params=a,this.index=0;}function Parameters(a){this.length=0,a.params?(U(this,a.params),this.boundNames=boundNames(a.params),this.reduced=reducer(a)):(this.reduced=[],this.boundNames=[]),this.Rest=a.rest,this.ExpectedArgumentCount=this.length,a.rest&&this.boundNames.push(a.rest.name),this.loc=a.loc,this.range=a.range,this.defaults=a.defaults||[];}return n(ParametersIterator,aO,[function next(){if(this.index>=this.params.length)throw aK;return this.params[this.index++];}]),g(Parameters.prototype,[function __iterator__(){return new ParametersIterator(this);}]),Parameters;}();
return g(j.prototype,[function derive(a){a&&(this.strings=a.strings,this.hash=a.hash,this.natives=a.natives,this.natives&&(this.strict=!1));},function lookup(a){return a;}]),j;}();
var ClassDefinition=function(){function ClassDefinition(a){var b=this;
this.name=a.id?a.id.name:null,this.methods=[],this.symbols=[[], []],this.scope=scope.create('normal',c.currentScope),this.name&&this.scope.varDeclare(this.name),e(a.body.body,function(a){a.type==='SymbolDeclaration'?b.defineSymbols(a):b.defineMethod(a);}),this.hasSuper=!!a.superClass,this.hasSuper&&(recurse(a.superClass),f());}return g(ClassDefinition.prototype,[function defineSymbols(a){var c=a.kind!=='private', b=this;
e(a.declarations,function(a){var d=a.id.name;
b.symbols[0].push(d),b.symbols[1].push(c);});},function defineMethod(d){var a=new j(d.value,c.source,'method','class',c.code.flags.strict), b=a.name=symbol(d.key);
a.scope.outer=this.scope,c.queue(a),a.displayName=this.name?this.name+'#'+b.join(''):b.join(''),!b[0]&&(b=b[1]),d.kind=d.kind||'method',b==='constructor'?(this.ctor=a,a.classDefinition=this):this.methods.push({ kind:d.kind, code:a, name:b });}]),ClassDefinition;}();
var Unwinder=function(){function Unwinder(a,b,c){this.type=a,this.begin=b,this.end=c;}return g(Unwinder.prototype,[]),Unwinder;}();
var ControlTransfer=function(){function ControlTransfer(a){this.labels=a,this.breaks=[],this.continues=[];}return g(ControlTransfer.prototype,{ labels:null, breaks:null, continues:null }),g(ControlTransfer.prototype,[function updateContinues(a){a!==b&&e(this.continues,function(b){b[0]=a;});},function updateBreaks(a){a!==b&&e(this.breaks,function(b){b[0]=a;});}]),ControlTransfer;}();
var scope=function(){var b=S(null);
var a=b.normal=function(){function a(b){this.varNames=new m(),this.lexNames=new m(),this.outer=b;}return g(a.prototype,{ type:'normal' }),g(a.prototype,[function varDeclare(a,b){this.varNames[a]=b;},function lexDeclare(b,a){a==='function'?this.varNames[b]=a:this.lexNames[b]=a;},function has(a){return a in this.varNames||a in this.lexNames;},function pop(){this===c.currentScope&&(c.currentScope=this.outer);}]),a;}();
var e=b.block=function(){function e(a){this.lexNames=new m(),this.outer=a;}return n(e,a,{ type:'block' },[function varDeclare(a,b){this.outer.varDeclare(a,b);},function lexDeclare(a,b){this.lexNames[a]=b;},function has(a){return a in this.lexNames;}]),e;}();
var d=b.global=function(){function d(){a.call(this,null);}return n(d,a,{ type:'global' },[]),d;}();
var f=b.module=function(){function f(b){a.call(this,b);}return n(f,d,{ type:'module' },[]),f;}();
var h=b.eval=function(){function h(b){a.call(this,b);}return n(h,a,{ type:'eval' },[]),h;}();
return g({},[function resolve(a,b){while(a){if(a.has(b))return a;a=a.outer;}},function(){return function S(a,c){return new b[a](c);};}()]);}();
var referencesSuper=function(a){function nodeReferencesSuper(b){return b.type==='MemberExpression'?isSuperReference(b.object)?(a=!0,_):d:b.type==='CallExpression'?isSuperReference(b.callee)?(a=!0,_):d:isFunction(b)?X:d;}return function referencesSuper(b){return a=!1,s(b,nodeReferencesSuper),a;};}();
var aP=p({ObjectPattern:'properties',ArrayPattern:'elements',VariableDeclaration:'declarations',BlockStatement:d,Program:d,ForStatement:d,Property:'value',ExportDeclaration:'declaration',ExportSpecifierSet:'specifiers',ImportDeclaration:'specifiers',Identifier:['name'],ImportSpecifier:'id',VariableDeclarator:'id',ModuleDeclaration:'id',SpreadElement:'argument',FunctionDeclaration:'id',ClassDeclaration:'id'});
var lexDecls=function(){var LexicalDeclarations=function(a){return p({ClassDeclaration:a(!1),FunctionDeclaration:a(!1),ExportDeclaration:d,SwitchCase:d,Program:d,VariableDeclaration:a(function(a){return a.kind==='const';})});}(function(a){return typeof a!=='function'&&(a=function(a){return function(){return a;};}(a)),function(b){b.IsConstantDeclaration=a(b),b.boundNames||(b.boundNames=boundNames(b));if(b.kind!=='var')return b;};});
return function lexDecls(a){return a?(!a.LexicalDeclarations&&(a.LexicalDeclarations=LexicalDeclarations(a)),a.LexicalDeclarations):[];};}();
var varDecls=function(){var a=p({VariableDeclaration:function(a){if(a.type==='var')return a;},BlockStatement:d,CatchClause:d,DoWhileStatement:d,ExportDeclaration:d,ForInStatement:d,ForOfStatement:d,ForStatement:d,IfStatement:d,SwitchCase:d,SwitchStatement:d,TryStatement:d,WhileStatement:d,WithStatement:d});
return function varDecls(b){var c=a(b);
return e(b.body,function(a){a.type==='FunctionDeclaration'&&c.push(a);}),c;};}();
var getExports=function(){var a=p({ Program:d, BlockStatement:d, ExportDeclaration:!0 });
var b=p({ClassDeclaration:!0,ExportDeclaration:d,ExportSpecifier:!0,ExportSpecifierSet:d,FunctionDeclaration:!0,ModuleDeclaration:!0,VariableDeclaration:d,VariableDeclarator:!0});
var c=p({ArrayPattern:'elements',ObjectPattern:'properties',Property:'value',ClassDeclaration:'id',ExportSpecifier:'id',FunctionDeclaration:'id',ModuleDeclaration:'id',VariableDeclarator:'id',Glob:!0,Identifier:['name']});
return function getExports(d){return c(b(a(d)));};}();
var getImports=function(){function Import(a,b,c){this.origin=a,this.name=b,this.specifiers=c;}var b=p({ Program:d, BlockStatement:d, ImportDeclaration:!0, ModuleDeclaration:!0 });
var a={ Glob:function(){ return['*', '*']; }, Path:function(b){ return o(b.body,function(b){ return a[b.type](b); }); }, ImportSpecifier:function(b){ var c=a[b.id.type](b.id);
var d=b.from===null?c:a[b.from.type](b.from);
return[c, d]; }, Identifier:function(a){ return a.name; }, Literal:function(a){ return a.value; } };
return function getImports(d){var f=b(d), c=[];
return e(f,function(b,h){if(b.body){var f=g=b.id.name;
var d=b;
}else{var f=a[b.from.type](b.from);
if(b.type==='ModuleDeclaration')var g=b.id.name;
else{var d=new m();
e(b.specifiers,function(c){var b=a[c.type](c);
b=typeof b==='string'?[b, b]:b,!(b[1]instanceof Array)&&(b[1]=[b[1]]),d[b[0]]=b[1];});}}c.push(new Import(f,g,d));}),c;};}();
var reducer=function(){function convert(a){if(!a)return a;var c=b[a.type];
if(c)return c(a);}function y(a){return{name:convert(a.id),params:o(a.params,convert),defaults:o(a.defaults||[],convert),rest:convert(a.rest)};}function i(b){var a={};
return e(b.properties,function(b){a[convert(b.key)]=convert(b.value);}),a;}function arrays(a){return o(a.elements,convert);}function operation(b,d,e){var c={ operator:e };
return b!==a&&(c.left=convert(b)),b!==a&&(c.right=convert(d)),c;}function binary(a){return{ left:convert(a.left), right:convert(a.right), operator:a.operator };}var a={};
var b={ ArrayExpression:arrays, ArrayPattern:arrays, BinaryExpression:binary, AssignmentExpression:binary, LogicalExpression:binary, UnaryExpression:function(b){ return operation(a,b.argument,b.operator); }, UpdateExpression:function(b){ return b.prefix?operation(a,b.argument,b.operator):operation(b.argument,a,b.operator); }, Identifier:function(a){ return a.name; }, Literal:function(a){ return a.value; }, ObjectExpression:i, ObjectPattern:i, FunctionDeclaration:y, FunctionExpression:y, ArrowFunctionExpression:y, CallExpression:function(a){ return{ callee:convert(a.callee), args:o(a.arguments,convert) }; }, MemberExpression:function(a){ return{ object:convert(a.object), member:convert(a.property) }; }, ThisExpression:function(a){ return'this'; }, SpreadElement:function(a){ return{ spread:convert(a.arguments) }; }, Program:function(b){ var a={ functions:[], vars:[] };
return e(b.body,function(b){ b.type==='FunctionDeclaration'?a.functions.push(convert(b)):b.type==='VariableDeclaration'&&b.kind==='var'&&e(b.declarations,function(b){ a.vars.push({ binding:convert(b.id), init:convert(b.init) }); }); }),a; } };
return convert;}();
var annotateTailPosition=function(){function set(a,b){return function(c){c&&(c[a]=b);};}function either(a,b){return function(c){return c?a:b;};}function copier(a){return function(b,c){b&&c&&(c[a]=b[a]);};}function dispatcher(a){return a.type||X;}var f=set('wrapped',!0), b=set('wrapped',!1), i=set('tail',!0), g=set('tail',!1), c=either(f,b), h=either(i,g), a=copier('wrapped'), j=copier('tail');
var k=new aU(dispatcher,[ function __noSuchHandler__(a){ return d; }, function ArrowFunctionExpression(a){ b(a.body),this.push(a.body); }, function BlockStatement(a){ return e(a.body,c(a.wrapped)),d; }, function CatchClause(b){ return a(b,b.body),d; }, function ConditionalExpression(a){ return e(a,h(a.tail)),e(a,c(a.wrapped)),d; }, function DoWhileStatement(b){ return e(b,g),a(b,b.body),d; }, function ExpressionStatement(b){ return a(b,b.expression),d; }, function ForInStatement(b){ return a(b,b.body),d; }, function ForOfStatement(b){ return a(b,b.body),d; }, function ForStatement(b){ return a(b,b.body),d; }, function FunctionDeclaration(a){ b(a.body),this.push(a.body); }, function FunctionExpression(a){ b(a.body),this.push(a.body); }, function IfStatement(b){ return a(b,b.consequent),a(b,b.alternate),d; }, function LabeledStatement(b){ return a(b,b.statement),d; }, function ModuleDeclaration(a){ return a.body&&e(a.body,b),d; }, function Program(a){ return e(a.body,b),d; }, function ReturnStatement(a){ return h(!a.wrapped)(a.argument),d; }, function SequenceExpression(a){ return e(a.expression,c(a.wrapped)),j(a,a.expressions[a.expressions.length-1]),d; }, function SwitchCase(a){ return e(a.consequent,c(a.wrapped)),d; }, function SwitchStatement(a){ return e(a.cases,c(a.wrapped)),d; }, function TryStatement(a){ return f(a.block),e(a.handlers,c(a.finalizer||a.wrapped)),b(a.finalizer),d; }, function WhileStatement(b){ return a(b,b.body),d; }, function WithStatement(b){ return a(b,b.body),d; } ]);
return function annotateTailPosition(a){return k.visit(a),a;};}();
var u=[], w;
var aS={ start:{ line:0, column:0 }, end:{ line:0, column:0 } }, aT=[0, 0];
var symbol=function(){function Symbol(a){a.type==='AtSymbol'?(this[0]='@',this[1]=(a.internal?'@':'')+a.name):a.type==='Literal'?(this[0]='',this[1]=a.value):(this[0]='',this[1]=a.name);}return g(Symbol.prototype,'length',2),g(Symbol.prototype,[Array.prototype.join]),function symbol(a){return new Symbol(a);};}();
var Y=[];
var destructure=function(){var a={ elements:function(a,b){ return a.elements[b]; }, properties:function(a,b){ return a.properties[b].value; } };
return function destructure(b,a){var c=b.type==='ArrayPattern'?'elements':'properties';
pushNode(b),aG(),pushNode(b[c]),e(b[c],function(b,c){if(!b)return;pushNode(b),v(),b.type==='Property'?(pushNode(b.key),G(symbol(b.key)),f(),popNode(),pushNode(b.value),isPattern(b.value)?destructure(b.value,a):b.value.type==='Identifier'&&a(b.value.name),popNode()):b.type==='ArrayPattern'?(L(c),Q(),f(),destructure(b,a)):b.type==='Identifier'?(L(c),Q(),f(),a(b.name)):b.type==='SpreadElement'&&(pushNode(b.argument),f(),av(c),a(b.argument.name),popNode()),popNode();}),popNode(),popNode();};}();
var aV=/^\$__/;
var $={};
e([ArrayExpression,ArrayPattern,ArrowFunctionExpression,AssignmentExpression,AtSymbol,BinaryExpression,BlockStatement,BreakStatement,CallExpression,CatchClause,ClassBody,ClassDeclaration,ClassExpression,ClassHeritage,ConditionalExpression,ContinueStatement,DebuggerStatement,DoWhileStatement,EmptyStatement,ExportDeclaration,ExportSpecifier,ExportSpecifierSet,ExpressionStatement,ForInStatement,ForOfStatement,ForStatement,FunctionDeclaration,FunctionExpression,Glob,Identifier,IfStatement,ImportDeclaration,ImportSpecifier,LabeledStatement,Literal,LogicalExpression,MemberExpression,MethodDefinition,ModuleDeclaration,NativeIdentifier,NewExpression,ObjectExpression,ObjectPattern,Path,Program,Property,ReturnStatement,SequenceExpression,SwitchStatement,SymbolDeclaration,SymbolDeclarator,TaggedTemplateExpression,TemplateElement,TemplateLiteral,ThisExpression,ThrowStatement,TryStatement,UnaryExpression,UpdateExpression,VariableDeclaration,VariableDeclarator,WhileStatement,WithStatement,YieldExpression],function(a){$[aR(a)]=a;});var z=F.Assembler=function(){function annotateParent(b,a){s(b,function(b){return aQ(b)&&a&&g(b,'parent',a),d;});}function reinterpretNatives(a){s(a,function(a){if(!(a.type==='Identifier'&&/^\$__/.test(a.name)))return d;a.type='NativeIdentifier',a.name=a.name.slice(3);});}function AssemblerOptions(a){a=Object(a);for(var b in this)this[b]=b in a?a[b]:this[b];}function z(a){this.options=new AssemblerOptions(a),g(this,{ strings:[], hash:new m() });}return AssemblerOptions.prototype={ scope:'global', natives:!1, filename:null },g(z.prototype,{ source:null, node:null, code:null, pending:null, jumps:null, labels:null }),g(z.prototype,[function assemble(b,d){c=this,this.pending=new R(),this.jumps=new R(),this.labels=null,this.source=d,this.options.scope==='function'&&(b=b.body[0].expression);var a=new j(b,d,'normal',this.options.scope);
g(a,{ strings:this.strings, hash:this.hash }),a.topLevel=!0,this.options.natives&&(a.natives=!0,a.strict=!1),this.queue(a);while(this.pending.length)this.process(this.pending.pop(),this.code);return a;},function process(a,b){this.code=a,this.code.filename=this.filename,b&&a.derive(b),this.currentScope=a.scope,a.params&&FunctionDeclarationInstantiation(a),recurse(a.body);var c=last();
a.scopeType==='global'||a.scopeType==='eval'?ab():c&&c.op.name!=='RETURN'&&(a.lexicalType==='arrow'&&a.body.type!=='BlockStatement'?(f(),K()):(r(),K())),this.currentScope=this.currentScope.outer;},function queue(a){this.code&&this.code.children.push(a),this.pending.push(a);},function intern(a){return a;},function earlyError(b,a){this.code.errors||(this.code.errors=[]),this.code.errors.push(a);}]),z;}();
return F.assemble=function assemble(a){var b=new z(a);
return b.assemble(a.ast,a.source);},F;}(typeof d!=='undefined'?d.exports:{}),c.descriptors=function(c){function $Object(b){return $Object=a('./$Object').$Object,new $Object(b);}function PropertyDescriptor(){}function EmptyDataDescriptor(){}function EmptyAccessorDescriptor(){}function DataDescriptor(b,a){this.Value=b,this.Writable=(a&r)>0,this.Enumerable=(a&l)>0,this.Configurable=(a&k)>0;}function AccessorDescriptor(a,b){this.Get=a.Get,this.Set=a.Set,this.Enumerable=(b&l)>0,this.Configurable=(b&k)>0;}function StringIndex(a){this.Value=a;}function Value(a){this.Value=a;}function Accessor(a,b){this.Get=a,this.Set=b,g(this);}function BuiltinAccessor(a,b){g(this),a&&(this.Get={ Call:a }),b&&(this.Set={ Call:b });}function ArgAccessor(a,b){this.name=a,this.env=b,g(this);}function $$IsDescriptor(a){return a?a.isDescriptor===!0:!1;}function $$IsEmptyDescriptor(a){return!('Get'in a||'Set'in a||'Value'in a||'Writable'in a||'Enumerable'in a||'Configurable'in a);}function $$IsAccessorDescriptor(a){return a===b?!1:'Get'in a||'Set'in a;}function $$IsDataDescriptor(a){return a===b?!1:'Value'in a||'Writable'in a;}function $$IsGenericDescriptor(a){return a===b?!1:!('Get'in a||'Set'in a||'Value'in a||'Writable'in a);}function $$IsEquivalentDescriptor(a,b){return a.isDataDescriptor===b.isDataDescriptor&&a.Get===b.Get&&a.Set===b.Set&&a.Writable===b.Writable&&a.Enumerable===b.Enumerable&&a.Configurable===b.Configurable&&p(a.Value,b.Value);}function $$FromPropertyDescriptor(a){if(a){var b=new $Object();
return b.set('enumerable',a.Enumerable),b.set('configurable',a.Configurable),a.isDataDescriptor?(b.set('writable',a.Writable),b.set('value',a.Value)):a.isAccessorDescriptor&&(b.set('get',a.Get),b.set('set',a.Set)),b;}}function $$ToPropertyDescriptor(d){if(typeof d!=='object')return e('property_desc_object',[typeof d]);var a=i(null);
for(var g=0;g<6;g++){var j=h[g];
if(d.HasProperty(j)){var f=a[j]=d.Get(j);
if(f&&f!==!0&&f.Abrupt)return f;}}if(a.get?!a.get.Call:a.get!==b)return e('getter_must_be_callable',[typeof a.get]);if(a.set?!a.set.Call:a.set!==b)return e('setter_must_be_callable',[typeof a.set]);if('get'in a||'set'in a){if('value'in a||'writable'in a)return e('value_and_accessor',[a]);var c=new EmptyDataDescriptor();
'get'in a&&(c.Get=a.get),'set'in a&&(c.Set=a.set);}else if('value'in a||'writable'in a){var c=new EmptyAccessorDescriptor();
'value'in a&&(c.Value=a.value),'writable'in a&&(c.Writable=a.writable);}else var c=new PropertyDescriptor();
return'enumerable'in a&&(c.Enumerable=a.enumerable),'configurable'in a&&(c.Configurable=a.configurable),c;}function $$FromGenericPropertyDescriptor(c){if(c===b)return;var d=new $Object();
for(var a=0, e;a<6;a++)n[a]in c&&d.set(h[a],c[n[a]]);return d;}function $$ToCompletePropertyDescriptor(c){var a=ToPropertyDescriptor(c);
return a&&a.Abrupt?a:(a.isDataDescriptor?('Value'in a||(a.Value=b),'Writable'in a||(a.Writable=!1)):a.isAccessorDescriptor?('Get'in a||(a.Get=b),'Set'in a||(a.Set=b)):(a.isDataDescriptor=!0,a.Value=b,a.Writable=!1),'Enumerable'in a||(a.Enumerable=!1),'Configurable'in a||(a.Configurable=!1),a);}function $$CopyAttributes(c,e){var d=c.Enumerate(!0,!1);
for(var a=0;a<d.length;a++){var b=d[a];
!(b in m)&&e.define(b,c.Get(b),u);}}'use strict';var f=a('../lib/objects'), v=a('../lib/iteration'), s=a('../errors'), q=a('../lib/utility');
var p=f.is, i=f.create, j=f.define, d=f.inherit, o=v.each, g=q.tag, e=s.$$ThrowException;
var l=1, k=2, r=4, F=8, A=0, t=1, G=2, w=3, x=4, y=5, z=6, u=7, B=8, C=9, D=10, E=11;
var h=['value', 'writable', 'enumerable', 'configurable', 'get', 'set'], n=['Value', 'Writable', 'Enumerable', 'Configurable', 'Get', 'Set'], m=i(null);
return o(h,function(a){m[a]=!0;}),PropertyDescriptor.prototype=j(i(null),{ constructor:PropertyDescriptor, type:'PropertyDescriptor', isDescriptor:!0 }),c.PropertyDescriptor=PropertyDescriptor,c.EmptyDataDescriptor=EmptyDataDescriptor,d(EmptyDataDescriptor,PropertyDescriptor,{ type:'DataDescriptor', isDataDescriptor:!0, isAccessorDescriptor:!1 }),c.EmptyAccessorDescriptor=EmptyAccessorDescriptor,d(EmptyAccessorDescriptor,PropertyDescriptor,{ type:'AccessorDescriptor', isDataDescriptor:!1, isAccessorDescriptor:!0 }),c.DataDescriptor=DataDescriptor,d(DataDescriptor,EmptyDataDescriptor,{ Writable:b, Value:b }),c.AccessorDescriptor=AccessorDescriptor,d(AccessorDescriptor,EmptyAccessorDescriptor,{ Get:b, Set:b }),c.StringIndex=StringIndex,StringIndex.prototype=new DataDescriptor(b,t),c.Value=Value,d(Value,EmptyDataDescriptor),c.Accessor=Accessor,j(Accessor.prototype,{ Get:b, Set:b }),c.BuiltinAccessor=BuiltinAccessor,d(BuiltinAccessor,Accessor),c.ArgAccessor=ArgAccessor,d(ArgAccessor,Accessor,{type:'ArgAccessor',Get:{ Call:function(){return this.env.GetBindingValue(this.name);} },Set:{ Call:function(a){this.env.SetMutableBinding(this.name,a);} }}),c.$$IsDescriptor=$$IsDescriptor,c.$$IsEmptyDescriptor=$$IsEmptyDescriptor,c.$$IsAccessorDescriptor=$$IsAccessorDescriptor,c.$$IsDataDescriptor=$$IsDataDescriptor,c.$$IsGenericDescriptor=$$IsGenericDescriptor,c.$$IsEquivalentDescriptor=$$IsEquivalentDescriptor,c.$$FromPropertyDescriptor=$$FromPropertyDescriptor,c.$$ToPropertyDescriptor=$$ToPropertyDescriptor,c.$$FromGenericPropertyDescriptor=$$FromGenericPropertyDescriptor,c.$$ToCompletePropertyDescriptor=$$ToCompletePropertyDescriptor,c.$$CopyAttributes=$$CopyAttributes,c;}(typeof d!=='undefined'?c:{}),c.collections=function(e){'use strict';var d=a('../lib/objects');
var f=d.Hash, g=d.create, c=d.define, i=d.inherit, h=a('../lib/utility').tag;
return e.MapData=function(){function LinkedItem(b,a){this.key=b,this.next=a,this.previous=a.previous,a.previous=a.previous.next=this;}function MapData(){h(this),this.guard=g(LinkedItem.prototype),this.guard.key={},this.reset();}return c(LinkedItem.prototype,[function unlink(){return this.next.previous=this.previous,this.previous.next=this.next,this.next=this.previous=this.data=this.key=null,this.data;}]),MapData.sigil=g(null),c(MapData.prototype,{ type:'MapData' }),c(MapData.prototype,[function reset(){this.size=0,this.strings=new f(),this.numbers=new f(),this.others=new f(),this.lastLookup=this.guard.next=this.guard.previous=this.guard;},function forEach(c,b){var a=this.guard.next;
b=b||this;while(a!==this.guard)c.call(b,a.value,a.key),a=a.next;},function clear(){var b, a=this.guard.next;
while(a!==this.guard)b=a.next,a.key!==null&&typeof a.key==='object'&&delete a.key.storage[this.id],a.next=a.previous=a.data=a.key=null,a=b;this.reset();},function add(a){return this.size++,new LinkedItem(a,this.guard);},function lookup(a){var b=typeof a;
return a===this?this.guard:a!==null&&b==='object'?a.storage[this.id]:this.getStorage(a)[a];},function getStorage(a){var b=typeof a;
return b==='string'?this.strings:b==='number'?a===0&&1/a===-Infinity?this.others:this.numbers:this.others;},function set(a,c){var e=typeof a;
if(a!==null&&e==='object'){var b=a.storage[this.id]||(a.storage[this.id]=this.add(a));
b.value=c;}else{var d=this.getStorage(a);
var b=d[a]||(d[a]=this.add(a));
b.value=c;}},function get(b){var a=this.lookup(b);
if(a)return a.value;},function has(a){return!!this.lookup(a);},function remove(a){var b;
if(a!==null&&typeof a==='object')b=a.storage[this.id],b&&delete a.storage[this.id];else{var c=this.getStorage(a);
b=c[a],b&&delete c[a];}return b?(b.unlink(),this.size--,!0):!1;},function after(b){if(b===MapData.sigil)var a=this.guard;
else if(b===this.lastLookup.key)var a=this.lastLookup;
else var a=this.lookup(b);
if(a&&a.next!==this.guard)return this.lastLookup=a.next,[a.next.key, a.next.value];}]),MapData;}(),e.WeakMapData=function(){function WeakMapData(){h(this);}return c(WeakMapData.prototype,{ type:'WeakMapData' }),c(WeakMapData.prototype,[function set(c,a){a===b&&(a=Empty),c.storage[this.id]=a;},function get(b){var a=b.storage[this.id];
if(a!==Empty)return a;},function has(a){return a.storage[this.id]!==b;},function remove(a){var c=a.storage[this.id];
return c!==b?(a.storage[this.id]=b,!0):!1;}]),WeakMapData;}(),e;}(typeof d!=='undefined'?c:{}),c.operators=function(c){function $$HasPrimitiveBase(b){var a=typeof b.base;
return a===d||a===g||a===i;}function $$GetValue(a){if(!a||!a.Reference||a.Abrupt)return a;var b=a.base;
if(b==null)return h('not_defined',[a.name]);{var c=typeof b;
if(c!==e){if(c===d&&a.name==='length'||a.name>=0&&a.name<b.length)return b[a.name];b=$$ToObject(b);}if(b.Get)return'thisValue'in a?b.GetP($$GetThisValue(a),a.name):b.Get(a.name);if(b.GetBindingValue)return b.GetBindingValue(a.name,a.strict);}}function $$PutValue(a,f){if(!a)return h('non_object_property_store',['undefined', 'undefined']);if(a.Abrupt)return a;if(!a.Reference)return h('non_object_property_store',[a.name, a.base]);if(f&&f.Abrupt)return f;var d=a.base;
return d===b?a.strict?h('not_defined',[a.name, d]):c.global.Put(a.name,f,!1):(typeof d!==e&&(d=$$ToObject(d)),d.Get?'thisValue'in a?d.SetP(GetThisValue(a),a.name,f,a.strict):d.Put(a.name,f,a.strict):d.SetMutableBinding(a.name,f,a.strict));}function $$GetThisValue(a){if(!a||a.Abrupt||!a.Reference)return a;var c=a.base;
return c===b?h('non_object_property_load',[a.name, c]):'thisValue'in a?a.thisValue:c;}function $Boolean(b){return $Boolean=a('../runtime').builtins.$Boolean,new $Boolean(b);}function $Number(b){return $Number=a('../runtime').builtins.$Number,new $Number(b);}function $String(b){return $String=a('../runtime').builtins.$String,new $String(b);}function $$ToObject(a){switch(typeof argument){case'boolean':return new $Boolean(a);case'number':return new $Number(a);case'string':return new $String(a);case'undefined':return h('undefined_to_object',[]);case'object':return a===null?h('null_to_object',[]):a;}}function $$ToPrimitive(a,b){return a&&typeof a===e&&!a.Abrupt?$$ToPrimitive(a.DefaultValue(b),b):a;}function $$ToBoolean(a){return a&&a.Completion?a:!!a;}function $$ToNumber(a){return a!==null&&typeof a===e?a.Abrupt?a:$$ToNumber($$ToPrimitive(a,'Number')):+a;}function $$ToInteger(a){return a=$$ToNumber(a),a&&a.Abrupt?a:a!==a?0:a===0||a===Infinity||a===-Infinity?a:a>>0;}function $$ToUint32(a){return a=$$ToNumber(a),a&&a.Abrupt?a:a>>>0;}function $$ToInt32(a){return a=$$ToNumber(a),a&&a.Abrupt?a:a>>0;}function $$ToUint16(a){return a=$$ToNumber(a),a&&a.Abrupt?a:(a>>>0)%(1<<16);}function $$ToPropertyKey(a){if(!a)return a+'';var b=typeof a;
return b===d||b===e&&a.Abrupt||a.BuiltinBrand===E?a:$$ToString(a);}function $$ToString(a){switch(typeof argument){case d:return a;case k:case g:case i:return''+a;case e:return a===null?'null':a.Abrupt?a:$$ToString($$ToPrimitive(a,'String'));}}function VOID(b){var a=$$GetValue(b);
if(a&&a.Abrupt)return a;}function TYPEOF(a){var c=typeof a;
switch(c){case k:case i:case g:case d:return c;case e:return a===null?e:a.Abrupt?a:a.Reference?a.base===b?k:TYPEOF($$GetValue(a)):'Call'in a?D:e;}}function POSITIVE(a){return $$ToNumber($$GetValue(a));}function convertAdd(a,b,c,d){if(typeof a!==c){a=d(a);if(a&&a.Abrupt)return a;}else if(typeof b!==c){b=d(b);if(b&&b.Abrupt)return b;}return a+b;}function ADD(a,b){a=$$ToPrimitive(a);if(a&&a.Abrupt)return a;b=$$ToPrimitive(b);if(b&&b.Abrupt)return b;if(typeof a===d||typeof b===d)var c=d, e=$$ToString;
else var c=g, e=$$ToNumber;
return convertAdd(a,b,c,e);}function STRING_ADD(a,b){return convertAdd(a,b,d,$$ToString);}function COMPARE(f,h,i){if(i===!1)var a=f, b=h;
else var a=h, b=f;
a=$$ToPrimitive(a,'Number');if(a&&a.Abrupt)return a;b=$$ToPrimitive(b,'Number');if(b&&b.Abrupt)return b;var c=typeof a, e=typeof b;
if(c===d||e===d){if(c!==d){a=$$ToString(a);if(a&&a.Abrupt)return a;}else if(e!==d){b=$$ToString(b);if(b&&b.Abrupt)return b;}if(typeof a===d&&typeof b===d)return a<b;}else{if(c!==g){a=$$ToNumber(a);if(a&&a.Abrupt)return a;}if(e!==g){b=$$ToNumber(b);if(b&&b.Abrupt)return b;}if(typeof a===g&&typeof b===g)return a<b;}}function INSTANCE_OF(b,a){return a===null||typeof a!==e||!('HasInstance'in a)?h('instanceof_function_expected',b):a.HasInstance(b);}function DELETE(a){if(!a||!a.Reference)return!0;var c=a.base;
return c===b?a.strict?h('strict_delete_property',[a.name, c]):!0:c.Delete?'thisValue'in a?h('super_delete_property',a.name):c.Delete(a.name,a.strict):c.DeleteBinding?c.DeleteBinding(a.name):!0;}function IN(a,b){return b===null||typeof b!==e?h('invalid_in_operator_use',[a, b]):(a=$$ToPropertyKey(a),a&&a.Abrupt?a:b.HasProperty(a));}function STRICT_EQUAL(a,b){return a&&a.Abrupt?a:b&&b.Abrupt?b:a===b;}function EQUAL(a,b){if(a&&a.Abrupt)return a;if(b&&b.Abrupt)return b;var c=typeof a, f=typeof b;
return c===f?a===b:a==null||b==null?a==null&&b==null:c===g||f===d?EQUAL(a,$$ToNumber(b)):c===d||f===g?EQUAL($$ToNumber(a),b):f===i?EQUAL(a,$$ToNumber(b)):c===i?EQUAL($$ToNumber(a),b):f===e&&c===g||c===d?EQUAL(a,$$ToPrimitive(b)):c===e&&f===g||f===e?EQUAL($$ToPrimitive(a),b):!1;}function UnaryOp(b,a){switch(b){case'delete':return DELETE(a);case'void':return VOID(a);case'typeof':return TYPEOF(a);case'+':return POSITIVE(a);case'-':return z(a);case'~':return u(a);case'!':return j(a);}}function BinaryOp(c,a,b){switch(c){case'instanceof':return INSTANCE_OF(a,b);case'in':return IN(a,b);case'==':return EQUAL(a,b);case'!=':return j(EQUAL(a,b));case'===':return STRICT_EQUAL(a,b);case'!==':return j(STRICT_EQUAL(a,b));case'<':return w(a,b);case'>':return v(a,b);case'<=':return t(a,b);case'>=':return s(a,b);case'*':return r(a,b);case'/':return q(a,b);case'%':return p(a,b);case'+':return ADD(a,b);case'string+':return STRING_ADD(a,b);case'-':return o(a,b);case'<<':return l(a,b);case'>>':return y(a,b);case'>>>':return x(a,b);case'|':return n(a,b);case'&':return m(a,b);case'^':return BIT_XOR(a,b);}}'use strict';var h=a('../errors').$$ThrowException;
var f=a('../constants').SYMBOLS, R=f.Break, Q=f.Pause, P=f.Throw, O=f.Empty, N=f.Resume, M=f.Return, L=f.Abrupt, K=f.Builtin, J=f.Continue, I=f.Reference, H=f.Completion, G=f.Uninitialized, E=a('../constants').BRANDS.BuiltinSymbol;
var i='boolean', D='function', g='number', e='object', d='string', k='undefined';
c.$$GetValue=$$GetValue,c.$$PutValue=$$PutValue,c.$$GetThisValue=$$GetThisValue,c.$$ToObject=$$ToObject,c.$$ToPrimitive=$$ToPrimitive,c.$$ToBoolean=$$ToBoolean,c.$$ToNumber=$$ToNumber,c.$$ToInteger=$$ToInteger,c.$$ToUint32=$$ToUint32,c.$$ToInt32=$$ToInt32,c.$$ToUint16=$$ToUint16,c.$$ToPropertyKey=$$ToPropertyKey,c.$$ToString=$$ToString;var C, A, F, B;
void function(a){c.PRE_INC=C=a(!0,1),c.POST_INC=A=a(!1,1),c.PRE_DEC=F=a(!0,-1),c.POST_DEC=B=a(!1,-1);}(function(a,b){return function(e){var c=$$ToNumber($$GetValue(e));
if(c&&c.Abrupt)return c;var f=c+b, d=$$PutValue(e,f);
return d&&d.Abrupt?d:a?f:c;};}),c.VOID=VOID,c.TYPEOF=TYPEOF,c.POSITIVE=POSITIVE;var z, u, j;
void function(a){c.NEGATIVE=z=a($$ToNumber,function(a){return-a;}),c.BIT_NOT=u=a($$ToInt32,function(a){return~a;}),c.NOT=j=a($$ToBoolean,function(a){return!a;});}(function(b,a){return function(c){if(!c||typeof c!==e)return a(c);var d=b($$GetValue(c));
return d&&d.Abrupt?d:a(d);};});var r, q, p, o, n, m;
void function(a){c.MUL=r=a(function(a,b){return a*b;}),c.DIV=q=a(function(a,b){return a/b;}),c.MOD=p=a(function(a,b){return a%b;}),c.SUB=o=a(function(a,b){return a-b;}),c.BIT_AND=m=a(function(a,b){return a&b;}),c.BIT_OR=n=a(function(a,b){return a|b;});}(function(a){return function(b,c){return b=$$ToNumber(b),b&&b.Abrupt?b:(c=$$ToNumber(c),c&&c.Abrupt?c:a(b,c));};}),c.ADD=ADD,c.STRING_ADD=STRING_ADD;var l, y, x;
void function(a){c.SHL=l=a(function(a,b){return a<<b;}),c.SHR=y=a(function(a,b){return a>>b;}),c.SAR=x=a(function(a,b){return a>>>b;});}(function(a){return function(b,c){return b=$$ToInt32(b),b&&b.Abrupt?b:(c=$$ToUint32(c),c&&c.Abrupt?c:a(b,c&31));};});var w, v, t, s;
return void function(a){c.LT=w=a(!0,!1),c.GT=v=a(!1,!1),c.LTE=t=a(!0,!0),c.GTE=s=a(!1,!0);}(function(c,a){return function(e,f){if(c){var g=e;
e=f,f=g;}var d=COMPARE(f,e,a);
return d&&d.Abrupt?d:d===b?!1:a?!d:d;};}),c.INSTANCE_OF=INSTANCE_OF,c.DELETE=DELETE,c.IN=IN,c.STRICT_EQUAL=STRICT_EQUAL,c.EQUAL=EQUAL,c.UnaryOp=UnaryOp,c.BinaryOp=BinaryOp,c;}(typeof d!=='undefined'?d.exports:{}),c.environments=function(f,c){'use strict';var e=a('../lib/objects');
var b=e.Hash, r=e.isObject, p=e.keys, n=e.define, i=e.inherit, o=e.hide, q=a('../lib/iteration').each, h=a('../lib/utility').tag;
var d=a('../errors').$$ThrowException, m=a('../constants').SYMBOLS.Uninitialized;
var l={ Configurable:!0, Enumerable:!0, Writable:!0, Value:c };
var g=f.EnvironmentRecord=function(){function g(a,c){this.bindings=a,this.outer=c||null,this.cache=new b(),h(this);}return n(g.prototype,{ bindings:null, withBase:c, type:'Env', Environment:!0 }),n(g.prototype,[function EnumerateBindings(){},function HasBinding(a){},function GetBindingValue(a,b){},function SetMutableBinding(a,b,c){},function DeleteBinding(a){},function WithBaseObject(){return this.withBase;},function HasThisBinding(){return!1;},function HasSuperBinding(){return!1;},function GetThisBinding(){},function GetSuperBase(){},function HasSymbolBinding(a){return this.symbols?a in this.symbols:!1;},function InitializeSymbolBinding(a,c){!this.symbols&&(this.symbols=new b());if(a in this.symbols)return d('symbol_redefine',a);this.symbols[a]=c;},function GetSymbol(a){return this.symbols&&a in this.symbols?this.symbols[a]:d('symbol_not_defined',a);}]),g;}();
var j=f.DeclarativeEnvironmentRecord=function(){function j(a){this.outer=a||null,this.bindings=new b(),this.consts=new b(),this.deletables=new b(),this.cache=new b(),h(this);}return i(j,g,{ type:'DeclarativeEnv' },[function destroy(){this.destroy=null;for(var a in this.bindings)this.bindings[a]&&this.bindings[a].destroy&&this.bindings[a].destroy();},function EnumerateBindings(){return p(this.bindings);},function HasBinding(a){return a in this.bindings;},function CreateMutableBinding(a,b){this.bindings[a]=c,b&&(this.deletables[a]=!0);},function InitializeBinding(a,b){this.bindings[a]=b;},function GetBindingValue(a,c){if(a in this.bindings){var b=this.bindings[a];
return b===m?d('uninitialized_const',a):b;}else return c?d('not_defined',a):!1;},function SetMutableBinding(a,b,c){if(a in this.consts){if(this.bindings[a]===m)return d('uninitialized_const',a);else if(c)return d('const_assign',a);}else this.bindings[a]=b;},function CreateImmutableBinding(a){this.bindings[a]=m,this.consts[a]=!0;},function DeleteBinding(a){return a in this.bindings?a in this.deletables?(delete this.bindings[a],delete this.deletables[names],!0):!1:!0;}]),j;}();
var k=f.ObjectEnvironmentRecord=function(){function k(a,c){this.bindings=a,this.outer=c||null,this.cache=new b(),h(this);}return i(k,g,{ type:'ObjectEnv' },[function destroy(){this.destroy=null,this.bindings.destroy&&this.bindings.destroy();},function EnumerateBindings(){return this.bindings.Enumerate(!1,!1);},function HasBinding(a){return this.bindings.HasProperty(a);},function CreateMutableBinding(a,b){return this.bindings.DefineOwnProperty(a,l,!0);},function InitializeBinding(a,b){l.Value=b;var d=this.bindings.DefineOwnProperty(a,l,!0);
return l.Value=c,d;},function GetBindingValue(a,b){if(this.bindings.HasProperty(a))return this.bindings.Get(a);if(b)return d('not_defined',a);},function SetMutableBinding(a,b,c){return this.bindings.Put(a,b,c);},function DeleteBinding(a){return this.bindings.Delete(a,!1);}]),k;}();
return f.FunctionEnvironmentRecord=function(){function FunctionEnvironmentRecord(c,a){this.outer=a.Scope,this.bindings=new b(),this.consts=new b(),this.deletables=new b(),this.cache=new b(),this.thisValue=c,this.HomeObject=a.HomeObject,this.MethodName=a.MethodName,h(this);}return i(FunctionEnvironmentRecord,j,{ HomeObject:c, MethodName:c, thisValue:c, type:'FunctionEnv' },[function HasThisBinding(){return!0;},function HasSuperBinding(){return this.HomeObject!==c;},function GetThisBinding(){return this.thisValue;},function GetSuperBase(){return this.HomeObject?this.HomeObject.GetInheritance():c;},function GetMethodName(){return this.MethodName;}]),FunctionEnvironmentRecord;}(),f.GlobalEnvironmentRecord=function(){function GlobalEnvironmentRecord(a){this.thisValue=this.bindings=a,this.outer=null,this.cache=new b(),a.env=this,o(a,'env'),h(this);}return i(GlobalEnvironmentRecord,k,{ outer:null, type:'GlobalEnv' },[function GetThisBinding(){return this.bindings;},function HasThisBinding(){return!0;},function inspect(){return'[GlobalEnvironmentRecord]';}]),GlobalEnvironmentRecord;}(),f;}(typeof d!=='undefined'?d.exports:{}),c.operations=function(c){function $Object(b){return $Object=a('./$Object').$Object,new $Object(b);}function $Array(b){return $Array=a('./$Array'),new $Array(b);}function $$CheckObjectCoercible(a){return a===null?d('null_to_object'):a===b?d('undefined_to_object'):a;}function $$IsArrayIndex(a){var b=a>>>0;
return''+b===a&&b!==4294967295;}function $$IsPropertyReference(b){var a=typeof b.base;
return b!==null&&a==='string'||a==='number'||a==='boolean'||a==='object'&&'GetP'in b.base;}function $$GetIdentifierReference(a,c,d){return a==null?new e(b,c,d):a.HasBinding(c)?new e(a,c,d):$$GetIdentifierReference(a.outer,c,d);}function $$GetSymbol(c,b){var a=c.LexicalEnvironment;
while(a){if(a.HasSymbolBinding(b))return a.GetSymbol(b);a=a.outer;}}function $$Element(d,f,b){var c=$$CheckObjectCoercible(b);
if(c.Abrupt)return c;var a=o(f);
return a&&a.Abrupt?a:new e(b,a,d.strict);}function $$SuperReference(f,c){var a=$$GetThisEnvironment(f);
if(!a.HasSuperBinding())return d('invalid_super_binding');if(c===null)return a;var g=a.GetSuperBase(), h=$$CheckObjectCoercible(g);
if(h.Abrupt)return h;if(c===!1)var b=a.GetMethodName();
else{var b=o(c);
if(b&&b.Abrupt)return b;}var i=new e(g,b,f.strict);
return i.thisValue=a.GetThisBinding(),i;}function $$GetThisEnvironment(b){var a=b.LexicalEnvironment;
while(a){if(a.HasThisBinding())return a;a=a.outer;}}function $$ThisResolution(a){return $$GetThisEnvironment(a).GetThisBinding();}function $$IdentifierResolution(a,b){return $$GetIdentifierReference(a.LexicalEnvironment,b,a.strict);}function $$IsCallable(a){return a&&a.Abrupt?a:a&&typeof a==='object'?'Call'in a:!1;}function $$IsConstructor(a){return a&&a.Abrupt?a:a&&typeof a==='object'?'Construct'in a:!1;}function $$EvaluateConstruct(a,b){return typeof a!=='object'?d('not_constructor',a):$$IsConstructor(a)?a.Construct(b):d('not_constructor',a);}function $$EvaluateCall(a,b,c,g){if(typeof b!=='object'||!$$IsCallable(b))return d('called_non_callable',[a&&a.name]);if(a instanceof e)var f=$$IsPropertyReference(a)?x(a):a.base.WithBaseObject();
return b.Call(f,c);}function $$Invoke(e,f,g){var a=q(e);
if(a&&a.Abrupt)return a;var c=$$GetMethod(a,f);
return c&&c.Abrupt?c:c===b?d('property_not_function',[f, a.BuiltinBrand]):c.Call(e,g||z);}function $$OrdinaryHasInstance(b,a){if(!$$IsCallable(b))return!1;if(b.BoundTargetFunction)return b.BoundTargetFunction.HasInstance(a);if(typeof a!=='object'||a===null)return!1;var c=b.Get('prototype');
if(c.Abrupt)return c;if(typeof c!=='object')return d('instanceof_nonobject_proto');while(a){a=a.GetInheritance();if(c===a)return!0;}return!1;}function $$SpreadArguments(f,e){if(typeof e!=='object')return d('spread_non_object');var g=f.length, a=l(e.Get('length'));
if(a&&a.Abrupt)return a;for(var b=0;b<a;b++){var c=e.Get(b);
if(c&&c.Abrupt)return c;f[b+g]=c;}}function $$SpreadInitialization(f,b,g){var a=q(g);
if(a&&a.Abrupt)return a;var c=l(a.Get('length'));
if(c&&c.Abrupt)return c;for(var e=b;e<c;e++){var d=a.Get(e);
if(d&&d.Abrupt)return d;f.set(b++ +'',d);}return f.define('length',b,s),b;}function $$SpreadDestructuring(i,a,g){var c=new $Array(0);
if(a==null)return c;if(typeof a!=='object')return d('spread_non_object',typeof a);var e=l(a.Get('length'));
if(e&&e.Abrupt)return e;var h=e-g;
for(var b=0;b<h;b++){var f=a.Get(g+b);
if(f&&f.Abrupt)return f;c.set(b+'',f);}return c.define('length',b,s),c;}function $$GetTemplateCallSite(f,a){!('id'in a)&&($$GetTemplateCallSite.count=($$GetTemplateCallSite.count||0)+1,a.id=$$GetTemplateCallSite.count);if(a.id in h.templates)return f.Realm.templates[a.id];var d=a.length, b=new $Array(d), e=new $Array(d);
for(var c=0;c<d;c++)b.define(c+'',a[c].cooked,g),e.define(c+'',a[c].raw,g);return b.define('length',d,m),e.define('length',d,m),b.define('raw',e,m),b.PreventExtensions(!1),e.PreventExtensions(!1),h.templates[a.id]=b,b;}function $$EnqueueChangeRecord(a,b){b.forEach(function(b){var c=b.PendingChangeRecords||(b.PendingChangeRecords=[]);
c.push(a);});}function $$CreateChangeRecord(d,e,b,c){var a=new $Object();
return a.define('type',d,g),a.define('object',e,g),b!==null&&a.define('name',b,g),t(c)&&a.define('oldValue',c.Value,g),a.PreventExtensions(),a;}function $$DeliverChangeRecords(a){var c=a.PendingChangeRecords;
if(c&&c.length){a.PendingChangeRecords=[];var d=a.Call(b,[new $Array(c)]);
return d&&d.Abrupt?d:!0;}return!1;}function $$DeliverAllChangeRecords(d){var c=!1, a=i.ObserverCallbacks, b=[];
return a&&a.size&&a.forEach(function(d){var a=$$DeliverChangeRecords(d);
a&&(c=!0,a.Abrupt&&b.push(a));}),b.length?b:c;}function $$GetNotifier(b){var a=b.Notifier;
return!a&&(a=b.Notifier=new $Object(i.NotifierProto),a.Target=b,a.ChangeObservers=new y()),a;}function $$ThrowStopIteration(){return new v('throw',i.StopIteration);}function $$IsStopIteration(a){return!!(a&&a.Abrupt&&a.value&&a.value.BuiltinBrand===w.StopIteration);}function $$GetKey(b,a){return!a||typeof a==='string'?a:a[0]!=='@'?a[1]:b.getSymbol(a[1]);}function $$CreateListFromArray(a){if(a.array)return a.array;var c=[], d=a.get('length');
for(var b=0;b<d;b++)c[b]=a.get(b+'');return c;}function $$CreateArrayFromList(a){return new $Array(a.slice());}'use strict';var u=a('./environments'), j=a('./operators'), f=a('./descriptors'), k=a('../lib/objects'), A=a('../lib/iteration'), n=a('../errors'), p=a('../constants'), y=a('./collections').MapData;
var w=p.BRANDS, P=k.is, V=k.create, r=k.define, J=k.inherit, K=A.each, v=n.AbruptCompletion, d=n.$$ThrowException, o=j.$$ToPropertyKey, x=j.$$GetThisValue, l=j.$$ToUint32, q=j.$$ToObject, t=f.$$IsDataDescriptor, W=f.$$IsAccessorDescriptor, X=f.$$IsGenericDescriptor, B=f.$$IsEmptyDescriptor, C=f.Accessor, D=f.DataDescriptor, E=f.AccessorDescriptor;
var F=1, G=2, H=4, I=8, m=0, g=1, L=2, M=3, N=4, O=5, s=6, Q=7, R=8, S=9, T=10, U=11;
var e=c.Reference=function(){function e(a,b,c){this.base=a,this.name=b,this.strict=!!c;}return r(e.prototype,{ Reference:p.SYMBOLS.Reference }),r(u.EnvironmentRecord.prototype,[function reference(a,b){return new e(this,a,b);}]),e;}();
c.$$CheckObjectCoercible=$$CheckObjectCoercible,c.$$IsArrayIndex=$$IsArrayIndex,c.$$IsPropertyReference=$$IsPropertyReference,c.$$GetIdentifierReference=$$GetIdentifierReference,c.$$GetSymbol=$$GetSymbol,c.$$Element=$$Element,c.$$SuperReference=$$SuperReference,c.$$GetThisEnvironment=$$GetThisEnvironment,c.$$ThisResolution=$$ThisResolution,c.$$IdentifierResolution=$$IdentifierResolution,c.$$IsCallable=$$IsCallable,c.$$IsConstructor=$$IsConstructor,c.$$EvaluateConstruct=$$EvaluateConstruct,c.$$EvaluateCall=$$EvaluateCall;var z=[];
c.$$Invoke=$$Invoke,c.$$OrdinaryHasInstance=$$OrdinaryHasInstance,c.$$SpreadArguments=$$SpreadArguments,c.$$SpreadInitialization=$$SpreadInitialization,c.$$SpreadDestructuring=$$SpreadDestructuring,c.$$GetTemplateCallSite=$$GetTemplateCallSite,c.$$EnqueueChangeRecord=$$EnqueueChangeRecord,c.$$CreateChangeRecord=$$CreateChangeRecord,c.$$DeliverChangeRecords=$$DeliverChangeRecords,c.$$DeliverAllChangeRecords=$$DeliverAllChangeRecords,c.$$GetNotifier=$$GetNotifier,c.$$ThrowStopIteration=$$ThrowStopIteration,c.$$IsStopIteration=$$IsStopIteration,c.$$GetKey=$$GetKey,c.$$CreateListFromArray=$$CreateListFromArray,c.$$CreateArrayFromList=$$CreateArrayFromList;var h, i;
return c.changeRealm=function changeRealm(a){h=a,i=h?h.intrinsics:b;},c;}(typeof d!=='undefined'?c:{}),c.$Object=function(c){function $$CreateOwnDataProperty(b,c,d){var a=b.IsExtensible();
return!a||a.Abrupt?a:(u.Value=d,b.DefineOwnProperty(c,u));}function $$OrdinaryGetOwnProperty(d,e){if(e==='__proto__'){var c=d.GetP(d,'__proto__');
return typeof c==='object'?new q(c,J):b;}var a=d.describe(e);
if(a){if(a[2]&n)var f=B, c=a[1];
else var c=a[3]?a[3].Get.Call(d,[]):a[1], f=q;
return new f(c,a[2]);}}function $$DefinePropertyOrThrow(c,a,d){var b=c.DefineOwnProperty(a,value,d);
return b?b:e('redefine_disallowed',[a]);}function $$DeletePropertyOrThrow(c,a){var b=c.DeleteProperty(a,value);
return b?b:e('strict_delete_property',[a]);}function $$HasProperty(b,c){if(b===null)return!1;var a=b;
do{if(typeof a!=='object')return e('invalid_in_operator_use',[c, typeof a]);var d=a.HasOwnProperty(c);
if(d)return d;a=a.GetInheritance();if(a&&a.Abrupt)return a;}while(a);return!1;}function $$GetMethod(c,d){var a=c.GetP(d,c);
return a!==b&&!m(a)?e('called_non_callable',[d]):a;}function $$OrdinaryDefineOwnProperty(a,b,c){var d=$$OrdinaryGetOwnProperty(a,b), e=a.IsExtensible();
return $$ValidateAndApplyPropertyDescriptor(a,b,e,c,d);}function $$IsCompatableDescriptor(a,c,d){return $$ValidateAndApplyPropertyDescriptor(b,b,a,c,d);}function $$ValidateAndApplyPropertyDescriptor(d,e,m,a,c){var h='reconfigured';
if(c===b){if(m&&d!==b){x(a)||l(a)?d.define(e,a.Value,a.Enumerable|a.Configurable<<1|a.Writable<<2):d.define(e,new r(a.Get,a.Set),a.Enumerable|a.Configurable<<1|8);if(d.Notifier){var f=d.Notifier.ChangeObservers;
if(f.size){var g=j('new',d,e);
k(g,f);}}}return m===!0;}if(!('Get'in a||'Set'in a||'Value'in a)&&!('Writable'in a||'Enumerable'in a||'Configurable'in a))return!0;if(a.Writable===c.Writable&&a.Enumerable===c.Enumerable&&a.Configurable===c.Configurable&&(a.Get===c.Get&&a.Set===c.Set&&s(a.Value,c.Value)))return!0;if(!c.Configurable)if(a.Configurable||'Enumerable'in a&&a.Enumerable!==c.Enumerable)return!1;else{var n=l(c), i=l(a);
if(n!==i)return!1;if(n&&i){if(!c.Writable&&'Value'in a&&!s(a.Value,c.Value))return!1;}else if('Set'in a&&a.Set!==c.Set)return!1;else if('Get'in a&&a.Get!==c.Get)return!1;}if(d===b)return!0;'Configurable'in a||(a.Configurable=c.Configurable),'Enumerable'in a||(a.Enumerable=c.Enumerable),t(a)?(d.update(e,a.Enumerable|a.Configurable<<1|8),l(c)?d.set(e,new r(a.Get,a.Set)):('Set'in a&&(prop[1].Set=a.Set),'Get'in a&&(prop[1].Get=a.Get),('Set'in a||'Get'in a)&&d.set(e,prop[1]))):(t(c)&&(c.Writable=!0),'Writable'in a||(a.Writable=c.Writable),d.update(e,a.Enumerable|a.Configurable<<1|a.Writable<<2),'Value'in a&&(d.set(e,a.Value),h='updated'));if(d.Notifier){var f=d.Notifier.ChangeObservers;
if(f.size){var g=j(h,d,e,c);
k(g,f);}}return!0;}function $Object(a){a===b&&(a=o.ObjectProto),this.Realm=i,this.Prototype=a,this.properties=new D(),this.storage=new w(),K(this),a&&a.HiddenPrototype&&this.properties.setProperty(['__proto__', null, 6, L]);}var f=a('../lib/objects'), I=a('../errors'), E=a('../constants'), p=a('./operators'), d=a('./descriptors'), g=a('./operations'), D=a('../lib/PropertyList'), A=a('../lib/utility');
var z=f.inherit, h=f.define, y=f.create, N=f.hide, s=f.is, w=f.Hash, K=A.tag, B=d.AccessorDescriptor, q=d.DataDescriptor, r=d.Accessor, M=d.Value, l=d.$$IsDataDescriptor, t=d.$$IsAccessorDescriptor, V=d.$$IsEmptyDescriptor, a1=d.$$IsEquivalentDescriptor, x=d.$$IsGenericDescriptor, e=I.$$ThrowException, O=p.$$ToBoolean, $=p.$$ToString, a0=p.$$ToUint32, m=g.$$IsCallable, v=g.$$Invoke, C=g.$$ThrowStopIteration, j=g.$$CreateChangeRecord, k=g.$$EnqueueChangeRecord;
var F=1, G=2, H=4, n=8, P=0, Q=1, R=2, S=3, T=4, U=5, J=6, W=7, X=8, Y=9, Z=10, _=11;
var u={ Value:b, Writable:!0, Enumerable:!0, Configurable:!0, isDescriptor:!0, isDataDescriptor:!0, isAccessorDescriptor:!1 };
c.$$CreateOwnDataProperty=$$CreateOwnDataProperty,c.$$OrdinaryGetOwnProperty=$$OrdinaryGetOwnProperty,c.$$DefinePropertyOrThrow=$$DefinePropertyOrThrow,c.$$DeletePropertyOrThrow=$$DeletePropertyOrThrow,c.$$HasProperty=$$HasProperty,c.$$GetMethod=$$GetMethod,c.$$OrdinaryDefineOwnProperty=$$OrdinaryDefineOwnProperty,c.$$IsCompatableDescriptor=$$IsCompatableDescriptor,c.$$ValidateAndApplyPropertyDescriptor=$$ValidateAndApplyPropertyDescriptor;var L={ Get:{ Call:function(a){ do a=a.GetInheritance(); while(a&&a.HiddenPrototype); return a; } }, Set:{ Call:function(a,c){ var b=a.Prototype;
return b&&b.HiddenPrototype&&(a=b),a.SetInheritance(c[0]); } } };
c.$Object=$Object,h($Object,[function changeRealm(a){i=a,o=i?i.intrinsics:b;}]),h($Object.prototype,{ Extensible:!0, BuiltinBrand:E.BRANDS.BuiltinObject, type:'$Object' }),void function(){h($Object.prototype,[function(){return function h(a,b,c){return this.properties.define(a,b,c);};}(),function has(a){return this.properties.has(a);},function remove(a){return this.properties.remove(a);},function describe(a){return this.properties.describe(a);},function get(a){return this.properties.get(a);},function set(a,b){this.properties.set(a,b);},function query(a){return this.properties.query(a);},function update(a,b){this.properties.update(a,b);},function each(a){this.properties.each(a,this);},function destroy(){this.destroy=null,this.properties.each(function(a){var b=a[1];
this.remove(a[0]),a.length=0,b&&b.destroy&&b.destroy();});for(var a in this)this[a]&&this[a].destroy&&this[a].destroy();}]);}(),h($Object.prototype,[function GetInheritance(){return this.Prototype;},function SetInheritance(b){if(typeof b==='object'&&this.IsExtensible()){var a=b;
while(a){if(a===this)return e('cyclic_proto');a=a.GetInheritance();}if(this.Notifier){var c=this.Notifier.ChangeObservers;
if(c.size){var d=j('prototype',this,null,new M(this.GetInheritance()));
k(d,c);}}return this.Prototype=b,!0;}else return!1;},function IsExtensible(){return this.Extensible;},function PreventExtensions(a){return a=!!a,this.Extensible&&(this.Extensible=a),this.Extensible===a;},function GetOwnProperty(a){return $$OrdinaryGetOwnProperty(this,a);},function GetProperty(a){var b=this.GetOwnProperty(a);
if(b)return b;{var c=this.GetInheritence();
if(c)return c.GetProperty(a);}},function Get(a){return this.GetP(this,a);},function Put(a,b,c){if(!this.SetP(this,a,b)&&c)return e('strict_cannot_assign',[a]);},function GetP(d,e){var a=this.describe(e);
if(!!a){if(a[3])var c=a[3].Get;
else if(a[2]&n)var c=a[1].Get;
return c&&m(c)?c.Call(d,[]):a[1];}{var b=this.GetInheritance();
if(b&&b.Abrupt)return b;if(b)return b.GetP(d,e);}},function SetP(a,c,d){var b=this.describe(c);
if(!b){var e=this.GetInheritance();
if(e&&e.Abrupt)return e;if(e)return e.SetP(a,c,d);if(typeof a==='object')return $$CreateOwnDataProperty(a,c,d);}else{if(b[3])var f=b[3].Set;
else if(b[2]&n)var f=b[1].Set;
if(f&&m(f)){var g=f.Call(a,[d]);
return g&&g.Abrupt?g:!0;}if(b[2]&H)if(this===a)return $$OrdinaryDefineOwnProperty(this,c,{ Value:d });else if(typeof a==='object')return $$CreateOwnDataProperty(a,c,d);}return!1;},function DefineOwnProperty(a,b){return $$OrdinaryDefineOwnProperty(this,a,b);},function HasOwnProperty(a){return this.has(a);},function HasProperty(a){if(this.has(a))return!0;else{var b=this.GetInheritance();
return b?b.HasProperty(a):!1;}},function Delete(a,c){if(!this.has(a))return!0;else if(this.query(a)&G){if(this.Notifier){var b=this.Notifier.ChangeObservers;
if(b.size){var d=j('deleted',this,a,this.GetOwnProperty(a));
k(d,b);}}return this.remove(a),!0;}else return c?e('strict_delete',[]):!1;},function Iterate(){return v(o.iterator,this,[]);},function enumerator(){return new $Enumerator(this.Enumerate(!0,!0));},function Enumerate(e,f){var b=[], a=y(null);
f?this.each(function(d){var c=d[0];
typeof c==='string'&&!(c in a)&&d[2]&F&&(b.push(c),a[c]=!0);}):this.each(function(d){var c=d[0];
!(c in a)&&!c.Private&&(b.push(c),a[c]=!0);});if(e){var g=this.GetInheritance();
if(g){var h=g.Enumerate(e,f);
for(var c=0;c<h.length;c++){var d=h[c][0];
!(d in a)&&(b.push(d),a[d]=!0);}}}return b;},function DefaultValue(d){var f=d==='String'?['toString', 'valueOf']:['valueOf', 'toString'];
for(var c=0;c<2;c++){var b=this.Get(f[c]);
if(b&&b.Abrupt)return b;if(m(b)){var a=b.Call(this,[]);
if(a&&a.Abrupt)return a;if(a===null||typeof a!=='object')return a;}}return e('cannot_convert_to_primitive',[]);}]);var $Enumerator=function(){function next(a){this.keys=a,this.index=0,this.count=a.length,this.depleted=!1;}function $Enumerator(a){this.next=['next', new next(a), 7];}return next.prototype.Call=function(a){return this.depleted||this.index>=this.count?(this.depleted=!0,this.keys=null,C()):this.keys[this.index++];},c.$Enumerator=$Enumerator,z($Enumerator,$Object,[function has(a){return a==='next';},function describe(a){if(a==='next')return this.next;},function get(a){if(a==='next')return this.next[1];},function Get(a){return this.next[1];}]),$Enumerator;}();
var i, o;
return c;}(typeof d!=='undefined'?c:{}),c.$Array=function(p){function $Array(a){this.Prototype=k.ArrayProto,this.Realm=h,this.properties=new y(),this.storage=new q(),r(this),typeof a==='number'?this.array=new Array(a):a?this.array=a:this.array=[],this.length=['length', this.array.length, e];}var f=a('../lib/objects'), z=a('../lib/utility'), o=a('../errors'), u=a('../constants'), j=a('./operators'), x=a('./operations'), y=a('../lib/PropertyList'), l=a('./$Object').$Object;
var n=f.inherit, g=f.define, v=f.copy, q=f.Hash, r=z.tag, s=x.$$IsArrayIndex, t=o.$$ThrowException, A=j.$$ToBoolean, m=j.$$ToUint32, w=j.$$ToNumber;
var e=4, c=7;
var d=l.prototype.DefineOwnProperty;
n($Array,l,{ BuiltinBrand:u.BRANDS.BuiltinArray },[function has(a){return a==='length'?!0:a>>>0==a&&a<this.array.length?a in this.array:this.properties.has(a);},function remove(a){return a==='length'?!1:a>>>0==a&&a<this.array.length?delete this.array[a]:this.properties.remove(a);},function get(a){return a==='length'?this.array.length:a>>>0==a?this.array[a]:this.properties.get(a);},function set(a,b){return a==='length'?(this.length[1]=this.array.length=b,!0):a>>>0==a?(this.array[a]=b,!0):this.properties.set(a,b);},function describe(a){if(a==='length')return this.length[1]=this.array.length,this.length;if(!(a>>>0==a&&a<this.array.length))return this.properties.describe(a);if(a in this.array)return[a, this.array[a], c];},function query(a){return a==='length'?e:a>>>0==a?a in this.array?c:null:this.properties.query(a);},function update(a,b){if(b===e&&a==='length')return!0;if(a>>>0==a&&a in this.array){if(b===c)return!0;deoptimize(this);}return this.properties.update(a,b);},function each(b){var d=this.length[1]=this.array.length;
b(this.length);for(var a=0;a<d;a++)a in this.array&&b([a+'', this.array[a], c]);this.properties.each(b);},function(){return function g(a,b,d){if(a==='length'&&d===e)return this.length[1]=this.array.length=b,!0;if(a>>>0==a){if(d===c)return this.array[a]=b,!0;deoptimize(this);}return this.properties.define(a,b,d);};}(),function DefineOwnProperty(f,b,k){var i=this.GetOwnProperty('length'), e=i.Value, h=k?t:function(a,b){ return!1; };
if(f==='length'){if(!('Value'in b))return d.call(this,'length',b,k);var a=v(b), g=m(b.Value);
if(g.Abrupt)return g;var l=w(b.Value);
if(l.Abrupt)return l;if(g!==l)return h('invalid_array_length');g=a.Value;if(g>=e)return d.call(this,'length',a,k);if(i.Writable===!1)return h('strict_cannot_assign');if(!('Writable'in a)||a.Writable)var n=!0;
else n=!1,a.Writable=!0;var c=d.call(this,'length',a,k);
if(c.Abrupt)return c;if(c===!1)return!1;while(g<e){e-=1;var o=this.Delete(''+e,!1);
if(o.Abrupt)return o;if(!o)return a.Value=e+1,!n&&(a.Writable=!1),d.call(this,'length',a,!1),h('strict_delete_property');}return!n&&d.call(this,'length',{ Writable:!1 },!1),!0;}if(s(f)){var j=m(f);
return j.Abrupt?j:j>=e&&i.Writable===!1?h('strict_cannot_assign'):(c=d.call(this,f,b,!1),c.Abrupt?c:c===!1?h('strict_cannot_assign'):(j>=e&&(i.Value=j+1,d.call(this,'length',i,!1)),!0));}return d.call(this,f,b,f);}]);var deoptimize=function(){var a=[ function each(b){ var c=this.array.length;
for(var a=0;a<c;a++) a in this.array?this.properties.set(a+'',this.array[a]):this.properties.remove(a); this.properties.set('length',this.array.length),this.properties.each(b); }, function remove(a){ return a>>>0==a&&a<this.array.length&&delete this.array[a],this.properties.remove(a); }, function update(a,b){ return!this.properties.has(a)&&a>>>0==a&&a in this.array?this.properties.define(a,this.array[i],b):this.properties.update(a,b); }, function query(a){ var b=this.properties.query(a);
return b===null&&a>>>0==a&&a in this.array&&this.properties.define(a,this.array[a],b=c),b; }, function describe(a){ if(a==='length'){ var b=this.properties.get('length'), e=this.array.length;
if(b!==e){ for(;b<e;b++) b in this.array&&this.properties.set(b,this.array[b]); this.properties.set('length',e); } }else if(a>>>0==a&&a<this.array.length){ if(a in this.array){ var d=this.properties.describe(a);
return d?d[1]!==this.array[a]&&(this.properties.set(a,this.array[a]),d[1]=this.array[a]):(d=[i+'', this.array[i], c],this.properties.setProperty(i,d)),d; } this.properties.has(a)&&this.properties.remove(a); return; } return this.properties.describe(a); }, function(){ return function g(a,b,c){ return(a==='length'||a>>>0==a)&&(this.array[a]=b),this.properties.define(a,b,c); }; }() ];
return function deoptimize(b){var f=b.array.length;
b.properties.define('length',f,e);for(var d=0;d<f;d++)d in b.array&&b.properties.define(d+'',b.array[d],c);g(b,a);};}();
var h, k;
return g($Array,[function changeRealm(a){h=a,k=h?h.intrinsics:b;}]),p.exports=$Array;}(typeof d!=='undefined'?d:{}),c.$Proxy=function(t){function $$TrapDefineOwnProperty(o,i,p,r){var j=o.ProxyHandler, g=o.ProxyTarget;
var a=d(j,'defineProperty');
if(a&&a.Abrupt)return a;var h=k(p);
if(a===b)return g.DefineOwnProperty(i,h,r);else{var q=l(h);
s(p,q);var t=a.Call(j,[g, i, q]), u=e(t), f=g.GetOwnProperty(i), m=g.IsExtensible();
if(!m&&f===b)return c('proxy_extensibility_inconsistent');if(f!==b&&!n(m,f,k(h)))return c('proxy_incompatible_descriptor');if(!h.Configurable){if(f===b||f.Configurable)return c('proxy_configurability_inconsistent');}else if(r)return c('strict_property_redefinition');return!1;}}function $$TrapGetOwnProperty(l,j){var m=l.ProxyHandler, f=l.ProxyTarget;
var g=d(m,'getOwnPropertyDescriptor');
if(g&&g.Abrupt)return g;if(g===b)return f.GetOwnProperty(j);else{var h=g.Call(m,[f, j]);
if(h&&h.Abrupt)return h;var i=x(h);
var a=f.GetOwnProperty(j);
if(a&&a.Abrupt)return a;if(i===b&&a!==b){if(!a.Configurable)return c('proxy_configurability_inconsistent');if(!f.IsExtensible())return c('proxy_extensibility_inconsistent');return;}var o=f.IsExtensible();
return!o&&a===b?c('proxy_extensibility_inconsistent'):a!==b&&!n(o,a,k(i))?c('proxy_incompatible_descriptor'):!e(i.Get('configurable'))&&a===b||a.Configurable?c('proxy_configurability_inconsistent'):i;}}function $Proxy(b,c){this.ProxyHandler=c,this.ProxyTarget=b,this.BuiltinBrand=b.BuiltinBrand,'Call'in b&&(!h&&(h=a('../runtime').builtins.$Function.prototype.HasInstance),this.HasInstance=h,this.Call=ProxyCall,this.Construct=ProxyConstruct),'PrimitiveValue'in b&&(this.PrimitiveValue=b.PrimitiveValue);}function ProxyCall(c,e){var a=d(this.ProxyHandler,'apply');
return a&&a.Abrupt?a:a===b?this.ProxyTarget.Call(c,e):a.Call(this.ProxyHandler,[this.ProxyTarget, c, new o(e)]);}function ProxyConstruct(c){var a=d(this.ProxyHandler,'construct');
return a&&a.Abrupt?a:a===b?this.ProxyTarget.Construct(c):a.Call(this.ProxyHandler,[this.ProxyTarget, new o(c)]);}'use strict';var i=a('../lib/objects'), u=a('../errors'), j=a('./operators'), f=a('./descriptors'), g=a('./operations'), y=a('./$Object').$Object, o=a('./$Array');
var v=i.inherit, m=i.is, B=i.define, k=f.$$ToPropertyDescriptor, l=f.$$FromGenericPropertyDescriptor, x=f.$$NormalizeAndCompletePropertyDescriptor, s=f.$$CopyAttributes, q=f.$$IsDataDescriptor, p=f.$$IsAccessorDescriptor, c=u.$$ThrowException, e=j.$$ToBoolean, w=j.$$ToString, r=j.$$ToUint32, z=g.$$IsCallable, d=g.$$GetMethod, A=g.$$CreateListFromArray, n=g.$$IsCompatibleDescriptor;
var h;
return v($Proxy,y,{ Proxy:!0 },[function GetInheritance(){var a=d(this.ProxyHandler,'getPrototypeOf');
if(a&&a.Abrupt)return a;if(a===b)return this.ProxyTarget.GetInheritance();else{var f=a.Call(this.ProxyHandler,[this.ProxyTarget]);
if(f&&f.Abrupt)return f;var e=this.ProxyTarget.GetInheritance();
return e&&e.Abrupt?e:f!==e?c('proxy_inconsistent','getPrototypeOf'):e;}},function IsExtensible(){var a=d(this.ProxyHandler,'isExtensible');
if(a&&a.Abrupt)return a;if(a===b)return this.ProxyTarget.IsExtensible();var g=e(a.Call(this.ProxyHandler,[this.ProxyTarget]));
if(trapResult&&trapResult.Abrupt)return trapResult;var f=this.ProxyTarget.IsExtensible();
return f&&f.Abrupt?f:g!==f?c('proxy_extensibility_inconsistent'):f;},function GetP(h,g){var f=d(this.ProxyHandler,'get');
if(f&&f.Abrupt)return f;if(f===b)return this.ProxyTarget.GetP(h,g);var e=f.Call(this.ProxyHandler,[this.ProxyTarget, g, h]);
if(e&&e.Abrupt)return e;var a=this.ProxyTarget.GetOwnProperty(g);
if(a&&a.Abrupt)return a;if(a!==b)if(q(a)&&a.Configurable===!1&&a.Writable===!1){if(!m(e,a.Value))return c('proxy_inconsistent','get');}else if(p(a)&&a.Configurable===!1&&a.Get===b&&e!==b)return c('proxy_inconsistent','get');return e;},function SetP(j,h,i){var f=d(this.ProxyHandler,'set');
if(f&&f.Abrupt)return f;if(f===b)return this.ProxyTarget.SetP(j,h,i);var g=f.Call(this.ProxyHandler,[this.ProxyTarget, h, i, j]);
if(g&&g.Abrupt)return g;var k=e(g);
if(k){var a=this.ProxyTarget.GetOwnProperty(h);
if(a&&a.Abrupt)return a;if(a!==b){if(q(a)&&a.Configurable===!1&&a.Writable===!1&&!m(i,a.Value))return c('proxy_inconsistent','set');}else if(p(a)&&a.Configurable===!1&&a.Set!==b)return c('proxy_inconsistent','set');}return k;},function GetOwnProperty(a){return $$TrapGetOwnProperty(this,a);},function DefineOwnProperty(b,c,d){var a=l(c);
return a&&a.Abrupt?a:$$TrapDefineOwnProperty(this,b,a,d);},function HasOwnProperty(h){var a=d(this.ProxyHandler,'hasOwn');
if(a&&a.Abrupt)return a;if(a===b)return this.ProxyTarget.HasOwnProperty(h);var g=a.Call(this.ProxyHandler,[this.ProxyTarget, h]);
if(g&&g.Abrupt)return g;var i=e(g);
if(i===!1){var f=this.ProxyTarget.GetOwnProperty(h);
if(f&&f.Abrupt)return f;if(desc!==b&&f.Configurable===!1)return c('proxy_inconsistent','hasOwn');if(!this.ProxyTarget.IsExtensible()&&f!==b)return c('proxy_non_extensible','hasOwn');}return i;},function HasProperty(h){var a=d(this.ProxyHandler,'has');
if(a&&a.Abrupt)return a;if(a===b)return this.ProxyTarget.HasProperty(h);var g=a.Call(this.ProxyHandler,[this.ProxyTarget, h]);
if(g&&g.Abrupt)return g;var i=e(g);
if(i===!1){var f=this.ProxyTarget.GetOwnProperty(h);
if(f&&f.Abrupt)return f;if(desc!==b&&f.Configurable===!1)return c('proxy_inconsistent','has');if(!this.ProxyTarget.IsExtensible()&&f!==b)return c('proxy_non_extensible','has');}return i;},function Delete(h,i){var a=d(this.ProxyHandler,'deleteProperty');
if(a&&a.Abrupt)return a;if(a===b)return this.ProxyTarget.Delete(h,i);var g=a.Call(this.ProxyHandler,[this.ProxyTarget, h]);
if(g&&g.Abrupt)return g;var j=e(g);
if(j===!0){var f=this.ProxyTarget.GetOwnProperty(h);
return f&&f.Abrupt?f:desc!==b&&f.Configurable===!1?c('proxy_inconsistent','delete'):!this.ProxyTarget.IsExtensible()&&f!==b?c('proxy_non_extensible','delete'):!0;}return i?c('strict_delete_failure'):!1;},function Enumerate(k,n){if(n)var e=k?'enumerate':'keys';
else var e='getOwnPropertyNames', p=k;
var l=d(this.ProxyHandler,e);
if(l&&l.Abrupt)return l;if(l===b)return this.ProxyTarget.Enumerate(k,n);var g=l.Call(this.ProxyHandler,[this.ProxyTarget]);
if(g&&g.Abrupt)return g;if(typeof g!=='object'||g===null)return c('proxy_non_object_result',e);var h=r(g.Get('length'));
if(h&&h.Abrupt)return h;var o=[], m=new Hash();
for(var a=0;a<h;a++){var f=w(g.Get(''+a));
if(f&&f.Abrupt)return f;if(f in m)return c('proxy_duplicate',e);m[f]=!0;if(!k&&!this.ProxyTarget.IsExtensible()&&!this.ProxyTarget.HasOwnProperty(f))return c('proxy_non_extensible',e);o[a]=f;}var j=this.ProxyTarget.Enumerate(k,n);
if(j&&j.Abrupt)return j;var h=j.length;
for(var a=0;a<h;a++)if(!(j[a]in m)){var i=this.ProxyTarget.GetOwnProperty(j[a]);
if(i&&i.Abrupt)return i;if(i&&!i.Configurable)return c('proxy_inconsistent',e);if(i&&!this.ProxyTarget.IsExtensible())return c('proxy_non_extensible',e);}return o;}]),t.exports=$Proxy;}(typeof d!=='undefined'?d:{}),c.$TypedArray=function(m){function hasIndex(a,c){var b=a>>>0;
return b<c&&b==a;}function ArrayBufferIndex(a){this.Value=a;}function Type(a){this.name=a.name,this.size=a.size,this.cast=a.cast,this.set=a.set,this.get=a.get,this.brand=l['Builtin'+this.name+'Array'],h[this.name+'Array']=this;}function $TypedArray(c,e,b,f){d.call(this,a('../runtime').intrinsics[c+'Proto']),this.Buffer=e,this.ByteOffset=f,this.ByteLength=b,this.Type=h[c],this.BuiltinBrand=this.Type.brand,this.Length=b/this.Type.size,this.define('buffer',e,0),this.define('byteLength',b,0),this.define('byteOffset',f,0),this.define('length',this.Length,0),this.init();}'use strict';var g=a('../lib/objects'), i=a('../lib/buffers'), B=a('./$Array'), d=a('./$Object').$Object, A=a('../errors').$$ThrowException, n=a('./descriptors').DataDescriptor;
var l=a('../constants').BRANDS, k=g.inherit, e=g.define, r=g.Hash, c=i.DataView, z=i.ArrayBuffer;
var h=new r(), o=d.prototype.DefineOwnProperty, p=d.prototype.GetOwnProperty;
ArrayBufferIndex.prototype=new n(b,5);var q=new Type({ name:'Int8', size:1, cast:function(a){ return(a&=255)&128?a-256:a&127; }, set:c.prototype.setInt8, get:c.prototype.getInt8 });
var j=new Type({ name:'Int16', size:2, cast:function(a){ return(a&=65535)&32768?a-65536:a&32767; }, set:c.prototype.setInt16, get:c.prototype.getInt16 });
var s=new Type({ name:'Int32', size:4, cast:function(a){ return a>>0; }, set:c.prototype.setInt32, get:c.prototype.getInt32 });
var t=new Type({ name:'Uint8', size:1, cast:function(a){ return a&255; }, set:c.prototype.setUint8, get:c.prototype.getUint8 });
var u=new Type({ name:'Uint16', size:2, cast:function(a){ return a&65535; }, set:c.prototype.setUint16, get:c.prototype.getUint16 });
var v=new Type({ name:'Uint32', size:4, cast:function(a){ return a>>>0; }, set:c.prototype.setUint32, get:c.prototype.getUint32 });
var w=new Type({ name:'Float32', size:4, cast:function(a){ return+a||0; }, set:c.prototype.setFloat32, get:c.prototype.getFloat32 });
var x=new Type({ name:'Float64', size:8, cast:function(a){ return+a||0; }, set:c.prototype.setFloat64, get:c.prototype.getFloat64 });
k($TypedArray,d,function(){return typeof Uint8Array!=='undefined'?(t.Array=Uint8Array,u.Array=Uint16Array,v.Array=Uint32Array,q.Array=Int8Array,j.Array=Int16Array,s.Array=Int32Array,w.Array=Float32Array,x.Array=Float64Array,[function init(){this.data=new this.Type.Array(this.Buffer.NativeBuffer,this.ByteOffset,this.Length);},function each(b){for(var a=0;a<this.Length;a++)b([a+'', this.data[a], 5]);this.properties.each(b,this);},function get(a){return hasIndex(a,this.Length)?this.data[+a]:this.properties.get(a);},function describe(a){return hasIndex(a,this.Length)?[a, this.data[+a], 5]:this.properties.describe(a);},function set(a,b){if(!hasIndex(a,this.Length))return this.properties.set(a,b);this.data[+a]=b;},function(){return function e(a,b,c){if(!hasIndex(a,this.Length))return this.properties.define(a,b,c);this.data[+a]=b;};}()]):[function init(){this.data=new c(this.Buffer.NativeBuffer,this.ByteOffset,this.ByteLength),this.data.get=this.Type.get,this.data.set=this.Type.set,this.bytesPer=this.Type.size;},function each(b){for(var a=0;a<this.Length;a++)b([a+'', this.data.get(a*this.bytesPer,!0), 5]);this.properties.each(b,this);},function get(a){return hasIndex(a,this.Length)?this.data.get(a*this.bytesPer,!0):this.properties.get(a);},function describe(a){return hasIndex(a,this.Length)?[a, this.data.get(a*this.bytesPer,!0), 5]:this.properties.describe(a);},function set(a,b){if(!hasIndex(a,this.Length))return this.properties.set(a,b);this.data.set(a*this.bytesPer,b,!0);},function(){return function e(a,b,c){if(!hasIndex(a,this.Length))return this.properties.define(a,b,c);this.data.set(a*this.bytesPer,b,!0);};}()];}()),e($TypedArray.prototype,[function has(a){return hasIndex(a,this.Length)||this.properties.has(a);},function GetOwnProperty(a){return hasIndex(a,this.Length)?new ArrayBufferIndex(this.get(a)):p.call(this,a);},function DefineOwnProperty(a,b,c){return hasIndex(a,this.Length)?'Value'in b?(this.set(a,b.Value),!0):!1:o.call(this,a,b,c);}]);var f, y;
return e($TypedArray,[function changeRealm(a){f=a,y=f?f.intrinsics:b;}]),m.exports=$TypedArray;}(typeof d!=='undefined'?d:{}),c.natives=function(m){function $InternalFunction(b){return $InternalFunction=a('./runtime').builtins.$InternalFunction,new $InternalFunction(b);}function deliverChangeRecordsAndReportErrors(){var b=C();
b&&b instanceof Array&&each(b,function(b){a('./runtime').emit('throw',b);});}function fromJSON(a){if(a instanceof Array)return new d(a);else if(typeof a==='function')return new $InternalFunction(a);else if(a===null||typeof a!=='object')return a;else{var b=new l();
return each(a,function(a,c){b.set(c,fromJSON(a));}),b;}}'use strict';var g=a('./lib/objects'), E=a('./lib/Stack'), s=a('./lib/buffers'), r=a('./errors'), d=a('./object-model/$Array'), l=a('./object-model/$Object').$Object, t=a('./object-model/$TypedArray'), c=a('./object-model/operators'), e=a('./object-model/operations'), o=a('./object-model/descriptors'), z=a('./object-model/collections'), p=a('./constants').BRANDS;
var H=g.inherit, x=g.define, G=g.isObject, B=g.create, D=g.Hash, j=r.$$ThrowException, u=r.$$MakeException, w=s.DataView, F=s.ArrayBuffer, y=o.$$ToPropertyDescriptor, q=o.$$FromPropertyDescriptor, A=e.$$IsCallable, i=e.$$CreateListFromArray, C=e.$$DeliverAllChangeRecords;
var k=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, h=new D(), f={}, n=['function ', '() { [native code] }'];
var natives=function(){function BulkMap(){b.apply(this,arguments);}var b=a('./lib/HashMap'), c=a('./lib/objects').inherit, d=a('./lib/objects').isObject, e=a('./lib/iteration').each, f=a('./lib/functions').fname;
return c(BulkMap,b,[function add(a,b){return typeof a==='string'?this.set(a,b):typeof a==='function'?this.set(f(a),a):d(a)&&e(a,function(a,b){this.set(b,a);},this),this.size;}]),new BulkMap();}();
return natives.add({ToObject:c.$$ToObject,ToString:c.$$ToString,ToNumber:c.$$ToNumber,ToBoolean:c.$$ToBoolean,ToPropertyKey:c.$$ToPropertyKey,ToInteger:c.$$ToInteger,ToInt32:c.$$ToInt32,ToUint32:c.$$ToUint32,ToUint16:c.$$ToUint16,CheckObjectCoercible:e.$$CheckObjectCoercible,GetNotifier:e.$$GetNotifier,EnqueueChangeRecord:e.$$EnqueueChangeRecord,DeliverChangeRecords:e.$$DeliverChangeRecords,parseInt:parseInt,parseFloat:parseFloat,decodeURI:decodeURI,decodeURIComponent:decodeURIComponent,encodeURI:encodeURI,encodeURIComponent:encodeURIComponent,escape:escape,unescape:unescape,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:Math.atan2,cos:Math.acos,exp:Math.exp,log:Math.log,pow:Math.pow,random:Math.random,sin:Math.sin,sqrt:Math.sqrt,tan:Math.tan,_Call:function(b,a){return b.Call(a[0],i(a[1]));},_Construct:function(a,b){return a.Construct(i(b[0]));},_GetPrimitiveValue:function(a,b){return a.PrimitiveValue;},_SetPrimitiveValue:function(a,b){a.PrimitiveValue=b[0];},_GetBuiltinBrand:function(a,b){if(a.BuiltinBrand)return a.BuiltinBrand.name;},_SetBuiltinBrand:function(a,c){var b=p[c[0]];
return b?(a.BuiltinBrand=b,a.BuiltinBrand.name):j('unknown_builtin_brand');},_HasProperty:function(a,b){return a.HasProperty(b[0]);},_IsExtensible:function(a){return a.IsExtensible();},_PreventExtensions:function(a){return a.PreventExtensions();},_GetPrototype:function(a){do a=a.GetInheritance();while(a&&a.HiddenPrototype);return a;},_SetPrototype:function(a,c){var b=a.Prototype;
return b&&b.HiddenPrototype&&(a=b),a.SetInheritance(c[0]);},_TypedArrayCreate:function(b,a){return new t(a[0],a[1],a[2],a[3]);},_NativeBufferCreate:function(b,a){return new F(a[0]);},NativeDataViewCreate:function(a){return new w(a.NativeBuffer);},NativeBufferSlice:function(a,b,c){return a.slice(b,c);},_DataViewSet:function(b,a){var c=a[1]>>>0;
return c>=b.ByteLength?j('buffer_out_of_bounds'):b.View['set'+a[0]](c,a[2],!!a[3]);},_DataViewGet:function(b,a){var c=a[1]>>>0;
return c>=b.ByteLength?j('buffer_out_of_bounds'):b.View['get'+a[0]](c,!!a[2]);},_DefineOwnProperty:function(b,a){return b.DefineOwnProperty(a[0],y(a[1]),!1);},_Enumerate:function(b,a){return new d(b.Enumerate(a[0],a[1]));},_GetProperty:function(a,b){return q(a.GetProperty(b[0]));},_GetOwnProperty:function(a,b){return q(a.GetOwnProperty(b[0]));},_HasOwnProperty:function(a,b){return a.HasOwnProperty(b[0]);},_SetP:function(b,a){return b.SetP(a[2],a[0],a[1]);},_GetP:function(b,a){return b.GetP(a[1],a[0]);},_Put:function(a,b){return a.Put(b[0]);},_has:function(a,b){return a.has(b[0]);},_delete:function(a,b){return a.remove(b[0]);},_set:function(b,a){return b.set(a[0],a[1]);},_get:function(a,b){return a.get(b[0]);},_define:function(b,a){b.define(a[0],a[1],a.length===3?a[2]:6);},_query:function(a,b){return a.query(b[0]);},_update:function(b,a){return b.update(a[0],a[1]);},_each:function(a,b){var c=b[0];
a.each(function(b){c.Call(a,b);});},_setInternal:function(b,a){b[a[0]]=a[1];},_getInternal:function(a,b){return a[b[0]];},_hasInternal:function(a,b){return b[0]in a;},_GetIntrinsic:function(c,b){return a('./runtime').intrinsics[b[0]];},_SetIntrinsic:function(c,b){a('./runtime').intrinsics[b[0]]=b[1];},_IsConstructor:function(b,a){return!!(a[0]&&a[0].Construct);},_Type:function(b,a){if(a[0]===null)return'Null';switch(typeof args[0]){case'undefined':return'Undefined';case'function':case'object':return'Object';case'string':return'String';case'number':return'Number';case'boolean':return'Boolean';}},Exception:function(a,b){return u(a,i(b));},_now:Date.now||function(){return+new Date();},_SetDefaultLoader:function(c,b){a('./runtime').realm.loader=b[0];},_promoteClass:function(e,d){function $Reflected(){l.call(this,c);}var a=d[0], c=a.Get('prototype');
return $Reflected.prototype=x(B(c),{ Prototype:c, properties:b, storage:b, id:b, __introspected:b }),a.Construct=function Construct(c){var b=new $Reflected();
var a=this.Call(b,c,!0);
return a!==null&&typeof a==='object'?a:b;},a;},_getHook:function(c,b){var a=b[0][b[1]];
if(a&&a.hooked===h)return a.callback;},_hasHook:function(c,a){var b=a[0][a[1]];
return!!b&&b.hooked===h;},_setHook:function(k,g){var b=g[0], a=g[1], c=g[2], e=b[a];
if(a==='describe'){var f=new $InternalFunction(function(b,a){ return new d(e.call(a[0],a[1])); });
b.describe=function(b){var a=c.Call(this,[b]);
if(a instanceof d)return[a.get(0), a.get(1), a.get(2)];};}else if(a==='each'){var i=new E();
var f=new $InternalFunction(function(b,a){ return e.call(a[0],i.top); });
var j=[ new $InternalFunction(function(c,b){ var a=b[0];
a instanceof d&&i.top([a.get(0), a.get(1), a.get(2)]); }) ];
b.each=function(a){i.push(a),g[2].Call(this,j),i.pop();};}else if(a==='define'){var f=new $InternalFunction(function(b,a){ return e.call(a[0],a[1],a[2],a[3]); });
b.define=function(a,b,d){return c.Call(this,[a, b, d]);};}else if(a==='get'||a==='has'||a==='remove'||a==='query'){var f=new $InternalFunction(function(b,a){ return e.call(a[0],a[1]); });
b[a]=function(a){return c.Call(this,[a]);};}else if(a==='set'||a==='update'){var f=new $InternalFunction(function(b,a){ return e.call(a[0],a[1],a[2]); });
b[a]=function(a,b){return c.Call(this,[a, b]);};}return b[a].hooked=h,b[a].callback=c,f;},_removeHook:function(e,a){var b=a[0], c=a[1], d=b[c];
return d&&d.hooked===h?(delete b[c],!0):!1;},_Function$$ToString:function(a,d){a.Proxy&&(a=a.ProxyTarget);var c=a.code;
if(a.BuiltinFunction||!c){var b=a.get('name');
return b&&typeof b!=='string'&&b.BuiltinBrand===p.BuiltinSymbol&&(b='@'+b.Name),n[0]+b+n[1];}else return c.source.slice(c.range[0],c.range[1]);},_Number$$ToString:function(b,a){return a[0].toString(a[1]);},_RegExp$$ToString:function(a,b){return''+a.PrimitiveValue;},_RegExpExec:function(e,c){var a=e.PrimitiveValue.exec(c[0]);
if(a){var b=new d(a);
return b.set('index',a.index),b.set('input',c[0]),b;}return a;},_RegExpTest:function(a,b){return a.PrimitiveValue.test(b[0]);},_CallBuiltin:function(e,a){var b=a[0], c=a[1], d=a[2];
return d?b[c].apply(b,i(d)):b[c]();},_CodeUnit:function(b,a){return a[0].charCodeAt(0);},StringReplace:function(b,a,c){return typeof a!=='string'&&(a=a.PrimitiveValue),b.replace(a,c);},StringSplit:function(b,a,c){return typeof a!=='string'&&(a=a.PrimitiveValue),new d(b.split(a,c));},StringSearch:function(a,b){return a.search(b);},StringSlice:function(a,c,d){return d===b?a.slice(c):a.slice(c,d);},FromCharCode:String.fromCharCode,StringTrim:String.prototype.trim?function(a){return a.trim();}:function(a){return function(b){return b.replace(a,'');};}(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/),SetTimer:function(b,d,e){typeof b==='string'&&(b=natives.get('FunctionCreate')(b));var c=Math.random()*1e6<<10;
return f[c]=setTimeout(function trigger(){f[c]?(b.Call(a('./runtime').global,[]),deliverChangeRecordsAndReportErrors(),e?f[c]=setTimeout(trigger,d):f[c]=b=null):b=null;},d),c;},ClearTimer:function(a){f[a]&&(f[a]=null);},JSONParse:function parse(c,d){function walk(c,e){var a=c.get(e);
return a&&typeof a==='object'&&a.each(function(c){c[2]&1&&(v=walk(c[1],c[0]),v!==b?c[1]=v:a.remove(c[0]));}),d.Call(c,[e, a]);}c=$$ToString(c),k.lastIndex=0,k.test(c)&&(c=c.replace(k,function(a){return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);}));var g=c.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,'');
if(/^[\],:{}\s]*$/.test(g)){var e=a('./runtime').realm.evaluate('('+c+')'), f=new l();
return f.set('',e),A(d)?walk(f,''):e;}return j('invalid_json',c);},_MapSigil:function(){return z.MapData.sigil;},_MapSize:function(b,a){return a[0].MapData?a[0].MapData.size:0;},_MapClear:function(b,a){return a[0].MapData.clear();},_MapGet:function(b,a){return a[0].MapData.get(a[1]);},_MapSet:function(b,a){return a[0].MapData.set(a[1],a[2]);},_MapDelete:function(b,a){return a[0].MapData.remove(a[1]);},_MapHas:function(b,a){return a[0].MapData.has(a[1]);},_MapNext:function(c,b){var a=b[0].MapData.after(b[1]);
return a instanceof Array?new d(a):a;},_WeakMapGet:function(b,a){return a[0].WeakMapData.get(a[1]);},_WeakMapSet:function(b,a){return a[0].WeakMapData.set(a[1],a[2]);},_WeakMapDelete:function(b,a){return a[0].WeakMapData.remove(a[1]);},_WeakMapHas:function(b,a){return a[0].WeakMapData.has(a[1]);},_Signal:function(d,c){var b=a('./runtime').realm;
b.emit.apply(b,c);},AddObserver:function(b,a){b.set(a,a);},RemoveObserver:function(a,b){a.remove(b);},readFile:function(c,d){a('fs').readFile(c,'utf8',function(c,a){d.Call(b,[a]);});},resolve:a('path')?a('path').resolve:function(a,b){b=b.split('/'),a=a.split('/'),a.length--;for(var c=0;c<b.length;c++)b[c]==='..'?a.length--:b[c]!=='.'&&(a[a.length]=b[c]);return a.join('/');},baseURL:m?function(){return m.parent.parent.dirname;}:function(){return location.origin+location.pathname;}}),void function(){function escaper(a){var c=b[a];
return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);}var a=/[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, b={ '\b':'\\b', '\t':'\\t', '\n':'\\n', '\f':'\\f', '\r':'\\r', '"':'\\"', '\\':'\\\\' };
natives.add({ Quote:function(b){return a.lastIndex=0,'"'+b.replace(a,escaper)+'"';} });}(),m.exports=natives;}(typeof d!=='undefined'?d:{}),c.thunk=function(k){function Desc(a){this.Value=a;}function DefineProperty(b,c,a){return a&&a.Abrupt?a:b.DefineOwnProperty(c,new Desc(a),!1);}function instructions(d,e){var b=[], c;
for(var a=0;a<d.length;a++)b[a]=e[+d[a].op],b[a].ip=a,b[a].name==='LOG'?b.log=!0:b[a].name==='LOOP'?c=!0:c&&(b[a].count=b[a].total=0,c=!1);return b;}function Action(a,b){this.ip=a.ip,this.op=a,this.result=b;}function Trace(a,b,c){this.context=a,this.start=c[0],this.end=b,this.total=this.end-this.start,this.record=[],this.count=0,this.index=new Array(this.total),this.complete=!1;}function Thunk(z,O){function getKey(a){return typeof a==='string'?a:a[0]!=='@'?a[1]:k.getSymbol(a[1]);}function unwind(){for(var d=0, b;b=z.unwinders[d];d++)if(b.begin<=a&&a<=b.end)if(b.type==='scope')trace(k.popScope());else if(b.type==='try')return e[c++]=y.value,a=b.end+1,g[a];else if(b.type==='iteration'&&(y&&y.value&&y.value.BuiltinBrand===x))return a=b.end,g[a];if(y&&(y.value&&y.value.setCode)){var h=z.ops[a].range, f=z.ops[a].loc;
!y.value.hasLocation&&(y.value.hasLocation=!0,y.value.setCode(f,z.source),y.value.setOrigin(z.filename,z.displayName||z.name)),A&&(y.value.trace?[].push.apply(y.value.trace,A):y.value.trace=A,y.value.context||(y.value.context=k));}return console.log(y),E=y,!1;}function ADD(){return e[c-1]+=v[a][0],g[++a];}function AND(){return e[c-1]?(c--,g[++a]):(a=v[a][0],g[a]);}function ARGS(){return e[c++]=[],g[++a];}function ARG(){var b=e[--c];
return e[c-1].push(b),g[++a];}function ARGUMENTS(){if(z.flags.strict){var b=k.args;
e[c++]=k.createArguments(b),e[c++]=b;}else{var d=z.params.boundNames, f=k.LexicalEnvironment, b=k.args, h=k.callee;
e[c++]=k.arguments=k.createArguments(b,f,d,h),e[c++]=b;}return g[++a];}function ARRAY(){return e[c++]=k.createArray(0),e[c++]=0,g[++a];}function ARRAY_DONE(){var b=e[--c];
return e[c-1].set('length',b),g[++a];}function BINARY(){var f=e[--c], h=e[--c], b=n(v[a][0],d(h),d(f));
return b&&b.Abrupt?(y=b,unwind):(e[c++]=b,g[++a]);}function BINDING(){var b=k.createBinding(v[a][0],v[a][1]);
return b&&b.Abrupt?(y=b,unwind):g[++a];}function CALL(){var d=e[--c], f=e[--c], h=e[--c], b=k.callFunction(h,f,d,v[a][0]);
return b&&b.Abrupt?(y=b,unwind):(e[c++]=b,g[++a]);}function CASE(){var b=u(e[--c],e[c-1]);
return b?b.Abrupt?(y=b,unwind):(c--,a=v[a][0],g[a]):g[++a];}function CLASS_DECL(){var f=v[a][0], h=f.hasSuper?e[--c]:b, d=k.createClass(f,h);
return d&&d.Abrupt?(y=d,unwind):(d=k.initializeBinding(getKey(f.name),d),d&&d.Abrupt?(y=d,unwind):g[++a]);}function CLASS_EXPR(){var f=v[a][0], h=f.hasSuper?e[--c]:b, d=k.createClass(f,h);
return d&&d.Abrupt?(y=d,unwind):(e[c++]=d,g[++a]);}function COMPLETE(){return!1;}function CONST(){return k.initializeBinding(z.lookup(v[a][0]),e[--c],!0),g[++a];}function CONSTRUCT(){var d=e[--c], f=e[--c], b=k.constructFunction(f,d);
return b&&b.Abrupt?(y=b,unwind):(e[c++]=b,g[++a]);}function DEBUGGER(){return B=pauseCleanup,a++,console.log(k,I),!1;}function DEFAULT(){return c--,a=v[a][0],g[++a];}function DEFINE(){var d=v[a][0], f=e[--c], h=e[c-1], i=e[c-2], b=i.DefineOwnProperty(h,new D[d](f));
return b&&b.Abrupt?(y=b,unwind):(e[c++]=b,g[++a]);}function DUP(){return e[c]=e[c++-1],g[++a];}function ELEMENT(){var d=e[--c], f=e[--c], b=k.getPropertyReference(d,f);
return b&&b.Abrupt?(y=b,unwind):(e[c++]=b,g[++a]);}function ENUM(){return e[c-1]=e[c-1].enumerator(),g[++a];}function EXTENSIBLE(){return e[c-1].SetExtensible(!!v[a][0]),g[++a];}function EVAL(){var f=e[--c], b=e[--c], i=e[--c];
if(b&&b.Call&&b.Call.isBuiltinEval){if(k.strict)var h=k.cloneScope();
var d=b.Call(null,f,!0);
h&&k.replaceScope(h);}else var d=k.callFunction(i,b,f,v[a][0]);
return d&&d.Abrupt?(y=d,unwind):(e[c++]=d,g[++a]);}function FUNCTION(){return e[c++]=k.createFunction(v[a][0],v[a][1],v[a][2]),g[++a];}function FLIP(){var f=[], b=0, d=v[a][0];
while(b<d)f[b]=e[c-b++];b=0;while(b<d)e[c-b]=f[d-++b];return g[++a];}function GET(){var b=d(e[--c]);
return b&&b.Abrupt?(y=b,unwind):(e[c++]=b,g[++a]);}function HAS_BINDING(){return e[c++]=k.hasBinding(v[a][0]),g[++a];}function INC(){return e[c-1]++,g[++a];}function INDEX(){var d=e[--c], b=e[--c]+v[a][0], f=e[c-1];
return f.DefineOwnProperty(b+'',new Desc(d)),e[c++]=b+1,g[++a];}function INTERNAL_MEMBER(){var b=e[--c];
return e[c++]=b[v[a][0]],g[++a];}function ITERATE(){return e[c-1]=e[c-1].Iterate(),g[++a];}function LITERAL(){return e[c++]=v[a][0],g[++a];}function JUMP(){return a=v[a][0],g[a];}function JTRUE(){var b=e[--c];
return b?(a=v[a][0],g[a]):g[++a];}function JFALSE(){var b=e[--c];
return b?g[++a]:(a=v[a][0],g[a]);}function JEQ_UNDEFINED(){return e[c-1]===b?(c--,a=v[a][0],g[a]):g[++a];}function JNEQ_UNDEFINED(){return e[c-1]!==b?(a=v[a][0],g[a]):(c--,g[++a]);}function JEQ_NULL(){return e[c-1]===null?(c--,a=v[a][0],g[a]):g[++a];}function JNEQ_NULL(){return e[c-1]!==null?(a=v[a][0],g[a]):(c--,g[++a]);}function JLT(){var b=e[--c];
return b<v[a][1]?(a=v[a][0],g[a]):g[++a];}function JLTE(){var b=e[--c];
return b<=v[a][1]?(a=v[a][0],g[a]):g[++a];}function JGT(){var b=e[--c];
return b>v[a][1]?(a=v[a][0],g[a]):g[++a];}function JGTE(){var b=e[--c];
return b>=v[a][1]?(a=v[a][0],g[a]):g[++a];}function LET(){return k.initializeBinding(z.lookup(v[a][0]),e[--c],!0),g[++a];}function LOG(){return k.Realm.emit('debug',c,e),g[++a];}function LOOP(){var b=g[++a];
return b;}function MEMBER(){var f=e[--c], b=getKey(v[a][0]);
if(b&&b.Abrupt)return y=b,unwind;var d=k.getPropertyReference(b,f);
return d&&d.Abrupt?(y=d,unwind):(e[c++]=d,g[++a]);}function METHOD(){var f=v[a][0], h=e[c-1], i=v[a][1], b=getKey(v[a][2]);
if(b&&b.Abrupt)return y=b,unwind;var d=k.defineMethod(f,h,b,i);
return d&&d.Abrupt?(y=d,unwind):g[++a];}function NATIVE_CALL(){return CALL();}function NATIVE_REF(){return z.natives?(e[c++]=k.Realm.natives.reference(z.lookup(v[a][0]),!1),g[++a]):(y='invalid native reference',unwind);}function OBJECT(){return e[c++]=k.createObject(),g[++a];}function OR(){return e[c-1]?(a=v[a][0],g[a]):(c--,g[++a]);}function POP(){return c--,g[++a];}function POPN(){return c-=v[a][0],g[++a];}function PROPERTY(){var f=e[--c], h=e[c-1], b=getKey(v[a][0]);
if(b&&b.Abrupt)return y=b,unwind;var d=DefineProperty(h,b,f);
return d&&d.Abrupt?(y=d,unwind):g[++a];}function PROTO(){var b=e[--c], d=e[c-1];
if(b&&b.Abrupt)return y=b,unwind;if(d&&d.Abrupt)return y=d,unwind;var f=d.SetInheritance(b);
return f&&f.Abrupt?(y=f,unwind):g[++a];}function PUT(){var d=e[--c], f=e[--c], b=p(f,d);
return b&&b.Abrupt?(y=b,unwind):(e[c++]=d,g[++a]);}function REGEXP(){return e[c++]=k.createRegExp(v[a][0]),g[++a];}function REF(){var b=z.lookup(v[a][0]);
return e[c++]=k.getReference(b),g[++a];}function REFSYMBOL(){var b=z.lookup(v[a][0]);
return e[c++]=k.getSymbol(b),g[++a];}function REST(){var f=e[--c], h=v[a][0], i=f.length-h, d=k.createArray(0);
for(var b=0;b<i;b++)d.set(b+'',f[h+b]);return d.set('length',b),e[c++]=d,g[++a];}function RETURN(){return E=e[--c],a++,z.flags.generator&&(k.currentGenerator.ExecutionContext=k,k.currentGenerator.State='closed',y=new l('throw',k.Realm.intrinsics.StopIteration),unwind()),!1;}function ROTATE(){var d=[], f=e[--c], b=0, h=v[a][0];
while(b<h)d[b++]=e[--c];d[b++]=f;while(b--)e[c++]=d[b];return g[++a];}function SAVE(){return E=e[--c],g[++a];}function SCOPE_CLONE(){return k.cloneScope(),g[++a];}function SCOPE_POP(){return k.popScope(),g[++a];}function SCOPE_PUSH(){return k.pushScope(),g[++a];}function SPREAD(){var d=e[--c], f=v[a][0], b=k.destructureSpread(d,f);
return b&&b.Abrupt?(y=b,unwind):(e[c++]=b,g[++a]);}function SPREAD_ARG(){var d=e[--c], f=e[c-1], b=k.spreadArguments(f,d);
return b&&b.Abrupt?(y=b,unwind):g[++a];}function SPREAD_ARRAY(){var d=e[--c], f=e[--c]+v[a][0], h=e[c-1], b=k.spreadArray(h,f,d);
return b&&b.Abrupt?(y=b,unwind):(e[c++]=b,g[++a]);}function STRING(){return e[c++]=z.lookup(v[a][0]),g[++a];}function SUPER_CALL(){var b=k.getSuperReference(!1);
return b&&b.Abrupt?(y=b,unwind):(e[c++]=b,g[++a]);}function SUPER_ELEMENT(){var b=k.getSuperReference(e[--c]);
return b&&b.Abrupt?(y=b,unwind):(e[c++]=b,g[++a]);}function SUPER_MEMBER(){var b=getKey(v[a][0]);
if(b&&b.Abrupt)return y=b,unwind;var d=k.getSuperReference(b);
return d&&d.Abrupt?(y=d,unwind):(e[c++]=d,g[++a]);}function SYMBOL(){var f=v[a][0], h=v[a][1], i=v[a][2];
if(i){var b=e[--c];
if(b&&b.Abrupt)return y=b,unwind;}else var b=k.createSymbol(f,h);
var d=k.initializeSymbolBinding(f,b);
return d&&d.Abrupt?(y=d,unwind):(e[c++]=d,g[++a]);}function TEMPLATE(){return e[c++]=k.getTemplateCallSite(v[a][0]),g[++a];}function THIS(){var b=k.getThis();
return b&&b.Abrupt?(y=b,unwind):(e[c++]=b,g[++a]);}function THROW(){return y=new l('throw',e[--c]),unwind;}function TO_OBJECT(){var b=e[c-1]=j(e[c-1]);
return b&&b.Abrupt?(y=b,unwind):g[++a];}function UNARY(){var b=m(v[a][0],e[--c]);
return b&&b.Abrupt?(y=b,unwind):(e[c++]=b,g[++a]);}function UNDEFINED(){return e[c++]=b,g[++a];}function UPDATE(){var d=M[v[a][0]], b=d(e[--c]);
return b&&b.Abrupt?(y=b,unwind):(e[c++]=b,g[++a]);}function VAR(){return k.initializeBinding(z.lookup(v[a][0]),e[--c],!1),g[++a];}function WITH(){var b=j(d(e[--c]));
return b&&b.Abrupt?(y=b,unwind):(k.pushWith(b),g[++a]);}function YIELD(){var b=k.currentGenerator;
return b.ExecutionContext=k,b.State='suspended',k.pop(),B=yieldCleanup,G=e[--c],a++,!1;}function trace(a){A||(A=[]),A.push(a);}function Change(d,a,c){this.type=d,c===b?this.index=a:(this.from=a,this.to=c);}function StackTrace(a,b){this.stack=b.slice(0,a),this.sp=a,this.ops=new o();}function TRACE_STACK(){var d=new StackTrace(c,e);
var b=g[a], f;
while(b)f=a,b=b(),d.record(v[f],c,e);console.log(d);}function TRACE(){var d=new Trace(k,a,g[a]), f=e.slice(0,c);
var b=g[a];
while(b)b=b();}function normalPrepare(h){K.push({ip:a,sp:c,stack:e,error:y,prepare:C,execute:F,cleanup:B,history:J,completion:E,stacktrace:A,context:k,log:f,ctx:H,yielded:G}),a=0,c=0,e=[],y=E=A=G=b,f=f||g.log,k=h;var d=k.Realm;
!d.quiet&&!z.natives||d.debugBuiltins?(J=k.history=[],F=instrumentedExecute):F=normalExecute;}function normalCleanup(){var g=d(E);
if(K.length){var b=K.pop();
a=b.ip,c=b.sp,e=b.stack,y=b.error,C=b.prepare,F=b.execute,B=b.cleanup,E=b.completion,A=b.stacktrace,k=b.context,f=b.log,H=b.ctx,G=b.yielded,k&&(J=k.history);}return g;}function normalExecute(){var b=g[a];
while(b)b=b();}function instrumentedExecute(){var b=g[a], d=0, f=k.Realm;
while(b)J[d++]=v[a],f.emit('op',v[a],e[c-1]),b=b();}function resumePrepare(){delete I.ip,delete I.stack,C=normalPrepare,k=H,H=b;}function pauseCleanup(){return I.ip=a,I.stack=e,e.length=c,C=resumePrepare,B=normalCleanup,H=k,w;}function yieldPrepare(a){C=normalPrepare,k=a;}function yieldCleanup(){return C=yieldPrepare,B=normalCleanup,G;}function run(a){return C(a),F(),B();}function send(a,b){return C(a),e[c++]=b,F(),B();}var L=[ ADD, AND, ARRAY, ARG, ARGS, ARGUMENTS, ARRAY_DONE, BINARY, BINDING, CALL, CASE, CLASS_DECL, CLASS_EXPR, COMPLETE, CONST, CONSTRUCT, DEBUGGER, DEFAULT, DEFINE, DUP, ELEMENT, ENUM, EXTENSIBLE, EVAL, FLIP, FUNCTION, GET, HAS_BINDING, INC, INDEX, INTERNAL_MEMBER, ITERATE, JUMP, JEQ_NULL, JEQ_UNDEFINED, JFALSE, JLT, JLTE, JGT, JGTE, JNEQ_NULL, JNEQ_UNDEFINED, JTRUE, LET, LITERAL, LOG, LOOP, MEMBER, METHOD, NATIVE_CALL, NATIVE_REF, OBJECT, OR, POP, POPN, PROPERTY, PROTO, PUT, REF, REFSYMBOL, REGEXP, REST, RETURN, ROTATE, SAVE, SCOPE_CLONE, SCOPE_POP, SCOPE_PUSH, SPREAD, SPREAD_ARG, SPREAD_ARRAY, STRING, SUPER_CALL, SUPER_ELEMENT, SUPER_MEMBER, SYMBOL, TEMPLATE, THIS, THROW, TO_OBJECT, UNARY, UNDEFINED, UPDATE, VAR, WITH, YIELD ];
var I=this, v=z.ops, g=instructions(v,L);
var M=[t, s, r, q];
h(Change.prototype,[function compare(a){return a.type===this.type?'index'in this?a.index===this.index:a.from-a.to===this.from-this.to:!1;}]),h(StackTrace.prototype,[function record(a,b,c){var d=this.ops[a.op.name]||(this.ops[a.op.name]=[]);
d.push(this.diff(b,c));},function diff(e,d){var i=Math.max(e,this.sp), b=[];
d=d.slice(0,e);for(var a=0;a<i;a++)this.stack[a]!==d[a]&&b.push(a);if(!b.length)return b;var c=[];
for(var a=0;a<b.length;a++)if(b[a]>e){var f=d.indexOf(this.stack[b[a]]);
~f?c.push(new Change('move',b[a],f)):c.push(new Change('remove',b[a]));}else if(b[a]>this.sp){var f=this.stack.indexOf(d[b[a]]);
~f?c.push(new Change('move',f,b[a])):c.push(new Change('add',b[a]));}else{var g=this.stack.indexOf(d[b[a]]);
var h=d.indexOf(this.stack[b[a]]);
~g?~h?g===h?c.push(new Change('replace',g)):c.push(new Change('swap',g,b[a])):c.push(new Change('remove',g)):~h?c.push(new Change('add',h)):this.sp<e?c.push(new Change('push',e)):c.push(new Change('pop',this.sp));}return this.sp=e,this.stack=d.slice(0,e),c;},function summary(){for(var a in this.ops);}]);var E, G, e, a, c, y, H, k, A, J;
var N=!1, K=[];
var C=normalPrepare, F=normalExecute, B=normalCleanup;
this.run=run,this.send=send,this.code=z,i.call(this);}'use strict';var g=a('./lib/objects'), i=a('./lib/Emitter');
var h=g.define, v=g.inherit, o=g.Hash;
var c=a('./object-model/operators'), u=c.STRICT_EQUAL, j=c.$$ToObject, m=c.UnaryOp, n=c.BinaryOp, d=c.$$GetValue, p=c.$$PutValue, q=c.PRE_INC, r=c.POST_INC, s=c.PRE_DEC, t=c.POST_DEC;
var e=a('./constants'), A=e.AST.array, w=e.SYMBOLS.Pause, z=e.SYMBOLS.Empty, y=e.SYMBOLS.Resume, x=e.BRANDS.StopIteration;
var l=a('./errors').AbruptCompletion;
Desc.prototype={ Configurable:!0, Enumerable:!0, Writable:!0 };var D=function(b,a){while(a--)b[a]=new Function('return function '+(a&1?'E':'_')+(a&2?'C':'_')+(a&4?'W':'_')+'(v){ this.Value = v }')(),b[a].prototype={ Enumerable:(a&1)>0, Configurable:(a&2)>0, Writable:(a&4)>0 };return b;}([],8);
var f=!1;
return h(Trace.prototype,[function record(a,d){var b=a.ip-this.start;
if(!(b in this.index)){var c=new Action(a,d);
this.record[this.count++]=c,this.index[b]=c;}else a.ip===this.end&&(this.complete=!0);return this.complete;}]),v(Thunk,i,[]),k.Thunk=Thunk,k;}(typeof d!=='undefined'?d.exports:{}),c.runtime=function(ae,p,f){function noop(){}function $$MakeConstructor(d,b,a){var g=a===f;
g&&(a=new c()),a.IsProto=!0,b===f&&(b=!0),g&&a.define('constructor',d,b?q:e),d.define('prototype',a,b?K:e);}function $$TopLevelDeclarationInstantiation(c){var b=d.VariableEnvironment, k=c.scopeType==='eval', m=c.lexDecls;
var l=k?ar:as;
for(var e=0, j;j=m[e];e++)if(j.type==='FunctionDeclaration'){var a=j.id.name;
if(b.HasBinding(a))b.CreateMutableBinding(a,k);else if(b===g.globalEnv){var h=t.GetOwnProperty(a);
if(!h)t.DefineOwnProperty(a,l,!0);else if(a5(h)||!h.Writable&&!h.Enumerable)return i('global invalid define');}b.SetMutableBinding(a,$$InstantiateFunctionDeclaration(j,d.LexicalEnvironment),c.flags.strict);}for(var e=0;e<c.varDecls.length;e++){var a=c.varDecls[e];
if(!b.HasBinding(a))b.CreateMutableBinding(a,k),b.SetMutableBinding(a,f,c.flags.strict);else if(b===g.globalEnv){var h=t.GetOwnProperty(a);
!h&&t.DefineOwnProperty(a,l,!0);}}}function getKey(a){return!a||typeof a==='string'?a:a[0]!=='@'?a[1]:d.getSymbol(a[1]);}function $$ClassDefinitionEvaluation(k,g,p,u,o){if(g===f)var h=b.ObjectProto, n=b.FunctionProto;
else{if(g&&g.Abrupt)return g;if(g===null)h=null,n=b.FunctionProto;else if(typeof g!=='object')return i('non_object_superclass');else if(!('Construct'in g))h=g,n=b.FunctionProto;else{h=g.Get('prototype');if(h&&h.Abrupt)return h;if(typeof h!=='object')return i('non_object_superproto');n=g;}}var j=new c(h), s=k||'';
for(var l=0;l<o[0].length;l++){var t=o[0][l], v=o[1][l], r=d.initializeSymbolBinding(t,d.createSymbol(t,v));
if(r&&r.Abrupt)return r;}k&&d.LexicalEnvironment.CreateImmutableBinding(k),!p&&(p=b.EmptyClass.code);var a=$$PropertyDefinitionEvaluation('method',j,'constructor',p);
return a&&a.Abrupt?a:(k&&(d.initializeBinding(k,a),j.define(b.toStringTag,s)),$$MakeConstructor(a,!1,j),a.Class=!0,a.SetInheritance(n),a.set('name',s),a.define('prototype',j,e),j.define('constructor',a,q),j.IsClassProto=!0,m(u,function(a){$$PropertyDefinitionEvaluation(a.kind,j,getKey(a.name),a.code);}),a);}function $$InstantiateFunctionDeclaration(b,d){var a=b.code, e=a.flags.generator?$GeneratorFunction:$Function, c=new e('normal',b.id.name,a.params,a,d,a.flags.strict);
return $$MakeConstructor(c),c;}function CollectionInitializer(c,a){var d=a+'Data';
return function(p,o){var h=o[0], e=o[1];
h[d]=new c();if(e===f)return h;e=y(e);if(e&&e.Abrupt)return e;var k=a1(b.iterator,e);
if(k&&k.Abrupt)return k;var j=h.Get('set');
if(j&&j.Abrupt)return j;if(!Z(j))return i('called_on_incompatible_object',[a+'.prototype.set']);var g;
while(g=y(a1('next',k))){if(a9(g))return h;if(g&&g.Abrupt)return g;var m=g.Get(0);
if(m&&m.Abrupt)return m;var l=g.Get(1);
if(l&&l.Abrupt)return l;var n=j.Call(h,[m, l]);
if(n&&n.Abrupt)return n;}return h;};}function notify(a){if(!('ChangeObservers'in this))return i('called_on_incompatible_object',['Notifier.prototype.notify']);a=y(a);var f=a.Get('type');
if(typeof f!=='string')return i('changerecord_type',[typeof f]);var g=this.ChangeObservers;
if(g.size){var h=this.Target, b=new c(), e=a.Enumerate(!0,!0);
b.define('object',h,1);for(var d=0;d<e.length;d++)b.define(e[d],a.Get(e[d]),1);b.PreventExtensions(),ad(b,g);}}function activate(a){g!==a&&(g&&(g.active=!1,g.emit('deactivate')),S.push(g),p.realm=g=a,p.global=t=I.global=a.global,p.intrinsics=b=a.intrinsics,a.active=!0,a.emit('activate'),c.changeRealm(a),E.changeRealm(a),j.changeRealm(a));}function deactivate(a){g===a&&S.length&&(a.active=!1,g=S.pop(),a.emit('dectivate'));}'use strict';var a8=a('../third_party/esprima'), r=a('./lib/objects'), _=a('./lib/functions'), M=a('./lib/iteration'), B=a('./lib/utility'), A=a('./errors'), ax=a('./assembler').assemble, a0=a('./constants'), a2=a('./object-model/collections'), I=a('./object-model/operators'), F=a('./object-model/environments'), j=a('./object-model/operations'), u=a('./object-model/descriptors'), c=a('./object-model/$Object').$Object, E=a('./object-model/$Array'), $=a('./object-model/$Proxy'), aw=a('./object-model/$TypedArray'), G=a('./natives'), a4=a('./lib/Emitter'), Y=a('./lib/PropertyList'), D=a('./thunk').Thunk, aN=a('./lib/Stack');
var w=r.Hash, z=r.create, av=r.hasOwn, V=r.isObject, X=r.assign, s=r.define, h=r.inherit, l=r.hide, J=_.fname, ao=_.applyNew, an=M.iterate, m=M.each, aC=M.map, am=B.numbers, a7=B.uid, ak=B.nextTick, L=B.tag, ai=B.unique, Q=a2.MapData, a3=a2.WeakMapData;
var i=A.$$ThrowException, aD=A.$$MakeException, ah=A.Completion, x=A.AbruptCompletion;
var ag=I.$$GetValue, y=I.$$ToObject;
var R=j.Reference, Z=j.$$IsCallable, a1=j.$$Invoke, ad=j.$$EnqueueChangeRecord, ac=j.$$DeliverAllChangeRecords, aa=j.$$CreateListFromArray, a9=j.$$IsStopIteration;
var aj=u.StringIndex, aO=u.Value, a6=u.Accessor, al=u.ArgAccessor, a5=u.$$IsAccessorDescriptor, aA=u.$$FromPropertyDescriptor, aL=u.$$ToPropertyDescriptor;
var o=F.DeclarativeEnvironmentRecord, ab=F.ObjectEnvironmentRecord, U=F.FunctionEnvironmentRecord, T=F.GlobalEnvironmentRecord;
var n=a0.SYMBOLS, aI=n.Break, af=n.Pause, P=n.Throw, aP=n.Empty, H=n.Return, W=n.Normal, aE=n.Builtin, aF=n.Continue, aG=n.Uninitialized;
x.prototype.Abrupt=n.Abrupt,ah.prototype.Completion=n.Completion;var k=a0.BRANDS;
var aJ=1, aK=2, ay=4, aM=8, e=0, N=1, aQ=2, az=3, K=4, aB=5, q=6, O=7, v=8, ap=9, aq=10, aH=11;
A.createError=function(a,b,c){return new $Error(a,b,c);};var $$PropertyDefinitionEvaluation=function(){function makeDefiner(c,b,a){return function(i,j,e){var k=e.flags.usesSuper, l=d.LexicalEnvironment, m=k?i:f, n=e.flags.generator?$GeneratorFunction:$Function, g=new n('method',j,e.params,e,l,e.flags.strict,f,m,k);
c&&$$MakeConstructor(g),a[b]=g;var h=i.DefineOwnProperty(j,a,!1);
return a[b]=f,h&&h.Abrupt?h:g;};}var a=makeDefiner(!1,'Value',{ Value:f, Writable:!0, Enumerable:!0, Configurable:!0 });
var b=makeDefiner(!0,'Get',{ Get:f, Enumerable:!0, Configurable:!0 });
var c=makeDefiner(!0,'Set',{ Set:f, Enumerable:!0, Configurable:!0 });
return function $$PropertyDefinitionEvaluation(d,e,f,g){if(d==='get')return b(e,f,g);if(d==='set')return c(e,f,g);if(d==='method')return a(e,f,g);};}();
var ar={ Value:f, Writable:!0, Enumerable:!0, Configurable:!0 };
var as={ Value:f, Writable:!0, Enumerable:!0, Configurable:!1 };
var at=c.prototype.DefineOwnProperty;
var $Function=function(){function $Function(k,l,d,a,m,h,i,j,n){i===f&&(i=b.FunctionProto),c.call(this,i),this.FormalParameters=d,this.ThisMode=k==='arrow'?'lexical':h?'strict':'global',this.strict=!!h,this.Realm=g,this.Scope=m,this.code=a,L(a),j!==f&&(this.HomeObject=j),n&&(this.MethodName=getKey(l)),h?(this.define('arguments',b.ThrowTypeError,v),this.define('caller',b.ThrowTypeError,v)):(this.define('arguments',null,e),this.define('caller',null,e)),this.define('length',d?d.ExpectedArgumentCount:0,e),this.define('name',getKey(a.name),a.name&&!a.flags.writableName?e:K);}return h($Function,c,{BuiltinBrand:k.BuiltinFunction,FormalParameters:null,code:null,Scope:null,strict:!1,ThisMode:'global',Realm:null,type:'$Function'},[function Call(a,f,h){g!==this.Realm&&activate(this.Realm);if(this.ThisMode==='lexical')var b=new o(this.Scope);
else{if(this.ThisMode!=='strict')if(a==null)a=this.Realm.global;else if(typeof a!=='object'){a=y(a);if(a.Abrupt)return a;}var b=new U(a,this);
}var i=d?d.callee:null;
ExecutionContext.push(new ExecutionContext(d,b,g,this.code,this,f,h)),!this.thunk&&(this.thunk=new D(this.code),l(this,'thunk')),!this.strict&&(this.define('arguments',b.arguments,e),this.define('caller',i,e),b.arguments=null);var c=this.thunk.run(d);
return!this.strict&&(this.define('arguments',null,e),this.define('caller',null,e)),ExecutionContext.pop(),c&&c.type===H?c.value:c;},function Construct(e){if(this.ThisMode==='lexical')return i('construct_arrow_function');var a=this.Get('prototype');
if(a&&a.Abrupt)return a;var d=typeof a==='object'?new c(a):new c();
this.BuiltinConstructor&&(d.BuiltinBrand=a.BuiltinBrand);var b=this.Call(d,e,!0);
return b&&b.Abrupt?b:typeof b==='object'?b:d;},function HasInstance(a){if(typeof a!=='object'||a===null)return!1;var b=this.Get('prototype');
if(b.Abrupt)return b;if(typeof b!=='object')return i('instanceof_nonobject_proto');while(a){a=a.GetInheritance();if(b===a)return!0;}return!1;}]),$Function;}();
var $BoundFunction=function(){function $BoundFunction(a,d,f){c.call(this,b.FunctionProto),this.BoundTargetFunction=a,this.BoundThis=d,this.BoundArgs=f,this.define('arguments',b.ThrowTypeError,v),this.define('caller',b.ThrowTypeError,v),this.define('length',a.get('length'),e);}return h($BoundFunction,$Function,{ TargetFunction:null, BoundThis:null, BoundArgs:null, type:'$BoundFunction' },[function Call(b,a){return this.BoundTargetFunction.Call(this.BoundThis,this.BoundArgs.concat(a));},function Construct(a){return this.BoundTargetFunction.Construct?this.BoundTargetFunction.Construct(this.BoundArgs.concat(a)):i('not_constructor',this.BoundTargetFunction.name);},function HasInstance(a){return this.BoundTargetFunction.HasInstance?this.BoundTargetFunction.HasInstance(a):i('instanceof_function_expected',this.BoundTargetFunction.name);}]),$BoundFunction;}();
var $GeneratorFunction=function(){function $GeneratorFunction(){$Function.apply(this,arguments);}return h($GeneratorFunction,$Function,[function Call(a,e,f){g!==this.Realm&&activate(this.Realm);if(this.ThisMode==='lexical')var b=new o(this.Scope);
else{if(this.ThisMode!=='strict')if(a==null)a=this.Realm.global;else if(typeof a!=='object'){a=y(a);if(a.Abrupt)return a;}var b=new U(a,this);
}var c=new ExecutionContext(d,b,this.Realm,this.code,this,e,f);
ExecutionContext.push(c),!this.thunk&&(this.thunk=new D(this.code),l(this,'thunk'));var h=new $Generator(this.Realm,b,c,this.thunk);
return ExecutionContext.pop(),h;}]),$GeneratorFunction;}();
var $Generator=function(){function setFunction(c,a,b){c.set(a,new $InternalFunction({ name:a, length:b.length, call:b }));}function $Generator(f,g,h,d){c.call(this),this.Realm=f,this.Scope=g,this.code=d.code,this.ExecutionContext=h,this.State=e,this.thunk=d;var a=this;
setFunction(this,b.iterator,function(){return a;}),setFunction(this,'next',function(){return a.Send();}),setFunction(this,'close',function(){return a.Close();}),setFunction(this,'send',function(b){return a.Send(b);}),setFunction(this,'throw',function(b){return a.Throw(b);});}function $$Resume(a,c,b){return ExecutionContext.push(a),c!==W&&(b=new x(c,b)),a.currentGenerator.thunk.send(a,b);}var a='executing', d='closed', e='newborn';
return h($Generator,c,{ Code:null, ExecutionContext:null, Scope:null, Handler:null, State:null },[function Send(b){return this.State===a?i('generator_executing','send'):this.State===d?i('generator_closed','send'):this.State===e?b!==f?i('generator_send_newborn'):(this.ExecutionContext.currentGenerator=this,this.State=a,ExecutionContext.push(this.ExecutionContext),this.thunk.run(this.ExecutionContext)):(this.State=a,$$Resume(this.ExecutionContext,W,b));},function P(b){return this.State===a?i('generator_executing','throw'):this.State===d?i('generator_closed','throw'):this.State===e?(this.State=d,this.code=null,new x(P,b)):(this.State=a,$$Resume(this.ExecutionContext,P,b));},function Close(b){if(this.State===a)return i('generator_executing','close');if(this.State===d)return;if(state===e){this.State=d,this.code=null;return;}this.State=a;var c=$$Resume(this.ExecutionContext,H,b);
return this.State=d,c;}]),$Generator;}();
var $Date=function(){function $Date(a){c.call(this,b.DateProto),this.Date=a;}return h($Date,c,{ BuiltinBrand:k.BuiltinDate, type:'$Date' }),$Date;}();
var $String=function(){function $String(a){c.call(this,b.StringProto),this.PrimitiveValue=a,this.define('length',a.length,e);}return h($String,c,{ BuiltinBrand:k.StringWrapper, PrimitiveValue:f, type:'$String' },[function m(b){var d=this.PrimitiveValue;
for(var a=0;a<d.length;a++)b([a+'', d[a], N]);c.prototype.each.call(this,b);},function has(a){var b=this.PrimitiveValue;
return a<b.length&&a>=0?!0:c.prototype.has.call(this,a);},function get(a){var b=this.PrimitiveValue;
return a<b.length&&a>=0?b[a]:c.prototype.get.call(this,a);},function query(a){var b=this.PrimitiveValue;
return a<b.length&&a>=0?N:c.prototype.query.call(this,a);},function describe(a){var b=this.PrimitiveValue;
return a<b.length&&a>=0?[a, b[a], N]:c.prototype.describe.call(this,a);},function GetOwnProperty(a){var b=this.PrimitiveValue;
if(a<b.length&&a>=0)return new aj(b[a]);var d=c.prototype.GetOwnProperty.call(this,a);
if(d)return d;},function Get(a){var b=this.PrimitiveValue;
return a<b.length&&a>=0?b[a]:this.GetP(this,a);},function Enumerate(a,b){var d=c.prototype.Enumerate.call(this,a,b);
return ai(am(this.PrimitiveValue.length).concat(d));}]),$String;}();
var $Number=function(){function $Number(a){c.call(this,b.NumberProto),this.PrimitiveValue=a;}return h($Number,c,{ BuiltinBrand:k.NumberWrapper, PrimitiveValue:f, type:'$Number' }),$Number;}();
var $Boolean=function(){function $Boolean(a){c.call(this,b.BooleanProto),this.PrimitiveValue=a;}return h($Boolean,c,{ BuiltinBrand:k.BooleanWrapper, PrimitiveValue:f, type:'$Boolean' }),$Boolean;}();
var $Map=function(){function $Map(){c.call(this,b.MapProto);}return h($Map,c,{ BuiltinBrand:k.BuiltinMap }),$Map;}();
var $Set=function(){function $Set(){c.call(this,b.SetProto);}return h($Set,c,{ BuiltinBrand:k.BuiltinSet }),$Set;}();
var $WeakMap=function(){function $WeakMap(){c.call(this,b.WeakMapProto);}return h($WeakMap,c,{ BuiltinBrand:k.BuiltinWeakMap }),$WeakMap;}();
var $RegExp=function(){function $RegExp(a){!this.properties&&c.call(this,b.RegExpProto),this.PrimitiveValue=a;}var a=X(new w(),{global:['global', !1, e],ignoreCase:['ignoreCase', !1, e],lastIndex:['lastIndex', 0, K],multiline:['multiline', !1, e],source:['source', '', e]});
return h($RegExp,c,{ BuiltinBrand:k.BuiltinRegExp, Match:null },[function describe(b){if(b in a){var c=a[b];
return c[1]=this.PrimitiveValue[b],c;}return this.properties.describe(b);},function s(b,c,d){b in a?b==='lastIndex'&&(this.PrimitiveValue.lastIndex=c):this.properties.define(b,c,d);},function get(b){return b in a?this.PrimitiveValue[b]:this.properties.get(b);},function set(b,c){b in a?b==='lastIndex'&&(this.PrimitiveValue.lastIndex=c):this.properties.set(b,c);},function query(b){return b in a?a[b][2]:this.properties.query(b);},function update(b,c){if(!(b in a))return this.properties.update(b,c);},function m(b){for(var c in a){var d=a[c];
d[1]=this.PrimitiveValue[c],b.call(this,d);}this.properties.each(b,this);}]),$RegExp;}();
var $Symbol=function(){function $Symbol(a,d){c.call(this,b.SymbolProto),this.Name=a,this.Private=!d,this.gensym='_'+this.id;}var d=new(a('./object-model/$Object')).$Enumerator([]);
return h($Symbol,c,{ BuiltinBrand:k.BuiltinSymbol, Extensible:!1, Private:!0, Name:null, type:'$Symbol' },[function toString(){return this.gensym;},function GetInheritance(){return null;},function SetInheritance(a){return!1;},function IsExtensible(){return!1;},function PreventExtensions(){},function HasOwnProperty(){return!1;},function GetOwnProperty(){},function GetP(c,a){if(a==='toString')return b.ObjectToString;},function SetP(a,b,c){return!1;},function Delete(a){return!0;},function DefineOwnProperty(a,b){return!1;},function enumerator(){return d;},function Keys(){return[];},function OwnPropertyKeys(){return[];},function Enumerate(){return[];},function Freeze(){return!0;},function Seal(){return!0;},function IsFrozen(){return!0;},function IsSealed(){return!0;}]),$Symbol;}();
var $Arguments=function(){function $Arguments(a){c.call(this),this.define('length',a,q);}return h($Arguments,c,{ BuiltinBrand:k.BuiltinArguments, ParameterMap:null }),$Arguments;}();
var $StrictArguments=function(){function $StrictArguments(c){$Arguments.call(this,c.length);for(var a=0;a<c.length;a++)this.define(a+'',c[a],O);this.define('arguments',b.ThrowTypeError,v),this.define('caller',b.ThrowTypeError,v);}return h($StrictArguments,$Arguments),$StrictArguments;}();
var $MappedArguments=function(){function $MappedArguments(d,g,e,h){var f=z(null);
$Arguments.call(this,d.length),this.ParameterMap=new c(),this.isMapped=!1;for(var a=0;a<d.length;a++){this.define(a+'',d[a],O);var b=e[a];
a<e.length&&!(b in f)&&(this.isMapped=!0,f[b]=!0,this.ParameterMap.define(b,new al(b,g),aq));}this.define('callee',h,q);}return h($MappedArguments,$Arguments,{ ParameterMap:null },[function Get(a){if(this.isMapped&&this.ParameterMap.has(a))return this.ParameterMap.Get(a);else{var b=this.GetP(this,a);
return a==='caller'&&Z(b)&&b.strict?i('strict_poison_pill'):b;}},function GetOwnProperty(b){var a=c.prototype.GetOwnProperty.call(this,b);
return a===f?a:(this.isMapped&&this.ParameterMap.has(b)&&(a.Value=this.ParameterMap.Get(b)),a);},function DefineOwnProperty(a,b,c){return!at.call(this,a,b,!1)&&c?i('strict_lhs_assignment'):(this.isMapped&&this.ParameterMap.has(a)&&(a5(b)?this.ParameterMap.Delete(a,!1):('Value'in b&&this.ParameterMap.Put(a,b.Value,c),'Writable'in b&&this.ParameterMap.Delete(a,!1))),!0);},function Delete(b,d){var a=c.prototype.Delete.call(this,b,d);
return a.Abrupt?a:(a&&this.isMapped&&this.ParameterMap.has(b)&&this.ParameterMap.Delete(b,!1),a);}]),$MappedArguments;}();
var $Module=function(){function ModuleGetter(a){var b=this.Get={ Call:function(){var c=ag(a);
return a=null,b.Call=function(){return c;},c;} };
}function $Module(a,d){if(a instanceof $Module)return a;c.call(this,b.Genesis),this.remove('__proto__');var e=this;
m(d,function(b){e.define(b,new ModuleGetter(new R(a,b)),ap);});}h(ModuleGetter,a6);var a={ each:function(){ } };
return h($Module,c,{ BuiltinBrand:k.BuiltinModule, Extensible:!1, type:'$Module' }),$Module;}();
var $Error=function(){function $Error(d,a,e){c.call(this,b[d+'Proto']),this.define('message',e,O),a!==f&&this.define('type',a,q);}return h($Error,c,{ BuiltinBrand:k.BuiltinError },[function setOrigin(a,b){a&&this.set('filename',a),b&&this.set('kind',b);},function setCode(a,b){var c=b.split('\n')[a.start.line-1];
var d=new Array(a.start.column).join('-')+'^';
this.set('line',a.start.line),this.set('column',a.start.column),this.set('code',c+'\n'+d);}]),$Error;}();
var $NativeFunction=function(){function $NativeFunction(a){typeof a==='function'&&(a={ call:a, name:J(a), length:a.length, proto:b.FunctionProto }),a.proto===f&&(a.proto=b.FunctionProto),c.call(this,a.proto),this.define('arguments',null,e),this.define('caller',null,e),this.define('length',a.length,e),this.define('name',a.name,e),a.unwrapped?(this.Call=a.call,a.construct&&(this.Construct=a.construct)):(this.call=a.call,a.construct&&(this.construct=a.construct)),this.Realm=g,l(this,'Realm');}return h($NativeFunction,$Function,{ Builtin:!0, type:'$NativeFunction' },[function Call(b,c){var a=this.call.apply(b,[].concat(c));
return a&&a.type===H?a.value:a;},function Construct(b){if(this.construct){var d=this.has('prototype')?new c(this.get('prototype')):new c();
d.ConstructorName=this.get('name');var a=this.construct.apply(d,b);