@livepeer-frameworks/player-wc 0.1.9 → 0.2.2

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.
Files changed (141) hide show
  1. package/dist/esm/components/controls/fw-fullscreen-button.js +76 -0
  2. package/dist/esm/components/controls/fw-fullscreen-button.js.map +1 -0
  3. package/dist/esm/components/controls/fw-live-badge.js +109 -0
  4. package/dist/esm/components/controls/fw-live-badge.js.map +1 -0
  5. package/dist/esm/components/controls/fw-play-button.js +76 -0
  6. package/dist/esm/components/controls/fw-play-button.js.map +1 -0
  7. package/dist/esm/components/controls/fw-skip-button.js +62 -0
  8. package/dist/esm/components/controls/fw-skip-button.js.map +1 -0
  9. package/dist/esm/components/controls/fw-time-display.js +77 -0
  10. package/dist/esm/components/controls/fw-time-display.js.map +1 -0
  11. package/dist/esm/components/controls/fw-volume-control.js +76 -0
  12. package/dist/esm/components/controls/fw-volume-control.js.map +1 -0
  13. package/dist/esm/components/fw-dev-mode-panel.js +11 -15
  14. package/dist/esm/components/fw-dev-mode-panel.js.map +1 -1
  15. package/dist/esm/components/fw-error-overlay.js +13 -5
  16. package/dist/esm/components/fw-error-overlay.js.map +1 -1
  17. package/dist/esm/components/fw-idle-screen.js +10 -2
  18. package/dist/esm/components/fw-idle-screen.js.map +1 -1
  19. package/dist/esm/components/fw-loading-screen.js +89 -42
  20. package/dist/esm/components/fw-loading-screen.js.map +1 -1
  21. package/dist/esm/components/fw-loading-spinner.js +20 -9
  22. package/dist/esm/components/fw-loading-spinner.js.map +1 -1
  23. package/dist/esm/components/fw-player-controls.js +18 -13
  24. package/dist/esm/components/fw-player-controls.js.map +1 -1
  25. package/dist/esm/components/fw-player.js +165 -59
  26. package/dist/esm/components/fw-player.js.map +1 -1
  27. package/dist/esm/components/fw-settings-menu.js +44 -9
  28. package/dist/esm/components/fw-settings-menu.js.map +1 -1
  29. package/dist/esm/components/fw-stream-state-overlay.js +13 -5
  30. package/dist/esm/components/fw-stream-state-overlay.js.map +1 -1
  31. package/dist/esm/components/fw-toast.js +11 -1
  32. package/dist/esm/components/fw-toast.js.map +1 -1
  33. package/dist/esm/components/fw-volume-control.js +13 -3
  34. package/dist/esm/components/fw-volume-control.js.map +1 -1
  35. package/dist/esm/controllers/player-controller-host.js +14 -1
  36. package/dist/esm/controllers/player-controller-host.js.map +1 -1
  37. package/dist/esm/index.js +6 -0
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/esm/styles/shared-styles.js +401 -304
  40. package/dist/esm/styles/shared-styles.js.map +1 -1
  41. package/dist/fw-player.iife.js +707 -488
  42. package/dist/types/components/controls/fw-fullscreen-button.d.ts +18 -0
  43. package/dist/types/components/controls/fw-live-badge.d.ts +19 -0
  44. package/dist/types/components/controls/fw-play-button.d.ts +18 -0
  45. package/dist/types/components/controls/fw-skip-button.d.ts +17 -0
  46. package/dist/types/components/controls/fw-time-display.d.ts +17 -0
  47. package/dist/types/components/controls/fw-volume-control.d.ts +18 -0
  48. package/dist/types/components/controls/index.d.ts +6 -0
  49. package/dist/types/components/fw-dev-mode-panel.d.ts +1 -1
  50. package/dist/types/components/fw-error-overlay.d.ts +4 -0
  51. package/dist/types/components/fw-idle-screen.d.ts +4 -0
  52. package/dist/types/components/fw-loading-screen.d.ts +5 -1
  53. package/dist/types/components/fw-loading-spinner.d.ts +4 -0
  54. package/dist/types/components/fw-player-controls.d.ts +2 -1
  55. package/dist/types/components/fw-player.d.ts +10 -1
  56. package/dist/types/components/fw-settings-menu.d.ts +3 -1
  57. package/dist/types/components/fw-stream-state-overlay.d.ts +4 -0
  58. package/dist/types/components/fw-toast.d.ts +4 -0
  59. package/dist/types/controllers/player-controller-host.d.ts +7 -1
  60. package/dist/types/index.d.ts +1 -0
  61. package/package.json +22 -25
  62. package/src/components/controls/fw-fullscreen-button.ts +75 -0
  63. package/src/components/controls/fw-live-badge.ts +109 -0
  64. package/src/components/controls/fw-play-button.ts +75 -0
  65. package/src/components/controls/fw-skip-button.ts +59 -0
  66. package/src/components/controls/fw-time-display.ts +74 -0
  67. package/src/components/controls/fw-volume-control.ts +75 -0
  68. package/src/components/controls/index.ts +6 -0
  69. package/src/components/fw-dev-mode-panel.ts +10 -17
  70. package/src/components/fw-error-overlay.ts +13 -5
  71. package/src/components/fw-idle-screen.ts +10 -2
  72. package/src/components/fw-loading-screen.ts +90 -46
  73. package/src/components/fw-loading-spinner.ts +18 -9
  74. package/src/components/fw-player-controls.ts +17 -13
  75. package/src/components/fw-player.ts +166 -64
  76. package/src/components/fw-settings-menu.ts +49 -9
  77. package/src/components/fw-stream-state-overlay.ts +13 -5
  78. package/src/components/fw-toast.ts +11 -1
  79. package/src/components/fw-volume-control.ts +14 -3
  80. package/src/controllers/player-controller-host.ts +18 -0
  81. package/src/index.ts +10 -0
  82. package/src/styles/shared-styles.ts +401 -304
  83. package/LICENSE.md +0 -24
  84. package/dist/cjs/components/fw-context-menu.js +0 -17
  85. package/dist/cjs/components/fw-context-menu.js.map +0 -1
  86. package/dist/cjs/components/fw-dev-mode-panel.js +0 -907
  87. package/dist/cjs/components/fw-dev-mode-panel.js.map +0 -1
  88. package/dist/cjs/components/fw-dvd-logo.js +0 -211
  89. package/dist/cjs/components/fw-dvd-logo.js.map +0 -1
  90. package/dist/cjs/components/fw-error-overlay.js +0 -101
  91. package/dist/cjs/components/fw-error-overlay.js.map +0 -1
  92. package/dist/cjs/components/fw-idle-screen.js +0 -726
  93. package/dist/cjs/components/fw-idle-screen.js.map +0 -1
  94. package/dist/cjs/components/fw-loading-screen.js +0 -513
  95. package/dist/cjs/components/fw-loading-screen.js.map +0 -1
  96. package/dist/cjs/components/fw-loading-spinner.js +0 -62
  97. package/dist/cjs/components/fw-loading-spinner.js.map +0 -1
  98. package/dist/cjs/components/fw-player-controls.js +0 -451
  99. package/dist/cjs/components/fw-player-controls.js.map +0 -1
  100. package/dist/cjs/components/fw-player.js +0 -832
  101. package/dist/cjs/components/fw-player.js.map +0 -1
  102. package/dist/cjs/components/fw-seek-bar.js +0 -383
  103. package/dist/cjs/components/fw-seek-bar.js.map +0 -1
  104. package/dist/cjs/components/fw-settings-menu.js +0 -253
  105. package/dist/cjs/components/fw-settings-menu.js.map +0 -1
  106. package/dist/cjs/components/fw-skip-indicator.js +0 -143
  107. package/dist/cjs/components/fw-skip-indicator.js.map +0 -1
  108. package/dist/cjs/components/fw-speed-indicator.js +0 -61
  109. package/dist/cjs/components/fw-speed-indicator.js.map +0 -1
  110. package/dist/cjs/components/fw-stats-panel.js +0 -205
  111. package/dist/cjs/components/fw-stats-panel.js.map +0 -1
  112. package/dist/cjs/components/fw-stream-state-overlay.js +0 -338
  113. package/dist/cjs/components/fw-stream-state-overlay.js.map +0 -1
  114. package/dist/cjs/components/fw-subtitle-renderer.js +0 -217
  115. package/dist/cjs/components/fw-subtitle-renderer.js.map +0 -1
  116. package/dist/cjs/components/fw-thumbnail-overlay.js +0 -161
  117. package/dist/cjs/components/fw-thumbnail-overlay.js.map +0 -1
  118. package/dist/cjs/components/fw-title-overlay.js +0 -72
  119. package/dist/cjs/components/fw-title-overlay.js.map +0 -1
  120. package/dist/cjs/components/fw-toast.js +0 -74
  121. package/dist/cjs/components/fw-toast.js.map +0 -1
  122. package/dist/cjs/components/fw-volume-control.js +0 -276
  123. package/dist/cjs/components/fw-volume-control.js.map +0 -1
  124. package/dist/cjs/components/shared/hitmarker-audio.js +0 -76
  125. package/dist/cjs/components/shared/hitmarker-audio.js.map +0 -1
  126. package/dist/cjs/constants/media-assets.js +0 -11
  127. package/dist/cjs/constants/media-assets.js.map +0 -1
  128. package/dist/cjs/controllers/player-controller-host.js +0 -364
  129. package/dist/cjs/controllers/player-controller-host.js.map +0 -1
  130. package/dist/cjs/define.js +0 -53
  131. package/dist/cjs/define.js.map +0 -1
  132. package/dist/cjs/icons/index.js +0 -180
  133. package/dist/cjs/icons/index.js.map +0 -1
  134. package/dist/cjs/index.js +0 -108
  135. package/dist/cjs/index.js.map +0 -1
  136. package/dist/cjs/node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.57.1_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.js +0 -33
  137. package/dist/cjs/node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.57.1_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.js.map +0 -1
  138. package/dist/cjs/styles/shared-styles.js +0 -1985
  139. package/dist/cjs/styles/shared-styles.js.map +0 -1
  140. package/dist/cjs/styles/utility-styles.js +0 -725
  141. package/dist/cjs/styles/utility-styles.js.map +0 -1
