@unotest/web 0.32.0 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,385 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.33.0] - 2026-09-06
4
+
5
+ ### Minor Changes
6
+
7
+ - 2abfd4d: Box: every run is announced — Slack, Telegram, or a webhook of your own — and the channels are managed from the guard.
8
+
9
+ A box now tells people how its runs went, whoever started them: the
10
+ schedule's ticks, a pull request's check, somebody pressing Run in the
11
+ viewer, a terminal inside the container. The daemon reads each run's own
12
+ journal, so the three producers are one source; the run's manifest says
13
+ what set it off — `trigger: { kind: "schedule" | "ci" | "manual" | "cli",
14
+ by? }`, written by the runner from `UNOTEST_RUN_TRIGGER` /
15
+ `UNOTEST_RUN_ACTOR` (a box sets them for its scheduled and CI runs, the
16
+ viewer for a run ordered from its UI; a terminal sets nothing and reads as
17
+ `cli`).
18
+
19
+ A scheduled series is announced on a **change of state**: `failed` after
20
+ `afterFailures` red ticks in a row, `recovered`, `still-failing` at a rule's
21
+ `repeatEvery`, `not-run` when the suite could not run at all (no bundle, a
22
+ bundle that does not install) — daily by default. A run somebody ordered is
23
+ announced on its own, `failed` or `passed`, every time. A withdrawn or
24
+ aborted run says nothing; a run whose journal stops and whose heartbeat goes
25
+ cold is `interrupted`.
26
+
27
+ Channels, rules, mutes and quiet hours live on the box and are managed from
28
+ the guard's `/_guard/notifications` page (or `boxd notify …`): a channel's
29
+ secret is set once and never shown again, a rule picks environments,
30
+ triggers, events and channels, a series or the whole project can be muted
31
+ until a time, and quiet hours hold reminders and `passed` back until the
32
+ morning. A generic webhook receives the event as JSON (`version: 1`, the
33
+ box named, the `trigger`) with `X-Unotest-Event` and, when the channel has
34
+ a secret, `X-Unotest-Signature: sha256=<hex>` — HMAC-SHA256 over the raw
35
+ body, the scheme GitHub uses — plus any headers the channel declares.
36
+
37
+ `@unotest/protocol`: `RunManifest.trigger` and the trigger helpers
38
+ (`runTriggerFromEnv`, `runTriggerEnv`, `manifestTrigger`); the session-door
39
+ paths, views and parsers of the notifications API (`boxNotifyProjectPath`,
40
+ `boxNotifyChannelPath`, `boxNotifyRulePath`, `boxNotifySeriesPath`,
41
+ `boxNotifyMutePath`, `boxNotifyQuietHoursPath`, `boxNotifyPreviewPath`,
42
+ `BoxNotifyProjectView`, …). The first draft of this feature (channels
43
+ declared in the box config, secrets by field) never shipped; this replaces
44
+ it whole.
45
+
46
+ ### Patch Changes
47
+
48
+ - 5d1bde3: `lint` and `e2e` no longer fail on a project tree they cannot write to.
49
+
50
+ Editor typings (`unotest/jsconfig.json`, `.unotest/types/env.d.ts`) are a
51
+ convenience for a human with an IDE open, and they were being written on
52
+ every implicit `lint` / `e2e`. On a box that runs a suite in an isolated
53
+ container the bundle is mounted read-only, so that write raised `EROFS` /
54
+ `ENOENT` and every scenario ended as `interrupted` — a suite failing
55
+ because a cache could not be refreshed.
56
+
57
+ The write is now skipped when the tree refuses it (matched on the errno
58
+ `code`, never on a message), both artifacts report `skipped`, the result
59
+ carries the reason, and the run carries on; any other failure still
60
+ throws. `UNOTEST_EDITOR_TYPES=0` turns the whole thing off up front — a
61
+ box sets it on every run it starts, because there is no editor in a
62
+ container and the attempt is only noise in the log.
63
+
64
+ - b3e1220: Judge: the bearer token on `/judge` is compared in constant time, and the
65
+ docs say what a verdict sends and what it is not.
66
+
67
+ `UNOTEST_JUDGE_TOKEN` was checked with a plain string comparison, which
68
+ returns as soon as one character differs; both sides are now hashed and
69
+ compared with `timingSafeEqual`. The judge guide and the package README
70
+ gain a section on what leaves the machine — the one element's rendered
71
+ text and the rubric, nothing else; the secret redactor does not act on
72
+ that body; CI defaults to `fake` — and on why a verdict, being a model's
73
+ reading of the page's own text, is a check on wording and never a
74
+ security gate.
75
+
76
+ - b3e1220: Box notifications: a webhook channel's header values are credentials.
77
+
78
+ The notifications API and the guard's page now see a webhook's headers
79
+ as names with `{ set: true }` — the values (the receiver's
80
+ `Authorization`, most of the time) are never read back, like the signing
81
+ secret. The edit form lists the names; typing a value after one replaces
82
+ the set, names alone keep it. `/api/box/notify` is the guard's own route:
83
+ it is no longer reachable through the session proxy for any role — a
84
+ readonly session could previously list every project's channels with
85
+ their headers.
86
+
87
+ - b3e1220: Box notifications: the webhook signature now covers a timestamp.
88
+
89
+ Every webhook delivery carries `X-Unotest-Timestamp` (Unix milliseconds,
90
+ when it was sent), and `X-Unotest-Signature` is HMAC-SHA256 over
91
+ `<timestamp>.<raw body>` rather than the body alone — GitHub's scheme
92
+ with a timestamp in front, so a delivery captured on the wire cannot be
93
+ replayed to the receiver once its window (five minutes, documented) has
94
+ passed. The GitHub webhook the box receives is unchanged: that is
95
+ GitHub's contract.
96
+
97
+ The `by` of a CI-triggered run (`push a1b2c3d (branch)`) is cut at 200
98
+ characters — a branch name is the pusher's input, and it must not balloon
99
+ the run's manifest and every notification the run produces.
100
+
101
+ - b5907cf: Pin playwright to the exact release the box image ships.
102
+
103
+ `@unotest/web` depended on `playwright ^1.62.0`, so a fresh install of a
104
+ suite could pick a newer playwright than the browsers inside the box's
105
+ `mcr.microsoft.com/playwright` image, and every run on the box failed
106
+ with "Browser 'chromium' is not installed" the day 1.63.0 shipped. The
107
+ dependency is now the exact version of the image (1.62.1); the two are
108
+ bumped together, and a guard in the monorepo's `verify` keeps them equal.
109
+
110
+ - 5d1bde3: Building the runner no longer writes into the project tree.
111
+
112
+ `ExplorationService` created `.unotest/explorations/` in its constructor,
113
+ and the composition root builds it for every entry point — including an
114
+ `e2e` run. Where the project tree is read-only (a box mounts a pushed
115
+ bundle that way) the run ended before a browser was asked for. Recording
116
+ is an MCP activity, so the folder is now created with the first record
117
+ written instead.
118
+
119
+ With the editor-typings fix in the same release, an ordinary `lint` /
120
+ `e2e` writes nothing under the sources: run artifacts go to
121
+ `UNOTEST_ARTIFACTS_ROOT` (which the box makes writable), and everything
122
+ else that writes into the project — recording, authoring, `init`, `env
123
+ set`, `bundle push` — happens on a developer's machine.
124
+
125
+ - 5d1bde3: Run isolation, stage 1: a box no longer executes a test bundle inside its
126
+ own daemon.
127
+
128
+ box-runner (new, private): the run sidecar — the only service on a box
129
+ holding the docker socket, and the only one that starts a container. Three
130
+ authenticated routes on the `box` network (`POST /runs`, `GET
131
+ /runs/:id/stream` NDJSON, `DELETE /runs/:id`), a shared secret compared in
132
+ constant time, and an API that cannot be told anything about how a
133
+ container is built: no path, image, network, user, mount or flag. A request
134
+ names a project, an environment, a bundle, a scenario and the environment's
135
+ values; the bind sources are derived from the first three, resolved with
136
+ `realpath` and re-checked against the projects root, and must already
137
+ exist. The container is created over the Docker Engine API (pinned
138
+ `v1.43`) straight over the socket — no `docker` binary in the image and no
139
+ client dependency, and a container that is a JSON document has no place
140
+ for a value to become a flag. A daemon that refuses or is not there comes
141
+ back as `502 {reason}` before the run is accepted, or as an `error` event
142
+ on the stream after — never as a run that "exited with code null". An
143
+ environment variable the box does not forward is named in the sidecar's
144
+ log rather than dropped silently. A run gets the bundle tree read-only as its working directory, the
145
+ environment's `unotest/.runs.<env>` read-write, a `noexec` tmpfs `/tmp`,
146
+ a read-only rootfs, all capabilities dropped, `no-new-privileges`, its own
147
+ uid in boxd's group, memory/pids/cpu limits clamped to both the operator's ceilings and the
148
+ host's own size (docker refuses a container bigger than the machine
149
+ instead of clamping it), a 512 MB `/dev/shm`
150
+ (docker's default 64 MB kills Chromium mid-page; the host's IPC namespace
151
+ is deliberately not borrowed), and the `runs` network only. The container engine is an interface, so every rule is asserted on
152
+ the container that would have reached docker — including the cases where
153
+ the answer is no container at all.
154
+
155
+ boxd: running the SUITE is its own contract (`IScenarioRunner`), separate
156
+ from running a command (`ICommandRunner`, still the daemon's own `npm ci`
157
+ and viewers). `ContainerScenarioRunner` talks to the sidecar,
158
+ `ProcessScenarioRunner` keeps the old child-process shape for a box without
159
+ docker; `BOXD_RUNNER_KIND=container|process` chooses, and half a container
160
+ configuration refuses to start. Reading a bundle's schedules
161
+ (`unotest-web schedules --json`) executes the project's config module, so it
162
+ goes the same way. A run's environment is built from named parts
163
+ (`run-environment.ts`) instead of inheriting `process.env`, and its debug
164
+ tree is pointed at the run's own directory rather than the read-only
165
+ sources. New metrics
166
+ `boxd_run_container_total{outcome}` and `boxd_run_container_start_seconds`.
167
+ An environment's runs directory is created by the daemon with `2775`, so
168
+ the run's uid may write into it and the daemon's group may read it back.
169
+
170
+ box-kit: `secretsMatch` (constant-time secret comparison, moved out of
171
+ dist-service), `splitLines`, and `envNumber` / `envPositiveNumber` — the
172
+ env-reading rule the box-side services share.
173
+
174
+ `npm ci` of a bundle is a container of its own (`kind: "install"`): the
175
+ bundle tree is its only mount and it is writable, there is no environment
176
+ and no artifacts directory in reach, and a dependency's install scripts
177
+ RUN — a native module builds or fetches its binary as usual. That is what
178
+ running them inside the daemon could never allow. The container's last
179
+ steps, only on success, check the tree against the box's size cap, set
180
+ the final modes on what the install created and write the install marker
181
+ — each with an exit code of its own, so the daemon's log names the step
182
+ that failed — so a killed or oversized
183
+ install leaves a tree the box will not mount; a failed install takes the
184
+ tree with it. The daemon no longer passes `--ignore-scripts` and no
185
+ longer walks the tree afterwards.
186
+
187
+ The daemon runs with `umask 002` and clears `node_modules` before each
188
+ install, so a tree it created is one the install container (another uid
189
+ in its group) can actually write.
190
+
191
+ An install that fails KEEPS the tree, unmarked: nothing mounts it and the
192
+ next attempt reinstalls in place (`npm ci` wipes `node_modules` itself).
193
+ And a bundle directory holding a manifest with neither an archive nor a
194
+ tree behind it no longer counts as "this box has it" — a push of the same
195
+ content brings it back instead of being answered `already had this exact
196
+ bundle`.
197
+
198
+ web: `bundle push` and the docs say that a dependency's install scripts
199
+ run on a box, in isolation — the earlier advice to vendor them is gone.
200
+
201
+ A run ordered in the viewer now goes through the daemon's queue instead
202
+ of being spawned by the viewer.
203
+
204
+ `POST/GET/DELETE /api/box/envs/<project>/<env>/runs[/<runId>]` (paths and
205
+ wire types in `@unotest/protocol`) takes a `manual` ticket like every
206
+ other producer. Two callers may use it, and neither is taken on its word:
207
+ the guard, proving it is the guard with a shared secret from `box-init`
208
+ (the actor header is read only next to it — a viewer container could
209
+ otherwise claim to be any admin), and a viewer, with a per-environment
210
+ token the daemon minted when it started that viewer plus a short-lived
211
+ single-use ticket the guard signed over WHO clicked. The guard gates the
212
+ route under `admin` and requires an `Origin` on a mutation; the daemon
213
+ checks the token's environment, the ticket's environment and its `jti`
214
+ against the path.
215
+
216
+ `@unotest/viewer` gets `BoxdRunner`: on a box the Run button orders and
217
+ the Stop button asks the daemon, and the progress still comes from the
218
+ run's journal on disk. A local viewer spawns as it always did — the
219
+ composition root picks by whether a box handed it credentials.
220
+
221
+ - 348aba7: Run isolation, stage 2b and 3: an environment's viewer runs in a
222
+ container of its own, and a box ships the sidecar in its compose stack.
223
+
224
+ The viewer was the last thing on a box that executed a bundle's code next
225
+ to the daemon's state: it runs the UI, the language service and the
226
+ linter out of the bundle's own `node_modules`. It is now a container the
227
+ run sidecar starts and the daemon asks for — `POST /viewers`, one per
228
+ environment, addressed by a name both services derive
229
+ (`unotest-viewer-<project>-<env>-<8 hex>`, port 7788).
230
+
231
+ Each viewer gets a NETWORK of its own with exactly two other containers
232
+ attached: the guard, which proxies people at it, and the daemon, which it
233
+ orders runs from. Not the sidecar's network, not the runs network, and
234
+ above all not another viewer's — a viewer has no authentication of its
235
+ own, and two on one network would be two containers of untrusted code
236
+ with a route to each other. That network is INTERNAL: a viewer's server
237
+ makes no outbound call, so it gets none, while the network a run joins
238
+ stays open because a test drives an application. The name of a viewer and
239
+ its network is a function of the project/environment PAIR rather than of
240
+ the string they join to, so two environments whose names concatenate the
241
+ same way cannot end up sharing one. Its mounts are the bundle tree read-only and
242
+ the environment's `unotest/` read-write (the run history it renders and
243
+ the queue it withdraws tickets from); the environment's secrets and its
244
+ `current` link sit in the directory above and are mounted by nobody. Its
245
+ environment is assembled by the daemon — the target, the environment's
246
+ variables and secrets, its own credential — and the daemon's own
247
+ `process.env` no longer travels.
248
+
249
+ **Editing a suite's files from the viewer on a box no longer works**: the
250
+ sources are read-only there. Such edits never survived the next `bundle
251
+ push` anyway, which replaced the tree. Everything else in the UI is
252
+ unchanged.
253
+
254
+ Readiness is the docker daemon's own healthcheck, probed inside the
255
+ container and read through the sidecar — the daemon no longer waits on a
256
+ lock file, and nothing dials a viewer from the process holding the docker
257
+ socket. A viewer's output is streamed into the daemon's log and
258
+ reattached when the stream drops. A container whose bundle and values
259
+ still match is ADOPTED across a restart of either service, keeping the
260
+ credential it was born with; one whose environment is gone is stopped,
261
+ with its network and its token. The sidecar recognises its own containers
262
+ by label, never by name alone, and enforces its own ceiling on how many
263
+ viewers may exist (`BOX_RUNNER_MAX_VIEWERS`) — boxd knows how many
264
+ environments there are right up until boxd is the thing that was
265
+ compromised.
266
+
267
+ A run somebody stopped now ENDS in the viewer instead of hanging.
268
+ Stopping a run stops its container gracefully (SIGTERM, then SIGKILL
269
+ after `BOX_RUNNER_STOP_GRACE_SECONDS`, default 10) so the suite writes
270
+ the terminal event of its own journal; if it could not — the grace ran
271
+ out, the machine died — the daemon appends it. The same grace applies to
272
+ a run killed on its timeout, so a run's budget is the timeout plus the
273
+ grace.
274
+
275
+ A viewer that dies is noticed in about a second and replaced: the log
276
+ stream the daemon holds open ends with the container, and the 404 that
277
+ answers its immediate reattach is the signal. The route comes out of the
278
+ table at once — the guard then says the environment has no viewer instead
279
+ of proxying at a dead address — and a fresh container is started, on the
280
+ same backoff the daemon uses for everything else it cannot reach.
281
+
282
+ A restart of the sidecar is no longer an outage. While it cannot be
283
+ reached the daemon keeps the routes it published (the viewer containers
284
+ are up, and the guard reaches them directly) and tries again with a short
285
+ backoff instead of waiting for its next five-minute sweep. Editing a file
286
+ in the viewer on a box now answers 403 with the reason — the sources are
287
+ read-only there — rather than a blank 500.
288
+
289
+ The viewer no longer collapses the daemon's refusals into a blank 500:
290
+ the box's own status and reason reach the browser, so "that click has
291
+ already been used" (409), "the box cannot verify the caller" (503) and
292
+ "the box daemon is not answering" (503) are told apart by the person who
293
+ clicked.
294
+
295
+ Deployment: `compose.yaml` gains the `runner` service (the only holder of
296
+ the docker socket, the release ships its bundled `box-runner.mjs` beside
297
+ `boxd.mjs`), fixed container names for the guard and the daemon, a
298
+ `box_secrets` volume whose secrets `box-init` generates, and a one-off
299
+ migration of the projects tree to the group layout an install container
300
+ needs. Two values an operator fills in: `BOX_PROJECTS_HOST_DIR` (a bind
301
+ source is resolved by the docker daemon on the host) and `BOX_DOCKER_GID`.
302
+ Step by step in the box release's cutover manual.
303
+
304
+ - 9158968: Viewer: a run that started before the page was reloaded is shown again.
305
+
306
+ The live sidebar was rebuilt from WebSocket events only, and those speak
307
+ from the moment the page connects — a collection already in progress
308
+ never re-sent its `started` event, so after a reload it was missing from
309
+ ACTIVE, then reappeared nameless with no scenario list once its next
310
+ scenario began, while its children showed up one by one. On load, and on
311
+ an environment or target switch, the viewer now asks the server which
312
+ runs are live and replays each one's journal into the same state the
313
+ live stream feeds, so a reload mid-run shows the collection with its
314
+ name, scenarios and progress.
315
+
316
+ - b3e1220: Viewer: a session that may not edit variables does not see credential-shaped
317
+ values, nor the project's absolute path.
318
+
319
+ Behind the guard, a readonly session could read `GET /api/variables` and
320
+ get every box variable's value — `PASSWORD=…` included when the operator
321
+ had pushed it as a variable rather than a secret. The viewer now reads the
322
+ capabilities the guard stamps on each request: when the caller cannot edit
323
+ variables, a value whose name matches `PASSWORD | PASSWD | SECRET | TOKEN |
324
+ KEY | CREDENTIAL` is sent empty and flagged `secret`, and `GET /api/targets`
325
+ leaves out `projectRoot`. Display-masking by capability, not authorization —
326
+ a viewer without a proxy in front is unchanged, and the guard still refuses
327
+ every write.
328
+
329
+ - bd6b7ba: Viewer: a collection run no longer shows up nameless and without scenarios.
330
+
331
+ The journal tailer moved its cursor to the end of the file even when the
332
+ last line was still being written, so the half already on disk was lost
333
+ and the other half was later read as garbage. The longest line in a
334
+ journal is `collection-run:started` with the scenario list, so that was
335
+ the one it usually caught: the run appeared under its id instead of its
336
+ collection name, with "collection has no scenarios" and a `2/0 done`
337
+ counter. The cursor now stops at the last complete line and the rest is
338
+ read on the next change.
339
+
340
+ - 8846a06: Viewer: a run started the moment the viewer came up is shown, not lost
341
+ until the next change.
342
+
343
+ Watching a directory becomes live a moment after the watcher reports it
344
+ is ready, and a run directory created inside that gap was not merely
345
+ late — it was invisible until something else changed in the same day,
346
+ which in a quiet environment is the next run. Measured at 1-3% on macOS
347
+ with a busy machine, and the window is exactly "open the viewer, start a
348
+ run". The viewer now proves the watch delivers before it declares itself
349
+ up: it creates a directory of its own and waits to hear about it, so
350
+ boot completes on evidence rather than on a promise. A tree it cannot
351
+ write to, or a probe that never comes back, costs a warning in the log
352
+ and boots as before.
353
+
354
+ A directory whose name starts with a dot is never reported as a run — an
355
+ editor's leftovers, or the watcher's own probe, can no longer appear in
356
+ the run list as a phantom.
357
+
358
+ Run queue: a waiter whose process paused is no longer mistaken for dead
359
+ — the queue stamps its own files with its own clock.
360
+
361
+ A run waiting for a slot proves it is alive by touching its ticket, and
362
+ what it is judged against was the modification time the filesystem
363
+ wrote: on a network share that is the server's clock, and against a
364
+ machine busy enough to keep a process off the CPU, a ticket written a
365
+ moment ago could look like it belonged to a process that died. The queue
366
+ now stamps every file it creates with the same clock it judges them by.
367
+
368
+ - Updated dependencies [2abfd4d]
369
+ - Updated dependencies [b3e1220]
370
+ - Updated dependencies [b3e1220]
371
+ - Updated dependencies [5d1bde3]
372
+ - Updated dependencies [348aba7]
373
+ - Updated dependencies [9158968]
374
+ - Updated dependencies [b3e1220]
375
+ - Updated dependencies [bd6b7ba]
376
+ - Updated dependencies [8846a06]
377
+ - @unotest/protocol@0.33.0
378
+ - @unotest/viewer@0.33.0
379
+ - @unotest/core@0.33.0
380
+ - @unotest/dsl@0.33.0
381
+ - @unotest/grounder-client@0.33.0
382
+
3
383
  ## [0.32.0] - 2026-09-05
