-
Notifications
You must be signed in to change notification settings - Fork 6
/
lich.min.js
1428 lines (1428 loc) · 659 KB
/
lich.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
var VOID=0;var NOTHING=1;var CLOSURE=2;var DICTIONARY=3;var THUNK=4;var WILDCARD=5;var DATA=6;var NUMBER=7;var STRING=8;var LIST=9;var ACTOR=10;var PRIMITIVE=11;var BOOLEAN=12;var AUDIO=13;var SYNTH=14;var IMPSTREAM=15;var SOLOSTREAM=16;function LichVoid(){this._lichType=VOID}function LichNothing(){this._lichType=NOTHING;this.value=null}function lichData(name){return{_argNames:new Array,_datatype:name,_lichType:DATA}}
function _createPrimitive(name,primitive,binOpName){if(typeof binOpName!=="undefined")_binOps[name]=binOpName;Lich.VM.reserved[name]=primitive}
function ActorSupervisor(){var thisSupervisor=this;var actors={main:Lich.VM.currentThread};this.parseMessage=function(event){switch(event.type){case "registerActor":thisSupervisor.registerActor(event.name,event.func,event.args,event.source);break;case "unregisterActor":thisSupervisor.unregisterActor(event.name);break;case "hasActor":thisSupervisor.hasActor(event.name,event.source);break;case "sendActor":thisSupervisor.sendActor(event.name,event.message,event.source);break}};this.registerActor=function(name,
func,args,source,ret){if(!actors.hasOwnProperty(name)){var worker=new Worker("../Compiler/Thread.js");actors[name]=worker;worker.addEventListener("message",function(event){if(event.data.message!=undefined)Lich.post(event.data.message);else if(event.data.print!=undefined)Lich.post(event.data.print);else if(event.data.supervisor)thisSupervisor.parseMessage(event.data);else if(event.data.evaluate)_evalMessage(event.data)},false);worker.addEventListener("error",function(event){Lich.post("Actor error: "+
event.message)},false);worker._lichType=ACTOR;worker.postMessage({type:"init",name:name,func:func,args:args,modules:Lich.VM.modules.join(";")});if(source==="main")ret(name);else actors[source].postMessage({type:"supervisor-register-response"})}else if(source==="main")throw new Error("Unable to register actor. Actor "+name+" is already registered.");else if(actors.hasOwnProperty(source))actors[source].postMessage({type:"error",message:"Unable to register actor. Actor "+name+" is already registered."});
else Lich.post("registerActor failed. registerActor was requested by a non-registered actor: "+source)};this.unregisterActor=function(name){if(name==="main")throw new Error("Can't unregister the main thread.");delete actors[name]};this.hasActor=function(name,source,ret){if(source==="main")return true;else if(actors.hasOwnProperty(source))if(source==="main")ret(name);else actors[source].postMessage({type:"supervisor-has-response",value:actors.hasOwnProperty(name)});else Lich.post("hasActor failed. hasActor was requested by a non-registered actor: "+
source)};this.sendActor=function(name,message,source){if(actors.hasOwnProperty(name))actors[name].postMessage(message);else if(source==="main")throw new Error("Unable to send actor message. Actor "+name+" does not exist");else if(actors.hasOwnProperty(source))actors[source].postMessage({type:"error",message:"Unable to send actor message. Actor "+name+" does not exist"});else Lich.post("Send failed. Send was requested by a non-registered actor: "+source)}}
function ThreadedActorSupervisor(){var queuedSupervisorReturn=null;this.parseMessage=function(event){switch(event.type){case "supervisor-register-response":if(queuedSupervisorReturn!=null){var func=queuedSupervisorReturn;queuedSupervisorReturn=null;func()}break;case "supervistor-has-response":var func=queuedSupervisorReturn;queuedSupervisorReturn=null;func(event.value);break}};this.registerActor=function(name,func,args,source,ret){queuedSupervisorReturn=function(){ret(name)};self.postMessage({supervisor:true,
type:"registerActor",name:name,func:func,args:args,source:source})};this.unregisterActor=function(name){self.postMessage({supervisor:true,type:"unregisterActor",name:name})};this.hasActor=function(name,source,ret){queuedSupervisorReturn=function(has){ret(has)};self.postMessage({supervisor:true,type:"hasActor",source:source})};this.sendActor=function(name,message,source){self.postMessage({supervisor:true,type:"sendActor",name:name,message:message,source:source})}};var Lich=new Object;Lich.VM=new Object;Lich.VM.Nothing={_lichType:NOTHING};Lich.VM.Void={_lichType:VOID};Lich.VM.actorSupervisor=new ActorSupervisor;Lich.VM.reserved={};Lich.VM.currentThread="main";Lich.VM.modules=[];Lich.VM.reserveVar=function(varName,value){Lich.VM.reserved[varName]=value};
Lich.VM.printArray=function(object){var string="[";for(var i=0;i<object.length;++i)if(i<object.length-1)string=string+Lich.VM.PrettyPrint(object[i])+",";else string=string+Lich.VM.PrettyPrint(object[i]);return string+"]"};Lich.VM.printDictionary=function(object){var string="(";for(n in object)if(n!="_lichType"&&n!="curry")string=string+'"'+n+'" = '+Lich.VM.PrettyPrint(object[n])+", ";if(string.length>1)return string.substring(0,string.length-2)+")";else return string+")"};
Lich.VM.printSynthDef=function(object){var string="SynthDef ("+object._datatype;for(var i=0;i<object._argNames.length;++i)string=string+" "+object._argNames[i];return string+")"};Lich.VM.printData=function(object){var string=object._datatype+" { ";for(var i=0;i<object._argNames.length;++i){string=string+object._argNames[i]+" = "+Lich.VM.PrettyPrint(object[object._argNames[i]]);if(i<object._argNames.length-1)string=string.concat(", ")}return string+" }"};
Lich.VM.printClosure=function(closure){var curried=false;var initClosure=closure;if(typeof closure.curriedFunc!=="undefined"){closure=closure.curriedFunc;curried=true}var string="(\\";var reg=/\(([\s\S]*?)\)/;var params=reg.exec(closure);if(params){params=params[1].split(",").map(function(elem){return elem.replace(/ /g,"")});if(curried)string=string+params.slice(initClosure.curriedArgs.length,params.length).join(" ");else string=string+params.slice(0,params.length).join(" ")}return string.concat(" ->)")};
Lich.VM.printPercStream=function(object){return"(\\ +>)"};
Lich.VM.printAST=function(object){switch(object.astType){case "at-match":return object.id+"@"+Lich.VM.printAST(object.pat);case "wildcard":return"_";case "varname":return object.id;case "literal-match":return object.value.value;case "head-tail-match":return"("+Lich.VM.PrettyPrint(object.head).replace(/\"/g,"")+":"+Lich.VM.PrettyPrint(object.tail).replace(/\"/g,"")+")";case "data-match":var string="("+object.id+" ";for(var i=0;i<object.members.length;++i){string=string.concat(Lich.VM.PrettyPrint(object.members[i]).replace(/\"/g,
""));if(i==object.members.length-1)string=string.concat(")");else string=string.concat(" ")}return string;case "list-match":return Lich.VM.PrettyPrint(object.list);case "lambda-pat":var string="(\\";for(var i=0;i<object.numArgs;++i){string=string.concat("_ ");if(i==object.numArgs-1)string=string.concat("->)")}return string;default:return object.astType}};
Lich.post=function(text){var obj=document.getElementById("post");var split=obj.value.split("\n");if(split.length>20)obj.value=text+"\n";else{obj.value=obj.value+text+"\n";obj.scrollTop=obj.scrollHeight}};
Lich.VM.PrettyPrint=function(object){if(object==null||typeof object==="undefined")return"Nothing";var lichType=object._lichType;if(lichType==SYNTH)return Lich.VM.printSynthDef(object);else if(lichType==DATA)return Lich.VM.printData(object);else if(typeof object==="string")return'"'+object+'"';else if(typeof object==="number")return object;else if(object instanceof Array)return Lich.VM.printArray(object);else if(typeof object==="function")return Lich.VM.printClosure(object);else if(lichType==IMPSTREAM)return"+>";
else if(lichType==SOLOSTREAM)return"~>";else if(lichType==CLOSURE||lichType==THUNK)return Lich.VM.printClosure(object);else if(lichType==DICTIONARY)return Lich.VM.printDictionary(object);else if(lichType==ACTOR)return"Actor";else if(object==Lich.VM.Nothing)return"Nothing";else if(lichType==NOTHING)return"Nothing";else if(lichType==VOID)return"";else return object};Lich.VM.Print=function(object){if(typeof object==="undefined")Lich.post("Nothing");else if(object._lichType!=VOID)Lich.post(Lich.VM.PrettyPrint(object))};Function.prototype.curriedArgs=[];
Function.prototype.curry=function curry(){if(typeof this.curriedFunc!=="undefined")if(this.curriedFunc.length<=this.curriedArgs.length+arguments.length)return this.curriedFunc.apply(this.curriedFunc,this.curriedArgs.concat(Array.prototype.slice.call(arguments)));else return this.curriedFunc.curry.apply(this.curriedFunc,this.curriedArgs.concat(Array.prototype.slice.call(arguments)));else{if(this.length<=arguments.length)return this.apply(this,arguments);var fn=this;var args=Array.prototype.slice.call(arguments);
var newFunc=function(){if(fn.length<=args.length+arguments.length)return fn.apply(fn,args.concat(Array.prototype.slice.call(arguments)));else return fn.curry.apply(fn,args.concat(Array.prototype.slice.call(arguments)))};newFunc.curriedFunc=fn;newFunc.curriedArgs=args;return newFunc}};
function tco(f){var value,active=false,accumulated=[];return function accumulator(){accumulated.push(arguments);if(!active){active=true;while(accumulated.length)value=f.apply(this,accumulated.shift());active=false;return value}}}function forEachCpsTco(arr,visitor,done){trampoline(forEachCpsRecTco(0,arr,visitor,done))}
function forEachCpsRecTco(index,arr,visitor,done){if(index<arr.length){var retArr;visitor(arr[index],index,function(){retArr=[forEachCpsRecTco,[index+1,arr,visitor,done]]});return retArr}else return[done]}function forEachCps(arr,visitor,done){forEachCpsRec(0,arr,visitor,done)}function forEachCpsRec(index,arr,visitor,done){if(index<arr.length)visitor(arr[index],index,function(){forEachCpsRec(index+1,arr,visitor,done)});else done()}
function forEachDictCps(arr,visitor,done){var keys=Object.keys(arr).filter(function(element){return element!="_lichType"});forEachDictCpsRec(0,keys,visitor,done)}function forEachDictCpsRec(index,arr,visitor,done){if(index<arr.length)visitor(arr[index],index,function(){forEachDictCpsRec(index+1,arr,visitor,done)});else done()}
function forEachDictReverseCps(arr,visitor,done){var keys=Object.keys(arr).filter(function(element){return element!="_lichType"});forEachDictReverseCpsRec(keys.length-1,keys,visitor,done)}function forEachDictReverseCpsRec(index,arr,visitor,done){if(index>=0)visitor(arr[index],index,function(){forEachDictReverseCpsRec(index-1,arr,visitor,done)});else done()}function forEachReverseCps(arr,visitor,done){forEachReverseCpsRec(arr.length-1,arr,visitor,done)}
function forEachReverseCpsRec(index,arr,visitor,done){if(index>=0)visitor(arr[index],index,function(){forEachReverseCpsRec(index-1,arr,visitor,done)});else done()}function forEachWithBreakCps(arr,visitor,done){forEachCpsWithBreakRec(0,arr,visitor,done)}function forEachCpsWithBreakRec(index,arr,visitor,done){if(index<arr.length)visitor(arr[index],index,function(doBreak){if(doBreak)done();else forEachCpsWithBreakRec(index+1,arr,visitor,done)});else done()}
function forEachPairsCps(arr,visitor,done){forEachPairsCpsRec(0,arr,visitor,done)}function forEachPairsCpsRec(index,arr,visitor,done){if(index<arr.length)visitor(arr[index],index,function(){forEachPairsCpsRec(index+2,arr,visitor,done)});else done()}function mapCps(arr,func,done){mapCpsRec(0,[],arr,func,done)}function mapCpsRec(index,outArr,inArr,func,done){if(index<inArr.length)func(inArr[index],index,function(result){mapCpsRec(index+1,outArr.concat(result),inArr,func,done)});else done(outArr)}
function mapDictCps(arr,func,done){var keys=Object.keys(arr).filter(function(element){return element!="_lichType"});mapDictCpsRec(0,{},keys,func,done)}function mapDictCpsRec(index,outArr,inArr,func,done){if(index<inArr.length)func(inArr[index],index,function(result){outArr[inArr[index]]=result;mapDictCpsRec(index+1,outArr,inArr,func,done)});else done(outArr)}
function trampoline(result){while(Array.isArray(result)){var func=result[0];var args=result.length>=2?result[1]:[];result=func.apply(null,args)}}Lich.verifyDef=function(name){if(Lich.parseType==="library")if(Lich.libraryNamespace.indexOf(name)!=-1)throw new Error("Duplicate definition for "+name);else Lich.libraryNamespace.push(name);if(Lich.VM.reserved.hasOwnProperty(name))throw new Error("Duplicate definition for reserved variable "+name+". Use a different name.");};
Lich.compileAST=function(ast){if(ast instanceof Array){var res=new Array;for(var i=0;i<ast.length;++i)res.push(Lich.compileAST(ast[i]));return res}else if(ast instanceof Object)switch(ast.astType){case "primitive":return ast;case "percStream":return Lich.compilePercStream(ast);case "percList":return Lich.compilePercList(ast);case "percMods":return Lich.compilePercMods(ast);case "soloStream":return Lich.compileSoloStream(ast);case "soloList":return Lich.compileSoloList(ast);case "soloMods":return Lich.compileSoloMods(ast);
case "decl-fun":return Lich.compileDeclFun(ast);case "local-decl-fun":return Lich.compileLocalDeclFun(ast);case "fun-where":return Lich.compileFunWhere(ast);case "ite":return Lich.compileIte(ast);case "application":return Lich.compileApplication(ast);case "function-application-op":return Lich.compileFunctionApplicationOp(ast);case "receive":return Lich.compileReceive(ast);case "function-composition":return Lich.compileFunctionComposition(ast);case "function-stream":return Lich.compileFunctionStream(ast);
case "lambda":return Lich.compileLambda(ast);case "let":return Lich.compileLet(ast);case "let-one":return Lich.compileLetOne(ast);case "listexp":return Lich.compileListExp(ast);case "qop":return Lich.compileQop(ast);case "conpat":return Lich.compileConPat(ast);case "wildcard":return{_lichType:WILDCARD};case "integer-lit":case "char-lit":case "number":case "float-lit":case "boolean-lit":case "string-lit":return ast.value;case "varname":return Lich.compileVarName(ast);case "dacon":return Lich.compileDacon(ast);
case "binop-exp":return Lich.compileBinOpExp(ast);case "curried-binop-exp":return Lich.compileCurriedBinOpExp(ast);case "left-curried-binop-exp":return Lich.compileLeftCurriedBinOpExp(ast);case "right-curried-binop-exp":return Lich.compileRightCurriedBinOpExp(ast);case "negate":return Lich.compileNegate(ast);case "listrange":return Lich.compileListRange(ast);case "dictionary":return Lich.compileDictionary(ast);case "case":return Lich.compileCase(ast);case "Nothing":return"Lich.VM.Nothing";case "list-comprehension":return Lich.compileListComprehension(ast);
case "module":return Lich.compileModule(ast);case "body":return Lich.compileBody(ast);case "data-decl":return Lich.compileDataDecl(ast);case "data-inst":return Lich.compileDataInst(ast);case "data-lookup":return Lich.compileDataLookup(ast);case "data-update":return Lich.compileDataUpdate(ast);case "data-enum":return Lich.compileDataEnum(ast);case "data-match":return Lich.compileDataMatch(ast);case "topdecl-decl":return Lich.compileTopdeclDecl(ast);case "top-exp":return Lich.compileTopExp(ast);case "do-exp":return Lich.compileDoExp(ast);
case "guard-fun":return Lich.compileGuardExp(ast);case "synthdef":return Lich.compileSynthDef(ast);case "impjs":return Lich.compileImportJS(ast);default:return Lich.unsupportedSemantics(ast)}else if(typeof ast==="undefined")return Lich.VM.Nothing;else throw new Error("Unknown AST Type: "+typeof ast);};Lich.unsupportedSemantics=function(ast){throw new Error("Unsupported semantics for "+ast+" with type "+ast.astType);};
Lich.getType=function(object){if(object==null)return NOTHING;var type=typeof object;if(object instanceof Array)return LIST;else if(type==="undefined")return NOTHING;else if(type==="number")return NUMBER;else if(type==="string")return STRING;else if(type==="function")return CLOSURE;else if(type==="boolean")return BOOLEAN;else if(typeof object._lichType!=="undefined")return object._lichType;else throw new Error("uknown object: "+object);};
Lich.dataMatch=function(object,pat){if(Lich.getType(object)!=DATA)return false;else if(object._datatype==pat)return true;else return false};Lich.matchError=function(object,pat){throw new Error("Unmatched pattern: "+object);};Lich.listMatchError=function(i){throw new Error("Function argument does not match list pattern for argument number "+i);};
Lich.lambdaPatternPrint=function(numArgs){var lambdaString="(\\\\";for(var i=0;i<numArgs;++i)lambdaString=lambdaString+"_ ";lambdaString=lambdaString+"->)";return lambdaString};Lich.numLambdaArgs=function(object){if(typeof object.curriedFunc!=="undefined")return object.curriedFunc.length-object.curriedArgs.length;else return object.length};
Lich.generateMatchFunc=function(object,pat,i,throwCode){var matchCode="";if(pat.astType=="at-match")pat=pat.pat;switch(pat.astType){case "varname":case "wildcard":if(throwCode)return matchCode;else return matchCode+"true";case "Nothing":if(throwCode)return matchCode+"if(Lich.getType("+object+') != NOTHING){throw new Error("Function argument does not match Nothing pattern for '+'argument number "+'+i+")};";else return matchCode+"Lich.getType("+object+") == NOTHING";case "data-match":if(!throwCode)matchCode+=
"(function(){";matchCode=matchCode+"if(Lich.dataMatch("+object+', "'+pat.id+'")){';for(var j=0;j<pat.members.length;++j)matchCode=matchCode+pat.members[j]+" = "+object+"["+object+"._argNames["+j+"]];";if(throwCode)matchCode=matchCode+'}else{throw new Error("Function argument does not match '+pat.id+' pattern for argument number "+'+i+")};";else matchCode=matchCode+";return true}else{return false}";if(!throwCode)matchCode+="})()";return matchCode;case "literal-match":var value=pat.value.value;if(typeof value===
"string")value=value.replace(/\"/g,"");if(throwCode)return matchCode+"if("+object+" !== "+pat.value.value+"){Lich.VM.Print("+object+');throw new Error("Function argument does not match '+value+' pattern for argument number "+'+i+")};";else return matchCode+object+" === "+pat.value.value;case "head-tail-match":if(!throwCode)matchCode+="(function(){";matchCode=matchCode+"if(Lich.getType("+object+") == LIST){if("+object+".length < 1){";if(throwCode)matchCode=matchCode+'throw new Error("Function argument does not match ('+
pat.head+":"+pat.tail+') pattern for argument number "+'+i+'+". Matching lists much have a length greater than 0.")}else{';else matchCode=matchCode+"return false}else{";if(pat.head.astType!="wildcard")matchCode=matchCode+pat.head+" = "+object+".length >= 1 ? "+object+"[0] : Lich.VM.Nothing;";if(pat.tail.astType!="wildcard")matchCode=matchCode+pat.tail+" = "+object+".slice(1, "+object+".length);";if(throwCode)matchCode=matchCode+'}}else{throw new Error("Function argument does not match ('+pat.head+
":"+pat.tail+') pattern for argument number "+'+i+'+". Supplied argument is not a list.")};';else matchCode=matchCode+";return true}}else{return false};";if(!throwCode)matchCode+="})()";return matchCode;case "list-match":if(!throwCode)matchCode+="(function(){";matchCode=matchCode+"if(Lich.getType("+object+") == LIST){if("+object+".length == "+pat.list.length+"){";for(var j=0;j<pat.list.length;++j)if(pat.list[j].astType!=="wildcard")if(pat.list[j].astType=="varname")matchCode=matchCode+pat.list[j].id+
" = "+object+"["+j+"];";else{var tempCode=Lich.generateMatchFunc(object+"["+j+"]",pat.list[j],i,throwCode);if(throwCode)matchCode=matchCode+tempCode;else matchCode=matchCode+"var _bool=(function(){"+tempCode+"})();if(!(_bool)){return false};"}if(throwCode)matchCode=matchCode+"}else{Lich.listMatchError("+i+")}}else{Lich.listMatchError("+i+")};";else matchCode=matchCode+";return true}else{return false}}else{return false};";if(!throwCode)matchCode+="})()";return matchCode;case "lambda-pat":if(throwCode){matchCode=
matchCode+"if((typeof "+object+' !== "function")||(Lich.numLambdaArgs('+object+") != "+pat.numArgs+")){"+'throw new Error("Function argument does not match '+Lich.lambdaPatternPrint(pat.numArgs)+' pattern for argument number "+'+i+")};";return matchCode}else matchCode=matchCode+"(typeof "+object+' === "function")&&(Lich.numLambdaArgs('+object+") == "+pat.numArgs+")";default:return matchCode}};
Lich.generateOneArgNameAndMatchVars=function(pat,i){var argName="_";var matchVars="";if(pat.astType=="at-match"){argName=pat.id;var arr=Lich.generateOneArgNameAndMatchVars(pat.pat,i);var tempName=arr[0];var tempVars=arr[1];matchVars=matchVars+tempVars;return[argName,matchVars]}else switch(pat.astType){case "varname":case "wildcard":argName=pat.id;return[argName,matchVars];case "Nothing":argName="_nothing"+i;return[argName,matchVars];case "data-match":argName="_"+pat.id+i;for(var i=0;i<pat.members.length;++i)matchVars=
matchVars+"var "+pat.members[i]+";";return[argName,matchVars];case "literal-match":argName="_"+pat.astType.replace(/-/g,"_")+i;return[argName,matchVars];case "head-tail-match":argName="_headTail"+i;if(pat.head.astType!="wildcard")matchVars=matchVars+"var "+pat.head+";";if(pat.tail.astType!="wildcard")matchVars=matchVars+"var "+pat.tail+";";return[argName,matchVars];case "list-match":argName="_list"+i;for(var j=0;j<pat.list.length;++j){var elem=pat.list[j];if(elem.astType!=="wildcard")if(elem.astType==
"varname")matchVars=matchVars+"var "+elem.id+";";else matchVars+=Lich.generateOneArgNameAndMatchVars(elem,i)[1]}return[argName,matchVars];case "lambda-pat":argName="_lambda"+i;return[argName,matchVars];default:return[argName,matchVars]}};Lich.generateArgNamesAndMatchVars=function(args){var argNames=new Array;var matchVars="";for(var i=0;i<args.length;++i){var arr=Lich.generateOneArgNameAndMatchVars(args[i],i);argNames.push(arr[0]);matchVars+=arr[1]}return[argNames,matchVars]};
Lich.checkFunctionArgMatches=function(argNames,pats){var matchCode="";for(var i=0;i<argNames.length;++i)matchCode+=Lich.generateMatchFunc(argNames[i],pats[i],i,true);return matchCode};Lich.compileModule=function(ast){Lich.post("Compiling module: "+ast.modid);var res=Lich.compileAST(ast.body);Lich.post("Done compiling module: "+ast.modid);return res};Lich.compileBody=function(ast){var body="";for(var i=0;i<ast.topdecls.length;++i)body+=Lich.compileAST(ast.topdecls[i])+";";return body};
Lich.compileTopdeclDecl=function(ast){return Lich.compileAST(ast.decl)};Lich.compileTopdeclData=function(ast){return Lich.unsupportedSemantics(ast)};
Lich.compileLocalDeclFun=function(ast){if(ast.args.length==0)return"var "+ast.ident.id+"="+Lich.compileAST(ast.rhs);else{var localArgNames=[];for(var i=0;i<ast.args.length;++i)if(ast.args[i].astType=="varname")if(localArgNames.indexOf(ast.args[i].id)!=-1)throw new Error("Duplicate definition for argument: "+ast.args[i].id+" in function "+ast.ident.id);else localArgNames.push(ast.args[i].id);var rhs=Lich.compileAST(ast.rhs);var arr=Lich.generateArgNamesAndMatchVars(ast.args);var argNames=arr[0];var matchVars=
arr[1];var matchCode=Lich.checkFunctionArgMatches(argNames,ast.args);return"var "+ast.ident.id+"=function ("+argNames.join(",")+"){"+matchVars+matchCode+"return "+rhs+"}"}};Lich.printAll=function(arr){for(var i=0;i<arr.length;++i)Lich.post("printAll: "+Lich.VM.PrettyPrint(arr[i]))};
Lich.compileDeclFun=function(ast){Lich.verifyDef(ast.ident.id);if(ast.args.length==0&&typeof ast.noCollapse=="undefined")return ast.ident.id+"="+Lich.compileAST(ast.rhs)+";";else{var localArgNames=[];for(var i=0;i<ast.args.length;++i)if(ast.args[i].astType=="varname")if(localArgNames.indexOf(ast.args[i].id)!=-1)throw new Error("Duplicate definition for argument: "+ast.args[i].id+" in function "+ast.ident.id);else localArgNames.push(ast.args[i].id);var rhs=Lich.compileAST(ast.rhs);var arr=Lich.generateArgNamesAndMatchVars(ast.args);
var argNames=arr[0];var matchVars=arr[1];var matchCode=Lich.checkFunctionArgMatches(argNames,ast.args);return ast.ident.id+"=function "+ast.ident.id+"("+argNames.join(",")+"){"+matchVars+matchCode+"return "+rhs+"}"}};
Lich.compileFunWhere=function(ast){var declNames=[];for(var i=0;i<ast.decls.length;++i)if(declNames.indexOf(ast.decls[i].ident.id)!=-1)throw new Error("Duplicate definition for local declaration: "+ast.decls[i].ident.id);else declNames.push(ast.decls[i].ident.id);var decls=[];for(var i=0;i<ast.decls.length;++i){var elem=ast.decls[i];if(elem.astType=="decl-fun")elem.astType="local-decl-fun";else if(elem.astType=="guard-fun")elem.local=true;decls.push(Lich.compileAST(elem))}var exp=Lich.compileAST(ast.exp);
return"(function(){"+decls.join(";")+";return "+exp+"})();"};Lich.compileConstr=function(ast){Lich.unsupportedSemantics(ast)};Lich.compileIte=function(ast){var expRes1=Lich.compileAST(ast.e1);var expRes2=Lich.compileAST(ast.e2);var expRes3=Lich.compileAST(ast.e3);return"(function(){if("+expRes1+"){return "+expRes2+"}else{return "+expRes3+"}})()"};
Lich.application=function(func,args){if(typeof func!=="function")throw new Error("Expression "+Lich.VM.PrettyPrint(func)+" cannot be used as a function for function application.");return func.curry.apply(func,args)};Lich.compileApplication=function(ast){var exps=[];for(var i=0;i<ast.exps.length;++i)exps.push(Lich.compileAST(ast.exps[i]));return"Lich.application("+exps[0]+",["+exps.slice(1,exps.length).join(",")+"])"};
Lich.compileFunctionApplicationOp=function(ast){return"Lich.application("+Lich.compileAST(ast.lhs)+",["+Lich.compileAST(ast.rhs)+"])"};Lich.compileFunctionComposition=function(ast){var funcs=[];for(var i=0;i<ast.exps.length;++i)funcs.push(Lich.compileAST(ast.exps[i]));return"function(a){var funcs=["+funcs.join(",")+"];var res = a;for(var i = funcs.length - 1; i >= 0; --i){res = funcs[i](res);};return res;}"};
Lich.compileFunctionStream=function(ast){var funcs="";var end="";for(var i=ast.exps.length-1;i>=0;--i){if(i>0)funcs+="Lich.application(";funcs+="("+Lich.compileAST(ast.exps[i])+")";if(i>0){funcs+=",[";end+="])"}}return funcs+end};
Lich.compileLambda=function(ast){var rhs=Lich.compileAST(ast.rhs);var arr=Lich.generateArgNamesAndMatchVars(ast.args);var argNames=arr[0];var matchVars=arr[1];var matchCode=Lich.checkFunctionArgMatches(argNames,ast.args);return"(function ("+argNames.join(",")+"){"+matchVars+matchCode+"return "+rhs+"})"};
Lich.compileLet=function(ast){var declNames=[];for(var i=0;i<ast.decls.length;++i)if(declNames.indexOf(ast.decls[i].ident.id)!=-1)throw new Error("Duplicate definition for local declaration: "+ast.decls[i].ident.id);else declNames.push(ast.decls[i].ident.id);var decls=[];for(var i=0;i<ast.decls.length;++i){var elem=ast.decls[i];if(elem.astType=="decl-fun")elem.astType="local-decl-fun";else if(elem.astType=="guard-fun")elem.local=true;decls.push(Lich.compileAST(elem))}var exp=Lich.compileAST(ast.exp);
return"(function(){"+decls.join(";")+";return "+exp+"})();"};Lich.compileLetOne=function(ast){return Lich.compileAST(ast.decl)+";Lich.post(Lich.VM.PrettyPrint("+ast.decl.ident.id+"))"};Lich.compileListExp=function(ast){var res=[];for(var i=0;i<ast.members.length;++i)res.push(Lich.compileAST(ast.members[i]));return"["+res.join(",")+"]"};Lich.compileQop=function(ast){return Lich.unsupportedSemantics(ast)};Lich.compileConPat=function(ast){return Lich.unsupportedSemantics(ast)};Lich.compileWildCard=function(ast){return Lich.unsupportedSemantics(ast)};
Lich.compileVarName=function(ast){return ast.id};Lich.compileDacon=function(ast){if(ast=="Nothing")return"null";else return Lich.unsupportedSemantics({astType:ast})};
Lich.compileDataDecl=function(ast){Lich.verifyDef(ast.id);var argNames=[];var initialData=[];var args=[];var dataPairs=[];for(var i=0;i<ast.members.length;++i){argNames.push('"'+ast.members[i].id+'"');args.push(ast.members[i].id);dataPairs.push(ast.members[i].id+":"+ast.members[i].id)}initialData.push("_lichType:DATA");initialData.push('_datatype:"'+ast.id+'"');initialData.push("_argNames:["+argNames.join(",")+"]");return ast.id+"=function("+args.join(",")+"){return {"+initialData.concat(dataPairs).join(",")+
"}}"};Lich.newData=function(constructor,members){if(constructor==null)throw new Error("Unable to find data constructor for "+constructor);var data=_deepCopy(constructor);for(var i=0;i<members.length;++i)data[constructor._argNames[i]]=members[i];return data};Lich.compileDataInst=function(ast){var members=[];for(var i=0;i<ast.members.length;++i)members.push(Lich.compileAST(ast.members[i]));if(members.length>0)return"Lich.application("+ast.id+",["+members.join(",")+"])";else return ast.id};
Lich.compileDataLookup=function(ast){return Lich.compileAST(ast.data)+"."+ast.member};Lich.dataUpdate=function(data,members){var newData=_deepCopy(data);for(var i=0;i<members.length;++i)newData[members[i].id]=members[i].exp;return newData};
Lich.compileDataUpdate=function(ast){var dataCon=Lich.compileAST(ast.data);var members=[];for(var i=0;i<ast.members.length;++i)members.push('{id:"'+ast.members[i].id+'", exp:'+Lich.compileAST(ast.members[i].exp)+"}");return"Lich.dataUpdate("+dataCon+",["+members.join(",")+"])"};
Lich.compileDataEnum=function(ast){Lich.verifyDef(ast.id);dataPairs=new Array;var res="";for(var i=0;i<ast.members.length;++i){res=res+ast.members[i]+'={_lichType:DATA,_argNames:[],_datatype:"'+ast.members[i]+'"};';dataPairs.push('"'+ast.members[i]+'"'+":"+ast.members[i])}var argNames=ast.members.map(function(elem){return'"'+elem+'"'});dataPairs.push("_lichType:DATA");dataPairs.push("_argNames:["+argNames.join(",")+"]");dataPairs.push('_datatype:"'+ast.id+'"');return res+ast.id+"={"+dataPairs.join(",")+
"};"};var _literalBinOps=["+","-","/","*","%",">","<",">=","<=","=="];_binOps={};
Lich.compileBinOpExp=function(ast){var lhs=Lich.compileAST(ast.lhs);var rhs=Lich.compileAST(ast.rhs);if((ast.lhs.astType=="float-lit"||ast.lhs.astType=="string-lit")&&(ast.rhs.astType=="float-lit"||ast.rhs.astType=="string-lit")&&_literalBinOps.indexOf(ast.op)!=-1)return lhs+ast.op+" "+rhs;else if(Lich.VM.reserved.hasOwnProperty(ast.op))return _binOps[ast.op]+"("+lhs+","+rhs+")";else throw new Error("Unrecongized binary operator: "+ast.op);};
Lich.compileCurriedBinOpExp=function(ast){if(Lich.VM.reserved.hasOwnProperty(ast.op))return'Lich.VM.reserved["'+ast.op+'"]';else throw new Error("Unrecongized binary operator: "+ast.op);};Lich.compileLeftCurriedBinOpExp=function(ast){if(Lich.VM.reserved.hasOwnProperty(ast.op))return'Lich.VM.reserved["'+ast.op+'"].curry('+Lich.compileAST(ast.lhs)+")";else throw new Error("Unrecongized binary operator: "+ast.op);};
Lich.compileRightCurriedBinOpExp=function(ast){if(Lich.VM.reserved.hasOwnProperty(ast.op))return'(function(lhs){return Lich.application(Lich.VM.reserved["'+ast.op+'"],[lhs,'+Lich.compileAST(ast.rhs)+"])})";else throw new Error("Unrecongized binary operator: "+ast.op);};Lich.compileNegate=function(ast){return"(-"+Lich.compileAST(ast.rhs)+")"};
Lich.listRange=function(lower,upper,next){var skip=0;if(Lich.getType(next)==NOTHING)if(lower<upper)skip=1;else skip=-1;else skip=next-lower;if(typeof lower!=="number"||typeof skip!=="number"||typeof upper!=="number")throw new Error("List range syntax can only be used with numbers. failed with: "+Lich.VM.PrettyPrint(lower)+","+Lich.VM.PrettyPrint(next)+".."+Lich.VM.PrettyPrint(upper));var array=new Array;if(skip<=0){for(var i=lower;i>=upper;i+=skip)array.push(i);return array}else{for(var i=lower;i<=
upper;i+=skip)array.push(i);return array}};Lich.compileListRange=function(ast){var lower=Lich.compileAST(ast.lower);var upper=Lich.compileAST(ast.upper);if(typeof ast.skip!=="undefined")return"Lich.listRange("+lower+","+upper+","+Lich.compileAST(ast.skip)+")";else return"Lich.listRange("+lower+","+upper+", Lich.VM.Nothing)"};Lich.newDictionary=function(pairs){res={_lichType:DICTIONARY};for(var i=0;i<pairs.length;++i)res[pair[0]]=pair[1];return res};
Lich.compileDictionary=function(ast){var pairs=new Array;pairs.push("_lichType:DICTIONARY");for(var i=0;i<ast.pairs.length;i+=2){var dictKey=Lich.compileAST(ast.pairs[i]);var dictRes=Lich.compileAST(ast.pairs[i+1]);pairs.push(dictKey+":"+dictRes)}return"{"+pairs.join(",")+"}"};
Lich.compileCase=function(ast){var caseCode="(function(_object){";var matchCode="";for(var i=0;i<ast.alts.length;++i){var elem=ast.alts[i];var pat=elem.pat;var arr=Lich.generateOneArgNameAndMatchVars(pat,i);var argName=arr[0];var matchVars=arr[1];if(pat.astType=="at-match")caseCode+="var "+argName+"=_object;";caseCode+=matchVars;var tempMatchCode=Lich.generateMatchFunc("_object",pat,i,false);var altExp=Lich.compileAST(elem.exp);if(i>0)matchCode+="else ";matchCode+="if("+tempMatchCode+"){return "+
altExp+"}"}return caseCode+matchCode+'else throw new Error("case statement found no matching patterns.")})('+Lich.compileAST(ast.exp)+")"};
Lich.generateListComprehensionCode=function(exp,generators,filters){var code="(function(){var _listRes = new Array();";for(var i=0;i<generators.length;++i){var varName="_list"+i;var iName="i"+i;code+="var "+varName+"="+generators[i][1]+";for(var "+iName+"=0;"+iName+"<"+varName+".length;++"+iName+"){"+generators[i][0]+"="+varName+"[i"+i+"];"}var doFilters=filters.length>0;if(doFilters)code+="if(";for(var i=0;i<filters.length;++i){if(i>0)code+="&&(";else code+="(";code+=filters[i]+")"}if(doFilters)code+=
"){";code+="_listRes.push("+exp+");";if(doFilters)code+="}";for(var i=generators.length-1;i>=0;--i)code+="}";return code+"; return _listRes})()"};
Lich.compileListComprehension=function(ast){var filters=new Array;var generators=new Array;for(var i=0;i<ast.generators.length;++i)if(ast.generators[i].astType!="decl-fun")filters.push(Lich.compileAST(ast.generators[i]));for(var i=0;i<ast.generators.length;++i)if(ast.generators[i].astType=="decl-fun")generators.push([ast.generators[i].ident,Lich.compileAST(ast.generators[i].rhs)]);return Lich.generateListComprehensionCode(Lich.compileAST(ast.exp),generators,filters)};
function postProcessJSON(object){if(Object.prototype.toString.call(object)==="[object Array]"){var out=[],i=0,len=object.length;for(;i<len;i++)object[i]=postProcessJSON(object[i]);return object}else if(typeof object==="object"){if(object==null||typeof object==="undefined")return Lich.VM.Nothing;if(object._lichType==CLOSURE)return eval(object.value);else for(n in object)object[n]=postProcessJSON(object[n]);return object}return object}Lich.parseJSON=function(json){try{return postProcessJSON(JSON.parse(json))}catch(e){Lich.post(e)}};
Lich.stringify=function(object){var string="";try{string=JSON.stringify(object,function(key,val){if(typeof val==="function")return{_lichType:CLOSURE,value:"((function(){return "+val+"})())"};return val})}catch(e){Lich.post(e)}return string};Lich.compileTopExp=function(ast){return"Lich.post(Lich.VM.PrettyPrint("+Lich.compileAST(ast.exp)+"));"};Lich.compileImportJS=function(ast){return"importjs("+ast.imports+")"};
Lich.compileDoExp=function(ast,ret){var res="";var first=ast.exps.length-1;for(var i=first;i>=0;--i)if(i==first)res=Lich.compileAST(ast.exps[i].exp);else res="bind("+Lich.compileAST(ast.exps[i].exp)+",function("+ast.exps[i].arg+"){return "+res+"})";return res};
Lich.compileGuardExp=function(ast,ret){var arr=Lich.generateArgNamesAndMatchVars(ast.args);var argNames=arr[0];var matchVars=arr[1];var matchCode=Lich.checkFunctionArgMatches(argNames,ast.args);var prefix=ast.ident.id+"=function "+ast.ident.id;if(ast.local)prefix="var "+ast.ident.id+"=function";var gaurdCode=prefix+"("+[].concat(argNames).join(",")+"){"+matchVars+matchCode;for(var i=0;i<ast.guards.length;++i){if(i>0)gaurdCode+="else ";gaurdCode+="if("+Lich.compileAST(ast.guards[i].e1)+"){return "+
Lich.compileAST(ast.guards[i].e2)+"}"}return gaurdCode+'else throw new Error("Non-exhaustive patterns in guard function.")}'};
Lich.compilePercStream=function(ast){Lich.verifyDef(ast.id);var list=Lich.compileAST(ast.list);var modifiers=Lich.compileAST(ast.modifiers);var res;if(eval("typeof "+ast.id+' !== "undefined"')){res=ast.id+".update("+list+","+modifiers+");";res+='Lich.post("'+ast.id+' "+ Lich.VM.PrettyPrint('+ast.id+"));"}else{res=ast.id+"=new Soliton.PercStream("+list+","+modifiers+");";if(Lich.parseType!=="library"){res+=ast.id+".play();";res+='Lich.post("'+ast.id+' "+ Lich.VM.PrettyPrint('+ast.id+"));"}}return res};
Lich.compilePercList=function(ast){var res=[];for(var i=0;i<ast.list.length;++i){var listItem=ast.list[i];if(listItem.astType!="varname")res.push(Lich.compileAST(listItem));else res.push('"'+listItem.id+'"')}return"["+res.join(",")+"]"};Lich.compilePercMods=function(ast){var res=[];for(var i=0;i<ast.list.length;++i)res.push(Lich.compileAST(ast.list[i]));return"["+res.join(",")+"]"};
Lich.compileSoloStream=function(ast){Lich.verifyDef(ast.id);var list=Lich.compileAST(ast.list);var mods=Lich.compileAST(ast.mods);var rmods=Lich.compileAST(ast.rmods);var res;if(eval("typeof "+ast.id+' !== "undefined"')){res=ast.id+".update("+ast.synth+","+list+","+mods+","+rmods+");";res+='Lich.post("'+ast.id+' "+ Lich.VM.PrettyPrint('+ast.id+"));"}else{res=ast.id+"=new Soliton.SoloStream("+ast.synth+","+list+","+mods+","+rmods+");";if(Lich.parseType!=="library"){res+=ast.id+".play();";res+='Lich.post("'+
ast.id+' "+ Lich.VM.PrettyPrint('+ast.id+"));"}}return res};Lich.compileSoloList=function(ast){var res=[];for(var i=0;i<ast.list.length;++i)res.push(Lich.compileAST(ast.list[i]));return"["+res.join(",")+"]"};Lich.compileSoloMods=function(ast){var res=[];for(var i=0;i<ast.list.length;++i)res.push(Lich.compileAST(ast.list[i]));return"["+res.join(",")+"]"};
Lich.compileSynthDef=function(ast){ast.astType="decl-fun";ast.noCollapse=true;var res=Lich.compileAST(ast)+';Soliton.synthDefs["'+ast.ident.id+'"]='+ast.ident.id;if(Lich.parseType!=="library")res+=";Lich.VM.Print("+ast.ident.id+");";return res};(function(global,exports,perf){function fixSetTarget(param){if(!param)return;if(!param.setTargetAtTime)param.setTargetAtTime=param.setTargetValueAtTime}if(window.hasOwnProperty("webkitAudioContext")&&!window.hasOwnProperty("AudioContext")){window.AudioContext=webkitAudioContext;if(!AudioContext.prototype.hasOwnProperty("createGain"))AudioContext.prototype.createGain=AudioContext.prototype.createGainNode;if(!AudioContext.prototype.hasOwnProperty("createDelay"))AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode;
if(!AudioContext.prototype.hasOwnProperty("createScriptProcessor"))AudioContext.prototype.createScriptProcessor=AudioContext.prototype.createJavaScriptNode;AudioContext.prototype.internal_createGain=AudioContext.prototype.createGain;AudioContext.prototype.createGain=function(){var node=this.internal_createGain();fixSetTarget(node.gain);return node};AudioContext.prototype.internal_createDelay=AudioContext.prototype.createDelay;AudioContext.prototype.createDelay=function(maxDelayTime){var node=maxDelayTime?
this.internal_createDelay(maxDelayTime):this.internal_createDelay();fixSetTarget(node.delayTime);return node};AudioContext.prototype.internal_createBufferSource=AudioContext.prototype.createBufferSource;AudioContext.prototype.createBufferSource=function(){var node=this.internal_createBufferSource();if(!node.start)node.start=function(when,offset,duration){if(offset||duration)this.noteGrainOn(when,offset,duration);else this.noteOn(when)};if(!node.stop)node.stop=node.noteOff;fixSetTarget(node.playbackRate);
return node};AudioContext.prototype.internal_createDynamicsCompressor=AudioContext.prototype.createDynamicsCompressor;AudioContext.prototype.createDynamicsCompressor=function(){var node=this.internal_createDynamicsCompressor();fixSetTarget(node.threshold);fixSetTarget(node.knee);fixSetTarget(node.ratio);fixSetTarget(node.reduction);fixSetTarget(node.attack);fixSetTarget(node.release);return node};AudioContext.prototype.internal_createBiquadFilter=AudioContext.prototype.createBiquadFilter;AudioContext.prototype.createBiquadFilter=
function(){var node=this.internal_createBiquadFilter();fixSetTarget(node.frequency);fixSetTarget(node.detune);fixSetTarget(node.Q);fixSetTarget(node.gain);return node};if(AudioContext.prototype.hasOwnProperty("createOscillator")){AudioContext.prototype.internal_createOscillator=AudioContext.prototype.createOscillator;AudioContext.prototype.createOscillator=function(){var node=this.internal_createOscillator();if(!node.start)node.start=node.noteOn;if(!node.stop)node.stop=node.noteOff;fixSetTarget(node.frequency);
fixSetTarget(node.detune);return node}}}})(window);var Soliton={};Soliton.context=0;Soliton.masterGain=0;Soliton.limiter=0;Soliton.blockSize=4096;Soliton.spliceFuncBlockSize=64;Soliton.spliceFuncBlockRatio=Soliton.blockSize/Soliton.spliceFuncBlockSize;Soliton.buffers={};Soliton.synthDefs={};Soliton.pbinds={};Soliton.buses=[];Soliton.numBuses=10;var _sinTable=[];var _pow=Math.pow(10,4);var pi=Math.PI;var halfPi=pi/2;var twoPi=pi*2;context=null;ugenList=["distortion3","distortion4"];_createUGen=function(name,func){_createPrimitive(name,func);ugenList.push(name)};
Soliton.init=function(){try{Soliton.context=new AudioContext;Soliton.masterGain=Soliton.context.createGain();Soliton.masterGain.gain.value=0.25;Soliton.limiter=Soliton.context.createDynamicsCompressor();Soliton.limiter.threshold.value=-3;Soliton.limiter.ratio.value=20;Soliton.limiter.attack.value=0.003;Soliton.limiter.release.value=0.003;Soliton.masterGain.connect(Soliton.limiter);Soliton.limiter.connect(Soliton.context.destination);sampleRate=Soliton.context.sampleRate;sampleDur=1/Soliton.context.sampleRate;
for(var i=0;i<Soliton.numBuses;++i){var bus=Soliton.context.createGain();bus._lichType=AUDIO;bus.startAll=function(){};bus.stopAll=function(){};Soliton.buses.push(bus)}context=Soliton.context;_createPrimitive("context",context)}catch(e){alert("Web Audio API is not supported in this browser: "+e)}};Soliton.print=function(text){Lich.post(text)};Soliton.printError=function(text){Lich.post(text)};Soliton.roundUp=function(inval,quant){return quant==0?inval:Math.ceil(inval/quant)*quant};
Soliton.bufferURL=function(url,name,callback,callbackDestination,offset,duration){if(!Soliton.buffers.hasOwnProperty(name)){Lich.post("Downloading audio...");var request=new XMLHttpRequest;request.open("GET",url,true);request.responseType="arraybuffer";request.onload=function(){Soliton.context.decodeAudioData(request.response,function(buffer){if(name!=undefined)Soliton.buffers[name]=buffer;if(callback!=undefined)callback(buffer,callbackDestination)},function(){var errorString="Unable to load URL: ";
errorString=errorString.concat(url);Lich.post(errorString)})};request.send();return null}else if(Soliton.buffers[name])if(callback!=undefined)return Soliton.addNode(callback(Soliton.buffers[name],callbackDestination,offset,duration));else return null};
Soliton.playURL=function(url,name,destination,offset,duration){if(name==undefined)name=url;if(destination==undefined)destination=Soliton.masterGain;var context=Soliton.bufferURL(url,name,Soliton.playBuffer,destination,offset,duration);if(!Soliton.buffers[name])Soliton.buffers[name]=0;return context};
Soliton.filter=function(nodeID,freq,type){var source=Soliton.nodes[nodeID];if(source!=null){source.disconnect(0);var filter=Soliton.context.createBiquadFilter();source.connect(filter);filter.connect(Soliton.masterGain);filter.type=type;filter.frequency.value=freq;return Soliton.addNode(filter)}return null};
Soliton.delay=function(nodeID,delayTime,feedLevel){var source=Soliton.nodes[nodeID];if(source!=null){source.disconnect(0);var mix=Soliton.context.createGain();var feedBack=Soliton.context.createGain();feedBack.gain.value=feedLevel;var delay=Soliton.context.createDelay();delay.delayTime.value=delayTime;source.connect(delay);source.connect(mix);delay.connect(mix);delay.connect(feedBack);feedBack.connect(delay);mix.connect(Soliton.masterGain);return Soliton.addNode(mix)}return null};
Soliton.waveShape=function(nodeID,curve){var source=Soliton.nodes[nodeID];if(source!=null){source.disconnect(0);var shape=Soliton.context.createWaveShaper();shape.oversample="4x";source.connect(shape);shape.connect(Soliton.masterGain);shape.curve=curve;return Soliton.addNode(shape)}return null};
Soliton.oscillator=function(freq,env,type,table){var osc=Soliton.context.createOscillator();osc.frequency.value=freq;if(type=="custom")osc.setPeriodicWave(Soliton.context.createPeriodicWave(table,table));else osc.type=type;osc.connect(Soliton.nodes[env]);osc.start(0);return env};
Soliton.createOscillator=function(target,type,freq,table){var osc=Soliton.context.createOscillator();osc.frequency.value=freq;if(type=="custom")osc.setPeriodicWave(Soliton.context.createPeriodicWave(table,table));else osc.type=type;osc.gainNode=Soliton.context.createGain();osc.gainNode.connect(target);osc.gainNode.gain.value=0;osc.connect(osc.gainNode);osc.startAll=osc.start;osc.stopAll=osc.stop;return osc};
Soliton.createOscillatorNode=function(type,freq,table){var input=null;var osc=Soliton.context.createOscillator();if(freq._lichType==AUDIO){osc.frequency.value=0;input=freq;freq.connect(osc.frequency)}else osc.frequency.value=freq;if(type=="custom")osc.setPeriodicWave(Soliton.context.createPeriodicWave(table,table));else osc.type=type;osc._lichType=AUDIO;osc.stopAll=function(time){if(input!=null)input.stopAll(time);osc.stop(time)};osc.startAll=function(time){if(input!=null)input.startAll(time);osc.start(time)};
return osc};Soliton.clip=function(value){if(value>1)return 1;else if(value<-1)return-1;else return value};Soliton.wrap=function(value){if(value>=1){value-=2;if(value<1)return value}else if(value<-1){value+=2;if(value>=-1)return value}else return value;return value-2*Math.floor((value+1)/2)};
function iir(coeff1,coeff2,input){var inMem=new Array;var outMem=new Array;for(var i=0;i<coeff1.length;++i)inMem.push(0);for(var i=0;i<coeff2.length;++i)outMem.push(0);var filt=Soliton.context.createScriptProcessor(1024,1,1);filt.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){inMem[0]=inputArray[i];outMem[0]=inMem[0]*coeff1[0];for(var j=coeff1.length-1;j>0;--j){outMem[0]+=coeff1[j]*inMem[j];
inMem[j]=inMem[j-1]}outMem[0]*=coeff2[0];for(var j=coeff2.length-1;j>0;--j){outMem[0]+=-coeff2[j]*outMem[j];outMem[j]=outMem[j-1]}outputArray[i]=outMem[0]}};filt._lichType=AUDIO;input.connect(filt);filt.startAll=function(time){input.startAll(time)};filt.stopAll=function(time){input.stopAll(time);setTimeout(function(){input.disconnect(0);filt.disconnect(0)},(time-Soliton.context.currentTime)*1E3)};return filt}_createUGen("iir",iir);
function fir(coeff,input){if(!(coeff instanceof Array))throw new Error("fir coeff must be a list.");var inMem=new Array;for(var i=0;i<coeff.length;++i)inMem.push(0);var filt=Soliton.context.createScriptProcessor(1024,1,1);filt.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){inMem[0]=inputArray[i];var res=inMem[0]*coeff[0];for(var j=coeff.length-1;j>0;--j){res+=coeff[j]*inMem[j];inMem[j]=
inMem[j-1]}outputArray[i]=res}};filt._lichType=AUDIO;input.connect(filt);filt.startAll=function(time){input.startAll(time)};filt.stopAll=function(time){input.stopAll(time);setTimeout(function(){input.disconnect();filt.disconnect()},(time-Soliton.context.currentTime)*1E3)};return filt}_createUGen("fir",fir);
function fos(a0,a1,b1,input){if(typeof a0==="number")a0=dc(a0);if(typeof a1==="number")a1=dc(a1);if(typeof b1==="number")b1=dc(b1);var filt=Soliton.context.createScriptProcessor(1024,4,1);var lastIn=0;var lastOut=0;filt.onaudioprocess=function(event){var a0Array=event.inputBuffer.getChannelData(0);var a1Array=event.inputBuffer.getChannelData(1);var b1Array=event.inputBuffer.getChannelData(2);var inputArray=event.inputBuffer.getChannelData(3);var outputArray=event.outputBuffer.getChannelData(0);for(var i=
0;i<1024;i++){lastOut=outputArray[i]=inputArray[i]*a0Array[i]+lastIn*a1Array[i]+lastOut*b1Array[i];lastIn=inputArray[i]}};var merger=Soliton.context.createChannelMerger(4);merger.channelInterpretation="discrete";a0.connect(merger,0,0);a1.connect(merger,0,1);b1.connect(merger,0,2);input.connect(merger,0,3);merger.connect(filt);filt._lichType=AUDIO;filt.startAll=function(time){a0.startAll(time);a1.startAll(time);b1.startAll(time);input.startAll(time)};filt.stopAll=function(time){a0.stopAll(time);a1.stopAll(time);
b1.stopAll(time);input.stopAll(time);setTimeout(function(){a0.disconnect();a1.disconnect();b1.disconnect();merger.disconnect();input.disconnect();filt.disconnect()},(time-Soliton.context.currentTime)*1E3)};return filt}_createUGen("fos",fos);
function sos(a0,a1,a2,b1,b2,input){if(typeof a0==="number")a0=dc(a0);if(typeof a1==="number")a1=dc(a1);if(typeof a2==="number")a2=dc(a2);if(typeof b1==="number")b1=dc(b1);if(typeof b2==="number")b2=dc(b2);var filt=Soliton.context.createScriptProcessor(1024,6,1);var n1=0;var n2=0;var o1=0;var o2=0;var tempO2=0;filt.onaudioprocess=function(event){var a0Array=event.inputBuffer.getChannelData(0);var a1Array=event.inputBuffer.getChannelData(1);var a2Array=event.inputBuffer.getChannelData(2);var b1Array=
event.inputBuffer.getChannelData(3);var b2Array=event.inputBuffer.getChannelData(4);var inputArray=event.inputBuffer.getChannelData(5);var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){tempO2=o1;o1=outputArray[i]=inputArray[i]*a0Array[i]+n1*a1Array[i]+n2*a2Array[i]+o1*b1Array[i]+o2*b2Array[i];o2=tempO2;n2=n1;n1=inputArray[i]}};var merger=Soliton.context.createChannelMerger(6);merger.channelInterpretation="discrete";a0.connect(merger,0,0);a1.connect(merger,0,1);a2.connect(merger,
0,2);b1.connect(merger,0,3);b2.connect(merger,0,4);input.connect(merger,0,5);merger.connect(filt);filt._lichType=AUDIO;filt.startAll=function(time){a0.startAll(time);a1.startAll(time);a2.startAll(time);b1.startAll(time);b2.startAll(time);input.startAll(time)};filt.stopAll=function(time){a0.stopAll(time);a1.stopAll(time);a2.stopAll(time);b1.stopAll(time);b2.stopAll(time);input.stopAll(time);setTimeout(function(){a0.disconnect();a1.disconnect();a2.disconnect();b1.disconnect();b2.disconnect();merger.disconnect();
input.disconnect();filt.disconnect()},(time-Soliton.context.currentTime)*1E3)};return filt}_createUGen("sos",sos);
function onepole(coeff,input){if(typeof coeff!=="number")throw new Error("onepole coeff must be a number.");var inMem=new Array;for(var i=0;i<coeff.length;++i)inMem.push(0);var filt=Soliton.context.createScriptProcessor(1024,1,1);var lastSample=0;filt.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++)lastSample=outputArray[i]=(1-Math.abs(coeff))*inputArray[i]+coeff*lastSample};filt._lichType=
AUDIO;input.connect(filt);filt.startAll=function(time){input.startAll(time)};filt.stopAll=function(time){input.stopAll(time);setTimeout(function(){input.disconnect();filt.disconnect()},(time-Soliton.context.currentTime)*1E3)};return filt}_createUGen("onepole",onepole);
function hpz1(input){var filt=Soliton.context.createScriptProcessor(1024,1,1);var lastVal=0;filt.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){outputArray[i]=0.5*(inputArray[i]-lastVal);lastVal=inputArray[i]}};filt._lichType=AUDIO;input.connect(filt);filt.startAll=function(time){input.startAll(time)};filt.stopAll=function(time){input.stopAll(time);setTimeout(function(){input.disconnect();
filt.disconnect()},(time-Soliton.context.currentTime)*1E3)};return filt}_createUGen("hpz1",hpz1);
function hpz2(input){var filt=Soliton.context.createScriptProcessor(1024,1,1);var lastVal1=0;var lastVal2=0;filt.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){outputArray[i]=0.25*(inputArray[i]-2*lastVal1+lastVal2);lastVal2=lastVal1;lastVal1=inputArray[i]}};filt._lichType=AUDIO;input.connect(filt);filt.startAll=function(time){input.startAll(time)};filt.stopAll=function(time){input.stopAll(time);
setTimeout(function(){input.disconnect();filt.disconnect()},(time-Soliton.context.currentTime)*1E3)};return filt}_createUGen("hpz2",hpz2);
function lpz1(input){var filt=Soliton.context.createScriptProcessor(1024,1,1);var lastVal=0;filt.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){outputArray[i]=0.5*(inputArray[i]+lastVal);lastVal=inputArray[i]}};filt._lichType=AUDIO;input.connect(filt);filt.startAll=function(time){input.startAll(time)};filt.stopAll=function(time){input.stopAll(time);setTimeout(function(){input.disconnect();
filt.disconnect()},(time-Soliton.context.currentTime)*1E3)};return filt}_createUGen("lpz1",lpz1);
function lpz2(input){var filt=Soliton.context.createScriptProcessor(1024,1,1);var lastVal1=0;var lastVal2=0;filt.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){outputArray[i]=0.25*(inputArray[i]+2*lastVal1+lastVal2);lastVal2=lastVal1;lastVal1=inputArray[i]}};filt._lichType=AUDIO;input.connect(filt);filt.startAll=function(time){input.startAll(time)};filt.stopAll=function(time){input.stopAll(time);
setTimeout(function(){input.disconnect();filt.disconnect()},(time-Soliton.context.currentTime)*1E3)};return filt}_createUGen("lpz2",lpz2);
function bpz2(input){var filt=Soliton.context.createScriptProcessor(1024,1,1);var lastVal1=0;var lastVal2=0;filt.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){outputArray[i]=0.5*(inputArray[i]-lastVal2);lastVal2=lastVal1;lastVal1=inputArray[i]}};filt._lichType=AUDIO;input.connect(filt);filt.startAll=function(time){input.startAll(time)};filt.stopAll=function(time){input.stopAll(time);setTimeout(function(){input.disconnect();
filt.disconnect()},(time-Soliton.context.currentTime)*1E3)};return filt}_createUGen("bpz2",bpz2);
function brz2(input){var filt=Soliton.context.createScriptProcessor(1024,1,1);var lastVal1=0;var lastVal2=0;filt.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){outputArray[i]=0.5*(inputArray[i]+lastVal2);lastVal2=lastVal1;lastVal1=inputArray[i]}};filt._lichType=AUDIO;input.connect(filt);filt.startAll=function(time){input.startAll(time)};filt.stopAll=function(time){input.stopAll(time);setTimeout(function(){input.disconnect();
filt.disconnect()},(time-Soliton.context.currentTime)*1E3)};return filt}_createUGen("brz2",brz2);Soliton.white=function(event){var outputArrayL=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;++i)outputArrayL[i]=Math.random()*2-1};Soliton.whiteTable=[];
function white(amp){var whiteFunc=Soliton.context.createScriptProcessor(1024,0,1);whiteFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++)output[i]=Math.random()*2-1};var whiteGain=Soliton.context.createGain();whiteGain.gain.value=0;if(amp._lichType==AUDIO)amp.connect(whiteGain.gain);else whiteGain.gain.value=amp;whiteFunc.connect(whiteGain);var gain=Soliton.context.createGain();gain.gain.value=0;whiteGain.connect(gain);gain.startAll=function(time){if(amp._lichType==
AUDIO)amp.startAll(time);gain.gain.setValueAtTime(1,time)};gain.stopAll=function(time){if(amp._lichType==AUDIO)amp.stopAll(time);gain.gain.setValueAtTime(0,time);setTimeout(function(){whiteFunc.disconnect();whiteGain.disconnect();gain.disconnect();if(amp._lichType==AUDIO)amp.disconnect()},(time-Soliton.context.currentTime)*1E3)};gain._lichType=AUDIO;return gain}_createUGen("white",white);
function pink(amp){var pinkFunc=Soliton.context.createScriptProcessor(1024,0,1);var b0,b1,b2,b3,b4,b5,b6;b0=b1=b2=b3=b4=b5=b6=0;pinkFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){var white=Math.random()*2-1;b0=0.99886*b0+white*0.0555179;b1=0.99332*b1+white*0.0750759;b2=0.969*b2+white*0.153852;b3=0.8665*b3+white*0.3104856;b4=0.55*b4+white*0.5329522;b5=-0.7616*b5-white*0.016898;output[i]=b0+b1+b2+b3+b4+b5+b6+white*0.5362;output[i]*=0.11;b6=white*
0.115926}};var pinkGain=Soliton.context.createGain();pinkGain.gain.value=0;if(amp._lichType==AUDIO)amp.connect(pinkGain.gain);else pinkGain.gain.value=amp;pinkFunc.connect(pinkGain);var gain=Soliton.context.createGain();gain.gain.value=0;pinkGain.connect(gain);gain.startAll=function(time){if(amp._lichType==AUDIO)amp.startAll(time);gain.gain.setValueAtTime(1,time)};gain.stopAll=function(time){if(amp._lichType==AUDIO)amp.stopAll(time);gain.gain.setValueAtTime(0,time);setTimeout(function(){pinkFunc.disconnect();
pinkGain.disconnect();gain.disconnect();if(amp._lichType==AUDIO)amp.disconnect()},(time-Soliton.context.currentTime)*1E3)};gain._lichType=AUDIO;return gain}_createUGen("pink",pink);
function violet(amp){var violetFunc=Soliton.context.createScriptProcessor(1024,0,1);var lastVal=0;violetFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){var white=Math.random()*2-1;output[i]=0.5*(white-lastVal);lastVal=output[i]}};var preGain=Soliton.context.createGain();preGain.gain.value=0;if(amp._lichType==AUDIO)amp.connect(preGain.gain);else preGain.gain.value=amp;violetFunc.connect(preGain);var gain=Soliton.context.createGain();gain.gain.value=
0;preGain.connect(gain);gain.startAll=function(time){if(amp._lichType==AUDIO)amp.startAll(time);gain.gain.setValueAtTime(1,time)};gain.stopAll=function(time){if(amp._lichType==AUDIO)amp.stopAll(time);gain.gain.setValueAtTime(0,time);setTimeout(function(){violetFunc.disconnect();gain.disconnect();preGain.disconnect();if(amp._lichType==AUDIO)amp.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("violet",violet);
function brown(amp){var brownFunc=Soliton.context.createScriptProcessor(1024,0,1);var lastOut=0;brownFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){var white=Math.random()*2-1;output[i]=(lastOut+0.02*white)/1.02;lastOut=output[i];output[i]*=3.5}};var preGain=Soliton.context.createGain();preGain.gain.value=0;if(amp._lichType==AUDIO)amp.connect(preGain.gain);else preGain.gain.value=amp;brownFunc.connect(preGain);var gain=Soliton.context.createGain();
gain.gain.value=0;preGain.connect(gain);gain.startAll=function(time){if(amp._lichType==AUDIO)amp.startAll(time);gain.gain.setValueAtTime(1,time)};gain.stopAll=function(time){if(amp._lichType==AUDIO)amp.stopAll(time);gain.gain.setValueAtTime(0,time);setTimeout(function(){brownFunc.disconnect();gain.disconnect();preGain.disconnect();if(amp._lichType==AUDIO)amp.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("brown",brown);
function clipNoise(amp){var clipFunc=Soliton.context.createScriptProcessor(1024,0,1);clipFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++)output[i]=Math.random()>0.5?1:-1};var preGain=Soliton.context.createGain();preGain.gain.value=0;if(amp._lichType==AUDIO)amp.connect(preGain.gain);else preGain.gain.value=amp;clipFunc.connect(preGain);var gain=Soliton.context.createGain();gain.gain.value=0;preGain.connect(gain);gain.startAll=function(time){if(amp._lichType==
AUDIO)amp.startAll(time);gain.gain.setValueAtTime(1,time)};gain.stopAll=function(time){if(amp._lichType==AUDIO)amp.stopAll(time);gain.gain.setValueAtTime(0,time);setTimeout(function(){clipFunc.disconnect();gain.disconnect();preGain.disconnect();if(amp._lichType==AUDIO)amp.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("clipNoise",clipNoise);
function impulse(freq){var inputs=freq._lichType==AUDIO?1:0;var ugenFunc=Soliton.context.createScriptProcessor(1024,inputs,1);var samplesPerCycle=1;var counter=0;if(inputs==0){samplesPerCycle=Soliton.context.sampleRate/freq;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){if(counter>=samplesPerCycle){counter-=samplesPerCycle;output[i]=1}else output[i]=0;++counter}}}else ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);
var input=e.inputBuffer.getChannelData(0);for(var i=0;i<1024;i++){samplesPerCycle=Soliton.context.sampleRate/Math.max(input[i],0.001);if(counter>=samplesPerCycle){counter-=samplesPerCycle;output[i]=1}else output[i]=0;++counter}};if(freq._lichType==AUDIO)freq.connect(ugenFunc);var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);if(freq._lichType==AUDIO)freq.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,
time+0.1);if(freq._lichType==AUDIO)freq.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("impulse",impulse);
function noiseN(freq){var inputs=freq._lichType==AUDIO?1:0;var ugenFunc=Soliton.context.createScriptProcessor(1024,inputs,1);var samplesPerCycle=1;var counter=0;var currentSample=0;if(inputs==0){samplesPerCycle=Soliton.context.sampleRate/freq;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){if(counter>=samplesPerCycle){counter-=samplesPerCycle;currentSample=Math.random()*2-1}++counter;output[i]=currentSample}}}else ugenFunc.onaudioprocess=function(e){var output=
e.outputBuffer.getChannelData(0);var input=e.inputBuffer.getChannelData(0);for(var i=0;i<1024;i++){samplesPerCycle=Soliton.context.sampleRate/Math.max(input[i],0.001);if(counter>=samplesPerCycle){counter-=samplesPerCycle;currentSample=Math.random()*2-1}++counter;output[i]=currentSample}};if(freq._lichType==AUDIO)freq.connect(ugenFunc);var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);if(freq._lichType==AUDIO)freq.startAll(time)};
gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);if(freq._lichType==AUDIO)freq.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("noiseN",noiseN);
function noiseL(freq){var inputs=freq._lichType==AUDIO?1:0;var ugenFunc=Soliton.context.createScriptProcessor(1024,inputs,1);var samplesPerCycle=1;var counter=0;var currentSample=0;var slope=0;var nSample=Math.random()*2-1;var dSample=nSample-currentSample;var frac=0;if(inputs==0){samplesPerCycle=Soliton.context.sampleRate/freq;slope=1/samplesPerCycle;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){if(counter>=samplesPerCycle){counter-=samplesPerCycle;
currentSample=nSample;nSample=Math.random()*2-1;frac=0;dSample=nSample-currentSample}++counter;output[i]=currentSample+dSample*frac;frac+=slope}}}else ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var input=e.inputBuffer.getChannelData(0);for(var i=0;i<1024;i++){samplesPerCycle=Soliton.context.sampleRate/Math.max(input[i],0.001);if(counter>=samplesPerCycle){counter-=samplesPerCycle;counter=Math.max(0,counter);currentSample=nSample;nSample=Math.random()*2-1;dSample=
nSample-currentSample}output[i]=currentSample+dSample*(counter/samplesPerCycle);++counter}};if(freq._lichType==AUDIO)freq.connect(ugenFunc);var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);if(freq._lichType==AUDIO)freq.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);if(freq._lichType==AUDIO)freq.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect()},(time-
Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("noiseL",noiseL);
function noiseX(freq){var inputs=freq._lichType==AUDIO?1:0;var ugenFunc=Soliton.context.createScriptProcessor(1024,inputs,1);var samplesPerCycle=1;var counter=2;var currentSample=0;var slope=1;var nSample=Math.random()*2-1;var dSample=nSample-currentSample;var frac=0;var curve=0;if(inputs==0){samplesPerCycle=Soliton.context.sampleRate/Math.max(freq,0.001);slope=1/samplesPerCycle;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){if(counter>=samplesPerCycle){counter-=
samplesPerCycle;counter=Math.max(0,counter);currentSample=nSample;nSample=Math.random()*2-1;dSample=nSample-currentSample}output[i]=currentSample+dSample*_linexp(counter,0,samplesPerCycle,1E-5,1);++counter}}}else ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var input=e.inputBuffer.getChannelData(0);for(var i=0;i<1024;i++){samplesPerCycle=Soliton.context.sampleRate/Math.max(input[i],0.001);if(counter>=samplesPerCycle){counter-=samplesPerCycle;counter=Math.max(0,counter);
currentSample=nSample;nSample=Math.random()*2-1;dSample=nSample-currentSample}output[i]=currentSample+dSample*_linexp(counter,0,samplesPerCycle,1E-5,1);++counter}};if(freq._lichType==AUDIO)freq.connect(ugenFunc);var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);if(freq._lichType==AUDIO)freq.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);if(freq._lichType==AUDIO)freq.stopAll(time);
setTimeout(function(){ugenFunc.disconnect();gain.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("noiseX",noiseX);
function dust(density){var inputs=density._lichType==AUDIO?1:0;var ugenFunc=Soliton.context.createScriptProcessor(1024,inputs,1);var threshold=0;var scale=1;var sampleDur=1/Soliton.context.sampleRate;if(inputs==0){threshold=density*sampleDur;scale=threshold>0?2/threshold:0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){var n=Math.random();if(n<threshold)output[i]=n*scale-1;else output[i]=0}}}else ugenFunc.onaudioprocess=function(e){var output=
e.outputBuffer.getChannelData(0);var input=e.inputBuffer.getChannelData(0);for(var i=0;i<1024;i++){samplesPerCycle=Soliton.context.sampleRate/Math.max(input[i],0.001);if(counter>=samplesPerCycle){counter-=samplesPerCycle;currentSample=Math.random()*2-1}++counter;output[i]=currentSample}};if(density._lichType==AUDIO)density.connect(ugenFunc);var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);if(density._lichType==
AUDIO)density.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);if(density._lichType==AUDIO)density.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("dust",dust);
function slope(value1,value2,time){if(typeof value1!=="number"||typeof value2!=="number"||typeof time!=="number")throw new Error("line instantiated with a non-number argument. line can only be used with numbers.");var ugenFunc=Soliton.context.createScriptProcessor(1024,0,1);var currentSample=value1;var timeSamples=time*Soliton.context.sampleRate;var sl=(value2-value1)/timeSamples;var counter=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){output[i]=
currentSample;if(counter<timeSamples){currentSample+=sl;++counter}else currentSample=value2}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);gain.startAll=function(time){gain.gain.setValueAtTime(1,time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);setTimeout(function(){ugenFunc.disconnect();gain.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("slope",slope);
function slopeX(value1,value2,time){if(typeof value1!=="number"||typeof value2!=="number"||typeof time!=="number")throw new Error("line instantiated with a non-number argument. line can only be used with numbers.");var ugenFunc=Soliton.context.createScriptProcessor(1024,0,1);var currentSample=value1;var timeSamples=time*Soliton.context.sampleRate;var sl=0;var counter=0;var grow=0;if(time!=0){sl=timeSamples+0.5;grow=Math.pow(value2/value1,1/sl)}ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);
for(var i=0;i<1024;i++){output[i]=currentSample;if(counter<timeSamples){currentSample*=grow;++counter}else currentSample=value2}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);gain.startAll=function(time){gain.gain.setValueAtTime(1,time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);setTimeout(function(){ugenFunc.disconnect();gain.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("slopeX",slopeX);
function toggle(input){if(input._lichType!=AUDIO)throw new Error("toggle can only be used with audio ugens.");var ugenFunc=Soliton.context.createScriptProcessor(1024,1,1);var prevVal=0;var curVal=0;var level=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);for(var i=0;i<1024;i++){if(prevVal<=0&&inputArray[i]>0)level=1-level;prevVal=inputArray[i];output[i]=level}};var gain=Soliton.context.createGain();gain.gain.value=0;
ugenFunc.connect(gain);input.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);input.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);input.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("toggle",toggle);
function latch(trig,input){if(input._lichType!=AUDIO||trig._lichType!=AUDIO)throw new Error("latch can only be used with audio ugens.");var ugenFunc=Soliton.context.createScriptProcessor(1024,2,1);var prevVal=0;var curVal=0;var level=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);var triggerArray=e.inputBuffer.getChannelData(1);for(var i=0;i<1024;i++){if(prevVal<=0&&triggerArray[i]>0)level=inputArray[i];prevVal=triggerArray[i];
output[i]=level}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";input.connect(merger,0,0);trig.connect(merger,0,1);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);input.startAll(time);trig.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);input.stopAll(time);trig.stopAll(time);setTimeout(function(){ugenFunc.disconnect();
gain.disconnect();merger.disconnect();input.disconnect();trig.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("latch",latch);
function gate(trig,input){if(input._lichType!=AUDIO||trig._lichType!=AUDIO)throw new Error("gate can only be used with audio ugens.");var ugenFunc=Soliton.context.createScriptProcessor(1024,2,1);var prevVal=0;var curVal=0;var level=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);var triggerArray=e.inputBuffer.getChannelData(1);for(var i=0;i<1024;i++){if(triggerArray[i]>0)level=inputArray[i];else level=0;prevVal=triggerArray[i];
output[i]=level}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";input.connect(merger,0,0);trig.connect(merger,0,1);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);input.startAll(time);trig.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);input.stopAll(time);trig.stopAll(time);setTimeout(function(){ugenFunc.disconnect();
gain.disconnect();merger.disconnect();input.disconnect();trig.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("gate",gate);
function divider(div,input){if(input._lichType!=AUDIO)throw new Error("divider can only be used with audio ugens.");if(typeof div==="number")dc(div,function(divRes){div=divRes});var ugenFunc=Soliton.context.createScriptProcessor(1024,2,1);var counter=0;var level=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);var divArray=e.inputBuffer.getChannelData(1);for(var i=0;i<1024;i++){if(counter>divArray[i]){level=inputArray[i];
counter=0}else counter++;output[i]=level}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";input.connect(merger,0,0);div.connect(merger,0,1);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);input.startAll(time);div.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);input.stopAll(time);div.stopAll(time);setTimeout(function(){ugenFunc.disconnect();
gain.disconnect();merger.disconnect();input.disconnect();div.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("divider",divider);
function trigDivider(div,input){if(input._lichType!=AUDIO)throw new Error("trigDivider can only be used with audio ugens.");if(typeof div==="number")dc(div,function(divRes){div=divRes});var ugenFunc=Soliton.context.createScriptProcessor(1024,2,1);var counter=0;var prevVal=0;var level=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);var divArray=e.inputBuffer.getChannelData(1);for(var i=0;i<1024;i++){if(prevVal<=0&&inputArray[i]>
0)counter++;prevVal=inputArray[i];if(counter>=divArray[i]){level=1;counter=0}else level=0;output[i]=level}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";input.connect(merger,0,0);div.connect(merger,0,1);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);input.startAll(time);div.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,
time+0.1);input.stopAll(time);div.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();merger.disconnect();input.disconnect();div.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("trigDivider",trigDivider);
function select(inputArray,index){if(typeof index==="number")dc(index,function(indexRes){index=indexRes});if(!(inputArray instanceof Array)||index._lichType!=AUDIO)throw new Error("select can only be used as: select index array.");if(inputArray.length==0)throw new Error("select array length must be larger than 1");var ugenFunc=Soliton.context.createScriptProcessor(1024,inputArray.length+1,1);ugenFunc.numInputs=inputArray.length;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);
var index=e.inputBuffer.getChannelData(0);var currentBuffer=e.inputBuffer.getChannelData(1);var currentBufferNum=0;for(var i=0;i<1024;i++){var n=Math.min(this.numInputs-1,Math.max(0,Math.floor(index[i])));if(n!=currentBufferNum){currentBuffer=e.inputBuffer.getChannelData(n+1);currentBufferNum=n}output[i]=currentBuffer[i]}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(inputArray.length+1);merger.channelInterpretation=
"discrete";index.connect(merger,0,0);for(var i=0;i<inputArray.length;++i)inputArray[i].connect(merger,0,i+1);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);index.startAll(time);for(var i=0;i<inputArray.length;++i)inputArray[i].startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);index.stopAll(time);for(var i=0;i<inputArray.length;++i)inputArray[i].stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();merger.disconnect();
for(var i=0;i<inputArray.length;++i)inputArray[i].disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("select",select);
function stepper(min,max,step,trig){if(trig._lichType!=AUDIO)throw new Error("stepper can only be used as: stepper number number number ugen");if(typeof min!=="number"||typeof max!=="number"||typeof step!=="number")throw new Error("stepper can only be used as: stepper number number number ugen");var ugenFunc=Soliton.context.createScriptProcessor(1024,1,1);var prevVal=0;var counter=0;var count=Math.floor((max-min)/step);var level=min;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);
var trigArray=e.inputBuffer.getChannelData(0);for(var i=0;i<1024;i++){if(prevVal<=0&&trigArray[i]>0){level+=step;if(++counter>=count){level=min;counter=0}}prevVal=trigArray[i];output[i]=level}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);trig.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);trig.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);trig.stopAll(time);setTimeout(function(){ugenFunc.disconnect();
gain.disconnect();trig.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("stepper",stepper);
function timer(trig){if(trig._lichType!=AUDIO)throw new Error("timer can only be used with a ugen trigger input.");var ugenFunc=Soliton.context.createScriptProcessor(1024,1,1);ugenFunc.lastTime=Soliton.context.currentTime;var level=0;var prevVal=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var trigArray=e.inputBuffer.getChannelData(0);for(var i=0;i<1024;i++){if(prevVal<=0&&trigArray[i]>0){var time=Soliton.context.currentTime;level=time-this.lastTime;this.lastTime=
time}prevVal=trigArray[i];output[i]=level}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);trig.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);ugenFunc.lastTime=time;trig.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);trig.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();trig.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}
_createUGen("timer",timer);
function sweep(sweepRate,trig){if(trig._lichType!=AUDIO)throw new Error("sweep can only be used with a ugen trigger input.");if(typeof sweepRate==="number")sweepRate=dc(sweepRate);if(sweepRate._lichType!=AUDIO)throw new Error("sweep rate can only be a number or ugen.");var ugenFunc=Soliton.context.createScriptProcessor(1024,2,1);var level=0;var prevVal=0;var sampleDur=1/Soliton.context.sampleRate;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var trigArray=e.inputBuffer.getChannelData(0);
var rateArray=e.inputBuffer.getChannelData(1);for(var i=0;i<1024;i++){if(prevVal<=0&&trigArray[i]>0)level=0;prevVal=trigArray[i];output[i]=level;level+=rateArray[i]*sampleDur}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";trig.connect(merger,0,0);sweepRate.connect(merger,0,1);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);trig.startAll(time);
sweepRate.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);trig.stopAll(time);sweepRate.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();trig.disconnect();sweepRate.disconnect();merger.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("sweep",sweep);
function phasor(min,max,rate){if(typeof min==="number")min=dc(min);if(typeof max==="number")max=dc(max);if(typeof rate==="number")rate=dc(rate);if(rate._lichType!=AUDIO||min._lichType!=AUDIO||max._lichType!=AUDIO)throw new Error("phasor can only be used with numbers or ugens.");var ugenFunc=Soliton.context.createScriptProcessor(1024,3,1);var level=0;var prevVal=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var minArray=e.inputBuffer.getChannelData(0);var maxArray=
e.inputBuffer.getChannelData(1);var rateArray=e.inputBuffer.getChannelData(2);for(var i=0;i<1024;i++){if(maxArray[i]>minArray[i])level=_wrap(level,minArray[i],maxArray[i]);else level=_wrap(level,maxArray[i],minArray[i]);output[i]=level;level+=rateArray[i]}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(3);merger.channelInterpretation="discrete";min.connect(merger,0,0);max.connect(merger,0,1);rate.connect(merger,0,2);merger.connect(ugenFunc);
gain.startAll=function(time){gain.gain.setValueAtTime(1,time);min.startAll(time);max.startAll(time);rate.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);min.stopAll(time);max.stopAll(time);rate.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();min.disconnect();max.disconnect();rate.disconnect();merger.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("phasor",phasor);
function poll(input){if(input._lichType!=AUDIO)throw new Error("timer can only be used with a ugen trigger input.");var ugenFunc=Soliton.context.createScriptProcessor(1024,1,1);var level=0;var prevVal=0;var counter=0;var dur=0.1*Soliton.context.sampleRate;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);for(var i=0;i<1024;i++){if(++counter>=dur){Lich.post(inputArray[i]);counter=0}output[i]=inputArray[i]}};var gain=Soliton.context.createGain();
gain.gain.value=0;ugenFunc.connect(gain);input.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);ugenFunc.lastTime=time;input.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);input.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();input.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("poll",poll);
function crackle(param){if(typeof param==="number")param=dc(param);if(param._lichType!=AUDIO)throw new Error("crackle can only be used with a ugens and numbers.");var ugenFunc=Soliton.context.createScriptProcessor(1024,1,1);var level=0;var y0=0;var y1=Math.random();var y2=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);for(var i=0;i<1024;i++){output[i]=y0=Math.abs(y1*inputArray[i]-y2-0.05);y2=y1;y1=y0}};var gain=Soliton.context.createGain();
gain.gain.value=0;ugenFunc.connect(gain);param.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);ugenFunc.lastTime=time;param.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);param.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();param.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("crackle",crackle);
function trand(min,max,trig){if(typeof min==="number")min=dc(min);if(typeof max==="number")max=dc(max);if(typeof trig==="number")trig=dc(trig);if(trig._lichType!=AUDIO||min._lichType!=AUDIO||max._lichType!=AUDIO)throw new Error("phasor can only be used with numbers or ugens.");var ugenFunc=Soliton.context.createScriptProcessor(1024,3,1);var level=0;var prevVal=0;var range=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var minArray=e.inputBuffer.getChannelData(0);
var maxArray=e.inputBuffer.getChannelData(1);var trigArray=e.inputBuffer.getChannelData(2);for(var i=0;i<1024;i++){if(prevVal<=0&&trigArray[i]>0){range=maxArray[i]-minArray[i];level=Math.random()*range+minArray[i]}prevVal=trigArray[i];output[i]=level}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(3);merger.channelInterpretation="discrete";min.connect(merger,0,0);max.connect(merger,0,1);trig.connect(merger,0,2);merger.connect(ugenFunc);
gain.startAll=function(time){gain.gain.setValueAtTime(1,time);min.startAll(time);max.startAll(time);trig.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);min.stopAll(time);max.stopAll(time);trig.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();min.disconnect();max.disconnect();trig.disconnect();merger.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("trand",trand);
function trandX(min,max,trig){if(typeof min==="number")min=dc(min);if(typeof max==="number")max=dc(max);if(typeof trig==="number")trig=dc(trig);if(trig._lichType!=AUDIO||min._lichType!=AUDIO||max._lichType!=AUDIO)throw new Error("phasor can only be used with numbers or ugens.");var ugenFunc=Soliton.context.createScriptProcessor(1024,3,1);var level=0;var prevVal=0;var range=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var minArray=e.inputBuffer.getChannelData(0);
var maxArray=e.inputBuffer.getChannelData(1);var trigArray=e.inputBuffer.getChannelData(2);for(var i=0;i<1024;i++){if(prevVal<=0&&trigArray[i]>0){range=maxArray[i]-minArray[i];level=_linexp(Math.random(),0,1,1E-4,1);level=level*range+minArray[i]}prevVal=trigArray[i];output[i]=level}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(3);merger.channelInterpretation="discrete";min.connect(merger,0,0);max.connect(merger,0,1);
trig.connect(merger,0,2);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);min.startAll(time);max.startAll(time);trig.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);min.stopAll(time);max.stopAll(time);trig.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();min.disconnect();max.disconnect();trig.disconnect();merger.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}
_createUGen("trandX",trandX);
function coinGate(probability,trig){if(trig._lichType!=AUDIO)throw new Error("coinGate can only be used with a ugen trigger input.");if(typeof probability==="number")probability=dc(probability);if(probability._lichType!=AUDIO)throw new Error("coinGate probability can only be a number or ugen.");var ugenFunc=Soliton.context.createScriptProcessor(1024,2,1);var level=0;var prevVal=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var trigArray=e.inputBuffer.getChannelData(0);
var probArray=e.inputBuffer.getChannelData(1);for(var i=0;i<1024;i++){if(prevVal<=0&&trigArray[i]>0)if(Math.random()<probArray[i])level=1;else level=0;else level=0;prevVal=trigArray[i];output[i]=level}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";trig.connect(merger,0,0);probability.connect(merger,0,1);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,
time);trig.startAll(time);probability.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);trig.stopAll(time);probability.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();trig.disconnect();probability.disconnect();merger.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("coinGate",coinGate);
Soliton.simplexNoisePerm=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,
38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180,151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,
30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,
248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180];Soliton.simplexGrad1=function(hash,x){var h=hash&15;var grad=1+(h&7);if(h&8)grad=-grad;return grad*x};
function simplex(freq){if(typeof freq!=="number")throw new Error("simplex frequency must be a number.");var simplexFunc=Soliton.context.createScriptProcessor(1024,0,1);var x=0;var increment=freq*(1/Soliton.context.sampleRate);simplexFunc.onaudioprocess=function(event){var output=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;i++){x+=increment;var i0=Math.floor(x);var i1=i0+1;var x0=x-i0;var x1=x0-1;var n0,n1;var t0=1-x0*x0;t0*=t0;n0=t0*t0*Soliton.simplexGrad1(Soliton.simplexNoisePerm[i0&
255],x0);var t1=1-x1*x1;t1*=t1;n1=t1*t1*Soliton.simplexGrad1(Soliton.simplexNoisePerm[i1&255],x1);output[i]=0.395*(n0+n1)}};var gain=Soliton.context.createGain();gain.gain.value=0;simplexFunc.connect(gain);gain.startAll=function(time){gain.gain.setValueAtTime(1,time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);setTimeout(function(){simplexFunc.disconnect();gain.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("simplex",simplex);
var zeroBlock=new Float32Array(2048);var delayBlocks=[new Float32Array(2048),new Float32Array(2048),new Float32Array(2048),new Float32Array(2048),new Float32Array(2048),new Float32Array(2048),new Float32Array(2048),new Float32Array(2048),new Float32Array(2048),new Float32Array(2048)];function allocDelayBlock(){if(delayBlocks.length==0){var block=new Float32Array(2048);return block}else return delayBlocks.pop()}
function freeDelayBlock(block){if(delayBlocks.length<10){block.set(zeroBlock);delayBlocks.push(block)}else block=null}function cubicinterp(x,y0,y1,y2,y3){var c0=y1;var c1=0.5*(y2-y0);var c2=y0-2.5*y1+2*y2-0.5*y3;var c3=0.5*(y3-y0)+1.5*(y1-y2);return((c3*x+c2)*x+c1)*x+c0}function _calcFeedBack(delayTime,decayTime){if(delayTime==0||decayTime==0)return 0;if(decayTime>0)return Math.exp(_log001*delayTime/decayTime);else return-Math.exp(_log001*delayTime/-decayTime)}
function pluck(freq,decayTime,coeff,input){if(typeof freq!=="number"||typeof decayTime!=="number"||typeof coeff!=="number")throw new Error("pluck freq, decayTime, and coeff can only be numbers.");if(input._lichType!=AUDIO)throw new Error("pluck input is not an audio ugen.");var ugenFunc=Soliton.context.createScriptProcessor(1024,1,1);var memory=allocDelayBlock();var mask=memory.length-1;var writePhase=0;var onepole=0;var lastSample=0;var samplerate=Soliton.context.sampleRate;var minusAbsCoeff=1-Math.abs(coeff);
var readOffset=0;var readFrac=0;var delayTime=0;var feedBackLevel=0;if(freq!=0){delayTime=1/freq*samplerate;readOffset=~~delayTime;readFrac=delayTime-readOffset;feedBackLevel=_calcFeedBack(delayTime,decayTime*samplerate)}else{delayTime=0;readOffset=0;readFrac=0;feedBackLevel=0}ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);for(var i=0;i<1024;i++){onepole=minusAbsCoeff*memory[writePhase-readOffset&mask]+coeff*lastSample;
memory[writePhase]=inputArray[i]+feedBackLevel*onepole;output[i]=lastSample=onepole;writePhase=writePhase+1&mask}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);input.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);input.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time);input.stopAll(time);setTimeout(function(){freeDelayBlock(memory);memory=null;ugenFunc.disconnect();gain.disconnect();input.disconnect()},(time-
Soliton.context.currentTime)*1E3)};gain._lichType=AUDIO;return gain}_createUGen("pluck",pluck);function sin(freq){return Soliton.createOscillatorNode("sine",freq)}_createUGen("sin",sin);function tri(freq){return Soliton.createOscillatorNode("triangle",freq)}_createUGen("tri",tri);function square(freq){return Soliton.createOscillatorNode("square",freq)}_createUGen("square",square);function saw(freq){return Soliton.createOscillatorNode("sawtooth",freq)}_createUGen("saw",saw);
function waveTable(freq,table){return Soliton.createOscillatorNode("custom",freq,new Float32Array(table))}_createUGen("waveTable",waveTable);function shaper(shape,input){var shaper=Soliton.context.createWaveShaper();shaper.oversample="2x";input.connect(shaper);shaper.curve=new Float32Array(shape);shaper.startAll=input.startAll;shaper.stopAll=input.stopAll;shaper._lichType=AUDIO;return shaper}_createUGen("shaper",shaper);
function chebyshev(size,amplitudes){size=Math.floor(size);var buf=[];for(var i=0;i<size;++i)buf.push(0);for(var i=0;i<amplitudes.length;++i){var amp=amplitudes[i];if(amp==0)continue;var w=2/size;var phase=-1;var partial=i+1;var offset=-amp*Math.cos(partial*twoPi);for(var j=0;j<size;++j){buf[j]+=amp*Math.cos(partial*Math.acos(phase))-offset;phase+=w}}var max=0;for(var i=0;i<buf.length;++i){var absa=Math.abs(buf[i]);if(absa>max)max=absa}if(max!=0&&max!=1){var ampf=1/max;for(var i=0;i<buf.length;++i)buf[i]*=
ampf}return buf}
function distortion2(amt,input){if(input._lichType!=AUDIO)throw new Error("distortion2 can only be used with audio ugens.");if(typeof amt==="number")amt=dc(amt);var ugenFunc=Soliton.context.createScriptProcessor(1024,2,1);ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);var amtArray=e.inputBuffer.getChannelData(1);for(var i=0;i<1024;++i)output[i]=Math.sin(inputArray[i]*(1+amtArray[i]*100))};var gain=Soliton.context.createGain();gain.gain.value=
0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";input.connect(merger,0,0);amt.connect(merger,0,1);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);input.startAll(time);amt.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);input.stopAll(time);amt.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();merger.disconnect();input.disconnect();amt.disconnect()},
(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("distortion2",distortion2);
function distortion(amt,input){if(input._lichType!=AUDIO)throw new Error("distortion2 can only be used with audio ugens.");if(typeof amt==="number")amt=dc(amt);var ugenFunc=Soliton.context.createScriptProcessor(1024,2,1);ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);var amtArray=e.inputBuffer.getChannelData(1);for(var i=0;i<1024;++i){var sample=inputArray[i]*(1+amtArray[i]*300);output[i]=sample/(1+Math.abs(sample))}};
var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";input.connect(merger,0,0);amt.connect(merger,0,1);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);input.startAll(time);amt.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);input.stopAll(time);amt.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();
merger.disconnect();input.disconnect();amt.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("distortion",distortion);
function gain(input1,input2){var isAudio1=input1._lichType==AUDIO;var isAudio2=input2._lichType==AUDIO;var gainNode=Soliton.context.createGain();gainNode.gain.value=0;if(isAudio1&&isAudio2){input1.connect(gainNode.gain);input2.connect(gainNode)}else if(isAudio1&&!isAudio2){gainNode.gain.value=input2;input1.connect(gainNode)}else if(!isAudio1&&isAudio2){gainNode.gain.value=input1;input2.connect(gainNode)}else throw new Error("gain can only be used with at least one audio source.");gainNode.startAll=
function(time){if(input1._lichType==AUDIO)input1.startAll(time);if(input2._lichType==AUDIO)input2.startAll(time)};gainNode.stopAll=function(time){if(input1._lichType==AUDIO)input1.stopAll(time);if(input2._lichType==AUDIO)input2.stopAll(time)};gainNode._lichType=AUDIO;return gainNode}_createUGen("gain",gain);
function _subtractMix(input1,input2){var resGain=Soliton.context.createGain();resGain.gain.value=1;if(typeof input1==="number")input1=dc(input1);input1.connect(resGain);if(typeof input2==="number")input2=dc(input2);var subtractGain=Soliton.context.createGain();subtractGain.gain.value=-1;input2.connect(subtractGain);subtractGain.connect(resGain);resGain._lichType=AUDIO;resGain.startAll=function(time){input1.startAll(time);input2.startAll(time)};resGain.stopAll=function(time){input1.stopAll(time);input2.stopAll(time)};
return resGain}
function delay(delayTime,feedbackLevel,input){var ins=[delayTime,feedbackLevel,input];var mix=Soliton.context.createGain();var feedBack=Soliton.context.createGain();if(feedbackLevel._lichType==AUDIO)feedbackLevel.connect(feedBack.gain);else feedBack.gain.value=feedbackLevel;var delay=Soliton.context.createDelay();if(delayTime._lichType==AUDIO)delayTime.connect(delay.delayTime);else delay.delayTime.value=delayTime;input.connect(delay);input.connect(mix);delay.connect(mix);delay.connect(feedBack);feedBack.connect(delay);
mix.startAll=function(time){ins.map(function(elem){if(elem._lichType==AUDIO)elem.startAll(time)})};mix.stopAll=function(time){ins.map(function(elem){if(elem._lichType==AUDIO)elem.stopAll(time)});setTimeout(function(){ins.map(function(elem){if(elem._lichType==AUDIO)elem.disconnect(0);feedBack.disconnect(0);delay.disconnect(0)})},(time-Soliton.context.currentTime)*1E3)};mix._lichType=AUDIO;return mix}_createUGen("delay",delay);
function channelExpand(target,input){Lich.post("CHANNEL EXPAND!!!!!!!!!!");var channels=[];var merger=Soliton.context.createChannelMerger(input.channelCount);var connections=[];merger._lichType=AUDIO;merger.startAll=function(time){input.startAll(time)};merger.stopAll=function(time){input.stopAll(time);setTimeout(function(){input.disconnect();merger.disconnect();for(var i=0;i<connections.length;++i){channels[i].disconnect();connections[i].stopAll(time);connections[i].disconnect()}},(time-Soliton.context.currentTime)*
1E3)};for(var i=0;i<input.channelCount;++i){var channel=Soliton.context.createGain();channel.startAll=function(){};channel.stopAll=function(){};channel._lichType=AUDIO;input.connect(channel,i,0);channels.push(channel);Lich.post("channel.channelCount: "+channel.channelCount);var connection=target.curry(channel);connection.connect(merger,0,i)}return merger}
function compressor(threshold,knee,ratio,attack,release,input){if(input._lichType!=AUDIO)throw new Error("compressor can only be used with audio ugens.");var compr=Soliton.context.createDynamicsCompressor();compr.threshold.value=threshold;compr.knee.value=knee;compr.ratio.value=ratio;compr.attack.value=attack;compr.release.value=release;input.connect(compr);compr.startAll=function(time){input.startAll(time)};compr._lichType=AUDIO;compr.stopAll=function(time){input.stopAll(time);setTimeout(function(){input.disconnect(0)},
(time-Soliton.context.currentTime)*1E3)};return compr}_createUGen("compressor",compressor);
function limiter(threshold,input){var compr=Soliton.context.createDynamicsCompressor();compr.threshold.value=threshold;compr.ratio.value=20;Soliton.limiter.attack.value=0.003;Soliton.limiter.release.value=0.003;input.connect(compr);compr.startAll=function(time){input.startAll(time)};compr._lichType=AUDIO;compr.stopAll=function(time){input.stopAll(time);setTimeout(function(){input.disconnect(0)},(time-Soliton.context.currentTime)*1E3)};return compr}_createUGen("limiter",limiter);
function pan(position,input){if(typeof position!=="number")throw new Error("Panning position can only be a number.");var panner=Soliton.context.createPanner();panner.panningModel="equalpower";panner._lichType=AUDIO;var xd=position*90;var zd=xd+90;if(zd>90)zd=180-zd;var x=Math.sin(xd*Math.PI/180);var z=Math.sin(zd*Math.PI/180);panner.setPosition(x,0,z);input.connect(panner);panner.startAll=function(time){input.startAll(time)};panner.stopAll=function(time){input.stopAll(time);setTimeout(function(){input.disconnect(0)},
(time-Soliton.context.currentTime)*1E3)};return panner}_createUGen("pan",pan);_createUGen("pan",pan);
function mix2(input1,input2){if(typeof input1==="number")input1=dc(input1);if(typeof input2==="number")input2=dc(input2);var mix=Soliton.context.createGain();input1.connect(mix);input2.connect(mix);mix.startAll=function(time){input1.startAll(time);input2.startAll(time)};mix.stopAll=function(time){input1.stopAll(time);input2.stopAll(time);setTimeout(function(){input1.disconnect();input2.disconnect();mix.disconnect()},(time-Soliton.context.currentTime)*1E3)};mix._lichType=AUDIO;return mix}
_createUGen("mix2",mix2);function range(low,high,input){if(typeof low!=="number"||typeof high!=="number")throw new Error("range low and high values can only be numbers. It is not modulatable.");if(input._lichType!=AUDIO)throw new Error("range can only be used with audio ugens.");var mulVal=(high-low)*0.5;var addVal=mulVal+low;return mix2(addVal,gain(mulVal,input))}_createUGen("range",range);
Soliton.linexpUGen=function(inMin,inMax,outMin,outMax){var outRatio=outMax/outMin;var inRatio=1/(inMax-inMin);var minusLow=inRatio*-inMin;return function(event){var inputArray=event.inputBuffer.getChannelData(0);var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;++i)outputArray[i]=outMin*Math.pow(outRatio,inputArray[i]*inRatio+minusLow)}};
function exprange(low,high,input){var rangeFunc=Soliton.context.createScriptProcessor(1024,1,1);rangeFunc.onaudioprocess=Soliton.linexpUGen(-1,1,low,high);rangeFunc.startAll=input.startAll;rangeFunc._lichType=AUDIO;input.connect(rangeFunc);rangeFunc.stopAll=function(time){input.stopAll(time);setTimeout(function(){input.disconnect(0)},(time-Soliton.context.currentTime)*1E3)};return rangeFunc}
Soliton.divisionUGen=function(event){var inputArray1=event.inputBuffer.getChannelData(0);var inputArray2=event.inputBuffer.getChannelData(1);var outputArrayL=event.outputBuffer.getChannelData(0);Lich.post(inputArray2[0]);for(var i=0;i<1024;++i)if(inputArray2[i]==0)outputArrayL[i]=0;else outputArrayL[i]=inputArray1[i]/inputArray2[i]};
function _audioDivision(input1,input2){if(typeof input1==="number")input1=dc(input1);if(typeof input2==="number")input2=dc(input2);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";var divisionFunc=Soliton.context.createScriptProcessor(1024,2,2);divisionFunc.onaudioprocess=function(event){var inputArray1=event.inputBuffer.getChannelData(0);var inputArray2=event.inputBuffer.getChannelData(1);var outputArrayL=event.outputBuffer.getChannelData(0);for(var i=0;i<
1024;++i)if(inputArray2[i]==0)outputArrayL[i]=0;else outputArrayL[i]=inputArray1[i]/inputArray2[i]};divisionFunc.startAll=function(time){input2.startAll(time);input1.startAll(time)};divisionFunc.stopAll=function(time){input1.stopAll(time);input2.stopAll(time);setTimeout(function(){input1.disconnect(0);input2.disconnect(0);merger.disconnect();divisionFunc.disconnect()},(time-Soliton.context.currentTime)*1E3)};divisionFunc._lichType=AUDIO;input1.connect(merger,0,0);input2.connect(merger,0,1);merger.connect(divisionFunc);
return divisionFunc}var _log001=Math.log(0.001);var _slopeFactor=1/1024;function _calcSlope(next,prev){return(next-prev)*_slopeFactor}
function lag(lagTime,input){if(input._lichType!=AUDIO)throw new Error("trigDivider can only be used with audio ugens.");if(typeof lagTime==="number")lagTime=dc(lagTime);var ugenFunc=Soliton.context.createScriptProcessor(1024,2,1);var counter=0;var level=0;var b1=0;var mb1=0;var b1Slope=0;var currentLag=0;var y1=0;var y0=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);var lagArray=e.inputBuffer.getChannelData(1);b1=mb1;
if(currentLag==lagArray[0])for(var i=0;i<1024;++i){y0=inputArray[i];output[i]=y1=y0+b1*(y1-y0)}else{currentLag=lagArray[0];mb1=currentLag==0?0:Math.exp(_log001/(currentLag*Soliton.context.sampleRate));b1Slope=_calcSlope(mb1,b1);for(var i=0;i<1024;i++){b1+=b1Slope;y0=inputArray[i];output[i]=y1=y0+b1*(y1-y0)}}if(isNaN(y1)||y1==Infinity)y1=0};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";
input.connect(merger,0,0);lagTime.connect(merger,0,1);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);input.startAll(time);lagTime.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);input.stopAll(time);lagTime.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();merger.disconnect();input.disconnect();lagTime.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}
_createUGen("lag",lag);
function integrator(coeff,input){if(input._lichType!=AUDIO)throw new Error("trigDivider can only be used with audio ugens.");if(typeof coeff==="number")coeff=dc(coeff);var ugenFunc=Soliton.context.createScriptProcessor(1024,2,1);var lastOut=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);var coeffArray=e.inputBuffer.getChannelData(1);for(var i=0;i<1024;++i){output[i]=inputArray[i]+coeffArray[i]*lastOut;lastOut=output[i]}};
var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";input.connect(merger,0,0);coeff.connect(merger,0,1);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);input.startAll(time);coeff.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);input.stopAll(time);coeff.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();
merger.disconnect();input.disconnect();coeff.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("integrator",integrator);
function decay(decayTime,input){if(input._lichType!=AUDIO)throw new Error("trigDivider can only be used with audio ugens.");if(typeof decayTime==="number")decayTime=dc(decayTime);var ugenFunc=Soliton.context.createScriptProcessor(1024,2,1);var lastOut=0;var lastDecay=0;var b1=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);var decayArray=e.inputBuffer.getChannelData(1);for(var i=0;i<1024;++i){if(decayArray[i]!=lastDecay){lastDecay=
decayArray[i];b1=lastDecay==0?0:Math.exp(_log001/(lastDecay*Soliton.context.sampleRate))}output[i]=inputArray[i]+b1*lastOut;lastOut=output[i]}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";input.connect(merger,0,0);decayTime.connect(merger,0,1);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);input.startAll(time);decayTime.startAll(time)};
gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);input.stopAll(time);decayTime.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();merger.disconnect();input.disconnect();decayTime.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("decay",decay);
function reson(freq,decayTime,input){if(input._lichType!=AUDIO)throw new Error("trigDivider can only be used with audio ugens.");if(typeof freq==="number")freq=dc(freq);if(typeof decayTime==="number")decayTime=dc(decayTime);var ugenFunc=Soliton.context.createScriptProcessor(1024,3,1);var ffreq=0;var r=0;var twoR=0;var r2=0;var cost=0;var lastfreq=null;var lastDecay=null;var a0=0.5;var b1=0;var b2=0;var b1Next=0;var b2Next=0;var b1Slope=0;var b2Slope=0;var y0=0;var y1=0;var y2=0;var _radiansPerSample=
2*3.141592653589793/Soliton.context.sampleRate;var filterSlope=1/(1024/3);ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var inputArray=e.inputBuffer.getChannelData(0);var freqArray=e.inputBuffer.getChannelData(1);var decayArray=e.inputBuffer.getChannelData(2);if(lastfreq!=freqArray[0]||lastDecay!=decayArray[0]){lastfreq=freqArray[0];lastDecay=decayArray[0];ffreq=lastfreq*_radiansPerSample;r=lastDecay==0?0:Math.exp(_log001/(lastDecay*Soliton.context.sampleRate));twoR=
2*r;r2=r*r;cost=twoR*Math.cos(ffreq)/(1+r2);b1Next=twoR*cost;b2Next=-r2;b1Slope=_calcSlope(b1Next,b1);b2Slope=_calcSlope(b2Next,b2);for(var i=0;i<1024;i++){y0=inputArray[i]+b1*y1+b2*y2;output[i]=a0*(y0-y2);y2=y1;y1=y0;b1+=b1Slope;b2+=b2Slope}}else for(var i=0;i<1024;i++){y0=inputArray[i]+b1*y1+b2*y2;output[i]=a0*(y0-y2);y2=y1;y1=y0}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);var merger=Soliton.context.createChannelMerger(3);merger.channelInterpretation="discrete";
input.connect(merger,0,0);freq.connect(merger,0,1);decayTime.connect(merger,0,2);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);input.startAll(time);freq.startAll(time);decayTime.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);input.stopAll(time);freq.stopAll(time);decayTime.stopAll(time);setTimeout(function(){ugenFunc.disconnect();gain.disconnect();merger.disconnect();input.disconnect();decayTime.disconnect();freq.disconnect()},
(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("reson",reson);
Soliton.createFilter=function(type,freq,input,q,gain){if(input._lichType!=AUDIO)throw new Error("filters can only use audio sources as inputs.");var ins=[freq,input,q,gain];var filter=Soliton.context.createBiquadFilter();input.connect(filter);filter.type=type;if(freq._lichType==AUDIO)freq.connect(filter.frequency);else filter.frequency.value=freq;if(q._lichType==AUDIO)q.connect(filter.Q);else if(typeof q==="number")filter.Q.value=q;if(gain._lichType==AUDIO)gain.connect(filter.gain);else if(typeof gain===
"number")filter.gain.value=gain;filter.startAll=function(time){ins.map(function(elem){if(elem._lichType==AUDIO)elem.startAll(time)})};filter.stopAll=function(time){ins.map(function(elem){if(elem._lichType==AUDIO)elem.stopAll(time)})};filter._lichType=AUDIO;return filter};function lowpass(freq,q,input){return Soliton.createFilter("lowpass",freq,input,q,Lich.VM.Nothing)}_createUGen("lowpass",lowpass);
function highpass(freq,q,input){return Soliton.createFilter("highpass",freq,input,q,Lich.VM.Nothing)}_createUGen("highpass",highpass);function bandpass(freq,q,input){return Soliton.createFilter("bandpass",freq,input,q,Lich.VM.Nothing)}_createUGen("bandpass",bandpass);function lowshelf(freq,boost,input){return Soliton.createFilter("lowshelf",freq,input,Lich.VM.Nothing,boost)}_createUGen("lowshelf",lowshelf);
function highshelf(freq,boost,input){return Soliton.createFilter("highshelf",freq,input,Lich.VM.Nothing,boost)}_createUGen("highshelf",highshelf);function peaking(freq,q,boost,input){return Soliton.createFilter("peaking",freq,input,q,boost)}function notch(freq,q,input){return Soliton.createFilter("notch",freq,input,q,Lich.VM.Nothing)}_createUGen("notch",notch);function allpass(freq,q,input){return Soliton.createFilter("allpass",freq,input,q,Lich.VM.Nothing)}_createUGen("allpass",allpass);
Soliton.bufferURL=function(name,callback){if(!Soliton.buffers.hasOwnProperty(name)){var url="http://"+self.location.hostname+"/Samples/"+name+".ogg";var request=new XMLHttpRequest;request.open("GET",url,true);request.responseType="arraybuffer";request.onload=function(){Soliton.context.decodeAudioData(request.response,function(buffer){if(name!=undefined)Soliton.buffers[name]=buffer;if(callback!=undefined)callback(buffer)},function(){var errorString="Unable to load URL: ";errorString=errorString.concat(url);
Lich.post(errorString);throw new Error(errorString);})};request.send();return null}else return Soliton.buffers[name]};Soliton.playSample=function(source,rate,loopStart,loopEnd,duration){source.playbackRate.value=rate;source.loopStart=loopStart;source.loopEnd=loopEnd;source.startAll=function(time){if(!source.loaded)source.startTime=time;else source.start(time,loopStart,duration)};source.stopAll=function(time){source.stopTime=time};source._lichType=AUDIO;return source};
function playSample(name,rate,playStart,duration){if(typeof rate!=="number"||typeof playStart!=="number"||typeof duration!=="number")throw new Error("playSample can only be used with numbers. playSample arguments cannot be modulated by audio unit generators");var source=Soliton.context.createBufferSource();source.loaded=false;source.startTime=0;source.loopStart=0;source.loop=false;var buf=Soliton.bufferURL(name,function(buf){source.buffer=buf;source.loaded=true;source.start(source.startTime,source.loopStart,
duration)});if(buf!=null){source.buffer=buf;source.loaded=true}return Soliton.playSample(source,rate,playStart,playStart+duration,duration)}_createUGen("playSample",playSample);
function loopSample(name,rate,loopStart,loopEnd){if(typeof rate!=="number"||typeof loopStart!=="number"||typeof loopEnd!=="number")throw new Error("loopSample can only be used with numbers. loopSample arguments cannot be modulated by audio unit generators");var source=Soliton.context.createBufferSource();source.loaded=false;source.startTime=0;source.loopStart=0;source.loop=true;var buf=Soliton.bufferURL(name,function(buf){source.buffer=buf;source.loaded=true;source.start(source.startTime,source.loopStart)});
if(buf!=null){source.buffer=buf;source.loaded=true}return Soliton.playSample(source,rate,loopStart,loopEnd,loopEnd-loopStart)}_createUGen("loopSample",loopSample);function newBuffer(numSamples){return new Float32Array(numSamples)}_createPrimitive("newBuffer",newBuffer);
function fillBuffer(samples){if(!(samples instanceof Array))throw new Error("fillBuffer passed a non-list. fillBuffer must be used with a list.");var frames=new Float32Array(samples.length);for(var i=0;i<samples.length;++i)frames[i]=samples[i];return frames}_createPrimitive("fillBuffer",fillBuffer);
function playBuf(buffer,rate){if(!(buffer instanceof Float32Array))throw new Error("playBuf requires an audio buffer. Use newBuffer to create such a buffer.");if(typeof rate==="number")rate=dc(rate);if(rate._lichType!=AUDIO)throw new Error("playBuf can only be used with a ugens and numbers.");var ugenFunc=Soliton.context.createScriptProcessor(1024,1,1);var counter=0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var rateArray=e.inputBuffer.getChannelData(0);for(var i=
0;i<1024;i++){output[i]=buffer[Math.floor(counter)];counter=_wrap(counter+rateArray[i],0,buffer.length)}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);rate.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);rate.startAll(time);if(buffer._lichType==AUDIO)buffer.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);rate.stopAll(time);if(buffer._lichType==AUDIO)buffer.stopAll(time);setTimeout(function(){ugenFunc.disconnect();
gain.disconnect();rate.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("playBuf",playBuf);
function recPlayBuf(buffer,wrRate,rdRate,input){if(!(buffer instanceof Float32Array))throw new Error("playBuf requires an audio buffer. Use newBuffer to create such a buffer.");if(typeof wrRate==="number")wrRate=dc(wrRate);if(typeof rdRate==="number")rdRate=dc(rdRate);if(wrRate._lichType!=AUDIO||rdRate._lichType!=AUDIO||input._lichType!=AUDIO)throw new Error("playBuf can only be used with a ugens and numbers.");var ugenFunc=Soliton.context.createScriptProcessor(1024,3,1);var wrCounter=0;var rdCounter=
0;ugenFunc.onaudioprocess=function(e){var output=e.outputBuffer.getChannelData(0);var wrRateArray=e.inputBuffer.getChannelData(0);var rdRateArray=e.inputBuffer.getChannelData(1);var inputArray=e.inputBuffer.getChannelData(2);for(var i=0;i<1024;i++){buffer[~~wrCounter]=inputArray[i];wrCounter=_wrap(wrCounter+wrRateArray[i],0,buffer.length);output[i]=buffer[~~rdCounter];rdCounter=_wrap(rdCounter+rdRateArray[i],0,buffer.length)}};var gain=Soliton.context.createGain();gain.gain.value=0;ugenFunc.connect(gain);
var merger=Soliton.context.createChannelMerger(3);merger.channelInterpretation="discrete";wrRate.connect(merger,0,0);rdRate.connect(merger,0,1);input.connect(merger,0,2);merger.connect(ugenFunc);gain.startAll=function(time){gain.gain.setValueAtTime(1,time);rdRate.startAll(time);wrRate.startAll(time);input.startAll(time)};gain.stopAll=function(time){gain.gain.setValueAtTime(0,time+0.1);rdRate.stopAll(time);wrRate.stopAll(time);input.stopAll(time);if(buffer._lichType==AUDIO)buffer.stopAll(time);setTimeout(function(){ugenFunc.disconnect();
gain.disconnect();rdRate.disconnect();wrRate.disconnect();input.disconnect();merger.disconnect()},(time-Soliton.context.currentTime)*1100)};gain._lichType=AUDIO;return gain}_createUGen("recPlayBuf",recPlayBuf);sampleRate=Soliton.context.sampleRate;sampleDur=1/Soliton.context.sampleRate;
function convolve(name,input){var conv=Soliton.context.createConvolver();Soliton.bufferURL(name,function(buf){conv.buffer=buf;input.connect(conv)});conv.normalize=true;conv.startAll=input.startAll;conv.stopAll=input.stopAll;conv._lichType=AUDIO;return conv}_createUGen("convolve",convolve);var _dcNothing=new Float32Array(2);
function dc(value){var dcFunc=Soliton.context.createScriptProcessor(1024,0,1);dcFunc.onaudioprocess=function(event){var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;++i)outputArray[i]=value};dcFunc.startAll=function(time){};dcFunc.stopAll=function(time){};dcFunc._lichType=AUDIO;return dcFunc}_createUGen("dc",dc);
function perc(attack,peak,decay,input){if(typeof attack!=="number"||typeof peak!=="number"||typeof decay!=="number")throw new Error("perc can only use numbers for attack, peak, and decay arguments.");if(typeof input=="number")input=dc(input);var percGain=Soliton.context.createGain();input.connect(percGain);percGain.startAll=function(time){input.startAll(time);percGain.gain.setValueAtTime(0,time);percGain.gain.linearRampToValueAtTime(peak,attack+time);percGain.gain.linearRampToValueAtTime(0,attack+
decay+time);input.stopAll(attack+decay+time)};percGain.stopAll=input.stopAll;percGain._lichType=AUDIO;return percGain}_createUGen("perc",perc);
function perc2(attack,peak,decay,input){if(typeof attack!=="number"||typeof peak!=="number"||typeof decay!=="number")throw new Error("perc can only use numbers for attack, peak, and decay arguments.");if(typeof input=="number")input=dc(input);var percGain=Soliton.context.createGain();input.connect(percGain);percGain.startAll=function(time){input.startAll(time);percGain.gain.setValueAtTime(0,time);percGain.gain.linearRampToValueAtTime(peak,attack+time);percGain.gain.linearRampToValueAtTime(0,attack+
decay+time)};percGain.stopAll=function(time){input.stopAll(time)};percGain._lichType=AUDIO;return percGain}_createUGen("perc2",perc2);
function env(levels,times,shape,input){if(typeof input=="number")input=dc(input);var percGain=Soliton.context.createGain();input.connect(percGain);percGain.startAll=function(time){input.startAll(time);percGain.gain.setValueAtTime(levels[0],time);var finalTime=time;for(var i=1;i<levels.length;++i){finalTime+=times[i-1];if(shape==0||shape==="linear")percGain.gain.linearRampToValueAtTime(levels[i],finalTime);else percGain.gain.exponentialRampToValueAtTime(levels[i],finalTime)}input.stopAll(finalTime)};
percGain.stopAll=input.stopAll;percGain._lichType=AUDIO;return percGain}_createUGen("env",env);
function env2(levels,times,shape,input){if(typeof input=="number")input=dc(input);var percGain=Soliton.context.createGain();input.connect(percGain);percGain.startAll=function(time){input.startAll(time);percGain.gain.setValueAtTime(levels[0],time);var finalTime=time;for(var i=1;i<levels.length;++i){finalTime+=times[i-1];if(shape==0||shape==="linear")percGain.gain.linearRampToValueAtTime(levels[i],finalTime);else percGain.gain.exponentialRampToValueAtTime(levels[i],finalTime)}};percGain.stopAll=function(time){input.stopAll(time)};
percGain._lichType=AUDIO;return percGain}_createUGen("env2",env2);
function play(synth){var type=typeof synth;if(type==="string")synth=Soliton.synthDefs[synth]();else if(type==="function")synth=synth();else if(synth._lichType==IMPSTREAM||synth._lichType==SOLOSTREAM){synth.play();return synth}type=synth._lichType;if(type!=AUDIO&&type!=IMPSTREAM&&type!=SOLOSTREAM)throw new Error("play can only be used with synth definitions, functions, or patterns.");synth.connect(Soliton.masterGain);synth.startAll(Soliton.context.currentTime);return synth}
_createPrimitive("play",play);function stop(synth){var type=synth._lichType;if(type!=AUDIO&&type!=SYNTH&&type!=IMPSTREAM&&type!=SOLOSTREAM)throw new Error("stop can only be used with synth definitions, functions, or patterns.");if(type==AUDIO){synth.disconnect(Soliton.masterGain);synth.stopAll(0)}else if(type==SYNTH){if(audioRes._lichType!=AUDIO)throw new Error("play can only be used with synth definitions and audio functions.");audioRes.stopAll(0)}else synth.stop();return Lich.VM.Void}
_createPrimitive("stop",stop);function auxIn(num){if(num>=0&&num<Soliton.numBuses)return Soliton.buses[num];else throw new Error("Bus number "+num+" exceeds the number of buses: "+Soliton.numBuses);}_createUGen("auxIn",auxIn);
function localBus(amp){var bus=Soliton.context.createGain();if(typeof amp==="number")bus.gain.value=amp;else if(amp._lichType==AUDIO)amp.connect(bus.gain);bus.startAll=function(time){if(amp._lichType==AUDIO)amp.startAll(time)};bus.stopAll=function(time){if(amp._lichType==AUDIO)amp.stopAll(time)};bus._lichType=AUDIO;return bus}_createUGen("localBus",localBus);
function auxOut(bus,input){if(typeof bus==="number")if(bus>=0&&bus<Soliton.numBuses)bus=Soliton.buses[bus];else throw new Error("Bus number "+bus+" exceeds the number of buses: "+Soliton.numBuses);input.connect(bus);return{_lichType:AUDIO,startAll:input.startAll,stopAll:input.stopAll,connect:function(){},disconnect:function(){input.disconnect()}}}_createUGen("auxOut",auxOut);
function auxThrough(bus,input){if(typeof bus==="number")if(bus>=0&&bus<Soliton.numBuses)bus=Soliton.buses[bus];else throw new Error("Bus number "+bus+" exceeds the number of buses: "+Soliton.numBuses);input.connect(bus);return input}_createUGen("auxThrough",auxThrough);
function clip(value,input){if(input._lichType!=AUDIO)throw new Error("clip must be used with at least one audio source.");else if(value._lichType!=AUDIO)value=dc(value);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";var clipNode=Soliton.context.createScriptProcessor(1024,2,1);clipNode.onaudioprocess=function(event){var inputArrayL=event.inputBuffer.getChannelData(0);var clipArray=event.inputBuffer.getChannelData(1);var outputArrayL=event.outputBuffer.getChannelData(0);
var pos=0;var neg=0;for(var i=0;i<1024;++i){pos=Math.abs(clipArray[i]);neg=-pos;if(inputArrayL[i]>pos)outputArrayL[i]=pos;else if(inputArrayL[i]<neg)outputArrayL[i]=neg;else outputArrayL[i]=inputArrayL[i]}};input.connect(merger,0,0);value.connect(merger,0,1);merger.connect(clipNode);clipNode.startAll=function(time){input.startAll(time);value.startAll(time)};clipNode.stopAll=function(time){input.stopAll(time);value.stopAll(time);setTimeout(function(){input.disconnect();value.disconnect();merger.disconnect();
clipNode.disconnect()},(time-Soliton.context.currentTime)*1E3)};clipNode._lichType=AUDIO;return clipNode}_createUGen("clip",clip);
function wrap(value,input){if(input._lichType!=AUDIO)throw new Error("clip must be used with at least one audio source.");else if(value._lichType!=AUDIO)value=dc(value);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";var wrapNode=Soliton.context.createScriptProcessor(1024,2,1);wrapNode.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var wrapArray=event.inputBuffer.getChannelData(1);var outputArray=event.outputBuffer.getChannelData(0);
var pos=0;var neg=0;for(var i=0;i<1024;++i){pos=Math.abs(wrapArray[i]);neg=-pos;outputArray[i]=_mod(inputArray[i],neg,pos)}};input.connect(merger,0,0);value.connect(merger,0,1);merger.connect(wrapNode);wrapNode.startAll=function(time){input.startAll(time);value.startAll(time)};wrapNode.stopAll=function(time){input.stopAll(time);value.stopAll(time);setTimeout(function(){input.disconnect();value.disconnect();merger.disconnect();wrapNode.disconnect()},(time-Soliton.context.currentTime)*1E3)};wrapNode._lichType=
AUDIO;return wrapNode}_createUGen("wrap",wrap);Soliton._mod=function(value,hi){var lo=0;if(value>=hi){value-=hi;if(value<hi)return value}else if(value<lo){value+=hi;if(value>=lo)return value}else return value;if(hi==lo)return lo;var c=value%hi;if(c<0)c+=hi;return c};Soliton._fold=function(value,lo,hi){var b=hi-lo;var b2=b+b;var c=Soliton._mod(value-lo,b2);if(c>b)c=b2-c;return c+lo};
function fold(value,input){if(input._lichType!=AUDIO)throw new Error("clip must be used with at least one audio source.");else if(value._lichType!=AUDIO)value=dc(value);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";var foldNode=Soliton.context.createScriptProcessor(1024,2,1);foldNode.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var foldArray=event.inputBuffer.getChannelData(1);var outputArray=event.outputBuffer.getChannelData(0);
var pos=0;var neg=0;for(var i=0;i<1024;++i){pos=Math.abs(foldArray[i]);neg=-pos;outputArray[i]=Soliton._fold(inputArray[i],neg,pos)}};input.connect(merger,0,0);value.connect(merger,0,1);merger.connect(foldNode);foldNode.startAll=function(time){input.startAll(time);value.startAll(time)};foldNode.stopAll=function(time){input.stopAll(time);value.stopAll(time);setTimeout(function(){input.disconnect();value.disconnect();merger.disconnect();foldNode.disconnect()},(time-Soliton.context.currentTime)*1E3)};
foldNode._lichType=AUDIO;return foldNode}_createUGen("fold",fold);_mouseX=0;_mouseY=0;_mouseUGens=0;Soliton.onmousemove=function(mEvent){if(_mouseUGens>0){_mouseX=mEvent.screenX/screen.width;_mouseY=mEvent.screenY/screen.height;if(isNaN(_mouseX))_mouseX=0;if(isNaN(_mouseY))_mouseY=0}};
function mouseX(low,high,scale){if(typeof low!=="number"||typeof high!=="number"||typeof scale!=="number")throw new Error("mouseX can only be used with numbers for inputs.");var fxNode=Soliton.context.createScriptProcessor(1024,0,1);var fxGain=Soliton.context.createGain();fxGain.gain.value=0;fxNode.connect(fxGain);fxNode.onaudioprocess=function(event){var outputArray=event.outputBuffer.getChannelData(0);var val=scale<1?_linlin(_mouseX,0,1,low,high):_linexp(_mouseX,0,1,low,high);for(var i=0;i<1024;++i)outputArray[i]=
val};fxGain.startAll=function(time){fxGain.gain.setValueAtTime(1,time);_mouseUGens+=1;document.onmousemove=Soliton.onmousemove};fxGain.stopAll=function(time){fxGain.gain.setValueAtTime(0,time);setTimeout(function(){fxNode.disconnect();fxGain.disconnect();_mouseUGens=Math.max(0,_mouseUGens-1);if(_mouseUGens==0)document.onmousemove=null},(time-Soliton.context.currentTime)*1100)};fxGain._lichType=AUDIO;return lag(0.1,fxGain)}_createUGen("mouseX",mouseX);
function mouseY(low,high,scale){if(typeof low!=="number"||typeof high!=="number"||typeof scale!=="number")throw new Error("mouseX can only be used with numbers for inputs.");var fxNode=Soliton.context.createScriptProcessor(1024,0,1);var fxGain=Soliton.context.createGain();fxGain.gain.value=0;fxNode.connect(fxGain);fxNode.onaudioprocess=function(event){var outputArray=event.outputBuffer.getChannelData(0);var val=scale<1?_linlin(_mouseY,0,1,low,high):_linexp(_mouseY,0,1,low,high);for(var i=0;i<1024;++i)outputArray[i]=
val};fxGain.startAll=function(time){fxGain.gain.setValueAtTime(1,time);_mouseUGens+=1;document.onmousemove=Soliton.onmousemove};fxGain.stopAll=function(time){fxGain.gain.setValueAtTime(0,time);setTimeout(function(){fxNode.disconnect();fxGain.disconnect();_mouseUGens=Math.max(0,_mouseUGens-1);if(_mouseUGens==0)document.onmousemove=null},(time-Soliton.context.currentTime)*1100)};fxGain._lichType=AUDIO;return lag(0.1,fxGain)}_createUGen("mouseY",mouseY);
function crush(depth,input){if(input._lichType!=AUDIO)throw new Error("clip must be used with at least one audio source.");else if(depth._lichType!=AUDIO)depth=dc(depth);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";var fxNode=Soliton.context.createScriptProcessor(1024,2,1);fxNode.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var crushArray=event.inputBuffer.getChannelData(1);var outputArray=event.outputBuffer.getChannelData(0);
var quant=0;for(var i=0;i<1024;++i){quant=Math.pow(0.5,crushArray[i]);outputArray[i]=crushArray[i]==0?inputArray[i]:Math.floor(inputArray[i]/quant)*quant}};input.connect(merger,0,0);depth.connect(merger,0,1);merger.connect(fxNode);fxNode.startAll=function(time){input.startAll(time);depth.startAll(time)};fxNode.stopAll=function(time){depth.stopAll(time);input.stopAll(time);setTimeout(function(){input.disconnect();depth.disconnect();merger.disconnect();fxNode.disconnect()},(time-Soliton.context.currentTime)*
1E3)};fxNode._lichType=AUDIO;return fxNode}_createUGen("crush",crush);
function decimate(rate,input){if(input._lichType!=AUDIO)throw new Error("clip must be used with at least one audio source.");else if(rate._lichType!=AUDIO)rate=dc(rate);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";var fxNode=Soliton.context.createScriptProcessor(1024,2,1);var currentSample=0;var decimCount=0;var ratio=1;fxNode.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var rateArray=event.inputBuffer.getChannelData(1);
var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;++i){if(rateArray[i]>Soliton.context.sampleRate)ratio=1;else ratio=rateArray[i]/Soliton.context.sampleRate;decimCount+=ratio;if(decimCount>=1){decimCount=0;currentSample=inputArray[i]}outputArray[i]=currentSample}};input.connect(merger,0,0);rate.connect(merger,0,1);merger.connect(fxNode);fxNode.startAll=function(time){input.startAll(time);rate.startAll(time)};fxNode.stopAll=function(time){rate.stopAll(time);input.stopAll(time);
setTimeout(function(){input.disconnect();rate.disconnect();merger.disconnect();fxNode.disconnect()},(time-Soliton.context.currentTime)*1E3)};fxNode._lichType=AUDIO;return fxNode}_createUGen("decimate",decimate);
function pitchShift(shift,input){if(input._lichType!=AUDIO)throw new Error("clip must be used with at least one audio source.");else if(shift._lichType!=AUDIO)shift=dc(shift);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";var fxNode=Soliton.context.createScriptProcessor(1024,2,1);var writePhase=0;var samplerate=Soliton.context.sampleRate;var readOffset=samplerate*0.01;var minDelayOffset=samplerate*0.1;var sawPhaseA=0;var sawPhaseB=0.5;var memory=new Float32Array(32768);
var mask=memory.length-1;var dA0,dA1,dA2,dA3,dB0,dB1,dB2,dB3;var delayA=0;var delayB=0;var phaseA=0;var phaseB=0;var freq=null;var delayTime=null;var smoothA=0;var smoothB=0;var readFracA=0;var readFracB=0;fxNode.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var shiftArray=event.inputBuffer.getChannelData(1);var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;++i){phaseA=sawPhaseA*readOffset;phaseB=sawPhaseB*readOffset;readFracA=phaseA;readFracB=
phaseB;phaseA=~~phaseA;phaseB=~~phaseB;readFracA-=phaseA;readFracB-=phaseB;phaseA=writePhase-phaseA-minDelayOffset;phaseB=writePhase-phaseB-minDelayOffset;dA0=memory[phaseB&mask];dA1=memory[phaseA-1&mask];dA2=memory[phaseA-2&mask];dA3=memory[phaseA+1&mask];dB0=memory[phaseB&mask];dB1=memory[phaseB-1&mask];dB2=memory[phaseB-2&mask];dB3=memory[phaseB+1&mask];delayA=cubicinterp(readFracA,dA0,dA1,dA2,dA3);delayB=cubicinterp(readFracB,dB0,dB1,dB2,dB3);memory[writePhase]=inputArray[i];smoothA=1-(Math.cos(sawPhaseA*
2*pi)/2+0.5);smoothB=1-(Math.cos(sawPhaseB*2*pi)/2+0.5);outputArray[i]=delayA*smoothA+delayB*smoothB;writePhase=writePhase+1&mask;sawPhaseA+=shiftArray[i]/samplerate;if(sawPhaseA>1)sawPhaseA=1-sawPhaseA;sawPhaseB=sawPhaseA-0.5;if(sawPhaseB<0)sawPhaseB=1+sawPhaseB}};input.connect(merger,0,0);shift.connect(merger,0,1);merger.connect(fxNode);fxNode.startAll=function(time){input.startAll(time);shift.startAll(time)};fxNode.stopAll=function(time){shift.stopAll(time);input.stopAll(time);setTimeout(function(){memory=
null;input.disconnect();shift.disconnect();merger.disconnect();fxNode.disconnect()},(time-Soliton.context.currentTime)*1E3)};fxNode._lichType=AUDIO;return fxNode}_createUGen("pitchShift",pitchShift);var gammaconst=15*pi/44100;var gamma01=gammaconst*0.3609;var gamma02=gammaconst*2.7412;var gamma03=gammaconst*11.1573;var gamma04=gammaconst*44.7581;var gamma05=gammaconst*179.6242;var gamma06=gammaconst*798.4578;var gamma07=gammaconst*1.2524;var gamma08=gammaconst*5.5671;var gamma09=gammaconst*22.3423;
var gamma10=gammaconst*89.6271;var gamma11=gammaconst*364.7914;var gamma12=gammaconst*2770.1114;var hilbertCoeffs=[(gamma01-1)/(gamma01+1),(gamma02-1)/(gamma02+1),(gamma03-1)/(gamma03+1),(gamma04-1)/(gamma04+1),(gamma05-1)/(gamma05+1),(gamma06-1)/(gamma06+1),(gamma07-1)/(gamma07+1),(gamma08-1)/(gamma08+1),(gamma09-1)/(gamma09+1),(gamma10-1)/(gamma10+1),(gamma11-1)/(gamma11+1),(gamma12-1)/(gamma12+1)];
function freqShift(shift,input){if(input._lichType!=AUDIO)throw new Error("freqShift must be used with an audio ugen for input.");else if(shift._lichType!=AUDIO)shift=dc(shift);var merger=Soliton.context.createChannelMerger(2);merger.channelInterpretation="discrete";var fxNode=Soliton.context.createScriptProcessor(1024,2,1);var y1=new Float32Array(12);var ay1,ay2,ay3,ay4,ay5,ay6;var ay7,ay8,ay9,ay10,ay11,ay12;var y0_1,y0_2,y0_3,y0_4,y0_5,y0_6;var y0_7,y0_8,y0_9,y0_10,y0_11,y0_12;var outCos,outSin,
sinOsc,sinHalfPiOsc;var currentIn=0;var sinPhase=0;var halfPiSinPhase=halfPi;var samplerate=Soliton.context.sampleRate;var piByRate=twoPi/samplerate;var currentFreq;var neg;fxNode.onaudioprocess=function(event){var inputArray=event.inputBuffer.getChannelData(0);var shiftArray=event.inputBuffer.getChannelData(1);var outputArray=event.outputBuffer.getChannelData(0);for(var i=0;i<1024;++i){currentIn=inputArray[i];currentFreq=shiftArray[i];y0_1=currentIn-hilbertCoeffs[0]*y1[0];ay1=hilbertCoeffs[0]*y0_1+
1*y1[0];y1[0]=y0_1;y0_2=ay1-hilbertCoeffs[1]*y1[1];ay2=hilbertCoeffs[1]*y0_2+1*y1[1];y1[1]=y0_2;y0_3=ay2-hilbertCoeffs[2]*y1[2];ay3=hilbertCoeffs[2]*y0_3+1*y1[2];y1[2]=y0_3;y0_4=ay3-hilbertCoeffs[3]*y1[3];ay4=hilbertCoeffs[3]*y0_4+1*y1[3];y1[3]=y0_4;y0_5=ay4-hilbertCoeffs[4]*y1[4];ay5=hilbertCoeffs[4]*y0_5+1*y1[4];y1[4]=y0_5;y0_6=ay5-hilbertCoeffs[5]*y1[5];ay6=hilbertCoeffs[5]*y0_6+1*y1[5];y1[5]=y0_6;y0_7=currentIn-hilbertCoeffs[6]*y1[6];ay7=hilbertCoeffs[6]*y0_7+1*y1[6];y1[6]=y0_7;y0_8=ay7-hilbertCoeffs[7]*
y1[7];ay8=hilbertCoeffs[7]*y0_8+1*y1[7];y1[7]=y0_8;y0_9=ay8-hilbertCoeffs[8]*y1[8];ay9=hilbertCoeffs[8]*y0_9+1*y1[8];y1[8]=y0_9;y0_10=ay9-hilbertCoeffs[9]*y1[9];ay10=hilbertCoeffs[9]*y0_10+1*y1[9];y1[9]=y0_10;y0_11=ay10-hilbertCoeffs[10]*y1[10];ay11=hilbertCoeffs[10]*y0_11+1*y1[10];y1[10]=y0_11;y0_12=ay11-hilbertCoeffs[11]*y1[11];ay12=hilbertCoeffs[11]*y0_12+1*y1[11];y1[11]=y0_12;outCos=ay6;outSin=ay12;sinOsc=Math.sin(sinPhase);sinHalfPiOsc=Math.sin(sinPhase+halfPi);if(currentFreq<0){sinPhase-=piByRate*
currentFreq;outputArray[i]=outCos*sinOsc+outSin*sinHalfPiOsc}else{sinPhase+=piByRate*currentFreq;outputArray[i]=outCos*sinOsc-outSin*sinHalfPiOsc}if(sinPhase>twoPi)sinPhase-=twoPi}};input.connect(merger,0,0);shift.connect(merger,0,1);merger.connect(fxNode);fxNode.startAll=function(time){input.startAll(time);shift.startAll(time)};fxNode.stopAll=function(time){shift.stopAll(time);input.stopAll(time);setTimeout(function(){memory=null;input.disconnect();shift.disconnect();merger.disconnect();fxNode.disconnect()},
(time-Soliton.context.currentTime)*1E3)};fxNode._lichType=AUDIO;return fxNode}_createUGen("freqShift",freqShift);
function reverb(mix,roomSize,decayTime,damp,input){if(input._lichType!=AUDIO)throw new Error("phaser must be used with an audio ugen for input.");if(typeof mix!=="number"||typeof decayTime!=="number"||typeof damp!=="number")throw new Error("reverb mix, room, and damp arguments must be numbers.");mix=Math.max(0,Math.min(1,mix));var delayTime=roomSize/340;var preDelay=Soliton.context.createDelay();var delayMix=Soliton.context.createGain();var delays=[];var filters=[];var damps=[];var filterFeedBacks=
[];var filterFreqs=[delayTime,delayTime/3,delayTime/5,delayTime/7];var verbFeedGains=[_calcFeedBack(filterFreqs[0],decayTime),_calcFeedBack(filterFreqs[1],decayTime),_calcFeedBack(filterFreqs[2],decayTime),_calcFeedBack(filterFreqs[3],decayTime)];var filterMix=Soliton.context.createGain();filterMix.gain.value=0.25;preDelay.delayTime.value=0.04;delayMix.gain.value=0.2;input.connect(preDelay);for(var i=0;i<4;++i){var delayN=Soliton.context.createDelay();delayN.delayTime.value=filterFreqs[i];preDelay.connect(delayN);
var filter=Soliton.context.createBiquadFilter();delayN.connect(filter);preDelay.connect(filter);filter.type="allpass";filter.Q.value=0;filter.frequency.value=filterFreqs[i];var filterFeed=Soliton.context.createGain();filterFeed.gain.value=verbFeedGains[i];var damper=Soliton.context.createBiquadFilter();damper.type="highshelf";damper.frequency.value=4E3;damper.gain.value=damp*-40;filter.connect(damper);damper.connect(filterMix);damper.connect(filterFeed);filterFeed.connect(delayN);delays.push(delayN);
filters.push(filter);filterFeedBacks.push(filterFeed);damps.push(damper)}var fxNode=Soliton.context.createGain();var flip=Soliton.context.createGain();var minSqr=Soliton.context.createGain();flip.gain.value=1-mix;minSqr.gain.value=mix;fxNode.gain.value=1;input.connect(flip);flip.connect(fxNode);filterMix.connect(minSqr);minSqr.connect(fxNode);fxNode.startAll=function(time){input.startAll(time)};fxNode.stopAll=function(time){input.stopAll(time);setTimeout(function(){input.disconnect();fxNode.disconnect();
flip.disconnect();minSqr.disconnect();delayMix.disconnect();preDelay.disconnect();for(var i=0;i<4;++i){delays[i].disconnect();filterFeedBacks[i].disconnect();filters[i].disconnect();damps[i].disconnect()}},(time-Soliton.context.currentTime)*1E3)};fxNode._lichType=AUDIO;return fxNode}_createUGen("reverb",reverb);
function phaser(speed,input){if(input._lichType!=AUDIO)throw new Error("phaser must be used with an audio ugen for input.");var freq=Soliton.context.createOscillator();var rangedFreq=null;freq.type="triangle";freq._lichType=AUDIO;freq.startAll=function(time){freq.start(time)};freq.stopAll=function(time){freq.stop(time)};if(typeof speed==="number")freq.frequency.value=speed;else if(speed._lichType==AUDIO)speed.connect(freq.frequency);else throw new Error("phasor speed argument must be a number or audio ugen.");
rangedFreq=exprange(20,2E4,freq);var filter1=Soliton.context.createBiquadFilter();input.connect(filter1);filter1.type="allpass";filter1.Q.value=0.125;var filter2=Soliton.context.createBiquadFilter();filter1.connect(filter2);filter2.type="allpass";filter2.Q.value=0.25;var filter3=Soliton.context.createBiquadFilter();filter2.connect(filter3);filter3.type="allpass";filter3.Q.value=0.325;var filter4=Soliton.context.createBiquadFilter();filter3.connect(filter4);filter4.type="allpass";filter4.Q.value=0.5;
var feedBack=Soliton.context.createGain();feedBack.gain.value=0.2;filter4.connect(feedBack);feedBack.connect(filter1);var scale1=Soliton.context.createGain();scale1.gain.value=1.001;var scale2=Soliton.context.createGain();scale2.gain.value=1.002;var scale3=Soliton.context.createGain();scale3.gain.value*1.003;rangedFreq.connect(filter1.frequency);rangedFreq.connect(scale1);scale1.connect(filter2.frequency);rangedFreq.connect(scale2);scale2.connect(filter3.frequency);rangedFreq.connect(scale3);scale3.connect(filter4.frequency);
var fxNode=Soliton.context.createGain();fxNode.gain.value=0.5;input.connect(fxNode);filter4.connect(fxNode);fxNode.startAll=function(time){input.startAll(time);rangedFreq.startAll(time);if(speed._lichType==AUDIO)speed.startAll(time)};fxNode.stopAll=function(time){input.stopAll(time);rangedFreq.stopAll(time);if(speed._lichType==AUDIO)speed.stopAll(time);setTimeout(function(){if(speed._lichType==AUDIO)speed.disconnect();rangedFreq.disconnect();input.disconnect();filter1.disconnect();filter2.disconnect();
filter3.disconnect();filter4.disconnect();feedBack.disconnect();fxNode.disconnect();freq.disconnect();scale1.disconnect();scale2.disconnect();scale3.disconnect()},(time-Soliton.context.currentTime)*1E3)};fxNode._lichType=AUDIO;return fxNode}_createUGen("phaser",phaser);
function flanger(speed,depth,feedBack,input){if(input._lichType!=AUDIO)throw new Error("flanger must be used with an audio ugen for input.");var delayNode=Soliton.context.createDelay();var lfo=Soliton.context.createOscillator();var rangedLFO=null;lfo.type="sine";lfo._lichType=AUDIO;lfo.startAll=function(time){lfo.start(time)};lfo.stopAll=function(time){lfo.stop(time)};if(typeof speed==="number")lfo.frequency.value=speed;else if(speed._lichType==AUDIO)speed.connect(lfo.frequency);else throw new Error("flanger can only be used with numbers and ugens.");
if(typeof depth==="number")rangedLFO=range(0,0.005*depth,lfo);else if(depth._lichType==AUDIO){var dRes=_subtractMix(1,depth);var rRes=range(0,1,lfo);var mRes=mul(dRes,rRes);rangedLFO=mul(0.05,mRes)}else throw new Error("flanger can only be used with numbers and ugens.");rangedLFO.connect(delayNode.delayTime);input.connect(delayNode);var feedBackNode=Soliton.context.createGain();if(typeof feedBack==="number")feedBackNode.gain.value=Math.min(feedBack,0.99);else if(feedBack._lichType==AUDIO)feedBack.connect(feedBackNode.gain);
else throw new Error("flanger can only be used with numbers and ugens.");var fxNode=Soliton.context.createGain();fxNode.gain.value=0.5;input.connect(fxNode);delayNode.connect(fxNode);delayNode.connect(feedBackNode);feedBackNode.connect(delayNode);fxNode.startAll=function(time){input.startAll(time);rangedLFO.startAll(time);if(speed._lichType==AUDIO)speed.startAll(time);if(feedBackNode._lichType==AUDIO)feedBackNode.startAll(time)};fxNode.stopAll=function(time){input.stopAll(time);rangedLFO.stopAll(time);
if(speed._lichType==AUDIO)speed.stopAll(time);if(feedBackNode._lichType==AUDIO)feedBackNode.stopAll(time);setTimeout(function(){if(speed._lichType==AUDIO)speed.disconnect();if(depth._lichType==AUDIO)depth.disconnect();if(feedBackNode._lichType==AUDIO)feedBackNode.disconnect();delayNode.disconnect();rangedLFO.disconnect();fxNode.disconnect()},(time-Soliton.context.currentTime)*1E3)};fxNode._lichType=AUDIO;return fxNode}_createUGen("flanger",flanger);
function chorus(speed,depth,input){if(input._lichType!=AUDIO)throw new Error("chorus must be used with an audio ugen for input.");if(numVoices>10){Lich.post("Warning: chorus numVoices is larger than 10. This value has been reduced to 10.");numVoices=10}if(typeof depth!=="number")throw new Error("chorus depth must be a number. It cannot be modulated.");var numVoices=4;var delayNode=Soliton.context.createDelay();var lfo=Soliton.context.createOscillator();var rangedLFOs=[];var phaseMuls=[1,0.5,-0.5,
-1];var phaseOffsets=[0,0.5,1,0];lfo.type="sine";lfo._lichType=AUDIO;lfo.startAll=function(time){};lfo.stopAll=function(time){};if(typeof speed==="number")lfo.frequency.value=speed;else if(speed._lichType==AUDIO)speed.connect(lfo.frequency);else throw new Error("chorus can only be used with numbers and ugens.");var fxNode=Soliton.context.createGain();fxNode.gain.value=1/(numVoices+1);input.connect(fxNode);var delayNodes=[];for(var i=0;i<numVoices;++i){var delayNode=Soliton.context.createDelay();var rangedLFO=
lfo;var minRange=0.05;input.connect(delayNode);delayNode.connect(fxNode);delayNodes[i]=delayNode;if(i>0)rangedLFO=mul(phaseMuls[i],rangedLFO);if(i==1||i==2)rangedLFO=add(phaseOffsets[i],rangedLFO);rangedLFO=range(minRange,minRange+0.0025*depth*((i+1)/numVoices),rangedLFO);rangedLFO.connect(delayNode.delayTime);rangedLFOs[i]=rangedLFO}fxNode.startAll=function(time){input.startAll(time);lfo.start(time);if(speed._lichType==AUDIO)speed.startAll(time);for(var i=0;i<numVoices;++i)rangedLFOs[i].startAll(time)};
fxNode.stopAll=function(time){input.stopAll(time);lfo.stop(time);if(speed._lichTy1pe==AUDIO)speed.stopAll(time);for(var i=0;i<numVoices;++i)rangedLFOs[i].stopAll(time);setTimeout(function(){if(speed._lichType==AUDIO)speed.disconnect();input.disconnect();for(var i=0;i<numVoices;++i){delayNodes[i].disconnect();rangedLFOs[i].disconnect()}fxNode.disconnect()},(time-Soliton.context.currentTime)*1E3)};fxNode._lichType=AUDIO;return fxNode}_createUGen("chorus",chorus);
function killall(){Lich.scheduler.freeScheduledEvents();Soliton.masterGain.disconnect(0);Soliton.limiter.disconnect();Soliton.masterGain=Soliton.context.createGain();Soliton.masterGain.gain.value=0.25;Soliton.limiter=Soliton.context.createDynamicsCompressor();Soliton.limiter.threshold.value=-3;Soliton.limiter.ratio.value=20;Soliton.limiter.attack.value=0.003;Soliton.limiter.release.value=0.003;Soliton.masterGain.connect(Soliton.limiter);Soliton.limiter.connect(Soliton.context.destination);_mouseUGens=
0;document.onmousemove=null;for(var i=0;i<Soliton.numBuses;++i){Soliton.buses[i].disconnect();var bus=Soliton.context.createGain();bus._lichType=AUDIO;bus.startAll=function(){};bus.stopAll=function(){};Soliton.buses[i]=bus}}_createPrimitive("killall",killall);
Soliton.PercStream=function(_events,_modifiers){var events=_events;var modifiers=_modifiers;this.nextTime=0;var macroBeat=0;var infiniteBeat=0;var modifierBeat=0;var hasModifiers=modifiers.length>0;this._lichType=IMPSTREAM;var playing=false;var ll=events.length;var lm=1/ll;this.stop=function(doRemove){doRemove=typeof doRemove==="undefined"?true:doRemove;playing=false;if(doRemove)Lich.scheduler.removeScheduledEvent(this)};this.play=function(){if(!playing){this.nextTime=Math.floor(Soliton.context.currentTime/
Lich.scheduler.tempoSeconds+0.5)*Lich.scheduler.tempoSeconds;this.nextTime+=this.nextTime/Lich.scheduler.tempoSeconds%_events.length*Lich.scheduler.tempoSeconds;playing=true;Lich.scheduler.addScheduledEvent(this)}};this.subSchedulePlay=function(nevent,nDuration,offset){if(nevent instanceof Array){if(nevent.length>0){var divDuration=nDuration/nevent.length;for(var i=0;i<nevent.length;++i)this.subSchedulePlay(nevent[i],divDuration,offset+divDuration*i)}}else if(nevent!=Lich.VM.Nothing)try{var synth;
if(nevent._datatype==="Pattern"){var wt=wrapRange(0,ll,infiniteBeat);nevent=nevent.p((infiniteBeat-wt)*lm)}if(typeof nevent==="string")synth=Soliton.synthDefs[nevent]();else synth=nevent();if(synth._lichType==AUDIO){synth.connect(Soliton.masterGain);synth.startAll(this.nextTime+offset)}}catch(e){Lich.post(e)}};this.schedulePlay=function(){var event=events[macroBeat];var beatDuration=Lich.scheduler.tempoSeconds;if(++macroBeat>=events.length)macroBeat=0;++infiniteBeat;if(hasModifiers){var modifier=
modifiers[modifierBeat];if(modifier!=Lich.VM.Nothing)try{if(modifier._datatype==="Pattern")beatDuration=modifier.p(infiniteBeat)(Lich.scheduler.tempoSeconds);else beatDuration=modifier(Lich.scheduler.tempoSeconds)}catch(e){Lich.post(e)}if(++modifierBeat>=modifiers.length)modifierBeat=0}this.subSchedulePlay(event,beatDuration,0);this.nextTime+=beatDuration;return this.nextTime};this.update=function(newEvents,newModifiers){events=newEvents;modifiers=newModifiers;macroBeat=macroBeat%events.length;ll=
events.length;lm=1/ll;if(modifiers.length)modifierBeat=modifierBeat%modifiers.length;else modifierBeat=0;hasModifiers=modifiers.length>0;if(!playing){this.nextTime=Math.floor(Soliton.context.currentTime/Lich.scheduler.tempoSeconds+0.5)*Lich.scheduler.tempoSeconds;this.nextTime+=this.nextTime/Lich.scheduler.tempoSeconds%_events.length*Lich.scheduler.tempoSeconds}this.play()}};
Soliton.SoloStream=function(_instrument,_events,_modifiers,_rmodifiers){if(!Soliton.synthDefs.hasOwnProperty(_instrument))throw new Error("instrument undefined in solo pattern: "+_instrument);var instrument=_instrument;var events=_events;var modifiers=_modifiers;var rmodifiers=_rmodifiers;this.nextTime=0;var macroBeat=0;var infiniteBeat=0;var modifierBeat=0;var hasModifiers=modifiers.length>0;this._lichType=SOLOSTREAM;var playing=false;var ll=events.length;var lm=1/ll;this.stop=function(doRemove){doRemove=
typeof doRemove==="undefined"?true:doRemove;playing=false;if(doRemove)Lich.scheduler.removeScheduledEvent(this)};this.play=function(){if(!playing){this.nextTime=Math.floor(Soliton.context.currentTime/Lich.scheduler.tempoSeconds+0.5)*Lich.scheduler.tempoSeconds;this.nextTime+=this.nextTime/Lich.scheduler.tempoSeconds%_events.length*Lich.scheduler.tempoSeconds;playing=true;Lich.scheduler.addScheduledEvent(this)}};this.subSchedulePlay=function(nevent,nDuration,offset){if(nevent instanceof Array){if(nevent.length>
0){var divDuration=nDuration/nevent.length;for(var i=0;i<nevent.length;++i)this.subSchedulePlay(nevent[i],divDuration,offset+divDuration*i)}}else if(nevent!=Lich.VM.Nothing)try{if(nevent._datatype==="Pattern"){var wt=wrapRange(0,ll,infiniteBeat);nevent=nevent.p((infiniteBeat-wt)*lm)}if(hasModifiers){var modifier=modifiers[modifierBeat];if(modifier!=Lich.VM.Nothing)if(modifier._datatype==="Pattern")nevent=modifier.p(infiniteBeat)(nevent);else nevent=modifier(nevent)}var synth=Soliton.synthDefs[instrument](nevent);
if(synth._lichType==AUDIO){synth.connect(Soliton.masterGain);synth.startAll(this.nextTime+offset)}}catch(e){Lich.post(e)}};this.schedulePlay=function(){var event=events[macroBeat];var beatDuration=Lich.scheduler.tempoSeconds;if(++macroBeat>=events.length)macroBeat=0;if(rmodifiers.length>0){var rmodifier=rmodifiers[infiniteBeat%rmodifiers.length];if(rmodifier!=Lich.VM.Nothing)try{if(rmodifier._datatype==="Pattern")beatDuration=rmodifier.p(infiniteBeat)(Lich.scheduler.tempoSeconds);else beatDuration=
rmodifier(Lich.scheduler.tempoSeconds)}catch(e){Lich.post(e)}}this.subSchedulePlay(event,beatDuration,0);this.nextTime+=beatDuration;++infiniteBeat;if(hasModifiers)if(++modifierBeat>=modifiers.length)modifierBeat=0;return this.nextTime};this.update=function(newInstrument,newEvents,newModifiers,newRModifers){if(!Soliton.synthDefs.hasOwnProperty(newInstrument))throw new Error("instrument undefined in solo pattern: "+Lich.VM.PrettyPrint(newInstrument));instrument=newInstrument;events=newEvents;modifiers=
newModifiers;rmodifiers=newRModifers;macroBeat=macroBeat%events.length;ll=events.length;lm=1/ll;if(modifiers.length)modifierBeat=modifierBeat%modifiers.length;else modifierBeat=0;hasModifiers=modifiers.length>0;if(!playing){this.nextTime=Math.floor(Soliton.context.currentTime/Lich.scheduler.tempoSeconds+0.5)*Lich.scheduler.tempoSeconds;this.nextTime+=this.nextTime/Lich.scheduler.tempoSeconds%_events.length*Lich.scheduler.tempoSeconds}this.play()}};
Soliton.pbind=function(patternName,func,_arguments,duration){this.patternName=patternName;this.func=func;this.args=_arguments;this.duration=duration;var beatDuration=0;this.value=null;var infiniteBeat=0;this._lichType=SOLOSTREAM;var playing=false;this.stop=function(doRemove){doRemove=typeof doRemove==="undefined"?true:doRemove;playing=false;if(doRemove)Lich.scheduler.removeScheduledEvent(this)};this.play=function(){if(!playing){this.nextTime=Math.floor(Soliton.context.currentTime/Lich.scheduler.tempoSeconds+
0.5)*Lich.scheduler.tempoSeconds;playing=true;Lich.scheduler.addScheduledEvent(this)}};this.schedulePlay=function(){try{beatDuration=this.duration;if(beatDuration._datatype==="Pattern")beatDuration=Lich.scheduler.tempoSeconds*beatDuration.p(infiniteBeat);else beatDuration*=Lich.scheduler.tempoSeconds;var currentValue=this.func;if(currentValue._datatype==="Pattern")currentValue=currentValue.p(infiniteBeat);var args=null;if(this.args instanceof Array){args=[];for(var i=0;i<this.args.length;++i){var arg=
this.args[i];if(arg._datatype==="Pattern")arg=arg.p(infiniteBeat);args.push(arg)}}else if(this.args._datatype==="Pattern")args=[this.args.p(infiniteBeat)];else args=[this.args];var synth=currentValue;if(typeof synth==="string")synth=Soliton.synthDefs[currentValue];if(typeof synth==="function")synth=synth.curry.apply(synth,args);this.value=synth;if(synth._lichType==AUDIO){synth.connect(Soliton.masterGain);synth.startAll(this.nextTime)}++infiniteBeat}catch(e){Lich.post(e)}this.nextTime+=beatDuration;
return this.nextTime};this.update=function(func,_arguments,duration){this.func=func;this.args=_arguments;this.duration=duration;if(!playing)this.nextTime=Math.floor(Soliton.context.currentTime/Lich.scheduler.tempoSeconds+0.5)*Lich.scheduler.tempoSeconds;this.play()}};
function pbind(patternName,func,args,duration){var p=null;if(Soliton.pbinds.hasOwnProperty(patternName)){Soliton.pbinds[patternName].update(func,args,duration);p=Soliton.pbinds[patternName]}else{p=new Soliton.pbind(patternName,func,args,duration);Soliton.pbinds[patternName]=p;p.play()}return p}
Soliton.SteadyScheduler=function(){this.tempo=280;this.tempoSeconds=60/this.tempo;this.tempoMillis=this.tempoSeconds*1E3;tempo=this.tempo;tempoSeconds=this.tempoSeconds;tempoMillis=this.tempoMillis;var playing=false;var startTime=null;var lookAhead=25;var scheduleAhead=0.1;var currentQueue=[];var nextQueue=[];var tempQueue=null;var timerID=null;var requiresSchedule=0;var nextTime=0;this.scheduleEvent=function(event){try{nextTime=event.schedulePlay()}catch(e){Lich.post(e)}while(nextTime!=null)if(nextTime<
requiresSchedule)nextTime=event.schedulePlay();else break;if(nextTime!=null)nextQueue.push(event)};this.visitScheduledEvents=function(){requiresSchedule=Soliton.context.currentTime+scheduleAhead;for(var i=0;i<currentQueue.length;++i)if(currentQueue[i].nextTime<requiresSchedule)Lich.scheduler.scheduleEvent(currentQueue[i]);else nextQueue.push(currentQueue[i]);currentQueue.length=0;tempQueue=currentQueue;currentQueue=nextQueue;nextQueue=tempQueue;timerID=setTimeout(Lich.scheduler.visitScheduledEvents,
lookAhead)};this.start=function(){if(!playing){playing=true;Lich.scheduler.visitScheduledEvents()}};this.pause=function(){if(playing){playing=false;clearTimeout(timerID)}};this.stop=function(){playing=false;clearTimeout(timerID);for(var i=0;i<currentQueue.length;++i)currentQueue[i].stop(false);for(var i=0;i<nextQueue.length;++i)nextQueue[i].stop(false);for(var i=0;i<tempQueue.length;++i)tempQueue[i].stop(false);currentQueue=[];nextQueue=[];tempQueue=null;timerID=null};this.freeScheduledEvents=function(){for(var i=
0;i<currentQueue.length;++i){var elem=currentQueue[i];if(elem._lichType==IMPSTREAM||elem._lichType==SOLOSTREAM)elem.stop(false)}for(var i=0;i<nextQueue.length;++i){var elem=nextQueue[i];if(elem._lichType==IMPSTREAM||elem._lichType==SOLOSTREAM)elem.stop(false)}for(var i=0;i<tempQueue.length;++i){var elem=tempQueue[i];if(elem._lichType==IMPSTREAM||elem._lichType==SOLOSTREAM)elem.stop(false)}currentQueue=[];nextQueue=[];tempQueue=null};this.addScheduledEvent=function(event){currentQueue.push(event)};
this.removeScheduledEvent=function(event){var currentIndex=currentQueue.indexOf(event);if(currentIndex!=-1)currentQueue.splice(currentIndex,1)};this.setTempo=function(bpm){Lich.scheduler.tempo=bpm;Lich.scheduler.tempoSeconds=60/Lich.scheduler.tempo;Lich.scheduler.tempoMillis=Lich.scheduler.tempoSeconds*1E3;tempo=bpm;tempoSeconds=Lich.scheduler.tempoSeconds;tempoMillis=Lich.scheduler.tempoMillis}};
function currentBeat(){return Math.floor(Soliton.context.currentTime/Lich.scheduler.tempoSeconds+0.5)}_createPrimitive("tempo",true);_createPrimitive("tempoSeconds",true);_createPrimitive("tempoMillis",true);ugenList=ugenList.sort();var CloudChamber={};CloudChamber.ONE_SECOND_IN_MILLIS=1E3;CloudChamber.PI=3.141592654;CloudChamber.POSITION_DATA_SIZE=3;CloudChamber.COLOR_DATA_SIZE=4;CloudChamber.pointers=new Array;CloudChamber.update_queue={};CloudChamber.meshes=new Array;
CloudChamber.loadFile=function(url,data,callback,errorCallback){var request=new XMLHttpRequest;request.open("GET",url,true);request.onreadystatechange=function(){if(request.readyState==4)if(request.status==200)callback(request.responseText,data);else errorCallback(url)};request.send(null)};
CloudChamber.loadFiles=function(urls,callback,errorCallback){var numUrls=urls.length;var numComplete=0;var result=[];function partialCallback(text,urlIndex){result[urlIndex]=text;numComplete++;if(numComplete==numUrls)callback(result)}for(var i=0;i<numUrls;i++)CloudChamber.loadFile(urls[i],i,partialCallback,errorCallback)};CloudChamber.loadShaders=function(vertName,fragName){CloudChamber.loadFiles([vertName,fragName],CloudChamber.setShaders,function(url){alert("CLOUD CHAMBER: Failed to download"+url)})};
CloudChamber.setShaders=function(shaders){var vertexShader=CloudChamber.gl.createShader(CloudChamber.gl.VERTEX_SHADER);CloudChamber.gl.shaderSource(vertexShader,shaders[0]);CloudChamber.gl.compileShader(vertexShader);var compiled=CloudChamber.gl.getShaderParameter(vertexShader,CloudChamber.gl.COMPILE_STATUS);if(!compiled)CloudChamber.print("ERROR COMPILING VERTEX SHADER");var fragmentShader=CloudChamber.gl.createShader(CloudChamber.gl.FRAGMENT_SHADER);CloudChamber.gl.shaderSource(fragmentShader,
shaders[1]);CloudChamber.gl.compileShader(fragmentShader);compiled=CloudChamber.gl.getShaderParameter(fragmentShader,CloudChamber.gl.COMPILE_STATUS);if(!compiled)CloudChamber.print("ERROR COMPILING FRAGMENT SHADER");var program=CloudChamber.gl.createProgram();CloudChamber.gl.attachShader(program,vertexShader);CloudChamber.gl.attachShader(program,fragmentShader);CloudChamber.gl.bindAttribLocation(program,0,"position");CloudChamber.gl.bindAttribLocation(program,1,"color");CloudChamber.gl.linkProgram(program);
var linked=CloudChamber.gl.getProgramParameter(program,CloudChamber.gl.LINK_STATUS);if(!linked){var lastError=CloudChamber.gl.getProgramInfoLog(program);CloudChamber.print("Error in program linking:"+lastError);CloudChamber.gl.deleteProgram(program);return}CloudChamber.mvpMatrixHandle=CloudChamber.gl.getUniformLocation(program,"mvpMatrix");CloudChamber.positionHandle=CloudChamber.gl.getAttribLocation(program,"position");CloudChamber.colorHandle=CloudChamber.gl.getAttribLocation(program,"color");CloudChamber.gl.useProgram(program);
CloudChamber.currentProgram=program};CloudChamber.print=function(text){if(CloudChamber.printCallback!=undefined)CloudChamber.printCallback(text);else console.log(text)};CloudChamber.start=function(){};CloudChamber.stop=function(){};CloudChamber.checkGLError=function(){var error=CloudChamber.gl.getError();if(error)CloudChamber.print("error: "+error)};
CloudChamber.draw=function(time){for(var i=0;i<CloudChamber.meshes.length;++i){var mesh=CloudChamber.meshes[i];var linear=mesh.linear_momentum;var angular=mesh.angular_momentum;mesh.position.x+=linear[0];mesh.position.y+=linear[1];mesh.position.z+=linear[2];mesh.rotation.x+=angular[0];mesh.rotation.y+=angular[1];mesh.rotation.z+=angular[2]}CloudChamber.composer.render(CloudChamber.scene,CloudChamber.camera)};
CloudChamber.setup=function(canvas,framerate,drawCallback,printCallback){CloudChamber.canvas=canvas;CloudChamber.framerate=framerate;CloudChamber.frametime=1E3/framerate;CloudChamber.drawCallback=drawCallback;CloudChamber.printCallback=printCallback;CloudChamber.timer=0;CloudChamber.currentProgram=0;var ratio=CloudChamber.canvas.clientWidth/CloudChamber.canvas.clientHeight;var left=-ratio;var right=ratio;var bottom=-1;var top=1;var near=1;var far=10;mat4.frustum(left,right,bottom,top,near,far,CloudChamber.projectionMatrix);
CloudChamber.eye=vec3.create();CloudChamber.eye[0]=25;CloudChamber.eye[1]=25;CloudChamber.eye[2]=25;CloudChamber.look=vec3.create();CloudChamber.look[0]=0;CloudChamber.look[1]=0;CloudChamber.look[2]=0;CloudChamber.up=vec3.create();CloudChamber.up[0]=0;CloudChamber.up[1]=1;CloudChamber.up[2]=0;var cameraViewAngle=45,near=0.1,far=1E4;CloudChamber.renderer=new THREE.WebGLRenderer({antialias:true});CloudChamber.camera=new THREE.PerspectiveCamera(cameraViewAngle,ratio,near,far);CloudChamber.scene=new THREE.Scene;
CloudChamber.scene.add(CloudChamber.camera);CloudChamber.camera.position.z=300;CloudChamber.renderer.setSize(CloudChamber.canvas.clientWidth,CloudChamber.canvas.clientHeight);CloudChamber.canvas.parentNode.replaceChild(CloudChamber.renderer.domElement,CloudChamber.canvas);CloudChamber.testLight=new THREE.PointLight(16777215);CloudChamber.testLight.position.x=10;CloudChamber.testLight.position.y=50;CloudChamber.testLight.position.z=130;CloudChamber.scene.add(CloudChamber.testLight);CloudChamber.renderer.setClearColorHex(1315860,
1);CloudChamber.composer=new THREE.EffectComposer(CloudChamber.renderer);CloudChamber.composer.addPass(new THREE.RenderPass(CloudChamber.scene,CloudChamber.camera));var rgbEffect=new THREE.ShaderPass(THREE.RGBShiftShader);rgbEffect.uniforms["amount"].value=0;rgbEffect.renderToScreen=true;CloudChamber.composer.addPass(rgbEffect);CloudChamber.numShaders=1;CloudChamber.shadersMap={"BasicShader":THREE.BasicShader,"BleachBypassShader":THREE.BleachBypassShader,"BlendShader":THREE.BlendShader,"BokehShader":THREE.BokehShader,
"BrightnessContrastShader":THREE.BrightnessContrastShader,"ColorCorrectionShader":THREE.ColorCorrectionShader,"ColorifyShader":THREE.ColorifyShader,"ConvolutionShader":THREE.ConvolutionShader,"CopyShader":THREE.CopyShader,"DOFMipMapShader":THREE.DOFMipMapShader,"DotScreenShader":THREE.DotScreenShader,"EdgeShader":THREE.EdgeShader,"EdgeShader2":THREE.EdgeShader2,"FilmShader":THREE.FilmShader,"FocusShader":THREE.FocusShader,"FresnelShader":THREE.FresnelShader,"FXAAShader":THREE.FXAAShader,"HorizontalBlurShader":THREE.HorizontalBlurShader,
"HorizontalTiltShiftShader":THREE.HorizontalTiltShiftShader,"HueSaturationShader":THREE.HueSaturationShader,"KaleidoShader":THREE.KaleidoShader,"LuminosityShader":THREE.LuminosityShader,"MirrorShader":THREE.MirrorShader,"NormalMapShader":THREE.NormalMapShader,"RGBShiftShader":THREE.RGBShiftShader,"SepiaShader":THREE.SepiaShader,"SSAOShader":THREE.SSAOShader,"TriangleBlurShader":THREE.TriangleBlurShader,"UnpackDepthRGBAShader":THREE.UnpackDepthRGBAShader,"VerticalBlurShader":THREE.VerticalBlurShader,
"VerticalTiltShiftShader":THREE.VerticalTiltShiftShader,"VignetteShader":THREE.VignetteShader};CloudChamber.shaderArray=new Array("BasicShader","BleachBypassShader","BlendShader","BokehShader","BrightnessContrastShader","ColorCorrectionShader","ColorifyShader","ConvolutionShader","CopyShader","DOFMipMapShader","DotScreenShader","EdgeShader","EdgeShader2","FilmShader","FocusShader","FresnelShader","FXAAShader","HorizontalBlurShader","HorizontalTiltShiftShader","HueSaturationShader","KaleidoShader",
"LuminosityShader","MirrorShader","NormalMapShader","RGBShiftShader","SepiaShader","SSAOShader","TriangleBlurShader","UnpackDepthRGBAShader","VerticalBlurShader","VerticalTiltShiftShader","VignetteShader");shaders=CloudChamber.shaderArray;window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,33)}}();CloudChamber.print("Graphics initialized.")};
CloudChamber.addShader=function(shader,amount){var pass=new THREE.ShaderPass(CloudChamber.shadersMap[shader]);pass.renderToScreen=true;CloudChamber.composer.addPass(pass);CloudChamber.numShaders+=1};function setShader(shader){var pass=new THREE.ShaderPass(CloudChamber.shadersMap[shader]);pass.renderToScreen=true;for(var i=0;i<CloudChamber.numShaders;++i)CloudChamber.composer.passes.pop();CloudChamber.numShaders=1;CloudChamber.composer.addPass(pass);return Lich.VM.Void}
_createPrimitive("setShader",setShader);function setNativeShader(shader){var pass=new THREE.ShaderPass(shader);pass.renderToScreen=true;for(var i=0;i<CloudChamber.numShaders;++i)CloudChamber.composer.passes.pop();CloudChamber.numShaders=1;CloudChamber.composer.addPass(pass);return Lich.VM.Void}_createPrimitive("setNativeShader",setNativeShader);
function clearShaders(){for(var i=0;i<CloudChamber.numShaders;++i)CloudChamber.composer.passes.pop();CloudChamber.numShaders=1;var rgbEffect=new THREE.ShaderPass(THREE.RGBShiftShader);rgbEffect.uniforms["amount"].value=0;rgbEffect.renderToScreen=true;CloudChamber.composer.addPass(rgbEffect);return Lich.VM.Void}_createPrimitive("clearShaders",clearShaders);
function setShaders(shaders){for(var i=0;i<shaders.length;++i){if(i==0){for(var j=0;j<CloudChamber.numShaders;++j)CloudChamber.composer.passes.pop();CloudChamber.numShaders=0}var pass=new THREE.ShaderPass(CloudChamber.shadersMap[shaders[i]]);if(i==shaders.length-1)pass.renderToScreen=true;CloudChamber.composer.addPass(pass);CloudChamber.numShaders+=1}return Lich.VM.Void}_createPrimitive("setShaders",setShaders);
CloudChamber.addPointer=function(object){CloudChamber.pointers.push(object);return CloudChamber.pointers.length-1};CloudChamber.removePointer=function(pointer){CloudChamber.pointers[pointer]=null};
function sphere(sPosition,sRadius,sColor){var sphereMaterial=new THREE.MeshLambertMaterial({color:CloudChamber.packRGB(sColor[0],sColor[1],sColor[2])});var sphere=new THREE.Mesh(new THREE.SphereGeometry(sRadius,64,64),sphereMaterial);sphere.position={x:sPosition[0],y:sPosition[1],z:sPosition[2]};sphere.linear_momentum=[0,0,0];sphere.angular_momentum=[0,0,0];sphere.momentum_update=false;CloudChamber.scene.add(sphere);CloudChamber.print("Sphere: "+sPosition);CloudChamber.meshes.push(sphere);return sphere}
_createPrimitive("sphere",sphere);
function cube(cPosition,cSize,cRotation,cColor){var cubeMaterial=new THREE.MeshLambertMaterial({color:CloudChamber.packRGB(cColor[0],cColor[1],cColor[2])});var cube=new THREE.Mesh(new THREE.CubeGeometry(cSize[0],cSize[1],cSize[2]),cubeMaterial);cube.position={x:cPosition[0],y:cPosition[1],z:cPosition[2]};cube.rotation=new THREE.Euler(cRotation[0],cRotation[1],cRotation[2],"XYZ");cube.linear_momentum=[0,0,0];cube.angular_momentum=[0,0,0];cube.momentum_update=false;CloudChamber.scene.add(cube);CloudChamber.print("Cube: "+
cPosition);CloudChamber.meshes.push(cube);return cube}_createPrimitive("cube",cube);CloudChamber.all=function(func){for(var i=0;i<CloudChamber.pointers.length;++i)if(CloudChamber.pointers[i]!=null)func(i)};CloudChamber.allArg=function(func,arg){for(var i=0;i<CloudChamber.pointers.length;++i)if(CloudChamber.pointers[i]!=null)func(i,arg)};
function deleteMesh(mesh){var index=CloudChamber.meshes.indexOf(mesh);if(index>0)CloudChamber.meshes.splice(index,1);CloudChamber.scene.remove(mesh);return Lich.VM.Void}_createPrimitive("deleteMesh",deleteMesh);function deleteScene(){for(var i=0;i<CloudChamber.meshes.length;++i)CloudChamber.scene.remove(CloudChamber.meshes[i]);CloudChamber.meshes=new Array;return Lich.VM.Void}_createPrimitive("deleteScene",deleteScene);function wireframe(active,mesh){mesh.material.wireframe=active;return mesh}
_createPrimitive("wireframe",wireframe);function wireframeAll(active){for(var i=0;i<CloudChamber.meshes.length;++i)wireframe(active,CloudChamber.meshes[i]);return Lich.VM.Void}_createPrimitive("wireframeAll",wireframeAll);function move(relPosition,object){var position=object.position;position.x+=relPosition[0];position.y+=relPosition[1];position.z+=relPosition[2];object.position=position;return object}_createPrimitive("move",move);
function moveAll(relPosition){for(var i=0;i<CloudChamber.meshes.length;++i)move(relPosition,CloudChamber.meshes[i]);return Lich.VM.Void}_createPrimitive("moveAll",moveAll);function setColor(color,mesh){mesh.material.color=new THREE.Color(CloudChamber.packRGB(color[0],color[1],color[2]));return mesh}_createPrimitive("setColor",setColor);function setColorAll(color){for(var i=0;i<CloudChamber.meshes.length;++i)setColor(color,CloudChamber.meshes[i]);return Lich.VM.Void}
_createPrimitive("setColorAll",setColorAll);function rotate(relRotation,object){var rotation=object.rotation;rotation.x+=relRotation[0];rotation.y+=relRotation[0];rotation.z+=relRotation[0];object.rotation=rotation;return object}_createPrimitive("rotate",rotate);function rotateAll(relRotation){for(var i=0;i<CloudChamber.meshes.length;++i)rotate(relRotation,CloudChamber.meshes[i]);return Lich.VM.Void}_createPrimitive("rotateAll",rotateAll);
function linear(linear_momentum,object){object.linear_momentum=linear_momentum;object.momentum_update=true;return object}_createPrimitive("linear",linear);function linearAll(linear_momentum){for(var i=0;i<CloudChamber.meshes.length;++i)linear(linear_momentum,CloudChamber.meshes[i]);return Lich.VM.Void}_createPrimitive("linearAll",linearAll);function angular(angular_momentum,object){object.angular_momentum=angular_momentum;object.momentum_update=true;return object}_createPrimitive("angular",angular);
function angularAll(angular_momentum){for(var i=0;i<CloudChamber.meshes.length;++i)angular(angular_momentum,CloudChamber.meshes[i]);return Lich.VM.Void}_createPrimitive("angularAll",angularAll);function setPosition(position,object){object.position={x:position[0],y:position[1],z:position[2]};return object}_createPrimitive("setPosition",setPosition);function setX(xposition,object){object.position={x:xposition,y:object.position.y,z:object.position.z};return object}_createPrimitive("setX",setX);
function setY(yposition,object){object.position={x:object.position.x,y:yposition,z:object.position.z};return object}_createPrimitive("setY",setY);function setZ(zposition,object){object.position={x:object.position.x,y:object.position.y,z:zposition};return object}_createPrimitive("setZ",setZ);function setPositionAll(position){for(var i=0;i<CloudChamber.meshes.length;++i)setPosition(position,CloudChamber.meshes[i]);return Lich.VM.Void}_createPrimitive("setPositionAll",setPositionAll);
function scale(scaleVec,object){object.scale={x:scaleVec[0],y:scaleVec[1],z:scaleVec[2]};return object}_createPrimitive("scale",scale);function scaleAll(scaleVec){for(var i=0;i<CloudChamber.meshes.length;++i)scale(scaleVec,CloudChamber.meshes[i]);return Lich.VM.Void}_createPrimitive("scaleAll",scaleAll);
function cloudMesh(numTriangles,color){var triangles=new Array;for(var i=0;i<numTriangles;++i){var triangle=new Array;triangle.push(new THREE.Vector3(Math.random()*200-100,Math.random()*200-100,Math.random()*200-100));triangle.push(new THREE.Vector3(Math.random()*200-100,Math.random()*200-100,Math.random()*200-100));triangle.push(new THREE.Vector3(Math.random()*200-100,Math.random()*200-100,Math.random()*200-100));triangles.push(triangle)}return CloudChamber.mesh(triangles,new THREE.Color(CloudChamber.packRGB(color[0],
color[1],color[2])))}_createPrimitive("cloudMesh",cloudMesh);CloudChamber.nrand=function(){var x1,x2,rad,y1;do{x1=2*Math.random()-1;x2=2*Math.random()-1;rad=x1*x1+x2*x2}while(rad>=1||rad==0);var c=Math.sqrt(-2*Math.log(rad)/rad);return x1*c};
function gaussianMesh(numTriangles,color){var triangles=new Array;for(var i=0;i<numTriangles;++i){var triangle=new Array;triangle.push(new THREE.Vector3(CloudChamber.nrand()*50,CloudChamber.nrand()*50,CloudChamber.nrand()*50));triangle.push(new THREE.Vector3(CloudChamber.nrand()*50,CloudChamber.nrand()*50,CloudChamber.nrand()*50));triangle.push(new THREE.Vector3(CloudChamber.nrand()*50,CloudChamber.nrand()*50,CloudChamber.nrand()*50));triangles.push(triangle)}return CloudChamber.mesh(triangles,new THREE.Color(CloudChamber.packRGB(color[0],
color[1],color[2])))}_createPrimitive("gaussianMesh",gaussianMesh);
function sinMesh(numTriangles,color){var triangles=new Array;var freq1=CloudChamber.nrand()*0.1;var freq2=CloudChamber.nrand()*0.1;var freq3=CloudChamber.nrand()*0.1;var freq4=Math.random()*0.1;for(var i=0;i<numTriangles;++i){var triangle=new Array;var sine=Math.sin(i*freq4)*0.1+0.9;triangle.push(new THREE.Vector3(Math.sin(i*freq1)*100*sine,Math.sin(i*freq2)*100*sine,Math.sin(i*freq3)*100*sine));triangle.push(new THREE.Vector3(Math.sin(i*freq3)*100*sine,Math.sin(i*freq1)*100*sine,Math.sin(i*freq2)*
100*sine));triangle.push(new THREE.Vector3(Math.sin(i*freq2)*100*sine,Math.sin(i*freq3)*100*sine,Math.sin(i*freq1)*100*sine));triangles.push(triangle)}return CloudChamber.mesh(triangles,new THREE.Color(CloudChamber.packRGB(color[0],color[1],color[2])))}_createPrimitive("sinMesh",sinMesh);
CloudChamber.heightMap=function(mapFunction,width,depth){var map=mapFunction(width,depth);var triangles=new Array;var x=0;var y=0;var even=true;var doneIterating=false;var offset=new THREE.Vector3(width/2*-1,0,depth/2*-1);while(!doneIterating){var triangle=new Array;if(even){x+=1;triangle.push((new THREE.Vector3(x,map[x+y*width],y)).add(offset));x-=1;triangle.push((new THREE.Vector3(x,map[x+y*width],y)).add(offset));y+=1;triangle.push((new THREE.Vector3(x,map[x+y*width],y)).add(offset));even=false;
triangles.push(triangle)}else{triangle.push((new THREE.Vector3(x,map[x+y*width],y)).add(offset));x+=1;triangle.push((new THREE.Vector3(x,map[x+y*width],y)).add(offset));y-=1;triangle.push((new THREE.Vector3(x,map[x+y*width],y)).add(offset));triangles.push(triangle);even=true;if(x==width&&y==depth-1)doneIterating=true;else if(x==width){x=0;y+=1}}}return triangles};CloudChamber.newMap=function(width,depth){var map=new Array;for(var i=0;i<width*depth;++i)map.push(0);return map};
CloudChamber.sineMap=function(width,depth){var map=CloudChamber.newMap(width,depth);var freq=Math.random()*width;var freq2=Math.round(Math.random()*20)/10;for(var x=0;x<width;++x)for(var y=0;y<depth;++y)map[x+y*width]=Math.sin(x*freq)*Math.sin(y*freq2)*(width/2);return map};function sinMapMesh(width,depth,color){var triangles=CloudChamber.heightMap(CloudChamber.sineMap,width,depth);return CloudChamber.mesh(triangles,new THREE.Color(CloudChamber.packRGB(color[0],color[1],color[2])))}
_createPrimitive("sinMapMesh",sinMapMesh);CloudChamber.noiseMap=function(width,depth){var map=CloudChamber.newMap(width,depth);var amp=Math.random()*width;for(var i=0;i<width*depth;++i)map[i]=(Math.random()*2-1)*amp;return map};function noiseMapMesh(width,depth,color){var triangles=CloudChamber.heightMap(CloudChamber.noiseMap,width,depth);return CloudChamber.mesh(triangles,new THREE.Color(CloudChamber.packRGB(color[0],color[1],color[2])))}_createPrimitive("noiseMapMesh",noiseMapMesh);
CloudChamber.gaussianMap=function(width,depth){var map=CloudChamber.newMap(width,depth);var amp=Math.random()*width;for(var i=0;i<width*depth;++i)map[i]=CloudChamber.nrand()*amp;return map};function gaussianMapMesh(width,depth,color){var triangles=CloudChamber.heightMap(CloudChamber.gaussianMap,width,depth);return CloudChamber.mesh(triangles,new THREE.Color(CloudChamber.packRGB(color[0],color[1],color[2])))}_createPrimitive("gaussianMapMesh",gaussianMapMesh);
CloudChamber.square=function(i,freq){if(i%freq<freq/2)return-1;else return 1};CloudChamber.squareMap=function(width,depth){var map=CloudChamber.newMap(width,depth);var freq=Math.random();var freq2=Math.round(Math.random()*20)/10;for(var x=0;x<width;++x)for(var y=0;y<depth;++y)map[x+y*width]=CloudChamber.square(x,freq)*CloudChamber.square(y,freq2)*(width/2);return map};
function squareMapMesh(width,depth,color){var triangles=CloudChamber.heightMap(CloudChamber.squareMap,width,depth);return CloudChamber.mesh(triangles,new THREE.Color(CloudChamber.packRGB(color[0],color[1],color[2])))}_createPrimitive("squareMapMesh",squareMapMesh);CloudChamber.saw=function(i,freq){return i%freq/freq*2-1};
CloudChamber.sawMap=function(width,depth){var map=CloudChamber.newMap(width,depth);var freq=Math.random();var freq2=Math.round(Math.random()*20)/10;for(var x=0;x<width;++x)for(var y=0;y<depth;++y)map[x+y*width]=CloudChamber.saw(x,freq)*CloudChamber.saw(y,freq2)*(width/2);return map};function sawMapMesh(width,depth,color){var triangles=CloudChamber.heightMap(CloudChamber.sawMap,width,depth);return CloudChamber.mesh(triangles,new THREE.Color(CloudChamber.packRGB(color[0],color[1],color[2])))}
_createPrimitive("sawMapMesh",sawMapMesh);CloudChamber.tri=function(i,freq){return freq/2-Math.abs(i%(2*freq)-freq)};CloudChamber.triMap=function(width,depth){var map=CloudChamber.newMap(width,depth);var freq=Math.random();var freq2=Math.round(Math.random()*20)/10;for(var x=0;x<width;++x)for(var y=0;y<depth;++y)map[x+y*width]=CloudChamber.tri(x,freq)*CloudChamber.tri(y,freq2)*width;return map};
function triMapMesh(width,depth,color){var triangles=CloudChamber.heightMap(CloudChamber.triMap,width,depth);return CloudChamber.mesh(triangles,new THREE.Color(CloudChamber.packRGB(color[0],color[1],color[2])))}_createPrimitive("triMapMesh",triMapMesh);function flatMapMesh(width,depth,color){var triangles=CloudChamber.heightMap(CloudChamber.newMap,width,depth);return CloudChamber.mesh(triangles,new THREE.Color(CloudChamber.packRGB(color[0],color[1],color[2])))}_createPrimitive("flatMapMesh",flatMapMesh);
CloudChamber.calculateNormal=function(p1,p2,p3){var u=p2.sub(p1);var v=p3.sub(p1);var normal=new THREE.Vector3(u.y*v.z-u.z*v.y,u.z*v.x-u.x*v.z,u.x*v.y-u.y*v.x);return normal.normalize()};
CloudChamber.mesh=function(mGeometry,mColor){var material=new THREE.MeshLambertMaterial({color:mColor});var geometry=new THREE.Geometry;for(var i=0;i<mGeometry.length;++i){var p1=mGeometry[i][0];var p2=mGeometry[i][1];var p3=mGeometry[i][2];geometry.vertices.push(p1);geometry.vertices.push(p2);geometry.vertices.push(p3);geometry.faces.push(new THREE.Face3(i*3,i*3+1,i*3+2))}geometry.computeFaceNormals();geometry.computeCentroids();geometry.computeBoundingSphere();var mesh=new THREE.Mesh(geometry,material);
mesh.doubleSided=true;mesh.overdraw=true;mesh.linear_momentum=[0,0,0];mesh.angular_momentum=[0,0,0];mesh.momentum_update=false;CloudChamber.meshes.push(mesh);CloudChamber.scene.add(mesh);return mesh};
function marchingCubes(mColor){var map=MarchingCubes.march();var material=new THREE.MeshLambertMaterial({color:new THREE.Color(CloudChamber.packRGB(mColor[0],mColor[1],mColor[2]))});var geometry=new THREE.Geometry;for(var i=0;i<map.length;++i){geometry.vertices.push(map[i]);CloudChamber.print("("+map[i].x+", "+map[i].y+", "+map[i].z+")");if(i%3==2)geometry.faces.push(new THREE.Face3(i-2,i-1,i))}CloudChamber.print("March faces: "+geometry.faces.length);geometry.computeFaceNormals();geometry.computeCentroids();
geometry.computeBoundingSphere();var mesh=new THREE.Mesh(geometry,material);mesh.doubleSided=true;mesh.overdraw=true;mesh.linear_momentum={x:0,y:0,z:0};mesh.angular_momentum={x:0,y:0,z:0};mesh.momentum_update=false;CloudChamber.scene.add(mesh);CloudChamber.print("March");return CloudChamber.addPointer(mesh)}_createPrimitive("marchingCubes",marchingCubes);
CloudChamber.parseSpliceChar=function(character,input){var spliceFunc;var frag=input=="fragColor";var assignVar="a_variable";if(frag)assignVar="frag_variable";switch(character){case "!":if(frag)spliceFunc="pow(gl_FragCoord, "+input+" * vec4(2, 2, 2, 2));";else spliceFunc="pow("+assignVar+", "+input+" * vec4(2, 2, 2, 2));";break;case "\u00a3":if(frag)spliceFunc="sqrt(gl_FragCoord + "+input+" * vec4(10, 10, 10, 10));";else spliceFunc="sqrt("+input+" + "+assignVar+" * vec4(10, 10, 10, 10));";break;case "=":if(frag)spliceFunc=
"fract(gl_FragCoord + "+input+" * vec4(10, 10, 10, 10));";else spliceFunc="fract("+input+" + "+assignVar+" * vec4(10, 10, 10, 10));";break;case "`":if(frag)spliceFunc="inversesqrt(gl_FragCoord + "+input+");";else spliceFunc="inversesqrt("+input+" + "+assignVar+");";break;case "~":if(frag)spliceFunc="inversesqrt(gl_FragCoord - "+input+");";else spliceFunc="inversesqrt("+input+" - "+assignVar+");";break;case "#":if(frag)spliceFunc="reflect(gl_FragCoord, "+input+");";else spliceFunc="reflect("+input+
", "+assignVar+");";break;case ":":if(frag)spliceFunc="refract(gl_FragCoord, "+input+", dot("+input+", "+assignVar+"));";else spliceFunc="refract("+input+", "+assignVar+", dot("+input+", "+assignVar+"));";break;case ";":spliceFunc="reflect("+assignVar+", reflect("+assignVar+", "+input+"));";break;case "?":if(frag)spliceFunc="clamp(gl_FragCoord, "+input+", "+assignVar+");";else spliceFunc="clamp("+assignVar+", "+input+", "+input+");";break;case "\\":if(frag)spliceFunc="vec4(cross(gl_FragCoord.xyz, "+
input+".xyz), 1);";else spliceFunc="vec4(cross("+assignVar+".xyz, "+input+".xyz), 1);";break;case " ":if(frag)spliceFunc="mix(gl_FragCoord, "+input+", abs("+assignVar+"));";else spliceFunc="mix("+assignVar+", "+input+", abs("+assignVar+"));";break;case "_":spliceFunc="vec4(length("+input+"), length("+input+"), length("+input+"), length("+input+"));";break;case "[":spliceFunc=input+"; "+assignVar+" = "+assignVar+" * ("+input+".x + "+input+".y + "+input+".z + "+input+".w);";break;case "]":spliceFunc=
input+"; "+assignVar+" = "+assignVar+" * ("+input+".x - "+input+".y - "+input+".z - "+input+".w);";break;case "{":spliceFunc="vec4("+input+".w, "+input+".z, "+input+".y, "+input+".x);";break;case "}":if(frag)spliceFunc="reflect(gl_FragCoord, "+input+");";else spliceFunc="vec4("+input+".z, "+input+".w, "+input+".x, "+input+".w);";break;case ".":if(frag)spliceFunc=input+" * dot(gl_FragCoord, "+input+");";else spliceFunc=input+" * dot("+input+", "+assignVar+");";break;case "+":spliceFunc=input+" + "+
assignVar+";";break;case "-":spliceFunc=input+" + "+assignVar+";";break;case "*":spliceFunc=input+" * "+assignVar+";";break;case "/":spliceFunc=input+" / "+assignVar+";";break;case "&":spliceFunc=input+" + "+assignVar+";";break;case "|":spliceFunc=input+" - "+assignVar+";";break;case "%":spliceFunc="mod("+input+", "+assignVar+");";break;case "<":spliceFunc="--"+input+";";break;case "^":spliceFunc="exp("+input+");";break;case ">":spliceFunc="++"+input+";";break;case "(":spliceFunc="sin("+input+");";
break;case ")":spliceFunc="cos("+input+");";break;case "@":spliceFunc="acos("+input+");";break;case "$":spliceFunc="asin("+input+");";break;case "a":spliceFunc="vec4("+input+".y, "+input+".z, "+input+".x, "+input+".w);";break;case "A":spliceFunc="abs("+input+");";break;case "b":spliceFunc="sign("+assignVar+" * vec4(0.2, 0.2, 0.2, 0.2) - vec4(0.1, 0.1, 0.1, 0.1) + "+input+" - "+assignVar+");";break;case "B":if(frag)spliceFunc="sign("+assignVar+" * "+input+" - gl_FragCoord);";else spliceFunc="sign("+
assignVar+" * "+input+");";break;case "c":spliceFunc="ceil("+input+");";break;case "C":spliceFunc="ceil("+input+" * "+assignVar+");";break;case "d":spliceFunc="vec4(distance("+assignVar+".x, "+input+".x), distance("+assignVar+".y, "+input+".y), distance("+assignVar+".z, "+input+".z), distance("+assignVar+".w, "+input+".w)) * vec4(-0.01, -0.1, -0.01, -0.01) + "+input+";";break;case "D":spliceFunc=input+";\n "+assignVar+" = vec4(distance("+assignVar+".x, "+input+".x), distance("+assignVar+".y, "+
input+".y), distance("+assignVar+".z, "+input+".z), distance("+assignVar+".w, "+input+".w)) * vec4(0.1, 0.1, 0.1, 0.1);";break;case "e":spliceFunc="radians("+input+" * "+assignVar+");";break;case "E":spliceFunc="radians("+input+" * ceil("+input+"));";break;case "f":spliceFunc="floor(vec4(4, 4, 4, 4) * "+input+");";break;case "F":spliceFunc="fract("+input+");";break;case "g":spliceFunc=input+";\n "+assignVar+" = floor(vec4(4, 4, 4, 4) * "+input+");";break;case "G":spliceFunc=input+";\n "+assignVar+
" = fract("+input+");";break;case "h":spliceFunc=input+";\n "+assignVar+" = sin("+input+");";break;case "H":spliceFunc=input+";\n "+assignVar+" = cos("+input+");";break;case "i":spliceFunc=input+" / inversesqrt("+input+") - "+assignVar+";";break;case "I":spliceFunc=input+" / inversesqrt(vec4(1, 1, 1, 1) / exp2("+input+")) - "+assignVar+";";break;case "j":spliceFunc=input+";\n "+assignVar+" = vec4(cross("+input+".xyz, "+assignVar+".xyz), "+assignVar+".w);";break;case "J":spliceFunc=input+
";\n "+assignVar+" = "+assignVar+" * dot("+input+", "+assignVar+");";break;case "k":spliceFunc="clamp("+input+", floor(vec4(4, 4, 4, 4) * "+assignVar+"), "+assignVar+");";break;case "K":spliceFunc="clamp("+input+" * vec4(2, 2, 2, 2), "+assignVar+", ceil("+assignVar+"));";break;case "l":spliceFunc=input+" + log2("+input+");";break;case "L":spliceFunc="log2(vec4(1, 1, 1, 1) + log2("+input+"));";break;case "m":spliceFunc="min("+input+", "+assignVar+");";break;case "M":spliceFunc="max("+input+", "+
assignVar+");";break;case "n":spliceFunc="normalize("+input+" * vec4(6, 0.6, 6, 0.6));";break;case "N":spliceFunc="normalize("+input+" / "+assignVar+");";break;case "o":if(frag)spliceFunc="min("+input+", vec4(1, 1, 1, 1) / gl_FragCoord);";else spliceFunc="min("+input+", vec4(1, 1, 1, 1) / "+assignVar+");";break;case "O":if(frag)spliceFunc="max("+input+", vec4(1, 1, 1, 1) / gl_FragCoord);";else spliceFunc="max("+input+", vec4(1, 1, 1, 1) / "+assignVar+");";break;case "p":spliceFunc="pow("+assignVar+
", "+input+");";break;case "P":spliceFunc="pow("+assignVar+", pow("+assignVar+", "+input+"));";break;case "q":spliceFunc="sign("+input+");";break;case "Q":spliceFunc="sign("+input+" * "+assignVar+");";break;case "r":spliceFunc="reflect("+assignVar+", "+input+");";break;case "R":spliceFunc="refract("+assignVar+", "+input+", dot("+input+", "+assignVar+"));";break;case "s":spliceFunc="abs("+assignVar+" - reflect("+input+", "+assignVar+")) / "+input+";";break;case "S":spliceFunc="faceforward("+input+
", "+assignVar+", "+input+") + "+input+";";break;case "t":spliceFunc="vec4(cross("+input+".xyz, "+assignVar+".xyz), 1);";break;case "T":spliceFunc="tan("+input+");";break;case "u":spliceFunc=input+";\n "+assignVar+" = tan("+input+");";break;case "U":spliceFunc=input+";\n "+assignVar+" = normalize("+input+");";break;case "v":spliceFunc="sqrt("+input+");";break;case "V":spliceFunc=input+"; "+assignVar+" = sqrt("+input+");";break;case "w":spliceFunc=input+" - faceforward("+input+", "+assignVar+
", "+input+");";break;case "W":spliceFunc=input+" - faceforward("+input+", "+assignVar+", "+assignVar+");";break;case "x":spliceFunc="mix("+input+", "+assignVar+", normalize("+assignVar+"));";break;case "X":spliceFunc="mix("+input+", vec4(1, 1, 1, 1) / "+assignVar+", normalize("+assignVar+"));";break;case "y":spliceFunc=input+" * 1.111;";break;case "Y":spliceFunc=input+" * 0.666;";break;case "z":spliceFunc=input+" * vec4(-1, -1, -1, -1);";break;case "Z":spliceFunc=input+";\n "+assignVar+" = "+
input+" * vec4(-1, -1, -1, -1);";break;default:spliceFunc=input+" + "+(character.charCodeAt(0)/127*0.2-0.1)+";";break}return" "+input+" = "+spliceFunc};
CloudChamber.shaderTemplate=function(vert,frag){return{uniforms:{"tDiffuse":{type:"t",value:null}},vertexShader:["varying vec4 a_variable;","varying vec2 vUv;","vec4 newPosition;","void main()","{"," vUv = uv;"," a_variable = vec4(position, 1);"," newPosition = vec4(position, 1);"," gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1);"," // gl_PointSize = min(dot(newPosition.xyz, position), 1);","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","varying vec2 vUv;",
"varying vec4 a_variable;","vec4 frag_variable;","vec4 fragColor;","void main()","{"," frag_variable = a_variable;"," fragColor = texture2D(tDiffuse, vUv);",frag," gl_FragColor = vec4(1, 1, 1, 1) - mod(fragColor + texture2DProj(tDiffuse, normalize(fragColor) - (vec4(vUv, vUv))) - (gl_FragColor), gl_FragColor);"," // gl_FragColor = max(gl_FragColor, gl_FragCoord * 0.0001);","}"].join("\n")}};
CloudChamber.parsesplice=function(lang){var numFuncsPerShader=Math.floor(lang.length/2);var vertArray=new Array(numFuncsPerShader);var fragArray=new Array(numFuncsPerShader);var vertVariable="newPosition";var fragVariable="fragColor";for(var i=0;i<numFuncsPerShader;++i)vertArray.push(CloudChamber.parseSpliceChar(lang[i],vertVariable));for(var i=0;i<numFuncsPerShader;++i)fragArray.push(CloudChamber.parseSpliceChar(lang[i+numFuncsPerShader],fragVariable));return CloudChamber.shaderTemplate(vertArray.join("\n"),
fragArray.join("\n"))};function spliceShader(lang){var shader=CloudChamber.parsesplice(lang);CloudChamber.print(shader.vertexShader);CloudChamber.print("\n\n\n"+shader.fragmentShader);var pass=new THREE.ShaderPass(shader);pass.renderToScreen=true;for(var i=0;i<CloudChamber.numShaders;++i)CloudChamber.composer.passes.pop();CloudChamber.numShaders=1;CloudChamber.composer.addPass(pass);return Lich.VM.Void}_createPrimitive("spliceShader",spliceShader);
function randomString(length){var randString=new Array("");for(var i=0;i<length;++i)randString.push(String.fromCharCode(Math.random()*127));return randString.join("")}_createPrimitive("randomString",randomString);CloudChamber.decimalToHexString=function(number){if(number<0)number=4294967295+number+1;return number.toString(16).toUpperCase()};CloudChamber.packRGB=function(r,g,b){return(1<<24)+(Math.floor(r)<<16)+(Math.floor(g)<<8)+Math.floor(b)};
CloudChamber.rgbToHex=function(r,g,b){return"0x"+CloudChamber.packRGB(r,g,b).toString(16).slice(1)};CloudChamber.arrayToVector=function(array){return{x:array[0],y:array[1],z:array[2]}};CloudChamber.arrayToColor=function(array){return CloudChamber.packRGB(array[0],array[1],array[2])};function setBackground(r,g,b){CloudChamber.renderer.setClearColorHex(CloudChamber.packRGB(r,g,b),1);return CloudChamber.packRGB(r,g,b)}_createPrimitive("setBackground",setBackground);Lich.Parser=new Object;Lich.LibraryParser=new Object;assert={};assert.AssertionError=function(obj){var err=new Error;for(var k in err)this[k]=err[k];this.astType="AssertionError";if(obj!==undefined){this.message=obj.message;this.actual=obj.actual;this.expected=obj.expected}else;};assert.AssertionError.prototype=new Error;assert.ok=function(guard,message){assert.equal(guard,true,message)};
assert.equal=function(actual,expected,message){if(actual==expected)return;throw new assert.AssertionError({message:message,actual:actual,expected:expected});};assert.notEqual=function(actual,expected,message){if(actual!=expected)return;throw new assert.AssertionError({message:message,actual:actual,expected:expected});};Lich.Name=function(){};Lich.Name.prototype.equal=function(other){return this.id===other.id&&this.name===other.name};
Lich.ModName=function(id,pos){this.astType="modname";this.id=id;if(pos!==undefined)this.pos=pos;else this.pos={}};Lich.ModName.prototype=new Lich.Name;Lich.ModName.prototype.toStringN=function(){return this.id};Lich.ModName.prototype.toStringQ=function(){return this.toStringN()};Lich.ModName.prototype.toStringV=function(){return"module "+this.toStringQ()};Lich.ModName.prototype.toString=Lich.ModName.prototype.toStringN;
Lich.ModName.prefixes=function(id){var prefixes=[];var startix=0;while(true){var endix=id.indexOf(".",startix);if(endix===-1){prefixes.push(id);break}prefixes.push(id.substr(startix,endix));startix=endix+1}return prefixes};Lich.TyCls=function(id,pos,loc){this.astType="tycls";if(loc!==undefined){this.loc=loc;if(id.substr(0,loc.length)==loc)id=id.substr(loc.length+1)}this.id=id;if(pos!==undefined)this.pos=pos;else this.pos={}};Lich.TyCls.prototype=new Lich.Name;Lich.TyCls.prototype.toStringN=function(){return this.id};
Lich.TyCls.prototype.toStringQ=function(){return(this.loc===undefined?"":this.loc+".")+this.toStringN()};Lich.TyCls.prototype.toStringV=function(){return"type class "+this.toStringQ()};Lich.TyCls.prototype.toString=Lich.TyCls.prototype.toStringN;Lich.TyVar=function(id,pos){this.astType="tyvar";this.id=id;if(pos!==undefined)this.pos=pos;else this.pos={}};Lich.TyVar.prototype=new Lich.Name;Lich.TyVar.prototype.toStringN=function(){return this.id};Lich.TyVar.prototype.toStringQ=function(){return this.toStringN()};
Lich.TyVar.prototype.toStringV=function(){return"type variable "+this.toStringQ()};Lich.TyVar.prototype.toString=Lich.TyVar.prototype.toStringN;Lich.TyCon=function(id,pos,loc){this.astType="tycon";if(loc!==undefined){this.loc=loc;if(id.substr(0,loc.length)==loc)id=id.substr(loc.length+1)}this.id=id;if(pos!==undefined)this.pos=pos;else this.pos={}};Lich.TyCon.prototype=new Lich.Name;Lich.TyCon.prototype.toStringN=function(){return this.id};
Lich.TyCon.prototype.toStringQ=function(){return(this.loc===undefined?"":this.loc+".")+this.toStringN()};Lich.TyCon.prototype.toStringV=function(){return"type constructor "+this.toStringQ()};Lich.TyCon.prototype.toString=Lich.TyCon.prototype.toStringN;
Lich.DaCon=function(id,pos,isSymbol,loc){assert.ok(typeof isSymbol==="boolean");this.astType="dacon";if(loc!==undefined){this.loc=loc;if(id.substr(0,loc.length)==loc)id=id.substr(loc.length+1)}this.id=id;this.isSymbol=isSymbol;if(pos!==undefined)this.pos=pos;else this.pos={}};Lich.DaCon.prototype=new Lich.Name;Lich.DaCon.prototype.toStringN=function(){return this.isSymbol?"("+this.id+")":this.id};
Lich.DaCon.prototype.toStringQ=function(){var qid=this.loc===undefined?this.id:this.loc+"."+this.id;return this.isSymbol?"("+qid+")":qid};Lich.DaCon.prototype.toStringV=function(){return"data constructor "+this.toStringQ()};Lich.DaCon.prototype.toString=Lich.DaCon.prototype.toStringN;
Lich.VarName=function(id,pos,isSymbol,loc){assert.ok(typeof isSymbol==="boolean");this.astType="varname";if(loc!==undefined){this.loc=loc;if(id.substr(0,loc.length)==loc)id=id.substr(loc.length+1)}this.id=id;this.isSymbol=isSymbol;if(pos!==undefined)this.pos=pos;else this.pos={}};Lich.VarName.prototype=new Lich.Name;Lich.VarName.prototype.toStringN=function(){return this.isSymbol?"("+this.id+")":this.id};
Lich.VarName.prototype.toStringQ=function(){var qid=this.loc===undefined?this.id:this.loc+"."+this.id;return this.isSymbol?"("+qid+")":qid};Lich.VarName.prototype.toStringV=function(){return"variable "+this.toStringQ()};Lich.VarName.prototype.toString=Lich.VarName.prototype.toStringN;Lich.UnitDaCon=function(pos){if(pos!==undefined)this.pos=pos;else this.pos={}};Lich.UnitDaCon.prototype=new Lich.DaCon("()",{},false);Lich.NilDaCon=function(pos){if(pos!==undefined)this.pos=pos;else this.pos={}};
Lich.NilDaCon.prototype=new Lich.DaCon("[]",{},false);Lich.ConsDaCon=function(pos){if(pos!==undefined)this.pos=pos;else this.pos={}};Lich.ConsDaCon.prototype=new Lich.DaCon(":",{},true);Lich.TupleDaCon=function(numberOfParams,pos){var id="(";for(var ix=1;ix<numberOfParams;ix++)id+=",";id+=")";this.id=id;if(pos!==undefined)this.pos=pos;else this.pos={};this.numberOfParams=numberOfParams};Lich.TupleDaCon.prototype=new Lich.DaCon(null,{},false);
Lich.TupleTyCon=function(numberOfParams,pos){var id="(";for(var ix=1;ix<numberOfParams;ix++)id+=",";id+=")";this.id=id;if(pos!==undefined)this.pos=pos;else this.pos={};this.numberOfParams=numberOfParams};Lich.TupleTyCon.prototype=new Lich.TyCon(null,{});Lich.ConPat=function(con,pats,pos){this.astType="conpat";this.con=con;this.pats=pats;if(pos!==undefined)this.pos=pos;else this.pos={}};Lich.ConPat.prototype=new Lich.Name;Lich.ConPat.prototype.toStringN=function(){return this.con.toStringN()};
Lich.ConPat.prototype.toStringQ=function(){return this.con.toStringQ()};Lich.ConPat.prototype.toStringV=function(){return"data constructor "+this.toStringQ()};Lich.ConPat.prototype.toString=Lich.ConPat.prototype.toStringN;
Lich.showAST=function(){var showAST=function(ast){var sb=[];try{showAST2(sb,ast)}catch(err){if(err.message=="too much recursion"&&err.name=="InternalError")sb.unshift("too much recursion while showing: ");else Lich.post(err)}return sb.join("")};var showAST2=function(sb,ast,depth){var depthN=typeof depth=="undefined"?0:depth;var tabSpace=Array.apply(null,new Array(depthN)).map(String.prototype.valueOf," ").join("");sb.push("\n");sb.push(tabSpace);if(typeof ast==="string")sb.push('"'+ast.toString()+
'"');else if(typeof ast==="number")sb.push(ast.toString());else if(typeof ast==="boolean")sb.push(ast.toString());else if(ast instanceof Array){sb.push("[");sb.push(showNode(sb,ast,depthN));sb.push("]")}else if(ast instanceof Object){sb.push("{");var empty=true;for(k in ast)if(typeof ast[k]!=="function"){sb.push(k+": ");showAST2(sb,ast[k],depthN+1);sb.push(", ");empty=false}if(!empty)sb.pop();sb.push("}")}else if(ast===null)sb.push("null");else if(ast===undefined)sb.push("undefined");else throw new Error("unhandled case: "+
typeof ast);};var showNode=function(sb,l,depth){if(l.length==0)return;showNodeNE(sb,l,depth+1)};var showNodeNE=function(sb,l,depth){for(var i=0;i<l.length-1;i=i+1){showAST2(sb,l[i],depth+1);sb.push(", ")}showAST2(sb,l[l.length-1],depth+1)};return showAST}();Lich.FunType=function(types,pos){assert.ok(types.length!==undefined);assert.ok(types.length>1);assert.ok(types instanceof Array);this.name="funtype";this.types=types;if(pos!==undefined)this.pos=pos};Lich.FunType.prototype.toString=function(){var m=["("];for(var i=0;i<this.types.length;i++){m.push(this.types[i]);m.push(" -> ")}m.pop();m.push(")");return m.join("")};Lich.FunType.prototype.toStringQ=Lich.FunType.prototype.toString;
Lich.AppType=function(fun,arg,pos){assert.ok(fun!==undefined);assert.ok(arg!==undefined);this.name="apptype";this.lhs=fun;this.rhs=arg;if(pos!==undefined)this.pos=pos};Lich.AppType.prototype.toString=function(){return"("+this.lhs+" "+this.rhs+")"};Lich.AppType.prototype.toStringQ=Lich.AppType.prototype.toString;
Lich.ForallType=function(binds,type){this.name="forall";if(binds instanceof Array){this.binds={};for(var ix=0;ix<binds.length;ix++)this.binds[binds[ix]]=binds[ix]}else this.binds=binds;this.type=type};Lich.ForallType.prototype.toString=function(){var m=[];m.push("forall");for(var tv in this.binds){m.push(" ");m.push(tv.toString())}m.push(". ");m.push(this.type.toString());return m.join("")};Lich.ForallType.prototype.toStringQ=Lich.ForallType.prototype.toString;function Token(v,r,c,t){this.val=v;this.row=r;this.col=c;this.typ=t;this.toString=function(){var q=this.qual!==undefined?this.qual:"undefined";return"[ val: "+this.val+", row: "+this.row+", col: "+this.col+", typ: "+this.typ+", qual: "+q+"]"}}function Ind(c,r,b){this.col=c;this.row=r;this.isBlock=b;this.toString=function(){if(b)return"\u2020"+this.col+"\u2021";else return"<"+this.col+">"}}function BLOCKIND(){return true}function ROWIND(){return false};Lich.Parser.preL=function(input){var column=1;var line=1;var newBlock=false;var newLine=false;var inString=false;var result=[];var mkToken=function(tok,lin,col){var thing=new Token(tok.val,lin,col,tok.typ);if(tok.qual!==undefined)thing.qual=tok.qual;return thing};if(input[0].val==="\u2020"||input[0].val==="module"){result.push(mkToken(input[0],line,column));column+=input[0].val.length}else if(isWhite(input[0].val)){var lim=countvalues(input[0].val,"\n");if(lim){line+=lim;column=1}if(input[1].val!==
"\u2020"&&input[1].val!=="module")newBlock=true;try{column+=howLongWS(input[0].val,column)}catch(err){Lich.post("In program: \n\n"+Lich.showAST(input));throw err;}}else{result.push(new Ind(column,line,BLOCKIND()));column+=input[0].val.length;result.push(mkToken(input[0],line,column))}for(var i=1;i<input.length;i++)if(isWhite(input[i].val)&&!this.inString){var rows=countvalues(input[i].val,"\n");line+=rows;if(rows>0){column=1;newLine=true}try{column+=howLongWS(input[i].val,column)}catch(err){Lich.post("In program: \n\n"+
Lich.showAST(input));throw err;}}else{if(newBlock){if(input[i].val!=="\u2020"&&input[i+1])result.push(new Ind(column,line,BLOCKIND()));newBlock=false;newLine=false}else if(newLine){result.push(new Ind(column,line,ROWIND()));newLine=false}result.push(mkToken(input[i],line,column));column+=input[i].val.length;if(input[i].val==="where"||input[i].val==="let"||input[i].val==="do"||input[i].val==="of"||input[i].val==="receive")newBlock=true}return result};
function isWhite(input){var res;if(input.match(/\"/))return false;if(input instanceof Array)res=input.match(/\s/);else res=input.match(/\s/);if(res)return true;else return false}
function howLongWS(ws,indent){var sum=0;for(var i=0;i<ws.length;i++){var c=ws.charAt(i);switch(c){case " ":sum++;break;case "\t":do sum++;while((sum+indent)%8!=1);break;case "\n":sum=0;break;case "\r":break;default:throw new Error("Whitespace contained something that is not a newline or tab! Erroneous character code: "+ws.charCodeAt(i)+"in string: "+ws);}}return sum}function countvalues(arr,que){var i=arr.length;var j=0;while(i--)if(arr[i]===que)j++;return j}Lich.LibraryParser.preL=Lich.Parser.preL;var iterL=function(){this.stack=[];this.input=[];this.emptyBlock=false;this.recent;this.previous;this.yytext="";this.yylineno=0;this.yyleng=0;this.yyname="";this.pErr=false;this.hadAnError=false;var debugging=false;var troublemaker;if(debugging)this.debugArr=[];this.setInput=function(inp){this.input=inp.reverse()};this.lex=function(){if(this.hadAnError){this.hadAnError=false;this.pErr=false;this.updRecent(troublemaker);return this.yyname}var x=peek(this.input);if(this.emptyBlock)return new Token("\u2021",
x.row,x.col,"\u2021");if(this.input.length<=0)if(this.stack.length<=0){this.updRecent(new Token("EOF",Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,"EOF"));return this.yyname}else if(peek(this.stack)>0){this.updRecent(new Token("\u2021",Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,"\u2021"));this.stack.pop();return this.yyname}else throw new Error("Error: Unmatched { at EOF!");var what=x instanceof Ind&&x.isBlock?"BI":x instanceof Ind&&!x.isBlock?"RI":x instanceof Token&&x.val=="\u2020"?
"OB":x instanceof Token&&x.val=="\u2021"?"CB":x instanceof Token?"T":"ERR";switch(what){case "BI":if(this.stack.length===0)if(x.col>0){this.input.pop();this.stack.push(x.col);this.updRecent(new Token("\u2020",x.row,x.col,"\u2020"));return this.yyname}else throw new Error("Layout error at row "+x.row+", col "+x.col);else if(x.col>peek(this.stack)){this.stack.push(x.col);this.input.pop();this.updRecent(new Token("\u2020",x.row,x.col,"\u2020"));return this.yyname}else{this.emptyBlock=true;this.input.pop();
this.input.push(new Ind(x.col,x.row,ROWIND()));this.updRecent(new Token("\u2020",x.row,x.col,"\u2020"));return this.yyname}break;case "RI":if(this.stack.length>0&&x.col===peek(this.stack)){this.input.pop();this.updRecent(new Token(";",x.row,x.col,";"));return this.yyname}else if(this.stack.length>0&&x.col<peek(this.stack)){this.stack.pop();this.updRecent(new Token("\u2021",x.row,x.col,"\u2021"));return this.yyname}else{this.input.pop();return this.lex()}break;case "OB":this.input.pop();this.stack.push(0);
this.updRecent(x);return this.yyname;break;case "CB":if(peek(this.stack)===0){this.input.pop();this.stack.pop();this.updRecent(x);return this.yyname}else throw new Error("Layout error at row "+x.row+", col "+x.col);break;case "T":if(this.stack.length>0&&peek(this.stack)!==0&&this.pErr){this.stack.pop();this.pErr=false;this.hadAnError=true;troublemaker=this.recent;this.updRecent(new Token("\u2021",x.row,x.col,"\u2021"),"ERROR");return this.yyname}else{this.input.pop();this.updRecent(x);return this.yyname}break;
case "ERR":break;default:throw new Error("Something is srsly wrong with var what.");}};this.parseError=function(){if(this.stack.length>0&&peek(this.stack)!==0){this.pErr=true;if(debugging)console.log("calling parseError from lexer. stack is: "+this.stack+"\n"+"returning: true");return true}else{if(debugging)console.log("calling parseError from lexer. stack is: "+this.stack+"\n"+"returning: false");return false}};this.updRecent=function(token,sender){if(token instanceof Token){this.previous=this.recent;
this.recent=token;this.yytext=token.val;this.yylineno=token.row;this.yyleng=token.val.length;this.yyname=token.typ;this.yylloc={first_line:token.row,first_column:token.col,last_line:token.row,last_column:token.col+token.val.length};if(debugging)console.log("lexer returning token: "+this.recent+sender);if(debugging)this.debugArr.push(this.recent.val)}else throw new Error("There should be no elems not of type Token in input for lexer!");}};function peek(arr){return arr[arr.length-1]};Lich.parseType="library";Lich.libraryNamespace=[];Lich.ParseError=function(msg,pos){this.msg=msg;this.pos=pos};Lich.ParseError.prototype.toString=function(){return this.msg};
Lich.parse=function(input){Lich.parseType="interactive";if(typeof Lich.Lexer==="undefined"){Lich.Lexer=LichParser.lexer;Lich.Lexer.yy=LichParser.yy;Lich.Lexer.EOF=1;Lich.Lexer.yy.parseError=function(str,hash){if(Lich.Lexer.yy.lexer.debugArr!==undefined)console.log("parse error happened, lexer has so far returned: "+Lich.Lexer.yy.lexer.debugArr);if(!Lich.Lexer.yy.lexer.parseError())throw new Lich.ParseError(str+" expected: "+hash.expected+" Lexer returned: "+Lich.Lexer.yy.lexer.recent,Lich.Lexer.yy.lexer.yylloc);
}}LichParser.lexer=new iterL;Lich.Lexer.setInput(input);var x=new Array;var token;while(true){token=Lich.Lexer.lex();if(token==Lich.Lexer.EOF)break;x.push(token)}x.pop();var y=Lich.Parser.preL(x);return LichParser.parse(y)};
Lich.parseLibrary=function(input){Lich.parseType="library";Lich.libraryNamespace=[];if(typeof Lich.LibraryLexer==="undefined"){Lich.LibraryLexer=LichLibraryParser.lexer;Lich.LibraryLexer.yy=LichLibraryParser.yy;Lich.LibraryLexer.EOF=1;Lich.LibraryLexer.yy.parseError=function(str,hash){if(Lich.LibraryLexer.yy.lexer.debugArr!==undefined)console.log("parse error happened, lexer has so far returned: "+Lich.LibraryLexer.yy.lexer.debugArr);if(!Lich.LibraryLexer.yy.lexer.parseError())throw new Lich.ParseError(str+
" expected: "+hash.expected+" Lexer returned: "+Lich.LibraryLexer.yy.lexer.recent,Lich.LibraryLexer.yy.lexer.yylloc);}}LichLibraryParser.lexer=new iterL;Lich.LibraryLexer.setInput(input);var x=new Array;var token;while(true){token=Lich.LibraryLexer.lex();if(token==Lich.LibraryLexer.EOF)break;x.push(token)}x.pop();var y=Lich.LibraryParser.preL(x);return LichLibraryParser.parse(y)};var LichParser=function(){var parser={trace:function trace(){},yy:{},symbols_:{"error":2,"start_":3,"topexps":4,"EOF":5,"module_":6,"module":7,"modid":8,"where":9,"body":10,"(":11,"exports":12,")":13,"\u2020":14,"topdecls":15,"\u2021":16,"topdecls_nonempty":17,";":18,"topdecl":19,"decl":20,"impdecl":21,"dataexp":22,"synthdef":23,"percStream":24,"soloStream":25,"decls":26,"list_decl_comma_1":27,"var":28,"=":29,"rhs":30,"apats":31,"pat":32,"varop":33,"guardexp":34,"=>":35,"exp":36,"decl_fixity":37,
"infixl":38,"literal":39,"op_list_1_comma":40,"infixr":41,"infix":42,"exports_inner":43,",":44,"export":45,"qvar":46,"qtycon":47,"..":48,"list_cname_0_comma":49,"import":50,"imports":51,"hiding":52,"importjs":53,"string-lit":54,"list_import_1_comma":55,"import_a":56,"tycon":57,"exps":58,"topexp":59,"letdecl":60,"let":61,"topexpsA":62,"letdecls":63,"list_letdecl_comma_1":64,"funccomp":65,"funcstream":66,"datainst":67,"dataupdate":68,"classexp":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,"lexp":96,"binop":97,"if":98,"then":99,"else":100,"fexp":101,"$":102,"lambdaExp":103,"case":104,"of":105,"alts":106,"receive":107,"in":108,"qop":109,"do":110,"doList":111,"\\":112,"->":113,"synthArgs":114,"varid":115,"synthRhs":116,"+>":117,"percList":118,"|":119,"percMods":120,"percItem":121,"conid":122,"_":123,"[":124,"]":125,"percMod":126,"aexp":127,"~>":128,
"soloList":129,"soloMods":130,"soloItem":131,"float":132,"soloMod":133,"doItem":134,"<-":135,"vars":136,"alt":137,"grhs-list":138,"grhs":139,"wildcard":140,"otherwise":141,"list_cname_1_comma":142,"cname":143,"con":144,"gcon":145,"datalookup":146,"dictexp":147,"listexp":148,">>":149,"nothing":150,"Nothing":151,"dictexp_1_comma":152,"()":153,"dictpair":154,"data":155,"{":156,"datamems":157,"}":158,"enums":159,"::":160,"dataUpdates":161,"datamem":162,"dataUpdate":163,"list_exp_1_comma":164,"[]":165,
"qual":166,"list_qual_1_comma":167,".":168,"qconid":169,"qvarop":170,"qconop":171,"op":172,"conop":173,"consym":174,"`":175,"qvarsym":176,"qvarid":177,"gconsym":178,"varsym":179,"tyvars":180,"tyvar":181,"qcon":182,"list_1_comma":183,"qconsym":184,"lpat":185,"apat":186,"pat_var":187,"list_pat":188,"conlist":189,"lambda_pat":190,"@":191,"list_pat_1_comma":192,"lambda_args":193,"integer":194,"char":195,"True":196,"False":197,"$accept":0,"$end":1},terminals_:{2:"error",5:"EOF",7:"module",9:"where",11:"(",
13:")",14:"\u2020",16:"\u2021",18:";",29:"=",35:"=>",38:"infixl",41:"infixr",42:"infix",44:",",47:"qtycon",48:"..",50:"import",52:"hiding",53:"importjs",54:"string-lit",57:"tycon",61:"let",69:"classexp",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:".^",98:"if",99:"then",100:"else",102:"$",104:"case",105:"of",107:"receive",108:"in",110:"do",112:"\\",
113:"->",115:"varid",117:"+>",119:"|",122:"conid",123:"_",124:"[",125:"]",128:"~>",132:"float",135:"<-",141:"otherwise",149:">>",151:"Nothing",153:"()",155:"data",156:"{",158:"}",160:"::",165:"[]",168:".",169:"qconid",174:"consym",175:"`",176:"qvarsym",177:"qvarid",179:"varsym",181:"tyvar",184:"qconsym",191:"@",194:"integer",195:"char",196:"True",197:"False"},productions_:[0,[3,2],[6,4],[6,7],[6,1],[10,3],[10,0],[15,1],[17,3],[17,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,1],[26,2],[26,3],[26,3],[26,
4],[27,3],[27,1],[20,3],[20,4],[20,5],[20,7],[20,1],[23,3],[23,4],[30,1],[30,3],[37,3],[37,3],[37,3],[12,1],[12,2],[43,3],[43,1],[45,1],[45,2],[45,1],[45,4],[45,4],[21,2],[21,5],[21,6],[21,2],[51,1],[51,2],[51,1],[51,0],[55,3],[55,1],[56,1],[56,1],[56,4],[56,4],[58,3],[58,1],[59,1],[59,1],[59,1],[59,1],[59,1],[59,1],[59,2],[4,3],[62,3],[62,1],[63,2],[63,3],[64,3],[64,1],[60,2],[36,1],[36,1],[36,1],[36,1],[36,1],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,
3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,3],[36,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[96,6],[96,1],[96,3],[96,1],[96,6],[96,4],[96,4],[96,3],[96,4],[103,4],[114,1],[114,2],[116,2],[116,4],[24,3],[24,5],[118,1],[118,2],[121,1],[121,1],[121,3],[121,1],[121,3],[120,1],[120,2],[126,1],[126,1],[25,4],[25,6],
[25,8],[129,1],[129,2],[131,1],[131,3],[131,1],[131,3],[130,1],[130,2],[133,1],[133,1],[111,1],[111,3],[134,1],[134,3],[101,1],[101,2],[136,3],[136,1],[106,3],[106,1],[137,3],[34,3],[138,2],[138,1],[139,4],[139,4],[139,4],[49,1],[49,0],[142,3],[142,1],[143,1],[127,1],[127,1],[127,1],[127,3],[127,1],[127,1],[127,1],[127,3],[127,4],[127,4],[127,4],[127,4],[127,3],[127,1],[150,1],[147,3],[147,1],[152,3],[152,1],[154,3],[22,5],[22,6],[22,4],[146,3],[146,3],[159,3],[159,1],[68,4],[157,3],[157,1],[162,
1],[161,3],[161,1],[163,3],[67,2],[67,1],[148,3],[148,5],[148,7],[148,1],[148,5],[164,3],[164,1],[167,3],[167,1],[166,3],[166,1],[66,3],[66,3],[65,3],[65,3],[8,1],[8,1],[109,1],[109,1],[40,3],[40,1],[172,1],[172,1],[173,1],[173,3],[170,1],[170,1],[170,3],[171,1],[171,3],[33,1],[33,3],[180,2],[180,1],[144,1],[144,3],[182,1],[182,3],[182,1],[145,2],[145,2],[145,3],[145,1],[183,1],[183,2],[28,1],[28,3],[46,1],[46,3],[46,1],[178,1],[32,1],[185,1],[185,2],[31,1],[31,2],[186,1],[186,1],[186,1],[186,1],
[186,1],[186,3],[186,5],[186,1],[186,1],[186,2],[186,1],[186,3],[189,2],[189,1],[188,3],[188,1],[192,3],[192,1],[187,1],[187,1],[140,1],[190,3],[193,2],[193,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1]],performAction:function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return $$[$0-1];break;case 2:this.$={astType:"module",modid:$$[$0-2],body:$$[$0],pos:this._$};break;case 3:this.$={astType:"module",modid:$$[$0-5],exports:$$[$0-3],body:$$[$0],pos:this._$};
break;case 4:this.$={astType:"module",modid:new Lich.ModName("Main"),body:$$[$0],pos:this._$};break;case 5:var imps=[],decs=[],atdecs=false;for(var i=0;i<$$[$0-1].length;i++)if($$[$0-1][i].name=="impdecl"&&!atdecs)imps.push($$[$0-1][i]);else if($$[$0-1][i].name=="impdecl"&&atdecs)throw new Error("Parse error: import declaration in statement block at line "+$$[$0-1][i].pos.first_line);else{atdecs=true;decs.push($$[$0-1][i])}var prelude_imported=false;for(i=0;i<imps.length;i++)if(imps[i].modid=="Prelude"){prelude_imported=
true;break}if(!prelude_imported)imps.push({astType:"impdecl",modid:new Lich.ModName("Prelude")});this.$={astType:"body",impdecls:imps,topdecls:decs,pos:this._$};break;case 6:this.$={astType:"body",impdecls:[],topdecls:[],pos:this._$};break;case 7:this.$=$$[$0];break;case 8:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 9:this.$=[$$[$0]];break;case 10:this.$={astType:"topdecl-decl",decl:$$[$0],pos:this._$};break;case 11:this.$=$$[$0];break;case 12:this.$=$$[$0];break;case 13:this.$=$$[$0];break;
case 14:this.$=$$[$0];break;case 15:this.$=$$[$0];break;case 16:this.$=[];break;case 17:this.$=$$[$0-1];break;case 18:this.$=[];break;case 19:this.$=$$[$0-2];break;case 20:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 21:this.$=[$$[$0]];break;case 22:this.$={astType:"decl-fun",ident:$$[$0-2],args:[],rhs:$$[$0],pos:this._$};break;case 23:this.$={astType:"decl-fun",ident:$$[$0-3],args:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 24:this.$={astType:"decl-fun",ident:$$[$0-3],args:[$$[$0-4],$$[$0-2]],
rhs:$$[$0],pos:this._$,orig:"infix"};break;case 25:this.$={astType:"decl-fun",ident:$$[$0-4],args:[$$[$0-5],$$[$0-3]].concat($$[$0-1]),rhs:$$[$01],pos:this._$,orig:"infix"};break;case 26:this.$=$$[$0];break;case 27:this.$={astType:"synthdef",ident:$$[$0-2],args:[],rhs:$$[$0]};break;case 28:this.$={astType:"synthdef",ident:$$[$0-3],args:$$[$0-2],rhs:$$[$0]};break;case 29:this.$=$$[$0];break;case 30:this.$={astType:"fun-where",exp:$$[$0-2],decls:$$[$0],pos:this._$};break;case 31:this.$={astType:"fixity",
fix:"leftfix",num:$$[$0-1],ops:$$[$0],pos:this._$};break;case 32:this.$={astType:"fixity",fix:"rightfix",num:$$[$0-1],ops:$$[$0],pos:this._$};break;case 33:this.$={astType:"fixity",fix:"nonfix",num:$$[$0-1],ops:$$[$0],pos:this._$};break;case 34:this.$=$$[$0];break;case 35:this.$=$$[$0-1];break;case 36:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 37:this.$=[$$[$0]];break;case 38:this.$={astType:"export-qvar",exp:$$[$0],pos:this._$};break;case 39:this.$={astType:"export-module",exp:$$[$0],pos:this._$};
break;case 40:this.$={astType:"export-type-unspec",exp:$$[$0],pos:this._$};break;case 41:this.$={astType:"export-type-all",exp:$$[$0-3],pos:this._$};break;case 42:this.$={astType:"export-type-vars",exp:$$[$0-3],vars:$$[$0-1],pos:this._$};break;case 43:this.$={astType:"impdecl",modid:$$[$0],pos:this._$};break;case 44:this.$={astType:"impdecl",modid:$$[$0-3],hiding:false,imports:$$[$0-1],pos:this._$};break;case 45:this.$={astType:"impdecl",modid:$$[$0-4],hiding:true,imports:$$[$0-1],pos:this._$};break;
case 46:this.$={astType:"impjs",modid:$$[$0],hiding:false,imports:$$[$0],pos:this._$};break;case 47:this.$=$$[$0];break;case 48:this.$=$$[$0-1];break;case 49:this.$=[];break;case 50:this.$=[];break;case 51:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 52:this.$=[$$[$0]];break;case 53:this.$={astType:"import-var",varastType:$$[$0],pos:this._$};break;case 54:this.$={astType:"import-tycon",tycon:$$[$0],all:false,pos:this._$};break;case 55:this.$={astType:"import-tycon",tycon:$$[$0-3],all:true,pos:this._$};
break;case 56:this.$={astType:"import-tycon",tycon:$$[$0-3],all:false,list:$$[$0-1],pos:this._$};break;case 57:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 58:this.$=[$$[$0]];break;case 59:this.$={astType:"top-exp",exp:$$[$0]};break;case 60:this.$=$$[$0];break;case 61:this.$=$$[$0];break;case 62:this.$=$$[$0];break;case 63:this.$=$$[$0];break;case 64:this.$=$$[$0];break;case 65:this.$=$$[$0];break;case 66:this.$=$$[$0-1];break;case 67:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 68:this.$=
[$$[$0]];break;case 69:this.$=[];break;case 70:this.$=$$[$0-1];break;case 71:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 72:this.$=[$$[$0]];break;case 73:this.$={astType:"let-one",decl:$$[$0],pos:this._$};break;case 74:this.$=$$[$0];break;case 75:this.$=$$[$0];break;case 76:this.$=$$[$0];break;case 77:this.$=$$[$0];break;case 78:this.$=$$[$0];break;case 79:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 80:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-
2],rhs:$$[$0],pos:this._$};break;case 81:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 82:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 83:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 84:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 85:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 86:this.$=
{astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 87:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 88:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 89:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 90:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 91:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],
rhs:$$[$0],pos:this._$};break;case 92:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 93:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 94:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 95:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 96:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 97:this.$={astType:"binop-exp",
op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 98:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 99:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 100:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 101:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 102:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};
break;case 103:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 104:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 105:this.$=$$[$0];break;case 106:this.$=$$[$0];break;case 107:this.$=$$[$0];break;case 108:this.$=$$[$0];break;case 109:this.$=$$[$0];break;case 110:this.$=$$[$0];break;case 111:this.$=$$[$0];break;case 112:this.$=$$[$0];break;case 113:this.$=$$[$0];break;case 114:this.$=$$[$0];break;case 115:this.$=$$[$0];
break;case 116:this.$=$$[$0];break;case 117:this.$=$$[$0];break;case 118:this.$=$$[$0];break;case 119:this.$=$$[$0];break;case 120:this.$=$$[$0];break;case 121:this.$=$$[$0];break;case 122:this.$=$$[$0];break;case 123:this.$=$$[$0];break;case 124:this.$=$$[$0];break;case 125:this.$=$$[$0];break;case 126:this.$=$$[$0];break;case 127:this.$=$$[$0];break;case 128:this.$=$$[$0];break;case 129:this.$=$$[$0];break;case 130:this.$=$$[$0];break;case 131:this.$=$$[$0];break;case 132:this.$={astType:"ite",
e1:$$[$0-4],e2:$$[$0-2],e3:$$[$0],pos:this._$};break;case 133:this.$=$$[$0].length===1?$$[$0][0]:{astType:"application",exps:$$[$0],pos:this._$};break;case 134:this.$={astType:"function-application-op",lhs:$$[$0-2],rhs:$$[$0]};break;case 135:this.$=$$[$0];break;case 136:this.$={astType:"case",exp:$$[$0-4],alts:$$[$0-1],pos:this._$};break;case 137:this.$={astType:"receive",alts:$$[$0-1],pos:this._$};break;case 138:this.$={astType:"let",decls:$$[$0-2],exp:$$[$0],pos:this._$};break;case 139:this.$={astType:"binop-exp",
op:$$[$0-1].id.id,lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 140:this.$={astType:"do-exp",exps:$$[$0-1],pos:this._$};break;case 141:this.$={astType:"lambda",args:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 142:this.$=[{astType:"decl-fun",ident:{astType:"varname",id:$$[$0]},args:[],rhs:{astType:"float-lit",value:0},pos:this._$}];break;case 143:$$[$0-1].push({astType:"decl-fun",ident:{astType:"varname",id:$$[$0]},args:[],rhs:{astType:"float-lit",value:0},pos:this._$});this.$=$$[$0-1];break;case 144:this.$=
{astType:"fun-where",exp:$$[$0],decls:[],pos:this._$};break;case 145:this.$={astType:"fun-where",exp:$$[$0-2],decls:$$[$0],pos:this._$};break;case 146:this.$={astType:"percStream",id:$$[$0-2],list:$$[$0],modifiers:{astType:"percMods",list:[]}};break;case 147:this.$={astType:"percStream",id:$$[$0-4],list:$$[$0-2],modifiers:$$[$0]};break;case 148:this.$={astType:"percList",list:[$$[$0]]};break;case 149:$$[$0-1].list.push($$[$0]);this.$=$$[$0-1];break;case 150:this.$={astType:"varname",id:$$[$0]};break;
case 151:this.$={astType:"varname",id:$$[$0]};break;case 152:this.$=$$[$0-1];break;case 153:this.$={astType:"Nothing"};break;case 154:this.$=$$[$0-1];break;case 155:this.$={astType:"percMods",list:[$$[$0]]};break;case 156:$$[$0-1].list.push($$[$0]);this.$=$$[$0-1];break;case 157:this.$=$$[$0];break;case 158:this.$={astType:"Nothing"};break;case 159:this.$={astType:"soloStream",id:$$[$0-3],synth:'"'+$$[$0-1]+'"',list:$$[$0],mods:{astType:"soloMods",list:[]},rmods:{astType:"soloMods",list:[]}};break;
case 160:this.$={astType:"soloStream",id:$$[$0-5],synth:'"'+$$[$0-3]+'"',list:$$[$0-2],mods:$$[$0],rmods:{astType:"soloMods",list:[]}};break;case 161:this.$={astType:"soloStream",id:$$[$0-7],synth:'"'+$$[$0-5]+'"',list:$$[$0-4],mods:$$[$0-2],rmods:$$[$0]};break;case 162:this.$={astType:"soloList",list:[$$[$0]]};break;case 163:$$[$0-1].list.push($$[$0]);this.$=$$[$0-1];break;case 164:this.$={astType:"float-lit",value:Number($$[$0]),pos:this._$};break;case 165:this.$=$$[$0-1];break;case 166:this.$=
{astType:"Nothing"};break;case 167:this.$=$$[$0-1];break;case 168:this.$={astType:"soloMods",list:[$$[$0]]};break;case 169:$$[$0-1].list.push($$[$0]);this.$=$$[$0-1];break;case 170:this.$=$$[$0];break;case 171:this.$={astType:"Nothing"};break;case 172:this.$=[$$[$0]];break;case 173:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 174:this.$={astType:"doLambda",arg:"",exp:$$[$0]};break;case 175:this.$={astType:"doLambda",arg:$$[$0-2],exp:$$[$0]};break;case 176:this.$=[$$[$0]];break;case 177:$$[$0-
1].push($$[$0]);this.$=$$[$0-1];break;case 178:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 179:this.$=[$$[$0]];break;case 180:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 181:this.$=[$$[$0]];break;case 182:this.$={astType:"alt",pat:$$[$0-2],exp:$$[$0]};break;case 183:this.$={astType:"guard-fun",ident:$$[$0-2],args:$$[$0-1],guards:$$[$0],pos:this._$};break;case 184:$$[$0-1].push($$[$0]);this.$=$$[$0-1];break;case 185:this.$=[$$[$0]];break;case 186:this.$={astType:"grhs",e1:$$[$0-2],e2:$$[$0]};
break;case 187:this.$={astType:"grhs",e1:{astType:"boolean-lit",value:true,pos:this._$},e2:$$[$0]};break;case 188:this.$={astType:"grhs",e1:{astType:"boolean-lit",value:true,pos:this._$},e2:$$[$0]};break;case 189:this.$=$$[$0];break;case 190:this.$=[];break;case 191:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 192:this.$=[$$[$0]];break;case 193:this.$=$$[$0];break;case 194:this.$=$$[$0];break;case 195:this.$=$$[$0];break;case 196:this.$=$$[$0];break;case 197:this.$=$$[$0-1];break;case 198:this.$=
$$[$0];break;case 199:this.$=$$[$0];break;case 200:this.$=$$[$0];break;case 201:this.$={astType:"curried-binop-exp",op:$$[$0-1],pos:this._$};break;case 202:this.$={astType:"left-curried-binop-exp",op:$$[$0-1],lhs:$$[$0-2],pos:this._$};break;case 203:this.$={astType:"right-curried-binop-exp",op:$$[$0-2],rhs:$$[$0-1],pos:this._$};break;case 204:this.$={astType:"right-curried-binop-exp",op:$$[$0-2],rhs:$$[$0-1],pos:this._$};break;case 205:this.$={astType:"left-curried-binop-exp",op:$$[$0-1],lhs:$$[$0-
2],pos:this._$};break;case 206:this.$={astType:"curried-binop-exp",op:$$[$0-1],pos:this._$};break;case 207:this.$=$$[$0];break;case 208:this.$={astType:"Nothing"};break;case 209:this.$={astType:"dictionary",pairs:$$[$0-1]};break;case 210:this.$={astType:"dictionary",pairs:[]};break;case 211:this.$=$$[$0-2].concat($$[$0]);break;case 212:this.$=$$[$0];break;case 213:this.$=[$$[$0-2],$$[$0]];break;case 214:this.$={astType:"data-decl",id:$$[$0-3],members:$$[$0-1]};break;case 215:this.$={astType:"data-decl",
id:$$[$0-4],members:$$[$0-2]};break;case 216:this.$={astType:"data-enum",id:$$[$0-2],members:$$[$0]};break;case 217:this.$={astType:"data-lookup",data:$$[$0-2],member:$$[$0],pos:this._$};break;case 218:this.$={astType:"data-lookup",data:$$[$0-2],member:$$[$0],pos:this._$};break;case 219:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 220:this.$=[$$[$0]];break;case 221:this.$={astType:"data-update",data:$$[$0-3],members:$$[$0-1]};break;case 222:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 223:this.$=
[$$[$0]];break;case 224:this.$={astType:"data-mem",id:$$[$0]};break;case 225:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 226:this.$=[$$[$0]];break;case 227:this.$={astType:"data-mem",id:$$[$0-2],exp:$$[$0]};break;case 228:this.$={astType:"data-inst",id:$$[$0-1],members:$$[$0]};break;case 229:this.$={astType:"data-inst",id:$$[$0],members:[]};break;case 230:this.$={astType:"listexp",members:[$$[$0-1]].concat($$[$0]),pos:this._$};break;case 231:this.$={astType:"listrange",lower:$$[$0-3],upper:$$[$0-
1],pos:this._$};break;case 232:this.$={astType:"listrange",lower:$$[$0-5],upper:$$[$0-1],skip:$$[$0-3],pos:this._$};break;case 233:this.$={astType:"listexp",members:[],pos:this._$};break;case 234:this.$={astType:"list-comprehension",exp:$$[$0-3],generators:[$$[$0-1]].concat($$[$0]),pos:this._$};break;case 235:this.$=[$$[$0-1]].concat($$[$0]);break;case 236:this.$=[];break;case 237:this.$=[$$[$0-1]].concat($$[$0]);break;case 238:this.$=[];break;case 239:this.$={astType:"decl-fun",ident:$$[$0-2],args:[],
rhs:$$[$0],pos:this._$};break;case 240:this.$=$$[$0];break;case 241:this.$={astType:"function-stream",exps:[$$[$0-2],$$[$0]]};break;case 242:$$[$0-2].exps.push($$[$0]);this.$=$$[$0-2];break;case 243:this.$={astType:"function-composition",exps:[$$[$0-2],$$[$0]]};break;case 244:$$[$0].exps=[$$[$0-2]].concat($$[$0].exps);this.$=$$[$0];break;case 245:this.$=new Lich.ModName($$[$0],this._$,yy.lexer.previous.qual);break;case 246:this.$=new Lich.ModName($$[$0],this._$);break;case 247:this.$={astType:"qop",
id:$$[$0],pos:this._$};break;case 248:this.$={astType:"qop",id:$$[$0],pos:this._$};break;case 249:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 250:this.$=[$$[$0]];break;case 251:this.$=$$[$0];break;case 252:this.$=$$[$0];break;case 253:this.$=new Lich.DaCon($$[$0],this._$,true);break;case 254:this.$=new Lich.DaCon($$[$0-1],this._$,false);break;case 255:this.$=new Lich.VarName($$[$0],this._$,true,yy.lexer.previous.qual);break;case 256:this.$=$$[$0];break;case 257:this.$=new Lich.VarName($$[$0-
1],this._$,false,yy.lexer.previous.qual);break;case 258:this.$=$$[$0];break;case 259:this.$=new Lich.DaCon($$[$0-1],this._$,false,yy.lexer.previous.qual);break;case 260:this.$=new Lich.VarName($$[$0],this._$,true);break;case 261:this.$=new Lich.VarName($$[$0-1],this._$,false);break;case 262:$$[$0-1].push($$[$0]);this.$=$$[$0-1];break;case 263:this.$=[$$[$0]];break;case 264:this.$=new Lich.VarName($$[$0],this._$,false);break;case 265:this.$=new Lich.DaCon($$[$0-1],this._$,true);break;case 266:this.$=
new Lich.DaCon($$[$0],this._$,false,yy.lexer.previous.qual);break;case 267:this.$=$$[$0-1];break;case 268:this.$=$$[$0];break;case 269:this.$=new Lich.UnitDaCon(this._$);break;case 270:this.$=new Lich.NilDaCon(this._$);break;case 271:this.$=new Lich.TupleDaCon($$[$0-1]+1,this._$);break;case 272:this.$=$$[$0];break;case 273:this.$=1;break;case 274:this.$=$$[$0-1]+1;break;case 275:this.$={astType:"varname",id:$$[$0]};break;case 276:this.$=new Lich.VarName($$[$0-1],this._$,true);break;case 277:this.$=
new Lich.VarName($$[$0],this._$,false,yy.lexer.previous.qual);break;case 278:this.$=new Lich.VarName($$[$0-1],this._$,true,yy.lexer.previous.qual);break;case 279:this.$=$$[$0];break;case 280:this.$=new Lich.DaCon($$[$0],this._$,true,yy.lexer.previous.qual);break;case 281:this.$=$$[$0];break;case 282:this.$=$$[$0];break;case 283:this.$={astType:"conpat",con:$$[$0-1],pats:$$[$0]};break;case 284:this.$=[$$[$0]];break;case 285:$$[$0-1].push($$[$0]);this.$=$$[$0-1];break;case 286:this.$=$$[$0];break;case 287:this.$=
$$[$0];break;case 288:this.$=$$[$0];break;case 289:this.$={astType:"literal-match",value:$$[$0],pos:this._$};break;case 290:this.$=$$[$0];break;case 291:this.$=$$[$0-1];break;case 292:this.$={astType:"head-tail-match",head:$$[$0-3],tail:$$[$0-1]};break;case 293:this.$=$$[$0];break;case 294:this.$={astType:"data-match",id:$$[$0],members:[]};break;case 295:this.$={astType:"data-match",id:$$[$0-1],members:$$[$0]};break;case 296:this.$=$$[$0];break;case 297:this.$={astType:"at-match",id:$$[$0-2],pat:$$[$0]};
break;case 298:$$[$0-1].push($$[$0]);this.$=$$[$0-1];break;case 299:this.$=[$$[$0]];break;case 300:this.$={astType:"list-match",list:$$[$0-1]};break;case 301:this.$={astType:"list-match",list:[]};break;case 302:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 303:this.$=[$$[$0]];break;case 304:this.$=$$[$0];break;case 305:this.$=$$[$0];break;case 306:this.$={astType:"wildcard",id:$$[$0],pos:this._$};break;case 307:this.$={astType:"lambda-pat",numArgs:$$[$0-1].length};break;case 308:$$[$0-1].push($$[$0]);
this.$=$$[$0-1];break;case 309:this.$=[$$[$0]];break;case 310:this.$={astType:"float-lit",value:Number($$[$0]),pos:this._$};break;case 311:this.$={astType:"string-lit",value:$$[$0],pos:this._$};break;case 312:this.$={astType:"char-lit",value:$$[$0],pos:this._$};break;case 313:this.$={astType:"float-lit",value:Number($$[$0]),pos:this._$};break;case 314:this.$={astType:"boolean-lit",value:true,pos:this._$};break;case 315:this.$={astType:"boolean-lit",value:false,pos:this._$};break}},table:[{3:1,4:2,
14:[1,3]},{1:[3]},{5:[1,4]},{11:[1,36],21:10,22:8,24:11,25:12,28:42,36:7,39:35,46:33,50:[1,21],53:[1,22],54:[1,46],59:6,60:9,61:[1,13],62:5,65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,23],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],155:[1,20],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{1:[2,1]},{16:[1,56],18:[1,57]},{16:[2,68],
18:[2,68]},{16:[2,59],18:[2,59],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{16:[2,60],18:[2,60]},{16:[2,61],18:[2,61]},{16:[2,62],18:[2,62]},{16:[2,63],
18:[2,63]},{16:[2,64],18:[2,64]},{11:[1,103],14:[1,105],20:99,23:98,26:100,28:101,32:102,34:104,39:111,54:[1,46],112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,144:55,145:109,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,185:107,186:108,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,74],9:[2,74],13:[2,74],16:[2,74],18:[2,74],29:[2,74],44:[2,74],48:[2,74],70:[2,74],71:[2,74],72:[2,74],73:[2,74],74:[2,74],75:[2,74],76:[2,74],77:[2,74],78:[2,74],
79:[2,74],80:[2,74],81:[2,74],82:[2,74],83:[2,74],84:[2,74],85:[2,74],86:[2,74],87:[2,74],88:[2,74],89:[2,74],90:[2,74],91:[2,74],92:[2,74],93:[2,74],94:[2,74],95:[2,74],99:[2,74],100:[2,74],102:[2,74],105:[2,74],119:[2,74],125:[2,74],149:[2,74],156:[2,74],158:[2,74],160:[2,74],168:[2,74],175:[2,74],176:[2,74],179:[2,74],184:[2,74]},{2:[2,75],9:[2,75],13:[2,75],16:[2,75],18:[2,75],29:[2,75],44:[2,75],48:[2,75],70:[2,75],71:[2,75],72:[2,75],73:[2,75],74:[2,75],75:[2,75],76:[2,75],77:[2,75],78:[2,75],
79:[2,75],80:[2,75],81:[2,75],82:[2,75],83:[2,75],84:[2,75],85:[2,75],86:[2,75],87:[2,75],88:[2,75],89:[2,75],90:[2,75],91:[2,75],92:[2,75],93:[2,75],94:[2,75],95:[2,75],99:[2,75],100:[2,75],102:[2,75],105:[2,75],119:[2,75],125:[2,75],149:[1,120],156:[2,75],158:[2,75],160:[2,75],168:[2,75],175:[2,75],176:[2,75],179:[2,75],184:[2,75]},{2:[2,76],9:[2,76],13:[2,76],16:[2,76],18:[2,76],29:[2,76],44:[2,76],48:[2,76],70:[2,76],71:[2,76],72:[2,76],73:[2,76],74:[2,76],75:[2,76],76:[2,76],77:[2,76],78:[2,
76],79:[2,76],80:[2,76],81:[2,76],82:[2,76],83:[2,76],84:[2,76],85:[2,76],86:[2,76],87:[2,76],88:[2,76],89:[2,76],90:[2,76],91:[2,76],92:[2,76],93:[2,76],94:[2,76],95:[2,76],99:[2,76],100:[2,76],102:[2,76],105:[2,76],119:[2,76],125:[2,76],149:[2,76],156:[2,76],158:[2,76],160:[2,76],168:[2,76],175:[2,76],176:[2,76],179:[2,76],184:[2,76]},{2:[2,77],9:[2,77],13:[2,77],16:[2,77],18:[2,77],29:[2,77],44:[2,77],48:[2,77],70:[2,77],71:[2,77],72:[2,77],73:[2,77],74:[2,77],75:[2,77],76:[2,77],77:[2,77],78:[2,
77],79:[2,77],80:[2,77],81:[2,77],82:[2,77],83:[2,77],84:[2,77],85:[2,77],86:[2,77],87:[2,77],88:[2,77],89:[2,77],90:[2,77],91:[2,77],92:[2,77],93:[2,77],94:[2,77],95:[2,77],99:[2,77],100:[2,77],102:[2,77],105:[2,77],119:[2,77],125:[2,77],149:[2,77],156:[2,77],158:[2,77],160:[2,77],168:[2,77],175:[2,77],176:[2,77],179:[2,77],184:[2,77]},{2:[2,78],9:[2,78],13:[2,78],16:[2,78],18:[2,78],29:[2,78],44:[2,78],48:[2,78],70:[2,78],71:[2,78],72:[2,78],73:[2,78],74:[2,78],75:[2,78],76:[2,78],77:[2,78],78:[2,
78],79:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78],86:[2,78],87:[2,78],88:[2,78],89:[2,78],90:[2,78],91:[2,78],92:[2,78],93:[2,78],94:[2,78],95:[2,78],99:[2,78],100:[2,78],102:[2,78],105:[2,78],119:[2,78],125:[2,78],149:[2,78],156:[2,78],158:[2,78],160:[2,78],168:[2,78],175:[2,78],176:[2,78],179:[2,78],184:[2,78]},{2:[2,105],9:[2,105],13:[2,105],16:[2,105],18:[2,105],29:[2,105],44:[2,105],48:[2,105],70:[2,105],71:[2,105],72:[2,105],73:[2,105],74:[2,105],75:[2,105],76:[2,105],
77:[2,105],78:[2,105],79:[2,105],80:[2,105],81:[2,105],82:[2,105],83:[2,105],84:[2,105],85:[2,105],86:[2,105],87:[2,105],88:[2,105],89:[2,105],90:[2,105],91:[2,105],92:[2,105],93:[2,105],94:[2,105],95:[2,105],99:[2,105],100:[2,105],102:[2,105],105:[2,105],119:[2,105],125:[2,105],149:[2,105],156:[2,105],158:[2,105],160:[2,105],168:[2,105],175:[2,105],176:[2,105],179:[2,105],184:[2,105]},{122:[1,121]},{8:122,122:[1,124],169:[1,123]},{54:[1,125]},{11:[2,275],16:[2,275],18:[2,275],54:[2,275],61:[2,275],
69:[2,275],70:[2,275],71:[2,275],72:[2,275],73:[2,275],74:[2,275],75:[2,275],76:[2,275],77:[2,275],78:[2,275],79:[2,275],80:[2,275],81:[2,275],82:[2,275],83:[2,275],84:[2,275],85:[2,275],86:[2,275],87:[2,275],88:[2,275],89:[2,275],90:[2,275],91:[2,275],92:[2,275],93:[2,275],94:[2,275],95:[2,275],98:[2,275],102:[2,275],104:[2,275],107:[2,275],110:[2,275],112:[2,275],115:[2,275],117:[1,126],122:[2,275],124:[2,275],128:[1,127],132:[2,275],149:[2,275],151:[2,275],153:[2,275],156:[2,275],160:[2,275],165:[2,
275],168:[2,275],169:[2,275],175:[2,275],176:[2,275],177:[2,275],179:[2,275],184:[2,275],194:[2,275],195:[2,275],196:[2,275],197:[2,275]},{2:[2,229],9:[2,229],11:[1,36],13:[2,229],16:[2,229],18:[2,229],28:42,29:[2,229],36:129,39:35,44:[2,229],46:33,48:[2,229],54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],70:[2,229],71:[2,229],72:[2,229],73:[2,229],74:[2,229],75:[2,229],76:[2,229],77:[2,229],78:[2,229],79:[2,229],80:[2,229],81:[2,229],82:[2,229],83:[2,229],84:[2,229],85:[2,229],86:[2,229],
87:[2,229],88:[2,229],89:[2,229],90:[2,229],91:[2,229],92:[2,229],93:[2,229],94:[2,229],95:[2,229],96:19,98:[1,25],99:[2,229],100:[2,229],101:128,102:[2,229],103:27,104:[1,28],105:[2,229],107:[1,29],110:[1,30],112:[1,32],115:[1,130],119:[2,229],122:[1,24],123:[2,229],124:[1,43],125:[2,229],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,149:[2,229],150:40,151:[1,53],153:[1,51],156:[2,229],158:[2,229],160:[2,229],165:[1,52],168:[2,229],169:[1,54],175:[2,229],176:[2,229],177:[1,41],179:[2,229],
182:44,184:[2,229],194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:132,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,133],9:[2,133],11:[1,36],13:[2,133],16:[2,133],18:[2,133],28:42,29:[2,
133],36:129,39:35,44:[2,133],46:33,48:[2,133],54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],70:[2,133],71:[2,133],72:[2,133],73:[2,133],74:[2,133],75:[2,133],76:[2,133],77:[2,133],78:[2,133],79:[2,133],80:[2,133],81:[2,133],82:[2,133],83:[2,133],84:[2,133],85:[2,133],86:[2,133],87:[2,133],88:[2,133],89:[2,133],90:[2,133],91:[2,133],92:[2,133],93:[2,133],94:[2,133],95:[2,133],96:19,98:[1,25],99:[2,133],100:[2,133],101:26,102:[2,133],103:27,104:[1,28],105:[2,133],107:[1,29],110:[1,30],112:[1,
32],115:[1,130],119:[2,133],122:[1,24],124:[1,43],125:[2,133],127:133,132:[1,48],144:55,145:34,146:37,147:38,148:39,149:[2,133],150:40,151:[1,53],153:[1,51],156:[2,133],158:[2,133],160:[2,133],165:[1,52],168:[2,133],169:[1,54],175:[2,133],176:[2,133],177:[1,41],179:[2,133],182:44,184:[2,133],194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,135],9:[2,135],13:[2,135],16:[2,135],18:[2,135],29:[2,135],44:[2,135],48:[2,135],70:[2,135],71:[2,135],72:[2,135],73:[2,135],74:[2,135],75:[2,135],76:[2,135],
77:[2,135],78:[2,135],79:[2,135],80:[2,135],81:[2,135],82:[2,135],83:[2,135],84:[2,135],85:[2,135],86:[2,135],87:[2,135],88:[2,135],89:[2,135],90:[2,135],91:[2,135],92:[2,135],93:[2,135],94:[2,135],95:[2,135],99:[2,135],100:[2,135],102:[2,135],105:[2,135],119:[2,135],125:[2,135],149:[2,135],156:[2,135],158:[2,135],160:[2,135],168:[2,135],175:[2,135],176:[2,135],179:[2,135],184:[2,135]},{11:[1,36],28:42,36:134,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,
103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{14:[1,135]},{14:[1,136]},{2:[2,176],9:[2,176],11:[2,176],13:[2,176],16:[2,176],18:[2,176],29:[2,176],44:[2,176],48:[2,176],54:[2,176],61:[2,176],69:[2,176],70:[2,176],71:[2,176],72:[2,176],73:[2,176],74:[2,176],75:[2,176],76:[2,176],77:[2,176],78:[2,
176],79:[2,176],80:[2,176],81:[2,176],82:[2,176],83:[2,176],84:[2,176],85:[2,176],86:[2,176],87:[2,176],88:[2,176],89:[2,176],90:[2,176],91:[2,176],92:[2,176],93:[2,176],94:[2,176],95:[2,176],98:[2,176],99:[2,176],100:[2,176],102:[2,176],104:[2,176],105:[2,176],107:[2,176],110:[2,176],112:[2,176],115:[2,176],119:[2,176],122:[2,176],124:[2,176],125:[2,176],132:[2,176],149:[2,176],151:[2,176],153:[2,176],156:[2,176],158:[2,176],160:[2,176],165:[2,176],168:[2,176],169:[2,176],175:[2,176],176:[2,176],
177:[2,176],179:[2,176],184:[2,176],194:[2,176],195:[2,176],196:[2,176],197:[2,176]},{11:[1,141],28:139,31:137,39:111,54:[1,46],112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,144:55,145:140,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,186:138,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,194],9:[2,194],11:[2,194],13:[2,194],16:[2,194],18:[2,194],29:[2,194],44:[2,194],48:[2,194],54:[2,194],61:[2,194],69:[2,194],70:[2,194],71:[2,194],72:[2,194],
73:[2,194],74:[2,194],75:[2,194],76:[2,194],77:[2,194],78:[2,194],79:[2,194],80:[2,194],81:[2,194],82:[2,194],83:[2,194],84:[2,194],85:[2,194],86:[2,194],87:[2,194],88:[2,194],89:[2,194],90:[2,194],91:[2,194],92:[2,194],93:[2,194],94:[2,194],95:[2,194],98:[2,194],99:[2,194],100:[2,194],102:[2,194],104:[2,194],105:[2,194],107:[2,194],110:[2,194],112:[2,194],115:[2,194],119:[2,194],122:[2,194],123:[2,194],124:[2,194],125:[2,194],132:[2,194],149:[2,194],151:[2,194],153:[2,194],156:[2,194],158:[2,194],
160:[2,194],165:[2,194],168:[2,194],169:[2,194],175:[2,194],176:[2,194],177:[2,194],179:[2,194],184:[2,194],194:[2,194],195:[2,194],196:[2,194],197:[2,194]},{2:[2,195],9:[2,195],11:[2,195],13:[2,195],16:[2,195],18:[2,195],29:[2,195],44:[2,195],48:[2,195],54:[2,195],61:[2,195],69:[2,195],70:[2,195],71:[2,195],72:[2,195],73:[2,195],74:[2,195],75:[2,195],76:[2,195],77:[2,195],78:[2,195],79:[2,195],80:[2,195],81:[2,195],82:[2,195],83:[2,195],84:[2,195],85:[2,195],86:[2,195],87:[2,195],88:[2,195],89:[2,
195],90:[2,195],91:[2,195],92:[2,195],93:[2,195],94:[2,195],95:[2,195],98:[2,195],99:[2,195],100:[2,195],102:[2,195],104:[2,195],105:[2,195],107:[2,195],110:[2,195],112:[2,195],115:[2,195],119:[2,195],122:[2,195],123:[2,195],124:[2,195],125:[2,195],132:[2,195],149:[2,195],151:[2,195],153:[2,195],156:[2,195],158:[2,195],160:[2,195],165:[2,195],168:[2,195],169:[2,195],175:[2,195],176:[2,195],177:[2,195],179:[2,195],184:[2,195],194:[2,195],195:[2,195],196:[2,195],197:[2,195]},{2:[2,196],9:[2,196],11:[2,
196],13:[2,196],16:[2,196],18:[2,196],29:[2,196],44:[2,196],48:[2,196],54:[2,196],61:[2,196],69:[2,196],70:[2,196],71:[2,196],72:[2,196],73:[2,196],74:[2,196],75:[2,196],76:[2,196],77:[2,196],78:[2,196],79:[2,196],80:[2,196],81:[2,196],82:[2,196],83:[2,196],84:[2,196],85:[2,196],86:[2,196],87:[2,196],88:[2,196],89:[2,196],90:[2,196],91:[2,196],92:[2,196],93:[2,196],94:[2,196],95:[2,196],98:[2,196],99:[2,196],100:[2,196],102:[2,196],104:[2,196],105:[2,196],107:[2,196],110:[2,196],112:[2,196],115:[2,
196],119:[2,196],122:[2,196],123:[2,196],124:[2,196],125:[2,196],132:[2,196],149:[2,196],151:[2,196],153:[2,196],156:[2,196],158:[2,196],160:[2,196],165:[2,196],168:[2,196],169:[2,196],175:[2,196],176:[2,196],177:[2,196],179:[2,196],184:[2,196],194:[2,196],195:[2,196],196:[2,196],197:[2,196]},{11:[1,36],13:[1,146],28:42,36:142,39:35,44:[1,178],46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],70:[1,152],71:[1,153],72:[1,154],73:[1,155],74:[1,156],75:[1,157],76:[1,158],77:[1,159],78:[1,
160],79:[1,161],80:[1,162],81:[1,163],82:[1,164],83:[1,165],84:[1,166],85:[1,167],86:[1,168],87:[1,169],88:[1,170],89:[1,171],90:[1,172],91:[1,173],92:[1,174],93:[1,175],94:[1,176],95:[1,177],96:19,97:143,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,149:[1,144],150:40,151:[1,53],152:148,153:[1,51],154:179,165:[1,52],169:[1,54],174:[1,151],176:[1,145],177:[1,41],178:150,179:[1,149],182:44,
183:147,184:[1,97],194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,198],9:[2,198],11:[2,198],13:[2,198],16:[2,198],18:[2,198],29:[2,198],44:[2,198],48:[2,198],54:[2,198],61:[2,198],69:[2,198],70:[2,198],71:[2,198],72:[2,198],73:[2,198],74:[2,198],75:[2,198],76:[2,198],77:[2,198],78:[2,198],79:[2,198],80:[2,198],81:[2,198],82:[2,198],83:[2,198],84:[2,198],85:[2,198],86:[2,198],87:[2,198],88:[2,198],89:[2,198],90:[2,198],91:[2,198],92:[2,198],93:[2,198],94:[2,198],95:[2,198],98:[2,198],99:[2,198],
100:[2,198],102:[2,198],104:[2,198],105:[2,198],107:[2,198],110:[2,198],112:[2,198],115:[2,198],119:[2,198],122:[2,198],123:[2,198],124:[2,198],125:[2,198],132:[2,198],149:[2,198],151:[2,198],153:[2,198],156:[2,198],158:[2,198],160:[2,198],165:[2,198],168:[2,198],169:[2,198],175:[2,198],176:[2,198],177:[2,198],179:[2,198],184:[2,198],194:[2,198],195:[2,198],196:[2,198],197:[2,198]},{2:[2,199],9:[2,199],11:[2,199],13:[2,199],16:[2,199],18:[2,199],29:[2,199],44:[2,199],48:[2,199],54:[2,199],61:[2,199],
69:[2,199],70:[2,199],71:[2,199],72:[2,199],73:[2,199],74:[2,199],75:[2,199],76:[2,199],77:[2,199],78:[2,199],79:[2,199],80:[2,199],81:[2,199],82:[2,199],83:[2,199],84:[2,199],85:[2,199],86:[2,199],87:[2,199],88:[2,199],89:[2,199],90:[2,199],91:[2,199],92:[2,199],93:[2,199],94:[2,199],95:[2,199],98:[2,199],99:[2,199],100:[2,199],102:[2,199],104:[2,199],105:[2,199],107:[2,199],110:[2,199],112:[2,199],115:[2,199],119:[2,199],122:[2,199],123:[2,199],124:[2,199],125:[2,199],132:[2,199],149:[2,199],151:[2,
199],153:[2,199],156:[2,199],158:[2,199],160:[2,199],165:[2,199],168:[2,199],169:[2,199],175:[2,199],176:[2,199],177:[2,199],179:[2,199],184:[2,199],194:[2,199],195:[2,199],196:[2,199],197:[2,199]},{2:[2,200],9:[2,200],11:[2,200],13:[2,200],16:[2,200],18:[2,200],29:[2,200],44:[2,200],48:[2,200],54:[2,200],61:[2,200],69:[2,200],70:[2,200],71:[2,200],72:[2,200],73:[2,200],74:[2,200],75:[2,200],76:[2,200],77:[2,200],78:[2,200],79:[2,200],80:[2,200],81:[2,200],82:[2,200],83:[2,200],84:[2,200],85:[2,200],
86:[2,200],87:[2,200],88:[2,200],89:[2,200],90:[2,200],91:[2,200],92:[2,200],93:[2,200],94:[2,200],95:[2,200],98:[2,200],99:[2,200],100:[2,200],102:[2,200],104:[2,200],105:[2,200],107:[2,200],110:[2,200],112:[2,200],115:[2,200],119:[2,200],122:[2,200],123:[2,200],124:[2,200],125:[2,200],132:[2,200],149:[2,200],151:[2,200],153:[2,200],156:[2,200],158:[2,200],160:[2,200],165:[2,200],168:[2,200],169:[2,200],175:[2,200],176:[2,200],177:[2,200],179:[2,200],184:[2,200],194:[2,200],195:[2,200],196:[2,200],
197:[2,200]},{2:[2,207],9:[2,207],11:[2,207],13:[2,207],16:[2,207],18:[2,207],29:[2,207],44:[2,207],48:[2,207],54:[2,207],61:[2,207],69:[2,207],70:[2,207],71:[2,207],72:[2,207],73:[2,207],74:[2,207],75:[2,207],76:[2,207],77:[2,207],78:[2,207],79:[2,207],80:[2,207],81:[2,207],82:[2,207],83:[2,207],84:[2,207],85:[2,207],86:[2,207],87:[2,207],88:[2,207],89:[2,207],90:[2,207],91:[2,207],92:[2,207],93:[2,207],94:[2,207],95:[2,207],98:[2,207],99:[2,207],100:[2,207],102:[2,207],104:[2,207],105:[2,207],107:[2,
207],110:[2,207],112:[2,207],115:[2,207],119:[2,207],122:[2,207],123:[2,207],124:[2,207],125:[2,207],132:[2,207],149:[2,207],151:[2,207],153:[2,207],156:[2,207],158:[2,207],160:[2,207],165:[2,207],168:[2,207],169:[2,207],175:[2,207],176:[2,207],177:[2,207],179:[2,207],184:[2,207],194:[2,207],195:[2,207],196:[2,207],197:[2,207]},{2:[2,277],9:[2,277],11:[2,277],13:[2,277],16:[2,277],18:[2,277],29:[2,277],44:[2,277],48:[2,277],54:[2,277],61:[2,277],69:[2,277],70:[2,277],71:[2,277],72:[2,277],73:[2,277],
74:[2,277],75:[2,277],76:[2,277],77:[2,277],78:[2,277],79:[2,277],80:[2,277],81:[2,277],82:[2,277],83:[2,277],84:[2,277],85:[2,277],86:[2,277],87:[2,277],88:[2,277],89:[2,277],90:[2,277],91:[2,277],92:[2,277],93:[2,277],94:[2,277],95:[2,277],98:[2,277],99:[2,277],100:[2,277],102:[2,277],104:[2,277],105:[2,277],107:[2,277],110:[2,277],112:[2,277],115:[2,277],119:[2,277],122:[2,277],123:[2,277],124:[2,277],125:[2,277],132:[2,277],149:[2,277],151:[2,277],153:[2,277],156:[2,277],158:[2,277],160:[2,277],
165:[2,277],168:[2,277],169:[2,277],175:[2,277],176:[2,277],177:[2,277],179:[2,277],184:[2,277],194:[2,277],195:[2,277],196:[2,277],197:[2,277]},{2:[2,279],9:[2,279],11:[2,279],13:[2,279],16:[2,279],18:[2,279],29:[2,279],44:[2,279],48:[2,279],54:[2,279],61:[2,279],69:[2,279],70:[2,279],71:[2,279],72:[2,279],73:[2,279],74:[2,279],75:[2,279],76:[2,279],77:[2,279],78:[2,279],79:[2,279],80:[2,279],81:[2,279],82:[2,279],83:[2,279],84:[2,279],85:[2,279],86:[2,279],87:[2,279],88:[2,279],89:[2,279],90:[2,
279],91:[2,279],92:[2,279],93:[2,279],94:[2,279],95:[2,279],98:[2,279],99:[2,279],100:[2,279],102:[2,279],104:[2,279],105:[2,279],107:[2,279],110:[2,279],112:[2,279],115:[2,279],119:[2,279],122:[2,279],123:[2,279],124:[2,279],125:[2,279],132:[2,279],149:[2,279],151:[2,279],153:[2,279],156:[2,279],158:[2,279],160:[2,279],165:[2,279],168:[2,279],169:[2,279],175:[2,279],176:[2,279],177:[2,279],179:[2,279],184:[2,279],194:[2,279],195:[2,279],196:[2,279],197:[2,279]},{11:[1,36],28:42,36:181,39:35,46:33,
54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],125:[1,180],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,272],9:[2,272],11:[2,272],13:[2,272],16:[2,272],18:[2,272],29:[2,272],35:[2,272],44:[2,272],48:[2,272],54:[2,272],61:[2,272],69:[2,272],70:[2,272],71:[2,
272],72:[2,272],73:[2,272],74:[2,272],75:[2,272],76:[2,272],77:[2,272],78:[2,272],79:[2,272],80:[2,272],81:[2,272],82:[2,272],83:[2,272],84:[2,272],85:[2,272],86:[2,272],87:[2,272],88:[2,272],89:[2,272],90:[2,272],91:[2,272],92:[2,272],93:[2,272],94:[2,272],95:[2,272],98:[2,272],99:[2,272],100:[2,272],102:[2,272],104:[2,272],105:[2,272],107:[2,272],110:[2,272],112:[2,272],113:[2,272],115:[2,272],119:[2,272],122:[2,272],123:[2,272],124:[2,272],125:[2,272],132:[2,272],149:[2,272],151:[2,272],153:[2,
272],156:[2,272],158:[2,272],160:[2,272],165:[2,272],168:[2,272],169:[2,272],175:[2,272],176:[2,272],177:[2,272],179:[2,272],184:[2,272],194:[2,272],195:[2,272],196:[2,272],197:[2,272]},{2:[2,310],9:[2,310],11:[2,310],13:[2,310],16:[2,310],18:[2,310],29:[2,310],35:[2,310],44:[2,310],48:[2,310],54:[2,310],61:[2,310],69:[2,310],70:[2,310],71:[2,310],72:[2,310],73:[2,310],74:[2,310],75:[2,310],76:[2,310],77:[2,310],78:[2,310],79:[2,310],80:[2,310],81:[2,310],82:[2,310],83:[2,310],84:[2,310],85:[2,310],
86:[2,310],87:[2,310],88:[2,310],89:[2,310],90:[2,310],91:[2,310],92:[2,310],93:[2,310],94:[2,310],95:[2,310],98:[2,310],99:[2,310],100:[2,310],102:[2,310],104:[2,310],105:[2,310],107:[2,310],110:[2,310],112:[2,310],113:[2,310],115:[2,310],119:[2,310],122:[2,310],123:[2,310],124:[2,310],125:[2,310],132:[2,310],149:[2,310],151:[2,310],153:[2,310],156:[2,310],158:[2,310],160:[2,310],165:[2,310],168:[2,310],169:[2,310],175:[2,310],176:[2,310],177:[2,310],179:[2,310],184:[2,310],194:[2,310],195:[2,310],
196:[2,310],197:[2,310]},{2:[2,311],9:[2,311],11:[2,311],13:[2,311],16:[2,311],18:[2,311],29:[2,311],35:[2,311],44:[2,311],48:[2,311],54:[2,311],61:[2,311],69:[2,311],70:[2,311],71:[2,311],72:[2,311],73:[2,311],74:[2,311],75:[2,311],76:[2,311],77:[2,311],78:[2,311],79:[2,311],80:[2,311],81:[2,311],82:[2,311],83:[2,311],84:[2,311],85:[2,311],86:[2,311],87:[2,311],88:[2,311],89:[2,311],90:[2,311],91:[2,311],92:[2,311],93:[2,311],94:[2,311],95:[2,311],98:[2,311],99:[2,311],100:[2,311],102:[2,311],104:[2,
311],105:[2,311],107:[2,311],110:[2,311],112:[2,311],113:[2,311],115:[2,311],119:[2,311],122:[2,311],123:[2,311],124:[2,311],125:[2,311],132:[2,311],149:[2,311],151:[2,311],153:[2,311],156:[2,311],158:[2,311],160:[2,311],165:[2,311],168:[2,311],169:[2,311],175:[2,311],176:[2,311],177:[2,311],179:[2,311],184:[2,311],194:[2,311],195:[2,311],196:[2,311],197:[2,311]},{2:[2,312],9:[2,312],11:[2,312],13:[2,312],16:[2,312],18:[2,312],29:[2,312],35:[2,312],44:[2,312],48:[2,312],54:[2,312],61:[2,312],69:[2,
312],70:[2,312],71:[2,312],72:[2,312],73:[2,312],74:[2,312],75:[2,312],76:[2,312],77:[2,312],78:[2,312],79:[2,312],80:[2,312],81:[2,312],82:[2,312],83:[2,312],84:[2,312],85:[2,312],86:[2,312],87:[2,312],88:[2,312],89:[2,312],90:[2,312],91:[2,312],92:[2,312],93:[2,312],94:[2,312],95:[2,312],98:[2,312],99:[2,312],100:[2,312],102:[2,312],104:[2,312],105:[2,312],107:[2,312],110:[2,312],112:[2,312],113:[2,312],115:[2,312],119:[2,312],122:[2,312],123:[2,312],124:[2,312],125:[2,312],132:[2,312],149:[2,312],
151:[2,312],153:[2,312],156:[2,312],158:[2,312],160:[2,312],165:[2,312],168:[2,312],169:[2,312],175:[2,312],176:[2,312],177:[2,312],179:[2,312],184:[2,312],194:[2,312],195:[2,312],196:[2,312],197:[2,312]},{2:[2,313],9:[2,313],11:[2,313],13:[2,313],16:[2,313],18:[2,313],29:[2,313],35:[2,313],44:[2,313],48:[2,313],54:[2,313],61:[2,313],69:[2,313],70:[2,313],71:[2,313],72:[2,313],73:[2,313],74:[2,313],75:[2,313],76:[2,313],77:[2,313],78:[2,313],79:[2,313],80:[2,313],81:[2,313],82:[2,313],83:[2,313],
84:[2,313],85:[2,313],86:[2,313],87:[2,313],88:[2,313],89:[2,313],90:[2,313],91:[2,313],92:[2,313],93:[2,313],94:[2,313],95:[2,313],98:[2,313],99:[2,313],100:[2,313],102:[2,313],104:[2,313],105:[2,313],107:[2,313],110:[2,313],112:[2,313],113:[2,313],115:[2,313],119:[2,313],122:[2,313],123:[2,313],124:[2,313],125:[2,313],132:[2,313],149:[2,313],151:[2,313],153:[2,313],156:[2,313],158:[2,313],160:[2,313],165:[2,313],168:[2,313],169:[2,313],175:[2,313],176:[2,313],177:[2,313],179:[2,313],184:[2,313],
194:[2,313],195:[2,313],196:[2,313],197:[2,313]},{2:[2,314],9:[2,314],11:[2,314],13:[2,314],16:[2,314],18:[2,314],29:[2,314],35:[2,314],44:[2,314],48:[2,314],54:[2,314],61:[2,314],69:[2,314],70:[2,314],71:[2,314],72:[2,314],73:[2,314],74:[2,314],75:[2,314],76:[2,314],77:[2,314],78:[2,314],79:[2,314],80:[2,314],81:[2,314],82:[2,314],83:[2,314],84:[2,314],85:[2,314],86:[2,314],87:[2,314],88:[2,314],89:[2,314],90:[2,314],91:[2,314],92:[2,314],93:[2,314],94:[2,314],95:[2,314],98:[2,314],99:[2,314],100:[2,
314],102:[2,314],104:[2,314],105:[2,314],107:[2,314],110:[2,314],112:[2,314],113:[2,314],115:[2,314],119:[2,314],122:[2,314],123:[2,314],124:[2,314],125:[2,314],132:[2,314],149:[2,314],151:[2,314],153:[2,314],156:[2,314],158:[2,314],160:[2,314],165:[2,314],168:[2,314],169:[2,314],175:[2,314],176:[2,314],177:[2,314],179:[2,314],184:[2,314],194:[2,314],195:[2,314],196:[2,314],197:[2,314]},{2:[2,315],9:[2,315],11:[2,315],13:[2,315],16:[2,315],18:[2,315],29:[2,315],35:[2,315],44:[2,315],48:[2,315],54:[2,
315],61:[2,315],69:[2,315],70:[2,315],71:[2,315],72:[2,315],73:[2,315],74:[2,315],75:[2,315],76:[2,315],77:[2,315],78:[2,315],79:[2,315],80:[2,315],81:[2,315],82:[2,315],83:[2,315],84:[2,315],85:[2,315],86:[2,315],87:[2,315],88:[2,315],89:[2,315],90:[2,315],91:[2,315],92:[2,315],93:[2,315],94:[2,315],95:[2,315],98:[2,315],99:[2,315],100:[2,315],102:[2,315],104:[2,315],105:[2,315],107:[2,315],110:[2,315],112:[2,315],113:[2,315],115:[2,315],119:[2,315],122:[2,315],123:[2,315],124:[2,315],125:[2,315],
132:[2,315],149:[2,315],151:[2,315],153:[2,315],156:[2,315],158:[2,315],160:[2,315],165:[2,315],168:[2,315],169:[2,315],175:[2,315],176:[2,315],177:[2,315],179:[2,315],184:[2,315],194:[2,315],195:[2,315],196:[2,315],197:[2,315]},{2:[2,210],9:[2,210],11:[2,210],13:[2,210],16:[2,210],18:[2,210],29:[2,210],44:[2,210],48:[2,210],54:[2,210],61:[2,210],69:[2,210],70:[2,210],71:[2,210],72:[2,210],73:[2,210],74:[2,210],75:[2,210],76:[2,210],77:[2,210],78:[2,210],79:[2,210],80:[2,210],81:[2,210],82:[2,210],
83:[2,210],84:[2,210],85:[2,210],86:[2,210],87:[2,210],88:[2,210],89:[2,210],90:[2,210],91:[2,210],92:[2,210],93:[2,210],94:[2,210],95:[2,210],98:[2,210],99:[2,210],100:[2,210],102:[2,210],104:[2,210],105:[2,210],107:[2,210],110:[2,210],112:[2,210],115:[2,210],119:[2,210],122:[2,210],123:[2,210],124:[2,210],125:[2,210],132:[2,210],149:[2,210],151:[2,210],153:[2,210],156:[2,210],158:[2,210],160:[2,210],165:[2,210],168:[2,210],169:[2,210],175:[2,210],176:[2,210],177:[2,210],179:[2,210],184:[2,210],
194:[2,210],195:[2,210],196:[2,210],197:[2,210]},{2:[2,233],9:[2,233],11:[2,233],13:[2,233],16:[2,233],18:[2,233],29:[2,233],44:[2,233],48:[2,233],54:[2,233],61:[2,233],69:[2,233],70:[2,233],71:[2,233],72:[2,233],73:[2,233],74:[2,233],75:[2,233],76:[2,233],77:[2,233],78:[2,233],79:[2,233],80:[2,233],81:[2,233],82:[2,233],83:[2,233],84:[2,233],85:[2,233],86:[2,233],87:[2,233],88:[2,233],89:[2,233],90:[2,233],91:[2,233],92:[2,233],93:[2,233],94:[2,233],95:[2,233],98:[2,233],99:[2,233],100:[2,233],102:[2,
233],104:[2,233],105:[2,233],107:[2,233],110:[2,233],112:[2,233],115:[2,233],119:[2,233],122:[2,233],123:[2,233],124:[2,233],125:[2,233],132:[2,233],149:[2,233],151:[2,233],153:[2,233],156:[2,233],158:[2,233],160:[2,233],165:[2,233],168:[2,233],169:[2,233],175:[2,233],176:[2,233],177:[2,233],179:[2,233],184:[2,233],194:[2,233],195:[2,233],196:[2,233],197:[2,233]},{2:[2,208],9:[2,208],11:[2,208],13:[2,208],16:[2,208],18:[2,208],29:[2,208],35:[2,208],44:[2,208],48:[2,208],54:[2,208],61:[2,208],69:[2,
208],70:[2,208],71:[2,208],72:[2,208],73:[2,208],74:[2,208],75:[2,208],76:[2,208],77:[2,208],78:[2,208],79:[2,208],80:[2,208],81:[2,208],82:[2,208],83:[2,208],84:[2,208],85:[2,208],86:[2,208],87:[2,208],88:[2,208],89:[2,208],90:[2,208],91:[2,208],92:[2,208],93:[2,208],94:[2,208],95:[2,208],98:[2,208],99:[2,208],100:[2,208],102:[2,208],104:[2,208],105:[2,208],107:[2,208],110:[2,208],112:[2,208],113:[2,208],115:[2,208],119:[2,208],122:[2,208],123:[2,208],124:[2,208],125:[2,208],132:[2,208],149:[2,208],
151:[2,208],153:[2,208],156:[2,208],158:[2,208],160:[2,208],165:[2,208],168:[2,208],169:[2,208],175:[2,208],176:[2,208],177:[2,208],179:[2,208],184:[2,208],194:[2,208],195:[2,208],196:[2,208],197:[2,208]},{2:[2,266],9:[2,266],11:[2,266],13:[2,266],16:[2,266],18:[2,266],29:[2,266],35:[2,266],44:[2,266],48:[2,266],54:[2,266],61:[2,266],69:[2,266],70:[2,266],71:[2,266],72:[2,266],73:[2,266],74:[2,266],75:[2,266],76:[2,266],77:[2,266],78:[2,266],79:[2,266],80:[2,266],81:[2,266],82:[2,266],83:[2,266],
84:[2,266],85:[2,266],86:[2,266],87:[2,266],88:[2,266],89:[2,266],90:[2,266],91:[2,266],92:[2,266],93:[2,266],94:[2,266],95:[2,266],98:[2,266],99:[2,266],100:[2,266],102:[2,266],104:[2,266],105:[2,266],107:[2,266],110:[2,266],112:[2,266],113:[2,266],115:[2,266],119:[2,266],122:[2,266],123:[2,266],124:[2,266],125:[2,266],132:[2,266],149:[2,266],151:[2,266],153:[2,266],156:[2,266],158:[2,266],160:[2,266],165:[2,266],168:[2,266],169:[2,266],175:[2,266],176:[2,266],177:[2,266],179:[2,266],184:[2,266],
194:[2,266],195:[2,266],196:[2,266],197:[2,266]},{2:[2,268],9:[2,268],11:[2,268],13:[2,268],16:[2,268],18:[2,268],29:[2,268],35:[2,268],44:[2,268],48:[2,268],54:[2,268],61:[2,268],69:[2,268],70:[2,268],71:[2,268],72:[2,268],73:[2,268],74:[2,268],75:[2,268],76:[2,268],77:[2,268],78:[2,268],79:[2,268],80:[2,268],81:[2,268],82:[2,268],83:[2,268],84:[2,268],85:[2,268],86:[2,268],87:[2,268],88:[2,268],89:[2,268],90:[2,268],91:[2,268],92:[2,268],93:[2,268],94:[2,268],95:[2,268],98:[2,268],99:[2,268],100:[2,
268],102:[2,268],104:[2,268],105:[2,268],107:[2,268],110:[2,268],112:[2,268],113:[2,268],115:[2,268],119:[2,268],122:[2,268],123:[2,268],124:[2,268],125:[2,268],132:[2,268],149:[2,268],151:[2,268],153:[2,268],156:[2,268],158:[2,268],160:[2,268],165:[2,268],168:[2,268],169:[2,268],175:[2,268],176:[2,268],177:[2,268],179:[2,268],184:[2,268],194:[2,268],195:[2,268],196:[2,268],197:[2,268]},{5:[2,66]},{11:[1,36],21:10,22:8,24:11,25:12,28:42,36:7,39:35,46:33,50:[1,21],53:[1,22],54:[1,46],59:182,60:9,61:[1,
13],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,23],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],155:[1,20],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:183,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,
24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:184,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,
194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:185,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:186,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],
96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:187,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,
146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:188,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},
{11:[1,36],28:42,36:189,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:190,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,
29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:191,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,
51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:192,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:193,39:35,46:33,54:[1,46],
61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:194,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,
24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:195,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,
194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:196,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:197,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],
96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:198,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,
146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:199,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},
{11:[1,36],28:42,36:200,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:201,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,
29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:202,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,
51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:203,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:204,39:35,46:33,54:[1,46],
61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:205,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,
24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:206,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,
194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:207,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:208,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],
96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:209,39:35,46:33,54:[1,46],61:[1,131],65:210,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,
146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:211,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},
{115:[1,214],161:212,163:213},{11:[1,36],28:42,36:215,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:129,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:216,98:[1,25],
101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{115:[1,217],122:[1,218]},{11:[2,247],54:[2,247],61:[2,247],69:[2,247],98:[2,247],104:[2,247],107:[2,247],110:[2,247],112:[2,247],115:[2,247],122:[2,247],124:[2,247],132:[2,247],151:[2,247],153:[2,247],165:[2,247],169:[2,247],177:[2,247],194:[2,
247],195:[2,247],196:[2,247],197:[2,247]},{11:[2,248],54:[2,248],61:[2,248],69:[2,248],98:[2,248],104:[2,248],107:[2,248],110:[2,248],112:[2,248],115:[2,248],122:[2,248],124:[2,248],132:[2,248],151:[2,248],153:[2,248],165:[2,248],169:[2,248],177:[2,248],194:[2,248],195:[2,248],196:[2,248],197:[2,248]},{11:[2,255],54:[2,255],61:[2,255],69:[2,255],98:[2,255],104:[2,255],107:[2,255],110:[2,255],112:[2,255],115:[2,255],122:[2,255],124:[2,255],132:[2,255],151:[2,255],153:[2,255],165:[2,255],169:[2,255],
177:[2,255],194:[2,255],195:[2,255],196:[2,255],197:[2,255]},{11:[2,256],54:[2,256],61:[2,256],69:[2,256],98:[2,256],104:[2,256],107:[2,256],110:[2,256],112:[2,256],115:[2,256],122:[2,256],124:[2,256],132:[2,256],151:[2,256],153:[2,256],165:[2,256],169:[2,256],177:[2,256],194:[2,256],195:[2,256],196:[2,256],197:[2,256]},{115:[1,221],169:[1,220],177:[1,219]},{11:[2,258],54:[2,258],61:[2,258],69:[2,258],98:[2,258],104:[2,258],107:[2,258],110:[2,258],112:[2,258],115:[2,258],122:[2,258],124:[2,258],132:[2,
258],151:[2,258],153:[2,258],165:[2,258],169:[2,258],177:[2,258],194:[2,258],195:[2,258],196:[2,258],197:[2,258]},{11:[2,260],54:[2,260],61:[2,260],69:[2,260],98:[2,260],104:[2,260],107:[2,260],110:[2,260],112:[2,260],115:[2,260],122:[2,260],123:[2,260],124:[2,260],132:[2,260],151:[2,260],153:[2,260],165:[2,260],169:[2,260],177:[2,260],194:[2,260],195:[2,260],196:[2,260],197:[2,260]},{11:[2,280],13:[2,280],54:[2,280],61:[2,280],69:[2,280],98:[2,280],104:[2,280],107:[2,280],110:[2,280],112:[2,280],
115:[2,280],122:[2,280],124:[2,280],132:[2,280],151:[2,280],153:[2,280],165:[2,280],169:[2,280],177:[2,280],194:[2,280],195:[2,280],196:[2,280],197:[2,280]},{16:[2,65],18:[2,65]},{16:[2,73],18:[2,73]},{108:[1,222]},{11:[1,141],28:139,29:[1,225],31:224,35:[1,223],39:111,54:[1,46],112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,144:55,145:140,150:110,151:[1,53],165:[1,118],169:[1,54],175:[2,286],179:[2,286],182:44,186:138,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],
197:[1,50]},{33:226,175:[1,227],179:[1,96]},{11:[1,141],13:[1,146],28:139,32:228,39:111,44:[1,178],54:[1,46],112:[1,119],115:[1,230],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:231,144:55,145:109,150:110,151:[1,53],165:[1,118],169:[1,54],174:[1,151],178:150,179:[1,149],182:44,183:147,184:[1,97],185:107,186:108,187:229,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,26],16:[2,26],18:[2,26]},{2:[1,234],11:[1,103],16:[1,232],20:235,27:233,28:236,32:102,34:104,39:111,54:[1,46],
112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,144:55,145:109,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,185:107,186:108,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,275],9:[2,275],11:[2,275],13:[2,275],16:[2,275],18:[2,275],29:[2,275],35:[2,275],44:[2,275],48:[2,275],54:[2,275],61:[2,275],69:[2,275],70:[2,275],71:[2,275],72:[2,275],73:[2,275],74:[2,275],75:[2,275],76:[2,275],77:[2,275],78:[2,275],79:[2,275],80:[2,275],81:[2,275],82:[2,275],
83:[2,275],84:[2,275],85:[2,275],86:[2,275],87:[2,275],88:[2,275],89:[2,275],90:[2,275],91:[2,275],92:[2,275],93:[2,275],94:[2,275],95:[2,275],98:[2,275],102:[2,275],104:[2,275],107:[2,275],110:[2,275],112:[2,275],113:[2,275],115:[2,275],119:[2,275],122:[2,275],123:[2,275],124:[2,275],125:[2,275],132:[2,275],149:[2,275],151:[2,275],153:[2,275],156:[2,275],160:[2,275],165:[2,275],168:[2,275],169:[2,275],175:[2,275],176:[2,275],177:[2,275],179:[2,275],184:[2,275],191:[1,237],194:[2,275],195:[2,275],
196:[2,275],197:[2,275]},{13:[2,281],29:[2,281],113:[2,281],175:[2,281],179:[2,281]},{13:[2,282],29:[2,282],113:[2,282],175:[2,282],179:[2,282]},{11:[1,141],13:[2,288],28:139,29:[2,288],31:238,39:111,54:[1,46],112:[1,119],113:[2,288],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,144:55,145:140,150:110,151:[1,53],165:[1,118],169:[1,54],175:[2,288],179:[2,288],182:44,186:138,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,287],13:[2,287],29:[2,287],35:[2,287],
44:[2,287],54:[2,287],61:[2,287],69:[2,287],98:[2,287],104:[2,287],107:[2,287],110:[2,287],112:[2,287],113:[2,287],115:[2,287],119:[2,287],122:[2,287],123:[2,287],124:[2,287],125:[2,287],132:[2,287],151:[2,287],153:[2,287],165:[2,287],169:[2,287],175:[2,287],177:[2,287],179:[2,287],194:[2,287],195:[2,287],196:[2,287],197:[2,287]},{11:[2,289],13:[2,289],29:[2,289],35:[2,289],44:[2,289],54:[2,289],61:[2,289],69:[2,289],98:[2,289],104:[2,289],107:[2,289],110:[2,289],112:[2,289],113:[2,289],115:[2,289],
119:[2,289],122:[2,289],123:[2,289],124:[2,289],125:[2,289],132:[2,289],151:[2,289],153:[2,289],165:[2,289],169:[2,289],175:[2,289],177:[2,289],179:[2,289],194:[2,289],195:[2,289],196:[2,289],197:[2,289]},{11:[2,290],13:[2,290],29:[2,290],35:[2,290],44:[2,290],54:[2,290],61:[2,290],69:[2,290],98:[2,290],104:[2,290],107:[2,290],110:[2,290],112:[2,290],113:[2,290],115:[2,290],119:[2,290],122:[2,290],123:[2,290],124:[2,290],125:[2,290],132:[2,290],151:[2,290],153:[2,290],165:[2,290],169:[2,290],175:[2,
290],177:[2,290],179:[2,290],194:[2,290],195:[2,290],196:[2,290],197:[2,290]},{11:[2,293],13:[2,293],29:[2,293],35:[2,293],44:[2,293],54:[2,293],61:[2,293],69:[2,293],98:[2,293],104:[2,293],107:[2,293],110:[2,293],112:[2,293],113:[2,293],115:[2,293],119:[2,293],122:[2,293],123:[2,293],124:[2,293],125:[2,293],132:[2,293],151:[2,293],153:[2,293],165:[2,293],169:[2,293],175:[2,293],177:[2,293],179:[2,293],194:[2,293],195:[2,293],196:[2,293],197:[2,293]},{11:[2,294],13:[2,294],29:[2,294],35:[2,294],44:[2,
294],54:[2,294],61:[2,294],69:[2,294],98:[2,294],104:[2,294],107:[2,294],110:[2,294],112:[2,294],113:[2,294],115:[1,241],119:[2,294],122:[2,294],123:[1,117],124:[2,294],125:[2,294],132:[2,294],140:242,151:[2,294],153:[2,294],165:[2,294],169:[2,294],175:[2,294],177:[2,294],179:[2,294],187:240,189:239,194:[2,294],195:[2,294],196:[2,294],197:[2,294]},{11:[2,296],13:[2,296],29:[2,296],35:[2,296],44:[2,296],54:[2,296],61:[2,296],69:[2,296],98:[2,296],104:[2,296],107:[2,296],110:[2,296],112:[2,296],113:[2,
296],115:[2,296],119:[2,296],122:[2,296],123:[2,296],124:[2,296],125:[2,296],132:[2,296],151:[2,296],153:[2,296],165:[2,296],169:[2,296],175:[2,296],177:[2,296],179:[2,296],194:[2,296],195:[2,296],196:[2,296],197:[2,296]},{11:[1,141],28:139,39:111,54:[1,46],112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],125:[1,180],132:[1,48],140:112,144:55,145:140,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,186:244,188:113,190:115,192:243,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,306],
13:[2,306],29:[2,306],35:[2,306],44:[2,306],54:[2,306],61:[2,306],69:[2,306],83:[2,306],98:[2,306],104:[2,306],107:[2,306],110:[2,306],112:[2,306],113:[2,306],115:[2,306],119:[2,306],122:[2,306],123:[2,306],124:[2,306],125:[2,306],132:[2,306],151:[2,306],153:[2,306],165:[2,306],169:[2,306],175:[2,306],177:[2,306],179:[2,306],194:[2,306],195:[2,306],196:[2,306],197:[2,306]},{11:[2,301],13:[2,301],29:[2,301],35:[2,301],44:[2,301],54:[2,301],61:[2,301],69:[2,301],98:[2,301],104:[2,301],107:[2,301],110:[2,
301],112:[2,301],113:[2,301],115:[2,301],119:[2,301],122:[2,301],123:[2,301],124:[2,301],125:[2,301],132:[2,301],151:[2,301],153:[2,301],165:[2,301],169:[2,301],175:[2,301],177:[2,301],179:[2,301],194:[2,301],195:[2,301],196:[2,301],197:[2,301]},{123:[1,117],140:246,193:245},{11:[1,36],28:42,36:247,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,
146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{29:[1,249],156:[1,248]},{11:[1,250],16:[2,43],18:[2,43],52:[1,251]},{11:[2,245],16:[2,245],18:[2,245],52:[2,245]},{11:[2,246],16:[2,246],18:[2,246],52:[2,246]},{16:[2,46],18:[2,46]},{11:[1,256],115:[1,254],118:252,121:253,122:[1,255],123:[1,257],124:[1,258]},{115:[1,259]},{2:[2,228],9:[2,228],11:[1,36],13:[2,228],16:[2,228],18:[2,228],28:42,29:[2,228],36:129,39:35,
44:[2,228],46:33,48:[2,228],54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],70:[2,228],71:[2,228],72:[2,228],73:[2,228],74:[2,228],75:[2,228],76:[2,228],77:[2,228],78:[2,228],79:[2,228],80:[2,228],81:[2,228],82:[2,228],83:[2,228],84:[2,228],85:[2,228],86:[2,228],87:[2,228],88:[2,228],89:[2,228],90:[2,228],91:[2,228],92:[2,228],93:[2,228],94:[2,228],95:[2,228],96:19,98:[1,25],99:[2,228],100:[2,228],101:26,102:[2,228],103:27,104:[1,28],105:[2,228],107:[1,29],110:[1,30],112:[1,32],115:[1,130],
119:[2,228],122:[1,24],124:[1,43],125:[2,228],127:133,132:[1,48],144:55,145:34,146:37,147:38,148:39,149:[2,228],150:40,151:[1,53],153:[1,51],156:[2,228],158:[2,228],160:[2,228],165:[1,52],168:[2,228],169:[1,54],175:[2,228],176:[2,228],177:[1,41],179:[2,228],182:44,184:[2,228],194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,
75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,275],9:[2,275],11:[2,275],13:[2,275],16:[2,275],18:[2,275],29:[2,275],44:[2,275],48:[2,275],54:[2,275],61:[2,275],69:[2,275],70:[2,275],71:[2,275],72:[2,275],73:[2,275],74:[2,275],75:[2,275],76:[2,275],77:[2,275],78:[2,275],79:[2,275],80:[2,275],81:[2,275],82:[2,275],83:[2,275],84:[2,
275],85:[2,275],86:[2,275],87:[2,275],88:[2,275],89:[2,275],90:[2,275],91:[2,275],92:[2,275],93:[2,275],94:[2,275],95:[2,275],98:[2,275],99:[2,275],100:[2,275],102:[2,275],104:[2,275],105:[2,275],107:[2,275],110:[2,275],112:[2,275],115:[2,275],119:[2,275],122:[2,275],123:[2,275],124:[2,275],125:[2,275],132:[2,275],149:[2,275],151:[2,275],153:[2,275],156:[2,275],158:[2,275],160:[2,275],165:[2,275],168:[2,275],169:[2,275],175:[2,275],176:[2,275],177:[2,275],179:[2,275],184:[2,275],194:[2,275],195:[2,
275],196:[2,275],197:[2,275]},{14:[1,105],26:100},{33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[1,260],102:[1,87],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,177],9:[2,177],11:[2,177],13:[2,177],16:[2,
177],18:[2,177],29:[2,177],44:[2,177],48:[2,177],54:[2,177],61:[2,177],69:[2,177],70:[2,177],71:[2,177],72:[2,177],73:[2,177],74:[2,177],75:[2,177],76:[2,177],77:[2,177],78:[2,177],79:[2,177],80:[2,177],81:[2,177],82:[2,177],83:[2,177],84:[2,177],85:[2,177],86:[2,177],87:[2,177],88:[2,177],89:[2,177],90:[2,177],91:[2,177],92:[2,177],93:[2,177],94:[2,177],95:[2,177],98:[2,177],99:[2,177],100:[2,177],102:[2,177],104:[2,177],105:[2,177],107:[2,177],110:[2,177],112:[2,177],115:[2,177],119:[2,177],122:[2,
177],124:[2,177],125:[2,177],132:[2,177],149:[2,177],151:[2,177],153:[2,177],156:[2,177],158:[2,177],160:[2,177],165:[2,177],168:[2,177],169:[2,177],175:[2,177],176:[2,177],177:[2,177],179:[2,177],184:[2,177],194:[2,177],195:[2,177],196:[2,177],197:[2,177]},{33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,
81],94:[1,82],95:[1,83],102:[1,87],105:[1,261],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{11:[1,141],28:139,32:264,39:111,54:[1,46],106:262,112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],137:263,140:112,144:55,145:109,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,185:107,186:108,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:267,39:35,46:33,54:[1,46],61:[1,131],65:14,
66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],111:265,112:[1,32],115:[1,268],122:[1,24],124:[1,43],127:31,132:[1,48],134:266,144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,141],28:139,39:111,54:[1,46],112:[1,119],113:[1,269],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,144:55,145:140,150:110,151:[1,53],165:[1,118],169:[1,54],
182:44,186:270,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,284],13:[2,284],29:[2,284],35:[2,284],54:[2,284],61:[2,284],69:[2,284],98:[2,284],104:[2,284],107:[2,284],110:[2,284],112:[2,284],113:[2,284],115:[2,284],119:[2,284],122:[2,284],123:[2,284],124:[2,284],132:[2,284],151:[2,284],153:[2,284],165:[2,284],169:[2,284],175:[2,284],177:[2,284],179:[2,284],194:[2,284],195:[2,284],196:[2,284],197:[2,284]},{11:[2,286],13:[2,286],29:[2,286],35:[2,286],44:[2,286],54:[2,286],61:[2,
286],69:[2,286],98:[2,286],104:[2,286],107:[2,286],110:[2,286],112:[2,286],113:[2,286],115:[2,286],119:[2,286],122:[2,286],123:[2,286],124:[2,286],125:[2,286],132:[2,286],151:[2,286],153:[2,286],165:[2,286],169:[2,286],175:[2,286],177:[2,286],179:[2,286],194:[2,286],195:[2,286],196:[2,286],197:[2,286]},{11:[2,288],13:[2,288],29:[2,288],35:[2,288],44:[2,288],54:[2,288],61:[2,288],69:[2,288],98:[2,288],104:[2,288],107:[2,288],110:[2,288],112:[2,288],113:[2,288],115:[2,288],119:[2,288],122:[2,288],123:[2,
288],124:[2,288],125:[2,288],132:[2,288],151:[2,288],153:[2,288],165:[2,288],169:[2,288],175:[2,288],177:[2,288],179:[2,288],194:[2,288],195:[2,288],196:[2,288],197:[2,288]},{11:[1,141],13:[1,146],28:139,32:271,39:111,44:[1,178],54:[1,46],112:[1,119],115:[1,230],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:231,144:55,145:109,150:110,151:[1,53],165:[1,118],169:[1,54],174:[1,151],178:150,179:[1,149],182:44,183:147,184:[1,97],185:107,186:108,187:229,188:113,190:115,194:[1,45],195:[1,47],196:[1,
49],197:[1,50]},{13:[1,272],29:[1,301],33:93,70:[1,275],71:[1,276],72:[1,277],73:[1,278],74:[1,279],75:[1,280],76:[1,281],77:[1,282],78:[1,283],79:[1,284],80:[1,285],81:[1,286],82:[1,287],83:[1,288],84:[1,289],85:[1,290],86:[1,291],87:[1,292],88:[1,293],89:[1,294],90:[1,295],91:[1,296],92:[1,297],93:[1,298],94:[1,299],95:[1,300],97:273,102:[1,87],109:88,149:[1,274],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{11:[1,36],13:[1,302],28:42,36:303,
39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[1,305],28:42,36:304,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,
30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{13:[1,306]},{2:[2,269],9:[2,269],11:[2,269],13:[2,269],16:[2,269],18:[2,269],29:[2,269],35:[2,269],44:[2,269],48:[2,269],54:[2,269],61:[2,269],69:[2,269],70:[2,269],71:[2,269],72:[2,269],73:[2,269],74:[2,269],75:[2,269],76:[2,269],77:[2,269],78:[2,269],79:[2,269],80:[2,269],81:[2,269],
82:[2,269],83:[2,269],84:[2,269],85:[2,269],86:[2,269],87:[2,269],88:[2,269],89:[2,269],90:[2,269],91:[2,269],92:[2,269],93:[2,269],94:[2,269],95:[2,269],98:[2,269],99:[2,269],100:[2,269],102:[2,269],104:[2,269],105:[2,269],107:[2,269],110:[2,269],112:[2,269],113:[2,269],115:[2,269],119:[2,269],122:[2,269],123:[2,269],124:[2,269],125:[2,269],132:[2,269],149:[2,269],151:[2,269],153:[2,269],156:[2,269],158:[2,269],160:[2,269],165:[2,269],168:[2,269],169:[2,269],175:[2,269],176:[2,269],177:[2,269],179:[2,
269],184:[2,269],194:[2,269],195:[2,269],196:[2,269],197:[2,269]},{13:[1,307],44:[1,308]},{13:[1,309],44:[1,310]},{13:[1,311]},{13:[1,312]},{13:[1,313]},{11:[2,106],13:[2,106],54:[2,106],61:[2,106],69:[2,106],98:[2,106],104:[2,106],107:[2,106],110:[2,106],112:[2,106],115:[2,106],122:[2,106],124:[2,106],132:[2,106],151:[2,106],153:[2,106],165:[2,106],169:[2,106],177:[2,106],194:[2,106],195:[2,106],196:[2,106],197:[2,106]},{11:[2,107],13:[2,107],54:[2,107],61:[2,107],69:[2,107],98:[2,107],104:[2,107],
107:[2,107],110:[2,107],112:[2,107],115:[2,107],122:[2,107],124:[2,107],132:[2,107],151:[2,107],153:[2,107],165:[2,107],169:[2,107],177:[2,107],194:[2,107],195:[2,107],196:[2,107],197:[2,107]},{11:[2,108],13:[2,108],54:[2,108],61:[2,108],69:[2,108],98:[2,108],104:[2,108],107:[2,108],110:[2,108],112:[2,108],115:[2,108],122:[2,108],124:[2,108],132:[2,108],151:[2,108],153:[2,108],165:[2,108],169:[2,108],177:[2,108],194:[2,108],195:[2,108],196:[2,108],197:[2,108]},{11:[2,109],13:[2,109],54:[2,109],61:[2,
109],69:[2,109],98:[2,109],104:[2,109],107:[2,109],110:[2,109],112:[2,109],115:[2,109],122:[2,109],124:[2,109],132:[2,109],151:[2,109],153:[2,109],165:[2,109],169:[2,109],177:[2,109],194:[2,109],195:[2,109],196:[2,109],197:[2,109]},{11:[2,110],13:[2,110],54:[2,110],61:[2,110],69:[2,110],98:[2,110],104:[2,110],107:[2,110],110:[2,110],112:[2,110],115:[2,110],122:[2,110],124:[2,110],132:[2,110],151:[2,110],153:[2,110],165:[2,110],169:[2,110],177:[2,110],194:[2,110],195:[2,110],196:[2,110],197:[2,110]},
{11:[2,111],13:[2,111],54:[2,111],61:[2,111],69:[2,111],98:[2,111],104:[2,111],107:[2,111],110:[2,111],112:[2,111],115:[2,111],122:[2,111],124:[2,111],132:[2,111],151:[2,111],153:[2,111],165:[2,111],169:[2,111],177:[2,111],194:[2,111],195:[2,111],196:[2,111],197:[2,111]},{11:[2,112],13:[2,112],54:[2,112],61:[2,112],69:[2,112],98:[2,112],104:[2,112],107:[2,112],110:[2,112],112:[2,112],115:[2,112],122:[2,112],124:[2,112],132:[2,112],151:[2,112],153:[2,112],165:[2,112],169:[2,112],177:[2,112],194:[2,
112],195:[2,112],196:[2,112],197:[2,112]},{11:[2,113],13:[2,113],54:[2,113],61:[2,113],69:[2,113],98:[2,113],104:[2,113],107:[2,113],110:[2,113],112:[2,113],115:[2,113],122:[2,113],124:[2,113],132:[2,113],151:[2,113],153:[2,113],165:[2,113],169:[2,113],177:[2,113],194:[2,113],195:[2,113],196:[2,113],197:[2,113]},{11:[2,114],13:[2,114],54:[2,114],61:[2,114],69:[2,114],98:[2,114],104:[2,114],107:[2,114],110:[2,114],112:[2,114],115:[2,114],122:[2,114],124:[2,114],132:[2,114],151:[2,114],153:[2,114],
165:[2,114],169:[2,114],177:[2,114],194:[2,114],195:[2,114],196:[2,114],197:[2,114]},{11:[2,115],13:[2,115],54:[2,115],61:[2,115],69:[2,115],98:[2,115],104:[2,115],107:[2,115],110:[2,115],112:[2,115],115:[2,115],122:[2,115],124:[2,115],132:[2,115],151:[2,115],153:[2,115],165:[2,115],169:[2,115],177:[2,115],194:[2,115],195:[2,115],196:[2,115],197:[2,115]},{11:[2,116],13:[2,116],54:[2,116],61:[2,116],69:[2,116],98:[2,116],104:[2,116],107:[2,116],110:[2,116],112:[2,116],115:[2,116],122:[2,116],124:[2,
116],132:[2,116],151:[2,116],153:[2,116],165:[2,116],169:[2,116],177:[2,116],194:[2,116],195:[2,116],196:[2,116],197:[2,116]},{11:[2,117],13:[2,117],54:[2,117],61:[2,117],69:[2,117],98:[2,117],104:[2,117],107:[2,117],110:[2,117],112:[2,117],115:[2,117],122:[2,117],124:[2,117],132:[2,117],151:[2,117],153:[2,117],165:[2,117],169:[2,117],177:[2,117],194:[2,117],195:[2,117],196:[2,117],197:[2,117]},{11:[2,118],13:[2,118],54:[2,118],61:[2,118],69:[2,118],98:[2,118],104:[2,118],107:[2,118],110:[2,118],
112:[2,118],115:[2,118],122:[2,118],124:[2,118],132:[2,118],151:[2,118],153:[2,118],165:[2,118],169:[2,118],177:[2,118],194:[2,118],195:[2,118],196:[2,118],197:[2,118]},{11:[2,119],13:[2,119],54:[2,119],61:[2,119],69:[2,119],98:[2,119],104:[2,119],107:[2,119],110:[2,119],112:[2,119],115:[2,119],122:[2,119],124:[2,119],132:[2,119],151:[2,119],153:[2,119],165:[2,119],169:[2,119],177:[2,119],194:[2,119],195:[2,119],196:[2,119],197:[2,119]},{11:[2,120],13:[2,120],54:[2,120],61:[2,120],69:[2,120],98:[2,
120],104:[2,120],107:[2,120],110:[2,120],112:[2,120],115:[2,120],122:[2,120],124:[2,120],132:[2,120],151:[2,120],153:[2,120],165:[2,120],169:[2,120],177:[2,120],194:[2,120],195:[2,120],196:[2,120],197:[2,120]},{11:[2,121],13:[2,121],54:[2,121],61:[2,121],69:[2,121],98:[2,121],104:[2,121],107:[2,121],110:[2,121],112:[2,121],115:[2,121],122:[2,121],124:[2,121],132:[2,121],151:[2,121],153:[2,121],165:[2,121],169:[2,121],177:[2,121],194:[2,121],195:[2,121],196:[2,121],197:[2,121]},{11:[2,122],13:[2,122],
54:[2,122],61:[2,122],69:[2,122],98:[2,122],104:[2,122],107:[2,122],110:[2,122],112:[2,122],115:[2,122],122:[2,122],124:[2,122],132:[2,122],151:[2,122],153:[2,122],165:[2,122],169:[2,122],177:[2,122],194:[2,122],195:[2,122],196:[2,122],197:[2,122]},{11:[2,123],13:[2,123],54:[2,123],61:[2,123],69:[2,123],98:[2,123],104:[2,123],107:[2,123],110:[2,123],112:[2,123],115:[2,123],122:[2,123],124:[2,123],132:[2,123],151:[2,123],153:[2,123],165:[2,123],169:[2,123],177:[2,123],194:[2,123],195:[2,123],196:[2,
123],197:[2,123]},{11:[2,124],13:[2,124],54:[2,124],61:[2,124],69:[2,124],98:[2,124],104:[2,124],107:[2,124],110:[2,124],112:[2,124],115:[2,124],122:[2,124],124:[2,124],132:[2,124],151:[2,124],153:[2,124],165:[2,124],169:[2,124],177:[2,124],194:[2,124],195:[2,124],196:[2,124],197:[2,124]},{11:[2,125],13:[2,125],54:[2,125],61:[2,125],69:[2,125],98:[2,125],104:[2,125],107:[2,125],110:[2,125],112:[2,125],115:[2,125],122:[2,125],124:[2,125],132:[2,125],151:[2,125],153:[2,125],165:[2,125],169:[2,125],
177:[2,125],194:[2,125],195:[2,125],196:[2,125],197:[2,125]},{11:[2,126],13:[2,126],54:[2,126],61:[2,126],69:[2,126],98:[2,126],104:[2,126],107:[2,126],110:[2,126],112:[2,126],115:[2,126],122:[2,126],124:[2,126],132:[2,126],151:[2,126],153:[2,126],165:[2,126],169:[2,126],177:[2,126],194:[2,126],195:[2,126],196:[2,126],197:[2,126]},{11:[2,127],13:[2,127],54:[2,127],61:[2,127],69:[2,127],98:[2,127],104:[2,127],107:[2,127],110:[2,127],112:[2,127],115:[2,127],122:[2,127],124:[2,127],132:[2,127],151:[2,
127],153:[2,127],165:[2,127],169:[2,127],177:[2,127],194:[2,127],195:[2,127],196:[2,127],197:[2,127]},{11:[2,128],13:[2,128],54:[2,128],61:[2,128],69:[2,128],98:[2,128],104:[2,128],107:[2,128],110:[2,128],112:[2,128],115:[2,128],122:[2,128],124:[2,128],132:[2,128],151:[2,128],153:[2,128],165:[2,128],169:[2,128],177:[2,128],194:[2,128],195:[2,128],196:[2,128],197:[2,128]},{11:[2,129],13:[2,129],54:[2,129],61:[2,129],69:[2,129],98:[2,129],104:[2,129],107:[2,129],110:[2,129],112:[2,129],115:[2,129],
122:[2,129],124:[2,129],132:[2,129],151:[2,129],153:[2,129],165:[2,129],169:[2,129],177:[2,129],194:[2,129],195:[2,129],196:[2,129],197:[2,129]},{11:[2,130],13:[2,130],54:[2,130],61:[2,130],69:[2,130],98:[2,130],104:[2,130],107:[2,130],110:[2,130],112:[2,130],115:[2,130],122:[2,130],124:[2,130],132:[2,130],151:[2,130],153:[2,130],165:[2,130],169:[2,130],177:[2,130],194:[2,130],195:[2,130],196:[2,130],197:[2,130]},{11:[2,131],13:[2,131],54:[2,131],61:[2,131],69:[2,131],98:[2,131],104:[2,131],107:[2,
131],110:[2,131],112:[2,131],115:[2,131],122:[2,131],124:[2,131],132:[2,131],151:[2,131],153:[2,131],165:[2,131],169:[2,131],177:[2,131],194:[2,131],195:[2,131],196:[2,131],197:[2,131]},{13:[2,273],44:[2,273]},{13:[2,212],44:[2,212]},{2:[2,270],9:[2,270],11:[2,270],13:[2,270],16:[2,270],18:[2,270],29:[2,270],35:[2,270],44:[2,270],48:[2,270],54:[2,270],61:[2,270],69:[2,270],70:[2,270],71:[2,270],72:[2,270],73:[2,270],74:[2,270],75:[2,270],76:[2,270],77:[2,270],78:[2,270],79:[2,270],80:[2,270],81:[2,
270],82:[2,270],83:[2,270],84:[2,270],85:[2,270],86:[2,270],87:[2,270],88:[2,270],89:[2,270],90:[2,270],91:[2,270],92:[2,270],93:[2,270],94:[2,270],95:[2,270],98:[2,270],99:[2,270],100:[2,270],102:[2,270],104:[2,270],105:[2,270],107:[2,270],110:[2,270],112:[2,270],113:[2,270],115:[2,270],119:[2,270],122:[2,270],123:[2,270],124:[2,270],125:[2,270],132:[2,270],149:[2,270],151:[2,270],153:[2,270],156:[2,270],158:[2,270],160:[2,270],165:[2,270],168:[2,270],169:[2,270],175:[2,270],176:[2,270],177:[2,270],
179:[2,270],184:[2,270],194:[2,270],195:[2,270],196:[2,270],197:[2,270]},{33:93,44:[1,316],48:[1,315],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,119:[1,317],125:[1,318],149:[1,85],156:[1,86],160:[1,89],164:314,168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,
96],184:[1,97]},{16:[2,67],18:[2,67]},{2:[2,79],9:[2,79],13:[2,79],16:[2,79],18:[2,79],29:[2,79],33:93,44:[2,79],48:[2,79],70:[2,79],71:[2,79],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[2,79],77:[2,79],78:[2,79],79:[2,79],80:[2,79],81:[2,79],82:[1,70],83:[2,79],84:[2,79],85:[2,79],86:[2,79],87:[2,79],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,79],100:[2,79],102:[2,79],105:[2,79],109:88,119:[2,79],125:[2,79],149:[2,79],156:[1,86],158:[2,79],160:[1,89],168:[1,
84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,80],9:[2,80],13:[2,80],16:[2,80],18:[2,80],29:[2,80],33:93,44:[2,80],48:[2,80],70:[2,80],71:[2,80],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[2,80],77:[2,80],78:[2,80],79:[2,80],80:[2,80],81:[2,80],82:[1,70],83:[2,80],84:[2,80],85:[2,80],86:[2,80],87:[2,80],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,80],100:[2,80],102:[2,80],105:[2,80],109:88,119:[2,80],125:[2,80],149:[2,80],156:[1,
86],158:[2,80],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,81],9:[2,81],13:[2,81],16:[2,81],18:[2,81],29:[2,81],33:93,44:[2,81],48:[2,81],70:[2,81],71:[2,81],72:[2,81],73:[2,81],74:[1,62],75:[2,81],76:[2,81],77:[2,81],78:[2,81],79:[2,81],80:[2,81],81:[2,81],82:[1,70],83:[2,81],84:[2,81],85:[2,81],86:[2,81],87:[2,81],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,81],100:[2,81],102:[2,81],105:[2,81],109:88,119:[2,
81],125:[2,81],149:[2,81],156:[1,86],158:[2,81],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,82],9:[2,82],13:[2,82],16:[2,82],18:[2,82],29:[2,82],33:93,44:[2,82],48:[2,82],70:[2,82],71:[2,82],72:[2,82],73:[2,82],74:[1,62],75:[2,82],76:[2,82],77:[2,82],78:[2,82],79:[2,82],80:[2,82],81:[2,82],82:[1,70],83:[2,82],84:[2,82],85:[2,82],86:[2,82],87:[2,82],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,82],100:[2,82],
102:[2,82],105:[2,82],109:88,119:[2,82],125:[2,82],149:[2,82],156:[1,86],158:[2,82],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,83],9:[2,83],13:[2,83],16:[2,83],18:[2,83],29:[2,83],33:93,44:[2,83],48:[2,83],70:[2,83],71:[2,83],72:[2,83],73:[2,83],74:[2,83],75:[2,83],76:[2,83],77:[2,83],78:[2,83],79:[2,83],80:[2,83],81:[2,83],82:[1,70],83:[2,83],84:[2,83],85:[2,83],86:[2,83],87:[2,83],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,
82],95:[1,83],99:[2,83],100:[2,83],102:[2,83],105:[2,83],109:88,119:[2,83],125:[2,83],149:[2,83],156:[1,86],158:[2,83],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,84],9:[2,84],13:[2,84],16:[2,84],18:[2,84],29:[2,84],33:93,44:[2,84],48:[2,84],70:[2,84],71:[2,84],72:[2,84],73:[2,84],74:[1,62],75:[2,84],76:[2,84],77:[2,84],78:[2,84],79:[2,84],80:[2,84],81:[2,84],82:[1,70],83:[2,84],84:[2,84],85:[2,84],86:[2,84],87:[2,84],88:[1,76],89:[1,77],90:[1,78],
91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,84],100:[2,84],102:[2,84],105:[2,84],109:88,119:[2,84],125:[2,84],149:[2,84],156:[1,86],158:[2,84],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,85],9:[2,85],13:[2,85],16:[2,85],18:[2,85],29:[2,85],33:93,44:[2,85],48:[2,85],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[2,85],77:[2,85],78:[2,85],79:[2,85],80:[2,85],81:[2,85],82:[1,70],83:[1,71],84:[1,72],85:[2,85],86:[2,85],87:[2,
85],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,85],100:[2,85],102:[2,85],105:[2,85],109:88,119:[2,85],125:[2,85],149:[2,85],156:[1,86],158:[2,85],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,86],9:[2,86],13:[2,86],16:[2,86],18:[2,86],29:[2,86],33:93,44:[2,86],48:[2,86],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[2,86],77:[2,86],78:[2,86],79:[2,86],80:[2,86],81:[2,86],82:[1,70],83:[1,71],
84:[1,72],85:[2,86],86:[2,86],87:[2,86],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,86],100:[2,86],102:[2,86],105:[2,86],109:88,119:[2,86],125:[2,86],149:[2,86],156:[1,86],158:[2,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,87],9:[2,87],13:[2,87],16:[2,87],18:[2,87],29:[2,87],33:93,44:[2,87],48:[2,87],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[2,87],77:[2,87],78:[2,87],79:[2,87],80:[2,
87],81:[2,87],82:[1,70],83:[1,71],84:[1,72],85:[2,87],86:[2,87],87:[2,87],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,87],100:[2,87],102:[2,87],105:[2,87],109:88,119:[2,87],125:[2,87],149:[2,87],156:[1,86],158:[2,87],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,88],9:[2,88],13:[2,88],16:[2,88],18:[2,88],29:[2,88],33:93,44:[2,88],48:[2,88],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[2,88],
77:[2,88],78:[2,88],79:[2,88],80:[2,88],81:[2,88],82:[1,70],83:[1,71],84:[1,72],85:[2,88],86:[2,88],87:[2,88],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,88],100:[2,88],102:[2,88],105:[2,88],109:88,119:[2,88],125:[2,88],149:[2,88],156:[1,86],158:[2,88],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,89],9:[2,89],13:[2,89],16:[2,89],18:[2,89],29:[2,89],33:93,44:[2,89],48:[2,89],70:[1,58],71:[1,59],72:[1,60],73:[1,
61],74:[1,62],75:[1,63],76:[2,89],77:[2,89],78:[2,89],79:[2,89],80:[2,89],81:[2,89],82:[1,70],83:[1,71],84:[1,72],85:[2,89],86:[2,89],87:[2,89],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,89],100:[2,89],102:[2,89],105:[2,89],109:88,119:[2,89],125:[2,89],149:[2,89],156:[1,86],158:[2,89],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,90],9:[2,90],13:[2,90],16:[2,90],18:[2,90],29:[2,90],33:93,44:[2,90],48:[2,90],
70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[2,90],77:[2,90],78:[2,90],79:[2,90],80:[2,90],81:[2,90],82:[1,70],83:[1,71],84:[1,72],85:[2,90],86:[2,90],87:[2,90],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,90],100:[2,90],102:[2,90],105:[2,90],109:88,119:[2,90],125:[2,90],149:[2,90],156:[1,86],158:[2,90],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,91],9:[2,91],13:[2,91],16:[2,91],18:[2,91],
29:[2,91],33:93,44:[2,91],48:[2,91],70:[2,91],71:[2,91],72:[2,91],73:[2,91],74:[2,91],75:[2,91],76:[2,91],77:[2,91],78:[2,91],79:[2,91],80:[2,91],81:[2,91],82:[2,91],83:[2,91],84:[2,91],85:[2,91],86:[2,91],87:[2,91],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,91],100:[2,91],102:[2,91],105:[2,91],109:88,119:[2,91],125:[2,91],149:[2,91],156:[1,86],158:[2,91],160:[2,91],168:[2,91],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,92],9:[2,
92],13:[2,92],16:[2,92],18:[2,92],29:[2,92],33:93,44:[2,92],48:[2,92],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[2,92],77:[2,92],78:[2,92],79:[2,92],80:[2,92],81:[2,92],82:[1,70],83:[1,71],84:[1,72],85:[2,92],86:[2,92],87:[2,92],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,92],100:[2,92],102:[2,92],105:[2,92],109:88,119:[2,92],125:[2,92],149:[2,92],156:[1,86],158:[2,92],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,
96],184:[1,97]},{2:[2,93],9:[2,93],13:[2,93],16:[2,93],18:[2,93],29:[2,93],33:93,44:[2,93],48:[2,93],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[2,93],77:[2,93],78:[2,93],79:[2,93],80:[2,93],81:[2,93],82:[1,70],83:[1,71],84:[1,72],85:[2,93],86:[2,93],87:[2,93],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,93],100:[2,93],102:[2,93],105:[2,93],109:88,119:[2,93],125:[2,93],149:[2,93],156:[1,86],158:[2,93],160:[1,89],168:[1,84],170:90,171:91,
175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,94],9:[2,94],13:[2,94],16:[2,94],18:[2,94],29:[2,94],33:93,44:[2,94],48:[2,94],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[2,94],87:[2,94],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,94],100:[2,94],102:[2,94],105:[2,94],109:88,119:[2,94],125:[2,94],149:[2,94],156:[1,86],158:[2,94],
160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,95],9:[2,95],13:[2,95],16:[2,95],18:[2,95],29:[2,95],33:93,44:[2,95],48:[2,95],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[2,95],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,95],100:[2,95],102:[2,95],105:[2,95],109:88,119:[2,95],125:[2,
95],149:[2,95],156:[1,86],158:[2,95],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,96],9:[2,96],13:[2,96],16:[2,96],18:[2,96],29:[2,96],33:93,44:[2,96],48:[2,96],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,96],100:[2,96],102:[1,87],
105:[2,96],109:88,119:[2,96],125:[2,96],149:[1,85],156:[1,86],158:[2,96],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,97],9:[2,97],13:[2,97],16:[2,97],18:[2,97],29:[2,97],33:93,44:[2,97],48:[2,97],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,
83],99:[2,97],100:[2,97],102:[1,87],105:[2,97],109:88,119:[2,97],125:[2,97],149:[1,85],156:[1,86],158:[2,97],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,98],9:[2,98],13:[2,98],16:[2,98],18:[2,98],29:[2,98],33:93,44:[2,98],48:[2,98],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],
92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,98],100:[2,98],102:[1,87],105:[2,98],109:88,119:[2,98],125:[2,98],149:[1,85],156:[1,86],158:[2,98],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,99],9:[2,99],13:[2,99],16:[2,99],18:[2,99],29:[2,99],33:93,44:[2,99],48:[2,99],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,
76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,99],100:[2,99],102:[1,87],105:[2,99],109:88,119:[2,99],125:[2,99],149:[1,85],156:[1,86],158:[2,99],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,100],9:[2,100],13:[2,100],16:[2,100],18:[2,100],29:[2,100],33:93,44:[2,100],48:[2,100],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,
72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,100],100:[2,100],102:[1,87],105:[2,100],109:88,119:[2,100],125:[2,100],149:[1,85],156:[1,86],158:[2,100],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,101],9:[2,101],13:[2,101],16:[2,101],18:[2,101],29:[2,101],33:93,44:[2,101],48:[2,101],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,
67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,101],100:[2,101],102:[1,87],105:[2,101],109:88,119:[2,101],125:[2,101],149:[1,85],156:[1,86],158:[2,101],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,102],9:[2,102],13:[2,102],16:[2,102],18:[2,102],29:[2,102],33:93,44:[2,102],48:[2,102],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,
62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,102],100:[2,102],102:[1,87],105:[2,102],109:88,119:[2,102],125:[2,102],149:[1,85],156:[1,86],158:[2,102],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,103],9:[2,103],13:[2,103],16:[2,103],18:[2,103],29:[2,103],33:93,44:[2,103],48:[2,
103],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,103],100:[2,103],102:[1,87],105:[2,103],109:88,119:[2,103],125:[2,103],149:[1,85],156:[1,86],158:[2,103],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,104],9:[2,104],13:[2,104],16:[2,
104],18:[2,104],29:[2,104],33:93,44:[2,104],48:[2,104],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,104],100:[2,104],102:[1,87],105:[2,104],109:88,119:[2,104],125:[2,104],149:[1,85],156:[1,86],158:[2,104],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],
184:[1,97]},{2:[2,243],9:[2,243],13:[2,243],16:[2,243],18:[2,243],29:[2,243],33:93,44:[2,243],48:[2,243],70:[2,243],71:[2,243],72:[2,243],73:[2,243],74:[2,243],75:[2,243],76:[2,243],77:[2,243],78:[2,243],79:[2,243],80:[2,243],81:[2,243],82:[1,70],83:[2,243],84:[2,243],85:[2,243],86:[2,243],87:[2,243],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,243],100:[2,243],102:[2,243],105:[2,243],109:88,119:[2,243],125:[2,243],149:[2,243],156:[1,86],158:[2,243],160:[1,
89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,244],9:[2,244],13:[2,244],16:[2,244],18:[2,244],29:[2,244],44:[2,244],48:[2,244],70:[2,244],71:[2,244],72:[2,244],73:[2,244],74:[2,244],75:[2,244],76:[2,244],77:[2,244],78:[2,244],79:[2,244],80:[2,244],81:[2,244],82:[2,244],83:[2,244],84:[2,244],85:[2,244],86:[2,244],87:[2,244],88:[2,244],89:[2,244],90:[2,244],91:[2,244],92:[2,244],93:[2,244],94:[2,244],95:[2,244],99:[2,244],100:[2,244],102:[2,244],105:[2,244],
119:[2,244],125:[2,244],149:[2,244],156:[2,244],158:[2,244],160:[2,244],168:[2,244],175:[2,244],176:[2,244],179:[2,244],184:[2,244]},{2:[2,241],9:[2,241],13:[2,241],16:[2,241],18:[2,241],29:[2,241],33:93,44:[2,241],48:[2,241],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[2,241],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,241],100:[2,
241],102:[2,241],105:[2,241],109:88,119:[2,241],125:[2,241],149:[2,241],156:[1,86],158:[2,241],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{44:[1,320],158:[1,319]},{44:[2,226],158:[2,226]},{29:[1,321]},{2:[2,134],9:[2,134],13:[2,134],16:[2,134],18:[2,134],29:[2,134],33:93,44:[2,134],48:[2,134],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,
74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,134],100:[2,134],102:[1,87],105:[2,134],109:88,119:[2,134],125:[2,134],149:[1,85],156:[1,86],158:[2,134],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,139],9:[2,139],13:[2,139],16:[2,139],18:[2,139],29:[2,139],44:[2,139],48:[2,139],70:[2,139],71:[2,139],72:[2,139],73:[2,139],74:[2,139],75:[2,139],76:[2,139],77:[2,139],78:[2,139],79:[2,139],80:[2,139],
81:[2,139],82:[2,139],83:[2,139],84:[2,139],85:[2,139],86:[2,139],87:[2,139],88:[2,139],89:[2,139],90:[2,139],91:[2,139],92:[2,139],93:[2,139],94:[2,139],95:[2,139],99:[2,139],100:[2,139],102:[2,139],105:[2,139],119:[2,139],125:[2,139],149:[2,139],156:[2,139],158:[2,139],160:[2,139],168:[2,139],175:[2,139],176:[2,139],179:[2,139],184:[2,139]},{2:[2,217],9:[2,217],11:[2,217],13:[2,217],16:[2,217],18:[2,217],29:[2,217],44:[2,217],48:[2,217],54:[2,217],61:[2,217],69:[2,217],70:[2,217],71:[2,217],72:[2,
217],73:[2,217],74:[2,217],75:[2,217],76:[2,217],77:[2,217],78:[2,217],79:[2,217],80:[2,217],81:[2,217],82:[2,217],83:[2,217],84:[2,217],85:[2,217],86:[2,217],87:[2,217],88:[2,217],89:[2,217],90:[2,217],91:[2,217],92:[2,217],93:[2,217],94:[2,217],95:[2,217],98:[2,217],99:[2,217],100:[2,217],102:[2,217],104:[2,217],105:[2,217],107:[2,217],110:[2,217],112:[2,217],115:[2,217],119:[2,217],122:[2,217],123:[2,217],124:[2,217],125:[2,217],132:[2,217],149:[2,217],151:[2,217],153:[2,217],156:[2,217],158:[2,
217],160:[2,217],165:[2,217],168:[2,217],169:[2,217],175:[2,217],176:[2,217],177:[2,217],179:[2,217],184:[2,217],194:[2,217],195:[2,217],196:[2,217],197:[2,217]},{2:[2,218],9:[2,218],11:[2,218],13:[2,218],16:[2,218],18:[2,218],29:[2,218],44:[2,218],48:[2,218],54:[2,218],61:[2,218],69:[2,218],70:[2,218],71:[2,218],72:[2,218],73:[2,218],74:[2,218],75:[2,218],76:[2,218],77:[2,218],78:[2,218],79:[2,218],80:[2,218],81:[2,218],82:[2,218],83:[2,218],84:[2,218],85:[2,218],86:[2,218],87:[2,218],88:[2,218],
89:[2,218],90:[2,218],91:[2,218],92:[2,218],93:[2,218],94:[2,218],95:[2,218],98:[2,218],99:[2,218],100:[2,218],102:[2,218],104:[2,218],105:[2,218],107:[2,218],110:[2,218],112:[2,218],115:[2,218],119:[2,218],122:[2,218],123:[2,218],124:[2,218],125:[2,218],132:[2,218],149:[2,218],151:[2,218],153:[2,218],156:[2,218],158:[2,218],160:[2,218],165:[2,218],168:[2,218],169:[2,218],175:[2,218],176:[2,218],177:[2,218],179:[2,218],184:[2,218],194:[2,218],195:[2,218],196:[2,218],197:[2,218]},{175:[1,322]},{175:[1,
323]},{175:[1,324]},{11:[1,36],28:42,36:325,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,30:326,36:327,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,
103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,141],28:139,29:[1,329],35:[1,328],39:111,54:[1,46],112:[1,119],115:[1,106],119:[1,332],122:[1,114],123:[1,117],124:[1,116],132:[1,48],138:330,139:331,140:112,144:55,145:140,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,186:270,188:113,190:115,
194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,30:333,36:327,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,141],28:139,32:334,39:111,54:[1,46],112:[1,119],115:[1,106],122:[1,114],123:[1,
117],124:[1,116],132:[1,48],140:112,144:55,145:109,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,185:107,186:108,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{115:[1,221]},{13:[1,336],33:335,175:[1,227],179:[1,96]},{83:[1,337]},{11:[2,304],13:[2,304],29:[2,304],54:[2,304],61:[2,304],69:[2,304],70:[2,304],71:[2,304],72:[2,304],73:[2,304],74:[2,304],75:[2,304],76:[2,304],77:[2,304],78:[2,304],79:[2,304],80:[2,304],81:[2,304],82:[2,304],83:[2,304],84:[2,304],85:[2,304],86:[2,304],
87:[2,304],88:[2,304],89:[2,304],90:[2,304],91:[2,304],92:[2,304],93:[2,304],94:[2,304],95:[2,304],98:[2,304],102:[2,304],104:[2,304],107:[2,304],110:[2,304],112:[2,304],115:[2,304],122:[2,304],124:[2,304],132:[2,304],149:[2,304],151:[2,304],153:[2,304],156:[2,304],160:[2,304],165:[2,304],168:[2,304],169:[2,304],175:[2,304],176:[2,304],177:[2,304],179:[2,304],184:[2,304],191:[1,237],194:[2,304],195:[2,304],196:[2,304],197:[2,304]},{13:[2,305],83:[2,305],175:[2,305],179:[2,305]},{2:[2,16],16:[2,16],
18:[2,16],108:[2,16]},{2:[1,339],16:[1,338],18:[1,340]},{16:[1,341]},{2:[2,21],16:[2,21],18:[2,21]},{11:[1,141],28:139,29:[1,225],31:342,39:111,54:[1,46],112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,144:55,145:140,150:110,151:[1,53],165:[1,118],169:[1,54],175:[2,286],179:[2,286],182:44,186:138,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,141],28:139,39:111,54:[1,46],112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,
144:55,145:140,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,186:343,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,141],13:[2,283],28:139,29:[2,283],39:111,54:[1,46],112:[1,119],113:[2,283],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,144:55,145:140,150:110,151:[1,53],165:[1,118],169:[1,54],175:[2,283],179:[2,283],182:44,186:270,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,295],13:[2,295],29:[2,295],35:[2,295],44:[2,295],54:[2,
295],61:[2,295],69:[2,295],98:[2,295],104:[2,295],107:[2,295],110:[2,295],112:[2,295],113:[2,295],115:[1,241],119:[2,295],122:[2,295],123:[1,117],124:[2,295],125:[2,295],132:[2,295],140:242,151:[2,295],153:[2,295],165:[2,295],169:[2,295],175:[2,295],177:[2,295],179:[2,295],187:344,194:[2,295],195:[2,295],196:[2,295],197:[2,295]},{11:[2,299],13:[2,299],29:[2,299],35:[2,299],44:[2,299],54:[2,299],61:[2,299],69:[2,299],98:[2,299],104:[2,299],107:[2,299],110:[2,299],112:[2,299],113:[2,299],115:[2,299],
119:[2,299],122:[2,299],123:[2,299],124:[2,299],125:[2,299],132:[2,299],151:[2,299],153:[2,299],165:[2,299],169:[2,299],175:[2,299],177:[2,299],179:[2,299],194:[2,299],195:[2,299],196:[2,299],197:[2,299]},{11:[2,304],13:[2,304],29:[2,304],35:[2,304],44:[2,304],54:[2,304],61:[2,304],69:[2,304],98:[2,304],104:[2,304],107:[2,304],110:[2,304],112:[2,304],113:[2,304],115:[2,304],119:[2,304],122:[2,304],123:[2,304],124:[2,304],125:[2,304],132:[2,304],151:[2,304],153:[2,304],165:[2,304],169:[2,304],175:[2,
304],177:[2,304],179:[2,304],194:[2,304],195:[2,304],196:[2,304],197:[2,304]},{11:[2,305],13:[2,305],29:[2,305],35:[2,305],44:[2,305],54:[2,305],61:[2,305],69:[2,305],98:[2,305],104:[2,305],107:[2,305],110:[2,305],112:[2,305],113:[2,305],115:[2,305],119:[2,305],122:[2,305],123:[2,305],124:[2,305],125:[2,305],132:[2,305],151:[2,305],153:[2,305],165:[2,305],169:[2,305],175:[2,305],177:[2,305],179:[2,305],194:[2,305],195:[2,305],196:[2,305],197:[2,305]},{44:[1,346],125:[1,345]},{44:[2,303],125:[2,303]},
{113:[1,347],123:[1,117],140:348},{113:[2,309],123:[2,309]},{2:[2,242],9:[2,242],13:[2,242],16:[2,242],18:[2,242],29:[2,242],33:93,44:[2,242],48:[2,242],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[2,242],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,242],100:[2,242],102:[2,242],105:[2,242],109:88,119:[2,242],125:[2,242],149:[2,242],
156:[1,86],158:[2,242],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{115:[1,351],157:349,162:350},{122:[1,353],159:352},{11:[1,360],13:[2,50],28:358,44:[1,356],51:354,55:355,56:357,57:[1,359],115:[1,130]},{11:[1,361]},{11:[1,256],16:[2,146],18:[2,146],115:[1,254],119:[1,362],121:363,122:[1,255],123:[1,257],124:[1,258]},{11:[2,148],16:[2,148],18:[2,148],115:[2,148],119:[2,148],122:[2,148],123:[2,148],124:[2,148],125:[2,148]},{11:[2,150],16:[2,150],18:[2,150],
115:[2,150],119:[2,150],122:[2,150],123:[2,150],124:[2,150],125:[2,150]},{11:[2,151],16:[2,151],18:[2,151],115:[2,151],119:[2,151],122:[2,151],123:[2,151],124:[2,151],125:[2,151]},{11:[1,36],28:42,36:364,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,
194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,153],16:[2,153],18:[2,153],115:[2,153],119:[2,153],122:[2,153],123:[2,153],124:[2,153],125:[2,153]},{11:[1,256],115:[1,254],118:365,121:253,122:[1,255],123:[1,257],124:[1,258]},{11:[1,369],123:[1,370],124:[1,371],129:366,131:367,132:[1,368]},{11:[1,36],28:42,36:372,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,
48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{14:[1,373]},{16:[1,374],18:[1,375]},{16:[2,181],18:[2,181]},{113:[1,376]},{16:[1,377],18:[1,378]},{16:[2,172],18:[2,172]},{16:[2,174],18:[2,174],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,
77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{11:[2,275],16:[2,275],18:[2,275],54:[2,275],61:[2,275],69:[2,275],70:[2,275],71:[2,275],72:[2,275],73:[2,275],74:[2,275],75:[2,275],76:[2,275],77:[2,275],78:[2,275],79:[2,275],80:[2,275],81:[2,275],82:[2,275],83:[2,275],84:[2,275],85:[2,275],86:[2,275],87:[2,275],88:[2,275],89:[2,275],90:[2,275],91:[2,275],
92:[2,275],93:[2,275],94:[2,275],95:[2,275],98:[2,275],102:[2,275],104:[2,275],107:[2,275],110:[2,275],112:[2,275],115:[2,275],122:[2,275],124:[2,275],132:[2,275],135:[1,379],149:[2,275],151:[2,275],153:[2,275],156:[2,275],160:[2,275],165:[2,275],168:[2,275],169:[2,275],175:[2,275],176:[2,275],177:[2,275],179:[2,275],184:[2,275],194:[2,275],195:[2,275],196:[2,275],197:[2,275]},{11:[1,36],28:42,36:380,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,
104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,285],13:[2,285],29:[2,285],35:[2,285],54:[2,285],61:[2,285],69:[2,285],98:[2,285],104:[2,285],107:[2,285],110:[2,285],112:[2,285],113:[2,285],115:[2,285],119:[2,285],122:[2,285],123:[2,285],124:[2,285],132:[2,285],151:[2,285],153:[2,285],165:[2,285],
169:[2,285],175:[2,285],177:[2,285],179:[2,285],194:[2,285],195:[2,285],196:[2,285],197:[2,285]},{13:[1,336]},{2:[2,197],9:[2,197],11:[2,197],13:[2,197],16:[2,197],18:[2,197],29:[2,197],44:[2,197],48:[2,197],54:[2,197],61:[2,197],69:[2,197],70:[2,197],71:[2,197],72:[2,197],73:[2,197],74:[2,197],75:[2,197],76:[2,197],77:[2,197],78:[2,197],79:[2,197],80:[2,197],81:[2,197],82:[2,197],83:[2,197],84:[2,197],85:[2,197],86:[2,197],87:[2,197],88:[2,197],89:[2,197],90:[2,197],91:[2,197],92:[2,197],93:[2,197],
94:[2,197],95:[2,197],98:[2,197],99:[2,197],100:[2,197],102:[2,197],104:[2,197],105:[2,197],107:[2,197],110:[2,197],112:[2,197],115:[2,197],119:[2,197],122:[2,197],123:[2,197],124:[2,197],125:[2,197],132:[2,197],149:[2,197],151:[2,197],153:[2,197],156:[2,197],158:[2,197],160:[2,197],165:[2,197],168:[2,197],169:[2,197],175:[2,197],176:[2,197],177:[2,197],179:[2,197],184:[2,197],194:[2,197],195:[2,197],196:[2,197],197:[2,197]},{13:[1,381]},{11:[1,36],13:[1,382],28:42,36:211,39:35,46:33,54:[1,46],61:[1,
131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,106],28:42,36:183,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],
122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,107],28:42,36:184,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],
177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,108],28:42,36:185,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,109],28:42,36:186,39:35,46:33,54:[1,46],61:[1,
131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,110],28:42,36:187,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],
122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,111],28:42,36:188,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],
177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,112],28:42,36:189,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,113],28:42,36:190,39:35,46:33,54:[1,46],61:[1,
131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,114],28:42,36:191,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],
122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,115],28:42,36:192,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],
177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,116],28:42,36:193,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,117],28:42,36:194,39:35,46:33,54:[1,46],61:[1,
131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,118],28:42,36:195,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],
122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,119],28:42,36:196,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],
177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,120],28:42,36:197,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,121],28:42,36:198,39:35,46:33,54:[1,46],61:[1,
131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,122],28:42,36:199,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],
122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,123],28:42,36:200,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],
177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,124],28:42,36:201,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,125],28:42,36:202,39:35,46:33,54:[1,46],61:[1,
131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,126],28:42,36:203,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],
122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,127],28:42,36:204,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],
177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,128],28:42,36:205,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,129],28:42,36:206,39:35,46:33,54:[1,46],61:[1,
131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,130],28:42,36:207,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],
122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],13:[2,131],28:42,36:208,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],
177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:383,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,201],9:[2,201],11:[2,201],13:[2,201],16:[2,201],18:[2,201],29:[2,201],
44:[2,201],48:[2,201],54:[2,201],61:[2,201],69:[2,201],70:[2,201],71:[2,201],72:[2,201],73:[2,201],74:[2,201],75:[2,201],76:[2,201],77:[2,201],78:[2,201],79:[2,201],80:[2,201],81:[2,201],82:[2,201],83:[2,201],84:[2,201],85:[2,201],86:[2,201],87:[2,201],88:[2,201],89:[2,201],90:[2,201],91:[2,201],92:[2,201],93:[2,201],94:[2,201],95:[2,201],98:[2,201],99:[2,201],100:[2,201],102:[2,201],104:[2,201],105:[2,201],107:[2,201],110:[2,201],112:[2,201],115:[2,201],119:[2,201],122:[2,201],123:[2,201],124:[2,
201],125:[2,201],132:[2,201],149:[2,201],151:[2,201],153:[2,201],156:[2,201],158:[2,201],160:[2,201],165:[2,201],168:[2,201],169:[2,201],175:[2,201],176:[2,201],177:[2,201],179:[2,201],184:[2,201],194:[2,201],195:[2,201],196:[2,201],197:[2,201]},{13:[1,384],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],
94:[1,82],95:[1,83],102:[1,87],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{13:[1,385],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,
175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,206],9:[2,206],11:[2,206],13:[2,206],16:[2,206],18:[2,206],29:[2,206],44:[2,206],48:[2,206],54:[2,206],61:[2,206],69:[2,206],70:[2,206],71:[2,206],72:[2,206],73:[2,206],74:[2,206],75:[2,206],76:[2,206],77:[2,206],78:[2,206],79:[2,206],80:[2,206],81:[2,206],82:[2,206],83:[2,206],84:[2,206],85:[2,206],86:[2,206],87:[2,206],88:[2,206],89:[2,206],90:[2,206],91:[2,206],92:[2,206],93:[2,206],94:[2,206],95:[2,206],98:[2,206],99:[2,206],100:[2,206],
102:[2,206],104:[2,206],105:[2,206],107:[2,206],110:[2,206],112:[2,206],115:[2,206],119:[2,206],122:[2,206],123:[2,206],124:[2,206],125:[2,206],132:[2,206],149:[2,206],151:[2,206],153:[2,206],156:[2,206],158:[2,206],160:[2,206],165:[2,206],168:[2,206],169:[2,206],175:[2,206],176:[2,206],177:[2,206],179:[2,206],184:[2,206],194:[2,206],195:[2,206],196:[2,206],197:[2,206]},{2:[2,278],9:[2,278],11:[2,278],13:[2,278],16:[2,278],18:[2,278],29:[2,278],44:[2,278],48:[2,278],54:[2,278],61:[2,278],69:[2,278],
70:[2,278],71:[2,278],72:[2,278],73:[2,278],74:[2,278],75:[2,278],76:[2,278],77:[2,278],78:[2,278],79:[2,278],80:[2,278],81:[2,278],82:[2,278],83:[2,278],84:[2,278],85:[2,278],86:[2,278],87:[2,278],88:[2,278],89:[2,278],90:[2,278],91:[2,278],92:[2,278],93:[2,278],94:[2,278],95:[2,278],98:[2,278],99:[2,278],100:[2,278],102:[2,278],104:[2,278],105:[2,278],107:[2,278],110:[2,278],112:[2,278],115:[2,278],119:[2,278],122:[2,278],123:[2,278],124:[2,278],125:[2,278],132:[2,278],149:[2,278],151:[2,278],153:[2,
278],156:[2,278],158:[2,278],160:[2,278],165:[2,278],168:[2,278],169:[2,278],175:[2,278],176:[2,278],177:[2,278],179:[2,278],184:[2,278],194:[2,278],195:[2,278],196:[2,278],197:[2,278]},{2:[2,271],9:[2,271],11:[2,271],13:[2,271],16:[2,271],18:[2,271],29:[2,271],35:[2,271],44:[2,271],48:[2,271],54:[2,271],61:[2,271],69:[2,271],70:[2,271],71:[2,271],72:[2,271],73:[2,271],74:[2,271],75:[2,271],76:[2,271],77:[2,271],78:[2,271],79:[2,271],80:[2,271],81:[2,271],82:[2,271],83:[2,271],84:[2,271],85:[2,271],
86:[2,271],87:[2,271],88:[2,271],89:[2,271],90:[2,271],91:[2,271],92:[2,271],93:[2,271],94:[2,271],95:[2,271],98:[2,271],99:[2,271],100:[2,271],102:[2,271],104:[2,271],105:[2,271],107:[2,271],110:[2,271],112:[2,271],113:[2,271],115:[2,271],119:[2,271],122:[2,271],123:[2,271],124:[2,271],125:[2,271],132:[2,271],149:[2,271],151:[2,271],153:[2,271],156:[2,271],158:[2,271],160:[2,271],165:[2,271],168:[2,271],169:[2,271],175:[2,271],176:[2,271],177:[2,271],179:[2,271],184:[2,271],194:[2,271],195:[2,271],
196:[2,271],197:[2,271]},{13:[2,274],44:[2,274]},{2:[2,209],9:[2,209],11:[2,209],13:[2,209],16:[2,209],18:[2,209],29:[2,209],44:[2,209],48:[2,209],54:[2,209],61:[2,209],69:[2,209],70:[2,209],71:[2,209],72:[2,209],73:[2,209],74:[2,209],75:[2,209],76:[2,209],77:[2,209],78:[2,209],79:[2,209],80:[2,209],81:[2,209],82:[2,209],83:[2,209],84:[2,209],85:[2,209],86:[2,209],87:[2,209],88:[2,209],89:[2,209],90:[2,209],91:[2,209],92:[2,209],93:[2,209],94:[2,209],95:[2,209],98:[2,209],99:[2,209],100:[2,209],102:[2,
209],104:[2,209],105:[2,209],107:[2,209],110:[2,209],112:[2,209],115:[2,209],119:[2,209],122:[2,209],123:[2,209],124:[2,209],125:[2,209],132:[2,209],149:[2,209],151:[2,209],153:[2,209],156:[2,209],158:[2,209],160:[2,209],165:[2,209],168:[2,209],169:[2,209],175:[2,209],176:[2,209],177:[2,209],179:[2,209],184:[2,209],194:[2,209],195:[2,209],196:[2,209],197:[2,209]},{11:[1,36],28:42,36:387,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,
29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],154:386,165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,276],9:[2,276],11:[2,276],13:[2,276],16:[2,276],18:[2,276],29:[2,276],35:[2,276],44:[2,276],48:[2,276],54:[2,276],61:[2,276],69:[2,276],70:[2,276],71:[2,276],72:[2,276],73:[2,276],74:[2,276],75:[2,276],76:[2,276],77:[2,276],78:[2,276],79:[2,276],80:[2,276],81:[2,
276],82:[2,276],83:[2,276],84:[2,276],85:[2,276],86:[2,276],87:[2,276],88:[2,276],89:[2,276],90:[2,276],91:[2,276],92:[2,276],93:[2,276],94:[2,276],95:[2,276],98:[2,276],99:[2,276],100:[2,276],102:[2,276],104:[2,276],105:[2,276],107:[2,276],110:[2,276],112:[2,276],113:[2,276],115:[2,276],119:[2,276],122:[2,276],123:[2,276],124:[2,276],125:[2,276],132:[2,276],149:[2,276],151:[2,276],153:[2,276],156:[2,276],158:[2,276],160:[2,276],165:[2,276],168:[2,276],169:[2,276],175:[2,276],176:[2,276],177:[2,276],
179:[2,276],184:[2,276],194:[2,276],195:[2,276],196:[2,276],197:[2,276]},{2:[2,267],9:[2,267],11:[2,267],13:[2,267],16:[2,267],18:[2,267],29:[2,267],35:[2,267],44:[2,267],48:[2,267],54:[2,267],61:[2,267],69:[2,267],70:[2,267],71:[2,267],72:[2,267],73:[2,267],74:[2,267],75:[2,267],76:[2,267],77:[2,267],78:[2,267],79:[2,267],80:[2,267],81:[2,267],82:[2,267],83:[2,267],84:[2,267],85:[2,267],86:[2,267],87:[2,267],88:[2,267],89:[2,267],90:[2,267],91:[2,267],92:[2,267],93:[2,267],94:[2,267],95:[2,267],
98:[2,267],99:[2,267],100:[2,267],102:[2,267],104:[2,267],105:[2,267],107:[2,267],110:[2,267],112:[2,267],113:[2,267],115:[2,267],119:[2,267],122:[2,267],123:[2,267],124:[2,267],125:[2,267],132:[2,267],149:[2,267],151:[2,267],153:[2,267],156:[2,267],158:[2,267],160:[2,267],165:[2,267],168:[2,267],169:[2,267],175:[2,267],176:[2,267],177:[2,267],179:[2,267],184:[2,267],194:[2,267],195:[2,267],196:[2,267],197:[2,267]},{2:[2,265],9:[2,265],11:[2,265],13:[2,265],16:[2,265],18:[2,265],29:[2,265],35:[2,
265],44:[2,265],48:[2,265],54:[2,265],61:[2,265],69:[2,265],70:[2,265],71:[2,265],72:[2,265],73:[2,265],74:[2,265],75:[2,265],76:[2,265],77:[2,265],78:[2,265],79:[2,265],80:[2,265],81:[2,265],82:[2,265],83:[2,265],84:[2,265],85:[2,265],86:[2,265],87:[2,265],88:[2,265],89:[2,265],90:[2,265],91:[2,265],92:[2,265],93:[2,265],94:[2,265],95:[2,265],98:[2,265],99:[2,265],100:[2,265],102:[2,265],104:[2,265],105:[2,265],107:[2,265],110:[2,265],112:[2,265],113:[2,265],115:[2,265],119:[2,265],122:[2,265],123:[2,
265],124:[2,265],125:[2,265],132:[2,265],149:[2,265],151:[2,265],153:[2,265],156:[2,265],158:[2,265],160:[2,265],165:[2,265],168:[2,265],169:[2,265],175:[2,265],176:[2,265],177:[2,265],179:[2,265],184:[2,265],194:[2,265],195:[2,265],196:[2,265],197:[2,265]},{2:[2,230],9:[2,230],11:[2,230],13:[2,230],16:[2,230],18:[2,230],29:[2,230],44:[2,230],48:[2,230],54:[2,230],61:[2,230],69:[2,230],70:[2,230],71:[2,230],72:[2,230],73:[2,230],74:[2,230],75:[2,230],76:[2,230],77:[2,230],78:[2,230],79:[2,230],80:[2,
230],81:[2,230],82:[2,230],83:[2,230],84:[2,230],85:[2,230],86:[2,230],87:[2,230],88:[2,230],89:[2,230],90:[2,230],91:[2,230],92:[2,230],93:[2,230],94:[2,230],95:[2,230],98:[2,230],99:[2,230],100:[2,230],102:[2,230],104:[2,230],105:[2,230],107:[2,230],110:[2,230],112:[2,230],115:[2,230],119:[2,230],122:[2,230],123:[2,230],124:[2,230],125:[2,230],132:[2,230],149:[2,230],151:[2,230],153:[2,230],156:[2,230],158:[2,230],160:[2,230],165:[2,230],168:[2,230],169:[2,230],175:[2,230],176:[2,230],177:[2,230],
179:[2,230],184:[2,230],194:[2,230],195:[2,230],196:[2,230],197:[2,230]},{11:[1,36],28:42,36:388,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:389,39:35,46:33,54:[1,46],61:[1,131],65:14,
66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:392,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,391],122:[1,24],124:[1,43],
127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],166:390,169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,236],9:[2,236],11:[2,236],13:[2,236],16:[2,236],18:[2,236],29:[2,236],44:[2,236],48:[2,236],54:[2,236],61:[2,236],69:[2,236],70:[2,236],71:[2,236],72:[2,236],73:[2,236],74:[2,236],75:[2,236],76:[2,236],77:[2,236],78:[2,236],79:[2,236],80:[2,236],81:[2,236],82:[2,236],83:[2,236],84:[2,236],85:[2,236],86:[2,236],87:[2,236],
88:[2,236],89:[2,236],90:[2,236],91:[2,236],92:[2,236],93:[2,236],94:[2,236],95:[2,236],98:[2,236],99:[2,236],100:[2,236],102:[2,236],104:[2,236],105:[2,236],107:[2,236],110:[2,236],112:[2,236],115:[2,236],119:[2,236],122:[2,236],123:[2,236],124:[2,236],125:[2,236],132:[2,236],149:[2,236],151:[2,236],153:[2,236],156:[2,236],158:[2,236],160:[2,236],165:[2,236],168:[2,236],169:[2,236],175:[2,236],176:[2,236],177:[2,236],179:[2,236],184:[2,236],194:[2,236],195:[2,236],196:[2,236],197:[2,236]},{2:[2,
221],9:[2,221],13:[2,221],16:[2,221],18:[2,221],29:[2,221],44:[2,221],48:[2,221],70:[2,221],71:[2,221],72:[2,221],73:[2,221],74:[2,221],75:[2,221],76:[2,221],77:[2,221],78:[2,221],79:[2,221],80:[2,221],81:[2,221],82:[2,221],83:[2,221],84:[2,221],85:[2,221],86:[2,221],87:[2,221],88:[2,221],89:[2,221],90:[2,221],91:[2,221],92:[2,221],93:[2,221],94:[2,221],95:[2,221],99:[2,221],100:[2,221],102:[2,221],105:[2,221],119:[2,221],125:[2,221],149:[2,221],156:[2,221],158:[2,221],160:[2,221],168:[2,221],175:[2,
221],176:[2,221],179:[2,221],184:[2,221]},{115:[1,214],163:393},{11:[1,36],28:42,36:394,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,257],54:[2,257],61:[2,257],69:[2,257],98:[2,257],104:[2,257],107:[2,
257],110:[2,257],112:[2,257],115:[2,257],122:[2,257],124:[2,257],132:[2,257],151:[2,257],153:[2,257],165:[2,257],169:[2,257],177:[2,257],194:[2,257],195:[2,257],196:[2,257],197:[2,257]},{11:[2,259],54:[2,259],61:[2,259],69:[2,259],98:[2,259],104:[2,259],107:[2,259],110:[2,259],112:[2,259],115:[2,259],122:[2,259],124:[2,259],132:[2,259],151:[2,259],153:[2,259],165:[2,259],169:[2,259],177:[2,259],194:[2,259],195:[2,259],196:[2,259],197:[2,259]},{11:[2,261],54:[2,261],61:[2,261],69:[2,261],98:[2,261],
104:[2,261],107:[2,261],110:[2,261],112:[2,261],115:[2,261],122:[2,261],123:[2,261],124:[2,261],132:[2,261],151:[2,261],153:[2,261],165:[2,261],169:[2,261],177:[2,261],194:[2,261],195:[2,261],196:[2,261],197:[2,261]},{2:[2,138],9:[2,138],13:[2,138],16:[2,138],18:[2,138],29:[2,138],33:93,44:[2,138],48:[2,138],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,
77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,138],100:[2,138],102:[1,87],105:[2,138],109:88,119:[2,138],125:[2,138],149:[1,85],156:[1,86],158:[2,138],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{16:[2,27],18:[2,27]},{2:[2,29],9:[1,395],16:[2,29],18:[2,29],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],
87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{11:[1,36],28:42,30:396,36:327,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,
51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,30:397,36:327,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,183],16:[2,183],18:[2,183],119:[1,
332],139:398},{2:[2,185],16:[2,185],18:[2,185],119:[2,185]},{11:[1,36],28:42,36:399,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],123:[1,117],124:[1,43],127:31,132:[1,48],140:400,141:[1,401],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,22],16:[2,22],18:[2,22]},{29:[1,402]},
{11:[1,141],28:139,32:403,39:111,54:[1,46],112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,144:55,145:109,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,185:107,186:108,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,291],13:[2,291],29:[2,291],35:[2,291],44:[2,291],54:[2,291],61:[2,291],69:[2,291],98:[2,291],104:[2,291],107:[2,291],110:[2,291],112:[2,291],113:[2,291],115:[2,291],119:[2,291],122:[2,291],123:[2,291],124:[2,291],125:[2,291],132:[2,
291],151:[2,291],153:[2,291],165:[2,291],169:[2,291],175:[2,291],177:[2,291],179:[2,291],194:[2,291],195:[2,291],196:[2,291],197:[2,291]},{115:[1,241],123:[1,117],140:242,187:404},{2:[2,17],16:[2,17],18:[2,17],108:[2,17]},{16:[1,405]},{11:[1,103],20:406,28:236,32:102,34:104,39:111,54:[1,46],112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,144:55,145:109,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,185:107,186:108,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,
50]},{2:[2,18],16:[2,18],18:[2,18],108:[2,18]},{11:[1,141],28:139,29:[1,329],39:111,54:[1,46],112:[1,119],115:[1,106],119:[1,332],122:[1,114],123:[1,117],124:[1,116],132:[1,48],138:330,139:331,140:112,144:55,145:140,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,186:270,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,297],13:[2,297],29:[2,297],35:[2,297],44:[2,297],54:[2,297],61:[2,297],69:[2,297],98:[2,297],104:[2,297],107:[2,297],110:[2,297],112:[2,297],113:[2,297],115:[2,
297],119:[2,297],122:[2,297],123:[2,297],124:[2,297],125:[2,297],132:[2,297],151:[2,297],153:[2,297],165:[2,297],169:[2,297],175:[2,297],177:[2,297],179:[2,297],194:[2,297],195:[2,297],196:[2,297],197:[2,297]},{11:[2,298],13:[2,298],29:[2,298],35:[2,298],44:[2,298],54:[2,298],61:[2,298],69:[2,298],98:[2,298],104:[2,298],107:[2,298],110:[2,298],112:[2,298],113:[2,298],115:[2,298],119:[2,298],122:[2,298],123:[2,298],124:[2,298],125:[2,298],132:[2,298],151:[2,298],153:[2,298],165:[2,298],169:[2,298],
175:[2,298],177:[2,298],179:[2,298],194:[2,298],195:[2,298],196:[2,298],197:[2,298]},{11:[2,300],13:[2,300],29:[2,300],35:[2,300],44:[2,300],54:[2,300],61:[2,300],69:[2,300],98:[2,300],104:[2,300],107:[2,300],110:[2,300],112:[2,300],113:[2,300],115:[2,300],119:[2,300],122:[2,300],123:[2,300],124:[2,300],125:[2,300],132:[2,300],151:[2,300],153:[2,300],165:[2,300],169:[2,300],175:[2,300],177:[2,300],179:[2,300],194:[2,300],195:[2,300],196:[2,300],197:[2,300]},{11:[1,141],28:139,39:111,54:[1,46],112:[1,
119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,144:55,145:140,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,186:407,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,307],13:[2,307],29:[2,307],35:[2,307],44:[2,307],54:[2,307],61:[2,307],69:[2,307],98:[2,307],104:[2,307],107:[2,307],110:[2,307],112:[2,307],113:[2,307],115:[2,307],119:[2,307],122:[2,307],123:[2,307],124:[2,307],125:[2,307],132:[2,307],151:[2,307],153:[2,307],165:[2,307],169:[2,307],175:[2,
307],177:[2,307],179:[2,307],194:[2,307],195:[2,307],196:[2,307],197:[2,307]},{113:[2,308],123:[2,308]},{18:[1,409],44:[1,410],158:[1,408]},{18:[2,223],44:[2,223],158:[2,223]},{18:[2,224],44:[2,224],158:[2,224]},{16:[2,216],18:[2,216],119:[1,411]},{16:[2,220],18:[2,220],119:[2,220]},{13:[1,412]},{13:[2,47],44:[1,413]},{13:[2,49]},{13:[2,52],44:[2,52]},{13:[2,53],44:[2,53]},{11:[1,414],13:[2,54],44:[2,54]},{179:[1,149]},{11:[1,360],13:[2,50],28:358,44:[1,356],51:415,55:355,56:357,57:[1,359],115:[1,
130]},{11:[1,36],28:42,36:129,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],120:416,122:[1,24],123:[1,419],124:[1,43],126:417,127:418,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,149],16:[2,149],18:[2,149],115:[2,149],119:[2,149],122:[2,149],123:[2,149],124:[2,149],125:[2,
149]},{13:[1,420],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{11:[1,256],115:[1,254],121:363,122:[1,255],123:[1,257],124:[1,258],125:[1,421]},{11:[1,369],
16:[2,159],18:[2,159],119:[1,422],123:[1,370],124:[1,371],131:423,132:[1,368]},{11:[2,162],16:[2,162],18:[2,162],119:[2,162],123:[2,162],124:[2,162],125:[2,162],132:[2,162]},{11:[2,164],16:[2,164],18:[2,164],119:[2,164],123:[2,164],124:[2,164],125:[2,164],132:[2,164]},{11:[1,36],28:42,36:424,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,
147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,166],16:[2,166],18:[2,166],119:[2,166],123:[2,166],124:[2,166],125:[2,166],132:[2,166]},{11:[1,369],123:[1,370],124:[1,371],129:425,131:367,132:[1,368]},{33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,
78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],100:[1,426],102:[1,87],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{11:[1,141],28:139,32:264,39:111,54:[1,46],106:427,112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],137:263,140:112,144:55,145:109,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,185:107,186:108,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,137],9:[2,137],13:[2,137],
16:[2,137],18:[2,137],29:[2,137],44:[2,137],48:[2,137],70:[2,137],71:[2,137],72:[2,137],73:[2,137],74:[2,137],75:[2,137],76:[2,137],77:[2,137],78:[2,137],79:[2,137],80:[2,137],81:[2,137],82:[2,137],83:[2,137],84:[2,137],85:[2,137],86:[2,137],87:[2,137],88:[2,137],89:[2,137],90:[2,137],91:[2,137],92:[2,137],93:[2,137],94:[2,137],95:[2,137],99:[2,137],100:[2,137],102:[2,137],105:[2,137],119:[2,137],125:[2,137],149:[2,137],156:[2,137],158:[2,137],160:[2,137],168:[2,137],175:[2,137],176:[2,137],179:[2,
137],184:[2,137]},{11:[1,141],28:139,32:264,39:111,54:[1,46],112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],137:428,140:112,144:55,145:109,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,185:107,186:108,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:429,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,
48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,140],9:[2,140],13:[2,140],16:[2,140],18:[2,140],29:[2,140],44:[2,140],48:[2,140],70:[2,140],71:[2,140],72:[2,140],73:[2,140],74:[2,140],75:[2,140],76:[2,140],77:[2,140],78:[2,140],79:[2,140],80:[2,140],81:[2,140],82:[2,140],83:[2,140],84:[2,140],85:[2,140],86:[2,140],87:[2,140],88:[2,140],89:[2,140],90:[2,140],91:[2,140],92:[2,140],93:[2,140],
94:[2,140],95:[2,140],99:[2,140],100:[2,140],102:[2,140],105:[2,140],119:[2,140],125:[2,140],149:[2,140],156:[2,140],158:[2,140],160:[2,140],168:[2,140],175:[2,140],176:[2,140],179:[2,140],184:[2,140]},{11:[1,36],28:42,36:267,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,268],122:[1,24],124:[1,43],127:31,132:[1,48],134:430,144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],
169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:431,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,141],9:[2,141],13:[2,141],16:[2,141],18:[2,141],29:[2,141],
33:93,44:[2,141],48:[2,141],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,141],100:[2,141],102:[1,87],105:[2,141],109:88,119:[2,141],125:[2,141],149:[1,85],156:[1,86],158:[2,141],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,202],9:[2,
202],11:[2,202],13:[2,202],16:[2,202],18:[2,202],29:[2,202],44:[2,202],48:[2,202],54:[2,202],61:[2,202],69:[2,202],70:[2,202],71:[2,202],72:[2,202],73:[2,202],74:[2,202],75:[2,202],76:[2,202],77:[2,202],78:[2,202],79:[2,202],80:[2,202],81:[2,202],82:[2,202],83:[2,202],84:[2,202],85:[2,202],86:[2,202],87:[2,202],88:[2,202],89:[2,202],90:[2,202],91:[2,202],92:[2,202],93:[2,202],94:[2,202],95:[2,202],98:[2,202],99:[2,202],100:[2,202],102:[2,202],104:[2,202],105:[2,202],107:[2,202],110:[2,202],112:[2,
202],115:[2,202],119:[2,202],122:[2,202],123:[2,202],124:[2,202],125:[2,202],132:[2,202],149:[2,202],151:[2,202],153:[2,202],156:[2,202],158:[2,202],160:[2,202],165:[2,202],168:[2,202],169:[2,202],175:[2,202],176:[2,202],177:[2,202],179:[2,202],184:[2,202],194:[2,202],195:[2,202],196:[2,202],197:[2,202]},{2:[2,205],9:[2,205],11:[2,205],13:[2,205],16:[2,205],18:[2,205],29:[2,205],44:[2,205],48:[2,205],54:[2,205],61:[2,205],69:[2,205],70:[2,205],71:[2,205],72:[2,205],73:[2,205],74:[2,205],75:[2,205],
76:[2,205],77:[2,205],78:[2,205],79:[2,205],80:[2,205],81:[2,205],82:[2,205],83:[2,205],84:[2,205],85:[2,205],86:[2,205],87:[2,205],88:[2,205],89:[2,205],90:[2,205],91:[2,205],92:[2,205],93:[2,205],94:[2,205],95:[2,205],98:[2,205],99:[2,205],100:[2,205],102:[2,205],104:[2,205],105:[2,205],107:[2,205],110:[2,205],112:[2,205],115:[2,205],119:[2,205],122:[2,205],123:[2,205],124:[2,205],125:[2,205],132:[2,205],149:[2,205],151:[2,205],153:[2,205],156:[2,205],158:[2,205],160:[2,205],165:[2,205],168:[2,
205],169:[2,205],175:[2,205],176:[2,205],177:[2,205],179:[2,205],184:[2,205],194:[2,205],195:[2,205],196:[2,205],197:[2,205]},{13:[2,213],33:93,44:[2,213],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],
176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,203],9:[2,203],11:[2,203],13:[2,203],16:[2,203],18:[2,203],29:[2,203],44:[2,203],48:[2,203],54:[2,203],61:[2,203],69:[2,203],70:[2,203],71:[2,203],72:[2,203],73:[2,203],74:[2,203],75:[2,203],76:[2,203],77:[2,203],78:[2,203],79:[2,203],80:[2,203],81:[2,203],82:[2,203],83:[2,203],84:[2,203],85:[2,203],86:[2,203],87:[2,203],88:[2,203],89:[2,203],90:[2,203],91:[2,203],92:[2,203],93:[2,203],94:[2,203],95:[2,203],98:[2,203],99:[2,203],100:[2,203],102:[2,203],
104:[2,203],105:[2,203],107:[2,203],110:[2,203],112:[2,203],115:[2,203],119:[2,203],122:[2,203],123:[2,203],124:[2,203],125:[2,203],132:[2,203],149:[2,203],151:[2,203],153:[2,203],156:[2,203],158:[2,203],160:[2,203],165:[2,203],168:[2,203],169:[2,203],175:[2,203],176:[2,203],177:[2,203],179:[2,203],184:[2,203],194:[2,203],195:[2,203],196:[2,203],197:[2,203]},{2:[2,204],9:[2,204],11:[2,204],13:[2,204],16:[2,204],18:[2,204],29:[2,204],44:[2,204],48:[2,204],54:[2,204],61:[2,204],69:[2,204],70:[2,204],
71:[2,204],72:[2,204],73:[2,204],74:[2,204],75:[2,204],76:[2,204],77:[2,204],78:[2,204],79:[2,204],80:[2,204],81:[2,204],82:[2,204],83:[2,204],84:[2,204],85:[2,204],86:[2,204],87:[2,204],88:[2,204],89:[2,204],90:[2,204],91:[2,204],92:[2,204],93:[2,204],94:[2,204],95:[2,204],98:[2,204],99:[2,204],100:[2,204],102:[2,204],104:[2,204],105:[2,204],107:[2,204],110:[2,204],112:[2,204],115:[2,204],119:[2,204],122:[2,204],123:[2,204],124:[2,204],125:[2,204],132:[2,204],149:[2,204],151:[2,204],153:[2,204],
156:[2,204],158:[2,204],160:[2,204],165:[2,204],168:[2,204],169:[2,204],175:[2,204],176:[2,204],177:[2,204],179:[2,204],184:[2,204],194:[2,204],195:[2,204],196:[2,204],197:[2,204]},{13:[2,211],44:[2,211]},{29:[1,301],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,
149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,125:[1,432],149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,
96],184:[1,97]},{33:93,44:[1,435],48:[1,433],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,125:[1,318],149:[1,85],156:[1,86],160:[1,89],164:434,168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{44:[1,437],125:[1,438],167:436},{11:[2,275],44:[2,
275],54:[2,275],61:[2,275],69:[2,275],70:[2,275],71:[2,275],72:[2,275],73:[2,275],74:[2,275],75:[2,275],76:[2,275],77:[2,275],78:[2,275],79:[2,275],80:[2,275],81:[2,275],82:[2,275],83:[2,275],84:[2,275],85:[2,275],86:[2,275],87:[2,275],88:[2,275],89:[2,275],90:[2,275],91:[2,275],92:[2,275],93:[2,275],94:[2,275],95:[2,275],98:[2,275],102:[2,275],104:[2,275],107:[2,275],110:[2,275],112:[2,275],115:[2,275],122:[2,275],124:[2,275],125:[2,275],132:[2,275],135:[1,439],149:[2,275],151:[2,275],153:[2,275],
156:[2,275],160:[2,275],165:[2,275],168:[2,275],169:[2,275],175:[2,275],176:[2,275],177:[2,275],179:[2,275],184:[2,275],194:[2,275],195:[2,275],196:[2,275],197:[2,275]},{33:93,44:[2,240],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,125:[2,240],149:[1,85],156:[1,86],160:[1,
89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{44:[2,225],158:[2,225]},{33:93,44:[2,227],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,149:[1,85],156:[1,86],158:[2,227],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,
179:[1,96],184:[1,97]},{14:[1,105],26:440},{16:[2,28],18:[2,28]},{2:[2,23],16:[2,23],18:[2,23]},{2:[2,184],16:[2,184],18:[2,184],119:[2,184]},{29:[1,441],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,
94],176:[1,92],178:95,179:[1,96],184:[1,97]},{29:[1,442]},{29:[1,443]},{11:[1,36],28:42,30:444,36:327,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{13:[1,445]},{13:[1,446]},{2:[2,19],16:[2,19],18:[2,19],108:[2,
19]},{2:[2,20],16:[2,20],18:[2,20]},{44:[2,302],125:[2,302]},{16:[2,214],18:[2,214]},{158:[1,447]},{115:[1,351],162:448},{122:[1,449]},{16:[2,44],18:[2,44]},{11:[1,360],13:[2,48],28:358,56:450,57:[1,359],115:[1,130]},{11:[1,457],13:[2,190],48:[1,451],49:452,122:[1,456],142:453,143:454,144:455},{13:[1,458]},{11:[1,36],16:[2,147],18:[2,147],28:42,36:129,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,
130],122:[1,24],123:[1,419],124:[1,43],126:459,127:418,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,155],16:[2,155],18:[2,155],54:[2,155],61:[2,155],69:[2,155],98:[2,155],104:[2,155],107:[2,155],110:[2,155],112:[2,155],115:[2,155],122:[2,155],123:[2,155],124:[2,155],132:[2,155],151:[2,155],153:[2,155],165:[2,155],169:[2,155],177:[2,155],194:[2,155],195:[2,155],196:[2,155],197:[2,
155]},{11:[2,157],16:[2,157],18:[2,157],54:[2,157],61:[2,157],69:[2,157],70:[2,157],71:[2,157],72:[2,157],73:[2,157],74:[2,157],75:[2,157],76:[2,157],77:[2,157],78:[2,157],79:[2,157],80:[2,157],81:[2,157],82:[2,157],83:[2,157],84:[2,157],85:[2,157],86:[2,157],87:[2,157],88:[2,157],89:[2,157],90:[2,157],91:[2,157],92:[2,157],93:[2,157],94:[2,157],95:[2,157],98:[2,157],102:[2,157],104:[2,157],107:[2,157],110:[2,157],112:[2,157],115:[2,157],122:[2,157],123:[2,157],124:[2,157],132:[2,157],149:[2,157],
151:[2,157],153:[2,157],156:[2,157],160:[2,157],165:[2,157],168:[2,157],169:[2,157],175:[2,157],176:[2,157],177:[2,157],179:[2,157],184:[2,157],194:[2,157],195:[2,157],196:[2,157],197:[2,157]},{11:[2,158],16:[2,158],18:[2,158],54:[2,158],61:[2,158],69:[2,158],98:[2,158],104:[2,158],107:[2,158],110:[2,158],112:[2,158],115:[2,158],122:[2,158],123:[2,158],124:[2,158],132:[2,158],151:[2,158],153:[2,158],165:[2,158],169:[2,158],177:[2,158],194:[2,158],195:[2,158],196:[2,158],197:[2,158]},{11:[2,152],16:[2,
152],18:[2,152],115:[2,152],119:[2,152],122:[2,152],123:[2,152],124:[2,152],125:[2,152]},{11:[2,154],16:[2,154],18:[2,154],115:[2,154],119:[2,154],122:[2,154],123:[2,154],124:[2,154],125:[2,154]},{11:[1,36],28:42,36:129,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],123:[1,463],124:[1,43],127:462,130:460,132:[1,48],133:461,144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,
51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,163],16:[2,163],18:[2,163],119:[2,163],123:[2,163],124:[2,163],125:[2,163],132:[2,163]},{13:[1,464],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,149:[1,85],156:[1,86],
160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{11:[1,369],123:[1,370],124:[1,371],125:[1,465],131:423,132:[1,368]},{11:[1,36],28:42,36:466,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,
49],197:[1,50]},{16:[1,467],18:[1,375]},{16:[2,180],18:[2,180]},{16:[2,182],18:[2,182],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{16:[2,173],18:[2,173]},
{16:[2,175],18:[2,175],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,231],9:[2,231],11:[2,231],13:[2,231],16:[2,231],18:[2,231],29:[2,231],44:[2,231],
48:[2,231],54:[2,231],61:[2,231],69:[2,231],70:[2,231],71:[2,231],72:[2,231],73:[2,231],74:[2,231],75:[2,231],76:[2,231],77:[2,231],78:[2,231],79:[2,231],80:[2,231],81:[2,231],82:[2,231],83:[2,231],84:[2,231],85:[2,231],86:[2,231],87:[2,231],88:[2,231],89:[2,231],90:[2,231],91:[2,231],92:[2,231],93:[2,231],94:[2,231],95:[2,231],98:[2,231],99:[2,231],100:[2,231],102:[2,231],104:[2,231],105:[2,231],107:[2,231],110:[2,231],112:[2,231],115:[2,231],119:[2,231],122:[2,231],123:[2,231],124:[2,231],125:[2,
231],132:[2,231],149:[2,231],151:[2,231],153:[2,231],156:[2,231],158:[2,231],160:[2,231],165:[2,231],168:[2,231],169:[2,231],175:[2,231],176:[2,231],177:[2,231],179:[2,231],184:[2,231],194:[2,231],195:[2,231],196:[2,231],197:[2,231]},{11:[1,36],28:42,36:468,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],
153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,235],9:[2,235],11:[2,235],13:[2,235],16:[2,235],18:[2,235],29:[2,235],44:[2,235],48:[2,235],54:[2,235],61:[2,235],69:[2,235],70:[2,235],71:[2,235],72:[2,235],73:[2,235],74:[2,235],75:[2,235],76:[2,235],77:[2,235],78:[2,235],79:[2,235],80:[2,235],81:[2,235],82:[2,235],83:[2,235],84:[2,235],85:[2,235],86:[2,235],87:[2,235],88:[2,235],89:[2,235],90:[2,235],91:[2,235],92:[2,235],93:[2,235],94:[2,235],
95:[2,235],98:[2,235],99:[2,235],100:[2,235],102:[2,235],104:[2,235],105:[2,235],107:[2,235],110:[2,235],112:[2,235],115:[2,235],119:[2,235],122:[2,235],123:[2,235],124:[2,235],125:[2,235],132:[2,235],149:[2,235],151:[2,235],153:[2,235],156:[2,235],158:[2,235],160:[2,235],165:[2,235],168:[2,235],169:[2,235],175:[2,235],176:[2,235],177:[2,235],179:[2,235],184:[2,235],194:[2,235],195:[2,235],196:[2,235],197:[2,235]},{11:[1,36],28:42,36:469,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,
18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,234],9:[2,234],11:[2,234],13:[2,234],16:[2,234],18:[2,234],29:[2,234],44:[2,234],48:[2,234],54:[2,234],61:[2,234],69:[2,234],70:[2,234],71:[2,234],72:[2,234],73:[2,234],74:[2,234],75:[2,234],76:[2,234],77:[2,234],78:[2,
234],79:[2,234],80:[2,234],81:[2,234],82:[2,234],83:[2,234],84:[2,234],85:[2,234],86:[2,234],87:[2,234],88:[2,234],89:[2,234],90:[2,234],91:[2,234],92:[2,234],93:[2,234],94:[2,234],95:[2,234],98:[2,234],99:[2,234],100:[2,234],102:[2,234],104:[2,234],105:[2,234],107:[2,234],110:[2,234],112:[2,234],115:[2,234],119:[2,234],122:[2,234],123:[2,234],124:[2,234],125:[2,234],132:[2,234],149:[2,234],151:[2,234],153:[2,234],156:[2,234],158:[2,234],160:[2,234],165:[2,234],168:[2,234],169:[2,234],175:[2,234],
176:[2,234],177:[2,234],179:[2,234],184:[2,234],194:[2,234],195:[2,234],196:[2,234],197:[2,234]},{11:[1,36],28:42,36:392,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,391],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],166:470,169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,238],9:[2,238],11:[2,238],
13:[2,238],16:[2,238],18:[2,238],29:[2,238],44:[2,238],48:[2,238],54:[2,238],61:[2,238],69:[2,238],70:[2,238],71:[2,238],72:[2,238],73:[2,238],74:[2,238],75:[2,238],76:[2,238],77:[2,238],78:[2,238],79:[2,238],80:[2,238],81:[2,238],82:[2,238],83:[2,238],84:[2,238],85:[2,238],86:[2,238],87:[2,238],88:[2,238],89:[2,238],90:[2,238],91:[2,238],92:[2,238],93:[2,238],94:[2,238],95:[2,238],98:[2,238],99:[2,238],100:[2,238],102:[2,238],104:[2,238],105:[2,238],107:[2,238],110:[2,238],112:[2,238],115:[2,238],
119:[2,238],122:[2,238],123:[2,238],124:[2,238],125:[2,238],132:[2,238],149:[2,238],151:[2,238],153:[2,238],156:[2,238],158:[2,238],160:[2,238],165:[2,238],168:[2,238],169:[2,238],175:[2,238],176:[2,238],177:[2,238],179:[2,238],184:[2,238],194:[2,238],195:[2,238],196:[2,238],197:[2,238]},{11:[1,36],28:42,36:471,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,
48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,30],16:[2,30],18:[2,30]},{11:[1,36],28:42,36:472,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,
194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:473,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,36],28:42,36:474,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],
96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],124:[1,43],127:31,132:[1,48],144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,24],16:[2,24],18:[2,24]},{11:[1,141],28:139,31:475,39:111,54:[1,46],112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,144:55,145:140,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,186:138,188:113,
190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,292],13:[2,292],29:[2,292],35:[2,292],44:[2,292],54:[2,292],61:[2,292],69:[2,292],98:[2,292],104:[2,292],107:[2,292],110:[2,292],112:[2,292],113:[2,292],115:[2,292],119:[2,292],122:[2,292],123:[2,292],124:[2,292],125:[2,292],132:[2,292],151:[2,292],153:[2,292],165:[2,292],169:[2,292],175:[2,292],177:[2,292],179:[2,292],194:[2,292],195:[2,292],196:[2,292],197:[2,292]},{16:[2,215],18:[2,215]},{18:[2,222],44:[2,222],158:[2,222]},{16:[2,219],
18:[2,219],119:[2,219]},{13:[2,51],44:[2,51]},{13:[1,476]},{13:[1,477]},{13:[2,189],44:[1,478]},{13:[2,192],44:[2,192]},{13:[2,193],44:[2,193]},{13:[2,264],44:[2,264]},{174:[1,151]},{16:[2,45],18:[2,45]},{11:[2,156],16:[2,156],18:[2,156],54:[2,156],61:[2,156],69:[2,156],98:[2,156],104:[2,156],107:[2,156],110:[2,156],112:[2,156],115:[2,156],122:[2,156],123:[2,156],124:[2,156],132:[2,156],151:[2,156],153:[2,156],165:[2,156],169:[2,156],177:[2,156],194:[2,156],195:[2,156],196:[2,156],197:[2,156]},{11:[1,
36],16:[2,160],18:[2,160],28:42,36:129,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],119:[1,479],122:[1,24],123:[1,463],124:[1,43],127:462,132:[1,48],133:480,144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,168],16:[2,168],18:[2,168],54:[2,168],61:[2,168],69:[2,168],98:[2,168],104:[2,168],
107:[2,168],110:[2,168],112:[2,168],115:[2,168],119:[2,168],122:[2,168],123:[2,168],124:[2,168],132:[2,168],151:[2,168],153:[2,168],165:[2,168],169:[2,168],177:[2,168],194:[2,168],195:[2,168],196:[2,168],197:[2,168]},{11:[2,170],16:[2,170],18:[2,170],54:[2,170],61:[2,170],69:[2,170],70:[2,170],71:[2,170],72:[2,170],73:[2,170],74:[2,170],75:[2,170],76:[2,170],77:[2,170],78:[2,170],79:[2,170],80:[2,170],81:[2,170],82:[2,170],83:[2,170],84:[2,170],85:[2,170],86:[2,170],87:[2,170],88:[2,170],89:[2,170],
90:[2,170],91:[2,170],92:[2,170],93:[2,170],94:[2,170],95:[2,170],98:[2,170],102:[2,170],104:[2,170],107:[2,170],110:[2,170],112:[2,170],115:[2,170],119:[2,170],122:[2,170],123:[2,170],124:[2,170],132:[2,170],149:[2,170],151:[2,170],153:[2,170],156:[2,170],160:[2,170],165:[2,170],168:[2,170],169:[2,170],175:[2,170],176:[2,170],177:[2,170],179:[2,170],184:[2,170],194:[2,170],195:[2,170],196:[2,170],197:[2,170]},{11:[2,171],16:[2,171],18:[2,171],54:[2,171],61:[2,171],69:[2,171],98:[2,171],104:[2,171],
107:[2,171],110:[2,171],112:[2,171],115:[2,171],119:[2,171],122:[2,171],123:[2,171],124:[2,171],132:[2,171],151:[2,171],153:[2,171],165:[2,171],169:[2,171],177:[2,171],194:[2,171],195:[2,171],196:[2,171],197:[2,171]},{11:[2,165],16:[2,165],18:[2,165],119:[2,165],123:[2,165],124:[2,165],125:[2,165],132:[2,165]},{11:[2,167],16:[2,167],18:[2,167],119:[2,167],123:[2,167],124:[2,167],125:[2,167],132:[2,167]},{2:[2,132],9:[2,132],13:[2,132],16:[2,132],18:[2,132],29:[2,132],33:93,44:[2,132],48:[2,132],70:[1,
58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],99:[2,132],100:[2,132],102:[1,87],105:[2,132],109:88,119:[2,132],125:[2,132],149:[1,85],156:[1,86],158:[2,132],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,136],9:[2,136],13:[2,136],16:[2,136],18:[2,
136],29:[2,136],44:[2,136],48:[2,136],70:[2,136],71:[2,136],72:[2,136],73:[2,136],74:[2,136],75:[2,136],76:[2,136],77:[2,136],78:[2,136],79:[2,136],80:[2,136],81:[2,136],82:[2,136],83:[2,136],84:[2,136],85:[2,136],86:[2,136],87:[2,136],88:[2,136],89:[2,136],90:[2,136],91:[2,136],92:[2,136],93:[2,136],94:[2,136],95:[2,136],99:[2,136],100:[2,136],102:[2,136],105:[2,136],119:[2,136],125:[2,136],149:[2,136],156:[2,136],158:[2,136],160:[2,136],168:[2,136],175:[2,136],176:[2,136],179:[2,136],184:[2,136]},
{33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,125:[1,481],149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{33:93,44:[1,435],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,
65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,125:[1,318],149:[1,85],156:[1,86],160:[1,89],164:434,168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{44:[1,437],125:[1,438],167:482},{33:93,44:[2,239],70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],
82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,125:[2,239],149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,186],16:[2,186],18:[2,186],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,
76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,119:[2,186],149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,187],16:[2,187],18:[2,187],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],
95:[1,83],102:[1,87],109:88,119:[2,187],149:[1,85],156:[1,86],160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{2:[2,188],16:[2,188],18:[2,188],33:93,70:[1,58],71:[1,59],72:[1,60],73:[1,61],74:[1,62],75:[1,63],76:[1,64],77:[1,65],78:[1,66],79:[1,67],80:[1,68],81:[1,69],82:[1,70],83:[1,71],84:[1,72],85:[1,73],86:[1,74],87:[1,75],88:[1,76],89:[1,77],90:[1,78],91:[1,79],92:[1,80],93:[1,81],94:[1,82],95:[1,83],102:[1,87],109:88,119:[2,188],149:[1,85],156:[1,86],
160:[1,89],168:[1,84],170:90,171:91,175:[1,94],176:[1,92],178:95,179:[1,96],184:[1,97]},{11:[1,488],28:484,30:483,36:327,39:487,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,492],115:[1,106],122:[1,489],123:[1,117],124:[1,490],127:31,132:[1,48],140:112,144:55,145:486,146:37,147:38,148:39,150:485,151:[1,53],153:[1,51],165:[1,491],169:[1,54],177:[1,41],182:44,186:270,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],
197:[1,50]},{13:[2,55],44:[2,55]},{13:[2,56],44:[2,56]},{11:[1,457],122:[1,456],143:493,144:455},{11:[1,36],28:42,36:129,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],123:[1,463],124:[1,43],127:462,130:494,132:[1,48],133:461,144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[2,169],
16:[2,169],18:[2,169],54:[2,169],61:[2,169],69:[2,169],98:[2,169],104:[2,169],107:[2,169],110:[2,169],112:[2,169],115:[2,169],119:[2,169],122:[2,169],123:[2,169],124:[2,169],132:[2,169],151:[2,169],153:[2,169],165:[2,169],169:[2,169],177:[2,169],194:[2,169],195:[2,169],196:[2,169],197:[2,169]},{2:[2,232],9:[2,232],11:[2,232],13:[2,232],16:[2,232],18:[2,232],29:[2,232],44:[2,232],48:[2,232],54:[2,232],61:[2,232],69:[2,232],70:[2,232],71:[2,232],72:[2,232],73:[2,232],74:[2,232],75:[2,232],76:[2,232],
77:[2,232],78:[2,232],79:[2,232],80:[2,232],81:[2,232],82:[2,232],83:[2,232],84:[2,232],85:[2,232],86:[2,232],87:[2,232],88:[2,232],89:[2,232],90:[2,232],91:[2,232],92:[2,232],93:[2,232],94:[2,232],95:[2,232],98:[2,232],99:[2,232],100:[2,232],102:[2,232],104:[2,232],105:[2,232],107:[2,232],110:[2,232],112:[2,232],115:[2,232],119:[2,232],122:[2,232],123:[2,232],124:[2,232],125:[2,232],132:[2,232],149:[2,232],151:[2,232],153:[2,232],156:[2,232],158:[2,232],160:[2,232],165:[2,232],168:[2,232],169:[2,
232],175:[2,232],176:[2,232],177:[2,232],179:[2,232],184:[2,232],194:[2,232],195:[2,232],196:[2,232],197:[2,232]},{2:[2,237],9:[2,237],11:[2,237],13:[2,237],16:[2,237],18:[2,237],29:[2,237],44:[2,237],48:[2,237],54:[2,237],61:[2,237],69:[2,237],70:[2,237],71:[2,237],72:[2,237],73:[2,237],74:[2,237],75:[2,237],76:[2,237],77:[2,237],78:[2,237],79:[2,237],80:[2,237],81:[2,237],82:[2,237],83:[2,237],84:[2,237],85:[2,237],86:[2,237],87:[2,237],88:[2,237],89:[2,237],90:[2,237],91:[2,237],92:[2,237],93:[2,
237],94:[2,237],95:[2,237],98:[2,237],99:[2,237],100:[2,237],102:[2,237],104:[2,237],105:[2,237],107:[2,237],110:[2,237],112:[2,237],115:[2,237],119:[2,237],122:[2,237],123:[2,237],124:[2,237],125:[2,237],132:[2,237],149:[2,237],151:[2,237],153:[2,237],156:[2,237],158:[2,237],160:[2,237],165:[2,237],168:[2,237],169:[2,237],175:[2,237],176:[2,237],177:[2,237],179:[2,237],184:[2,237],194:[2,237],195:[2,237],196:[2,237],197:[2,237]},{2:[2,25],16:[2,25],18:[2,25]},{2:[2,286],9:[2,286],11:[2,286],13:[2,
286],16:[2,286],18:[2,286],29:[2,286],44:[2,286],48:[2,286],54:[2,286],61:[2,286],69:[2,286],70:[2,286],71:[2,286],72:[2,286],73:[2,286],74:[2,286],75:[2,286],76:[2,286],77:[2,286],78:[2,286],79:[2,286],80:[2,286],81:[2,286],82:[2,286],83:[2,286],84:[2,286],85:[2,286],86:[2,286],87:[2,286],88:[2,286],89:[2,286],90:[2,286],91:[2,286],92:[2,286],93:[2,286],94:[2,286],95:[2,286],98:[2,286],102:[2,286],104:[2,286],107:[2,286],110:[2,286],112:[2,286],115:[2,286],119:[2,286],122:[2,286],123:[2,286],124:[2,
286],125:[2,286],132:[2,286],149:[2,286],151:[2,286],153:[2,286],156:[2,286],160:[2,286],165:[2,286],168:[2,286],169:[2,286],175:[2,286],176:[2,286],177:[2,286],179:[2,286],184:[2,286],194:[2,286],195:[2,286],196:[2,286],197:[2,286]},{2:[2,287],9:[2,287],11:[2,287],13:[2,287],16:[2,287],18:[2,287],29:[2,287],44:[2,287],48:[2,287],54:[2,287],61:[2,287],69:[2,287],70:[2,287],71:[2,287],72:[2,287],73:[2,287],74:[2,287],75:[2,287],76:[2,287],77:[2,287],78:[2,287],79:[2,287],80:[2,287],81:[2,287],82:[2,
287],83:[2,287],84:[2,287],85:[2,287],86:[2,287],87:[2,287],88:[2,287],89:[2,287],90:[2,287],91:[2,287],92:[2,287],93:[2,287],94:[2,287],95:[2,287],98:[2,287],102:[2,287],104:[2,287],107:[2,287],110:[2,287],112:[2,287],115:[2,287],119:[2,287],122:[2,287],123:[2,287],124:[2,287],125:[2,287],132:[2,287],149:[2,287],151:[2,287],153:[2,287],156:[2,287],160:[2,287],165:[2,287],168:[2,287],169:[2,287],175:[2,287],176:[2,287],177:[2,287],179:[2,287],184:[2,287],194:[2,287],195:[2,287],196:[2,287],197:[2,
287]},{2:[2,288],9:[2,288],11:[2,288],16:[2,288],18:[2,288],44:[2,288],48:[2,288],54:[2,288],61:[2,288],69:[2,288],70:[2,288],71:[2,288],72:[2,288],73:[2,288],74:[2,288],75:[2,288],76:[2,288],77:[2,288],78:[2,288],79:[2,288],80:[2,288],81:[2,288],82:[2,288],83:[2,288],84:[2,288],85:[2,288],86:[2,288],87:[2,288],88:[2,288],89:[2,288],90:[2,288],91:[2,288],92:[2,288],93:[2,288],94:[2,288],95:[2,288],98:[2,288],102:[2,288],104:[2,288],107:[2,288],110:[2,288],112:[2,288],115:[2,288],119:[2,288],122:[2,
288],123:[2,288],124:[2,288],125:[2,288],132:[2,288],149:[2,288],151:[2,288],153:[2,288],156:[2,288],160:[2,288],165:[2,288],168:[2,288],169:[2,288],175:[2,288],176:[2,288],177:[2,288],179:[2,288],184:[2,288],194:[2,288],195:[2,288],196:[2,288],197:[2,288]},{2:[2,289],9:[2,289],11:[2,289],13:[2,289],16:[2,289],18:[2,289],29:[2,289],44:[2,289],48:[2,289],54:[2,289],61:[2,289],69:[2,289],70:[2,289],71:[2,289],72:[2,289],73:[2,289],74:[2,289],75:[2,289],76:[2,289],77:[2,289],78:[2,289],79:[2,289],80:[2,
289],81:[2,289],82:[2,289],83:[2,289],84:[2,289],85:[2,289],86:[2,289],87:[2,289],88:[2,289],89:[2,289],90:[2,289],91:[2,289],92:[2,289],93:[2,289],94:[2,289],95:[2,289],98:[2,289],102:[2,289],104:[2,289],107:[2,289],110:[2,289],112:[2,289],115:[2,289],119:[2,289],122:[2,289],123:[2,289],124:[2,289],125:[2,289],132:[2,289],149:[2,289],151:[2,289],153:[2,289],156:[2,289],160:[2,289],165:[2,289],168:[2,289],169:[2,289],175:[2,289],176:[2,289],177:[2,289],179:[2,289],184:[2,289],194:[2,289],195:[2,289],
196:[2,289],197:[2,289]},{11:[1,488],13:[1,146],28:484,32:271,36:142,39:487,44:[1,178],46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],70:[1,152],71:[1,153],72:[1,154],73:[1,155],74:[1,156],75:[1,157],76:[1,158],77:[1,159],78:[1,160],79:[1,161],80:[1,162],81:[1,163],82:[1,164],83:[1,165],84:[1,166],85:[1,167],86:[1,168],87:[1,169],88:[1,170],89:[1,171],90:[1,172],91:[1,173],92:[1,174],93:[1,175],94:[1,176],95:[1,177],96:19,97:143,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],
112:[1,492],115:[1,230],122:[1,489],123:[1,117],124:[1,490],127:31,132:[1,48],140:231,144:55,145:495,146:37,147:38,148:39,149:[1,144],150:485,151:[1,53],152:148,153:[1,51],154:179,165:[1,491],169:[1,54],174:[1,151],176:[1,145],177:[1,41],178:150,179:[1,149],182:44,183:147,184:[1,97],185:107,186:108,187:229,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,294],9:[2,294],11:[1,36],13:[2,294],16:[2,294],18:[2,294],28:42,29:[2,294],36:129,39:35,44:[2,294],46:33,48:[2,294],54:[1,46],
61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],70:[2,294],71:[2,294],72:[2,294],73:[2,294],74:[2,294],75:[2,294],76:[2,294],77:[2,294],78:[2,294],79:[2,294],80:[2,294],81:[2,294],82:[2,294],83:[2,294],84:[2,294],85:[2,294],86:[2,294],87:[2,294],88:[2,294],89:[2,294],90:[2,294],91:[2,294],92:[2,294],93:[2,294],94:[2,294],95:[2,294],96:19,98:[1,25],101:128,102:[2,294],103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,496],119:[2,294],122:[1,24],123:[1,117],124:[1,43],125:[2,294],127:31,132:[1,
48],140:242,144:55,145:34,146:37,147:38,148:39,149:[2,294],150:40,151:[1,53],153:[1,51],156:[2,294],160:[2,294],165:[1,52],168:[2,294],169:[1,54],175:[2,294],176:[2,294],177:[1,41],179:[2,294],182:44,184:[2,294],187:240,189:239,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,488],28:484,36:181,39:487,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,492],115:[1,106],122:[1,489],123:[1,117],124:[1,490],125:[1,180],
127:31,132:[1,48],140:112,144:55,145:486,146:37,147:38,148:39,150:485,151:[1,53],153:[1,51],165:[1,491],169:[1,54],177:[1,41],182:44,186:244,188:113,190:115,192:243,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,301],9:[2,301],11:[2,301],13:[2,301],16:[2,301],18:[2,301],29:[2,301],44:[2,301],48:[2,301],54:[2,301],61:[2,301],69:[2,301],70:[2,301],71:[2,301],72:[2,301],73:[2,301],74:[2,301],75:[2,301],76:[2,301],77:[2,301],78:[2,301],79:[2,301],80:[2,301],81:[2,301],82:[2,301],83:[2,301],84:[2,
301],85:[2,301],86:[2,301],87:[2,301],88:[2,301],89:[2,301],90:[2,301],91:[2,301],92:[2,301],93:[2,301],94:[2,301],95:[2,301],98:[2,301],102:[2,301],104:[2,301],107:[2,301],110:[2,301],112:[2,301],115:[2,301],119:[2,301],122:[2,301],123:[2,301],124:[2,301],125:[2,301],132:[2,301],149:[2,301],151:[2,301],153:[2,301],156:[2,301],160:[2,301],165:[2,301],168:[2,301],169:[2,301],175:[2,301],176:[2,301],177:[2,301],179:[2,301],184:[2,301],194:[2,301],195:[2,301],196:[2,301],197:[2,301]},{11:[1,141],28:139,
31:137,39:111,54:[1,46],112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:497,144:55,145:140,150:110,151:[1,53],165:[1,118],169:[1,54],182:44,186:138,188:113,190:115,193:245,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{13:[2,191],44:[2,191]},{11:[1,36],16:[2,161],18:[2,161],28:42,36:129,39:35,46:33,54:[1,46],61:[1,131],65:14,66:15,67:16,68:17,69:[1,18],96:19,98:[1,25],101:26,103:27,104:[1,28],107:[1,29],110:[1,30],112:[1,32],115:[1,130],122:[1,24],123:[1,463],124:[1,43],
127:462,132:[1,48],133:480,144:55,145:34,146:37,147:38,148:39,150:40,151:[1,53],153:[1,51],165:[1,52],169:[1,54],177:[1,41],182:44,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{11:[1,141],13:[2,288],28:139,29:[2,288],31:238,39:111,54:[1,46],61:[2,288],69:[2,288],70:[2,288],71:[2,288],72:[2,288],73:[2,288],74:[2,288],75:[2,288],76:[2,288],77:[2,288],78:[2,288],79:[2,288],80:[2,288],81:[2,288],82:[2,288],83:[2,288],84:[2,288],85:[2,288],86:[2,288],87:[2,288],88:[2,288],89:[2,288],90:[2,288],91:[2,288],
92:[2,288],93:[2,288],94:[2,288],95:[2,288],98:[2,288],102:[2,288],104:[2,288],107:[2,288],110:[2,288],112:[1,119],115:[1,106],122:[1,114],123:[1,117],124:[1,116],132:[1,48],140:112,144:55,145:140,149:[2,288],150:110,151:[1,53],153:[2,288],156:[2,288],160:[2,288],165:[1,118],168:[2,288],169:[1,54],175:[2,288],176:[2,288],177:[2,288],179:[2,288],182:44,184:[2,288],186:138,188:113,190:115,194:[1,45],195:[1,47],196:[1,49],197:[1,50]},{2:[2,304],9:[2,304],11:[2,304],13:[2,304],16:[2,304],18:[2,304],29:[2,
304],44:[2,304],48:[2,304],54:[2,304],61:[2,304],69:[2,304],70:[2,304],71:[2,304],72:[2,304],73:[2,304],74:[2,304],75:[2,304],76:[2,304],77:[2,304],78:[2,304],79:[2,304],80:[2,304],81:[2,304],82:[2,304],83:[2,304],84:[2,304],85:[2,304],86:[2,304],87:[2,304],88:[2,304],89:[2,304],90:[2,304],91:[2,304],92:[2,304],93:[2,304],94:[2,304],95:[2,304],98:[2,304],102:[2,304],104:[2,304],107:[2,304],110:[2,304],112:[2,304],115:[2,304],119:[2,304],122:[2,304],123:[2,304],124:[2,304],125:[2,304],132:[2,304],
149:[2,304],151:[2,304],153:[2,304],156:[2,304],160:[2,304],165:[2,304],168:[2,304],169:[2,304],175:[2,304],176:[2,304],177:[2,304],179:[2,304],184:[2,304],194:[2,304],195:[2,304],196:[2,304],197:[2,304]},{11:[2,309],54:[2,309],112:[2,309],113:[2,309],115:[2,309],122:[2,309],123:[2,309],124:[2,309],132:[2,309],151:[2,309],165:[2,309],169:[2,309],194:[2,309],195:[2,309],196:[2,309],197:[2,309]}],defaultActions:{4:[2,1],56:[2,66],356:[2,49]},parseError:function parseError(str,hash){if(hash.recoverable)this.trace(str);
else throw new Error(str);},parse:function parse(input){var self=this,stack=[0],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,recovering=0,TERROR=2,EOF=1;var args=lstack.slice.call(arguments,1);this.lexer.setInput(input);this.lexer.yy=this.yy;this.yy.lexer=this.lexer;this.yy.parser=this;if(typeof this.lexer.yylloc=="undefined")this.lexer.yylloc={};var yyloc=this.lexer.yylloc;lstack.push(yyloc);var ranges=this.lexer.options&&this.lexer.options.ranges;if(typeof this.yy.parseError===
"function")this.parseError=this.yy.parseError;else this.parseError=Object.getPrototypeOf(this).parseError;function popStack(n){stack.length=stack.length-2*n;vstack.length=vstack.length-n;lstack.length=lstack.length-n}function lex(){var token;token=self.lexer.lex()||EOF;if(typeof token!=="number")token=self.symbols_[token]||token;return token}var symbol,preErrorSymbol,state,action,a,r,yyval={},p,len,newState,expected;while(true){state=stack[stack.length-1];if(this.defaultActions[state])action=this.defaultActions[state];
else{if(symbol===null||typeof symbol=="undefined")symbol=lex();action=table[state]&&table[state][symbol]}_handle_error:if(typeof action==="undefined"||!action.length||!action[0]){var error_rule_depth;var errStr="";function locateNearestErrorRecoveryRule(state){var stack_probe=stack.length-1;var depth=0;for(;;){if(TERROR.toString()in table[state])return depth;if(state===0||stack_probe<2)return false;stack_probe-=2;state=stack[stack_probe];++depth}}if(!recovering){error_rule_depth=locateNearestErrorRecoveryRule(state);
expected=[];for(p in table[state])if(this.terminals_[p]&&p>TERROR)expected.push("'"+this.terminals_[p]+"'");if(this.lexer.showPosition)errStr="Parse error on line "+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'";else errStr="Parse error on line "+(yylineno+1)+": Unexpected "+(symbol==EOF?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'");this.parseError(errStr,{text:this.lexer.match,token:this.terminals_[symbol]||
symbol,line:this.lexer.yylineno,loc:yyloc,expected:expected,recoverable:error_rule_depth!==false})}else if(preErrorSymbol!==EOF)error_rule_depth=locateNearestErrorRecoveryRule(state);if(recovering==3){if(symbol===EOF||preErrorSymbol===EOF)throw new Error(errStr||"Parsing halted while starting to recover from another error.");yyleng=this.lexer.yyleng;yytext=this.lexer.yytext;yylineno=this.lexer.yylineno;yyloc=this.lexer.yylloc;symbol=lex()}if(error_rule_depth===false)throw new Error(errStr||"Parsing halted. No suitable error recovery rule available.");
popStack(error_rule_depth);preErrorSymbol=symbol==TERROR?null:symbol;symbol=TERROR;state=stack[stack.length-1];action=table[state]&&table[state][TERROR];recovering=3}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol);vstack.push(this.lexer.yytext);lstack.push(this.lexer.yylloc);stack.push(action[1]);symbol=null;if(!preErrorSymbol){yyleng=this.lexer.yyleng;yytext=this.lexer.yytext;
yylineno=this.lexer.yylineno;yyloc=this.lexer.yylloc;if(recovering>0)recovering--}else{symbol=preErrorSymbol;preErrorSymbol=null}break;case 2:len=this.productions_[action[1]][1];yyval.$=vstack[vstack.length-len];yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column};if(ranges)yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-
1].range[1]];r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,this.yy,action[1],vstack,lstack].concat(args));if(typeof r!=="undefined")return r;if(len){stack=stack.slice(0,-1*len*2);vstack=vstack.slice(0,-1*len);lstack=lstack.slice(0,-1*len)}stack.push(this.productions_[action[1]][0]);vstack.push(yyval.$);lstack.push(yyval._$);newState=table[stack[stack.length-2]][stack[stack.length-1]];stack.push(newState);break;case 3:return true}}return true}};var lexer=function(){var lexer={EOF:1,parseError:function parseError(str,
hash){if(this.yy.parser)this.yy.parser.parseError(str,hash);else throw new Error(str);},setInput:function(input){this._input=input;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges)this.yylloc.range=[0,0];this.offset=0;return this},input:function(){var ch=this._input[0];this.yytext+=ch;this.yyleng++;this.offset++;this.match+=
ch;this.matched+=ch;var lines=ch.match(/(?:\r\n?|\n).*/g);if(lines){this.yylineno++;this.yylloc.last_line++}else this.yylloc.last_column++;if(this.options.ranges)this.yylloc.range[1]++;this._input=this._input.slice(1);return ch},unput:function(ch){var len=ch.length;var lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-len-1);this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-
1);this.matched=this.matched.substr(0,this.matched.length-1);if(lines.length-1)this.yylineno-=lines.length-1;var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len};if(this.options.ranges)this.yylloc.range=[r[0],r[0]+this.yyleng-len];this.yyleng=this.yytext.length;
return this},more:function(){this._more=true;return this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=true;else return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var past=this.matched.substr(0,
this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var next=this.match;if(next.length<20)next+=this._input.substr(0,20-next.length);return(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var pre=this.pastInput();var c=(new Array(pre.length+1)).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},test_match:function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer){backup=
{yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges)backup.yylloc.range=this.yylloc.range.slice(0)}lines=match[0].match(/(?:\r\n?|\n).*/g);if(lines)this.yylineno+=
lines.length;this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length};this.yytext+=match[0];this.match+=match[0];this.matches=match;this.yyleng=this.yytext.length;if(this.options.ranges)this.yylloc.range=[this.offset,this.offset+=this.yyleng];this._more=false;this._backtrack=false;this._input=this._input.slice(match[0].length);
this.matched+=match[0];token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input)this.done=false;if(token)return token;else if(this._backtrack){for(var k in backup)this[k]=backup[k];return false}return false},next:function(){if(this.done)return this.EOF;if(!this._input)this.done=true;var token,match,tempMatch,index;if(!this._more){this.yytext="";this.match=""}var rules=this._currentRules();for(var i=0;i<rules.length;i++){tempMatch=
this._input.match(this.rules[rules[i]]);if(tempMatch&&(!match||tempMatch[0].length>match[0].length)){match=tempMatch;index=i;if(this.options.backtrack_lexer){token=this.test_match(tempMatch,rules[i]);if(token!==false)return token;else if(this._backtrack){match=false;continue}else return false}else if(!this.options.flex)break}}if(match){token=this.test_match(match,rules[index]);if(token!==false)return token;return false}if(this._input==="")return this.EOF;else return this.parseError("Lexical error on line "+
(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function lex(){var r=this.next();if(r)return r;else return this.lex()},begin:function begin(condition){this.conditionStack.push(condition)},popState:function popState(){var n=this.conditionStack.length-1;if(n>0)return this.conditionStack.pop();else return this.conditionStack[0]},_currentRules:function _currentRules(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-
1])return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules;else return this.conditions["INITIAL"].rules},topState:function topState(n){n=this.conditionStack.length-1-Math.abs(n||0);if(n>=0)return this.conditionStack[n];else return"INITIAL"},pushState:function pushState(condition){this.begin(condition)},stateStackSize:function stateStackSize(){return this.conditionStack.length},options:{},performAction:function anonymous(yy,yy_,$avoiding_name_collisions,YY_START){var YYSTATE=
YY_START;switch($avoiding_name_collisions){case 0:this.begin("comment");break;case 1:this.begin("INITIAL");break;case 2:break;case 3:yy_.yylineno++;break;case 4:break;case 5:return{val:yy_.yytext};break;case 6:return{val:yy_.yytext,typ:"float"};break;case 7:return{val:"::",typ:"::"};break;case 8:return{val:"[]",typ:"[]"};break;case 9:return{val:"[",typ:"["};break;case 10:return{val:"]",typ:"]"};break;case 11:return{val:"{",typ:"{"};break;case 12:return{val:"}",typ:"}"};break;case 13:return{val:"false",
typ:"False"};break;case 14:return{val:"true",typ:"True"};break;case 15:return{val:"&&",typ:"&&"};break;case 16:return{val:"||",typ:"||"};break;case 17:return{val:".>>",typ:".>>"};break;case 18:return{val:".<<",typ:".<<"};break;case 19:return{val:".|",typ:".|"};break;case 20:return{val:".&",typ:".&"};break;case 21:return{val:".^",typ:".^"};break;case 22:return{val:":>>",typ:":>>"};break;case 23:return{val:"<<:",typ:"<<:"};break;case 24:return{val:"=>",typ:"=>"};break;case 25:return{val:"->",typ:"->"};
break;case 26:return{val:"+>",typ:"+>"};break;case 27:return{val:"~>",typ:"~>"};break;case 28:return{val:"<-",typ:"<-"};break;case 29:return{val:"==",typ:"=="};break;case 30:return{val:"/=",typ:"/="};break;case 31:return{val:">=",typ:">="};break;case 32:return{val:"<=",typ:"<="};break;case 33:return{val:">>=",typ:">>="};break;case 34:return{val:">>",typ:">>"};break;case 35:return{val:"=<<",typ:"=<<"};break;case 36:return{val:"<<",typ:"<<"};break;case 37:return{val:"<-",typ:"<-"};break;case 38:return{val:">",
typ:">"};break;case 39:return{val:"<",typ:"<"};break;case 40:return{val:"()",typ:"()"};break;case 41:return{val:"(",typ:"("};break;case 42:return{val:")",typ:")"};break;case 43:return{val:"*",typ:"*"};break;case 44:return{val:"\\",typ:"\\"};break;case 45:return{val:"/",typ:"/"};break;case 46:return{val:"-",typ:"-"};break;case 47:return{val:"++",typ:"++"};break;case 48:return{val:"+",typ:"+"};break;case 49:return{val:"^",typ:"^"};break;case 50:return{val:"=",typ:"="};break;case 51:return{val:"_",typ:"_"};
break;case 52:return{val:"%",typ:"%"};break;case 53:return{val:"!!",typ:"!!"};break;case 54:return{val:"!",typ:"!"};break;case 55:return{val:"$",typ:"$"};break;case 56:return{val:"&",typ:"&"};break;case 57:return{val:",",typ:","};break;case 58:return{val:"..",typ:".."};break;case 59:return{val:".",typ:"."};break;case 60:return{val:"@",typ:"@"};break;case 61:return{val:"|",typ:"|"};break;case 62:return{val:"~",typ:"~"};break;case 63:return{val:":",typ:":"};break;case 64:return{val:"`",typ:"`"};break;
case 65:return{val:"?",typ:"?"};break;case 66:return{val:";",typ:";"};break;case 67:return{val:"EOF",typ:"EOF"};break;case 68:return{val:"where",typ:"where"};break;case 69:return{val:"if",typ:"if"};break;case 70:return{val:"then",typ:"then"};break;case 71:return{val:"else",typ:"else"};break;case 72:return{val:"let",typ:"let"};break;case 73:return{val:"hiding",typ:"hiding"};break;case 74:return{val:"case",typ:"case"};break;case 75:return{val:"class",typ:"class"};break;case 76:return{val:"data",typ:"data"};
break;case 77:return{val:"default",typ:"default"};break;case 78:return{val:"deriving",typ:"deriving"};break;case 79:return{val:"do",typ:"do"};break;case 80:return{val:"foreign",typ:"foreign"};break;case 81:return{val:"import",typ:"import"};break;case 82:return{val:"importjs",typ:"importjs"};break;case 83:return{val:"infixl",typ:"infixl"};break;case 84:return{val:"instance",typ:"instance"};break;case 85:return{val:"in",typ:"in"};break;case 86:return{val:"module",typ:"module"};break;case 87:return{val:"newtype",
typ:"newtype"};break;case 88:return{val:"of",typ:"of"};break;case 89:return{val:"type",typ:"type"};break;case 90:return{val:"Nothing",typ:"Nothing"};break;case 91:return{val:"receive",typ:"receive"};break;case 92:return{val:"otherwise",typ:"otherwise"};break;case 93:return{val:yy_.yytext,typ:"varid"};break;case 94:return{val:yy_.yytext,typ:"conid"};break;case 95:return{val:yy_.yytext,typ:"string-lit"};break;case 96:return{val:'"'+yy_.yytext.slice(1,yy_.yytext.length)+'"',typ:"string-lit"};break;case 97:return{val:yy_.yytext,
typ:"char"};break;case 98:return{val:yy_.yytext,typ:"varsym"};break;case 99:return{val:yy_.yytext,typ:"consym"};break;case 100:return{val:yy_.yytext,typ:"qvarid"};break;case 101:return{val:yy_.yytext,typ:"qconid"};break;case 102:return{val:yy_.yytext,typ:"qvarsym"};break;case 103:return{val:yy_.yytext,typ:"qconsym"};break}},rules:[/^(?:\{-)/,/^(?:-\})/,/^(?:[^\n]+)/,/^(?:\n)/,/^(?:--.*)/,/^(?:\s+)/,/^(?:(-)?[0-9]+(\.[0-9]+)?)/,/^(?:::)/,/^(?:\[\])/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:False|false\b)/,
/^(?:True|true\b)/,/^(?:&&)/,/^(?:\|\|)/,/^(?:\.>>)/,/^(?:\.<<)/,/^(?:\.\|)/,/^(?:\.&)/,/^(?:\.\^)/,/^(?::>>)/,/^(?:<<:)/,/^(?:=>)/,/^(?:->)/,/^(?:\+>)/,/^(?:~>)/,/^(?:<-)/,/^(?:==)/,/^(?:\/=)/,/^(?:>=)/,/^(?:<=)/,/^(?:>>=)/,/^(?:>>)/,/^(?:=<<)/,/^(?:<<)/,/^(?:<-)/,/^(?:>)/,/^(?:<)/,/^(?:\(\))/,/^(?:\()/,/^(?:\))/,/^(?:\*)/,/^(?:\\)/,/^(?:\/)/,/^(?:-)/,/^(?:\+\+)/,/^(?:\+)/,/^(?:\^)/,/^(?:=)/,/^(?:_\b)/,/^(?:%)/,/^(?:!!)/,/^(?:!)/,/^(?:\$)/,/^(?:&)/,/^(?:,)/,/^(?:\.\.)/,/^(?:\.)/,/^(?:@)/,/^(?:\|)/,
/^(?:~)/,/^(?::)/,/^(?:`)/,/^(?:\?)/,/^(?:;)/,/^(?:$)/,/^(?:where\b)/,/^(?:if\b)/,/^(?:then\b)/,/^(?:else\b)/,/^(?:let\b)/,/^(?:hiding\b)/,/^(?:case\b)/,/^(?:class\b)/,/^(?:data\b)/,/^(?:default\b)/,/^(?:deriving\b)/,/^(?:do\b)/,/^(?:foreign\b)/,/^(?:import\b)/,/^(?:importjs\b)/,/^(?:infixl\b)/,/^(?:instance\b)/,/^(?:in\b)/,/^(?:module\b)/,/^(?:newtype\b)/,/^(?:of\b)/,/^(?:type\b)/,/^(?:Nothing\b)/,/^(?:receive\b)/,/^(?:otherwise\b)/,/^(?:[a-z][A-Za-z0-9_]*)/,/^(?:[A-Z][A-Za-z0-9_]*)/,/^(?:"([^\"])*")/,
/^(?:#([^"#"\s+])*)/,/^(?:'(')?')/,/^(?:["!""#""$""&"".""<"">""=""?""@""\\""|""~"]+)/,/^(?::["!""#""$""&"".""<"">""=""?""@""\\""|""~"]*)/,/^(?:[[A-Z][A-Za-z0-9_]*\.+[a-z][A-Za-z0-9_]*)/,/^(?:[[A-Z][A-Za-z0-9_]*\.+[A-Z][A-Za-z0-9_]*)/,/^(?:[[A-Z][A-Za-z0-9_]*\.+["!""#""$""&"<"">""=""?""@""\\""|""~"]+)/,/^(?:[[A-Z][A-Za-z0-9_]*\.+:["!""#""$""&"<"">""=""?""@""\\""|""~"]+)/],conditions:{"comment":{"rules":[1,2,3],"inclusive":false},"INITIAL":{"rules":[0,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],"inclusive":true}}};return lexer}();parser.lexer=lexer;function Parser(){this.yy={}}Parser.prototype=parser;parser.Parser=Parser;return new Parser}();
if(typeof require!=="undefined"&&typeof exports!=="undefined"){exports.parser=LichParser;exports.Parser=LichParser.Parser;exports.parse=function(){return LichParser.parse.apply(LichParser,arguments)};exports.main=function commonjsMain(args){if(!args[1]){console.log("Usage: "+args[0]+" FILE");process.exit(1)}var source=require("fs").readFileSync(require("path").normalize(args[1]),"utf8");return exports.parser.parse(source)};if(typeof module!=="undefined"&&require.main===module)exports.main(process.argv.slice(1))};var LichLibraryParser=function(){var parser={trace:function trace(){},yy:{},symbols_:{"error":2,"start_":3,"module_":4,"EOF":5,"module":6,"modid":7,"where":8,"body":9,"(":10,"exports":11,")":12,"\u2020":13,"topdecls":14,"\u2021":15,"topdecls_nonempty":16,";":17,"topdecl":18,"decl":19,"impdecl":20,"dataexp":21,"synthdef":22,"percStream":23,"soloStream":24,"decls":25,"list_decl_comma_1":26,"var":27,"=":28,"rhs":29,"apats":30,"pat":31,"varop":32,"guardexp":33,"=>":34,"exp":35,"decl_fixity":36,"infixl":37,
"literal":38,"op_list_1_comma":39,"infixr":40,"infix":41,"exports_inner":42,",":43,"export":44,"qvar":45,"qtycon":46,"..":47,"list_cname_0_comma":48,"import":49,"imports":50,"hiding":51,"importjs":52,"string-lit":53,"list_import_1_comma":54,"import_a":55,"tycon":56,"exps":57,"topexp":58,"letdecl":59,"let":60,"topexps":61,"topexpsA":62,"letdecls":63,"list_letdecl_comma_1":64,"funccomp":65,"funcstream":66,"datainst":67,"dataupdate":68,"classexp":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,"lexp":96,"binop":97,"if":98,"then":99,"else":100,"fexp":101,"$":102,"lambdaExp":103,"case":104,"of":105,"alts":106,"receive":107,"in":108,"qop":109,"do":110,"doList":111,"\\":112,"->":113,"synthArgs":114,"varid":115,"synthRhs":116,"+>":117,"percList":118,"|":119,"percMods":120,"percItem":121,"conid":122,"_":123,"[":124,"]":125,"percMod":126,"aexp":127,
"~>":128,"soloList":129,"soloMods":130,"soloItem":131,"float":132,"soloMod":133,"doItem":134,"<-":135,"vars":136,"alt":137,"grhs-list":138,"grhs":139,"wildcard":140,"otherwise":141,"list_cname_1_comma":142,"cname":143,"con":144,"gcon":145,"datalookup":146,"dictexp":147,"listexp":148,">>":149,"nothing":150,"Nothing":151,"dictexp_1_comma":152,"()":153,"dictpair":154,"data":155,"{":156,"datamems":157,"}":158,"enums":159,"::":160,"dataUpdates":161,"datamem":162,"dataUpdate":163,"list_exp_1_comma":164,
"[]":165,"qual":166,"list_qual_1_comma":167,".":168,"qconid":169,"qvarop":170,"qconop":171,"op":172,"conop":173,"consym":174,"`":175,"qvarsym":176,"qvarid":177,"gconsym":178,"varsym":179,"tyvars":180,"tyvar":181,"qcon":182,"list_1_comma":183,"qconsym":184,"lpat":185,"apat":186,"pat_var":187,"list_pat":188,"conlist":189,"lambda_pat":190,"@":191,"list_pat_1_comma":192,"lambda_args":193,"integer":194,"char":195,"True":196,"False":197,"$accept":0,"$end":1},terminals_:{2:"error",5:"EOF",6:"module",8:"where",
10:"(",12:")",13:"\u2020",15:"\u2021",17:";",28:"=",34:"=>",37:"infixl",40:"infixr",41:"infix",43:",",46:"qtycon",47:"..",49:"import",51:"hiding",52:"importjs",53:"string-lit",56:"tycon",60:"let",69:"classexp",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:".^",98:"if",99:"then",100:"else",102:"$",104:"case",105:"of",107:"receive",108:"in",110:"do",
112:"\\",113:"->",115:"varid",117:"+>",119:"|",122:"conid",123:"_",124:"[",125:"]",128:"~>",132:"float",135:"<-",141:"otherwise",149:">>",151:"Nothing",153:"()",155:"data",156:"{",158:"}",160:"::",165:"[]",168:".",169:"qconid",174:"consym",175:"`",176:"qvarsym",177:"qvarid",179:"varsym",181:"tyvar",184:"qconsym",191:"@",194:"integer",195:"char",196:"True",197:"False"},productions_:[0,[3,2],[4,4],[4,7],[4,1],[9,3],[9,0],[14,1],[16,3],[16,1],[18,1],[18,1],[18,1],[18,1],[18,1],[18,1],[25,2],[25,3],[25,
3],[25,4],[26,3],[26,1],[19,3],[19,4],[19,5],[19,7],[19,1],[22,3],[22,4],[29,1],[29,3],[36,3],[36,3],[36,3],[11,1],[11,2],[42,3],[42,1],[44,1],[44,2],[44,1],[44,4],[44,4],[20,2],[20,5],[20,6],[20,2],[50,1],[50,2],[50,1],[50,0],[54,3],[54,1],[55,1],[55,1],[55,4],[55,4],[57,3],[57,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,2],[61,3],[62,3],[62,1],[63,2],[63,3],[64,3],[64,1],[59,2],[35,1],[35,1],[35,1],[35,1],[35,1],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,
3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,3],[35,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[97,1],[96,6],[96,1],[96,3],[96,1],[96,6],[96,4],[96,4],[96,3],[96,4],[103,4],[114,1],[114,2],[116,2],[116,4],[23,3],[23,5],[118,1],[118,2],[121,1],[121,1],[121,3],[121,1],[121,3],[120,1],[120,2],[126,1],[126,1],[24,4],
[24,6],[24,8],[129,1],[129,2],[131,1],[131,3],[131,1],[131,3],[130,1],[130,2],[133,1],[133,1],[111,1],[111,3],[134,1],[134,3],[101,1],[101,2],[136,3],[136,1],[106,3],[106,1],[137,3],[33,3],[138,2],[138,1],[139,4],[139,4],[139,4],[48,1],[48,0],[142,3],[142,1],[143,1],[127,1],[127,1],[127,1],[127,3],[127,1],[127,1],[127,1],[127,3],[127,4],[127,4],[127,4],[127,4],[127,3],[127,1],[150,1],[147,3],[147,1],[152,3],[152,1],[154,3],[21,5],[21,6],[21,4],[146,3],[146,3],[159,3],[159,1],[68,4],[157,3],[157,1],
[162,1],[161,3],[161,1],[163,3],[67,2],[67,1],[148,3],[148,5],[148,7],[148,1],[148,5],[164,3],[164,1],[167,3],[167,1],[166,3],[166,1],[66,3],[66,3],[65,3],[65,3],[7,1],[7,1],[109,1],[109,1],[39,3],[39,1],[172,1],[172,1],[173,1],[173,3],[170,1],[170,1],[170,3],[171,1],[171,3],[32,1],[32,3],[180,2],[180,1],[144,1],[144,3],[182,1],[182,3],[182,1],[145,2],[145,2],[145,3],[145,1],[183,1],[183,2],[27,1],[27,3],[45,1],[45,3],[45,1],[178,1],[31,1],[185,1],[185,2],[30,1],[30,2],[186,1],[186,1],[186,1],[186,
1],[186,1],[186,3],[186,5],[186,1],[186,1],[186,2],[186,1],[186,3],[189,2],[189,1],[188,3],[188,1],[192,3],[192,1],[187,1],[187,1],[140,1],[190,3],[193,2],[193,1],[38,1],[38,1],[38,1],[38,1],[38,1],[38,1]],performAction:function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return $$[$0-1];break;case 2:this.$={astType:"module",modid:$$[$0-2],body:$$[$0],pos:this._$};break;case 3:this.$={astType:"module",modid:$$[$0-5],exports:$$[$0-3],body:$$[$0],pos:this._$};
break;case 4:this.$={astType:"module",modid:new Lich.ModName("Main"),body:$$[$0],pos:this._$};break;case 5:var imps=[],decs=[],atdecs=false;for(var i=0;i<$$[$0-1].length;i++)if($$[$0-1][i].name=="impdecl"&&!atdecs)imps.push($$[$0-1][i]);else if($$[$0-1][i].name=="impdecl"&&atdecs)throw new Error("Parse error: import declaration in statement block at line "+$$[$0-1][i].pos.first_line);else{atdecs=true;decs.push($$[$0-1][i])}var prelude_imported=false;for(i=0;i<imps.length;i++)if(imps[i].modid=="Prelude"){prelude_imported=
true;break}if(!prelude_imported)imps.push({astType:"impdecl",modid:new Lich.ModName("Prelude")});this.$={astType:"body",impdecls:imps,topdecls:decs,pos:this._$};break;case 6:this.$={astType:"body",impdecls:[],topdecls:[],pos:this._$};break;case 7:this.$=$$[$0];break;case 8:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 9:this.$=[$$[$0]];break;case 10:this.$={astType:"topdecl-decl",decl:$$[$0],pos:this._$};break;case 11:this.$=$$[$0];break;case 12:this.$=$$[$0];break;case 13:this.$=$$[$0];break;
case 14:this.$=$$[$0];break;case 15:this.$=$$[$0];break;case 16:this.$=[];break;case 17:this.$=$$[$0-1];break;case 18:this.$=[];break;case 19:this.$=$$[$0-2];break;case 20:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 21:this.$=[$$[$0]];break;case 22:this.$={astType:"decl-fun",ident:$$[$0-2],args:[],rhs:$$[$0],pos:this._$};break;case 23:this.$={astType:"decl-fun",ident:$$[$0-3],args:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 24:this.$={astType:"decl-fun",ident:$$[$0-3],args:[$$[$0-4],$$[$0-2]],
rhs:$$[$0],pos:this._$,orig:"infix"};break;case 25:this.$={astType:"decl-fun",ident:$$[$0-4],args:[$$[$0-5],$$[$0-3]].concat($$[$0-1]),rhs:$$[$01],pos:this._$,orig:"infix"};break;case 26:this.$=$$[$0];break;case 27:this.$={astType:"synthdef",ident:$$[$0-2],args:[],rhs:$$[$0]};break;case 28:this.$={astType:"synthdef",ident:$$[$0-3],args:$$[$0-2],rhs:$$[$0]};break;case 29:this.$=$$[$0];break;case 30:this.$={astType:"fun-where",exp:$$[$0-2],decls:$$[$0],pos:this._$};break;case 31:this.$={astType:"fixity",
fix:"leftfix",num:$$[$0-1],ops:$$[$0],pos:this._$};break;case 32:this.$={astType:"fixity",fix:"rightfix",num:$$[$0-1],ops:$$[$0],pos:this._$};break;case 33:this.$={astType:"fixity",fix:"nonfix",num:$$[$0-1],ops:$$[$0],pos:this._$};break;case 34:this.$=$$[$0];break;case 35:this.$=$$[$0-1];break;case 36:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 37:this.$=[$$[$0]];break;case 38:this.$={astType:"export-qvar",exp:$$[$0],pos:this._$};break;case 39:this.$={astType:"export-module",exp:$$[$0],pos:this._$};
break;case 40:this.$={astType:"export-type-unspec",exp:$$[$0],pos:this._$};break;case 41:this.$={astType:"export-type-all",exp:$$[$0-3],pos:this._$};break;case 42:this.$={astType:"export-type-vars",exp:$$[$0-3],vars:$$[$0-1],pos:this._$};break;case 43:this.$={astType:"impdecl",modid:$$[$0],pos:this._$};break;case 44:this.$={astType:"impdecl",modid:$$[$0-3],hiding:false,imports:$$[$0-1],pos:this._$};break;case 45:this.$={astType:"impdecl",modid:$$[$0-4],hiding:true,imports:$$[$0-1],pos:this._$};break;
case 46:this.$={astType:"impjs",modid:$$[$0],hiding:false,imports:$$[$0],pos:this._$};break;case 47:this.$=$$[$0];break;case 48:this.$=$$[$0-1];break;case 49:this.$=[];break;case 50:this.$=[];break;case 51:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 52:this.$=[$$[$0]];break;case 53:this.$={astType:"import-var",varastType:$$[$0],pos:this._$};break;case 54:this.$={astType:"import-tycon",tycon:$$[$0],all:false,pos:this._$};break;case 55:this.$={astType:"import-tycon",tycon:$$[$0-3],all:true,pos:this._$};
break;case 56:this.$={astType:"import-tycon",tycon:$$[$0-3],all:false,list:$$[$0-1],pos:this._$};break;case 57:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 58:this.$=[$$[$0]];break;case 59:this.$={astType:"top-exp",exp:$$[$0]};break;case 60:this.$=$$[$0];break;case 61:this.$=$$[$0];break;case 62:this.$=$$[$0];break;case 63:this.$=$$[$0];break;case 64:this.$=$$[$0];break;case 65:this.$=$$[$0];break;case 66:this.$=$$[$0-1];break;case 67:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 68:this.$=
[$$[$0]];break;case 69:this.$=[];break;case 70:this.$=$$[$0-1];break;case 71:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 72:this.$=[$$[$0]];break;case 73:this.$={astType:"let-one",decl:$$[$0],pos:this._$};break;case 74:this.$=$$[$0];break;case 75:this.$=$$[$0];break;case 76:this.$=$$[$0];break;case 77:this.$=$$[$0];break;case 78:this.$=$$[$0];break;case 79:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 80:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-
2],rhs:$$[$0],pos:this._$};break;case 81:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 82:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 83:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 84:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 85:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 86:this.$=
{astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 87:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 88:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 89:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 90:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 91:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],
rhs:$$[$0],pos:this._$};break;case 92:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 93:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 94:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 95:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 96:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 97:this.$={astType:"binop-exp",
op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 98:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 99:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 100:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 101:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 102:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};
break;case 103:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 104:this.$={astType:"binop-exp",op:$$[$0-1],lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 105:this.$=$$[$0];break;case 106:this.$=$$[$0];break;case 107:this.$=$$[$0];break;case 108:this.$=$$[$0];break;case 109:this.$=$$[$0];break;case 110:this.$=$$[$0];break;case 111:this.$=$$[$0];break;case 112:this.$=$$[$0];break;case 113:this.$=$$[$0];break;case 114:this.$=$$[$0];break;case 115:this.$=$$[$0];
break;case 116:this.$=$$[$0];break;case 117:this.$=$$[$0];break;case 118:this.$=$$[$0];break;case 119:this.$=$$[$0];break;case 120:this.$=$$[$0];break;case 121:this.$=$$[$0];break;case 122:this.$=$$[$0];break;case 123:this.$=$$[$0];break;case 124:this.$=$$[$0];break;case 125:this.$=$$[$0];break;case 126:this.$=$$[$0];break;case 127:this.$=$$[$0];break;case 128:this.$=$$[$0];break;case 129:this.$=$$[$0];break;case 130:this.$=$$[$0];break;case 131:this.$=$$[$0];break;case 132:this.$={astType:"ite",
e1:$$[$0-4],e2:$$[$0-2],e3:$$[$0],pos:this._$};break;case 133:this.$=$$[$0].length===1?$$[$0][0]:{astType:"application",exps:$$[$0],pos:this._$};break;case 134:this.$={astType:"function-application-op",lhs:$$[$0-2],rhs:$$[$0]};break;case 135:this.$=$$[$0];break;case 136:this.$={astType:"case",exp:$$[$0-4],alts:$$[$0-1],pos:this._$};break;case 137:this.$={astType:"receive",alts:$$[$0-1],pos:this._$};break;case 138:this.$={astType:"let",decls:$$[$0-2],exp:$$[$0],pos:this._$};break;case 139:this.$={astType:"binop-exp",
op:$$[$0-1].id.id,lhs:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 140:this.$={astType:"do-exp",exps:$$[$0-1],pos:this._$};break;case 141:this.$={astType:"lambda",args:$$[$0-2],rhs:$$[$0],pos:this._$};break;case 142:this.$=[{astType:"decl-fun",ident:{astType:"varname",id:$$[$0]},args:[],rhs:{astType:"float-lit",value:0},pos:this._$}];break;case 143:$$[$0-1].push({astType:"decl-fun",ident:{astType:"varname",id:$$[$0]},args:[],rhs:{astType:"float-lit",value:0},pos:this._$});this.$=$$[$0-1];break;case 144:this.$=
{astType:"fun-where",exp:$$[$0],decls:[],pos:this._$};break;case 145:this.$={astType:"fun-where",exp:$$[$0-2],decls:$$[$0],pos:this._$};break;case 146:this.$={astType:"percStream",id:$$[$0-2],list:$$[$0],modifiers:{astType:"percMods",list:[]}};break;case 147:this.$={astType:"percStream",id:$$[$0-4],list:$$[$0-2],modifiers:$$[$0]};break;case 148:this.$={astType:"percList",list:[$$[$0]]};break;case 149:$$[$0-1].list.push($$[$0]);this.$=$$[$0-1];break;case 150:this.$={astType:"varname",id:$$[$0]};break;
case 151:this.$={astType:"varname",id:$$[$0]};break;case 152:this.$=$$[$0-1];break;case 153:this.$={astType:"Nothing"};break;case 154:this.$=$$[$0-1];break;case 155:this.$={astType:"percMods",list:[$$[$0]]};break;case 156:$$[$0-1].list.push($$[$0]);this.$=$$[$0-1];break;case 157:this.$=$$[$0];break;case 158:this.$={astType:"Nothing"};break;case 159:this.$={astType:"soloStream",id:$$[$0-3],synth:'"'+$$[$0-1]+'"',list:$$[$0],mods:{astType:"soloMods",list:[]},rmods:{astType:"soloMods",list:[]}};break;
case 160:this.$={astType:"soloStream",id:$$[$0-5],synth:'"'+$$[$0-3]+'"',list:$$[$0-2],mods:$$[$0],rmods:{astType:"soloMods",list:[]}};break;case 161:this.$={astType:"soloStream",id:$$[$0-7],synth:'"'+$$[$0-5]+'"',list:$$[$0-4],mods:$$[$0-2],rmods:$$[$0]};break;case 162:this.$={astType:"soloList",list:[$$[$0]]};break;case 163:$$[$0-1].list.push($$[$0]);this.$=$$[$0-1];break;case 164:this.$={astType:"float-lit",value:Number($$[$0]),pos:this._$};break;case 165:this.$=$$[$0-1];break;case 166:this.$=
{astType:"Nothing"};break;case 167:this.$=$$[$0-1];break;case 168:this.$={astType:"soloMods",list:[$$[$0]]};break;case 169:$$[$0-1].list.push($$[$0]);this.$=$$[$0-1];break;case 170:this.$=$$[$0];break;case 171:this.$={astType:"Nothing"};break;case 172:this.$=[$$[$0]];break;case 173:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 174:this.$={astType:"doLambda",arg:"",exp:$$[$0]};break;case 175:this.$={astType:"doLambda",arg:$$[$0-2],exp:$$[$0]};break;case 176:this.$=[$$[$0]];break;case 177:$$[$0-
1].push($$[$0]);this.$=$$[$0-1];break;case 178:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 179:this.$=[$$[$0]];break;case 180:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 181:this.$=[$$[$0]];break;case 182:this.$={astType:"alt",pat:$$[$0-2],exp:$$[$0]};break;case 183:this.$={astType:"guard-fun",ident:$$[$0-2],args:$$[$0-1],guards:$$[$0],pos:this._$};break;case 184:$$[$0-1].push($$[$0]);this.$=$$[$0-1];break;case 185:this.$=[$$[$0]];break;case 186:this.$={astType:"grhs",e1:$$[$0-2],e2:$$[$0]};
break;case 187:this.$={astType:"grhs",e1:{astType:"boolean-lit",value:true,pos:this._$},e2:$$[$0]};break;case 188:this.$={astType:"grhs",e1:{astType:"boolean-lit",value:true,pos:this._$},e2:$$[$0]};break;case 189:this.$=$$[$0];break;case 190:this.$=[];break;case 191:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 192:this.$=[$$[$0]];break;case 193:this.$=$$[$0];break;case 194:this.$=$$[$0];break;case 195:this.$=$$[$0];break;case 196:this.$=$$[$0];break;case 197:this.$=$$[$0-1];break;case 198:this.$=
$$[$0];break;case 199:this.$=$$[$0];break;case 200:this.$=$$[$0];break;case 201:this.$={astType:"curried-binop-exp",op:$$[$0-1],pos:this._$};break;case 202:this.$={astType:"left-curried-binop-exp",op:$$[$0-1],lhs:$$[$0-2],pos:this._$};break;case 203:this.$={astType:"right-curried-binop-exp",op:$$[$0-2],rhs:$$[$0-1],pos:this._$};break;case 204:this.$={astType:"right-curried-binop-exp",op:$$[$0-2],rhs:$$[$0-1],pos:this._$};break;case 205:this.$={astType:"left-curried-binop-exp",op:$$[$0-1],lhs:$$[$0-
2],pos:this._$};break;case 206:this.$={astType:"curried-binop-exp",op:$$[$0-1],pos:this._$};break;case 207:this.$=$$[$0];break;case 208:this.$={astType:"Nothing"};break;case 209:this.$={astType:"dictionary",pairs:$$[$0-1]};break;case 210:this.$={astType:"dictionary",pairs:[]};break;case 211:this.$=$$[$0-2].concat($$[$0]);break;case 212:this.$=$$[$0];break;case 213:this.$=[$$[$0-2],$$[$0]];break;case 214:this.$={astType:"data-decl",id:$$[$0-3],members:$$[$0-1]};break;case 215:this.$={astType:"data-decl",
id:$$[$0-4],members:$$[$0-2]};break;case 216:this.$={astType:"data-enum",id:$$[$0-2],members:$$[$0]};break;case 217:this.$={astType:"data-lookup",data:$$[$0-2],member:$$[$0],pos:this._$};break;case 218:this.$={astType:"data-lookup",data:$$[$0-2],member:$$[$0],pos:this._$};break;case 219:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 220:this.$=[$$[$0]];break;case 221:this.$={astType:"data-update",data:$$[$0-3],members:$$[$0-1]};break;case 222:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 223:this.$=
[$$[$0]];break;case 224:this.$={astType:"data-mem",id:$$[$0]};break;case 225:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 226:this.$=[$$[$0]];break;case 227:this.$={astType:"data-mem",id:$$[$0-2],exp:$$[$0]};break;case 228:this.$={astType:"data-inst",id:$$[$0-1],members:$$[$0]};break;case 229:this.$={astType:"data-inst",id:$$[$0],members:[]};break;case 230:this.$={astType:"listexp",members:[$$[$0-1]].concat($$[$0]),pos:this._$};break;case 231:this.$={astType:"listrange",lower:$$[$0-3],upper:$$[$0-
1],pos:this._$};break;case 232:this.$={astType:"listrange",lower:$$[$0-5],upper:$$[$0-1],skip:$$[$0-3],pos:this._$};break;case 233:this.$={astType:"listexp",members:[],pos:this._$};break;case 234:this.$={astType:"list-comprehension",exp:$$[$0-3],generators:[$$[$0-1]].concat($$[$0]),pos:this._$};break;case 235:this.$=[$$[$0-1]].concat($$[$0]);break;case 236:this.$=[];break;case 237:this.$=[$$[$0-1]].concat($$[$0]);break;case 238:this.$=[];break;case 239:this.$={astType:"decl-fun",ident:$$[$0-2],args:[],
rhs:$$[$0],pos:this._$};break;case 240:this.$=$$[$0];break;case 241:this.$={astType:"function-stream",exps:[$$[$0-2],$$[$0]]};break;case 242:$$[$0-2].exps.push($$[$0]);this.$=$$[$0-2];break;case 243:this.$={astType:"function-composition",exps:[$$[$0-2],$$[$0]]};break;case 244:$$[$0].exps=[$$[$0-2]].concat($$[$0].exps);this.$=$$[$0];break;case 245:this.$=new Lich.ModName($$[$0],this._$,yy.lexer.previous.qual);break;case 246:this.$=new Lich.ModName($$[$0],this._$);break;case 247:this.$={astType:"qop",
id:$$[$0],pos:this._$};break;case 248:this.$={astType:"qop",id:$$[$0],pos:this._$};break;case 249:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 250:this.$=[$$[$0]];break;case 251:this.$=$$[$0];break;case 252:this.$=$$[$0];break;case 253:this.$=new Lich.DaCon($$[$0],this._$,true);break;case 254:this.$=new Lich.DaCon($$[$0-1],this._$,false);break;case 255:this.$=new Lich.VarName($$[$0],this._$,true,yy.lexer.previous.qual);break;case 256:this.$=$$[$0];break;case 257:this.$=new Lich.VarName($$[$0-
1],this._$,false,yy.lexer.previous.qual);break;case 258:this.$=$$[$0];break;case 259:this.$=new Lich.DaCon($$[$0-1],this._$,false,yy.lexer.previous.qual);break;case 260:this.$=new Lich.VarName($$[$0],this._$,true);break;case 261:this.$=new Lich.VarName($$[$0-1],this._$,false);break;case 262:$$[$0-1].push($$[$0]);this.$=$$[$0-1];break;case 263:this.$=[$$[$0]];break;case 264:this.$=new Lich.VarName($$[$0],this._$,false);break;case 265:this.$=new Lich.DaCon($$[$0-1],this._$,true);break;case 266:this.$=
new Lich.DaCon($$[$0],this._$,false,yy.lexer.previous.qual);break;case 267:this.$=$$[$0-1];break;case 268:this.$=$$[$0];break;case 269:this.$=new Lich.UnitDaCon(this._$);break;case 270:this.$=new Lich.NilDaCon(this._$);break;case 271:this.$=new Lich.TupleDaCon($$[$0-1]+1,this._$);break;case 272:this.$=$$[$0];break;case 273:this.$=1;break;case 274:this.$=$$[$0-1]+1;break;case 275:this.$={astType:"varname",id:$$[$0]};break;case 276:this.$=new Lich.VarName($$[$0-1],this._$,true);break;case 277:this.$=
new Lich.VarName($$[$0],this._$,false,yy.lexer.previous.qual);break;case 278:this.$=new Lich.VarName($$[$0-1],this._$,true,yy.lexer.previous.qual);break;case 279:this.$=$$[$0];break;case 280:this.$=new Lich.DaCon($$[$0],this._$,true,yy.lexer.previous.qual);break;case 281:this.$=$$[$0];break;case 282:this.$=$$[$0];break;case 283:this.$={astType:"conpat",con:$$[$0-1],pats:$$[$0]};break;case 284:this.$=[$$[$0]];break;case 285:$$[$0-1].push($$[$0]);this.$=$$[$0-1];break;case 286:this.$=$$[$0];break;case 287:this.$=
$$[$0];break;case 288:this.$=$$[$0];break;case 289:this.$={astType:"literal-match",value:$$[$0],pos:this._$};break;case 290:this.$=$$[$0];break;case 291:this.$=$$[$0-1];break;case 292:this.$={astType:"head-tail-match",head:$$[$0-3],tail:$$[$0-1]};break;case 293:this.$=$$[$0];break;case 294:this.$={astType:"data-match",id:$$[$0],members:[]};break;case 295:this.$={astType:"data-match",id:$$[$0-1],members:$$[$0]};break;case 296:this.$=$$[$0];break;case 297:this.$={astType:"at-match",id:$$[$0-2],pat:$$[$0]};
break;case 298:$$[$0-1].push($$[$0]);this.$=$$[$0-1];break;case 299:this.$=[$$[$0]];break;case 300:this.$={astType:"list-match",list:$$[$0-1]};break;case 301:this.$={astType:"list-match",list:[]};break;case 302:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 303:this.$=[$$[$0]];break;case 304:this.$=$$[$0];break;case 305:this.$=$$[$0];break;case 306:this.$={astType:"wildcard",id:$$[$0],pos:this._$};break;case 307:this.$={astType:"lambda-pat",numArgs:$$[$0-1].length};break;case 308:$$[$0-1].push($$[$0]);
this.$=$$[$0-1];break;case 309:this.$=[$$[$0]];break;case 310:this.$={astType:"float-lit",value:Number($$[$0]),pos:this._$};break;case 311:this.$={astType:"string-lit",value:$$[$0],pos:this._$};break;case 312:this.$={astType:"char-lit",value:$$[$0],pos:this._$};break;case 313:this.$={astType:"float-lit",value:Number($$[$0]),pos:this._$};break;case 314:this.$={astType:"boolean-lit",value:true,pos:this._$};break;case 315:this.$={astType:"boolean-lit",value:false,pos:this._$};break}},table:[{3:1,4:2,
5:[2,6],6:[1,3],9:4,13:[1,5]},{1:[3]},{5:[1,6]},{7:7,122:[1,9],169:[1,8]},{5:[2,4]},{10:[1,21],14:10,16:11,18:12,19:13,20:14,21:15,22:16,23:17,24:18,27:19,31:20,33:22,38:31,49:[1,23],52:[1,24],53:[1,40],112:[1,47],115:[1,26],122:[1,34],123:[1,45],124:[1,36],132:[1,42],140:32,144:49,145:29,150:30,151:[1,38],155:[1,25],165:[1,46],169:[1,48],182:37,185:27,186:28,188:33,190:35,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{1:[2,1]},{8:[1,50],10:[1,51]},{8:[2,245],10:[2,245],12:[2,245],15:[2,245],17:[2,
245],43:[2,245],51:[2,245]},{8:[2,246],10:[2,246],12:[2,246],15:[2,246],17:[2,246],43:[2,246],51:[2,246]},{15:[1,52]},{15:[2,7],17:[1,53]},{15:[2,9],17:[2,9]},{15:[2,10],17:[2,10]},{15:[2,11],17:[2,11]},{15:[2,12],17:[2,12]},{15:[2,13],17:[2,13]},{15:[2,14],17:[2,14]},{15:[2,15],17:[2,15]},{10:[1,60],27:58,28:[1,54],30:55,34:[1,56],38:31,53:[1,40],112:[1,47],115:[1,61],122:[1,34],123:[1,45],124:[1,36],132:[1,42],140:32,144:49,145:59,150:30,151:[1,38],165:[1,46],169:[1,48],175:[2,286],179:[2,286],
182:37,186:57,188:33,190:35,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{32:62,175:[1,64],179:[1,63]},{10:[1,60],12:[1,68],27:58,31:65,38:31,43:[1,74],53:[1,40],112:[1,47],115:[1,72],122:[1,34],123:[1,45],124:[1,36],132:[1,42],140:73,144:49,145:29,150:30,151:[1,38],165:[1,46],169:[1,48],174:[1,71],178:70,179:[1,66],182:37,183:69,184:[1,75],185:27,186:28,187:67,188:33,190:35,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{2:[2,26],15:[2,26],17:[2,26]},{7:76,122:[1,9],169:[1,8]},{53:[1,77]},{122:[1,
78]},{10:[2,275],28:[2,275],34:[2,275],53:[2,275],112:[2,275],115:[2,275],117:[1,79],122:[2,275],123:[2,275],124:[2,275],128:[1,80],132:[2,275],151:[2,275],165:[2,275],169:[2,275],175:[2,275],179:[2,275],191:[1,81],194:[2,275],195:[2,275],196:[2,275],197:[2,275]},{12:[2,281],28:[2,281],113:[2,281],175:[2,281],179:[2,281]},{12:[2,282],28:[2,282],113:[2,282],175:[2,282],179:[2,282]},{10:[1,60],12:[2,288],27:58,28:[2,288],30:82,38:31,53:[1,40],112:[1,47],113:[2,288],115:[1,61],122:[1,34],123:[1,45],
124:[1,36],132:[1,42],140:32,144:49,145:59,150:30,151:[1,38],165:[1,46],169:[1,48],175:[2,288],179:[2,288],182:37,186:57,188:33,190:35,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{10:[2,287],12:[2,287],28:[2,287],34:[2,287],43:[2,287],53:[2,287],60:[2,287],69:[2,287],98:[2,287],104:[2,287],107:[2,287],110:[2,287],112:[2,287],113:[2,287],115:[2,287],119:[2,287],122:[2,287],123:[2,287],124:[2,287],125:[2,287],132:[2,287],151:[2,287],153:[2,287],165:[2,287],169:[2,287],175:[2,287],177:[2,287],179:[2,
287],194:[2,287],195:[2,287],196:[2,287],197:[2,287]},{10:[2,289],12:[2,289],28:[2,289],34:[2,289],43:[2,289],53:[2,289],60:[2,289],69:[2,289],98:[2,289],104:[2,289],107:[2,289],110:[2,289],112:[2,289],113:[2,289],115:[2,289],119:[2,289],122:[2,289],123:[2,289],124:[2,289],125:[2,289],132:[2,289],151:[2,289],153:[2,289],165:[2,289],169:[2,289],175:[2,289],177:[2,289],179:[2,289],194:[2,289],195:[2,289],196:[2,289],197:[2,289]},{10:[2,290],12:[2,290],28:[2,290],34:[2,290],43:[2,290],53:[2,290],60:[2,
290],69:[2,290],98:[2,290],104:[2,290],107:[2,290],110:[2,290],112:[2,290],113:[2,290],115:[2,290],119:[2,290],122:[2,290],123:[2,290],124:[2,290],125:[2,290],132:[2,290],151:[2,290],153:[2,290],165:[2,290],169:[2,290],175:[2,290],177:[2,290],179:[2,290],194:[2,290],195:[2,290],196:[2,290],197:[2,290]},{10:[2,293],12:[2,293],28:[2,293],34:[2,293],43:[2,293],53:[2,293],60:[2,293],69:[2,293],98:[2,293],104:[2,293],107:[2,293],110:[2,293],112:[2,293],113:[2,293],115:[2,293],119:[2,293],122:[2,293],123:[2,
293],124:[2,293],125:[2,293],132:[2,293],151:[2,293],153:[2,293],165:[2,293],169:[2,293],175:[2,293],177:[2,293],179:[2,293],194:[2,293],195:[2,293],196:[2,293],197:[2,293]},{10:[2,294],12:[2,294],28:[2,294],34:[2,294],43:[2,294],53:[2,294],60:[2,294],69:[2,294],98:[2,294],104:[2,294],107:[2,294],110:[2,294],112:[2,294],113:[2,294],115:[1,85],119:[2,294],122:[2,294],123:[1,45],124:[2,294],125:[2,294],132:[2,294],140:86,151:[2,294],153:[2,294],165:[2,294],169:[2,294],175:[2,294],177:[2,294],179:[2,
294],187:84,189:83,194:[2,294],195:[2,294],196:[2,294],197:[2,294]},{10:[2,296],12:[2,296],28:[2,296],34:[2,296],43:[2,296],53:[2,296],60:[2,296],69:[2,296],98:[2,296],104:[2,296],107:[2,296],110:[2,296],112:[2,296],113:[2,296],115:[2,296],119:[2,296],122:[2,296],123:[2,296],124:[2,296],125:[2,296],132:[2,296],151:[2,296],153:[2,296],165:[2,296],169:[2,296],175:[2,296],177:[2,296],179:[2,296],194:[2,296],195:[2,296],196:[2,296],197:[2,296]},{10:[1,60],27:58,38:31,53:[1,40],112:[1,47],115:[1,61],122:[1,
34],123:[1,45],124:[1,36],125:[1,87],132:[1,42],140:32,144:49,145:59,150:30,151:[1,38],165:[1,46],169:[1,48],182:37,186:89,188:33,190:35,192:88,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{2:[2,272],8:[2,272],10:[2,272],12:[2,272],15:[2,272],17:[2,272],28:[2,272],34:[2,272],43:[2,272],47:[2,272],53:[2,272],60:[2,272],69:[2,272],70:[2,272],71:[2,272],72:[2,272],73:[2,272],74:[2,272],75:[2,272],76:[2,272],77:[2,272],78:[2,272],79:[2,272],80:[2,272],81:[2,272],82:[2,272],83:[2,272],84:[2,272],85:[2,
272],86:[2,272],87:[2,272],88:[2,272],89:[2,272],90:[2,272],91:[2,272],92:[2,272],93:[2,272],94:[2,272],95:[2,272],98:[2,272],99:[2,272],100:[2,272],102:[2,272],104:[2,272],105:[2,272],107:[2,272],110:[2,272],112:[2,272],113:[2,272],115:[2,272],119:[2,272],122:[2,272],123:[2,272],124:[2,272],125:[2,272],132:[2,272],149:[2,272],151:[2,272],153:[2,272],156:[2,272],158:[2,272],160:[2,272],165:[2,272],168:[2,272],169:[2,272],175:[2,272],176:[2,272],177:[2,272],179:[2,272],184:[2,272],194:[2,272],195:[2,
272],196:[2,272],197:[2,272]},{2:[2,208],8:[2,208],10:[2,208],12:[2,208],15:[2,208],17:[2,208],28:[2,208],34:[2,208],43:[2,208],47:[2,208],53:[2,208],60:[2,208],69:[2,208],70:[2,208],71:[2,208],72:[2,208],73:[2,208],74:[2,208],75:[2,208],76:[2,208],77:[2,208],78:[2,208],79:[2,208],80:[2,208],81:[2,208],82:[2,208],83:[2,208],84:[2,208],85:[2,208],86:[2,208],87:[2,208],88:[2,208],89:[2,208],90:[2,208],91:[2,208],92:[2,208],93:[2,208],94:[2,208],95:[2,208],98:[2,208],99:[2,208],100:[2,208],102:[2,208],
104:[2,208],105:[2,208],107:[2,208],110:[2,208],112:[2,208],113:[2,208],115:[2,208],119:[2,208],122:[2,208],123:[2,208],124:[2,208],125:[2,208],132:[2,208],149:[2,208],151:[2,208],153:[2,208],156:[2,208],158:[2,208],160:[2,208],165:[2,208],168:[2,208],169:[2,208],175:[2,208],176:[2,208],177:[2,208],179:[2,208],184:[2,208],194:[2,208],195:[2,208],196:[2,208],197:[2,208]},{2:[2,310],8:[2,310],10:[2,310],12:[2,310],15:[2,310],17:[2,310],28:[2,310],34:[2,310],43:[2,310],47:[2,310],53:[2,310],60:[2,310],
69:[2,310],70:[2,310],71:[2,310],72:[2,310],73:[2,310],74:[2,310],75:[2,310],76:[2,310],77:[2,310],78:[2,310],79:[2,310],80:[2,310],81:[2,310],82:[2,310],83:[2,310],84:[2,310],85:[2,310],86:[2,310],87:[2,310],88:[2,310],89:[2,310],90:[2,310],91:[2,310],92:[2,310],93:[2,310],94:[2,310],95:[2,310],98:[2,310],99:[2,310],100:[2,310],102:[2,310],104:[2,310],105:[2,310],107:[2,310],110:[2,310],112:[2,310],113:[2,310],115:[2,310],119:[2,310],122:[2,310],123:[2,310],124:[2,310],125:[2,310],132:[2,310],149:[2,
310],151:[2,310],153:[2,310],156:[2,310],158:[2,310],160:[2,310],165:[2,310],168:[2,310],169:[2,310],175:[2,310],176:[2,310],177:[2,310],179:[2,310],184:[2,310],194:[2,310],195:[2,310],196:[2,310],197:[2,310]},{2:[2,311],8:[2,311],10:[2,311],12:[2,311],15:[2,311],17:[2,311],28:[2,311],34:[2,311],43:[2,311],47:[2,311],53:[2,311],60:[2,311],69:[2,311],70:[2,311],71:[2,311],72:[2,311],73:[2,311],74:[2,311],75:[2,311],76:[2,311],77:[2,311],78:[2,311],79:[2,311],80:[2,311],81:[2,311],82:[2,311],83:[2,
311],84:[2,311],85:[2,311],86:[2,311],87:[2,311],88:[2,311],89:[2,311],90:[2,311],91:[2,311],92:[2,311],93:[2,311],94:[2,311],95:[2,311],98:[2,311],99:[2,311],100:[2,311],102:[2,311],104:[2,311],105:[2,311],107:[2,311],110:[2,311],112:[2,311],113:[2,311],115:[2,311],119:[2,311],122:[2,311],123:[2,311],124:[2,311],125:[2,311],132:[2,311],149:[2,311],151:[2,311],153:[2,311],156:[2,311],158:[2,311],160:[2,311],165:[2,311],168:[2,311],169:[2,311],175:[2,311],176:[2,311],177:[2,311],179:[2,311],184:[2,
311],194:[2,311],195:[2,311],196:[2,311],197:[2,311]},{2:[2,312],8:[2,312],10:[2,312],12:[2,312],15:[2,312],17:[2,312],28:[2,312],34:[2,312],43:[2,312],47:[2,312],53:[2,312],60:[2,312],69:[2,312],70:[2,312],71:[2,312],72:[2,312],73:[2,312],74:[2,312],75:[2,312],76:[2,312],77:[2,312],78:[2,312],79:[2,312],80:[2,312],81:[2,312],82:[2,312],83:[2,312],84:[2,312],85:[2,312],86:[2,312],87:[2,312],88:[2,312],89:[2,312],90:[2,312],91:[2,312],92:[2,312],93:[2,312],94:[2,312],95:[2,312],98:[2,312],99:[2,312],
100:[2,312],102:[2,312],104:[2,312],105:[2,312],107:[2,312],110:[2,312],112:[2,312],113:[2,312],115:[2,312],119:[2,312],122:[2,312],123:[2,312],124:[2,312],125:[2,312],132:[2,312],149:[2,312],151:[2,312],153:[2,312],156:[2,312],158:[2,312],160:[2,312],165:[2,312],168:[2,312],169:[2,312],175:[2,312],176:[2,312],177:[2,312],179:[2,312],184:[2,312],194:[2,312],195:[2,312],196:[2,312],197:[2,312]},{2:[2,313],8:[2,313],10:[2,313],12:[2,313],15:[2,313],17:[2,313],28:[2,313],34:[2,313],43:[2,313],47:[2,
313],53:[2,313],60:[2,313],69:[2,313],70:[2,313],71:[2,313],72:[2,313],73:[2,313],74:[2,313],75:[2,313],76:[2,313],77:[2,313],78:[2,313],79:[2,313],80:[2,313],81:[2,313],82:[2,313],83:[2,313],84:[2,313],85:[2,313],86:[2,313],87:[2,313],88:[2,313],89:[2,313],90:[2,313],91:[2,313],92:[2,313],93:[2,313],94:[2,313],95:[2,313],98:[2,313],99:[2,313],100:[2,313],102:[2,313],104:[2,313],105:[2,313],107:[2,313],110:[2,313],112:[2,313],113:[2,313],115:[2,313],119:[2,313],122:[2,313],123:[2,313],124:[2,313],
125:[2,313],132:[2,313],149:[2,313],151:[2,313],153:[2,313],156:[2,313],158:[2,313],160:[2,313],165:[2,313],168:[2,313],169:[2,313],175:[2,313],176:[2,313],177:[2,313],179:[2,313],184:[2,313],194:[2,313],195:[2,313],196:[2,313],197:[2,313]},{2:[2,314],8:[2,314],10:[2,314],12:[2,314],15:[2,314],17:[2,314],28:[2,314],34:[2,314],43:[2,314],47:[2,314],53:[2,314],60:[2,314],69:[2,314],70:[2,314],71:[2,314],72:[2,314],73:[2,314],74:[2,314],75:[2,314],76:[2,314],77:[2,314],78:[2,314],79:[2,314],80:[2,314],
81:[2,314],82:[2,314],83:[2,314],84:[2,314],85:[2,314],86:[2,314],87:[2,314],88:[2,314],89:[2,314],90:[2,314],91:[2,314],92:[2,314],93:[2,314],94:[2,314],95:[2,314],98:[2,314],99:[2,314],100:[2,314],102:[2,314],104:[2,314],105:[2,314],107:[2,314],110:[2,314],112:[2,314],113:[2,314],115:[2,314],119:[2,314],122:[2,314],123:[2,314],124:[2,314],125:[2,314],132:[2,314],149:[2,314],151:[2,314],153:[2,314],156:[2,314],158:[2,314],160:[2,314],165:[2,314],168:[2,314],169:[2,314],175:[2,314],176:[2,314],177:[2,
314],179:[2,314],184:[2,314],194:[2,314],195:[2,314],196:[2,314],197:[2,314]},{2:[2,315],8:[2,315],10:[2,315],12:[2,315],15:[2,315],17:[2,315],28:[2,315],34:[2,315],43:[2,315],47:[2,315],53:[2,315],60:[2,315],69:[2,315],70:[2,315],71:[2,315],72:[2,315],73:[2,315],74:[2,315],75:[2,315],76:[2,315],77:[2,315],78:[2,315],79:[2,315],80:[2,315],81:[2,315],82:[2,315],83:[2,315],84:[2,315],85:[2,315],86:[2,315],87:[2,315],88:[2,315],89:[2,315],90:[2,315],91:[2,315],92:[2,315],93:[2,315],94:[2,315],95:[2,
315],98:[2,315],99:[2,315],100:[2,315],102:[2,315],104:[2,315],105:[2,315],107:[2,315],110:[2,315],112:[2,315],113:[2,315],115:[2,315],119:[2,315],122:[2,315],123:[2,315],124:[2,315],125:[2,315],132:[2,315],149:[2,315],151:[2,315],153:[2,315],156:[2,315],158:[2,315],160:[2,315],165:[2,315],168:[2,315],169:[2,315],175:[2,315],176:[2,315],177:[2,315],179:[2,315],184:[2,315],194:[2,315],195:[2,315],196:[2,315],197:[2,315]},{10:[2,306],12:[2,306],28:[2,306],34:[2,306],43:[2,306],53:[2,306],60:[2,306],
69:[2,306],83:[2,306],98:[2,306],104:[2,306],107:[2,306],110:[2,306],112:[2,306],113:[2,306],115:[2,306],119:[2,306],122:[2,306],123:[2,306],124:[2,306],125:[2,306],132:[2,306],151:[2,306],153:[2,306],165:[2,306],169:[2,306],175:[2,306],177:[2,306],179:[2,306],194:[2,306],195:[2,306],196:[2,306],197:[2,306]},{10:[2,301],12:[2,301],28:[2,301],34:[2,301],43:[2,301],53:[2,301],60:[2,301],69:[2,301],98:[2,301],104:[2,301],107:[2,301],110:[2,301],112:[2,301],113:[2,301],115:[2,301],119:[2,301],122:[2,
301],123:[2,301],124:[2,301],125:[2,301],132:[2,301],151:[2,301],153:[2,301],165:[2,301],169:[2,301],175:[2,301],177:[2,301],179:[2,301],194:[2,301],195:[2,301],196:[2,301],197:[2,301]},{123:[1,45],140:91,193:90},{2:[2,266],8:[2,266],10:[2,266],12:[2,266],15:[2,266],17:[2,266],28:[2,266],34:[2,266],43:[2,266],47:[2,266],53:[2,266],60:[2,266],69:[2,266],70:[2,266],71:[2,266],72:[2,266],73:[2,266],74:[2,266],75:[2,266],76:[2,266],77:[2,266],78:[2,266],79:[2,266],80:[2,266],81:[2,266],82:[2,266],83:[2,
266],84:[2,266],85:[2,266],86:[2,266],87:[2,266],88:[2,266],89:[2,266],90:[2,266],91:[2,266],92:[2,266],93:[2,266],94:[2,266],95:[2,266],98:[2,266],99:[2,266],100:[2,266],102:[2,266],104:[2,266],105:[2,266],107:[2,266],110:[2,266],112:[2,266],113:[2,266],115:[2,266],119:[2,266],122:[2,266],123:[2,266],124:[2,266],125:[2,266],132:[2,266],149:[2,266],151:[2,266],153:[2,266],156:[2,266],158:[2,266],160:[2,266],165:[2,266],168:[2,266],169:[2,266],175:[2,266],176:[2,266],177:[2,266],179:[2,266],184:[2,
266],194:[2,266],195:[2,266],196:[2,266],197:[2,266]},{2:[2,268],8:[2,268],10:[2,268],12:[2,268],15:[2,268],17:[2,268],28:[2,268],34:[2,268],43:[2,268],47:[2,268],53:[2,268],60:[2,268],69:[2,268],70:[2,268],71:[2,268],72:[2,268],73:[2,268],74:[2,268],75:[2,268],76:[2,268],77:[2,268],78:[2,268],79:[2,268],80:[2,268],81:[2,268],82:[2,268],83:[2,268],84:[2,268],85:[2,268],86:[2,268],87:[2,268],88:[2,268],89:[2,268],90:[2,268],91:[2,268],92:[2,268],93:[2,268],94:[2,268],95:[2,268],98:[2,268],99:[2,268],
100:[2,268],102:[2,268],104:[2,268],105:[2,268],107:[2,268],110:[2,268],112:[2,268],113:[2,268],115:[2,268],119:[2,268],122:[2,268],123:[2,268],124:[2,268],125:[2,268],132:[2,268],149:[2,268],151:[2,268],153:[2,268],156:[2,268],158:[2,268],160:[2,268],165:[2,268],168:[2,268],169:[2,268],175:[2,268],176:[2,268],177:[2,268],179:[2,268],184:[2,268],194:[2,268],195:[2,268],196:[2,268],197:[2,268]},{5:[2,6],9:92,13:[1,5]},{6:[1,97],10:[1,100],11:93,27:101,42:94,44:95,45:96,46:[1,98],115:[1,102],177:[1,
99]},{5:[2,5]},{10:[1,21],18:103,19:13,20:14,21:15,22:16,23:17,24:18,27:19,31:20,33:22,38:31,49:[1,23],52:[1,24],53:[1,40],112:[1,47],115:[1,26],122:[1,34],123:[1,45],124:[1,36],132:[1,42],140:32,144:49,145:29,150:30,151:[1,38],155:[1,25],165:[1,46],169:[1,48],182:37,185:27,186:28,188:33,190:35,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{10:[1,125],27:101,29:104,35:105,38:124,45:122,53:[1,40],60:[1,118],65:106,66:107,67:108,68:109,69:[1,110],96:111,98:[1,113],101:114,103:115,104:[1,116],107:[1,
117],110:[1,119],112:[1,121],115:[1,102],122:[1,112],124:[1,130],127:120,132:[1,42],144:49,145:123,146:126,147:127,148:128,150:129,151:[1,38],153:[1,131],165:[1,132],169:[1,48],177:[1,99],182:37,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{10:[1,60],27:58,28:[1,133],34:[1,134],38:31,53:[1,40],112:[1,47],115:[1,61],119:[1,138],122:[1,34],123:[1,45],124:[1,36],132:[1,42],138:135,139:137,140:32,144:49,145:59,150:30,151:[1,38],165:[1,46],169:[1,48],182:37,186:136,188:33,190:35,194:[1,39],195:[1,41],
196:[1,43],197:[1,44]},{10:[1,125],27:101,29:139,35:105,38:124,45:122,53:[1,40],60:[1,118],65:106,66:107,67:108,68:109,69:[1,110],96:111,98:[1,113],101:114,103:115,104:[1,116],107:[1,117],110:[1,119],112:[1,121],115:[1,102],122:[1,112],124:[1,130],127:120,132:[1,42],144:49,145:123,146:126,147:127,148:128,150:129,151:[1,38],153:[1,131],165:[1,132],169:[1,48],177:[1,99],182:37,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{10:[2,284],12:[2,284],28:[2,284],34:[2,284],53:[2,284],60:[2,284],69:[2,284],
98:[2,284],104:[2,284],107:[2,284],110:[2,284],112:[2,284],113:[2,284],115:[2,284],119:[2,284],122:[2,284],123:[2,284],124:[2,284],132:[2,284],151:[2,284],153:[2,284],165:[2,284],169:[2,284],175:[2,284],177:[2,284],179:[2,284],194:[2,284],195:[2,284],196:[2,284],197:[2,284]},{10:[2,286],12:[2,286],28:[2,286],34:[2,286],43:[2,286],53:[2,286],60:[2,286],69:[2,286],98:[2,286],104:[2,286],107:[2,286],110:[2,286],112:[2,286],113:[2,286],115:[2,286],119:[2,286],122:[2,286],123:[2,286],124:[2,286],125:[2,
286],132:[2,286],151:[2,286],153:[2,286],165:[2,286],169:[2,286],175:[2,286],177:[2,286],179:[2,286],194:[2,286],195:[2,286],196:[2,286],197:[2,286]},{10:[2,288],12:[2,288],28:[2,288],34:[2,288],43:[2,288],53:[2,288],60:[2,288],69:[2,288],98:[2,288],104:[2,288],107:[2,288],110:[2,288],112:[2,288],113:[2,288],115:[2,288],119:[2,288],122:[2,288],123:[2,288],124:[2,288],125:[2,288],132:[2,288],151:[2,288],153:[2,288],165:[2,288],169:[2,288],175:[2,288],177:[2,288],179:[2,288],194:[2,288],195:[2,288],
196:[2,288],197:[2,288]},{10:[1,60],12:[1,68],27:58,31:140,38:31,43:[1,74],53:[1,40],112:[1,47],115:[1,72],122:[1,34],123:[1,45],124:[1,36],132:[1,42],140:73,144:49,145:29,150:30,151:[1,38],165:[1,46],169:[1,48],174:[1,71],178:70,179:[1,66],182:37,183:69,184:[1,75],185:27,186:28,187:67,188:33,190:35,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{2:[2,275],8:[2,275],10:[2,275],12:[2,275],15:[2,275],17:[2,275],28:[2,275],34:[2,275],43:[2,275],47:[2,275],53:[2,275],60:[2,275],69:[2,275],70:[2,275],71:[2,
275],72:[2,275],73:[2,275],74:[2,275],75:[2,275],76:[2,275],77:[2,275],78:[2,275],79:[2,275],80:[2,275],81:[2,275],82:[2,275],83:[2,275],84:[2,275],85:[2,275],86:[2,275],87:[2,275],88:[2,275],89:[2,275],90:[2,275],91:[2,275],92:[2,275],93:[2,275],94:[2,275],95:[2,275],98:[2,275],102:[2,275],104:[2,275],107:[2,275],110:[2,275],112:[2,275],113:[2,275],115:[2,275],119:[2,275],122:[2,275],123:[2,275],124:[2,275],125:[2,275],132:[2,275],149:[2,275],151:[2,275],153:[2,275],156:[2,275],160:[2,275],165:[2,
275],168:[2,275],169:[2,275],175:[2,275],176:[2,275],177:[2,275],179:[2,275],184:[2,275],191:[1,81],194:[2,275],195:[2,275],196:[2,275],197:[2,275]},{10:[1,60],27:58,31:141,38:31,53:[1,40],112:[1,47],115:[1,61],122:[1,34],123:[1,45],124:[1,36],132:[1,42],140:32,144:49,145:29,150:30,151:[1,38],165:[1,46],169:[1,48],182:37,185:27,186:28,188:33,190:35,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{10:[2,260],53:[2,260],60:[2,260],69:[2,260],98:[2,260],104:[2,260],107:[2,260],110:[2,260],112:[2,260],115:[2,
260],122:[2,260],123:[2,260],124:[2,260],132:[2,260],151:[2,260],153:[2,260],165:[2,260],169:[2,260],177:[2,260],194:[2,260],195:[2,260],196:[2,260],197:[2,260]},{115:[1,142]},{12:[1,144],32:143,175:[1,64],179:[1,63]},{12:[1,145]},{83:[1,146]},{2:[2,269],8:[2,269],10:[2,269],12:[2,269],15:[2,269],17:[2,269],28:[2,269],34:[2,269],43:[2,269],47:[2,269],53:[2,269],60:[2,269],69:[2,269],70:[2,269],71:[2,269],72:[2,269],73:[2,269],74:[2,269],75:[2,269],76:[2,269],77:[2,269],78:[2,269],79:[2,269],80:[2,
269],81:[2,269],82:[2,269],83:[2,269],84:[2,269],85:[2,269],86:[2,269],87:[2,269],88:[2,269],89:[2,269],90:[2,269],91:[2,269],92:[2,269],93:[2,269],94:[2,269],95:[2,269],98:[2,269],99:[2,269],100:[2,269],102:[2,269],104:[2,269],105:[2,269],107:[2,269],110:[2,269],112:[2,269],113:[2,269],115:[2,269],119:[2,269],122:[2,269],123:[2,269],124:[2,269],125:[2,269],132:[2,269],149:[2,269],151:[2,269],153:[2,269],156:[2,269],158:[2,269],160:[2,269],165:[2,269],168:[2,269],169:[2,269],175:[2,269],176:[2,269],
177:[2,269],179:[2,269],184:[2,269],194:[2,269],195:[2,269],196:[2,269],197:[2,269]},{12:[1,147],43:[1,148]},{12:[1,149]},{12:[1,150]},{10:[2,304],12:[2,304],28:[2,304],53:[2,304],60:[2,304],69:[2,304],70:[2,304],71:[2,304],72:[2,304],73:[2,304],74:[2,304],75:[2,304],76:[2,304],77:[2,304],78:[2,304],79:[2,304],80:[2,304],81:[2,304],82:[2,304],83:[2,304],84:[2,304],85:[2,304],86:[2,304],87:[2,304],88:[2,304],89:[2,304],90:[2,304],91:[2,304],92:[2,304],93:[2,304],94:[2,304],95:[2,304],98:[2,304],102:[2,
304],104:[2,304],107:[2,304],110:[2,304],112:[2,304],115:[2,304],122:[2,304],124:[2,304],132:[2,304],149:[2,304],151:[2,304],153:[2,304],156:[2,304],160:[2,304],165:[2,304],168:[2,304],169:[2,304],175:[2,304],176:[2,304],177:[2,304],179:[2,304],184:[2,304],191:[1,81],194:[2,304],195:[2,304],196:[2,304],197:[2,304]},{12:[2,305],83:[2,305],175:[2,305],179:[2,305]},{12:[2,273],43:[2,273]},{10:[2,280],12:[2,280],53:[2,280],60:[2,280],69:[2,280],98:[2,280],104:[2,280],107:[2,280],110:[2,280],112:[2,280],
115:[2,280],122:[2,280],124:[2,280],132:[2,280],151:[2,280],153:[2,280],165:[2,280],169:[2,280],177:[2,280],194:[2,280],195:[2,280],196:[2,280],197:[2,280]},{10:[1,151],15:[2,43],17:[2,43],51:[1,152]},{15:[2,46],17:[2,46]},{28:[1,154],156:[1,153]},{10:[1,159],115:[1,157],118:155,121:156,122:[1,158],123:[1,160],124:[1,161]},{115:[1,162]},{10:[1,60],27:58,38:31,53:[1,40],112:[1,47],115:[1,61],122:[1,34],123:[1,45],124:[1,36],132:[1,42],140:32,144:49,145:59,150:30,151:[1,38],165:[1,46],169:[1,48],182:37,
186:163,188:33,190:35,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{10:[1,60],12:[2,283],27:58,28:[2,283],38:31,53:[1,40],112:[1,47],113:[2,283],115:[1,61],122:[1,34],123:[1,45],124:[1,36],132:[1,42],140:32,144:49,145:59,150:30,151:[1,38],165:[1,46],169:[1,48],175:[2,283],179:[2,283],182:37,186:136,188:33,190:35,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{10:[2,295],12:[2,295],28:[2,295],34:[2,295],43:[2,295],53:[2,295],60:[2,295],69:[2,295],98:[2,295],104:[2,295],107:[2,295],110:[2,295],112:[2,
295],113:[2,295],115:[1,85],119:[2,295],122:[2,295],123:[1,45],124:[2,295],125:[2,295],132:[2,295],140:86,151:[2,295],153:[2,295],165:[2,295],169:[2,295],175:[2,295],177:[2,295],179:[2,295],187:164,194:[2,295],195:[2,295],196:[2,295],197:[2,295]},{10:[2,299],12:[2,299],28:[2,299],34:[2,299],43:[2,299],53:[2,299],60:[2,299],69:[2,299],98:[2,299],104:[2,299],107:[2,299],110:[2,299],112:[2,299],113:[2,299],115:[2,299],119:[2,299],122:[2,299],123:[2,299],124:[2,299],125:[2,299],132:[2,299],151:[2,299],
153:[2,299],165:[2,299],169:[2,299],175:[2,299],177:[2,299],179:[2,299],194:[2,299],195:[2,299],196:[2,299],197:[2,299]},{10:[2,304],12:[2,304],28:[2,304],34:[2,304],43:[2,304],53:[2,304],60:[2,304],69:[2,304],98:[2,304],104:[2,304],107:[2,304],110:[2,304],112:[2,304],113:[2,304],115:[2,304],119:[2,304],122:[2,304],123:[2,304],124:[2,304],125:[2,304],132:[2,304],151:[2,304],153:[2,304],165:[2,304],169:[2,304],175:[2,304],177:[2,304],179:[2,304],194:[2,304],195:[2,304],196:[2,304],197:[2,304]},{10:[2,
305],12:[2,305],28:[2,305],34:[2,305],43:[2,305],53:[2,305],60:[2,305],69:[2,305],98:[2,305],104:[2,305],107:[2,305],110:[2,305],112:[2,305],113:[2,305],115:[2,305],119:[2,305],122:[2,305],123:[2,305],124:[2,305],125:[2,305],132:[2,305],151:[2,305],153:[2,305],165:[2,305],169:[2,305],175:[2,305],177:[2,305],179:[2,305],194:[2,305],195:[2,305],196:[2,305],197:[2,305]},{2:[2,270],8:[2,270],10:[2,270],12:[2,270],15:[2,270],17:[2,270],28:[2,270],34:[2,270],43:[2,270],47:[2,270],53:[2,270],60:[2,270],
69:[2,270],70:[2,270],71:[2,270],72:[2,270],73:[2,270],74:[2,270],75:[2,270],76:[2,270],77:[2,270],78:[2,270],79:[2,270],80:[2,270],81:[2,270],82:[2,270],83:[2,270],84:[2,270],85:[2,270],86:[2,270],87:[2,270],88:[2,270],89:[2,270],90:[2,270],91:[2,270],92:[2,270],93:[2,270],94:[2,270],95:[2,270],98:[2,270],99:[2,270],100:[2,270],102:[2,270],104:[2,270],105:[2,270],107:[2,270],110:[2,270],112:[2,270],113:[2,270],115:[2,270],119:[2,270],122:[2,270],123:[2,270],124:[2,270],125:[2,270],132:[2,270],149:[2,
270],151:[2,270],153:[2,270],156:[2,270],158:[2,270],160:[2,270],165:[2,270],168:[2,270],169:[2,270],175:[2,270],176:[2,270],177:[2,270],179:[2,270],184:[2,270],194:[2,270],195:[2,270],196:[2,270],197:[2,270]},{43:[1,166],125:[1,165]},{43:[2,303],125:[2,303]},{113:[1,167],123:[1,45],140:168},{113:[2,309],123:[2,309]},{5:[2,2]},{12:[1,169]},{12:[2,34],43:[1,170]},{12:[2,37],43:[2,37]},{12:[2,38],43:[2,38]},{7:171,122:[1,9],169:[1,8]},{10:[1,172],12:[2,40],43:[2,40]},{2:[2,277],8:[2,277],10:[2,277],
12:[2,277],15:[2,277],17:[2,277],28:[2,277],43:[2,277],47:[2,277],53:[2,277],60:[2,277],69:[2,277],70:[2,277],71:[2,277],72:[2,277],73:[2,277],74:[2,277],75:[2,277],76:[2,277],77:[2,277],78:[2,277],79:[2,277],80:[2,277],81:[2,277],82:[2,277],83:[2,277],84:[2,277],85:[2,277],86:[2,277],87:[2,277],88:[2,277],89:[2,277],90:[2,277],91:[2,277],92:[2,277],93:[2,277],94:[2,277],95:[2,277],98:[2,277],99:[2,277],100:[2,277],102:[2,277],104:[2,277],105:[2,277],107:[2,277],110:[2,277],112:[2,277],115:[2,277],
119:[2,277],122:[2,277],123:[2,277],124:[2,277],125:[2,277],132:[2,277],149:[2,277],151:[2,277],153:[2,277],156:[2,277],158:[2,277],160:[2,277],165:[2,277],168:[2,277],169:[2,277],175:[2,277],176:[2,277],177:[2,277],179:[2,277],184:[2,277],194:[2,277],195:[2,277],196:[2,277],197:[2,277]},{176:[1,173],179:[1,66]},{2:[2,279],8:[2,279],10:[2,279],12:[2,279],15:[2,279],17:[2,279],28:[2,279],43:[2,279],47:[2,279],53:[2,279],60:[2,279],69:[2,279],70:[2,279],71:[2,279],72:[2,279],73:[2,279],74:[2,279],75:[2,
279],76:[2,279],77:[2,279],78:[2,279],79:[2,279],80:[2,279],81:[2,279],82:[2,279],83:[2,279],84:[2,279],85:[2,279],86:[2,279],87:[2,279],88:[2,279],89:[2,279],90:[2,279],91:[2,279],92:[2,279],93:[2,279],94:[2,279],95:[2,279],98:[2,279],99:[2,279],100:[2,279],102:[2,279],104:[2,279],105:[2,279],107:[2,279],110:[2,279],112:[2,279],115:[2,279],119:[2,279],122:[2,279],123:[2,279],124:[2,279],125:[2,279],132:[2,279],149:[2,279],151:[2,279],153:[2,279],156:[2,279],158:[2,279],160:[2,279],165:[2,279],168:[2,
279],169:[2,279],175:[2,279],176:[2,279],177:[2,279],179:[2,279],184:[2,279],194:[2,279],195:[2,279],196:[2,279],197:[2,279]},{2:[2,275],8:[2,275],10:[2,275],12:[2,275],15:[2,275],17:[2,275],28:[2,275],43:[2,275],47:[2,275],53:[2,275],60:[2,275],69:[2,275],70:[2,275],71:[2,275],72:[2,275],73:[2,275],74:[2,275],75:[2,275],76:[2,275],77:[2,275],78:[2,275],79:[2,275],80:[2,275],81:[2,275],82:[2,275],83:[2,275],84:[2,275],85:[2,275],86:[2,275],87:[2,275],88:[2,275],89:[2,275],90:[2,275],91:[2,275],92:[2,
275],93:[2,275],94:[2,275],95:[2,275],98:[2,275],99:[2,275],100:[2,275],102:[2,275],104:[2,275],105:[2,275],107:[2,275],110:[2,275],112:[2,275],115:[2,275],119:[2,275],122:[2,275],123:[2,275],124:[2,275],125:[2,275],132:[2,275],149:[2,275],151:[2,275],153:[2,275],156:[2,275],158:[2,275],160:[2,275],165:[2,275],168:[2,275],169:[2,275],175:[2,275],176:[2,275],177:[2,275],179:[2,275],184:[2,275],194:[2,275],195:[2,275],196:[2,275],197:[2,275]},{15:[2,8],17:[2,8]},{2:[2,22],15:[2,22],17:[2,22]},{2:[2,
29],8:[1,174],15:[2,29],17:[2,29],32:210,70:[1,175],71:[1,176],72:[1,177],73:[1,178],74:[1,179],75:[1,180],76:[1,181],77:[1,182],78:[1,183],79:[1,184],80:[1,185],81:[1,186],82:[1,187],83:[1,188],84:[1,189],85:[1,190],86:[1,191],87:[1,192],88:[1,193],89:[1,194],90:[1,195],91:[1,196],92:[1,197],93:[1,198],94:[1,199],95:[1,200],102:[1,204],109:205,149:[1,202],156:[1,203],160:[1,206],168:[1,201],170:207,171:208,175:[1,211],176:[1,209],178:212,179:[1,63],184:[1,75]},{2:[2,74],8:[2,74],12:[2,74],15:[2,
74],17:[2,74],28:[2,74],43:[2,74],47:[2,74],70:[2,74],71:[2,74],72:[2,74],73:[2,74],74:[2,74],75:[2,74],76:[2,74],77:[2,74],78:[2,74],79:[2,74],80:[2,74],81:[2,74],82:[2,74],83:[2,74],84:[2,74],85:[2,74],86:[2,74],87:[2,74],88:[2,74],89:[2,74],90:[2,74],91:[2,74],92:[2,74],93:[2,74],94:[2,74],95:[2,74],99:[2,74],100:[2,74],102:[2,74],105:[2,74],119:[2,74],125:[2,74],149:[2,74],156:[2,74],158:[2,74],160:[2,74],168:[2,74],175:[2,74],176:[2,74],179:[2,74],184:[2,74]},{2:[2,75],8:[2,75],12:[2,75],15:[2,
75],17:[2,75],28:[2,75],43:[2,75],47:[2,75],70:[2,75],71:[2,75],72:[2,75],73:[2,75],74:[2,75],75:[2,75],76:[2,75],77:[2,75],78:[2,75],79:[2,75],80:[2,75],81:[2,75],82:[2,75],83:[2,75],84:[2,75],85:[2,75],86:[2,75],87:[2,75],88:[2,75],89:[2,75],90:[2,75],91:[2,75],92:[2,75],93:[2,75],94:[2,75],95:[2,75],99:[2,75],100:[2,75],102:[2,75],105:[2,75],119:[2,75],125:[2,75],149:[1,213],156:[2,75],158:[2,75],160:[2,75],168:[2,75],175:[2,75],176:[2,75],179:[2,75],184:[2,75]},{2:[2,76],8:[2,76],12:[2,76],15:[2,
76],17:[2,76],28:[2,76],43:[2,76],47:[2,76],70:[2,76],71:[2,76],72:[2,76],73:[2,76],74:[2,76],75:[2,76],76:[2,76],77:[2,76],78:[2,76],79:[2,76],80:[2,76],81:[2,76],82:[2,76],83:[2,76],84:[2,76],85:[2,76],86:[2,76],87:[2,76],88:[2,76],89:[2,76],90:[2,76],91:[2,76],92:[2,76],93:[2,76],94:[2,76],95:[2,76],99:[2,76],100:[2,76],102:[2,76],105:[2,76],119:[2,76],125:[2,76],149:[2,76],156:[2,76],158:[2,76],160:[2,76],168:[2,76],175:[2,76],176:[2,76],179:[2,76],184:[2,76]},{2:[2,77],8:[2,77],12:[2,77],15:[2,
77],17:[2,77],28:[2,77],43:[2,77],47:[2,77],70:[2,77],71:[2,77],72:[2,77],73:[2,77],74:[2,77],75:[2,77],76:[2,77],77:[2,77],78:[2,77],79:[2,77],80:[2,77],81:[2,77],82:[2,77],83:[2,77],84:[2,77],85:[2,77],86:[2,77],87:[2,77],88:[2,77],89:[2,77],90:[2,77],91:[2,77],92:[2,77],93:[2,77],94:[2,77],95:[2,77],99:[2,77],100:[2,77],102:[2,77],105:[2,77],119:[2,77],125:[2,77],149:[2,77],156:[2,77],158:[2,77],160:[2,77],168:[2,77],175:[2,77],176:[2,77],179:[2,77],184:[2,77]},{2:[2,78],8:[2,78],12:[2,78],15:[2,
78],17:[2,78],28:[2,78],43:[2,78],47:[2,78],70:[2,78],71:[2,78],72:[2,78],73:[2,78],74:[2,78],75:[2,78],76:[2,78],77:[2,78],78:[2,78],79:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78],86:[2,78],87:[2,78],88:[2,78],89:[2,78],90:[2,78],91:[2,78],92:[2,78],93:[2,78],94:[2,78],95:[2,78],99:[2,78],100:[2,78],102:[2,78],105:[2,78],119:[2,78],125:[2,78],149:[2,78],156:[2,78],158:[2,78],160:[2,78],168:[2,78],175:[2,78],176:[2,78],179:[2,78],184:[2,78]},{2:[2,105],8:[2,105],12:[2,105],
15:[2,105],17:[2,105],28:[2,105],43:[2,105],47:[2,105],70:[2,105],71:[2,105],72:[2,105],73:[2,105],74:[2,105],75:[2,105],76:[2,105],77:[2,105],78:[2,105],79:[2,105],80:[2,105],81:[2,105],82:[2,105],83:[2,105],84:[2,105],85:[2,105],86:[2,105],87:[2,105],88:[2,105],89:[2,105],90:[2,105],91:[2,105],92:[2,105],93:[2,105],94:[2,105],95:[2,105],99:[2,105],100:[2,105],102:[2,105],105:[2,105],119:[2,105],125:[2,105],149:[2,105],156:[2,105],158:[2,105],160:[2,105],168:[2,105],175:[2,105],176:[2,105],179:[2,
105],184:[2,105]},{2:[2,229],8:[2,229],10:[1,125],12:[2,229],15:[2,229],17:[2,229],27:101,28:[2,229],35:215,38:124,43:[2,229],45:122,47:[2,229],53:[1,40],60:[1,118],65:106,66:107,67:108,68:109,69:[1,110],70:[2,229],71:[2,229],72:[2,229],73:[2,229],74:[2,229],75:[2,229],76:[2,229],77:[2,229],78:[2,229],79:[2,229],80:[2,229],81:[2,229],82:[2,229],83:[2,229],84:[2,229],85:[2,229],86:[2,229],87:[2,229],88:[2,229],89:[2,229],90:[2,229],91:[2,229],92:[2,229],93:[2,229],94:[2,229],95:[2,229],96:111,98:[1,
113],99:[2,229],100:[2,229],101:214,102:[2,229],103:115,104:[1,116],105:[2,229],107:[1,117],110:[1,119],112:[1,121],115:[1,102],119:[2,229],122:[1,112],123:[2,229],124:[1,130],125:[2,229],127:120,132:[1,42],144:49,145:123,146:126,147:127,148:128,149:[2,229],150:129,151:[1,38],153:[1,131],156:[2,229],158:[2,229],160:[2,229],165:[1,132],168:[2,229],169:[1,48],175:[2,229],176:[2,229],177:[1,99],179:[2,229],182:37,184:[2,229],194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{10:[1,125],27:101,35:216,38:124,
45:122,53:[1,40],60:[1,118],65:106,66:107,67:108,68:109,69:[1,110],96:111,98:[1,113],101:114,103:115,104:[1,116],107:[1,117],110:[1,119],112:[1,121],115:[1,102],122:[1,112],124:[1,130],127:120,132:[1,42],144:49,145:123,146:126,147:127,148:128,150:129,151:[1,38],153:[1,131],165:[1,132],169:[1,48],177:[1,99],182:37,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{2:[2,133],8:[2,133],10:[1,125],12:[2,133],15:[2,133],17:[2,133],27:101,28:[2,133],35:215,38:124,43:[2,133],45:122,47:[2,133],53:[1,40],60:[1,
118],65:106,66:107,67:108,68:109,69:[1,110],70:[2,133],71:[2,133],72:[2,133],73:[2,133],74:[2,133],75:[2,133],76:[2,133],77:[2,133],78:[2,133],79:[2,133],80:[2,133],81:[2,133],82:[2,133],83:[2,133],84:[2,133],85:[2,133],86:[2,133],87:[2,133],88:[2,133],89:[2,133],90:[2,133],91:[2,133],92:[2,133],93:[2,133],94:[2,133],95:[2,133],96:111,98:[1,113],99:[2,133],100:[2,133],101:114,102:[2,133],103:115,104:[1,116],105:[2,133],107:[1,117],110:[1,119],112:[1,121],115:[1,102],119:[2,133],122:[1,112],124:[1,
130],125:[2,133],127:217,132:[1,42],144:49,145:123,146:126,147:127,148:128,149:[2,133],150:129,151:[1,38],153:[1,131],156:[2,133],158:[2,133],160:[2,133],165:[1,132],168:[2,133],169:[1,48],175:[2,133],176:[2,133],177:[1,99],179:[2,133],182:37,184:[2,133],194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{2:[2,135],8:[2,135],12:[2,135],15:[2,135],17:[2,135],28:[2,135],43:[2,135],47:[2,135],70:[2,135],71:[2,135],72:[2,135],73:[2,135],74:[2,135],75:[2,135],76:[2,135],77:[2,135],78:[2,135],79:[2,135],80:[2,
135],81:[2,135],82:[2,135],83:[2,135],84:[2,135],85:[2,135],86:[2,135],87:[2,135],88:[2,135],89:[2,135],90:[2,135],91:[2,135],92:[2,135],93:[2,135],94:[2,135],95:[2,135],99:[2,135],100:[2,135],102:[2,135],105:[2,135],119:[2,135],125:[2,135],149:[2,135],156:[2,135],158:[2,135],160:[2,135],168:[2,135],175:[2,135],176:[2,135],179:[2,135],184:[2,135]},{10:[1,125],27:101,35:218,38:124,45:122,53:[1,40],60:[1,118],65:106,66:107,67:108,68:109,69:[1,110],96:111,98:[1,113],101:114,103:115,104:[1,116],107:[1,
117],110:[1,119],112:[1,121],115:[1,102],122:[1,112],124:[1,130],127:120,132:[1,42],144:49,145:123,146:126,147:127,148:128,150:129,151:[1,38],153:[1,131],165:[1,132],169:[1,48],177:[1,99],182:37,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{13:[1,219]},{13:[1,221],25:220},{13:[1,222]},{2:[2,176],8:[2,176],10:[2,176],12:[2,176],15:[2,176],17:[2,176],28:[2,176],43:[2,176],47:[2,176],53:[2,176],60:[2,176],69:[2,176],70:[2,176],71:[2,176],72:[2,176],73:[2,176],74:[2,176],75:[2,176],76:[2,176],77:[2,176],
78:[2,176],79:[2,176],80:[2,176],81:[2,176],82:[2,176],83:[2,176],84:[2,176],85:[2,176],86:[2,176],87:[2,176],88:[2,176],89:[2,176],90:[2,176],91:[2,176],92:[2,176],93:[2,176],94:[2,176],95:[2,176],98:[2,176],99:[2,176],100:[2,176],102:[2,176],104:[2,176],105:[2,176],107:[2,176],110:[2,176],112:[2,176],115:[2,176],119:[2,176],122:[2,176],124:[2,176],125:[2,176],132:[2,176],149:[2,176],151:[2,176],153:[2,176],156:[2,176],158:[2,176],160:[2,176],165:[2,176],168:[2,176],169:[2,176],175:[2,176],176:[2,
176],177:[2,176],179:[2,176],184:[2,176],194:[2,176],195:[2,176],196:[2,176],197:[2,176]},{10:[1,60],27:58,30:223,38:31,53:[1,40],112:[1,47],115:[1,61],122:[1,34],123:[1,45],124:[1,36],132:[1,42],140:32,144:49,145:59,150:30,151:[1,38],165:[1,46],169:[1,48],182:37,186:57,188:33,190:35,194:[1,39],195:[1,41],196:[1,43],197:[1,44]},{2:[2,194],8:[2,194],10:[2,194],12:[2,194],15:[2,194],17:[2,194],28:[2,194],43:[2,194],47:[2,194],53:[2,194],60:[2,194],69:[2,194],70:[2,194],71:[2,194],72:[2,194],73:[2,194],
74:[2,194],75:[2,194],76:[2,194],77:[2,194],78:[2,194],79:[2,194],80:[2,194],81:[2,194],82:[2,194],83:[2,194],84:[2,194],85:[2,194],86:[2,194],87:[2,194],88:[2,194],89:[2,194],90:[2,194],91:[2,194],92:[2,194],93:[2,194],94:[2,194],95:[2,194],98:[2,194],99:[2,194],100:[2,194],102:[2,194],104:[2,194],105:[2,194],107:[2,194],110:[2,194],112:[2,194],115:[2,194],119:[2,194],122:[2,194],123:[2,194],124:[2,194],125:[2,194],132:[2,194],149:[2,194],151:[2,194],153:[2,194],156:[2,194],158:[2,194],160:[2,194],
165:[2,194],168:[2,194],169:[2,194],175:[2,194],176:[2,194],177:[2,194],179:[2,194],184:[2,194],194:[2,194],195:[2,194],196:[2,194],197:[2,194]},{2:[2,195],8:[2,195],10:[2,195],12:[2,195],15:[2,195],17:[2,195],28:[2,195],43:[2,195],47:[2,195],53:[2,195],60:[2,195],69:[2,195],70:[2,195],71:[2,195],72:[2,195],73:[2,195],74:[2,195],75:[2,195],76:[2,195],77:[2,195],78:[2,195],79:[2,195],80:[2,195],81:[2,195],82:[2,195],83:[2,195],84:[2,195],85:[2,195],86:[2,195],87:[2,195],88:[2,195],89:[2,195],90:[2,