forked from jsoendermann/semaphore-async-await
-
Notifications
You must be signed in to change notification settings - Fork 1
/
globals.html
1096 lines (923 loc) · 282 KB
/
globals.html
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
<!doctype html>
<html class="minimal no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>semaphore-async-await | semaphore-async-await</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">/*! normalize.css v1.1.3 | MIT License | git.io/normalize */
/* ========================================================================== HTML5 display definitions ========================================================================== */
/** Correct `block` display not defined in IE 6/7/8/9 and Firefox 3. */
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
/** Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. */
audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
audio:not([controls]) { display: none; height: 0; }
/** Address styling not present in IE 7/8/9, Firefox 3, and Safari 4. Known issue: no IE 6 support. */
[hidden] { display: none; }
/* ========================================================================== Base ========================================================================== */
/** 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using `em` units. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
html { font-size: 100%; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ font-family: sans-serif; }
/** Address `font-family` inconsistency between `textarea` and other form elements. */
button, input, select, textarea { font-family: sans-serif; }
/** Address margins handled incorrectly in IE 6/7. */
body { margin: 0; }
/* ========================================================================== Links ========================================================================== */
/** Address `outline` inconsistency between Chrome and other browsers. */
a:focus { outline: thin dotted; }
a:active, a:hover { outline: 0; }
/** Improve readability when focused and also mouse hovered in all browsers. */
/* ========================================================================== Typography ========================================================================== */
/** Address font sizes and margins set differently in IE 6/7. Address font sizes within `section` and `article` in Firefox 4+, Safari 5, and Chrome. */
h1 { font-size: 2em; margin: 0.67em 0; }
h2 { font-size: 1.5em; margin: 0.83em 0; }
h3 { font-size: 1.17em; margin: 1em 0; }
h4, .tsd-index-panel h3 { font-size: 1em; margin: 1.33em 0; }
h5 { font-size: 0.83em; margin: 1.67em 0; }
h6 { font-size: 0.67em; margin: 2.33em 0; }
/** Address styling not present in IE 7/8/9, Safari 5, and Chrome. */
abbr[title] { border-bottom: 1px dotted; }
/** Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. */
b, strong { font-weight: bold; }
blockquote { margin: 1em 40px; }
/** Address styling not present in Safari 5 and Chrome. */
dfn { font-style: italic; }
/** Address differences between Firefox and other browsers. Known issue: no IE 6/7 normalization. */
hr { box-sizing: content-box; height: 0; }
/** Address styling not present in IE 6/7/8/9. */
mark { background: #ff0; color: #000; }
/** Address margins set differently in IE 6/7. */
p, pre { margin: 1em 0; }
/** Correct font family set oddly in IE 6, Safari 4/5, and Chrome. */
code, kbd, pre, samp { font-family: monospace, serif; _font-family: "courier new", monospace; font-size: 1em; }
/** Improve readability of pre-formatted text in all browsers. */
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }
/** Address CSS quotes not supported in IE 6/7. */
q { quotes: none; }
q:before, q:after { content: ""; content: none; }
/** Address `quotes` property not supported in Safari 4. */
/** Address inconsistent and variable font size in all browsers. */
small { font-size: 80%; }
/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
sub { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; top: -0.5em; }
sub { bottom: -0.25em; }
/* ========================================================================== Lists ========================================================================== */
/** Address margins set differently in IE 6/7. */
dl, menu, ol, ul { margin: 1em 0; }
dd { margin: 0 0 0 40px; }
/** Address paddings set differently in IE 6/7. */
menu, ol, ul { padding: 0 0 0 40px; }
/** Correct list images handled incorrectly in IE 7. */
nav ul, nav ol { list-style: none; list-style-image: none; }
/* ========================================================================== Embedded content ========================================================================== */
/** 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3. 2. Improve image quality when scaled in IE 7. */
img { border: 0; /* 1 */ -ms-interpolation-mode: bicubic; }
/* 2 */
/** Correct overflow displayed oddly in IE 9. */
svg:not(:root) { overflow: hidden; }
/* ========================================================================== Figures ========================================================================== */
/** Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11. */
figure, form { margin: 0; }
/* ========================================================================== Forms ========================================================================== */
/** Correct margin displayed oddly in IE 6/7. */
/** Define consistent border, margin, and padding. */
fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
/** 1. Correct color not being inherited in IE 6/7/8/9. 2. Correct text not wrapping in Firefox 3. 3. Correct alignment displayed oddly in IE 6/7. */
legend { border: 0; /* 1 */ padding: 0; white-space: normal; /* 2 */ *margin-left: -7px; }
/* 3 */
/** 1. Correct font size not being inherited in all browsers. 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5, and Chrome. 3. Improve appearance and consistency in all browsers. */
button, input, select, textarea { font-size: 100%; /* 1 */ margin: 0; /* 2 */ vertical-align: baseline; /* 3 */ *vertical-align: middle; }
/* 3 */
/** Address Firefox 3+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
button, input { line-height: normal; }
/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+. Correct `select` style inheritance in Firefox 4+ and Opera. */
button, select { text-transform: none; }
/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. 4. Remove inner spacing in IE 7 without affecting normal text inputs. Known issue: inner spacing remains in IE 6. */
button, html input[type="button"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ *overflow: visible; }
/* 4 */
input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ *overflow: visible; }
/* 4 */
/** Re-set default cursor for disabled elements. */
button[disabled], html input[disabled] { cursor: default; }
/** 1. Address box sizing set to content-box in IE 8/9. 2. Remove excess padding in IE 8/9. 3. Remove excess padding in IE 7. Known issue: excess padding remains in IE 6. */
input { /* 3 */ }
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ *height: 13px; /* 3 */ *width: 13px; }
input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; }
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
/** 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome (include `-moz` to future-proof). */
/** Remove inner padding and search cancel button in Safari 5 and Chrome on OS X. */
/** Remove inner padding and border in Firefox 3+. */
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
/** 1. Remove default vertical scrollbar in IE 6/7/8/9. 2. Improve readability and alignment in all browsers. */
textarea { overflow: auto; /* 1 */ vertical-align: top; }
/* 2 */
/* ========================================================================== Tables ========================================================================== */
/** Remove most spacing between table cells. */
table { border-collapse: collapse; border-spacing: 0; }
/* Visual Studio-like style based on original C# coloring by Jason Diamond <[email protected]> */
.hljs { display: inline-block; padding: 0.5em; background: white; color: black; }
.hljs-comment, .hljs-annotation, .hljs-template_comment, .diff .hljs-header, .hljs-chunk, .apache .hljs-cbracket { color: #008000; }
.hljs-keyword, .hljs-id, .hljs-built_in, .css .smalltalk .hljs-class, .hljs-winutils, .bash .hljs-variable, .tex .hljs-command, .hljs-request, .hljs-status, .nginx .hljs-title { color: #00f; }
.xml .hljs-tag { color: #00f; }
.xml .hljs-tag .hljs-value { color: #00f; }
.hljs-string, .hljs-title, .hljs-parent, .hljs-tag .hljs-value, .hljs-rules .hljs-value { color: #a31515; }
.ruby .hljs-symbol { color: #a31515; }
.ruby .hljs-symbol .hljs-string { color: #a31515; }
.hljs-template_tag, .django .hljs-variable, .hljs-addition, .hljs-flow, .hljs-stream, .apache .hljs-tag, .hljs-date, .tex .hljs-formula, .coffeescript .hljs-attribute { color: #a31515; }
.ruby .hljs-string, .hljs-decorator, .hljs-filter .hljs-argument, .hljs-localvars, .hljs-array, .hljs-attr_selector, .hljs-pseudo, .hljs-pi, .hljs-doctype, .hljs-deletion, .hljs-envvar, .hljs-shebang, .hljs-preprocessor, .hljs-pragma, .userType, .apache .hljs-sqbracket, .nginx .hljs-built_in, .tex .hljs-special, .hljs-prompt { color: #2b91af; }
.hljs-phpdoc, .hljs-javadoc, .hljs-xmlDocTag { color: #808080; }
.vhdl .hljs-typename { font-weight: bold; }
.vhdl .hljs-string { color: #666666; }
.vhdl .hljs-literal { color: #a31515; }
.vhdl .hljs-attribute { color: #00b0e8; }
.xml .hljs-attribute { color: #f00; }
.col > :first-child, .col-1 > :first-child, .col-2 > :first-child, .col-3 > :first-child, .col-4 > :first-child, .col-5 > :first-child, .col-6 > :first-child, .col-7 > :first-child, .col-8 > :first-child, .col-9 > :first-child, .col-10 > :first-child, .col-11 > :first-child, .tsd-panel > :first-child, ul.tsd-descriptions > li > :first-child, .col > :first-child > :first-child, .col-1 > :first-child > :first-child, .col-2 > :first-child > :first-child, .col-3 > :first-child > :first-child, .col-4 > :first-child > :first-child, .col-5 > :first-child > :first-child, .col-6 > :first-child > :first-child, .col-7 > :first-child > :first-child, .col-8 > :first-child > :first-child, .col-9 > :first-child > :first-child, .col-10 > :first-child > :first-child, .col-11 > :first-child > :first-child, .tsd-panel > :first-child > :first-child, ul.tsd-descriptions > li > :first-child > :first-child, .col > :first-child > :first-child > :first-child, .col-1 > :first-child > :first-child > :first-child, .col-2 > :first-child > :first-child > :first-child, .col-3 > :first-child > :first-child > :first-child, .col-4 > :first-child > :first-child > :first-child, .col-5 > :first-child > :first-child > :first-child, .col-6 > :first-child > :first-child > :first-child, .col-7 > :first-child > :first-child > :first-child, .col-8 > :first-child > :first-child > :first-child, .col-9 > :first-child > :first-child > :first-child, .col-10 > :first-child > :first-child > :first-child, .col-11 > :first-child > :first-child > :first-child, .tsd-panel > :first-child > :first-child > :first-child, ul.tsd-descriptions > li > :first-child > :first-child > :first-child { margin-top: 0; }
.col > :last-child, .col-1 > :last-child, .col-2 > :last-child, .col-3 > :last-child, .col-4 > :last-child, .col-5 > :last-child, .col-6 > :last-child, .col-7 > :last-child, .col-8 > :last-child, .col-9 > :last-child, .col-10 > :last-child, .col-11 > :last-child, .tsd-panel > :last-child, ul.tsd-descriptions > li > :last-child, .col > :last-child > :last-child, .col-1 > :last-child > :last-child, .col-2 > :last-child > :last-child, .col-3 > :last-child > :last-child, .col-4 > :last-child > :last-child, .col-5 > :last-child > :last-child, .col-6 > :last-child > :last-child, .col-7 > :last-child > :last-child, .col-8 > :last-child > :last-child, .col-9 > :last-child > :last-child, .col-10 > :last-child > :last-child, .col-11 > :last-child > :last-child, .tsd-panel > :last-child > :last-child, ul.tsd-descriptions > li > :last-child > :last-child, .col > :last-child > :last-child > :last-child, .col-1 > :last-child > :last-child > :last-child, .col-2 > :last-child > :last-child > :last-child, .col-3 > :last-child > :last-child > :last-child, .col-4 > :last-child > :last-child > :last-child, .col-5 > :last-child > :last-child > :last-child, .col-6 > :last-child > :last-child > :last-child, .col-7 > :last-child > :last-child > :last-child, .col-8 > :last-child > :last-child > :last-child, .col-9 > :last-child > :last-child > :last-child, .col-10 > :last-child > :last-child > :last-child, .col-11 > :last-child > :last-child > :last-child, .tsd-panel > :last-child > :last-child > :last-child, ul.tsd-descriptions > li > :last-child > :last-child > :last-child { margin-bottom: 0; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 40px; }
@media (max-width: 640px) { .container { padding: 0 20px; } }
.container-main { padding-bottom: 200px; }
.row { position: relative; margin: 0 -10px; }
.row:after { visibility: hidden; display: block; content: ""; clear: both; height: 0; }
.col, .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11 { box-sizing: border-box; float: left; padding: 0 10px; }
.col-1 { width: 8.33333%; }
.offset-1 { margin-left: 8.33333%; }
.col-2 { width: 16.66667%; }
.offset-2 { margin-left: 16.66667%; }
.col-3 { width: 25%; }
.offset-3 { margin-left: 25%; }
.col-4 { width: 33.33333%; }
.offset-4 { margin-left: 33.33333%; }
.col-5 { width: 41.66667%; }
.offset-5 { margin-left: 41.66667%; }
.col-6 { width: 50%; }
.offset-6 { margin-left: 50%; }
.col-7 { width: 58.33333%; }
.offset-7 { margin-left: 58.33333%; }
.col-8 { width: 66.66667%; }
.offset-8 { margin-left: 66.66667%; }
.col-9 { width: 75%; }
.offset-9 { margin-left: 75%; }
.col-10 { width: 83.33333%; }
.offset-10 { margin-left: 83.33333%; }
.col-11 { width: 91.66667%; }
.offset-11 { margin-left: 91.66667%; }
.tsd-kind-icon { display: block; position: relative; padding-left: 20px; text-indent: -20px; }
.tsd-kind-icon:before { content: ''; display: inline-block; vertical-align: middle; width: 17px; height: 17px; margin: 0 3px 2px 0; background-image: url(data:image/png;base64,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); }
@media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { .tsd-kind-icon:before { background-image: url(data:image/png;base64,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); background-size: 238px 204px; } }
.tsd-signature.tsd-kind-icon:before { background-position: 0 -153px; }
.tsd-kind-object-literal > .tsd-kind-icon:before { background-position: 0px -17px; }
.tsd-kind-object-literal.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -17px; }
.tsd-kind-object-literal.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -17px; }
.tsd-kind-class > .tsd-kind-icon:before { background-position: 0px -34px; }
.tsd-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -34px; }
.tsd-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -34px; }
.tsd-kind-class.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: 0px -51px; }
.tsd-kind-class.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -51px; }
.tsd-kind-class.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -51px; }
.tsd-kind-interface > .tsd-kind-icon:before { background-position: 0px -68px; }
.tsd-kind-interface.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -68px; }
.tsd-kind-interface.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -68px; }
.tsd-kind-interface.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: 0px -85px; }
.tsd-kind-interface.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -85px; }
.tsd-kind-interface.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -85px; }
.tsd-kind-module > .tsd-kind-icon:before { background-position: 0px -102px; }
.tsd-kind-module.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -102px; }
.tsd-kind-module.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -102px; }
.tsd-kind-external-module > .tsd-kind-icon:before { background-position: 0px -102px; }
.tsd-kind-external-module.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -102px; }
.tsd-kind-external-module.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -102px; }
.tsd-kind-enum > .tsd-kind-icon:before { background-position: 0px -119px; }
.tsd-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -119px; }
.tsd-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -119px; }
.tsd-kind-enum-member > .tsd-kind-icon:before { background-position: 0px -136px; }
.tsd-kind-enum-member.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -136px; }
.tsd-kind-enum-member.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -136px; }
.tsd-kind-signature > .tsd-kind-icon:before { background-position: 0px -153px; }
.tsd-kind-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -153px; }
.tsd-kind-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -153px; }
.tsd-kind-type-alias > .tsd-kind-icon:before { background-position: 0px -170px; }
.tsd-kind-type-alias.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -170px; }
.tsd-kind-type-alias.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -170px; }
.tsd-kind-variable > .tsd-kind-icon:before { background-position: -136px -0px; }
.tsd-kind-variable.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -0px; }
.tsd-kind-variable.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
.tsd-kind-variable.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -0px; }
.tsd-kind-variable.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -0px; }
.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -0px; }
.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -0px; }
.tsd-kind-variable.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
.tsd-kind-variable.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -0px; }
.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -0px; }
.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
.tsd-kind-variable.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -0px; }
.tsd-kind-variable.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -0px; }
.tsd-kind-property > .tsd-kind-icon:before { background-position: -136px -0px; }
.tsd-kind-property.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -0px; }
.tsd-kind-property.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
.tsd-kind-property.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -0px; }
.tsd-kind-property.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -0px; }
.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -0px; }
.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -0px; }
.tsd-kind-property.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
.tsd-kind-property.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -0px; }
.tsd-kind-property.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -0px; }
.tsd-kind-property.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
.tsd-kind-property.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -0px; }
.tsd-kind-property.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -0px; }
.tsd-kind-get-signature > .tsd-kind-icon:before { background-position: -136px -17px; }
.tsd-kind-get-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -17px; }
.tsd-kind-get-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -17px; }
.tsd-kind-get-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -17px; }
.tsd-kind-set-signature > .tsd-kind-icon:before { background-position: -136px -34px; }
.tsd-kind-set-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -34px; }
.tsd-kind-set-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -34px; }
.tsd-kind-set-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -34px; }
.tsd-kind-accessor > .tsd-kind-icon:before { background-position: -136px -51px; }
.tsd-kind-accessor.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -51px; }
.tsd-kind-accessor.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -51px; }
.tsd-kind-accessor.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -51px; }
.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -51px; }
.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -51px; }
.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -51px; }
.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -51px; }
.tsd-kind-accessor.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -51px; }
.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -51px; }
.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -51px; }
.tsd-kind-accessor.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -51px; }
.tsd-kind-accessor.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -51px; }
.tsd-kind-function > .tsd-kind-icon:before { background-position: -136px -68px; }
.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -68px; }
.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -68px; }
.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -68px; }
.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -68px; }
.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -68px; }
.tsd-kind-function.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -68px; }
.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -68px; }
.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-function.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -68px; }
.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -68px; }
.tsd-kind-method > .tsd-kind-icon:before { background-position: -136px -68px; }
.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -68px; }
.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -68px; }
.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -68px; }
.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -68px; }
.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -68px; }
.tsd-kind-method.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -68px; }
.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -68px; }
.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-method.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -68px; }
.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -68px; }
.tsd-kind-call-signature > .tsd-kind-icon:before { background-position: -136px -68px; }
.tsd-kind-call-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -68px; }
.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -68px; }
.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -68px; }
.tsd-kind-function.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: -136px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -85px; }
.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -85px; }
.tsd-kind-method.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: -136px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -85px; }
.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -85px; }
.tsd-kind-constructor > .tsd-kind-icon:before { background-position: -136px -102px; }
.tsd-kind-constructor.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -102px; }
.tsd-kind-constructor.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
.tsd-kind-constructor.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -102px; }
.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -102px; }
.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -102px; }
.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -102px; }
.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
.tsd-kind-constructor.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -102px; }
.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -102px; }
.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
.tsd-kind-constructor.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -102px; }
.tsd-kind-constructor.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -102px; }
.tsd-kind-constructor-signature > .tsd-kind-icon:before { background-position: -136px -102px; }
.tsd-kind-constructor-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -102px; }
.tsd-kind-constructor-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -102px; }
.tsd-kind-constructor-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -102px; }
.tsd-kind-index-signature > .tsd-kind-icon:before { background-position: -136px -119px; }
.tsd-kind-index-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -119px; }
.tsd-kind-index-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -119px; }
.tsd-kind-index-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -119px; }
.tsd-kind-event > .tsd-kind-icon:before { background-position: -136px -136px; }
.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -136px; }
.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -136px; }
.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -136px; }
.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -136px; }
.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -136px; }
.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -136px; }
.tsd-kind-event.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -136px; }
.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -136px; }
.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -136px; }
.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -136px; }
.tsd-kind-event.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -136px; }
.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -136px; }
.tsd-is-static > .tsd-kind-icon:before { background-position: -136px -153px; }
.tsd-is-static.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -153px; }
.tsd-is-static.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -153px; }
.tsd-is-static.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -153px; }
.tsd-is-static.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -153px; }
.tsd-is-static.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -153px; }
.tsd-is-static.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -153px; }
.tsd-is-static.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -153px; }
.tsd-is-static.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -153px; }
.tsd-is-static.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -153px; }
.tsd-is-static.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -153px; }
.tsd-is-static.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -153px; }
.tsd-is-static.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -153px; }
.tsd-is-static.tsd-kind-function > .tsd-kind-icon:before { background-position: -136px -170px; }
.tsd-is-static.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -170px; }
.tsd-is-static.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -170px; }
.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -170px; }
.tsd-is-static.tsd-kind-method > .tsd-kind-icon:before { background-position: -136px -170px; }
.tsd-is-static.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -170px; }
.tsd-is-static.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -170px; }
.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -170px; }
.tsd-is-static.tsd-kind-call-signature > .tsd-kind-icon:before { background-position: -136px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -170px; }
.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -170px; }
.tsd-is-static.tsd-kind-event > .tsd-kind-icon:before { background-position: -136px -187px; }
.tsd-is-static.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -187px; }
.tsd-is-static.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -187px; }
.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -187px; }
.no-transition { -webkit-transition: none !important; transition: none !important; }
@-webkit-keyframes fade-in { from { opacity: 0; }
to { opacity: 1; } }
@keyframes fade-in { from { opacity: 0; }
to { opacity: 1; } }
@-webkit-keyframes fade-out { from { opacity: 1; visibility: visible; }
to { opacity: 0; } }
@keyframes fade-out { from { opacity: 1; visibility: visible; }
to { opacity: 0; } }
@-webkit-keyframes fade-in-delayed { 0% { opacity: 0; }
33% { opacity: 0; }
100% { opacity: 1; } }
@keyframes fade-in-delayed { 0% { opacity: 0; }
33% { opacity: 0; }
100% { opacity: 1; } }
@-webkit-keyframes fade-out-delayed { 0% { opacity: 1; visibility: visible; }
66% { opacity: 0; }
100% { opacity: 0; } }
@keyframes fade-out-delayed { 0% { opacity: 1; visibility: visible; }
66% { opacity: 0; }
100% { opacity: 0; } }
@-webkit-keyframes shift-to-left { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); }
to { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); } }
@keyframes shift-to-left { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); }
to { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); } }
@-webkit-keyframes unshift-to-left { from { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); }
to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
@keyframes unshift-to-left { from { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); }
to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
@-webkit-keyframes pop-in-from-right { from { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); }
to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
@keyframes pop-in-from-right { from { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); }
to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
@-webkit-keyframes pop-out-to-right { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); visibility: visible; }
to { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); } }
@keyframes pop-out-to-right { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); visibility: visible; }
to { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); } }
body { background: #fdfdfd; font-family: "Segoe UI", sans-serif; font-size: 16px; color: #222; }
a { color: #4da6ff; text-decoration: none; }
a:hover { text-decoration: underline; }
code, pre { font-family: Menlo, Monaco, Consolas, "Courier New", monospace; padding: 0.2em; margin: 0; font-size: 14px; background-color: rgba(0, 0, 0, 0.04); }
pre { padding: 10px; }
pre code { padding: 0; font-size: 100%; background-color: transparent; }
.tsd-typography { line-height: 1.333em; }
.tsd-typography ul { list-style: square; padding: 0 0 0 20px; margin: 0; }
.tsd-typography h4, .tsd-typography .tsd-index-panel h3, .tsd-index-panel .tsd-typography h3, .tsd-typography h5, .tsd-typography h6 { font-size: 1em; margin: 0; }
.tsd-typography h5, .tsd-typography h6 { font-weight: normal; }
.tsd-typography p, .tsd-typography ul, .tsd-typography ol { margin: 1em 0; }
@media (min-width: 901px) and (max-width: 1024px) { html.default .col-content { width: 72%; }
html.default .col-menu { width: 28%; }
html.default .tsd-navigation { padding-left: 10px; } }
@media (max-width: 900px) { html.default .col-content { float: none; width: 100%; }
html.default .col-menu { position: fixed !important; overflow: auto; -webkit-overflow-scrolling: touch; overflow-scrolling: touch; z-index: 1024; top: 0 !important; bottom: 0 !important; left: auto !important; right: 0 !important; width: 100%; padding: 20px 20px 0 0; max-width: 450px; visibility: hidden; background-color: #fff; -webkit-transform: translate(100%, 0); transform: translate(100%, 0); }
html.default .col-menu > *:last-child { padding-bottom: 20px; }
html.default .overlay { content: ""; display: block; position: fixed; z-index: 1023; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.75); visibility: hidden; }
html.default.to-has-menu .overlay { -webkit-animation: fade-in 0.4s; animation: fade-in 0.4s; }
html.default.to-has-menu header, html.default.to-has-menu footer, html.default.to-has-menu .col-content { -webkit-animation: shift-to-left 0.4s; animation: shift-to-left 0.4s; }
html.default.to-has-menu .col-menu { -webkit-animation: pop-in-from-right 0.4s; animation: pop-in-from-right 0.4s; }
html.default.from-has-menu .overlay { -webkit-animation: fade-out 0.4s; animation: fade-out 0.4s; }
html.default.from-has-menu header, html.default.from-has-menu footer, html.default.from-has-menu .col-content { -webkit-animation: unshift-to-left 0.4s; animation: unshift-to-left 0.4s; }
html.default.from-has-menu .col-menu { -webkit-animation: pop-out-to-right 0.4s; animation: pop-out-to-right 0.4s; }
html.default.has-menu body { overflow: hidden; }
html.default.has-menu .overlay { visibility: visible; }
html.default.has-menu header, html.default.has-menu footer, html.default.has-menu .col-content { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); }
html.default.has-menu .col-menu { visibility: visible; -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
.tsd-page-title { padding: 70px 0 20px 0; margin: 0 0 40px 0; background: #fff; box-shadow: 0 0 5px rgba(0, 0, 0, 0.35); }
.tsd-page-title h1 { margin: 0; }
.tsd-breadcrumb { margin: 0; padding: 0; color: #808080; }
.tsd-breadcrumb a { color: #808080; text-decoration: none; }
.tsd-breadcrumb a:hover { text-decoration: underline; }
.tsd-breadcrumb li { display: inline; }
.tsd-breadcrumb li:after { content: " / "; }
html.minimal .container { margin: 0; }
html.minimal .container-main { padding-top: 50px; padding-bottom: 0; }
html.minimal .content-wrap { padding-left: 300px; }
html.minimal .tsd-navigation { position: fixed !important; overflow: auto; -webkit-overflow-scrolling: touch; overflow-scrolling: touch; box-sizing: border-box; z-index: 1; left: 0; top: 40px; bottom: 0; width: 300px; padding: 20px; margin: 0; }
html.minimal .tsd-member .tsd-member { margin-left: 0; }
html.minimal .tsd-page-toolbar { position: fixed; z-index: 2; }
html.minimal #tsd-filter .tsd-filter-group { right: 0; -webkit-transform: none; transform: none; }
html.minimal footer { background-color: transparent; }
html.minimal footer .container { padding: 0; }
html.minimal .tsd-generator { padding: 0; }
@media (max-width: 900px) { html.minimal .tsd-navigation { display: none; }
html.minimal .content-wrap { padding-left: 0; } }
dl.tsd-comment-tags { overflow: hidden; }
dl.tsd-comment-tags dt { clear: both; float: left; padding: 1px 5px; margin: 0 10px 0 0; border-radius: 4px; border: 1px solid #808080; color: #808080; font-size: 0.8em; font-weight: normal; }
dl.tsd-comment-tags dd { margin: 0 0 10px 0; }
dl.tsd-comment-tags p { margin: 0; }
.tsd-panel.tsd-comment .lead { font-size: 1.1em; line-height: 1.333em; margin-bottom: 2em; }
.tsd-panel.tsd-comment .lead:last-child { margin-bottom: 0; }
.toggle-protected .tsd-is-private { display: none; }
.toggle-public .tsd-is-private, .toggle-public .tsd-is-protected, .toggle-public .tsd-is-private-protected { display: none; }
.toggle-inherited .tsd-is-inherited { display: none; }
.toggle-only-exported .tsd-is-not-exported { display: none; }
.toggle-externals .tsd-is-external { display: none; }
#tsd-filter { position: relative; display: inline-block; height: 40px; vertical-align: bottom; }
.no-filter #tsd-filter { display: none; }
#tsd-filter .tsd-filter-group { display: inline-block; height: 40px; vertical-align: bottom; white-space: nowrap; }
#tsd-filter input { display: none; }
@media (max-width: 900px) { #tsd-filter .tsd-filter-group { display: block; position: absolute; top: 40px; right: 20px; height: auto; background-color: #fff; visibility: hidden; -webkit-transform: translate(50%, 0); transform: translate(50%, 0); box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
.has-options #tsd-filter .tsd-filter-group { visibility: visible; }
.to-has-options #tsd-filter .tsd-filter-group { -webkit-animation: fade-in 0.2s; animation: fade-in 0.2s; }
.from-has-options #tsd-filter .tsd-filter-group { -webkit-animation: fade-out 0.2s; animation: fade-out 0.2s; }
#tsd-filter label, #tsd-filter .tsd-select { display: block; padding-right: 20px; } }
footer { border-top: 1px solid #eee; background-color: #fff; }
footer.with-border-bottom { border-bottom: 1px solid #eee; }
footer .tsd-legend-group { font-size: 0; }
footer .tsd-legend { display: inline-block; width: 25%; padding: 0; font-size: 16px; list-style: none; line-height: 1.333em; vertical-align: top; }
@media (max-width: 900px) { footer .tsd-legend { width: 50%; } }
.tsd-hierarchy { list-style: square; padding: 0 0 0 20px; margin: 0; }
.tsd-hierarchy .target { font-weight: bold; }
.tsd-index-panel .tsd-index-content { margin-bottom: -30px !important; }
.tsd-index-panel .tsd-index-section { margin-bottom: 30px !important; }
.tsd-index-panel h3 { margin: 0 -20px 10px -20px; padding: 0 20px 10px 20px; border-bottom: 1px solid #eee; }
.tsd-index-panel ul.tsd-index-list { -webkit-column-count: 3; -moz-column-count: 3; -ms-column-count: 3; -o-column-count: 3; column-count: 3; -webkit-column-gap: 20px; -moz-column-gap: 20px; -ms-column-gap: 20px; -o-column-gap: 20px; column-gap: 20px; padding: 0; list-style: none; line-height: 1.333em; }
@media (max-width: 900px) { .tsd-index-panel ul.tsd-index-list { -webkit-column-count: 1; -moz-column-count: 1; -ms-column-count: 1; -o-column-count: 1; column-count: 1; } }
@media (min-width: 901px) and (max-width: 1024px) { .tsd-index-panel ul.tsd-index-list { -webkit-column-count: 2; -moz-column-count: 2; -ms-column-count: 2; -o-column-count: 2; column-count: 2; } }
.tsd-index-panel ul.tsd-index-list li { -webkit-column-break-inside: avoid; -moz-column-break-inside: avoid; -ms-column-break-inside: avoid; -o-column-break-inside: avoid; column-break-inside: avoid; -webkit-page-break-inside: avoid; -moz-page-break-inside: avoid; -ms-page-break-inside: avoid; -o-page-break-inside: avoid; page-break-inside: avoid; }
.tsd-index-panel a, .tsd-index-panel .tsd-parent-kind-module a { color: #9600ff; }
.tsd-index-panel .tsd-parent-kind-interface a { color: #7da01f; }
.tsd-index-panel .tsd-parent-kind-enum a { color: #cc9900; }
.tsd-index-panel .tsd-parent-kind-class a { color: #4da6ff; }
.tsd-index-panel .tsd-kind-module a { color: #9600ff; }
.tsd-index-panel .tsd-kind-interface a { color: #7da01f; }
.tsd-index-panel .tsd-kind-enum a { color: #cc9900; }
.tsd-index-panel .tsd-kind-class a { color: #4da6ff; }
.tsd-index-panel .tsd-is-private a { color: #808080; }
.tsd-flag { display: inline-block; padding: 1px 5px; border-radius: 4px; color: #fff; background-color: #808080; text-indent: 0; font-size: 14px; font-weight: normal; }
.tsd-anchor { position: absolute; top: -100px; }
.tsd-member { position: relative; }
.tsd-member .tsd-anchor + h3 { margin-top: 0; margin-bottom: 0; border-bottom: none; }
.tsd-navigation { padding: 0 0 0 40px; }
.tsd-navigation a { display: block; padding-top: 2px; padding-bottom: 2px; border-left: 2px solid transparent; color: #222; text-decoration: none; -webkit-transition: border-left-color 0.1s; transition: border-left-color 0.1s; }
.tsd-navigation a:hover { text-decoration: underline; }
.tsd-navigation ul { margin: 0; padding: 0; list-style: none; }
.tsd-navigation li { padding: 0; }
.tsd-navigation.primary { padding-bottom: 40px; }
.tsd-navigation.primary a { display: block; padding-top: 6px; padding-bottom: 6px; }
.tsd-navigation.primary ul li a { padding-left: 5px; }
.tsd-navigation.primary ul li li a { padding-left: 25px; }
.tsd-navigation.primary ul li li li a { padding-left: 45px; }
.tsd-navigation.primary ul li li li li a { padding-left: 65px; }
.tsd-navigation.primary ul li li li li li a { padding-left: 85px; }
.tsd-navigation.primary ul li li li li li li a { padding-left: 105px; }
.tsd-navigation.primary > ul { border-bottom: 1px solid #eee; }
.tsd-navigation.primary li { border-top: 1px solid #eee; }
.tsd-navigation.primary li.current > a { font-weight: bold; }
.tsd-navigation.primary li.label span { display: block; padding: 20px 0 6px 5px; color: #808080; }
.tsd-navigation.primary li.globals + li > span, .tsd-navigation.primary li.globals + li > a { padding-top: 20px; }
.tsd-navigation.secondary ul { -webkit-transition: opacity 0.2s; transition: opacity 0.2s; }
.tsd-navigation.secondary ul li a { padding-left: 25px; }
.tsd-navigation.secondary ul li li a { padding-left: 45px; }
.tsd-navigation.secondary ul li li li a { padding-left: 65px; }
.tsd-navigation.secondary ul li li li li a { padding-left: 85px; }
.tsd-navigation.secondary ul li li li li li a { padding-left: 105px; }
.tsd-navigation.secondary ul li li li li li li a { padding-left: 125px; }
.tsd-navigation.secondary ul.current a { border-left-color: #eee; }
.tsd-navigation.secondary li.focus > a, .tsd-navigation.secondary ul.current li.focus > a { border-left-color: #000; }
.tsd-navigation.secondary li.current { margin-top: 20px; margin-bottom: 20px; border-left-color: #eee; }
.tsd-navigation.secondary li.current > a { font-weight: bold; }
@media (min-width: 901px) { .menu-sticky-wrap { position: static; }
.no-csspositionsticky .menu-sticky-wrap.sticky { position: fixed; }
.no-csspositionsticky .menu-sticky-wrap.sticky-current { position: fixed; }
.no-csspositionsticky .menu-sticky-wrap.sticky-current ul.before-current, .no-csspositionsticky .menu-sticky-wrap.sticky-current ul.after-current { opacity: 0; }
.no-csspositionsticky .menu-sticky-wrap.sticky-bottom { position: absolute; top: auto !important; left: auto !important; bottom: 0; right: 0; }
.csspositionsticky .menu-sticky-wrap.sticky { position: -webkit-sticky; position: sticky; }
.csspositionsticky .menu-sticky-wrap.sticky-current { position: -webkit-sticky; position: sticky; } }
.tsd-panel { margin: 20px 0; padding: 20px; background-color: #fff; box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
.tsd-panel:empty { display: none; }
.tsd-panel > h1, .tsd-panel > h2, .tsd-panel > h3 { margin: 1.5em -20px 10px -20px; padding: 0 20px 10px 20px; border-bottom: 1px solid #eee; }
.tsd-panel > h1.tsd-before-signature, .tsd-panel > h2.tsd-before-signature, .tsd-panel > h3.tsd-before-signature { margin-bottom: 0; border-bottom: 0; }
.tsd-panel table { display: block; width: 100%; overflow: auto; margin-top: 10px; word-break: normal; word-break: keep-all; }
.tsd-panel table th { font-weight: bold; }
.tsd-panel table th, .tsd-panel table td { padding: 6px 13px; border: 1px solid #ddd; }
.tsd-panel table tr { background-color: #fff; border-top: 1px solid #ccc; }
.tsd-panel table tr:nth-child(2n) { background-color: #f8f8f8; }
.tsd-panel-group { margin: 60px 0; }
.tsd-panel-group > h1, .tsd-panel-group > h2, .tsd-panel-group > h3 { padding-left: 20px; padding-right: 20px; }
#tsd-search { -webkit-transition: background-color 0.2s; transition: background-color 0.2s; }
#tsd-search .title { position: relative; z-index: 2; }
#tsd-search .field { position: absolute; left: 0; top: 0; right: 40px; height: 40px; }
#tsd-search .field input { box-sizing: border-box; position: relative; top: -50px; z-index: 1; width: 100%; padding: 0 10px; opacity: 0; outline: 0; border: 0; background: transparent; color: #222; }
#tsd-search .field label { position: absolute; overflow: hidden; right: -40px; }
#tsd-search .field input, #tsd-search .title { -webkit-transition: opacity 0.2s; transition: opacity 0.2s; }
#tsd-search .results { position: absolute; visibility: hidden; top: 40px; width: 100%; margin: 0; padding: 0; list-style: none; box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
#tsd-search .results li { padding: 0 10px; background-color: #fdfdfd; }
#tsd-search .results li:nth-child(even) { background-color: #fff; }
#tsd-search .results li.state { display: none; }
#tsd-search .results li.current, #tsd-search .results li:hover { background-color: #eee; }
#tsd-search .results a { display: block; }
#tsd-search .results a:before { top: 10px; }
#tsd-search .results span.parent { color: #808080; font-weight: normal; }
#tsd-search.has-focus { background-color: #eee; }
#tsd-search.has-focus .field input { top: 0; opacity: 1; }
#tsd-search.has-focus .title { z-index: 0; opacity: 0; }
#tsd-search.has-focus .results { visibility: visible; }
#tsd-search.loading .results li.state.loading { display: block; }
#tsd-search.failure .results li.state.failure { display: block; }
.tsd-signature { margin: 0 0 1em 0; padding: 10px; border: 1px solid #eee; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
.tsd-signature.tsd-kind-icon { padding-left: 30px; }
.tsd-signature.tsd-kind-icon:before { top: 10px; left: 10px; }
.tsd-panel > .tsd-signature { margin-left: -20px; margin-right: -20px; border-width: 1px 0; }
.tsd-panel > .tsd-signature.tsd-kind-icon { padding-left: 40px; }
.tsd-panel > .tsd-signature.tsd-kind-icon:before { left: 20px; }
.tsd-signature-symbol { color: #808080; font-weight: normal; }
.tsd-signature-type { font-style: italic; font-weight: normal; }
.tsd-signatures { padding: 0; margin: 0 0 1em 0; border: 1px solid #eee; }
.tsd-signatures .tsd-signature { margin: 0; border-width: 1px 0 0 0; -webkit-transition: background-color 0.1s; transition: background-color 0.1s; }
.tsd-signatures .tsd-signature:first-child { border-top-width: 0; }
.tsd-signatures .tsd-signature.current { background-color: #eee; }
.tsd-signatures.active > .tsd-signature { cursor: pointer; }
.tsd-panel > .tsd-signatures { margin-left: -20px; margin-right: -20px; border-width: 1px 0; }
.tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon { padding-left: 40px; }
.tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon:before { left: 20px; }
.tsd-panel > a.anchor + .tsd-signatures { border-top-width: 0; margin-top: -20px; }
ul.tsd-descriptions { position: relative; overflow: hidden; -webkit-transition: height 0.3s; transition: height 0.3s; padding: 0; list-style: none; }
ul.tsd-descriptions.active > .tsd-description { display: none; }
ul.tsd-descriptions.active > .tsd-description.current { display: block; }
ul.tsd-descriptions.active > .tsd-description.fade-in { -webkit-animation: fade-in-delayed 0.3s; animation: fade-in-delayed 0.3s; }
ul.tsd-descriptions.active > .tsd-description.fade-out { -webkit-animation: fade-out-delayed 0.3s; animation: fade-out-delayed 0.3s; position: absolute; display: block; top: 0; left: 0; right: 0; opacity: 0; visibility: hidden; }
ul.tsd-descriptions h4, ul.tsd-descriptions .tsd-index-panel h3, .tsd-index-panel ul.tsd-descriptions h3 { font-size: 16px; margin: 1em 0 0.5em 0; }
ul.tsd-parameters, ul.tsd-type-parameters { list-style: square; margin: 0; padding-left: 20px; }
ul.tsd-parameters > li.tsd-parameter-siganture, ul.tsd-type-parameters > li.tsd-parameter-siganture { list-style: none; margin-left: -20px; }
ul.tsd-parameters h5, ul.tsd-type-parameters h5 { font-size: 16px; margin: 1em 0 0.5em 0; }
ul.tsd-parameters .tsd-comment, ul.tsd-type-parameters .tsd-comment { margin-top: -0.5em; }
.tsd-sources { font-size: 14px; color: #808080; margin: 0 0 1em 0; }
.tsd-sources a { color: #808080; text-decoration: underline; }
.tsd-sources ul, .tsd-sources p { margin: 0 !important; }
.tsd-sources ul { list-style: none; padding: 0; }
.tsd-page-toolbar { position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 40px; color: #333; background: #fff; border-bottom: 1px solid #eee; }
.tsd-page-toolbar a { color: #333; text-decoration: none; }
.tsd-page-toolbar a.title { font-weight: bold; }
.tsd-page-toolbar a.title:hover { text-decoration: underline; }
.tsd-page-toolbar .table-wrap { display: table; width: 100%; height: 40px; }
.tsd-page-toolbar .table-cell { display: table-cell; position: relative; white-space: nowrap; line-height: 40px; }
.tsd-page-toolbar .table-cell:first-child { width: 100%; }
.tsd-widget:before, .tsd-select .tsd-select-label:before, .tsd-select .tsd-select-list li:before { content: ""; display: inline-block; width: 40px; height: 40px; margin: 0 -8px 0 0; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAAoCAQAAAAlSeuiAAABp0lEQVR4Ae3aUa3jQAyF4QNhIBTCQiiEQlgIhRAGhTAQBkIgBEIgDITZZGXNjZTePiSWYqn/54dGfbAq+SiTutWXAgAAAAAAAAAAAAA8NCz1UFSD2lKDS5d3NVzZj/BVNasaLoRZRUmj2lLrVVHWMUntQ13Wj/i1pWa9lprX6xMRnH4dx6Rjsn26+v+12ms+EcB37P0r+qH+DNQGXgMFcHzbregQ78B8eQCTJk0e979ZW7PdA2O49ceDsYexKgUNoI3EKYDWL3D8miaPh/uXtl6BHqEHFQvgXau/FsCiIWAAbST2fpQRT0sl70j3z5ZiBdD7CG5WZX8kxwmgjbiP5GQA9/3O2XaxnnHi53AEE0AbRh+JQwC3/fzC4hcb6xPvS4i3QaMdwX+0utsRPEY6gm2wNhKHAG77eUi7SIcK4G4NY4GMIan2u2Cxqzncl5DUn7Q8ArjvZ8JFOsl/Ed0jyBom+BomQKSto+9PcblHMM4iuu4X0QQw5hrGQY/gUxFkjZuf4m4alXVU+1De/VhEn5CvDSB/RsBzqWgAAAAAAAAAAAAAAACAfyyYJ5nhVuwIAAAAAElFTkSuQmCC); background-repeat: no-repeat; text-indent: -1024px; vertical-align: bottom; }
@media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { .tsd-widget:before, .tsd-select .tsd-select-label:before, .tsd-select .tsd-select-list li:before { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAABQCAMAAAC+sjQXAAAAM1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjBUbJAAAAEXRSTlMA3/+/UCBw7xCPYIBAMM+vn1qYQ7QAAALCSURBVHgB7MGBAAAAAICg/akXqQIAAAAAAAAAAAAAAAAAAJids9mdE4bhoDNZCITP93/aSmhV/9uwPWyi8jtkblws2IxsYpz9LwSAaJW8AreE16PxOsMYE6Q4DiYKF7X+8ZHXc/E608xv5snEyIuZrVwMZjbnujR6T3gsXmcLOIRNzD+Ig2UuVtt2+NbAiX/wVLzOlviD9L2BOfGBlL/3D1I+uDjGBJArBPxU3x+K15kCQFo2s21JAOHrKpz4SPrWv4IKA+uFaR6vMwMcb+emA2DWEfDglrkLqEBOKVslA8Dx14oPMiV4CtywWxdQgAwkq2QE0uTXUwJGk2G9s3mTFNBzAkC7HKPsX72AEVjMnAWIpsPCRRjXdQxcjCYpoOcEgHY5Rtk/slWSgM3M2aSeeVgjAOeVpKcdgGMdNAXMuIAqOcZzqF8L+WcAsi8wkTeheCWMegL6mgCorHHyEJ5TVfxrLWDrTUjZdhnhjYqAnlN8TaoELOLVC0gucmoz/3RKcPs2jAs4+J5ET8AEZF+TSgGLeC1V8YuGQQU2IV1Asq9JCwE9XitZVPxr34bpJRj8PqsFLOK108W9aVrWZRrR7Sm2HL4JCToCujHZ6gUs4jUz0P1TEvD+U5wMa363YeziBODIq1YbJrsv9QKW8Ry1nNp+GAHvuingRTfmYcjBf0QpAS37bdUL6PFKtHJq63EsZ5cxcKMkDVIClu1dAK1PcJ5TFQ0M9wZKDCPs3BD7MIJGTs3WfiTfDVQYx5q5ZekCauTU3P5Q0ukGCgh49oFURdobWBY9N/CxEuwGjpGLuPhTdwH1x7HqDDxNgRP2zQ8lraFyF/yJ9vH6QGqtgSbBOU8/j2VORz+Wqfle2d5Ae4R+ML0z7Y+W4P7XHN3AU+tzyK/24EAGAAAAYJC/9T2+CgAAAAAAAAAAAAAAAAAAAADgJpfzHyIKFFBKAAAAAElFTkSuQmCC); background-size: 320px 40px; } }
.tsd-widget { display: inline-block; overflow: hidden; opacity: 0.6; height: 40px; -webkit-transition: opacity 0.1s, background-color 0.2s; transition: opacity 0.1s, background-color 0.2s; vertical-align: bottom; cursor: pointer; }
.tsd-widget:hover { opacity: 0.8; }
.tsd-widget.active { opacity: 1; background-color: #eee; }
.tsd-widget.no-caption { width: 40px; }
.tsd-widget.no-caption:before { margin: 0; }
.tsd-widget.search:before { background-position: 0 0; }
.tsd-widget.menu:before { background-position: -40px 0; }
.tsd-widget.options:before { background-position: -80px 0; }
.tsd-widget.options, .tsd-widget.menu { display: none; }
@media (max-width: 900px) { .tsd-widget.options, .tsd-widget.menu { display: inline-block; } }
input[type=checkbox] + .tsd-widget:before { background-position: -120px 0; }
input[type=checkbox]:checked + .tsd-widget:before { background-position: -160px 0; }
.tsd-select { position: relative; display: inline-block; height: 40px; -webkit-transition: opacity 0.1s, background-color 0.2s; transition: opacity 0.1s, background-color 0.2s; vertical-align: bottom; cursor: pointer; }
.tsd-select .tsd-select-label { opacity: 0.6; -webkit-transition: opacity 0.2s; transition: opacity 0.2s; }
.tsd-select .tsd-select-label:before { background-position: -240px 0; }
.tsd-select.active .tsd-select-label { opacity: 0.8; }
.tsd-select.active .tsd-select-list { visibility: visible; opacity: 1; -webkit-transition-delay: 0s; transition-delay: 0s; }
.tsd-select .tsd-select-list { position: absolute; visibility: hidden; top: 40px; left: 0; margin: 0; padding: 0; opacity: 0; list-style: none; box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); -webkit-transition: visibility 0s 0.2s, opacity 0.2s; transition: visibility 0s 0.2s, opacity 0.2s; }
.tsd-select .tsd-select-list li { padding: 0 20px 0 0; background-color: #fdfdfd; }
.tsd-select .tsd-select-list li:before { background-position: 40px 0; }
.tsd-select .tsd-select-list li:nth-child(even) { background-color: #fff; }
.tsd-select .tsd-select-list li:hover { background-color: #eee; }
.tsd-select .tsd-select-list li.selected:before { background-position: -200px 0; }
@media (max-width: 900px) { .tsd-select .tsd-select-list { top: 0; left: auto; right: 100%; margin-right: -5px; }
.tsd-select .tsd-select-label:before { background-position: -280px 0; } }
img { max-width: 100%; }
</style>
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell">
<strong>semaphore-async-await</strong>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
<input type="checkbox" id="tsd-filter-externals" checked />
<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
<input type="checkbox" id="tsd-filter-only-exported" />
<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
</div>
</div>
<a href="#typedoc-main-index" class="tsd-widget menu no-caption">Menu</a>
</div>
</div>
</div>
</div>
</header>
<nav class="tsd-navigation secondary">
<ul>
<li class=" tsd-kind-class">
<a href="classes/lock.html" class="tsd-kind-icon">Lock</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/semaphore.html" class="tsd-kind-icon">Semaphore</a>
</li>
</ul>
</nav>
<div class="container container-main">
<div class="content-wrap">
<div class="tsd-panel tsd-typography">
<h1 id="javascript-semaphore">JavaScript Semaphore</h1>
<p>A promise-based semaphore implementation suitable to be used with async/await.</p>
<h2 id="spare-me-the-details-all-i-need-is-a-lock-">Spare me the details, all I need is a lock.</h2>
<p>Just <code>import { Lock } from 'semaphore-async-await'</code>, acquire the lock by calling <code>await lock.acquire()</code> and release it when you're done by calling <code>lock.release()</code>.</p>
<h2 id="but-javascript-is-single-threaded-and-doesn-t-need-semaphores-">But JavaScript is single-threaded and doesn't need semaphores!</h2>
<p>This package can be used to synchronize functions that span multiple iterations of the event loop and prevent other code from being executed while your function is waiting.</p>
<p>Suppose you have a function</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">criticalFunction</span>(<span class="hljs-params"></span>) </span>{
<span class="hljs-keyword">const</span> data = <span class="hljs-keyword">await</span> getDataFromDb();
<span class="hljs-keyword">const</span> modifiedData = <span class="hljs-keyword">await</span> asynchronouslyDoStuffWithData(data);
<span class="hljs-keyword">return</span> writeDataBackToDb(modifiedData);
}
</code></pre>
<p>Calling this function repeatedly could lead to overlapping read/writes. To avoid this problem, a lock can be added like so:</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">const</span> lock = <span class="hljs-keyword">new</span> Semaphore(<span class="hljs-number">1</span>);
<span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">criticalFunctionSynchronous</span>(<span class="hljs-params"></span>) </span>{
<span class="hljs-keyword">await</span> lock.acquire();
<span class="hljs-keyword">await</span> criticalFunction();
lock.release();
}
</code></pre>
<p>Asynchronous functions like <code>criticalFunction</code> are executed in multiple chunks of code on the event loop, this package makes it possible to enforce an ordering in these chunks.</p>
<h2 id="install">Install</h2>
<p><code>yarn add semaphore-async-await</code></p>
<p><a href="https://jsoendermann.github.io/semaphore-async-await/classes/semaphore.html"><h2>API</h2></a></p>
<h2 id="usage">Usage</h2>
<pre><code class="lang-javascript"><span class="hljs-keyword">import</span> Semaphore <span class="hljs-keyword">from</span> <span class="hljs-string">'semaphore-async-await'</span>;
<span class="hljs-function">(<span class="hljs-params"><span class="hljs-keyword">async</span> (</span>) =></span> {
<span class="hljs-comment">// A Semaphore with one permit is a lock</span>
<span class="hljs-keyword">const</span> lock = <span class="hljs-keyword">new</span> Semaphore(<span class="hljs-number">1</span>);
<span class="hljs-comment">// Helper function used to wait for the given number of milliseconds</span>
<span class="hljs-keyword">const</span> wait = <span class="hljs-function">(<span class="hljs-params">ms</span>) =></span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Promise</span>(<span class="hljs-function"><span class="hljs-params">r</span> =></span> setTimeout(r, ms));
<span class="hljs-keyword">let</span> globalVar = <span class="hljs-number">0</span>;
<span class="hljs-function">(<span class="hljs-params"><span class="hljs-keyword">async</span> (</span>) =></span> {
<span class="hljs-comment">// This waits (without blocking the event loop) until a permit becomes available</span>
<span class="hljs-keyword">await</span> lock.wait();
<span class="hljs-keyword">const</span> localCopy = globalVar;
<span class="hljs-keyword">await</span> wait(<span class="hljs-number">500</span>);
globalVar = localCopy + <span class="hljs-number">1</span>;
<span class="hljs-comment">// Signal releases the lock and lets other things run</span>
lock.signal();
})();
<span class="hljs-comment">// This returns false because the function above has acquired the lock</span>
<span class="hljs-comment">// and is scheduled to continue executing once the main function yields or</span>
<span class="hljs-comment">// returns</span>
<span class="hljs-built_in">console</span>.log(lock.tryAcquire() === <span class="hljs-literal">false</span>);
<span class="hljs-comment">// Similar to the function above but using waitFor instead of wait. We</span>
<span class="hljs-comment">// give it five seconds to wait which is enough time for it to acquire</span>
<span class="hljs-comment">// the lock</span>
(<span class="hljs-keyword">async</span> () => {
<span class="hljs-comment">// This waits for at least five seconds, trying to acquire a permit.</span>
<span class="hljs-keyword">const</span> didAcquireLock = <span class="hljs-keyword">await</span> lock.waitFor(<span class="hljs-number">5000</span>);
<span class="hljs-keyword">if</span> (didAcquireLock) {
<span class="hljs-keyword">const</span> localCopy = globalVar;
<span class="hljs-keyword">await</span> wait(<span class="hljs-number">500</span>);
globalVar = localCopy + <span class="hljs-number">1</span>;
<span class="hljs-comment">// Signal releases the lock and lets other things run</span>
lock.signal();
}
})();
<span class="hljs-comment">// Alternative to using wait()/signal() directly</span>
lock.execute(<span class="hljs-keyword">async</span> () => {
<span class="hljs-keyword">const</span> localCopy = globalVar;
<span class="hljs-keyword">await</span> wait(<span class="hljs-number">500</span>);
globalVar = localCopy + <span class="hljs-number">1</span>;
});