playwriter 0.0.63 → 0.0.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aria-snapshot.d.ts +41 -3
- package/dist/aria-snapshot.d.ts.map +1 -1
- package/dist/aria-snapshot.js +131 -54
- package/dist/aria-snapshot.js.map +1 -1
- package/dist/aria-snapshot.test.js +5 -2
- package/dist/aria-snapshot.test.js.map +1 -1
- package/dist/aria-snapshot.unit.test.js +83 -41
- package/dist/aria-snapshot.unit.test.js.map +1 -1
- package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.d.ts +5 -0
- package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.d.ts.map +1 -0
- package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.js +5 -0
- package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.js.map +1 -0
- package/dist/bippy.js +1 -1
- package/dist/cdp-log.d.ts +1 -1
- package/dist/cdp-log.d.ts.map +1 -1
- package/dist/cdp-log.js +1 -1
- package/dist/cdp-log.js.map +1 -1
- package/dist/cdp-relay.d.ts.map +1 -1
- package/dist/cdp-relay.js +408 -298
- package/dist/cdp-relay.js.map +1 -1
- package/dist/cdp-session.d.ts.map +1 -1
- package/dist/cdp-session.js.map +1 -1
- package/dist/cdp-types.d.ts.map +1 -1
- package/dist/cdp-types.js +7 -7
- package/dist/cdp-types.js.map +1 -1
- package/dist/clean-html.d.ts.map +1 -1
- package/dist/clean-html.js +4 -5
- package/dist/clean-html.js.map +1 -1
- package/dist/cli.js +45 -27
- package/dist/cli.js.map +1 -1
- package/dist/create-logger.d.ts.map +1 -1
- package/dist/create-logger.js +3 -1
- package/dist/create-logger.js.map +1 -1
- package/dist/debugger-examples-types.d.ts.map +1 -1
- package/dist/debugger.d.ts.map +1 -1
- package/dist/debugger.js +1 -3
- package/dist/debugger.js.map +1 -1
- package/dist/diff-utils.d.ts.map +1 -1
- package/dist/diff-utils.js +1 -4
- package/dist/diff-utils.js.map +1 -1
- package/dist/editor-api.md +12 -2
- package/dist/editor-examples.d.ts +1 -1
- package/dist/editor-examples.d.ts.map +1 -1
- package/dist/editor-examples.js +1 -1
- package/dist/editor-examples.js.map +1 -1
- package/dist/editor.d.ts +1 -1
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +1 -1
- package/dist/editor.js.map +1 -1
- package/dist/executor.d.ts +26 -3
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +295 -64
- package/dist/executor.js.map +1 -1
- package/dist/executor.unit.test.js +38 -1
- package/dist/executor.unit.test.js.map +1 -1
- package/dist/extension-connection.test.js +139 -36
- package/dist/extension-connection.test.js.map +1 -1
- package/dist/ffmpeg.d.ts +148 -0
- package/dist/ffmpeg.d.ts.map +1 -0
- package/dist/ffmpeg.js +523 -0
- package/dist/ffmpeg.js.map +1 -0
- package/dist/ghost-browser.d.ts.map +1 -1
- package/dist/ghost-browser.js.map +1 -1
- package/dist/ghost-cursor-client.js +281 -0
- package/dist/ghost-cursor.d.ts +27 -0
- package/dist/ghost-cursor.d.ts.map +1 -0
- package/dist/ghost-cursor.js +63 -0
- package/dist/ghost-cursor.js.map +1 -0
- package/dist/htmlrewrite.d.ts.map +1 -1
- package/dist/htmlrewrite.js +17 -55
- package/dist/htmlrewrite.js.map +1 -1
- package/dist/htmlrewrite.test.js.map +1 -1
- package/dist/kill-port.d.ts.map +1 -1
- package/dist/kill-port.js +1 -3
- package/dist/kill-port.js.map +1 -1
- package/dist/locator-selector.test.d.ts +2 -0
- package/dist/locator-selector.test.d.ts.map +1 -0
- package/dist/locator-selector.test.js +96 -0
- package/dist/locator-selector.test.js.map +1 -0
- package/dist/mcp-client.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +8 -3
- package/dist/mcp.js.map +1 -1
- package/dist/on-mouse-action.test.d.ts +2 -0
- package/dist/on-mouse-action.test.d.ts.map +1 -0
- package/dist/on-mouse-action.test.js +155 -0
- package/dist/on-mouse-action.test.js.map +1 -0
- package/dist/page-markdown.js +4 -4
- package/dist/page-markdown.js.map +1 -1
- package/dist/prompt.md +594 -255
- package/dist/protocol.d.ts +4 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/readability.js +1 -1
- package/dist/recording-ghost-cursor.d.ts +41 -0
- package/dist/recording-ghost-cursor.d.ts.map +1 -0
- package/dist/recording-ghost-cursor.js +79 -0
- package/dist/recording-ghost-cursor.js.map +1 -0
- package/dist/recording-relay.d.ts.map +1 -1
- package/dist/recording-relay.js +8 -8
- package/dist/recording-relay.js.map +1 -1
- package/dist/relay-client.d.ts +17 -4
- package/dist/relay-client.d.ts.map +1 -1
- package/dist/relay-client.js +44 -10
- package/dist/relay-client.js.map +1 -1
- package/dist/relay-core.test.d.ts.map +1 -1
- package/dist/relay-core.test.js +187 -26
- package/dist/relay-core.test.js.map +1 -1
- package/dist/relay-navigation.test.d.ts.map +1 -1
- package/dist/relay-navigation.test.js +54 -31
- package/dist/relay-navigation.test.js.map +1 -1
- package/dist/relay-session.test.d.ts.map +1 -1
- package/dist/relay-session.test.js +113 -65
- package/dist/relay-session.test.js.map +1 -1
- package/dist/relay-state.d.ts +158 -0
- package/dist/relay-state.d.ts.map +1 -0
- package/dist/relay-state.js +306 -0
- package/dist/relay-state.js.map +1 -0
- package/dist/relay-state.test.d.ts +2 -0
- package/dist/relay-state.test.d.ts.map +1 -0
- package/dist/relay-state.test.js +472 -0
- package/dist/relay-state.test.js.map +1 -0
- package/dist/scoped-fs.d.ts.map +1 -1
- package/dist/scoped-fs.js.map +1 -1
- package/dist/screen-recording.d.ts +42 -4
- package/dist/screen-recording.d.ts.map +1 -1
- package/dist/screen-recording.js +88 -13
- package/dist/screen-recording.js.map +1 -1
- package/dist/selector-generator.js +1 -1
- package/dist/snapshot-tools.test.js +71 -28
- package/dist/snapshot-tools.test.js.map +1 -1
- package/dist/start-relay-server.d.ts +1 -1
- package/dist/start-relay-server.d.ts.map +1 -1
- package/dist/start-relay-server.js +1 -1
- package/dist/start-relay-server.js.map +1 -1
- package/dist/styles-api.md +8 -1
- package/dist/styles-examples.d.ts +1 -1
- package/dist/styles-examples.d.ts.map +1 -1
- package/dist/styles-examples.js +1 -1
- package/dist/styles-examples.js.map +1 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +1 -3
- package/dist/styles.js.map +1 -1
- package/dist/test-declarations.d.ts.map +1 -1
- package/dist/test-utils.d.ts +1 -1
- package/dist/test-utils.d.ts.map +1 -1
- package/dist/test-utils.js +7 -5
- package/dist/test-utils.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js.map +1 -1
- package/dist/wait-for-page-load.d.ts.map +1 -1
- package/dist/wait-for-page-load.js +1 -1
- package/dist/wait-for-page-load.js.map +1 -1
- package/package.json +4 -3
- package/src/a11y-client.ts +5 -4
- package/src/aria-snapshot.test.ts +5 -2
- package/src/aria-snapshot.ts +303 -116
- package/src/aria-snapshot.unit.test.ts +199 -141
- package/src/aria-snapshots/github-raw.txt +1 -1
- package/src/aria-snapshots/hackernews-interactive.txt +240 -240
- package/src/aria-snapshots/hackernews-raw.txt +270 -270
- package/src/assets/aria-labels-example.png +0 -0
- package/src/assets/aria-labels-github.png +0 -0
- package/src/assets/aria-labels-hacker-news.png +0 -0
- package/src/assets/aria-labels-old-reddit.png +0 -0
- package/src/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.ts +5 -0
- package/src/assets/cursors/screen-studio/pointer-macos-tahoe.svg +18 -0
- package/src/cdp-log.ts +4 -1
- package/src/cdp-relay.ts +949 -737
- package/src/cdp-session.ts +12 -3
- package/src/cdp-types.ts +51 -51
- package/src/clean-html.ts +4 -5
- package/src/cli.ts +82 -55
- package/src/create-logger.ts +5 -3
- package/src/debugger-examples-types.ts +4 -1
- package/src/debugger.ts +1 -5
- package/src/diff-utils.ts +2 -5
- package/src/editor-examples.ts +11 -1
- package/src/editor.ts +10 -2
- package/src/executor.ts +372 -73
- package/src/executor.unit.test.ts +48 -1
- package/src/extension-connection.test.ts +612 -488
- package/src/ffmpeg.ts +769 -0
- package/src/ghost-browser.ts +4 -6
- package/src/ghost-cursor-client.ts +368 -0
- package/src/ghost-cursor.ts +110 -0
- package/src/htmlrewrite.test.ts +6 -2
- package/src/htmlrewrite.ts +348 -386
- package/src/kill-port.ts +1 -3
- package/src/locator-selector.test.ts +115 -0
- package/src/mcp-client.ts +1 -1
- package/src/mcp.ts +21 -15
- package/src/on-mouse-action.test.ts +196 -0
- package/src/page-markdown.ts +7 -7
- package/src/protocol.ts +73 -57
- package/src/recording-ghost-cursor.ts +107 -0
- package/src/recording-relay.ts +20 -12
- package/src/relay-client.ts +84 -17
- package/src/relay-core.test.ts +761 -583
- package/src/relay-navigation.test.ts +517 -484
- package/src/relay-session.test.ts +984 -929
- package/src/relay-state.test.ts +570 -0
- package/src/relay-state.ts +497 -0
- package/src/resource.md +21 -49
- package/src/scoped-fs.ts +9 -3
- package/src/screen-recording.ts +175 -31
- package/src/skill.md +619 -271
- package/src/snapshot-tools.test.ts +580 -528
- package/src/snapshots/shadcn-ui-accessibility-full.md +181 -183
- package/src/snapshots/shadcn-ui-accessibility-interactive.md +119 -121
- package/src/start-relay-server.ts +14 -11
- package/src/styles-examples.ts +8 -1
- package/src/styles.ts +20 -21
- package/src/test-declarations.ts +6 -6
- package/src/test-utils.ts +104 -91
- package/src/utils.ts +2 -1
- package/src/wait-for-page-load.ts +6 -1
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
* Recording happens in the extension context, so it survives page navigation.
|
|
4
4
|
*
|
|
5
5
|
* This module communicates with the relay server which forwards commands to the extension.
|
|
6
|
-
*
|
|
6
|
+
* sessionId (pw-tab-* format) is used to identify which tab to record.
|
|
7
7
|
*/
|
|
8
|
-
import type { Page } from '@xmorse/playwright-core';
|
|
8
|
+
import type { BrowserContext, Page } from '@xmorse/playwright-core';
|
|
9
|
+
import { RecordingGhostCursorController } from './recording-ghost-cursor.js';
|
|
9
10
|
/**
|
|
10
11
|
* Generate a shell command to quit and restart Chrome with flags that allow automatic tab capture.
|
|
11
12
|
* This enables screen recording without user interaction (clicking extension icon).
|
|
@@ -18,7 +19,7 @@ export declare function getChromeRestartCommand(): string;
|
|
|
18
19
|
export interface StartRecordingOptions {
|
|
19
20
|
/** Target page to record */
|
|
20
21
|
page: Page;
|
|
21
|
-
/**
|
|
22
|
+
/** CDP tab session ID (pw-tab-* format) to identify which tab to record */
|
|
22
23
|
sessionId?: string;
|
|
23
24
|
/** Frame rate (default: 30) */
|
|
24
25
|
frameRate?: number;
|
|
@@ -36,7 +37,7 @@ export interface StartRecordingOptions {
|
|
|
36
37
|
export interface StopRecordingOptions {
|
|
37
38
|
/** Target page that is being recorded */
|
|
38
39
|
page: Page;
|
|
39
|
-
/**
|
|
40
|
+
/** CDP tab session ID (pw-tab-* format) to identify which tab to stop recording */
|
|
40
41
|
sessionId?: string;
|
|
41
42
|
/** Relay server port (default: 19988) */
|
|
42
43
|
relayPort?: number;
|
|
@@ -46,6 +47,42 @@ export interface RecordingState {
|
|
|
46
47
|
startedAt?: number;
|
|
47
48
|
tabId?: number;
|
|
48
49
|
}
|
|
50
|
+
export interface ExecutionTimestamp {
|
|
51
|
+
start: number;
|
|
52
|
+
end: number;
|
|
53
|
+
}
|
|
54
|
+
interface CreateRecordingApiOptions {
|
|
55
|
+
context: BrowserContext;
|
|
56
|
+
defaultPage: Page;
|
|
57
|
+
relayPort: number;
|
|
58
|
+
ghostCursorController: RecordingGhostCursorController;
|
|
59
|
+
onStart: () => void;
|
|
60
|
+
onFinish: () => void;
|
|
61
|
+
getExecutionTimestamps: () => ExecutionTimestamp[];
|
|
62
|
+
}
|
|
63
|
+
interface StartRecordingWithDefaultsOptions extends Omit<StartRecordingOptions, 'relayPort'> {
|
|
64
|
+
}
|
|
65
|
+
interface StopRecordingWithDefaultsOptions extends Omit<StopRecordingOptions, 'relayPort'> {
|
|
66
|
+
}
|
|
67
|
+
interface IsRecordingWithDefaultsOptions {
|
|
68
|
+
page?: Page;
|
|
69
|
+
sessionId?: string;
|
|
70
|
+
}
|
|
71
|
+
interface CancelRecordingWithDefaultsOptions {
|
|
72
|
+
page?: Page;
|
|
73
|
+
sessionId?: string;
|
|
74
|
+
}
|
|
75
|
+
export declare function createRecordingApi(options: CreateRecordingApiOptions): {
|
|
76
|
+
start: (opts?: StartRecordingWithDefaultsOptions) => Promise<RecordingState>;
|
|
77
|
+
stop: (opts?: StopRecordingWithDefaultsOptions) => Promise<{
|
|
78
|
+
path: string;
|
|
79
|
+
duration: number;
|
|
80
|
+
size: number;
|
|
81
|
+
executionTimestamps: ExecutionTimestamp[];
|
|
82
|
+
}>;
|
|
83
|
+
isRecording: (opts?: IsRecordingWithDefaultsOptions) => Promise<RecordingState>;
|
|
84
|
+
cancel: (opts?: CancelRecordingWithDefaultsOptions) => Promise<void>;
|
|
85
|
+
};
|
|
49
86
|
/**
|
|
50
87
|
* Start recording the page.
|
|
51
88
|
* The recording is handled by the extension, so it survives page navigation.
|
|
@@ -76,4 +113,5 @@ export declare function cancelRecording(options: {
|
|
|
76
113
|
sessionId?: string;
|
|
77
114
|
relayPort?: number;
|
|
78
115
|
}): Promise<void>;
|
|
116
|
+
export {};
|
|
79
117
|
//# sourceMappingURL=screen-recording.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-recording.d.ts","sourceRoot":"","sources":["../src/screen-recording.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"screen-recording.d.ts","sourceRoot":"","sources":["../src/screen-recording.ts"],"names":[],"mappings":"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"}
|
package/dist/screen-recording.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Recording happens in the extension context, so it survives page navigation.
|
|
4
4
|
*
|
|
5
5
|
* This module communicates with the relay server which forwards commands to the extension.
|
|
6
|
-
*
|
|
6
|
+
* sessionId (pw-tab-* format) is used to identify which tab to record.
|
|
7
7
|
*/
|
|
8
8
|
import os from 'node:os';
|
|
9
9
|
import path from 'node:path';
|
|
@@ -18,7 +18,9 @@ import { EXTENSION_IDS } from './utils.js';
|
|
|
18
18
|
*/
|
|
19
19
|
export function getChromeRestartCommand() {
|
|
20
20
|
const platform = os.platform();
|
|
21
|
-
const
|
|
21
|
+
const extensionFlags = EXTENSION_IDS.map((id) => `--allowlisted-extension-id=${id}`).join(' ');
|
|
22
|
+
// --profile-directory=Default skips the profile picker on startup, preventing Chrome from hanging
|
|
23
|
+
const flags = `${extensionFlags} --auto-accept-this-tab-capture --profile-directory=Default`;
|
|
22
24
|
if (platform === 'darwin') {
|
|
23
25
|
return `osascript -e 'quit app "Google Chrome"' && sleep 1 && open -a "Google Chrome" --args ${flags}`;
|
|
24
26
|
}
|
|
@@ -32,9 +34,74 @@ export function getChromeRestartCommand() {
|
|
|
32
34
|
* Check if an error is related to missing activeTab permission for recording.
|
|
33
35
|
*/
|
|
34
36
|
function isActiveTabPermissionError(error) {
|
|
35
|
-
return error.includes('Extension has not been invoked') ||
|
|
37
|
+
return (error.includes('Extension has not been invoked') ||
|
|
36
38
|
error.includes('activeTab') ||
|
|
37
|
-
error.includes('enable recording');
|
|
39
|
+
error.includes('enable recording'));
|
|
40
|
+
}
|
|
41
|
+
function resolveRecordingTargetPage(options) {
|
|
42
|
+
return options.ghostCursorController.resolveRecordingTargetPage({
|
|
43
|
+
context: options.context,
|
|
44
|
+
defaultPage: options.defaultPage,
|
|
45
|
+
target: options.target,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function withRecordingDefaults(options) {
|
|
49
|
+
const { relayPort, defaultPage, fn } = options;
|
|
50
|
+
return async (input = {}) => {
|
|
51
|
+
const targetPage = input.page || defaultPage;
|
|
52
|
+
const sessionId = input.sessionId || targetPage.sessionId() || undefined;
|
|
53
|
+
return fn({ page: targetPage, sessionId, relayPort, ...input });
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export function createRecordingApi(options) {
|
|
57
|
+
const { context, defaultPage, relayPort, ghostCursorController, onStart, onFinish, getExecutionTimestamps } = options;
|
|
58
|
+
const startWithDefaults = withRecordingDefaults({
|
|
59
|
+
relayPort,
|
|
60
|
+
defaultPage,
|
|
61
|
+
fn: startRecording,
|
|
62
|
+
});
|
|
63
|
+
const stopWithDefaults = withRecordingDefaults({
|
|
64
|
+
relayPort,
|
|
65
|
+
defaultPage,
|
|
66
|
+
fn: stopRecording,
|
|
67
|
+
});
|
|
68
|
+
const isRecordingWithDefaults = async (opts = {}) => {
|
|
69
|
+
const targetPage = opts.page || defaultPage;
|
|
70
|
+
const sessionId = opts.sessionId || targetPage.sessionId() || undefined;
|
|
71
|
+
return isRecording({ page: targetPage, sessionId, relayPort });
|
|
72
|
+
};
|
|
73
|
+
const cancelWithDefaults = async (opts = {}) => {
|
|
74
|
+
const targetPage = opts.page || defaultPage;
|
|
75
|
+
const sessionId = opts.sessionId || targetPage.sessionId() || undefined;
|
|
76
|
+
await cancelRecording({ page: targetPage, sessionId, relayPort });
|
|
77
|
+
};
|
|
78
|
+
const start = async (opts) => {
|
|
79
|
+
const targetPage = resolveRecordingTargetPage({ context, defaultPage, ghostCursorController, target: opts });
|
|
80
|
+
const result = await startWithDefaults(opts);
|
|
81
|
+
onStart();
|
|
82
|
+
await ghostCursorController.enableForRecording({ page: targetPage });
|
|
83
|
+
return result;
|
|
84
|
+
};
|
|
85
|
+
const stop = async (opts) => {
|
|
86
|
+
const targetPage = resolveRecordingTargetPage({ context, defaultPage, ghostCursorController, target: opts });
|
|
87
|
+
const result = await stopWithDefaults(opts);
|
|
88
|
+
const executionTimestamps = [...getExecutionTimestamps()];
|
|
89
|
+
onFinish();
|
|
90
|
+
await ghostCursorController.disableForRecording({ page: targetPage });
|
|
91
|
+
return { ...result, executionTimestamps };
|
|
92
|
+
};
|
|
93
|
+
const cancel = async (opts) => {
|
|
94
|
+
const targetPage = resolveRecordingTargetPage({ context, defaultPage, ghostCursorController, target: opts });
|
|
95
|
+
await cancelWithDefaults(opts);
|
|
96
|
+
onFinish();
|
|
97
|
+
await ghostCursorController.disableForRecording({ page: targetPage });
|
|
98
|
+
};
|
|
99
|
+
return {
|
|
100
|
+
start,
|
|
101
|
+
stop,
|
|
102
|
+
isRecording: isRecordingWithDefaults,
|
|
103
|
+
cancel,
|
|
104
|
+
};
|
|
38
105
|
}
|
|
39
106
|
/**
|
|
40
107
|
* Start recording the page.
|
|
@@ -48,9 +115,16 @@ export async function startRecording(options) {
|
|
|
48
115
|
const response = await fetch(`http://127.0.0.1:${relayPort}/recording/start`, {
|
|
49
116
|
method: 'POST',
|
|
50
117
|
headers: { 'Content-Type': 'application/json' },
|
|
51
|
-
body: JSON.stringify({
|
|
118
|
+
body: JSON.stringify({
|
|
119
|
+
sessionId,
|
|
120
|
+
frameRate,
|
|
121
|
+
videoBitsPerSecond,
|
|
122
|
+
audioBitsPerSecond,
|
|
123
|
+
audio,
|
|
124
|
+
outputPath: absoluteOutputPath,
|
|
125
|
+
}),
|
|
52
126
|
});
|
|
53
|
-
const result = await response.json();
|
|
127
|
+
const result = (await response.json());
|
|
54
128
|
if (!result.success) {
|
|
55
129
|
const errorMsg = result.error || 'Unknown error';
|
|
56
130
|
// If the error is about missing activeTab permission, provide helpful guidance
|
|
@@ -81,7 +155,7 @@ export async function stopRecording(options) {
|
|
|
81
155
|
headers: { 'Content-Type': 'application/json' },
|
|
82
156
|
body: JSON.stringify({ sessionId }),
|
|
83
157
|
});
|
|
84
|
-
const result = await response.json();
|
|
158
|
+
const result = (await response.json());
|
|
85
159
|
if (!result.success) {
|
|
86
160
|
throw new Error(`Failed to stop recording: ${result.error}`);
|
|
87
161
|
}
|
|
@@ -92,11 +166,12 @@ export async function stopRecording(options) {
|
|
|
92
166
|
*/
|
|
93
167
|
export async function isRecording(options) {
|
|
94
168
|
const { sessionId, relayPort = 19988 } = options;
|
|
95
|
-
const url =
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
const
|
|
169
|
+
const url = new URL(`http://127.0.0.1:${relayPort}/recording/status`);
|
|
170
|
+
if (sessionId) {
|
|
171
|
+
url.searchParams.set('sessionId', sessionId);
|
|
172
|
+
}
|
|
173
|
+
const response = await fetch(url.toString());
|
|
174
|
+
const result = (await response.json());
|
|
100
175
|
return { isRecording: result.isRecording, startedAt: result.startedAt, tabId: result.tabId };
|
|
101
176
|
}
|
|
102
177
|
/**
|
|
@@ -109,7 +184,7 @@ export async function cancelRecording(options) {
|
|
|
109
184
|
headers: { 'Content-Type': 'application/json' },
|
|
110
185
|
body: JSON.stringify({ sessionId }),
|
|
111
186
|
});
|
|
112
|
-
const result = await response.json();
|
|
187
|
+
const result = (await response.json());
|
|
113
188
|
if (!result.success) {
|
|
114
189
|
throw new Error(`Failed to cancel recording: ${result.error}`);
|
|
115
190
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-recording.js","sourceRoot":"","sources":["../src/screen-recording.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAQ5B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"screen-recording.js","sourceRoot":"","sources":["../src/screen-recording.ts"],"names":[],"mappings":"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"}
|
|
@@ -7373,6 +7373,6 @@ x-locator-editor.does-not-match {
|
|
|
7373
7373
|
return asLocator2(lang, selector);
|
|
7374
7374
|
}
|
|
7375
7375
|
|
|
7376
|
-
// dist/_selector-generator-entry-
|
|
7376
|
+
// dist/_selector-generator-entry-46963-1772299414460.js
|
|
7377
7377
|
globalThis.__selectorGenerator = { createSelectorGenerator, toLocator };
|
|
7378
7378
|
})();
|
|
@@ -39,7 +39,7 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
39
39
|
await serviceWorker.evaluate(async () => {
|
|
40
40
|
await globalThis.toggleExtensionForActiveTab();
|
|
41
41
|
});
|
|
42
|
-
await new Promise(r => setTimeout(r, 100));
|
|
42
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
43
43
|
const capturedCommands = [];
|
|
44
44
|
const commandHandler = ({ command }) => {
|
|
45
45
|
if (command.method === 'Page.captureScreenshot') {
|
|
@@ -48,7 +48,10 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
48
48
|
};
|
|
49
49
|
testCtx.relayServer.on('cdp:command', commandHandler);
|
|
50
50
|
const browser = await chromium.connectOverCDP(getCdpUrl({ port: TEST_PORT }));
|
|
51
|
-
const cdpPage = browser
|
|
51
|
+
const cdpPage = browser
|
|
52
|
+
.contexts()[0]
|
|
53
|
+
.pages()
|
|
54
|
+
.find((p) => p.url().includes('example.com'));
|
|
52
55
|
expect(cdpPage).toBeDefined();
|
|
53
56
|
const viewportSize = cdpPage.viewportSize();
|
|
54
57
|
console.log('Viewport size:', viewportSize);
|
|
@@ -71,9 +74,9 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
71
74
|
expect(fullPageDimensions.width).toBeGreaterThanOrEqual(viewportDimensions.width);
|
|
72
75
|
testCtx.relayServer.off('cdp:command', commandHandler);
|
|
73
76
|
expect(capturedCommands.length).toBe(2);
|
|
74
|
-
expect(capturedCommands.map(c => ({
|
|
77
|
+
expect(capturedCommands.map((c) => ({
|
|
75
78
|
method: c.method,
|
|
76
|
-
params: c.params
|
|
79
|
+
params: c.params,
|
|
77
80
|
}))).toMatchInlineSnapshot(`
|
|
78
81
|
[
|
|
79
82
|
{
|
|
@@ -112,6 +115,40 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
112
115
|
await browser.close();
|
|
113
116
|
await page.close();
|
|
114
117
|
}, 60000);
|
|
118
|
+
it('should match window.innerWidth/Height without clip param', async () => {
|
|
119
|
+
// Proves that in connectOverCDP mode, Playwright already queries
|
|
120
|
+
// window.innerWidth/innerHeight for viewport screenshots, so passing
|
|
121
|
+
// a manual clip is redundant.
|
|
122
|
+
const browserContext = getBrowserContext();
|
|
123
|
+
const serviceWorker = await getExtensionServiceWorker(browserContext);
|
|
124
|
+
const page = await browserContext.newPage();
|
|
125
|
+
await page.goto('https://example.com/');
|
|
126
|
+
await page.bringToFront();
|
|
127
|
+
await serviceWorker.evaluate(async () => {
|
|
128
|
+
await globalThis.toggleExtensionForActiveTab();
|
|
129
|
+
});
|
|
130
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
131
|
+
const browser = await chromium.connectOverCDP(getCdpUrl({ port: TEST_PORT }));
|
|
132
|
+
const cdpPage = browser
|
|
133
|
+
.contexts()[0]
|
|
134
|
+
.pages()
|
|
135
|
+
.find((p) => p.url().includes('example.com'));
|
|
136
|
+
expect(cdpPage).toBeDefined();
|
|
137
|
+
// Get actual browser viewport via JS
|
|
138
|
+
const actualViewport = await cdpPage.evaluate(() => ({
|
|
139
|
+
width: window.innerWidth,
|
|
140
|
+
height: window.innerHeight,
|
|
141
|
+
}));
|
|
142
|
+
console.log('Actual viewport (window.inner*):', actualViewport);
|
|
143
|
+
// Plain screenshot with scale:'css', NO clip
|
|
144
|
+
const screenshot = await cdpPage.screenshot({ scale: 'css' });
|
|
145
|
+
const dimensions = imageSize(screenshot);
|
|
146
|
+
console.log('Screenshot dimensions (no clip):', dimensions);
|
|
147
|
+
expect(dimensions.width).toBe(actualViewport.width);
|
|
148
|
+
expect(dimensions.height).toBe(actualViewport.height);
|
|
149
|
+
await browser.close();
|
|
150
|
+
await page.close();
|
|
151
|
+
}, 60000);
|
|
115
152
|
it('should capture element screenshot with correct coordinates', async () => {
|
|
116
153
|
const browserContext = getBrowserContext();
|
|
117
154
|
const serviceWorker = await getExtensionServiceWorker(browserContext);
|
|
@@ -151,7 +188,7 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
151
188
|
await serviceWorker.evaluate(async () => {
|
|
152
189
|
await globalThis.toggleExtensionForActiveTab();
|
|
153
190
|
});
|
|
154
|
-
await new Promise(r => setTimeout(r, 400));
|
|
191
|
+
await new Promise((r) => setTimeout(r, 400));
|
|
155
192
|
const capturedCommands = [];
|
|
156
193
|
const commandHandler = ({ command }) => {
|
|
157
194
|
if (command.method === 'Page.captureScreenshot') {
|
|
@@ -206,7 +243,7 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
206
243
|
await serviceWorker.evaluate(async () => {
|
|
207
244
|
await globalThis.toggleExtensionForActiveTab();
|
|
208
245
|
});
|
|
209
|
-
await new Promise(r => setTimeout(r, 400));
|
|
246
|
+
await new Promise((r) => setTimeout(r, 400));
|
|
210
247
|
const result = await client.callTool({
|
|
211
248
|
name: 'execute',
|
|
212
249
|
arguments: {
|
|
@@ -263,7 +300,7 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
263
300
|
await serviceWorker.evaluate(async () => {
|
|
264
301
|
await globalThis.toggleExtensionForActiveTab();
|
|
265
302
|
});
|
|
266
|
-
await new Promise(r => setTimeout(r, 400));
|
|
303
|
+
await new Promise((r) => setTimeout(r, 400));
|
|
267
304
|
const stylesResult = await client.callTool({
|
|
268
305
|
name: 'execute',
|
|
269
306
|
arguments: {
|
|
@@ -418,9 +455,12 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
418
455
|
await serviceWorker.evaluate(async () => {
|
|
419
456
|
await globalThis.toggleExtensionForActiveTab();
|
|
420
457
|
});
|
|
421
|
-
await new Promise(r => setTimeout(r, 100));
|
|
458
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
422
459
|
const browser = await chromium.connectOverCDP(getCdpUrl({ port: TEST_PORT }));
|
|
423
|
-
const cdpPage = browser
|
|
460
|
+
const cdpPage = browser
|
|
461
|
+
.contexts()[0]
|
|
462
|
+
.pages()
|
|
463
|
+
.find((p) => p.url().includes('example.com'));
|
|
424
464
|
expect(cdpPage).toBeDefined();
|
|
425
465
|
const cdpSession = await getCDPSessionForPage({ page: cdpPage });
|
|
426
466
|
const layoutMetrics = await cdpSession.send('Page.getLayoutMetrics');
|
|
@@ -486,9 +526,12 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
486
526
|
await serviceWorker.evaluate(async () => {
|
|
487
527
|
await globalThis.toggleExtensionForActiveTab();
|
|
488
528
|
});
|
|
489
|
-
await new Promise(r => setTimeout(r, 100));
|
|
529
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
490
530
|
const browser = await chromium.connectOverCDP(getCdpUrl({ port: TEST_PORT }));
|
|
491
|
-
const cdpPage = browser
|
|
531
|
+
const cdpPage = browser
|
|
532
|
+
.contexts()[0]
|
|
533
|
+
.pages()
|
|
534
|
+
.find((p) => p.url().includes('example.com'));
|
|
492
535
|
expect(cdpPage).toBeDefined();
|
|
493
536
|
// Use the new getCDPSessionForPage which reuses Playwright's internal WS
|
|
494
537
|
const cdpClient = await getCDPSessionForPage({ page: cdpPage });
|
|
@@ -523,7 +566,7 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
523
566
|
await serviceWorker.evaluate(async () => {
|
|
524
567
|
await globalThis.toggleExtensionForActiveTab();
|
|
525
568
|
});
|
|
526
|
-
await new Promise(r => setTimeout(r, 400));
|
|
569
|
+
await new Promise((r) => setTimeout(r, 400));
|
|
527
570
|
const browser = await chromium.connectOverCDP(getCdpUrl({ port: TEST_PORT }));
|
|
528
571
|
let cdpPage;
|
|
529
572
|
for (const p of browser.contexts()[0].pages()) {
|
|
@@ -607,9 +650,8 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
607
650
|
fs.mkdirSync(assetsDir, { recursive: true });
|
|
608
651
|
}
|
|
609
652
|
const testPages = [
|
|
653
|
+
{ name: 'old-reddit', url: 'https://old.reddit.com/' },
|
|
610
654
|
{ name: 'hacker-news', url: 'https://news.ycombinator.com/' },
|
|
611
|
-
{ name: 'google', url: 'https://www.google.com/' },
|
|
612
|
-
{ name: 'github', url: 'https://github.com/' },
|
|
613
655
|
];
|
|
614
656
|
const loadPageWithRetries = async ({ name, url }) => {
|
|
615
657
|
const page = await browserContext.newPage();
|
|
@@ -619,8 +661,7 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
619
661
|
for (let attempt = 1; attempt <= attempts; attempt += 1) {
|
|
620
662
|
try {
|
|
621
663
|
console.log(`[labels] opening ${name}: ${url} (attempt ${attempt}/${attempts})`);
|
|
622
|
-
await page.goto(url, { waitUntil: '
|
|
623
|
-
await page.waitForLoadState('networkidle', { timeout: 15000 });
|
|
664
|
+
await page.goto(url, { waitUntil: 'load' });
|
|
624
665
|
console.log(`[labels] loaded ${name}: ${page.url()}`);
|
|
625
666
|
return { name, url, page };
|
|
626
667
|
}
|
|
@@ -629,12 +670,13 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
629
670
|
}
|
|
630
671
|
}
|
|
631
672
|
await page.close();
|
|
632
|
-
throw new Error(`Failed to load ${name} after ${attempts} attempts`, {
|
|
673
|
+
throw new Error(`Failed to load ${name} after ${attempts} attempts`, {
|
|
674
|
+
cause: lastError instanceof Error ? lastError : undefined,
|
|
675
|
+
});
|
|
633
676
|
};
|
|
634
|
-
const pages =
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
}
|
|
677
|
+
const pages = await Promise.all(testPages.map((testPage) => {
|
|
678
|
+
return loadPageWithRetries(testPage);
|
|
679
|
+
}));
|
|
638
680
|
for (const { page } of pages) {
|
|
639
681
|
await page.bringToFront();
|
|
640
682
|
await serviceWorker.evaluate(async () => {
|
|
@@ -661,7 +703,10 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
661
703
|
const wsUrl = getCdpUrl({ port: TEST_PORT });
|
|
662
704
|
for (const { name, url, page } of pages) {
|
|
663
705
|
console.log(`[labels] start ${name}`);
|
|
664
|
-
const cdpPage = browser
|
|
706
|
+
const cdpPage = browser
|
|
707
|
+
.contexts()[0]
|
|
708
|
+
.pages()
|
|
709
|
+
.find((p) => p.url().includes(new URL(url).hostname));
|
|
665
710
|
if (!cdpPage) {
|
|
666
711
|
throw new Error(`Could not find CDP page for ${name}`);
|
|
667
712
|
}
|
|
@@ -670,9 +715,7 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
670
715
|
return await showAriaRefLabels({ page: cdpPage });
|
|
671
716
|
}, 60000);
|
|
672
717
|
console.log(`${name}: ${labelCount} labels shown`);
|
|
673
|
-
|
|
674
|
-
expect(labelCount).toBeGreaterThan(0);
|
|
675
|
-
}
|
|
718
|
+
expect(labelCount).toBeGreaterThan(0);
|
|
676
719
|
console.log(`[labels] screenshot ${name}`);
|
|
677
720
|
const screenshot = await withTimeout(`screenshot(${name})`, async () => {
|
|
678
721
|
return await cdpPage.screenshot({ type: 'png', fullPage: false });
|
|
@@ -764,7 +807,7 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
764
807
|
await serviceWorker.evaluate(async () => {
|
|
765
808
|
await globalThis.toggleExtensionForActiveTab();
|
|
766
809
|
});
|
|
767
|
-
await new Promise(r => setTimeout(r, 400));
|
|
810
|
+
await new Promise((r) => setTimeout(r, 400));
|
|
768
811
|
const result = await client.callTool({
|
|
769
812
|
name: 'execute',
|
|
770
813
|
arguments: {
|
|
@@ -783,14 +826,14 @@ describe('Snapshot & Screenshot Tests', () => {
|
|
|
783
826
|
expect(result.isError).toBeFalsy();
|
|
784
827
|
const content = result.content;
|
|
785
828
|
expect(content.length).toBe(2);
|
|
786
|
-
const textContent = content.find(c => c.type === 'text');
|
|
829
|
+
const textContent = content.find((c) => c.type === 'text');
|
|
787
830
|
expect(textContent).toBeDefined();
|
|
788
831
|
expect(textContent.text).toContain('Screenshot saved to:');
|
|
789
832
|
expect(textContent.text).toContain('.jpg');
|
|
790
833
|
expect(textContent.text).toContain('Labels shown:');
|
|
791
834
|
expect(textContent.text).toContain('Accessibility snapshot:');
|
|
792
835
|
expect(textContent.text).toContain('Submit Form');
|
|
793
|
-
const imageContent = content.find(c => c.type === 'image');
|
|
836
|
+
const imageContent = content.find((c) => c.type === 'image');
|
|
794
837
|
expect(imageContent).toBeDefined();
|
|
795
838
|
expect(imageContent.mimeType).toBe('image/jpeg');
|
|
796
839
|
expect(imageContent.data).toBeDefined();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-tools.test.js","sourceRoot":"","sources":["../src/snapshot-tools.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snapshot-tools.test.js","sourceRoot":"","sources":["../src/snapshot-tools.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGlD,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAGvD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,yBAAyB,EAAoB,EAAE,EAAE,MAAM,iBAAiB,CAAA;AACvH,OAAO,wBAAwB,CAAA;AAE/B,MAAM,SAAS,GAAG,KAAK,CAAA;AAEvB,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,IAAI,MAA6D,CAAA;IACjE,IAAI,OAAO,GAAiC,IAAI,CAAA;IAChD,IAAI,OAAO,GAAuB,IAAI,CAAA;IAEtC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,OAAO,GAAG,MAAM,gBAAgB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;QAE5G,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QACzD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QACtB,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;IAC1B,CAAC,EAAE,MAAM,CAAC,CAAA;IAEV,QAAQ,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC1C,OAAO,GAAG,IAAI,CAAA;QACd,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,IAAI,CAAC,OAAO,EAAE,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QACxE,OAAO,OAAO,CAAC,cAAc,CAAA;IAC/B,CAAC,CAAA;IAED,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;QAC1C,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC,CAAA;QAErE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;QAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACvC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,MAAM,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACtC,MAAM,UAAU,CAAC,2BAA2B,EAAE,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAE5C,MAAM,gBAAgB,GAAiB,EAAE,CAAA;QACzC,MAAM,cAAc,GAAG,CAAC,EAAE,OAAO,EAA6C,EAAE,EAAE;YAChF,IAAI,OAAO,CAAC,MAAM,KAAK,wBAAwB,EAAE,CAAC;gBAChD,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC;QACH,CAAC,CAAA;QACD,OAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;QAEtD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QAC7E,MAAM,OAAO,GAAG,OAAO;aACpB,QAAQ,EAAE,CAAC,CAAC,CAAC;aACb,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;QAE/C,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QAE7B,MAAM,YAAY,GAAG,OAAQ,CAAC,YAAY,EAAE,CAAA;QAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAA;QAE3C,MAAM,kBAAkB,GAAG,MAAM,OAAQ,CAAC,UAAU,EAAE,CAAA;QACtD,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAA;QAExC,MAAM,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAA;QACxD,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,kBAAkB,CAAC,CAAA;QAClE,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACnD,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACpD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YACzD,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QAC7D,CAAC;QAED,MAAM,kBAAkB,GAAG,MAAM,OAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QACxE,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAA;QAExC,MAAM,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAA;QACxD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,kBAAkB,CAAC,CAAA;QACnE,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACnD,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,KAAM,CAAC,CAAA;QAElF,OAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;QAEvD,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,CACJ,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC,CAAC,CACJ,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA+BnB,CAAC,CAAA;QAEN,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gCAAgC,CAAC,CAAA;QAC/E,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;QACpD,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAA;QAEnD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC,EAAE,KAAK,CAAC,CAAA;IAET,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,iEAAiE;QACjE,qEAAqE;QACrE,8BAA8B;QAC9B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;QAC1C,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC,CAAA;QAErE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;QAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACvC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,MAAM,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACtC,MAAM,UAAU,CAAC,2BAA2B,EAAE,CAAA;QAChD,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAE5C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QAC7E,MAAM,OAAO,GAAG,OAAO;aACpB,QAAQ,EAAE,CAAC,CAAC,CAAC;aACb,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;QAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QAE7B,qCAAqC;QACrC,MAAM,cAAc,GAAG,MAAM,OAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;YACpD,KAAK,EAAE,MAAM,CAAC,UAAU;YACxB,MAAM,EAAE,MAAM,CAAC,WAAW;SAC3B,CAAC,CAAC,CAAA;QACH,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,cAAc,CAAC,CAAA;QAE/D,6CAA6C;QAC7C,MAAM,UAAU,GAAG,MAAM,OAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QAC9D,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;QACxC,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,UAAU,CAAC,CAAA;QAE3D,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACnD,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAErD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC,EAAE,KAAK,CAAC,CAAA;IAET,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;QAC1C,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC,CAAA;QAErE,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QAC1D,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QAElE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;QAC3C,MAAM,IAAI,CAAC,UAAU,CAAC;;;;;;;mCAOS,MAAM,CAAC,CAAC;oCACP,MAAM,CAAC,CAAC;qCACP,MAAM,CAAC,KAAK;sCACX,MAAM,CAAC,MAAM;;;;;mCAKhB,cAAc,CAAC,CAAC;oCACf,cAAc,CAAC,CAAC;qCACf,cAAc,CAAC,KAAK;sCACnB,cAAc,CAAC,MAAM;;;;;;;;;;SAUlD,CAAC,CAAA;QACN,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,MAAM,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACtC,MAAM,UAAU,CAAC,2BAA2B,EAAE,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAE5C,MAAM,gBAAgB,GAAiB,EAAE,CAAA;QACzC,MAAM,cAAc,GAAG,CAAC,EAAE,OAAO,EAA6C,EAAE,EAAE;YAChF,IAAI,OAAO,CAAC,MAAM,KAAK,wBAAwB,EAAE,CAAC;gBAChD,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC;QACH,CAAC,CAAA;QACD,OAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;QAEtD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QAC7E,IAAI,OAAO,CAAA;QACX,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;YAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrC,OAAO,GAAG,CAAC,CAAA;gBACX,MAAK;YACP,CAAC;QACH,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QAE7B,MAAM,OAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAA;QAE9C,MAAM,OAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,UAAU,EAAE,CAAA;QAEvD,OAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAA;QAEvD,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEvC,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;QACrC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QACvD,MAAM,UAAU,GAAI,SAAS,CAAC,MAAc,CAAC,IAAI,CAAA;QACjD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAE7C,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QACzD,MAAM,YAAY,GAAI,WAAW,CAAC,MAAc,CAAC,IAAI,CAAA;QACrD,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;QAC7C,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;QAC7C,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACrD,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAEvD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC,EAAE,KAAK,CAAC,CAAA;IAET,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;QAC1C,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC,CAAA;QAErE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;QAC3C,MAAM,IAAI,CAAC,UAAU,CAAC;;;;;;;SAOjB,CAAC,CAAA;QACN,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,MAAM,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACtC,MAAM,UAAU,CAAC,2BAA2B,EAAE,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAE5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;YACnC,IAAI,EAAE,SAAS;YACf,SAAS,EAAE;gBACT,IAAI,EAAE,EAAE,CAAA;;;;;;;;;;;;;;;iBAeC;gBACT,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAA;QAClC,MAAM,IAAI,GAAI,MAAM,CAAC,OAAe,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAA;QACnD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QACzC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAA;QACnE,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;QACxC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;QACvC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QAElC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC,EAAE,KAAK,CAAC,CAAA;IAET,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;QAC1C,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC,CAAA;QAErE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;QAC3C,MAAM,IAAI,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;SAgBjB,CAAC,CAAA;QACN,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,MAAM,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACtC,MAAM,UAAU,CAAC,2BAA2B,EAAE,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAE5C,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;YACzC,IAAI,EAAE,SAAS;YACf,SAAS,EAAE;gBACT,IAAI,EAAE,EAAE,CAAA;;;;;;;;;;iBAUC;gBACT,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAA;QACxC,MAAM,UAAU,GAAI,YAAY,CAAC,OAAe,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAA;QAC/D,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA4DpC,CAAC,CAAA;QAEN,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;YAC5C,IAAI,EAAE,SAAS;YACf,SAAS,EAAE;gBACT,IAAI,EAAE,EAAE,CAAA;;;;;;;;;;iBAUC;gBACT,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAA;QAC3C,MAAM,aAAa,GAAI,eAAe,CAAC,OAAe,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAA;QACrE,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA2CvC,CAAC,CAAA;QAEN,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC,EAAE,KAAK,CAAC,CAAA;IAET,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;QAC1C,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC,CAAA;QAErE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;QAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACvC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,MAAM,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACtC,MAAM,UAAU,CAAC,2BAA2B,EAAE,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAE5C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QAC7E,MAAM,OAAO,GAAG,OAAO;aACpB,QAAQ,EAAE,CAAC,CAAC,CAAC;aACb,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;QAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QAE7B,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,OAAQ,EAAE,CAAC,CAAA;QAEjE,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAEpE,MAAM,UAAU,GAAG;YACjB,iBAAiB,EAAE,aAAa,CAAC,iBAAiB;YAClD,iBAAiB,EAAE,aAAa,CAAC,iBAAiB;YAClD,cAAc,EAAE,aAAa,CAAC,cAAc;YAC5C,cAAc,EAAE,aAAa,CAAC,cAAc;YAC5C,gBAAgB,EACd,aAAa,CAAC,iBAAiB,CAAC,WAAW,GAAG,CAAC;gBAC7C,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC,WAAW;gBACxF,CAAC,CAAC,CAAC;SACR,CAAA;QAED,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAoCpC,CAAC,CAAA;QAEN,MAAM,SAAS,GAAG,MAAM,OAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAE,UAAkB,CAAC,gBAAgB,CAAC,CAAA;QACrF,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAA;QAClD,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEzB,MAAM,UAAU,CAAC,MAAM,EAAE,CAAA;QACzB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC,EAAE,KAAK,CAAC,CAAA;IAET,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;QAC1C,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC,CAAA;QAErE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;QAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACvC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,MAAM,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACtC,MAAM,UAAU,CAAC,2BAA2B,EAAE,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAE5C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QAC7E,MAAM,OAAO,GAAG,OAAO;aACpB,QAAQ,EAAE,CAAC,CAAC,CAAC;aACb,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;QAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QAE7B,yEAAyE;QACzE,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,EAAE,IAAI,EAAE,OAAQ,EAAE,CAAC,CAAA;QAEhE,iFAAiF;QACjF,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QACnE,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAA;QACnC,MAAM,OAAO,GAAG,aAAiE,CAAA;QACjF,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAA;QAC/C,MAAM,CAAC,OAAO,CAAC,iBAAkB,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAEjE,kBAAkB;QAClB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACxD,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;QAE9B,MAAM,SAAS,CAAC,MAAM,EAAE,CAAA;QACxB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC,EAAE,KAAK,CAAC,CAAA;IAET,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;QAC1C,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC,CAAA;QAErE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;QAC3C,6DAA6D;QAC7D,MAAM,IAAI,CAAC,UAAU,CAAC;;;;;;;;SAQjB,CAAC,CAAA;QACN,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,MAAM,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACtC,MAAM,UAAU,CAAC,2BAA2B,EAAE,CAAA;QAChD,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAE5C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QAC7E,IAAI,OAAO,CAAA;QACX,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;YAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,OAAO,GAAG,CAAC,CAAA;gBACX,MAAK;YACP,CAAC;QACH,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;QAE7B,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAA;QAE9D,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC;YACvC,IAAI,EAAE,OAAQ;SACf,CAAC,CAAA;QAEF,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;QACzC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QACpD,sEAAsE;QACtE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAA;QACnE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAA;QACnE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAA;QAEnE,MAAM,YAAY,GAAG,CAAC,KAAyB,EAAsB,EAAE;YACrE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,OAAO,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC/C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC9C,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE;YACxC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAA;QAC1D,CAAC,CAAA;QAED,MAAM,UAAU,GAAG,aAAa,CAAC,4BAA4B,CAAC,CAAA;QAC9D,MAAM,SAAS,GAAG,aAAa,CAAC,4BAA4B,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAG,aAAa,CAAC,4BAA4B,CAAC,CAAA;QAE5D,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;QAChC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAA;QAC/B,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;QAE9B,MAAM,aAAa,GAAG,OAAQ,CAAC,OAAO,CAAC,UAAW,CAAC,OAAQ,CAAC,CAAA;QAC5D,MAAM,YAAY,GAAG,OAAQ,CAAC,OAAO,CAAC,SAAU,CAAC,OAAQ,CAAC,CAAA;QAC1D,MAAM,WAAW,GAAG,OAAQ,CAAC,OAAO,CAAC,QAAS,CAAC,OAAQ,CAAC,CAAA;QAExD,MAAM,CAAC,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1C,MAAM,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEzC,MAAM,CAAC,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC7D,MAAM,CAAC,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACzD,MAAM,CAAC,MAAM,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAE7E,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACvD,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACnE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAE5E,kCAAkC;QAClC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5D,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5D,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE5D,sDAAsD;QACtD,MAAM,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAC9D,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAA;QAE5C,4BAA4B;QAC5B,MAAM,cAAc,GAAG,OAAQ,CAAC,OAAO,CAAC,WAAY,CAAC,CAAA;QACrD,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAA;QACxD,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,aAAa,CAAC,CAAA;QACvD,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAEzC,qBAAqB;QACrB,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACzD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAEzC,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC1D,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAEvC,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC3D,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAEvC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC,EAAE,KAAK,CAAC,CAAA;IAET,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;QAC1C,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC,CAAA;QAErE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAA;QAEnF,uCAAuC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAA;QACtF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,MAAM,SAAS,GAAG;YAChB,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,yBAAyB,EAAE;YACtD,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,+BAA+B,EAAE;SAC9D,CAAA;QAED,MAAM,mBAAmB,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAiC,EAAE,EAAE;YACjF,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;YAC3C,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAA;YAEvC,MAAM,QAAQ,GAAG,CAAC,CAAA;YAClB,IAAI,SAAS,GAAY,IAAI,CAAA;YAC7B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,QAAQ,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC;oBACH,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK,GAAG,aAAa,OAAO,IAAI,QAAQ,GAAG,CAAC,CAAA;oBAChF,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAA;oBAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;oBACrD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;gBAC5B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,SAAS,GAAG,KAAK,CAAA;gBACnB,CAAC;YACH,CAAC;YAED,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,UAAU,QAAQ,WAAW,EAAE;gBACnE,KAAK,EAAE,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACzB,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QACtC,CAAC,CAAC,CACH,CAAA;QAED,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YACzB,MAAM,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;gBACtC,MAAM,UAAU,CAAC,2BAA2B,EAAE,CAAA;YAChD,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QAE7E,MAAM,WAAW,GAAG,KAAK,EAAK,KAAa,EAAE,IAAsB,EAAE,SAAiB,EAAc,EAAE;YACpG,IAAI,SAAS,GAA0B,IAAI,CAAA;YAC3C,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBACtD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,SAAS,OAAO,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC/D,CAAC,EAAE,SAAS,CAAC,CAAA;YACf,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC,CAAA;YACrD,CAAC;oBAAS,CAAC;gBACT,IAAI,SAAS,EAAE,CAAC;oBACd,YAAY,CAAC,SAAS,CAAC,CAAA;gBACzB,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QAE5C,KAAK,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAA;YACrC,MAAM,OAAO,GAAG,OAAO;iBACpB,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACb,KAAK,EAAE;iBACP,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;YAEvD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAA;YACxD,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;YAC3C,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,WAAW,CACtC,qBAAqB,IAAI,GAAG,EAC5B,KAAK,IAAI,EAAE;gBACT,OAAO,MAAM,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YACnD,CAAC,EACD,KAAK,CACN,CAAA;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,UAAU,eAAe,CAAC,CAAA;YAClD,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;YAErC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAA;YAC1C,MAAM,UAAU,GAAG,MAAM,WAAW,CAClC,cAAc,IAAI,GAAG,EACrB,KAAK,IAAI,EAAE;gBACT,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;YACnE,CAAC,EACD,KAAK,CACN,CAAA;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,IAAI,MAAM,CAAC,CAAA;YACtE,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,UAAU,CAAC,CAAA;YAC5C,OAAO,CAAC,GAAG,CAAC,qBAAqB,cAAc,EAAE,CAAC,CAAA;YAElD,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAA;YAChD,MAAM,aAAa,GAAG,MAAM,WAAW,CACrC,eAAe,IAAI,GAAG,EACtB,KAAK,IAAI,EAAE;gBACT,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;YACxF,CAAC,EACD,KAAK,CACN,CAAA;YACD,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAEtC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;YAC3C,MAAM,WAAW,CACf,qBAAqB,IAAI,GAAG,EAC5B,KAAK,IAAI,EAAE;gBACT,MAAM,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YAC5C,CAAC,EACD,KAAK,CACN,CAAA;YAED,MAAM,eAAe,GAAG,MAAM,WAAW,CACvC,cAAc,IAAI,GAAG,EACrB,KAAK,IAAI,EAAE;gBACT,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC,CAAA;YACvF,CAAC,EACD,KAAK,CACN,CAAA;YACD,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAA;YAElC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAA;YAC1C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC;QAED,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QACrB,OAAO,CAAC,GAAG,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAA;IACnD,CAAC,EAAE,MAAM,CAAC,CAAA;IAEV,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;QAC1C,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC,CAAA;QAErE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;QAC3C,MAAM,IAAI,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAwDjB,CAAC,CAAA;QACN,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,MAAM,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACtC,MAAM,UAAU,CAAC,2BAA2B,EAAE,CAAA;QAChD,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAE5C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;YACnC,IAAI,EAAE,SAAS;YACf,SAAS,EAAE;gBACT,IAAI,EAAE,EAAE,CAAA;;;;;;;;iBAQC;gBACT,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAA;QAElC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAgB,CAAA;QACvC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE9B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;QAC1D,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAA;QACjC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAA;QAC1D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;QACnD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAA;QAC7D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QAEjD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAA;QAC5D,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAA;QAClC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAChD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QACvC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QAErD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACvD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;QAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1C,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC,CAAA;QACH,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;QAC/E,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;QAEzC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAC3C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAE5C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC,EAAE,KAAK,CAAC,CAAA;AACX,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-relay-server.d.ts","sourceRoot":"","sources":["../src/start-relay-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start-relay-server.d.ts","sourceRoot":"","sources":["../src/start-relay-server.ts"],"names":[],"mappings":"AAsBA,wBAAsB,WAAW,CAAC,EAChC,IAAY,EACZ,IAAkB,EAClB,KAAK,GACN,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,iDAoBvD"}
|
|
@@ -14,7 +14,7 @@ process.on('unhandledRejection', async (reason) => {
|
|
|
14
14
|
process.on('exit', async (code) => {
|
|
15
15
|
await logger.log(`Process exiting with code: ${code}`);
|
|
16
16
|
});
|
|
17
|
-
export async function startServer({ port = 19988, host = '127.0.0.1', token } = {}) {
|
|
17
|
+
export async function startServer({ port = 19988, host = '127.0.0.1', token, } = {}) {
|
|
18
18
|
const server = await startPlayWriterCDPRelayServer({ port, host, token, logger });
|
|
19
19
|
console.log('CDP Relay Server running. Press Ctrl+C to stop.');
|
|
20
20
|
console.log('Logs are being written to:', logger.logFilePath);
|