4
384
 
5
385
  ### Minor Changes
package/README.md CHANGED
@@ -156,8 +156,11 @@ step. Secrets stay behind: `unotest/.env*` and `.secrets*` never travel,
156
156
  because environment values belong to the environment and are injected
157
157
  over the bundle when it runs. Install hooks (`postinstall`, `prepare`,
158
158
  ...) are removed from the packed `unotest/package.json`: a box installs
159
- the suite's dependencies, it does not run a checkout's hooks. Dependency
160
- install scripts (native modules) run as normal.
159
+ the suite's dependencies, it does not run a checkout's hooks. Your
160
+ DEPENDENCIES' install scripts do run — a native module builds or fetches
161
+ its binary as usual — because on a box that install happens in a
162
+ container of its own, with the bundle tree as its only writable mount
163
+ and none of the box's state in reach.
161
164
 
162
165
  What would break on the box is refused here instead — a scenario that
163
166
  reads a file outside `unotest/`, a missing `unotest/package-lock.json`,
@@ -1 +1 @@
1
- var _0x5c7c04=_0x4207;function _0x4207(_0x454c75,_0x3095d){_0x454c75=_0x454c75-0x1c8;var _0x209034=_0x2090();var _0x4207cc=_0x209034[_0x454c75];if(_0x4207['jGFbYf']===undefined){var _0x285a29=function(_0x107f7c){var _0x41d0e6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x31c002='',_0x1a95c4='';for(var _0xcd9d04=0x0,_0x2d772f,_0x174409,_0x55caf9=0x0;_0x174409=_0x107f7c['charAt'](_0x55caf9++);~_0x174409&&(_0x2d772f=_0xcd9d04%0x4?_0x2d772f*0x40+_0x174409:_0x174409,_0xcd9d04++%0x4)?_0x31c002+=String['fromCharCode'](0xff&_0x2d772f>>(-0x2*_0xcd9d04&0x6)):0x0){_0x174409=_0x41d0e6['indexOf'](_0x174409);}for(var _0x33f5ed=0x0,_0x242f97=_0x31c002['length'];_0x33f5ed<_0x242f97;_0x33f5ed++){_0x1a95c4+='%'+('00'+_0x31c002['charCodeAt'](_0x33f5ed)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1a95c4);};_0x4207['hnsyHs']=_0x285a29,_0x4207['QiBXrc']={},_0x4207['jGFbYf']=!![];}var _0x1f2f13=_0x209034[0x0],_0x3909aa=_0x454c75+_0x1f2f13,_0x377df3=_0x4207['QiBXrc'][_0x3909aa];return!_0x377df3?(_0x4207cc=_0x4207['hnsyHs'](_0x4207cc),_0x4207['QiBXrc'][_0x3909aa]=_0x4207cc):_0x4207cc=_0x377df3,_0x4207cc;}(function(_0x1338cc,_0x57a561){var _0x56fe2a={_0x5f1e29:0x200,_0x39d1d6:0x201,_0x39bc8a:0x1fe,_0x4f4f9f:0x1cf,_0xf3ea23:0x204},_0x47e60e=_0x4207,_0x56db90=_0x1338cc();while(!![]){try{var _0x4fed80=-parseInt(_0x47e60e(_0x56fe2a._0x5f1e29))/0x1+-parseInt(_0x47e60e(0x1e1))/0x2+-parseInt(_0x47e60e(0x1c8))/0x3+-parseInt(_0x47e60e(_0x56fe2a._0x39d1d6))/0x4*(parseInt(_0x47e60e(0x1d3))/0x5)+-parseInt(_0x47e60e(_0x56fe2a._0x39bc8a))/0x6+parseInt(_0x47e60e(0x1fa))/0x7+parseInt(_0x47e60e(_0x56fe2a._0x4f4f9f))/0x8*(parseInt(_0x47e60e(_0x56fe2a._0xf3ea23))/0x9);if(_0x4fed80===_0x57a561)break;else _0x56db90['push'](_0x56db90['shift']());}catch(_0x1e953f){_0x56db90['push'](_0x56db90['shift']());}}}(_0x2090,0x8b071));import{z}from'zod';function _0x2090(){var _0x306270=['Dw5PB24','zw51Bq','zxjYB3i','D2vIA2L0','mtu5mJK3ugnsq1PN','Dw5VDgvZDc9LmMu','y2HYB21PDw0','DMfSAwrHDg9YoMLMlxnOyxbL','DhjHBNnPzw50','Cg9ZAxrPDMu','BgLUDdPYzwDLEc1PBNzHBgLK','mJC2mdK4mdHVsgLksuO','y3jHC2G','B3b0Aw9UywW','BMv0D29YAW','mZq4nxDKB25vCa','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','BgLUDdPSAw50lw9Rlw1PC3nPBMCTCMvHC29U','BgLUDdPHCgKTy2fSBc1MAwXLlwjVzhK','C3rKAw8','DMfSAwrHDg9YoMzVCI1ZAgfWzq','DMfSAwrHDg9YoNzHCI1ZAgfWzq','yxjYyxK','BgLUDdPVBMuTDgvZDc1WzxiTzMLSzq','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','BwLU','D2fYBG','zgvMyxvSDa','yM9VBgvHBG','mty2ndm0ngrPEeXbta','BNvTyMvY','zMLYzwzVEa','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','B2jQzwn0','BgL0zxjHBa','BgLUDdPWyxvZzs1LEhbSAwnPDa','DMfSAwrHDg9YoMfYzY1RAw5K','ywnJzxb0','C3rYAw5N','BNvSBa','B2zM','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','BgLUDdPZy2vUyxjPBY1PBI1YB290','BgLUDdPLEhrLCM5HBc12yxjPywjSzs11BMrLy2XHCMvK','DMfSAwrHDg9YoNn0zxaTC2HHCgu','CMvJB3jK','DMfSAwrHDg9YoM1LDgeTC2HHCgu','BgLUDdP4Cgf0Aa','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','Aw50','lNvUB3rLC3qVzMfPBhvYzxm','y2HYB21LlwjLDge','zgLZBwLZCW','BgLUDdPNB3rVlwnVBMnHDa','nZe0mZuWrfb5zLrk','Bwf4','BxnLzgDL','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','nJa2nJm0ofD2qvD6yq','BgLUDdPKzwvWlwnZCW','nta0mtaXC3b0De9l','mZm0ofHRseThvq','BgLUDdPLy2HVlwfZC2vYDa','DxjS','ouDjDhnezW','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u'];_0x2090=function(){return _0x306270;};return _0x2090();}var BrowserSchema=z['enum']([_0x5c7c04(0x1ca),_0x5c7c04(0x1e3),_0x5c7c04(0x209)]),BrowserChannelSchema=z[_0x5c7c04(0x206)]([z[_0x5c7c04(0x1e6)]('chrome'),z[_0x5c7c04(0x1e6)](_0x5c7c04(0x1fc)),z['literal'](_0x5c7c04(0x1f7)),z[_0x5c7c04(0x1eb)]()])[_0x5c7c04(0x1d1)](),ViewportSchema=z[_0x5c7c04(0x1e5)]({'width':z[_0x5c7c04(0x1e2)]()[_0x5c7c04(0x1f5)]()[_0x5c7c04(0x1cd)](),'height':z[_0x5c7c04(0x1e2)]()['int']()[_0x5c7c04(0x1cd)]()}),RetryReasonSchema=z[_0x5c7c04(0x207)]([_0x5c7c04(0x1cc),_0x5c7c04(0x1d2),_0x5c7c04(0x1d0)]),RetryConfigSchema=z[_0x5c7c04(0x1e5)]({'count':z[_0x5c7c04(0x1e2)]()[_0x5c7c04(0x1f5)]()['min'](0x0)[_0x5c7c04(0x1fb)](0xa),'on':z[_0x5c7c04(0x1da)](RetryReasonSchema)}),FailureBundleConfigSchema=z[_0x5c7c04(0x1e5)]({'tier1':z['literal'](!![])['default'](!![]),'tier2':z[_0x5c7c04(0x1e0)](),'tier3':z['object']({'network':z[_0x5c7c04(0x1e0)](),'video':z[_0x5c7c04(0x1e0)]()}),'retention':z[_0x5c7c04(0x1e5)]({'runs':z['number']()[_0x5c7c04(0x1f5)]()[_0x5c7c04(0x1cd)](),'days':z[_0x5c7c04(0x1e2)]()[_0x5c7c04(0x1f5)]()['positive']()}),'storageDir':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1dd)](0x1)}),DialogPolicySchema=z[_0x5c7c04(0x207)]([_0x5c7c04(0x1e9),_0x5c7c04(0x1f8),'manual']),LinterRuleIdSchema=z['enum']([_0x5c7c04(0x1ff),_0x5c7c04(0x1f3),_0x5c7c04(0x1fd),_0x5c7c04(0x1e7),_0x5c7c04(0x1d4),_0x5c7c04(0x1f4),_0x5c7c04(0x1ee),'lint:mustache-in-dsl',_0x5c7c04(0x1f9),_0x5c7c04(0x1ce),_0x5c7c04(0x202),_0x5c7c04(0x1d6),_0x5c7c04(0x1d5),'lint:flow-returns-value','lint:legacy-layout',_0x5c7c04(0x1ef),_0x5c7c04(0x1db),_0x5c7c04(0x1ed),'validator:arity',_0x5c7c04(0x1e8),_0x5c7c04(0x205),_0x5c7c04(0x1f0),_0x5c7c04(0x1f2),_0x5c7c04(0x1dc),_0x5c7c04(0x1d8),_0x5c7c04(0x1cb),_0x5c7c04(0x1d9),'validator:unsupported-statement','validator:unsupported-expression','validator:string-concat','validator:semantic-loss','validator:list-arg',_0x5c7c04(0x1e4)]),LinterSeveritySchema=z[_0x5c7c04(0x207)](['off','warn',_0x5c7c04(0x208)]),LinterConfigSchema=z[_0x5c7c04(0x1e5)]({'enabled':z[_0x5c7c04(0x1e0)](),'rules':z[_0x5c7c04(0x1f1)](LinterRuleIdSchema,LinterSeveritySchema)}),QueueConfigSchema=z[_0x5c7c04(0x1e5)]({'enabled':z[_0x5c7c04(0x1e0)]()[_0x5c7c04(0x1df)](!![]),'concurrency':z[_0x5c7c04(0x1e2)]()[_0x5c7c04(0x1f5)]()[_0x5c7c04(0x1cd)]()[_0x5c7c04(0x1df)](0x1)}),ScheduleSchema=z['object']({'collection':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1dd)](0x1),'cron':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1dd)](0x1),'env':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1dd)](0x1)[_0x5c7c04(0x1d1)](),'prepare':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1dd)](0x1)[_0x5c7c04(0x1d1)]()}),McpConfigSchema=z[_0x5c7c04(0x1e5)]({'transport':z[_0x5c7c04(0x1e6)](_0x5c7c04(0x1d7))}),SandboxConfigSchema=z['object']({'shellCwd':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1d1)](),'shellTimeoutMs':z[_0x5c7c04(0x1e2)]()['int']()[_0x5c7c04(0x1cd)]()[_0x5c7c04(0x1d1)](),'exportSecrets':z['array'](z[_0x5c7c04(0x1ea)]())['optional'](),'database':z[_0x5c7c04(0x1ea)]()['optional'](),'apiBaseUrl':z['string']()[_0x5c7c04(0x203)]()[_0x5c7c04(0x1d1)](),'uploadDir':z['string']()['optional']()}),WebServerConfigSchema=z[_0x5c7c04(0x1e5)]({'command':z[_0x5c7c04(0x1ea)]()['min'](0x1),'url':z['string']()[_0x5c7c04(0x203)](),'reuseExistingServer':z[_0x5c7c04(0x1e0)]()[_0x5c7c04(0x1df)](!![]),'timeoutMs':z['number']()[_0x5c7c04(0x1f5)]()[_0x5c7c04(0x1cd)]()['default'](0xea60)}),UnotestConfigSchema=z['object']({'baseUrl':z[_0x5c7c04(0x1ea)]()['url']()['optional'](),'webServer':WebServerConfigSchema[_0x5c7c04(0x1d1)](),'browsers':z['array'](BrowserSchema)[_0x5c7c04(0x1dd)](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1d1)](),'testDir':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1dd)](0x1),'helpersDir':z[_0x5c7c04(0x1ea)]()['min'](0x1),'defaultTimeoutMs':z[_0x5c7c04(0x1e2)]()[_0x5c7c04(0x1f5)]()[_0x5c7c04(0x1cd)](),'defaultNavigationTimeoutMs':z['number']()[_0x5c7c04(0x1f5)]()[_0x5c7c04(0x1cd)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'queue':QueueConfigSchema,'schedules':z[_0x5c7c04(0x1da)](ScheduleSchema)['default']([]),'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x5c7c04(0x1ca)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':[_0x5c7c04(0x1cc)]},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x5c7c04(0x1f6)},'dialogPolicy':_0x5c7c04(0x1e9),'testDir':_0x5c7c04(0x1c9),'helpersDir':'unotest/e2e/_helpers','defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x5c7c04(0x1de),'lint:xpath':'warn','lint:obfuscated-class':'warn','lint:pause-explicit':_0x5c7c04(0x1de),'lint:disambig-by-index':_0x5c7c04(0x1ec),'lint:evaluate-discouraged':_0x5c7c04(0x1de),'lint:scenario-in-root':_0x5c7c04(0x208),'lint:mustache-in-dsl':'error','lint:goto-concat':'warn','lint:regex-invalid':_0x5c7c04(0x208),'lint:echo-assert':'warn','lint:lint-ok-missing-reason':_0x5c7c04(0x1de),'lint:flow-returns-value':_0x5c7c04(0x1de),'lint:legacy-layout':_0x5c7c04(0x1de),'lint:external-variable-undeclared':_0x5c7c04(0x208),'lint:one-test-per-file':_0x5c7c04(0x1de),'validator:unknown-function':'error'}},'mcp':{'transport':'stdio'},'queue':{'enabled':!![],'concurrency':0x1},'schedules':[],'sandbox':{}};export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,QueueConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,ScheduleSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};
1
+ var _0x2db7f2=_0x2c2d;(function(_0x4e56db,_0x2ba826){var _0xb688b={_0x4b65de:0x19e,_0x405fa9:0x1b4,_0x323a60:0x1ca,_0x176f58:0x1ce,_0x49d206:0x1a1},_0x2da43b=_0x2c2d,_0x22e447=_0x4e56db();while(!![]){try{var _0x3af37b=parseInt(_0x2da43b(0x1d4))/0x1+parseInt(_0x2da43b(0x1bd))/0x2+parseInt(_0x2da43b(_0xb688b._0x4b65de))/0x3+-parseInt(_0x2da43b(_0xb688b._0x405fa9))/0x4*(parseInt(_0x2da43b(_0xb688b._0x323a60))/0x5)+-parseInt(_0x2da43b(0x1b2))/0x6*(parseInt(_0x2da43b(0x1a0))/0x7)+-parseInt(_0x2da43b(0x1c8))/0x8*(parseInt(_0x2da43b(_0xb688b._0x176f58))/0x9)+-parseInt(_0x2da43b(_0xb688b._0x49d206))/0xa;if(_0x3af37b===_0x2ba826)break;else _0x22e447['push'](_0x22e447['shift']());}catch(_0x1021e6){_0x22e447['push'](_0x22e447['shift']());}}}(_0x2e2b,0x8f143));import{z}from'zod';var BrowserSchema=z['enum'](['chromium',_0x2db7f2(0x1c1),_0x2db7f2(0x1c9)]),BrowserChannelSchema=z[_0x2db7f2(0x1c0)]([z['literal'](_0x2db7f2(0x1b0)),z[_0x2db7f2(0x1ba)](_0x2db7f2(0x1bb)),z[_0x2db7f2(0x1ba)](_0x2db7f2(0x196)),z[_0x2db7f2(0x198)]()])[_0x2db7f2(0x1bc)](),ViewportSchema=z[_0x2db7f2(0x1b9)]({'width':z[_0x2db7f2(0x195)]()[_0x2db7f2(0x1a9)]()[_0x2db7f2(0x19a)](),'height':z[_0x2db7f2(0x195)]()[_0x2db7f2(0x1a9)]()[_0x2db7f2(0x19a)]()}),RetryReasonSchema=z[_0x2db7f2(0x193)](['transient','network','crash']),RetryConfigSchema=z['object']({'count':z['number']()[_0x2db7f2(0x1a9)]()['min'](0x0)[_0x2db7f2(0x1d2)](0xa),'on':z[_0x2db7f2(0x1a8)](RetryReasonSchema)}),FailureBundleConfigSchema=z['object']({'tier1':z[_0x2db7f2(0x1ba)](!![])[_0x2db7f2(0x1cf)](!![]),'tier2':z['boolean'](),'tier3':z[_0x2db7f2(0x1b9)]({'network':z[_0x2db7f2(0x1a2)](),'video':z[_0x2db7f2(0x1a2)]()}),'retention':z['object']({'runs':z['number']()[_0x2db7f2(0x1a9)]()[_0x2db7f2(0x19a)](),'days':z[_0x2db7f2(0x195)]()[_0x2db7f2(0x1a9)]()[_0x2db7f2(0x19a)]()}),'storageDir':z[_0x2db7f2(0x1b5)]()[_0x2db7f2(0x1d5)](0x1)}),DialogPolicySchema=z['enum']([_0x2db7f2(0x197),_0x2db7f2(0x1c6),_0x2db7f2(0x19b)]),LinterRuleIdSchema=z[_0x2db7f2(0x193)](['lint:deep-css',_0x2db7f2(0x1b3),_0x2db7f2(0x1a4),'lint:pause-explicit',_0x2db7f2(0x1af),_0x2db7f2(0x1d1),_0x2db7f2(0x1cc),'lint:mustache-in-dsl',_0x2db7f2(0x1bf),_0x2db7f2(0x1c3),'lint:echo-assert',_0x2db7f2(0x1ab),'lint:lint-ok-missing-reason','lint:flow-returns-value',_0x2db7f2(0x1c7),_0x2db7f2(0x1ad),_0x2db7f2(0x1c4),_0x2db7f2(0x1a7),_0x2db7f2(0x1a5),_0x2db7f2(0x1a6),_0x2db7f2(0x1cd),_0x2db7f2(0x1a3),_0x2db7f2(0x199),_0x2db7f2(0x1ac),_0x2db7f2(0x19d),_0x2db7f2(0x1aa),'validator:var-shape',_0x2db7f2(0x1b6),_0x2db7f2(0x1d0),_0x2db7f2(0x1cb),_0x2db7f2(0x1ae),_0x2db7f2(0x19c),'validator:wrapped-format']),LinterSeveritySchema=z['enum'](['off',_0x2db7f2(0x1d3),_0x2db7f2(0x1b7)]),LinterConfigSchema=z[_0x2db7f2(0x1b9)]({'enabled':z[_0x2db7f2(0x1a2)](),'rules':z['record'](LinterRuleIdSchema,LinterSeveritySchema)}),QueueConfigSchema=z[_0x2db7f2(0x1b9)]({'enabled':z['boolean']()['default'](!![]),'concurrency':z[_0x2db7f2(0x195)]()[_0x2db7f2(0x1a9)]()['positive']()[_0x2db7f2(0x1cf)](0x1)}),ScheduleSchema=z[_0x2db7f2(0x1b9)]({'collection':z['string']()['min'](0x1),'cron':z[_0x2db7f2(0x1b5)]()[_0x2db7f2(0x1d5)](0x1),'env':z['string']()[_0x2db7f2(0x1d5)](0x1)[_0x2db7f2(0x1bc)](),'prepare':z[_0x2db7f2(0x1b5)]()[_0x2db7f2(0x1d5)](0x1)['optional']()}),McpConfigSchema=z['object']({'transport':z['literal'](_0x2db7f2(0x19f))}),SandboxConfigSchema=z['object']({'shellCwd':z['string']()[_0x2db7f2(0x1bc)](),'shellTimeoutMs':z['number']()[_0x2db7f2(0x1a9)]()[_0x2db7f2(0x19a)]()['optional'](),'exportSecrets':z['array'](z[_0x2db7f2(0x1b5)]())[_0x2db7f2(0x1bc)](),'database':z[_0x2db7f2(0x1b5)]()[_0x2db7f2(0x1bc)](),'apiBaseUrl':z['string']()['url']()['optional'](),'uploadDir':z[_0x2db7f2(0x1b5)]()[_0x2db7f2(0x1bc)]()}),WebServerConfigSchema=z[_0x2db7f2(0x1b9)]({'command':z[_0x2db7f2(0x1b5)]()[_0x2db7f2(0x1d5)](0x1),'url':z['string']()[_0x2db7f2(0x1c5)](),'reuseExistingServer':z[_0x2db7f2(0x1a2)]()['default'](!![]),'timeoutMs':z['number']()[_0x2db7f2(0x1a9)]()[_0x2db7f2(0x19a)]()[_0x2db7f2(0x1cf)](0xea60)}),UnotestConfigSchema=z[_0x2db7f2(0x1b9)]({'baseUrl':z[_0x2db7f2(0x1b5)]()[_0x2db7f2(0x1c5)]()[_0x2db7f2(0x1bc)](),'webServer':WebServerConfigSchema[_0x2db7f2(0x1bc)](),'browsers':z[_0x2db7f2(0x1a8)](BrowserSchema)[_0x2db7f2(0x1d5)](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x2db7f2(0x1b5)]()[_0x2db7f2(0x1bc)](),'testDir':z[_0x2db7f2(0x1b5)]()[_0x2db7f2(0x1d5)](0x1),'helpersDir':z[_0x2db7f2(0x1b5)]()[_0x2db7f2(0x1d5)](0x1),'defaultTimeoutMs':z['number']()['int']()[_0x2db7f2(0x19a)](),'defaultNavigationTimeoutMs':z[_0x2db7f2(0x195)]()[_0x2db7f2(0x1a9)]()['positive'](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'queue':QueueConfigSchema,'schedules':z[_0x2db7f2(0x1a8)](ScheduleSchema)[_0x2db7f2(0x1cf)]([]),'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x2db7f2(0x1b1)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':[_0x2db7f2(0x1b8)]},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':'.unotest/failures'},'dialogPolicy':_0x2db7f2(0x197),'testDir':_0x2db7f2(0x1be),'helpersDir':_0x2db7f2(0x194),'defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':'warn','lint:xpath':_0x2db7f2(0x1d3),'lint:obfuscated-class':_0x2db7f2(0x1d3),'lint:pause-explicit':_0x2db7f2(0x1d3),'lint:disambig-by-index':_0x2db7f2(0x1c2),'lint:evaluate-discouraged':_0x2db7f2(0x1d3),'lint:scenario-in-root':_0x2db7f2(0x1b7),'lint:mustache-in-dsl':_0x2db7f2(0x1b7),'lint:goto-concat':_0x2db7f2(0x1d3),'lint:regex-invalid':_0x2db7f2(0x1b7),'lint:echo-assert':_0x2db7f2(0x1d3),'lint:lint-ok-missing-reason':_0x2db7f2(0x1d3),'lint:flow-returns-value':_0x2db7f2(0x1d3),'lint:legacy-layout':_0x2db7f2(0x1d3),'lint:external-variable-undeclared':_0x2db7f2(0x1b7),'lint:one-test-per-file':_0x2db7f2(0x1d3),'validator:unknown-function':_0x2db7f2(0x1b7)}},'mcp':{'transport':_0x2db7f2(0x19f)},'queue':{'enabled':!![],'concurrency':0x1},'schedules':[],'sandbox':{}};function _0x2c2d(_0xb677e8,_0x193936){_0xb677e8=_0xb677e8-0x193;var _0x2e2bd8=_0x2e2b();var _0x2c2d3=_0x2e2bd8[_0xb677e8];if(_0x2c2d['OhSYSc']===undefined){var _0x5a5e57=function(_0x2b810f){var _0x3e6d64='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x338218='',_0x4d0ccc='';for(var _0x49542b=0x0,_0x5b042e,_0x236d25,_0x1e7041=0x0;_0x236d25=_0x2b810f['charAt'](_0x1e7041++);~_0x236d25&&(_0x5b042e=_0x49542b%0x4?_0x5b042e*0x40+_0x236d25:_0x236d25,_0x49542b++%0x4)?_0x338218+=String['fromCharCode'](0xff&_0x5b042e>>(-0x2*_0x49542b&0x6)):0x0){_0x236d25=_0x3e6d64['indexOf'](_0x236d25);}for(var _0x2d3fa8=0x0,_0x1b9c49=_0x338218['length'];_0x2d3fa8<_0x1b9c49;_0x2d3fa8++){_0x4d0ccc+='%'+('00'+_0x338218['charCodeAt'](_0x2d3fa8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4d0ccc);};_0x2c2d['vYywJu']=_0x5a5e57,_0x2c2d['dhktZp']={},_0x2c2d['OhSYSc']=!![];}var _0x4d5565=_0x2e2bd8[0x0],_0x48760c=_0xb677e8+_0x4d5565,_0x452144=_0x2c2d['dhktZp'][_0x48760c];return!_0x452144?(_0x2c2d3=_0x2c2d['vYywJu'](_0x2c2d3),_0x2c2d['dhktZp'][_0x48760c]=_0x2c2d3):_0x2c2d3=_0x452144,_0x2c2d3;}function _0x2e2b(){var _0x54728d=['mta5mJbcBuDsD1a','BgLUDdP4Cgf0Aa','mZu2q0PUAwXv','C3rYAw5N','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlxn0yxrLBwvUDa','zxjYB3i','DhjHBNnPzw50','B2jQzwn0','BgL0zxjHBa','BxnLzgDL','B3b0Aw9UywW','mti2mdy0ngnOu1b0Dq','Dw5VDgvZDc9LmMu','BgLUDdPNB3rVlwnVBMnHDa','Dw5PB24','zMLYzwzVEa','B2zM','BgLUDdPYzwDLEc1PBNzHBgLK','BgLUDdPVBMuTDgvZDc1WzxiTzMLSzq','DxjS','zgLZBwLZCW','BgLUDdPSzwDHy3KTBgf5B3v0','ndC5odi0uK1PvM1A','D2vIA2L0','mty5mZvbv2Txvgy','DMfSAwrHDg9YoNn0CMLUzY1JB25Jyxq','BgLUDdPZy2vUyxjPBY1PBI1YB290','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','oxvvALnvrW','zgvMyxvSDa','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','Bwf4','D2fYBG','nZiXodaXq0XNBxLq','BwLU','zw51Bq','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','BNvTyMvY','y2HYB21LlwjLDge','ywnJzxb0','BNvSBa','DMfSAwrHDg9YoM1LDgeTC2HHCgu','Cg9ZAxrPDMu','BwfUDwfS','DMfSAwrHDg9YoMXPC3qTyxjN','DMfSAwrHDg9YoMzVCI1ZAgfWzq','mZe5ntqXng9mv29oyq','C3rKAw8','mtyZmujiqMXqvq','mta0ntCYotbtDMTAvhe','yM9VBgvHBG','DMfSAwrHDg9YoNn0zxaTC2HHCgu','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','DMfSAwrHDg9YoMfYAxr5','DMfSAwrHDg9YoMfYzY1RAw5K','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','yxjYyxK','Aw50','DMfSAwrHDg9YoMLMlxnOyxbL','BgLUDdPHCgKTy2fSBc1MAwXLlwjVzhK','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','BgLUDdPLEhrLCM5HBc12yxjPywjSzs11BMrLy2XHCMvK','DMfSAwrHDg9YoNnLBwfUDgLJlwXVC3m','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','y2HYB21L','y2HYB21PDw0'];_0x2e2b=function(){return _0x54728d;};return _0x2e2b();}export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,QueueConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,ScheduleSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};
@@ -1 +1 @@
1
- function _0x270b(_0xcec87e,_0x436d56){_0xcec87e=_0xcec87e-0x18f;const _0x182f06=_0x182f();let _0x270bfa=_0x182f06[_0xcec87e];if(_0x270b['QHqkUi']===undefined){var _0xeae874=function(_0x278cbe){const _0x590767='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3812e5='',_0x444a60='';for(let _0xfe7289=0x0,_0x1daf50,_0x4e1ade,_0x1f8ccb=0x0;_0x4e1ade=_0x278cbe['charAt'](_0x1f8ccb++);~_0x4e1ade&&(_0x1daf50=_0xfe7289%0x4?_0x1daf50*0x40+_0x4e1ade:_0x4e1ade,_0xfe7289++%0x4)?_0x3812e5+=String['fromCharCode'](0xff&_0x1daf50>>(-0x2*_0xfe7289&0x6)):0x0){_0x4e1ade=_0x590767['indexOf'](_0x4e1ade);}for(let _0x539e05=0x0,_0x20b1ef=_0x3812e5['length'];_0x539e05<_0x20b1ef;_0x539e05++){_0x444a60+='%'+('00'+_0x3812e5['charCodeAt'](_0x539e05)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x444a60);};_0x270b['QOmeZq']=_0xeae874,_0x270b['OcTQhQ']={},_0x270b['QHqkUi']=!![];}const _0x55aff7=_0x182f06[0x0],_0x2f9ef9=_0xcec87e+_0x55aff7,_0x41686f=_0x270b['OcTQhQ'][_0x2f9ef9];return!_0x41686f?(_0x270bfa=_0x270b['QOmeZq'](_0x270bfa),_0x270b['OcTQhQ'][_0x2f9ef9]=_0x270bfa):_0x270bfa=_0x41686f,_0x270bfa;}const _0x2db01d=_0x270b;(function(_0x51b598,_0x5bd198){const _0x5b4d6a={_0x2a3eab:0x1a7,_0x3f395c:0x1f2,_0x4ed4bb:0x1be,_0x1af903:0x190,_0xf09f55:0x1a2},_0x32f4d2=_0x270b,_0xc9d200=_0x51b598();while(!![]){try{const _0x3f9628=-parseInt(_0x32f4d2(0x20c))/0x1*(-parseInt(_0x32f4d2(_0x5b4d6a._0x2a3eab))/0x2)+-parseInt(_0x32f4d2(0x1ce))/0x3*(-parseInt(_0x32f4d2(0x1d2))/0x4)+-parseInt(_0x32f4d2(0x1e0))/0x5+-parseInt(_0x32f4d2(_0x5b4d6a._0x3f395c))/0x6*(-parseInt(_0x32f4d2(_0x5b4d6a._0x4ed4bb))/0x7)+parseInt(_0x32f4d2(0x1ec))/0x8+parseInt(_0x32f4d2(_0x5b4d6a._0x1af903))/0x9+-parseInt(_0x32f4d2(_0x5b4d6a._0xf09f55))/0xa;if(_0x3f9628===_0x5bd198)break;else _0xc9d200['push'](_0xc9d200['shift']());}catch(_0x355051){_0xc9d200['push'](_0xc9d200['shift']());}}}(_0x182f,0x3e8a9));var __defProp=Object[_0x2db01d(0x195)],__name=(_0x3812e5,_0x444a60)=>__defProp(_0x3812e5,_0x2db01d(0x20b),{'value':_0x444a60,'configurable':!![]});function _0x182f(){const _0x38faf6=['zMLSBa','D2fPDezVCK5HDMLNyxrPB24','zgvSzxrL','z2v0tg9JywXtDg9YywDL','Dgv4DenVBNrLBNrcEurLzMf1Bhq','zxzHBhvHDgvszxn1Bhq','y2XPy2S','mZm2ntGWoevoCwHwza','zhjPDMvY','z29cywnR','Bwf5yMvuAhjVDW','y29VA2LLu3rHDgu','C2vSzwn0t3b0Aw9U','mtj4yMfJCNa','Aw5WDxrwywX1zq','B25bzNrLCKnSAwnR','Aw5PDgLHBfvYBa','Aw5UzxjuzxH0qNLezwzHDwX0','z29gB3j3yxjK','iJ48l2rPDJ4','C2v0qwn0AxzLugfNzq','BMv3q29UDgv4Da','DgL0Bgu','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','ywn0AxzLswr4','yxr0CMLIDxrLC0j5rgvMyxvSDa','ChjLC3m','Bg9JywXtDg9YywDL','lNbHz2u','yMvOyxzPB3i','y2XPCgjVyxjKugfZDgu','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','BgvUz3rO','D2fPDezVCLrLEhq','rMfRzvbHz2u','zw1PDezHA2vqB3b1Ca','C2nYB2XSsw50B1zPzxC','BMfTzq','odK5odzfCvL6t1m','yxr0ywnOrxHPC3rPBMC','z290BW','Bgf1BMnOzwq','mJCXntKZmgjhzNr2qW','Aw5WDxrwywX1zuj5rgvMyxvSDa','y29VA2LLCW','z2v0qxr0CMLIDxrL','C2nYzwvUC2HVDa','zgvMAw5LuhjVCgvYDhK','Bg9JywXtDg9YywDLu3rHDgu','Cg9WDxbpBKnSAwnR','ChvZAa','y29UBMvJDfnOyxjLza','AxnwAxnPyMXL','zMfRzs1WBMC','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','y29UC29SzuvUDhjPzxm','BMv3ugfNzuXPC3rLBMvYCW','y3jLyxrLuMvJB3jKzxi','zxzHBhvHDgvpBKXVy2f0B3i','CgfNzuXPC3q','mtu0ndiXmZbms2v0rMS','C3vIC2nYAwjL','C2nVCgu','B3v0zxjiDg1SqNLszwy','lNbHz2uW','ofj4AKfWDG','zNjHBwvtDgfJAW','zMfRzsb0AxrSzq','z2v0q29VA2LL','zxjYB3jpBK5LEhrby3rPB24','pgrPDJ48l2rPDJ4','DhLWzq','C2nYzwvUC2HVDej5DgvZ','D2fPDezVCG','D2fPDezVCKXVywrtDgf0zq','y2XVC2u','Bwv0Ag9K','zg91yMXLq2XPy2S','tg9JyxrVCKvYCM9Y','y2HLy2TLzfn0yxrLqNLezwzHDwX0','Aw5ZCgvJDevSzw1LBNq','Dgv4DenVBNrLBNq','CMvJB3jK','y29UDgv4Dhm','zw50zxjgCMfTzq','zNvUy3rPB24','zxzHBhvHDgu','B3v0zxjive1m','mtCWmdi5m0f1v3fyqW','zhjHz0fUzerYB3a','zw50zxjgCMfTzsbJywXSzwqGD2L0AcbLBxb0EsbSB2nHDg9Y','y3vYCMvUDfvYBa','D3nfBMrWB2LUDa','Bgf1BMnO','rMfRzunVBNrLEhq','CgfNzxm','A2LUza','C3rLChm','y2fSBhngB3i','rMfRzvDLyKrYAxzLCG','C2v0q29VA2LL','DxbSB2fKrMLSzq','y2XVC2vgywTLugfNzq','y3r4','mtq1ndG3muPsqNrgDG','Dw5JAgvJAW','y291BNq','BMv0D29YA0vUDhjPzxm','nermEKXxAW','AxneAxnHyMXLza','CMvJB3jKzxi','B25ozxDqywDL','Aw5UzxjuzxH0','CMvSB2fK','Ag92zxi','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','CMvM','y2HLy2S','AxnwAxnPyMXLqNLezwzHDwX0','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','ywjVDxq6yMXHBMS','mti2nda2nwX2t0H2vG','D2fPDezVCLvYBa','ywn0AxzLugfNzq','y2fSBhm','zxHPDezYyw1L'];_0x182f=function(){return _0x38faf6;};return _0x182f();}function subscribe(_0xfe7289,_0x1daf50){const _0x5e8af3={_0x151b40:0x1e7};return _0xfe7289['add'](_0x1daf50),()=>{const _0x1ad85d=_0x270b;_0xfe7289[_0x1ad85d(_0x5e8af3._0x151b40)](_0x1daf50);};}__name(subscribe,_0x2db01d(0x1a3));import{UnotestError}from'@unotest/core';var DriverError=class extends UnotestError{static{__name(this,'DriverError');}},LocatorError=class extends UnotestError{static{__name(this,_0x2db01d(0x1b4));}};function createRecorder(){const _0x40a333={_0x5ca034:0x1e3},_0x204f7f=_0x2db01d,_0x4e1ade=[];let _0x1f8ccb=0x0;return{'push':__name(_0x539e05=>_0x4e1ade[_0x204f7f(0x198)]({..._0x539e05,'seq':_0x1f8ccb++}),'push'),'calls':__name(()=>_0x4e1ade,_0x204f7f(_0x40a333._0x5ca034))};}__name(createRecorder,_0x2db01d(0x19f));var FakePage=class{constructor(_0x20b1ef,_0x5b30f0,_0x22b6a3,_0x49dac7){const _0x1769af=_0x2db01d;this[_0x1769af(0x1d4)]=_0x20b1ef,this[_0x1769af(0x203)]=_0x5b30f0,this[_0x1769af(0x1a4)]=_0x22b6a3,this['currentUrl']=_0x49dac7;}[_0x2db01d(0x1d4)];['behavior'];[_0x2db01d(0x1a4)];static{__name(this,_0x2db01d(0x208));}[_0x2db01d(0x1c1)];[_0x2db01d(0x1f4)];[_0x2db01d(0x1b8)](_0x274f52,_0x3fcaa3){const _0x57dcb2={_0x3c0f5c:0x1d4,_0x3b8cb1:0x198},_0x3eea20=_0x2db01d;this[_0x3eea20(_0x57dcb2._0x3c0f5c)][_0x3eea20(_0x57dcb2._0x3b8cb1)]({'scope':this[_0x3eea20(0x1a4)],'method':_0x274f52,'args':_0x3fcaa3});}[_0x2db01d(0x1ef)](){const _0x25be34={_0x3fd481:0x1ab},_0x3773d4=_0x2db01d;if(this[_0x3773d4(0x203)][_0x3773d4(_0x25be34._0x3fd481)]){const _0x3547c5=this[_0x3773d4(0x203)][_0x3773d4(_0x25be34._0x3fd481)];this['behavior']['errorOnNextAction']=void 0x0;throw _0x3547c5;}}['url'](){const _0x3971c9=_0x2db01d;return this[_0x3971c9(0x1c1)];}async['title'](){const _0x45b82f={_0x41df3c:0x1fb,_0x25672b:0x1a9},_0x4162b6=_0x2db01d;return this[_0x4162b6(0x1b8)](_0x4162b6(_0x45b82f._0x41df3c),[]),_0x4162b6(_0x45b82f._0x25672b);}async[_0x2db01d(0x1eb)](_0x4d7d1e,_0x3af385){const _0x5ed5a5={_0x4cb928:0x1b8,_0x334f82:0x1eb},_0x1c67e6=_0x2db01d;this[_0x1c67e6(_0x5ed5a5._0x4cb928)](_0x1c67e6(_0x5ed5a5._0x334f82),[_0x4d7d1e,_0x3af385]),this[_0x1c67e6(0x1ef)](),this[_0x1c67e6(0x1f4)]?.();}async[_0x2db01d(0x1b3)](_0x193341,_0x3a51d6){const _0x313edd={_0x9544ba:0x1b3},_0x1583d4=_0x2db01d;this[_0x1583d4(0x1b8)](_0x1583d4(_0x313edd._0x9544ba),[_0x193341,_0x3a51d6]),this[_0x1583d4(0x1ef)]();}async[_0x2db01d(0x1e5)](_0x3e5b52,_0x510674,_0x2ac214){const _0x8bdbd6={_0x52ddaa:0x1b8,_0x41bfea:0x1ef},_0x32bff7=_0x2db01d;this[_0x32bff7(_0x8bdbd6._0x52ddaa)]('fill',[_0x3e5b52,_0x510674,_0x2ac214]),this[_0x32bff7(_0x8bdbd6._0x41bfea)]();}async[_0x2db01d(0x200)](_0x352c29,_0x51c5aa,_0x4eab7b){const _0xdaa25e=_0x2db01d;this['record'](_0xdaa25e(0x200),[_0x352c29,_0x51c5aa,_0x4eab7b]),this[_0xdaa25e(0x1ef)]();}async[_0x2db01d(0x1dc)](_0x59225b,_0x5624f6){const _0x5321b4=_0x2db01d;this[_0x5321b4(0x1b8)](_0x5321b4(0x1dc),[_0x59225b,_0x5624f6]),this[_0x5321b4(0x1ef)]();}async[_0x2db01d(0x1cf)](_0x4a6545,_0x52526a){const _0x3d425a={_0x5e87ae:0x1cf},_0x4b5182=_0x2db01d;this['record'](_0x4b5182(_0x3d425a._0x5e87ae),[_0x4a6545,_0x52526a]),this[_0x4b5182(0x1ef)]();}async[_0x2db01d(0x1f1)](_0xb1f341,_0x4692c5,_0x3ddd2e){const _0x185220={_0x3696b9:0x1ef},_0x2d006f=_0x2db01d;this[_0x2d006f(0x1b8)](_0x2d006f(0x1f1),[_0xb1f341,_0x4692c5,_0x3ddd2e]),this[_0x2d006f(_0x185220._0x3696b9)]();}async[_0x2db01d(0x1d8)](_0x2dc21a,_0x4c07db){const _0x20eabf={_0x27216d:0x1ef},_0x9f50e7=_0x2db01d;this[_0x9f50e7(0x1b8)]('hover',[_0x2dc21a,_0x4c07db]),this[_0x9f50e7(_0x20eabf._0x27216d)]();}async[_0x2db01d(0x20a)](_0x5be87e){const _0x1661ae=_0x2db01d;this[_0x1661ae(0x1b8)]('scrollIntoView',[_0x5be87e]),this[_0x1661ae(0x1ef)]();}async[_0x2db01d(0x1bf)](_0x2817da,_0x330a27,_0x1e2531){const _0x317a9d=_0x2db01d;this['record'](_0x317a9d(0x1bf),[_0x2817da,_0x330a27,_0x1e2531]),this[_0x317a9d(0x1ef)]();}async[_0x2db01d(0x1cb)](_0x35fb1b,_0x166d66){const _0x44730c={_0xa7ea83:0x1b8,_0xbc97a8:0x1cb},_0xe54936=_0x2db01d;this[_0xe54936(_0x44730c._0xa7ea83)](_0xe54936(_0x44730c._0xbc97a8),[_0x35fb1b,_0x166d66]),this[_0xe54936(0x1ef)]();}async['clipboardPaste'](_0x2e5f90,_0x1b0959){const _0x5edaee=_0x2db01d;this[_0x5edaee(0x1b8)](_0x5edaee(0x204),[_0x2e5f90,_0x1b0959]),this[_0x5edaee(0x1ef)]();}async[_0x2db01d(0x1d0)](_0x4a7d63){const _0x1ab594=_0x2db01d;return this[_0x1ab594(0x1b8)](_0x1ab594(0x1d0),[_0x4a7d63]),this['behavior']['countByDefault']??0x1;}async[_0x2db01d(0x1b7)](_0x11de74){const _0x5d2e6e={_0x84d4e0:0x1e9},_0x38ef61=_0x2db01d;return this[_0x38ef61(0x1b8)]('textContent',[_0x11de74]),this[_0x38ef61(0x203)][_0x38ef61(_0x5d2e6e._0x84d4e0)]??'';}async[_0x2db01d(0x1d6)](_0x3b385a){const _0x35604c={_0xc0fda5:0x1b8,_0x4303d4:0x1d6,_0x54a0f7:0x1f6,_0x4713ac:0x1e9},_0x97e297=_0x2db01d;return this[_0x97e297(_0x35604c._0xc0fda5)](_0x97e297(_0x35604c._0x4303d4),[_0x3b385a]),this['behavior'][_0x97e297(_0x35604c._0x54a0f7)]??this[_0x97e297(0x203)][_0x97e297(_0x35604c._0x4713ac)]??'';}async['inputValue'](_0x2b203b){const _0x2a90de={_0x4058ec:0x1b8},_0x464ea0=_0x2db01d;return this[_0x464ea0(_0x2a90de._0x4058ec)](_0x464ea0(0x1f3),[_0x2b203b]),this[_0x464ea0(0x203)][_0x464ea0(0x191)]??'';}async['checkedState'](_0x6912fc){const _0x46a184={_0x375c35:0x1b8,_0x2d9018:0x203},_0x46c71b=_0x2db01d;return this[_0x46c71b(_0x46a184._0x375c35)]('checkedState',[_0x6912fc]),this[_0x46c71b(_0x46a184._0x2d9018)][_0x46c71b(0x1b5)]??null;}async[_0x2db01d(0x19a)](_0x497344){const _0x2fb6d4={_0x21b55e:0x1b8,_0x1f20b4:0x19a,_0x406ecb:0x1dd},_0x7ffab2=_0x2db01d;return this[_0x7ffab2(_0x2fb6d4._0x21b55e)](_0x7ffab2(_0x2fb6d4._0x1f20b4),[_0x497344]),this[_0x7ffab2(0x203)][_0x7ffab2(_0x2fb6d4._0x406ecb)]??!![];}async[_0x2db01d(0x1d3)](_0x33a33d){const _0x527b6b=_0x2db01d;return this[_0x527b6b(0x1b8)](_0x527b6b(0x1d3),[_0x33a33d]),this[_0x527b6b(0x203)]['isDisabledByDefault']??![];}async[_0x2db01d(0x193)](_0x2aefb5,_0x2a0714){const _0x26b33c={_0x50cbcd:0x1b8,_0x3218d7:0x193},_0x2fddf8=_0x2db01d;return this[_0x2fddf8(_0x26b33c._0x50cbcd)](_0x2fddf8(_0x26b33c._0x3218d7),[_0x2aefb5,_0x2a0714]),this['behavior'][_0x2fddf8(0x1ff)]?.[_0x2a0714]??null;}async['waitFor'](_0x156a1c,_0x51be78){const _0xe59a87=_0x2db01d;this[_0xe59a87(0x1b8)](_0xe59a87(0x1af),[_0x156a1c,_0x51be78]);}async[_0x2db01d(0x1e1)](_0x3a3ac8,_0x93fd3d){const _0x378aee={_0x5ce11a:0x1e1},_0x589eb2=_0x2db01d;this[_0x589eb2(0x1b8)](_0x589eb2(_0x378aee._0x5ce11a),[_0x3a3ac8,_0x93fd3d]);}async[_0x2db01d(0x207)](_0x5404fd,_0x53416e){const _0x5aadda={_0x2cb6b1:0x1b8},_0x317af1=_0x2db01d;this[_0x317af1(_0x5aadda._0x2cb6b1)](_0x317af1(0x207),[_0x5404fd,_0x53416e]);}async[_0x2db01d(0x1e6)](_0x456366){const _0x515e1c={_0x2f7ad7:0x1e6},_0x2ecfdd=_0x2db01d;this['record'](_0x2ecfdd(_0x515e1c._0x2f7ad7),[_0x456366]);}async[_0x2db01d(0x1b0)](_0x9bb2c4,_0x53ecbb){const _0x1eb10a=_0x2db01d;this[_0x1eb10a(0x1b8)](_0x1eb10a(0x1b0),[_0x9bb2c4,_0x53ecbb]);}async[_0x2db01d(0x20e)](_0x521280,_0x183824){const _0x5f2db2=_0x2db01d;this[_0x5f2db2(0x1b8)](_0x5f2db2(0x20e),[_0x521280,_0x183824]),this[_0x5f2db2(0x1c1)]=_0x521280;}async[_0x2db01d(0x1d7)](_0x3ad58f){const _0x34b0da={_0x37fc43:0x1d7},_0x223647=_0x2db01d;this['record'](_0x223647(_0x34b0da._0x37fc43),[_0x3ad58f]);}async[_0x2db01d(0x1ee)](_0x384fe4){const _0x251b5c=_0x2db01d;this[_0x251b5c(0x1b8)](_0x251b5c(0x1ee),[_0x384fe4]);}async[_0x2db01d(0x1f7)](_0x48af38){const _0x4fc490=_0x2db01d;this['record'](_0x4fc490(0x1f7),[_0x48af38]);}async[_0x2db01d(0x1bc)](_0x3ad62b){const _0x58c11f=_0x2db01d;return this[_0x58c11f(0x1b8)](_0x58c11f(0x1bc),[_0x3ad62b]),this['behavior'][_0x58c11f(0x1ea)];}async[_0x2db01d(0x1a0)](_0x1aae5e,_0x26b3e6){const _0x53a67a=_0x2db01d;return this[_0x53a67a(0x1b8)](_0x53a67a(0x1a0),[_0x1aae5e,_0x26b3e6]),void 0x0;}async['inspectElement'](_0x50f023){const _0x4c212e={_0x5c787f:0x206},_0x372ed8=_0x2db01d;this['record'](_0x372ed8(0x1b6),[_0x50f023]);if(_0x50f023['steps'][_0x372ed8(_0x4c212e._0x5c787f)]!==0x1||_0x50f023['steps'][0x0]['kind']!=='ref')return null;const _0x1c28ab=_0x50f023['steps'][0x0][_0x372ed8(0x1db)],_0xc225f8=this[_0x372ed8(0x203)]['elementHintByRef']?.[_0x1c28ab];return _0xc225f8??null;}async[_0x2db01d(0x194)](_0x74b236){const _0x2ef6d5={_0x2b96a4:0x1ae},_0x2bfad4=_0x2db01d;return this['record']('screenshot',[_0x74b236]),this[_0x2bfad4(_0x2ef6d5._0x2b96a4)](_0x74b236?.['type']);}async['screenshotElement'](_0x1af0f7,_0x5bc980){const _0x372bd6={_0x51faff:0x1b8},_0x19780b=_0x2db01d;return this[_0x19780b(_0x372bd6._0x51faff)]('screenshotElement',[_0x1af0f7,_0x5bc980]),this[_0x19780b(0x1ae)](_0x5bc980?.[_0x19780b(0x1ad)]);}[_0x2db01d(0x1ae)](_0x385419){const _0x5be542={_0x14625b:0x203,_0x156dbd:0x1ae},_0x521f6d=_0x2db01d,_0x4fea5b=this[_0x521f6d(_0x5be542._0x14625b)][_0x521f6d(_0x5be542._0x156dbd)];if(_0x4fea5b===void 0x0)return Buffer['from'](_0x521f6d(0x19b));return typeof _0x4fea5b===_0x521f6d(0x1bb)?_0x4fea5b(_0x385419):_0x4fea5b;}async[_0x2db01d(0x1bd)](_0x382a60){const _0x437560={_0x408683:0x1c7,_0x11886e:0x1db,_0x4cc33c:0x1a5,_0x4aa25e:0x1fd,_0x1caab2:0x1f8},_0x5bb1cf=_0x2db01d;this[_0x5bb1cf(0x1b8)](_0x5bb1cf(0x1bd),[_0x382a60]);if(_0x382a60[_0x5bb1cf(0x1c7)][_0x5bb1cf(0x206)]===0x1&&_0x382a60[_0x5bb1cf(_0x437560._0x408683)][0x0][_0x5bb1cf(0x1c6)]==='ref'){const _0x2d7ed8=_0x382a60[_0x5bb1cf(0x1c7)][0x0][_0x5bb1cf(_0x437560._0x11886e)];return this['behavior'][_0x5bb1cf(_0x437560._0x4cc33c)]?.[_0x2d7ed8]??_0x5bb1cf(_0x437560._0x4aa25e)+_0x2d7ed8+_0x5bb1cf(_0x437560._0x1caab2);}return _0x5bb1cf(0x1ac);}},FakeContext=class{constructor(_0x3dad51,_0x540831,_0x18ed14){const _0xd396b7={_0x1e7fe5:0x203,_0x16f54f:0x1a4,_0x3f41bf:0x1f5,_0x12a152:0x1a1,_0x5d6c73:0x201,_0x109505:0x192},_0x128680=_0x2db01d;this[_0x128680(0x1d4)]=_0x3dad51,this[_0x128680(_0xd396b7._0x1e7fe5)]=_0x540831,this[_0x128680(_0xd396b7._0x16f54f)]=_0x18ed14;const _0x26b63d=new FakePage(_0x3dad51,_0x540831,_0x18ed14+_0x128680(0x1a6),_0x540831[_0x128680(_0xd396b7._0x3f41bf)]??_0x128680(0x1df));_0x540831[_0x128680(0x197)]&&(_0x26b63d[_0x128680(0x1f4)]=()=>{const _0x81774a=_0x128680;this[_0x81774a(0x209)](_0x540831['popupOnClick']);}),this[_0x128680(_0xd396b7._0x12a152)]=[_0x26b63d],this['localStorageState']={..._0x540831[_0x128680(_0xd396b7._0x5d6c73)]??{}},this[_0x128680(0x1f0)]={..._0x540831[_0x128680(_0xd396b7._0x109505)]??{}};}[_0x2db01d(0x1d4)];[_0x2db01d(0x203)];[_0x2db01d(0x1a4)];static{__name(this,_0x2db01d(0x1c4));}[_0x2db01d(0x1a1)];[_0x2db01d(0x1fe)]=0x0;[_0x2db01d(0x1a8)]=[];[_0x2db01d(0x196)];[_0x2db01d(0x1f0)];[_0x2db01d(0x19e)]=new Set();[_0x2db01d(0x1b8)](_0x594729,_0x144e4c){const _0x42845b={_0x2ea408:0x198},_0x52fb0e=_0x2db01d;this[_0x52fb0e(0x1d4)][_0x52fb0e(_0x42845b._0x2ea408)]({'scope':this['scope'],'method':_0x594729,'args':_0x144e4c});}[_0x2db01d(0x1c5)](){const _0x32f325=_0x2db01d;return this[_0x32f325(0x1a1)];}[_0x2db01d(0x1e2)](){const _0x49fa03=_0x2db01d,_0x532288=this['pageList'][this['activeIdx']];if(!_0x532288)throw new DriverError(_0x49fa03(0x1d9),{'activeIdx':this['activeIdx']});return _0x532288;}[_0x2db01d(0x19d)](){const _0x262d14={_0x4ca2f6:0x19d},_0x7e679=_0x2db01d;return this[_0x7e679(0x203)][_0x7e679(_0x262d14._0x4ca2f6)]??[];}['networkEntries'](){const _0x6f2251=_0x2db01d;return this['behavior'][_0x6f2251(0x1d1)]??[];}async['setActivePage'](_0x3638be){const _0x3dc3c1={_0x43f520:0x1f9,_0x25b327:0x1a1,_0x47132e:0x206,_0x16b200:0x1a8},_0x51a75f=_0x2db01d;this['record'](_0x51a75f(_0x3dc3c1._0x43f520),[_0x3638be]);if(_0x3638be<0x0||_0x3638be>=this[_0x51a75f(_0x3dc3c1._0x25b327)]['length'])throw new DriverError(_0x51a75f(0x1da),{'index':_0x3638be,'available':this[_0x51a75f(_0x3dc3c1._0x25b327)][_0x51a75f(_0x3dc3c1._0x47132e)]});this['activeIdx']=_0x3638be,this[_0x51a75f(_0x3dc3c1._0x16b200)][_0x51a75f(0x206)]=0x0;}[_0x2db01d(0x1d5)](_0x36c1e1){const _0x83d9fc=_0x2db01d;return subscribe(this[_0x83d9fc(0x19e)],_0x36c1e1);}['emitFakePopup'](_0xdb665d){const _0x4ea23d={_0x257986:0x1a4,_0x3b1d7f:0x1d4,_0x3d6da0:0x1a1,_0x3f86f3:0x206,_0x18bc00:0x19e},_0x4c621b=_0x2db01d,_0x59a463=this[_0x4c621b(_0x4ea23d._0x257986)]+_0x4c621b(0x202)+this['pageList']['length'],_0x2a3ba8=new FakePage(this[_0x4c621b(_0x4ea23d._0x3b1d7f)],this['behavior'],_0x59a463,_0xdb665d);this[_0x4c621b(_0x4ea23d._0x3d6da0)][_0x4c621b(0x198)](_0x2a3ba8);const _0x82588e=this[_0x4c621b(_0x4ea23d._0x3d6da0)][_0x4c621b(_0x4ea23d._0x3f86f3)]-0x1;for(const _0x305af9 of this[_0x4c621b(_0x4ea23d._0x18bc00)]){try{_0x305af9({'index':_0x82588e,'url':_0xdb665d});}catch{}}return _0x82588e;}[_0x2db01d(0x1cc)](_0x361246){const _0x41d0b8={_0x126b41:0x206},_0x33cebc=_0x2db01d;if(_0x361246<0x0||_0x361246>=this['pageList'][_0x33cebc(_0x41d0b8._0x126b41)])throw new DriverError(_0x33cebc(0x1da),{'index':_0x361246,'available':this[_0x33cebc(0x1a1)][_0x33cebc(0x206)]});this['pageList']['splice'](_0x361246,0x1);}async[_0x2db01d(0x1ba)](_0x43015a){const _0xf71510={_0x547437:0x1ba,_0x12d157:0x1c0,_0x49b1df:0x1a8,_0x1efbb2:0x198},_0x3edf8e=_0x2db01d;this['record'](_0x3edf8e(_0xf71510._0x547437),[_0x43015a]);if(!_0x43015a['steps'][_0x3edf8e(0x206)])throw new LocatorError(_0x3edf8e(_0xf71510._0x12d157),{'locator':_0x43015a});this[_0x3edf8e(_0xf71510._0x49b1df)][_0x3edf8e(_0xf71510._0x1efbb2)](_0x43015a);}async['exitFrame'](){const _0x5d4b6e={_0x5b58c0:0x1e4,_0x1241f8:0x1a8,_0x3f8e0d:0x1fc},_0x290273=_0x2db01d;this[_0x290273(0x1b8)](_0x290273(_0x5d4b6e._0x5b58c0),[]);if(this[_0x290273(_0x5d4b6e._0x1241f8)][_0x290273(0x206)]===0x0)throw new DriverError(_0x290273(_0x5d4b6e._0x3f8e0d),{});this[_0x290273(0x1a8)]['pop']();}async['setLocalStorage'](_0x49b1ca,_0x6edc){const _0x5ccc6d=_0x2db01d;this[_0x5ccc6d(0x1b8)]('setLocalStorage',[_0x49b1ca,_0x6edc]),this[_0x5ccc6d(0x196)][_0x49b1ca]=_0x6edc;}async[_0x2db01d(0x1e8)](_0x129a84){const _0xf6f082={_0x564d7e:0x1e8},_0x4f743d=_0x2db01d;return this[_0x4f743d(0x1b8)](_0x4f743d(_0xf6f082._0x564d7e),[_0x129a84]),this['localStorageState'][_0x129a84]??null;}async['setCookie'](_0x177437,_0x375ce6,_0x3db6db){const _0x5f3d82={_0x1ea3f9:0x1f0},_0x1386b7=_0x2db01d;this['record'](_0x1386b7(0x1ca),[_0x177437,_0x375ce6,_0x3db6db]),this[_0x1386b7(_0x5f3d82._0x1ea3f9)][_0x177437]=_0x375ce6;}async[_0x2db01d(0x1aa)](_0xe89973){const _0x4af7ec={_0x399a2c:0x1aa,_0x7c05f5:0x1f0},_0x45e2b7=_0x2db01d;return this['record'](_0x45e2b7(_0x4af7ec._0x399a2c),[_0xe89973]),this[_0x45e2b7(_0x4af7ec._0x7c05f5)][_0xe89973]??null;}async['saveStorageState'](_0x93f1f6){const _0x415723=_0x2db01d;this[_0x415723(0x1b8)]('saveStorageState',[_0x93f1f6]);}async[_0x2db01d(0x1bc)](_0x198e0c){const _0x536623=_0x2db01d;return this[_0x536623(0x1b8)]('evaluate',[_0x198e0c]),void 0x0;}async[_0x2db01d(0x1b1)](){const _0x4f8130=_0x2db01d;this[_0x4f8130(0x1b8)]('close',[]);}['frameDepth'](){const _0x4abe32={_0x2c2b5c:0x1a8},_0x429321=_0x2db01d;return this[_0x429321(_0x4abe32._0x2c2b5c)]['length'];}},FakeWebDriver=class{constructor(_0x3af242={}){const _0x36606e=_0x2db01d;this[_0x36606e(0x203)]=_0x3af242,this['recorder']=createRecorder();}[_0x2db01d(0x203)];static{__name(this,_0x2db01d(0x1c9));}[_0x2db01d(0x18f)]=![];[_0x2db01d(0x1d4)];[_0x2db01d(0x1b9)]=[];async[_0x2db01d(0x1c3)](_0x341d21){const _0x40e533={_0xd5500b:0x1d4,_0x5517c1:0x198},_0xcbbbed=_0x2db01d;this[_0xcbbbed(_0x40e533._0xd5500b)][_0xcbbbed(_0x40e533._0x5517c1)]({'scope':_0xcbbbed(0x1ed),'method':_0xcbbbed(0x1c3),'args':[_0x341d21]}),this['launched']=!![];}async[_0x2db01d(0x1fa)](_0x5d6d2c){const _0x1858d9={_0x30bdad:0x1d4,_0x43ef23:0x198,_0x363e78:0x1fa,_0xb7abe0:0x18f,_0x3d0fae:0x198},_0x5535ab=_0x2db01d;this[_0x5535ab(_0x1858d9._0x30bdad)][_0x5535ab(_0x1858d9._0x43ef23)]({'scope':_0x5535ab(0x1ed),'method':_0x5535ab(_0x1858d9._0x363e78),'args':[_0x5d6d2c]});if(!this[_0x5535ab(_0x1858d9._0xb7abe0)])throw new DriverError(_0x5535ab(0x1de),{});const _0x1a0646=new FakeContext(this[_0x5535ab(0x1d4)],this[_0x5535ab(0x203)],_0x5535ab(0x1cd)+this['contexts']['length']);return this[_0x5535ab(0x1b9)][_0x5535ab(_0x1858d9._0x3d0fae)](_0x1a0646),_0x1a0646;}async[_0x2db01d(0x1b1)](){const _0x57c22d={_0x117b34:0x198},_0x3bc9f1=_0x2db01d;this['recorder'][_0x3bc9f1(_0x57c22d._0x117b34)]({'scope':'driver','method':_0x3bc9f1(0x1b1),'args':[]}),this['launched']=![];}[_0x2db01d(0x1c2)](){return void 0x0;}async[_0x2db01d(0x199)](){const _0x2f1e3f=_0x2db01d;throw new DriverError(_0x2f1e3f(0x19c),{});}[_0x2db01d(0x20d)](_0x434b49){const _0x155c8d=_0x2db01d;throw new DriverError(_0x155c8d(0x205),{});}[_0x2db01d(0x1e3)](){const _0x1746c7={_0x47ff54:0x1d4},_0x1ec0f7=_0x2db01d;return this[_0x1ec0f7(_0x1746c7._0x47ff54)][_0x1ec0f7(0x1e3)]();}[_0x2db01d(0x1c8)](_0x44e421){const _0x452a55=_0x2db01d;return this[_0x452a55(0x1d4)]['calls']()['filter'](_0x2bc8a4=>_0x2bc8a4[_0x452a55(0x1b2)]===_0x44e421);}};export{FakeWebDriver};
1
+ const _0xfb8fa0=_0x1faf;(function(_0x45eeea,_0x529d87){const _0x228935={_0x3816fd:0x1e8,_0x570773:0x19d,_0x4f0292:0x1de,_0xe5933c:0x1d6},_0x262f6a=_0x1faf,_0x296ac1=_0x45eeea();while(!![]){try{const _0x283fc7=-parseInt(_0x262f6a(_0x228935._0x3816fd))/0x1+parseInt(_0x262f6a(_0x228935._0x570773))/0x2*(-parseInt(_0x262f6a(0x18d))/0x3)+parseInt(_0x262f6a(0x1d1))/0x4+parseInt(_0x262f6a(_0x228935._0x4f0292))/0x5+parseInt(_0x262f6a(0x1ac))/0x6+parseInt(_0x262f6a(0x18c))/0x7+parseInt(_0x262f6a(_0x228935._0xe5933c))/0x8;if(_0x283fc7===_0x529d87)break;else _0x296ac1['push'](_0x296ac1['shift']());}catch(_0x3abc30){_0x296ac1['push'](_0x296ac1['shift']());}}}(_0xfc9c,0x8e6b2));var __defProp=Object[_0xfb8fa0(0x196)],__name=(_0x2f302e,_0x1b0d3f)=>__defProp(_0x2f302e,_0xfb8fa0(0x1e6),{'value':_0x1b0d3f,'configurable':!![]});function _0x1faf(_0xfedf01,_0x3b8197){_0xfedf01=_0xfedf01-0x189;const _0xfc9c0b=_0xfc9c();let _0x1faff8=_0xfc9c0b[_0xfedf01];if(_0x1faf['PhSoyk']===undefined){var _0x5375e4=function(_0x22b1a1){const _0x5c4cb6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f302e='',_0x1b0d3f='';for(let _0x2a48e8=0x0,_0x50076e,_0x5e80b3,_0x3e4c73=0x0;_0x5e80b3=_0x22b1a1['charAt'](_0x3e4c73++);~_0x5e80b3&&(_0x50076e=_0x2a48e8%0x4?_0x50076e*0x40+_0x5e80b3:_0x5e80b3,_0x2a48e8++%0x4)?_0x2f302e+=String['fromCharCode'](0xff&_0x50076e>>(-0x2*_0x2a48e8&0x6)):0x0){_0x5e80b3=_0x5c4cb6['indexOf'](_0x5e80b3);}for(let _0x2a2160=0x0,_0x2bfb90=_0x2f302e['length'];_0x2a2160<_0x2bfb90;_0x2a2160++){_0x1b0d3f+='%'+('00'+_0x2f302e['charCodeAt'](_0x2a2160)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b0d3f);};_0x1faf['NUQBfR']=_0x5375e4,_0x1faf['ohaeey']={},_0x1faf['PhSoyk']=!![];}const _0x7917c1=_0xfc9c0b[0x0],_0x28ebf1=_0xfedf01+_0x7917c1,_0x3990cc=_0x1faf['ohaeey'][_0x28ebf1];return!_0x3990cc?(_0x1faff8=_0x1faf['NUQBfR'](_0x1faff8),_0x1faf['ohaeey'][_0x28ebf1]=_0x1faff8):_0x1faff8=_0x3990cc,_0x1faff8;}function subscribe(_0x2a48e8,_0x50076e){const _0x35a361={_0x1cb06e:0x1d3},_0x59d5a3=_0xfb8fa0;return _0x2a48e8[_0x59d5a3(_0x35a361._0x1cb06e)](_0x50076e),()=>{const _0x262111=_0x59d5a3;_0x2a48e8[_0x262111(0x190)](_0x50076e);};}__name(subscribe,_0xfb8fa0(0x1ff));import{UnotestError}from'@unotest/core';var DriverError=class extends UnotestError{static{__name(this,_0xfb8fa0(0x198));}},LocatorError=class extends UnotestError{static{__name(this,_0xfb8fa0(0x19e));}};function _0xfc9c(){const _0x1aebc0=['mta3odG2nwjszhHntq','zNjVBq','zxjYB3jpBK5LEhrby3rPB24','D2fPDezVCLvYBa','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','CMvSB2fK','B3v0zxjive1m','yxr0CMLIDxrLC0j5rgvMyxvSDa','BMfTzq','D2fPDezVCG','ndi5odyYy0vps0vb','Aw5UzxjuzxH0qNLezwzHDwX0','C2nYB2XSsw50B1zPzxC','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','zMfRzsb0AxrSzq','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','Ag92zxi','y29UDgv4Dhm','BgvUz3rO','BMv3q29UDgv4Da','AxneAxnHyMXLzej5rgvMyxvSDa','Dgv4DenVBNrLBNrcEurLzMf1Bhq','y2XVC2vgywTLugfNzq','z290BW','y291BNq','z2v0q29VA2LL','zxzHBhvHDgvpBKXVy2f0B3i','AxnwAxnPyMXL','Cg9W','y2HLy2TLzfn0yxrL','CgfNzuXPC3q','iJ48l2rPDJ4','y2XPCgjVyxjKugfZDgu','C3vIC2nYAwjL','zw50zxjgCMfTzsbJywXSzwqGD2L0AcbLBxb0EsbSB2nHDg9Y','zg91yMXLq2XPy2S','zNjHBwvtDgfJAW','D2fPDezVCLrLEhq','y3jLyxrLuMvJB3jKzxi','B25ozxDqywDL','zw50zxjgCMfTzq','D2fPDezVCKXVywrtDgf0zq','CMvM','C2v0tg9JywXtDg9YywDL','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','C2v0qwn0AxzLugfNzq','mZuZote5m25mvwvuzG','mZnNugLAAwu','DxjS','CMvJB3jKzxi','zgvSzxrL','y2fSBhngB3i','BMv3ugfNzuXPC3rLBMvYCW','ywn0AxzLswr4','zMLSDgvY','Bg9JywXtDg9YywDL','zgvMAw5LuhjVCgvYDhK','D2fPDezVCK5HDMLNyxrPB24','rhjPDMvYrxjYB3i','y2XPy2S','yMvOyxzPB3i','lNbHz2u','y29UC29SzuvUDhjPzxm','ntm4nZHJz0vTqNy','tg9JyxrVCKvYCM9Y','Bwv0Ag9K','Dw5JAgvJAW','BMv0D29YA0vUDhjPzxm','CMvJB3jK','C2vSzwn0t3b0Aw9U','C3rLChm','y2fSBhm','y2XVC2u','y29UBMvJDfnOyxjLza','rMfRzvDLyKrYAxzLCG','zMfRzs1WBMC','Bgf1BMnO','zw1PDezHA2vqB3b1Ca','mti2mZa2mhvHyvvvsa','zMLSBa','ChvZAa','Bg9JywXtDg9YywDLu3rHDgu','Bgf1BMnOzwq','DhLWzq','zNjHBwvezxb0Aa','Aw5WDxrwywX1zuj5rgvMyxvSDa','ywn0AxzLugfNzq','ywjVDxq6yMXHBMS','y2HLy2TLzfn0yxrLqNLezwzHDwX0','y29VA2LLu3rHDgu','C2f2zvn0B3jHz2vtDgf0zq','C2v0q29VA2LL','ChjLC3m','C2nYzwvUC2HVDa','y2HLy2S','rMfRzvbHz2u','C2nVCgu','CgfNzxm','Cg9WDxbpBKnSAwnR','AxneAxnHyMXLza','C2nYzwvUC2HVDej5DgvZ','zhjHz0fUzerYB3a','zxzHBhvHDgvszxn1Bhq','y3r4','zhjPDMvY','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','A2LUza','rMfRzunVBNrLEhq','pgrPDJ48l2rPDJ4','B3v0zxjiDg1SqNLszwy','Aw5WDxrwywX1zq','z29gB3j3yxjK','Bwf5yMvuAhjVDW','Dgv4DenVBNrLBNq','y29VA2LLCW','mtq2mdC2ogH0yNHewa','z29cywnR','ywrK','z2v0tg9JywXtDg9YywDL','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','otK3mdrTsw1lt0G','Aw5UzxjuzxH0','B25bzNrLCKnSAwnR','C2nYzwvUC2HVDevSzw1LBNq','Aw5ZCgvJDevSzw1LBNq','zxzHBhvHDgu','z2v0qxr0CMLIDxrL','y3vYCMvUDfvYBa'];_0xfc9c=function(){return _0x1aebc0;};return _0xfc9c();}function createRecorder(){const _0x3b3241=_0xfb8fa0,_0x5e80b3=[];let _0x3e4c73=0x0;return{'push':__name(_0x2a2160=>_0x5e80b3['push']({..._0x2a2160,'seq':_0x3e4c73++}),_0x3b3241(0x1ae)),'calls':__name(()=>_0x5e80b3,'calls')};}__name(createRecorder,_0xfb8fa0(0x204));var FakePage=class{constructor(_0x2bfb90,_0x5a8408,_0x5e827b,_0x1e6bb3){const _0x1531cc={_0x197c88:0x19a},_0x156216=_0xfb8fa0;this[_0x156216(0x18f)]=_0x2bfb90,this[_0x156216(_0x1531cc._0x197c88)]=_0x5a8408,this['scope']=_0x5e827b,this[_0x156216(0x1dd)]=_0x1e6bb3;}[_0xfb8fa0(0x18f)];[_0xfb8fa0(0x19a)];['scope'];static{__name(this,_0xfb8fa0(0x1bd));}[_0xfb8fa0(0x1dd)];[_0xfb8fa0(0x1d8)];['record'](_0x561990,_0x1105c1){const _0x2d88a3={_0x2e644e:0x18f,_0x152536:0x1ae},_0x5eae9e=_0xfb8fa0;this[_0x5eae9e(_0x2d88a3._0x2e644e)][_0x5eae9e(_0x2d88a3._0x152536)]({'scope':this['scope'],'method':_0x561990,'args':_0x1105c1});}['maybeThrow'](){const _0x150fe7={_0x575710:0x1e0,_0x3699ab:0x19a,_0x2b91d9:0x1e0},_0x40ac22=_0xfb8fa0;if(this['behavior'][_0x40ac22(_0x150fe7._0x575710)]){const _0x4013c0=this[_0x40ac22(_0x150fe7._0x3699ab)][_0x40ac22(_0x150fe7._0x2b91d9)];this[_0x40ac22(0x19a)][_0x40ac22(0x1e0)]=void 0x0;throw _0x4013c0;}}[_0xfb8fa0(0x18e)](){return this['currentUrl'];}async['title'](){const _0x5f16aa=_0xfb8fa0;return this[_0x5f16aa(0x1a2)]('title',[]),_0x5f16aa(0x1ec);}async[_0xfb8fa0(0x199)](_0x58d563,_0xf350c5){const _0x5f5af2={_0x1df5d4:0x1a2,_0x2759ee:0x1d8},_0x278e5c=_0xfb8fa0;this[_0x278e5c(_0x5f5af2._0x1df5d4)]('click',[_0x58d563,_0xf350c5]),this[_0x278e5c(0x1ce)](),this[_0x278e5c(_0x5f5af2._0x2759ee)]?.();}async['doubleClick'](_0x527c83,_0x32e7e4){const _0x4a60bd={_0x108d8f:0x201,_0x4b7ba4:0x1ce},_0x3b7849=_0xfb8fa0;this[_0x3b7849(0x1a2)](_0x3b7849(_0x4a60bd._0x108d8f),[_0x527c83,_0x32e7e4]),this[_0x3b7849(_0x4a60bd._0x4b7ba4)]();}async[_0xfb8fa0(0x1ad)](_0x197b4f,_0x39fffa,_0x59b2bf){const _0x411113={_0x22e174:0x1a2,_0x789e21:0x1ad,_0x123466:0x1ce},_0x1797e5=_0xfb8fa0;this[_0x1797e5(_0x411113._0x22e174)](_0x1797e5(_0x411113._0x789e21),[_0x197b4f,_0x39fffa,_0x59b2bf]),this[_0x1797e5(_0x411113._0x123466)]();}async[_0xfb8fa0(0x1ba)](_0x301063,_0x44f58a,_0x25359d){const _0x305ac9=_0xfb8fa0;this['record'](_0x305ac9(0x1ba),[_0x301063,_0x44f58a,_0x25359d]),this[_0x305ac9(0x1ce)]();}async[_0xfb8fa0(0x1bc)](_0x12e22e,_0x3e59fc){const _0x4dad80={_0x45e280:0x1a2},_0x42ca73=_0xfb8fa0;this[_0x42ca73(_0x4dad80._0x45e280)](_0x42ca73(0x1bc),[_0x12e22e,_0x3e59fc]),this['maybeThrow']();}async['uncheck'](_0x300905,_0x19aeb0){const _0x45d28f={_0x5401cf:0x1a2,_0x9a02b:0x1a0,_0x34ab38:0x1ce},_0x1812a7=_0xfb8fa0;this[_0x1812a7(_0x45d28f._0x5401cf)](_0x1812a7(_0x45d28f._0x9a02b),[_0x300905,_0x19aeb0]),this[_0x1812a7(_0x45d28f._0x34ab38)]();}async[_0xfb8fa0(0x1a3)](_0xe88517,_0x2a3c39,_0x378548){const _0xeba2f6={_0x1e6ac5:0x1a2,_0x2542ae:0x1ce},_0x1053f1=_0xfb8fa0;this[_0x1053f1(_0xeba2f6._0x1e6ac5)]('selectOption',[_0xe88517,_0x2a3c39,_0x378548]),this[_0x1053f1(_0xeba2f6._0x2542ae)]();}async['hover'](_0x494cc2,_0x1856e2){const _0x11ec36={_0x1277b2:0x1ee,_0x4e4924:0x1ce},_0x4dd5b7=_0xfb8fa0;this[_0x4dd5b7(0x1a2)](_0x4dd5b7(_0x11ec36._0x1277b2),[_0x494cc2,_0x1856e2]),this[_0x4dd5b7(_0x11ec36._0x4e4924)]();}async[_0xfb8fa0(0x1ea)](_0x1dc515){const _0x5ac6f7={_0x4ace92:0x1ce},_0x125799=_0xfb8fa0;this['record'](_0x125799(0x1ea),[_0x1dc515]),this[_0x125799(_0x5ac6f7._0x4ace92)]();}async[_0xfb8fa0(0x1c3)](_0x329702,_0x1cd168,_0x13978b){const _0x2f9cb5={_0x39125a:0x1c3},_0x38faf4=_0xfb8fa0;this['record'](_0x38faf4(_0x2f9cb5._0x39125a),[_0x329702,_0x1cd168,_0x13978b]),this[_0x38faf4(0x1ce)]();}async['uploadFile'](_0x19001e,_0x4c4b7d){const _0x3a4423=_0xfb8fa0;this[_0x3a4423(0x1a2)]('uploadFile',[_0x19001e,_0x4c4b7d]),this['maybeThrow']();}async[_0xfb8fa0(0x1fe)](_0x142e8f,_0x1ec5ec){const _0x147e9d={_0x19cb14:0x1fe,_0xfb3ef:0x1ce},_0x3fcb84=_0xfb8fa0;this['record'](_0x3fcb84(_0x147e9d._0x19cb14),[_0x142e8f,_0x1ec5ec]),this[_0x3fcb84(_0x147e9d._0xfb3ef)]();}async[_0xfb8fa0(0x1f6)](_0xa38217){const _0x7109ff={_0x21962c:0x1f6},_0x15bc28=_0xfb8fa0;return this['record'](_0x15bc28(_0x7109ff._0x21962c),[_0xa38217]),this['behavior']['countByDefault']??0x1;}async[_0xfb8fa0(0x1cf)](_0x4788d6){const _0x206a34=_0xfb8fa0;return this[_0x206a34(0x1a2)]('textContent',[_0x4788d6]),this['behavior'][_0x206a34(0x1f3)]??'';}async['innerText'](_0x283aad){const _0x53bf31={_0x4afe53:0x19a,_0x23d964:0x1f3},_0x243eaa=_0xfb8fa0;return this['record'](_0x243eaa(0x1d7),[_0x283aad]),this['behavior'][_0x243eaa(0x1e9)]??this[_0x243eaa(_0x53bf31._0x4afe53)][_0x243eaa(_0x53bf31._0x23d964)]??'';}async[_0xfb8fa0(0x1cc)](_0x24f290){const _0x2c8c82={_0xdace00:0x1a2},_0x1da287=_0xfb8fa0;return this[_0x1da287(_0x2c8c82._0xdace00)](_0x1da287(0x1cc),[_0x24f290]),this[_0x1da287(0x19a)][_0x1da287(0x1b3)]??'';}async[_0xfb8fa0(0x1fb)](_0xc6d030){const _0x1bfe6e={_0x426fc8:0x19a,_0x358aaa:0x1b6},_0x86a57b=_0xfb8fa0;return this[_0x86a57b(0x1a2)](_0x86a57b(0x1fb),[_0xc6d030]),this[_0x86a57b(_0x1bfe6e._0x426fc8)][_0x86a57b(_0x1bfe6e._0x358aaa)]??null;}async['isVisible'](_0xeb59af){const _0x9c622e={_0x138337:0x1f9},_0x27747d=_0xfb8fa0;return this['record'](_0x27747d(_0x9c622e._0x138337),[_0xeb59af]),this['behavior']['isVisibleByDefault']??!![];}async[_0xfb8fa0(0x1c1)](_0x454ec3){const _0x4a71b0={_0x8df876:0x19a,_0x14d419:0x1f2},_0x4c8e84=_0xfb8fa0;return this[_0x4c8e84(0x1a2)](_0x4c8e84(0x1c1),[_0x454ec3]),this[_0x4c8e84(_0x4a71b0._0x8df876)][_0x4c8e84(_0x4a71b0._0x14d419)]??![];}async[_0xfb8fa0(0x1dc)](_0x2b4eda,_0x101e34){const _0x1271bf={_0x1c6611:0x1dc,_0x26155b:0x19a},_0x40f2cf=_0xfb8fa0;return this[_0x40f2cf(0x1a2)](_0x40f2cf(_0x1271bf._0x1c6611),[_0x2b4eda,_0x101e34]),this[_0x40f2cf(_0x1271bf._0x26155b)][_0x40f2cf(0x1e5)]?.[_0x101e34]??null;}async[_0xfb8fa0(0x1e7)](_0x3dd1af,_0x191048){const _0x3a5887=_0xfb8fa0;this['record'](_0x3a5887(0x1e7),[_0x3dd1af,_0x191048]);}async[_0xfb8fa0(0x1e1)](_0x218228,_0x3f20c0){const _0x4288ff={_0x309bb7:0x1a2},_0xd99fc7=_0xfb8fa0;this[_0xd99fc7(_0x4288ff._0x309bb7)]('waitForUrl',[_0x218228,_0x3f20c0]);}async['waitForText'](_0x2a3ef2,_0x1face1){const _0x578dec={_0x371c3b:0x1a2},_0x21bf2d=_0xfb8fa0;this[_0x21bf2d(_0x578dec._0x371c3b)](_0x21bf2d(0x203),[_0x2a3ef2,_0x1face1]);}async[_0xfb8fa0(0x197)](_0x5ac917){const _0x554429=_0xfb8fa0;this[_0x554429(0x1a2)](_0x554429(0x197),[_0x5ac917]);}async[_0xfb8fa0(0x207)](_0x11e38c,_0x3b0bf5){const _0x3271e7=_0xfb8fa0;this[_0x3271e7(0x1a2)](_0x3271e7(0x207),[_0x11e38c,_0x3b0bf5]);}async[_0xfb8fa0(0x1f5)](_0x204978,_0x5ddb18){const _0x5eba4c={_0x5da6c9:0x1f5,_0x4a23c8:0x1dd},_0x24f45=_0xfb8fa0;this['record'](_0x24f45(_0x5eba4c._0x5da6c9),[_0x204978,_0x5ddb18]),this[_0x24f45(_0x5eba4c._0x4a23c8)]=_0x204978;}async['reload'](_0x2c2aba){const _0x313e5e={_0x410341:0x1e3},_0x1bd021=_0xfb8fa0;this[_0x1bd021(0x1a2)](_0x1bd021(_0x313e5e._0x410341),[_0x2c2aba]);}async[_0xfb8fa0(0x1d2)](_0x3c82fb){const _0x38a380=_0xfb8fa0;this['record'](_0x38a380(0x1d2),[_0x3c82fb]);}async[_0xfb8fa0(0x1cd)](_0x2331b0){const _0x2299e1={_0x482cd2:0x1a2,_0x32cfe8:0x1cd},_0x17e797=_0xfb8fa0;this[_0x17e797(_0x2299e1._0x482cd2)](_0x17e797(_0x2299e1._0x32cfe8),[_0x2331b0]);}async[_0xfb8fa0(0x1db)](_0x46d3f0){const _0xec87a5={_0x21a323:0x19a,_0x1fd7e6:0x1c4},_0x438769=_0xfb8fa0;return this[_0x438769(0x1a2)](_0x438769(0x1db),[_0x46d3f0]),this[_0x438769(_0xec87a5._0x21a323)][_0x438769(_0xec87a5._0x1fd7e6)];}async[_0xfb8fa0(0x1f8)](_0xc2e35d,_0x29b039){const _0x370771={_0x44882c:0x1a2,_0x348e9a:0x1f8},_0x18b0a1=_0xfb8fa0;return this[_0x18b0a1(_0x370771._0x44882c)](_0x18b0a1(_0x370771._0x348e9a),[_0xc2e35d,_0x29b039]),void 0x0;}async[_0xfb8fa0(0x1da)](_0x373e7f){const _0x89485e={_0xe6340:0x1da,_0x563a14:0x1a4,_0x3b1ee8:0x208,_0x4bdf31:0x1a4},_0x4af40a=_0xfb8fa0;this['record'](_0x4af40a(_0x89485e._0xe6340),[_0x373e7f]);if(_0x373e7f[_0x4af40a(_0x89485e._0x563a14)]['length']!==0x1||_0x373e7f[_0x4af40a(_0x89485e._0x563a14)][0x0][_0x4af40a(0x1c8)]!==_0x4af40a(_0x89485e._0x3b1ee8))return null;const _0x443413=_0x373e7f[_0x4af40a(_0x89485e._0x4bdf31)][0x0][_0x4af40a(0x208)],_0x13ad22=this['behavior']['elementHintByRef']?.[_0x443413];return _0x13ad22??null;}async[_0xfb8fa0(0x1bb)](_0x47d51a){const _0x39d70a={_0x351240:0x1a2,_0x580c30:0x1b1},_0x1173b5=_0xfb8fa0;return this[_0x1173b5(_0x39d70a._0x351240)](_0x1173b5(0x1bb),[_0x47d51a]),this['screenshotBytes'](_0x47d51a?.[_0x1173b5(_0x39d70a._0x580c30)]);}async[_0xfb8fa0(0x1d9)](_0x24485e,_0x59d98a){const _0x49e2ba=_0xfb8fa0;return this[_0x49e2ba(0x1a2)]('screenshotElement',[_0x24485e,_0x59d98a]),this['screenshotBytes'](_0x59d98a?.[_0x49e2ba(0x1b1)]);}['screenshotBytes'](_0x428b36){const _0x1687cc={_0x454dbb:0x1c2,_0x5b5e16:0x1a9},_0x4ef94f=_0xfb8fa0,_0x43b908=this[_0x4ef94f(0x19a)][_0x4ef94f(_0x1687cc._0x454dbb)];if(_0x43b908===void 0x0)return Buffer[_0x4ef94f(0x1df)](_0x4ef94f(_0x1687cc._0x5b5e16));return typeof _0x43b908==='function'?_0x43b908(_0x428b36):_0x43b908;}async[_0xfb8fa0(0x1e4)](_0x141804){const _0x35aa55={_0x430ba5:0x1c8,_0x29b131:0x208,_0xe10d9c:0x19a},_0x3a9705=_0xfb8fa0;this[_0x3a9705(0x1a2)]('outerHTML',[_0x141804]);if(_0x141804['steps'][_0x3a9705(0x1f0)]===0x1&&_0x141804['steps'][0x0][_0x3a9705(_0x35aa55._0x430ba5)]===_0x3a9705(_0x35aa55._0x29b131)){const _0x558dc2=_0x141804[_0x3a9705(0x1a4)][0x0]['ref'];return this[_0x3a9705(_0x35aa55._0xe10d9c)][_0x3a9705(0x1cb)]?.[_0x558dc2]??_0x3a9705(0x1e2)+_0x558dc2+_0x3a9705(0x1fd);}return _0x3a9705(0x1ca);}},FakeContext=class{constructor(_0x3f7d09,_0x1b20a8,_0x22bb3f){const _0x41b98d={_0x22b9c1:0x1fc,_0x5a097e:0x1af,_0x3057c2:0x195},_0x33f4f1={_0x365d94:0x1c0},_0x45f499=_0xfb8fa0;this[_0x45f499(0x18f)]=_0x3f7d09,this[_0x45f499(0x19a)]=_0x1b20a8,this['scope']=_0x22bb3f;const _0x5bf75a=new FakePage(_0x3f7d09,_0x1b20a8,_0x22bb3f+'.page0',_0x1b20a8['initialUrl']??_0x45f499(0x1b5));_0x1b20a8[_0x45f499(0x1c0)]&&(_0x5bf75a[_0x45f499(0x1d8)]=()=>{const _0x4b1bb=_0x45f499;this[_0x4b1bb(0x1ab)](_0x1b20a8[_0x4b1bb(_0x33f4f1._0x365d94)]);}),this[_0x45f499(_0x41b98d._0x22b9c1)]=[_0x5bf75a],this[_0x45f499(_0x41b98d._0x5a097e)]={..._0x1b20a8[_0x45f499(_0x41b98d._0x3057c2)]??{}},this['cookieState']={..._0x1b20a8[_0x45f499(0x1d0)]??{}};}[_0xfb8fa0(0x18f)];['behavior'];['scope'];static{__name(this,_0xfb8fa0(0x1c9));}['pageList'];[_0xfb8fa0(0x193)]=0x0;[_0xfb8fa0(0x202)]=[];[_0xfb8fa0(0x1af)];[_0xfb8fa0(0x1b7)];[_0xfb8fa0(0x192)]=new Set();[_0xfb8fa0(0x1a2)](_0x5c8388,_0x2a6424){const _0x39b0f9={_0x1601ae:0x1ae,_0x38ca98:0x1be},_0x234260=_0xfb8fa0;this['recorder'][_0x234260(_0x39b0f9._0x1601ae)]({'scope':this[_0x234260(_0x39b0f9._0x38ca98)],'method':_0x5c8388,'args':_0x2a6424});}[_0xfb8fa0(0x1bf)](){const _0x4b1c0e=_0xfb8fa0;return this[_0x4b1c0e(0x1fc)];}[_0xfb8fa0(0x1b4)](){const _0x173095={_0x258c76:0x1fc,_0x24fc37:0x18a,_0x39c387:0x193},_0x132216=_0xfb8fa0,_0x2ec24a=this[_0x132216(_0x173095._0x258c76)][this[_0x132216(0x193)]];if(!_0x2ec24a)throw new DriverError(_0x132216(_0x173095._0x24fc37),{'activeIdx':this[_0x132216(_0x173095._0x39c387)]});return _0x2ec24a;}[_0xfb8fa0(0x19c)](){const _0x427820={_0x5a636a:0x19c},_0x5671b5=_0xfb8fa0;return this['behavior'][_0x5671b5(_0x427820._0x5a636a)]??[];}['networkEntries'](){const _0x9a6f07={_0x4431fd:0x19a},_0x3cf4c1=_0xfb8fa0;return this[_0x3cf4c1(_0x9a6f07._0x4431fd)][_0x3cf4c1(0x1a1)]??[];}async[_0xfb8fa0(0x18b)](_0x88ea4e){const _0x4465d1={_0x4ad013:0x1a2,_0x4068ef:0x1f0,_0x143781:0x1ed,_0x488bd5:0x1fc,_0x11c545:0x202},_0x11a83c=_0xfb8fa0;this[_0x11a83c(_0x4465d1._0x4ad013)]('setActivePage',[_0x88ea4e]);if(_0x88ea4e<0x0||_0x88ea4e>=this[_0x11a83c(0x1fc)][_0x11a83c(_0x4465d1._0x4068ef)])throw new DriverError(_0x11a83c(_0x4465d1._0x143781),{'index':_0x88ea4e,'available':this[_0x11a83c(_0x4465d1._0x488bd5)]['length']});this[_0x11a83c(0x193)]=_0x88ea4e,this[_0x11a83c(_0x4465d1._0x11c545)][_0x11a83c(_0x4465d1._0x4068ef)]=0x0;}[_0xfb8fa0(0x205)](_0x2f4167){return subscribe(this['newPageListeners'],_0x2f4167);}[_0xfb8fa0(0x1ab)](_0xdd08ca){const _0x20d1f5={_0x88a33c:0x19b,_0x220449:0x19a,_0x260e12:0x1fc},_0x218226=_0xfb8fa0,_0x4e6019=this[_0x218226(0x1be)]+_0x218226(_0x20d1f5._0x88a33c)+this[_0x218226(0x1fc)][_0x218226(0x1f0)],_0x17d093=new FakePage(this[_0x218226(0x18f)],this[_0x218226(_0x20d1f5._0x220449)],_0x4e6019,_0xdd08ca);this[_0x218226(_0x20d1f5._0x260e12)]['push'](_0x17d093);const _0x69faf5=this[_0x218226(_0x20d1f5._0x260e12)]['length']-0x1;for(const _0x5313eb of this['newPageListeners']){try{_0x5313eb({'index':_0x69faf5,'url':_0xdd08ca});}catch{}}return _0x69faf5;}[_0xfb8fa0(0x1f4)](_0x8b206a){const _0xa0ac7b={_0x5e8edf:0x1fc,_0x135ea:0x1f0,_0x4e0bd9:0x1fc,_0x5753b9:0x1f0},_0x251053=_0xfb8fa0;if(_0x8b206a<0x0||_0x8b206a>=this[_0x251053(_0xa0ac7b._0x5e8edf)][_0x251053(_0xa0ac7b._0x135ea)])throw new DriverError(_0x251053(0x1ed),{'index':_0x8b206a,'available':this[_0x251053(_0xa0ac7b._0x4e0bd9)][_0x251053(_0xa0ac7b._0x5753b9)]});this[_0x251053(0x1fc)]['splice'](_0x8b206a,0x1);}async[_0xfb8fa0(0x206)](_0x3f2105){const _0x45e76a={_0x182764:0x1a4,_0x53dd4a:0x1f0,_0x363b6e:0x200},_0x59bfac=_0xfb8fa0;this['record'](_0x59bfac(0x206),[_0x3f2105]);if(!_0x3f2105[_0x59bfac(_0x45e76a._0x182764)][_0x59bfac(_0x45e76a._0x53dd4a)])throw new LocatorError(_0x59bfac(_0x45e76a._0x363b6e),{'locator':_0x3f2105});this[_0x59bfac(0x202)][_0x59bfac(0x1ae)](_0x3f2105);}async['exitFrame'](){const _0x19defb={_0x998da6:0x202,_0x57f994:0x1c7,_0x1c89e4:0x1fa},_0x555518=_0xfb8fa0;this['record']('exitFrame',[]);if(this[_0x555518(_0x19defb._0x998da6)][_0x555518(0x1f0)]===0x0)throw new DriverError(_0x555518(_0x19defb._0x57f994),{});this['frameStack'][_0x555518(_0x19defb._0x1c89e4)]();}async['setLocalStorage'](_0xff4d11,_0xe62c6d){const _0x1785f9={_0x3edd55:0x189,_0x2a3c76:0x1af},_0x346718=_0xfb8fa0;this[_0x346718(0x1a2)](_0x346718(_0x1785f9._0x3edd55),[_0xff4d11,_0xe62c6d]),this[_0x346718(_0x1785f9._0x2a3c76)][_0xff4d11]=_0xe62c6d;}async['getLocalStorage'](_0x2a2941){const _0x11b5ac=_0xfb8fa0;return this['record'](_0x11b5ac(0x1d4),[_0x2a2941]),this['localStorageState'][_0x2a2941]??null;}async[_0xfb8fa0(0x1b9)](_0xc55242,_0x26ce00,_0x4bb209){const _0x4f7472={_0x8d20ca:0x1b9},_0x1f927c=_0xfb8fa0;this[_0x1f927c(0x1a2)](_0x1f927c(_0x4f7472._0x8d20ca),[_0xc55242,_0x26ce00,_0x4bb209]),this[_0x1f927c(0x1b7)][_0xc55242]=_0x26ce00;}async[_0xfb8fa0(0x1f7)](_0x55ee33){const _0x26dccb={_0x426036:0x1a2},_0xde8549=_0xfb8fa0;return this[_0xde8549(_0x26dccb._0x426036)]('getCookie',[_0x55ee33]),this[_0xde8549(0x1b7)][_0x55ee33]??null;}async['saveStorageState'](_0x5a4d2d){const _0x487787={_0x1a2d7d:0x1a2,_0x319fac:0x1b8},_0x5ed81c=_0xfb8fa0;this[_0x5ed81c(_0x487787._0x1a2d7d)](_0x5ed81c(_0x487787._0x319fac),[_0x5a4d2d]);}async['evaluate'](_0x377175){const _0x27d0f1={_0xb94f:0x1db},_0x1ffa2b=_0xfb8fa0;return this[_0x1ffa2b(0x1a2)](_0x1ffa2b(_0x27d0f1._0xb94f),[_0x377175]),void 0x0;}async[_0xfb8fa0(0x1a6)](){const _0x15f5e8=_0xfb8fa0;this[_0x15f5e8(0x1a2)](_0x15f5e8(0x1a6),[]);}[_0xfb8fa0(0x1b2)](){const _0x65ef46={_0x4d362e:0x202},_0x44eeac=_0xfb8fa0;return this[_0x44eeac(_0x65ef46._0x4d362e)][_0x44eeac(0x1f0)];}},FakeWebDriver=class{constructor(_0x3cd43c={}){const _0x380e02=_0xfb8fa0;this['behavior']=_0x3cd43c,this[_0x380e02(0x18f)]=createRecorder();}[_0xfb8fa0(0x19a)];static{__name(this,_0xfb8fa0(0x1a8));}[_0xfb8fa0(0x1b0)]=![];[_0xfb8fa0(0x18f)];[_0xfb8fa0(0x1ef)]=[];async[_0xfb8fa0(0x1aa)](_0x1b7100){const _0x52bc4d={_0x591d90:0x1c6},_0x5b35b5=_0xfb8fa0;this['recorder']['push']({'scope':_0x5b35b5(_0x52bc4d._0x591d90),'method':_0x5b35b5(0x1aa),'args':[_0x1b7100]}),this[_0x5b35b5(0x1b0)]=!![];}async['newContext'](_0x1683ba){const _0x5ab31a={_0x5aebdf:0x18f,_0x5bd254:0x1ae,_0x38bc17:0x1c6,_0x30dfa6:0x1b0,_0x336ee6:0x19a,_0x1c4d98:0x1ef},_0x47ed86=_0xfb8fa0;this[_0x47ed86(_0x5ab31a._0x5aebdf)][_0x47ed86(_0x5ab31a._0x5bd254)]({'scope':_0x47ed86(_0x5ab31a._0x38bc17),'method':_0x47ed86(0x1f1),'args':[_0x1683ba]});if(!this[_0x47ed86(_0x5ab31a._0x30dfa6)])throw new DriverError('newContext\x20called\x20before\x20launch()',{});const _0x583778=new FakeContext(this['recorder'],this[_0x47ed86(_0x5ab31a._0x336ee6)],_0x47ed86(0x1c5)+this[_0x47ed86(0x1ef)]['length']);return this[_0x47ed86(_0x5ab31a._0x1c4d98)][_0x47ed86(0x1ae)](_0x583778),_0x583778;}async[_0xfb8fa0(0x1a6)](){const _0x449626={_0x489620:0x18f,_0x26eeb3:0x1b0},_0x20aa15=_0xfb8fa0;this[_0x20aa15(_0x449626._0x489620)][_0x20aa15(0x1ae)]({'scope':'driver','method':'close','args':[]}),this[_0x20aa15(_0x449626._0x26eeb3)]=![];}['wsEndpoint'](){return void 0x0;}async[_0xfb8fa0(0x1a7)](){const _0x594f26={_0x2dcca4:0x1d5},_0x285baa=_0xfb8fa0;throw new DriverError(_0x285baa(_0x594f26._0x2dcca4),{});}['attachExisting'](_0x3fdd61){const _0x574841={_0x94d424:0x1eb},_0x3e7201=_0xfb8fa0;throw new DriverError(_0x3e7201(_0x574841._0x94d424),{});}[_0xfb8fa0(0x1a5)](){const _0x4ed223={_0x4ec5c6:0x1a5},_0x49fa0c=_0xfb8fa0;return this[_0x49fa0c(0x18f)][_0x49fa0c(_0x4ed223._0x4ec5c6)]();}[_0xfb8fa0(0x191)](_0x39156b){const _0x340ac6={_0x3a381f:0x18f,_0x17842d:0x194},_0x1ad206=_0xfb8fa0;return this[_0x1ad206(_0x340ac6._0x3a381f)]['calls']()[_0x1ad206(_0x340ac6._0x17842d)](_0x1684fe=>_0x1684fe[_0x1ad206(0x19f)]===_0x39156b);}};export{FakeWebDriver};