@testgorilla/tgo-typing-test 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +46 -0
- package/jest.config.ts +21 -0
- package/ng-package.json +15 -0
- package/package.json +7 -22
- package/project.json +36 -0
- package/src/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.html +30 -0
- package/src/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.spec.ts +250 -0
- package/src/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.ts +47 -0
- package/src/lib/components/tgo-typing-test/tgo-typing-test.component.html +72 -0
- package/src/lib/components/tgo-typing-test/tgo-typing-test.component.spec.ts +699 -0
- package/src/lib/components/tgo-typing-test/tgo-typing-test.component.ts +287 -0
- package/src/lib/helpers/config.ts +28 -0
- package/src/lib/helpers/constants/default-config.ts +103 -0
- package/src/lib/helpers/controllers/input-controller.ts +710 -0
- package/src/lib/helpers/controllers/quotes-controller.ts +183 -0
- package/src/lib/helpers/observables/banner-event.ts +18 -0
- package/src/lib/helpers/observables/config-event.ts +31 -0
- package/src/lib/helpers/observables/timer-event.ts +18 -0
- package/src/lib/helpers/states/active-page.ts +9 -0
- package/src/lib/helpers/states/composition.ts +29 -0
- package/src/lib/helpers/states/page-transition.ts +9 -0
- package/src/lib/helpers/states/slow-timer.ts +16 -0
- package/src/lib/helpers/states/test-active.ts +9 -0
- package/src/lib/helpers/states/time.ts +13 -0
- package/src/lib/helpers/test/caps-warning.ts +50 -0
- package/src/lib/helpers/test/caret.ts +92 -0
- package/src/lib/helpers/test/custom-text.ts +73 -0
- package/src/lib/helpers/test/english-punctuation.ts +38 -0
- package/src/lib/helpers/test/focus.ts +39 -0
- package/src/lib/helpers/test/manual-restart-tracker.ts +13 -0
- package/src/lib/helpers/test/out-of-focus.ts +19 -0
- package/src/lib/helpers/test/replay.ts +265 -0
- package/src/lib/helpers/test/test-input.ts +320 -0
- package/src/lib/helpers/test/test-logic.ts +1039 -0
- package/src/lib/helpers/test/test-state.ts +17 -0
- package/src/lib/helpers/test/test-stats.ts +442 -0
- package/src/lib/helpers/test/test-timer.ts +209 -0
- package/src/lib/helpers/test/test-ui.ts +370 -0
- package/src/lib/helpers/test/test-words.ts +72 -0
- package/src/lib/helpers/test/timer-progress.ts +16 -0
- package/src/lib/helpers/test/tts.ts +42 -0
- package/src/lib/helpers/test/weak-spot.ts +74 -0
- package/src/lib/helpers/test/wordset.ts +109 -0
- package/src/lib/styles/animations.scss +101 -0
- package/src/lib/styles/caret.scss +108 -0
- package/src/lib/styles/core.scss +498 -0
- package/src/lib/styles/index.scss +19 -0
- package/src/lib/styles/inputs.scss +290 -0
- package/src/lib/styles/popups.scss +1311 -0
- package/src/lib/styles/test.scss +1008 -0
- package/src/lib/styles/z_media-queries.scss +848 -0
- package/src/lib/types/types.d.ts +731 -0
- package/src/lib/utils/misc.ts +776 -0
- package/src/test-setup.ts +20 -0
- package/tsconfig.json +16 -0
- package/tsconfig.lib.json +14 -0
- package/tsconfig.lib.prod.json +9 -0
- package/tsconfig.spec.json +11 -0
- package/esm2022/index.mjs +0 -3
- package/esm2022/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.mjs +0 -45
- package/esm2022/lib/components/tgo-typing-test/tgo-typing-test.component.mjs +0 -299
- package/esm2022/lib/helpers/config.mjs +0 -24
- package/esm2022/lib/helpers/constants/default-config.mjs +0 -103
- package/esm2022/lib/helpers/controllers/input-controller.mjs +0 -586
- package/esm2022/lib/helpers/controllers/quotes-controller.mjs +0 -118
- package/esm2022/lib/helpers/observables/config-event.mjs +0 -16
- package/esm2022/lib/helpers/observables/timer-event.mjs +0 -16
- package/esm2022/lib/helpers/states/active-page.mjs +0 -8
- package/esm2022/lib/helpers/states/composition.mjs +0 -20
- package/esm2022/lib/helpers/states/page-transition.mjs +0 -8
- package/esm2022/lib/helpers/states/slow-timer.mjs +0 -15
- package/esm2022/lib/helpers/states/test-active.mjs +0 -8
- package/esm2022/lib/helpers/states/time.mjs +0 -11
- package/esm2022/lib/helpers/test/caps-warning.mjs +0 -50
- package/esm2022/lib/helpers/test/caret.mjs +0 -80
- package/esm2022/lib/helpers/test/custom-text.mjs +0 -59
- package/esm2022/lib/helpers/test/english-punctuation.mjs +0 -29
- package/esm2022/lib/helpers/test/focus.mjs +0 -35
- package/esm2022/lib/helpers/test/manual-restart-tracker.mjs +0 -11
- package/esm2022/lib/helpers/test/out-of-focus.mjs +0 -14
- package/esm2022/lib/helpers/test/replay.mjs +0 -217
- package/esm2022/lib/helpers/test/test-input.mjs +0 -264
- package/esm2022/lib/helpers/test/test-logic.mjs +0 -927
- package/esm2022/lib/helpers/test/test-state.mjs +0 -13
- package/esm2022/lib/helpers/test/test-stats.mjs +0 -342
- package/esm2022/lib/helpers/test/test-timer.mjs +0 -207
- package/esm2022/lib/helpers/test/test-ui.mjs +0 -341
- package/esm2022/lib/helpers/test/test-words.mjs +0 -69
- package/esm2022/lib/helpers/test/timer-progress.mjs +0 -15
- package/esm2022/lib/helpers/test/weak-spot.mjs +0 -65
- package/esm2022/lib/helpers/test/wordset.mjs +0 -100
- package/esm2022/lib/utils/misc.mjs +0 -673
- package/esm2022/testgorilla-tgo-typing-test.mjs +0 -5
- package/fesm2022/testgorilla-tgo-typing-test.mjs +0 -4707
- package/fesm2022/testgorilla-tgo-typing-test.mjs.map +0 -1
- package/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.d.ts +0 -14
- package/lib/components/tgo-typing-test/tgo-typing-test.component.d.ts +0 -54
- package/lib/helpers/config.d.ts +0 -98
- package/lib/helpers/constants/default-config.d.ts +0 -3
- package/lib/helpers/controllers/input-controller.d.ts +0 -16
- package/lib/helpers/controllers/quotes-controller.d.ts +0 -20
- package/lib/helpers/observables/config-event.d.ts +0 -5
- package/lib/helpers/observables/timer-event.d.ts +0 -4
- package/lib/helpers/states/active-page.d.ts +0 -2
- package/lib/helpers/states/composition.d.ts +0 -10
- package/lib/helpers/states/page-transition.d.ts +0 -2
- package/lib/helpers/states/slow-timer.d.ts +0 -3
- package/lib/helpers/states/test-active.d.ts +0 -2
- package/lib/helpers/states/time.d.ts +0 -3
- package/lib/helpers/test/caps-warning.d.ts +0 -5
- package/lib/helpers/test/caret.d.ts +0 -11
- package/lib/helpers/test/custom-text.d.ts +0 -16
- package/lib/helpers/test/english-punctuation.d.ts +0 -3
- package/lib/helpers/test/focus.d.ts +0 -7
- package/lib/helpers/test/manual-restart-tracker.d.ts +0 -3
- package/lib/helpers/test/out-of-focus.d.ts +0 -4
- package/lib/helpers/test/replay.d.ts +0 -20
- package/lib/helpers/test/test-input.d.ts +0 -86
- package/lib/helpers/test/test-logic.d.ts +0 -25
- package/lib/helpers/test/test-state.d.ts +0 -7
- package/lib/helpers/test/test-stats.d.ts +0 -92
- package/lib/helpers/test/test-timer.d.ts +0 -6
- package/lib/helpers/test/test-ui.d.ts +0 -27
- package/lib/helpers/test/test-words.d.ts +0 -23
- package/lib/helpers/test/timer-progress.d.ts +0 -3
- package/lib/helpers/test/weak-spot.d.ts +0 -3
- package/lib/helpers/test/wordset.d.ts +0 -7
- package/lib/utils/misc.d.ts +0 -81
- /package/{assets → src/assets}/typing-test-languages/english.json +0 -0
- /package/{assets → src/assets}/typing-test-languages/english_punctuation.json +0 -0
- /package/{assets → src/assets}/typing-test-languages/quotes/english_version_1.json +0 -0
- /package/{assets → src/assets}/typing-test-languages/quotes/english_version_2.json +0 -0
- /package/{assets → src/assets}/typing-test-languages/quotes/filtered_sources.json +0 -0
- /package/{index.d.ts → src/index.ts} +0 -0
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
-
import { Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild, } from '@angular/core';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
|
-
import { setCustomTGQuotes, setFunbox, setNumbers, setPunctuation, setTestVersionForSentences, setTime, } from '../../helpers/config';
|
|
5
|
-
import { inputKeydown, setWordsInputElement, wordsInputBeforeinput, wordsInputCompositionend, wordsInputCompositionstart, wordsInputCopy, wordsInputFocus, wordsInputInput, wordsInputKeyup, wordsInputPaste, } from '../../helpers/controllers/input-controller';
|
|
6
|
-
import { capsKeydown, capsKeyup, showCaps } from '../../helpers/test/caps-warning';
|
|
7
|
-
import { caretAnimation, caretLeft, caretShow, caretTop } from '../../helpers/test/caret';
|
|
8
|
-
import { mousemove, setCapsWarningElement, setMiddleElement } from '../../helpers/test/focus';
|
|
9
|
-
import { outOfFocusShow } from '../../helpers/test/out-of-focus';
|
|
10
|
-
import { getReplayExport } from '../../helpers/test/replay';
|
|
11
|
-
import * as TestLogic from '../../helpers/test/test-logic';
|
|
12
|
-
import * as TestUI from '../../helpers/test/test-ui';
|
|
13
|
-
import { setWordsElement, setWordsInputElementTestUI, setWordsWrapperElement, wordsInputFocusOut, wordsInputFocusTestUI, wordsWrapperClick, } from '../../helpers/test/test-ui';
|
|
14
|
-
import { timeLeft } from '../../helpers/test/timer-progress';
|
|
15
|
-
import { QuoteNetworkError$ } from '../../utils/misc';
|
|
16
|
-
import * as TestActive from '../../helpers/states/test-active';
|
|
17
|
-
import quoteController from '../../helpers/controllers/quotes-controller';
|
|
18
|
-
import { disableCheckIfTimeIsUp } from '../../helpers/test/test-timer';
|
|
19
|
-
import { CommonModule } from '@angular/common';
|
|
20
|
-
import * as i0 from "@angular/core";
|
|
21
|
-
import * as i1 from "@angular/common";
|
|
22
|
-
export class TgoTypingTestComponent {
|
|
23
|
-
showCaps$;
|
|
24
|
-
showCaret$;
|
|
25
|
-
caretAnimation$;
|
|
26
|
-
showTimer$;
|
|
27
|
-
timeLeft$;
|
|
28
|
-
caretLeft = 0;
|
|
29
|
-
caretTop = 0;
|
|
30
|
-
state = 'true';
|
|
31
|
-
outOfFocusShow$;
|
|
32
|
-
subscriptions = [];
|
|
33
|
-
replayIntervalID;
|
|
34
|
-
resultEvent = new EventEmitter();
|
|
35
|
-
replayExport = new EventEmitter();
|
|
36
|
-
errorEvent = new EventEmitter();
|
|
37
|
-
time = 180;
|
|
38
|
-
punctuation = false;
|
|
39
|
-
numbers = false;
|
|
40
|
-
funbox = 'none';
|
|
41
|
-
customTGQuotes = false;
|
|
42
|
-
showMiniTimerAndLiveWpm = true;
|
|
43
|
-
restartTest = false;
|
|
44
|
-
testVersion = 1;
|
|
45
|
-
testExpiration$;
|
|
46
|
-
constructor() {
|
|
47
|
-
this.showCaps$ = showCaps;
|
|
48
|
-
this.showCaret$ = caretShow;
|
|
49
|
-
this.caretAnimation$ = caretAnimation;
|
|
50
|
-
this.showTimer$ = TestLogic.startTestSubject;
|
|
51
|
-
this.outOfFocusShow$ = outOfFocusShow;
|
|
52
|
-
this.timeLeft$ = timeLeft;
|
|
53
|
-
}
|
|
54
|
-
wordsInput;
|
|
55
|
-
wordsWrapper;
|
|
56
|
-
words;
|
|
57
|
-
middle;
|
|
58
|
-
capsWarning;
|
|
59
|
-
ngOnInit() {
|
|
60
|
-
TestUI.setResultCalculating(false);
|
|
61
|
-
TestUI.setResultVisible(false);
|
|
62
|
-
this.caretLeft = 0;
|
|
63
|
-
this.caretTop = 0;
|
|
64
|
-
setTime(this.time);
|
|
65
|
-
setPunctuation(this.punctuation);
|
|
66
|
-
setNumbers(this.numbers);
|
|
67
|
-
setFunbox(this.funbox);
|
|
68
|
-
setCustomTGQuotes(this.customTGQuotes);
|
|
69
|
-
setTestVersionForSentences(this.testVersion);
|
|
70
|
-
const caretLeftSub = caretLeft.subscribe(res => {
|
|
71
|
-
if (res !== this.caretLeft) {
|
|
72
|
-
this.caretLeft = res;
|
|
73
|
-
if (this.state == 'true') {
|
|
74
|
-
this.state = 'false';
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
this.state = 'true';
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
const caretTopSub = caretTop.subscribe(res => {
|
|
82
|
-
this.caretTop = res;
|
|
83
|
-
});
|
|
84
|
-
const testResultSub = TestLogic.resultSub.subscribe(res => {
|
|
85
|
-
this.replayExport.emit(getReplayExport());
|
|
86
|
-
this.resultEvent.emit(res);
|
|
87
|
-
});
|
|
88
|
-
const errorSub = QuoteNetworkError$.subscribe({
|
|
89
|
-
next: e => {
|
|
90
|
-
if (!e)
|
|
91
|
-
return;
|
|
92
|
-
this.errorEvent.emit(e);
|
|
93
|
-
TestLogic.stopTest();
|
|
94
|
-
},
|
|
95
|
-
});
|
|
96
|
-
this.replayIntervalID = setInterval(() => {
|
|
97
|
-
this.replayExport.emit(getReplayExport());
|
|
98
|
-
}, 20000);
|
|
99
|
-
this.subscriptions.push(caretLeftSub, caretTopSub, testResultSub, errorSub);
|
|
100
|
-
if (this.testExpiration$) {
|
|
101
|
-
disableCheckIfTimeIsUp();
|
|
102
|
-
this.subscriptions.push(this.testExpiration$.subscribe(() => {
|
|
103
|
-
TestLogic.finish();
|
|
104
|
-
}));
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
ngOnChanges(changes) {
|
|
108
|
-
if (changes['restartTest']) {
|
|
109
|
-
if (!changes['restartTest'].isFirstChange()) {
|
|
110
|
-
this.restart();
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
wordsInputKeyup(event) {
|
|
115
|
-
wordsInputKeyup(event);
|
|
116
|
-
}
|
|
117
|
-
wordsInputBeforeinput(event) {
|
|
118
|
-
wordsInputBeforeinput(event);
|
|
119
|
-
}
|
|
120
|
-
wordsInputInput(event) {
|
|
121
|
-
wordsInputInput(event);
|
|
122
|
-
}
|
|
123
|
-
wordsInputFocus(event) {
|
|
124
|
-
if (!TestActive.get())
|
|
125
|
-
return;
|
|
126
|
-
wordsInputFocus(event);
|
|
127
|
-
wordsInputFocusTestUI();
|
|
128
|
-
}
|
|
129
|
-
wordsInputFocusOut() {
|
|
130
|
-
if (!TestActive.get())
|
|
131
|
-
return;
|
|
132
|
-
wordsInputFocusOut();
|
|
133
|
-
}
|
|
134
|
-
wordsInputCopy(event) {
|
|
135
|
-
wordsInputCopy(event);
|
|
136
|
-
}
|
|
137
|
-
wordsInputPaste(event) {
|
|
138
|
-
wordsInputPaste(event);
|
|
139
|
-
}
|
|
140
|
-
wordsInputCompositionstart() {
|
|
141
|
-
wordsInputCompositionstart();
|
|
142
|
-
}
|
|
143
|
-
wordsInputCompositionend() {
|
|
144
|
-
wordsInputCompositionend();
|
|
145
|
-
}
|
|
146
|
-
wordsWrapperClick() {
|
|
147
|
-
wordsWrapperClick();
|
|
148
|
-
}
|
|
149
|
-
ngAfterViewInit() {
|
|
150
|
-
setWordsInputElement(this.wordsInput.nativeElement);
|
|
151
|
-
setWordsInputElementTestUI(this.wordsInput.nativeElement);
|
|
152
|
-
TestLogic.setWordsInputElementTestLogic(this.wordsInput.nativeElement);
|
|
153
|
-
setWordsWrapperElement(this.wordsWrapper.nativeElement);
|
|
154
|
-
setWordsElement(this.words.nativeElement);
|
|
155
|
-
setMiddleElement(this.middle.nativeElement);
|
|
156
|
-
setCapsWarningElement(this.capsWarning.nativeElement);
|
|
157
|
-
TestLogic.restart();
|
|
158
|
-
}
|
|
159
|
-
restart() {
|
|
160
|
-
TestUI.setResultCalculating(false);
|
|
161
|
-
TestUI.setResultVisible(false);
|
|
162
|
-
this.caretLeft = 0;
|
|
163
|
-
this.caretTop = 0;
|
|
164
|
-
TestLogic.restart();
|
|
165
|
-
}
|
|
166
|
-
handleKeyboardDown(event) {
|
|
167
|
-
capsKeydown(event);
|
|
168
|
-
inputKeydown(event, document.activeElement === this.wordsInput.nativeElement);
|
|
169
|
-
}
|
|
170
|
-
handleKeyboardUp(event) {
|
|
171
|
-
capsKeyup(event);
|
|
172
|
-
}
|
|
173
|
-
handleMouseMove(event) {
|
|
174
|
-
mousemove(event);
|
|
175
|
-
}
|
|
176
|
-
ngOnDestroy() {
|
|
177
|
-
TestLogic.stopTest();
|
|
178
|
-
quoteController.resetQuotes();
|
|
179
|
-
clearInterval(this.replayIntervalID);
|
|
180
|
-
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
181
|
-
}
|
|
182
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TgoTypingTestComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
183
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TgoTypingTestComponent, isStandalone: true, selector: "tgo-typing-test", inputs: { time: "time", punctuation: "punctuation", numbers: "numbers", funbox: "funbox", customTGQuotes: "customTGQuotes", showMiniTimerAndLiveWpm: "showMiniTimerAndLiveWpm", restartTest: "restartTest", testVersion: "testVersion", testExpiration$: "testExpiration$" }, outputs: { resultEvent: "resultEvent", replayExport: "replayExport", errorEvent: "errorEvent" }, host: { listeners: { "document:keydown": "handleKeyboardDown($event)", "document:keyup": "handleKeyboardUp($event)", "document:mousemove": "handleMouseMove($event)" } }, viewQueries: [{ propertyName: "wordsInput", first: true, predicate: ["wordsInput"], descendants: true }, { propertyName: "wordsWrapper", first: true, predicate: ["wordsWrapper"], descendants: true }, { propertyName: "words", first: true, predicate: ["words"], descendants: true }, { propertyName: "middle", first: true, predicate: ["middle"], descendants: true }, { propertyName: "capsWarning", first: true, predicate: ["capsWarning"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"centerContent\">\n <div id=\"middle\" #middle>\n <div class=\"page pageTest active\">\n <div id=\"typingTest\">\n <div id=\"capsWarning\" [ngClass]=\"{ hidden: (showCaps$ | async) === false }\" #capsWarning>\n Caps Lock\n </div>\n <div id=\"memoryTimer\">Time left to memorise all words: 0s</div>\n <div id=\"testModesNotice\"></div>\n <input\n id=\"wordsInput\"\n class=\"\"\n tabindex=\"0\"\n type=\"text\"\n autocomplete=\"off\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n data-gramm=\"false\"\n data-gramm_editor=\"false\"\n data-enable-grammarly=\"false\"\n list=\"autocompleteOff\"\n (keyup)=\"wordsInputKeyup($event)\"\n (beforeinput)=\"wordsInputBeforeinput($event)\"\n (input)=\"wordsInputInput($event)\"\n (focus)=\"wordsInputFocus($event)\"\n (focusout)=\"wordsInputFocusOut()\"\n (copy)=\"wordsInputCopy($event)\"\n (paste)=\"wordsInputPaste($event)\"\n (compositionstart)=\"wordsInputCompositionstart()\"\n (compositionend)=\"wordsInputCompositionend()\"\n #wordsInput\n />\n @if (showMiniTimerAndLiveWpm) {\n <div id=\"miniTimerAndLiveWpm\" class=\"timerMain size2\">\n <div class=\"time\" [@fadeIn]=\"(showTimer$ | async) ? 'show' : 'hide'\">\n {{ timeLeft$ | async }}\n </div>\n <div class=\"wpm hidden\">60</div>\n <div class=\"acc hidden\">100%</div>\n <div class=\"burst hidden\">1</div>\n </div>\n }\n \n @if (outOfFocusShow$ | async) {\n <div class=\"outOfFocusWarning\">\n Click or press any key to focus\n </div>\n }\n \n @if (errorEvent | async; as errorMessage) {\n <div class=\"errorWarning\"> \n {{ errorMessage }} Reload the page or <a href=\"https://candidates.testgorilla.com/hc/en-us/requests/new\" target=\"_blank\">contact support</a>.\n </div>\n }\n \n <div id=\"wordsWrapper\" translate=\"no\" #wordsWrapper (click)=\"wordsWrapperClick()\">\n <div id=\"paceCaret\" class=\"default size2 hidden\"></div>\n @if (showCaret$ | async) {\n <div id=\"caret\" [@updatePositionCaret]=\"{\n value: state,\n params: { caretTopPos: caretTop, caretLeftPos: caretLeft }\n }\" \n [ngStyle]=\"{ 'animation-name': (caretAnimation$ | async) }\" class=\"default size2\">\n </div>\n }\n <div id=\"words\" class=\"size2\" #words [ngClass]=\"{ blurred: (outOfFocusShow$ | async) }\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n ", styles: ["@import\"https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@600&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inconsolata:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Titillium+Web:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Lexend+Deca:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Oxygen:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Itim:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Comfortaa:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Coming+Soon:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Lalezar:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;700&display=swap\";@keyframes loader{0%{width:0;left:0}50%{width:100%;left:0}to{width:0;left:100%}}@keyframes caretFlashSmooth{0%,to{opacity:0}50%{opacity:1}}@keyframes caretFlashHard{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes flashKey{0%{color:#f6f6f6;background-color:#888;border-color:#888}to{color:#888;background-color:#f6f6f6;border-color:#888}}@keyframes shake{0%{transform:translate(2px) rotate(0)}50%{transform:translate(-2px) rotate(0)}to{transform:translate(2px) rotate(0)}}@keyframes flashHighlight{0%{background-color:#f6f6f6}10%{background-color:#888}40%{background-color:#888}to{background-color:#f6f6f6}}@keyframes rgb-bg{0%{background:#4cae4c}20%{background:#409eb5}40%{background:#8134f4}60%{background:#f10e19}80%{background:#ffc505}to{background:#4cae4c}}#caret,#caret.outline,#paceCaret.outline{height:1.5rem;background:#dc322f;animation:caretFlashSmooth 1s infinite;position:absolute;border-radius:.5rem;transform-origin:top left}#paceCaret{height:1.5rem;background:#888;opacity:.5;position:absolute;border-radius:.5rem;transform-origin:top left;width:2px}#caret.off,#paceCaret.off{width:0}#caret.default,#paceCaret.default{width:2px}#caret.block,#caret.outline,#paceCaret.block,#paceCaret.outline{width:.7em;border-radius:0;z-index:-1}#caret.outline,#paceCaret.outline{animation-name:none;background:transparent;border:1px solid #dc322f}#caret.block,#caret.outline,#caret.underline,#paceCaret.block,#paceCaret.outline,#paceCaret.underline{margin-left:.1rem}#caret.block.size15,#caret.outline.size15,#caret.underline.size15,#paceCaret.block.size15,#paceCaret.outline.size15,#paceCaret.underline.size15{margin-left:.15rem}#caret.block.size2,#caret.outline.size2,#caret.underline.size2,#paceCaret.block.size2,#paceCaret.outline.size2,#paceCaret.underline.size2{margin-left:.2rem}#caret.block.size3,#caret.outline.size3,#caret.underline.size3,#paceCaret.block.size3,#paceCaret.outline.size3,#paceCaret.underline.size3{margin-left:.25em}#caret.block.size4,#caret.outline.size4,#caret.underline.size4,#paceCaret.block.size4,#paceCaret.outline.size4,#paceCaret.underline.size4{margin-left:.3rem}#caret.underline,#paceCaret.underline{height:2px;width:.8em;margin-top:1.3em}#caret.underline.size125,#paceCaret.underline.size125{margin-top:1.8em}#caret.underline.size15,#paceCaret.underline.size15{margin-top:2.1em}#caret.underline.size2,#paceCaret.underline.size2{margin-top:2.7em}#caret.underline.size3,#paceCaret.underline.size3{margin-top:3.9em}#caret.underline.size4,#paceCaret.underline.size4{margin-top:5em}#caret.size125,#paceCaret.size125{transform:scale(1.25)}#caret.size15,#paceCaret.size15{transform:scale(1.45)}#caret.size2,#paceCaret.size2{transform:scale(1.9)}#caret.size3,#paceCaret.size3{transform:scale(2.8)}#caret.size4,#paceCaret.size4{transform:scale(3.7)}::ng-deep :host{scroll-padding-top:2rem;font-weight:600}::ng-deep ::placeholder{color:#888;opacity:1}::ng-deep #app{display:grid;grid-template-columns:auto minmax(0,1000px) auto;justify-items:center}::ng-deep #app.wide125{grid-template-columns:auto minmax(0,1250px) auto}::ng-deep #app.wide150{grid-template-columns:auto minmax(0,1500px) auto}::ng-deep #app.wide200{grid-template-columns:auto minmax(0,2000px) auto}::ng-deep #app.widemax{grid-template-columns:auto minmax(0,1fr) auto}::ng-deep #nocss{display:none!important;pointer-events:none}::ng-deep .ffscroll,::ng-deep #contactPopupWrapper #contactPopup,#contactPopupWrapper ::ng-deep #contactPopup,::ng-deep #supportMeWrapper #supportMe,#supportMeWrapper ::ng-deep #supportMe,::ng-deep #versionHistoryWrapper #versionHistory,#versionHistoryWrapper ::ng-deep #versionHistory,::ng-deep html{scrollbar-width:thin;scrollbar-color:#888888 transparent}::ng-deep html{overflow-y:scroll}::ng-deep a{display:inline-block;color:#888;transition:.25s}::ng-deep a:hover{color:#181819}::ng-deep a[data-link] *{pointer-events:none}::ng-deep a.button{text-decoration:none}::ng-deep #centerContent{margin:0;padding:0;min-height:300px;font-family:Roboto Mono,Vazirmatn;color:#181819;overflow-x:hidden;border:1px solid #E0E0E0}::ng-deep .customBackground{content:\"\";width:100vw;height:100vh;position:fixed;left:0;top:0;background-position:center center;background-repeat:no-repeat;z-index:-999;justify-content:center;align-items:center;display:flex}::ng-deep #backgroundLoader{height:3px;position:fixed;width:100%;background:#888;animation:loader 2s cubic-bezier(.38,.16,.57,.82) infinite;z-index:9999}::ng-deep label.checkbox span{display:block;font-size:.76rem;color:#888;margin-left:1.5rem}::ng-deep label.checkbox input{margin:0!important;cursor:pointer;width:0;height:0;display:none;-webkit-user-select:none;user-select:none}::ng-deep label.checkbox input~.customTextCheckbox{width:1.25rem;height:1.25rem;background:#e2d8be;border-radius:.25rem;display:inline-grid;margin:0 .5rem 0 0;-webkit-user-select:none;user-select:none;cursor:pointer}::ng-deep label.checkbox input~.customTextCheckbox .check{opacity:0;color:#888;transition:.125s}::ng-deep label.checkbox input:checked~.customTextCheckbox .check{opacity:1}::ng-deep #centerContent{display:grid;grid-auto-flow:row;padding:10rem 2rem 2rem;gap:2rem;align-items:center;z-index:999;grid-template-rows:auto 1fr auto;width:100%;transition:padding-top .125s}::ng-deep #centerContent.wide125{max-width:1250px}::ng-deep #centerContent.wide150{max-width:1500px}::ng-deep #centerContent.wide200{max-width:2000px}::ng-deep #centerContent.widemax{max-width:unset}::ng-deep #key{color:#f6f6f6;background-color:#888;padding:.3rem;margin:0rem .5rem;border-radius:.1rem;display:inline-block;font-size:.7rem;line-height:.7rem}::ng-deep .pageLoading{display:grid;justify-content:center}::ng-deep .pageLoading .preloader,::ng-deep .pageAccount .preloader{text-align:center;justify-self:center;display:grid}::ng-deep .pageLoading .preloader .barWrapper,::ng-deep .pageAccount .preloader .barWrapper{display:grid;gap:1rem;grid-row:1;grid-column:1}::ng-deep .pageLoading .preloader .barWrapper .bar,::ng-deep .pageAccount .preloader .barWrapper .bar{width:20rem;height:.5rem;background:#e2d8be;border-radius:.5rem}::ng-deep .pageLoading .preloader .barWrapper .bar .fill,::ng-deep .pageAccount .preloader .barWrapper .bar .fill{height:100%;width:0%;background:#888;border-radius:.5rem}::ng-deep .pageLoading .preloader .icon,::ng-deep .pageAccount .preloader .icon{grid-row:1;grid-column:1;font-size:2rem;color:#888;margin-bottom:1rem}::ng-deep .devIndicator{position:fixed;font-size:3rem;color:#888;opacity:.25;z-index:-1}::ng-deep .devIndicator.tl{top:2rem;left:2rem}::ng-deep .devIndicator.tr{top:2rem;right:2rem}::ng-deep .devIndicator.bl{bottom:2rem;left:2rem}::ng-deep .devIndicator.br{bottom:2rem;right:2rem}::ng-deep *{box-sizing:border-box}::ng-deep .hidden{display:none!important}::ng-deep .invisible{opacity:0!important;pointer-events:none!important}::ng-deep .button{color:#181819;cursor:pointer;transition:background .125s,color .125s;padding:.5rem;border-radius:.5rem;background:#e2d8be;text-align:center;user-select:none;-webkit-user-select:none;align-content:center;height:min-content;height:-moz-min-content;line-height:1.25rem;appearance:none;border:none;font-family:inherit;font-size:1rem}::ng-deep .button.active{background:#888;color:#f6f6f6}::ng-deep .button.active:hover{background:#181819}::ng-deep .button.active:active{background:#888;color:#f6f6f6}::ng-deep .button.disabled{opacity:.33;cursor:default;pointer-events:none}::ng-deep .button.disabled:hover{background:#181819;outline:none}::ng-deep .button.disabled:active{background:#888;color:#f6f6f6}::ng-deep .button:hover{color:#f6f6f6;background:#181819;outline:none}::ng-deep .button:focus{outline:2px solid #181819}::ng-deep .button:active{background:#888;color:#f6f6f6}::ng-deep .textButton{color:#888;cursor:pointer;transition:background .125s,color .125s;padding:.5rem;border-radius:.5rem;text-align:center;user-select:none;-webkit-user-select:none;align-content:center;height:min-content;height:-moz-min-content;line-height:1.25rem;appearance:none;border:none;font-family:inherit;font-size:1rem;width:max-content;width:-moz-max-content;display:grid;grid-auto-flow:column;gap:.25rem;text-decoration:none}::ng-deep .textButton .fas,::ng-deep .textButton .far{display:grid;place-content:center center}::ng-deep .textButton.active{color:#888}::ng-deep .textButton.active:hover{color:#181819}::ng-deep .textButton.active:active{color:#888}::ng-deep .textButton.disabled{opacity:.33;cursor:default;pointer-events:none}::ng-deep .textButton.disabled:hover{background:#181819;outline:none}::ng-deep .textButton.disabled:active{background:#888;color:#f6f6f6}::ng-deep .textButton:hover{color:#181819}::ng-deep .textButton:focus{color:#181819;outline:none}::ng-deep .textButton:active{color:#888}::ng-deep .scrollToTopButton{bottom:2rem;right:2rem;position:fixed;font-size:2rem;width:4rem;height:4rem;text-align:center;line-height:4rem;background:#e2d8be;border-radius:99rem;z-index:99;cursor:pointer;color:#888;transition:.25s}::ng-deep .scrollToTopButton:hover{background:#181819;color:#f6f6f6}::ng-deep .inputAndIndicator{position:relative}::ng-deep .inputAndIndicator input{width:100%}::ng-deep .inputAndIndicator .statusIndicator{width:2.25rem;height:2.25rem;position:absolute;right:0;top:0;display:grid;grid-template-columns:2.25rem;grid-template-rows:2.25rem;place-items:center center;cursor:pointer}::ng-deep .inputAndIndicator .statusIndicator .indicator{grid-column:1/2;grid-row:1/2}::ng-deep .inputAndIndicator .statusIndicator .indicator.level-1{color:#d33682}::ng-deep .inputAndIndicator .statusIndicator .indicator.level0{color:#888}::ng-deep .inputAndIndicator .statusIndicator .indicator.level1{color:#888}::ng-deep .configureAPI.button{position:fixed;left:2rem;bottom:2rem;display:grid;grid-auto-flow:column;gap:.5rem;text-decoration:none;z-index:999999999}::ng-deep .avatar{transition:opacity .125s,filter .125s,webkit-filter .125s;width:1.25rem;height:1.25rem;border-radius:100%;background-position:center center;background-size:contain;background-repeat:no-repeat}::ng-deep .badge{background:#888;color:#181819;border-radius:.25rem;-webkit-user-select:none;user-select:none;display:grid;grid-template-columns:max-content auto;align-items:baseline}::ng-deep .badge .fas,::ng-deep .badge .far{margin:.15rem .3rem;font-size:.9em}::ng-deep .badge .text{margin-top:.15rem;margin-bottom:.15rem;margin-right:.3rem}input,textarea{outline:none;border:none;border-radius:.5rem;background:#e2d8be;color:#181819;padding:.5rem;font-size:1rem;font-family:Roboto Mono,Vazirmatn;caret-color:#888}textarea{resize:vertical}input[type=range]{-webkit-appearance:none;padding:0;width:100%;height:1rem;border-radius:.5rem}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;padding:0;border:none;width:25%;height:1rem;border-radius:.5rem;background-color:#888}input[type=range]::-webkit-slider-thumb:hover{cursor:grab}input[type=range]::-webkit-slider-thumb:active{cursor:grabbing}input[type=range]::-moz-range-thumb{-webkit-appearance:none;padding:0;border:none;width:25%;height:1rem;border-radius:.5rem;background-color:#888}input[type=range]::-moz-range-thumb:hover{cursor:grab}input[type=range]::-moz-range-thumb:active{cursor:grabbing}input[type=color]{height:3px;opacity:0;padding:0;margin:0;position:absolute;pointer-events:none}input:disabled,textarea:disabled{opacity:.33}::-moz-color-swatch{border:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,textarea:-webkit-autofill,textarea:-webkit-autofill:hover,textarea:-webkit-autofill:focus,select:-webkit-autofill,select:-webkit-autofill:hover,select:-webkit-autofill:focus{border:none;outline:2px solid #888888;font-family:inherit;-webkit-text-fill-color:#181819;-webkit-box-shadow:0 0 0 1000000px #e2d8be inset;caret-color:#181819}.select2-dropdown{background-color:#f6f6f6;color:#181819;outline:none}.select2-container--default.select2-container--disabled .select2-selection--single{background:#e2d8be!important;opacity:.33;cursor:default;pointer-events:none}.select2-selection{background:#e2d8be;height:fit-content;height:-moz-fit-content;padding:5px;border-radius:.5rem;color:#181819;font:\"Roboto Mono\",\"Vazirmatn\";border:none;outline:none}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#181819;outline:none}.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background-color:#181819;color:#f6f6f6}.select2-container--default .select2-results__option--selected{background-color:#888;color:#f6f6f6}.select2-container--open .select2-dropdown--below,.select2-container--open .select2-dropdown--above{border-color:#e2d8be;background:#f6f6f6;color:#888;border-radius:.5rem}.select2-container--default .select2-selection--single{color:#181819;background:#e2d8be;outline:none;border:none;height:auto;border-radius:.5rem}.select2-container--default.select2-container--disabled .select2-selection--single{background:#5051517a}.select2-selection:focus{height:fit-content;height:-moz-fit-content;padding:5px;border-radius:.5rem;color:#181819;font:\"Roboto Mono\",\"Vazirmatn\";border:none;outline:none}.select2-selection:active{height:fit-content;height:-moz-fit-content;padding:5px;border-radius:.5rem;color:#181819;font:\"Roboto Mono\",\"Vazirmatn\";border:none;outline:none}.select2-container--default .select2-selection--single .select2-selection__arrow{height:35px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#181819 transparent transparent transparent}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:#181819 transparent}.select2-container--default .select2-search--dropdown .select2-search__field{border-color:#e2d8be;background:#f6f6f6;color:#181819;border-radius:.5rem}.select2-container--default .select2-results__group{color:#181819}.select2-container--default .select2-selection--multiple{background:#e2d8be;border-radius:.5rem;color:#181819;outline:none;border:none}.select2-selection__choice__display{color:#f6f6f6}.select2-selection__choice__remove{color:#888!important}.select2-container .select2-search--inline .select2-search__field{margin:0;border-radius:0;font-family:Roboto Mono,Vazirmatn;line-height:1rem}.select2-container--default.select2-container--focus .select2-selection--multiple{border:none}.select2-container--default .select2-selection--multiple{border:none;padding:.5rem;font-family:Roboto Mono,Vazirmatn}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#888;border:none;border-radius:.25rem;box-sizing:border-box;display:inline-block;margin-left:0;margin-top:0;margin-right:.5rem;padding:0;padding-left:1.25rem;position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{line-height:1.5rem;border-right:1px solid #F6F6F6;color:#f6f6f6!important;transition:.125s}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{background-color:#181819}.popupWrapper{width:100%;height:100%;background:#000000bf;position:fixed;left:0;top:0;z-index:1000;display:grid;justify-content:center;align-items:center;padding:2rem 0}#customTextPopupWrapper #customTextPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:60vw}#customTextPopupWrapper #customTextPopup .buttonsTop{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}#customTextPopupWrapper #customTextPopup .savedTexts{display:grid;gap:.5rem}#customTextPopupWrapper #customTextPopup .savedTexts .title{color:#888}#customTextPopupWrapper #customTextPopup .savedTexts .buttons{display:grid;grid-template-columns:1fr 1fr;gap:1rem}#customTextPopupWrapper #customTextPopup textarea{background:#e2d8be;padding:1rem;color:#888;border:none;outline:none;font-size:1rem;font-family:Roboto Mono,Vazirmatn;width:100%;border-radius:.5rem;resize:vertical;height:200px;color:#181819;overflow-x:hidden;overflow-y:scroll}#customTextPopupWrapper #customTextPopup .inputs{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:center;justify-items:left}#customTextPopupWrapper #customTextPopup .randomInputFields{display:grid;grid-template-columns:1fr auto 1fr;text-align:center;align-items:center;width:100%;gap:1rem}#savedTextsPopupWrapper #savedTextsPopup{color:#888;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:400px;max-height:80vh;overflow:auto}#savedTextsPopupWrapper #savedTextsPopup .title{font-size:1.5rem;color:#888}#savedTextsPopupWrapper #savedTextsPopup .list{display:grid;gap:1rem}#savedTextsPopupWrapper #savedTextsPopup .list .savedText{display:grid;gap:.5rem;grid-template-columns:1fr 3rem}#savedTextsPopupWrapper #savedTextsPopup .list .savedText .button .fas{pointer-events:none}#wordFilterPopupWrapper #wordFilterPopup{color:#888;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:400px}#wordFilterPopupWrapper #wordFilterPopup input{width:100%}#wordFilterPopupWrapper #wordFilterPopup .group{display:grid;gap:.5rem}#wordFilterPopupWrapper #wordFilterPopup .lengthgrid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;column-gap:1rem}#wordFilterPopupWrapper #wordFilterPopup .tip{color:#888;font-size:.8rem}#wordFilterPopupWrapper #wordFilterPopup .loadingIndicator{justify-self:center}#quoteRatePopupWrapper #quoteRatePopup{color:#888;background:#f6f6f6;border-radius:.5rem;padding:2rem;gap:2rem;width:800px;display:grid;grid-template-areas:\"warning warning warning\" \"spacer2 spacer2 spacer2\" \"ratingStats ratingStats submitButton\" \"spacer spacer spacer\" \"quote quote quote\";grid-template-columns:auto 1fr;color:#181819}#quoteRatePopupWrapper #quoteRatePopup .warning{grid-area:warning}#quoteRatePopupWrapper #quoteRatePopup .warning span{color:#d33682}#quoteRatePopupWrapper #quoteRatePopup .spacer,#quoteRatePopupWrapper #quoteRatePopup .spacer2{grid-area:spacer;width:100%;height:.1rem;border-radius:.5rem;background:#888;opacity:.25}#quoteRatePopupWrapper #quoteRatePopup .spacer2{grid-area:spacer2}#quoteRatePopupWrapper #quoteRatePopup .submitButton{font-size:2rem;grid-area:submitButton;color:#888}#quoteRatePopupWrapper #quoteRatePopup .submitButton:hover{color:#181819}#quoteRatePopupWrapper #quoteRatePopup .top{color:#888;font-size:.8rem}#quoteRatePopupWrapper #quoteRatePopup .ratingStats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;grid-area:ratingStats}#quoteRatePopupWrapper #quoteRatePopup .ratingStats .top{font-size:1rem}#quoteRatePopupWrapper #quoteRatePopup .ratingStats .val{font-size:2.25rem}#quoteRatePopupWrapper #quoteRatePopup .quote{display:grid;grid-area:quote;gap:1rem;grid-template-areas:\"text text text\" \"id length source\";grid-template-columns:1fr 1fr 3fr}#quoteRatePopupWrapper #quoteRatePopup .quote .text{grid-area:text}#quoteRatePopupWrapper #quoteRatePopup .quote .id{grid-area:id}#quoteRatePopupWrapper #quoteRatePopup .quote .length{grid-area:length}#quoteRatePopupWrapper #quoteRatePopup .quote .source{grid-area:source}#quoteRatePopupWrapper #quoteRatePopup .stars{display:grid;color:#888;font-size:2rem;grid-template-columns:auto auto auto auto auto;justify-content:flex-start;align-items:center;cursor:pointer}#quoteRatePopupWrapper #quoteRatePopup .star{transition:.125s}#quoteRatePopupWrapper #quoteRatePopup i{pointer-events:none}#quoteRatePopupWrapper #quoteRatePopup .star.active{color:#181819}#simplePopupWrapper #simplePopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:400px}#simplePopupWrapper #simplePopup .title{font-size:1.5rem;color:#888}#simplePopupWrapper #simplePopup .inputs{display:grid;gap:1rem}#simplePopupWrapper #simplePopup .text{font-size:1rem;color:#181819}#mobileTestConfigPopupWrapper #mobileTestConfigPopup{background:#f6f6f6;border-radius:.5rem;padding:1rem;display:grid;gap:1rem;width:calc(100vw - 2rem);max-width:400px}#mobileTestConfigPopupWrapper #mobileTestConfigPopup .title{font-size:1.5rem;color:#888}#mobileTestConfigPopupWrapper #mobileTestConfigPopup .inputs{display:grid;gap:1rem}#mobileTestConfigPopupWrapper #mobileTestConfigPopup .text{font-size:1rem;color:#181819}#mobileTestConfigPopupWrapper #mobileTestConfigPopup .group{display:grid;gap:.5rem}#customWordAmountPopupWrapper #customWordAmountPopup,#customWordAmountPopupWrapper #customTestDurationPopup,#customWordAmountPopupWrapper #practiseWordsPopup,#customWordAmountPopupWrapper #pbTablesPopup,#customTestDurationPopupWrapper #customWordAmountPopup,#customTestDurationPopupWrapper #customTestDurationPopup,#customTestDurationPopupWrapper #practiseWordsPopup,#customTestDurationPopupWrapper #pbTablesPopup,#practiseWordsPopupWrapper #customWordAmountPopup,#practiseWordsPopupWrapper #customTestDurationPopup,#practiseWordsPopupWrapper #practiseWordsPopup,#practiseWordsPopupWrapper #pbTablesPopup,#pbTablesPopupWrapper #customWordAmountPopup,#pbTablesPopupWrapper #customTestDurationPopup,#pbTablesPopupWrapper #practiseWordsPopup,#pbTablesPopupWrapper #pbTablesPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:400px}#customWordAmountPopupWrapper #customWordAmountPopup .title,#customWordAmountPopupWrapper #customTestDurationPopup .title,#customWordAmountPopupWrapper #practiseWordsPopup .title,#customWordAmountPopupWrapper #pbTablesPopup .title,#customTestDurationPopupWrapper #customWordAmountPopup .title,#customTestDurationPopupWrapper #customTestDurationPopup .title,#customTestDurationPopupWrapper #practiseWordsPopup .title,#customTestDurationPopupWrapper #pbTablesPopup .title,#practiseWordsPopupWrapper #customWordAmountPopup .title,#practiseWordsPopupWrapper #customTestDurationPopup .title,#practiseWordsPopupWrapper #practiseWordsPopup .title,#practiseWordsPopupWrapper #pbTablesPopup .title,#pbTablesPopupWrapper #customWordAmountPopup .title,#pbTablesPopupWrapper #customTestDurationPopup .title,#pbTablesPopupWrapper #practiseWordsPopup .title,#pbTablesPopupWrapper #pbTablesPopup .title{font-size:1.5rem;color:#888}#customWordAmountPopupWrapper #customWordAmountPopup .tip,#customWordAmountPopupWrapper #customTestDurationPopup .tip,#customWordAmountPopupWrapper #practiseWordsPopup .tip,#customWordAmountPopupWrapper #pbTablesPopup .tip,#customTestDurationPopupWrapper #customWordAmountPopup .tip,#customTestDurationPopupWrapper #customTestDurationPopup .tip,#customTestDurationPopupWrapper #practiseWordsPopup .tip,#customTestDurationPopupWrapper #pbTablesPopup .tip,#practiseWordsPopupWrapper #customWordAmountPopup .tip,#practiseWordsPopupWrapper #customTestDurationPopup .tip,#practiseWordsPopupWrapper #practiseWordsPopup .tip,#practiseWordsPopupWrapper #pbTablesPopup .tip,#pbTablesPopupWrapper #customWordAmountPopup .tip,#pbTablesPopupWrapper #customTestDurationPopup .tip,#pbTablesPopupWrapper #practiseWordsPopup .tip,#pbTablesPopupWrapper #pbTablesPopup .tip{font-size:.75rem;color:#888}#customWordAmountPopupWrapper #customWordAmountPopup .text,#customWordAmountPopupWrapper #customTestDurationPopup .text,#customWordAmountPopupWrapper #practiseWordsPopup .text,#customWordAmountPopupWrapper #pbTablesPopup .text,#customTestDurationPopupWrapper #customWordAmountPopup .text,#customTestDurationPopupWrapper #customTestDurationPopup .text,#customTestDurationPopupWrapper #practiseWordsPopup .text,#customTestDurationPopupWrapper #pbTablesPopup .text,#practiseWordsPopupWrapper #customWordAmountPopup .text,#practiseWordsPopupWrapper #customTestDurationPopup .text,#practiseWordsPopupWrapper #practiseWordsPopup .text,#practiseWordsPopupWrapper #pbTablesPopup .text,#pbTablesPopupWrapper #customWordAmountPopup .text,#pbTablesPopupWrapper #customTestDurationPopup .text,#pbTablesPopupWrapper #practiseWordsPopup .text,#pbTablesPopupWrapper #pbTablesPopup .text{font-size:1rem;color:#181819}#customWordAmountPopupWrapper #customTestDurationPopup .preview,#customTestDurationPopupWrapper #customTestDurationPopup .preview,#practiseWordsPopupWrapper #customTestDurationPopup .preview,#pbTablesPopupWrapper #customTestDurationPopup .preview{font-size:.75rem;color:#888}#googleSignUpPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:400px}#googleSignUpPopup .title{font-size:1.5rem;color:#888}#googleSignUpPopup .inputAndIndicator{position:relative}#googleSignUpPopup .inputAndIndicator input{width:100%}#googleSignUpPopup .inputAndIndicator .checkStatus{width:2.25rem;height:2.25rem;position:absolute;right:0;top:0;display:grid;grid-template-columns:2.25rem;grid-template-rows:2.25rem;place-items:center center;cursor:pointer}#googleSignUpPopup .inputAndIndicator .checkStatus .checking,#googleSignUpPopup .inputAndIndicator .checkStatus .available,#googleSignUpPopup .inputAndIndicator .checkStatus .unavailable,#googleSignUpPopup .inputAndIndicator .checkStatus .taken{grid-column:1/2;grid-row:1/2}#googleSignUpPopup .inputAndIndicator .checkStatus .checking,#googleSignUpPopup .inputAndIndicator .checkStatus .available{color:#888}#googleSignUpPopup .inputAndIndicator .checkStatus .unavailable,#googleSignUpPopup .inputAndIndicator .checkStatus .taken{color:#d33682}#shareTestSettingsPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:500px}#shareTestSettingsPopup .title{font-size:1.5rem;color:#888}#shareTestSettingsPopup .subgroup{padding-left:2rem}#shareTestSettingsPopup .tooLongWarning{font-size:.75rem;color:#d33682}#cookiePopupWrapper .extensionMessage{position:fixed;right:2rem;bottom:2rem;padding:1rem;width:465px;font-size:.75rem}#cookiePopupWrapper #cookiePopup{position:fixed;right:2rem;bottom:2rem;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:465px;z-index:100000001;-webkit-user-select:none;user-select:none}#cookiePopupWrapper #cookiePopup .main{display:grid;gap:1rem}#cookiePopupWrapper #cookiePopup .title{font-size:1.5rem;color:#888}#cookiePopupWrapper #cookiePopup .buttons{margin-top:.25rem;display:grid;grid-auto-flow:column;gap:1rem;grid-template-columns:1fr 2.25rem}#cookiePopupWrapper #cookiePopup .settings{display:grid;gap:1rem}#cookiePopupWrapper #cookiePopup .settings .customTextCheckbox{background:#888}#cookiePopupWrapper #cookiePopup .settings .cookie label{display:grid;gap:0 1rem;grid-template-columns:1fr min-content;grid-template-areas:\"title check\" \"description check\"}#cookiePopupWrapper #cookiePopup .settings .cookie label .title{grid-area:title;font-size:1.25rem}#cookiePopupWrapper #cookiePopup .settings .cookie label .description{grid-area:description}#cookiePopupWrapper #cookiePopup .settings .cookie label .customTextCheckbox{place-self:center;grid-area:check}#cookiePopupWrapper #cookiePopup .settings .cookie.ads label{grid-template-columns:1fr;grid-template-areas:\"title\" \"description\"}#cookiePopupWrapper #cookiePopup .settings .cookie.ads label a{margin-top:.25rem}#videoAdPopupWrapper{display:flex;padding:2rem}#videoAdPopupWrapper #videoAdPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;gap:1rem;width:100%;max-width:1000px;aspect-ratio:16/9;display:grid;grid-template-areas:\"middle\"}#videoAdPopupWrapper #videoAdPopup .preloader{grid-area:middle;display:grid;place-items:center center;gap:1rem;font-size:2rem;color:#888;height:max-content;align-self:center}#videoAdPopupWrapper #videoAdPopup .video{grid-area:middle}#pbTablesPopupWrapper #pbTablesPopup{min-width:50rem;max-height:calc(100vh - 10rem);overflow-y:scroll}#pbTablesPopupWrapper #pbTablesPopup .title{color:#181819}#pbTablesPopupWrapper #pbTablesPopup table{border-spacing:0;border-collapse:collapse;color:#181819}#pbTablesPopupWrapper #pbTablesPopup table td{padding:.5rem}#pbTablesPopupWrapper #pbTablesPopup table thead{color:#888;font-size:.75rem}#pbTablesPopupWrapper #pbTablesPopup table tbody tr:nth-child(odd) td{background:#e2d8be}#pbTablesPopupWrapper #pbTablesPopup table td.infoIcons span{margin:0 .1rem}#pbTablesPopupWrapper #pbTablesPopup table .miniResultChartButton{opacity:.25;transition:.25s;cursor:pointer}#pbTablesPopupWrapper #pbTablesPopup table .miniResultChartButton:hover{opacity:1}#pbTablesPopupWrapper #pbTablesPopup table .sub{opacity:.5}#pbTablesPopupWrapper #pbTablesPopup table td{text-align:right}#pbTablesPopupWrapper #pbTablesPopup table td:nth-child(6),#pbTablesPopupWrapper #pbTablesPopup table td:nth-child(7){text-align:center}#pbTablesPopupWrapper #pbTablesPopup table tbody td:nth-child(1){font-size:1.5rem}#customThemeShareWrapper #customThemeShare{width:50vw;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll}#quoteSearchPopupWrapper .highlight{color:#888}#quoteSearchPopupWrapper #quoteSearchPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:80vw;max-width:1000px;height:80vh;grid-template-rows:auto auto auto 1fr}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchTop{display:flex;justify-content:space-between}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchTop .title{font-size:1.5rem;color:#888}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchTop .buttons{width:33%;display:grid;gap:.5rem}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchTop .buttons .button{width:100%}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchControlsWrapper{display:grid;grid-template-columns:1.5fr 1fr max-content;gap:1rem}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchControlsWrapper #searchBox{width:100%}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchControlsWrapper #toggleShowFavorites{height:100%;display:flex;align-items:center;justify-content:center;padding:.4rem 1rem}#quoteSearchPopupWrapper #quoteSearchPopup #extraResults{text-align:center;color:#888}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults{display:grid;gap:.5rem;height:auto;overflow-y:scroll;align-content:baseline}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult{display:grid;grid-template-columns:1fr 1fr 3fr 0fr 0fr;grid-template-areas:\"text text text text text\" \"id len source report favorite\";grid-auto-rows:auto;width:100%;gap:.5rem;transition:.25s;padding:1rem;box-sizing:border-box;-webkit-user-select:none;user-select:none;cursor:pointer;height:min-content}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .text{grid-area:text;overflow:visible;color:#181819}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .id{grid-area:id;font-size:.8rem;color:#888}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .length{grid-area:len;font-size:.8rem;color:#888}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .source{grid-area:source;font-size:.8rem;color:#888}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .resultChevron{grid-area:chevron;display:flex;align-items:center;justify-items:center;color:#888;font-size:2rem}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .report{grid-area:report;color:#888;transition:.25s}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .report:hover{color:#181819}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .favorite{grid-area:favorite;color:#888;transition:.25s}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .favorite:hover{color:#181819}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .sub{opacity:.5}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult:hover{background:#e2d8be;border-radius:5px}#settingsImportWrapper #settingsImport{width:50vw;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll}#quoteSubmitPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:1000px;grid-template-rows:auto auto auto auto auto auto auto auto auto;height:100%;max-height:40rem;overflow-y:scroll}#quoteSubmitPopup label{color:#888;margin-bottom:-1rem}#quoteSubmitPopup .title{font-size:1.5rem;color:#888}#quoteSubmitPopup textarea{resize:vertical;width:100%;padding:10px;line-height:1.2rem;min-height:5rem}#quoteSubmitPopup .characterCount{position:absolute;top:-1.25rem;right:.25rem;color:#888;-webkit-user-select:none;user-select:none}#quoteSubmitPopup .characterCount.red{color:#d33682}#apeKeysPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;width:1000px;max-width:calc(100vw - 4rem);min-height:18rem;overflow-y:scroll;grid-template-rows:max-content auto;align-items:baseline;gap:1rem}#apeKeysPopup .top{display:grid;grid-template-columns:1fr auto}#apeKeysPopup .top .title{font-size:1.5rem;color:#888}#apeKeysPopup .top .button{padding:.4rem 2rem}#apeKeysPopup .textButton{justify-content:center}#apeKeysPopup .keyButtons{display:grid;grid-auto-flow:column;gap:1rem}#apeKeysPopup .keyButtons .button{width:3rem}#apeKeysPopup table{width:100%;border-spacing:0;border-collapse:collapse}#apeKeysPopup table tr td:first-child{text-align:center}#apeKeysPopup table tr.me td{color:#888}#apeKeysPopup table td{padding:.5rem}#apeKeysPopup table thead{color:#888;font-size:.75rem}#apeKeysPopup table thead td{padding:.5rem;background:#f6f6f6;position:-webkit-sticky;position:sticky;top:0;z-index:99}#apeKeysPopup table tbody{color:#181819}#apeKeysPopup table tbody tr:nth-child(odd) td{background:#e2d8be}#apeKeysPopup table tfoot td{padding:1rem .5rem;position:-webkit-sticky;position:sticky;bottom:-5px;background:#f6f6f6;color:#888;z-index:4}#apeKeysPopup table tr td:first-child{padding-left:1rem}#apeKeysPopup table tr td:last-child{padding-right:1rem}#quoteApprovePopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:1000px;height:80vh;grid-template-rows:auto 1fr}#quoteApprovePopup .top{display:flex;justify-content:space-between}#quoteApprovePopup .top .title{font-size:1.5rem;color:#888}#quoteApprovePopup .top .button{width:33%}#quoteApprovePopup .quotes{display:grid;gap:1rem;height:auto;overflow-y:scroll;align-content:baseline}#quoteApprovePopup .quotes .quote{display:grid;grid-template-columns:1fr auto;grid-auto-rows:auto 2rem;width:100%;gap:1rem;transition:.25s;box-sizing:border-box;-webkit-user-select:none;user-select:none;height:min-content;margin-bottom:1rem}#quoteApprovePopup .quotes .quote .text{grid-column:1/2;grid-row:1/2;overflow:visible;color:#181819;resize:vertical;min-height:4rem}#quoteApprovePopup .quotes .quote .source{grid-column:1/2;grid-row:2/3;color:#181819}#quoteApprovePopup .quotes .quote .buttons{display:flex;flex-direction:column;justify-content:center;margin-right:1rem;grid-column:2/3;grid-row:1/4;color:#888}#quoteApprovePopup .quotes .quote .bottom{display:flex;justify-content:space-around;color:#888}#quoteApprovePopup .quotes .quote .bottom .length.red{color:#d33682}#quoteApprovePopup .quotes .quote .sub{opacity:.5}#quoteApprovePopup .quotes .searchResult:hover{background:#e2d8be;border-radius:5px}#quoteReportPopupWrapper #quoteReportPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;grid-template-rows:auto auto auto auto auto auto auto auto auto;height:auto;max-height:40rem;overflow-y:scroll;width:calc(100% - 4rem);margin-left:2rem;max-width:800px}#quoteReportPopupWrapper #quoteReportPopup label{color:#888;margin-bottom:-1rem}#quoteReportPopupWrapper #quoteReportPopup .quote{font-size:1.5rem}#quoteReportPopupWrapper #quoteReportPopup .title{font-size:1.5rem;color:#888}#quoteReportPopupWrapper #quoteReportPopup textarea{resize:vertical;width:100%;padding:10px;line-height:1.2rem;min-height:5rem}#quoteReportPopupWrapper #quoteReportPopup .characterCount{position:absolute;top:-1.25rem;right:.25rem;color:#888;-webkit-user-select:none;user-select:none}#quoteReportPopupWrapper #quoteReportPopup .characterCount.red{color:#d33682}#resultEditTagsPanelWrapper #resultEditTagsPanel{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll;width:500px}#resultEditTagsPanelWrapper #resultEditTagsPanel .buttons{display:grid;gap:1rem;grid-template-columns:1fr 1fr 1fr}#versionHistoryWrapper{width:100%;height:100%;background:#000000bf;position:fixed;left:0;top:0;z-index:1000;display:grid;justify-content:center;align-items:start;padding:5rem 0}#versionHistoryWrapper #versionHistory{width:75vw;height:100%;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll}#versionHistoryWrapper #versionHistory .tip{text-align:center;color:#888}#versionHistoryWrapper #versionHistory .releases{display:grid;gap:4rem}#versionHistoryWrapper #versionHistory .releases .release{display:grid;grid-template-areas:\"title date\" \"body body\"}#versionHistoryWrapper #versionHistory .releases .release .title{grid-area:title;font-size:2rem;color:#888}#versionHistoryWrapper #versionHistory .releases .release .date{grid-area:date;text-align:right;color:#888;align-self:center}#versionHistoryWrapper #versionHistory .releases .release .body{grid-area:body;color:#181819}#versionHistoryWrapper #versionHistory .releases .release:last-child{margin-bottom:2rem}#supportMeWrapper #supportMe{width:900px;overflow-y:scroll;max-height:100%;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;grid-template-rows:auto auto auto;gap:1rem}#supportMeWrapper #supportMe .title{font-size:1.5rem;color:#888}#supportMeWrapper #supportMe .text{color:#181819}#supportMeWrapper #supportMe .subtext{color:#888;font-size:.75rem}#supportMeWrapper #supportMe .buttons{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}#supportMeWrapper #supportMe .buttons .button{display:block;width:100%;height:100%;padding:1rem 0;display:grid;gap:1rem;text-decoration:none}#supportMeWrapper #supportMe .buttons .button .text{transition:.25s}#supportMeWrapper #supportMe .buttons .button:hover .text{color:#f6f6f6}#supportMeWrapper #supportMe .buttons .button .icon{font-size:3rem;line-height:3rem}#contactPopupWrapper #contactPopup{overflow-y:scroll;max-height:100%;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;grid-template-rows:auto auto auto;gap:1rem;margin:0 2rem;max-width:900px}#contactPopupWrapper #contactPopup .title{font-size:1.5rem;line-height:2rem;color:#888}#contactPopupWrapper #contactPopup .text{color:#181819}#contactPopupWrapper #contactPopup .text span{color:#d33682}#contactPopupWrapper #contactPopup .subtext{color:#888;font-size:.75rem;grid-area:subtext}#contactPopupWrapper #contactPopup .buttons{display:grid;gap:1rem;grid-template-columns:1fr 1fr}#contactPopupWrapper #contactPopup .buttons .button{display:block;width:100%;height:100%;padding:1rem 0;display:grid;text-decoration:none;grid-template-areas:\"icon textgroup\";grid-template-columns:auto 1fr;text-align:left;align-items:center}#contactPopupWrapper #contactPopup .buttons .button .textGroup{grid-area:textgroup}#contactPopupWrapper #contactPopup .buttons .button .text{font-size:1.5rem;line-height:2rem;transition:.25s}#contactPopupWrapper #contactPopup .buttons .button:hover .text{color:#f6f6f6}#contactPopupWrapper #contactPopup .buttons .button .icon{grid-area:icon;font-size:2rem;line-height:2rem;padding:0 1rem}#presetWrapper #presetEdit{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll}#presetWrapper #presetEdit .title{font-size:1.5rem;color:#888}#tagsWrapper #tagsEdit,#tagsWrapper #newResultFilterPresetPopup,#tagsWrapper #editProfilePopup,#newResultFilterPresetPopupWrapper #tagsEdit,#newResultFilterPresetPopupWrapper #newResultFilterPresetPopup,#newResultFilterPresetPopupWrapper #editProfilePopup,#editProfilePopupWrapper #tagsEdit,#editProfilePopupWrapper #newResultFilterPresetPopup,#editProfilePopupWrapper #editProfilePopup{max-height:90vh;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll}#tagsWrapper #tagsEdit .title,#tagsWrapper #newResultFilterPresetPopup .title,#tagsWrapper #editProfilePopup .title,#newResultFilterPresetPopupWrapper #tagsEdit .title,#newResultFilterPresetPopupWrapper #newResultFilterPresetPopup .title,#newResultFilterPresetPopupWrapper #editProfilePopup .title,#editProfilePopupWrapper #tagsEdit .title,#editProfilePopupWrapper #newResultFilterPresetPopup .title,#editProfilePopupWrapper #editProfilePopup .title{font-size:1.5rem;color:#888}#editProfilePopup{width:100%;max-width:600px}#editProfilePopup label{color:#888}#editProfilePopup input{width:100%}#editProfilePopup textarea{resize:vertical;width:100%;padding:10px;line-height:1.2rem;min-height:5rem;max-height:10rem}#editProfilePopup .socialURL{display:flex}#editProfilePopup .socialURL>p{margin-block:.5rem;margin-inline-end:.5rem}#editProfilePopup .badgeSelectionContainer{display:flex;flex-wrap:wrap}#editProfilePopup .badgeSelectionItem{width:max-content;opacity:25%;cursor:pointer;margin-right:.5rem;margin-bottom:.5rem}#editProfilePopup .badgeSelectionItem.selected,#editProfilePopup .badgeSelectionItem:hover{opacity:100%}#customThemesWrapper #customThemesEdit{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll}::ng-deep #timerWrapper{opacity:0;transition:.25s;z-index:-1;position:relative;z-index:99}::ng-deep #timerWrapper #timer{position:fixed;top:0;left:0;width:100vw;height:.5rem;background:#000;z-index:-1}::ng-deep #timerWrapper #timer.timerMain{background:#888}::ng-deep #timerWrapper #timer.timerSub{background:#888}::ng-deep #timerWrapper #timer.timerText{background:#181819}::ng-deep .pageTest{position:relative}::ng-deep .pageTest .ssWatermark{font-size:1.25rem;color:#888;line-height:1rem;text-align:right}::ng-deep .pageTest #timerNumber{pointer-events:none;transition:.25s;color:#000;line-height:0;z-index:-1;text-align:center;left:0;width:100%;position:relative;font-size:10rem;opacity:0;width:0;height:0;margin:0 auto;display:grid;justify-content:center;bottom:6rem;transition:none}::ng-deep .pageTest #largeLiveWpmAndAcc{font-size:10rem;color:#000;width:100%;left:0;text-align:center;z-index:-1;height:0;line-height:0;top:5rem;position:relative;display:grid;grid-auto-flow:column;justify-content:center;gap:5rem;width:0;margin:0 auto}::ng-deep .pageTest #largeLiveWpmAndAcc #liveWpm{opacity:0}::ng-deep .pageTest #largeLiveWpmAndAcc #liveAcc{opacity:0}::ng-deep .pageTest #largeLiveWpmAndAcc #liveBurst{opacity:0}::ng-deep .pageTest #largeLiveWpmAndAcc.timerMain,::ng-deep .pageTest #timerNumber.timerMain{color:#888}::ng-deep .pageTest #timer.timerMain{background:#888}::ng-deep .pageTest #largeLiveWpmAndAcc.timerSub,::ng-deep .pageTest #timerNumber.timerSub{color:#888}::ng-deep .pageTest #timer.timerSub{background:#888}::ng-deep .pageTest #largeLiveWpmAndAcc.timerText,::ng-deep .pageTest #timerNumber.timerText{color:#181819}::ng-deep .pageTest #timer.timerText{background:#181819}::ng-deep #words,::ng-deep .words{height:fit-content;height:-moz-fit-content;display:flex;flex-wrap:wrap;width:100%;align-content:flex-start;-webkit-user-select:none;user-select:none;padding-bottom:1em}::ng-deep #words .newline,::ng-deep .words .newline{width:inherit}::ng-deep #words letter,::ng-deep .words letter{border-bottom-style:solid;border-bottom-width:.05em;border-bottom-color:transparent}::ng-deep #words letter.dead,::ng-deep .words letter.dead{border-bottom-width:.05em;border-bottom-color:#888}::ng-deep #words letter.tabChar,::ng-deep #words letter.nlChar,::ng-deep .words letter.tabChar,::ng-deep .words letter.nlChar{margin:0 .25rem;opacity:.2}::ng-deep #words.rightToLeftTest,::ng-deep .words.rightToLeftTest{direction:rtl}::ng-deep #words.rightToLeftTest .word,::ng-deep .words.rightToLeftTest .word{direction:rtl}::ng-deep #words.withLigatures letter,::ng-deep .words.withLigatures letter{display:inline}::ng-deep #words.blurred,::ng-deep .words.blurred{opacity:.25;filter:blur(4px);-webkit-filter:blur(4px)}::ng-deep #words.flipped .word,::ng-deep .words.flipped .word{color:#181819}::ng-deep #words.flipped .word letter.dead,::ng-deep .words.flipped .word letter.dead{border-bottom-color:#888!important}::ng-deep #words.flipped .word letter.correct,::ng-deep .words.flipped .word letter.correct{color:#888}::ng-deep #words.flipped .word letter.corrected,::ng-deep .words.flipped .word letter.corrected{color:#888;border-bottom:2px dotted #888888}::ng-deep #words.flipped .word letter.extraCorrected,::ng-deep .words.flipped .word letter.extraCorrected{border-right:2px dotted #888888}::ng-deep #words.colorfulMode .word letter.dead,::ng-deep .words.colorfulMode .word letter.dead{border-bottom-color:#888!important}::ng-deep #words.colorfulMode .word letter.correct,::ng-deep .words.colorfulMode .word letter.correct{color:#888}::ng-deep #words.colorfulMode .word letter.corrected,::ng-deep .words.colorfulMode .word letter.corrected{color:#888;border-bottom:2px dotted #181819}::ng-deep #words.colorfulMode .word letter.extraCorrected,::ng-deep .words.colorfulMode .word letter.extraCorrected{border-right:2px dotted #181819}::ng-deep #words.colorfulMode .word letter.incorrect,::ng-deep .words.colorfulMode .word letter.incorrect{color:#d33682}::ng-deep #words.colorfulMode .word letter.incorrect.extra,::ng-deep .words.colorfulMode .word letter.incorrect.extra{color:#9b225c}::ng-deep #words.flipped.colorfulMode .word,::ng-deep .words.flipped.colorfulMode .word{color:#888}::ng-deep #words.flipped.colorfulMode .word letter.dead,::ng-deep .words.flipped.colorfulMode .word letter.dead{border-bottom-color:#888!important}::ng-deep #words.flipped.colorfulMode .word letter.correct,::ng-deep .words.flipped.colorfulMode .word letter.correct{color:#888}::ng-deep #words.flipped.colorfulMode .word letter.corrected,::ng-deep .words.flipped.colorfulMode .word letter.corrected{color:#888;border-bottom:2px dotted #888888}::ng-deep #words.flipped.colorfulMode .word letter.extraCorrected,::ng-deep .words.flipped.colorfulMode .word letter.extraCorrected{border-right:2px dotted #888888}::ng-deep #words.flipped.colorfulMode .word letter.incorrect,::ng-deep .words.flipped.colorfulMode .word letter.incorrect{color:#d33682}::ng-deep #words.flipped.colorfulMode .word letter.incorrect.extra,::ng-deep .words.flipped.colorfulMode .word letter.incorrect.extra{color:#9b225c}::ng-deep #words.tape.size125 .word,::ng-deep .words.tape.size125 .word{margin:.31rem .62rem .31rem 0}::ng-deep #words.tape.size15 .word,::ng-deep .words.tape.size15 .word{margin:.37rem .74rem .37rem 0}::ng-deep #words.tape.size2 .word,::ng-deep .words.tape.size2 .word{margin:.5rem 1rem .5rem 0}::ng-deep #words.tape.size3 .word,::ng-deep .words.tape.size3 .word{margin:.75rem 1.5rem .75rem 0}::ng-deep #words.tape.size4 .word,::ng-deep .words.tape.size4 .word{margin:1rem 2rem 1rem 0}::ng-deep #words.tape.indicateTyposBelow.size125 .word,::ng-deep .words.tape.indicateTyposBelow.size125 .word{margin:.31rem .62rem .93rem 0}::ng-deep #words.tape.indicateTyposBelow.size15 .word,::ng-deep .words.tape.indicateTyposBelow.size15 .word{margin:.37rem .74rem 1.11rem 0}::ng-deep #words.tape.indicateTyposBelow.size2 .word,::ng-deep .words.tape.indicateTyposBelow.size2 .word{margin:.5rem 1rem 1.5rem 0}::ng-deep #words.tape.indicateTyposBelow.size3 .word,::ng-deep .words.tape.indicateTyposBelow.size3 .word{margin:.75rem 1.5rem 2.25rem 0}::ng-deep #words.tape.indicateTyposBelow.size4 .word,::ng-deep .words.tape.indicateTyposBelow.size4 .word{margin:1rem 2rem 3rem 0}::ng-deep .word{margin:.25rem;color:#888;font-variant:no-common-ligatures;border-bottom:2px solid transparent;line-height:1rem}::ng-deep .word letter{display:inline-block}::ng-deep .word.lastbeforenewline:after{font-family:\"Font Awesome 5 Free\";font-weight:600;content:\"\\f107\";margin-left:.5rem;opacity:.25}::ng-deep .word .wordInputAfter{opacity:1;position:absolute;background:#888;color:#f6f6f6;padding:.5rem;margin-left:-.5rem;border-radius:.5rem;transition:.25s;text-shadow:none;top:-.5rem;z-index:10;cursor:text}::ng-deep .word .wordInputAfter .speed{font-size:.75rem}::ng-deep #words.size125 .word{line-height:1.25rem;font-size:max(1.25rem,24px);margin:.31rem}::ng-deep #words.size15 .word{line-height:1.5rem;font-size:max(1.5rem,24px);margin:.37rem}::ng-deep #words.size2 .word{line-height:2rem;font-size:max(2rem,24px);margin:.5rem}::ng-deep #words.size3 .word{line-height:3rem;font-size:max(3rem,24px);margin:.75rem}::ng-deep #words.size4 .word{line-height:4rem;font-size:max(4rem,24px);margin:1rem}::ng-deep #words.nospace .word{margin:.5rem 0}::ng-deep #words.arrows .word{margin:.5rem 0}::ng-deep #words.arrows .word letter{margin:0 .25rem}::ng-deep .word.error{border-bottom:2px solid #d33682;text-shadow:1px 0px 0px #F6F6F6,-1px 0px 0px #F6F6F6,0px 1px 0px #F6F6F6,1px 1px 0px #F6F6F6,-1px 1px 0px #F6F6F6}::ng-deep #words.noErrorBorder .word.error,::ng-deep #resultWordsHistory.noErrorBorder .word.error{text-shadow:none}::ng-deep .word letter.correct{color:#181819}::ng-deep .word letter.corrected{color:#181819;border-bottom:2px dotted #888888}::ng-deep .word letter.extraCorrected{border-right:2px dotted #888888}::ng-deep .word letter.incorrect{color:#d33682;position:relative}::ng-deep .word letter.incorrect hint{position:absolute;bottom:-1em;color:#181819;line-height:initial;font-size:.75em;text-shadow:none;padding:1px;left:0;opacity:.5;text-align:center;width:100%;display:grid;justify-content:center}::ng-deep .word letter.incorrect.extra{color:#9b225c}::ng-deep .word letter.missing{opacity:.5}::ng-deep #words.flipped.colorfulMode .word.error,::ng-deep #words.colorfulMode .word.error{border-bottom:2px solid #d33682}::ng-deep #wordsInput{opacity:0;padding:0;margin:0;border:none;outline:none;display:block;resize:none;position:fixed;z-index:-1;cursor:default;pointer-events:none}::ng-deep #capsWarning{background:#888;color:#f6f6f6;display:table;position:absolute;left:50%;transform:translate(-50%) translateY(-50%);padding:1rem;border-radius:.5rem;transition:.125s;z-index:999;pointer-events:none;top:-2.5rem}::ng-deep #capsWarning i{margin-right:.5rem}::ng-deep #result{display:grid;gap:1rem;align-items:center;grid-template-columns:auto 1fr;grid-template-areas:\"stats chart\" \"morestats morestats\"}::ng-deep #result:focus{outline:none}::ng-deep #result .buttons{display:grid;grid-auto-flow:column;gap:1rem;justify-content:center;grid-column:1/3}::ng-deep #result .ssWatermark{grid-column:1/3}::ng-deep #result #resultWordsHistory,::ng-deep #result #resultReplay{color:#888;margin-bottom:1rem}::ng-deep #result #resultWordsHistory .textButton,::ng-deep #result #resultReplay .textButton{padding:0;margin-left:.5rem}::ng-deep #result #resultWordsHistory .heatmapLegend,::ng-deep #result #resultReplay .heatmapLegend{margin-left:.5rem;display:inline-grid;grid-template-columns:auto auto auto;gap:1rem;font-size:.75rem;color:#888;width:min-content}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes,::ng-deep #result #resultReplay .heatmapLegend .boxes{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes .box,::ng-deep #result #resultReplay .heatmapLegend .boxes .box{height:1rem;color:#f6f6f6;padding:.1rem .5rem;white-space:nowrap;line-height:.75rem;display:grid;place-content:center center}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes .box:nth-child(1),::ng-deep #result #resultReplay .heatmapLegend .boxes .box:nth-child(1){background:#d33682;border-radius:.5rem 0 0 .5rem}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes .box:nth-child(2),::ng-deep #result #resultReplay .heatmapLegend .boxes .box:nth-child(2){background:#d33682;filter:opacity(.6)}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes .box:nth-child(3),::ng-deep #result #resultReplay .heatmapLegend .boxes .box:nth-child(3){background:#888}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes .box:nth-child(4),::ng-deep #result #resultReplay .heatmapLegend .boxes .box:nth-child(4){background:#888;filter:opacity(.6)}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes .box:nth-child(5),::ng-deep #result #resultReplay .heatmapLegend .boxes .box:nth-child(5){background:#888;border-radius:0 .5rem .5rem 0}::ng-deep #result #resultWordsHistory .title,::ng-deep #result #resultReplay .title{-webkit-user-select:none;user-select:none;margin-bottom:.25rem}::ng-deep #result #resultWordsHistory .words,::ng-deep #result #resultReplay .words{display:flex;flex-wrap:wrap;width:100%;align-content:flex-start;-webkit-user-select:none;user-select:none}::ng-deep #result #resultWordsHistory .words .word,::ng-deep #result #resultReplay .words .word{position:relative;margin:.18rem .6rem .15rem 0}::ng-deep #result #resultWordsHistory .words .word letter.correct,::ng-deep #result #resultReplay .words .word letter.correct{color:#181819}::ng-deep #result #resultWordsHistory .words .word letter.incorrect,::ng-deep #result #resultReplay .words .word letter.incorrect{color:#d33682}::ng-deep #result #resultWordsHistory .words .word letter.incorrect.extra,::ng-deep #result #resultReplay .words .word letter.incorrect.extra{color:#9b225c}::ng-deep #result #resultWordsHistory .words .word.heatmap0 letter,::ng-deep #result #resultReplay .words .word.heatmap0 letter{color:#d33682}::ng-deep #result #resultWordsHistory .words .word.heatmap1 letter,::ng-deep #result #resultReplay .words .word.heatmap1 letter{color:#d33682;filter:opacity(.6)}::ng-deep #result #resultWordsHistory .words .word.heatmap2 letter,::ng-deep #result #resultReplay .words .word.heatmap2 letter{color:#888}::ng-deep #result #resultWordsHistory .words .word.heatmap3 letter,::ng-deep #result #resultReplay .words .word.heatmap3 letter{color:#888;filter:opacity(.6)}::ng-deep #result #resultWordsHistory .words .word.heatmap4 letter,::ng-deep #result #resultReplay .words .word.heatmap4 letter{color:#888}::ng-deep #result #resultWordsHistory .words.rightToLeftTest,::ng-deep #result #resultReplay .words.rightToLeftTest{direction:rtl}::ng-deep #result #resultWordsHistory .words.rightToLeftTest .word,::ng-deep #result #resultReplay .words.rightToLeftTest .word{direction:rtl}::ng-deep #result #resultWordsHistory .words.withLigatures letter,::ng-deep #result #resultReplay .words.withLigatures letter{display:inline}::ng-deep #result .chart{grid-area:chart;width:100%;max-height:200px;height:200px}::ng-deep #result .chart canvas{width:100%!important;height:100%}::ng-deep #result .chart .title{color:#888;margin-bottom:1rem}::ng-deep #result .loginTip{grid-column:1/3;text-align:center;color:#888}::ng-deep #result .loginTip .link{text-decoration:underline;display:inline-block;cursor:pointer}::ng-deep #result .stats{grid-area:stats;display:grid;gap:.5rem;justify-content:center;align-items:center;grid-template-areas:\"wpm\" \"acc\"}::ng-deep #result .stats.morestats{display:grid;grid-auto-flow:column;grid-template-areas:none;align-items:flex-start;justify-content:space-between;column-gap:2rem;grid-area:morestats}::ng-deep #result .stats.morestats .subgroup{display:grid;gap:.5rem}::ng-deep #result .stats .group .top{color:#888;font-size:1rem;line-height:1rem;margin-bottom:.25rem}::ng-deep #result .stats .group .bottom{color:#888;font-size:2rem;line-height:2rem}::ng-deep #result .stats .group.time .afk,::ng-deep #result .stats .group.time .timeToday{color:#888;font-size:.75rem;line-height:.75rem;margin-left:.2rem}::ng-deep #result .stats .group.source #rateQuoteButton,::ng-deep #result .stats .group.source #reportQuoteButton,::ng-deep #result .stats .group.source #favoriteQuoteButton{padding:0 .25rem}::ng-deep #result .stats .group.source #rateQuoteButton{display:inline-grid;gap:.25rem}::ng-deep #result .stats .info .top,::ng-deep #result .stats .tags .top,::ng-deep #result .stats .source .top{font-size:1rem;line-height:1rem}::ng-deep #result .stats .info .bottom,::ng-deep #result .stats .tags .bottom,::ng-deep #result .stats .source .bottom{font-size:1rem;line-height:1rem}::ng-deep #result .stats .source{max-width:30rem}::ng-deep #result .stats .tags .bottom .fas{margin-left:.5rem}::ng-deep #result .stats .wpm{grid-area:wpm}::ng-deep #result .stats .wpm .top{font-size:2rem;line-height:1.5rem;display:flex}::ng-deep #result .stats .wpm .top .crown{margin-left:.5rem;margin-top:-.2rem;font-size:.7rem;line-height:1.7rem;background:#888;color:#f6f6f6;border-radius:.6rem;text-align:center;align-self:center;width:1.7rem;height:1.7rem}::ng-deep #result .stats .wpm .bottom{font-size:4rem;line-height:4rem}::ng-deep #result .stats .testType .bottom,::ng-deep #result .stats .leaderboards .bottom{font-size:1rem;line-height:1rem}::ng-deep #result .stats .testType .bottom .lbChange .fas,::ng-deep #result .stats .leaderboards .bottom .lbChange .fas{margin-right:.15rem}::ng-deep #result .stats .acc{grid-area:acc}::ng-deep #result .stats .acc .top{font-size:2rem;line-height:1.5rem}::ng-deep #result .stats .acc .bottom{font-size:4rem;line-height:4rem}::ng-deep #result .stats .burst{grid-area:burst}::ng-deep #result .stats .burst .top{font-size:2rem;line-height:1.5rem}::ng-deep #result .stats .burst .bottom{font-size:4rem;line-height:4rem}::ng-deep #restartTestButton,::ng-deep #showWordHistoryButton,::ng-deep #saveScreenshotButton,::ng-deep #restartTestButtonWithSameWordset,::ng-deep #nextTestButton,::ng-deep #practiseWordsButton,::ng-deep #watchReplayButton,::ng-deep #watchVideoAdButton{position:relative;border-radius:.5rem;padding:1rem 2rem;width:min-content;width:-moz-min-content;color:#888;transition:.125s;cursor:pointer}::ng-deep #restartTestButton:hover,::ng-deep #restartTestButton:focus,::ng-deep #showWordHistoryButton:hover,::ng-deep #showWordHistoryButton:focus,::ng-deep #saveScreenshotButton:hover,::ng-deep #saveScreenshotButton:focus,::ng-deep #restartTestButtonWithSameWordset:hover,::ng-deep #restartTestButtonWithSameWordset:focus,::ng-deep #nextTestButton:hover,::ng-deep #nextTestButton:focus,::ng-deep #practiseWordsButton:hover,::ng-deep #practiseWordsButton:focus,::ng-deep #watchReplayButton:hover,::ng-deep #watchReplayButton:focus,::ng-deep #watchVideoAdButton:hover,::ng-deep #watchVideoAdButton:focus{color:#181819;outline:none}::ng-deep #restartTestButton:focus,::ng-deep #showWordHistoryButton:focus,::ng-deep #saveScreenshotButton:focus,::ng-deep #restartTestButtonWithSameWordset:focus,::ng-deep #nextTestButton:focus,::ng-deep #practiseWordsButton:focus,::ng-deep #watchReplayButton:focus,::ng-deep #watchVideoAdButton:focus{background:#181819;color:#f6f6f6}::ng-deep #retrySavingResultButton{position:relative;border-radius:.5rem;padding:1rem 2rem;color:#d33682;transition:.25s;cursor:pointer;width:max-content;width:-moz-max-content;background:#d33682;color:#f6f6f6;justify-self:center;justify-content:center;margin:0 auto 1rem;-webkit-user-select:none;user-select:none}::ng-deep #retrySavingResultButton:hover,::ng-deep #retrySavingResultButton:focus{background:#181819;outline:none}::ng-deep #retrySavingResultButton:focus{background:#181819}::ng-deep #showWordHistoryButton{opacity:1}::ng-deep #replayWords{cursor:pointer}::ng-deep #replayStopwatch{color:#888;display:inline-block;margin:0 0 0 .5em}::ng-deep #restartTestButton{margin:0 auto;margin-top:1rem}::ng-deep .pageTest #wordsWrapper{position:relative}::ng-deep .pageTest #wordsWrapper.tape{-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0) 1%,rgb(0,0,0) 10%,rgb(0,0,0) 90%,rgba(0,0,0,0) 99%);mask-image:linear-gradient(90deg,#0000 1%,#000 10% 90%,#0000 99%)}::ng-deep .pageTest #memoryTimer{background:#888;color:#f6f6f6;padding:1rem;border-radius:.5rem;text-align:center;width:max-content;left:50%;position:absolute;transform:translate(-50%);top:-6rem;-webkit-user-select:none;user-select:none;pointer-events:none;opacity:0}::ng-deep .pageTest .outOfFocusWarning{text-align:center;height:0;line-height:150px;z-index:999;position:relative;-webkit-user-select:none;user-select:none;pointer-events:none}::ng-deep .pageTest .errorWarning{text-align:center;height:0;line-height:150px;z-index:999;position:relative;-webkit-user-select:auto;user-select:auto}::ng-deep .pageTest #testModesNotice{display:flex;flex-wrap:wrap;color:#888;text-align:center;margin-bottom:.5rem;transition:.125s;justify-content:center;-webkit-user-select:none;user-select:none}::ng-deep .pageTest #testModesNotice .textButton{margin:0 .5rem}::ng-deep .pageTest #testModesNotice .fas{margin-right:.5rem}::ng-deep .pageTest #miniTimerAndLiveWpm{height:0;margin-left:.37rem;display:flex;font-size:1rem;line-height:1.13rem;margin-top:-1.5rem;position:absolute;color:#000;font-weight:700}::ng-deep .pageTest #miniTimerAndLiveWpm .time{margin-right:2rem;margin-top:-2rem}::ng-deep .pageTest #miniTimerAndLiveWpm .wpm,::ng-deep .pageTest #miniTimerAndLiveWpm .acc{margin-right:2rem}::ng-deep .pageTest #miniTimerAndLiveWpm .time,::ng-deep .pageTest #miniTimerAndLiveWpm .wpm,::ng-deep .pageTest #miniTimerAndLiveWpm .acc,::ng-deep .pageTest #miniTimerAndLiveWpm .burst{opacity:0}::ng-deep .pageTest #miniTimerAndLiveWpm.timerMain{color:#00000080}::ng-deep .pageTest #miniTimerAndLiveWpm.timerSub{color:#888}::ng-deep .pageTest #miniTimerAndLiveWpm.timerText{color:#181819}::ng-deep .pageTest #miniTimerAndLiveWpm.size125{margin-top:-1.75rem;font-size:1.38rem;line-height:1.25rem}::ng-deep .pageTest #miniTimerAndLiveWpm.size15{margin-top:-2rem;font-size:1.63rem;line-height:1.5rem}::ng-deep .pageTest #miniTimerAndLiveWpm.size2{margin-top:-2.5rem;font-size:2.13rem;line-height:2rem}::ng-deep .pageTest #miniTimerAndLiveWpm.size3{margin-top:-3.5rem;font-size:3.13rem;line-height:3rem}::ng-deep .pageTest #miniTimerAndLiveWpm.size4{margin-top:-4.5rem;font-size:4.13rem;line-height:4rem}::ng-deep #middle.focus .pageTest #testModesNotice{opacity:0!important}@media only screen and (max-width: 1330px){.ad.ad-v{display:none}#app{grid-template-columns:auto}}@media only screen and (max-width: 1250px){#leaderboardsWrapper #leaderboards .mainTitle{font-size:2rem}#leaderboardsWrapper #leaderboards .title{font-size:1rem}#leaderboardsWrapper #leaderboards .leaderboardsTop{grid-template-columns:auto 1fr max-content}#leaderboardsWrapper #leaderboards .leaderboardsTop .buttonGroup{grid-auto-flow:row;gap:.5rem}#leaderboardsWrapper #leaderboards .tables table .avatarNameBadge .badge .text{display:none}#leaderboardsWrapper #leaderboards .tables table tr td:first-child{padding-left:.25rem}#leaderboardsWrapper #leaderboards .tables table tr td:last-child{padding-right:.25rem}#leaderboardsWrapper #leaderboards .tables table td{padding:.25rem .5rem}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchControlsWrapper{grid-template-columns:1fr 1fr max-content}}@media only screen and (max-width: 1050px){.profile .pbsWords,.profile .pbsTime{font-size:.8rem}.profile .details.bioAndKey .bioAndKeyboard .value{font-size:.75rem}.pageSettings .section.fullWidth .buttons{grid-template-columns:1fr 1fr 1fr}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchControlsWrapper{grid-template-columns:1fr}#result .morestats{gap:1rem;grid-template-rows:1fr 1fr}#supportMe{width:90vw!important}#supportMe .buttons .button .icon{font-size:3rem!important;line-height:3rem!important}#customTextPopup{width:80vw!important}#customTextPopup .wordfilter.button{width:50%!important}}@media only screen and (max-width: 1000px){#quoteRatePopup{width:90vw!important}#bottom .leftright .left{gap:.25rem 1rem;display:grid;grid-template-rows:1fr 1fr;grid-auto-flow:row;grid-template-columns:auto auto auto auto}#bottom .leftright .right{display:grid;grid-template-rows:1fr 1fr;gap:.25rem 1rem}#leaderboardsWrapper #leaderboards .tables table tr td:nth-child(5){display:none}}@media only screen and (max-width: 900px){.ad.ad-h{display:none}.ad.ad-h-s{display:grid}.profile .pbsWords,.profile .pbsTime{font-size:1rem}.profile{grid-template-columns:1fr;grid-template-rows:auto auto auto;grid-template-areas:\"info\" \"pbsTime\" \"pbsWords\"}.profile .details.soc{grid-template-columns:1.25fr auto 1fr auto auto}.profile .details.soc .typingStats{grid-template-columns:1fr}.profile .details.bioAndKey{grid-template-columns:1.25fr auto auto auto 1fr}.profile .details.bioAndKey .typingStats{grid-template-columns:1fr}.profile .details.both{grid-template-columns:1.25fr auto 1.25fr auto;grid-template-areas:\"avAndName sep2 bioAndKey bioAndKey\" \"typingStats typingStats typingStats socials\"}.profile .details.both .sep1,.profile .details.both .sep3{display:none}.profile .details.both .typingStats{grid-template-columns:1fr 1fr 1fr;width:100%}.profile .details.both .socials{justify-content:start}.profile .details.both .socials .title{display:block}.profile .details.both .socials .value{grid-auto-flow:column}.profile .details.none{grid-template-columns:1fr auto 1fr}.profile .details.none .typingStats{grid-template-columns:1fr}#leaderboards .mainTitle{font-size:1.5rem!important}#bannerCenter .banner .container{grid-template-columns:1fr auto}#bannerCenter .banner .container .image,#bannerCenter .banner .container .lefticon,#bannerCenter .banner .container .righticon{display:none}#bannerCenter .banner .container .text{margin-left:1.5rem;text-align:left;justify-self:start}.merchBanner img{display:none}.merchBanner .text{padding:.25rem 0}.pageSettings .section.autoSwitchThemeInputs{grid-template-columns:1fr 3fr}.pageAccount .group.personalBestTables .tables{grid-template-columns:1fr}.pageAccount .group.history table thead td:nth-child(1),.pageAccount .group.history table thead td:nth-child(8),.pageAccount .group.history table thead td:nth-child(9),.pageAccount .group.history table tbody td:nth-child(1),.pageAccount .group.history table tbody td:nth-child(8),.pageAccount .group.history table tbody td:nth-child(9){display:none}}@media only screen and (max-width: 800px){.pageSettings .settingsGroup.quickNav .links{grid-auto-flow:unset;grid-template-columns:1fr 1fr 1fr;justify-items:center}#centerContent #top{grid-template-areas:\"logo config\" \"menu config\";grid-template-columns:auto auto}#centerContent #top .logo{margin-bottom:0}#centerContent #menu{gap:.5rem;font-size:.8rem;line-height:.8rem;margin-top:-.5rem}#centerContent #menu .textButton{padding:.25rem}#contactPopupWrapper #contactPopup .buttons{grid-template-columns:1fr}.pageAbout .section .contributors,.pageAbout .section .supporters{grid-template-columns:1fr 1fr 1fr}.pageAbout .section .contactButtons,.pageAbout .section .supportButtons{grid-template-columns:1fr 1fr}.pageSettings .section.customBackgroundFilter .groups{grid-template-columns:1fr}.pageSettings .section.customBackgroundFilter .saveContainer{grid-column:-1/-2}#commandLine,#commandLineInput{width:600px!important}#leaderboardsWrapper #leaderboards .leaderboardsTop{flex-direction:column;align-items:baseline;grid-template-areas:\"title title\" \"subtitle subtitle\" \"yesterday yesterday\" \"buttons buttons\";grid-template-columns:1fr}#leaderboardsWrapper #leaderboards .leaderboardsTop .buttons{margin-top:.5rem}#leaderboardsWrapper #leaderboards .leaderboardsTop .buttonGroup{grid-auto-flow:column}#leaderboardsWrapper #leaderboards .leaderboardsTop .showYesterdayButton{margin-left:0}#leaderboardsWrapper #leaderboards .tables{grid-template-columns:unset}#leaderboardsWrapper #leaderboards .tables table .avatarNameBadge .badge .text{display:block}#leaderboardsWrapper #leaderboards .tables table tr td:last-child{width:30%}#leaderboardsWrapper #leaderboards .tables .rightTableWrapper,#leaderboardsWrapper #leaderboards .tables .leftTableWrapper{height:calc(50vh - 10rem)}}@media only screen and (max-width: 700px){.pageAccount .presetFilterButtons .buttons{grid-template-columns:1fr}.pageAccount .triplegroup{grid-template-columns:1fr 1fr}.pageAccount .triplegroup .emptygroup{display:none}.pageAccount .group.chart .below{grid-template-columns:1fr;gap:.5rem}.pageAccount .group.topFilters .buttonsAndTitle .buttons{display:grid;justify-content:unset}.pageAccount .group.history table thead td:nth-child(6),.pageAccount .group.history table tbody td:nth-child(6){display:none}.badge:after,.badge:before{display:none}}@media only screen and (max-width: 650px){.profile{grid-template-columns:1fr;grid-template-rows:auto auto auto;grid-template-areas:\"info\" \"pbsTime\" \"pbsWords\"}.profile .details.none{grid-template-areas:\"avAndName\" \"typingStats\";grid-template-columns:1fr}.profile .details.none .separator{display:none}.profile .details.none .typingStats{grid-template-columns:1fr 1fr 1fr}.profile .details.bioAndKey{grid-template-areas:\"avAndName bioAndKey\" \"typingStats typingStats\";grid-template-columns:1fr 1fr}.profile .details.bioAndKey .separator{display:none}.profile .details.bioAndKey .typingStats{grid-template-columns:1fr 1fr 1fr}.profile .details.soc{grid-template-areas:\"avAndName\" \"typingStats\" \"socials\";grid-template-columns:1fr}.profile .details.soc .separator{display:none}.profile .details.soc .typingStats{grid-template-columns:1fr 1fr 1fr}.profile .details.soc .socials{justify-content:start}.profile .details.soc .socials .title{display:block}.profile .details.soc .socials .value{grid-auto-flow:column}.profile .details.both{grid-template-areas:\"avAndName bioAndKey\" \"typingStats typingStats\" \"socials socials\";grid-template-columns:1fr 1fr}.profile .details.both .separator{display:none}.profile .details.both .typingStats{grid-template-columns:1fr 1fr 1fr}.profile .details.both .socials{justify-content:start}.profile .details.both .socials .title{display:block}.profile .details.both .socials .value{grid-auto-flow:column}#quoteRatePopup .ratingStats{grid-template-columns:1fr 1fr!important}#quoteRatePopup .quote{grid-template-areas:\"text text text\" \"source source source\" \"id length length\"!important}.pageSettings .section{grid-template-columns:1fr;grid-template-areas:\"title\" \"text\" \"buttons\"}.pageSettings .section>.text{margin-bottom:1rem}#result .buttons{grid-template-rows:1fr 1fr 1fr}#result .buttons #nextTestButton{grid-column:1/5;width:100%;text-align:center}#supportMe{width:80vw!important}#supportMe .buttons{grid-template-columns:none!important}#supportMe .buttons .button{grid-template-columns:auto 1fr;align-items:center}#supportMe .buttons .button .icon{font-size:2rem!important;line-height:2rem!important;margin-left:2rem}.pageSettings .section.fullWidth .buttons{grid-template-columns:1fr 1fr}}@media only screen and (max-width: 600px){.pageAbout .section .supporters,.pageAbout .section .contributors{grid-template-columns:1fr 1fr}#top .logo .bottom{margin-top:0}.pageLogin{display:grid;gap:5rem;grid-auto-flow:unset}#middle #result{grid-template-areas:\"stats stats\" \"chart chart\" \"morestats morestats\"}#middle #result .stats{grid-template-areas:\"wpm acc\";gap:2rem}#middle #result .stats.morestats{grid-template-rows:1fr 1fr 1fr;gap:1rem}#leaderboardsWrapper #leaderboards .leaderboardsTop .buttonGroup{grid-auto-flow:row}#commandLine,#commandLineInput{width:500px!important}#customTextPopupWrapper #customTextPopup .wordfilter.button{width:100%!important;justify-self:auto}#customTextPopupWrapper #customTextPopup .inputs{display:flex!important;flex-direction:column;justify-content:flex-start}.pageAccount .group.history table thead td:nth-child(7),.pageAccount .group.history table thead td:nth-child(5),.pageAccount .group.history table tbody td:nth-child(7),.pageAccount .group.history table tbody td:nth-child(5){display:none}}@media only screen and (max-width: 550px){.profile .pbsWords,.profile .pbsTime{font-size:.9rem}.profile .pbsWords,.profile .pbsTime{grid-template-columns:1fr 1fr}.profile .details.none .typingStats{grid-template-columns:1fr}.profile .details.bioAndKey{grid-template-areas:\"avAndName\" \"bioAndKey\" \"typingStats\";grid-template-columns:1fr}.profile .details.bioAndKey .typingStats{grid-template-columns:1fr}.profile .details.both{grid-template-areas:\"avAndName\" \"bioAndKey\" \"typingStats\" \"socials\";grid-template-columns:1fr}.profile .details.both .typingStats{grid-template-columns:1fr}#cookiePopupWrapper #cookiePopup,#cookiePopupWrapper .extensionMessage{right:1rem;bottom:1rem;width:calc(100vw - 2rem)}#contactPopupWrapper #contactPopup .buttons .button .text{font-size:1rem}#contactPopupWrapper #contactPopup .buttons .button .icon{font-size:1.5rem;line-height:1.5rem}#contactPopupWrapper #contactPopup{padding:1rem}.pageAbout .section .supporters,.pageAbout .section .contributors{grid-template-columns:1fr}#simplePopupWrapper #simplePopup{width:90vw}#quoteReportPopup{width:calc(100% - 2rem);margin-left:1rem;max-width:800px;padding:1rem}.pageSettings .settingsGroup.quickNav{display:none}.pageSettings .section.fullWidth .buttons{grid-template-columns:1fr}.pageSettings .section .buttons{grid-auto-flow:row}.pageSettings .section.customBackgroundFilter .groups .group{grid-template-columns:auto 1fr}.pageSettings .section.customBackgroundFilter .groups .group .title{grid-column:1/3}.pageAbout .section .contactButtons,.pageAbout .section .supportButtons,.pageAccount .triplegroup{grid-template-columns:1fr}.pageAccount .group.history table thead td:nth-child(3),.pageAccount .group.history table tbody td:nth-child(3){display:none}#top{align-items:self-end}#top .logo .icon{width:1.5rem!important}#top .logo .text{font-size:1.5rem!important;margin-bottom:.3rem!important}#top .logo .bottom{font-size:1.75rem;line-height:1.75rem;margin-top:0}#top .logo .top{display:none}#top #menu .textButton{padding:0}#bottom .leftright .left{gap:.25rem 1rem;display:grid;grid-template-rows:1fr 1fr 1fr;grid-template-columns:auto auto auto;grid-auto-flow:row}#bottom .leftright .right{display:grid;grid-template-rows:1fr 1fr 1fr;gap:.25rem 1rem}#centerContent{padding:1rem}#centerContent #top{grid-template-columns:1fr auto}#centerContent #top .desktopConfig{display:none}#centerContent #top .mobileConfig{display:block}#middle #result .stats{grid-template-areas:\"wpm\" \"acc\";gap:1rem}#result .buttons{grid-template-rows:1fr 1fr 1fr 1fr}#result .buttons #nextTestButton{grid-column:1/3;width:100%;text-align:center}#commandLine,#commandLineInput{width:400px!important}#leaderboardsWrapper #leaderboards{width:85vw}#leaderboardsWrapper #leaderboards .tables .rightTableWrapper,#leaderboardsWrapper #leaderboards .tables .leftTableWrapper{height:calc(50vh - 10rem)}#leaderboardsWrapper #leaderboards .tables{grid-template-columns:unset}#leaderboardsWrapper #leaderboards .tables table .avatarNameBadge .badge .text{display:block}#leaderboardsWrapper #leaderboards .tables table tr td:nth-child(4){display:none}}@media only screen and (max-width: 400px){#top .config{grid-gap:.25rem}#top .config .group .buttons{font-size:.65rem;line-height:.65rem}#bottom{font-size:.65rem}#bottom .leftright{grid-template-columns:1fr 1fr}#bottom .leftright .left{grid-template-rows:1fr 1fr 1fr 1fr;grid-template-columns:1fr 1fr;grid-auto-flow:row}#bottom .leftright .right{grid-template-rows:1fr 1fr 1fr 1fr;gap:.25rem 1rem}#commandLine,#commandLineInput{width:300px!important}#leaderboardsWrapper #leaderboards .tables .titleAndTable .titleAndButtons{grid-template-columns:unset}#leaderboardsWrapper #leaderboards .tables table tr td:first-child{padding-left:.25rem}#leaderboardsWrapper #leaderboards .tables table tr td:last-child{padding-right:.25rem}#leaderboardsWrapper #leaderboards .tables table td{padding:.25rem}#leaderboardsWrapper #leaderboards .tables .rightTableWrapper,#leaderboardsWrapper #leaderboards .tables .leftTableWrapper{height:calc(50vh - 9rem)}}@media only screen and (max-width: 350px){.ad.ad-h-s{display:none}.pageLogin .side input{width:90vw}.page404 .content,.page404 .content .image{width:100%}.page404 .content .big{font-size:7rem;line-height:7rem}}@media (hover: none) and (pointer: coarse){#commandLineMobileButton{display:block!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [
|
|
184
|
-
trigger('fadeIn', [
|
|
185
|
-
state('show', style({ opacity: 1 })),
|
|
186
|
-
state('hide', style({ opacity: 0 })),
|
|
187
|
-
transition('show => hide', [
|
|
188
|
-
animate('125ms')
|
|
189
|
-
]),
|
|
190
|
-
transition('hide => show', [
|
|
191
|
-
animate('125ms')
|
|
192
|
-
])
|
|
193
|
-
]),
|
|
194
|
-
trigger('updatePositionCaret', [
|
|
195
|
-
state('true', style({
|
|
196
|
-
top: '{{caretTopPos}}px',
|
|
197
|
-
left: '{{caretLeftPos}}px'
|
|
198
|
-
}), {
|
|
199
|
-
params: { caretTopPos: 0, caretLeftPos: 0 }
|
|
200
|
-
}),
|
|
201
|
-
state('false', style({
|
|
202
|
-
top: '{{caretTopPos}}px',
|
|
203
|
-
left: '{{caretLeftPos}}px'
|
|
204
|
-
}), {
|
|
205
|
-
params: { caretTopPos: 0, caretLeftPos: 0 }
|
|
206
|
-
}),
|
|
207
|
-
transition('true => false', [
|
|
208
|
-
animate('100ms')
|
|
209
|
-
]),
|
|
210
|
-
transition('false => true', [
|
|
211
|
-
animate('100ms')
|
|
212
|
-
])
|
|
213
|
-
])
|
|
214
|
-
] });
|
|
215
|
-
}
|
|
216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TgoTypingTestComponent, decorators: [{
|
|
217
|
-
type: Component,
|
|
218
|
-
args: [{ selector: 'tgo-typing-test', standalone: true, imports: [CommonModule], animations: [
|
|
219
|
-
trigger('fadeIn', [
|
|
220
|
-
state('show', style({ opacity: 1 })),
|
|
221
|
-
state('hide', style({ opacity: 0 })),
|
|
222
|
-
transition('show => hide', [
|
|
223
|
-
animate('125ms')
|
|
224
|
-
]),
|
|
225
|
-
transition('hide => show', [
|
|
226
|
-
animate('125ms')
|
|
227
|
-
])
|
|
228
|
-
]),
|
|
229
|
-
trigger('updatePositionCaret', [
|
|
230
|
-
state('true', style({
|
|
231
|
-
top: '{{caretTopPos}}px',
|
|
232
|
-
left: '{{caretLeftPos}}px'
|
|
233
|
-
}), {
|
|
234
|
-
params: { caretTopPos: 0, caretLeftPos: 0 }
|
|
235
|
-
}),
|
|
236
|
-
state('false', style({
|
|
237
|
-
top: '{{caretTopPos}}px',
|
|
238
|
-
left: '{{caretLeftPos}}px'
|
|
239
|
-
}), {
|
|
240
|
-
params: { caretTopPos: 0, caretLeftPos: 0 }
|
|
241
|
-
}),
|
|
242
|
-
transition('true => false', [
|
|
243
|
-
animate('100ms')
|
|
244
|
-
]),
|
|
245
|
-
transition('false => true', [
|
|
246
|
-
animate('100ms')
|
|
247
|
-
])
|
|
248
|
-
])
|
|
249
|
-
], template: "<div id=\"centerContent\">\n <div id=\"middle\" #middle>\n <div class=\"page pageTest active\">\n <div id=\"typingTest\">\n <div id=\"capsWarning\" [ngClass]=\"{ hidden: (showCaps$ | async) === false }\" #capsWarning>\n Caps Lock\n </div>\n <div id=\"memoryTimer\">Time left to memorise all words: 0s</div>\n <div id=\"testModesNotice\"></div>\n <input\n id=\"wordsInput\"\n class=\"\"\n tabindex=\"0\"\n type=\"text\"\n autocomplete=\"off\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n data-gramm=\"false\"\n data-gramm_editor=\"false\"\n data-enable-grammarly=\"false\"\n list=\"autocompleteOff\"\n (keyup)=\"wordsInputKeyup($event)\"\n (beforeinput)=\"wordsInputBeforeinput($event)\"\n (input)=\"wordsInputInput($event)\"\n (focus)=\"wordsInputFocus($event)\"\n (focusout)=\"wordsInputFocusOut()\"\n (copy)=\"wordsInputCopy($event)\"\n (paste)=\"wordsInputPaste($event)\"\n (compositionstart)=\"wordsInputCompositionstart()\"\n (compositionend)=\"wordsInputCompositionend()\"\n #wordsInput\n />\n @if (showMiniTimerAndLiveWpm) {\n <div id=\"miniTimerAndLiveWpm\" class=\"timerMain size2\">\n <div class=\"time\" [@fadeIn]=\"(showTimer$ | async) ? 'show' : 'hide'\">\n {{ timeLeft$ | async }}\n </div>\n <div class=\"wpm hidden\">60</div>\n <div class=\"acc hidden\">100%</div>\n <div class=\"burst hidden\">1</div>\n </div>\n }\n \n @if (outOfFocusShow$ | async) {\n <div class=\"outOfFocusWarning\">\n Click or press any key to focus\n </div>\n }\n \n @if (errorEvent | async; as errorMessage) {\n <div class=\"errorWarning\"> \n {{ errorMessage }} Reload the page or <a href=\"https://candidates.testgorilla.com/hc/en-us/requests/new\" target=\"_blank\">contact support</a>.\n </div>\n }\n \n <div id=\"wordsWrapper\" translate=\"no\" #wordsWrapper (click)=\"wordsWrapperClick()\">\n <div id=\"paceCaret\" class=\"default size2 hidden\"></div>\n @if (showCaret$ | async) {\n <div id=\"caret\" [@updatePositionCaret]=\"{\n value: state,\n params: { caretTopPos: caretTop, caretLeftPos: caretLeft }\n }\" \n [ngStyle]=\"{ 'animation-name': (caretAnimation$ | async) }\" class=\"default size2\">\n </div>\n }\n <div id=\"words\" class=\"size2\" #words [ngClass]=\"{ blurred: (outOfFocusShow$ | async) }\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n ", styles: ["@import\"https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@600&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inconsolata:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Titillium+Web:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Lexend+Deca:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Oxygen:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Itim:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Comfortaa:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Coming+Soon:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Lalezar:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Noto+Naskh+Arabic:wght@300;400;700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;700&display=swap\";@keyframes loader{0%{width:0;left:0}50%{width:100%;left:0}to{width:0;left:100%}}@keyframes caretFlashSmooth{0%,to{opacity:0}50%{opacity:1}}@keyframes caretFlashHard{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes flashKey{0%{color:#f6f6f6;background-color:#888;border-color:#888}to{color:#888;background-color:#f6f6f6;border-color:#888}}@keyframes shake{0%{transform:translate(2px) rotate(0)}50%{transform:translate(-2px) rotate(0)}to{transform:translate(2px) rotate(0)}}@keyframes flashHighlight{0%{background-color:#f6f6f6}10%{background-color:#888}40%{background-color:#888}to{background-color:#f6f6f6}}@keyframes rgb-bg{0%{background:#4cae4c}20%{background:#409eb5}40%{background:#8134f4}60%{background:#f10e19}80%{background:#ffc505}to{background:#4cae4c}}#caret,#caret.outline,#paceCaret.outline{height:1.5rem;background:#dc322f;animation:caretFlashSmooth 1s infinite;position:absolute;border-radius:.5rem;transform-origin:top left}#paceCaret{height:1.5rem;background:#888;opacity:.5;position:absolute;border-radius:.5rem;transform-origin:top left;width:2px}#caret.off,#paceCaret.off{width:0}#caret.default,#paceCaret.default{width:2px}#caret.block,#caret.outline,#paceCaret.block,#paceCaret.outline{width:.7em;border-radius:0;z-index:-1}#caret.outline,#paceCaret.outline{animation-name:none;background:transparent;border:1px solid #dc322f}#caret.block,#caret.outline,#caret.underline,#paceCaret.block,#paceCaret.outline,#paceCaret.underline{margin-left:.1rem}#caret.block.size15,#caret.outline.size15,#caret.underline.size15,#paceCaret.block.size15,#paceCaret.outline.size15,#paceCaret.underline.size15{margin-left:.15rem}#caret.block.size2,#caret.outline.size2,#caret.underline.size2,#paceCaret.block.size2,#paceCaret.outline.size2,#paceCaret.underline.size2{margin-left:.2rem}#caret.block.size3,#caret.outline.size3,#caret.underline.size3,#paceCaret.block.size3,#paceCaret.outline.size3,#paceCaret.underline.size3{margin-left:.25em}#caret.block.size4,#caret.outline.size4,#caret.underline.size4,#paceCaret.block.size4,#paceCaret.outline.size4,#paceCaret.underline.size4{margin-left:.3rem}#caret.underline,#paceCaret.underline{height:2px;width:.8em;margin-top:1.3em}#caret.underline.size125,#paceCaret.underline.size125{margin-top:1.8em}#caret.underline.size15,#paceCaret.underline.size15{margin-top:2.1em}#caret.underline.size2,#paceCaret.underline.size2{margin-top:2.7em}#caret.underline.size3,#paceCaret.underline.size3{margin-top:3.9em}#caret.underline.size4,#paceCaret.underline.size4{margin-top:5em}#caret.size125,#paceCaret.size125{transform:scale(1.25)}#caret.size15,#paceCaret.size15{transform:scale(1.45)}#caret.size2,#paceCaret.size2{transform:scale(1.9)}#caret.size3,#paceCaret.size3{transform:scale(2.8)}#caret.size4,#paceCaret.size4{transform:scale(3.7)}::ng-deep :host{scroll-padding-top:2rem;font-weight:600}::ng-deep ::placeholder{color:#888;opacity:1}::ng-deep #app{display:grid;grid-template-columns:auto minmax(0,1000px) auto;justify-items:center}::ng-deep #app.wide125{grid-template-columns:auto minmax(0,1250px) auto}::ng-deep #app.wide150{grid-template-columns:auto minmax(0,1500px) auto}::ng-deep #app.wide200{grid-template-columns:auto minmax(0,2000px) auto}::ng-deep #app.widemax{grid-template-columns:auto minmax(0,1fr) auto}::ng-deep #nocss{display:none!important;pointer-events:none}::ng-deep .ffscroll,::ng-deep #contactPopupWrapper #contactPopup,#contactPopupWrapper ::ng-deep #contactPopup,::ng-deep #supportMeWrapper #supportMe,#supportMeWrapper ::ng-deep #supportMe,::ng-deep #versionHistoryWrapper #versionHistory,#versionHistoryWrapper ::ng-deep #versionHistory,::ng-deep html{scrollbar-width:thin;scrollbar-color:#888888 transparent}::ng-deep html{overflow-y:scroll}::ng-deep a{display:inline-block;color:#888;transition:.25s}::ng-deep a:hover{color:#181819}::ng-deep a[data-link] *{pointer-events:none}::ng-deep a.button{text-decoration:none}::ng-deep #centerContent{margin:0;padding:0;min-height:300px;font-family:Roboto Mono,Vazirmatn;color:#181819;overflow-x:hidden;border:1px solid #E0E0E0}::ng-deep .customBackground{content:\"\";width:100vw;height:100vh;position:fixed;left:0;top:0;background-position:center center;background-repeat:no-repeat;z-index:-999;justify-content:center;align-items:center;display:flex}::ng-deep #backgroundLoader{height:3px;position:fixed;width:100%;background:#888;animation:loader 2s cubic-bezier(.38,.16,.57,.82) infinite;z-index:9999}::ng-deep label.checkbox span{display:block;font-size:.76rem;color:#888;margin-left:1.5rem}::ng-deep label.checkbox input{margin:0!important;cursor:pointer;width:0;height:0;display:none;-webkit-user-select:none;user-select:none}::ng-deep label.checkbox input~.customTextCheckbox{width:1.25rem;height:1.25rem;background:#e2d8be;border-radius:.25rem;display:inline-grid;margin:0 .5rem 0 0;-webkit-user-select:none;user-select:none;cursor:pointer}::ng-deep label.checkbox input~.customTextCheckbox .check{opacity:0;color:#888;transition:.125s}::ng-deep label.checkbox input:checked~.customTextCheckbox .check{opacity:1}::ng-deep #centerContent{display:grid;grid-auto-flow:row;padding:10rem 2rem 2rem;gap:2rem;align-items:center;z-index:999;grid-template-rows:auto 1fr auto;width:100%;transition:padding-top .125s}::ng-deep #centerContent.wide125{max-width:1250px}::ng-deep #centerContent.wide150{max-width:1500px}::ng-deep #centerContent.wide200{max-width:2000px}::ng-deep #centerContent.widemax{max-width:unset}::ng-deep #key{color:#f6f6f6;background-color:#888;padding:.3rem;margin:0rem .5rem;border-radius:.1rem;display:inline-block;font-size:.7rem;line-height:.7rem}::ng-deep .pageLoading{display:grid;justify-content:center}::ng-deep .pageLoading .preloader,::ng-deep .pageAccount .preloader{text-align:center;justify-self:center;display:grid}::ng-deep .pageLoading .preloader .barWrapper,::ng-deep .pageAccount .preloader .barWrapper{display:grid;gap:1rem;grid-row:1;grid-column:1}::ng-deep .pageLoading .preloader .barWrapper .bar,::ng-deep .pageAccount .preloader .barWrapper .bar{width:20rem;height:.5rem;background:#e2d8be;border-radius:.5rem}::ng-deep .pageLoading .preloader .barWrapper .bar .fill,::ng-deep .pageAccount .preloader .barWrapper .bar .fill{height:100%;width:0%;background:#888;border-radius:.5rem}::ng-deep .pageLoading .preloader .icon,::ng-deep .pageAccount .preloader .icon{grid-row:1;grid-column:1;font-size:2rem;color:#888;margin-bottom:1rem}::ng-deep .devIndicator{position:fixed;font-size:3rem;color:#888;opacity:.25;z-index:-1}::ng-deep .devIndicator.tl{top:2rem;left:2rem}::ng-deep .devIndicator.tr{top:2rem;right:2rem}::ng-deep .devIndicator.bl{bottom:2rem;left:2rem}::ng-deep .devIndicator.br{bottom:2rem;right:2rem}::ng-deep *{box-sizing:border-box}::ng-deep .hidden{display:none!important}::ng-deep .invisible{opacity:0!important;pointer-events:none!important}::ng-deep .button{color:#181819;cursor:pointer;transition:background .125s,color .125s;padding:.5rem;border-radius:.5rem;background:#e2d8be;text-align:center;user-select:none;-webkit-user-select:none;align-content:center;height:min-content;height:-moz-min-content;line-height:1.25rem;appearance:none;border:none;font-family:inherit;font-size:1rem}::ng-deep .button.active{background:#888;color:#f6f6f6}::ng-deep .button.active:hover{background:#181819}::ng-deep .button.active:active{background:#888;color:#f6f6f6}::ng-deep .button.disabled{opacity:.33;cursor:default;pointer-events:none}::ng-deep .button.disabled:hover{background:#181819;outline:none}::ng-deep .button.disabled:active{background:#888;color:#f6f6f6}::ng-deep .button:hover{color:#f6f6f6;background:#181819;outline:none}::ng-deep .button:focus{outline:2px solid #181819}::ng-deep .button:active{background:#888;color:#f6f6f6}::ng-deep .textButton{color:#888;cursor:pointer;transition:background .125s,color .125s;padding:.5rem;border-radius:.5rem;text-align:center;user-select:none;-webkit-user-select:none;align-content:center;height:min-content;height:-moz-min-content;line-height:1.25rem;appearance:none;border:none;font-family:inherit;font-size:1rem;width:max-content;width:-moz-max-content;display:grid;grid-auto-flow:column;gap:.25rem;text-decoration:none}::ng-deep .textButton .fas,::ng-deep .textButton .far{display:grid;place-content:center center}::ng-deep .textButton.active{color:#888}::ng-deep .textButton.active:hover{color:#181819}::ng-deep .textButton.active:active{color:#888}::ng-deep .textButton.disabled{opacity:.33;cursor:default;pointer-events:none}::ng-deep .textButton.disabled:hover{background:#181819;outline:none}::ng-deep .textButton.disabled:active{background:#888;color:#f6f6f6}::ng-deep .textButton:hover{color:#181819}::ng-deep .textButton:focus{color:#181819;outline:none}::ng-deep .textButton:active{color:#888}::ng-deep .scrollToTopButton{bottom:2rem;right:2rem;position:fixed;font-size:2rem;width:4rem;height:4rem;text-align:center;line-height:4rem;background:#e2d8be;border-radius:99rem;z-index:99;cursor:pointer;color:#888;transition:.25s}::ng-deep .scrollToTopButton:hover{background:#181819;color:#f6f6f6}::ng-deep .inputAndIndicator{position:relative}::ng-deep .inputAndIndicator input{width:100%}::ng-deep .inputAndIndicator .statusIndicator{width:2.25rem;height:2.25rem;position:absolute;right:0;top:0;display:grid;grid-template-columns:2.25rem;grid-template-rows:2.25rem;place-items:center center;cursor:pointer}::ng-deep .inputAndIndicator .statusIndicator .indicator{grid-column:1/2;grid-row:1/2}::ng-deep .inputAndIndicator .statusIndicator .indicator.level-1{color:#d33682}::ng-deep .inputAndIndicator .statusIndicator .indicator.level0{color:#888}::ng-deep .inputAndIndicator .statusIndicator .indicator.level1{color:#888}::ng-deep .configureAPI.button{position:fixed;left:2rem;bottom:2rem;display:grid;grid-auto-flow:column;gap:.5rem;text-decoration:none;z-index:999999999}::ng-deep .avatar{transition:opacity .125s,filter .125s,webkit-filter .125s;width:1.25rem;height:1.25rem;border-radius:100%;background-position:center center;background-size:contain;background-repeat:no-repeat}::ng-deep .badge{background:#888;color:#181819;border-radius:.25rem;-webkit-user-select:none;user-select:none;display:grid;grid-template-columns:max-content auto;align-items:baseline}::ng-deep .badge .fas,::ng-deep .badge .far{margin:.15rem .3rem;font-size:.9em}::ng-deep .badge .text{margin-top:.15rem;margin-bottom:.15rem;margin-right:.3rem}input,textarea{outline:none;border:none;border-radius:.5rem;background:#e2d8be;color:#181819;padding:.5rem;font-size:1rem;font-family:Roboto Mono,Vazirmatn;caret-color:#888}textarea{resize:vertical}input[type=range]{-webkit-appearance:none;padding:0;width:100%;height:1rem;border-radius:.5rem}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;padding:0;border:none;width:25%;height:1rem;border-radius:.5rem;background-color:#888}input[type=range]::-webkit-slider-thumb:hover{cursor:grab}input[type=range]::-webkit-slider-thumb:active{cursor:grabbing}input[type=range]::-moz-range-thumb{-webkit-appearance:none;padding:0;border:none;width:25%;height:1rem;border-radius:.5rem;background-color:#888}input[type=range]::-moz-range-thumb:hover{cursor:grab}input[type=range]::-moz-range-thumb:active{cursor:grabbing}input[type=color]{height:3px;opacity:0;padding:0;margin:0;position:absolute;pointer-events:none}input:disabled,textarea:disabled{opacity:.33}::-moz-color-swatch{border:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,textarea:-webkit-autofill,textarea:-webkit-autofill:hover,textarea:-webkit-autofill:focus,select:-webkit-autofill,select:-webkit-autofill:hover,select:-webkit-autofill:focus{border:none;outline:2px solid #888888;font-family:inherit;-webkit-text-fill-color:#181819;-webkit-box-shadow:0 0 0 1000000px #e2d8be inset;caret-color:#181819}.select2-dropdown{background-color:#f6f6f6;color:#181819;outline:none}.select2-container--default.select2-container--disabled .select2-selection--single{background:#e2d8be!important;opacity:.33;cursor:default;pointer-events:none}.select2-selection{background:#e2d8be;height:fit-content;height:-moz-fit-content;padding:5px;border-radius:.5rem;color:#181819;font:\"Roboto Mono\",\"Vazirmatn\";border:none;outline:none}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#181819;outline:none}.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background-color:#181819;color:#f6f6f6}.select2-container--default .select2-results__option--selected{background-color:#888;color:#f6f6f6}.select2-container--open .select2-dropdown--below,.select2-container--open .select2-dropdown--above{border-color:#e2d8be;background:#f6f6f6;color:#888;border-radius:.5rem}.select2-container--default .select2-selection--single{color:#181819;background:#e2d8be;outline:none;border:none;height:auto;border-radius:.5rem}.select2-container--default.select2-container--disabled .select2-selection--single{background:#5051517a}.select2-selection:focus{height:fit-content;height:-moz-fit-content;padding:5px;border-radius:.5rem;color:#181819;font:\"Roboto Mono\",\"Vazirmatn\";border:none;outline:none}.select2-selection:active{height:fit-content;height:-moz-fit-content;padding:5px;border-radius:.5rem;color:#181819;font:\"Roboto Mono\",\"Vazirmatn\";border:none;outline:none}.select2-container--default .select2-selection--single .select2-selection__arrow{height:35px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#181819 transparent transparent transparent}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:#181819 transparent}.select2-container--default .select2-search--dropdown .select2-search__field{border-color:#e2d8be;background:#f6f6f6;color:#181819;border-radius:.5rem}.select2-container--default .select2-results__group{color:#181819}.select2-container--default .select2-selection--multiple{background:#e2d8be;border-radius:.5rem;color:#181819;outline:none;border:none}.select2-selection__choice__display{color:#f6f6f6}.select2-selection__choice__remove{color:#888!important}.select2-container .select2-search--inline .select2-search__field{margin:0;border-radius:0;font-family:Roboto Mono,Vazirmatn;line-height:1rem}.select2-container--default.select2-container--focus .select2-selection--multiple{border:none}.select2-container--default .select2-selection--multiple{border:none;padding:.5rem;font-family:Roboto Mono,Vazirmatn}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#888;border:none;border-radius:.25rem;box-sizing:border-box;display:inline-block;margin-left:0;margin-top:0;margin-right:.5rem;padding:0;padding-left:1.25rem;position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{line-height:1.5rem;border-right:1px solid #F6F6F6;color:#f6f6f6!important;transition:.125s}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{background-color:#181819}.popupWrapper{width:100%;height:100%;background:#000000bf;position:fixed;left:0;top:0;z-index:1000;display:grid;justify-content:center;align-items:center;padding:2rem 0}#customTextPopupWrapper #customTextPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:60vw}#customTextPopupWrapper #customTextPopup .buttonsTop{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}#customTextPopupWrapper #customTextPopup .savedTexts{display:grid;gap:.5rem}#customTextPopupWrapper #customTextPopup .savedTexts .title{color:#888}#customTextPopupWrapper #customTextPopup .savedTexts .buttons{display:grid;grid-template-columns:1fr 1fr;gap:1rem}#customTextPopupWrapper #customTextPopup textarea{background:#e2d8be;padding:1rem;color:#888;border:none;outline:none;font-size:1rem;font-family:Roboto Mono,Vazirmatn;width:100%;border-radius:.5rem;resize:vertical;height:200px;color:#181819;overflow-x:hidden;overflow-y:scroll}#customTextPopupWrapper #customTextPopup .inputs{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:center;justify-items:left}#customTextPopupWrapper #customTextPopup .randomInputFields{display:grid;grid-template-columns:1fr auto 1fr;text-align:center;align-items:center;width:100%;gap:1rem}#savedTextsPopupWrapper #savedTextsPopup{color:#888;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:400px;max-height:80vh;overflow:auto}#savedTextsPopupWrapper #savedTextsPopup .title{font-size:1.5rem;color:#888}#savedTextsPopupWrapper #savedTextsPopup .list{display:grid;gap:1rem}#savedTextsPopupWrapper #savedTextsPopup .list .savedText{display:grid;gap:.5rem;grid-template-columns:1fr 3rem}#savedTextsPopupWrapper #savedTextsPopup .list .savedText .button .fas{pointer-events:none}#wordFilterPopupWrapper #wordFilterPopup{color:#888;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:400px}#wordFilterPopupWrapper #wordFilterPopup input{width:100%}#wordFilterPopupWrapper #wordFilterPopup .group{display:grid;gap:.5rem}#wordFilterPopupWrapper #wordFilterPopup .lengthgrid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr;column-gap:1rem}#wordFilterPopupWrapper #wordFilterPopup .tip{color:#888;font-size:.8rem}#wordFilterPopupWrapper #wordFilterPopup .loadingIndicator{justify-self:center}#quoteRatePopupWrapper #quoteRatePopup{color:#888;background:#f6f6f6;border-radius:.5rem;padding:2rem;gap:2rem;width:800px;display:grid;grid-template-areas:\"warning warning warning\" \"spacer2 spacer2 spacer2\" \"ratingStats ratingStats submitButton\" \"spacer spacer spacer\" \"quote quote quote\";grid-template-columns:auto 1fr;color:#181819}#quoteRatePopupWrapper #quoteRatePopup .warning{grid-area:warning}#quoteRatePopupWrapper #quoteRatePopup .warning span{color:#d33682}#quoteRatePopupWrapper #quoteRatePopup .spacer,#quoteRatePopupWrapper #quoteRatePopup .spacer2{grid-area:spacer;width:100%;height:.1rem;border-radius:.5rem;background:#888;opacity:.25}#quoteRatePopupWrapper #quoteRatePopup .spacer2{grid-area:spacer2}#quoteRatePopupWrapper #quoteRatePopup .submitButton{font-size:2rem;grid-area:submitButton;color:#888}#quoteRatePopupWrapper #quoteRatePopup .submitButton:hover{color:#181819}#quoteRatePopupWrapper #quoteRatePopup .top{color:#888;font-size:.8rem}#quoteRatePopupWrapper #quoteRatePopup .ratingStats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;grid-area:ratingStats}#quoteRatePopupWrapper #quoteRatePopup .ratingStats .top{font-size:1rem}#quoteRatePopupWrapper #quoteRatePopup .ratingStats .val{font-size:2.25rem}#quoteRatePopupWrapper #quoteRatePopup .quote{display:grid;grid-area:quote;gap:1rem;grid-template-areas:\"text text text\" \"id length source\";grid-template-columns:1fr 1fr 3fr}#quoteRatePopupWrapper #quoteRatePopup .quote .text{grid-area:text}#quoteRatePopupWrapper #quoteRatePopup .quote .id{grid-area:id}#quoteRatePopupWrapper #quoteRatePopup .quote .length{grid-area:length}#quoteRatePopupWrapper #quoteRatePopup .quote .source{grid-area:source}#quoteRatePopupWrapper #quoteRatePopup .stars{display:grid;color:#888;font-size:2rem;grid-template-columns:auto auto auto auto auto;justify-content:flex-start;align-items:center;cursor:pointer}#quoteRatePopupWrapper #quoteRatePopup .star{transition:.125s}#quoteRatePopupWrapper #quoteRatePopup i{pointer-events:none}#quoteRatePopupWrapper #quoteRatePopup .star.active{color:#181819}#simplePopupWrapper #simplePopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:400px}#simplePopupWrapper #simplePopup .title{font-size:1.5rem;color:#888}#simplePopupWrapper #simplePopup .inputs{display:grid;gap:1rem}#simplePopupWrapper #simplePopup .text{font-size:1rem;color:#181819}#mobileTestConfigPopupWrapper #mobileTestConfigPopup{background:#f6f6f6;border-radius:.5rem;padding:1rem;display:grid;gap:1rem;width:calc(100vw - 2rem);max-width:400px}#mobileTestConfigPopupWrapper #mobileTestConfigPopup .title{font-size:1.5rem;color:#888}#mobileTestConfigPopupWrapper #mobileTestConfigPopup .inputs{display:grid;gap:1rem}#mobileTestConfigPopupWrapper #mobileTestConfigPopup .text{font-size:1rem;color:#181819}#mobileTestConfigPopupWrapper #mobileTestConfigPopup .group{display:grid;gap:.5rem}#customWordAmountPopupWrapper #customWordAmountPopup,#customWordAmountPopupWrapper #customTestDurationPopup,#customWordAmountPopupWrapper #practiseWordsPopup,#customWordAmountPopupWrapper #pbTablesPopup,#customTestDurationPopupWrapper #customWordAmountPopup,#customTestDurationPopupWrapper #customTestDurationPopup,#customTestDurationPopupWrapper #practiseWordsPopup,#customTestDurationPopupWrapper #pbTablesPopup,#practiseWordsPopupWrapper #customWordAmountPopup,#practiseWordsPopupWrapper #customTestDurationPopup,#practiseWordsPopupWrapper #practiseWordsPopup,#practiseWordsPopupWrapper #pbTablesPopup,#pbTablesPopupWrapper #customWordAmountPopup,#pbTablesPopupWrapper #customTestDurationPopup,#pbTablesPopupWrapper #practiseWordsPopup,#pbTablesPopupWrapper #pbTablesPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:400px}#customWordAmountPopupWrapper #customWordAmountPopup .title,#customWordAmountPopupWrapper #customTestDurationPopup .title,#customWordAmountPopupWrapper #practiseWordsPopup .title,#customWordAmountPopupWrapper #pbTablesPopup .title,#customTestDurationPopupWrapper #customWordAmountPopup .title,#customTestDurationPopupWrapper #customTestDurationPopup .title,#customTestDurationPopupWrapper #practiseWordsPopup .title,#customTestDurationPopupWrapper #pbTablesPopup .title,#practiseWordsPopupWrapper #customWordAmountPopup .title,#practiseWordsPopupWrapper #customTestDurationPopup .title,#practiseWordsPopupWrapper #practiseWordsPopup .title,#practiseWordsPopupWrapper #pbTablesPopup .title,#pbTablesPopupWrapper #customWordAmountPopup .title,#pbTablesPopupWrapper #customTestDurationPopup .title,#pbTablesPopupWrapper #practiseWordsPopup .title,#pbTablesPopupWrapper #pbTablesPopup .title{font-size:1.5rem;color:#888}#customWordAmountPopupWrapper #customWordAmountPopup .tip,#customWordAmountPopupWrapper #customTestDurationPopup .tip,#customWordAmountPopupWrapper #practiseWordsPopup .tip,#customWordAmountPopupWrapper #pbTablesPopup .tip,#customTestDurationPopupWrapper #customWordAmountPopup .tip,#customTestDurationPopupWrapper #customTestDurationPopup .tip,#customTestDurationPopupWrapper #practiseWordsPopup .tip,#customTestDurationPopupWrapper #pbTablesPopup .tip,#practiseWordsPopupWrapper #customWordAmountPopup .tip,#practiseWordsPopupWrapper #customTestDurationPopup .tip,#practiseWordsPopupWrapper #practiseWordsPopup .tip,#practiseWordsPopupWrapper #pbTablesPopup .tip,#pbTablesPopupWrapper #customWordAmountPopup .tip,#pbTablesPopupWrapper #customTestDurationPopup .tip,#pbTablesPopupWrapper #practiseWordsPopup .tip,#pbTablesPopupWrapper #pbTablesPopup .tip{font-size:.75rem;color:#888}#customWordAmountPopupWrapper #customWordAmountPopup .text,#customWordAmountPopupWrapper #customTestDurationPopup .text,#customWordAmountPopupWrapper #practiseWordsPopup .text,#customWordAmountPopupWrapper #pbTablesPopup .text,#customTestDurationPopupWrapper #customWordAmountPopup .text,#customTestDurationPopupWrapper #customTestDurationPopup .text,#customTestDurationPopupWrapper #practiseWordsPopup .text,#customTestDurationPopupWrapper #pbTablesPopup .text,#practiseWordsPopupWrapper #customWordAmountPopup .text,#practiseWordsPopupWrapper #customTestDurationPopup .text,#practiseWordsPopupWrapper #practiseWordsPopup .text,#practiseWordsPopupWrapper #pbTablesPopup .text,#pbTablesPopupWrapper #customWordAmountPopup .text,#pbTablesPopupWrapper #customTestDurationPopup .text,#pbTablesPopupWrapper #practiseWordsPopup .text,#pbTablesPopupWrapper #pbTablesPopup .text{font-size:1rem;color:#181819}#customWordAmountPopupWrapper #customTestDurationPopup .preview,#customTestDurationPopupWrapper #customTestDurationPopup .preview,#practiseWordsPopupWrapper #customTestDurationPopup .preview,#pbTablesPopupWrapper #customTestDurationPopup .preview{font-size:.75rem;color:#888}#googleSignUpPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:400px}#googleSignUpPopup .title{font-size:1.5rem;color:#888}#googleSignUpPopup .inputAndIndicator{position:relative}#googleSignUpPopup .inputAndIndicator input{width:100%}#googleSignUpPopup .inputAndIndicator .checkStatus{width:2.25rem;height:2.25rem;position:absolute;right:0;top:0;display:grid;grid-template-columns:2.25rem;grid-template-rows:2.25rem;place-items:center center;cursor:pointer}#googleSignUpPopup .inputAndIndicator .checkStatus .checking,#googleSignUpPopup .inputAndIndicator .checkStatus .available,#googleSignUpPopup .inputAndIndicator .checkStatus .unavailable,#googleSignUpPopup .inputAndIndicator .checkStatus .taken{grid-column:1/2;grid-row:1/2}#googleSignUpPopup .inputAndIndicator .checkStatus .checking,#googleSignUpPopup .inputAndIndicator .checkStatus .available{color:#888}#googleSignUpPopup .inputAndIndicator .checkStatus .unavailable,#googleSignUpPopup .inputAndIndicator .checkStatus .taken{color:#d33682}#shareTestSettingsPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:500px}#shareTestSettingsPopup .title{font-size:1.5rem;color:#888}#shareTestSettingsPopup .subgroup{padding-left:2rem}#shareTestSettingsPopup .tooLongWarning{font-size:.75rem;color:#d33682}#cookiePopupWrapper .extensionMessage{position:fixed;right:2rem;bottom:2rem;padding:1rem;width:465px;font-size:.75rem}#cookiePopupWrapper #cookiePopup{position:fixed;right:2rem;bottom:2rem;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:465px;z-index:100000001;-webkit-user-select:none;user-select:none}#cookiePopupWrapper #cookiePopup .main{display:grid;gap:1rem}#cookiePopupWrapper #cookiePopup .title{font-size:1.5rem;color:#888}#cookiePopupWrapper #cookiePopup .buttons{margin-top:.25rem;display:grid;grid-auto-flow:column;gap:1rem;grid-template-columns:1fr 2.25rem}#cookiePopupWrapper #cookiePopup .settings{display:grid;gap:1rem}#cookiePopupWrapper #cookiePopup .settings .customTextCheckbox{background:#888}#cookiePopupWrapper #cookiePopup .settings .cookie label{display:grid;gap:0 1rem;grid-template-columns:1fr min-content;grid-template-areas:\"title check\" \"description check\"}#cookiePopupWrapper #cookiePopup .settings .cookie label .title{grid-area:title;font-size:1.25rem}#cookiePopupWrapper #cookiePopup .settings .cookie label .description{grid-area:description}#cookiePopupWrapper #cookiePopup .settings .cookie label .customTextCheckbox{place-self:center;grid-area:check}#cookiePopupWrapper #cookiePopup .settings .cookie.ads label{grid-template-columns:1fr;grid-template-areas:\"title\" \"description\"}#cookiePopupWrapper #cookiePopup .settings .cookie.ads label a{margin-top:.25rem}#videoAdPopupWrapper{display:flex;padding:2rem}#videoAdPopupWrapper #videoAdPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;gap:1rem;width:100%;max-width:1000px;aspect-ratio:16/9;display:grid;grid-template-areas:\"middle\"}#videoAdPopupWrapper #videoAdPopup .preloader{grid-area:middle;display:grid;place-items:center center;gap:1rem;font-size:2rem;color:#888;height:max-content;align-self:center}#videoAdPopupWrapper #videoAdPopup .video{grid-area:middle}#pbTablesPopupWrapper #pbTablesPopup{min-width:50rem;max-height:calc(100vh - 10rem);overflow-y:scroll}#pbTablesPopupWrapper #pbTablesPopup .title{color:#181819}#pbTablesPopupWrapper #pbTablesPopup table{border-spacing:0;border-collapse:collapse;color:#181819}#pbTablesPopupWrapper #pbTablesPopup table td{padding:.5rem}#pbTablesPopupWrapper #pbTablesPopup table thead{color:#888;font-size:.75rem}#pbTablesPopupWrapper #pbTablesPopup table tbody tr:nth-child(odd) td{background:#e2d8be}#pbTablesPopupWrapper #pbTablesPopup table td.infoIcons span{margin:0 .1rem}#pbTablesPopupWrapper #pbTablesPopup table .miniResultChartButton{opacity:.25;transition:.25s;cursor:pointer}#pbTablesPopupWrapper #pbTablesPopup table .miniResultChartButton:hover{opacity:1}#pbTablesPopupWrapper #pbTablesPopup table .sub{opacity:.5}#pbTablesPopupWrapper #pbTablesPopup table td{text-align:right}#pbTablesPopupWrapper #pbTablesPopup table td:nth-child(6),#pbTablesPopupWrapper #pbTablesPopup table td:nth-child(7){text-align:center}#pbTablesPopupWrapper #pbTablesPopup table tbody td:nth-child(1){font-size:1.5rem}#customThemeShareWrapper #customThemeShare{width:50vw;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll}#quoteSearchPopupWrapper .highlight{color:#888}#quoteSearchPopupWrapper #quoteSearchPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:80vw;max-width:1000px;height:80vh;grid-template-rows:auto auto auto 1fr}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchTop{display:flex;justify-content:space-between}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchTop .title{font-size:1.5rem;color:#888}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchTop .buttons{width:33%;display:grid;gap:.5rem}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchTop .buttons .button{width:100%}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchControlsWrapper{display:grid;grid-template-columns:1.5fr 1fr max-content;gap:1rem}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchControlsWrapper #searchBox{width:100%}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchControlsWrapper #toggleShowFavorites{height:100%;display:flex;align-items:center;justify-content:center;padding:.4rem 1rem}#quoteSearchPopupWrapper #quoteSearchPopup #extraResults{text-align:center;color:#888}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults{display:grid;gap:.5rem;height:auto;overflow-y:scroll;align-content:baseline}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult{display:grid;grid-template-columns:1fr 1fr 3fr 0fr 0fr;grid-template-areas:\"text text text text text\" \"id len source report favorite\";grid-auto-rows:auto;width:100%;gap:.5rem;transition:.25s;padding:1rem;box-sizing:border-box;-webkit-user-select:none;user-select:none;cursor:pointer;height:min-content}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .text{grid-area:text;overflow:visible;color:#181819}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .id{grid-area:id;font-size:.8rem;color:#888}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .length{grid-area:len;font-size:.8rem;color:#888}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .source{grid-area:source;font-size:.8rem;color:#888}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .resultChevron{grid-area:chevron;display:flex;align-items:center;justify-items:center;color:#888;font-size:2rem}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .report{grid-area:report;color:#888;transition:.25s}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .report:hover{color:#181819}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .favorite{grid-area:favorite;color:#888;transition:.25s}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .favorite:hover{color:#181819}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult .sub{opacity:.5}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchResults .searchResult:hover{background:#e2d8be;border-radius:5px}#settingsImportWrapper #settingsImport{width:50vw;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll}#quoteSubmitPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:1000px;grid-template-rows:auto auto auto auto auto auto auto auto auto;height:100%;max-height:40rem;overflow-y:scroll}#quoteSubmitPopup label{color:#888;margin-bottom:-1rem}#quoteSubmitPopup .title{font-size:1.5rem;color:#888}#quoteSubmitPopup textarea{resize:vertical;width:100%;padding:10px;line-height:1.2rem;min-height:5rem}#quoteSubmitPopup .characterCount{position:absolute;top:-1.25rem;right:.25rem;color:#888;-webkit-user-select:none;user-select:none}#quoteSubmitPopup .characterCount.red{color:#d33682}#apeKeysPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;width:1000px;max-width:calc(100vw - 4rem);min-height:18rem;overflow-y:scroll;grid-template-rows:max-content auto;align-items:baseline;gap:1rem}#apeKeysPopup .top{display:grid;grid-template-columns:1fr auto}#apeKeysPopup .top .title{font-size:1.5rem;color:#888}#apeKeysPopup .top .button{padding:.4rem 2rem}#apeKeysPopup .textButton{justify-content:center}#apeKeysPopup .keyButtons{display:grid;grid-auto-flow:column;gap:1rem}#apeKeysPopup .keyButtons .button{width:3rem}#apeKeysPopup table{width:100%;border-spacing:0;border-collapse:collapse}#apeKeysPopup table tr td:first-child{text-align:center}#apeKeysPopup table tr.me td{color:#888}#apeKeysPopup table td{padding:.5rem}#apeKeysPopup table thead{color:#888;font-size:.75rem}#apeKeysPopup table thead td{padding:.5rem;background:#f6f6f6;position:-webkit-sticky;position:sticky;top:0;z-index:99}#apeKeysPopup table tbody{color:#181819}#apeKeysPopup table tbody tr:nth-child(odd) td{background:#e2d8be}#apeKeysPopup table tfoot td{padding:1rem .5rem;position:-webkit-sticky;position:sticky;bottom:-5px;background:#f6f6f6;color:#888;z-index:4}#apeKeysPopup table tr td:first-child{padding-left:1rem}#apeKeysPopup table tr td:last-child{padding-right:1rem}#quoteApprovePopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;width:1000px;height:80vh;grid-template-rows:auto 1fr}#quoteApprovePopup .top{display:flex;justify-content:space-between}#quoteApprovePopup .top .title{font-size:1.5rem;color:#888}#quoteApprovePopup .top .button{width:33%}#quoteApprovePopup .quotes{display:grid;gap:1rem;height:auto;overflow-y:scroll;align-content:baseline}#quoteApprovePopup .quotes .quote{display:grid;grid-template-columns:1fr auto;grid-auto-rows:auto 2rem;width:100%;gap:1rem;transition:.25s;box-sizing:border-box;-webkit-user-select:none;user-select:none;height:min-content;margin-bottom:1rem}#quoteApprovePopup .quotes .quote .text{grid-column:1/2;grid-row:1/2;overflow:visible;color:#181819;resize:vertical;min-height:4rem}#quoteApprovePopup .quotes .quote .source{grid-column:1/2;grid-row:2/3;color:#181819}#quoteApprovePopup .quotes .quote .buttons{display:flex;flex-direction:column;justify-content:center;margin-right:1rem;grid-column:2/3;grid-row:1/4;color:#888}#quoteApprovePopup .quotes .quote .bottom{display:flex;justify-content:space-around;color:#888}#quoteApprovePopup .quotes .quote .bottom .length.red{color:#d33682}#quoteApprovePopup .quotes .quote .sub{opacity:.5}#quoteApprovePopup .quotes .searchResult:hover{background:#e2d8be;border-radius:5px}#quoteReportPopupWrapper #quoteReportPopup{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;grid-template-rows:auto auto auto auto auto auto auto auto auto;height:auto;max-height:40rem;overflow-y:scroll;width:calc(100% - 4rem);margin-left:2rem;max-width:800px}#quoteReportPopupWrapper #quoteReportPopup label{color:#888;margin-bottom:-1rem}#quoteReportPopupWrapper #quoteReportPopup .quote{font-size:1.5rem}#quoteReportPopupWrapper #quoteReportPopup .title{font-size:1.5rem;color:#888}#quoteReportPopupWrapper #quoteReportPopup textarea{resize:vertical;width:100%;padding:10px;line-height:1.2rem;min-height:5rem}#quoteReportPopupWrapper #quoteReportPopup .characterCount{position:absolute;top:-1.25rem;right:.25rem;color:#888;-webkit-user-select:none;user-select:none}#quoteReportPopupWrapper #quoteReportPopup .characterCount.red{color:#d33682}#resultEditTagsPanelWrapper #resultEditTagsPanel{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll;width:500px}#resultEditTagsPanelWrapper #resultEditTagsPanel .buttons{display:grid;gap:1rem;grid-template-columns:1fr 1fr 1fr}#versionHistoryWrapper{width:100%;height:100%;background:#000000bf;position:fixed;left:0;top:0;z-index:1000;display:grid;justify-content:center;align-items:start;padding:5rem 0}#versionHistoryWrapper #versionHistory{width:75vw;height:100%;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll}#versionHistoryWrapper #versionHistory .tip{text-align:center;color:#888}#versionHistoryWrapper #versionHistory .releases{display:grid;gap:4rem}#versionHistoryWrapper #versionHistory .releases .release{display:grid;grid-template-areas:\"title date\" \"body body\"}#versionHistoryWrapper #versionHistory .releases .release .title{grid-area:title;font-size:2rem;color:#888}#versionHistoryWrapper #versionHistory .releases .release .date{grid-area:date;text-align:right;color:#888;align-self:center}#versionHistoryWrapper #versionHistory .releases .release .body{grid-area:body;color:#181819}#versionHistoryWrapper #versionHistory .releases .release:last-child{margin-bottom:2rem}#supportMeWrapper #supportMe{width:900px;overflow-y:scroll;max-height:100%;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;grid-template-rows:auto auto auto;gap:1rem}#supportMeWrapper #supportMe .title{font-size:1.5rem;color:#888}#supportMeWrapper #supportMe .text{color:#181819}#supportMeWrapper #supportMe .subtext{color:#888;font-size:.75rem}#supportMeWrapper #supportMe .buttons{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}#supportMeWrapper #supportMe .buttons .button{display:block;width:100%;height:100%;padding:1rem 0;display:grid;gap:1rem;text-decoration:none}#supportMeWrapper #supportMe .buttons .button .text{transition:.25s}#supportMeWrapper #supportMe .buttons .button:hover .text{color:#f6f6f6}#supportMeWrapper #supportMe .buttons .button .icon{font-size:3rem;line-height:3rem}#contactPopupWrapper #contactPopup{overflow-y:scroll;max-height:100%;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;grid-template-rows:auto auto auto;gap:1rem;margin:0 2rem;max-width:900px}#contactPopupWrapper #contactPopup .title{font-size:1.5rem;line-height:2rem;color:#888}#contactPopupWrapper #contactPopup .text{color:#181819}#contactPopupWrapper #contactPopup .text span{color:#d33682}#contactPopupWrapper #contactPopup .subtext{color:#888;font-size:.75rem;grid-area:subtext}#contactPopupWrapper #contactPopup .buttons{display:grid;gap:1rem;grid-template-columns:1fr 1fr}#contactPopupWrapper #contactPopup .buttons .button{display:block;width:100%;height:100%;padding:1rem 0;display:grid;text-decoration:none;grid-template-areas:\"icon textgroup\";grid-template-columns:auto 1fr;text-align:left;align-items:center}#contactPopupWrapper #contactPopup .buttons .button .textGroup{grid-area:textgroup}#contactPopupWrapper #contactPopup .buttons .button .text{font-size:1.5rem;line-height:2rem;transition:.25s}#contactPopupWrapper #contactPopup .buttons .button:hover .text{color:#f6f6f6}#contactPopupWrapper #contactPopup .buttons .button .icon{grid-area:icon;font-size:2rem;line-height:2rem;padding:0 1rem}#presetWrapper #presetEdit{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll}#presetWrapper #presetEdit .title{font-size:1.5rem;color:#888}#tagsWrapper #tagsEdit,#tagsWrapper #newResultFilterPresetPopup,#tagsWrapper #editProfilePopup,#newResultFilterPresetPopupWrapper #tagsEdit,#newResultFilterPresetPopupWrapper #newResultFilterPresetPopup,#newResultFilterPresetPopupWrapper #editProfilePopup,#editProfilePopupWrapper #tagsEdit,#editProfilePopupWrapper #newResultFilterPresetPopup,#editProfilePopupWrapper #editProfilePopup{max-height:90vh;background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll}#tagsWrapper #tagsEdit .title,#tagsWrapper #newResultFilterPresetPopup .title,#tagsWrapper #editProfilePopup .title,#newResultFilterPresetPopupWrapper #tagsEdit .title,#newResultFilterPresetPopupWrapper #newResultFilterPresetPopup .title,#newResultFilterPresetPopupWrapper #editProfilePopup .title,#editProfilePopupWrapper #tagsEdit .title,#editProfilePopupWrapper #newResultFilterPresetPopup .title,#editProfilePopupWrapper #editProfilePopup .title{font-size:1.5rem;color:#888}#editProfilePopup{width:100%;max-width:600px}#editProfilePopup label{color:#888}#editProfilePopup input{width:100%}#editProfilePopup textarea{resize:vertical;width:100%;padding:10px;line-height:1.2rem;min-height:5rem;max-height:10rem}#editProfilePopup .socialURL{display:flex}#editProfilePopup .socialURL>p{margin-block:.5rem;margin-inline-end:.5rem}#editProfilePopup .badgeSelectionContainer{display:flex;flex-wrap:wrap}#editProfilePopup .badgeSelectionItem{width:max-content;opacity:25%;cursor:pointer;margin-right:.5rem;margin-bottom:.5rem}#editProfilePopup .badgeSelectionItem.selected,#editProfilePopup .badgeSelectionItem:hover{opacity:100%}#customThemesWrapper #customThemesEdit{background:#f6f6f6;border-radius:.5rem;padding:2rem;display:grid;gap:1rem;overflow-y:scroll}::ng-deep #timerWrapper{opacity:0;transition:.25s;z-index:-1;position:relative;z-index:99}::ng-deep #timerWrapper #timer{position:fixed;top:0;left:0;width:100vw;height:.5rem;background:#000;z-index:-1}::ng-deep #timerWrapper #timer.timerMain{background:#888}::ng-deep #timerWrapper #timer.timerSub{background:#888}::ng-deep #timerWrapper #timer.timerText{background:#181819}::ng-deep .pageTest{position:relative}::ng-deep .pageTest .ssWatermark{font-size:1.25rem;color:#888;line-height:1rem;text-align:right}::ng-deep .pageTest #timerNumber{pointer-events:none;transition:.25s;color:#000;line-height:0;z-index:-1;text-align:center;left:0;width:100%;position:relative;font-size:10rem;opacity:0;width:0;height:0;margin:0 auto;display:grid;justify-content:center;bottom:6rem;transition:none}::ng-deep .pageTest #largeLiveWpmAndAcc{font-size:10rem;color:#000;width:100%;left:0;text-align:center;z-index:-1;height:0;line-height:0;top:5rem;position:relative;display:grid;grid-auto-flow:column;justify-content:center;gap:5rem;width:0;margin:0 auto}::ng-deep .pageTest #largeLiveWpmAndAcc #liveWpm{opacity:0}::ng-deep .pageTest #largeLiveWpmAndAcc #liveAcc{opacity:0}::ng-deep .pageTest #largeLiveWpmAndAcc #liveBurst{opacity:0}::ng-deep .pageTest #largeLiveWpmAndAcc.timerMain,::ng-deep .pageTest #timerNumber.timerMain{color:#888}::ng-deep .pageTest #timer.timerMain{background:#888}::ng-deep .pageTest #largeLiveWpmAndAcc.timerSub,::ng-deep .pageTest #timerNumber.timerSub{color:#888}::ng-deep .pageTest #timer.timerSub{background:#888}::ng-deep .pageTest #largeLiveWpmAndAcc.timerText,::ng-deep .pageTest #timerNumber.timerText{color:#181819}::ng-deep .pageTest #timer.timerText{background:#181819}::ng-deep #words,::ng-deep .words{height:fit-content;height:-moz-fit-content;display:flex;flex-wrap:wrap;width:100%;align-content:flex-start;-webkit-user-select:none;user-select:none;padding-bottom:1em}::ng-deep #words .newline,::ng-deep .words .newline{width:inherit}::ng-deep #words letter,::ng-deep .words letter{border-bottom-style:solid;border-bottom-width:.05em;border-bottom-color:transparent}::ng-deep #words letter.dead,::ng-deep .words letter.dead{border-bottom-width:.05em;border-bottom-color:#888}::ng-deep #words letter.tabChar,::ng-deep #words letter.nlChar,::ng-deep .words letter.tabChar,::ng-deep .words letter.nlChar{margin:0 .25rem;opacity:.2}::ng-deep #words.rightToLeftTest,::ng-deep .words.rightToLeftTest{direction:rtl}::ng-deep #words.rightToLeftTest .word,::ng-deep .words.rightToLeftTest .word{direction:rtl}::ng-deep #words.withLigatures letter,::ng-deep .words.withLigatures letter{display:inline}::ng-deep #words.blurred,::ng-deep .words.blurred{opacity:.25;filter:blur(4px);-webkit-filter:blur(4px)}::ng-deep #words.flipped .word,::ng-deep .words.flipped .word{color:#181819}::ng-deep #words.flipped .word letter.dead,::ng-deep .words.flipped .word letter.dead{border-bottom-color:#888!important}::ng-deep #words.flipped .word letter.correct,::ng-deep .words.flipped .word letter.correct{color:#888}::ng-deep #words.flipped .word letter.corrected,::ng-deep .words.flipped .word letter.corrected{color:#888;border-bottom:2px dotted #888888}::ng-deep #words.flipped .word letter.extraCorrected,::ng-deep .words.flipped .word letter.extraCorrected{border-right:2px dotted #888888}::ng-deep #words.colorfulMode .word letter.dead,::ng-deep .words.colorfulMode .word letter.dead{border-bottom-color:#888!important}::ng-deep #words.colorfulMode .word letter.correct,::ng-deep .words.colorfulMode .word letter.correct{color:#888}::ng-deep #words.colorfulMode .word letter.corrected,::ng-deep .words.colorfulMode .word letter.corrected{color:#888;border-bottom:2px dotted #181819}::ng-deep #words.colorfulMode .word letter.extraCorrected,::ng-deep .words.colorfulMode .word letter.extraCorrected{border-right:2px dotted #181819}::ng-deep #words.colorfulMode .word letter.incorrect,::ng-deep .words.colorfulMode .word letter.incorrect{color:#d33682}::ng-deep #words.colorfulMode .word letter.incorrect.extra,::ng-deep .words.colorfulMode .word letter.incorrect.extra{color:#9b225c}::ng-deep #words.flipped.colorfulMode .word,::ng-deep .words.flipped.colorfulMode .word{color:#888}::ng-deep #words.flipped.colorfulMode .word letter.dead,::ng-deep .words.flipped.colorfulMode .word letter.dead{border-bottom-color:#888!important}::ng-deep #words.flipped.colorfulMode .word letter.correct,::ng-deep .words.flipped.colorfulMode .word letter.correct{color:#888}::ng-deep #words.flipped.colorfulMode .word letter.corrected,::ng-deep .words.flipped.colorfulMode .word letter.corrected{color:#888;border-bottom:2px dotted #888888}::ng-deep #words.flipped.colorfulMode .word letter.extraCorrected,::ng-deep .words.flipped.colorfulMode .word letter.extraCorrected{border-right:2px dotted #888888}::ng-deep #words.flipped.colorfulMode .word letter.incorrect,::ng-deep .words.flipped.colorfulMode .word letter.incorrect{color:#d33682}::ng-deep #words.flipped.colorfulMode .word letter.incorrect.extra,::ng-deep .words.flipped.colorfulMode .word letter.incorrect.extra{color:#9b225c}::ng-deep #words.tape.size125 .word,::ng-deep .words.tape.size125 .word{margin:.31rem .62rem .31rem 0}::ng-deep #words.tape.size15 .word,::ng-deep .words.tape.size15 .word{margin:.37rem .74rem .37rem 0}::ng-deep #words.tape.size2 .word,::ng-deep .words.tape.size2 .word{margin:.5rem 1rem .5rem 0}::ng-deep #words.tape.size3 .word,::ng-deep .words.tape.size3 .word{margin:.75rem 1.5rem .75rem 0}::ng-deep #words.tape.size4 .word,::ng-deep .words.tape.size4 .word{margin:1rem 2rem 1rem 0}::ng-deep #words.tape.indicateTyposBelow.size125 .word,::ng-deep .words.tape.indicateTyposBelow.size125 .word{margin:.31rem .62rem .93rem 0}::ng-deep #words.tape.indicateTyposBelow.size15 .word,::ng-deep .words.tape.indicateTyposBelow.size15 .word{margin:.37rem .74rem 1.11rem 0}::ng-deep #words.tape.indicateTyposBelow.size2 .word,::ng-deep .words.tape.indicateTyposBelow.size2 .word{margin:.5rem 1rem 1.5rem 0}::ng-deep #words.tape.indicateTyposBelow.size3 .word,::ng-deep .words.tape.indicateTyposBelow.size3 .word{margin:.75rem 1.5rem 2.25rem 0}::ng-deep #words.tape.indicateTyposBelow.size4 .word,::ng-deep .words.tape.indicateTyposBelow.size4 .word{margin:1rem 2rem 3rem 0}::ng-deep .word{margin:.25rem;color:#888;font-variant:no-common-ligatures;border-bottom:2px solid transparent;line-height:1rem}::ng-deep .word letter{display:inline-block}::ng-deep .word.lastbeforenewline:after{font-family:\"Font Awesome 5 Free\";font-weight:600;content:\"\\f107\";margin-left:.5rem;opacity:.25}::ng-deep .word .wordInputAfter{opacity:1;position:absolute;background:#888;color:#f6f6f6;padding:.5rem;margin-left:-.5rem;border-radius:.5rem;transition:.25s;text-shadow:none;top:-.5rem;z-index:10;cursor:text}::ng-deep .word .wordInputAfter .speed{font-size:.75rem}::ng-deep #words.size125 .word{line-height:1.25rem;font-size:max(1.25rem,24px);margin:.31rem}::ng-deep #words.size15 .word{line-height:1.5rem;font-size:max(1.5rem,24px);margin:.37rem}::ng-deep #words.size2 .word{line-height:2rem;font-size:max(2rem,24px);margin:.5rem}::ng-deep #words.size3 .word{line-height:3rem;font-size:max(3rem,24px);margin:.75rem}::ng-deep #words.size4 .word{line-height:4rem;font-size:max(4rem,24px);margin:1rem}::ng-deep #words.nospace .word{margin:.5rem 0}::ng-deep #words.arrows .word{margin:.5rem 0}::ng-deep #words.arrows .word letter{margin:0 .25rem}::ng-deep .word.error{border-bottom:2px solid #d33682;text-shadow:1px 0px 0px #F6F6F6,-1px 0px 0px #F6F6F6,0px 1px 0px #F6F6F6,1px 1px 0px #F6F6F6,-1px 1px 0px #F6F6F6}::ng-deep #words.noErrorBorder .word.error,::ng-deep #resultWordsHistory.noErrorBorder .word.error{text-shadow:none}::ng-deep .word letter.correct{color:#181819}::ng-deep .word letter.corrected{color:#181819;border-bottom:2px dotted #888888}::ng-deep .word letter.extraCorrected{border-right:2px dotted #888888}::ng-deep .word letter.incorrect{color:#d33682;position:relative}::ng-deep .word letter.incorrect hint{position:absolute;bottom:-1em;color:#181819;line-height:initial;font-size:.75em;text-shadow:none;padding:1px;left:0;opacity:.5;text-align:center;width:100%;display:grid;justify-content:center}::ng-deep .word letter.incorrect.extra{color:#9b225c}::ng-deep .word letter.missing{opacity:.5}::ng-deep #words.flipped.colorfulMode .word.error,::ng-deep #words.colorfulMode .word.error{border-bottom:2px solid #d33682}::ng-deep #wordsInput{opacity:0;padding:0;margin:0;border:none;outline:none;display:block;resize:none;position:fixed;z-index:-1;cursor:default;pointer-events:none}::ng-deep #capsWarning{background:#888;color:#f6f6f6;display:table;position:absolute;left:50%;transform:translate(-50%) translateY(-50%);padding:1rem;border-radius:.5rem;transition:.125s;z-index:999;pointer-events:none;top:-2.5rem}::ng-deep #capsWarning i{margin-right:.5rem}::ng-deep #result{display:grid;gap:1rem;align-items:center;grid-template-columns:auto 1fr;grid-template-areas:\"stats chart\" \"morestats morestats\"}::ng-deep #result:focus{outline:none}::ng-deep #result .buttons{display:grid;grid-auto-flow:column;gap:1rem;justify-content:center;grid-column:1/3}::ng-deep #result .ssWatermark{grid-column:1/3}::ng-deep #result #resultWordsHistory,::ng-deep #result #resultReplay{color:#888;margin-bottom:1rem}::ng-deep #result #resultWordsHistory .textButton,::ng-deep #result #resultReplay .textButton{padding:0;margin-left:.5rem}::ng-deep #result #resultWordsHistory .heatmapLegend,::ng-deep #result #resultReplay .heatmapLegend{margin-left:.5rem;display:inline-grid;grid-template-columns:auto auto auto;gap:1rem;font-size:.75rem;color:#888;width:min-content}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes,::ng-deep #result #resultReplay .heatmapLegend .boxes{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes .box,::ng-deep #result #resultReplay .heatmapLegend .boxes .box{height:1rem;color:#f6f6f6;padding:.1rem .5rem;white-space:nowrap;line-height:.75rem;display:grid;place-content:center center}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes .box:nth-child(1),::ng-deep #result #resultReplay .heatmapLegend .boxes .box:nth-child(1){background:#d33682;border-radius:.5rem 0 0 .5rem}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes .box:nth-child(2),::ng-deep #result #resultReplay .heatmapLegend .boxes .box:nth-child(2){background:#d33682;filter:opacity(.6)}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes .box:nth-child(3),::ng-deep #result #resultReplay .heatmapLegend .boxes .box:nth-child(3){background:#888}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes .box:nth-child(4),::ng-deep #result #resultReplay .heatmapLegend .boxes .box:nth-child(4){background:#888;filter:opacity(.6)}::ng-deep #result #resultWordsHistory .heatmapLegend .boxes .box:nth-child(5),::ng-deep #result #resultReplay .heatmapLegend .boxes .box:nth-child(5){background:#888;border-radius:0 .5rem .5rem 0}::ng-deep #result #resultWordsHistory .title,::ng-deep #result #resultReplay .title{-webkit-user-select:none;user-select:none;margin-bottom:.25rem}::ng-deep #result #resultWordsHistory .words,::ng-deep #result #resultReplay .words{display:flex;flex-wrap:wrap;width:100%;align-content:flex-start;-webkit-user-select:none;user-select:none}::ng-deep #result #resultWordsHistory .words .word,::ng-deep #result #resultReplay .words .word{position:relative;margin:.18rem .6rem .15rem 0}::ng-deep #result #resultWordsHistory .words .word letter.correct,::ng-deep #result #resultReplay .words .word letter.correct{color:#181819}::ng-deep #result #resultWordsHistory .words .word letter.incorrect,::ng-deep #result #resultReplay .words .word letter.incorrect{color:#d33682}::ng-deep #result #resultWordsHistory .words .word letter.incorrect.extra,::ng-deep #result #resultReplay .words .word letter.incorrect.extra{color:#9b225c}::ng-deep #result #resultWordsHistory .words .word.heatmap0 letter,::ng-deep #result #resultReplay .words .word.heatmap0 letter{color:#d33682}::ng-deep #result #resultWordsHistory .words .word.heatmap1 letter,::ng-deep #result #resultReplay .words .word.heatmap1 letter{color:#d33682;filter:opacity(.6)}::ng-deep #result #resultWordsHistory .words .word.heatmap2 letter,::ng-deep #result #resultReplay .words .word.heatmap2 letter{color:#888}::ng-deep #result #resultWordsHistory .words .word.heatmap3 letter,::ng-deep #result #resultReplay .words .word.heatmap3 letter{color:#888;filter:opacity(.6)}::ng-deep #result #resultWordsHistory .words .word.heatmap4 letter,::ng-deep #result #resultReplay .words .word.heatmap4 letter{color:#888}::ng-deep #result #resultWordsHistory .words.rightToLeftTest,::ng-deep #result #resultReplay .words.rightToLeftTest{direction:rtl}::ng-deep #result #resultWordsHistory .words.rightToLeftTest .word,::ng-deep #result #resultReplay .words.rightToLeftTest .word{direction:rtl}::ng-deep #result #resultWordsHistory .words.withLigatures letter,::ng-deep #result #resultReplay .words.withLigatures letter{display:inline}::ng-deep #result .chart{grid-area:chart;width:100%;max-height:200px;height:200px}::ng-deep #result .chart canvas{width:100%!important;height:100%}::ng-deep #result .chart .title{color:#888;margin-bottom:1rem}::ng-deep #result .loginTip{grid-column:1/3;text-align:center;color:#888}::ng-deep #result .loginTip .link{text-decoration:underline;display:inline-block;cursor:pointer}::ng-deep #result .stats{grid-area:stats;display:grid;gap:.5rem;justify-content:center;align-items:center;grid-template-areas:\"wpm\" \"acc\"}::ng-deep #result .stats.morestats{display:grid;grid-auto-flow:column;grid-template-areas:none;align-items:flex-start;justify-content:space-between;column-gap:2rem;grid-area:morestats}::ng-deep #result .stats.morestats .subgroup{display:grid;gap:.5rem}::ng-deep #result .stats .group .top{color:#888;font-size:1rem;line-height:1rem;margin-bottom:.25rem}::ng-deep #result .stats .group .bottom{color:#888;font-size:2rem;line-height:2rem}::ng-deep #result .stats .group.time .afk,::ng-deep #result .stats .group.time .timeToday{color:#888;font-size:.75rem;line-height:.75rem;margin-left:.2rem}::ng-deep #result .stats .group.source #rateQuoteButton,::ng-deep #result .stats .group.source #reportQuoteButton,::ng-deep #result .stats .group.source #favoriteQuoteButton{padding:0 .25rem}::ng-deep #result .stats .group.source #rateQuoteButton{display:inline-grid;gap:.25rem}::ng-deep #result .stats .info .top,::ng-deep #result .stats .tags .top,::ng-deep #result .stats .source .top{font-size:1rem;line-height:1rem}::ng-deep #result .stats .info .bottom,::ng-deep #result .stats .tags .bottom,::ng-deep #result .stats .source .bottom{font-size:1rem;line-height:1rem}::ng-deep #result .stats .source{max-width:30rem}::ng-deep #result .stats .tags .bottom .fas{margin-left:.5rem}::ng-deep #result .stats .wpm{grid-area:wpm}::ng-deep #result .stats .wpm .top{font-size:2rem;line-height:1.5rem;display:flex}::ng-deep #result .stats .wpm .top .crown{margin-left:.5rem;margin-top:-.2rem;font-size:.7rem;line-height:1.7rem;background:#888;color:#f6f6f6;border-radius:.6rem;text-align:center;align-self:center;width:1.7rem;height:1.7rem}::ng-deep #result .stats .wpm .bottom{font-size:4rem;line-height:4rem}::ng-deep #result .stats .testType .bottom,::ng-deep #result .stats .leaderboards .bottom{font-size:1rem;line-height:1rem}::ng-deep #result .stats .testType .bottom .lbChange .fas,::ng-deep #result .stats .leaderboards .bottom .lbChange .fas{margin-right:.15rem}::ng-deep #result .stats .acc{grid-area:acc}::ng-deep #result .stats .acc .top{font-size:2rem;line-height:1.5rem}::ng-deep #result .stats .acc .bottom{font-size:4rem;line-height:4rem}::ng-deep #result .stats .burst{grid-area:burst}::ng-deep #result .stats .burst .top{font-size:2rem;line-height:1.5rem}::ng-deep #result .stats .burst .bottom{font-size:4rem;line-height:4rem}::ng-deep #restartTestButton,::ng-deep #showWordHistoryButton,::ng-deep #saveScreenshotButton,::ng-deep #restartTestButtonWithSameWordset,::ng-deep #nextTestButton,::ng-deep #practiseWordsButton,::ng-deep #watchReplayButton,::ng-deep #watchVideoAdButton{position:relative;border-radius:.5rem;padding:1rem 2rem;width:min-content;width:-moz-min-content;color:#888;transition:.125s;cursor:pointer}::ng-deep #restartTestButton:hover,::ng-deep #restartTestButton:focus,::ng-deep #showWordHistoryButton:hover,::ng-deep #showWordHistoryButton:focus,::ng-deep #saveScreenshotButton:hover,::ng-deep #saveScreenshotButton:focus,::ng-deep #restartTestButtonWithSameWordset:hover,::ng-deep #restartTestButtonWithSameWordset:focus,::ng-deep #nextTestButton:hover,::ng-deep #nextTestButton:focus,::ng-deep #practiseWordsButton:hover,::ng-deep #practiseWordsButton:focus,::ng-deep #watchReplayButton:hover,::ng-deep #watchReplayButton:focus,::ng-deep #watchVideoAdButton:hover,::ng-deep #watchVideoAdButton:focus{color:#181819;outline:none}::ng-deep #restartTestButton:focus,::ng-deep #showWordHistoryButton:focus,::ng-deep #saveScreenshotButton:focus,::ng-deep #restartTestButtonWithSameWordset:focus,::ng-deep #nextTestButton:focus,::ng-deep #practiseWordsButton:focus,::ng-deep #watchReplayButton:focus,::ng-deep #watchVideoAdButton:focus{background:#181819;color:#f6f6f6}::ng-deep #retrySavingResultButton{position:relative;border-radius:.5rem;padding:1rem 2rem;color:#d33682;transition:.25s;cursor:pointer;width:max-content;width:-moz-max-content;background:#d33682;color:#f6f6f6;justify-self:center;justify-content:center;margin:0 auto 1rem;-webkit-user-select:none;user-select:none}::ng-deep #retrySavingResultButton:hover,::ng-deep #retrySavingResultButton:focus{background:#181819;outline:none}::ng-deep #retrySavingResultButton:focus{background:#181819}::ng-deep #showWordHistoryButton{opacity:1}::ng-deep #replayWords{cursor:pointer}::ng-deep #replayStopwatch{color:#888;display:inline-block;margin:0 0 0 .5em}::ng-deep #restartTestButton{margin:0 auto;margin-top:1rem}::ng-deep .pageTest #wordsWrapper{position:relative}::ng-deep .pageTest #wordsWrapper.tape{-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0) 1%,rgb(0,0,0) 10%,rgb(0,0,0) 90%,rgba(0,0,0,0) 99%);mask-image:linear-gradient(90deg,#0000 1%,#000 10% 90%,#0000 99%)}::ng-deep .pageTest #memoryTimer{background:#888;color:#f6f6f6;padding:1rem;border-radius:.5rem;text-align:center;width:max-content;left:50%;position:absolute;transform:translate(-50%);top:-6rem;-webkit-user-select:none;user-select:none;pointer-events:none;opacity:0}::ng-deep .pageTest .outOfFocusWarning{text-align:center;height:0;line-height:150px;z-index:999;position:relative;-webkit-user-select:none;user-select:none;pointer-events:none}::ng-deep .pageTest .errorWarning{text-align:center;height:0;line-height:150px;z-index:999;position:relative;-webkit-user-select:auto;user-select:auto}::ng-deep .pageTest #testModesNotice{display:flex;flex-wrap:wrap;color:#888;text-align:center;margin-bottom:.5rem;transition:.125s;justify-content:center;-webkit-user-select:none;user-select:none}::ng-deep .pageTest #testModesNotice .textButton{margin:0 .5rem}::ng-deep .pageTest #testModesNotice .fas{margin-right:.5rem}::ng-deep .pageTest #miniTimerAndLiveWpm{height:0;margin-left:.37rem;display:flex;font-size:1rem;line-height:1.13rem;margin-top:-1.5rem;position:absolute;color:#000;font-weight:700}::ng-deep .pageTest #miniTimerAndLiveWpm .time{margin-right:2rem;margin-top:-2rem}::ng-deep .pageTest #miniTimerAndLiveWpm .wpm,::ng-deep .pageTest #miniTimerAndLiveWpm .acc{margin-right:2rem}::ng-deep .pageTest #miniTimerAndLiveWpm .time,::ng-deep .pageTest #miniTimerAndLiveWpm .wpm,::ng-deep .pageTest #miniTimerAndLiveWpm .acc,::ng-deep .pageTest #miniTimerAndLiveWpm .burst{opacity:0}::ng-deep .pageTest #miniTimerAndLiveWpm.timerMain{color:#00000080}::ng-deep .pageTest #miniTimerAndLiveWpm.timerSub{color:#888}::ng-deep .pageTest #miniTimerAndLiveWpm.timerText{color:#181819}::ng-deep .pageTest #miniTimerAndLiveWpm.size125{margin-top:-1.75rem;font-size:1.38rem;line-height:1.25rem}::ng-deep .pageTest #miniTimerAndLiveWpm.size15{margin-top:-2rem;font-size:1.63rem;line-height:1.5rem}::ng-deep .pageTest #miniTimerAndLiveWpm.size2{margin-top:-2.5rem;font-size:2.13rem;line-height:2rem}::ng-deep .pageTest #miniTimerAndLiveWpm.size3{margin-top:-3.5rem;font-size:3.13rem;line-height:3rem}::ng-deep .pageTest #miniTimerAndLiveWpm.size4{margin-top:-4.5rem;font-size:4.13rem;line-height:4rem}::ng-deep #middle.focus .pageTest #testModesNotice{opacity:0!important}@media only screen and (max-width: 1330px){.ad.ad-v{display:none}#app{grid-template-columns:auto}}@media only screen and (max-width: 1250px){#leaderboardsWrapper #leaderboards .mainTitle{font-size:2rem}#leaderboardsWrapper #leaderboards .title{font-size:1rem}#leaderboardsWrapper #leaderboards .leaderboardsTop{grid-template-columns:auto 1fr max-content}#leaderboardsWrapper #leaderboards .leaderboardsTop .buttonGroup{grid-auto-flow:row;gap:.5rem}#leaderboardsWrapper #leaderboards .tables table .avatarNameBadge .badge .text{display:none}#leaderboardsWrapper #leaderboards .tables table tr td:first-child{padding-left:.25rem}#leaderboardsWrapper #leaderboards .tables table tr td:last-child{padding-right:.25rem}#leaderboardsWrapper #leaderboards .tables table td{padding:.25rem .5rem}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchControlsWrapper{grid-template-columns:1fr 1fr max-content}}@media only screen and (max-width: 1050px){.profile .pbsWords,.profile .pbsTime{font-size:.8rem}.profile .details.bioAndKey .bioAndKeyboard .value{font-size:.75rem}.pageSettings .section.fullWidth .buttons{grid-template-columns:1fr 1fr 1fr}#quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchControlsWrapper{grid-template-columns:1fr}#result .morestats{gap:1rem;grid-template-rows:1fr 1fr}#supportMe{width:90vw!important}#supportMe .buttons .button .icon{font-size:3rem!important;line-height:3rem!important}#customTextPopup{width:80vw!important}#customTextPopup .wordfilter.button{width:50%!important}}@media only screen and (max-width: 1000px){#quoteRatePopup{width:90vw!important}#bottom .leftright .left{gap:.25rem 1rem;display:grid;grid-template-rows:1fr 1fr;grid-auto-flow:row;grid-template-columns:auto auto auto auto}#bottom .leftright .right{display:grid;grid-template-rows:1fr 1fr;gap:.25rem 1rem}#leaderboardsWrapper #leaderboards .tables table tr td:nth-child(5){display:none}}@media only screen and (max-width: 900px){.ad.ad-h{display:none}.ad.ad-h-s{display:grid}.profile .pbsWords,.profile .pbsTime{font-size:1rem}.profile{grid-template-columns:1fr;grid-template-rows:auto auto auto;grid-template-areas:\"info\" \"pbsTime\" \"pbsWords\"}.profile .details.soc{grid-template-columns:1.25fr auto 1fr auto auto}.profile .details.soc .typingStats{grid-template-columns:1fr}.profile .details.bioAndKey{grid-template-columns:1.25fr auto auto auto 1fr}.profile .details.bioAndKey .typingStats{grid-template-columns:1fr}.profile .details.both{grid-template-columns:1.25fr auto 1.25fr auto;grid-template-areas:\"avAndName sep2 bioAndKey bioAndKey\" \"typingStats typingStats typingStats socials\"}.profile .details.both .sep1,.profile .details.both .sep3{display:none}.profile .details.both .typingStats{grid-template-columns:1fr 1fr 1fr;width:100%}.profile .details.both .socials{justify-content:start}.profile .details.both .socials .title{display:block}.profile .details.both .socials .value{grid-auto-flow:column}.profile .details.none{grid-template-columns:1fr auto 1fr}.profile .details.none .typingStats{grid-template-columns:1fr}#leaderboards .mainTitle{font-size:1.5rem!important}#bannerCenter .banner .container{grid-template-columns:1fr auto}#bannerCenter .banner .container .image,#bannerCenter .banner .container .lefticon,#bannerCenter .banner .container .righticon{display:none}#bannerCenter .banner .container .text{margin-left:1.5rem;text-align:left;justify-self:start}.merchBanner img{display:none}.merchBanner .text{padding:.25rem 0}.pageSettings .section.autoSwitchThemeInputs{grid-template-columns:1fr 3fr}.pageAccount .group.personalBestTables .tables{grid-template-columns:1fr}.pageAccount .group.history table thead td:nth-child(1),.pageAccount .group.history table thead td:nth-child(8),.pageAccount .group.history table thead td:nth-child(9),.pageAccount .group.history table tbody td:nth-child(1),.pageAccount .group.history table tbody td:nth-child(8),.pageAccount .group.history table tbody td:nth-child(9){display:none}}@media only screen and (max-width: 800px){.pageSettings .settingsGroup.quickNav .links{grid-auto-flow:unset;grid-template-columns:1fr 1fr 1fr;justify-items:center}#centerContent #top{grid-template-areas:\"logo config\" \"menu config\";grid-template-columns:auto auto}#centerContent #top .logo{margin-bottom:0}#centerContent #menu{gap:.5rem;font-size:.8rem;line-height:.8rem;margin-top:-.5rem}#centerContent #menu .textButton{padding:.25rem}#contactPopupWrapper #contactPopup .buttons{grid-template-columns:1fr}.pageAbout .section .contributors,.pageAbout .section .supporters{grid-template-columns:1fr 1fr 1fr}.pageAbout .section .contactButtons,.pageAbout .section .supportButtons{grid-template-columns:1fr 1fr}.pageSettings .section.customBackgroundFilter .groups{grid-template-columns:1fr}.pageSettings .section.customBackgroundFilter .saveContainer{grid-column:-1/-2}#commandLine,#commandLineInput{width:600px!important}#leaderboardsWrapper #leaderboards .leaderboardsTop{flex-direction:column;align-items:baseline;grid-template-areas:\"title title\" \"subtitle subtitle\" \"yesterday yesterday\" \"buttons buttons\";grid-template-columns:1fr}#leaderboardsWrapper #leaderboards .leaderboardsTop .buttons{margin-top:.5rem}#leaderboardsWrapper #leaderboards .leaderboardsTop .buttonGroup{grid-auto-flow:column}#leaderboardsWrapper #leaderboards .leaderboardsTop .showYesterdayButton{margin-left:0}#leaderboardsWrapper #leaderboards .tables{grid-template-columns:unset}#leaderboardsWrapper #leaderboards .tables table .avatarNameBadge .badge .text{display:block}#leaderboardsWrapper #leaderboards .tables table tr td:last-child{width:30%}#leaderboardsWrapper #leaderboards .tables .rightTableWrapper,#leaderboardsWrapper #leaderboards .tables .leftTableWrapper{height:calc(50vh - 10rem)}}@media only screen and (max-width: 700px){.pageAccount .presetFilterButtons .buttons{grid-template-columns:1fr}.pageAccount .triplegroup{grid-template-columns:1fr 1fr}.pageAccount .triplegroup .emptygroup{display:none}.pageAccount .group.chart .below{grid-template-columns:1fr;gap:.5rem}.pageAccount .group.topFilters .buttonsAndTitle .buttons{display:grid;justify-content:unset}.pageAccount .group.history table thead td:nth-child(6),.pageAccount .group.history table tbody td:nth-child(6){display:none}.badge:after,.badge:before{display:none}}@media only screen and (max-width: 650px){.profile{grid-template-columns:1fr;grid-template-rows:auto auto auto;grid-template-areas:\"info\" \"pbsTime\" \"pbsWords\"}.profile .details.none{grid-template-areas:\"avAndName\" \"typingStats\";grid-template-columns:1fr}.profile .details.none .separator{display:none}.profile .details.none .typingStats{grid-template-columns:1fr 1fr 1fr}.profile .details.bioAndKey{grid-template-areas:\"avAndName bioAndKey\" \"typingStats typingStats\";grid-template-columns:1fr 1fr}.profile .details.bioAndKey .separator{display:none}.profile .details.bioAndKey .typingStats{grid-template-columns:1fr 1fr 1fr}.profile .details.soc{grid-template-areas:\"avAndName\" \"typingStats\" \"socials\";grid-template-columns:1fr}.profile .details.soc .separator{display:none}.profile .details.soc .typingStats{grid-template-columns:1fr 1fr 1fr}.profile .details.soc .socials{justify-content:start}.profile .details.soc .socials .title{display:block}.profile .details.soc .socials .value{grid-auto-flow:column}.profile .details.both{grid-template-areas:\"avAndName bioAndKey\" \"typingStats typingStats\" \"socials socials\";grid-template-columns:1fr 1fr}.profile .details.both .separator{display:none}.profile .details.both .typingStats{grid-template-columns:1fr 1fr 1fr}.profile .details.both .socials{justify-content:start}.profile .details.both .socials .title{display:block}.profile .details.both .socials .value{grid-auto-flow:column}#quoteRatePopup .ratingStats{grid-template-columns:1fr 1fr!important}#quoteRatePopup .quote{grid-template-areas:\"text text text\" \"source source source\" \"id length length\"!important}.pageSettings .section{grid-template-columns:1fr;grid-template-areas:\"title\" \"text\" \"buttons\"}.pageSettings .section>.text{margin-bottom:1rem}#result .buttons{grid-template-rows:1fr 1fr 1fr}#result .buttons #nextTestButton{grid-column:1/5;width:100%;text-align:center}#supportMe{width:80vw!important}#supportMe .buttons{grid-template-columns:none!important}#supportMe .buttons .button{grid-template-columns:auto 1fr;align-items:center}#supportMe .buttons .button .icon{font-size:2rem!important;line-height:2rem!important;margin-left:2rem}.pageSettings .section.fullWidth .buttons{grid-template-columns:1fr 1fr}}@media only screen and (max-width: 600px){.pageAbout .section .supporters,.pageAbout .section .contributors{grid-template-columns:1fr 1fr}#top .logo .bottom{margin-top:0}.pageLogin{display:grid;gap:5rem;grid-auto-flow:unset}#middle #result{grid-template-areas:\"stats stats\" \"chart chart\" \"morestats morestats\"}#middle #result .stats{grid-template-areas:\"wpm acc\";gap:2rem}#middle #result .stats.morestats{grid-template-rows:1fr 1fr 1fr;gap:1rem}#leaderboardsWrapper #leaderboards .leaderboardsTop .buttonGroup{grid-auto-flow:row}#commandLine,#commandLineInput{width:500px!important}#customTextPopupWrapper #customTextPopup .wordfilter.button{width:100%!important;justify-self:auto}#customTextPopupWrapper #customTextPopup .inputs{display:flex!important;flex-direction:column;justify-content:flex-start}.pageAccount .group.history table thead td:nth-child(7),.pageAccount .group.history table thead td:nth-child(5),.pageAccount .group.history table tbody td:nth-child(7),.pageAccount .group.history table tbody td:nth-child(5){display:none}}@media only screen and (max-width: 550px){.profile .pbsWords,.profile .pbsTime{font-size:.9rem}.profile .pbsWords,.profile .pbsTime{grid-template-columns:1fr 1fr}.profile .details.none .typingStats{grid-template-columns:1fr}.profile .details.bioAndKey{grid-template-areas:\"avAndName\" \"bioAndKey\" \"typingStats\";grid-template-columns:1fr}.profile .details.bioAndKey .typingStats{grid-template-columns:1fr}.profile .details.both{grid-template-areas:\"avAndName\" \"bioAndKey\" \"typingStats\" \"socials\";grid-template-columns:1fr}.profile .details.both .typingStats{grid-template-columns:1fr}#cookiePopupWrapper #cookiePopup,#cookiePopupWrapper .extensionMessage{right:1rem;bottom:1rem;width:calc(100vw - 2rem)}#contactPopupWrapper #contactPopup .buttons .button .text{font-size:1rem}#contactPopupWrapper #contactPopup .buttons .button .icon{font-size:1.5rem;line-height:1.5rem}#contactPopupWrapper #contactPopup{padding:1rem}.pageAbout .section .supporters,.pageAbout .section .contributors{grid-template-columns:1fr}#simplePopupWrapper #simplePopup{width:90vw}#quoteReportPopup{width:calc(100% - 2rem);margin-left:1rem;max-width:800px;padding:1rem}.pageSettings .settingsGroup.quickNav{display:none}.pageSettings .section.fullWidth .buttons{grid-template-columns:1fr}.pageSettings .section .buttons{grid-auto-flow:row}.pageSettings .section.customBackgroundFilter .groups .group{grid-template-columns:auto 1fr}.pageSettings .section.customBackgroundFilter .groups .group .title{grid-column:1/3}.pageAbout .section .contactButtons,.pageAbout .section .supportButtons,.pageAccount .triplegroup{grid-template-columns:1fr}.pageAccount .group.history table thead td:nth-child(3),.pageAccount .group.history table tbody td:nth-child(3){display:none}#top{align-items:self-end}#top .logo .icon{width:1.5rem!important}#top .logo .text{font-size:1.5rem!important;margin-bottom:.3rem!important}#top .logo .bottom{font-size:1.75rem;line-height:1.75rem;margin-top:0}#top .logo .top{display:none}#top #menu .textButton{padding:0}#bottom .leftright .left{gap:.25rem 1rem;display:grid;grid-template-rows:1fr 1fr 1fr;grid-template-columns:auto auto auto;grid-auto-flow:row}#bottom .leftright .right{display:grid;grid-template-rows:1fr 1fr 1fr;gap:.25rem 1rem}#centerContent{padding:1rem}#centerContent #top{grid-template-columns:1fr auto}#centerContent #top .desktopConfig{display:none}#centerContent #top .mobileConfig{display:block}#middle #result .stats{grid-template-areas:\"wpm\" \"acc\";gap:1rem}#result .buttons{grid-template-rows:1fr 1fr 1fr 1fr}#result .buttons #nextTestButton{grid-column:1/3;width:100%;text-align:center}#commandLine,#commandLineInput{width:400px!important}#leaderboardsWrapper #leaderboards{width:85vw}#leaderboardsWrapper #leaderboards .tables .rightTableWrapper,#leaderboardsWrapper #leaderboards .tables .leftTableWrapper{height:calc(50vh - 10rem)}#leaderboardsWrapper #leaderboards .tables{grid-template-columns:unset}#leaderboardsWrapper #leaderboards .tables table .avatarNameBadge .badge .text{display:block}#leaderboardsWrapper #leaderboards .tables table tr td:nth-child(4){display:none}}@media only screen and (max-width: 400px){#top .config{grid-gap:.25rem}#top .config .group .buttons{font-size:.65rem;line-height:.65rem}#bottom{font-size:.65rem}#bottom .leftright{grid-template-columns:1fr 1fr}#bottom .leftright .left{grid-template-rows:1fr 1fr 1fr 1fr;grid-template-columns:1fr 1fr;grid-auto-flow:row}#bottom .leftright .right{grid-template-rows:1fr 1fr 1fr 1fr;gap:.25rem 1rem}#commandLine,#commandLineInput{width:300px!important}#leaderboardsWrapper #leaderboards .tables .titleAndTable .titleAndButtons{grid-template-columns:unset}#leaderboardsWrapper #leaderboards .tables table tr td:first-child{padding-left:.25rem}#leaderboardsWrapper #leaderboards .tables table tr td:last-child{padding-right:.25rem}#leaderboardsWrapper #leaderboards .tables table td{padding:.25rem}#leaderboardsWrapper #leaderboards .tables .rightTableWrapper,#leaderboardsWrapper #leaderboards .tables .leftTableWrapper{height:calc(50vh - 9rem)}}@media only screen and (max-width: 350px){.ad.ad-h-s{display:none}.pageLogin .side input{width:90vw}.page404 .content,.page404 .content .image{width:100%}.page404 .content .big{font-size:7rem;line-height:7rem}}@media (hover: none) and (pointer: coarse){#commandLineMobileButton{display:block!important}}\n"] }]
|
|
250
|
-
}], ctorParameters: () => [], propDecorators: { resultEvent: [{
|
|
251
|
-
type: Output
|
|
252
|
-
}], replayExport: [{
|
|
253
|
-
type: Output
|
|
254
|
-
}], errorEvent: [{
|
|
255
|
-
type: Output
|
|
256
|
-
}], time: [{
|
|
257
|
-
type: Input
|
|
258
|
-
}], punctuation: [{
|
|
259
|
-
type: Input
|
|
260
|
-
}], numbers: [{
|
|
261
|
-
type: Input
|
|
262
|
-
}], funbox: [{
|
|
263
|
-
type: Input
|
|
264
|
-
}], customTGQuotes: [{
|
|
265
|
-
type: Input
|
|
266
|
-
}], showMiniTimerAndLiveWpm: [{
|
|
267
|
-
type: Input
|
|
268
|
-
}], restartTest: [{
|
|
269
|
-
type: Input
|
|
270
|
-
}], testVersion: [{
|
|
271
|
-
type: Input
|
|
272
|
-
}], testExpiration$: [{
|
|
273
|
-
type: Input
|
|
274
|
-
}], wordsInput: [{
|
|
275
|
-
type: ViewChild,
|
|
276
|
-
args: ['wordsInput']
|
|
277
|
-
}], wordsWrapper: [{
|
|
278
|
-
type: ViewChild,
|
|
279
|
-
args: ['wordsWrapper']
|
|
280
|
-
}], words: [{
|
|
281
|
-
type: ViewChild,
|
|
282
|
-
args: ['words']
|
|
283
|
-
}], middle: [{
|
|
284
|
-
type: ViewChild,
|
|
285
|
-
args: ['middle']
|
|
286
|
-
}], capsWarning: [{
|
|
287
|
-
type: ViewChild,
|
|
288
|
-
args: ['capsWarning']
|
|
289
|
-
}], handleKeyboardDown: [{
|
|
290
|
-
type: HostListener,
|
|
291
|
-
args: ['document:keydown', ['$event']]
|
|
292
|
-
}], handleKeyboardUp: [{
|
|
293
|
-
type: HostListener,
|
|
294
|
-
args: ['document:keyup', ['$event']]
|
|
295
|
-
}], handleMouseMove: [{
|
|
296
|
-
type: HostListener,
|
|
297
|
-
args: ['document:mousemove', ['$event']]
|
|
298
|
-
}] } });
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGdvLXR5cGluZy10ZXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Rnby10eXBpbmctdGVzdC9zcmMvbGliL2NvbXBvbmVudHMvdGdvLXR5cGluZy10ZXN0L3Rnby10eXBpbmctdGVzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90Z28tdHlwaW5nLXRlc3Qvc3JjL2xpYi9jb21wb25lbnRzL3Rnby10eXBpbmctdGVzdC90Z28tdHlwaW5nLXRlc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsVUFBVSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsY0FBYyxFQUNkLDBCQUEwQixFQUMxQixPQUFPLEdBQ1IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixjQUFjLEVBQ2QsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLDRDQUE0QyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFNB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S0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFXbUIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNJLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDTCxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ0csTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNPLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFnSXhCLGtCQUFrQjtzQkFEakIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFPNUMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTTFDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBzZXRDdXN0b21UR1F1b3RlcyxcbiAgc2V0RnVuYm94LFxuICBzZXROdW1iZXJzLFxuICBzZXRQdW5jdHVhdGlvbixcbiAgc2V0VGVzdFZlcnNpb25Gb3JTZW50ZW5jZXMsXG4gIHNldFRpbWUsXG59IGZyb20gJy4uLy4uL2hlbHBlcnMvY29uZmlnJztcbmltcG9ydCB7XG4gIGlucHV0S2V5ZG93bixcbiAgc2V0V29yZHNJbnB1dEVsZW1lbnQsXG4gIHdvcmRzSW5wdXRCZWZvcmVpbnB1dCxcbiAgd29yZHNJbnB1dENvbXBvc2l0aW9uZW5kLFxuICB3b3Jkc0lucHV0Q29tcG9zaXRpb25zdGFydCxcbiAgd29yZHNJbnB1dENvcHksXG4gIHdvcmRzSW5wdXRGb2N1cyxcbiAgd29yZHNJbnB1dElucHV0LFxuICB3b3Jkc0lucHV0S2V5dXAsXG4gIHdvcmRzSW5wdXRQYXN0ZSxcbn0gZnJvbSAnLi4vLi4vaGVscGVycy9jb250cm9sbGVycy9pbnB1dC1jb250cm9sbGVyJztcbmltcG9ydCB7IGNhcHNLZXlkb3duLCBjYXBzS2V5dXAsIHNob3dDYXBzIH0gZnJvbSAnLi4vLi4vaGVscGVycy90ZXN0L2NhcHMtd2FybmluZyc7XG5pbXBvcnQgeyBjYXJldEFuaW1hdGlvbiwgY2FyZXRMZWZ0LCBjYXJldFNob3csIGNhcmV0VG9wIH0gZnJvbSAnLi4vLi4vaGVscGVycy90ZXN0L2NhcmV0JztcbmltcG9ydCB7IG1vdXNlbW92ZSwgc2V0Q2Fwc1dhcm5pbmdFbGVtZW50LCBzZXRNaWRkbGVFbGVtZW50IH0gZnJvbSAnLi4vLi4vaGVscGVycy90ZXN0L2ZvY3VzJztcbmltcG9ydCB7IG91dE9mRm9jdXNTaG93IH0gZnJvbSAnLi4vLi4vaGVscGVycy90ZXN0L291dC1vZi1mb2N1cyc7XG5pbXBvcnQgeyBnZXRSZXBsYXlFeHBvcnQgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3Rlc3QvcmVwbGF5JztcbmltcG9ydCAqIGFzIFRlc3RMb2dpYyBmcm9tICcuLi8uLi9oZWxwZXJzL3Rlc3QvdGVzdC1sb2dpYyc7XG5pbXBvcnQgKiBhcyBUZXN0VUkgZnJvbSAnLi4vLi4vaGVscGVycy90ZXN0L3Rlc3QtdWknO1xuaW1wb3J0IHtcbiAgc2V0V29yZHNFbGVtZW50LFxuICBzZXRXb3Jkc0lucHV0RWxlbWVudFRlc3RVSSxcbiAgc2V0V29yZHNXcmFwcGVyRWxlbWVudCxcbiAgd29yZHNJbnB1dEZvY3VzT3V0LFxuICB3b3Jkc0lucHV0Rm9jdXNUZXN0VUksXG4gIHdvcmRzV3JhcHBlckNsaWNrLFxufSBmcm9tICcuLi8uLi9oZWxwZXJzL3Rlc3QvdGVzdC11aSc7XG5pbXBvcnQgeyB0aW1lTGVmdCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvdGVzdC90aW1lci1wcm9ncmVzcyc7XG5pbXBvcnQgeyBRdW90ZU5ldHdvcmtFcnJvciQgfSBmcm9tICcuLi8uLi91dGlscy9taXNjJztcbmltcG9ydCAqIGFzIFRlc3RBY3RpdmUgZnJvbSAnLi4vLi4vaGVscGVycy9zdGF0ZXMvdGVzdC1hY3RpdmUnO1xuaW1wb3J0IHF1b3RlQ29udHJvbGxlciBmcm9tICcuLi8uLi9oZWxwZXJzL2NvbnRyb2xsZXJzL3F1b3Rlcy1jb250cm9sbGVyJztcbmltcG9ydCB7IGRpc2FibGVDaGVja0lmVGltZUlzVXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3Rlc3QvdGVzdC10aW1lcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0Z28tdHlwaW5nLXRlc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rnby10eXBpbmctdGVzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL2luZGV4LnNjc3MnLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignZmFkZUluJywgW1xuICAgICAgc3RhdGUoJ3Nob3cnLCBzdHlsZSh7b3BhY2l0eTogMX0pKSxcbiAgICAgIHN0YXRlKCdoaWRlJywgc3R5bGUoe29wYWNpdHk6IDB9KSksXG4gICAgICB0cmFuc2l0aW9uKCdzaG93ID0+IGhpZGUnLCBbXG4gICAgICAgIGFuaW1hdGUoJzEyNW1zJylcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignaGlkZSA9PiBzaG93JywgW1xuICAgICAgICBhbmltYXRlKCcxMjVtcycpXG4gICAgICBdKVxuICAgIF0pLFxuICAgIHRyaWdnZXIoJ3VwZGF0ZVBvc2l0aW9uQ2FyZXQnLCBbXG4gICAgICBzdGF0ZSgndHJ1ZScsXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICB0b3A6ICd7e2NhcmV0VG9wUG9zfX1weCcsXG4gICAgICAgICAgbGVmdDogJ3t7Y2FyZXRMZWZ0UG9zfX1weCdcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM6IHtjYXJldFRvcFBvczogMCwgY2FyZXRMZWZ0UG9zOiAwfVxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgc3RhdGUoJ2ZhbHNlJyxcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIHRvcDogJ3t7Y2FyZXRUb3BQb3N9fXB4JyxcbiAgICAgICAgICBsZWZ0OiAne3tjYXJldExlZnRQb3N9fXB4J1xuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHBhcmFtczoge2NhcmV0VG9wUG9zOiAwLCBjYXJldExlZnRQb3M6IDB9XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICB0cmFuc2l0aW9uKCd0cnVlID0+IGZhbHNlJywgW1xuICAgICAgICBhbmltYXRlKCcxMDBtcycpXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJ2ZhbHNlID0+IHRydWUnLCBbXG4gICAgICAgIGFuaW1hdGUoJzEwMG1zJylcbiAgICAgIF0pXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUZ29UeXBpbmdUZXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHNob3dDYXBzJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICBzaG93Q2FyZXQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gIGNhcmV0QW5pbWF0aW9uJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz47XG4gIHNob3dUaW1lciQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgdGltZUxlZnQkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPjtcbiAgY2FyZXRMZWZ0ID0gMDtcbiAgY2FyZXRUb3AgPSAwO1xuICBzdGF0ZSA9ICd0cnVlJztcbiAgb3V0T2ZGb2N1c1Nob3ckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcmVwbGF5SW50ZXJ2YWxJRDogYW55O1xuXG4gIEBPdXRwdXQoKSByZXN1bHRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmVwbGF5RXhwb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBlcnJvckV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQElucHV0KCkgdGltZSA9IDE4MDtcbiAgQElucHV0KCkgcHVuY3R1YXRpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgbnVtYmVycyA9IGZhbHNlO1xuICBASW5wdXQoKSBmdW5ib3ggPSAnbm9uZSc7XG4gIEBJbnB1dCgpIGN1c3RvbVRHUXVvdGVzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dNaW5pVGltZXJBbmRMaXZlV3BtID0gdHJ1ZTtcbiAgQElucHV0KCkgcmVzdGFydFRlc3QgPSBmYWxzZTtcbiAgQElucHV0KCkgdGVzdFZlcnNpb24gPSAxO1xuICBASW5wdXQoKSB0ZXN0RXhwaXJhdGlvbiQ/OiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2hvd0NhcHMkID0gc2hvd0NhcHM7XG4gICAgdGhpcy5zaG93Q2FyZXQkID0gY2FyZXRTaG93O1xuICAgIHRoaXMuY2FyZXRBbmltYXRpb24kID0gY2FyZXRBbmltYXRpb247XG4gICAgdGhpcy5zaG93VGltZXIkID0gVGVzdExvZ2ljLnN0YXJ0VGVzdFN1YmplY3Q7XG4gICAgdGhpcy5vdXRPZkZvY3VzU2hvdyQgPSBvdXRPZkZvY3VzU2hvdztcbiAgICB0aGlzLnRpbWVMZWZ0JCA9IHRpbWVMZWZ0O1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnd29yZHNJbnB1dCcpIHdvcmRzSW5wdXQhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCd3b3Jkc1dyYXBwZXInKSB3b3Jkc1dyYXBwZXIhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCd3b3JkcycpIHdvcmRzITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnbWlkZGxlJykgbWlkZGxlITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnY2Fwc1dhcm5pbmcnKSBjYXBzV2FybmluZyE6IEVsZW1lbnRSZWY7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgVGVzdFVJLnNldFJlc3VsdENhbGN1bGF0aW5nKGZhbHNlKTtcbiAgICBUZXN0VUkuc2V0UmVzdWx0VmlzaWJsZShmYWxzZSk7XG4gICAgdGhpcy5jYXJldExlZnQgPSAwO1xuICAgIHRoaXMuY2FyZXRUb3AgPSAwO1xuICAgIHNldFRpbWUodGhpcy50aW1lKTtcbiAgICBzZXRQdW5jdHVhdGlvbih0aGlzLnB1bmN0dWF0aW9uKTtcbiAgICBzZXROdW1iZXJzKHRoaXMubnVtYmVycyk7XG4gICAgc2V0RnVuYm94KHRoaXMuZnVuYm94KTtcbiAgICBzZXRDdXN0b21UR1F1b3Rlcyh0aGlzLmN1c3RvbVRHUXVvdGVzKTtcbiAgICBzZXRUZXN0VmVyc2lvbkZvclNlbnRlbmNlcyh0aGlzLnRlc3RWZXJzaW9uKTtcbiAgICBjb25zdCBjYXJldExlZnRTdWIgPSBjYXJldExlZnQuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICBpZiAocmVzICE9PSB0aGlzLmNhcmV0TGVmdCkge1xuICAgICAgICB0aGlzLmNhcmV0TGVmdCA9IHJlcztcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT0gJ3RydWUnKSB7XG4gICAgICAgICAgdGhpcy5zdGF0ZSA9ICdmYWxzZSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zdGF0ZSA9ICd0cnVlJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgY2FyZXRUb3BTdWIgPSBjYXJldFRvcC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuY2FyZXRUb3AgPSByZXM7XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZXN0UmVzdWx0U3ViID0gVGVzdExvZ2ljLnJlc3VsdFN1Yi5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMucmVwbGF5RXhwb3J0LmVtaXQoZ2V0UmVwbGF5RXhwb3J0KCkpO1xuICAgICAgdGhpcy5yZXN1bHRFdmVudC5lbWl0KHJlcyk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBlcnJvclN1YiA9IFF1b3RlTmV0d29ya0Vycm9yJC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogZSA9PiB7XG4gICAgICAgIGlmICghZSkgcmV0dXJuO1xuICAgICAgICB0aGlzLmVycm9yRXZlbnQuZW1pdChlKTtcbiAgICAgICAgVGVzdExvZ2ljLnN0b3BUZXN0KCk7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZXBsYXlJbnRlcnZhbElEID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5yZXBsYXlFeHBvcnQuZW1pdChnZXRSZXBsYXlFeHBvcnQoKSk7XG4gICAgfSwgMjAwMDApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goY2FyZXRMZWZ0U3ViLCBjYXJldFRvcFN1YiwgdGVzdFJlc3VsdFN1YiwgZXJyb3JTdWIpO1xuXG4gICAgaWYgKHRoaXMudGVzdEV4cGlyYXRpb24kKSB7XG4gICAgICBkaXNhYmxlQ2hlY2tJZlRpbWVJc1VwKCk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgdGhpcy50ZXN0RXhwaXJhdGlvbiQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBUZXN0TG9naWMuZmluaXNoKCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncmVzdGFydFRlc3QnXSkge1xuICAgICAgaWYgKCFjaGFuZ2VzWydyZXN0YXJ0VGVzdCddLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICB0aGlzLnJlc3RhcnQoKTtcbiAgICAgIH1cbiAgICB9XG59XG5cbiAgd29yZHNJbnB1dEtleXVwKGV2ZW50OiBhbnkpIHtcbiAgICB3b3Jkc0lucHV0S2V5dXAoZXZlbnQpO1xuICB9XG5cbiAgd29yZHNJbnB1dEJlZm9yZWlucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB3b3Jkc0lucHV0QmVmb3JlaW5wdXQoZXZlbnQpO1xuICB9XG5cbiAgd29yZHNJbnB1dElucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB3b3Jkc0lucHV0SW5wdXQoZXZlbnQpO1xuICB9XG5cbiAgd29yZHNJbnB1dEZvY3VzKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoIVRlc3RBY3RpdmUuZ2V0KCkpIHJldHVybjtcbiAgICB3b3Jkc0lucHV0Rm9jdXMoZXZlbnQpO1xuICAgIHdvcmRzSW5wdXRGb2N1c1Rlc3RVSSgpO1xuICB9XG5cbiAgd29yZHNJbnB1dEZvY3VzT3V0KCkge1xuICAgIGlmICghVGVzdEFjdGl2ZS5nZXQoKSkgcmV0dXJuO1xuICAgIHdvcmRzSW5wdXRGb2N1c091dCgpO1xuICB9XG5cbiAgd29yZHNJbnB1dENvcHkoZXZlbnQ6IGFueSkge1xuICAgIHdvcmRzSW5wdXRDb3B5KGV2ZW50KTtcbiAgfVxuXG4gIHdvcmRzSW5wdXRQYXN0ZShldmVudDogYW55KSB7XG4gICAgd29yZHNJbnB1dFBhc3RlKGV2ZW50KTtcbiAgfVxuXG4gIHdvcmRzSW5wdXRDb21wb3NpdGlvbnN0YXJ0KCkge1xuICAgIHdvcmRzSW5wdXRDb21wb3NpdGlvbnN0YXJ0KCk7XG4gIH1cblxuICB3b3Jkc0lucHV0Q29tcG9zaXRpb25lbmQoKSB7XG4gICAgd29yZHNJbnB1dENvbXBvc2l0aW9uZW5kKCk7XG4gIH1cblxuICB3b3Jkc1dyYXBwZXJDbGljaygpIHtcbiAgICB3b3Jkc1dyYXBwZXJDbGljaygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNldFdvcmRzSW5wdXRFbGVtZW50KHRoaXMud29yZHNJbnB1dC5uYXRpdmVFbGVtZW50KTtcbiAgICBzZXRXb3Jkc0lucHV0RWxlbWVudFRlc3RVSSh0aGlzLndvcmRzSW5wdXQubmF0aXZlRWxlbWVudCk7XG4gICAgVGVzdExvZ2ljLnNldFdvcmRzSW5wdXRFbGVtZW50VGVzdExvZ2ljKHRoaXMud29yZHNJbnB1dC5uYXRpdmVFbGVtZW50KTtcbiAgICBzZXRXb3Jkc1dyYXBwZXJFbGVtZW50KHRoaXMud29yZHNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHNldFdvcmRzRWxlbWVudCh0aGlzLndvcmRzLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHNldE1pZGRsZUVsZW1lbnQodGhpcy5taWRkbGUubmF0aXZlRWxlbWVudCk7XG4gICAgc2V0Q2Fwc1dhcm5pbmdFbGVtZW50KHRoaXMuY2Fwc1dhcm5pbmcubmF0aXZlRWxlbWVudCk7XG4gICAgVGVzdExvZ2ljLnJlc3RhcnQoKTtcbiAgfVxuXG4gIHJlc3RhcnQoKSB7XG4gICAgVGVzdFVJLnNldFJlc3VsdENhbGN1bGF0aW5nKGZhbHNlKTtcbiAgICBUZXN0VUkuc2V0UmVzdWx0VmlzaWJsZShmYWxzZSk7XG4gICAgdGhpcy5jYXJldExlZnQgPSAwO1xuICAgIHRoaXMuY2FyZXRUb3AgPSAwO1xuICAgIFRlc3RMb2dpYy5yZXN0YXJ0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5Ym9hcmREb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY2Fwc0tleWRvd24oZXZlbnQpO1xuICAgIGlucHV0S2V5ZG93bihldmVudCwgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy53b3Jkc0lucHV0Lm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5dXAnLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlib2FyZFVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY2Fwc0tleXVwKGV2ZW50KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gIGhhbmRsZU1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgIG1vdXNlbW92ZShldmVudCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBUZXN0TG9naWMuc3RvcFRlc3QoKTtcbiAgICBxdW90ZUNvbnRyb2xsZXIucmVzZXRRdW90ZXMoKTtcbiAgICBjbGVhckludGVydmFsKHRoaXMucmVwbGF5SW50ZXJ2YWxJRCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxufVxuIiwiPGRpdiBpZD1cImNlbnRlckNvbnRlbnRcIj5cbiAgICA8ZGl2IGlkPVwibWlkZGxlXCIgI21pZGRsZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJwYWdlIHBhZ2VUZXN0IGFjdGl2ZVwiPlxuICAgICAgICA8ZGl2IGlkPVwidHlwaW5nVGVzdFwiPlxuICAgICAgICAgIDxkaXYgaWQ9XCJjYXBzV2FybmluZ1wiIFtuZ0NsYXNzXT1cInsgaGlkZGVuOiAoc2hvd0NhcHMkIHwgYXN5bmMpID09PSBmYWxzZSB9XCIgI2NhcHNXYXJuaW5nPlxuICAgICAgICAgICAgQ2FwcyBMb2NrXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBpZD1cIm1lbW9yeVRpbWVyXCI+VGltZSBsZWZ0IHRvIG1lbW9yaXNlIGFsbCB3b3JkczogMHM8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGlkPVwidGVzdE1vZGVzTm90aWNlXCI+PC9kaXY+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cIndvcmRzSW5wdXRcIlxuICAgICAgICAgICAgY2xhc3M9XCJcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXG4gICAgICAgICAgICBhdXRvY29ycmVjdD1cIm9mZlwiXG4gICAgICAgICAgICBkYXRhLWdyYW1tPVwiZmFsc2VcIlxuICAgICAgICAgICAgZGF0YS1ncmFtbV9lZGl0b3I9XCJmYWxzZVwiXG4gICAgICAgICAgICBkYXRhLWVuYWJsZS1ncmFtbWFybHk9XCJmYWxzZVwiXG4gICAgICAgICAgICBsaXN0PVwiYXV0b2NvbXBsZXRlT2ZmXCJcbiAgICAgICAgICAgIChrZXl1cCk9XCJ3b3Jkc0lucHV0S2V5dXAoJGV2ZW50KVwiXG4gICAgICAgICAgICAoYmVmb3JlaW5wdXQpPVwid29yZHNJbnB1dEJlZm9yZWlucHV0KCRldmVudClcIlxuICAgICAgICAgICAgKGlucHV0KT1cIndvcmRzSW5wdXRJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJ3b3Jkc0lucHV0Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAoZm9jdXNvdXQpPVwid29yZHNJbnB1dEZvY3VzT3V0KClcIlxuICAgICAgICAgICAgKGNvcHkpPVwid29yZHNJbnB1dENvcHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAocGFzdGUpPVwid29yZHNJbnB1dFBhc3RlKCRldmVudClcIlxuICAgICAgICAgICAgKGNvbXBvc2l0aW9uc3RhcnQpPVwid29yZHNJbnB1dENvbXBvc2l0aW9uc3RhcnQoKVwiXG4gICAgICAgICAgICAoY29tcG9zaXRpb25lbmQpPVwid29yZHNJbnB1dENvbXBvc2l0aW9uZW5kKClcIlxuICAgICAgICAgICAgI3dvcmRzSW5wdXRcbiAgICAgICAgICAvPlxuICAgICAgICAgIEBpZiAoc2hvd01pbmlUaW1lckFuZExpdmVXcG0pIHtcbiAgICAgICAgICAgIDxkaXYgaWQ9XCJtaW5pVGltZXJBbmRMaXZlV3BtXCIgY2xhc3M9XCJ0aW1lck1haW4gc2l6ZTJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIiBbQGZhZGVJbl09XCIoc2hvd1RpbWVyJCB8IGFzeW5jKSA/ICdzaG93JyA6ICdoaWRlJ1wiPlxuICAgICAgICAgICAgICAgIHt7IHRpbWVMZWZ0JCB8IGFzeW5jIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3BtIGhpZGRlblwiPjYwPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY2MgaGlkZGVuXCI+MTAwJTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnVyc3QgaGlkZGVuXCI+MTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICBAaWYgKG91dE9mRm9jdXNTaG93JCB8IGFzeW5jKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3V0T2ZGb2N1c1dhcm5pbmdcIj5cbiAgICAgICAgICAgICAgQ2xpY2sgb3IgcHJlc3MgYW55IGtleSB0byBmb2N1c1xuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICBAaWYgKGVycm9yRXZlbnQgfCBhc3luYzsgYXMgZXJyb3JNZXNzYWdlKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JXYXJuaW5nXCI+IFxuICAgICAgICAgICAgICB7eyBlcnJvck1lc3NhZ2UgfX0gUmVsb2FkIHRoZSBwYWdlIG9yIDxhIGhyZWY9XCJodHRwczovL2NhbmRpZGF0ZXMudGVzdGdvcmlsbGEuY29tL2hjL2VuLXVzL3JlcXVlc3RzL25ld1wiIHRhcmdldD1cIl9ibGFua1wiPmNvbnRhY3Qgc3VwcG9ydDwvYT4uXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gIFxuICAgICAgICAgIDxkaXYgaWQ9XCJ3b3Jkc1dyYXBwZXJcIiB0cmFuc2xhdGU9XCJub1wiICN3b3Jkc1dyYXBwZXIgKGNsaWNrKT1cIndvcmRzV3JhcHBlckNsaWNrKClcIj5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJwYWNlQ2FyZXRcIiBjbGFzcz1cImRlZmF1bHQgc2l6ZTIgaGlkZGVuXCI+PC9kaXY+XG4gICAgICAgICAgICBAaWYgKHNob3dDYXJldCQgfCBhc3luYykge1xuICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2FyZXRcIiBbQHVwZGF0ZVBvc2l0aW9uQ2FyZXRdPVwie1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IHN0YXRlLFxuICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7IGNhcmV0VG9wUG9zOiBjYXJldFRvcCwgY2FyZXRMZWZ0UG9zOiBjYXJldExlZnQgfVxuICAgICAgICAgICAgICAgIH1cIiBcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdhbmltYXRpb24tbmFtZSc6IChjYXJldEFuaW1hdGlvbiQgfCBhc3luYykgfVwiIGNsYXNzPVwiZGVmYXVsdCBzaXplMlwiPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJ3b3Jkc1wiIGNsYXNzPVwic2l6ZTJcIiAjd29yZHMgW25nQ2xhc3NdPVwieyBibHVycmVkOiAob3V0T2ZGb2N1c1Nob3ckIHwgYXN5bmMpIH1cIj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gICJdfQ==
|