valtech-components 4.0.418 → 4.0.419

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.
@@ -1,10 +1,12 @@
1
- import { Component, computed, inject, signal } from '@angular/core';
2
- import { IonIcon } from '@ionic/angular/standalone';
1
+ import { Component, Input, computed, inject, signal } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { IonIcon, IonModal } from '@ionic/angular/standalone';
3
4
  import { addIcons } from 'ionicons';
4
5
  import { trophyOutline } from 'ionicons/icons';
5
6
  import { I18nService } from '../../../services/i18n';
6
7
  import { MINI_GAMES_I18N } from './mini-games.i18n';
7
8
  import { RetroAudioService } from './retro-audio.service';
9
+ import { ModalLayoutComponent } from '../../molecules/modal-layout/modal-layout.component';
8
10
  import * as i0 from "@angular/core";
9
11
  addIcons({ trophyOutline });
10
12
  const SIMON_MODES = {
@@ -22,9 +24,11 @@ const LEADERBOARD_KEY = 'val-mini-games-simon-leaderboard:v1';
22
24
  export class SimonGameComponent {
23
25
  constructor() {
24
26
  this.i18n = inject(I18nService);
27
+ this.router = inject(Router);
25
28
  this.audio = inject(RetroAudioService);
26
29
  this.timers = [];
27
30
  this.acceptingInput = false;
31
+ this.miniGamesRoute = '/mini-games';
28
32
  this.modes = ['kid', 'classic', 'ninja'];
29
33
  this.pads = SIMON_PADS;
30
34
  this.phase = signal('home');
@@ -34,6 +38,7 @@ export class SimonGameComponent {
34
38
  this.inputIndex = signal(0);
35
39
  this.activePad = signal(undefined);
36
40
  this.leaderboard = signal(this.readLeaderboard());
41
+ this.confirmAction = signal(undefined);
37
42
  this.modeConfig = computed(() => SIMON_MODES[this.mode()]);
38
43
  this.bestRound = computed(() => this.modeLeaderboard()[0]?.round ?? 0);
39
44
  this.modeLeaderboard = computed(() => this.leaderboard()
@@ -42,6 +47,46 @@ export class SimonGameComponent {
42
47
  .slice(0, 5));
43
48
  this.leaderboardHeading = computed(() => this.t('simonLeaderboardModeTitle').replace('{mode}', this.modeTitle(this.mode())));
44
49
  this.failBody = computed(() => this.t('simonFailedBody').replace('{round}', String(Math.max(0, this.round() - 1))));
50
+ this.confirmTitle = computed(() => {
51
+ const action = this.confirmAction();
52
+ if (action === 'restart')
53
+ return this.t('confirmRestartTitle');
54
+ if (action === 'games')
55
+ return this.t('confirmGamesTitle');
56
+ return this.t('confirmModeTitle');
57
+ });
58
+ this.confirmBody = computed(() => {
59
+ const action = this.confirmAction();
60
+ if (action === 'restart')
61
+ return this.t('confirmRestartBody');
62
+ if (action === 'games')
63
+ return this.t('confirmGamesBody');
64
+ return this.t('confirmModeBody');
65
+ });
66
+ this.confirmActions = computed(() => [
67
+ {
68
+ text: this.t('cancel'),
69
+ color: 'dark',
70
+ state: 'ENABLED',
71
+ fill: 'outline',
72
+ shape: 'round',
73
+ type: 'button',
74
+ token: 'cancel',
75
+ },
76
+ {
77
+ text: this.confirmAction() === 'restart'
78
+ ? this.t('restart')
79
+ : this.confirmAction() === 'games'
80
+ ? this.t('changeGame')
81
+ : this.t('backToSetup'),
82
+ color: 'dark',
83
+ state: 'ENABLED',
84
+ fill: 'outline',
85
+ shape: 'round',
86
+ type: 'button',
87
+ token: 'confirm',
88
+ },
89
+ ]);
45
90
  this.i18n.registerDefaults('MiniGames', MINI_GAMES_I18N);
46
91
  this.audio.stopMusic();
47
92
  }
@@ -78,6 +123,40 @@ export class SimonGameComponent {
78
123
  this.inputIndex.set(0);
79
124
  this.activePad.set(undefined);
80
125
  }
126
+ requestRestartGame() {
127
+ this.confirmAction.set('restart');
128
+ this.audio.flip();
129
+ }
130
+ requestChangeMode() {
131
+ this.confirmAction.set('mode');
132
+ this.audio.flip();
133
+ }
134
+ requestChangeGame() {
135
+ this.confirmAction.set('games');
136
+ this.audio.flip();
137
+ }
138
+ closeConfirmModal() {
139
+ this.confirmAction.set(undefined);
140
+ }
141
+ confirmPendingAction(token) {
142
+ if (token !== 'confirm') {
143
+ this.closeConfirmModal();
144
+ return;
145
+ }
146
+ const action = this.confirmAction();
147
+ this.confirmAction.set(undefined);
148
+ if (action === 'restart') {
149
+ this.start();
150
+ return;
151
+ }
152
+ if (action === 'mode') {
153
+ this.resetToSetup();
154
+ return;
155
+ }
156
+ if (action === 'games') {
157
+ this.resetToGamesMenu();
158
+ }
159
+ }
81
160
  tap(pad) {
82
161
  if (this.phase() !== 'waiting' || !this.acceptingInput)
83
162
  return;
@@ -177,6 +256,14 @@ export class SimonGameComponent {
177
256
  // El ranking local no es crítico si storage no está disponible.
178
257
  }
179
258
  }
259
+ resetToGamesMenu() {
260
+ this.resetToSetup();
261
+ void this.router.navigateByUrl(this.miniGamesBaseRoute()).catch(() => undefined);
262
+ }
263
+ miniGamesBaseRoute() {
264
+ const route = (this.miniGamesRoute || '/mini-games').trim();
265
+ return `/${route.replace(/^\/+|\/+$/g, '') || 'mini-games'}`;
266
+ }
180
267
  readLeaderboard() {
181
268
  try {
182
269
  const raw = localStorage.getItem(LEADERBOARD_KEY);
@@ -201,7 +288,7 @@ export class SimonGameComponent {
201
288
  return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
202
289
  }
203
290
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimonGameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
204
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SimonGameComponent, isStandalone: true, selector: "val-simon-game", ngImport: i0, template: `
291
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SimonGameComponent, isStandalone: true, selector: "val-simon-game", inputs: { miniGamesRoute: "miniGamesRoute" }, ngImport: i0, template: `
205
292
  <main class="simon-shell">
206
293
  @if (phase() === 'home') {
207
294
  <section class="simon-hero">
@@ -230,6 +317,11 @@ export class SimonGameComponent {
230
317
  </div>
231
318
 
232
319
  <button class="simon-primary" type="button" (click)="start()">{{ t('simonStart') }}</button>
320
+ <div class="simon-menu-actions">
321
+ <button class="simon-secondary" type="button" (click)="requestChangeGame()">
322
+ {{ t('changeGame') }}
323
+ </button>
324
+ </div>
233
325
  </section>
234
326
  } @else {
235
327
  <section class="simon-game">
@@ -277,8 +369,9 @@ export class SimonGameComponent {
277
369
  </div>
278
370
 
279
371
  <div class="simon-actions">
280
- <button class="simon-secondary" type="button" (click)="resetToSetup()">{{ t('backToSetup') }}</button>
281
- <button class="simon-primary" type="button" (click)="start()">{{ t('restart') }}</button>
372
+ <button class="simon-secondary" type="button" (click)="requestChangeMode()">{{ t('backToSetup') }}</button>
373
+ <button class="simon-secondary" type="button" (click)="requestChangeGame()">{{ t('changeGame') }}</button>
374
+ <button class="simon-primary" type="button" (click)="requestRestartGame()">{{ t('restart') }}</button>
282
375
  </div>
283
376
  </section>
284
377
  }
@@ -303,11 +396,29 @@ export class SimonGameComponent {
303
396
  }
304
397
  </section>
305
398
  </main>
306
- `, isInline: true, styles: [":host{display:block}.simon-shell{--simon-panel: var(--ion-card-background, #ffffff);--simon-border: var(--ion-border-color, #e7e4ea);--simon-text: var(--ion-color-dark, #2f2a3a);--simon-muted: var(--ion-color-medium, #6f6a7a);--simon-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--simon-primary: var(--ion-color-primary, #ff00b2);--simon-secondary: var(--ion-color-tertiary, #6a2de2);display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--simon-text)}:host-context(html.ion-palette-dark) .simon-shell,:host-context([data-theme=\"dark\"]) .simon-shell{--simon-panel: #231f2d;--simon-border: rgba(255, 255, 255, .13);--simon-text: #fff8ff;--simon-muted: rgba(255, 248, 255, .68);--simon-soft: rgba(255, 255, 255, .07)}.simon-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,54px);background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.55),transparent 18%),linear-gradient(135deg,var(--simon-primary),var(--simon-secondary));color:#fff;text-align:center}.simon-hero__spark{font-size:1.8rem;letter-spacing:.2em}.simon-hero h1{margin:0;font-size:clamp(48px,14vw,86px);line-height:.9;font-weight:950}.simon-hero p,.simon-howto p,.simon-callout p,.simon-leaderboard p{margin:0;color:inherit;line-height:1.45}.simon-panel,.simon-game,.simon-leaderboard{display:grid;gap:16px;border:1px solid var(--simon-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--simon-panel)}.simon-howto{display:grid;gap:6px;padding:16px;border-radius:20px;background:var(--simon-soft)}.simon-howto h2,.simon-leaderboard h2{margin:0;color:var(--simon-text)}.simon-howto p,.simon-leaderboard p{color:var(--simon-muted)}.simon-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-modes button{display:grid;gap:6px;min-height:126px;padding:14px;border:1px solid var(--simon-border);border-radius:22px;background:var(--simon-panel);color:var(--simon-text);font:inherit;text-align:left}.simon-modes button.is-selected{border-color:var(--simon-primary);box-shadow:0 0 0 2px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.16)}.simon-modes strong{font-size:1rem;font-weight:950}.simon-modes small,.simon-status small,.simon-leaderboard small{color:var(--simon-muted)}.simon-primary,.simon-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.simon-primary{border:0;background:var(--simon-primary);color:var(--ion-color-primary-contrast, #fff);box-shadow:0 18px 45px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.28)}.simon-secondary{border:1px solid var(--simon-border);background:transparent;color:var(--simon-text)}.simon-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-status div{display:grid;gap:2px;padding:14px;border-radius:18px;background:var(--simon-soft)}.simon-status strong{font-size:2rem;line-height:1}.simon-callout{display:grid;gap:4px;min-height:76px;align-content:center;padding:16px;border-radius:20px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);color:var(--simon-text);text-align:center}.simon-callout.is-failed{background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.simon-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(100%,480px);margin:0 auto}.simon-pad{aspect-ratio:1;border:0;border-radius:34px;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.7),transparent 28%),var(--pad-color);color:#fff;font:inherit;font-size:clamp(28px,9vw,56px);font-weight:950;box-shadow:inset 0 -12px 22px #00000029,0 18px 42px color-mix(in srgb,var(--pad-color),transparent 68%);opacity:.82;transform:scale(.98);transition:opacity .14s ease,transform .14s ease,filter .14s ease}.simon-pad.is-active{opacity:1;filter:brightness(1.3) saturate(1.2);transform:scale(1.035)}.simon-board.is-locked .simon-pad:not(.is-active){opacity:.48}.simon-actions{position:sticky;bottom:10px;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;padding-top:12px;background:linear-gradient(to bottom,transparent,var(--simon-panel) 28%)}.simon-leaderboard__title{display:flex;align-items:center;gap:10px}.simon-leaderboard__title ion-icon{color:var(--simon-primary);font-size:1.4rem}.simon-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.simon-leaderboard li{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:12px;border-radius:16px;background:var(--simon-soft)}.simon-leaderboard li>span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.18);color:var(--simon-primary);font-weight:950}@media (max-width: 560px){.simon-modes,.simon-status,.simon-actions{grid-template-columns:1fr}.simon-board{gap:10px}.simon-pad{border-radius:26px}}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
399
+
400
+ <ion-modal
401
+ [isOpen]="!!confirmAction()"
402
+ cssClass="val-modal-adaptive"
403
+ (didDismiss)="closeConfirmModal()"
404
+ >
405
+ <ng-template>
406
+ <val-modal-layout
407
+ [title]="confirmTitle()"
408
+ [subtitle]="confirmBody()"
409
+ [closeLabel]="t('close')"
410
+ [actions]="confirmActions()"
411
+ actionsAlign="end"
412
+ (close)="closeConfirmModal()"
413
+ (actionClick)="confirmPendingAction($event.action?.token)"
414
+ />
415
+ </ng-template>
416
+ </ion-modal>
417
+ `, isInline: true, styles: [":host{display:block}.simon-shell{--simon-panel: var(--ion-card-background, #ffffff);--simon-border: var(--ion-border-color, #e7e4ea);--simon-text: var(--ion-color-dark, #2f2a3a);--simon-muted: var(--ion-color-medium, #6f6a7a);--simon-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--simon-primary: var(--ion-color-primary, #ff00b2);--simon-secondary: var(--ion-color-tertiary, #6a2de2);display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--simon-text)}:host-context(html.ion-palette-dark) .simon-shell,:host-context([data-theme=\"dark\"]) .simon-shell{--simon-panel: #231f2d;--simon-border: rgba(255, 255, 255, .13);--simon-text: #fff8ff;--simon-muted: rgba(255, 248, 255, .68);--simon-soft: rgba(255, 255, 255, .07)}.simon-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,54px);background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.55),transparent 18%),linear-gradient(135deg,var(--simon-primary),var(--simon-secondary));color:#fff;text-align:center}.simon-hero__spark{font-size:1.8rem;letter-spacing:.2em}.simon-hero h1{margin:0;font-size:clamp(48px,14vw,86px);line-height:.9;font-weight:950}.simon-hero p,.simon-howto p,.simon-callout p,.simon-leaderboard p{margin:0;color:inherit;line-height:1.45}.simon-panel,.simon-game,.simon-leaderboard{display:grid;gap:16px;border:1px solid var(--simon-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--simon-panel)}.simon-howto{display:grid;gap:6px;padding:16px;border-radius:20px;background:var(--simon-soft)}.simon-howto h2,.simon-leaderboard h2{margin:0;color:var(--simon-text)}.simon-howto p,.simon-leaderboard p{color:var(--simon-muted)}.simon-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-modes button{display:grid;gap:6px;min-height:126px;padding:14px;border:1px solid var(--simon-border);border-radius:22px;background:var(--simon-panel);color:var(--simon-text);font:inherit;text-align:left}.simon-modes button.is-selected{border-color:var(--simon-primary);box-shadow:0 0 0 2px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.16)}.simon-modes strong{font-size:1rem;font-weight:950}.simon-modes small,.simon-status small,.simon-leaderboard small{color:var(--simon-muted)}.simon-primary,.simon-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.simon-primary{border:0;background:var(--simon-primary);color:var(--ion-color-primary-contrast, #fff);box-shadow:0 18px 45px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.28)}.simon-secondary{border:1px solid var(--simon-border);background:transparent;color:var(--simon-text)}.simon-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-status div{display:grid;gap:2px;padding:14px;border-radius:18px;background:var(--simon-soft)}.simon-status strong{font-size:2rem;line-height:1}.simon-callout{display:grid;gap:4px;min-height:76px;align-content:center;padding:16px;border-radius:20px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);color:var(--simon-text);text-align:center}.simon-callout.is-failed{background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.simon-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(100%,480px);margin:0 auto}.simon-pad{aspect-ratio:1;border:0;border-radius:34px;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.7),transparent 28%),var(--pad-color);color:#fff;font:inherit;font-size:clamp(28px,9vw,56px);font-weight:950;box-shadow:inset 0 -12px 22px #00000029,0 18px 42px color-mix(in srgb,var(--pad-color),transparent 68%);opacity:.82;transform:scale(.98);transition:opacity .14s ease,transform .14s ease,filter .14s ease}.simon-pad.is-active{opacity:1;filter:brightness(1.3) saturate(1.2);transform:scale(1.035)}.simon-board.is-locked .simon-pad:not(.is-active){opacity:.48}.simon-actions{position:sticky;bottom:10px;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:4px;padding-top:12px;background:linear-gradient(to bottom,transparent,var(--simon-panel) 28%)}.simon-menu-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:10px}.simon-leaderboard__title{display:flex;align-items:center;gap:10px}.simon-leaderboard__title ion-icon{color:var(--simon-primary);font-size:1.4rem}.simon-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.simon-leaderboard li{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:12px;border-radius:16px;background:var(--simon-soft)}.simon-leaderboard li>span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.18);color:var(--simon-primary);font-weight:950}@media (max-width: 560px){.simon-modes,.simon-status,.simon-actions,.simon-menu-actions{grid-template-columns:1fr}.simon-board{gap:10px}.simon-pad{border-radius:26px}}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: ModalLayoutComponent, selector: "val-modal-layout", inputs: ["title", "subtitle", "closeLabel", "showClose", "actions", "actionsAlign", "footer", "footerClass"], outputs: ["close", "actionClick"] }] }); }
307
418
  }
308
419
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimonGameComponent, decorators: [{
309
420
  type: Component,
310
- args: [{ selector: 'val-simon-game', standalone: true, imports: [IonIcon], template: `
421
+ args: [{ selector: 'val-simon-game', standalone: true, imports: [IonIcon, IonModal, ModalLayoutComponent], template: `
311
422
  <main class="simon-shell">
312
423
  @if (phase() === 'home') {
313
424
  <section class="simon-hero">
@@ -336,6 +447,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
336
447
  </div>
337
448
 
338
449
  <button class="simon-primary" type="button" (click)="start()">{{ t('simonStart') }}</button>
450
+ <div class="simon-menu-actions">
451
+ <button class="simon-secondary" type="button" (click)="requestChangeGame()">
452
+ {{ t('changeGame') }}
453
+ </button>
454
+ </div>
339
455
  </section>
340
456
  } @else {
341
457
  <section class="simon-game">
@@ -383,8 +499,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
383
499
  </div>
384
500
 
385
501
  <div class="simon-actions">
386
- <button class="simon-secondary" type="button" (click)="resetToSetup()">{{ t('backToSetup') }}</button>
387
- <button class="simon-primary" type="button" (click)="start()">{{ t('restart') }}</button>
502
+ <button class="simon-secondary" type="button" (click)="requestChangeMode()">{{ t('backToSetup') }}</button>
503
+ <button class="simon-secondary" type="button" (click)="requestChangeGame()">{{ t('changeGame') }}</button>
504
+ <button class="simon-primary" type="button" (click)="requestRestartGame()">{{ t('restart') }}</button>
388
505
  </div>
389
506
  </section>
390
507
  }
@@ -409,6 +526,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
409
526
  }
410
527
  </section>
411
528
  </main>
412
- `, styles: [":host{display:block}.simon-shell{--simon-panel: var(--ion-card-background, #ffffff);--simon-border: var(--ion-border-color, #e7e4ea);--simon-text: var(--ion-color-dark, #2f2a3a);--simon-muted: var(--ion-color-medium, #6f6a7a);--simon-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--simon-primary: var(--ion-color-primary, #ff00b2);--simon-secondary: var(--ion-color-tertiary, #6a2de2);display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--simon-text)}:host-context(html.ion-palette-dark) .simon-shell,:host-context([data-theme=\"dark\"]) .simon-shell{--simon-panel: #231f2d;--simon-border: rgba(255, 255, 255, .13);--simon-text: #fff8ff;--simon-muted: rgba(255, 248, 255, .68);--simon-soft: rgba(255, 255, 255, .07)}.simon-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,54px);background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.55),transparent 18%),linear-gradient(135deg,var(--simon-primary),var(--simon-secondary));color:#fff;text-align:center}.simon-hero__spark{font-size:1.8rem;letter-spacing:.2em}.simon-hero h1{margin:0;font-size:clamp(48px,14vw,86px);line-height:.9;font-weight:950}.simon-hero p,.simon-howto p,.simon-callout p,.simon-leaderboard p{margin:0;color:inherit;line-height:1.45}.simon-panel,.simon-game,.simon-leaderboard{display:grid;gap:16px;border:1px solid var(--simon-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--simon-panel)}.simon-howto{display:grid;gap:6px;padding:16px;border-radius:20px;background:var(--simon-soft)}.simon-howto h2,.simon-leaderboard h2{margin:0;color:var(--simon-text)}.simon-howto p,.simon-leaderboard p{color:var(--simon-muted)}.simon-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-modes button{display:grid;gap:6px;min-height:126px;padding:14px;border:1px solid var(--simon-border);border-radius:22px;background:var(--simon-panel);color:var(--simon-text);font:inherit;text-align:left}.simon-modes button.is-selected{border-color:var(--simon-primary);box-shadow:0 0 0 2px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.16)}.simon-modes strong{font-size:1rem;font-weight:950}.simon-modes small,.simon-status small,.simon-leaderboard small{color:var(--simon-muted)}.simon-primary,.simon-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.simon-primary{border:0;background:var(--simon-primary);color:var(--ion-color-primary-contrast, #fff);box-shadow:0 18px 45px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.28)}.simon-secondary{border:1px solid var(--simon-border);background:transparent;color:var(--simon-text)}.simon-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-status div{display:grid;gap:2px;padding:14px;border-radius:18px;background:var(--simon-soft)}.simon-status strong{font-size:2rem;line-height:1}.simon-callout{display:grid;gap:4px;min-height:76px;align-content:center;padding:16px;border-radius:20px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);color:var(--simon-text);text-align:center}.simon-callout.is-failed{background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.simon-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(100%,480px);margin:0 auto}.simon-pad{aspect-ratio:1;border:0;border-radius:34px;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.7),transparent 28%),var(--pad-color);color:#fff;font:inherit;font-size:clamp(28px,9vw,56px);font-weight:950;box-shadow:inset 0 -12px 22px #00000029,0 18px 42px color-mix(in srgb,var(--pad-color),transparent 68%);opacity:.82;transform:scale(.98);transition:opacity .14s ease,transform .14s ease,filter .14s ease}.simon-pad.is-active{opacity:1;filter:brightness(1.3) saturate(1.2);transform:scale(1.035)}.simon-board.is-locked .simon-pad:not(.is-active){opacity:.48}.simon-actions{position:sticky;bottom:10px;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;padding-top:12px;background:linear-gradient(to bottom,transparent,var(--simon-panel) 28%)}.simon-leaderboard__title{display:flex;align-items:center;gap:10px}.simon-leaderboard__title ion-icon{color:var(--simon-primary);font-size:1.4rem}.simon-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.simon-leaderboard li{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:12px;border-radius:16px;background:var(--simon-soft)}.simon-leaderboard li>span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.18);color:var(--simon-primary);font-weight:950}@media (max-width: 560px){.simon-modes,.simon-status,.simon-actions{grid-template-columns:1fr}.simon-board{gap:10px}.simon-pad{border-radius:26px}}\n"] }]
413
- }], ctorParameters: () => [] });
414
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltb24tZ2FtZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21pbmktZ2FtZXMvc2ltb24tZ2FtZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFHMUQsUUFBUSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztBQWdCNUIsTUFBTSxXQUFXLEdBQTJDO0lBQzFELEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUU7SUFDNUQsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRTtJQUNwRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFO0NBQ2pFLENBQUM7QUFFRixNQUFN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QixrQkFBa0IsMEVBOVluQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0dULDB3SkF2R1MsT0FBTzs7NEZBK1lOLGtCQUFrQjtrQkFsWjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDLFlBQ1I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNHVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgdHJvcGh5T3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE1JTklfR0FNRVNfSTE4TiB9IGZyb20gJy4vbWluaS1nYW1lcy5pMThuJztcbmltcG9ydCB7IFJldHJvQXVkaW9TZXJ2aWNlIH0gZnJvbSAnLi9yZXRyby1hdWRpby5zZXJ2aWNlJztcbmltcG9ydCB7IFNpbW9uR2FtZU1vZGUsIFNpbW9uR2FtZVBoYXNlLCBTaW1vblBhZCB9IGZyb20gJy4vdHlwZXMnO1xuXG5hZGRJY29ucyh7IHRyb3BoeU91dGxpbmUgfSk7XG5cbmludGVyZmFjZSBTaW1vbk1vZGVDb25maWcge1xuICBtb2RlOiBTaW1vbkdhbWVNb2RlO1xuICBzaG93TXM6IG51bWJlcjtcbiAgZ2FwTXM6IG51bWJlcjtcbiAgc3RhcnRTdGVwczogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgU2ltb25MZWFkZXJib2FyZEVudHJ5IHtcbiAgbW9kZTogU2ltb25HYW1lTW9kZTtcbiAgcm91bmQ6IG51bWJlcjtcbiAgc3RlcHM6IG51bWJlcjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG59XG5cbmNvbnN0IFNJTU9OX01PREVTOiBSZWNvcmQ8U2ltb25HYW1lTW9kZSwgU2ltb25Nb2RlQ29uZmlnPiA9IHtcbiAga2lkOiB7IG1vZGU6ICdraWQnLCBzaG93TXM6IDcyMCwgZ2FwTXM6IDI4MCwgc3RhcnRTdGVwczogMSB9LFxuICBjbGFzc2ljOiB7IG1vZGU6ICdjbGFzc2ljJywgc2hvd01zOiA1MjAsIGdhcE1zOiAyMTAsIHN0YXJ0U3RlcHM6IDEgfSxcbiAgbmluamE6IHsgbW9kZTogJ25pbmphJywgc2hvd01zOiAzNDAsIGdhcE1zOiAxNTAsIHN0YXJ0U3RlcHM6IDIgfSxcbn07XG5cbmNvbnN0IFNJTU9OX1BBRFM6IFNpbW9uUGFkW10gPSBbXG4gIHsgaWQ6ICdwaW5rJywgbGFiZWw6ICcxJywgY29sb3I6ICcjZmYwMGIyJywgdG9uZTogMzI5LjYzIH0sXG4gIHsgaWQ6ICdjeWFuJywgbGFiZWw6ICcyJywgY29sb3I6ICcjMDBiY2Q0JywgdG9uZTogMzkyIH0sXG4gIHsgaWQ6ICd5ZWxsb3cnLCBsYWJlbDogJzMnLCBjb2xvcjogJyNmZmM0MDknLCB0b25lOiA0OTMuODggfSxcbiAgeyBpZDogJ3B1cnBsZScsIGxhYmVsOiAnNCcsIGNvbG9yOiAnIzZhMmRlMicsIHRvbmU6IDY1OS4yNSB9LFxuXTtcblxuY29uc3QgTEVBREVSQk9BUkRfS0VZID0gJ3ZhbC1taW5pLWdhbWVzLXNpbW9uLWxlYWRlcmJvYXJkOnYxJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNpbW9uLWdhbWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSW9uSWNvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1haW4gY2xhc3M9XCJzaW1vbi1zaGVsbFwiPlxuICAgICAgQGlmIChwaGFzZSgpID09PSAnaG9tZScpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzaW1vbi1oZXJvXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzaW1vbi1oZXJvX19zcGFya1wiPuKXjyDil48g4pePIOKXjzwvc3Bhbj5cbiAgICAgICAgICA8aDE+e3sgdCgnc2ltb25Ib21lVGl0bGUnKSB9fTwvaDE+XG4gICAgICAgICAgPHA+e3sgdCgnc2ltb25Ib21lU3VidGl0bGUnKSB9fTwvcD5cbiAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2ltb24tcGFuZWxcIj5cbiAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInNpbW9uLWhvd3RvXCI+XG4gICAgICAgICAgICA8aDI+e3sgdCgnc2ltb25Ib3dUb1RpdGxlJykgfX08L2gyPlxuICAgICAgICAgICAgPHA+e3sgdCgnc2ltb25Ib3dUb0JvZHknKSB9fTwvcD5cbiAgICAgICAgICA8L2FydGljbGU+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ltb24tbW9kZXNcIiByb2xlPVwicmFkaW9ncm91cFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnbW9kZVRpdGxlJylcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbW9kZXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJtb2RlKCkgPT09IGl0ZW1cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RNb2RlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgbW9kZVRpdGxlKGl0ZW0pIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPHNtYWxsPnt7IG1vZGVEZXNjcmlwdGlvbihpdGVtKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNpbW9uLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInN0YXJ0KClcIj57eyB0KCdzaW1vblN0YXJ0JykgfX08L2J1dHRvbj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2ltb24tZ2FtZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaW1vbi1zdGF0dXNcIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxzbWFsbD57eyB0KCdzaW1vblJvdW5kJykgfX08L3NtYWxsPlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IHJvdW5kKCkgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHNtYWxsPnt7IHQoJ3NpbW9uU3RlcHMnKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgc2VxdWVuY2UoKS5sZW5ndGggfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHNtYWxsPnt7IHQoJ3NpbW9uQmVzdFJvdW5kJykgfX08L3NtYWxsPlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IGJlc3RSb3VuZCgpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaW1vbi1jYWxsb3V0XCIgW2NsYXNzLmlzLWZhaWxlZF09XCJwaGFzZSgpID09PSAnZmFpbGVkJ1wiPlxuICAgICAgICAgICAgQGlmIChwaGFzZSgpID09PSAnc2hvd2luZycpIHtcbiAgICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdzaW1vbldhdGNoJykgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKHBoYXNlKCkgPT09ICd3YWl0aW5nJykge1xuICAgICAgICAgICAgICA8c3Ryb25nPnt7IHQoJ3NpbW9uUmVwZWF0JykgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKHBoYXNlKCkgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgICA8c3Ryb25nPnt7IHQoJ3NpbW9uR29vZCcpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdzaW1vbkZhaWxlZCcpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDxwPnt7IGZhaWxCb2R5KCkgfX08L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ltb24tYm9hcmRcIiBbY2xhc3MuaXMtbG9ja2VkXT1cInBoYXNlKCkgIT09ICd3YWl0aW5nJ1wiPlxuICAgICAgICAgICAgQGZvciAocGFkIG9mIHBhZHM7IHRyYWNrIHBhZC5pZCkge1xuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzaW1vbi1wYWRcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXBhZC1jb2xvcl09XCJwYWQuY29sb3JcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1hY3RpdmVdPVwiYWN0aXZlUGFkKCkgPT09IHBhZC5pZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInBoYXNlKCkgIT09ICd3YWl0aW5nJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRhcChwYWQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHBhZC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ltb24tYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNpbW9uLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicmVzZXRUb1NldHVwKClcIj57eyB0KCdiYWNrVG9TZXR1cCcpIH19PC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ltb24tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic3RhcnQoKVwiPnt7IHQoJ3Jlc3RhcnQnKSB9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2ltb24tbGVhZGVyYm9hcmRcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNpbW9uLWxlYWRlcmJvYXJkX190aXRsZVwiPlxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwidHJvcGh5LW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgIDxoMj57eyBsZWFkZXJib2FyZEhlYWRpbmcoKSB9fTwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKG1vZGVMZWFkZXJib2FyZCgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIDxwPnt7IHQoJ3NpbW9uTGVhZGVyYm9hcmRFbXB0eScpIH19PC9wPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8b2w+XG4gICAgICAgICAgICBAZm9yIChlbnRyeSBvZiBtb2RlTGVhZGVyYm9hcmQoKTsgdHJhY2sgZW50cnkuY3JlYXRlZEF0KSB7XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyAkaW5kZXggKyAxIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgc2NvcmVUZXh0KGVudHJ5KSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxzbWFsbD57eyBkYXRlVGV4dChlbnRyeS5jcmVhdGVkQXQpIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L29sPlxuICAgICAgICB9XG4gICAgICA8L3NlY3Rpb24+XG4gICAgPC9tYWluPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tc2hlbGwge1xuICAgICAgICAtLXNpbW9uLXBhbmVsOiB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCAjZmZmZmZmKTtcbiAgICAgICAgLS1zaW1vbi1ib3JkZXI6IHZhcigtLWlvbi1ib3JkZXItY29sb3IsICNlN2U0ZWEpO1xuICAgICAgICAtLXNpbW9uLXRleHQ6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjMmYyYTNhKTtcbiAgICAgICAgLS1zaW1vbi1tdXRlZDogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzZmNmE3YSk7XG4gICAgICAgIC0tc2ltb24tc29mdDogcmdiYSh2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1yZ2IsIDI1NSwgMCwgMTc4KSwgMC4wOCk7XG4gICAgICAgIC0tc2ltb24tcHJpbWFyeTogdmFyKC0taW9uLWNvbG9yLXByaW1hcnksICNmZjAwYjIpO1xuICAgICAgICAtLXNpbW9uLXNlY29uZGFyeTogdmFyKC0taW9uLWNvbG9yLXRlcnRpYXJ5LCAjNmEyZGUyKTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAxOHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDc2MHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgY29sb3I6IHZhcigtLXNpbW9uLXRleHQpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLnNpbW9uLXNoZWxsLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuc2ltb24tc2hlbGwge1xuICAgICAgICAtLXNpbW9uLXBhbmVsOiAjMjMxZjJkO1xuICAgICAgICAtLXNpbW9uLWJvcmRlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEzKTtcbiAgICAgICAgLS1zaW1vbi10ZXh0OiAjZmZmOGZmO1xuICAgICAgICAtLXNpbW9uLW11dGVkOiByZ2JhKDI1NSwgMjQ4LCAyNTUsIDAuNjgpO1xuICAgICAgICAtLXNpbW9uLXNvZnQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNyk7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1oZXJvIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyOHB4O1xuICAgICAgICBwYWRkaW5nOiBjbGFtcCgyOHB4LCA3dncsIDU0cHgpO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMjAlIDE4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KSwgdHJhbnNwYXJlbnQgMTglKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1zaW1vbi1wcmltYXJ5KSwgdmFyKC0tc2ltb24tc2Vjb25kYXJ5KSk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1oZXJvX19zcGFyayB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4yZW07XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1oZXJvIGgxIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDQ4cHgsIDE0dncsIDg2cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogMC45O1xuICAgICAgICBmb250LXdlaWdodDogOTUwO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24taGVybyBwLFxuICAgICAgLnNpbW9uLWhvd3RvIHAsXG4gICAgICAuc2ltb24tY2FsbG91dCBwLFxuICAgICAgLnNpbW9uLWxlYWRlcmJvYXJkIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLXBhbmVsLFxuICAgICAgLnNpbW9uLWdhbWUsXG4gICAgICAuc2ltb24tbGVhZGVyYm9hcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNpbW9uLWJvcmRlcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDI2cHg7XG4gICAgICAgIHBhZGRpbmc6IGNsYW1wKDE2cHgsIDR2dywgMjRweCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpbW9uLXBhbmVsKTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLWhvd3RvIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpbW9uLXNvZnQpO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24taG93dG8gaDIsXG4gICAgICAuc2ltb24tbGVhZGVyYm9hcmQgaDIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaW1vbi10ZXh0KTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLWhvd3RvIHAsXG4gICAgICAuc2ltb24tbGVhZGVyYm9hcmQgcCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaW1vbi1tdXRlZCk7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1tb2RlcyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tbW9kZXMgYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEyNnB4O1xuICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zaW1vbi1ib3JkZXIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaW1vbi1wYW5lbCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaW1vbi10ZXh0KTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLW1vZGVzIGJ1dHRvbi5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2ltb24tcHJpbWFyeSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXJnYiwgMjU1LCAwLCAxNzgpLCAwLjE2KTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLW1vZGVzIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDk1MDtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLW1vZGVzIHNtYWxsLFxuICAgICAgLnNpbW9uLXN0YXR1cyBzbWFsbCxcbiAgICAgIC5zaW1vbi1sZWFkZXJib2FyZCBzbWFsbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaW1vbi1tdXRlZCk7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1wcmltYXJ5LFxuICAgICAgLnNpbW9uLXNlY29uZGFyeSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDU4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXdlaWdodDogOTUwO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tcHJpbWFyeSB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2ltb24tcHJpbWFyeSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdCwgI2ZmZik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMThweCA0NXB4IHJnYmEodmFyKC0taW9uLWNvbG9yLXByaW1hcnktcmdiLCAyNTUsIDAsIDE3OCksIDAuMjgpO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tc2Vjb25kYXJ5IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc2ltb24tYm9yZGVyKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaW1vbi10ZXh0KTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLXN0YXR1cyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tc3RhdHVzIGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaW1vbi1zb2Z0KTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLXN0YXR1cyBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tY2FsbG91dCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiA3NnB4O1xuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLXN1Y2Nlc3MtcmdiLCA0NSwgMjExLCAxMTEpLCAwLjEyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXNpbW9uLXRleHQpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1jYWxsb3V0LmlzLWZhaWxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhbmdlci1yZ2IsIDIzNSwgNjgsIDkwKSwgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1ib2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDQ4MHB4KTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1wYWQge1xuICAgICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzRweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDMwJSAyNSUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSwgdHJhbnNwYXJlbnQgMjglKSxcbiAgICAgICAgICB2YXIoLS1wYWQtY29sb3IpO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgyOHB4LCA5dncsIDU2cHgpO1xuICAgICAgICBmb250LXdlaWdodDogOTUwO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgLTEycHggMjJweCByZ2JhKDAsIDAsIDAsIDAuMTYpLFxuICAgICAgICAgIDAgMThweCA0MnB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wYWQtY29sb3IpLCB0cmFuc3BhcmVudCA2OCUpO1xuICAgICAgICBvcGFjaXR5OiAwLjgyO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG9wYWNpdHkgMTQwbXMgZWFzZSxcbiAgICAgICAgICB0cmFuc2Zvcm0gMTQwbXMgZWFzZSxcbiAgICAgICAgICBmaWx0ZXIgMTQwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLXBhZC5pcy1hY3RpdmUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4zKSBzYXR1cmF0ZSgxLjIpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDM1KTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLWJvYXJkLmlzLWxvY2tlZCAuc2ltb24tcGFkOm5vdCguaXMtYWN0aXZlKSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNDg7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1hY3Rpb25zIHtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgYm90dG9tOiAxMHB4O1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQsIHZhcigtLXNpbW9uLXBhbmVsKSAyOCUpO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tbGVhZGVyYm9hcmRfX3RpdGxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tbGVhZGVyYm9hcmRfX3RpdGxlIGlvbi1pY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXNpbW9uLXByaW1hcnkpO1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLWxlYWRlcmJvYXJkIG9sIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLWxlYWRlcmJvYXJkIGxpIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzOHB4IDFmciBhdXRvO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpbW9uLXNvZnQpO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tbGVhZGVyYm9hcmQgbGkgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgIGhlaWdodDogMzRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLXByaW1hcnktcmdiLCAyNTUsIDAsIDE3OCksIDAuMTgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tc2ltb24tcHJpbWFyeSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5NTA7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1NjBweCkge1xuICAgICAgICAuc2ltb24tbW9kZXMsXG4gICAgICAgIC5zaW1vbi1zdGF0dXMsXG4gICAgICAgIC5zaW1vbi1hY3Rpb25zIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zaW1vbi1ib2FyZCB7XG4gICAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNpbW9uLXBhZCB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMjZweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNpbW9uR2FtZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXVkaW8gPSBpbmplY3QoUmV0cm9BdWRpb1NlcnZpY2UpO1xuICBwcml2YXRlIHRpbWVyczogbnVtYmVyW10gPSBbXTtcbiAgcHJpdmF0ZSBhY2NlcHRpbmdJbnB1dCA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5IG1vZGVzOiBTaW1vbkdhbWVNb2RlW10gPSBbJ2tpZCcsICdjbGFzc2ljJywgJ25pbmphJ107XG4gIHJlYWRvbmx5IHBhZHMgPSBTSU1PTl9QQURTO1xuICByZWFkb25seSBwaGFzZSA9IHNpZ25hbDxTaW1vbkdhbWVQaGFzZT4oJ2hvbWUnKTtcbiAgcmVhZG9ubHkgbW9kZSA9IHNpZ25hbDxTaW1vbkdhbWVNb2RlPigna2lkJyk7XG4gIHJlYWRvbmx5IHJvdW5kID0gc2lnbmFsKDApO1xuICByZWFkb25seSBzZXF1ZW5jZSA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuICByZWFkb25seSBpbnB1dEluZGV4ID0gc2lnbmFsKDApO1xuICByZWFkb25seSBhY3RpdmVQYWQgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBsZWFkZXJib2FyZCA9IHNpZ25hbDxTaW1vbkxlYWRlcmJvYXJkRW50cnlbXT4odGhpcy5yZWFkTGVhZGVyYm9hcmQoKSk7XG5cbiAgcmVhZG9ubHkgbW9kZUNvbmZpZyA9IGNvbXB1dGVkKCgpID0+IFNJTU9OX01PREVTW3RoaXMubW9kZSgpXSk7XG4gIHJlYWRvbmx5IGJlc3RSb3VuZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubW9kZUxlYWRlcmJvYXJkKClbMF0/LnJvdW5kID8/IDApO1xuICByZWFkb25seSBtb2RlTGVhZGVyYm9hcmQgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMubGVhZGVyYm9hcmQoKVxuICAgICAgLmZpbHRlcigoZW50cnkpID0+IGVudHJ5Lm1vZGUgPT09IHRoaXMubW9kZSgpKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGIucm91bmQgLSBhLnJvdW5kIHx8IGIuc3RlcHMgLSBhLnN0ZXBzKVxuICAgICAgLnNsaWNlKDAsIDUpXG4gICk7XG4gIHJlYWRvbmx5IGxlYWRlcmJvYXJkSGVhZGluZyA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy50KCdzaW1vbkxlYWRlcmJvYXJkTW9kZVRpdGxlJykucmVwbGFjZSgne21vZGV9JywgdGhpcy5tb2RlVGl0bGUodGhpcy5tb2RlKCkpKVxuICApO1xuICByZWFkb25seSBmYWlsQm9keSA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy50KCdzaW1vbkZhaWxlZEJvZHknKS5yZXBsYWNlKCd7cm91bmR9JywgU3RyaW5nKE1hdGgubWF4KDAsIHRoaXMucm91bmQoKSAtIDEpKSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnTWluaUdhbWVzJywgTUlOSV9HQU1FU19JMThOKTtcbiAgICB0aGlzLmF1ZGlvLnN0b3BNdXNpYygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclRpbWVycygpO1xuICAgIHRoaXMuYXVkaW8uc3RvcE11c2ljKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnTWluaUdhbWVzJyk7XG4gIH1cblxuICBzZWxlY3RNb2RlKG1vZGU6IFNpbW9uR2FtZU1vZGUpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGUuc2V0KG1vZGUpO1xuICB9XG5cbiAgbW9kZVRpdGxlKG1vZGU6IFNpbW9uR2FtZU1vZGUpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnQoYHNpbW9uTW9kZSR7dGhpcy5jYXBpdGFsaXplKG1vZGUpfWApO1xuICB9XG5cbiAgbW9kZURlc2NyaXB0aW9uKG1vZGU6IFNpbW9uR2FtZU1vZGUpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnQoYHNpbW9uTW9kZSR7dGhpcy5jYXBpdGFsaXplKG1vZGUpfURlc2NyaXB0aW9uYCk7XG4gIH1cblxuICBzdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyVGltZXJzKCk7XG4gICAgdGhpcy5waGFzZS5zZXQoJ3Nob3dpbmcnKTtcbiAgICB0aGlzLnJvdW5kLnNldCgxKTtcbiAgICB0aGlzLmlucHV0SW5kZXguc2V0KDApO1xuICAgIHRoaXMuc2VxdWVuY2Uuc2V0KHRoaXMuY3JlYXRlSW5pdGlhbFNlcXVlbmNlKCkpO1xuICAgIHRoaXMuc2hvd1NlcXVlbmNlKCk7XG4gIH1cblxuICByZXNldFRvU2V0dXAoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclRpbWVycygpO1xuICAgIHRoaXMucGhhc2Uuc2V0KCdob21lJyk7XG4gICAgdGhpcy5yb3VuZC5zZXQoMCk7XG4gICAgdGhpcy5zZXF1ZW5jZS5zZXQoW10pO1xuICAgIHRoaXMuaW5wdXRJbmRleC5zZXQoMCk7XG4gICAgdGhpcy5hY3RpdmVQYWQuc2V0KHVuZGVmaW5lZCk7XG4gIH1cblxuICB0YXAocGFkOiBTaW1vblBhZCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBoYXNlKCkgIT09ICd3YWl0aW5nJyB8fCAhdGhpcy5hY2NlcHRpbmdJbnB1dCkgcmV0dXJuO1xuICAgIHRoaXMuZmxhc2hQYWQocGFkLmlkLCAxODApO1xuICAgIHRoaXMuYXVkaW8uc2ltb25QYWQocGFkLnRvbmUpO1xuICAgIGNvbnN0IGV4cGVjdGVkID0gdGhpcy5zZXF1ZW5jZSgpW3RoaXMuaW5wdXRJbmRleCgpXTtcbiAgICBpZiAocGFkLmlkICE9PSBleHBlY3RlZCkge1xuICAgICAgdGhpcy5mYWlsKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRJbmRleCA9IHRoaXMuaW5wdXRJbmRleCgpICsgMTtcbiAgICB0aGlzLmlucHV0SW5kZXguc2V0KG5leHRJbmRleCk7XG4gICAgaWYgKG5leHRJbmRleCA8IHRoaXMuc2VxdWVuY2UoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYXVkaW8uc2ltb25TdGVwT2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb21wbGV0ZVJvdW5kKCk7XG4gIH1cblxuICBzY29yZVRleHQoZW50cnk6IFNpbW9uTGVhZGVyYm9hcmRFbnRyeSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudCgnc2ltb25TY29yZScpXG4gICAgICAucmVwbGFjZSgne3JvdW5kfScsIFN0cmluZyhlbnRyeS5yb3VuZCkpXG4gICAgICAucmVwbGFjZSgne3N0ZXBzfScsIFN0cmluZyhlbnRyeS5zdGVwcykpO1xuICB9XG5cbiAgZGF0ZVRleHQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlLnNsaWNlKDAsIDEwKTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcGxldGVSb3VuZCgpOiB2b2lkIHtcbiAgICB0aGlzLmFjY2VwdGluZ0lucHV0ID0gZmFsc2U7XG4gICAgdGhpcy5waGFzZS5zZXQoJ3N1Y2Nlc3MnKTtcbiAgICB0aGlzLmF1ZGlvLnNpbW9uUm91bmRPaygpO1xuICAgIHRoaXMuc2F2ZVNjb3JlKHRoaXMucm91bmQoKSwgdGhpcy5zZXF1ZW5jZSgpLmxlbmd0aCk7XG4gICAgdGhpcy5zZXRUaW1lcigoKSA9PiB7XG4gICAgICB0aGlzLnJvdW5kLnNldCh0aGlzLnJvdW5kKCkgKyAxKTtcbiAgICAgIHRoaXMuc2VxdWVuY2UudXBkYXRlKChjdXJyZW50KSA9PiBbLi4uY3VycmVudCwgdGhpcy5yYW5kb21QYWRJZCgpXSk7XG4gICAgICB0aGlzLnNob3dTZXF1ZW5jZSgpO1xuICAgIH0sIHRoaXMubW9kZSgpID09PSAnbmluamEnID8gNTIwIDogNzYwKTtcbiAgfVxuXG4gIHByaXZhdGUgZmFpbCgpOiB2b2lkIHtcbiAgICB0aGlzLmFjY2VwdGluZ0lucHV0ID0gZmFsc2U7XG4gICAgdGhpcy5waGFzZS5zZXQoJ2ZhaWxlZCcpO1xuICAgIHRoaXMuYWN0aXZlUGFkLnNldCh1bmRlZmluZWQpO1xuICAgIHRoaXMuYXVkaW8uc2ltb25GYWlsKCk7XG4gICAgdGhpcy5zYXZlU2NvcmUoTWF0aC5tYXgoMCwgdGhpcy5yb3VuZCgpIC0gMSksIE1hdGgubWF4KDAsIHRoaXMuc2VxdWVuY2UoKS5sZW5ndGggLSAxKSk7XG4gIH1cblxuICBwcml2YXRlIHNob3dTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyVGltZXJzKCk7XG4gICAgdGhpcy5hY2NlcHRpbmdJbnB1dCA9IGZhbHNlO1xuICAgIHRoaXMuaW5wdXRJbmRleC5zZXQoMCk7XG4gICAgdGhpcy5waGFzZS5zZXQoJ3Nob3dpbmcnKTtcbiAgICBjb25zdCB7IHNob3dNcywgZ2FwTXMgfSA9IHRoaXMubW9kZUNvbmZpZygpO1xuICAgIGxldCBkZWxheSA9IDI4MDtcbiAgICB0aGlzLnNlcXVlbmNlKCkuZm9yRWFjaCgocGFkSWQpID0+IHtcbiAgICAgIHRoaXMuc2V0VGltZXIoKCkgPT4ge1xuICAgICAgICBjb25zdCBwYWQgPSB0aGlzLnBhZHMuZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gcGFkSWQpO1xuICAgICAgICBpZiAocGFkKSB0aGlzLmF1ZGlvLnNpbW9uUGFkKHBhZC50b25lKTtcbiAgICAgICAgdGhpcy5hY3RpdmVQYWQuc2V0KHBhZElkKTtcbiAgICAgIH0sIGRlbGF5KTtcbiAgICAgIHRoaXMuc2V0VGltZXIoKCkgPT4gdGhpcy5hY3RpdmVQYWQuc2V0KHVuZGVmaW5lZCksIGRlbGF5ICsgc2hvd01zKTtcbiAgICAgIGRlbGF5ICs9IHNob3dNcyArIGdhcE1zO1xuICAgIH0pO1xuICAgIHRoaXMuc2V0VGltZXIoKCkgPT4ge1xuICAgICAgdGhpcy5waGFzZS5zZXQoJ3dhaXRpbmcnKTtcbiAgICAgIHRoaXMuYWNjZXB0aW5nSW5wdXQgPSB0cnVlO1xuICAgIH0sIGRlbGF5ICsgMTAwKTtcbiAgfVxuXG4gIHByaXZhdGUgZmxhc2hQYWQocGFkSWQ6IHN0cmluZywgbXM6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlUGFkLnNldChwYWRJZCk7XG4gICAgdGhpcy5zZXRUaW1lcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hY3RpdmVQYWQoKSA9PT0gcGFkSWQpIHRoaXMuYWN0aXZlUGFkLnNldCh1bmRlZmluZWQpO1xuICAgIH0sIG1zKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSW5pdGlhbFNlcXVlbmNlKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogdGhpcy5tb2RlQ29uZmlnKCkuc3RhcnRTdGVwcyB9LCAoKSA9PiB0aGlzLnJhbmRvbVBhZElkKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSByYW5kb21QYWRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBhZHNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGhpcy5wYWRzLmxlbmd0aCldLmlkO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZlU2NvcmUocm91bmQ6IG51bWJlciwgc3RlcHM6IG51bWJlcik6IHZvaWQge1xuICAgIGlmIChyb3VuZCA8PSAwKSByZXR1cm47XG4gICAgY29uc3QgZW50cnk6IFNpbW9uTGVhZGVyYm9hcmRFbnRyeSA9IHtcbiAgICAgIG1vZGU6IHRoaXMubW9kZSgpLFxuICAgICAgcm91bmQsXG4gICAgICBzdGVwcyxcbiAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIH07XG4gICAgY29uc3QgdXBkYXRlZCA9IFtlbnRyeSwgLi4udGhpcy5sZWFkZXJib2FyZCgpXVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGIucm91bmQgLSBhLnJvdW5kIHx8IGIuc3RlcHMgLSBhLnN0ZXBzKVxuICAgICAgLnNsaWNlKDAsIDQwKTtcbiAgICB0aGlzLmxlYWRlcmJvYXJkLnNldCh1cGRhdGVkKTtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oTEVBREVSQk9BUkRfS0VZLCBKU09OLnN0cmluZ2lmeSh1cGRhdGVkKSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBFbCByYW5raW5nIGxvY2FsIG5vIGVzIGNyw610aWNvIHNpIHN0b3JhZ2Ugbm8gZXN0w6EgZGlzcG9uaWJsZS5cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlYWRMZWFkZXJib2FyZCgpOiBTaW1vbkxlYWRlcmJvYXJkRW50cnlbXSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJhdyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKExFQURFUkJPQVJEX0tFWSk7XG4gICAgICBjb25zdCBwYXJzZWQgPSByYXcgPyAoSlNPTi5wYXJzZShyYXcpIGFzIFNpbW9uTGVhZGVyYm9hcmRFbnRyeVtdKSA6IFtdO1xuICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocGFyc2VkKSA/IHBhcnNlZCA6IFtdO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VGltZXIoY2FsbGJhY2s6ICgpID0+IHZvaWQsIG1zOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBpZCA9IHdpbmRvdy5zZXRUaW1lb3V0KGNhbGxiYWNrLCBtcyk7XG4gICAgdGhpcy50aW1lcnMucHVzaChpZCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyVGltZXJzKCk6IHZvaWQge1xuICAgIHRoaXMudGltZXJzLmZvckVhY2goKGlkKSA9PiB3aW5kb3cuY2xlYXJUaW1lb3V0KGlkKSk7XG4gICAgdGhpcy50aW1lcnMgPSBbXTtcbiAgICB0aGlzLmFjY2VwdGluZ0lucHV0ID0gZmFsc2U7XG4gICAgdGhpcy5hY3RpdmVQYWQuc2V0KHVuZGVmaW5lZCk7XG4gIH1cblxuICBwcml2YXRlIGNhcGl0YWxpemUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3ZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7dmFsdWUuc2xpY2UoMSl9YDtcbiAgfVxufVxuIl19
529
+
530
+ <ion-modal
531
+ [isOpen]="!!confirmAction()"
532
+ cssClass="val-modal-adaptive"
533
+ (didDismiss)="closeConfirmModal()"
534
+ >
535
+ <ng-template>
536
+ <val-modal-layout
537
+ [title]="confirmTitle()"
538
+ [subtitle]="confirmBody()"
539
+ [closeLabel]="t('close')"
540
+ [actions]="confirmActions()"
541
+ actionsAlign="end"
542
+ (close)="closeConfirmModal()"
543
+ (actionClick)="confirmPendingAction($event.action?.token)"
544
+ />
545
+ </ng-template>
546
+ </ion-modal>
547
+ `, styles: [":host{display:block}.simon-shell{--simon-panel: var(--ion-card-background, #ffffff);--simon-border: var(--ion-border-color, #e7e4ea);--simon-text: var(--ion-color-dark, #2f2a3a);--simon-muted: var(--ion-color-medium, #6f6a7a);--simon-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--simon-primary: var(--ion-color-primary, #ff00b2);--simon-secondary: var(--ion-color-tertiary, #6a2de2);display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--simon-text)}:host-context(html.ion-palette-dark) .simon-shell,:host-context([data-theme=\"dark\"]) .simon-shell{--simon-panel: #231f2d;--simon-border: rgba(255, 255, 255, .13);--simon-text: #fff8ff;--simon-muted: rgba(255, 248, 255, .68);--simon-soft: rgba(255, 255, 255, .07)}.simon-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,54px);background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.55),transparent 18%),linear-gradient(135deg,var(--simon-primary),var(--simon-secondary));color:#fff;text-align:center}.simon-hero__spark{font-size:1.8rem;letter-spacing:.2em}.simon-hero h1{margin:0;font-size:clamp(48px,14vw,86px);line-height:.9;font-weight:950}.simon-hero p,.simon-howto p,.simon-callout p,.simon-leaderboard p{margin:0;color:inherit;line-height:1.45}.simon-panel,.simon-game,.simon-leaderboard{display:grid;gap:16px;border:1px solid var(--simon-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--simon-panel)}.simon-howto{display:grid;gap:6px;padding:16px;border-radius:20px;background:var(--simon-soft)}.simon-howto h2,.simon-leaderboard h2{margin:0;color:var(--simon-text)}.simon-howto p,.simon-leaderboard p{color:var(--simon-muted)}.simon-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-modes button{display:grid;gap:6px;min-height:126px;padding:14px;border:1px solid var(--simon-border);border-radius:22px;background:var(--simon-panel);color:var(--simon-text);font:inherit;text-align:left}.simon-modes button.is-selected{border-color:var(--simon-primary);box-shadow:0 0 0 2px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.16)}.simon-modes strong{font-size:1rem;font-weight:950}.simon-modes small,.simon-status small,.simon-leaderboard small{color:var(--simon-muted)}.simon-primary,.simon-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.simon-primary{border:0;background:var(--simon-primary);color:var(--ion-color-primary-contrast, #fff);box-shadow:0 18px 45px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.28)}.simon-secondary{border:1px solid var(--simon-border);background:transparent;color:var(--simon-text)}.simon-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.simon-status div{display:grid;gap:2px;padding:14px;border-radius:18px;background:var(--simon-soft)}.simon-status strong{font-size:2rem;line-height:1}.simon-callout{display:grid;gap:4px;min-height:76px;align-content:center;padding:16px;border-radius:20px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);color:var(--simon-text);text-align:center}.simon-callout.is-failed{background:rgba(var(--ion-color-danger-rgb, 235, 68, 90),.12)}.simon-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(100%,480px);margin:0 auto}.simon-pad{aspect-ratio:1;border:0;border-radius:34px;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.7),transparent 28%),var(--pad-color);color:#fff;font:inherit;font-size:clamp(28px,9vw,56px);font-weight:950;box-shadow:inset 0 -12px 22px #00000029,0 18px 42px color-mix(in srgb,var(--pad-color),transparent 68%);opacity:.82;transform:scale(.98);transition:opacity .14s ease,transform .14s ease,filter .14s ease}.simon-pad.is-active{opacity:1;filter:brightness(1.3) saturate(1.2);transform:scale(1.035)}.simon-board.is-locked .simon-pad:not(.is-active){opacity:.48}.simon-actions{position:sticky;bottom:10px;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:4px;padding-top:12px;background:linear-gradient(to bottom,transparent,var(--simon-panel) 28%)}.simon-menu-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:10px}.simon-leaderboard__title{display:flex;align-items:center;gap:10px}.simon-leaderboard__title ion-icon{color:var(--simon-primary);font-size:1.4rem}.simon-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.simon-leaderboard li{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:12px;border-radius:16px;background:var(--simon-soft)}.simon-leaderboard li>span{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:rgba(var(--ion-color-primary-rgb, 255, 0, 178),.18);color:var(--simon-primary);font-weight:950}@media (max-width: 560px){.simon-modes,.simon-status,.simon-actions,.simon-menu-actions{grid-template-columns:1fr}.simon-board{gap:10px}.simon-pad{border-radius:26px}}\n"] }]
548
+ }], ctorParameters: () => [], propDecorators: { miniGamesRoute: [{
549
+ type: Input
550
+ }] } });
551
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltb24tZ2FtZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21pbmktZ2FtZXMvc2ltb24tZ2FtZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQzs7QUFHM0YsUUFBUSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztBQWdCNUIsTUFBTSxXQUFXLEdBQTJDO0lBQzFELEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUU7SUFDNUQsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRTtJQUNwRSxLQUFLLEVB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThIVCxnNUpBL0hTLE9BQU8sMkpBQUUsUUFBUSxzREFBRSxvQkFBb0I7OzRGQThhdEMsa0JBQWtCO2tCQWpiOUIsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixDQUFDLFlBQ3hDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4SFQ7d0RBc1RRLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkljb24sIElvbk1vZGFsIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IHRyb3BoeU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBNSU5JX0dBTUVTX0kxOE4gfSBmcm9tICcuL21pbmktZ2FtZXMuaTE4bic7XG5pbXBvcnQgeyBSZXRyb0F1ZGlvU2VydmljZSB9IGZyb20gJy4vcmV0cm8tYXVkaW8uc2VydmljZSc7XG5pbXBvcnQgeyBTaW1vbkdhbWVNb2RlLCBTaW1vbkdhbWVQaGFzZSwgU2ltb25QYWQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IE1vZGFsTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL21vZGFsLWxheW91dC9tb2RhbC1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5hZGRJY29ucyh7IHRyb3BoeU91dGxpbmUgfSk7XG5cbmludGVyZmFjZSBTaW1vbk1vZGVDb25maWcge1xuICBtb2RlOiBTaW1vbkdhbWVNb2RlO1xuICBzaG93TXM6IG51bWJlcjtcbiAgZ2FwTXM6IG51bWJlcjtcbiAgc3RhcnRTdGVwczogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgU2ltb25MZWFkZXJib2FyZEVudHJ5IHtcbiAgbW9kZTogU2ltb25HYW1lTW9kZTtcbiAgcm91bmQ6IG51bWJlcjtcbiAgc3RlcHM6IG51bWJlcjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG59XG5cbmNvbnN0IFNJTU9OX01PREVTOiBSZWNvcmQ8U2ltb25HYW1lTW9kZSwgU2ltb25Nb2RlQ29uZmlnPiA9IHtcbiAga2lkOiB7IG1vZGU6ICdraWQnLCBzaG93TXM6IDcyMCwgZ2FwTXM6IDI4MCwgc3RhcnRTdGVwczogMSB9LFxuICBjbGFzc2ljOiB7IG1vZGU6ICdjbGFzc2ljJywgc2hvd01zOiA1MjAsIGdhcE1zOiAyMTAsIHN0YXJ0U3RlcHM6IDEgfSxcbiAgbmluamE6IHsgbW9kZTogJ25pbmphJywgc2hvd01zOiAzNDAsIGdhcE1zOiAxNTAsIHN0YXJ0U3RlcHM6IDIgfSxcbn07XG5cbmNvbnN0IFNJTU9OX1BBRFM6IFNpbW9uUGFkW10gPSBbXG4gIHsgaWQ6ICdwaW5rJywgbGFiZWw6ICcxJywgY29sb3I6ICcjZmYwMGIyJywgdG9uZTogMzI5LjYzIH0sXG4gIHsgaWQ6ICdjeWFuJywgbGFiZWw6ICcyJywgY29sb3I6ICcjMDBiY2Q0JywgdG9uZTogMzkyIH0sXG4gIHsgaWQ6ICd5ZWxsb3cnLCBsYWJlbDogJzMnLCBjb2xvcjogJyNmZmM0MDknLCB0b25lOiA0OTMuODggfSxcbiAgeyBpZDogJ3B1cnBsZScsIGxhYmVsOiAnNCcsIGNvbG9yOiAnIzZhMmRlMicsIHRvbmU6IDY1OS4yNSB9LFxuXTtcblxuY29uc3QgTEVBREVSQk9BUkRfS0VZID0gJ3ZhbC1taW5pLWdhbWVzLXNpbW9uLWxlYWRlcmJvYXJkOnYxJztcbnR5cGUgU2ltb25Db25maXJtQWN0aW9uID0gJ3Jlc3RhcnQnIHwgJ21vZGUnIHwgJ2dhbWVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNpbW9uLWdhbWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSW9uSWNvbiwgSW9uTW9kYWwsIE1vZGFsTGF5b3V0Q29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bWFpbiBjbGFzcz1cInNpbW9uLXNoZWxsXCI+XG4gICAgICBAaWYgKHBoYXNlKCkgPT09ICdob21lJykge1xuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInNpbW9uLWhlcm9cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNpbW9uLWhlcm9fX3NwYXJrXCI+4pePIOKXjyDil48g4pePPC9zcGFuPlxuICAgICAgICAgIDxoMT57eyB0KCdzaW1vbkhvbWVUaXRsZScpIH19PC9oMT5cbiAgICAgICAgICA8cD57eyB0KCdzaW1vbkhvbWVTdWJ0aXRsZScpIH19PC9wPlxuICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzaW1vbi1wYW5lbFwiPlxuICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPVwic2ltb24taG93dG9cIj5cbiAgICAgICAgICAgIDxoMj57eyB0KCdzaW1vbkhvd1RvVGl0bGUnKSB9fTwvaDI+XG4gICAgICAgICAgICA8cD57eyB0KCdzaW1vbkhvd1RvQm9keScpIH19PC9wPlxuICAgICAgICAgIDwvYXJ0aWNsZT5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaW1vbi1tb2Rlc1wiIHJvbGU9XCJyYWRpb2dyb3VwXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdtb2RlVGl0bGUnKVwiPlxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBtb2RlczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cIm1vZGUoKSA9PT0gaXRlbVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE1vZGUoaXRlbSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyBtb2RlVGl0bGUoaXRlbSkgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8c21hbGw+e3sgbW9kZURlc2NyaXB0aW9uKGl0ZW0pIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2ltb24tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic3RhcnQoKVwiPnt7IHQoJ3NpbW9uU3RhcnQnKSB9fTwvYnV0dG9uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaW1vbi1tZW51LWFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzaW1vbi1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlcXVlc3RDaGFuZ2VHYW1lKClcIj5cbiAgICAgICAgICAgICAge3sgdCgnY2hhbmdlR2FtZScpIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2ltb24tZ2FtZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaW1vbi1zdGF0dXNcIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxzbWFsbD57eyB0KCdzaW1vblJvdW5kJykgfX08L3NtYWxsPlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IHJvdW5kKCkgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHNtYWxsPnt7IHQoJ3NpbW9uU3RlcHMnKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgc2VxdWVuY2UoKS5sZW5ndGggfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHNtYWxsPnt7IHQoJ3NpbW9uQmVzdFJvdW5kJykgfX08L3NtYWxsPlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IGJlc3RSb3VuZCgpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaW1vbi1jYWxsb3V0XCIgW2NsYXNzLmlzLWZhaWxlZF09XCJwaGFzZSgpID09PSAnZmFpbGVkJ1wiPlxuICAgICAgICAgICAgQGlmIChwaGFzZSgpID09PSAnc2hvd2luZycpIHtcbiAgICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdzaW1vbldhdGNoJykgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKHBoYXNlKCkgPT09ICd3YWl0aW5nJykge1xuICAgICAgICAgICAgICA8c3Ryb25nPnt7IHQoJ3NpbW9uUmVwZWF0JykgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKHBoYXNlKCkgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgICA8c3Ryb25nPnt7IHQoJ3NpbW9uR29vZCcpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdzaW1vbkZhaWxlZCcpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDxwPnt7IGZhaWxCb2R5KCkgfX08L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ltb24tYm9hcmRcIiBbY2xhc3MuaXMtbG9ja2VkXT1cInBoYXNlKCkgIT09ICd3YWl0aW5nJ1wiPlxuICAgICAgICAgICAgQGZvciAocGFkIG9mIHBhZHM7IHRyYWNrIHBhZC5pZCkge1xuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzaW1vbi1wYWRcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXBhZC1jb2xvcl09XCJwYWQuY29sb3JcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1hY3RpdmVdPVwiYWN0aXZlUGFkKCkgPT09IHBhZC5pZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInBoYXNlKCkgIT09ICd3YWl0aW5nJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRhcChwYWQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHBhZC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ltb24tYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNpbW9uLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicmVxdWVzdENoYW5nZU1vZGUoKVwiPnt7IHQoJ2JhY2tUb1NldHVwJykgfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzaW1vbi1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlcXVlc3RDaGFuZ2VHYW1lKClcIj57eyB0KCdjaGFuZ2VHYW1lJykgfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzaW1vbi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJyZXF1ZXN0UmVzdGFydEdhbWUoKVwiPnt7IHQoJ3Jlc3RhcnQnKSB9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2ltb24tbGVhZGVyYm9hcmRcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNpbW9uLWxlYWRlcmJvYXJkX190aXRsZVwiPlxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwidHJvcGh5LW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgIDxoMj57eyBsZWFkZXJib2FyZEhlYWRpbmcoKSB9fTwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKG1vZGVMZWFkZXJib2FyZCgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIDxwPnt7IHQoJ3NpbW9uTGVhZGVyYm9hcmRFbXB0eScpIH19PC9wPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8b2w+XG4gICAgICAgICAgICBAZm9yIChlbnRyeSBvZiBtb2RlTGVhZGVyYm9hcmQoKTsgdHJhY2sgZW50cnkuY3JlYXRlZEF0KSB7XG4gICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyAkaW5kZXggKyAxIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgc2NvcmVUZXh0KGVudHJ5KSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxzbWFsbD57eyBkYXRlVGV4dChlbnRyeS5jcmVhdGVkQXQpIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L29sPlxuICAgICAgICB9XG4gICAgICA8L3NlY3Rpb24+XG4gICAgPC9tYWluPlxuXG4gICAgPGlvbi1tb2RhbFxuICAgICAgW2lzT3Blbl09XCIhIWNvbmZpcm1BY3Rpb24oKVwiXG4gICAgICBjc3NDbGFzcz1cInZhbC1tb2RhbC1hZGFwdGl2ZVwiXG4gICAgICAoZGlkRGlzbWlzcyk9XCJjbG9zZUNvbmZpcm1Nb2RhbCgpXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgIDx2YWwtbW9kYWwtbGF5b3V0XG4gICAgICAgICAgW3RpdGxlXT1cImNvbmZpcm1UaXRsZSgpXCJcbiAgICAgICAgICBbc3VidGl0bGVdPVwiY29uZmlybUJvZHkoKVwiXG4gICAgICAgICAgW2Nsb3NlTGFiZWxdPVwidCgnY2xvc2UnKVwiXG4gICAgICAgICAgW2FjdGlvbnNdPVwiY29uZmlybUFjdGlvbnMoKVwiXG4gICAgICAgICAgYWN0aW9uc0FsaWduPVwiZW5kXCJcbiAgICAgICAgICAoY2xvc2UpPVwiY2xvc2VDb25maXJtTW9kYWwoKVwiXG4gICAgICAgICAgKGFjdGlvbkNsaWNrKT1cImNvbmZpcm1QZW5kaW5nQWN0aW9uKCRldmVudC5hY3Rpb24/LnRva2VuKVwiXG4gICAgICAgIC8+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaW9uLW1vZGFsPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tc2hlbGwge1xuICAgICAgICAtLXNpbW9uLXBhbmVsOiB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCAjZmZmZmZmKTtcbiAgICAgICAgLS1zaW1vbi1ib3JkZXI6IHZhcigtLWlvbi1ib3JkZXItY29sb3IsICNlN2U0ZWEpO1xuICAgICAgICAtLXNpbW9uLXRleHQ6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjMmYyYTNhKTtcbiAgICAgICAgLS1zaW1vbi1tdXRlZDogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzZmNmE3YSk7XG4gICAgICAgIC0tc2ltb24tc29mdDogcmdiYSh2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1yZ2IsIDI1NSwgMCwgMTc4KSwgMC4wOCk7XG4gICAgICAgIC0tc2ltb24tcHJpbWFyeTogdmFyKC0taW9uLWNvbG9yLXByaW1hcnksICNmZjAwYjIpO1xuICAgICAgICAtLXNpbW9uLXNlY29uZGFyeTogdmFyKC0taW9uLWNvbG9yLXRlcnRpYXJ5LCAjNmEyZGUyKTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAxOHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDc2MHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgY29sb3I6IHZhcigtLXNpbW9uLXRleHQpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLnNpbW9uLXNoZWxsLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuc2ltb24tc2hlbGwge1xuICAgICAgICAtLXNpbW9uLXBhbmVsOiAjMjMxZjJkO1xuICAgICAgICAtLXNpbW9uLWJvcmRlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEzKTtcbiAgICAgICAgLS1zaW1vbi10ZXh0OiAjZmZmOGZmO1xuICAgICAgICAtLXNpbW9uLW11dGVkOiByZ2JhKDI1NSwgMjQ4LCAyNTUsIDAuNjgpO1xuICAgICAgICAtLXNpbW9uLXNvZnQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNyk7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1oZXJvIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyOHB4O1xuICAgICAgICBwYWRkaW5nOiBjbGFtcCgyOHB4LCA3dncsIDU0cHgpO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMjAlIDE4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU1KSwgdHJhbnNwYXJlbnQgMTglKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1zaW1vbi1wcmltYXJ5KSwgdmFyKC0tc2ltb24tc2Vjb25kYXJ5KSk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1oZXJvX19zcGFyayB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4yZW07XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1oZXJvIGgxIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDQ4cHgsIDE0dncsIDg2cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogMC45O1xuICAgICAgICBmb250LXdlaWdodDogOTUwO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24taGVybyBwLFxuICAgICAgLnNpbW9uLWhvd3RvIHAsXG4gICAgICAuc2ltb24tY2FsbG91dCBwLFxuICAgICAgLnNpbW9uLWxlYWRlcmJvYXJkIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLXBhbmVsLFxuICAgICAgLnNpbW9uLWdhbWUsXG4gICAgICAuc2ltb24tbGVhZGVyYm9hcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNpbW9uLWJvcmRlcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDI2cHg7XG4gICAgICAgIHBhZGRpbmc6IGNsYW1wKDE2cHgsIDR2dywgMjRweCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpbW9uLXBhbmVsKTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLWhvd3RvIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpbW9uLXNvZnQpO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24taG93dG8gaDIsXG4gICAgICAuc2ltb24tbGVhZGVyYm9hcmQgaDIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaW1vbi10ZXh0KTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLWhvd3RvIHAsXG4gICAgICAuc2ltb24tbGVhZGVyYm9hcmQgcCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaW1vbi1tdXRlZCk7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1tb2RlcyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tbW9kZXMgYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEyNnB4O1xuICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zaW1vbi1ib3JkZXIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaW1vbi1wYW5lbCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaW1vbi10ZXh0KTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLW1vZGVzIGJ1dHRvbi5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc2ltb24tcHJpbWFyeSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXJnYiwgMjU1LCAwLCAxNzgpLCAwLjE2KTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLW1vZGVzIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDk1MDtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLW1vZGVzIHNtYWxsLFxuICAgICAgLnNpbW9uLXN0YXR1cyBzbWFsbCxcbiAgICAgIC5zaW1vbi1sZWFkZXJib2FyZCBzbWFsbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaW1vbi1tdXRlZCk7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1wcmltYXJ5LFxuICAgICAgLnNpbW9uLXNlY29uZGFyeSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDU4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXdlaWdodDogOTUwO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tcHJpbWFyeSB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2ltb24tcHJpbWFyeSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdCwgI2ZmZik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMThweCA0NXB4IHJnYmEodmFyKC0taW9uLWNvbG9yLXByaW1hcnktcmdiLCAyNTUsIDAsIDE3OCksIDAuMjgpO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tc2Vjb25kYXJ5IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc2ltb24tYm9yZGVyKTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zaW1vbi10ZXh0KTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLXN0YXR1cyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tc3RhdHVzIGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaW1vbi1zb2Z0KTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLXN0YXR1cyBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tY2FsbG91dCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiA3NnB4O1xuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLXN1Y2Nlc3MtcmdiLCA0NSwgMjExLCAxMTEpLCAwLjEyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLXNpbW9uLXRleHQpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1jYWxsb3V0LmlzLWZhaWxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhbmdlci1yZ2IsIDIzNSwgNjgsIDkwKSwgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1ib2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDQ4MHB4KTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1wYWQge1xuICAgICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzRweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDMwJSAyNSUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSwgdHJhbnNwYXJlbnQgMjglKSxcbiAgICAgICAgICB2YXIoLS1wYWQtY29sb3IpO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgyOHB4LCA5dncsIDU2cHgpO1xuICAgICAgICBmb250LXdlaWdodDogOTUwO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgLTEycHggMjJweCByZ2JhKDAsIDAsIDAsIDAuMTYpLFxuICAgICAgICAgIDAgMThweCA0MnB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wYWQtY29sb3IpLCB0cmFuc3BhcmVudCA2OCUpO1xuICAgICAgICBvcGFjaXR5OiAwLjgyO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG9wYWNpdHkgMTQwbXMgZWFzZSxcbiAgICAgICAgICB0cmFuc2Zvcm0gMTQwbXMgZWFzZSxcbiAgICAgICAgICBmaWx0ZXIgMTQwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLXBhZC5pcy1hY3RpdmUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4zKSBzYXR1cmF0ZSgxLjIpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDM1KTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLWJvYXJkLmlzLWxvY2tlZCAuc2ltb24tcGFkOm5vdCguaXMtYWN0aXZlKSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNDg7XG4gICAgICB9XG5cbiAgICAgIC5zaW1vbi1hY3Rpb25zIHtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgYm90dG9tOiAxMHB4O1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQsIHZhcigtLXNpbW9uLXBhbmVsKSAyOCUpO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tbWVudS1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCg5cmVtLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tbGVhZGVyYm9hcmRfX3RpdGxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tbGVhZGVyYm9hcmRfX3RpdGxlIGlvbi1pY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXNpbW9uLXByaW1hcnkpO1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLWxlYWRlcmJvYXJkIG9sIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnNpbW9uLWxlYWRlcmJvYXJkIGxpIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzOHB4IDFmciBhdXRvO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpbW9uLXNvZnQpO1xuICAgICAgfVxuXG4gICAgICAuc2ltb24tbGVhZGVyYm9hcmQgbGkgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgIGhlaWdodDogMzRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLXByaW1hcnktcmdiLCAyNTUsIDAsIDE3OCksIDAuMTgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tc2ltb24tcHJpbWFyeSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5NTA7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1NjBweCkge1xuICAgICAgICAuc2ltb24tbW9kZXMsXG4gICAgICAgIC5zaW1vbi1zdGF0dXMsXG4gICAgICAgIC5zaW1vbi1hY3Rpb25zLFxuICAgICAgICAuc2ltb24tbWVudS1hY3Rpb25zIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zaW1vbi1ib2FyZCB7XG4gICAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNpbW9uLXBhZCB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMjZweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNpbW9uR2FtZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXVkaW8gPSBpbmplY3QoUmV0cm9BdWRpb1NlcnZpY2UpO1xuICBwcml2YXRlIHRpbWVyczogbnVtYmVyW10gPSBbXTtcbiAgcHJpdmF0ZSBhY2NlcHRpbmdJbnB1dCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIG1pbmlHYW1lc1JvdXRlID0gJy9taW5pLWdhbWVzJztcblxuICByZWFkb25seSBtb2RlczogU2ltb25HYW1lTW9kZVtdID0gWydraWQnLCAnY2xhc3NpYycsICduaW5qYSddO1xuICByZWFkb25seSBwYWRzID0gU0lNT05fUEFEUztcbiAgcmVhZG9ubHkgcGhhc2UgPSBzaWduYWw8U2ltb25HYW1lUGhhc2U+KCdob21lJyk7XG4gIHJlYWRvbmx5IG1vZGUgPSBzaWduYWw8U2ltb25HYW1lTW9kZT4oJ2tpZCcpO1xuICByZWFkb25seSByb3VuZCA9IHNpZ25hbCgwKTtcbiAgcmVhZG9ubHkgc2VxdWVuY2UgPSBzaWduYWw8c3RyaW5nW10+KFtdKTtcbiAgcmVhZG9ubHkgaW5wdXRJbmRleCA9IHNpZ25hbCgwKTtcbiAgcmVhZG9ubHkgYWN0aXZlUGFkID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbGVhZGVyYm9hcmQgPSBzaWduYWw8U2ltb25MZWFkZXJib2FyZEVudHJ5W10+KHRoaXMucmVhZExlYWRlcmJvYXJkKCkpO1xuICByZWFkb25seSBjb25maXJtQWN0aW9uID0gc2lnbmFsPFNpbW9uQ29uZmlybUFjdGlvbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSBtb2RlQ29uZmlnID0gY29tcHV0ZWQoKCkgPT4gU0lNT05fTU9ERVNbdGhpcy5tb2RlKCldKTtcbiAgcmVhZG9ubHkgYmVzdFJvdW5kID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tb2RlTGVhZGVyYm9hcmQoKVswXT8ucm91bmQgPz8gMCk7XG4gIHJlYWRvbmx5IG1vZGVMZWFkZXJib2FyZCA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5sZWFkZXJib2FyZCgpXG4gICAgICAuZmlsdGVyKChlbnRyeSkgPT4gZW50cnkubW9kZSA9PT0gdGhpcy5tb2RlKCkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYi5yb3VuZCAtIGEucm91bmQgfHwgYi5zdGVwcyAtIGEuc3RlcHMpXG4gICAgICAuc2xpY2UoMCwgNSlcbiAgKTtcbiAgcmVhZG9ubHkgbGVhZGVyYm9hcmRIZWFkaW5nID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLnQoJ3NpbW9uTGVhZGVyYm9hcmRNb2RlVGl0bGUnKS5yZXBsYWNlKCd7bW9kZX0nLCB0aGlzLm1vZGVUaXRsZSh0aGlzLm1vZGUoKSkpXG4gICk7XG4gIHJlYWRvbmx5IGZhaWxCb2R5ID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLnQoJ3NpbW9uRmFpbGVkQm9keScpLnJlcGxhY2UoJ3tyb3VuZH0nLCBTdHJpbmcoTWF0aC5tYXgoMCwgdGhpcy5yb3VuZCgpIC0gMSkpKVxuICApO1xuICByZWFkb25seSBjb25maXJtVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5jb25maXJtQWN0aW9uKCk7XG4gICAgaWYgKGFjdGlvbiA9PT0gJ3Jlc3RhcnQnKSByZXR1cm4gdGhpcy50KCdjb25maXJtUmVzdGFydFRpdGxlJyk7XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2dhbWVzJykgcmV0dXJuIHRoaXMudCgnY29uZmlybUdhbWVzVGl0bGUnKTtcbiAgICByZXR1cm4gdGhpcy50KCdjb25maXJtTW9kZVRpdGxlJyk7XG4gIH0pO1xuICByZWFkb25seSBjb25maXJtQm9keSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmNvbmZpcm1BY3Rpb24oKTtcbiAgICBpZiAoYWN0aW9uID09PSAncmVzdGFydCcpIHJldHVybiB0aGlzLnQoJ2NvbmZpcm1SZXN0YXJ0Qm9keScpO1xuICAgIGlmIChhY3Rpb24gPT09ICdnYW1lcycpIHJldHVybiB0aGlzLnQoJ2NvbmZpcm1HYW1lc0JvZHknKTtcbiAgICByZXR1cm4gdGhpcy50KCdjb25maXJtTW9kZUJvZHknKTtcbiAgfSk7XG4gIHJlYWRvbmx5IGNvbmZpcm1BY3Rpb25zID0gY29tcHV0ZWQ8QnV0dG9uTWV0YWRhdGFbXT4oKCkgPT4gW1xuICAgIHtcbiAgICAgIHRleHQ6IHRoaXMudCgnY2FuY2VsJyksXG4gICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICB0b2tlbjogJ2NhbmNlbCcsXG4gICAgfSxcbiAgICB7XG4gICAgICB0ZXh0OlxuICAgICAgICB0aGlzLmNvbmZpcm1BY3Rpb24oKSA9PT0gJ3Jlc3RhcnQnXG4gICAgICAgICAgPyB0aGlzLnQoJ3Jlc3RhcnQnKVxuICAgICAgICAgIDogdGhpcy5jb25maXJtQWN0aW9uKCkgPT09ICdnYW1lcydcbiAgICAgICAgICAgID8gdGhpcy50KCdjaGFuZ2VHYW1lJylcbiAgICAgICAgICAgIDogdGhpcy50KCdiYWNrVG9TZXR1cCcpLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIHN0YXRlOiAnRU5BQkxFRCcsXG4gICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgdG9rZW46ICdjb25maXJtJyxcbiAgICB9LFxuICBdKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnTWluaUdhbWVzJywgTUlOSV9HQU1FU19JMThOKTtcbiAgICB0aGlzLmF1ZGlvLnN0b3BNdXNpYygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclRpbWVycygpO1xuICAgIHRoaXMuYXVkaW8uc3RvcE11c2ljKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnTWluaUdhbWVzJyk7XG4gIH1cblxuICBzZWxlY3RNb2RlKG1vZGU6IFNpbW9uR2FtZU1vZGUpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGUuc2V0KG1vZGUpO1xuICB9XG5cbiAgbW9kZVRpdGxlKG1vZGU6IFNpbW9uR2FtZU1vZGUpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnQoYHNpbW9uTW9kZSR7dGhpcy5jYXBpdGFsaXplKG1vZGUpfWApO1xuICB9XG5cbiAgbW9kZURlc2NyaXB0aW9uKG1vZGU6IFNpbW9uR2FtZU1vZGUpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnQoYHNpbW9uTW9kZSR7dGhpcy5jYXBpdGFsaXplKG1vZGUpfURlc2NyaXB0aW9uYCk7XG4gIH1cblxuICBzdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyVGltZXJzKCk7XG4gICAgdGhpcy5waGFzZS5zZXQoJ3Nob3dpbmcnKTtcbiAgICB0aGlzLnJvdW5kLnNldCgxKTtcbiAgICB0aGlzLmlucHV0SW5kZXguc2V0KDApO1xuICAgIHRoaXMuc2VxdWVuY2Uuc2V0KHRoaXMuY3JlYXRlSW5pdGlhbFNlcXVlbmNlKCkpO1xuICAgIHRoaXMuc2hvd1NlcXVlbmNlKCk7XG4gIH1cblxuICByZXNldFRvU2V0dXAoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclRpbWVycygpO1xuICAgIHRoaXMucGhhc2Uuc2V0KCdob21lJyk7XG4gICAgdGhpcy5yb3VuZC5zZXQoMCk7XG4gICAgdGhpcy5zZXF1ZW5jZS5zZXQoW10pO1xuICAgIHRoaXMuaW5wdXRJbmRleC5zZXQoMCk7XG4gICAgdGhpcy5hY3RpdmVQYWQuc2V0KHVuZGVmaW5lZCk7XG4gIH1cblxuICByZXF1ZXN0UmVzdGFydEdhbWUoKTogdm9pZCB7XG4gICAgdGhpcy5jb25maXJtQWN0aW9uLnNldCgncmVzdGFydCcpO1xuICAgIHRoaXMuYXVkaW8uZmxpcCgpO1xuICB9XG5cbiAgcmVxdWVzdENoYW5nZU1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5jb25maXJtQWN0aW9uLnNldCgnbW9kZScpO1xuICAgIHRoaXMuYXVkaW8uZmxpcCgpO1xuICB9XG5cbiAgcmVxdWVzdENoYW5nZUdhbWUoKTogdm9pZCB7XG4gICAgdGhpcy5jb25maXJtQWN0aW9uLnNldCgnZ2FtZXMnKTtcbiAgICB0aGlzLmF1ZGlvLmZsaXAoKTtcbiAgfVxuXG4gIGNsb3NlQ29uZmlybU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlybUFjdGlvbi5zZXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIGNvbmZpcm1QZW5kaW5nQWN0aW9uKHRva2VuPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRva2VuICE9PSAnY29uZmlybScpIHtcbiAgICAgIHRoaXMuY2xvc2VDb25maXJtTW9kYWwoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5jb25maXJtQWN0aW9uKCk7XG4gICAgdGhpcy5jb25maXJtQWN0aW9uLnNldCh1bmRlZmluZWQpO1xuICAgIGlmIChhY3Rpb24gPT09ICdyZXN0YXJ0Jykge1xuICAgICAgdGhpcy5zdGFydCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoYWN0aW9uID09PSAnbW9kZScpIHtcbiAgICAgIHRoaXMucmVzZXRUb1NldHVwKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChhY3Rpb24gPT09ICdnYW1lcycpIHtcbiAgICAgIHRoaXMucmVzZXRUb0dhbWVzTWVudSgpO1xuICAgIH1cbiAgfVxuXG4gIHRhcChwYWQ6IFNpbW9uUGFkKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGhhc2UoKSAhPT0gJ3dhaXRpbmcnIHx8ICF0aGlzLmFjY2VwdGluZ0lucHV0KSByZXR1cm47XG4gICAgdGhpcy5mbGFzaFBhZChwYWQuaWQsIDE4MCk7XG4gICAgdGhpcy5hdWRpby5zaW1vblBhZChwYWQudG9uZSk7XG4gICAgY29uc3QgZXhwZWN0ZWQgPSB0aGlzLnNlcXVlbmNlKClbdGhpcy5pbnB1dEluZGV4KCldO1xuICAgIGlmIChwYWQuaWQgIT09IGV4cGVjdGVkKSB7XG4gICAgICB0aGlzLmZhaWwoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV4dEluZGV4ID0gdGhpcy5pbnB1dEluZGV4KCkgKyAxO1xuICAgIHRoaXMuaW5wdXRJbmRleC5zZXQobmV4dEluZGV4KTtcbiAgICBpZiAobmV4dEluZGV4IDwgdGhpcy5zZXF1ZW5jZSgpLmxlbmd0aCkge1xuICAgICAgdGhpcy5hdWRpby5zaW1vblN0ZXBPaygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbXBsZXRlUm91bmQoKTtcbiAgfVxuXG4gIHNjb3JlVGV4dChlbnRyeTogU2ltb25MZWFkZXJib2FyZEVudHJ5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50KCdzaW1vblNjb3JlJylcbiAgICAgIC5yZXBsYWNlKCd7cm91bmR9JywgU3RyaW5nKGVudHJ5LnJvdW5kKSlcbiAgICAgIC5yZXBsYWNlKCd7c3RlcHN9JywgU3RyaW5nKGVudHJ5LnN0ZXBzKSk7XG4gIH1cblxuICBkYXRlVGV4dCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWUuc2xpY2UoMCwgMTApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wbGV0ZVJvdW5kKCk6IHZvaWQge1xuICAgIHRoaXMuYWNjZXB0aW5nSW5wdXQgPSBmYWxzZTtcbiAgICB0aGlzLnBoYXNlLnNldCgnc3VjY2VzcycpO1xuICAgIHRoaXMuYXVkaW8uc2ltb25Sb3VuZE9rKCk7XG4gICAgdGhpcy5zYXZlU2NvcmUodGhpcy5yb3VuZCgpLCB0aGlzLnNlcXVlbmNlKCkubGVuZ3RoKTtcbiAgICB0aGlzLnNldFRpbWVyKCgpID0+IHtcbiAgICAgIHRoaXMucm91bmQuc2V0KHRoaXMucm91bmQoKSArIDEpO1xuICAgICAgdGhpcy5zZXF1ZW5jZS51cGRhdGUoKGN1cnJlbnQpID0+IFsuLi5jdXJyZW50LCB0aGlzLnJhbmRvbVBhZElkKCldKTtcbiAgICAgIHRoaXMuc2hvd1NlcXVlbmNlKCk7XG4gICAgfSwgdGhpcy5tb2RlKCkgPT09ICduaW5qYScgPyA1MjAgOiA3NjApO1xuICB9XG5cbiAgcHJpdmF0ZSBmYWlsKCk6IHZvaWQge1xuICAgIHRoaXMuYWNjZXB0aW5nSW5wdXQgPSBmYWxzZTtcbiAgICB0aGlzLnBoYXNlLnNldCgnZmFpbGVkJyk7XG4gICAgdGhpcy5hY3RpdmVQYWQuc2V0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5hdWRpby5zaW1vbkZhaWwoKTtcbiAgICB0aGlzLnNhdmVTY29yZShNYXRoLm1heCgwLCB0aGlzLnJvdW5kKCkgLSAxKSwgTWF0aC5tYXgoMCwgdGhpcy5zZXF1ZW5jZSgpLmxlbmd0aCAtIDEpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lcnMoKTtcbiAgICB0aGlzLmFjY2VwdGluZ0lucHV0ID0gZmFsc2U7XG4gICAgdGhpcy5pbnB1dEluZGV4LnNldCgwKTtcbiAgICB0aGlzLnBoYXNlLnNldCgnc2hvd2luZycpO1xuICAgIGNvbnN0IHsgc2hvd01zLCBnYXBNcyB9ID0gdGhpcy5tb2RlQ29uZmlnKCk7XG4gICAgbGV0IGRlbGF5ID0gMjgwO1xuICAgIHRoaXMuc2VxdWVuY2UoKS5mb3JFYWNoKChwYWRJZCkgPT4ge1xuICAgICAgdGhpcy5zZXRUaW1lcigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhZCA9IHRoaXMucGFkcy5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBwYWRJZCk7XG4gICAgICAgIGlmIChwYWQpIHRoaXMuYXVkaW8uc2ltb25QYWQocGFkLnRvbmUpO1xuICAgICAgICB0aGlzLmFjdGl2ZVBhZC5zZXQocGFkSWQpO1xuICAgICAgfSwgZGVsYXkpO1xuICAgICAgdGhpcy5zZXRUaW1lcigoKSA9PiB0aGlzLmFjdGl2ZVBhZC5zZXQodW5kZWZpbmVkKSwgZGVsYXkgKyBzaG93TXMpO1xuICAgICAgZGVsYXkgKz0gc2hvd01zICsgZ2FwTXM7XG4gICAgfSk7XG4gICAgdGhpcy5zZXRUaW1lcigoKSA9PiB7XG4gICAgICB0aGlzLnBoYXNlLnNldCgnd2FpdGluZycpO1xuICAgICAgdGhpcy5hY2NlcHRpbmdJbnB1dCA9IHRydWU7XG4gICAgfSwgZGVsYXkgKyAxMDApO1xuICB9XG5cbiAgcHJpdmF0ZSBmbGFzaFBhZChwYWRJZDogc3RyaW5nLCBtczogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVQYWQuc2V0KHBhZElkKTtcbiAgICB0aGlzLnNldFRpbWVyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZVBhZCgpID09PSBwYWRJZCkgdGhpcy5hY3RpdmVQYWQuc2V0KHVuZGVmaW5lZCk7XG4gICAgfSwgbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbml0aWFsU2VxdWVuY2UoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLm1vZGVDb25maWcoKS5zdGFydFN0ZXBzIH0sICgpID0+IHRoaXMucmFuZG9tUGFkSWQoKSk7XG4gIH1cblxuICBwcml2YXRlIHJhbmRvbVBhZElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGFkc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiB0aGlzLnBhZHMubGVuZ3RoKV0uaWQ7XG4gIH1cblxuICBwcml2YXRlIHNhdmVTY29yZShyb3VuZDogbnVtYmVyLCBzdGVwczogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHJvdW5kIDw9IDApIHJldHVybjtcbiAgICBjb25zdCBlbnRyeTogU2ltb25MZWFkZXJib2FyZEVudHJ5ID0ge1xuICAgICAgbW9kZTogdGhpcy5tb2RlKCksXG4gICAgICByb3VuZCxcbiAgICAgIHN0ZXBzLFxuICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgfTtcbiAgICBjb25zdCB1cGRhdGVkID0gW2VudHJ5LCAuLi50aGlzLmxlYWRlcmJvYXJkKCldXG4gICAgICAuc29ydCgoYSwgYikgPT4gYi5yb3VuZCAtIGEucm91bmQgfHwgYi5zdGVwcyAtIGEuc3RlcHMpXG4gICAgICAuc2xpY2UoMCwgNDApO1xuICAgIHRoaXMubGVhZGVyYm9hcmQuc2V0KHVwZGF0ZWQpO1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShMRUFERVJCT0FSRF9LRVksIEpTT04uc3RyaW5naWZ5KHVwZGF0ZWQpKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEVsIHJhbmtpbmcgbG9jYWwgbm8gZXMgY3LDrXRpY28gc2kgc3RvcmFnZSBubyBlc3TDoSBkaXNwb25pYmxlLlxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRUb0dhbWVzTWVudSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0VG9TZXR1cCgpO1xuICAgIHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLm1pbmlHYW1lc0Jhc2VSb3V0ZSgpKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBtaW5pR2FtZXNCYXNlUm91dGUoKTogc3RyaW5nIHtcbiAgICBjb25zdCByb3V0ZSA9ICh0aGlzLm1pbmlHYW1lc1JvdXRlIHx8ICcvbWluaS1nYW1lcycpLnRyaW0oKTtcbiAgICByZXR1cm4gYC8ke3JvdXRlLnJlcGxhY2UoL15cXC8rfFxcLyskL2csICcnKSB8fCAnbWluaS1nYW1lcyd9YDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZExlYWRlcmJvYXJkKCk6IFNpbW9uTGVhZGVyYm9hcmRFbnRyeVtdIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmF3ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oTEVBREVSQk9BUkRfS0VZKTtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHJhdyA/IChKU09OLnBhcnNlKHJhdykgYXMgU2ltb25MZWFkZXJib2FyZEVudHJ5W10pIDogW107XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXJzZWQpID8gcGFyc2VkIDogW107XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRUaW1lcihjYWxsYmFjazogKCkgPT4gdm9pZCwgbXM6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGlkID0gd2luZG93LnNldFRpbWVvdXQoY2FsbGJhY2ssIG1zKTtcbiAgICB0aGlzLnRpbWVycy5wdXNoKGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJUaW1lcnMoKTogdm9pZCB7XG4gICAgdGhpcy50aW1lcnMuZm9yRWFjaCgoaWQpID0+IHdpbmRvdy5jbGVhclRpbWVvdXQoaWQpKTtcbiAgICB0aGlzLnRpbWVycyA9IFtdO1xuICAgIHRoaXMuYWNjZXB0aW5nSW5wdXQgPSBmYWxzZTtcbiAgICB0aGlzLmFjdGl2ZVBhZC5zZXQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FwaXRhbGl6ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHt2YWx1ZS5zbGljZSgxKX1gO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21pbmktZ2FtZXMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE1pbmlHYW1lU3RhdHVzID0gJ2F2YWlsYWJsZScgfCAnc29vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWluaUdhbWVEZWZpbml0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBpbWFnZVNyYz86IHN0cmluZztcbiAgcm91dGU/OiBzdHJpbmc7XG4gIHN0YXR1cz86IE1pbmlHYW1lU3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pbmlHYW1lUGxheWVyUHJvZmlsZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgYXZhdGFyOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgTWVtb3J5R2FtZURpZmZpY3VsdHkgPSAnZWFzeScgfCAnbWVkaXVtJyB8ICdoYXJkJztcblxuZXhwb3J0IHR5cGUgTWVtb3J5R2FtZU1vZGUgPSAnY2xhc3NpYycgfCAncmVsYXhlZCcgfCAndGltZWQnO1xuXG5leHBvcnQgdHlwZSBNZW1vcnlHYW1lUHJvZmlsZSA9ICdraWQnIHwgJ2NsYXNzaWMnIHwgJ25pbmphJztcblxuZXhwb3J0IGludGVyZmFjZSBNZW1vcnlHYW1lQ2FyZCB7XG4gIGlkOiBzdHJpbmc7XG4gIHN5bWJvbDogc3RyaW5nO1xuICBtYXRjaGVkOiBib29sZWFuO1xuICBmbGlwcGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBTaW1vbkdhbWVNb2RlID0gJ2tpZCcgfCAnY2xhc3NpYycgfCAnbmluamEnO1xuXG5leHBvcnQgdHlwZSBTaW1vbkdhbWVQaGFzZSA9ICdob21lJyB8ICdzaG93aW5nJyB8ICd3YWl0aW5nJyB8ICdzdWNjZXNzJyB8ICdmYWlsZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpbW9uUGFkIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbiAgdG9uZTogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzQm9hcmRTaXplID0gNiB8IDg7XG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzUGxheWVyQ29sb3IgPSAnd2hpdGUnIHwgJ2JsYWNrJztcbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNBbmltYWxUeXBlID0gJ2VhZ2xlJyB8ICdidWxsJyB8ICdrYW5nYXJvbycgfCAnbGlvbic7XG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzTW92ZUtpbmQgPSAnYmFzaWMnIHwgJ3Bvd2VyJztcbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNXaW5SZWFzb24gPSAncHJvbW90aW9uJyB8ICdlbGltaW5hdGlvbicgfCAncmVzaWduYXRpb24nO1xuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc0dhbWVNb2RlID0gJ2xvY2FsJyB8ICdvbmxpbmUnO1xuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc0xvY2FsTW9kZSA9ICdvbmUtZGV2aWNlJyB8ICdib3QnO1xuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc0JvdERpZmZpY3VsdHkgPSAnZWFzeScgfCAnbm9ybWFsJyB8ICdoYXJkJztcbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNCb3RQcm9maWxlSWQgPVxuICB8ICdleHBsb3JlcidcbiAgfCAnaW1wdWxzaXZlJ1xuICB8ICdydW5uZXInXG4gIHwgJ2h1bnRlcidcbiAgfCAnZ3VhcmRpYW4nXG4gIHwgJ2p1bXBlcidcbiAgfCAnc3RyYXRlZ2lzdCdcbiAgfCAncHJlZGF0b3InXG4gIHwgJ3NwcmludGVyJ1xuICB8ICdzZW50aW5lbCc7XG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzR2FtZVN0YXR1cyA9ICd3YWl0aW5nJyB8ICdpbl9wcm9ncmVzcycgfCAnZmluaXNoZWQnIHwgJ2V4cGlyZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNCb3RQcm9maWxlIHtcbiAgaWQ6IENoZXNzaW1hbHNCb3RQcm9maWxlSWQ7XG4gIGRpZmZpY3VsdHk6IENoZXNzaW1hbHNCb3REaWZmaWN1bHR5O1xuICBhdmF0YXI6IHN0cmluZztcbiAgbGFiZWxLZXk6IHN0cmluZztcbiAgZGVzY3JpcHRpb25LZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzUG9zaXRpb24ge1xuICByb3c6IG51bWJlcjtcbiAgY29sOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc1BpZWNlIHtcbiAgaWQ6IHN0cmluZztcbiAgY29sb3I6IENoZXNzaW1hbHNQbGF5ZXJDb2xvcjtcbiAgcG9zaXRpb246IENoZXNzaW1hbHNQb3NpdGlvbjtcbiAgY2FwdHVyZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc1Bvd2VyQ2FyZCB7XG4gIHR5cGU6IENoZXNzaW1hbHNBbmltYWxUeXBlO1xuICB1c2VkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNQbGF5ZXJTdGF0ZSB7XG4gIGNvbG9yOiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIHBvd2VyVW5sb2NrZWQ6IGJvb2xlYW47XG4gIGNhcmRzOiBSZWNvcmQ8Q2hlc3NpbWFsc0FuaW1hbFR5cGUsIENoZXNzaW1hbHNQb3dlckNhcmQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNNb3ZlIHtcbiAgcGllY2VJZDogc3RyaW5nO1xuICBmcm9tOiBDaGVzc2ltYWxzUG9zaXRpb247XG4gIHRvOiBDaGVzc2ltYWxzUG9zaXRpb247XG4gIGtpbmQ6IENoZXNzaW1hbHNNb3ZlS2luZDtcbiAgYW5pbWFsPzogQ2hlc3NpbWFsc0FuaW1hbFR5cGU7XG4gIGNhcHR1cmVzUGllY2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzTW92ZUhpc3RvcnlFbnRyeSB7XG4gIG1vdmVOdW1iZXI6IG51bWJlcjtcbiAgcGllY2VzOiBDaGVzc2ltYWxzUGllY2VbXTtcbiAgY3VycmVudFR1cm46IENoZXNzaW1hbHNQbGF5ZXJDb2xvcjtcbiAgc3RhdHVzOiBDaGVzc2ltYWxzR2FtZVN0YXR1cztcbiAgbW92ZT86IENoZXNzaW1hbHNNb3ZlO1xuICB3aW5uZXI/OiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIHdpbm5lclJlYXNvbj86IENoZXNzaW1hbHNXaW5SZWFzb247XG59XG5cbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNNb3ZlTG9nU3RhdHVzID0gJ2FjY2VwdGVkJyB8ICdyZWplY3RlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc01vdmVMb2dFbnRyeSB7XG4gIGlkOiBzdHJpbmc7XG4gIGF0OiBzdHJpbmc7XG4gIHVpZDogc3RyaW5nO1xuICBwcm9maWxlSWQ/OiBzdHJpbmc7XG4gIHNlYXRLZXk/OiBzdHJpbmc7XG4gIHNpZGU/OiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIHN0YXR1czogQ2hlc3NpbWFsc01vdmVMb2dTdGF0dXM7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG4gIG1vdmU6IENoZXNzaW1hbHNNb3ZlO1xuICBtb3ZlQ291bnRCZWZvcmU6IG51bWJlcjtcbiAgbW92ZUNvdW50QWZ0ZXI/OiBudW1iZXI7XG4gIGN1cnJlbnRUdXJuQmVmb3JlOiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc09ubGluZVBhcnRpY2lwYW50IHtcbiAgdWlkOiBzdHJpbmc7XG4gIGFjY291bnRVc2VySWQ/OiBzdHJpbmc7XG4gIHByb2ZpbGVJZDogc3RyaW5nO1xuICBzZWF0S2V5Pzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGhhbmRsZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGF2YXRhcjogc3RyaW5nO1xuICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIHNpZGU/OiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIGpvaW5lZEF0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc09ubGluZVN0YXRlIHtcbiAgZ2FtZUlkOiBzdHJpbmc7XG4gIGhvc3RVaWQ6IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xuICBleHBpcmVzQXQ6IHN0cmluZztcbiAgZXhwaXJlc0F0TXM6IG51bWJlcjtcbiAgcm91bmQ6IG51bWJlcjtcbiAgcmVtYXRjaE9mPzogc3RyaW5nO1xuICBsb2JieT86IENoZXNzaW1hbHNPbmxpbmVQYXJ0aWNpcGFudDtcbiAgcGVuZGluZ0d1ZXN0PzogQ2hlc3NpbWFsc09ubGluZVBhcnRpY2lwYW50O1xuICBwYXJ0aWNpcGFudHM/OiBQYXJ0aWFsPFJlY29yZDxDaGVzc2ltYWxzUGxheWVyQ29sb3IsIENoZXNzaW1hbHNPbmxpbmVQYXJ0aWNpcGFudD4+O1xuICByZW1hdGNoUmVxdWVzdHM/OiBzdHJpbmdbXTtcbiAgbW92ZUxvZz86IENoZXNzaW1hbHNNb3ZlTG9nRW50cnlbXTtcbn1cblxuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc0hpc3RvcnlPdXRjb21lID0gJ3dhaXRpbmcnIHwgJ3BlbmRpbmcnIHwgJ2luX3Byb2dyZXNzJyB8ICd3b24nIHwgJ2xvc3QnIHwgJ2RlY2xpbmVkJztcblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzSGlzdG9yeUVudHJ5IHtcbiAgZ2FtZUlkOiBzdHJpbmc7XG4gIG1vZGU6ICdvbmxpbmUnO1xuICBib2FyZFNpemU6IENoZXNzaW1hbHNCb2FyZFNpemU7XG4gIHN0YXR1czogQ2hlc3NpbWFsc0dhbWVTdGF0dXM7XG4gIG91dGNvbWU6IENoZXNzaW1hbHNIaXN0b3J5T3V0Y29tZTtcbiAgc2lkZT86IENoZXNzaW1hbHNQbGF5ZXJDb2xvcjtcbiAgb3Bwb25lbnRVaWQ/OiBzdHJpbmc7XG4gIG9wcG9uZW50TmFtZT86IHN0cmluZztcbiAgd2lubmVyPzogQ2hlc3NpbWFsc1BsYXllckNvbG9yO1xuICB3aW5uZXJSZWFzb24/OiBDaGVzc2ltYWxzV2luUmVhc29uO1xuICBtb3ZlQ291bnQ6IG51bWJlcjtcbiAgcm91bmQ6IG51bWJlcjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xuICBmaW5pc2hlZEF0Pzogc3RyaW5nO1xuICBleHBpcmVzQXQ/OiBzdHJpbmc7XG4gIHJlbWF0Y2hPZj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzR2FtZVN0YXRlIHtcbiAgaWQ6IHN0cmluZztcbiAgbW9kZTogQ2hlc3NpbWFsc0dhbWVNb2RlO1xuICBib2FyZFNpemU6IENoZXNzaW1hbHNCb2FyZFNpemU7XG4gIHN0YXR1czogQ2hlc3NpbWFsc0dhbWVTdGF0dXM7XG4gIGN1cnJlbnRUdXJuOiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIHBpZWNlczogQ2hlc3NpbWFsc1BpZWNlW107XG4gIHBsYXllcnM6IFJlY29yZDxDaGVzc2ltYWxzUGxheWVyQ29sb3IsIENoZXNzaW1hbHNQbGF5ZXJTdGF0ZT47XG4gIHdpbm5lcj86IENoZXNzaW1hbHNQbGF5ZXJDb2xvcjtcbiAgd2lubmVyUmVhc29uPzogQ2hlc3NpbWFsc1dpblJlYXNvbjtcbiAgbW92ZUNvdW50OiBudW1iZXI7XG4gIGxhc3RNb3ZlPzogQ2hlc3NpbWFsc01vdmU7XG4gIG1vdmVIaXN0b3J5PzogQ2hlc3NpbWFsc01vdmVIaXN0b3J5RW50cnlbXTtcbiAgb25saW5lPzogQ2hlc3NpbWFsc09ubGluZVN0YXRlO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21pbmktZ2FtZXMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE1pbmlHYW1lU3RhdHVzID0gJ2F2YWlsYWJsZScgfCAnc29vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWluaUdhbWVEZWZpbml0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBpbWFnZVNyYz86IHN0cmluZztcbiAgcm91dGU/OiBzdHJpbmc7XG4gIHN0YXR1cz86IE1pbmlHYW1lU3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pbmlHYW1lUGxheWVyUHJvZmlsZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgYXZhdGFyOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgTWVtb3J5R2FtZURpZmZpY3VsdHkgPSAnZWFzeScgfCAnbWVkaXVtJyB8ICdoYXJkJztcblxuZXhwb3J0IHR5cGUgTWVtb3J5R2FtZU1vZGUgPSAnY2xhc3NpYycgfCAncmVsYXhlZCcgfCAndGltZWQnO1xuXG5leHBvcnQgdHlwZSBNZW1vcnlHYW1lUHJvZmlsZSA9ICdraWQnIHwgJ2NsYXNzaWMnIHwgJ25pbmphJztcblxuZXhwb3J0IGludGVyZmFjZSBNZW1vcnlHYW1lQ2FyZCB7XG4gIGlkOiBzdHJpbmc7XG4gIHN5bWJvbDogc3RyaW5nO1xuICBtYXRjaGVkOiBib29sZWFuO1xuICBmbGlwcGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBTaW1vbkdhbWVNb2RlID0gJ2tpZCcgfCAnY2xhc3NpYycgfCAnbmluamEnO1xuXG5leHBvcnQgdHlwZSBTaW1vbkdhbWVQaGFzZSA9ICdob21lJyB8ICdzaG93aW5nJyB8ICd3YWl0aW5nJyB8ICdzdWNjZXNzJyB8ICdmYWlsZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpbW9uUGFkIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbiAgdG9uZTogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBCdWJibGVCbGl0ek1vZGUgPSAna2lkJyB8ICdjbGFzc2ljJyB8ICduaW5qYSc7XG5leHBvcnQgdHlwZSBCdWJibGVCbGl0elBoYXNlID0gJ2hvbWUnIHwgJ3BsYXlpbmcnIHwgJ2ZpbmlzaGVkJztcbmV4cG9ydCB0eXBlIEJ1YmJsZUJsaXR6Q29sb3IgPSAncm9zZScgfCAnY3lhbicgfCAnc3VuJyB8ICd2aW9sZXQnIHwgJ2xlYWYnIHwgJ29yYW5nZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnViYmxlQmxpdHpDZWxsIHtcbiAgaWQ6IHN0cmluZztcbiAgcm93OiBudW1iZXI7XG4gIGNvbDogbnVtYmVyO1xuICBjb2xvcjogQnViYmxlQmxpdHpDb2xvcjtcbn1cblxuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc0JvYXJkU2l6ZSA9IDYgfCA4O1xuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc1BsYXllckNvbG9yID0gJ3doaXRlJyB8ICdibGFjayc7XG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzQW5pbWFsVHlwZSA9ICdlYWdsZScgfCAnYnVsbCcgfCAna2FuZ2Fyb28nIHwgJ2xpb24nO1xuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc01vdmVLaW5kID0gJ2Jhc2ljJyB8ICdwb3dlcic7XG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzV2luUmVhc29uID0gJ3Byb21vdGlvbicgfCAnZWxpbWluYXRpb24nIHwgJ3Jlc2lnbmF0aW9uJztcbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNHYW1lTW9kZSA9ICdsb2NhbCcgfCAnb25saW5lJztcbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNMb2NhbE1vZGUgPSAnb25lLWRldmljZScgfCAnYm90JztcbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNCb3REaWZmaWN1bHR5ID0gJ2Vhc3knIHwgJ25vcm1hbCcgfCAnaGFyZCc7XG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzQm90UHJvZmlsZUlkID1cbiAgfCAnZXhwbG9yZXInXG4gIHwgJ2ltcHVsc2l2ZSdcbiAgfCAncnVubmVyJ1xuICB8ICdodW50ZXInXG4gIHwgJ2d1YXJkaWFuJ1xuICB8ICdqdW1wZXInXG4gIHwgJ3N0cmF0ZWdpc3QnXG4gIHwgJ3ByZWRhdG9yJ1xuICB8ICdzcHJpbnRlcidcbiAgfCAnc2VudGluZWwnO1xuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc0dhbWVTdGF0dXMgPSAnd2FpdGluZycgfCAnaW5fcHJvZ3Jlc3MnIHwgJ2ZpbmlzaGVkJyB8ICdleHBpcmVkJztcblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzQm90UHJvZmlsZSB7XG4gIGlkOiBDaGVzc2ltYWxzQm90UHJvZmlsZUlkO1xuICBkaWZmaWN1bHR5OiBDaGVzc2ltYWxzQm90RGlmZmljdWx0eTtcbiAgYXZhdGFyOiBzdHJpbmc7XG4gIGxhYmVsS2V5OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc1Bvc2l0aW9uIHtcbiAgcm93OiBudW1iZXI7XG4gIGNvbDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNQaWVjZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGNvbG9yOiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIHBvc2l0aW9uOiBDaGVzc2ltYWxzUG9zaXRpb247XG4gIGNhcHR1cmVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNQb3dlckNhcmQge1xuICB0eXBlOiBDaGVzc2ltYWxzQW5pbWFsVHlwZTtcbiAgdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzUGxheWVyU3RhdGUge1xuICBjb2xvcjogQ2hlc3NpbWFsc1BsYXllckNvbG9yO1xuICBwb3dlclVubG9ja2VkOiBib29sZWFuO1xuICBjYXJkczogUmVjb3JkPENoZXNzaW1hbHNBbmltYWxUeXBlLCBDaGVzc2ltYWxzUG93ZXJDYXJkPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzTW92ZSB7XG4gIHBpZWNlSWQ6IHN0cmluZztcbiAgZnJvbTogQ2hlc3NpbWFsc1Bvc2l0aW9uO1xuICB0bzogQ2hlc3NpbWFsc1Bvc2l0aW9uO1xuICBraW5kOiBDaGVzc2ltYWxzTW92ZUtpbmQ7XG4gIGFuaW1hbD86IENoZXNzaW1hbHNBbmltYWxUeXBlO1xuICBjYXB0dXJlc1BpZWNlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc01vdmVIaXN0b3J5RW50cnkge1xuICBtb3ZlTnVtYmVyOiBudW1iZXI7XG4gIHBpZWNlczogQ2hlc3NpbWFsc1BpZWNlW107XG4gIGN1cnJlbnRUdXJuOiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIHN0YXR1czogQ2hlc3NpbWFsc0dhbWVTdGF0dXM7XG4gIG1vdmU/OiBDaGVzc2ltYWxzTW92ZTtcbiAgd2lubmVyPzogQ2hlc3NpbWFsc1BsYXllckNvbG9yO1xuICB3aW5uZXJSZWFzb24/OiBDaGVzc2ltYWxzV2luUmVhc29uO1xufVxuXG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzTW92ZUxvZ1N0YXR1cyA9ICdhY2NlcHRlZCcgfCAncmVqZWN0ZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNNb3ZlTG9nRW50cnkge1xuICBpZDogc3RyaW5nO1xuICBhdDogc3RyaW5nO1xuICB1aWQ6IHN0cmluZztcbiAgcHJvZmlsZUlkPzogc3RyaW5nO1xuICBzZWF0S2V5Pzogc3RyaW5nO1xuICBzaWRlPzogQ2hlc3NpbWFsc1BsYXllckNvbG9yO1xuICBzdGF0dXM6IENoZXNzaW1hbHNNb3ZlTG9nU3RhdHVzO1xuICBjb2RlPzogc3RyaW5nO1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICBtb3ZlOiBDaGVzc2ltYWxzTW92ZTtcbiAgbW92ZUNvdW50QmVmb3JlOiBudW1iZXI7XG4gIG1vdmVDb3VudEFmdGVyPzogbnVtYmVyO1xuICBjdXJyZW50VHVybkJlZm9yZTogQ2hlc3NpbWFsc1BsYXllckNvbG9yO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNPbmxpbmVQYXJ0aWNpcGFudCB7XG4gIHVpZDogc3RyaW5nO1xuICBhY2NvdW50VXNlcklkPzogc3RyaW5nO1xuICBwcm9maWxlSWQ6IHN0cmluZztcbiAgc2VhdEtleT86IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBoYW5kbGU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBhdmF0YXI6IHN0cmluZztcbiAgYXZhdGFyVXJsPzogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBzaWRlPzogQ2hlc3NpbWFsc1BsYXllckNvbG9yO1xuICBqb2luZWRBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNPbmxpbmVTdGF0ZSB7XG4gIGdhbWVJZDogc3RyaW5nO1xuICBob3N0VWlkOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbiAgZXhwaXJlc0F0OiBzdHJpbmc7XG4gIGV4cGlyZXNBdE1zOiBudW1iZXI7XG4gIHJvdW5kOiBudW1iZXI7XG4gIHJlbWF0Y2hPZj86IHN0cmluZztcbiAgbG9iYnk/OiBDaGVzc2ltYWxzT25saW5lUGFydGljaXBhbnQ7XG4gIHBlbmRpbmdHdWVzdD86IENoZXNzaW1hbHNPbmxpbmVQYXJ0aWNpcGFudDtcbiAgcGFydGljaXBhbnRzPzogUGFydGlhbDxSZWNvcmQ8Q2hlc3NpbWFsc1BsYXllckNvbG9yLCBDaGVzc2ltYWxzT25saW5lUGFydGljaXBhbnQ+PjtcbiAgcmVtYXRjaFJlcXVlc3RzPzogc3RyaW5nW107XG4gIG1vdmVMb2c/OiBDaGVzc2ltYWxzTW92ZUxvZ0VudHJ5W107XG59XG5cbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNIaXN0b3J5T3V0Y29tZSA9ICd3YWl0aW5nJyB8ICdwZW5kaW5nJyB8ICdpbl9wcm9ncmVzcycgfCAnd29uJyB8ICdsb3N0JyB8ICdkZWNsaW5lZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc0hpc3RvcnlFbnRyeSB7XG4gIGdhbWVJZDogc3RyaW5nO1xuICBtb2RlOiAnb25saW5lJztcbiAgYm9hcmRTaXplOiBDaGVzc2ltYWxzQm9hcmRTaXplO1xuICBzdGF0dXM6IENoZXNzaW1hbHNHYW1lU3RhdHVzO1xuICBvdXRjb21lOiBDaGVzc2ltYWxzSGlzdG9yeU91dGNvbWU7XG4gIHNpZGU/OiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIG9wcG9uZW50VWlkPzogc3RyaW5nO1xuICBvcHBvbmVudE5hbWU/OiBzdHJpbmc7XG4gIHdpbm5lcj86IENoZXNzaW1hbHNQbGF5ZXJDb2xvcjtcbiAgd2lubmVyUmVhc29uPzogQ2hlc3NpbWFsc1dpblJlYXNvbjtcbiAgbW92ZUNvdW50OiBudW1iZXI7XG4gIHJvdW5kOiBudW1iZXI7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbiAgZmluaXNoZWRBdD86IHN0cmluZztcbiAgZXhwaXJlc0F0Pzogc3RyaW5nO1xuICByZW1hdGNoT2Y/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc0dhbWVTdGF0ZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG1vZGU6IENoZXNzaW1hbHNHYW1lTW9kZTtcbiAgYm9hcmRTaXplOiBDaGVzc2ltYWxzQm9hcmRTaXplO1xuICBzdGF0dXM6IENoZXNzaW1hbHNHYW1lU3RhdHVzO1xuICBjdXJyZW50VHVybjogQ2hlc3NpbWFsc1BsYXllckNvbG9yO1xuICBwaWVjZXM6IENoZXNzaW1hbHNQaWVjZVtdO1xuICBwbGF5ZXJzOiBSZWNvcmQ8Q2hlc3NpbWFsc1BsYXllckNvbG9yLCBDaGVzc2ltYWxzUGxheWVyU3RhdGU+O1xuICB3aW5uZXI/OiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIHdpbm5lclJlYXNvbj86IENoZXNzaW1hbHNXaW5SZWFzb247XG4gIG1vdmVDb3VudDogbnVtYmVyO1xuICBsYXN0TW92ZT86IENoZXNzaW1hbHNNb3ZlO1xuICBtb3ZlSGlzdG9yeT86IENoZXNzaW1hbHNNb3ZlSGlzdG9yeUVudHJ5W107XG4gIG9ubGluZT86IENoZXNzaW1hbHNPbmxpbmVTdGF0ZTtcbn1cbiJdfQ==
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.418';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC40MTgnO1xuIl19
5
+ export const VERSION = '4.0.419';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC40MTknO1xuIl19