@@ -1,276 +0,0 @@
1
- 'use strict';
2
-
3
- var tslib_es6 = require('../node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.57.1_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.js');
4
- var lit = require('lit');
5
- var decorators_js = require('lit/decorators.js');
6
- var classMap_js = require('lit/directives/class-map.js');
7
- var styleMap_js = require('lit/directives/style-map.js');
8
- var sharedStyles = require('../styles/shared-styles.js');
9
- var index = require('../icons/index.js');
10
-
11
- exports.FwVolumeControl = class FwVolumeControl extends lit.LitElement {
12
- constructor() {
13
- super(...arguments);
14
- this._hovered = false;
15
- this._focused = false;
16
- this._dragging = false;
17
- this._hasAudio = true;
18
- this._activePointerId = null;
19
- this._activeSliderTarget = null;
20
- this._onGlobalPointerMove = (event) => {
21
- if (!this._dragging || this._activePointerId !== event.pointerId) {
22
- return;
23
- }
24
- const target = this._activeSliderTarget;
25
- if (!target) {
26
- return;
27
- }
28
- this._setVolumeFromClientX(event.clientX, target);
29
- };
30
- this._onGlobalPointerUp = (event) => {
31
- if (!this._dragging || this._activePointerId !== event.pointerId) {
32
- return;
33
- }
34
- this._endDragInteraction();
35
- };
36
- this._handleMouseEnter = () => {
37
- this._hovered = true;
38
- };
39
- this._handleMouseLeave = () => {
40
- if (this._dragging) {
41
- return;
42
- }
43
- this._hovered = false;
44
- this._focused = false;
45
- };
46
- this._handleFocusIn = () => {
47
- this._focused = true;
48
- };
49
- this._handleFocusOut = (event) => {
50
- if (this._dragging) {
51
- return;
52
- }
53
- const related = event.relatedTarget;
54
- if (!related || !this.renderRoot.contains(related)) {
55
- this._focused = false;
56
- }
57
- };
58
- this._onSliderPointerDown = (event) => {
59
- if (!this._hasAudio) {
60
- return;
61
- }
62
- event.preventDefault();
63
- const target = event.currentTarget;
64
- this._beginDragInteraction(target, event.pointerId);
65
- this._setVolumeFromClientX(event.clientX, target);
66
- };
67
- this._onWheel = (event) => {
68
- if (!this._hasAudio) {
69
- return;
70
- }
71
- event.preventDefault();
72
- const current = this.pc.s.isMuted ? 0 : Math.round(this.pc.s.volume * 100);
73
- const delta = event.deltaY < 0 ? 5 : -5;
74
- const next = Math.max(0, Math.min(100, current + delta));
75
- this.pc.setVolume(next / 100);
76
- if (this.pc.s.isMuted && next > 0) {
77
- this.pc.toggleMute();
78
- }
79
- };
80
- }
81
- get _expanded() {
82
- return this._hovered || this._focused || this._dragging;
83
- }
84
- disconnectedCallback() {
85
- super.disconnectedCallback();
86
- this._endDragInteraction();
87
- }
88
- updated() {
89
- this._updateHasAudio();
90
- }
91
- _updateHasAudio() {
92
- const video = this.pc?.s.videoElement;
93
- if (!video) {
94
- this._hasAudio = true;
95
- return;
96
- }
97
- if (video.srcObject instanceof MediaStream) {
98
- this._hasAudio = video.srcObject.getAudioTracks().length > 0;
99
- return;
100
- }
101
- const maybeWithTracks = video;
102
- if (maybeWithTracks.audioTracks && typeof maybeWithTracks.audioTracks.length === "number") {
103
- this._hasAudio = maybeWithTracks.audioTracks.length > 0;
104
- return;
105
- }
106
- this._hasAudio = true;
107
- }
108
- _setVolumeFromClientX(clientX, target) {
109
- const rect = target.getBoundingClientRect();
110
- if (rect.width <= 0) {
111
- return;
112
- }
113
- const pct = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));
114
- this.pc.setVolume(pct);
115
- if (this.pc.s.isMuted && pct > 0) {
116
- this.pc.toggleMute();
117
- }
118
- }
119
- _beginDragInteraction(target, pointerId) {
120
- this._activePointerId = pointerId;
121
- this._activeSliderTarget = target;
122
- this._dragging = true;
123
- this._hovered = true;
124
- this._focused = true;
125
- try {
126
- target.setPointerCapture(pointerId);
127
- }
128
- catch {
129
- // Non-fatal: we still listen on window as a fallback.
130
- }
131
- window.addEventListener("pointermove", this._onGlobalPointerMove);
132
- window.addEventListener("pointerup", this._onGlobalPointerUp);
133
- window.addEventListener("pointercancel", this._onGlobalPointerUp);
134
- }
135
- _endDragInteraction() {
136
- const pointerId = this._activePointerId;
137
- const target = this._activeSliderTarget;
138
- if (pointerId != null && target) {
139
- try {
140
- if (target.hasPointerCapture(pointerId)) {
141
- target.releasePointerCapture(pointerId);
142
- }
143
- }
144
- catch {
145
- // Ignore pointer-capture release errors.
146
- }
147
- }
148
- this._activePointerId = null;
149
- this._activeSliderTarget = null;
150
- this._dragging = false;
151
- window.removeEventListener("pointermove", this._onGlobalPointerMove);
152
- window.removeEventListener("pointerup", this._onGlobalPointerUp);
153
- window.removeEventListener("pointercancel", this._onGlobalPointerUp);
154
- }
155
- render() {
156
- const isMuted = this.pc.s.isMuted;
157
- const volume = this.pc.s.volume;
158
- const displayVolume = isMuted ? 0 : Math.max(0, Math.min(1, volume));
159
- return lit.html `
160
- <div
161
- class=${classMap_js.classMap({
162
- "fw-volume-group": true,
163
- "fw-volume-group--expanded": this._expanded,
164
- "fw-volume-group--disabled": !this._hasAudio,
165
- })}
166
- role="group"
167
- aria-label="Volume controls"
168
- @mouseenter=${this._handleMouseEnter}
169
- @mouseleave=${this._handleMouseLeave}
170
- @focusin=${this._handleFocusIn}
171
- @focusout=${this._handleFocusOut}
172
- @click=${(event) => {
173
- if (this._hasAudio && event.target === event.currentTarget) {
174
- this.pc.toggleMute();
175
- }
176
- }}
177
- @wheel=${this._onWheel}
178
- >
179
- <button
180
- class="fw-volume-btn"
181
- type="button"
182
- @click=${() => {
183
- if (this._hasAudio) {
184
- this.pc.toggleMute();
185
- }
186
- }}
187
- ?disabled=${!this._hasAudio}
188
- aria-label=${!this._hasAudio ? "No audio" : isMuted ? "Unmute" : "Mute"}
189
- title=${!this._hasAudio ? "No audio" : isMuted ? "Unmute" : "Mute"}
190
- >
191
- ${isMuted || !this._hasAudio ? index.volumeOffIcon(16) : index.volumeUpIcon(16)}
192
- </button>
193
-
194
- <div
195
- class=${classMap_js.classMap({
196
- "fw-volume-slider-wrapper": true,
197
- "fw-volume-slider-wrapper--expanded": this._expanded,
198
- "fw-volume-slider-wrapper--collapsed": !this._expanded,
199
- })}
200
- >
201
- <div
202
- class="slider"
203
- role="slider"
204
- aria-label="Volume"
205
- aria-valuemin="0"
206
- aria-valuemax="100"
207
- aria-valuenow=${Math.round(displayVolume * 100)}
208
- @pointerdown=${this._onSliderPointerDown}
209
- >
210
- <div class="slider-fill" style=${styleMap_js.styleMap({ width: `${displayVolume * 100}%` })}></div>
211
- <div class="slider-thumb" style=${styleMap_js.styleMap({ left: `${displayVolume * 100}%` })}></div>
212
- </div>
213
- </div>
214
- </div>
215
- `;
216
- }
217
- };
218
- exports.FwVolumeControl.styles = [
219
- sharedStyles.sharedStyles,
220
- lit.css `
221
- :host {
222
- display: flex;
223
- align-items: center;
224
- }
225
-
226
- .slider {
227
- position: relative;
228
- width: 100%;
229
- height: 0.25rem;
230
- background: rgb(255 255 255 / 0.2);
231
- border-radius: 9999px;
232
- cursor: pointer;
233
- touch-action: none;
234
- user-select: none;
235
- }
236
-
237
- .slider-fill {
238
- position: absolute;
239
- top: 0;
240
- left: 0;
241
- height: 100%;
242
- border-radius: 9999px;
243
- background: hsl(var(--tn-fg));
244
- }
245
-
246
- .slider-thumb {
247
- position: absolute;
248
- top: 50%;
249
- width: 0.625rem;
250
- height: 0.625rem;
251
- border-radius: 9999px;
252
- background: hsl(var(--tn-fg));
253
- transform: translate(-50%, -50%);
254
- pointer-events: none;
255
- }
256
- `,
257
- ];
258
- tslib_es6.__decorate([
259
- decorators_js.property({ attribute: false })
260
- ], exports.FwVolumeControl.prototype, "pc", void 0);
261
- tslib_es6.__decorate([
262
- decorators_js.state()
263
- ], exports.FwVolumeControl.prototype, "_hovered", void 0);
264
- tslib_es6.__decorate([
265
- decorators_js.state()
266
- ], exports.FwVolumeControl.prototype, "_focused", void 0);
267
- tslib_es6.__decorate([
268
- decorators_js.state()
269
- ], exports.FwVolumeControl.prototype, "_dragging", void 0);
270
- tslib_es6.__decorate([
271
- decorators_js.state()
272
- ], exports.FwVolumeControl.prototype, "_hasAudio", void 0);
273
- exports.FwVolumeControl = tslib_es6.__decorate([
274
- decorators_js.customElement("fw-volume-control")
275
- ], exports.FwVolumeControl);
276
- //# sourceMappingURL=fw-volume-control.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fw-volume-control.js","sources":["../../../../src/components/fw-volume-control.ts"],"sourcesContent":["/**\n * <fw-volume-control> — Mute toggle + expandable volume slider.\n */\nimport { LitElement, html, css } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { sharedStyles } from \"../styles/shared-styles.js\";\nimport { volumeUpIcon, volumeOffIcon } from \"../icons/index.js\";\nimport type { PlayerControllerHost } from \"../controllers/player-controller-host.js\";\n\n@customElement(\"fw-volume-control\")\nexport class FwVolumeControl extends LitElement {\n @property({ attribute: false }) pc!: PlayerControllerHost;\n\n @state() private _hovered = false;\n @state() private _focused = false;\n @state() private _dragging = false;\n @state() private _hasAudio = true;\n\n private _activePointerId: number | null = null;\n private _activeSliderTarget: HTMLElement | null = null;\n\n static styles = [\n sharedStyles,\n css`\n :host {\n display: flex;\n align-items: center;\n }\n\n .slider {\n position: relative;\n width: 100%;\n height: 0.25rem;\n background: rgb(255 255 255 / 0.2);\n border-radius: 9999px;\n cursor: pointer;\n touch-action: none;\n user-select: none;\n }\n\n .slider-fill {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n border-radius: 9999px;\n background: hsl(var(--tn-fg));\n }\n\n .slider-thumb {\n position: absolute;\n top: 50%;\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 9999px;\n background: hsl(var(--tn-fg));\n transform: translate(-50%, -50%);\n pointer-events: none;\n }\n `,\n ];\n\n private get _expanded(): boolean {\n return this._hovered || this._focused || this._dragging;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this._endDragInteraction();\n }\n\n protected updated(): void {\n this._updateHasAudio();\n }\n\n private _updateHasAudio(): void {\n const video = this.pc?.s.videoElement;\n if (!video) {\n this._hasAudio = true;\n return;\n }\n\n if (video.srcObject instanceof MediaStream) {\n this._hasAudio = video.srcObject.getAudioTracks().length > 0;\n return;\n }\n\n const maybeWithTracks = video as HTMLVideoElement & {\n audioTracks?: {\n length: number;\n };\n };\n\n if (maybeWithTracks.audioTracks && typeof maybeWithTracks.audioTracks.length === \"number\") {\n this._hasAudio = maybeWithTracks.audioTracks.length > 0;\n return;\n }\n\n this._hasAudio = true;\n }\n\n private _setVolumeFromClientX(clientX: number, target: HTMLElement): void {\n const rect = target.getBoundingClientRect();\n if (rect.width <= 0) {\n return;\n }\n\n const pct = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));\n this.pc.setVolume(pct);\n\n if (this.pc.s.isMuted && pct > 0) {\n this.pc.toggleMute();\n }\n }\n\n private _beginDragInteraction(target: HTMLElement, pointerId: number): void {\n this._activePointerId = pointerId;\n this._activeSliderTarget = target;\n this._dragging = true;\n this._hovered = true;\n this._focused = true;\n\n try {\n target.setPointerCapture(pointerId);\n } catch {\n // Non-fatal: we still listen on window as a fallback.\n }\n\n window.addEventListener(\"pointermove\", this._onGlobalPointerMove);\n window.addEventListener(\"pointerup\", this._onGlobalPointerUp);\n window.addEventListener(\"pointercancel\", this._onGlobalPointerUp);\n }\n\n private _endDragInteraction(): void {\n const pointerId = this._activePointerId;\n const target = this._activeSliderTarget;\n if (pointerId != null && target) {\n try {\n if (target.hasPointerCapture(pointerId)) {\n target.releasePointerCapture(pointerId);\n }\n } catch {\n // Ignore pointer-capture release errors.\n }\n }\n\n this._activePointerId = null;\n this._activeSliderTarget = null;\n this._dragging = false;\n window.removeEventListener(\"pointermove\", this._onGlobalPointerMove);\n window.removeEventListener(\"pointerup\", this._onGlobalPointerUp);\n window.removeEventListener(\"pointercancel\", this._onGlobalPointerUp);\n }\n\n private _onGlobalPointerMove = (event: PointerEvent): void => {\n if (!this._dragging || this._activePointerId !== event.pointerId) {\n return;\n }\n const target = this._activeSliderTarget;\n if (!target) {\n return;\n }\n this._setVolumeFromClientX(event.clientX, target);\n };\n\n private _onGlobalPointerUp = (event: PointerEvent): void => {\n if (!this._dragging || this._activePointerId !== event.pointerId) {\n return;\n }\n this._endDragInteraction();\n };\n\n private _handleMouseEnter = (): void => {\n this._hovered = true;\n };\n\n private _handleMouseLeave = (): void => {\n if (this._dragging) {\n return;\n }\n this._hovered = false;\n this._focused = false;\n };\n\n private _handleFocusIn = (): void => {\n this._focused = true;\n };\n\n private _handleFocusOut = (event: FocusEvent): void => {\n if (this._dragging) {\n return;\n }\n const related = event.relatedTarget as Node | null;\n if (!related || !this.renderRoot.contains(related)) {\n this._focused = false;\n }\n };\n\n private _onSliderPointerDown = (event: PointerEvent) => {\n if (!this._hasAudio) {\n return;\n }\n\n event.preventDefault();\n const target = event.currentTarget as HTMLElement;\n this._beginDragInteraction(target, event.pointerId);\n this._setVolumeFromClientX(event.clientX, target);\n };\n\n private _onWheel = (event: WheelEvent) => {\n if (!this._hasAudio) {\n return;\n }\n\n event.preventDefault();\n\n const current = this.pc.s.isMuted ? 0 : Math.round(this.pc.s.volume * 100);\n const delta = event.deltaY < 0 ? 5 : -5;\n const next = Math.max(0, Math.min(100, current + delta));\n this.pc.setVolume(next / 100);\n\n if (this.pc.s.isMuted && next > 0) {\n this.pc.toggleMute();\n }\n };\n\n protected render() {\n const isMuted = this.pc.s.isMuted;\n const volume = this.pc.s.volume;\n const displayVolume = isMuted ? 0 : Math.max(0, Math.min(1, volume));\n\n return html`\n <div\n class=${classMap({\n \"fw-volume-group\": true,\n \"fw-volume-group--expanded\": this._expanded,\n \"fw-volume-group--disabled\": !this._hasAudio,\n })}\n role=\"group\"\n aria-label=\"Volume controls\"\n @mouseenter=${this._handleMouseEnter}\n @mouseleave=${this._handleMouseLeave}\n @focusin=${this._handleFocusIn}\n @focusout=${this._handleFocusOut}\n @click=${(event: MouseEvent) => {\n if (this._hasAudio && event.target === event.currentTarget) {\n this.pc.toggleMute();\n }\n }}\n @wheel=${this._onWheel}\n >\n <button\n class=\"fw-volume-btn\"\n type=\"button\"\n @click=${() => {\n if (this._hasAudio) {\n this.pc.toggleMute();\n }\n }}\n ?disabled=${!this._hasAudio}\n aria-label=${!this._hasAudio ? \"No audio\" : isMuted ? \"Unmute\" : \"Mute\"}\n title=${!this._hasAudio ? \"No audio\" : isMuted ? \"Unmute\" : \"Mute\"}\n >\n ${isMuted || !this._hasAudio ? volumeOffIcon(16) : volumeUpIcon(16)}\n </button>\n\n <div\n class=${classMap({\n \"fw-volume-slider-wrapper\": true,\n \"fw-volume-slider-wrapper--expanded\": this._expanded,\n \"fw-volume-slider-wrapper--collapsed\": !this._expanded,\n })}\n >\n <div\n class=\"slider\"\n role=\"slider\"\n aria-label=\"Volume\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow=${Math.round(displayVolume * 100)}\n @pointerdown=${this._onSliderPointerDown}\n >\n <div class=\"slider-fill\" style=${styleMap({ width: `${displayVolume * 100}%` })}></div>\n <div class=\"slider-thumb\" style=${styleMap({ left: `${displayVolume * 100}%` })}></div>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"fw-volume-control\": FwVolumeControl;\n }\n}\n"],"names":["FwVolumeControl","LitElement","html","classMap","volumeOffIcon","volumeUpIcon","styleMap","sharedStyles","css","__decorate","property","state","customElement"],"mappings":"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"}
@@ -1,76 +0,0 @@
1
- 'use strict';
2
-
3
- var mediaAssets = require('../../constants/media-assets.js');
4
-
5
- function createSyntheticHitmarkerSound() {
6
- try {
7
- const AudioContextCtor = window.AudioContext ||
8
- window.webkitAudioContext;
9
- if (!AudioContextCtor) {
10
- return;
11
- }
12
- const audioContext = new AudioContextCtor();
13
- const oscillator1 = audioContext.createOscillator();
14
- const oscillator2 = audioContext.createOscillator();
15
- const noiseBuffer = audioContext.createBuffer(1, audioContext.sampleRate * 0.1, audioContext.sampleRate);
16
- const noiseSource = audioContext.createBufferSource();
17
- const noiseData = noiseBuffer.getChannelData(0);
18
- for (let index = 0; index < noiseData.length; index += 1) {
19
- noiseData[index] = Math.random() * 2 - 1;
20
- }
21
- noiseSource.buffer = noiseBuffer;
22
- const gainNode1 = audioContext.createGain();
23
- const gainNode2 = audioContext.createGain();
24
- const noiseGain = audioContext.createGain();
25
- const masterGain = audioContext.createGain();
26
- oscillator1.connect(gainNode1);
27
- oscillator2.connect(gainNode2);
28
- noiseSource.connect(noiseGain);
29
- gainNode1.connect(masterGain);
30
- gainNode2.connect(masterGain);
31
- noiseGain.connect(masterGain);
32
- masterGain.connect(audioContext.destination);
33
- oscillator1.frequency.setValueAtTime(1800, audioContext.currentTime);
34
- oscillator1.frequency.exponentialRampToValueAtTime(900, audioContext.currentTime + 0.08);
35
- oscillator2.frequency.setValueAtTime(3600, audioContext.currentTime);
36
- oscillator2.frequency.exponentialRampToValueAtTime(1800, audioContext.currentTime + 0.04);
37
- oscillator1.type = "triangle";
38
- oscillator2.type = "sine";
39
- gainNode1.gain.setValueAtTime(0, audioContext.currentTime);
40
- gainNode1.gain.linearRampToValueAtTime(0.4, audioContext.currentTime + 0.002);
41
- gainNode1.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.12);
42
- gainNode2.gain.setValueAtTime(0, audioContext.currentTime);
43
- gainNode2.gain.linearRampToValueAtTime(0.3, audioContext.currentTime + 0.001);
44
- gainNode2.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.06);
45
- noiseGain.gain.setValueAtTime(0, audioContext.currentTime);
46
- noiseGain.gain.linearRampToValueAtTime(0.2, audioContext.currentTime + 0.001);
47
- noiseGain.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.01);
48
- masterGain.gain.setValueAtTime(0.5, audioContext.currentTime);
49
- const startTime = audioContext.currentTime;
50
- const stopTime = startTime + 0.15;
51
- oscillator1.start(startTime);
52
- oscillator2.start(startTime);
53
- noiseSource.start(startTime);
54
- oscillator1.stop(stopTime);
55
- oscillator2.stop(stopTime);
56
- noiseSource.stop(startTime + 0.02);
57
- }
58
- catch {
59
- // Ignore audio errors.
60
- }
61
- }
62
- function playHitmarkerSound() {
63
- try {
64
- const audio = new Audio(mediaAssets.HITMARKER_AUDIO_DATA_URL);
65
- audio.volume = 0.3;
66
- void audio.play().catch(() => {
67
- createSyntheticHitmarkerSound();
68
- });
69
- }
70
- catch {
71
- createSyntheticHitmarkerSound();
72
- }
73
- }
74
-
75
- exports.playHitmarkerSound = playHitmarkerSound;
76
- //# sourceMappingURL=hitmarker-audio.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hitmarker-audio.js","sources":["../../../../../src/components/shared/hitmarker-audio.ts"],"sourcesContent":["import { HITMARKER_AUDIO_DATA_URL } from \"../../constants/media-assets.js\";\n\nfunction createSyntheticHitmarkerSound(): void {\n try {\n const AudioContextCtor =\n window.AudioContext ||\n ((window as unknown as { webkitAudioContext?: typeof AudioContext }).webkitAudioContext as\n | typeof AudioContext\n | undefined);\n if (!AudioContextCtor) {\n return;\n }\n\n const audioContext = new AudioContextCtor();\n\n const oscillator1 = audioContext.createOscillator();\n const oscillator2 = audioContext.createOscillator();\n const noiseBuffer = audioContext.createBuffer(\n 1,\n audioContext.sampleRate * 0.1,\n audioContext.sampleRate\n );\n const noiseSource = audioContext.createBufferSource();\n\n const noiseData = noiseBuffer.getChannelData(0);\n for (let index = 0; index < noiseData.length; index += 1) {\n noiseData[index] = Math.random() * 2 - 1;\n }\n noiseSource.buffer = noiseBuffer;\n\n const gainNode1 = audioContext.createGain();\n const gainNode2 = audioContext.createGain();\n const noiseGain = audioContext.createGain();\n const masterGain = audioContext.createGain();\n\n oscillator1.connect(gainNode1);\n oscillator2.connect(gainNode2);\n noiseSource.connect(noiseGain);\n\n gainNode1.connect(masterGain);\n gainNode2.connect(masterGain);\n noiseGain.connect(masterGain);\n masterGain.connect(audioContext.destination);\n\n oscillator1.frequency.setValueAtTime(1800, audioContext.currentTime);\n oscillator1.frequency.exponentialRampToValueAtTime(900, audioContext.currentTime + 0.08);\n oscillator2.frequency.setValueAtTime(3600, audioContext.currentTime);\n oscillator2.frequency.exponentialRampToValueAtTime(1800, audioContext.currentTime + 0.04);\n\n oscillator1.type = \"triangle\";\n oscillator2.type = \"sine\";\n\n gainNode1.gain.setValueAtTime(0, audioContext.currentTime);\n gainNode1.gain.linearRampToValueAtTime(0.4, audioContext.currentTime + 0.002);\n gainNode1.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.12);\n\n gainNode2.gain.setValueAtTime(0, audioContext.currentTime);\n gainNode2.gain.linearRampToValueAtTime(0.3, audioContext.currentTime + 0.001);\n gainNode2.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.06);\n\n noiseGain.gain.setValueAtTime(0, audioContext.currentTime);\n noiseGain.gain.linearRampToValueAtTime(0.2, audioContext.currentTime + 0.001);\n noiseGain.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.01);\n\n masterGain.gain.setValueAtTime(0.5, audioContext.currentTime);\n\n const startTime = audioContext.currentTime;\n const stopTime = startTime + 0.15;\n\n oscillator1.start(startTime);\n oscillator2.start(startTime);\n noiseSource.start(startTime);\n\n oscillator1.stop(stopTime);\n oscillator2.stop(stopTime);\n noiseSource.stop(startTime + 0.02);\n } catch {\n // Ignore audio errors.\n }\n}\n\nexport function playHitmarkerSound(): void {\n try {\n const audio = new Audio(HITMARKER_AUDIO_DATA_URL);\n audio.volume = 0.3;\n void audio.play().catch(() => {\n createSyntheticHitmarkerSound();\n });\n } catch {\n createSyntheticHitmarkerSound();\n }\n}\n"],"names":["HITMARKER_AUDIO_DATA_URL"],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Shared media/data assets used by WC parity components.
5
- */
6
- const LOGOMARK_DATA_URL = `data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDE1ODA2IDE1ODA2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoNS41NTU1NiwwLDAsNS41NTU1NiwwLDApIj4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCg4LjMxNDYyLDAsMCw4LjMxNDYyLDguMjIyNjdlLTE0LC02LjQ5Mzg5ZS0xNCkiPgogICAgICAgICAgICA8Zz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg4LjgyLDU5Ni4wOUM0ODkuMzYsNTk1LjIgNDg5Ljg5LDU5NC4zMSA0OTAuNDEsNTkzLjQxQzQ5MC41LDU5My4yNSA0OTAuNTksNTkzLjA5IDQ5MC42OCw1OTIuOTNDNDk5LjQzLDU3Ny41NiA1MDQuOCw1NjAuMDMgNTA1LjgsNTQxLjMzQzUwNS44Miw1NDEuMDUgNTA1LjgzLDU0MC43NyA1MDUuODUsNTQwLjQ5QzUwNS44OCw1MzkuNzkgNTA1LjkxLDUzOS4wOSA1MDUuOTMsNTM4LjM4QzUwNS45Niw1MzcuNDYgNTA1Ljk3LDUzNi41NCA1MDUuOTgsNTM1LjYxQzUwNS45OCw1MzUuNDEgNTA1Ljk5LDUzNS4yIDUwNS45OSw1MzVMNTA1Ljk5LDUzNC43MkM1MDUuOTksNDY5LjQzIDQ1My4wNiw0MTYuNTEgMzg3Ljc4LDQxNi41MUMzMjIuNSw0MTYuNTEgMjY5LjU3LDQ2OS40NCAyNjkuNTcsNTM0LjcyQzI2OS41Nyw1ODIuOTUgMjk4LjQ1LDYyNC40MyAzMzkuODYsNjQyLjgxQzM0Mi4xNyw2NDEuODMgMzQ0LjgyLDY0MS42IDM0Ny42LDY0Mi41QzM0Ny43MSw2NDIuNDggMzQ4LjA2LDY0Mi41OCAzNDguOCw2NDIuOTNDMzQ5Ljg3LDY0Mi41OSAzNTEuMDgsNjQyLjQ2IDM1Mi4xNyw2NDIuMjJDMzU0LjYzLDY0MS42OCAzNTcuMTIsNjQxLjMzIDM1OS41OCw2NDAuODFDMzY1LjE1LDYzOS42NCAzNzAuNTksNjM3Ljg5IDM3Ni4xNiw2MzYuNzNDMzgyLjMyLDYzNS40NSAzODguNjksNjM4LjQ2IDM5MC40NCw2NDQuODRDMzkxLjE2LDY0Ny40NiAzOTAuODEsNjUwLjM4IDM4OS42NSw2NTIuOTFDNDMwLjQyLDY1Mi4yOCA0NjYuMTcsNjMxLjAxIDQ4Ni45Myw1OTkuMDlDNDg3LjEsNTk4LjgzIDQ4Ny4yNyw1OTguNTcgNDg3LjQ0LDU5OC4zMUM0ODcuOTEsNTk3LjU3IDQ4OC4zNyw1OTYuODMgNDg4LjgzLDU5Ni4wOUw0ODguODIsNTk2LjA5WiIgc3R5bGU9ImZpbGw6cmdiKDI2LDI2LDI2KTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzk4Ljg3LDQ4NC4yTDM5OS44OCw1MDUuODlMNDEwLjI4LDUwOS41NUwzOTUuNTIsNTA5LjU1TDM5NC40Myw0NzkuNDhMNDE1LjIsNDc5LjQ4TDM5OC44Nyw0ODQuMloiIHN0eWxlPSJmaWxsOnJnYig3Nyw3Nyw3Nyk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0yMTcuMTI1LC0zNjguOTAyKSI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQwNy41Miw2MzIuNDNMNDA3LjUyLDYzMi4zN0w0MDUuODMsNTY3LjgxTDQwNS45MSw1NjAuNzVMNDIwLjgxLDU1NS4zTDM5OS4zMSw1NTZMNDAyLjk1LDYzMC4yMkM0MDQuNDksNjMwLjg5IDQwNi4wMiw2MzEuNjIgNDA3LjUzLDYzMi40Mkw0MDcuNTIsNjMyLjQzWiIgc3R5bGU9ImZpbGw6cmdiKDc3LDc3LDc3KTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzE1Ljc1LDQzNS44NkwzMTUuNzUsNDQ1LjE5QzMxNS43NSw0NDUuMTkgMzQzLjA5LDQ0NC4xIDM0My4wOSw0NjcuMzJMMzQzLjA5LDQ5MS4xMkwzNjYuMTcsNDc2LjJMNDY3LjI3LDQ3Ni4yQzQ3My4xNCw0NzYuMiA0NzguOTgsNDc3LjI3IDQ4NC40MSw0NzkuNUM0ODkuNCw0ODEuNTUgNDk0LjE1LDQ4NC42MSA0OTQuMTUsNDg4LjgyTDQ5NC4xNSw0NDIuNDFMNDA2LjI0LDQ0Mi40MUw0MDYuMjQsNDM1LjkyTDMxNS43NSw0MzUuODZaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODQuNTIsNTQ5LjUzQzM4Myw1NDkuODQgMzc0LjUsNTU0LjgxIDM3Mi40MSw1NTUuOTlDMzYxLjA2LDU2Mi4zOSAzNTAuNjYsNTcwLjI5IDM0MC41Niw1NzguNDdMMzQzLjU1LDUxMS4zQzM1Ny4yOSw0OTkuNzYgMzcyLjg5LDQ4OS43MSAzODkuNjksNDgzLjQ2TDM5MS4zNCw1MTEuODVMMzgwLjQxLDUxNS42OEw0NjUuMDUsNTE1LjY4TDQ2NS4wNSw1NDkuNTRMMzg0LjUxLDU0OS41NEwzODQuNTIsNTQ5LjUzWiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjYyLDYyMC4xNUMzODYuMyw2MTguNDcgMzg4Ljc4LDYxNy40NCAzOTEuMTUsNjE3LjQ0QzM5Mi4zMiw2MTcuNDQgMzkzLjQyLDYxNy42NiAzOTQuNDMsNjE4LjA1TDM5MS41Myw1NjEuMjRDMzc2LjQ0LDU2OC41NCAzNjEuNjIsNTc2Ljc4IDM0OC40NSw1ODcuMjNDMzQ2LjUzLDU4OC43NSAzMzkuNDQsNTk0LjMgMzM4LjUzLDU5NS44OEMzMzguMTYsNTk2LjUzIDMzOC4wOCw1OTYuNzcgMzM3Ljk5LDU5Ny41MkMzMzYuMTUsNjExLjI5IDM0MS42OCw2MjYuMjQgMzI3LjQ4LDYzNS4wNkMzMjUuNCw2MzYuMzUgMzIyLjI4LDYzNy4xOCAzMjAuNDEsNjM4LjM2QzMxOS43Miw2MzguNzkgMzE5LjI2LDYzOC44NyAzMTkuNDYsNjM5Ljg3TDM1Ny42OCw2NDAuNzdMMzU3LjY4LDYyMS4wM0MzNTcuNjgsNjIwLjgyIDM1OC43OSw2MTguNDYgMzU5LjA3LDYxOC4wNUMzNjIsNjEzLjc2IDM2OC42NCw2MTMuMDUgMzcyLjQ1LDYxNi42M0MzNzMuMTgsNjE3LjMyIDM3NS4xNSw2MjAuODQgMzc1LjE1LDYyMS41N0wzNzUuMTUsNjI2LjY4QzM3Ni4zMiw2MjYuMDEgMzc3LjU2LDYyNS40NiAzNzguODcsNjI1LjA0QzM4MC4wMyw2MjQuNDMgMzgxLjIzLDYyMy45NCAzODIuNDUsNjIzLjU4QzM4Mi45NCw2MjIuMjcgMzgzLjcxLDYyMS4wNCAzODQuNjIsNjIwLjE0TDM4NC42Miw2MjAuMTVaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjMzNi41OSIgeT0iNDI4LjgyIiB3aWR0aD0iNTUuMTMiIGhlaWdodD0iOC42NiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzcwLjQzLDQwNS40MUwzODEuMjgsNDA1LjQxTDM4MS4yOCw0MjguODJMMzQ3LjAyLDQyOC44MkMzNDcuMDIsNDE1LjkgMzU3LjUxLDQwNS40MSAzNzAuNDMsNDA1LjQxWiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzc1LjE1LDYyMS41OUwzNzUuMTUsNjQ2LjRMMzk5LjMxLDY0My4zMkwzOTMuODIsNjA2LjEyIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00MzQuOTUsNjQxLjc3QzQyNy40NSw2MzYuNzkgNDIwLjU0LDYzMC45OCA0MTQuMTMsNjI0LjY4QzM3OC44Niw2NTAuMSAzMzEuNjgsNjYwLjUxIDI4OS45Miw2NDUuMjRDMjc2LjcsNjU2LjM4IDI2MC4yLDY2My4wMyAyNDMuMjEsNjY2LjEzQzI0NS4yOCw2NjguNDIgMjQ3LjE3LDY3MC44NSAyNDksNjczLjM2QzI1OS4xMSw2NzMuNzUgMjY5LjQxLDY3My43OSAyNzkuNDcsNjcyLjk0QzMxNi42LDY2OS43NyAzNTEuNzgsNjUxLjg4IDM4OS4zOCw2NTMuMjZDNDIwLjMxLDY1NC40IDQ0OC40Niw2NzAuOTUgNDc5LjI2LDY3My4yNEM0OTMuNzQsNjc0LjMxIDUxMC43OCw2NzEuMDQgNTI0LjI4LDY2NS43MkM1MjQuNiw2NjUuNiA1MjUuMTcsNjY1LjYzIDUyNS4xLDY2NS4yQzQ5My41NSw2NjcuMTIgNDYxLjIyLDY1OS4yMiA0MzQuOTQsNjQxLjc4TDQzNC45NSw2NDEuNzdaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00MzEuNjQsNjgxLjI4QzQzMS43MSw2ODEuODIgNDMwLjk5LDY4MS41NSA0MzAuNjcsNjgxLjVDNDI4LjcsNjgxLjE5IDQyNi40OSw2ODAuMzYgNDI0LjQ4LDY3OS45MkM0MDAuODEsNjc0LjcyIDM3NS4zNSw2NzIuNjkgMzUxLjIsNjc1LjY1QzM0MS4xMSw2NzYuODkgMzMxLjI4LDY3OS42MiAzMjEuMjQsNjgxLjIyQzMwMC40NSw2ODQuNTMgMjc4LjYyLDY4NS43NCAyNTcuODMsNjgyLjAxQzI3My44NSw2ODIuMTQgMjg5LjY2LDY4MC4xNiAzMDUuMjEsNjc2LjU0QzMxOS45OSw2NzMuMDkgMzM0Ljk1LDY2Ny4zOCAzNTAuMDEsNjY1LjUyQzM3Ny41NSw2NjIuMTEgNDA2LjI5LDY3MS43IDQzMS42NCw2ODEuMjhaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNzYuMzEsNjM2LjQxTDM2Ny42Nyw2MzkuOTRDMzQyLjA1LDY0OC4yIDMxNC4xMyw2NDYuODQgMjg4Ljc2LDYzOC4zN0MyODAuMSw2NDQuNDYgMjcxLjE0LDY1MC42NCAyNjAuODIsNjUzLjU2TDI2Ny4wNiw2NDkuMjJDMjc2LjE5LDY0Mi4yMiAyODUuMDgsNjM0LjY1IDI5MS40Nyw2MjQuOThDMjk0Ljc5LDYyNi40MyAyOTcuOTIsNjI4LjMxIDMwMS4yMyw2MjkuNzhDMzIzLjc2LDYzOS44MiAzNTIuMTIsNjQyLjMxIDM3Ni4zMSw2MzYuNDFaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00OTYuNDQsNjc5Ljc5TDQ5My42Miw2ODAuOTlDNDU1LjExLDY5Ni4wOSA0MjIuMzIsNjY2LjAxIDM4NS4xMiw2NjEuN0wzNzQuNjEsNjYwLjEzQzM5Ny4wNSw2NTguMzMgNDE5LjAzLDY2My42MiA0NDAuMjQsNjcwLjE4QzQ0NS44Niw2NzEuOTIgNDUxLjQsNjc0LjEzIDQ1Ny4wMyw2NzUuNzdDNDY5LjY3LDY3OS40NiA0ODMuMzMsNjgxLjE5IDQ5Ni40NSw2NzkuOEw0OTYuNDQsNjc5Ljc5WiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNTAyLjcyLDY1OC4wNEw0OTkuODksNjU4LjMzQzQ4MC40Miw2NTUuODcgNDYxLjU4LDY0OS41NiA0NDQuNTksNjM5LjkxQzQ0Mi44Niw2MzguOTMgNDQwLjk2LDYzNy44MyA0MzkuNDIsNjM2LjU4QzQ0Ny45LDYzOC45NCA0NTYuNzcsNjM1LjkyIDQ2NC4zMyw2MzIuMTJDNDcyLjIxLDY0Ni4xMyA0ODcuMzYsNjU0LjYyIDUwMi43Myw2NTguMDNMNTAyLjcyLDY1OC4wNFoiIHN0eWxlPSJmaWxsOnJnYigyNDIsMjQyLDI0Mik7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQ0MCw2OTAuODJDNDQwLjA3LDY5MS4zNiA0MzkuMzUsNjkxLjA5IDQzOS4wMyw2OTEuMDRDNDM1LjY5LDY5MC41MSA0MzIuMzUsNjg5LjY0IDQyOS4wMiw2ODkuMTFDMzk4LjE2LDY4NC4yMSAzNjYuNzcsNjg0LjAyIDMzNS42NCw2ODYuMDZDMzM1LjMyLDY4Ni4wOCAzMzQuMjMsNjg2LjI3IDMzNC4yOSw2ODUuNzVDMzY5LjA2LDY3Ni43OSA0MDYuMDQsNjgwLjQxIDQ0MCw2OTAuODJaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMTMuNTYsNTcyLjg3TDMxMy42OSw1NzIuMTRMMzEzLjk0LDU3Mi40OUwzMTMuNTYsNTcyLjg3WiIgc3R5bGU9ImZpbGw6cmdiKDIsMzgsNDMpO2ZpbGwtb3BhY2l0eTowLjY7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0yMTcuMTI1LC0zNjguOTAyKSI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUzOS4wNiw2MjAuNTFDNTQyLjYyLDYxMy44MyA1NDUuNzIsNjA2Ljk1IDU0OC4zNSw1OTkuOTFDNTYwLjQ1LDU2Ny41NCA1NjIuNjMsNTMxLjg1IDU1NC4wMSw0OTcuODNDNTUzLjU2LDQ5Ni4wMyA1NTEuNzMsNDk0Ljk0IDU0OS45Myw0OTUuNEM1NDguMTQsNDk1Ljg1IDU0Ny4wNSw0OTcuNjggNTQ3LjUsNDk5LjQ3QzU1NS43OSw1MzIuMTcgNTUzLjY5LDU2Ni40NiA1NDIuMDgsNTk3LjU2QzUzOS45OCw2MDMuMTggNTM3LjU2LDYwOC43MSA1MzQuODQsNjE0LjFDNTMyLjYzLDYxOC40OCA1MzAuMjEsNjIyLjc3IDUyNy41OSw2MjYuOTZDNTI3LjMsNjI3LjQ0IDUyNyw2MjcuOTEgNTI2LjY5LDYyOC4zOEM1MjUuNDIsNjMwLjM5IDUyNC4xLDYzMi4zNyA1MjIuNzEsNjM0LjMyQzUyMi4wNSw2MzUuMjggNTIxLjM2LDYzNi4yNCA1MjAuNjYsNjM3LjE5QzUxOS43Niw2MzguNDIgNTE4Ljg0LDYzOS42MyA1MTcuODksNjQwLjg0QzUxMi41Niw2NDcuNzEgNTA2LjYyLDY1NC4yIDUwMC4wOSw2NjAuMjZDNDk4LjI1LDY2MS45NiA0OTYuMzYsNjYzLjY0IDQ5NC40Myw2NjUuMjdDNDkwLjQ4LDY2OC42MSA0ODYuMzMsNjcxLjggNDgyLDY3NC44MUM0NzguNTcsNjc3LjE5IDQ3NC44OCw2NzkuNTkgNDcxLjEzLDY4MS43N0M0NjcuODIsNjgzLjY5IDQ2NC40Nyw2ODUuNDUgNDYxLjIsNjg2LjkyQzQ2MS4wNiw2ODYuOTkgNDYwLjkyLDY4Ny4wNiA0NjAuNzksNjg3LjE0TDQ2MC43Niw2ODcuMTZMNDYwLjc0LDY4Ny4xNkw0NjAuNTgsNjg3LjI5TDQ2MC40Myw2ODcuNDFMNDYwLjM3LDY4Ny40NUw0NjAuMyw2ODcuNTFMNDYwLjExLDY4Ny43TDQ2MC4wNyw2ODcuNzVMNDYwLjA1LDY4Ny43N0w0NjAuMDMsNjg3LjhMNDYwLDY4Ny44M0M0NTkuNzcsNjg4LjExIDQ1OS41Nyw2ODguNDMgNDU5LjQ0LDY4OC43OUM0NTkuMyw2ODkuMTUgNDU5LjIzLDY4OS41MyA0NTkuMjIsNjg5LjlMNDU5LjIyLDY5MC4yNkw0NTkuMjUsNjkwLjQyTDQ1OS4yOSw2OTAuNjdMNDU5LjM1LDY5MC45QzQ1OS4zOSw2OTEuMDYgNDU5LjQ1LDY5MS4yMSA0NTkuNTEsNjkxLjM2QzQ1OS41OCw2OTEuNSA0NTkuNjUsNjkxLjY0IDQ1OS43Myw2OTEuNzdMNDU5Ljc1LDY5MS43OUw0NTkuNzcsNjkxLjgyTDQ1OS44OCw2OTEuOThMNDYwLDY5Mi4xM0w0NjAuMDQsNjkyLjE5TDQ2MC4zNCw2OTIuNDlMNDYwLjM2LDY5Mi40OUw0NjAuNDIsNjkyLjU2QzQ2MC43LDY5Mi43OSA0NjEuMDIsNjkyLjk4IDQ2MS4zOCw2OTMuMTJMNDgzLjA5LDcwMS4zOUw1MDQuNzUsNzA5LjY1QzUwNC45NCw3MDkuNzIgNTA1LjEzLDcwOS43OCA1MDUuMzQsNzA5LjgyQzUwNi4zMSw3MTAuMjEgNTA3LjQ0LDcxMC4xIDUwOC4zMiw3MDkuNDhDNTA4LjQ5LDcwOS4zNyA1MDguNjQsNzA5LjIzIDUwOC43OSw3MDkuMDhMNTU2LjM1LDY1OS44QzU1Ny4zOCw2NTguNzMgNTU3LjUsNjU3LjEyIDU1Ni43NSw2NTUuOTJMNTM5LjA2LDYyMC41MVoiIHN0eWxlPSJmaWxsOnJnYigyNDIsMjQyLDI0Mik7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0yMTcuMTI1LC0zNjguOTAyKSI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQyNy43LDY5Ny42N0MzOTUsNzA1Ljk2IDM2MC43MSw3MDMuODYgMzI5LjYyLDY5Mi4yNEMzMTMuOTYsNjg2LjM5IDI5OS4xMSw2NzguMTMgMjg1LjY3LDY2Ny41NEMyODMuNjcsNjY1Ljk4IDI4MS42OSw2NjQuMzUgMjc5Ljc1LDY2Mi42N0MyNzIuMjEsNjU2LjE0IDI2NS4xNyw2NDguODMgMjU4Ljc3LDY0MC43N0MyNTcuNDYsNjM5LjE0IDI1Ni4xOCw2MzcuNDYgMjU0Ljk0LDYzNS43NkMyNTQuNTcsNjM1LjI3IDI1NC4yMSw2MzQuNzggMjUzLjg1LDYzNC4yOEMyNTMuMzUsNjMzLjU4IDI1Mi44NSw2MzIuODggMjUyLjM2LDYzMi4xN0MyNDkuOTgsNjI4LjczIDI0Ny41OSw2MjUuMDUgMjQ1LjQsNjIxLjI5QzI0My41MSw2MTguMDUgMjQxLjc4LDYxNC43NiAyNDAuMzMsNjExLjU0QzI0MC4zLDYxMS40OCAyNDAuMjgsNjExLjQzIDI0MC4yNSw2MTEuMzdDMjQwLjI1LDYxMS4zNSAyNDAuMjMsNjExLjMyIDI0MC4yMiw2MTEuM0MyNDAuMTYsNjExLjE4IDI0MC4xLDYxMS4wNyAyNDAuMDMsNjEwLjk2TDI0MC4wMSw2MTAuOTNMMjQwLjAxLDYxMC45TDIzOS44OSw2MTAuNzRMMjM5Ljc3LDYxMC42TDIzOS43Miw2MTAuNTRMMjM5LjY2LDYxMC40N0wyMzkuNTYsNjEwLjM2TDIzOS40Nyw2MTAuMjhMMjM5LjQzLDYxMC4yNEwyMzkuNCw2MTAuMjJMMjM5LjM4LDYxMC4xOUwyMzkuMzQsNjEwLjE3QzIzOS4yOSw2MTAuMTMgMjM5LjI0LDYxMC4wOSAyMzkuMTksNjEwLjA1QzIzOC45NSw2MDkuODcgMjM4LjY4LDYwOS43MiAyMzguMzksNjA5LjYxQzIzOC4wMiw2MDkuNDcgMjM3LjY1LDYwOS40IDIzNy4yOCw2MDkuMzlMMjM2LjkxLDYwOS4zOUwyMzYuNzUsNjA5LjQyTDIzNi41MSw2MDkuNDZMMjM2LjI3LDYwOS41MkMyMzYuMTIsNjA5LjU2IDIzNS45Nyw2MDkuNjIgMjM1LjgxLDYwOS42OEMyMzUuNjcsNjA5Ljc1IDIzNS41NCw2MDkuODIgMjM1LjQxLDYwOS45TDIzNS4zNSw2MDkuOTRMMjM1LjE5LDYxMC4wNUwyMzQuOTksNjEwLjIxTDIzNC45Miw2MTAuMjdMMjM0LjczLDYxMC40NkwyMzQuNjksNjEwLjUxTDIzNC42MSw2MTAuNTlDMjM0LjM4LDYxMC44NyAyMzQuMTksNjExLjE5IDIzNC4wNSw2MTEuNTVMMjI1Ljc4LDYzMy4yNUwyMTcuNTMsNjU0LjkyQzIxNy40NSw2NTUuMTEgMjE3LjM5LDY1NS4zIDIxNy4zNSw2NTUuNTFDMjE2Ljk2LDY1Ni40OCAyMTcuMDgsNjU3LjYxIDIxNy42OSw2NTguNDlDMjE3LjgsNjU4LjY2IDIxNy45NCw2NTguODEgMjE4LjA5LDY1OC45NkwyNjcuMzgsNzA2LjUyQzI2OC40NCw3MDcuNTUgMjcwLjA1LDcwNy42NyAyNzEuMjUsNzA2LjkyTDMwNi42Nyw2ODkuMjNDMzEzLjM0LDY5Mi43OSAzMjAuMjIsNjk1Ljg5IDMyNy4yNiw2OTguNTJDMzU5LjYzLDcxMC42MiAzOTUuMzIsNzEyLjggNDI5LjM0LDcwNC4xOEM0MzEuMTQsNzAzLjcyIDQzMi4yMyw3MDEuOSA0MzEuNzgsNzAwLjFDNDMxLjMyLDY5OC4zMSA0MjkuNSw2OTcuMjIgNDI3LjcsNjk3LjY3WiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIyLjM5LDU4Mi4wOEMyMjIuODQsNTgzLjg3IDIyNC42Nyw1ODQuOTYgMjI2LjQ2LDU4NC41MUMyMjguMjYsNTg0LjA1IDIyOS4zNSw1ODIuMjMgMjI4Ljg5LDU4MC40M0MyMjAuNjEsNTQ3Ljc0IDIyMi43LDUxMy40NCAyMzQuMzIsNDgyLjM1QzI0MC40Myw0NjYuMDEgMjQ5LjE2LDQ1MC41NSAyNjAuNDIsNDM2LjY2QzI2Ni44NSw0MjguNyAyNzQuMTEsNDIxLjI2IDI4Mi4xNyw0MTQuNDdDMjg2LjA2LDQxMS4xOSAyOTAuMTQsNDA4LjA2IDI5NC40LDQwNS4xQzI5Ny44Myw0MDIuNzEgMzAxLjUyLDQwMC4zMiAzMDUuMjcsMzk4LjEzQzMwOC41NywzOTYuMjEgMzExLjkyLDM5NC40NSAzMTUuMiwzOTIuOThDMzE1LjM0LDM5Mi45MiAzMTUuNDgsMzkyLjg0IDMxNS42MSwzOTIuNzZMMzE1LjYzLDM5Mi43NEwzMTUuNjYsMzkyLjc0TDMxNS44MiwzOTIuNjJMMzE1Ljk3LDM5Mi41TDMxNi4wMywzOTIuNDVMMzE2LjA5LDM5Mi4zOUwzMTYuMiwzOTIuMjlMMzE2LjI4LDM5Mi4yTDMxNi4zMywzOTIuMTZMMzE2LjM1LDM5Mi4xM0wzMTYuMzcsMzkyLjExTDMxNi40LDM5Mi4wN0MzMTYuNjMsMzkxLjc5IDMxNi44MiwzOTEuNDggMzE2Ljk2LDM5MS4xMkMzMTcuMSwzOTAuNzUgMzE3LjE3LDM5MC4zOCAzMTcuMTgsMzkwLjAxTDMxNy4xOCwzODkuNzhMMzE3LjE3LDM4OS42NEwzMTcuMTUsMzg5LjQ4TDMxNy4xMSwzODkuMjRMMzE3LjA1LDM4OUMzMTcuMDEsMzg4Ljg1IDMxNi45NSwzODguNyAzMTYuODgsMzg4LjU1QzMxNi44MiwzODguNCAzMTYuNzQsMzg4LjI3IDMxNi42NiwzODguMTRMMzE2LjY0LDM4OC4xMUwzMTYuNjQsMzg4LjA4TDMxNi41MiwzODcuOTJMMzE2LjQsMzg3Ljc3TDMxNi4zNSwzODcuNzJMMzE2LjI5LDM4Ny42NUwzMTYuMDYsMzg3LjQyTDMxNi4wMywzODcuNEwzMTYuMDEsMzg3LjM3TDMxNS45NywzODcuMzVDMzE1LjY5LDM4Ny4xMSAzMTUuMzcsMzg2LjkyIDMxNS4wMiwzODYuNzlMMjkzLjMxLDM3OC41MUwyNzEuNjUsMzcwLjI2QzI3MS40NiwzNzAuMTggMjcxLjI2LDM3MC4xMiAyNzEuMDYsMzcwLjA4QzI3MC4wOCwzNjkuNyAyNjguOTYsMzY5LjgxIDI2OC4wOCwzNzAuNDJDMjY3LjkxLDM3MC41NCAyNjcuNzUsMzcwLjY3IDI2Ny42MSwzNzAuODJMMjIwLjA1LDQyMC4xMUMyMTkuMDIsNDIxLjE4IDIxOC44OSw0MjIuNzggMjE5LjY1LDQyMy45OEwyMzcuMzMsNDU5LjRDMjMzLjc3LDQ2Ni4wNyAyMzAuNjcsNDcyLjk1IDIyOC4wNCw0ODBDMjE1Ljk1LDUxMi4zNiAyMTMuNzcsNTQ4LjA1IDIyMi4zOSw1ODIuMDhaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01MTkuNjgsNDQxLjY1QzUyMC43OCw0NDMuMTIgNTIxLjg1LDQ0NC42MSA1MjIuOTEsNDQ2LjEzQzUyNS4zLDQ0OS41NiA1MjcuNjksNDUzLjI1IDUyOS44OCw0NTdDNTMxLjgsNDYwLjMgNTMzLjU2LDQ2My42NSA1MzUuMDMsNDY2LjkzQzUzNS4wOSw0NjcuMDcgNTM1LjE3LDQ2Ny4yMSA1MzUuMjUsNDY3LjM0TDUzNS4yNyw0NjcuMzZMNTM1LjI3LDQ2Ny4zOUw1MzUuMzksNDY3LjU1TDUzNS41MSw0NjcuN0w1MzUuNTYsNDY3Ljc2TDUzNS42Miw0NjcuODJMNTM1LjcyLDQ2Ny45M0w1MzUuODEsNDY4LjAxTDUzNS44NSw0NjguMDVMNTM1Ljg4LDQ2OC4wN0w1MzUuOSw0NjguMUw1MzUuOTQsNDY4LjEzQzUzNi4yMiw0NjguMzYgNTM2LjU0LDQ2OC41NSA1MzYuODksNDY4LjY5QzUzNy4yNiw0NjguODMgNTM3LjYzLDQ2OC44OSA1MzgsNDY4LjlMNTM4LjM3LDQ2OC45TDUzOC41Myw0NjguODhMNTM4Ljc3LDQ2OC44NEw1MzkuMDEsNDY4Ljc4QzUzOS4xNiw0NjguNzMgNTM5LjMxLDQ2OC42OCA1MzkuNDYsNDY4LjYxQzUzOS42MSw0NjguNTQgNTM5Ljc0LDQ2OC40NyA1MzkuODcsNDY4LjM5TDUzOS45LDQ2OC4zN0w1MzkuOTMsNDY4LjM3TDU0MC4wOSw0NjguMjVMNTQwLjI0LDQ2OC4xM0w1NDAuMjksNDY4LjA4TDU0MC4zNiw0NjguMDJMNTQwLjU5LDQ2Ny43OUw1NDAuNjEsNDY3Ljc2TDU0MC42NCw0NjcuNzRMNTQwLjY2LDQ2Ny43QzU0MC45LDQ2Ny40MiA1NDEuMDksNDY3LjEgNTQxLjIyLDQ2Ni43NEw1NDkuNSw0NDUuMDRMNTU3Ljc1LDQyMy4zOEM1NTcuODMsNDIzLjE5IDU1Ny44OSw0MjIuOTkgNTU3LjkzLDQyMi43OUM1NTguMzIsNDIxLjgxIDU1OC4yLDQyMC42OSA1NTcuNTksNDE5LjgxQzU1Ny40Nyw0MTkuNjQgNTU3LjM0LDQxOS40OCA1NTcuMTksNDE5LjMzTDUwNy45LDM3MS43OEM1MDYuODQsMzcwLjc1IDUwNS4yMywzNzAuNjIgNTA0LjAzLDM3MS4zOEw0NjguNjEsMzg5LjA2QzQ2MS45NCwzODUuNSA0NTUuMDYsMzgyLjQgNDQ4LjAxLDM3OS43N0M0MTUuNjUsMzY3LjY4IDM3OS45NiwzNjUuNSAzNDUuOTMsMzc0LjEyQzM0NC4xNCwzNzQuNTcgMzQzLjA1LDM3Ni40IDM0My41LDM3OC4xOUMzNDMuOTYsMzc5Ljk4IDM0NS43OCwzODEuMDggMzQ3LjU4LDM4MC42MkMzODAuMjcsMzcyLjM0IDQxNC41NywzNzQuNDMgNDQ1LjY2LDM4Ni4wNUM0NjEuMTksMzkxLjg1IDQ3NS45NCw0MDAuMDQgNDg5LjI5LDQxMC41QzUwMC41Miw0MTkuMjkgNTEwLjc3LDQyOS43IDUxOS42OCw0NDEuNjVaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K`;
7
- const HITMARKER_AUDIO_DATA_URL = `data:audio/mpeg;base64,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`;
8
-
9
- exports.HITMARKER_AUDIO_DATA_URL = HITMARKER_AUDIO_DATA_URL;
10
- exports.LOGOMARK_DATA_URL = LOGOMARK_DATA_URL;
11
- //# sourceMappingURL=media-assets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-assets.js","sources":["../../../../src/constants/media-assets.ts"],"sourcesContent":["/**\n * Shared media/data assets used by WC parity components.\n */\n\nexport const LOGOMARK_DATA_URL = `data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDE1ODA2IDE1ODA2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoNS41NTU1NiwwLDAsNS41NTU1NiwwLDApIj4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCg4LjMxNDYyLDAsMCw4LjMxNDYyLDguMjIyNjdlLTE0LC02LjQ5Mzg5ZS0xNCkiPgogICAgICAgICAgICA8Zz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNDg4LjgyLDU5Ni4wOUM0ODkuMzYsNTk1LjIgNDg5Ljg5LDU5NC4zMSA0OTAuNDEsNTkzLjQxQzQ5MC41LDU5My4yNSA0OTAuNTksNTkzLjA5IDQ5MC42OCw1OTIuOTNDNDk5LjQzLDU3Ny41NiA1MDQuOCw1NjAuMDMgNTA1LjgsNTQxLjMzQzUwNS44Miw1NDEuMDUgNTA1LjgzLDU0MC43NyA1MDUuODUsNTQwLjQ5QzUwNS44OCw1MzkuNzkgNTA1LjkxLDUzOS4wOSA1MDUuOTMsNTM4LjM4QzUwNS45Niw1MzcuNDYgNTA1Ljk3LDUzNi41NCA1MDUuOTgsNTM1LjYxQzUwNS45OCw1MzUuNDEgNTA1Ljk5LDUzNS4yIDUwNS45OSw1MzVMNTA1Ljk5LDUzNC43MkM1MDUuOTksNDY5LjQzIDQ1My4wNiw0MTYuNTEgMzg3Ljc4LDQxNi41MUMzMjIuNSw0MTYuNTEgMjY5LjU3LDQ2OS40NCAyNjkuNTcsNTM0LjcyQzI2OS41Nyw1ODIuOTUgMjk4LjQ1LDYyNC40MyAzMzkuODYsNjQyLjgxQzM0Mi4xNyw2NDEuODMgMzQ0LjgyLDY0MS42IDM0Ny42LDY0Mi41QzM0Ny43MSw2NDIuNDggMzQ4LjA2LDY0Mi41OCAzNDguOCw2NDIuOTNDMzQ5Ljg3LDY0Mi41OSAzNTEuMDgsNjQyLjQ2IDM1Mi4xNyw2NDIuMjJDMzU0LjYzLDY0MS42OCAzNTcuMTIsNjQxLjMzIDM1OS41OCw2NDAuODFDMzY1LjE1LDYzOS42NCAzNzAuNTksNjM3Ljg5IDM3Ni4xNiw2MzYuNzNDMzgyLjMyLDYzNS40NSAzODguNjksNjM4LjQ2IDM5MC40NCw2NDQuODRDMzkxLjE2LDY0Ny40NiAzOTAuODEsNjUwLjM4IDM4OS42NSw2NTIuOTFDNDMwLjQyLDY1Mi4yOCA0NjYuMTcsNjMxLjAxIDQ4Ni45Myw1OTkuMDlDNDg3LjEsNTk4LjgzIDQ4Ny4yNyw1OTguNTcgNDg3LjQ0LDU5OC4zMUM0ODcuOTEsNTk3LjU3IDQ4OC4zNyw1OTYuODMgNDg4LjgzLDU5Ni4wOUw0ODguODIsNTk2LjA5WiIgc3R5bGU9ImZpbGw6cmdiKDI2LDI2LDI2KTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzk4Ljg3LDQ4NC4yTDM5OS44OCw1MDUuODlMNDEwLjI4LDUwOS41NUwzOTUuNTIsNTA5LjU1TDM5NC40Myw0NzkuNDhMNDE1LjIsNDc5LjQ4TDM5OC44Nyw0ODQuMloiIHN0eWxlPSJmaWxsOnJnYig3Nyw3Nyw3Nyk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0yMTcuMTI1LC0zNjguOTAyKSI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQwNy41Miw2MzIuNDNMNDA3LjUyLDYzMi4zN0w0MDUuODMsNTY3LjgxTDQwNS45MSw1NjAuNzVMNDIwLjgxLDU1NS4zTDM5OS4zMSw1NTZMNDAyLjk1LDYzMC4yMkM0MDQuNDksNjMwLjg5IDQwNi4wMiw2MzEuNjIgNDA3LjUzLDYzMi40Mkw0MDcuNTIsNjMyLjQzWiIgc3R5bGU9ImZpbGw6cmdiKDc3LDc3LDc3KTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzE1Ljc1LDQzNS44NkwzMTUuNzUsNDQ1LjE5QzMxNS43NSw0NDUuMTkgMzQzLjA5LDQ0NC4xIDM0My4wOSw0NjcuMzJMMzQzLjA5LDQ5MS4xMkwzNjYuMTcsNDc2LjJMNDY3LjI3LDQ3Ni4yQzQ3My4xNCw0NzYuMiA0NzguOTgsNDc3LjI3IDQ4NC40MSw0NzkuNUM0ODkuNCw0ODEuNTUgNDk0LjE1LDQ4NC42MSA0OTQuMTUsNDg4LjgyTDQ5NC4xNSw0NDIuNDFMNDA2LjI0LDQ0Mi40MUw0MDYuMjQsNDM1LjkyTDMxNS43NSw0MzUuODZaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zODQuNTIsNTQ5LjUzQzM4Myw1NDkuODQgMzc0LjUsNTU0LjgxIDM3Mi40MSw1NTUuOTlDMzYxLjA2LDU2Mi4zOSAzNTAuNjYsNTcwLjI5IDM0MC41Niw1NzguNDdMMzQzLjU1LDUxMS4zQzM1Ny4yOSw0OTkuNzYgMzcyLjg5LDQ4OS43MSAzODkuNjksNDgzLjQ2TDM5MS4zNCw1MTEuODVMMzgwLjQxLDUxNS42OEw0NjUuMDUsNTE1LjY4TDQ2NS4wNSw1NDkuNTRMMzg0LjUxLDU0OS41NEwzODQuNTIsNTQ5LjUzWiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzg0LjYyLDYyMC4xNUMzODYuMyw2MTguNDcgMzg4Ljc4LDYxNy40NCAzOTEuMTUsNjE3LjQ0QzM5Mi4zMiw2MTcuNDQgMzkzLjQyLDYxNy42NiAzOTQuNDMsNjE4LjA1TDM5MS41Myw1NjEuMjRDMzc2LjQ0LDU2OC41NCAzNjEuNjIsNTc2Ljc4IDM0OC40NSw1ODcuMjNDMzQ2LjUzLDU4OC43NSAzMzkuNDQsNTk0LjMgMzM4LjUzLDU5NS44OEMzMzguMTYsNTk2LjUzIDMzOC4wOCw1OTYuNzcgMzM3Ljk5LDU5Ny41MkMzMzYuMTUsNjExLjI5IDM0MS42OCw2MjYuMjQgMzI3LjQ4LDYzNS4wNkMzMjUuNCw2MzYuMzUgMzIyLjI4LDYzNy4xOCAzMjAuNDEsNjM4LjM2QzMxOS43Miw2MzguNzkgMzE5LjI2LDYzOC44NyAzMTkuNDYsNjM5Ljg3TDM1Ny42OCw2NDAuNzdMMzU3LjY4LDYyMS4wM0MzNTcuNjgsNjIwLjgyIDM1OC43OSw2MTguNDYgMzU5LjA3LDYxOC4wNUMzNjIsNjEzLjc2IDM2OC42NCw2MTMuMDUgMzcyLjQ1LDYxNi42M0MzNzMuMTgsNjE3LjMyIDM3NS4xNSw2MjAuODQgMzc1LjE1LDYyMS41N0wzNzUuMTUsNjI2LjY4QzM3Ni4zMiw2MjYuMDEgMzc3LjU2LDYyNS40NiAzNzguODcsNjI1LjA0QzM4MC4wMyw2MjQuNDMgMzgxLjIzLDYyMy45NCAzODIuNDUsNjIzLjU4QzM4Mi45NCw2MjIuMjcgMzgzLjcxLDYyMS4wNCAzODQuNjIsNjIwLjE0TDM4NC42Miw2MjAuMTVaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjMzNi41OSIgeT0iNDI4LjgyIiB3aWR0aD0iNTUuMTMiIGhlaWdodD0iOC42NiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzcwLjQzLDQwNS40MUwzODEuMjgsNDA1LjQxTDM4MS4yOCw0MjguODJMMzQ3LjAyLDQyOC44MkMzNDcuMDIsNDE1LjkgMzU3LjUxLDQwNS40MSAzNzAuNDMsNDA1LjQxWiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzc1LjE1LDYyMS41OUwzNzUuMTUsNjQ2LjRMMzk5LjMxLDY0My4zMkwzOTMuODIsNjA2LjEyIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00MzQuOTUsNjQxLjc3QzQyNy40NSw2MzYuNzkgNDIwLjU0LDYzMC45OCA0MTQuMTMsNjI0LjY4QzM3OC44Niw2NTAuMSAzMzEuNjgsNjYwLjUxIDI4OS45Miw2NDUuMjRDMjc2LjcsNjU2LjM4IDI2MC4yLDY2My4wMyAyNDMuMjEsNjY2LjEzQzI0NS4yOCw2NjguNDIgMjQ3LjE3LDY3MC44NSAyNDksNjczLjM2QzI1OS4xMSw2NzMuNzUgMjY5LjQxLDY3My43OSAyNzkuNDcsNjcyLjk0QzMxNi42LDY2OS43NyAzNTEuNzgsNjUxLjg4IDM4OS4zOCw2NTMuMjZDNDIwLjMxLDY1NC40IDQ0OC40Niw2NzAuOTUgNDc5LjI2LDY3My4yNEM0OTMuNzQsNjc0LjMxIDUxMC43OCw2NzEuMDQgNTI0LjI4LDY2NS43MkM1MjQuNiw2NjUuNiA1MjUuMTcsNjY1LjYzIDUyNS4xLDY2NS4yQzQ5My41NSw2NjcuMTIgNDYxLjIyLDY1OS4yMiA0MzQuOTQsNjQxLjc4TDQzNC45NSw2NDEuNzdaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00MzEuNjQsNjgxLjI4QzQzMS43MSw2ODEuODIgNDMwLjk5LDY4MS41NSA0MzAuNjcsNjgxLjVDNDI4LjcsNjgxLjE5IDQyNi40OSw2ODAuMzYgNDI0LjQ4LDY3OS45MkM0MDAuODEsNjc0LjcyIDM3NS4zNSw2NzIuNjkgMzUxLjIsNjc1LjY1QzM0MS4xMSw2NzYuODkgMzMxLjI4LDY3OS42MiAzMjEuMjQsNjgxLjIyQzMwMC40NSw2ODQuNTMgMjc4LjYyLDY4NS43NCAyNTcuODMsNjgyLjAxQzI3My44NSw2ODIuMTQgMjg5LjY2LDY4MC4xNiAzMDUuMjEsNjc2LjU0QzMxOS45OSw2NzMuMDkgMzM0Ljk1LDY2Ny4zOCAzNTAuMDEsNjY1LjUyQzM3Ny41NSw2NjIuMTEgNDA2LjI5LDY3MS43IDQzMS42NCw2ODEuMjhaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNzYuMzEsNjM2LjQxTDM2Ny42Nyw2MzkuOTRDMzQyLjA1LDY0OC4yIDMxNC4xMyw2NDYuODQgMjg4Ljc2LDYzOC4zN0MyODAuMSw2NDQuNDYgMjcxLjE0LDY1MC42NCAyNjAuODIsNjUzLjU2TDI2Ny4wNiw2NDkuMjJDMjc2LjE5LDY0Mi4yMiAyODUuMDgsNjM0LjY1IDI5MS40Nyw2MjQuOThDMjk0Ljc5LDYyNi40MyAyOTcuOTIsNjI4LjMxIDMwMS4yMyw2MjkuNzhDMzIzLjc2LDYzOS44MiAzNTIuMTIsNjQyLjMxIDM3Ni4zMSw2MzYuNDFaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00OTYuNDQsNjc5Ljc5TDQ5My42Miw2ODAuOTlDNDU1LjExLDY5Ni4wOSA0MjIuMzIsNjY2LjAxIDM4NS4xMiw2NjEuN0wzNzQuNjEsNjYwLjEzQzM5Ny4wNSw2NTguMzMgNDE5LjAzLDY2My42MiA0NDAuMjQsNjcwLjE4QzQ0NS44Niw2NzEuOTIgNDUxLjQsNjc0LjEzIDQ1Ny4wMyw2NzUuNzdDNDY5LjY3LDY3OS40NiA0ODMuMzMsNjgxLjE5IDQ5Ni40NSw2NzkuOEw0OTYuNDQsNjc5Ljc5WiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNTAyLjcyLDY1OC4wNEw0OTkuODksNjU4LjMzQzQ4MC40Miw2NTUuODcgNDYxLjU4LDY0OS41NiA0NDQuNTksNjM5LjkxQzQ0Mi44Niw2MzguOTMgNDQwLjk2LDYzNy44MyA0MzkuNDIsNjM2LjU4QzQ0Ny45LDYzOC45NCA0NTYuNzcsNjM1LjkyIDQ2NC4zMyw2MzIuMTJDNDcyLjIxLDY0Ni4xMyA0ODcuMzYsNjU0LjYyIDUwMi43Myw2NTguMDNMNTAyLjcyLDY1OC4wNFoiIHN0eWxlPSJmaWxsOnJnYigyNDIsMjQyLDI0Mik7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQ0MCw2OTAuODJDNDQwLjA3LDY5MS4zNiA0MzkuMzUsNjkxLjA5IDQzOS4wMyw2OTEuMDRDNDM1LjY5LDY5MC41MSA0MzIuMzUsNjg5LjY0IDQyOS4wMiw2ODkuMTFDMzk4LjE2LDY4NC4yMSAzNjYuNzcsNjg0LjAyIDMzNS42NCw2ODYuMDZDMzM1LjMyLDY4Ni4wOCAzMzQuMjMsNjg2LjI3IDMzNC4yOSw2ODUuNzVDMzY5LjA2LDY3Ni43OSA0MDYuMDQsNjgwLjQxIDQ0MCw2OTAuODJaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMTMuNTYsNTcyLjg3TDMxMy42OSw1NzIuMTRMMzEzLjk0LDU3Mi40OUwzMTMuNTYsNTcyLjg3WiIgc3R5bGU9ImZpbGw6cmdiKDIsMzgsNDMpO2ZpbGwtb3BhY2l0eTowLjY7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0yMTcuMTI1LC0zNjguOTAyKSI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTUzOS4wNiw2MjAuNTFDNTQyLjYyLDYxMy44MyA1NDUuNzIsNjA2Ljk1IDU0OC4zNSw1OTkuOTFDNTYwLjQ1LDU2Ny41NCA1NjIuNjMsNTMxLjg1IDU1NC4wMSw0OTcuODNDNTUzLjU2LDQ5Ni4wMyA1NTEuNzMsNDk0Ljk0IDU0OS45Myw0OTUuNEM1NDguMTQsNDk1Ljg1IDU0Ny4wNSw0OTcuNjggNTQ3LjUsNDk5LjQ3QzU1NS43OSw1MzIuMTcgNTUzLjY5LDU2Ni40NiA1NDIuMDgsNTk3LjU2QzUzOS45OCw2MDMuMTggNTM3LjU2LDYwOC43MSA1MzQuODQsNjE0LjFDNTMyLjYzLDYxOC40OCA1MzAuMjEsNjIyLjc3IDUyNy41OSw2MjYuOTZDNTI3LjMsNjI3LjQ0IDUyNyw2MjcuOTEgNTI2LjY5LDYyOC4zOEM1MjUuNDIsNjMwLjM5IDUyNC4xLDYzMi4zNyA1MjIuNzEsNjM0LjMyQzUyMi4wNSw2MzUuMjggNTIxLjM2LDYzNi4yNCA1MjAuNjYsNjM3LjE5QzUxOS43Niw2MzguNDIgNTE4Ljg0LDYzOS42MyA1MTcuODksNjQwLjg0QzUxMi41Niw2NDcuNzEgNTA2LjYyLDY1NC4yIDUwMC4wOSw2NjAuMjZDNDk4LjI1LDY2MS45NiA0OTYuMzYsNjYzLjY0IDQ5NC40Myw2NjUuMjdDNDkwLjQ4LDY2OC42MSA0ODYuMzMsNjcxLjggNDgyLDY3NC44MUM0NzguNTcsNjc3LjE5IDQ3NC44OCw2NzkuNTkgNDcxLjEzLDY4MS43N0M0NjcuODIsNjgzLjY5IDQ2NC40Nyw2ODUuNDUgNDYxLjIsNjg2LjkyQzQ2MS4wNiw2ODYuOTkgNDYwLjkyLDY4Ny4wNiA0NjAuNzksNjg3LjE0TDQ2MC43Niw2ODcuMTZMNDYwLjc0LDY4Ny4xNkw0NjAuNTgsNjg3LjI5TDQ2MC40Myw2ODcuNDFMNDYwLjM3LDY4Ny40NUw0NjAuMyw2ODcuNTFMNDYwLjExLDY4Ny43TDQ2MC4wNyw2ODcuNzVMNDYwLjA1LDY4Ny43N0w0NjAuMDMsNjg3LjhMNDYwLDY4Ny44M0M0NTkuNzcsNjg4LjExIDQ1OS41Nyw2ODguNDMgNDU5LjQ0LDY4OC43OUM0NTkuMyw2ODkuMTUgNDU5LjIzLDY4OS41MyA0NTkuMjIsNjg5LjlMNDU5LjIyLDY5MC4yNkw0NTkuMjUsNjkwLjQyTDQ1OS4yOSw2OTAuNjdMNDU5LjM1LDY5MC45QzQ1OS4zOSw2OTEuMDYgNDU5LjQ1LDY5MS4yMSA0NTkuNTEsNjkxLjM2QzQ1OS41OCw2OTEuNSA0NTkuNjUsNjkxLjY0IDQ1OS43Myw2OTEuNzdMNDU5Ljc1LDY5MS43OUw0NTkuNzcsNjkxLjgyTDQ1OS44OCw2OTEuOThMNDYwLDY5Mi4xM0w0NjAuMDQsNjkyLjE5TDQ2MC4zNCw2OTIuNDlMNDYwLjM2LDY5Mi40OUw0NjAuNDIsNjkyLjU2QzQ2MC43LDY5Mi43OSA0NjEuMDIsNjkyLjk4IDQ2MS4zOCw2OTMuMTJMNDgzLjA5LDcwMS4zOUw1MDQuNzUsNzA5LjY1QzUwNC45NCw3MDkuNzIgNTA1LjEzLDcwOS43OCA1MDUuMzQsNzA5LjgyQzUwNi4zMSw3MTAuMjEgNTA3LjQ0LDcxMC4xIDUwOC4zMiw3MDkuNDhDNTA4LjQ5LDcwOS4zNyA1MDguNjQsNzA5LjIzIDUwOC43OSw3MDkuMDhMNTU2LjM1LDY1OS44QzU1Ny4zOCw2NTguNzMgNTU3LjUsNjU3LjEyIDU1Ni43NSw2NTUuOTJMNTM5LjA2LDYyMC41MVoiIHN0eWxlPSJmaWxsOnJnYigyNDIsMjQyLDI0Mik7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLC0yMTcuMTI1LC0zNjguOTAyKSI+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTQyNy43LDY5Ny42N0MzOTUsNzA1Ljk2IDM2MC43MSw3MDMuODYgMzI5LjYyLDY5Mi4yNEMzMTMuOTYsNjg2LjM5IDI5OS4xMSw2NzguMTMgMjg1LjY3LDY2Ny41NEMyODMuNjcsNjY1Ljk4IDI4MS42OSw2NjQuMzUgMjc5Ljc1LDY2Mi42N0MyNzIuMjEsNjU2LjE0IDI2NS4xNyw2NDguODMgMjU4Ljc3LDY0MC43N0MyNTcuNDYsNjM5LjE0IDI1Ni4xOCw2MzcuNDYgMjU0Ljk0LDYzNS43NkMyNTQuNTcsNjM1LjI3IDI1NC4yMSw2MzQuNzggMjUzLjg1LDYzNC4yOEMyNTMuMzUsNjMzLjU4IDI1Mi44NSw2MzIuODggMjUyLjM2LDYzMi4xN0MyNDkuOTgsNjI4LjczIDI0Ny41OSw2MjUuMDUgMjQ1LjQsNjIxLjI5QzI0My41MSw2MTguMDUgMjQxLjc4LDYxNC43NiAyNDAuMzMsNjExLjU0QzI0MC4zLDYxMS40OCAyNDAuMjgsNjExLjQzIDI0MC4yNSw2MTEuMzdDMjQwLjI1LDYxMS4zNSAyNDAuMjMsNjExLjMyIDI0MC4yMiw2MTEuM0MyNDAuMTYsNjExLjE4IDI0MC4xLDYxMS4wNyAyNDAuMDMsNjEwLjk2TDI0MC4wMSw2MTAuOTNMMjQwLjAxLDYxMC45TDIzOS44OSw2MTAuNzRMMjM5Ljc3LDYxMC42TDIzOS43Miw2MTAuNTRMMjM5LjY2LDYxMC40N0wyMzkuNTYsNjEwLjM2TDIzOS40Nyw2MTAuMjhMMjM5LjQzLDYxMC4yNEwyMzkuNCw2MTAuMjJMMjM5LjM4LDYxMC4xOUwyMzkuMzQsNjEwLjE3QzIzOS4yOSw2MTAuMTMgMjM5LjI0LDYxMC4wOSAyMzkuMTksNjEwLjA1QzIzOC45NSw2MDkuODcgMjM4LjY4LDYwOS43MiAyMzguMzksNjA5LjYxQzIzOC4wMiw2MDkuNDcgMjM3LjY1LDYwOS40IDIzNy4yOCw2MDkuMzlMMjM2LjkxLDYwOS4zOUwyMzYuNzUsNjA5LjQyTDIzNi41MSw2MDkuNDZMMjM2LjI3LDYwOS41MkMyMzYuMTIsNjA5LjU2IDIzNS45Nyw2MDkuNjIgMjM1LjgxLDYwOS42OEMyMzUuNjcsNjA5Ljc1IDIzNS41NCw2MDkuODIgMjM1LjQxLDYwOS45TDIzNS4zNSw2MDkuOTRMMjM1LjE5LDYxMC4wNUwyMzQuOTksNjEwLjIxTDIzNC45Miw2MTAuMjdMMjM0LjczLDYxMC40NkwyMzQuNjksNjEwLjUxTDIzNC42MSw2MTAuNTlDMjM0LjM4LDYxMC44NyAyMzQuMTksNjExLjE5IDIzNC4wNSw2MTEuNTVMMjI1Ljc4LDYzMy4yNUwyMTcuNTMsNjU0LjkyQzIxNy40NSw2NTUuMTEgMjE3LjM5LDY1NS4zIDIxNy4zNSw2NTUuNTFDMjE2Ljk2LDY1Ni40OCAyMTcuMDgsNjU3LjYxIDIxNy42OSw2NTguNDlDMjE3LjgsNjU4LjY2IDIxNy45NCw2NTguODEgMjE4LjA5LDY1OC45NkwyNjcuMzgsNzA2LjUyQzI2OC40NCw3MDcuNTUgMjcwLjA1LDcwNy42NyAyNzEuMjUsNzA2LjkyTDMwNi42Nyw2ODkuMjNDMzEzLjM0LDY5Mi43OSAzMjAuMjIsNjk1Ljg5IDMyNy4yNiw2OTguNTJDMzU5LjYzLDcxMC42MiAzOTUuMzIsNzEyLjggNDI5LjM0LDcwNC4xOEM0MzEuMTQsNzAzLjcyIDQzMi4yMyw3MDEuOSA0MzEuNzgsNzAwLjFDNDMxLjMyLDY5OC4zMSA0MjkuNSw2OTcuMjIgNDI3LjcsNjk3LjY3WiIgc3R5bGU9ImZpbGw6cmdiKDI0MiwyNDIsMjQyKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDEsLTIxNy4xMjUsLTM2OC45MDIpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjIyLjM5LDU4Mi4wOEMyMjIuODQsNTgzLjg3IDIyNC42Nyw1ODQuOTYgMjI2LjQ2LDU4NC41MUMyMjguMjYsNTg0LjA1IDIyOS4zNSw1ODIuMjMgMjI4Ljg5LDU4MC40M0MyMjAuNjEsNTQ3Ljc0IDIyMi43LDUxMy40NCAyMzQuMzIsNDgyLjM1QzI0MC40Myw0NjYuMDEgMjQ5LjE2LDQ1MC41NSAyNjAuNDIsNDM2LjY2QzI2Ni44NSw0MjguNyAyNzQuMTEsNDIxLjI2IDI4Mi4xNyw0MTQuNDdDMjg2LjA2LDQxMS4xOSAyOTAuMTQsNDA4LjA2IDI5NC40LDQwNS4xQzI5Ny44Myw0MDIuNzEgMzAxLjUyLDQwMC4zMiAzMDUuMjcsMzk4LjEzQzMwOC41NywzOTYuMjEgMzExLjkyLDM5NC40NSAzMTUuMiwzOTIuOThDMzE1LjM0LDM5Mi45MiAzMTUuNDgsMzkyLjg0IDMxNS42MSwzOTIuNzZMMzE1LjYzLDM5Mi43NEwzMTUuNjYsMzkyLjc0TDMxNS44MiwzOTIuNjJMMzE1Ljk3LDM5Mi41TDMxNi4wMywzOTIuNDVMMzE2LjA5LDM5Mi4zOUwzMTYuMiwzOTIuMjlMMzE2LjI4LDM5Mi4yTDMxNi4zMywzOTIuMTZMMzE2LjM1LDM5Mi4xM0wzMTYuMzcsMzkyLjExTDMxNi40LDM5Mi4wN0MzMTYuNjMsMzkxLjc5IDMxNi44MiwzOTEuNDggMzE2Ljk2LDM5MS4xMkMzMTcuMSwzOTAuNzUgMzE3LjE3LDM5MC4zOCAzMTcuMTgsMzkwLjAxTDMxNy4xOCwzODkuNzhMMzE3LjE3LDM4OS42NEwzMTcuMTUsMzg5LjQ4TDMxNy4xMSwzODkuMjRMMzE3LjA1LDM4OUMzMTcuMDEsMzg4Ljg1IDMxNi45NSwzODguNyAzMTYuODgsMzg4LjU1QzMxNi44MiwzODguNCAzMTYuNzQsMzg4LjI3IDMxNi42NiwzODguMTRMMzE2LjY0LDM4OC4xMUwzMTYuNjQsMzg4LjA4TDMxNi41MiwzODcuOTJMMzE2LjQsMzg3Ljc3TDMxNi4zNSwzODcuNzJMMzE2LjI5LDM4Ny42NUwzMTYuMDYsMzg3LjQyTDMxNi4wMywzODcuNEwzMTYuMDEsMzg3LjM3TDMxNS45NywzODcuMzVDMzE1LjY5LDM4Ny4xMSAzMTUuMzcsMzg2LjkyIDMxNS4wMiwzODYuNzlMMjkzLjMxLDM3OC41MUwyNzEuNjUsMzcwLjI2QzI3MS40NiwzNzAuMTggMjcxLjI2LDM3MC4xMiAyNzEuMDYsMzcwLjA4QzI3MC4wOCwzNjkuNyAyNjguOTYsMzY5LjgxIDI2OC4wOCwzNzAuNDJDMjY3LjkxLDM3MC41NCAyNjcuNzUsMzcwLjY3IDI2Ny42MSwzNzAuODJMMjIwLjA1LDQyMC4xMUMyMTkuMDIsNDIxLjE4IDIxOC44OSw0MjIuNzggMjE5LjY1LDQyMy45OEwyMzcuMzMsNDU5LjRDMjMzLjc3LDQ2Ni4wNyAyMzAuNjcsNDcyLjk1IDIyOC4wNCw0ODBDMjE1Ljk1LDUxMi4zNiAyMTMuNzcsNTQ4LjA1IDIyMi4zOSw1ODIuMDhaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMSwtMjE3LjEyNSwtMzY4LjkwMikiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01MTkuNjgsNDQxLjY1QzUyMC43OCw0NDMuMTIgNTIxLjg1LDQ0NC42MSA1MjIuOTEsNDQ2LjEzQzUyNS4zLDQ0OS41NiA1MjcuNjksNDUzLjI1IDUyOS44OCw0NTdDNTMxLjgsNDYwLjMgNTMzLjU2LDQ2My42NSA1MzUuMDMsNDY2LjkzQzUzNS4wOSw0NjcuMDcgNTM1LjE3LDQ2Ny4yMSA1MzUuMjUsNDY3LjM0TDUzNS4yNyw0NjcuMzZMNTM1LjI3LDQ2Ny4zOUw1MzUuMzksNDY3LjU1TDUzNS41MSw0NjcuN0w1MzUuNTYsNDY3Ljc2TDUzNS42Miw0NjcuODJMNTM1LjcyLDQ2Ny45M0w1MzUuODEsNDY4LjAxTDUzNS44NSw0NjguMDVMNTM1Ljg4LDQ2OC4wN0w1MzUuOSw0NjguMUw1MzUuOTQsNDY4LjEzQzUzNi4yMiw0NjguMzYgNTM2LjU0LDQ2OC41NSA1MzYuODksNDY4LjY5QzUzNy4yNiw0NjguODMgNTM3LjYzLDQ2OC44OSA1MzgsNDY4LjlMNTM4LjM3LDQ2OC45TDUzOC41Myw0NjguODhMNTM4Ljc3LDQ2OC44NEw1MzkuMDEsNDY4Ljc4QzUzOS4xNiw0NjguNzMgNTM5LjMxLDQ2OC42OCA1MzkuNDYsNDY4LjYxQzUzOS42MSw0NjguNTQgNTM5Ljc0LDQ2OC40NyA1MzkuODcsNDY4LjM5TDUzOS45LDQ2OC4zN0w1MzkuOTMsNDY4LjM3TDU0MC4wOSw0NjguMjVMNTQwLjI0LDQ2OC4xM0w1NDAuMjksNDY4LjA4TDU0MC4zNiw0NjguMDJMNTQwLjU5LDQ2Ny43OUw1NDAuNjEsNDY3Ljc2TDU0MC42NCw0NjcuNzRMNTQwLjY2LDQ2Ny43QzU0MC45LDQ2Ny40MiA1NDEuMDksNDY3LjEgNTQxLjIyLDQ2Ni43NEw1NDkuNSw0NDUuMDRMNTU3Ljc1LDQyMy4zOEM1NTcuODMsNDIzLjE5IDU1Ny44OSw0MjIuOTkgNTU3LjkzLDQyMi43OUM1NTguMzIsNDIxLjgxIDU1OC4yLDQyMC42OSA1NTcuNTksNDE5LjgxQzU1Ny40Nyw0MTkuNjQgNTU3LjM0LDQxOS40OCA1NTcuMTksNDE5LjMzTDUwNy45LDM3MS43OEM1MDYuODQsMzcwLjc1IDUwNS4yMywzNzAuNjIgNTA0LjAzLDM3MS4zOEw0NjguNjEsMzg5LjA2QzQ2MS45NCwzODUuNSA0NTUuMDYsMzgyLjQgNDQ4LjAxLDM3OS43N0M0MTUuNjUsMzY3LjY4IDM3OS45NiwzNjUuNSAzNDUuOTMsMzc0LjEyQzM0NC4xNCwzNzQuNTcgMzQzLjA1LDM3Ni40IDM0My41LDM3OC4xOUMzNDMuOTYsMzc5Ljk4IDM0NS43OCwzODEuMDggMzQ3LjU4LDM4MC42MkMzODAuMjcsMzcyLjM0IDQxNC41NywzNzQuNDMgNDQ1LjY2LDM4Ni4wNUM0NjEuMTksMzkxLjg1IDQ3NS45NCw0MDAuMDQgNDg5LjI5LDQxMC41QzUwMC41Miw0MTkuMjkgNTEwLjc3LDQyOS43IDUxOS42OCw0NDEuNjVaIiBzdHlsZT0iZmlsbDpyZ2IoMjQyLDI0MiwyNDIpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K`;\n\nexport const HITMARKER_AUDIO_DATA_URL = `data:audio/mpeg;base64,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`;\n"],"names":[],"mappings":";;AAAA;;AAEG;AAEI,MAAM,iBAAiB,GAAG;AAE1B,MAAM,wBAAwB,GAAG;;;;;"}