From 70a675c0f12291bd180cd6093c33e653ebfe89d7 Mon Sep 17 00:00:00 2001 From: "Graciliano M. P." Date: Mon, 13 Jul 2026 23:38:34 -0300 Subject: [PATCH] Ship the terminal as a reusable package (v1.15.0) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OmnyShell Web is now a package as well as an app: any Dart web app can embed a real remote shell — PTY sizing, soft-keyboard insets, line editing, history and flow control already solved — instead of rebuilding the hard parts. The first consumer is the OmnyServer fleet dashboard, whose Hub can host an OmnyShell broker on the same port. The app itself is unchanged: same screens, same behaviour, same tests, passing unmodified. What moved is what had to, to make the terminal embeddable. - Three public barrels: terminal.dart, ui_kit.dart, client.dart (plus foundation.dart, the DOM-free half, so a consumer's service and controller layers stay unit-testable on the VM instead of needing headless Chrome). app/, ui/screens/ and settings_panel stay app-private — exporting them is what would let the shared tier re-acquire AppContext coupling. - TerminalFitter: the sizing engine, lifted out of SessionViewScreen where it was ~140 private lines. It is the hardest code here (a terminal that grows but never shrinks, renders 0x0, or hides its last line behind a keyboard is what a wrong piece of it produces) and no consumer should copy it. - bin/copy_assets.dart: a package ships its web/ inside the pub archive but pub never serves it to a consumer, so without this the terminal loads to a blank box and the widgets render unstyled. - Storage prefixes are parameterized (default unchanged). localStorage is per-origin and one Hub can serve two apps, which would otherwise clobber each other's theme, Hub and token. - XtermTheme: xterm paints to a canvas and cannot inherit CSS custom properties, so an embedding app must be able to state its colours. Co-Authored-By: Claude Opus 4.8 (1M context) --- .pubignore | 17 + ARCHITECTURE.md | 42 +- CHANGELOG.md | 81 + LICENSE | 202 + README.md | 81 + bin/copy_assets.dart | 103 + build/.build.manifest | 56 + build/CHANGELOG.md | 569 + build/LICENSE | 202 + build/README.md | 217 + build/example/README.md | 36 + build/example/main.dart.js | 10315 +++++++ build/example/packages | 1 + .../packages/$sdk/dev_compiler/amd/require.js | 2145 ++ .../dev_compiler/ddc/ddc_module_loader.js | 2236 ++ .../web/dart_stack_trace_mapper.js | 5687 ++++ .../_fe_analyzer_shared/src/parser/parser.md | 17 + build/packages/analyzer/fix_data.yaml | 174 + .../packages/analyzer/src/summary/format.fbs | 335 + build/packages/analyzer/src/wolf/README.md | 81 + .../src/commands/serve/live_reload_client.js | 8 + .../stack_trace_mapper.dart.js | 5427 ++++ build/packages/dio/fix_data/fix.yaml | 75 + build/packages/lints/core.yaml | 43 + build/packages/lints/recommended.yaml | 71 + build/packages/node_preamble/preamble.js | 113 + build/packages/node_preamble/preamble.min.js | 1 + .../backend/pty/pty_shell_backend.txt | 152 + .../backend/pty/pty_shell_session.txt | 259 + build/packages/test/dart.js | 80 + .../runner/browser/static/default.html.tpl | 8 + .../src/runner/browser/static/favicon.ico | Bin 0 -> 3559 bytes .../test/src/runner/browser/static/host.css | 316 + .../src/runner/browser/static/host.dart.js | 15863 ++++++++++ .../test/src/runner/browser/static/index.html | 24 + .../runner/browser/static/run_wasm_chrome.js | 33 + build/packages/vm_service/DEPENDENCIES.md | 17 + build/packages/vm_service/src/DEPENDENCIES.md | 18 + build/packages/vm_service/src/README.md | 1 + build/packages/web/fix_data.yaml | 1279 + build/packages/xml/src/xpath/AGENTS.md | 177 + build/pubspec.lock | 749 + build/pubspec.yaml | 30 + build/web/boot.js | 76 + build/web/icons/apple-touch-icon.png | Bin 0 -> 1780 bytes build/web/icons/favicon.png | Bin 0 -> 1055 bytes build/web/icons/icon-192.png | Bin 0 -> 4120 bytes build/web/icons/icon-512.png | Bin 0 -> 8431 bytes build/web/icons/icon-maskable-192.png | Bin 0 -> 2726 bytes build/web/icons/icon-maskable-512.png | Bin 0 -> 8553 bytes build/web/icons/icon-omnygrid-bg.png | Bin 0 -> 478547 bytes build/web/icons/icon-omnygrid.png | Bin 0 -> 37100 bytes build/web/icons/logo-omnygrid.png | Bin 0 -> 28487 bytes build/web/index.html | 43 + web/styles.css => build/web/kit.css | 236 +- build/web/main.dart.js | 24716 ++++++++++++++++ build/web/manifest.json | 40 + build/web/packages | 1 + build/web/service_worker.js | 90 + build/web/terminal.css | 239 + build/web/vendor/xterm/addon-fit.min.js | 8 + build/web/vendor/xterm/xterm.min.css | 8 + build/web/vendor/xterm/xterm.min.js | 8 + example/README.md | 36 + example/main.dart | 138 + lib/client.dart | 41 + lib/core/version.dart | 2 +- lib/foundation.dart | 21 + lib/storage/node_cache.dart | 11 +- lib/storage/settings_store.dart | 47 +- lib/terminal.dart | 54 + lib/terminal/command_history.dart | 7 +- lib/terminal/device_metrics.dart | 24 + lib/terminal/terminal_fitter.dart | 280 + lib/terminal/xterm_terminal_view.dart | 81 +- lib/ui/screens/session_view_screen.dart | 247 +- lib/ui/settings_panel.dart | 21 +- lib/ui_kit.dart | 23 + pubspec.yaml | 14 +- web/boot.js | 4 +- web/icons/icon-omnygrid-bg.png | Bin 0 -> 478547 bytes web/icons/icon-omnygrid.png | Bin 0 -> 37100 bytes web/icons/logo-omnygrid.png | Bin 0 -> 28487 bytes web/index.html | 3 +- web/kit.css | 397 + web/service_worker.js | 5 +- web/terminal.css | 239 + 87 files changed, 73987 insertions(+), 514 deletions(-) create mode 100644 .pubignore create mode 100644 LICENSE create mode 100644 bin/copy_assets.dart create mode 100644 build/.build.manifest create mode 100644 build/CHANGELOG.md create mode 100644 build/LICENSE create mode 100644 build/README.md create mode 100644 build/example/README.md create mode 100644 build/example/main.dart.js create mode 120000 build/example/packages create mode 100644 build/packages/$sdk/dev_compiler/amd/require.js create mode 100644 build/packages/$sdk/dev_compiler/ddc/ddc_module_loader.js create mode 100644 build/packages/$sdk/dev_compiler/web/dart_stack_trace_mapper.js create mode 100644 build/packages/_fe_analyzer_shared/src/parser/parser.md create mode 100644 build/packages/analyzer/fix_data.yaml create mode 100644 build/packages/analyzer/src/summary/format.fbs create mode 100644 build/packages/analyzer/src/wolf/README.md create mode 100644 build/packages/build_runner/src/commands/serve/live_reload_client.js create mode 100644 build/packages/build_web_compilers/src/dev_compiler_stack_trace/stack_trace_mapper.dart.js create mode 100644 build/packages/dio/fix_data/fix.yaml create mode 100644 build/packages/lints/core.yaml create mode 100644 build/packages/lints/recommended.yaml create mode 100644 build/packages/node_preamble/preamble.js create mode 100644 build/packages/node_preamble/preamble.min.js create mode 100644 build/packages/omnyshell/src/infrastructure/backend/pty/pty_shell_backend.txt create mode 100644 build/packages/omnyshell/src/infrastructure/backend/pty/pty_shell_session.txt create mode 100644 build/packages/test/dart.js create mode 100644 build/packages/test/src/runner/browser/static/default.html.tpl create mode 100644 build/packages/test/src/runner/browser/static/favicon.ico create mode 100644 build/packages/test/src/runner/browser/static/host.css create mode 100644 build/packages/test/src/runner/browser/static/host.dart.js create mode 100644 build/packages/test/src/runner/browser/static/index.html create mode 100644 build/packages/test/src/runner/browser/static/run_wasm_chrome.js create mode 100644 build/packages/vm_service/DEPENDENCIES.md create mode 100644 build/packages/vm_service/src/DEPENDENCIES.md create mode 100644 build/packages/vm_service/src/README.md create mode 100644 build/packages/web/fix_data.yaml create mode 100644 build/packages/xml/src/xpath/AGENTS.md create mode 100644 build/pubspec.lock create mode 100644 build/pubspec.yaml create mode 100644 build/web/boot.js create mode 100644 build/web/icons/apple-touch-icon.png create mode 100644 build/web/icons/favicon.png create mode 100644 build/web/icons/icon-192.png create mode 100644 build/web/icons/icon-512.png create mode 100644 build/web/icons/icon-maskable-192.png create mode 100644 build/web/icons/icon-maskable-512.png create mode 100644 build/web/icons/icon-omnygrid-bg.png create mode 100644 build/web/icons/icon-omnygrid.png create mode 100644 build/web/icons/logo-omnygrid.png create mode 100644 build/web/index.html rename web/styles.css => build/web/kit.css (59%) create mode 100644 build/web/main.dart.js create mode 100644 build/web/manifest.json create mode 120000 build/web/packages create mode 100644 build/web/service_worker.js create mode 100644 build/web/terminal.css create mode 100644 build/web/vendor/xterm/addon-fit.min.js create mode 100644 build/web/vendor/xterm/xterm.min.css create mode 100644 build/web/vendor/xterm/xterm.min.js create mode 100644 example/README.md create mode 100644 example/main.dart create mode 100644 lib/client.dart create mode 100644 lib/foundation.dart create mode 100644 lib/terminal.dart create mode 100644 lib/terminal/device_metrics.dart create mode 100644 lib/terminal/terminal_fitter.dart create mode 100644 lib/ui_kit.dart create mode 100644 web/icons/icon-omnygrid-bg.png create mode 100644 web/icons/icon-omnygrid.png create mode 100644 web/icons/logo-omnygrid.png create mode 100644 web/kit.css create mode 100644 web/terminal.css diff --git a/.pubignore b/.pubignore new file mode 100644 index 0000000..6dbc807 --- /dev/null +++ b/.pubignore @@ -0,0 +1,17 @@ +# What ships to pub.dev. +# +# `web/` MUST stay in the archive: `bin/copy_assets.dart` installs the xterm +# bundle and the stylesheets into a consuming app out of the published package, +# and pub never serves a dependency's web/ directory on its own. So only the dead +# weight is excluded here — never `web/vendor/`, `kit.css`, `terminal.css` or +# `boot.js`. + +# Unreferenced brand art: not used by index.html, the manifest or the service +# worker, and half a megabyte of it. +web/icons/icon-omnygrid.png +web/icons/icon-omnygrid-bg.png +web/icons/logo-omnygrid.png + +.DS_Store +**/.DS_Store +build/ diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 93fc3ee..16cca24 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -27,20 +27,48 @@ transport seam: A `dart compile js` gate proves the `ClientRuntime` graph carries no `dart:io`. +## Public surface + +This package is consumed by other web apps (OmnyServer Web is the first), so the +`lib/` tree is split into a shared tier that is exported and an app tier that is +not. Three barrels: + +| Barrel | Exports | Guarantees | +|---|---|---| +| `terminal.dart` | `TerminalView`/`TerminalKeys`, `WebShellHost`, `XtermTerminalView` (+`XtermTheme`), `TerminalAccessoryBar`, `TerminalFitter`, `CommandHistory`, `terminal_dimensions`, `deviceMetrics` | No `AppContext`, no screens. `WebShellHost` imports only `dart:async`, `dart:convert`, `omnyshell` and two leaf files. AI/IDE are opt-in and never imported by the host. | +| `ui_kit.dart` | `dom`, `widgets`, `toasts`, `modal` | DOM-only. **Styled by class names**, so a consumer must ship `kit.css`. | +| `client.dart` | `OmnyShellService`, `AppError`, `Observable`, `AsyncState`, the controllers, storage, router, `ThemeController` | No DOM framework. Storage prefixes and theme application are injected, never hardcoded. | + +Not exported, and deliberately so: `app/` (App, AppContext, bootstrap, Routes), +`ui/screens/`, `ui/settings_panel.dart`. Those carry this app's identity — its +brand, its routes, its service locator — and exporting them is what would let the +shared tier quietly re-acquire `AppContext` coupling. **The rule: nothing under a +barrel may import `app/` or `ui/screens/`.** + +The session seam itself — `ShellSessionPort`, which `RemoteSession` implements — +lives *upstream* in `package:omnyshell`, not here, so a consumer gets it for free. + +Browser assets (the xterm bundle, `kit.css`, `terminal.css`, `boot.js`) ship +inside the pub archive but are never *served* to a consuming app by pub, so +`bin/copy_assets.dart` installs them into the consumer's own `web/`. + ## Layers (`lib/`) ``` app/ App (root: header, route guard, screen mounting), AppContext, - bootstrap (production wiring), Routes + bootstrap (production wiring), Routes [app-private] core/ OmnyShellService (facade over ClientRuntime), AppError mapping, - Observable, time formatting + Observable, time formatting [client.dart] state/ Auth / Nodes / Sessions / Theme controllers, AsyncState + [client.dart] storage/ KeyValueStore (+ localStorage & in-memory impls), SettingsStore, - NodeCache -router/ Router (hash-based) + pure route matcher -terminal/ TerminalView/SessionIo interfaces, SessionBridge (pure wiring), - xterm.js interop + RemoteSession adapter -ui/ dom helpers, widgets, toasts, modal, screens/ + NodeCache — all prefix-parameterized [client.dart] +router/ Router (hash-based) + pure route matcher [client.dart] +terminal/ TerminalView/TerminalKeys interfaces, WebShellHost (the shell + driver), xterm.js interop, accessory key bar, TerminalFitter + (sizing engine), command history [terminal.dart] +ui/ dom helpers, widgets, toasts, modal [ui_kit.dart] + screens/, settings_panel.dart [app-private] ``` ### State management diff --git a/CHANGELOG.md b/CHANGELOG.md index c087958..c093154 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,84 @@ +## 1.15.0 + +**OmnyShell Web is now a package, not only an app.** Any Dart web app can embed a +real remote shell — PTY sizing, soft-keyboard insets, line editing, history and +flow control already solved — instead of rebuilding the hard parts. The first +consumer is the OmnyServer fleet dashboard, whose Hub can host an OmnyShell +broker on the same port, so a node's shell is one button away. + +```yaml +dependencies: + omnyshell_web: ^1.15.0 +``` + +```sh +dart run omnyshell_web:copy_assets # xterm bundle + stylesheets → your web/ +``` + +```dart +import 'package:omnyshell_web/terminal.dart'; + +final term = XtermTerminalView(host); +final session = await service.openShell(nodeId: id, cols: 80, rows: 24); +final shell = WebShellHost( + term: term, session: session, principal: 'alice', nodeId: id, + commands: null, // a plain shell: no :ai, no :ide +); +TerminalFitter(term: term, host: host, accessory: bar, scaleTarget: root).attach(); +``` + +The app itself is unchanged — same screens, same behaviour, same tests, all +passing unmodified. What follows is what had to move to make the terminal +embeddable. + +### Added + +- **Three public barrels.** `terminal.dart` (the terminal stack), `ui_kit.dart` + (dom, widgets, toasts, modal) and `client.dart` (`OmnyShellService`, + `Observable`, `AsyncState`, controllers, storage, router, theme). `app/`, + `ui/screens/` and `ui/settings_panel.dart` stay app-private — exporting them is + exactly what would let the shared tier re-acquire `AppContext` coupling. See + ARCHITECTURE.md → *Public surface*. +- **`TerminalFitter`** — the terminal's sizing engine, lifted out of + `SessionViewScreen`, where it was ~140 private lines. It is the hardest code in + the repo (a terminal that grows but never shrinks, renders 0×0, or hides its + last line behind a soft keyboard is what you get when a piece of it is wrong), + and no consumer should have to copy it. Both modes are preserved: a *fixed* + grid whose font rescales (the backend PTY cannot be resized) and *auto-fit*, + where xterm re-derives cols/rows. +- **`bin/copy_assets.dart`** (`dart run omnyshell_web:copy_assets`) — installs the + xterm bundle, `kit.css`, `terminal.css` and `boot.js` into a consuming app's + `web/`. A package ships its `web/` inside the pub archive, but pub never + *serves* it to a consumer, so without this the terminal loads to a blank box + and the widgets render unstyled. +- **`XtermTheme`** — the xterm palette, font size and family are now injectable + (`XtermTerminalView(host, theme: …)`), defaulting to OmnyShell's. xterm paints + to a canvas and so cannot inherit CSS custom properties; an embedding app has + to be able to say what its colours are. +- **`example/`** — a whole terminal app in one file, using only the barrels. It + doubles as a check that the public surface is sufficient without deep imports. +- **LICENSE** (Apache-2.0, matching the rest of OmnyGrid) and a `repository:` + link, both required to publish. + +### Changed + +- **Storage prefixes are parameterized**, defaulting to `omnyshell.` so nothing + changes for this app: `SettingsStore(kv, prefix: …)`, `NodeCache(kv, prefix: …)`, + `CommandHistory.load(prefix: …)`. `localStorage` is per-origin and one Hub can + serve two apps, which would otherwise share — and clobber — each other's theme, + Hub, token and terminal preferences. +- **`styles.css` is split** into `kit.css` (tokens, base, layout, widgets, modal, + toasts) and `terminal.css` (terminal chrome, key bar, fullscreen, keyboard + insets), so an app can take the terminal without the whole look, or vice versa. + Every selector is preserved; the app links both. The service-worker cache + version is bumped accordingly. +- **`deviceMetrics()` moved** from `ui/settings_panel.dart` to + `terminal/device_metrics.dart`. It is ten lines of pure `screen` reading, and + importing the terminal stack should not drag an `AppContext`-coupled settings + panel along with it. Still re-exported from its old home, so nothing breaks. + +--- + ## 1.14.12 ### Changed diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7a4a3ea --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/README.md b/README.md index 435b230..ff7f215 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,87 @@ existing OmnyShell infrastructure over a single WebSocket, using the real Built as a plain Dart→JS web app (`package:web` + `build_web_compilers`), not Flutter. +This repository is **two things**: the app above, and the **package behind it**. +If you are building your own Dart web app, read the next section — you can embed +a real remote shell without re-implementing any of this. + +## Use as a package: embed a terminal in your web app + +`package:omnyshell_web` exposes the reusable half of the app, so another web +project gets a live remote shell — with PTY sizing, soft-keyboard handling, line +editing, history and flow control already solved — instead of a blank canvas. +[OmnyServer Web](https://github.com/OmnyGrid/omnyserver) is the first consumer: +an OmnyServer Hub can host an OmnyShell broker on the same port, so its fleet +dashboard opens a shell on any node with one button. + +```yaml +dependencies: + omnyshell_web: ^1.15.0 +``` + +The browser assets are not code, and pub does not serve a dependency's `web/` +directory to your app, so install them once: + +```sh +dart run omnyshell_web:copy_assets # xterm bundle + kit.css + terminal.css + boot.js → ./web +``` + +Then wire the terminal — this is the whole thing: + +```dart +import 'package:omnyshell_web/client.dart'; // OmnyShellService, AppError, … +import 'package:omnyshell_web/terminal.dart'; // the terminal stack +import 'package:omnyshell_web/ui_kit.dart'; // dom helpers, widgets, toasts + +final service = OmnyShellService(); +await service.connect(hubUri: 'hub.example.com', principal: 'alice', token: token); + +final term = XtermTerminalView(hostElement); +final session = await service.openShell(nodeId: 'worker-01', cols: 80, rows: 24); + +final shell = WebShellHost( + term: term, + session: session, + principal: 'alice', + nodeId: 'worker-01', + commands: null, // a plain remote shell — no `:ai`, no `:ide` +); + +mount(accessorySlot, TerminalAccessoryBar( + keys: shell, + term: term, + clipboardRead: defaultClipboardRead, + clipboardWrite: defaultClipboardWrite, + onToast: toasts.show, +).element); + +TerminalFitter( + term: term, + host: hostElement, + accessory: accessorySlot, + scaleTarget: screenRoot, +).attach(); +``` + +Notes worth knowing before you start: + +- **The AI agent and the IDE are opt-in.** `WebShellHost` never imports them; + passing `commands: null` (or `LocalCommandRegistry.withDefaults()`) gives a + plain shell. `command_shield` is pulled in by the `:ide` factory alone. +- **Give your app its own storage prefix.** `localStorage` is per-origin and one + Hub can serve two apps, so `SettingsStore(kv, prefix: 'myapp.')` keeps your + theme, Hub and token from clobbering OmnyShell Web's. +- **`TerminalFitter` is the part you do not want to rewrite.** Sizing a terminal + against a soft keyboard, a fullscreen toggle and a rotating phone is where the + bodies are buried. +- **Style the widgets.** The UI kit is styled by class names in `kit.css`; ship + it (the copy tool does) or the widgets render unstyled. + +The public surface is three barrels — `terminal.dart`, `ui_kit.dart` and +`client.dart`. Everything under `app/`, `ui/screens/` and `ui/settings_panel.dart` +is this app's own and is deliberately not exported; see +[ARCHITECTURE.md](ARCHITECTURE.md#public-surface). + ## Features - **Authentication** — bearer-token login, logout, session persistence, and diff --git a/bin/copy_assets.dart b/bin/copy_assets.dart new file mode 100644 index 0000000..4621e23 --- /dev/null +++ b/bin/copy_assets.dart @@ -0,0 +1,103 @@ +import 'dart:io'; +import 'dart:isolate'; + +/// Installs the browser assets the terminal and UI kit need into a consuming +/// app's `web/` directory. +/// +/// A Dart package ships its `web/` directory inside the pub archive, but nothing +/// *serves* it to a consumer — `build_web_compilers` only serves the root +/// package's own `web/`. So an app that imports `package:omnyshell_web/terminal.dart` +/// still has to have the xterm bundle and the stylesheets sitting in its own +/// `web/`, or the terminal loads to a blank box and the widgets render unstyled. +/// +/// ```sh +/// dart run omnyshell_web:copy_assets # into ./web +/// dart run omnyshell_web:copy_assets --out site # somewhere else +/// dart run omnyshell_web:copy_assets --force # overwrite existing files +/// ``` +/// +/// Re-run it after upgrading the package to pick up a new xterm or CSS fix; +/// without `--force` existing files are left alone, so local edits survive. +Future main(List args) async { + final out = _option(args, '--out') ?? 'web'; + final force = args.contains('--force') || args.contains('-f'); + final withTerminal = !args.contains('--no-terminal'); + + final packageWeb = await _packageWebDir(); + if (packageWeb == null) { + stderr.writeln( + 'error: could not locate the omnyshell_web package directory.\n' + 'Run this from a project that depends on omnyshell_web.', + ); + exitCode = 1; + return; + } + + final assets = [ + 'kit.css', + 'boot.js', + if (withTerminal) ...[ + 'terminal.css', + 'vendor/xterm/xterm.min.js', + 'vendor/xterm/xterm.min.css', + 'vendor/xterm/addon-fit.min.js', + ], + ]; + + final target = Directory(out); + if (!target.existsSync()) target.createSync(recursive: true); + + var copied = 0; + var skipped = 0; + for (final asset in assets) { + final source = File('${packageWeb.path}/$asset'); + if (!source.existsSync()) { + stderr.writeln('warning: $asset is missing from the package — skipping'); + continue; + } + final destination = File('${target.path}/$asset'); + if (destination.existsSync() && !force) { + stdout.writeln(' exists $asset (use --force to overwrite)'); + skipped++; + continue; + } + destination.parent.createSync(recursive: true); + source.copySync(destination.path); + stdout.writeln(' copied $asset'); + copied++; + } + + stdout + ..writeln('') + ..writeln('$copied copied, $skipped left alone → ${target.path}/') + ..writeln('') + ..writeln('Reference them from your index.html:') + ..writeln(' '); + if (withTerminal) { + stdout + ..writeln(' ') + ..writeln(' ') + ..writeln(' ') + ..writeln(' '); + } + stdout.writeln(' '); +} + +/// This package's own `web/` directory, resolved through the package config, so +/// it works from a path, git or pub.dev dependency alike. +Future _packageWebDir() async { + final lib = await Isolate.resolvePackageUri( + Uri.parse('package:omnyshell_web/terminal.dart'), + ); + if (lib == null) return null; + // …/omnyshell_web/lib/terminal.dart → …/omnyshell_web/web + final root = File.fromUri(lib).parent.parent; + final web = Directory('${root.path}/web'); + return web.existsSync() ? web : null; +} + +String? _option(List args, String name) { + final i = args.indexOf(name); + if (i == -1 || i + 1 >= args.length) return null; + return args[i + 1]; +} diff --git a/build/.build.manifest b/build/.build.manifest new file mode 100644 index 0000000..8d6aeb8 --- /dev/null +++ b/build/.build.manifest @@ -0,0 +1,56 @@ +.dart_tool/package_config.json +CHANGELOG.md +LICENSE +README.md +example/README.md +example/main.dart.js +packages/$sdk/dev_compiler/amd/require.js +packages/$sdk/dev_compiler/ddc/ddc_module_loader.js +packages/$sdk/dev_compiler/web/dart_stack_trace_mapper.js +packages/_fe_analyzer_shared/src/parser/parser.md +packages/analyzer/fix_data.yaml +packages/analyzer/src/summary/format.fbs +packages/analyzer/src/wolf/README.md +packages/build_runner/src/commands/serve/live_reload_client.js +packages/build_web_compilers/src/dev_compiler_stack_trace/stack_trace_mapper.dart.js +packages/dio/fix_data/fix.yaml +packages/lints/core.yaml +packages/lints/recommended.yaml +packages/node_preamble/preamble.js +packages/node_preamble/preamble.min.js +packages/omnyshell/src/infrastructure/backend/pty/pty_shell_backend.txt +packages/omnyshell/src/infrastructure/backend/pty/pty_shell_session.txt +packages/test/dart.js +packages/test/src/runner/browser/static/default.html.tpl +packages/test/src/runner/browser/static/favicon.ico +packages/test/src/runner/browser/static/host.css +packages/test/src/runner/browser/static/host.dart.js +packages/test/src/runner/browser/static/index.html +packages/test/src/runner/browser/static/run_wasm_chrome.js +packages/vm_service/DEPENDENCIES.md +packages/vm_service/src/DEPENDENCIES.md +packages/vm_service/src/README.md +packages/web/fix_data.yaml +packages/xml/src/xpath/AGENTS.md +pubspec.lock +pubspec.yaml +web/.DS_Store +web/boot.js +web/icons/apple-touch-icon.png +web/icons/favicon.png +web/icons/icon-192.png +web/icons/icon-512.png +web/icons/icon-maskable-192.png +web/icons/icon-maskable-512.png +web/icons/icon-omnygrid-bg.png +web/icons/icon-omnygrid.png +web/icons/logo-omnygrid.png +web/index.html +web/kit.css +web/main.dart.js +web/manifest.json +web/service_worker.js +web/terminal.css +web/vendor/xterm/addon-fit.min.js +web/vendor/xterm/xterm.min.css +web/vendor/xterm/xterm.min.js \ No newline at end of file diff --git a/build/CHANGELOG.md b/build/CHANGELOG.md new file mode 100644 index 0000000..c093154 --- /dev/null +++ b/build/CHANGELOG.md @@ -0,0 +1,569 @@ +## 1.15.0 + +**OmnyShell Web is now a package, not only an app.** Any Dart web app can embed a +real remote shell — PTY sizing, soft-keyboard insets, line editing, history and +flow control already solved — instead of rebuilding the hard parts. The first +consumer is the OmnyServer fleet dashboard, whose Hub can host an OmnyShell +broker on the same port, so a node's shell is one button away. + +```yaml +dependencies: + omnyshell_web: ^1.15.0 +``` + +```sh +dart run omnyshell_web:copy_assets # xterm bundle + stylesheets → your web/ +``` + +```dart +import 'package:omnyshell_web/terminal.dart'; + +final term = XtermTerminalView(host); +final session = await service.openShell(nodeId: id, cols: 80, rows: 24); +final shell = WebShellHost( + term: term, session: session, principal: 'alice', nodeId: id, + commands: null, // a plain shell: no :ai, no :ide +); +TerminalFitter(term: term, host: host, accessory: bar, scaleTarget: root).attach(); +``` + +The app itself is unchanged — same screens, same behaviour, same tests, all +passing unmodified. What follows is what had to move to make the terminal +embeddable. + +### Added + +- **Three public barrels.** `terminal.dart` (the terminal stack), `ui_kit.dart` + (dom, widgets, toasts, modal) and `client.dart` (`OmnyShellService`, + `Observable`, `AsyncState`, controllers, storage, router, theme). `app/`, + `ui/screens/` and `ui/settings_panel.dart` stay app-private — exporting them is + exactly what would let the shared tier re-acquire `AppContext` coupling. See + ARCHITECTURE.md → *Public surface*. +- **`TerminalFitter`** — the terminal's sizing engine, lifted out of + `SessionViewScreen`, where it was ~140 private lines. It is the hardest code in + the repo (a terminal that grows but never shrinks, renders 0×0, or hides its + last line behind a soft keyboard is what you get when a piece of it is wrong), + and no consumer should have to copy it. Both modes are preserved: a *fixed* + grid whose font rescales (the backend PTY cannot be resized) and *auto-fit*, + where xterm re-derives cols/rows. +- **`bin/copy_assets.dart`** (`dart run omnyshell_web:copy_assets`) — installs the + xterm bundle, `kit.css`, `terminal.css` and `boot.js` into a consuming app's + `web/`. A package ships its `web/` inside the pub archive, but pub never + *serves* it to a consumer, so without this the terminal loads to a blank box + and the widgets render unstyled. +- **`XtermTheme`** — the xterm palette, font size and family are now injectable + (`XtermTerminalView(host, theme: …)`), defaulting to OmnyShell's. xterm paints + to a canvas and so cannot inherit CSS custom properties; an embedding app has + to be able to say what its colours are. +- **`example/`** — a whole terminal app in one file, using only the barrels. It + doubles as a check that the public surface is sufficient without deep imports. +- **LICENSE** (Apache-2.0, matching the rest of OmnyGrid) and a `repository:` + link, both required to publish. + +### Changed + +- **Storage prefixes are parameterized**, defaulting to `omnyshell.` so nothing + changes for this app: `SettingsStore(kv, prefix: …)`, `NodeCache(kv, prefix: …)`, + `CommandHistory.load(prefix: …)`. `localStorage` is per-origin and one Hub can + serve two apps, which would otherwise share — and clobber — each other's theme, + Hub, token and terminal preferences. +- **`styles.css` is split** into `kit.css` (tokens, base, layout, widgets, modal, + toasts) and `terminal.css` (terminal chrome, key bar, fullscreen, keyboard + insets), so an app can take the terminal without the whole look, or vice versa. + Every selector is preserved; the app links both. The service-worker cache + version is bumped accordingly. +- **`deviceMetrics()` moved** from `ui/settings_panel.dart` to + `terminal/device_metrics.dart`. It is ten lines of pure `screen` reading, and + importing the terminal stack should not drag an `AppContext`-coupled settings + panel along with it. Still re-exported from its old home, so nothing breaks. + +--- + +## 1.14.12 + +### Changed + +- Bumped the `omnyshell` dependency to ^1.56.1. 1.56.0 lets the Hub broker be hosted on a + listener OmnyShell does not own (`OmnyShellHubService`, an omnyhub `Service`), rebuilds + `OmnyShellHub` on omnyhub's `OmnyHub` — TLS via `StaticTls`/`ReloadableFileTls`, `shelf` + dropped — and adds `NodeConfig.home`; 1.56.1 is a dependency-constraint refresh (omnyhub + ^1.5.1, omnydrive ^1.12.3). All of it is node/hub-side; the browser barrel is unchanged, so + the PWA is unaffected. Also bumped `build_runner` to ^2.15.1. Verified: the dart2js release + bundle builds and the VM + Chrome test suites pass against 1.56.1. + +## 1.14.11 + +### Changed + +- Bumped the `omnyshell` dependency to ^1.55.0. In that release OmnyShell's transport moves + onto the shared [omnyhub](https://pub.dev/packages/omnyhub) stack (`FrameConnection` over an + omnyhub `TypedConnection`). The change is native/`dart:io`-side; the browser + barrel (`WsChannelConnection`, the web transport factory) is unchanged, so the PWA is + unaffected. Verified: the dart2js release bundle builds and the VM + Chrome test suites pass + against 1.55.0. + +## 1.14.6 + +### Changed + +- Bumped the `omnyshell` dependency to ^1.49.0. That release expands the `omnyshell dashboard` + full-screen CLI TUI into a four-tab operator console (Nodes, Tunnels, Drive, AI), gives it a + blue-free monochrome dark theme, and fixes a stale-sessions flash when opening a node. The + changes are node/CLI-side; the browser barrel is unchanged, so this is a routine dependency + refresh. + +## 1.14.5 + +### Changed + +- Bumped the `omnyshell` dependency to ^1.48.0 and adopted its width-fitting shell prompt: the + browser prompt now passes the terminal width to `formatShellPrompt`, so on narrow (phone) + terminals it progressively drops the least-important pieces (git status counts → `@node` → + `cwd` shortened to `…/basename` → the whole git segment) to leave room to type, keeping the + `(⚠ privilege)` warning. It re-evaluates on terminal resize/rotation. + +## 1.14.4 + +### Changed + +- In the light theme the terminal is inverted (`filter: invert(1) hue-rotate(180deg)`) so it + reads as a light terminal instead of a dark box on a light page; the card frame is lightened + to match so no dark border rings it. The dark theme is unchanged. + +## 1.14.3 + +### Changed + +- Bumped the `omnyshell` dependency to ^1.47.0. That release adds the `omnyshell dashboard` + full-screen CLI TUI (which itself ports UX from this web client — session sorting/highlight, + soft refresh failures, friendly login errors). The changes are node/CLI-side; the browser + barrel is unchanged, so this is a routine dependency refresh. + +## 1.14.2 + +### Added + +- **Ctrl combinations popup on the terminal key bar.** The `Ctrl` button now opens a menu of + common combos (^A ^B ^C ^D ^F ^L ^Q ^S ^N ^P ^W ^Z), a custom single-character entry, and a + sticky "Ctrl + next key" modifier. A one-tap quick key repeats the last-used combo (defaults + to Ctrl-C); the two read as one segmented control. +- **Sessions preview on the node info screen.** Opening a node shows a card summarizing its + current sessions (count + a compact list) with a `View all` button, before visiting the list. + +### Changed + +- **Sessions list ordering and highlight.** The last-interacted session (clicked from a node's + preview, resumed, or freshly created/opened) is highlighted with an accent ring and sorted to + the top, followed by sessions running a program, then detached before attached, then newer + first. A running program is shown as a green badge beside the attached/detached badge. +- **Sessions list layout.** The node id is shown big and white (like the node-info title); the + `Sessions` heading is slightly smaller; the `New` and `Refresh` buttons are compact; and the + per-session action buttons are smaller and fit on a single line on phones. +- **Top menu polish.** The theme (`System`/`Light`/`Dark`) and `Sign out` buttons use smaller + text; the settings gear is slightly larger. On the node screen the `Sessions` button was + removed and `New shell` moved to the top-right. + +## 1.14.1 + +### Fixed + +- **Typing after TAB/Arrow-Up no longer staircases a new prompt line per keystroke on a narrow + terminal (iOS Safari).** The shared `LineEditor` repainted the input line assuming it fits one + row, so once a completed path or recalled command wrapped, every keystroke redrew a fresh + prompt. `WebShellHost` now feeds the xterm terminal width to the editor (and updates it on + resize), and the `omnyshell` dependency is bumped to ^1.46.0, which repaints across wrapped + rows. Reproduced on iOS Safari (narrow terminal); desktop Chrome was wide enough to avoid the + wrap. + +## 1.14.0 + +### Changed + +- Bumped the `omnyshell` dependency to ^1.45.0. That release adds live PTY resize to the node's + default `script` backend (no FFI) and makes a resume apply the resuming device's geometry — so, + together with the 1.13.2 measure-before-open fix, resuming on a differently-sized device now + resizes the shell and reflows a full-screen program. The upstream changes are node/CLI-side; the + browser barrel is unchanged, so this is a routine dependency refresh. + +## 1.13.2 + +### Fixed + +- Resuming a session now opens at the **current device's** terminal size instead of briefly at + xterm's 80×24 default. The resume path read the terminal size synchronously, before the xterm + view's deferred fit had run; it now fits to the container first, so the size sent to the node + is correct on the first try (no reflow flash). When the node runs omnyshell 1.45.0+ (which + resizes the resumed PTY to the size the client opens with), resuming on a differently-sized + device reflows the shell / a full-screen program to this device. (No dependency bump — the + client's `omnyshell` package is unchanged.) + + +### Fixed + +- Resuming a session whose program is in the **alternate screen** (nano, vim, + `claude`, …) no longer corrupts it. The web client was always priming the + shell on connect — running the init line and a cwd/marker command to draw the + prompt — even when resuming into a full-screen program, so those commands were + injected into the program. The host now honors the session's + `resumedInAltScreen` flag (already reported by the node on resume): it starts + in passthrough and skips priming, letting the replayed output repaint the + program and its queued marker restore the prompt when it exits — matching the + CLI's `connect` loop. + +## 1.13.0 + +### Changed + +- **The terminal now uses omnyshell's shared `LineEditor`** instead of a + hand-rolled, append-only editor, so the browser behaves identically to the + CLI. The visible gain is **full mid-line editing**: Left/Right, Home/End (and + Ctrl-A/Ctrl-E), and Delete now move and edit within the line rather than only + appending at the end. History navigation, TAB completion, the `:ai` + confirmation prompts and the `:ide` full-screen takeover are all driven + through the same editor. +- Ctrl-C semantics now match the CLI: at idle it clears the line and interrupts + the remote shell; while the `:ai` agent owns the screen it fires the agent's + abort and unblocks any pending confirmation; during a `:ide` session or while + a remote program owns the screen it is delivered to that program. + + +### Changed + +- Bumped the `omnyshell` dependency to ^1.44.0 and adopted its new shared, + browser-safe building blocks, replacing the web client's duplicated copies so + the two clients can't drift apart: + - the AI default-model map → `defaultModelFor` (drops the local `_defaultModel`); + - the `:ide` remote-root resolution and shell-family → command syntax → + `resolveRemoteIdeRoot` / `ideCommandSyntaxFor` (drops the local copies and + the direct `package:path` dependency); + - the IDE terminal driver's ANSI emission → `XtermTerminalDriver` now extends + the shared `AnsiTerminalDriver` and only supplies the xterm.js byte sink, + size, and input/resize streams; + - command history now implements the shared `CommandHistoryStore` interface. +- The shell prompt is now formatted by the shared `formatShellPrompt`, so it + matches the CLI: the working directory is cyan (was blue), the git segment is + blue with a red branch and green status counts (was yellow), and the + superuser is shown with a bold-red `(⚠ root)` warning (was a `#` symbol). + + +### Added + +- **`:ide` (alias `:edit`) — the full-screen terminal IDE in the browser.** + Typing `:ide [path]` in a session opens omnyshell's TUI IDE on the **connected + node**, rendered right inside the xterm.js terminal: a file-tree sidebar with + git status, tabbed editing with syntax highlighting and a git-change gutter, an + integrated terminal, and an AI agent panel. `Ctrl-Q` returns to the shell. + - The IDE engine (`IdeApp`/`ScreenBuffer`/`RemoteWorkspace`, exported by + omnyshell ^1.43.1) is `dart:io`-free; this adds the browser glue: an + `XtermTerminalDriver` that maps the engine's alternate-screen frames to + xterm.js (and its `onData`/`onResize` back to the engine), and a full-screen + takeover seam in `WebShellHost` (the browser counterpart to the CLI's + `LineEditor.suspendInput`) that diverts every raw keystroke to the IDE while + it owns the screen and restores the prompt on exit. + - The agent panel routes provider calls through the Hub (same precedence as + `:ai`: custom key → Hub default → setup help) and gates its `run_command` + tool with the same `command_shield` the CLI uses. File operations run on the + node over the connected session (`RemoteWorkspace`). + +## 1.10.1 + +### Fixed + +- The release web build (`dart2js`) produced no `main.dart.js` under omnyshell + 1.43.0: that release's "web-safe" barrel transitively imported `dart:io` (via + `RemoteWorkspace → local_workspace.dart`), so dart2js silently skipped + compiling `web/main.dart`. Bumped the `omnyshell` dependency to ^1.43.1, which + moves `WorkspaceException` into the `dart:io`-free `Workspace` port and makes + the barrel genuinely browser-compilable again. No web code change. + +## 1.10.0 + +### Changed + +- Bumped the `omnyshell` dependency to ^1.43.0. The upstream release refactors + the `:ide` engine behind an async, `dart:io`-free `Workspace` port so it now + **compiles to JavaScript** for the browser: the web client barrel now exports + `IdeApp`, `Workspace`, `RemoteWorkspace`, `TerminalDriver`, `ScreenBuffer` and + the key decoder, the building blocks for embedding the terminal IDE in a web + app (supply a `TerminalDriver` that renders `ScreenBuffer` frames into a + browser terminal and a `RemoteWorkspace` over the connected client). This bump + only pulls in those exports; the web client does not yet wire up the IDE, so + there is no user-facing change — a routine dependency refresh. + +## 1.9.0 + +### Changed + +- Bumped the `omnyshell` dependency to ^1.42.0. The upstream release adds the + full-screen `:ide` TUI (a terminal IDE with a file tree, tabs, syntax + highlighting, a git-change gutter, an integrated terminal and an AI agent + panel) plus an optional starting directory for `omnyshell local`. All of it is + native-only (`:ide` is browser-excluded because it needs `dart:io`), so it does + not affect the browser client; this is a routine dependency refresh. + +## 1.8.1 + +### Changed + +- Bumped the `omnyshell` dependency to ^1.41.1. The upstream changes (a native + `omnyshell local` CLI mode and README documentation) do not affect the browser + client; this is a routine dependency refresh. + +### Documentation + +- README: added the live PWA link (), + documented the in-browser `:ai` agent (provider/model/key or Hub default, with + the post-run token-usage stats line), and corrected the install instructions — + the client now depends on the published `omnyshell` package from pub.dev, not a + `../omnyshell` path override (which is now a local-only dev aid). + +## 1.8.0 + +### Changed + +- Bumped the `omnyshell` dependency to ^1.40.0, which upgrades the `:ai` agent's + command shield (`command_shield` ^1.4.0) with a correct bash/POSIX + file-descriptor redirection parser. The discard/merge idioms the model + routinely emits — `cmd 2>&1`, `cmd >/dev/null 2>&1`, `&>/dev/null` — are now + read as a single clean command instead of producing a spurious "Redirection + without a target" diagnostic and a phantom invocation, and they no longer + over-report a filesystem write. + +## 1.7.0 + +### Added + +- Bumped the `omnyshell` dependency to ^1.39.0, which adds an AI agent + token-usage summary to the web client: + - After every `:ai` answer the agent prints a muted (gray) stats line — shown + just before the "chat to continue / Enter to end" prompt so the running totals + are visible before the interaction ends — e.g. `ai: 12,840 tokens (in 10,210 · + out 2,630 · cached 1,024) · 78 tok/s · 4 requests · 14.6s` — reporting tokens + used (input/output, plus prompt-cache hits), the output generation speed + (tok/s), the number of model requests, and the wall-clock duration. Totals + accumulate across a multi-turn session and the line also shows on abort or a + provider error. + - Generation speed stays accurate over the Hub proxy: the Hub reports its real + upstream request time, so the browser↔Hub round-trip is excluded from tok/s. + +## 1.6.0 + +### Added + +- Bumped the `omnyshell` dependency to ^1.38.0, which improves the `:ai` agent in + the web client: + - A magenta divider (`╌`) is drawn just before a presented plan, separating it + from the preceding investigation output so the "investigating → here is the + plan" transition reads at a glance. + - After the final answer the agent asks whether to keep chatting or end. Typing + a message continues the conversation in the **same context** (a fresh step + budget is granted and the in-flight plan state resets); pressing Enter ends + the agent. + +## 1.5.2 + +### Fixed + +- The `:ai` agent no longer flashes a fresh shell prompt line between its + command outputs in the web client. While the agent owns the screen its idle + prompt is now suppressed — matching the CLI — and restored once the agent + finishes. Interactive confirmation prompts are unaffected. + +## 1.5.1 + +### Changed + +- Bumped the `omnyshell` dependency to ^1.37.0, which improves the `:ai` agent: + plan mode now continues from the failed step on a re-presented plan (no + re-running already-succeeded, possibly non-idempotent commands), and + version/help probes (`node --version`, `dart --version`, …) are classified as + safe investigation instead of mutating commands. + +### Fixed + +- The `:ai` agent now runs its commands in the **live PTY session** (POSIX + shells), matching the CLI, so interactive prompts work — e.g. `sudo` can ask + for a password and the user types it directly in the terminal. Previously the + web agent used a one-off `exec` with no TTY, so `sudo` failed with "a terminal + is required to read the password". Non-POSIX shells still fall back to `exec`. + +## 1.5.0 + +### Added + +- AI agent in the browser: the `:ai` command now works in the web client. A + browser can't call AI provider APIs directly (CORS), so provider HTTPS calls are + routed through the Hub; the agent then investigates the node, plans, and runs + commands toward a natural-language goal — the same three modes as the CLI + (`standard`, `plan`, `auto`). Requires omnyshell ^1.36.0 (Hub AI proxy + + `HubHttpClient`); to use the "Hub default" path the Hub must be started with AI + credentials (`omnyshell hub start --ai-config `, or `~/.omnyshell/ai.yaml` + / `*_API_KEY` env), otherwise bring your own key in Settings. +- AI settings in the global Settings panel (⚙): use the Hub's default + provider/model (the API key stays on the Hub and is injected when proxying) or + bring your own provider/model + API key (stored in this browser only, forwarded + via the Hub). Also sets the default agent mode and reply language. +- Interactive agent prompts in the terminal — confirmations are read inline, and + Ctrl-C aborts a running `:ai` agent. + +### Changed + +- Bumped the `omnyshell` dependency to ^1.36.0. + +### Fixed + +- The `:ai` agent's captured command output no longer "staircases" in the + terminal: local-command output now normalizes bare LFs to CRLF (the browser + terminal is a pipe with no line discipline, unlike the remote shell's PTY). + +## 1.4.1 + +### Fixed + +- The login footer showed the wrong Web Client version (`1.3.0`) in the 1.4.0 + release: the hardcoded `webClientVersion` constant wasn't bumped alongside + `pubspec.yaml`. Now reports the correct version. + +## 1.4.0 + +### Added + +- Selectable terminal dimensions for new sessions, in a new global Settings + panel (⚙ in the header): Auto-fit (the previous behavior), a Standard 80×24, + device-aware "Fit landscape" / "Fit portrait" presets computed for the current + screen, and a Custom cols×rows entry. The PTY can't be resized after a session + starts, so a fixed grid is pinned and the font is scaled to fit it — the + terminal tracks the window in both orientations without changing cols/rows. +- Terminal text-size control (Auto / Smaller / Normal / Larger). Auto derives the + font from the chosen columns so they fill the width; the on-screen key bar + scales with the text, so a smaller font yields smaller keys and more columns on + a phone. Dimension choices apply to the next session; text size applies live. + +### Changed + +- Bumped the `omnyshell` dependency to ^1.34.0. +- The terminal host is now pinned to a definite height equal to the available + space, so it reliably shrinks as well as grows with the window (previously a + too-tall canvas — e.g. after exiting fullscreen — could not shrink back). +- Exiting fullscreen forces an xterm redraw and the terminal re-fits across a few + frames after mount, fixing a stale height that previously needed a manual + reflow. + +### Fixed + +- "Terminate" on the session screen now reliably ends the session on the node. + It uses the control-plane kill-by-id (the same path the sessions list uses) + instead of an in-channel close, whose `ChannelClose` frame a browser WebSocket + could drop on teardown — leaving the node to park the session so it stayed + listed. + +## 1.3.0 + +### Added + +- Command history in the terminal: Up/Down walk previously entered commands + (prefix-restricted when text has been typed), persisted to `localStorage` and + scoped per principal+node. This reuses the `omnyshell` package's shared + history primitives (`CommandHistoryBuffer` + `HistoryCursor`, requires + `omnyshell` ^1.33.0), so it behaves identically to the CLI — only the storage + differs (browser storage vs a history file). + +### Changed + +- The login form panel uses more of the screen width on phones: the outer gutter + and the card's inner padding are trimmed on small viewports (respecting + safe-area insets), giving the inputs noticeably more room. + +## 1.2.1 + +### Changed + +- Maintenance release to exercise the release-triggered GitHub Pages deploy. + +## 1.2.0 + +### Added + +- The login screen footer shows the Web Client version and the OmnyShell version + (read from the package's `omnyShellVersion`, requires `omnyshell` ^1.32.0). + +## 1.1.0 + +### Added + +- Fullscreen toggle for the terminal: a button expands the terminal to fill the + whole window (hiding the app header and toolbar) so mobile devices get the + maximum screen area, with a floating exit button to restore the normal layout. +- TAB completion in the terminal — pressing Tab now completes the word under the + cursor by running the shell's completion command on the node (the same + mechanism the CLI uses), instead of being dropped. +- Local `:` commands now work in the web terminal (`:help`, `:tree`, `:tunnel`, + `:info`, `:whoami`, `:ping`, `:detach`, `:exit`, …). They are handled + client-side via the shared `omnyshell` registry and never forwarded to the + remote shell. Filesystem commands (`:download`/`:upload`/`:drive`) are + intentionally unavailable in the browser. + +### Fixed + +- The terminal now refits reliably on fullscreen enter/exit (and keyboard / + rotation / resize) via a `ResizeObserver`, instead of mis-sizing until the + keyboard was toggled. +- After exiting fullscreen the terminal no longer overflows the screen on iOS: + the locked terminal screen is anchored to the visible viewport + (`--vvh`/`100dvh`) rather than the (taller) layout viewport, so the bottom row + and key bar stay on-screen. +- The login Hub and Principal fields opt out of mobile auto-capitalization and + auto-correction (`autocapitalize=none`, `autocorrect=off`, `spellcheck=false`) + so the keyboard no longer capitalizes the first letter. + +### Changed + +- The terminal floors its height at the available space (between the chrome + above it and the key bar reserved below it) so it always uses the full area + without overlapping the key bar — except in fullscreen or while the keyboard + is open. +- Navigating to another screen (nodes / sessions / …) now resets scroll to the + top instead of inheriting the previous screen's scroll position. +- Long key/value entries (e.g. a node UID) truncate with an ellipsis instead of + widening the page on mobile. +- Entering/exiting fullscreen now scrolls the terminal to the bottom (latest + output / prompt) and re-fits at a few delays (next frame, 120/300/500 ms) to + catch the mobile browser chrome animating in/out, so the terminal box and key + bar settle to the right size/position. +- On the terminal screen the page no longer scrolls or rubber-bands; the + terminal fills the space below the toolbar and only its own content (xterm + scrollback) scrolls. +- The terminal now stays usable with the mobile soft keyboard open: the layout + tracks the visual viewport so the on-screen key bar sits just above the + keyboard and the prompt row stays visible (xterm re-fits on keyboard + open/close). Implemented via a `visualViewport` tracker exposing `--vvh`/`--kb` + and a `.keyboard-open` flag. +- Added a **New Session** button to the sessions list so a fresh shell can be + opened without going back to the node screen. +- Removed the redundant session title ("New shell" / "Session …") from the + terminal toolbar to reclaim space. +- The on-screen accessory key bar now places Home/End/PgUp/PgDn at the end + (after Copy/Paste). +- Disabled pinch-to-zoom on mobile (viewport meta + `touch-action` + iOS gesture + handlers) so two-finger gestures don't zoom the page; panning/scrolling stays. +- The terminal toolbar (Sessions / Fullscreen / Detach / Terminate) uses + smaller buttons and wraps instead of overflowing, so the row fits a phone + width. +- Rotating the device while in fullscreen now exits fullscreen, since the + layout isn't usable across an orientation change. +- Bumped `omnyshell` to ^1.31.0 (for the browser-safe local-command layer). + +## 1.0.0 + +- Initial release of the OmnyShell web client. +- Browser-only client over the real `omnyshell` protocol (no custom backend), + enabled by a browser-compatible transport seam added to the `omnyshell` + package. +- Authentication (bearer token) with logout, session persistence, auto-restore, + and one-click reconnect after a dropped connection. +- Node discovery: list, detail (platform/capabilities/labels/status), refresh, + cache-backed instant paint. +- Session management: list, peek, detach, resume, kill, and open a new shell. +- Interactive xterm.js terminal wired to remote sessions. +- Light / dark / system theming with a persistent selector and no flash on load. +- Comprehensive unit, integration, widget/DOM, and end-to-end tests. diff --git a/build/LICENSE b/build/LICENSE new file mode 100644 index 0000000..7a4a3ea --- /dev/null +++ b/build/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/build/README.md b/build/README.md new file mode 100644 index 0000000..ff7f215 --- /dev/null +++ b/build/README.md @@ -0,0 +1,217 @@ +# OmnyShell Web + +A browser-only client for the +[OmnyShell](https://github.com/OmnyGrid/omnyshell) ecosystem. Connect to a Hub, +discover nodes, and manage interactive sessions — entirely from the browser, with +**no custom backend**. All communication is the browser talking directly to +existing OmnyShell infrastructure over a single WebSocket, using the real +`omnyshell` package APIs and wire protocol (no duplicated business logic). + +**Live app:** — installable as a PWA +(see [Install as an app](#install-as-an-app-pwa)). + +Built as a plain Dart→JS web app (`package:web` + `build_web_compilers`), not +Flutter. + +This repository is **two things**: the app above, and the **package behind it**. +If you are building your own Dart web app, read the next section — you can embed +a real remote shell without re-implementing any of this. + +## Use as a package: embed a terminal in your web app + +`package:omnyshell_web` exposes the reusable half of the app, so another web +project gets a live remote shell — with PTY sizing, soft-keyboard handling, line +editing, history and flow control already solved — instead of a blank canvas. +[OmnyServer Web](https://github.com/OmnyGrid/omnyserver) is the first consumer: +an OmnyServer Hub can host an OmnyShell broker on the same port, so its fleet +dashboard opens a shell on any node with one button. + +```yaml +dependencies: + omnyshell_web: ^1.15.0 +``` + +The browser assets are not code, and pub does not serve a dependency's `web/` +directory to your app, so install them once: + +```sh +dart run omnyshell_web:copy_assets # xterm bundle + kit.css + terminal.css + boot.js → ./web +``` + +Then wire the terminal — this is the whole thing: + +```dart +import 'package:omnyshell_web/client.dart'; // OmnyShellService, AppError, … +import 'package:omnyshell_web/terminal.dart'; // the terminal stack +import 'package:omnyshell_web/ui_kit.dart'; // dom helpers, widgets, toasts + +final service = OmnyShellService(); +await service.connect(hubUri: 'hub.example.com', principal: 'alice', token: token); + +final term = XtermTerminalView(hostElement); +final session = await service.openShell(nodeId: 'worker-01', cols: 80, rows: 24); + +final shell = WebShellHost( + term: term, + session: session, + principal: 'alice', + nodeId: 'worker-01', + commands: null, // a plain remote shell — no `:ai`, no `:ide` +); + +mount(accessorySlot, TerminalAccessoryBar( + keys: shell, + term: term, + clipboardRead: defaultClipboardRead, + clipboardWrite: defaultClipboardWrite, + onToast: toasts.show, +).element); + +TerminalFitter( + term: term, + host: hostElement, + accessory: accessorySlot, + scaleTarget: screenRoot, +).attach(); +``` + +Notes worth knowing before you start: + +- **The AI agent and the IDE are opt-in.** `WebShellHost` never imports them; + passing `commands: null` (or `LocalCommandRegistry.withDefaults()`) gives a + plain shell. `command_shield` is pulled in by the `:ide` factory alone. +- **Give your app its own storage prefix.** `localStorage` is per-origin and one + Hub can serve two apps, so `SettingsStore(kv, prefix: 'myapp.')` keeps your + theme, Hub and token from clobbering OmnyShell Web's. +- **`TerminalFitter` is the part you do not want to rewrite.** Sizing a terminal + against a soft keyboard, a fullscreen toggle and a rotating phone is where the + bodies are buried. +- **Style the widgets.** The UI kit is styled by class names in `kit.css`; ship + it (the copy tool does) or the widgets render unstyled. + +The public surface is three barrels — `terminal.dart`, `ui_kit.dart` and +`client.dart`. Everything under `app/`, `ui/screens/` and `ui/settings_panel.dart` +is this app's own and is deliberately not exported; see +[ARCHITECTURE.md](ARCHITECTURE.md#public-surface). + +## Features + +- **Authentication** — bearer-token login, logout, session persistence, and + automatic restore on reload. +- **Nodes** — list, view details (platform, capabilities, labels, online + status), refresh, with cache-backed instant paint. +- **Sessions** — list active/detached sessions, view status, peek a screen + snapshot, detach, resume, and kill. Open a fresh interactive shell. +- **Interactive terminal** — a real [xterm.js](https://xtermjs.org) terminal + wired to the remote session (stdin/stdout/stderr, resize, flow control), with + selectable terminal dimensions and adjustable text/key sizing. +- **AI agent (`:ai`)** — drive the node in natural language from the terminal. + Configure a provider/model and API key in Settings, or use the Hub's default + provider (the key stays on the Hub). Commands run in the live session, gated by + the same `command_shield` safety checks as the CLI, and each interaction ends + with a token-usage stats line (tokens, tok/s, requests, duration). +- **Terminal IDE (`:ide`, alias `:edit`)** — open the full-screen TUI IDE on the + connected node, right inside the browser terminal: a file-tree sidebar with git + status, tabbed editing with syntax highlighting and a git-change gutter, an + integrated terminal, and an AI agent panel (gated by the same `command_shield` + as `:ai`). `:ide [path]` opens a directory; `Ctrl-Q` returns to the shell. The + IDE operates on the remote node over the connected session. +- **Theming** — light, dark, and system themes with a persistent selector and + no flash of the wrong palette on load. +- **Resilience** — explicit loading/empty/error states everywhere, dropped- + connection detection, and one-click reconnect. + +These map to the `omnyshell` CLI's client commands: `login`/`logout`, +`nodes list`, `connect`, `sessions list/peek/resume/detach/kill`, and the +in-session `:ai` agent and `:ide` terminal IDE. + +## Running + +This app depends on the published `omnyshell` package (from pub.dev), which +includes a browser-compatible transport (see +[ARCHITECTURE.md](ARCHITECTURE.md) → *omnyshell browser seam*). To develop +against a local checkout, drop a git-ignored `pubspec_overrides.yaml` with +`dependency_overrides: { omnyshell: { path: ../omnyshell } }`. + +```bash +dart pub get + +# Dev server with hot rebuild: +dart pub global activate webdev +webdev serve # → http://localhost:8080 + +# Production build: +webdev build # → build/ +``` + +You'll need a running Hub and at least one Node to connect to. From the +`omnyshell` repo: + +```bash +cd ../omnyshell +./run-hub.sh # starts a Hub and prints a grant token +dart run bin/omnyshell.dart node start --id web-01 # register a node +``` + +Then open the web app, enter the Hub address (e.g. `localhost:8443`), your +principal, and the grant token. + +### TLS / self-signed Hubs + +The browser owns the TLS stack, so there is **no in-app certificate bypass**. To +use a self-signed/dev Hub, trust its certificate at the OS/browser level first +(or front the Hub with a publicly-trusted certificate). The login screen surfaces +this guidance instead of a fake "insecure" toggle. + +## Install as an app (PWA) + +The app is live at . + +OmnyShell Web is an installable Progressive Web App on Android and iOS — it adds +a home-screen icon and launches standalone (no browser chrome), with the app +shell cached by a service worker so it loads instantly and survives flaky +networks. + +- **Android (Chrome/Edge):** open → + menu → **Install app** / *Add to Home screen*. +- **iOS/iPadOS (Safari):** open → + **Share** → **Add to Home Screen**. + +Installability requires the app to be served over **HTTPS** (or `localhost` for +testing). The status bar and theme colour follow the in-app light/dark theme, +and the layout respects device safe areas (notch / home indicator). + +Icons are generated from a single source: + +```bash +dart run tool/generate_icons.dart # regenerates web/icons/*.png +``` + +## Testing + +```bash +dart analyze +dart test # unit + integration (VM, fast) +dart test -p chrome test/ui test/e2e # widget/DOM + end-to-end (headless Chrome) +``` + +- **Unit** — storage, state controllers, routing, error mapping, time + formatting (pure, VM). +- **Integration** — `OmnyShellService` driven through a fake Hub connection + (`test/support/fake_hub.dart`) that speaks the real protocol, exercising the + actual `ClientRuntime`. +- **Widget/DOM** — each screen and component rendered into the DOM and asserted + (`test/ui`). +- **End-to-end** — full user journeys over the fake Hub (`test/e2e`): login → + nodes → detail → sessions → peek → logout, session persistence across reload, + and reconnection after a dropped connection. + +## Security notes + +- The bearer token, when "remember" is checked, is stored in `localStorage` and + is therefore reachable by any script on the page. Leave it unchecked to keep + the token in memory only. Serve the app with a strict Content-Security-Policy + in production. +- No credentials are sent to anyone but the configured Hub. + +See [ARCHITECTURE.md](ARCHITECTURE.md) for the design in depth. diff --git a/build/example/README.md b/build/example/README.md new file mode 100644 index 0000000..9503cef --- /dev/null +++ b/build/example/README.md @@ -0,0 +1,36 @@ +# Embedding an OmnyShell terminal + +A minimal web app that connects to a Hub and opens a live shell on a node — +everything `package:omnyshell_web` gives you, and nothing else. + +`main.dart` is the whole app. It uses only the three public barrels +(`client.dart`, `terminal.dart`, `ui_kit.dart`), so it also serves as a check +that they are sufficient on their own: if this compiles without reaching into +`package:omnyshell_web/src/...`-style deep paths, the public surface is complete. + +## Run it + +```sh +dart pub get +dart run omnyshell_web:copy_assets # xterm bundle + kit.css + terminal.css → web/ +dart pub global activate webdev +webdev serve +``` + +You need a Hub and a node to connect to: + +```sh +cd ../../omnyshell +./run-hub.sh # prints a grant token +dart run bin/omnyshell.dart node start --id web-01 +``` + +## What to look at + +- `WebShellHost` drives the session: prompt, echo, line editing, history, + Ctrl-C routing, PTY resize. Passing `commands: null` gives a plain remote + shell with no `:ai` and no `:ide`. +- `TerminalFitter` keeps the terminal correctly sized against window resizes, a + soft keyboard and fullscreen. It is the part you really don't want to rewrite. +- `TerminalAccessoryBar` supplies Esc/Tab/Ctrl/arrows and copy-paste, which a + touch device has no keys for. diff --git a/build/example/main.dart.js b/build/example/main.dart.js new file mode 100644 index 0000000..f39a8ef --- /dev/null +++ b/build/example/main.dart.js @@ -0,0 +1,10315 @@ +(function dartProgram(){function copyProperties(a,b){var s=Object.keys(a) +for(var r=0;r=0)return true +if(typeof version=="function"&&version.length==0){var q=version() +if(/^\d+\.\d+\.\d+\.\d+$/.test(q))return true}}catch(p){}return false}() +function inherit(a,b){a.prototype.constructor=a +a.prototype["$i"+a.name]=a +if(b!=null){if(z){Object.setPrototypeOf(a.prototype,b.prototype) +return}var s=Object.create(b.prototype) +copyProperties(a.prototype,s) +a.prototype=s}}function inheritMany(a,b){for(var s=0;s4294967295)throw A.e(A.Y(a,0,4294967295,"length",null)) +return J.oC(new Array(a),b)}, +lW(a,b){if(a<0)throw A.e(A.bj("Length must be a non-negative integer: "+a,null)) +return A.w(new Array(a),b.h("A<0>"))}, +lU(a,b){if(a<0)throw A.e(A.bj("Length must be a non-negative integer: "+a,null)) +return A.w(new Array(a),b.h("A<0>"))}, +oC(a,b){var s=A.w(a,b.h("A<0>")) +s.$flags=1 +return s}, +lX(a,b){var s=t.e8 +return J.nQ(s.a(a),s.a(b))}, +lY(a){if(a<256)switch(a){case 9:case 10:case 11:case 12:case 13:case 32:case 133:case 160:return!0 +default:return!1}switch(a){case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8232:case 8233:case 8239:case 8287:case 12288:case 65279:return!0 +default:return!1}}, +oD(a,b){var s,r +for(s=a.length;b0;b=r){r=b-1 +if(!(r").v(c).h("ex<1,2>")) +return new A.bM(a,b.h("@<0>").v(c).h("bM<1,2>"))}, +oF(a){return new A.c_("Field '"+a+"' has been assigned during initialization.")}, +oH(a){return new A.c_("Field '"+a+"' has not been initialized.")}, +oG(a){return new A.c_("Field '"+a+"' has already been initialized.")}, +kF(a){var s,r=a^48 +if(r<=9)return r +s=a|32 +if(97<=s&&s<=102)return s-87 +return-1}, +b9(a,b){a=a+b&536870911 +a=a+((a&524287)<<10)&536870911 +return a^a>>>6}, +iX(a){a=a+((a&67108863)<<3)&536870911 +a^=a>>>11 +return a+((a&16383)<<15)&536870911}, +kw(a,b,c){return a}, +lu(a){var s,r +for(s=$.at.length,r=0;rc)A.v(A.Y(b,0,c,"start",null))}return new A.ej(a,b,c,d.h("ej<0>"))}, +c3(a,b,c,d){if(t.d.b(a))return new A.bX(a,b,c.h("@<0>").v(d).h("bX<1,2>")) +return new A.c2(a,b,c.h("@<0>").v(d).h("c2<1,2>"))}, +it(){return new A.ax("No element")}, +lT(){return new A.ax("Too few elements")}, +hj:function hj(a){this.a=0 +this.b=a}, +dv:function dv(){}, +dQ:function dQ(a,b){this.a=a +this.$ti=b}, +bM:function bM(a,b){this.a=a +this.$ti=b}, +ex:function ex(a,b){this.a=a +this.$ti=b}, +bN:function bN(a,b){this.a=a +this.$ti=b}, +i_:function i_(a,b){this.a=a +this.b=b}, +c_:function c_(a){this.a=a}, +kM:function kM(){}, +iO:function iO(){}, +q:function q(){}, +W:function W(){}, +ej:function ej(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.$ti=d}, +b5:function b5(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.d=null +_.$ti=c}, +c2:function c2(a,b,c){this.a=a +this.b=b +this.$ti=c}, +bX:function bX(a,b,c){this.a=a +this.b=b +this.$ti=c}, +e3:function e3(a,b,c){var _=this +_.a=null +_.b=a +_.c=b +_.$ti=c}, +X:function X(a,b,c){this.a=a +this.b=b +this.$ti=c}, +co:function co(a,b){this.a=a +this.$ti=b}, +ep:function ep(a,b){this.a=a +this.$ti=b}, +ag:function ag(){}, +nn(a){var s=v.mangledGlobalNames[a] +if(s!=null)return s +return"minified:"+a}, +uz(a,b){var s +if(b!=null){s=b.x +if(s!=null)return s}return t.aU.b(a)}, +J(a){var s +if(typeof a=="string")return a +if(typeof a=="number"){if(a!==0)return""+a}else if(!0===a)return"true" +else if(!1===a)return"false" +else if(a==null)return"null" +s=J.b0(a) +return s}, +c9(a){var s,r=$.m4 +if(r==null)r=$.m4=Symbol("identityHashCode") +s=a[r] +if(s==null){s=Math.random()*0x3fffffff|0 +a[r]=s}return s}, +l3(a,b){var s,r=/^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(a) +if(r==null)return null +if(3>=r.length)return A.c(r,3) +s=r[3] +if(s!=null)return parseInt(a,10) +if(r[2]!=null)return parseInt(a,16) +return null}, +fS(a){var s,r,q,p +if(a instanceof A.n)return A.as(A.b_(a),null) +s=J.cA(a) +if(s===B.a1||s===B.a3||t.bI.b(a)){r=B.v(a) +if(r!=="Object"&&r!=="")return r +q=a.constructor +if(typeof q=="function"){p=q.name +if(typeof p=="string"&&p!=="Object"&&p!=="")return p}}return A.as(A.b_(a),null)}, +mb(a){var s,r,q +if(a==null||typeof a=="number"||A.hG(a))return J.b0(a) +if(typeof a=="string")return JSON.stringify(a) +if(a instanceof A.bn)return a.k(0) +if(a instanceof A.aX)return a.dg(!0) +s=$.nN() +for(r=0;r<1;++r){q=s[r].hy(a) +if(q!=null)return q}return"Instance of '"+A.fS(a)+"'"}, +pk(a,b,c){var s,r,q,p +if(c<=500&&b===0&&c===a.length)return String.fromCharCode.apply(null,a) +for(s=b,r="";s>>0,s&1023|56320)}}throw A.e(A.Y(a,0,1114111,null,null))}, +pl(a,b,c,d,e,f,g,h,i){var s,r,q,p=b-1 +if(0<=a&&a<100){a+=400 +p-=4800}s=B.c.am(h,1000) +g+=B.c.ad(h-s,1000) +r=i?Date.UTC(a,p,c,d,e,f,g):new Date(a,p,c,d,e,f,g).valueOf() +q=!0 +if(!isNaN(r))if(!(r<-864e13))if(!(r>864e13))q=r===864e13&&s!==0 +if(q)return null +return r}, +ar(a){if(a.date===void 0)a.date=new Date(a.a) +return a.date}, +fR(a){return a.c?A.ar(a).getUTCFullYear()+0:A.ar(a).getFullYear()+0}, +m9(a){return a.c?A.ar(a).getUTCMonth()+1:A.ar(a).getMonth()+1}, +m5(a){return a.c?A.ar(a).getUTCDate()+0:A.ar(a).getDate()+0}, +m6(a){return a.c?A.ar(a).getUTCHours()+0:A.ar(a).getHours()+0}, +m8(a){return a.c?A.ar(a).getUTCMinutes()+0:A.ar(a).getMinutes()+0}, +ma(a){return a.c?A.ar(a).getUTCSeconds()+0:A.ar(a).getSeconds()+0}, +m7(a){return a.c?A.ar(a).getUTCMilliseconds()+0:A.ar(a).getMilliseconds()+0}, +pj(a){var s=a.$thrownJsError +if(s==null)return null +return A.aO(s)}, +iM(a,b){var s +if(a.$thrownJsError==null){s=new Error() +A.Z(a,s) +a.$thrownJsError=s +s.stack=b.k(0)}}, +tI(a){throw A.e(A.lq(a))}, +c(a,b){if(a==null)J.bi(a) +throw A.e(A.kz(a,b))}, +kz(a,b){var s,r="index" +if(!A.hH(b))return new A.aE(!0,b,r,null) +s=A.U(J.bi(a)) +if(b<0||b>=s)return A.io(b,s,a,null,r) +return A.l4(b,r)}, +tB(a,b,c){if(a>c)return A.Y(a,0,c,"start",null) +if(b!=null)if(bc)return A.Y(b,a,c,"end",null) +return new A.aE(!0,b,"end",null)}, +lq(a){return new A.aE(!0,a,null,null)}, +e(a){return A.Z(a,new Error())}, +Z(a,b){var s +if(a==null)a=new A.ba() +b.dartException=a +s=A.tY +if("defineProperty" in Object){Object.defineProperty(b,"message",{get:s}) +b.name=""}else b.toString=s +return b}, +tY(){return J.b0(this.dartException)}, +v(a,b){throw A.Z(a,b==null?new Error():b)}, +Q(a,b,c){var s +if(b==null)b=0 +if(c==null)c=0 +s=Error() +A.v(A.qQ(a,b,c),s)}, +qQ(a,b,c){var s,r,q,p,o,n,m,l,k +if(typeof b=="string")s=b +else{r="[]=;add;removeWhere;retainWhere;removeRange;setRange;setInt8;setInt16;setInt32;setUint8;setUint16;setUint32;setFloat32;setFloat64".split(";") +q=r.length +p=b +if(p>q){c=p/q|0 +p%=q}s=r[p]}o=typeof c=="string"?c:"modify;remove from;add to".split(";")[c] +n=t.j.b(a)?"list":"ByteData" +m=a.$flags|0 +l="a " +if((m&4)!==0)k="constant " +else if((m&2)!==0){k="unmodifiable " +l="an "}else k=(m&1)!==0?"fixed-length ":"" +return new A.ek("'"+s+"': Cannot "+o+" "+l+k+n)}, +cC(a){throw A.e(A.am(a))}, +bb(a){var s,r,q,p,o,n +a=A.nl(a.replace(String({}),"$receiver$")) +s=a.match(/\\\$[a-zA-Z]+\\\$/g) +if(s==null)s=A.w([],t.s) +r=s.indexOf("\\$arguments\\$") +q=s.indexOf("\\$argumentsExpr\\$") +p=s.indexOf("\\$expr\\$") +o=s.indexOf("\\$method\\$") +n=s.indexOf("\\$receiver\\$") +return new A.jn(a.replace(new RegExp("\\\\\\$arguments\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$","g"),"((?:x|[^x])*)"),r,q,p,o,n)}, +jo(a){return function($expr$){var $argumentsExpr$="$arguments$" +try{$expr$.$method$($argumentsExpr$)}catch(s){return s.message}}(a)}, +mj(a){return function($expr$){try{$expr$.$method$}catch(s){return s.message}}(a)}, +l_(a,b){var s=b==null,r=s?null:b.method +return new A.fu(a,r,s?null:b.receiver)}, +a_(a){var s +if(a==null)return new A.iH(a) +if(a instanceof A.dV){s=a.a +return A.bD(a,s==null?A.a3(s):s)}if(typeof a!=="object")return a +if("dartException" in a)return A.bD(a,a.dartException) +return A.rq(a)}, +bD(a,b){if(t.C.b(b))if(b.$thrownJsError==null)b.$thrownJsError=a +return b}, +rq(a){var s,r,q,p,o,n,m,l,k,j,i,h,g +if(!("message" in a))return a +s=a.message +if("number" in a&&typeof a.number=="number"){r=a.number +q=r&65535 +if((B.c.a1(r,16)&8191)===10)switch(q){case 438:return A.bD(a,A.l_(A.J(s)+" (Error "+q+")",null)) +case 445:case 5007:A.J(s) +return A.bD(a,new A.e9())}}if(a instanceof TypeError){p=$.nw() +o=$.nx() +n=$.ny() +m=$.nz() +l=$.nC() +k=$.nD() +j=$.nB() +$.nA() +i=$.nF() +h=$.nE() +g=p.a6(s) +if(g!=null)return A.bD(a,A.l_(A.L(s),g)) +else{g=o.a6(s) +if(g!=null){g.method="call" +return A.bD(a,A.l_(A.L(s),g))}else if(n.a6(s)!=null||m.a6(s)!=null||l.a6(s)!=null||k.a6(s)!=null||j.a6(s)!=null||m.a6(s)!=null||i.a6(s)!=null||h.a6(s)!=null){A.L(s) +return A.bD(a,new A.e9())}}return A.bD(a,new A.hb(typeof s=="string"?s:""))}if(a instanceof RangeError){if(typeof s=="string"&&s.indexOf("call stack")!==-1)return new A.ef() +s=function(b){try{return String(b)}catch(f){}return null}(a) +return A.bD(a,new A.aE(!1,null,null,typeof s=="string"?s.replace(/^RangeError:\s*/,""):s))}if(typeof InternalError=="function"&&a instanceof InternalError)if(typeof s=="string"&&s==="too much recursion")return new A.ef() +return a}, +aO(a){var s +if(a instanceof A.dV)return a.b +if(a==null)return new A.eO(a) +s=a.$cachedTrace +if(s!=null)return s +s=new A.eO(a) +if(typeof a==="object")a.$cachedTrace=s +return s}, +kN(a){if(a==null)return J.aP(a) +if(typeof a=="object")return A.c9(a) +return J.aP(a)}, +tD(a,b){var s,r,q,p=a.length +for(s=0;s=0}, +nc(a){if(a.indexOf("$",0)>=0)return a.replace(/\$/g,"$$$$") +return a}, +nl(a){if(/[[\]{}()*+?.\\^$|]/.test(a))return a.replace(/[[\]{}()*+?.\\^$|]/g,"\\$&") +return a}, +lx(a,b,c){var s +if(typeof b=="string")return A.tV(a,b,c) +if(b instanceof A.cP){s=b.gcV() +s.lastIndex=0 +return a.replace(s,A.nc(c))}return A.tU(a,b,c)}, +tU(a,b,c){var s,r,q,p +for(s=J.lA(b,a),s=s.gE(s),r=0,q="";s.t();){p=s.gB() +q=q+a.substring(r,p.gbE())+c +r=p.gbo()}s=q+a.substring(r) +return s.charCodeAt(0)==0?s:s}, +tV(a,b,c){var s,r,q +if(b===""){if(a==="")return c +s=a.length +for(r=c,q=0;q=0)return a.split(b).join(c) +return a.replace(new RegExp(A.nl(b),"g"),A.nc(c))}, +eL:function eL(a,b){this.a=a +this.b=b}, +eM:function eM(a,b){this.a=a +this.b=b}, +bg:function bg(a){this.a=a}, +dR:function dR(){}, +i4:function i4(a,b,c){this.a=a +this.b=b +this.c=c}, +bS:function bS(a,b,c){this.a=a +this.b=b +this.$ti=c}, +eD:function eD(a,b){this.a=a +this.$ti=b}, +cs:function cs(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.d=null +_.$ti=c}, +dS:function dS(){}, +b1:function b1(a,b,c){this.a=a +this.b=b +this.$ti=c}, +ec:function ec(){}, +jn:function jn(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f}, +e9:function e9(){}, +fu:function fu(a,b,c){this.a=a +this.b=b +this.c=c}, +hb:function hb(a){this.a=a}, +iH:function iH(a){this.a=a}, +dV:function dV(a,b){this.a=a +this.b=b}, +eO:function eO(a){this.a=a +this.b=null}, +bn:function bn(){}, +fd:function fd(){}, +fe:function fe(){}, +h3:function h3(){}, +h1:function h1(){}, +cH:function cH(a,b){this.a=a +this.b=b}, +fX:function fX(a){this.a=a}, +hB:function hB(a){this.a=a}, +b4:function b4(a){var _=this +_.a=0 +_.f=_.e=_.d=_.c=_.b=null +_.r=0 +_.$ti=a}, +iw:function iw(a){this.a=a}, +iA:function iA(a,b){var _=this +_.a=a +_.b=b +_.d=_.c=null}, +c0:function c0(a,b){this.a=a +this.$ti=b}, +e1:function e1(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=null +_.$ti=d}, +c1:function c1(a,b){this.a=a +this.$ti=b}, +N:function N(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=null +_.$ti=d}, +kG:function kG(a){this.a=a}, +kH:function kH(a){this.a=a}, +kI:function kI(a){this.a=a}, +aX:function aX(){}, +cv:function cv(){}, +dA:function dA(){}, +cP:function cP(a,b){var _=this +_.a=a +_.b=b +_.e=_.d=_.c=null}, +dz:function dz(a){this.b=a}, +hf:function hf(a,b,c){this.a=a +this.b=b +this.c=c}, +hg:function hg(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +ei:function ei(a,b){this.a=a +this.c=b}, +hv:function hv(a,b,c){this.a=a +this.b=b +this.c=c}, +hw:function hw(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +r(a){throw A.Z(A.oH(a),new Error())}, +bE(a){throw A.Z(A.oG(a),new Error())}, +nm(a){throw A.Z(A.oF(a),new Error())}, +mr(a){var s=new A.jN(a) +return s.b=s}, +jN:function jN(a){this.a=a +this.b=null}, +qM(a){return a}, +bC(a){var s,r,q +if(t.aP.b(a))return a +s=J.aB(a) +r=A.cU(s.gm(a),null,!1,t.z) +for(q=0;q>>0!==a||a>=c)throw A.e(A.kz(b,a))}, +qN(a,b,c){var s +if(!(a>>>0!==a))s=b>>>0!==b||a>b||b>c +else s=!0 +if(s)throw A.e(A.tB(a,b,c)) +return b}, +bv:function bv(){}, +cW:function cW(){}, +e6:function e6(){}, +hA:function hA(a){this.a=a}, +e4:function e4(){}, +a8:function a8(){}, +e5:function e5(){}, +aq:function aq(){}, +fB:function fB(){}, +fC:function fC(){}, +fD:function fD(){}, +fE:function fE(){}, +fF:function fF(){}, +fG:function fG(){}, +fH:function fH(){}, +e7:function e7(){}, +e8:function e8(){}, +eG:function eG(){}, +eH:function eH(){}, +eI:function eI(){}, +eJ:function eJ(){}, +l5(a,b){var s=b.c +return s==null?b.c=A.eT(a,"V",[b.x]):s}, +me(a){var s=a.w +if(s===6||s===7)return A.me(a.x) +return s===11||s===12}, +pp(a){return a.as}, +tS(a,b){var s,r=b.length +for(s=0;s=p)return A.c(q,0) +s=A.eV(v.typeUniverse,A.lp(q[0]),"@<0>") +for(r=1;r=0)p+=" "+r[q];++q}return p+"})"}, +mW(a3,a4,a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1=", ",a2=null +if(a5!=null){s=a5.length +if(a4==null)a4=A.w([],t.s) +else a2=a4.length +r=a4.length +for(q=s;q>0;--q)B.b.l(a4,"T"+(r+q)) +for(p=t.X,o="<",n="",q=0;q=0))return A.c(a4,l) +o=o+n+a4[l] +k=a5[q] +j=k.w +if(!(j===2||j===3||j===4||j===5||k===p))o+=" extends "+A.as(k,a4)}o+=">"}else o="" +p=a3.x +i=a3.y +h=i.a +g=h.length +f=i.b +e=f.length +d=i.c +c=d.length +b=A.as(p,a4) +for(a="",a0="",q=0;q0){a+=a0+"[" +for(a0="",q=0;q0){a+=a0+"{" +for(a0="",q=0;q "+b}, +as(a,b){var s,r,q,p,o,n,m,l=a.w +if(l===5)return"erased" +if(l===2)return"dynamic" +if(l===3)return"void" +if(l===1)return"Never" +if(l===4)return"any" +if(l===6){s=a.x +r=A.as(s,b) +q=s.w +return(q===11||q===12?"("+r+")":r)+"?"}if(l===7)return"FutureOr<"+A.as(a.x,b)+">" +if(l===8){p=A.rp(a.x) +o=a.y +return o.length>0?p+("<"+A.n5(o,b)+">"):p}if(l===10)return A.rg(a,b) +if(l===11)return A.mW(a,b,null) +if(l===12)return A.mW(a.x,b,a.y) +if(l===13){n=a.x +m=b.length +n=m-1-n +if(!(n>=0&&n0)p+="<"+A.eS(c)+">" +s=a.eC.get(p) +if(s!=null)return s +r=new A.aH(null,null) +r.w=8 +r.x=b +r.y=c +if(c.length>0)r.c=c[0] +r.as=p +q=A.bB(a,r) +a.eC.set(p,q) +return q}, +lf(a,b,c){var s,r,q,p,o,n +if(b.w===9){s=b.x +r=b.y.concat(c)}else{r=c +s=b}q=s.as+(";<"+A.eS(r)+">") +p=a.eC.get(q) +if(p!=null)return p +o=new A.aH(null,null) +o.w=9 +o.x=s +o.y=r +o.as=q +n=A.bB(a,o) +a.eC.set(q,n) +return n}, +mE(a,b,c){var s,r,q="+"+(b+"("+A.eS(c)+")"),p=a.eC.get(q) +if(p!=null)return p +s=new A.aH(null,null) +s.w=10 +s.x=b +s.y=c +s.as=q +r=A.bB(a,s) +a.eC.set(q,r) +return r}, +mB(a,b,c){var s,r,q,p,o,n=b.as,m=c.a,l=m.length,k=c.b,j=k.length,i=c.c,h=i.length,g="("+A.eS(m) +if(j>0){s=l>0?",":"" +g+=s+"["+A.eS(k)+"]"}if(h>0){s=l>0?",":"" +g+=s+"{"+A.qh(i)+"}"}r=n+(g+")") +q=a.eC.get(r) +if(q!=null)return q +p=new A.aH(null,null) +p.w=11 +p.x=b +p.y=c +p.as=r +o=A.bB(a,p) +a.eC.set(r,o) +return o}, +lg(a,b,c,d){var s,r=b.as+("<"+A.eS(c)+">"),q=a.eC.get(r) +if(q!=null)return q +s=A.qj(a,b,c,r,d) +a.eC.set(r,s) +return s}, +qj(a,b,c,d,e){var s,r,q,p,o,n,m,l +if(e){s=c.length +r=A.kk(s) +for(q=0,p=0;p0){n=A.cz(a,b,r,0) +m=A.dH(a,c,r,0) +return A.lg(a,n,m,c!==m)}}l=new A.aH(null,null) +l.w=12 +l.x=b +l.y=c +l.as=d +return A.bB(a,l)}, +mx(a,b,c,d){return{u:a,e:b,r:c,s:[],p:0,n:d}}, +mz(a){var s,r,q,p,o,n,m,l=a.r,k=a.s +for(s=l.length,r=0;r=48&&q<=57)r=A.qa(r+1,q,l,k) +else if((((q|32)>>>0)-97&65535)<26||q===95||q===36||q===124)r=A.my(a,r,l,k,!1) +else if(q===46)r=A.my(a,r,l,k,!0) +else{++r +switch(q){case 44:break +case 58:k.push(!1) +break +case 33:k.push(!0) +break +case 59:k.push(A.cu(a.u,a.e,k.pop())) +break +case 94:k.push(A.ql(a.u,k.pop())) +break +case 35:k.push(A.eU(a.u,5,"#")) +break +case 64:k.push(A.eU(a.u,2,"@")) +break +case 126:k.push(A.eU(a.u,3,"~")) +break +case 60:k.push(a.p) +a.p=k.length +break +case 62:A.qc(a,k) +break +case 38:A.qb(a,k) +break +case 63:p=a.u +k.push(A.mD(p,A.cu(p,a.e,k.pop()),a.n)) +break +case 47:p=a.u +k.push(A.mC(p,A.cu(p,a.e,k.pop()),a.n)) +break +case 40:k.push(-3) +k.push(a.p) +a.p=k.length +break +case 41:A.q9(a,k) +break +case 91:k.push(a.p) +a.p=k.length +break +case 93:o=k.splice(a.p) +A.mA(a.u,a.e,o) +a.p=k.pop() +k.push(o) +k.push(-1) +break +case 123:k.push(a.p) +a.p=k.length +break +case 125:o=k.splice(a.p) +A.qe(a.u,a.e,o) +a.p=k.pop() +k.push(o) +k.push(-2) +break +case 43:n=l.indexOf("(",r) +k.push(l.substring(r,n)) +k.push(-4) +k.push(a.p) +a.p=k.length +r=n+1 +break +default:throw"Bad character "+q}}}m=k.pop() +return A.cu(a.u,a.e,m)}, +qa(a,b,c,d){var s,r,q=b-48 +for(s=c.length;a=48&&r<=57))break +q=q*10+(r-48)}d.push(q) +return a}, +my(a,b,c,d,e){var s,r,q,p,o,n,m=b+1 +for(s=c.length;m>>0)-97&65535)<26||r===95||r===36||r===124))q=r>=48&&r<=57 +else q=!0 +if(!q)break}}p=c.substring(b,m) +if(e){s=a.u +o=a.e +if(o.w===9)o=o.x +n=A.qp(s,o.x)[p] +if(n==null)A.v('No "'+p+'" in "'+A.pp(o)+'"') +d.push(A.eV(s,o,n))}else d.push(p) +return m}, +qc(a,b){var s,r=a.u,q=A.mw(a,b),p=b.pop() +if(typeof p=="string")b.push(A.eT(r,p,q)) +else{s=A.cu(r,a.e,p) +switch(s.w){case 11:b.push(A.lg(r,s,q,a.n)) +break +default:b.push(A.lf(r,s,q)) +break}}}, +q9(a,b){var s,r,q,p=a.u,o=b.pop(),n=null,m=null +if(typeof o=="number")switch(o){case-1:n=b.pop() +break +case-2:m=b.pop() +break +default:b.push(o) +break}else b.push(o) +s=A.mw(a,b) +o=b.pop() +switch(o){case-3:o=b.pop() +if(n==null)n=p.sEA +if(m==null)m=p.sEA +r=A.cu(p,a.e,o) +q=new A.hn() +q.a=s +q.b=n +q.c=m +b.push(A.mB(p,r,q)) +return +case-4:b.push(A.mE(p,b.pop(),s)) +return +default:throw A.e(A.f5("Unexpected state under `()`: "+A.J(o)))}}, +qb(a,b){var s=b.pop() +if(0===s){b.push(A.eU(a.u,1,"0&")) +return}if(1===s){b.push(A.eU(a.u,4,"1&")) +return}throw A.e(A.f5("Unexpected extended operation "+A.J(s)))}, +mw(a,b){var s=b.splice(a.p) +A.mA(a.u,a.e,s) +a.p=b.pop() +return s}, +cu(a,b,c){if(typeof c=="string")return A.eT(a,c,a.sEA) +else if(typeof c=="number"){b.toString +return A.qd(a,b,c)}else return c}, +mA(a,b,c){var s,r=c.length +for(s=0;sn)return!1 +m=n-o +l=s.b +k=r.b +j=l.length +i=k.length +if(o+j=d)return!1 +a1=f[b] +b+=3 +if(a00?new Array(q):v.typeUniverse.sEA +for(o=0;o0?new Array(a):v.typeUniverse.sEA}, +aH:function aH(a,b){var _=this +_.a=a +_.b=b +_.r=_.f=_.d=_.c=null +_.w=0 +_.as=_.Q=_.z=_.y=_.x=null}, +hn:function hn(){this.c=this.b=this.a=null}, +kf:function kf(a){this.a=a}, +hm:function hm(){}, +eR:function eR(a){this.a=a}, +pX(){var s,r,q +if(self.scheduleImmediate!=null)return A.rr() +if(self.MutationObserver!=null&&self.document!=null){s={} +r=self.document.createElement("div") +q=self.document.createElement("span") +s.a=null +new self.MutationObserver(A.dJ(new A.jH(s),1)).observe(r,{childList:true}) +return new A.jG(s,r,q)}else if(self.setImmediate!=null)return A.rs() +return A.rt()}, +pY(a){self.scheduleImmediate(A.dJ(new A.jI(t.M.a(a)),0))}, +pZ(a){self.setImmediate(A.dJ(new A.jJ(t.M.a(a)),0))}, +q_(a){A.lb(B.y,t.M.a(a))}, +lb(a,b){var s=B.c.ad(a.a,1000) +return A.qg(s<0?0:s,b)}, +qg(a,b){var s=new A.hz() +s.eb(a,b) +return s}, +H(a){return new A.es(new A.p($.u,a.h("p<0>")),a.h("es<0>"))}, +G(a,b){a.$2(0,null) +b.b=!0 +return b.a}, +y(a,b){A.qH(a,b)}, +F(a,b){b.D(a)}, +E(a,b){b.aU(A.a_(a),A.aO(a))}, +qH(a,b){var s,r,q=new A.kl(b),p=new A.km(b) +if(a instanceof A.p)a.df(q,p,t.z) +else{s=t.z +if(a instanceof A.p)a.bw(q,p,s) +else{r=new A.p($.u,t._) +r.a=8 +r.c=a +r.df(q,p,s)}}}, +I(a){var s=function(b,c){return function(d,e){while(true){try{b(d,e) +break}catch(r){e=r +d=c}}}}(a,1) +return $.u.cm(new A.ku(s),t.H,t.S,t.z)}, +hV(a){var s +if(t.C.b(a)){s=a.gaG() +if(s!=null)return s}return B.o}, +lR(a,b){var s=a==null?b.a(a):a,r=new A.p($.u,b.h("p<0>")) +r.ao(s) +return r}, +mX(a,b){if($.u===B.d)return null +return null}, +ln(a,b){if($.u!==B.d)A.mX(a,b) +if(b==null)if(t.C.b(a)){b=a.gaG() +if(b==null){A.iM(a,B.o) +b=B.o}}else b=B.o +else if(t.C.b(a))A.iM(a,b) +return new A.af(a,b)}, +dx(a,b){var s=new A.p($.u,b.h("p<0>")) +b.a(a) +s.a=8 +s.c=a +return s}, +jV(a,b,c){var s,r,q,p,o={},n=o.a=a +for(s=t._;r=n.a,(r&4)!==0;n=a){a=s.a(n.c) +o.a=a}if(n===b){s=A.mf() +b.b6(new A.af(new A.aE(!0,n,null,"Cannot complete a future with itself"),s)) +return}q=b.a&1 +s=n.a=r|q +if((s&24)===0){p=t.F.a(b.c) +b.a=b.a&1|4 +b.c=n +n.d2(p) +return}if(!c)if(b.c==null)n=(s&16)===0||q!==0 +else n=!1 +else n=!0 +if(n){p=b.aQ() +b.b8(o.a) +A.cr(b,p) +return}b.a^=2 +A.dG(null,null,b.b,t.M.a(new A.jW(o,b)))}, +cr(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d={},c=d.a=a +for(s=t.n,r=t.F;;){q={} +p=c.a +o=(p&16)===0 +n=!o +if(b==null){if(n&&(p&1)===0){m=s.a(c.c) +A.dF(m.a,m.b)}return}q.a=b +l=b.a +for(c=b;l!=null;c=l,l=k){c.a=null +A.cr(d.a,c) +q.a=l +k=l.a}p=d.a +j=p.c +q.b=n +q.c=j +if(o){i=c.c +i=(i&1)!==0||(i&15)===8}else i=!0 +if(i){h=c.b.b +if(n){p=p.b===h +p=!(p||p)}else p=!1 +if(p){s.a(j) +A.dF(j.a,j.b) +return}g=$.u +if(g!==h)$.u=h +else g=null +c=c.c +if((c&15)===8)new A.k_(q,d,n).$0() +else if(o){if((c&1)!==0)new A.jZ(q,j).$0()}else if((c&2)!==0)new A.jY(d,q).$0() +if(g!=null)$.u=g +c=q.c +if(c instanceof A.p){p=q.a.$ti +p=p.h("V<2>").b(c)||!p.y[1].b(c)}else p=!1 +if(p){f=q.a.b +if((c.a&24)!==0){e=r.a(f.c) +f.c=null +b=f.bk(e) +f.a=c.a&30|f.a&1 +f.c=c.c +d.a=c +continue}else A.jV(c,f,!0) +return}}f=q.a.b +e=r.a(f.c) +f.c=null +b=f.bk(e) +c=q.b +p=q.c +if(!c){f.$ti.c.a(p) +f.a=8 +f.c=p}else{s.a(p) +f.a=f.a&1|16 +f.c=p}d.a=f +c=f}}, +n1(a,b){var s +if(t.W.b(a))return b.cm(a,t.z,t.K,t.l) +s=t.v +if(s.b(a))return s.a(a) +throw A.e(A.f4(a,"onError",u.c))}, +rb(){var s,r +for(s=$.dE;s!=null;s=$.dE){$.f_=null +r=s.b +$.dE=r +if(r==null)$.eZ=null +s.a.$0()}}, +rm(){$.lo=!0 +try{A.rb()}finally{$.f_=null +$.lo=!1 +if($.dE!=null)$.ly().$1(A.nb())}}, +n7(a){var s=new A.hh(a),r=$.eZ +if(r==null){$.dE=$.eZ=s +if(!$.lo)$.ly().$1(A.nb())}else $.eZ=r.b=s}, +rh(a){var s,r,q,p=$.dE +if(p==null){A.n7(a) +$.f_=$.eZ +return}s=new A.hh(a) +r=$.f_ +if(r==null){s.b=p +$.dE=$.f_=s}else{q=r.b +s.b=q +$.f_=r.b=s +if(q==null)$.eZ=s}}, +lw(a){var s=null,r=$.u +if(B.d===r){A.dG(s,s,B.d,a) +return}A.dG(s,s,r,t.M.a(r.c8(a)))}, +ub(a,b){A.kw(a,"stream",t.K) +return new A.hu(b.h("hu<0>"))}, +aU(a,b,c,d){var s=null +return c?new A.dC(b,s,s,a,d.h("dC<0>")):new A.du(b,s,s,a,d.h("du<0>"))}, +mg(a){return new A.et(null,null,a.h("et<0>"))}, +hI(a){var s,r,q +if(a==null)return +try{a.$0()}catch(q){s=A.a_(q) +r=A.aO(q) +A.dF(A.a3(s),t.l.a(r))}}, +q3(a,b,c,d,e,f){var s=$.u,r=e?1:0,q=c!=null?32:0,p=A.ld(s,b,f),o=A.mq(s,c),n=d==null?A.na():d +return new A.be(a,p,o,t.M.a(n),s,r|q,f.h("be<0>"))}, +ld(a,b,c){var s=b==null?A.ru():b +return t.a7.v(c).h("1(2)").a(s)}, +mq(a,b){if(b==null)b=A.rv() +if(t.k.b(b))return a.cm(b,t.z,t.K,t.l) +if(t.u.b(b))return t.v.a(b) +throw A.e(A.bj("handleError callback must take either an Object (the error), or both an Object (the error) and a StackTrace.",null))}, +rc(a){}, +re(a,b){A.dF(A.a3(a),t.l.a(b))}, +rd(){}, +qL(a,b,c){var s=a.P() +if(s!==$.dM())s.b2(new A.kn(b,c)) +else b.bM(c)}, +jj(a,b){var s=$.u +if(s===B.d)return A.lb(a,t.M.a(b)) +return A.lb(a,t.M.a(s.c8(b)))}, +dF(a,b){A.rh(new A.ks(a,b))}, +n2(a,b,c,d,e){var s,r=$.u +if(r===c)return d.$0() +$.u=c +s=r +try{r=d.$0() +return r}finally{$.u=s}}, +n4(a,b,c,d,e,f,g){var s,r=$.u +if(r===c)return d.$1(e) +$.u=c +s=r +try{r=d.$1(e) +return r}finally{$.u=s}}, +n3(a,b,c,d,e,f,g,h,i){var s,r=$.u +if(r===c)return d.$2(e,f) +$.u=c +s=r +try{r=d.$2(e,f) +return r}finally{$.u=s}}, +dG(a,b,c,d){t.M.a(d) +if(B.d!==c){d=c.c8(d) +d=d}A.n7(d)}, +jH:function jH(a){this.a=a}, +jG:function jG(a,b,c){this.a=a +this.b=b +this.c=c}, +jI:function jI(a){this.a=a}, +jJ:function jJ(a){this.a=a}, +hz:function hz(){this.b=null}, +ke:function ke(a,b){this.a=a +this.b=b}, +es:function es(a,b){this.a=a +this.b=!1 +this.$ti=b}, +kl:function kl(a){this.a=a}, +km:function km(a){this.a=a}, +ku:function ku(a){this.a=a}, +af:function af(a,b){this.a=a +this.b=b}, +eu:function eu(a,b){this.a=a +this.$ti=b}, +aW:function aW(a,b,c,d,e,f,g){var _=this +_.ay=0 +_.CW=_.ch=null +_.w=a +_.a=b +_.b=c +_.c=d +_.d=e +_.e=f +_.r=_.f=null +_.$ti=g}, +ev:function ev(){}, +et:function et(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.r=_.f=_.e=_.d=null +_.$ti=c}, +ew:function ew(){}, +ac:function ac(a,b){this.a=a +this.$ti=b}, +aK:function aK(a,b,c,d,e){var _=this +_.a=null +_.b=a +_.c=b +_.d=c +_.e=d +_.$ti=e}, +p:function p(a,b){var _=this +_.a=0 +_.b=a +_.c=null +_.$ti=b}, +jS:function jS(a,b){this.a=a +this.b=b}, +jX:function jX(a,b){this.a=a +this.b=b}, +jW:function jW(a,b){this.a=a +this.b=b}, +jU:function jU(a,b){this.a=a +this.b=b}, +jT:function jT(a,b){this.a=a +this.b=b}, +k_:function k_(a,b,c){this.a=a +this.b=b +this.c=c}, +k0:function k0(a,b){this.a=a +this.b=b}, +k1:function k1(a){this.a=a}, +jZ:function jZ(a,b){this.a=a +this.b=b}, +jY:function jY(a,b){this.a=a +this.b=b}, +hh:function hh(a){this.a=a +this.b=null}, +aa:function aa(){}, +iU:function iU(a,b){this.a=a +this.b=b}, +iV:function iV(a,b){this.a=a +this.b=b}, +iS:function iS(a){this.a=a}, +iT:function iT(a,b,c){this.a=a +this.b=b +this.c=c}, +eh:function eh(){}, +cw:function cw(){}, +kd:function kd(a){this.a=a}, +kc:function kc(a){this.a=a}, +hy:function hy(){}, +hi:function hi(){}, +du:function du(a,b,c,d,e){var _=this +_.a=null +_.b=0 +_.c=null +_.d=a +_.e=b +_.f=c +_.r=d +_.$ti=e}, +dC:function dC(a,b,c,d,e){var _=this +_.a=null +_.b=0 +_.c=null +_.d=a +_.e=b +_.f=c +_.r=d +_.$ti=e}, +M:function M(a,b){this.a=a +this.$ti=b}, +be:function be(a,b,c,d,e,f,g){var _=this +_.w=a +_.a=b +_.b=c +_.c=d +_.d=e +_.e=f +_.r=_.f=null +_.$ti=g}, +cx:function cx(a,b){this.a=a +this.$ti=b}, +ad:function ad(){}, +jM:function jM(a,b,c){this.a=a +this.b=b +this.c=c}, +jL:function jL(a){this.a=a}, +dB:function dB(){}, +bf:function bf(){}, +aJ:function aJ(a,b){this.b=a +this.a=null +this.$ti=b}, +cp:function cp(a,b){this.b=a +this.c=b +this.a=null}, +hl:function hl(){}, +aL:function aL(a){var _=this +_.a=0 +_.c=_.b=null +_.$ti=a}, +k8:function k8(a,b){this.a=a +this.b=b}, +dw:function dw(a,b){var _=this +_.a=1 +_.b=a +_.c=null +_.$ti=b}, +hu:function hu(a){this.$ti=a}, +kn:function kn(a,b){this.a=a +this.b=b}, +eY:function eY(){}, +hs:function hs(){}, +ka:function ka(a,b){this.a=a +this.b=b}, +kb:function kb(a,b,c){this.a=a +this.b=b +this.c=c}, +ks:function ks(a,b){this.a=a +this.b=b}, +mu(a,b){var s=a[b] +return s===a?null:s}, +mv(a,b,c){if(c==null)a[b]=a +else a[b]=c}, +q4(){var s=Object.create(null) +A.mv(s,"",s) +delete s[""] +return s}, +oK(a,b){return new A.b4(a.h("@<0>").v(b).h("b4<1,2>"))}, +z(a,b,c){return b.h("@<0>").v(c).h("m_<1,2>").a(A.tD(a,new A.b4(b.h("@<0>").v(c).h("b4<1,2>"))))}, +o(a,b){return new A.b4(a.h("@<0>").v(b).h("b4<1,2>"))}, +oL(a){return new A.eE(a.h("eE<0>"))}, +le(){var s=Object.create(null) +s[""]=s +delete s[""] +return s}, +oM(a,b){var s,r,q=A.oL(b) +for(s=a.length,r=0;r=$.at.length)return A.c($.at,-1) +$.at.pop()}r=s.a +return r.charCodeAt(0)==0?r:r}, +oN(a){return 8}, +q8(a,b){return new A.ct(a,a.c,a.d,a.b,b.h("ct<0>"))}, +ez:function ez(){}, +eC:function eC(a){var _=this +_.a=0 +_.e=_.d=_.c=_.b=null +_.$ti=a}, +eA:function eA(a,b){this.a=a +this.$ti=b}, +eB:function eB(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.d=null +_.$ti=c}, +eE:function eE(a){var _=this +_.a=0 +_.f=_.e=_.d=_.c=_.b=null +_.r=0 +_.$ti=a}, +hq:function hq(a){this.a=a +this.b=null}, +eF:function eF(a,b,c){var _=this +_.a=a +_.b=b +_.d=_.c=null +_.$ti=c}, +D:function D(){}, +T:function T(){}, +iC:function iC(a,b){this.a=a +this.b=b}, +e2:function e2(a,b){var _=this +_.a=a +_.d=_.c=_.b=0 +_.$ti=b}, +ct:function ct(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=null +_.$ti=e}, +bz:function bz(){}, +eN:function eN(){}, +rf(a,b){var s,r,q,p=null +try{p=JSON.parse(a)}catch(r){s=A.a_(r) +q=A.R(String(s),null,null) +throw A.e(q)}q=A.ko(p) +return q}, +ko(a){var s +if(a==null)return null +if(typeof a!="object")return a +if(!Array.isArray(a))return new A.ho(a,Object.create(null)) +for(s=0;s=0){g=(g<<6|l)&16777215 +f=f+1&3 +if(f===0){k=a0+1 +q&2&&A.Q(d) +m=d.length +if(!(a0>>16&255 +a0=k+1 +if(!(k>>8&255 +k=a0+1 +if(!(a01){if(o>127)break +if(f===3){if((g&3)!==0)throw A.e(A.R(i,a,p)) +k=a0+1 +q&2&&A.Q(d) +s=d.length +if(!(a0>>10 +if(!(k>>2}else{if((g&15)!==0)throw A.e(A.R(i,a,p)) +q&2&&A.Q(d) +if(!(a0>>4}j=(3-f)*3 +if(n===37)j+=2 +return A.mp(a,p+1,c,-j-1)}throw A.e(A.R(h,a,p))}if(o>=0&&o<=127)return(g<<2|f)>>>0 +for(p=b;p127)break}throw A.e(A.R(h,a,p))}, +q0(a,b,c,d){var s=A.q1(a,b,c),r=(d&3)+(s-b),q=B.c.a1(r,2)*3,p=r&3 +if(p!==0&&s0)return new Uint8Array(q) +return $.nI()}, +q1(a,b,c){var s,r=a.length,q=c,p=q,o=0 +for(;;){if(!(p>b&&o<2))break +A:{--p +if(!(p>=0&&p=0&&p=0&&p0;){if(!(b3?s-3:s)===2){if(q!==51)break;++b;--s +if(b===c)break +if(!(b")) +for(s=a.length,r=0;r")) +s=A.w([],b.h("A<0>")) +for(r=J.cD(a);r.t();)B.b.l(s,r.gB()) +return s}, +iB(a,b){var s=A.oO(a,!1,b) +s.$flags=3 +return s}, +mh(a,b,c){var s,r +A.ea(b,"start") +if(c!=null){s=c-b +if(s<0)throw A.e(A.Y(c,b,null,"end",null)) +if(s===0)return""}r=A.pC(a,b,c) +return r}, +pB(a){return A.av(A.U(a))}, +pC(a,b,c){var s=a.length +if(b>=s)return"" +return A.pk(a,b,c==null||c>s?s:c)}, +bw(a){return new A.cP(a,A.kY(a,!1,!0,!1,!1,""))}, +l9(a,b,c){var s=J.cD(b) +if(!s.t())return a +if(c.length===0){do a+=A.J(s.gB()) +while(s.t())}else{a+=A.J(s.gB()) +while(s.t())a=a+c+A.J(s.gB())}return a}, +mf(){return A.aO(new Error())}, +ol(a,b,c,d,e,f,g,h,i){var s="microsecond",r=A.pl(a,b,c,d,e,f,g,h,i) +if(r==null)return null +if(h>999)A.v(A.Y(h,0,999,s,null)) +if(r<-864e13||r>864e13)A.v(A.Y(r,-864e13,864e13,"millisecondsSinceEpoch",null)) +if(r===864e13&&h!==0)A.v(A.f4(h,s,"Time including microseconds is outside valid range")) +A.kw(i,"isUtc",t.y) +return new A.aF(r,h,i)}, +on(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c=$.nr().h8(a) +if(c!=null){s=new A.ia() +r=c.b +if(1>=r.length)return A.c(r,1) +q=r[1] +q.toString +p=A.f1(q) +if(2>=r.length)return A.c(r,2) +q=r[2] +q.toString +o=A.f1(q) +if(3>=r.length)return A.c(r,3) +q=r[3] +q.toString +n=A.f1(q) +if(4>=r.length)return A.c(r,4) +m=s.$1(r[4]) +if(5>=r.length)return A.c(r,5) +l=s.$1(r[5]) +if(6>=r.length)return A.c(r,6) +k=s.$1(r[6]) +if(7>=r.length)return A.c(r,7) +j=new A.ib().$1(r[7]) +i=B.c.ad(j,1000) +q=r.length +if(8>=q)return A.c(r,8) +h=r[8]!=null +if(h){if(9>=q)return A.c(r,9) +g=r[9] +if(g!=null){f=g==="-"?-1:1 +if(10>=q)return A.c(r,10) +q=r[10] +q.toString +e=A.f1(q) +if(11>=r.length)return A.c(r,11) +l-=f*(s.$1(r[11])+60*e)}}d=A.ol(p,o,n,m,l,k,i,j%1000,h) +if(d==null)throw A.e(A.R("Time out of range",a,null)) +return d}else throw A.e(A.R("Invalid date format",a,null))}, +lP(a){var s,r +try{s=A.on(a) +return s}catch(r){if(A.a_(r) instanceof A.ao)return null +else throw r}}, +lO(a){var s=Math.abs(a),r=a<0?"-":"" +if(s>=1000)return""+a +if(s>=100)return r+"0"+s +if(s>=10)return r+"00"+s +return r+"000"+s}, +om(a){var s=Math.abs(a),r=a<0?"-":"+" +if(s>=1e5)return r+s +return r+"0"+s}, +i9(a){if(a>=100)return""+a +if(a>=10)return"0"+a +return"00"+a}, +b2(a){if(a>=10)return""+a +return"0"+a}, +fl(a){if(typeof a=="number"||A.hG(a)||a==null)return J.b0(a) +if(typeof a=="string")return JSON.stringify(a) +return A.mb(a)}, +ov(a,b){A.kw(a,"error",t.K) +A.kw(b,"stackTrace",t.l) +A.ou(a,b)}, +f5(a){return new A.dO(a)}, +bj(a,b){return new A.aE(!1,null,b,a)}, +f4(a,b,c){return new A.aE(!0,a,b,c)}, +md(a){var s=null +return new A.dj(s,s,!1,s,s,a)}, +l4(a,b){return new A.dj(null,null,!0,a,b,"Value not in range")}, +Y(a,b,c,d,e){return new A.dj(b,c,!0,a,d,"Invalid value")}, +aw(a,b,c){if(0>a||a>c)throw A.e(A.Y(a,0,c,"start",null)) +if(b!=null){if(a>b||b>c)throw A.e(A.Y(b,a,c,"end",null)) +return b}return c}, +ea(a,b){if(a<0)throw A.e(A.Y(a,0,null,b,null)) +return a}, +io(a,b,c,d,e){return new A.fo(b,!0,a,e,"Index out of range")}, +bc(a){return new A.ek(a)}, +ml(a){return new A.ha(a)}, +b8(a){return new A.ax(a)}, +am(a){return new A.fh(a)}, +lQ(a){return new A.jR(a)}, +R(a,b,c){return new A.ao(a,b,c)}, +oA(a,b,c){var s,r +if(A.lu(a)){if(b==="("&&c===")")return"(...)" +return b+"..."+c}s=A.w([],t.s) +B.b.l($.at,a) +try{A.ra(a,s)}finally{if(0>=$.at.length)return A.c($.at,-1) +$.at.pop()}r=A.l9(b,t.e.a(s),", ")+c +return r.charCodeAt(0)==0?r:r}, +iu(a,b,c){var s,r +if(A.lu(a))return b+"..."+c +s=new A.ab(b) +B.b.l($.at,a) +try{r=s +r.a=A.l9(r.a,a,", ")}finally{if(0>=$.at.length)return A.c($.at,-1) +$.at.pop()}s.a+=c +r=s.a +return r.charCodeAt(0)==0?r:r}, +ra(a,b){var s,r,q,p,o,n,m,l=a.gE(a),k=0,j=0 +for(;;){if(!(k<80||j<3))break +if(!l.t())return +s=A.J(l.gB()) +B.b.l(b,s) +k+=s.length+2;++j}if(!l.t()){if(j<=5)return +if(0>=b.length)return A.c(b,-1) +r=b.pop() +if(0>=b.length)return A.c(b,-1) +q=b.pop()}else{p=l.gB();++j +if(!l.t()){if(j<=4){B.b.l(b,A.J(p)) +return}r=A.J(p) +if(0>=b.length)return A.c(b,-1) +q=b.pop() +k+=r.length+2}else{o=l.gB();++j +for(;l.t();p=o,o=n){n=l.gB();++j +if(j>100){for(;;){if(!(k>75&&j>3))break +if(0>=b.length)return A.c(b,-1) +k-=b.pop().length+2;--j}B.b.l(b,"...") +return}}q=A.J(p) +r=A.J(o) +k+=r.length+q.length+4}}if(j>b.length+2){k+=5 +m="..."}else m=null +for(;;){if(!(k>80&&b.length>3))break +if(0>=b.length)return A.c(b,-1) +k-=b.pop().length+2 +if(m==null){k+=5 +m="..."}}if(m!=null)B.b.l(b,m) +B.b.l(b,q) +B.b.l(b,r)}, +m1(a,b,c,d,e){return new A.bN(a,b.h("@<0>").v(c).v(d).v(e).h("bN<1,2,3,4>"))}, +l2(a,b,c,d){var s +if(B.j===c){s=B.c.gA(a) +b=J.aP(b) +return A.iX(A.b9(A.b9($.hP(),s),b))}if(B.j===d){s=B.c.gA(a) +b=J.aP(b) +c=J.aP(c) +return A.iX(A.b9(A.b9(A.b9($.hP(),s),b),c))}s=B.c.gA(a) +b=J.aP(b) +c=J.aP(c) +d=J.aP(d) +d=A.iX(A.b9(A.b9(A.b9(A.b9($.hP(),s),b),c),d)) +return d}, +pf(a){var s,r,q=$.hP() +for(s=a.length,r=0;r=5){if(4>=a4)return A.c(a5,4) +s=((a5.charCodeAt(4)^58)*3|a5.charCodeAt(0)^100|a5.charCodeAt(1)^97|a5.charCodeAt(2)^116|a5.charCodeAt(3)^97)>>>0 +if(s===0)return A.mm(a4=14)B.b.i(r,7,a4) +q=r[1] +if(q>=0)if(A.n6(a5,0,q,20,r)===20)r[7]=q +p=r[2]+1 +o=r[3] +n=r[4] +m=r[5] +l=r[6] +if(lq+3)){i=o>0 +if(!(i&&o+1===n)){if(!B.a.O(a5,"\\",n))if(p>0)h=B.a.O(a5,"\\",p-1)||B.a.O(a5,"\\",p-2) +else h=!1 +else h=!0 +if(!h){if(!(mn+2&&B.a.O(a5,"/..",m-3) +else h=!0 +if(!h)if(q===4){if(B.a.O(a5,"file",0)){if(p<=0){if(!B.a.O(a5,"/",n)){g="file:///" +s=3}else{g="file://" +s=2}a5=g+B.a.u(a5,n,a4) +m+=s +l+=s +a4=a5.length +p=7 +o=7 +n=7}else if(n===m){++l +f=m+1 +a5=B.a.aC(a5,n,m,"/");++a4 +m=f}j="file"}else if(B.a.O(a5,"http",0)){if(i&&o+3===n&&B.a.O(a5,"80",o+1)){l-=3 +e=n-3 +m-=3 +a5=B.a.aC(a5,o,n,"") +a4-=3 +n=e}j="http"}}else if(q===5&&B.a.O(a5,"https",0)){if(i&&o+4===n&&B.a.O(a5,"443",o+1)){l-=4 +e=n-4 +m-=4 +a5=B.a.aC(a5,o,n,"") +a4-=3 +n=e}j="https"}k=!h}}}}if(k)return new A.ht(a40)j=A.lk(a5,0,q) +else{if(q===0)A.dD(a5,0,"Invalid empty scheme") +j=""}d=a3 +if(p>0){c=q+3 +b=c=c)n=0 +else{if(!(q>=0&&q=0&&b=0&&r=97&&o<=102)continue +if(p===46){if(q-1===b)return new A.ao(n,a,q) +r=q +break}return new A.ao("Unexpected character",a,q-1)}if(r-1===b)return new A.ao(n,a,r) +return new A.ao("Missing '.' in IPvFuture address",a,r)}if(r===c)return new A.ao("Missing address in IPvFuture address, host, cursor",null,null) +for(;;){if(!(r>=0&&r=0&&a4=a5)j=0 +else{if(!(n=97&&f<=102)g=f-87 +else break A +k=h}if(nm){if(j===46){if(k){if(p<=6){A.pP(a3,m,a5,s,p*2) +p+=2 +n=a5 +break}a2.$2(a1,m)}break}o=p*2 +e=B.c.a1(l,8) +if(!(o<16))return A.c(s,o) +s[o]=e;++o +if(!(o<16))return A.c(s,o) +s[o]=l&255;++p +if(j===58){if(p<8){++n +m=n +l=0 +k=!0 +continue}a2.$2(a1,n)}break}if(j===58){if(q<0){d=p+1;++n +q=p +p=d +m=n +continue}a2.$2("only one wildcard `::` is allowed",n)}if(q!==p-1)a2.$2("missing part",n) +break}if(n0){a=c*2 +a0=16-b*2 +B.k.ab(s,a0,16,s,a) +B.k.h7(s,a,a0,0)}}return s}, +lh(a,b,c,d,e,f,g){return new A.eW(a,b,c,d,e,f,g)}, +mG(a){if(a==="http")return 80 +if(a==="https")return 443 +return 0}, +dD(a,b,c){throw A.e(A.R(c,a,b))}, +lj(a,b){if(a!=null&&a===A.mG(b))return null +return a}, +qt(a,b,c,d){var s,r,q,p,o,n,m,l,k +if(b===c)return"" +s=a.length +if(!(b>=0&&b=0&&r=b&&o=b&&s=0&&r=o){if(h==null)h=new A.ab("") +if(q=0&&r=n){if(p==null)p=new A.ab("") +if(q=k)return"%" +s=b+1 +if(!(s>=0&&s=0))return A.c(a,l) +q=a.charCodeAt(l) +p=A.kF(r) +o=A.kF(q) +if(p<0||o<0)return"%" +n=p*16+o +if(n<127){if(!(n>=0))return A.c(m,n) +l=(m.charCodeAt(n)&1)!==0}else l=!1 +if(l)return A.av(c&&65<=n&&90>=n?(n|32)>>>0:n) +if(r>=97||q>=97)return B.a.u(a,b,b+3).toUpperCase() +return null}, +li(a){var s,r,q,p,o,n,m,l,k="0123456789ABCDEF" +if(a<=127){s=new Uint8Array(3) +s[0]=37 +r=a>>>4 +if(!(r<16))return A.c(k,r) +s[1]=k.charCodeAt(r) +s[2]=k.charCodeAt(a&15)}else{if(a>2047)if(a>65535){q=240 +p=4}else{q=224 +p=3}else{q=192 +p=2}r=3*p +s=new Uint8Array(r) +for(o=0;--p,p>=0;q=128){n=B.c.fG(a,6*p)&63|q +if(!(o>>4 +if(!(l<16))return A.c(k,l) +if(!(m=0&&q=m)return A.c(s,-1) +s.pop() +if(s.length===0)B.b.l(s,"")}p=!0}else{p="."===n +if(!p)B.b.l(s,n)}}if(p)B.b.l(s,"") +return B.b.ak(s,"/")}, +qz(a,b){var s,r,q,p,o,n +if(!A.mJ(a))return!b?A.mH(a):a +s=A.w([],t.s) +for(r=a.split("/"),q=r.length,p=!1,o=0;o=s.length)return A.c(s,-1) +s.pop()}else B.b.l(s,"..") +p=!0}else{p="."===n +if(!p)B.b.l(s,n.length===0&&s.length===0?"./":n)}}if(s.length===0)return"./" +if(p)B.b.l(s,"") +if(!b){if(0>=s.length)return A.c(s,0) +B.b.i(s,0,A.mH(s[0]))}return B.b.ak(s,"/")}, +mH(a){var s,r,q,p=u.f,o=a.length +if(o>=2&&A.mI(a.charCodeAt(0)))for(s=1;sb)throw A.e(A.R(k,a,r)) +while(p!==44){B.b.l(j,r);++r +for(o=-1;r=0))return A.c(a,r) +p=a.charCodeAt(r) +if(p===61){if(o<0)o=r}else if(p===59||p===44)break}if(o>=0)B.b.l(j,o) +else{n=B.b.gce(j) +if(p!==44||r!==n+7||!B.a.O(a,"base64",n+1))throw A.e(A.R("Expecting '='",a,r)) +break}}B.b.l(j,r) +m=r+1 +if((j.length&1)===1)a=B.J.hm(a,m,s) +else{l=A.mK(a,m,s,256,!0,!1) +if(l!=null)a=B.a.aC(a,m,s,l)}return new A.js(a,j,c)}, +n6(a,b,c,d,e){var s,r,q,p,o,n='\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe3\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0e\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\n\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\xeb\xeb\x8b\xeb\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x83\xeb\xeb\x8b\xeb\x8b\xeb\xcd\x8b\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x92\x83\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x8b\xeb\x8b\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xebD\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12D\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe8\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\x05\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x10\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\f\xec\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\xec\f\xec\f\xec\xcd\f\xec\f\f\f\f\f\f\f\f\f\xec\f\f\f\f\f\f\f\f\f\f\xec\f\xec\f\xec\f\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\r\xed\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\xed\r\xed\r\xed\xed\r\xed\r\r\r\r\r\r\r\r\r\xed\r\r\r\r\r\r\r\r\r\r\xed\r\xed\r\xed\r\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0f\xea\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe9\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\t\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x11\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xe9\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\t\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x13\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\xf5\x15\x15\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5' +for(s=a.length,r=b;r95)q=31 +p=d*96+q +if(!(p<2112))return A.c(n,p) +o=n.charCodeAt(p) +d=o&31 +B.b.i(e,o>>>5,r)}return d}, +mS(a,b,c){var s,r,q,p,o,n,m,l +for(s=a.length,r=b.length,q=0,p=0;p=1)return a.$1(b) +return a.$0()}, +qK(a,b,c,d){t.Z.a(a) +A.U(d) +if(d>=2)return a.$2(b,c) +if(d===1)return a.$1(b) +return a.$0()}, +n0(a){return a==null||A.hG(a)||typeof a=="number"||typeof a=="string"||t.gj.b(a)||t.p.b(a)||t.go.b(a)||t.dQ.b(a)||t.h7.b(a)||t.an.b(a)||t.bv.b(a)||t.h4.b(a)||t.gN.b(a)||t.dI.b(a)||t.fd.b(a)}, +nh(a){if(A.n0(a))return a +return new A.kK(new A.eC(t.hg)).$1(a)}, +nj(a,b){var s=new A.p($.u,b.h("p<0>")),r=new A.ac(s,b.h("ac<0>")) +a.then(A.dJ(new A.kP(r,b),1),A.dJ(new A.kQ(r),1)) +return s}, +kK:function kK(a){this.a=a}, +kP:function kP(a,b){this.a=a +this.b=b}, +kQ:function kQ(a){this.a=a}, +k3:function k3(a){this.a=a}, +bo:function bo(){}, +ee:function ee(a){this.$ti=a}, +iQ:function iQ(a){this.a=a}, +iR:function iR(a,b){this.a=a +this.b=b}, +fi:function fi(){}, +h9:function h9(){}, +h8:function h8(){}, +fn:function fn(){}, +fj:function fj(){}, +h_:function h_(){}, +f2:function f2(){}, +i1:function i1(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.f=d}, +fc:function fc(a,b,c,d,e,f,g,h,i,j,k,l,m,n){var _=this +_.a=a +_.f=_.e=_.d=_.c=_.b=null +_.r=b +_.w=c +_.x=d +_.y=e +_.z=f +_.Q=g +_.as=h +_.at=i +_.ax=j +_.ay=k +_.ch=l +_.CW=m +_.cx=n}, +i2:function i2(a){this.a=a}, +tR(a){var s,r,q,p,o=B.a.a7(a) +if(o.length===0)return!1 +s=A.rj(a,o) +if(s.length===0)return!1 +r=$.nO() +if(r.b.test(a))return!0 +q=A.qI(B.b.gZ(s)) +if(q==="cd")return!0 +if(q==="git"){p=A.qR(A.la(s,1,null,A.P(s).c)) +if(p==="config")return!B.b.V(s,"--get")&&!B.b.V(s,"--list")&&!B.b.V(s,"-l") +return!B.aS.V(0,p)}return!B.aR.V(0,q)}, +rj(a,b){var s,r,q,p,o=B.a.dZ(b,A.bw("\\s+")),n=A.P(o).h("a5(1)").a(new A.kt()) +o.$flags&1&&A.Q(o,16) +B.b.fA(o,n,!0) +for(s=0;n=o.length,s=0))return A.c(o,s) +r=o[s] +n=A.bw("^[A-Za-z_][A-Za-z0-9_]*=") +if(n.b.test(r)){++s +continue}q=B.a.cf(r,"/") +if(B.aP.V(0,q<0?r:B.a.a8(r,q+1))){++s +for(;;){n=o.length +if(!(sb)return B.b.cB(s,r-b) +return s}, +i3:function i3(a,b){this.a=a +this.b=b}, +im:function im(a,b){var _=this +_.a=a +_.b=b +_.c="" +_.d=null}, +i7(a,b){var s +if(b>=a.length)return null +s=a[b] +return s.length===0?null:s}, +oj(a,b){var s,r,q,p,o,n=a.length,m=b.length,l=m-1 +if(n0;--s){q=n-s +p=0 +for(;;){if(!(p=0&&o")),s=s.h("W.E");i.t();){o=i.d +o=A.c3(new A.aT(o==null?s.a(o):o),A.hL(),q,r) +n=A.a2(o,A.h(o).h("f.E")) +m=p.length +l=n.length +k=m=0))return A.c(n,q) +if(n[q]===27){++q +if(q=64&&o<=126)}else o=!1 +if(!o)break;++q}if(p)++q}continue}++r;++q}return r}, +fA:function fA(a,b,c,d,e,f,g,h,i,j,k,l,m){var _=this +_.a=a +_.b=b +_.c=c +_.e=d +_.f=e +_.r=f +_.w=g +_.x=h +_.y=i +_.as=_.z=null +_.ay=_.ax=_.at=!1 +_.ch=null +_.CW="" +_.cx=j +_.cy=0 +_.db=k +_.fr=_.dy=_.dx=0 +_.fx=$ +_.fy=l +_.go="" +_.id=m +_.k1=0}, +iz:function iz(){}, +eK:function eK(a,b){this.a=a +this.b=b}, +bx:function bx(a,b,c,d,e){var _=this +_.b=a +_.c=b +_.d=c +_.e=d +_.f=$ +_.w=_.r=null +_.y=e}, +dU:function dU(){}, +py(a){var s +switch(a.a){case 0:s=B.T +break +case 1:s=B.U +break +case 2:s=B.L +break +default:s=null}return s}, +dm:function dm(){}, +fP:function fP(){}, +fQ:function fQ(){}, +ff:function ff(){}, +tE(a,b,a0,a1,a2,a3,a4){var s,r,q,p,o,n,m,l,k,j,i,h,g=a0!=null&&a0.length!==0,f=A.ri(b),e=a3==null,d=new A.kD(a1,f,b,g,a0,a,a2,e?"":" (\u26a0 "+a3+")"),c=0 +if(a4>0){s=c +for(;;){if(!(s<5)){c=4 +break}if(new A.aT(d.$1(s)).gm(0)+16<=a4){c=s +break}++s}}r=B.q[c].a +q=r[0] +p=r[1] +o=r[2] +n=r[3] +m=q?"@"+a1:"" +l=p?f:b +k=n&&g?" "+a0:"" +j=k.length===0?"":"\x1b[32m"+k+"\x1b[31m" +i=a==null||!o?"":" \x1b[34mgit(\x1b[31m"+a+j+"\x1b[0m\x1b[34m)\x1b[0m" +h=e?"":" \x1b[1;31m(\u26a0 "+a3+")\x1b[0m" +return"\x1b[32m"+a2+m+"\x1b[0m:\x1b[36m"+l+"\x1b[0m"+i+h+" $ "}, +ri(a){var s,r=A.bw("[/\\\\]+$"),q=A.lx(a,r,""),p=B.a.cf(q,A.bw("[/\\\\]")) +if(p<0)return a +s=B.a.a8(q,p+1) +if(s.length===0)return a +return"\u2026/"+s}, +kD:function kD(a,b,c,d,e,f,g,h){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h}, +hC:function hC(){}, +fT:function fT(a,b,c){this.a=a +this.b=b +this.c=c}, +mc(a){var s,r,q=A.i(a,"term") +if(q==null)q="xterm-256color" +s=A.ah(a,"cols",80) +s.toString +r=A.ah(a,"rows",24) +r.toString +return new A.fV(q,s,r)}, +fV:function fV(a,b,c){this.a=a +this.b=b +this.c=c}, +l7(a){var s +A:{if("powershell"===a){s=B.aU +break A}if("cmd"===a){s=B.aV +break A}s=B.E +break A}return s}, +ed:function ed(a,b){this.a=a +this.b=b}, +aG:function aG(a,b,c,d,e,f,g,h,i,j,k){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i +_.y=j +_.z=k}, +oT(a){var s=A.cS(a,"shells"),r=A.cS(a,"features"),q=A.ah(a,"maxSessions",50) +q.toString +return new A.fI(s,r,q,A.i(a,"directEndpoint"))}, +fI:function fI(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +b6:function b6(a,b,c,d,e,f,g){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g}, +m3(a){var s,r=A.j(a,"os"),q=A.j(a,"arch"),p=A.i(a,"agentVersion") +if(p==null)p="unknown" +s=A.i(a,"hostname") +return new A.iL(r,q,p,s==null?"unknown":s)}, +iL:function iL(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +l6(a){var s +A:{if("shell"===a){s=B.D +break A}if("transfer"===a){s=B.aF +break A}if("drive"===a){s=B.aG +break A}if("tunnel"===a){s=B.aH +break A}s=B.aE +break A}return s}, +px(a){var s +A:{if("opening"===a){s=B.aJ +break A}if("open"===a){s=B.aK +break A}if("closing"===a){s=B.aL +break A}if("closed"===a){s=B.aM +break A}if("attached"===a){s=B.aO +break A}s=B.aN +break A}return s}, +cb:function cb(a,b){this.a=a +this.b=b}, +by:function by(a,b){this.a=a +this.b=b}, +aI:function aI(a,b,c,d,e,f,g,h,i){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i}, +fJ:function fJ(a){this.a=a}, +fM:function fM(a){this.a=a}, +fU:function fU(a){this.a=a}, +fY:function fY(a){this.a=a}, +h7:function h7(a,b){this.a=a +this.b=b}, +pW(a,b){var s=new A.eq(a,b,A.aU(null,null,!1,t.r),new A.ac(new A.p($.u,t.D),t.h)) +s.e9(a,b) +return s}, +eq:function eq(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=!0}, +jC:function jC(a){this.a=a}, +jD:function jD(a){this.a=a}, +fa:function fa(a,b,c,d,e,f,g,h){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=262144 +_.x=!1 +_.y=h}, +hr:function hr(a,b,c){this.a=a +this.b=b +this.c=c}, +o6(a,b){var s=new A.fb(a,A.o(t.S,t.dE),A.mg(t.R),b) +s.e5(a,b) +return s}, +fb:function fb(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=$ +_.e=d +_.f=!1}, +i0:function i0(){}, +ow(a,b){var s,r,q,p,o +A.m(a) +t.P.a(b) +s=A.j(b,"role") +r=A.bs(b,"protocolVersion") +q=A.ah(b,"minVersion",1) +q.toString +p=A.i(b,"nonce") +o=t.f +return new A.bp(s,r,q,p,o.b(b.p(0,"info"))?o.a(b.p(0,"info")).a2(0,t.N,t.z):B.al)}, +nZ(a,b){A.m(a) +t.P.a(b) +return new A.bk(A.j(b,"method"),A.j(b,"principal"),A.i(b,"token"),A.i(b,"publicKey"),A.i(b,"signature"))}, +nY(a,b){var s,r +A.m(a) +t.P.a(b) +s=A.j(b,"principal") +r=A.i(b,"displayName") +if(r==null)r="" +return new A.bK(s,r,A.cS(b,"roles"),A.j(b,"sessionToken"))}, +nX(a,b){var s,r +A.m(a) +t.P.a(b) +s=A.i(b,"reason") +if(s==null)s="auth_failed" +r=A.i(b,"message") +return new A.bJ(s,r==null?"Authentication failed":r)}, +p3(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=A.j(b,"nodeId") +r=A.i(b,"uid") +q=A.i(b,"displayName") +if(q==null)q="" +return new A.d8(s,r,q,A.m3(A.e0(b.p(0,"platform"))),A.cT(b,"labels"))}, +p4(a,b){A.m(a) +t.P.a(b) +return new A.d9(A.j(b,"nodeId"),A.bZ(b,"assignedAt"))}, +oS(a,b){A.m(a) +return new A.cZ(A.oT(t.P.a(b)))}, +p0(a,b){var s,r +A.m(a) +t.P.a(b) +s=A.j(b,"nodeId") +r=A.ah(b,"activeSessions",0) +r.toString +return new A.d5(s,r,A.bs(b,"seq"),A.bZ(b,"ts"))}, +p_(a,b){A.m(a) +t.P.a(b) +return new A.d6(A.bs(b,"seq"),A.bZ(b,"ts"))}, +ph(a,b){A.m(a) +t.P.a(b) +return new A.dh(A.j(b,"id"),A.bZ(b,"ts"))}, +pi(a,b){A.m(a) +t.P.a(b) +return new A.c8(A.j(b,"id"),A.bZ(b,"ts"),A.bZ(b,"serverTs"))}, +p1(a,b){A.m(a) +return new A.d7(A.cT(t.P.a(b),"filter"))}, +p2(a,a0){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b=null +A.m(a) +s=t.P.a(a0).p(0,"nodes") +r=t.j.b(s)?s:B.ak +q=A.w([],t.g1) +for(p=J.cD(r);p.t();){o=A.e0(p.gB()) +n=o.p(0,"capabilities") +m=A.i(o,"uid") +l=A.j(o,"nodeId") +k=B.a.a7(l) +if(k.length===0)A.v(B.av) +j=$.nt() +if(!j.b.test(k))A.v(A.a9('Invalid node id: "'+l+'"',b)) +if(m==null)l=b +else{i=B.a.a7(m) +if(B.a.L(i,"nod_")||B.a.L(i,"hub_")){l=$.nu() +l=!l.b.test(i)}else l=!0 +if(l)A.v(A.a9('Invalid UID: "'+m+'"',b)) +l=new A.fM(i)}j=A.i(o,"displayName") +if(j==null)j="" +h=A.m3(A.e0(o.p(0,"platform"))) +g=A.cT(o,"labels") +o=A.a1(o,"online") +if(n==null)f=b +else{f=A.e0(n) +e=A.cS(f,"shells") +d=A.cS(f,"features") +c=A.ah(f,"maxSessions",50) +c.toString +f=new A.fI(e,d,c,A.i(f,"directEndpoint"))}q.push(new A.b6(new A.fJ(k),l,j,h,g,o,f))}return new A.c4(q)}, +ps(a,b){var s,r,q,p,o,n,m,l,k,j,i +A.m(a) +t.P.a(b) +s=b.p(0,"pty") +r=A.i(b,"shellFamily") +q=a==null?A.v(A.a4("session.open")):a +p=A.j(b,"nodeId") +o=A.i(b,"mode") +o=A.l6(o==null?"exec":o) +n=A.i(b,"command") +m=A.cS(b,"args") +l=A.cT(b,"env") +k=A.i(b,"cwd") +j=s==null?null:A.mc(A.e0(s)) +i=A.i(b,"resumeSessionId") +return new A.cc(q,p,o,n,m,l,k,j,i,r==null?null:A.l7(r))}, +pt(a,b){var s,r,q,p,o +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("session.opened")):a +r=A.j(b,"sessionId") +q=A.a1(b,"pty") +p=A.a1(b,"altScreen") +o=A.i(b,"shell") +return new A.cd(s,r,q,p,o==null?"posix":o)}, +pu(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("session.rejected")):a +r=A.i(b,"reason") +if(r==null)r="session_rejected" +q=A.i(b,"message") +return new A.ce(s,r,q==null?"Session rejected":q)}, +p7(a,b){var s,r,q,p,o,n,m,l,k,j,i,h +A.m(a) +t.P.a(b) +s=b.p(0,"pty") +r=A.i(b,"shellFamily") +q=a==null?A.v(A.a4("node.session.open")):a +p=A.j(b,"sessionId") +o=A.j(b,"principal") +n=A.i(b,"mode") +n=A.l6(n==null?"exec":n) +m=A.i(b,"command") +l=A.cS(b,"args") +k=A.cT(b,"env") +j=A.i(b,"cwd") +i=s==null?null:A.mc(A.e0(s)) +h=A.i(b,"resumeSessionId") +return new A.dc(q,p,o,n,m,l,k,j,i,h,r==null?null:A.l7(r))}, +p8(a,b){var s,r,q,p,o +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("node.session.opened")):a +r=A.j(b,"sessionId") +q=A.ah(b,"pid",null) +p=A.a1(b,"altScreen") +o=A.i(b,"shell") +return new A.dd(s,r,q,p,o==null?"posix":o)}, +p9(a,b){var s,r,q,p +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("node.session.rejected")):a +r=A.i(b,"sessionId") +if(r==null)r="" +q=A.i(b,"reason") +if(q==null)q="session_rejected" +p=A.i(b,"message") +return new A.de(s,r,q,p==null?"Session rejected":p)}, +o7(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("channel.resize")):a +r=A.ah(b,"cols",80) +r.toString +q=A.ah(b,"rows",24) +q.toString +return new A.bP(s,r,q)}, +o8(a,b){var s +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("channel.signal")):a +return new A.bQ(s,A.j(b,"signal"))}, +o4(a,b){var s,r +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("channel.eof")):a +r=A.i(b,"stream") +return new A.cI(s,r==null?"stdin":r)}, +o5(a,b){var s,r,q,p +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("channel.exit")):a +r=A.ah(b,"exitCode",0) +r.toString +q=A.i(b,"signal") +p=A.fz(b,"ts") +return new A.bO(s,r,q,p==null?new A.aF(Date.now(),0,!1).N():p)}, +o3(a,b){var s,r +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("channel.close")):a +r=A.i(b,"reason") +if(r==null)r="normal" +return new A.bl(s,r,A.i(b,"message"))}, +o9(a,b){var s,r +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("channel.window")):a +r=A.i(b,"stream") +if(r==null)r="stdout" +return new A.bm(s,r,A.bs(b,"credit"))}, +pm(a,b){var s,r +A.m(a) +t.P.a(b) +s=A.i(b,"code") +if(s==null)s="protocol_error" +r=A.i(b,"message") +if(r==null)r="Protocol error" +return new A.di(s,r,A.a1(b,"fatal"),a)}, +pq(a,b){var s +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("session.detach.request")):a +return new A.dk(s,A.ah(b,"timeoutSeconds",null))}, +p5(a,b){var s +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("node.session.detach")):a +return new A.da(s,A.j(b,"sessionId"),A.j(b,"principal"),A.ah(b,"timeoutSeconds",null))}, +p6(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("node.session.detached")):a +r=A.j(b,"sessionId") +q=A.i(b,"shortId") +if(q==null)q="" +return new A.db(s,r,q,A.fz(b,"expiresAt"))}, +pr(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("session.detached")):a +r=A.j(b,"sessionId") +q=A.i(b,"shortId") +if(q==null)q="" +return new A.ca(s,r,q,A.fz(b,"expiresAt"))}, +oq(a,b){A.m(a) +t.P.a(b) +return new A.cL(A.j(b,"requestId"),A.j(b,"nodeId"))}, +oW(a,b){A.m(a) +t.P.a(b) +return new A.d1(A.j(b,"requestId"),A.j(b,"principal"))}, +oX(a,b){A.m(a) +t.P.a(b) +return new A.d2(A.j(b,"requestId"),A.mU(b.p(0,"sessions")))}, +or(a,b){A.m(a) +t.P.a(b) +return new A.bV(A.j(b,"requestId"),A.mU(b.p(0,"sessions")))}, +oo(a,b){A.m(a) +t.P.a(b) +return new A.cK(A.j(b,"requestId"),A.j(b,"nodeId"),A.j(b,"sessionRef"))}, +oU(a,b){A.m(a) +t.P.a(b) +return new A.d_(A.j(b,"requestId"),A.j(b,"principal"),A.j(b,"sessionRef"))}, +oV(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.a1(b,"ok") +q=A.i(b,"message") +return new A.d0(s,r,q==null?"":q)}, +op(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.a1(b,"ok") +q=A.i(b,"message") +return new A.bU(s,r,q==null?"":q)}, +nS(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.j(b,"nodeId") +q=A.i(b,"sessionRef") +if(q==null)q="" +return new A.cE(s,r,q,A.ah(b,"timeoutSeconds",null))}, +oR(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.j(b,"principal") +q=A.i(b,"sessionRef") +if(q==null)q="" +return new A.cX(s,r,q,A.ah(b,"timeoutSeconds",null))}, +oQ(a,b){var s,r,q,p +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.a1(b,"ok") +q=A.i(b,"shortId") +if(q==null)q="" +p=A.i(b,"message") +return new A.cY(s,r,q,p==null?"":p)}, +nT(a,b){var s,r,q,p +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.a1(b,"ok") +q=A.i(b,"shortId") +if(q==null)q="" +p=A.i(b,"message") +return new A.bG(s,r,q,p==null?"":p)}, +pv(a,b){A.m(a) +t.P.a(b) +return new A.dl(A.j(b,"requestId"),A.j(b,"nodeId"),A.j(b,"sessionRef"))}, +pa(a,b){A.m(a) +t.P.a(b) +return new A.df(A.j(b,"requestId"),A.j(b,"principal"),A.j(b,"sessionRef"))}, +pb(a,b){var s,r,q,p +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.a1(b,"ok") +q=A.i(b,"message") +if(q==null)q="" +p=A.i(b,"screen") +if(p==null)p="" +return new A.dg(s,r,q,p,A.a1(b,"altScreen"))}, +pw(a,b){var s,r,q,p +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.a1(b,"ok") +q=A.i(b,"message") +if(q==null)q="" +p=A.i(b,"screen") +if(p==null)p="" +return new A.cf(s,r,q,p,A.a1(b,"altScreen"))}, +mT(a){var s,r +if(!t.j.b(a))return B.ai +s=J.kU(a,t.f) +r=s.$ti +r=A.c3(s,r.h("aR(f.E)").a(new A.kp()),r.h("f.E"),t.o) +s=A.a2(r,A.h(r).h("f.E")) +s.$flags=1 +return s}, +os(a,b){var s,r,q,p,o +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.j(b,"nodeId") +q=A.j(b,"op") +p=A.i(b,"host") +o=t.fF.a(b.p(0,"credential")) +return new A.cM(s,r,q,p,o==null?null:o.a2(0,t.N,t.z))}, +oY(a,b){var s,r,q,p,o +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.j(b,"principal") +q=A.j(b,"op") +p=A.i(b,"host") +o=t.fF.a(b.p(0,"credential")) +return new A.d3(s,r,q,p,o==null?null:o.a2(0,t.N,t.z))}, +oZ(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.a1(b,"ok") +q=A.i(b,"message") +if(q==null)q="" +return new A.d4(s,r,q,A.mT(b.p(0,"entries")))}, +ot(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.a1(b,"ok") +q=A.i(b,"message") +if(q==null)q="" +return new A.bW(s,r,q,A.mT(b.p(0,"entries")))}, +mU(a){var s,r +if(!t.j.b(a))return B.aj +s=J.kU(a,t.f) +r=s.$ti +r=A.c3(s,r.h("aG(f.E)").a(new A.kq()),r.h("f.E"),t.U) +s=A.a2(r,A.h(r).h("f.E")) +return s}, +pM(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.j(b,"nodeId") +q=A.i(b,"targetHost") +if(q==null)q="localhost" +return new A.ds(s,r,q,A.bs(b,"targetPort"),A.ah(b,"publicPort",null),A.a1(b,"secure"))}, +pN(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.j(b,"tunnelId") +q=A.i(b,"publicHost") +if(q==null)q="" +return new A.ck(s,r,q,A.bs(b,"publicPort"),A.a1(b,"secure"))}, +pO(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.i(b,"reason") +if(r==null)r="tunnel_rejected" +q=A.i(b,"message") +return new A.cl(s,r,q==null?"Tunnel rejected":q)}, +pI(a,b){A.m(a) +t.P.a(b) +return new A.dq(A.j(b,"requestId"),A.j(b,"tunnelRef"))}, +pJ(a,b){var s,r,q +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.a1(b,"ok") +q=A.i(b,"message") +return new A.ci(s,r,q==null?"":q)}, +pK(a,b){A.m(a) +return new A.dr(A.j(t.P.a(b),"requestId"))}, +pL(a,b){A.m(a) +t.P.a(b) +return new A.cj(A.j(b,"requestId"),A.qO(b.p(0,"tunnels")))}, +pd(a,b){var s,r,q,p,o +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("node.tunnel.connect")):a +r=A.j(b,"tunnelId") +q=A.i(b,"targetHost") +if(q==null)q="localhost" +p=A.bs(b,"targetPort") +o=A.i(b,"principal") +return new A.c5(s,r,q,p,o==null?"":o)}, +pe(a,b){var s,r +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("node.tunnel.connected")):a +r=A.i(b,"tunnelId") +return new A.c7(s,r==null?"":r)}, +pc(a,b){var s,r,q,p +A.m(a) +t.P.a(b) +s=a==null?A.v(A.a4("node.tunnel.connect.failed")):a +r=A.i(b,"tunnelId") +if(r==null)r="" +q=A.i(b,"reason") +if(q==null)q="dial_failed" +p=A.i(b,"message") +return new A.c6(s,r,q,p==null?"":p)}, +qO(a){var s,r +if(!t.j.b(a))return B.ah +s=J.kU(a,t.f) +r=s.$ti +r=A.c3(s,r.h("aI(f.E)").a(new A.kr()),r.h("f.E"),t.x) +s=A.a2(r,A.h(r).h("f.E")) +return s}, +a4(a){return new A.ao("Control message '"+a+"' requires a channel id",null,null)}, +nV(a,b){A.m(a) +return new A.cF(A.j(t.P.a(b),"requestId"))}, +nW(a,b){A.m(a) +t.P.a(b) +return new A.bH(A.j(b,"requestId"),A.a1(b,"available"),A.i(b,"provider"),A.i(b,"model"),A.i(b,"plannerModel"),A.i(b,"executorModel"),A.i(b,"explainerModel"),A.i(b,"baseUrl"),A.i(b,"mode"),A.i(b,"language"))}, +ox(a){var s +A:{if("hubDefault"===(a==null?null:B.a.a7(a))){s=B.a0 +break A}s=B.z +break A}return s}, +oy(a,b){var s,r,q,p,o +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.j(b,"method") +q=A.j(b,"url") +p=A.cT(b,"headers") +o=A.i(b,"body") +if(o==null)o="" +return new A.cN(s,r,q,p,o,A.ox(A.i(b,"credentialMode")),A.i(b,"provider"))}, +oz(a,b){var s,r,q,p +A.m(a) +t.P.a(b) +s=A.j(b,"requestId") +r=A.ah(b,"statusCode",0) +r.toString +q=A.cT(b,"headers") +p=A.i(b,"body") +if(p==null)p="" +return new A.bq(s,r,q,p,A.i(b,"error"))}, +k:function k(){}, +bp:function bp(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +bk:function bk(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +bK:function bK(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +bJ:function bJ(a,b){this.a=a +this.b=b}, +d8:function d8(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +d9:function d9(a,b){this.a=a +this.b=b}, +cZ:function cZ(a){this.a=a}, +d5:function d5(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +d6:function d6(a,b){this.a=a +this.b=b}, +dh:function dh(a,b){this.a=a +this.b=b}, +c8:function c8(a,b,c){this.a=a +this.b=b +this.c=c}, +d7:function d7(a){this.a=a}, +c4:function c4(a){this.a=a}, +iF:function iF(){}, +cc:function cc(a,b,c,d,e,f,g,h,i,j){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i +_.y=j}, +cd:function cd(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +ce:function ce(a,b,c){this.a=a +this.b=b +this.c=c}, +dc:function dc(a,b,c,d,e,f,g,h,i,j,k){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i +_.y=j +_.z=k}, +dd:function dd(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +de:function de(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +bP:function bP(a,b,c){this.a=a +this.b=b +this.c=c}, +bQ:function bQ(a,b){this.a=a +this.b=b}, +cI:function cI(a,b){this.a=a +this.b=b}, +bO:function bO(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +bl:function bl(a,b,c){this.a=a +this.b=b +this.c=c}, +bm:function bm(a,b,c){this.a=a +this.b=b +this.c=c}, +di:function di(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +dk:function dk(a,b){this.a=a +this.b=b}, +da:function da(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +db:function db(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +ca:function ca(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +cL:function cL(a,b){this.a=a +this.b=b}, +d1:function d1(a,b){this.a=a +this.b=b}, +d2:function d2(a,b){this.a=a +this.b=b}, +iD:function iD(){}, +bV:function bV(a,b){this.a=a +this.b=b}, +ic:function ic(){}, +cK:function cK(a,b,c){this.a=a +this.b=b +this.c=c}, +d_:function d_(a,b,c){this.a=a +this.b=b +this.c=c}, +d0:function d0(a,b,c){this.a=a +this.b=b +this.c=c}, +bU:function bU(a,b,c){this.a=a +this.b=b +this.c=c}, +cE:function cE(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +cX:function cX(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +cY:function cY(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +bG:function bG(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +dl:function dl(a,b,c){this.a=a +this.b=b +this.c=c}, +df:function df(a,b,c){this.a=a +this.b=b +this.c=c}, +dg:function dg(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +cf:function cf(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +aR:function aR(a,b){this.a=a +this.b=b}, +kp:function kp(){}, +cM:function cM(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +d3:function d3(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +d4:function d4(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +iE:function iE(){}, +bW:function bW(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +id:function id(){}, +kq:function kq(){}, +ds:function ds(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f}, +ck:function ck(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +cl:function cl(a,b,c){this.a=a +this.b=b +this.c=c}, +dq:function dq(a,b){this.a=a +this.b=b}, +ci:function ci(a,b,c){this.a=a +this.b=b +this.c=c}, +dr:function dr(a){this.a=a}, +cj:function cj(a,b){this.a=a +this.b=b}, +jl:function jl(){}, +c5:function c5(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +c7:function c7(a,b){this.a=a +this.b=b}, +c6:function c6(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +kr:function kr(){}, +cF:function cF(a){this.a=a}, +bH:function bH(a,b,c,d,e,f,g,h,i,j){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i +_.y=j}, +fm:function fm(a,b){this.a=a +this.b=b}, +cN:function cN(a,b,c,d,e,f,g){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g}, +bq:function bq(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +ok(a){var s +A:{if(1===a){s=B.m +break A}if(2===a){s=B.W +break A}if(3===a){s=B.X +break A}s=A.v(A.a9("Unknown data opcode: 0x"+B.c.dH(a,16),null))}return s}, +dT:function dT(a,b,c){this.c=a +this.a=b +this.b=c}, +ij:function ij(a){this.a=a}, +b7:function b7(){}, +an:function an(a){this.a=a}, +bT:function bT(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +a9(a,b){return new A.aS(b==null?"protocol_error":b,a)}, +fK:function fK(){}, +aS:function aS(a,b){this.a=a +this.b=b}, +f6:function f6(a,b){this.a=a +this.b=b}, +fZ:function fZ(a,b){this.a=a +this.b=b}, +jm:function jm(a,b){this.a=a +this.b=b}, +ch:function ch(a,b){this.a=a +this.b=b}, +e0(a){if(t.f.b(a))return a.a2(0,t.N,t.z) +throw A.e(A.a9("Expected value to be a JSON object",null))}, +j(a,b){var s=a.p(0,b) +if(typeof s=="string")return s +throw A.e(A.a9("Missing or invalid string field '"+b+"'",null))}, +i(a,b){var s=a.p(0,b) +if(s==null)return null +if(typeof s=="string")return s +throw A.e(A.a9("Invalid string field '"+b+"'",null))}, +bs(a,b){var s=a.p(0,b) +if(A.hH(s))return s +throw A.e(A.a9("Missing or invalid int field '"+b+"'",null))}, +ah(a,b,c){var s=a.p(0,b) +if(s==null)return c +if(A.hH(s))return s +throw A.e(A.a9("Invalid int field '"+b+"'",null))}, +a1(a,b){var s=a.p(0,b) +if(s==null)return!1 +if(A.hG(s))return s +throw A.e(A.a9("Invalid bool field '"+b+"'",null))}, +bZ(a,b){var s=A.lP(A.j(a,b)) +if(s==null)throw A.e(A.a9("Invalid timestamp field '"+b+"'",null)) +return s.N()}, +fz(a,b){var s,r=A.i(a,b) +if(r==null)return null +s=A.lP(r) +if(s==null)throw A.e(A.a9("Invalid timestamp field '"+b+"'",null)) +return s.N()}, +cT(a,b){var s,r=a.p(0,b) +if(r==null)return B.A +if(t.f.b(r)){s=t.N +return r.dw(0,new A.iy(),s,s)}throw A.e(A.a9("Invalid map field '"+b+"'",null))}, +cS(a,b){var s,r=a.p(0,b) +if(r==null)return B.r +if(t.j.b(r)){s=J.lD(r,new A.ix(),t.N) +s=A.a2(s,s.$ti.h("W.E")) +return s}throw A.e(A.a9("Invalid list field '"+b+"'",null))}, +iy:function iy(){}, +ix:function ix(){}, +iW:function iW(){}, +lE(a,b,c,d){return new A.aD(a,b)}, +lF(a){if(a instanceof A.aD)return a +if(a instanceof A.f6)return new A.aD(B.G,"Authentication failed: "+a.b) +if(a instanceof A.ch)return new A.aD(B.l,"Connection failed: "+a.b) +if(a instanceof A.fK)return new A.aD(B.u,a.b) +return new A.aD(B.u,J.b0(a))}, +dN:function dN(a,b){this.a=a +this.b=b}, +aD:function aD(a,b){this.a=a +this.b=b}, +pg(a){var s,r,q,p=null,o="Invalid Hub address: ",n=B.a.a7(a) +if(n.length===0)throw A.e(B.I) +s=B.a.V(n,"://")?n:"wss://"+n +r=null +try{r=A.pS(s)}catch(q){if(A.a_(q) instanceof A.ao)throw A.e(A.lE(B.l,o+a,p,p)) +else throw q}if(r.gbq().length===0)throw A.e(A.lE(B.l,o+a,p,p)) +if(r.gb4()!=="wss"&&r.gb4()!=="ws")return r.dD("wss") +return r}, +fL:function fL(){this.b=null +this.e=!1}, +iJ:function iJ(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +fg:function fg(a,b,c){this.a=a +this.b=b +this.c=c}, +pD(a,b,c,d,e){var s=new A.h4(c,e,a,b,d) +s.e7(a,b,c,d,e) +return s}, +kx(){var s=0,r=A.H(t.dk),q +var $async$kx=A.I(function(a,b){if(a===1)return A.E(b,r) +for(;;)switch(s){case 0:s=3 +return A.y(A.nj(A.l(A.l(A.l(A.l(v.G.window).navigator).clipboard).readText()),t.N),$async$kx) +case 3:q=b +s=1 +break +case 1:return A.F(q,r)}}) +return A.G($async$kx,r)}, +ky(a){return A.tA(A.L(a))}, +tA(a){var s=0,r=A.H(t.H) +var $async$ky=A.I(function(b,c){if(b===1)return A.E(c,r) +for(;;)switch(s){case 0:s=2 +return A.y(A.nj(A.l(A.l(A.l(A.l(v.G.window).navigator).clipboard).writeText(a)),t.X),$async$ky) +case 2:return A.F(null,r)}}) +return A.G($async$ky,r)}, +h4:function h4(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.w=_.r=_.f=$ +_.x="C" +_.z=_.y=null}, +jb:function jb(a){this.a=a}, +jc:function jc(a){this.a=a}, +j9:function j9(a,b){this.a=a +this.b=b}, +ja:function ja(a,b){this.a=a +this.b=b}, +j_:function j_(a,b){this.a=a +this.b=b}, +j0:function j0(){}, +j8:function j8(a,b){this.a=a +this.b=b}, +j1:function j1(a){this.a=a}, +j2:function j2(){}, +j3:function j3(a){this.a=a}, +j4:function j4(){}, +j6:function j6(a,b){this.a=a +this.b=b}, +j7:function j7(a){this.a=a}, +j5:function j5(a,b){this.a=a +this.b=b}, +iY:function iY(a,b){this.a=a +this.b=b}, +iZ:function iZ(){}, +bA:function bA(a,b){this.a=a +this.b=b}, +pE(a,b,c,d){return new A.h5(d,b,a,c,new A.jg(),new A.jh())}, +mi(a,b,c){var s=A.cy(new A.jd(c)) +a.addEventListener(b,s) +return new A.je(a,b,s)}, +h5:function h5(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.f=e +_.r=f +_.w=!1 +_.y=null}, +jg:function jg(){}, +jh:function jh(){}, +jf:function jf(a){this.a=a}, +ji:function ji(a){this.a=a}, +jd:function jd(a){this.a=a}, +je:function je(a,b,c){this.a=a +this.b=b +this.c=c}, +pT(a,b,c,d,e){var s=null,r=A.aU(s,s,!1,t.L),q=A.mg(t.H),p=new A.fg(new A.i3(A.of(B.r,1000),1000),s,""),o=Date.now() +r=new A.em(e,c,b,r,a,p,q,new A.aF(o,0,!1),B.aW) +r.e8(s,a,s,b,s,s,s,s,c,s,s,!1,d,s,e) +return r}, +em:function em(a,b,c,d,e,f,g,h,i){var _=this +_.a=a +_.b=b +_.c=c +_.e=_.d=$ +_.f=d +_.r=e +_.ax=f +_.cy=_.cx=_.CW=_.ch=!1 +_.db=null +_.dx=g +_.dy=h +_.fr=i +_.fx=null}, +jv:function jv(a){this.a=a}, +jw:function jw(a){this.a=a}, +jx:function jx(a){this.a=a}, +ju:function ju(a,b){this.a=a +this.b=b}, +jy:function jy(a){this.a=a}, +jz:function jz(a){this.a=a}, +er:function er(a,b){this.a=a +this.b=b}, +jE:function jE(a){this.a=a}, +jF:function jF(a){this.a=a}, +ae(a,b,c,d,e,f,g,h,i){var s,r,q=A.l(A.l(v.G.document).createElement(a)) +if(e!=null)q.className=e +if(f!=null)q.id=f +if(i!=null)q.textContent=i +if(h!=null)q.setAttribute("role",h) +if(b!=null)q.setAttribute("aria-label",b) +if(c!=null)c.a_(0,new A.kB(q)) +for(s=d.length,r=0;r")) +s.e6(b,c,r,d) +return s}, +dW:function dW(a){var _=this +_.b=_.a=$ +_.c=null +_.d=!1 +_.$ti=a}, +il:function il(a,b,c){this.a=a +this.b=b +this.c=c}, +ik:function ik(a){this.a=a}, +dy:function dy(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.e=_.d=!1 +_.r=_.f=null +_.w=d +_.$ti=e}, +k2:function k2(){}, +h2:function h2(a){this.b=this.a=$ +this.$ti=a}, +eg:function eg(){}, +iN:function iN(){}, +i5:function i5(){}, +mt(a,b,c,d,e){var s +if(c==null)s=null +else{s=A.n8(new A.jP(c),t.m) +s=s==null?null:A.cy(s)}s=new A.ey(a,b,s,!1,e.h("ey<0>")) +s.dh() +return s}, +n8(a,b){var s=$.u +if(s===B.d)return a +return s.fP(a,b)}, +kX:function kX(a,b){this.a=a +this.$ti=b}, +cq:function cq(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.$ti=d}, +ey:function ey(a,b,c,d,e){var _=this +_.a=0 +_.b=a +_.c=b +_.d=c +_.e=d +_.$ti=e}, +jP:function jP(a){this.a=a}, +jQ:function jQ(a){this.a=a}, +kV(a,b){var s=0,r=A.H(t.dK),q,p,o,n,m,l,k +var $async$kV=A.I(function(c,d){if(c===1)return A.E(d,r) +for(;;)switch(s){case 0:if(!a.cd("ws")&&!a.cd("wss"))throw A.e(A.f4(a,"url","only ws: and wss: schemes are supported")) +p=v.G +o=p.WebSocket +n=a.k(0) +p=p.Array +p=t.c.a(new p()) +m=A.l(new o(n,p)) +m.binaryType="arraybuffer" +l=new A.bL(m,A.aU(null,null,!1,t.E)) +p=new A.p($.u,t.cX) +k=new A.ac(p,t.gi) +if(A.U(m.readyState)===1)k.D(l) +else if(A.U(m.readyState)===2||A.U(m.readyState)===3)k.H(new A.eo("Unexpected WebSocket state: "+A.U(m.readyState)+", expected CONNECTING (0) or OPEN (1)")) +else new A.cq(m,"open",!1,t.G).gZ(0).b1(new A.hW(k,l),t.H) +o=t.G +n=t.H +new A.cq(m,"error",!1,o).gZ(0).b1(new A.hX(k,l),n) +A.mt(m,"message",t.bY.a(new A.hY(l)),!1,t.m) +new A.cq(m,"close",!1,o).gZ(0).b1(new A.hZ(k,l),n) +q=p +s=1 +break +case 1:return A.F(q,r)}}) +return A.G($async$kV,r)}, +bL:function bL(a,b){this.a=a +this.b=b}, +hW:function hW(a,b){this.a=a +this.b=b}, +hX:function hX(a,b){this.a=a +this.b=b}, +hY:function hY(a){this.a=a}, +hZ:function hZ(a,b){this.a=a +this.b=b}, +lc(){return new A.en("Connection Closed")}, +bd:function bd(){}, +dp:function dp(a){this.a=a}, +cG:function cG(a){this.a=a}, +cJ:function cJ(a,b){this.a=a +this.b=b}, +eo:function eo(a){this.a=a}, +en:function en(a){this.a=a}, +nU(a){var s=null,r=$.u,q=new A.h2(t.aG),p=t.X,o=A.aU(s,s,!0,p),n=A.aU(s,s,!0,p),m=A.h(n),l=A.h(o) +q.a=A.lS(new A.M(n,m.h("M<1>")),new A.cx(o,l.h("cx<1>")),!0,p) +q.b=A.lS(new A.M(o,l.h("M<1>")),new A.cx(n,m.h("cx<1>")),!1,p) +q=new A.f3(new A.ac(new A.p(r,t.D),t.h),q) +q.e4(a) +return q}, +f3:function f3(a,b){var _=this +_.e=_.d=null +_.f=a +_.r=b +_.w=$}, +hT:function hT(a){this.a=a}, +hQ:function hQ(a){this.a=a}, +hR:function hR(a){this.a=a}, +hS:function hS(a,b){this.a=a +this.b=b}, +hU:function hU(a){this.a=a}, +hE:function hE(a,b){this.b=a +this.a=b}, +jB:function jB(a){this.a=a}, +tP(){var s=v.G,r=A.aM(A.l(s.document).getElementById("app")) +if(r==null)r=A.l(r) +s=A.aM(A.l(s.document).getElementById("toasts")) +s.toString +new A.ie(r,new A.h6(s),new A.fL()).aH()}, +ie:function ie(a,b,c){this.a=a +this.b=b +this.c=c}, +ig:function ig(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +mk(a,b,c){var s=a.BYTES_PER_ELEMENT +c=A.aw(b,c,B.c.aI(a.byteLength,s)) +return J.lB(B.k.gdn(a),a.byteOffset+b*s,(c-b)*s)}, +hM(a,b){var s=0,r=A.H(t.dJ),q,p,o,n +var $async$hM=A.I(function(c,d){if(c===1)return A.E(d,r) +for(;;)switch(s){case 0:n=A.nU(A.kV(a,null)) +s=3 +return A.y(n.f.a,$async$hM) +case 3:p=$.ns() +o=A.oK(t.N,t.w) +o.aw(0,p) +q=A.pW(n,new A.ij(o)) +s=1 +break +case 1:return A.F(q,r)}}) +return A.G($async$hM,r)}, +lM(a,b,c){var s,r,q +if(c<0||c>4294967295)throw A.e(A.f4(c,"value","not a uint32")) +s=B.c.a1(c,24) +a.$flags&2&&A.Q(a) +r=a.length +if(!(b>>0}},B={} +var w=[A,J,B] +var $={} +A.kZ.prototype={} +J.fq.prototype={ +M(a,b){return a===b}, +gA(a){return A.c9(a)}, +k(a){return"Instance of '"+A.fS(a)+"'"}, +gI(a){return A.aN(A.lm(this))}} +J.fs.prototype={ +k(a){return String(a)}, +gA(a){return a?519018:218159}, +gI(a){return A.aN(t.y)}, +$iC:1, +$ia5:1} +J.dY.prototype={ +M(a,b){return null==b}, +k(a){return"null"}, +gA(a){return 0}, +gI(a){return A.aN(t.a)}, +$iC:1, +$iO:1} +J.dZ.prototype={$iB:1} +J.bt.prototype={ +gA(a){return 0}, +gI(a){return B.b8}, +k(a){return String(a)}} +J.fO.prototype={} +J.cn.prototype={} +J.b3.prototype={ +k(a){var s=a[$.nq()] +if(s==null)s=a[$.kR()] +if(s==null)return this.e2(a) +return"JavaScript function for "+J.b0(s)}, +$ibY:1} +J.cQ.prototype={ +gA(a){return 0}, +k(a){return String(a)}} +J.cR.prototype={ +gA(a){return 0}, +k(a){return String(a)}} +J.A.prototype={ +l(a,b){A.P(a).c.a(b) +a.$flags&1&&A.Q(a,29) +a.push(b)}, +cn(a,b){a.$flags&1&&A.Q(a,"removeAt",1) +if(b<0||b>=a.length)throw A.e(A.l4(b,null)) +return a.splice(b,1)[0]}, +fA(a,b,c){var s,r,q,p,o +A.P(a).h("a5(1)").a(b) +s=[] +r=a.length +for(q=0;q").a(b) +a.$flags&1&&A.Q(a,"addAll",2) +if(Array.isArray(b)){this.ed(a,b) +return}for(s=J.cD(b);s.t();)a.push(s.gB())}, +ed(a,b){var s,r +t.b.a(b) +s=b.length +if(s===0)return +if(a===b)throw A.e(A.am(a)) +for(r=0;r").v(c).h("X<1,2>"))}, +ak(a,b){var s,r=A.cU(a.length,"",!1,t.N) +for(s=0;s=0&&ba.length)throw A.e(A.Y(b,0,a.length,"start",null)) +if(c==null)c=a.length +else if(ca.length)throw A.e(A.Y(c,b,a.length,"end",null)) +if(b===c)return A.w([],A.P(a)) +return A.w(a.slice(b,c),A.P(a))}, +cB(a,b){return this.a0(a,b,null)}, +gZ(a){if(a.length>0)return a[0] +throw A.e(A.it())}, +gce(a){var s=a.length +if(s>0)return a[s-1] +throw A.e(A.it())}, +co(a,b,c){a.$flags&1&&A.Q(a,18) +A.aw(b,c,a.length) +a.splice(b,c-b)}, +ab(a,b,c,d,e){var s,r,q,p +A.P(a).h("f<1>").a(d) +a.$flags&2&&A.Q(a,5) +A.aw(b,c,a.length) +s=c-b +if(s===0)return +A.ea(e,"skipCount") +r=d +q=J.aB(r) +if(e+s>q.gm(r))throw A.e(A.lT()) +if(e=0;--p)a[b+p]=q.p(r,e+p) +else for(p=0;p0){a[0]=q +a[1]=r}return}o=0 +if(A.P(a).c.b(null))for(n=0;n0)this.fB(a,o)}, +fB(a,b){var s,r=a.length +for(;s=r-1,r>0;r=s)if(a[s]===null){a[s]=void 0;--b +if(b===0)break}}, +aB(a,b,c){var s,r=a.length +if(c>=r)return-1 +if(c<0)c=0 +for(s=c;s"))}, +gA(a){return A.c9(a)}, +gm(a){return a.length}, +sm(a,b){a.$flags&1&&A.Q(a,"set length","change the length of") +if(b<0)throw A.e(A.Y(b,0,null,"newLength",null)) +if(b>a.length)A.P(a).c.a(null) +a.length=b}, +p(a,b){if(!(b>=0&&b=0&&b"))}, +gI(a){return A.aN(A.P(a))}, +$ia7:1, +$iq:1, +$if:1, +$it:1} +J.fr.prototype={ +hy(a){var s,r,q +if(!Array.isArray(a))return null +s=a.$flags|0 +if((s&4)!==0)r="const, " +else if((s&2)!==0)r="unmodifiable, " +else r=(s&1)!==0?"fixed, ":"" +q="Instance of '"+A.fS(a)+"'" +if(r==="")return q +return q+" ("+r+"length: "+a.length+")"}} +J.iv.prototype={} +J.bI.prototype={ +gB(){var s=this.d +return s==null?this.$ti.c.a(s):s}, +t(){var s,r=this,q=r.a,p=q.length +if(r.b!==p){q=A.cC(q) +throw A.e(q)}s=r.c +if(s>=p){r.d=null +return!1}r.d=q[s] +r.c=s+1 +return!0}, +$iS:1} +J.cO.prototype={ +a4(a,b){var s +A.mP(b) +if(ab)return 1 +else if(a===b){if(a===0){s=this.gbt(b) +if(this.gbt(a)===s)return 0 +if(this.gbt(a))return-1 +return 1}return 0}else if(isNaN(a)){if(isNaN(b))return 0 +return 1}else return-1}, +gbt(a){return a===0?1/a<0:a<0}, +hu(a){var s +if(a>=-2147483648&&a<=2147483647)return a|0 +if(isFinite(a)){s=a<0?Math.ceil(a):Math.floor(a) +return s+0}throw A.e(A.bc(""+a+".toInt()"))}, +fQ(a){var s,r +if(a>=0){if(a<=2147483647){s=a|0 +return a===s?s:s+1}}else if(a>=-2147483648)return a|0 +r=Math.ceil(a) +if(isFinite(r))return r +throw A.e(A.bc(""+a+".ceil()"))}, +h9(a){var s,r +if(a>=0){if(a<=2147483647)return a|0}else if(a>=-2147483648){s=a|0 +return a===s?s:s-1}r=Math.floor(a) +if(isFinite(r))return r +throw A.e(A.bc(""+a+".floor()"))}, +cp(a){if(a>0){if(a!==1/0)return Math.round(a)}else if(a>-1/0)return 0-Math.round(0-a) +throw A.e(A.bc(""+a+".round()"))}, +bn(a,b,c){if(this.a4(b,c)>0)throw A.e(A.lq(b)) +if(this.a4(a,b)<0)return b +if(this.a4(a,c)>0)return c +return a}, +hx(a,b){var s +if(b>20)throw A.e(A.Y(b,0,20,"fractionDigits",null)) +s=a.toFixed(b) +if(a===0&&this.gbt(a))return"-"+s +return s}, +dH(a,b){var s,r,q,p,o +if(b<2||b>36)throw A.e(A.Y(b,2,36,"radix",null)) +s=a.toString(b) +r=s.length +q=r-1 +if(!(q>=0))return A.c(s,q) +if(s.charCodeAt(q)!==41)return s +p=/^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(s) +if(p==null)A.v(A.bc("Unexpected toString result: "+s)) +r=p.length +if(1>=r)return A.c(p,1) +s=p[1] +if(3>=r)return A.c(p,3) +o=+p[3] +r=p[2] +if(r!=null){s+=r +o-=r.length}return s+B.a.bz("0",o)}, +k(a){if(a===0&&1/a<0)return"-0.0" +else return""+a}, +gA(a){var s,r,q,p,o=a|0 +if(a===o)return o&536870911 +s=Math.abs(a) +r=Math.log(s)/0.6931471805599453|0 +q=Math.pow(2,r) +p=s<1?s/q:q/s +return((p*9007199254740992|0)+(p*3542243181176521|0))*599197+r*1259&536870911}, +am(a,b){var s=a%b +if(s===0)return 0 +if(s>0)return s +if(b<0)return s-b +else return s+b}, +aI(a,b){if((a|0)===a)if(b>=1||b<-1)return a/b|0 +return this.de(a,b)}, +ad(a,b){return(a|0)===a?a/b|0:this.de(a,b)}, +de(a,b){var s=a/b +if(s>=-2147483648&&s<=2147483647)return s|0 +if(s>0){if(s!==1/0)return Math.floor(s)}else if(s>-1/0)return Math.ceil(s) +throw A.e(A.bc("Result of truncating division is "+A.J(s)+": "+A.J(a)+" ~/ "+b))}, +a1(a,b){var s +if(a>0)s=this.dc(a,b) +else{s=b>31?31:b +s=a>>s>>>0}return s}, +fG(a,b){if(0>b)throw A.e(A.lq(b)) +return this.dc(a,b)}, +dc(a,b){return b>31?0:a>>>b}, +gI(a){return A.aN(t.q)}, +$ial:1, +$ix:1, +$iak:1} +J.dX.prototype={ +gI(a){return A.aN(t.S)}, +$iC:1, +$ia:1} +J.ft.prototype={ +gI(a){return A.aN(t.i)}, +$iC:1} +J.br.prototype={ +dl(a,b){return new A.hv(b,a,0)}, +dz(a,b,c){var s,r,q,p,o=null +if(c<0||c>b.length)throw A.e(A.Y(c,0,b.length,o,o)) +s=a.length +r=b.length +if(c+s>r)return o +for(q=0;q=0&&pr)return!1 +return b===this.a8(a,r-s)}, +dZ(a,b){var s +if(typeof b=="string")return A.w(a.split(b),t.s) +else{if(b instanceof A.cP){s=b.e +s=!(s==null?b.e=b.ew():s)}else s=!1 +if(s)return A.w(a.split(b.b),t.s) +else return this.eD(a,b)}}, +aC(a,b,c,d){var s=A.aw(b,c,a.length) +return a.substring(0,b)+d+a.substring(s)}, +eD(a,b){var s,r,q,p,o,n,m=A.w([],t.s) +for(s=J.lA(b,a),s=s.gE(s),r=0,q=1;s.t();){p=s.gB() +o=p.gbE() +n=p.gbo() +q=n-o +if(q===0&&r===o)continue +B.b.l(m,this.u(a,r,o)) +r=n}if(r0)B.b.l(m,this.a8(a,r)) +return m}, +O(a,b,c){var s +if(c<0||c>a.length)throw A.e(A.Y(c,0,a.length,null,null)) +s=c+b.length +if(s>a.length)return!1 +return b===a.substring(c,s)}, +L(a,b){return this.O(a,b,0)}, +u(a,b,c){return a.substring(b,A.aw(b,c,a.length))}, +a8(a,b){return this.u(a,b,null)}, +a7(a){var s,r,q,p=a.trim(),o=p.length +if(o===0)return p +if(0>=o)return A.c(p,0) +if(p.charCodeAt(0)===133){s=J.oD(p,1) +if(s===o)return""}else s=0 +r=o-1 +if(!(r>=0))return A.c(p,r) +q=p.charCodeAt(r)===133?J.oE(p,r):o +if(s===0&&q===o)return p +return p.substring(s,q)}, +bz(a,b){var s,r +if(0>=b)return"" +if(b===1||a.length===0)return a +if(b!==b>>>0)throw A.e(B.S) +for(s=a,r="";;){if((b&1)===1)r=s+r +b=b>>>1 +if(b===0)break +s+=s}return r}, +dA(a,b,c){var s=b-a.length +if(s<=0)return a +return this.bz(c,s)+a}, +aB(a,b,c){var s +if(c<0||c>a.length)throw A.e(A.Y(c,0,a.length,null,null)) +s=a.indexOf(b,c) +return s}, +hb(a,b){return this.aB(a,b,0)}, +cf(a,b){var s,r,q=a.length +if(typeof b=="string"){s=b.length +if(q+s>q)q-=s +return a.lastIndexOf(b,q)}for(s=J.nd(b),r=q;r>=0;--r)if(s.dz(b,a,r)!=null)return r +return-1}, +V(a,b){return A.tT(a,b,0)}, +a4(a,b){var s +A.L(b) +if(a===b)s=0 +else s=a>6}r=r+((r&67108863)<<3)&536870911 +r^=r>>11 +return r+((r&16383)<<15)&536870911}, +gI(a){return A.aN(t.N)}, +gm(a){return a.length}, +$ia7:1, +$iC:1, +$ial:1, +$iiK:1, +$ib:1} +A.hj.prototype={ +l(a,b){t.L.a(b) +B.b.l(this.b,b) +this.a=this.a+b.length}, +dG(){var s,r,q,p,o,n,m,l=this,k=l.a +if(k===0)return $.nJ() +s=l.b +r=s.length +if(r===1){if(0>=r)return A.c(s,0) +q=s[0] +l.a=0 +B.b.F(s) +return q}q=new Uint8Array(k) +for(p=0,o=0;o"))}, +gm(a){var s=this.a +return s.gm(s)}, +gC(a){var s=this.a +return s.gC(s)}, +gJ(a){var s=this.a +return s.gJ(s)}, +k(a){return this.a.k(0)}} +A.dQ.prototype={ +t(){return this.a.t()}, +gB(){return this.$ti.y[1].a(this.a.gB())}, +$iS:1} +A.bM.prototype={} +A.ex.prototype={$iq:1} +A.bN.prototype={ +a2(a,b,c){return new A.bN(this.a,this.$ti.h("@<1,2>").v(b).v(c).h("bN<1,2,3,4>"))}, +p(a,b){return this.$ti.h("4?").a(this.a.p(0,b))}, +a_(a,b){this.a.a_(0,new A.i_(this,this.$ti.h("~(3,4)").a(b)))}, +gW(){var s=this.$ti +return A.o2(this.a.gW(),s.c,s.y[2])}, +gm(a){var s=this.a +return s.gm(s)}, +gC(a){var s=this.a +return s.gC(s)}, +gJ(a){var s=this.a +return s.gJ(s)}} +A.i_.prototype={ +$2(a,b){var s=this.a.$ti +s.c.a(a) +s.y[1].a(b) +this.b.$2(s.y[2].a(a),s.y[3].a(b))}, +$S(){return this.a.$ti.h("~(1,2)")}} +A.c_.prototype={ +k(a){return"LateInitializationError: "+this.a}} +A.kM.prototype={ +$0(){return A.lR(null,t.H)}, +$S:3} +A.iO.prototype={} +A.q.prototype={} +A.W.prototype={ +gE(a){var s=this +return new A.b5(s,s.gm(s),A.h(s).h("b5"))}, +gC(a){return this.gm(this)===0}, +aZ(a,b,c){var s=A.h(this) +return new A.X(this,s.v(c).h("1(W.E)").a(b),s.h("@").v(c).h("X<1,2>"))}} +A.ej.prototype={ +geJ(){var s=J.bi(this.a),r=this.c +if(r==null||r>s)return s +return r}, +gfH(){var s=J.bi(this.a),r=this.b +if(r>s)return s +return r}, +gm(a){var s,r=J.bi(this.a),q=this.b +if(q>=r)return 0 +s=this.c +if(s==null||s>=r)return r-q +return s-q}, +a3(a,b){var s=this,r=s.gfH()+b +if(b<0||r>=s.geJ())throw A.e(A.io(b,s.gm(0),s,null,"index")) +return J.lC(s.a,r)}, +hw(a,b){var s,r,q,p=this,o=p.b,n=p.a,m=J.aB(n),l=m.gm(n),k=p.c +if(k!=null&&k=o){r.d=null +return!1}r.d=p.a3(q,s);++r.c +return!0}, +$iS:1} +A.c2.prototype={ +gE(a){return new A.e3(J.cD(this.a),this.b,A.h(this).h("e3<1,2>"))}, +gm(a){return J.bi(this.a)}, +gC(a){return J.kS(this.a)}} +A.bX.prototype={$iq:1} +A.e3.prototype={ +t(){var s=this,r=s.b +if(r.t()){s.a=s.c.$1(r.gB()) +return!0}s.a=null +return!1}, +gB(){var s=this.a +return s==null?this.$ti.y[1].a(s):s}, +$iS:1} +A.X.prototype={ +gm(a){return J.bi(this.a)}, +a3(a,b){return this.b.$1(J.lC(this.a,b))}} +A.co.prototype={ +gE(a){return new A.ep(J.cD(this.a),this.$ti.h("ep<1>"))}} +A.ep.prototype={ +t(){var s,r +for(s=this.a,r=this.$ti.c;s.t();)if(r.b(s.gB()))return!0 +return!1}, +gB(){return this.$ti.c.a(this.a.gB())}, +$iS:1} +A.ag.prototype={} +A.eL.prototype={$r:"+(1,2)",$s:1} +A.eM.prototype={$r:"+cols,rows(1,2)",$s:2} +A.bg.prototype={$r:"+(1,2,3,4)",$s:3} +A.dR.prototype={ +a2(a,b,c){var s=A.h(this) +return A.m1(this,s.c,s.y[1],b,c)}, +gC(a){return this.gm(this)===0}, +gJ(a){return this.gm(this)!==0}, +k(a){return A.l0(this)}, +dw(a,b,c,d){var s=A.o(c,d) +this.a_(0,new A.i4(this,A.h(this).v(c).v(d).h("bu<1,2>(3,4)").a(b),s)) +return s}, +$id:1} +A.i4.prototype={ +$2(a,b){var s=A.h(this.a),r=this.b.$2(s.c.a(a),s.y[1].a(b)) +this.c.i(0,r.a,r.b)}, +$S(){return A.h(this.a).h("~(1,2)")}} +A.bS.prototype={ +gm(a){return this.b.length}, +gcU(){var s=this.$keys +if(s==null){s=Object.keys(this.a) +this.$keys=s}return s}, +aW(a){if(typeof a!="string")return!1 +if("__proto__"===a)return!1 +return this.a.hasOwnProperty(a)}, +p(a,b){if(!this.aW(b))return null +return this.b[this.a[b]]}, +a_(a,b){var s,r,q,p +this.$ti.h("~(1,2)").a(b) +s=this.gcU() +r=this.b +for(q=s.length,p=0;p"))}} +A.eD.prototype={ +gm(a){return this.a.length}, +gC(a){return 0===this.a.length}, +gJ(a){return 0!==this.a.length}, +gE(a){var s=this.a +return new A.cs(s,s.length,this.$ti.h("cs<1>"))}} +A.cs.prototype={ +gB(){var s=this.d +return s==null?this.$ti.c.a(s):s}, +t(){var s=this,r=s.c +if(r>=s.b){s.d=null +return!1}s.d=s.a[r] +s.c=r+1 +return!0}, +$iS:1} +A.dS.prototype={} +A.b1.prototype={ +gm(a){return this.b}, +gC(a){return this.b===0}, +gE(a){var s,r=this,q=r.$keys +if(q==null){q=Object.keys(r.a) +r.$keys=q}s=q +return new A.cs(s,s.length,r.$ti.h("cs<1>"))}, +V(a,b){if("__proto__"===b)return!1 +return this.a.hasOwnProperty(b)}} +A.ec.prototype={} +A.jn.prototype={ +a6(a){var s,r,q=this,p=new RegExp(q.a).exec(a) +if(p==null)return null +s=Object.create(null) +r=q.b +if(r!==-1)s.arguments=p[r+1] +r=q.c +if(r!==-1)s.argumentsExpr=p[r+1] +r=q.d +if(r!==-1)s.expr=p[r+1] +r=q.e +if(r!==-1)s.method=p[r+1] +r=q.f +if(r!==-1)s.receiver=p[r+1] +return s}} +A.e9.prototype={ +k(a){return"Null check operator used on a null value"}} +A.fu.prototype={ +k(a){var s,r=this,q="NoSuchMethodError: method not found: '",p=r.b +if(p==null)return"NoSuchMethodError: "+r.a +s=r.c +if(s==null)return q+p+"' ("+r.a+")" +return q+p+"' on '"+s+"' ("+r.a+")"}} +A.hb.prototype={ +k(a){var s=this.a +return s.length===0?"Error":"Error: "+s}} +A.iH.prototype={ +k(a){return"Throw of null ('"+(this.a===null?"null":"undefined")+"' from JavaScript)"}} +A.dV.prototype={} +A.eO.prototype={ +k(a){var s,r=this.b +if(r!=null)return r +r=this.a +s=r!==null&&typeof r==="object"?r.stack:null +return this.b=s==null?"":s}, +$iai:1} +A.bn.prototype={ +k(a){var s=this.constructor,r=s==null?null:s.name +return"Closure '"+A.nn(r==null?"unknown":r)+"'"}, +gI(a){var s=A.ls(this) +return A.aN(s==null?A.b_(this):s)}, +$ibY:1, +ghD(){return this}, +$C:"$1", +$R:1, +$D:null} +A.fd.prototype={$C:"$0",$R:0} +A.fe.prototype={$C:"$2",$R:2} +A.h3.prototype={} +A.h1.prototype={ +k(a){var s=this.$static_name +if(s==null)return"Closure of unknown static method" +return"Closure '"+A.nn(s)+"'"}} +A.cH.prototype={ +M(a,b){if(b==null)return!1 +if(this===b)return!0 +if(!(b instanceof A.cH))return!1 +return this.$_target===b.$_target&&this.a===b.a}, +gA(a){return(A.kN(this.a)^A.c9(this.$_target))>>>0}, +k(a){return"Closure '"+this.$_name+"' of "+("Instance of '"+A.fS(this.a)+"'")}} +A.fX.prototype={ +k(a){return"RuntimeError: "+this.a}} +A.hB.prototype={ +k(a){return"Assertion failed: Reached dead code"}} +A.b4.prototype={ +gm(a){return this.a}, +gC(a){return this.a===0}, +gJ(a){return this.a!==0}, +gW(){return new A.c0(this,A.h(this).h("c0<1>"))}, +aW(a){var s,r +if(typeof a=="string"){s=this.b +if(s==null)return!1 +return s[a]!=null}else if(typeof a=="number"&&(a&0x3fffffff)===a){r=this.c +if(r==null)return!1 +return r[a]!=null}else return this.hc(a)}, +hc(a){var s=this.d +if(s==null)return!1 +return this.bs(s[this.br(a)],a)>=0}, +aw(a,b){A.h(this).h("d<1,2>").a(b).a_(0,new A.iw(this))}, +p(a,b){var s,r,q,p,o=null +if(typeof b=="string"){s=this.b +if(s==null)return o +r=s[b] +q=r==null?o:r.b +return q}else if(typeof b=="number"&&(b&0x3fffffff)===b){p=this.c +if(p==null)return o +r=p[b] +q=r==null?o:r.b +return q}else return this.hd(b)}, +hd(a){var s,r,q=this.d +if(q==null)return null +s=q[this.br(a)] +r=this.bs(s,a) +if(r<0)return null +return s[r].b}, +i(a,b,c){var s,r,q=this,p=A.h(q) +p.c.a(b) +p.y[1].a(c) +if(typeof b=="string"){s=q.b +q.cC(s==null?q.b=q.bZ():s,b,c)}else if(typeof b=="number"&&(b&0x3fffffff)===b){r=q.c +q.cC(r==null?q.c=q.bZ():r,b,c)}else q.hf(b,c)}, +hf(a,b){var s,r,q,p,o=this,n=A.h(o) +n.c.a(a) +n.y[1].a(b) +s=o.d +if(s==null)s=o.d=o.bZ() +r=o.br(a) +q=s[r] +if(q==null)s[r]=[o.c_(a,b)] +else{p=o.bs(q,a) +if(p>=0)q[p].b=b +else q.push(o.c_(a,b))}}, +S(a,b){var s=this +if(typeof b=="string")return s.d8(s.b,b) +else if(typeof b=="number"&&(b&0x3fffffff)===b)return s.d8(s.c,b) +else return s.he(b)}, +he(a){var s,r,q,p,o=this,n=o.d +if(n==null)return null +s=o.br(a) +r=n[s] +q=o.bs(r,a) +if(q<0)return null +p=r.splice(q,1)[0] +o.di(p) +if(r.length===0)delete n[s] +return p.b}, +F(a){var s=this +if(s.a>0){s.b=s.c=s.d=s.e=s.f=null +s.a=0 +s.bW()}}, +a_(a,b){var s,r,q=this +A.h(q).h("~(1,2)").a(b) +s=q.e +r=q.r +while(s!=null){b.$2(s.a,s.b) +if(r!==q.r)throw A.e(A.am(q)) +s=s.c}}, +cC(a,b,c){var s,r=A.h(this) +r.c.a(b) +r.y[1].a(c) +s=a[b] +if(s==null)a[b]=this.c_(b,c) +else s.b=c}, +d8(a,b){var s +if(a==null)return null +s=a[b] +if(s==null)return null +this.di(s) +delete a[b] +return s.b}, +bW(){this.r=this.r+1&1073741823}, +c_(a,b){var s=this,r=A.h(s),q=new A.iA(r.c.a(a),r.y[1].a(b)) +if(s.e==null)s.e=s.f=q +else{r=s.f +r.toString +q.d=r +s.f=r.c=q}++s.a +s.bW() +return q}, +di(a){var s=this,r=a.d,q=a.c +if(r==null)s.e=q +else r.c=q +if(q==null)s.f=r +else q.d=r;--s.a +s.bW()}, +br(a){return J.aP(a)&1073741823}, +bs(a,b){var s,r +if(a==null)return-1 +s=a.length +for(r=0;r"]=s +delete s[""] +return s}, +$im_:1} +A.iw.prototype={ +$2(a,b){var s=this.a,r=A.h(s) +s.i(0,r.c.a(a),r.y[1].a(b))}, +$S(){return A.h(this.a).h("~(1,2)")}} +A.iA.prototype={} +A.c0.prototype={ +gm(a){return this.a.a}, +gC(a){return this.a.a===0}, +gE(a){var s=this.a +return new A.e1(s,s.r,s.e,this.$ti.h("e1<1>"))}} +A.e1.prototype={ +gB(){return this.d}, +t(){var s,r=this,q=r.a +if(r.b!==q.r)throw A.e(A.am(q)) +s=r.c +if(s==null){r.d=null +return!1}else{r.d=s.a +r.c=s.c +return!0}}, +$iS:1} +A.c1.prototype={ +gm(a){return this.a.a}, +gC(a){return this.a.a===0}, +gE(a){var s=this.a +return new A.N(s,s.r,s.e,this.$ti.h("N<1>"))}} +A.N.prototype={ +gB(){return this.d}, +t(){var s,r=this,q=r.a +if(r.b!==q.r)throw A.e(A.am(q)) +s=r.c +if(s==null){r.d=null +return!1}else{r.d=s.b +r.c=s.c +return!0}}, +$iS:1} +A.kG.prototype={ +$1(a){return this.a(a)}, +$S:9} +A.kH.prototype={ +$2(a,b){return this.a(a,b)}, +$S:51} +A.kI.prototype={ +$1(a){return this.a(A.L(a))}, +$S:35} +A.aX.prototype={ +gI(a){return A.aN(this.cR())}, +cR(){return A.tC(this.$r,this.bR())}, +k(a){return this.dg(!1)}, +dg(a){var s,r,q,p,o,n=this.eM(),m=this.bR(),l=(a?"Record ":"")+"(" +for(s=n.length,r="",q=0;q0;){--q;--s +B.b.i(j,q,r[s])}}return A.iB(j,k)}} +A.cv.prototype={ +bR(){return[this.a,this.b]}, +M(a,b){if(b==null)return!1 +return b instanceof A.cv&&this.$s===b.$s&&J.bF(this.a,b.a)&&J.bF(this.b,b.b)}, +gA(a){return A.l2(this.$s,this.a,this.b,B.j)}} +A.dA.prototype={ +bR(){return this.a}, +M(a,b){if(b==null)return!1 +return b instanceof A.dA&&this.$s===b.$s&&A.qf(this.a,b.a)}, +gA(a){return A.l2(this.$s,A.pf(this.a),B.j,B.j)}} +A.cP.prototype={ +k(a){return"RegExp/"+this.a+"/"+this.b.flags}, +gcV(){var s=this,r=s.c +if(r!=null)return r +r=s.b +return s.c=A.kY(s.a,r.multiline,!r.ignoreCase,r.unicode,r.dotAll,"g")}, +gf1(){var s=this,r=s.d +if(r!=null)return r +r=s.b +return s.d=A.kY(s.a,r.multiline,!r.ignoreCase,r.unicode,r.dotAll,"y")}, +ew(){var s,r=this.a +if(!B.a.V(r,"("))return!1 +s=this.b.unicode?"u":"" +return new RegExp("(?:)|"+r,s).exec("").length>1}, +h8(a){var s=this.b.exec(a) +if(s==null)return null +return new A.dz(s)}, +dl(a,b){return new A.hf(this,b,0)}, +eL(a,b){var s,r=this.gcV() +if(r==null)r=A.a3(r) +r.lastIndex=b +s=r.exec(a) +if(s==null)return null +return new A.dz(s)}, +eK(a,b){var s,r=this.gf1() +if(r==null)r=A.a3(r) +r.lastIndex=b +s=r.exec(a) +if(s==null)return null +return new A.dz(s)}, +dz(a,b,c){if(c<0||c>b.length)throw A.e(A.Y(c,0,b.length,null,null)) +return this.eK(b,c)}, +$iiK:1, +$ipo:1} +A.dz.prototype={ +gbE(){return this.b.index}, +gbo(){var s=this.b +return s.index+s[0].length}, +$icV:1, +$ieb:1} +A.hf.prototype={ +gE(a){return new A.hg(this.a,this.b,this.c)}} +A.hg.prototype={ +gB(){var s=this.d +return s==null?t.cz.a(s):s}, +t(){var s,r,q,p,o,n,m=this,l=m.b +if(l==null)return!1 +s=m.c +r=l.length +if(s<=r){q=m.a +p=q.eL(l,s) +if(p!=null){m.d=p +o=p.gbo() +if(p.b.index===o){s=!1 +if(q.b.unicode){q=m.c +n=q+1 +if(n=0&&q=55296&&q<=56319){if(!(n>=0))return A.c(l,n) +s=l.charCodeAt(n) +s=s>=56320&&s<=57343}}}o=(s?o+1:o)+1}m.c=o +return!0}}m.b=m.d=null +return!1}, +$iS:1} +A.ei.prototype={ +gbo(){return this.a+this.c.length}, +$icV:1, +gbE(){return this.a}} +A.hv.prototype={ +gE(a){return new A.hw(this.a,this.b,this.c)}} +A.hw.prototype={ +t(){var s,r,q=this,p=q.c,o=q.b,n=o.length,m=q.a,l=m.length +if(p+n>l){q.d=null +return!1}s=m.indexOf(o,p) +if(s<0){q.c=l+1 +q.d=null +return!1}r=s+n +q.d=new A.ei(s,o) +q.c=r===q.c?r+1:r +return!0}, +gB(){var s=this.d +s.toString +return s}, +$iS:1} +A.jN.prototype={ +d4(){var s=this.b +if(s===this)throw A.e(new A.c_("Local '"+this.a+"' has not been initialized.")) +return s}} +A.bv.prototype={ +gI(a){return B.b1}, +dm(a,b,c){return c==null?new Uint8Array(a,b):new Uint8Array(a,b,c)}, +$iC:1, +$ibv:1, +$idP:1} +A.cW.prototype={$icW:1} +A.e6.prototype={ +gdn(a){if(((a.$flags|0)&2)!==0)return new A.hA(a.buffer) +else return a.buffer}, +eZ(a,b,c,d){var s=A.Y(b,0,c,d,null) +throw A.e(s)}, +cE(a,b,c,d){if(b>>>0!==b||b>c)this.eZ(a,b,c,d)}} +A.hA.prototype={ +dm(a,b,c){var s=A.m2(this.a,b,c) +s.$flags=3 +return s}, +$idP:1} +A.e4.prototype={ +gI(a){return B.b2}, +$iC:1, +$ikW:1} +A.a8.prototype={ +gm(a){return a.length}, +fF(a,b,c,d,e){var s,r,q=a.length +this.cE(a,b,q,"start") +this.cE(a,c,q,"end") +if(b>c)throw A.e(A.Y(b,0,c,null,null)) +s=c-b +if(e<0)throw A.e(A.bj(e,null)) +r=d.length +if(r-e").b(a))s.cD(a) +else s.cK(a)}}, +aU(a,b){var s +if(b==null)b=A.hV(a) +s=this.a +if(this.b)s.aL(new A.af(a,b)) +else s.b6(new A.af(a,b))}, +H(a){return this.aU(a,null)}, +gR(){return(this.a.a&30)!==0}, +$ia6:1} +A.kl.prototype={ +$1(a){return this.a.$2(0,a)}, +$S:2} +A.km.prototype={ +$2(a,b){this.a.$2(1,new A.dV(a,t.l.a(b)))}, +$S:29} +A.ku.prototype={ +$2(a,b){this.a(A.U(a),b)}, +$S:31} +A.af.prototype={ +k(a){return A.J(this.a)}, +$iK:1, +gaG(){return this.b}} +A.eu.prototype={} +A.aW.prototype={ +aq(){}, +ar(){}, +sbf(a){this.ch=this.$ti.h("aW<1>?").a(a)}, +sc2(a){this.CW=this.$ti.h("aW<1>?").a(a)}} +A.ev.prototype={ +gbV(){return this.c<4}, +fz(a){var s,r +A.h(this).h("aW<1>").a(a) +s=a.CW +r=a.ch +if(s==null)this.d=r +else s.sbf(r) +if(r==null)this.e=s +else r.sc2(s) +a.sc2(a) +a.sbf(a)}, +dd(a,b,c,d){var s,r,q,p,o,n,m,l,k=this,j=A.h(k) +j.h("~(1)?").a(a) +t.Y.a(c) +if((k.c&4)!==0){j=new A.dw($.u,j.h("dw<1>")) +A.lw(j.gcZ()) +if(c!=null)j.c=t.M.a(c) +return j}s=$.u +r=d?1:0 +q=b!=null?32:0 +p=A.ld(s,a,j.c) +o=A.mq(s,b) +n=c==null?A.na():c +j=j.h("aW<1>") +m=new A.aW(k,p,o,t.M.a(n),s,r|q,j) +m.CW=m +m.ch=m +j.a(m) +m.ay=k.c&1 +l=k.e +k.e=m +m.sbf(null) +m.sc2(l) +if(l==null)k.d=m +else l.sbf(m) +if(k.d==k.e)A.hI(k.a) +return m}, +d5(a){var s=this,r=A.h(s) +a=r.h("aW<1>").a(r.h("aj<1>").a(a)) +if(a.ch===a)return null +r=a.ay +if((r&2)!==0)a.ay=r|4 +else{s.fz(a) +if((s.c&2)===0&&s.d==null)s.em()}return null}, +d6(a){A.h(this).h("aj<1>").a(a)}, +d7(a){A.h(this).h("aj<1>").a(a)}, +bF(){if((this.c&4)!==0)return new A.ax("Cannot add new events after calling close") +return new A.ax("Cannot add new events while doing an addStream")}, +l(a,b){var s=this +A.h(s).c.a(b) +if(!s.gbV())throw A.e(s.bF()) +s.ae(b)}, +ah(a,b){var s +if(!this.gbV())throw A.e(this.bF()) +s=A.ln(a,b) +this.ag(s.a,s.b)}, +q(){var s,r,q=this +if((q.c&4)!==0){s=q.r +s.toString +return s}if(!q.gbV())throw A.e(q.bF()) +q.c|=4 +r=q.r +if(r==null)r=q.r=new A.p($.u,t.D) +q.af() +return r}, +em(){if((this.c&4)!==0){var s=this.r +if((s.a&30)===0)s.ao(null)}A.hI(this.b)}, +$iay:1, +$icg:1, +$ieQ:1, +$iaz:1} +A.et.prototype={ +ae(a){var s,r=this.$ti +r.c.a(a) +for(s=this.d,r=r.h("aJ<1>");s!=null;s=s.ch)s.a9(new A.aJ(a,r))}, +ag(a,b){var s +for(s=this.d;s!=null;s=s.ch)s.a9(new A.cp(a,b))}, +af(){var s=this.d +if(s!=null)for(;s!=null;s=s.ch)s.a9(B.n) +else this.r.ao(null)}} +A.ew.prototype={ +aU(a,b){var s=this.a +if((s.a&30)!==0)throw A.e(A.b8("Future already completed")) +s.b6(A.ln(a,b))}, +H(a){return this.aU(a,null)}, +gR(){return(this.a.a&30)!==0}, +$ia6:1} +A.ac.prototype={ +D(a){var s,r=this.$ti +r.h("1/?").a(a) +s=this.a +if((s.a&30)!==0)throw A.e(A.b8("Future already completed")) +s.ao(r.h("1/").a(a))}, +az(){return this.D(null)}} +A.aK.prototype={ +hk(a){if((this.c&15)!==6)return!0 +return this.b.b.cr(t.al.a(this.d),a.a,t.y,t.K)}, +ha(a){var s,r=this,q=r.e,p=null,o=t.z,n=t.K,m=a.a,l=r.b.b +if(t.W.b(q))p=l.hs(q,m,a.b,o,n,t.l) +else p=l.cr(t.v.a(q),m,o,n) +try{o=r.$ti.h("2/").a(p) +return o}catch(s){if(t.A.b(A.a_(s))){if((r.c&1)!==0)throw A.e(A.bj("The error handler of Future.then must return a value of the returned future's type","onError")) +throw A.e(A.bj("The error handler of Future.catchError must return a value of the future's type","onError"))}else throw s}}} +A.p.prototype={ +bw(a,b,c){var s,r,q,p=this.$ti +p.v(c).h("1/(2)").a(a) +s=$.u +if(s===B.d){if(b!=null&&!t.W.b(b)&&!t.v.b(b))throw A.e(A.f4(b,"onError",u.c))}else{c.h("@<0/>").v(p.c).h("1(2)").a(a) +if(b!=null)b=A.n1(b,s)}r=new A.p(s,c.h("p<0>")) +q=b==null?1:3 +this.aJ(new A.aK(r,q,a,b,p.h("@<1>").v(c).h("aK<1,2>"))) +return r}, +b1(a,b){return this.bw(a,null,b)}, +df(a,b,c){var s,r=this.$ti +r.v(c).h("1/(2)").a(a) +s=new A.p($.u,c.h("p<0>")) +this.aJ(new A.aK(s,19,a,b,r.h("@<1>").v(c).h("aK<1,2>"))) +return s}, +dq(a){var s=this.$ti,r=$.u,q=new A.p(r,s) +if(r!==B.d)a=A.n1(a,r) +this.aJ(new A.aK(q,2,null,a,s.h("aK<1,1>"))) +return q}, +b2(a){var s,r +t.fO.a(a) +s=this.$ti +r=new A.p($.u,s) +this.aJ(new A.aK(r,8,a,null,s.h("aK<1,1>"))) +return r}, +fD(a){this.a=this.a&1|16 +this.c=a}, +b8(a){this.a=a.a&30|this.a&1 +this.c=a.c}, +aJ(a){var s,r=this,q=r.a +if(q<=3){a.a=t.F.a(r.c) +r.c=a}else{if((q&4)!==0){s=t._.a(r.c) +if((s.a&24)===0){s.aJ(a) +return}r.b8(s)}A.dG(null,null,r.b,t.M.a(new A.jS(r,a)))}}, +d2(a){var s,r,q,p,o,n,m=this,l={} +l.a=a +if(a==null)return +s=m.a +if(s<=3){r=t.F.a(m.c) +m.c=a +if(r!=null){q=a.a +for(p=a;q!=null;p=q,q=o)o=q.a +p.a=r}}else{if((s&4)!==0){n=t._.a(m.c) +if((n.a&24)===0){n.d2(a) +return}m.b8(n)}l.a=m.bk(a) +A.dG(null,null,m.b,t.M.a(new A.jX(l,m)))}}, +aQ(){var s=t.F.a(this.c) +this.c=null +return this.bk(s)}, +bk(a){var s,r,q +for(s=a,r=null;s!=null;r=s,s=q){q=s.a +s.a=r}return r}, +bM(a){var s,r=this,q=r.$ti +q.h("1/").a(a) +if(q.h("V<1>").b(a))A.jV(a,r,!0) +else{s=r.aQ() +q.c.a(a) +r.a=8 +r.c=a +A.cr(r,s)}}, +cK(a){var s,r=this +r.$ti.c.a(a) +s=r.aQ() +r.a=8 +r.c=a +A.cr(r,s)}, +eu(a){var s,r,q=this +if((a.a&16)!==0){s=q.b===a.b +s=!(s||s)}else s=!1 +if(s)return +r=q.aQ() +q.b8(a) +A.cr(q,r)}, +aL(a){var s=this.aQ() +this.fD(a) +A.cr(this,s)}, +es(a,b){A.a3(a) +t.l.a(b) +this.aL(new A.af(a,b))}, +ao(a){var s=this.$ti +s.h("1/").a(a) +if(s.h("V<1>").b(a)){this.cD(a) +return}this.ej(a)}, +ej(a){var s=this +s.$ti.c.a(a) +s.a^=2 +A.dG(null,null,s.b,t.M.a(new A.jU(s,a)))}, +cD(a){A.jV(this.$ti.h("V<1>").a(a),this,!1) +return}, +b6(a){this.a^=2 +A.dG(null,null,this.b,t.M.a(new A.jT(this,a)))}, +$iV:1} +A.jS.prototype={ +$0(){A.cr(this.a,this.b)}, +$S:0} +A.jX.prototype={ +$0(){A.cr(this.b,this.a.a)}, +$S:0} +A.jW.prototype={ +$0(){A.jV(this.a.a,this.b,!0)}, +$S:0} +A.jU.prototype={ +$0(){this.a.cK(this.b)}, +$S:0} +A.jT.prototype={ +$0(){this.a.aL(this.b)}, +$S:0} +A.k_.prototype={ +$0(){var s,r,q,p,o,n,m,l,k=this,j=null +try{q=k.a.a +j=q.b.b.dF(t.fO.a(q.d),t.z)}catch(p){s=A.a_(p) +r=A.aO(p) +if(k.c&&t.n.a(k.b.a.c).a===s){q=k.a +q.c=t.n.a(k.b.a.c)}else{q=s +o=r +if(o==null)o=A.hV(q) +n=k.a +n.c=new A.af(q,o) +q=n}q.b=!0 +return}if(j instanceof A.p&&(j.a&24)!==0){if((j.a&16)!==0){q=k.a +q.c=t.n.a(j.c) +q.b=!0}return}if(j instanceof A.p){m=k.b.a +l=new A.p(m.b,m.$ti) +j.bw(new A.k0(l,m),new A.k1(l),t.H) +q=k.a +q.c=l +q.b=!1}}, +$S:0} +A.k0.prototype={ +$1(a){this.a.eu(this.b)}, +$S:4} +A.k1.prototype={ +$2(a,b){A.a3(a) +t.l.a(b) +this.a.aL(new A.af(a,b))}, +$S:50} +A.jZ.prototype={ +$0(){var s,r,q,p,o,n,m,l +try{q=this.a +p=q.a +o=p.$ti +n=o.c +m=n.a(this.b) +q.c=p.b.b.cr(o.h("2/(1)").a(p.d),m,o.h("2/"),n)}catch(l){s=A.a_(l) +r=A.aO(l) +q=s +p=r +if(p==null)p=A.hV(q) +o=this.a +o.c=new A.af(q,p) +o.b=!0}}, +$S:0} +A.jY.prototype={ +$0(){var s,r,q,p,o,n,m,l=this +try{s=t.n.a(l.a.a.c) +p=l.b +if(p.a.hk(s)&&p.a.e!=null){p.c=p.a.ha(s) +p.b=!1}}catch(o){r=A.a_(o) +q=A.aO(o) +p=t.n.a(l.a.a.c) +if(p.a===r){n=l.b +n.c=p +p=n}else{p=r +n=q +if(n==null)n=A.hV(p) +m=l.b +m.c=new A.af(p,n) +p=m}p.b=!0}}, +$S:0} +A.hh.prototype={} +A.aa.prototype={ +ghh(){return!1}, +gm(a){var s={},r=new A.p($.u,t.fJ) +s.a=0 +this.a5(new A.iU(s,this),!0,new A.iV(s,r),r.gcJ()) +return r}, +gZ(a){var s=new A.p($.u,A.h(this).h("p")),r=this.a5(null,!0,new A.iS(s),s.gcJ()) +r.ci(new A.iT(this,r,s)) +return s}} +A.iU.prototype={ +$1(a){A.h(this.b).h("aa.T").a(a);++this.a.a}, +$S(){return A.h(this.b).h("~(aa.T)")}} +A.iV.prototype={ +$0(){this.b.bM(this.a.a)}, +$S:0} +A.iS.prototype={ +$0(){var s,r=A.mf(),q=new A.ax("No element") +A.iM(q,r) +s=A.mX(q,r) +s=new A.af(q,r) +this.a.aL(s)}, +$S:0} +A.iT.prototype={ +$1(a){A.qL(this.b,this.c,A.h(this.a).h("aa.T").a(a))}, +$S(){return A.h(this.a).h("~(aa.T)")}} +A.eh.prototype={$iaV:1} +A.cw.prototype={ +gft(){var s,r=this +if((r.b&8)===0)return A.h(r).h("aL<1>?").a(r.a) +s=A.h(r) +return s.h("aL<1>?").a(s.h("eP<1>").a(r.a).gc5())}, +bO(){var s,r,q=this +if((q.b&8)===0){s=q.a +if(s==null)s=q.a=new A.aL(A.h(q).h("aL<1>")) +return A.h(q).h("aL<1>").a(s)}r=A.h(q) +s=r.h("eP<1>").a(q.a).gc5() +return r.h("aL<1>").a(s)}, +gav(){var s=this.a +if((this.b&8)!==0)s=t.fv.a(s).gc5() +return A.h(this).h("be<1>").a(s)}, +bG(){if((this.b&4)!==0)return new A.ax("Cannot add event after closing") +return new A.ax("Cannot add event while adding a stream")}, +cO(){var s=this.c +if(s==null)s=this.c=(this.b&2)!==0?$.dM():new A.p($.u,t.D) +return s}, +l(a,b){var s,r=this,q=A.h(r) +q.c.a(b) +s=r.b +if(s>=4)throw A.e(r.bG()) +if((s&1)!==0)r.ae(b) +else if((s&3)===0)r.bO().l(0,new A.aJ(b,q.h("aJ<1>")))}, +ah(a,b){var s,r,q=this +A.a3(a) +t.gO.a(b) +if(q.b>=4)throw A.e(q.bG()) +s=A.ln(a,b) +a=s.a +b=s.b +r=q.b +if((r&1)!==0)q.ag(a,b) +else if((r&3)===0)q.bO().l(0,new A.cp(a,b))}, +c7(a){return this.ah(a,null)}, +q(){var s=this,r=s.b +if((r&4)!==0)return s.cO() +if(r>=4)throw A.e(s.bG()) +r=s.b=r|4 +if((r&1)!==0)s.af() +else if((r&3)===0)s.bO().l(0,B.n) +return s.cO()}, +dd(a,b,c,d){var s,r,q,p=this,o=A.h(p) +o.h("~(1)?").a(a) +t.Y.a(c) +if((p.b&3)!==0)throw A.e(A.b8("Stream has already been listened to.")) +s=A.q3(p,a,b,c,d,o.c) +r=p.gft() +if(((p.b|=1)&8)!==0){q=o.h("eP<1>").a(p.a) +q.sc5(s) +q.bv()}else p.a=s +s.fE(r) +s.bS(new A.kd(p)) +return s}, +d5(a){var s,r,q,p,o,n,m,l,k=this,j=A.h(k) +j.h("aj<1>").a(a) +s=null +if((k.b&8)!==0)s=j.h("eP<1>").a(k.a).P() +k.a=null +k.b=k.b&4294967286|2 +r=k.r +if(r!=null)if(s==null)try{q=r.$0() +if(q instanceof A.p)s=q}catch(n){p=A.a_(n) +o=A.aO(n) +m=new A.p($.u,t.D) +j=A.a3(p) +l=t.l.a(o) +m.b6(new A.af(j,l)) +s=m}else s=s.b2(r) +j=new A.kc(k) +if(s!=null)s=s.b2(j) +else j.$0() +return s}, +d6(a){var s=this,r=A.h(s) +r.h("aj<1>").a(a) +if((s.b&8)!==0)r.h("eP<1>").a(s.a).cj() +A.hI(s.e)}, +d7(a){var s=this,r=A.h(s) +r.h("aj<1>").a(a) +if((s.b&8)!==0)r.h("eP<1>").a(s.a).bv() +A.hI(s.f)}, +$iay:1, +$icg:1, +$ieQ:1, +$iaz:1} +A.kd.prototype={ +$0(){A.hI(this.a.d)}, +$S:0} +A.kc.prototype={ +$0(){var s=this.a.c +if(s!=null&&(s.a&30)===0)s.ao(null)}, +$S:0} +A.hy.prototype={ +ae(a){this.$ti.c.a(a) +this.gav().ec(a)}, +ag(a,b){this.gav().ei(a,b)}, +af(){this.gav().eo()}} +A.hi.prototype={ +ae(a){var s=this.$ti +s.c.a(a) +this.gav().a9(new A.aJ(a,s.h("aJ<1>")))}, +ag(a,b){this.gav().a9(new A.cp(a,b))}, +af(){this.gav().a9(B.n)}} +A.du.prototype={} +A.dC.prototype={} +A.M.prototype={ +gA(a){return(A.c9(this.a)^892482866)>>>0}, +M(a,b){if(b==null)return!1 +if(this===b)return!0 +return b instanceof A.M&&b.a===this.a}} +A.be.prototype={ +cW(){return this.w.d5(this)}, +aq(){this.w.d6(this)}, +ar(){this.w.d7(this)}} +A.cx.prototype={$iay:1} +A.ad.prototype={ +fE(a){var s=this +A.h(s).h("aL?").a(a) +if(a==null)return +s.r=a +if(a.c!=null){s.e=(s.e|128)>>>0 +a.b3(s)}}, +ci(a){var s=A.h(this) +this.a=A.ld(this.d,s.h("~(ad.T)?").a(a),s.h("ad.T"))}, +cj(){var s,r,q=this,p=q.e +if((p&8)!==0)return +s=(p+256|4)>>>0 +q.e=s +if(p<256){r=q.r +if(r!=null)if(r.a===1)r.a=3}if((p&4)===0&&(s&64)===0)q.bS(q.gc0())}, +bv(){var s=this,r=s.e +if((r&8)!==0)return +if(r>=256){r=s.e=r-256 +if(r<256)if((r&128)!==0&&s.r.c!=null)s.r.b3(s) +else{r=(r&4294967291)>>>0 +s.e=r +if((r&64)===0)s.bS(s.gc1())}}}, +P(){var s=this,r=(s.e&4294967279)>>>0 +s.e=r +if((r&8)===0)s.bH() +r=s.f +return r==null?$.dM():r}, +bH(){var s,r=this,q=r.e=(r.e|8)>>>0 +if((q&128)!==0){s=r.r +if(s.a===1)s.a=3}if((q&64)===0)r.r=null +r.f=r.cW()}, +ec(a){var s,r=this,q=A.h(r) +q.h("ad.T").a(a) +s=r.e +if((s&8)!==0)return +if(s<64)r.ae(a) +else r.a9(new A.aJ(a,q.h("aJ")))}, +ei(a,b){var s +if(t.C.b(a))A.iM(a,b) +s=this.e +if((s&8)!==0)return +if(s<64)this.ag(a,b) +else this.a9(new A.cp(a,b))}, +eo(){var s=this,r=s.e +if((r&8)!==0)return +r=(r|2)>>>0 +s.e=r +if(r<64)s.af() +else s.a9(B.n)}, +aq(){}, +ar(){}, +cW(){return null}, +a9(a){var s,r=this,q=r.r +if(q==null)q=r.r=new A.aL(A.h(r).h("aL")) +q.l(0,a) +s=r.e +if((s&128)===0){s=(s|128)>>>0 +r.e=s +if(s<256)q.b3(r)}}, +ae(a){var s,r=this,q=A.h(r).h("ad.T") +q.a(a) +s=r.e +r.e=(s|64)>>>0 +r.d.cs(r.a,a,q) +r.e=(r.e&4294967231)>>>0 +r.bJ((s&4)!==0)}, +ag(a,b){var s,r=this,q=r.e,p=new A.jM(r,a,b) +if((q&1)!==0){r.e=(q|16)>>>0 +r.bH() +s=r.f +if(s!=null&&s!==$.dM())s.b2(p) +else p.$0()}else{p.$0() +r.bJ((q&4)!==0)}}, +af(){var s,r=this,q=new A.jL(r) +r.bH() +r.e=(r.e|16)>>>0 +s=r.f +if(s!=null&&s!==$.dM())s.b2(q) +else q.$0()}, +bS(a){var s,r=this +t.M.a(a) +s=r.e +r.e=(s|64)>>>0 +a.$0() +r.e=(r.e&4294967231)>>>0 +r.bJ((s&4)!==0)}, +bJ(a){var s,r,q=this,p=q.e +if((p&128)!==0&&q.r.c==null){p=q.e=(p&4294967167)>>>0 +s=!1 +if((p&4)!==0)if(p<256){s=q.r +s=s==null?null:s.c==null +s=s!==!1}if(s){p=(p&4294967291)>>>0 +q.e=p}}for(;;a=r){if((p&8)!==0){q.r=null +return}r=(p&4)!==0 +if(a===r)break +q.e=(p^64)>>>0 +if(r)q.aq() +else q.ar() +p=(q.e&4294967231)>>>0 +q.e=p}if((p&128)!==0&&p<256)q.r.b3(q)}, +$iaj:1, +$iaz:1} +A.jM.prototype={ +$0(){var s,r,q,p=this.a,o=p.e +if((o&8)!==0&&(o&16)===0)return +p.e=(o|64)>>>0 +s=p.b +o=this.b +r=t.K +q=p.d +if(t.k.b(s))q.ht(s,o,this.c,r,t.l) +else q.cs(t.u.a(s),o,r) +p.e=(p.e&4294967231)>>>0}, +$S:0} +A.jL.prototype={ +$0(){var s=this.a,r=s.e +if((r&16)===0)return +s.e=(r|74)>>>0 +s.d.cq(s.c) +s.e=(s.e&4294967231)>>>0}, +$S:0} +A.dB.prototype={ +a5(a,b,c,d){var s=A.h(this) +s.h("~(1)?").a(a) +t.Y.a(c) +return this.a.dd(s.h("~(1)?").a(a),d,c,b===!0)}, +aY(a){return this.a5(a,null,null,null)}, +hj(a,b,c){return this.a5(a,b,c,null)}, +hi(a,b){return this.a5(a,null,b,null)}, +cg(a,b,c){return this.a5(a,null,b,c)}} +A.bf.prototype={ +sb_(a){this.a=t.aJ.a(a)}, +gb_(){return this.a}} +A.aJ.prototype={ +ck(a){this.$ti.h("az<1>").a(a).ae(this.b)}} +A.cp.prototype={ +ck(a){a.ag(this.b,this.c)}} +A.hl.prototype={ +ck(a){a.af()}, +gb_(){return null}, +sb_(a){throw A.e(A.b8("No events after a done."))}, +$ibf:1} +A.aL.prototype={ +b3(a){var s,r=this +r.$ti.h("az<1>").a(a) +s=r.a +if(s===1)return +if(s>=1){r.a=1 +return}A.lw(new A.k8(r,a)) +r.a=1}, +l(a,b){var s=this,r=s.c +if(r==null)s.b=s.c=b +else{r.sb_(b) +s.c=b}}} +A.k8.prototype={ +$0(){var s,r,q,p=this.a,o=p.a +p.a=0 +if(o===3)return +s=p.$ti.h("az<1>").a(this.b) +r=p.b +q=r.gb_() +p.b=q +if(q==null)p.c=null +r.ck(s)}, +$S:0} +A.dw.prototype={ +ci(a){this.$ti.h("~(1)?").a(a)}, +cj(){var s=this.a +if(s>=0)this.a=s+2}, +bv(){var s=this,r=s.a-2 +if(r<0)return +if(r===0){s.a=1 +A.lw(s.gcZ())}else s.a=r}, +P(){this.a=-1 +this.c=null +return $.dM()}, +ff(){var s,r=this,q=r.a-1 +if(q===0){r.a=-1 +s=r.c +if(s!=null){r.c=null +r.b.cq(s)}}else r.a=q}, +$iaj:1} +A.hu.prototype={} +A.kn.prototype={ +$0(){return this.a.bM(this.b)}, +$S:0} +A.eY.prototype={$imo:1} +A.hs.prototype={ +cq(a){var s,r,q +t.M.a(a) +try{if(B.d===$.u){a.$0() +return}A.n2(null,null,this,a,t.H)}catch(q){s=A.a_(q) +r=A.aO(q) +A.dF(A.a3(s),t.l.a(r))}}, +cs(a,b,c){var s,r,q +c.h("~(0)").a(a) +c.a(b) +try{if(B.d===$.u){a.$1(b) +return}A.n4(null,null,this,a,b,t.H,c)}catch(q){s=A.a_(q) +r=A.aO(q) +A.dF(A.a3(s),t.l.a(r))}}, +ht(a,b,c,d,e){var s,r,q +d.h("@<0>").v(e).h("~(1,2)").a(a) +d.a(b) +e.a(c) +try{if(B.d===$.u){a.$2(b,c) +return}A.n3(null,null,this,a,b,c,t.H,d,e)}catch(q){s=A.a_(q) +r=A.aO(q) +A.dF(A.a3(s),t.l.a(r))}}, +c8(a){return new A.ka(this,t.M.a(a))}, +fP(a,b){return new A.kb(this,b.h("~(0)").a(a),b)}, +dF(a,b){b.h("0()").a(a) +if($.u===B.d)return a.$0() +return A.n2(null,null,this,a,b)}, +cr(a,b,c,d){c.h("@<0>").v(d).h("1(2)").a(a) +d.a(b) +if($.u===B.d)return a.$1(b) +return A.n4(null,null,this,a,b,c,d)}, +hs(a,b,c,d,e,f){d.h("@<0>").v(e).v(f).h("1(2,3)").a(a) +e.a(b) +f.a(c) +if($.u===B.d)return a.$2(b,c) +return A.n3(null,null,this,a,b,c,d,e,f)}, +cm(a,b,c,d){return b.h("@<0>").v(c).v(d).h("1(2,3)").a(a)}} +A.ka.prototype={ +$0(){return this.a.cq(this.b)}, +$S:0} +A.kb.prototype={ +$1(a){var s=this.c +return this.a.cs(this.b,s.a(a),s)}, +$S(){return this.c.h("~(0)")}} +A.ks.prototype={ +$0(){A.ov(this.a,this.b)}, +$S:0} +A.ez.prototype={ +gm(a){return this.a}, +gC(a){return this.a===0}, +gJ(a){return this.a!==0}, +gW(){return new A.eA(this,this.$ti.h("eA<1>"))}, +aW(a){var s,r +if(typeof a=="string"&&a!=="__proto__"){s=this.b +return s==null?!1:s[a]!=null}else if(typeof a=="number"&&(a&1073741823)===a){r=this.c +return r==null?!1:r[a]!=null}else return this.eA(a)}, +eA(a){var s=this.d +if(s==null)return!1 +return this.aO(this.cQ(s,a),a)>=0}, +p(a,b){var s,r,q +if(typeof b=="string"&&b!=="__proto__"){s=this.b +r=s==null?null:A.mu(s,b) +return r}else if(typeof b=="number"&&(b&1073741823)===b){q=this.c +r=q==null?null:A.mu(q,b) +return r}else return this.eP(b)}, +eP(a){var s,r,q=this.d +if(q==null)return null +s=this.cQ(q,a) +r=this.aO(s,a) +return r<0?null:s[r+1]}, +i(a,b,c){var s,r,q,p,o=this,n=o.$ti +n.c.a(b) +n.y[1].a(c) +s=o.d +if(s==null)s=o.d=A.q4() +r=A.kN(b)&1073741823 +q=s[r] +if(q==null){A.mv(s,r,[b,c]);++o.a +o.e=null}else{p=o.aO(q,b) +if(p>=0)q[p+1]=c +else{q.push(b,c);++o.a +o.e=null}}}, +a_(a,b){var s,r,q,p,o,n,m=this,l=m.$ti +l.h("~(1,2)").a(b) +s=m.cH() +for(r=s.length,q=l.c,l=l.y[1],p=0;p"))}} +A.eB.prototype={ +gB(){var s=this.d +return s==null?this.$ti.c.a(s):s}, +t(){var s=this,r=s.b,q=s.c,p=s.a +if(r!==p.e)throw A.e(A.am(p)) +else if(q>=r.length){s.d=null +return!1}else{s.d=r[q] +s.c=q+1 +return!0}}, +$iS:1} +A.eE.prototype={ +gE(a){var s=this,r=new A.eF(s,s.r,A.h(s).h("eF<1>")) +r.c=s.e +return r}, +gm(a){return this.a}, +gC(a){return this.a===0}, +l(a,b){var s,r,q=this +A.h(q).c.a(b) +if(typeof b=="string"&&b!=="__proto__"){s=q.b +return q.cG(s==null?q.b=A.le():s,b)}else if(typeof b=="number"&&(b&1073741823)===b){r=q.c +return q.cG(r==null?q.c=A.le():r,b)}else return q.ep(b)}, +ep(a){var s,r,q,p=this +A.h(p).c.a(a) +s=p.d +if(s==null)s=p.d=A.le() +r=p.ex(a) +q=s[r] +if(q==null)s[r]=[p.bL(a)] +else{if(p.aO(q,a)>=0)return!1 +q.push(p.bL(a))}return!0}, +cG(a,b){A.h(this).c.a(b) +if(t.br.a(a[b])!=null)return!1 +a[b]=this.bL(b) +return!0}, +bL(a){var s=this,r=new A.hq(A.h(s).c.a(a)) +if(s.e==null)s.e=s.f=r +else s.f=s.f.b=r;++s.a +s.r=s.r+1&1073741823 +return r}, +ex(a){return J.aP(a)&1073741823}, +aO(a,b){var s,r +if(a==null)return-1 +s=a.length +for(r=0;r"))}, +a3(a,b){return this.p(a,b)}, +gC(a){return this.gm(a)===0}, +gJ(a){return this.gm(a)!==0}, +gZ(a){if(this.gm(a)===0)throw A.e(A.it()) +return this.p(a,0)}, +ak(a,b){var s +if(this.gm(a)===0)return"" +s=A.l9("",a,b) +return s.charCodeAt(0)==0?s:s}, +dK(a,b){return new A.co(a,b.h("co<0>"))}, +aZ(a,b,c){var s=A.b_(a) +return new A.X(a,s.v(c).h("1(D.E)").a(b),s.h("@").v(c).h("X<1,2>"))}, +bD(a,b){return A.la(a,b,null,A.b_(a).h("D.E"))}, +h7(a,b,c,d){var s +A.b_(a).h("D.E?").a(d) +A.aw(b,c,this.gm(a)) +for(s=b;s").a(d) +A.aw(b,c,this.gm(a)) +s=c-b +if(s===0)return +A.ea(e,"skipCount") +r=J.aB(d) +if(e+s>r.gm(d))throw A.e(A.lT()) +if(e=0;--q)this.i(a,b+q,r.p(d,e+q)) +else for(q=0;q(T.K,T.V)").a(b) +s=A.o(c,d) +for(r=this.gW(),r=r.gE(r),n=n.h("T.V");r.t();){q=r.gB() +p=this.p(0,q) +o=b.$2(q,p==null?n.a(p):p) +s.i(0,o.a,o.b)}return s}, +gm(a){var s=this.gW() +return s.gm(s)}, +gC(a){var s=this.gW() +return s.gC(s)}, +gJ(a){var s=this.gW() +return s.gJ(s)}, +k(a){return A.l0(this)}, +$id:1} +A.iC.prototype={ +$2(a,b){var s,r=this.a +if(!r.a)this.b.a+=", " +r.a=!1 +r=this.b +s=A.J(a) +r.a=(r.a+=s)+": " +s=A.J(b) +r.a+=s}, +$S:13} +A.e2.prototype={ +gE(a){var s=this +return new A.ct(s,s.c,s.d,s.b,s.$ti.h("ct<1>"))}, +gC(a){return this.b===this.c}, +gm(a){return(this.c-this.b&this.a.length-1)>>>0}, +a3(a,b){var s,r,q=this,p=q.gm(0) +if(0>b||b>=p)A.v(A.io(b,p,q,null,"index")) +p=q.a +s=p.length +r=(q.b+b&s-1)>>>0 +if(!(r>=0&&r>>0)B.b.i(s,p,null) +q.b=q.c=0;++q.d}}, +k(a){return A.iu(this,"{","}")}, +$ipn:1} +A.ct.prototype={ +gB(){var s=this.$ti.c.a(this.e) +return s}, +t(){var s,r,q=this,p=q.a +if(q.c!==p.d)A.v(A.am(p)) +s=q.d +if(s===q.b){q.e=null +return!1}p=p.a +r=p.length +if(!(s>>0 +return!0}, +$iS:1} +A.bz.prototype={ +gC(a){return this.gm(this)===0}, +aZ(a,b,c){var s=A.h(this) +return new A.bX(this,s.v(c).h("1(2)").a(b),s.h("@<1>").v(c).h("bX<1,2>"))}, +k(a){return A.iu(this,"{","}")}, +$iq:1, +$if:1, +$ih0:1} +A.eN.prototype={} +A.ho.prototype={ +p(a,b){var s,r=this.b +if(r==null)return this.c.p(0,b) +else if(typeof b!="string")return null +else{s=r[b] +return typeof s=="undefined"?this.fv(b):s}}, +gm(a){return this.b==null?this.c.a:this.b9().length}, +gC(a){return this.gm(0)===0}, +gJ(a){return this.gm(0)>0}, +gW(){if(this.b==null){var s=this.c +return new A.c0(s,A.h(s).h("c0<1>"))}return new A.hp(this)}, +a_(a,b){var s,r,q,p,o=this +t.cA.a(b) +if(o.b==null)return o.c.a_(0,b) +s=o.b9() +for(r=0;r=0&&b"))}return s}} +A.ki.prototype={ +$0(){var s,r +try{s=new TextDecoder("utf-8",{fatal:true}) +return s}catch(r){}return null}, +$S:14} +A.kh.prototype={ +$0(){var s,r +try{s=new TextDecoder("utf-8",{fatal:false}) +return s}catch(r){}return null}, +$S:14} +A.f7.prototype={ +hm(a3,a4,a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a1="Invalid base64 encoding length ",a2=a3.length +a5=A.aw(a4,a5,a2) +s=$.lz() +for(r=s.length,q=a4,p=q,o=null,n=-1,m=-1,l=0;q=0&&e=0){if(!(d<64))return A.c(a0,d) +e=a0.charCodeAt(d) +if(e===j)continue +j=e}else{if(d===-1){if(n<0){g=o==null?null:o.a.length +if(g==null)g=0 +n=g+(q-p) +m=q}++l +if(j===61)continue}j=e}if(d!==-2){if(o==null){o=new A.ab("") +g=o}else g=o +g.a+=B.a.u(a3,p,q) +c=A.av(j) +g.a+=c +p=k +continue}}throw A.e(A.R("Invalid base64 data",a3,q))}if(o!=null){a2=B.a.u(a3,p,a5) +a2=o.a+=a2 +r=a2.length +if(n>=0)A.lG(a3,m,a5,n,l,r) +else{b=B.c.am(r-1,4)+1 +if(b===1)throw A.e(A.R(a1,a3,a5)) +while(b<4){a2+="=" +o.a=a2;++b}}a2=o.a +return B.a.aC(a3,a4,a5,a2.charCodeAt(0)==0?a2:a2)}a=a5-a4 +if(n>=0)A.lG(a3,m,a5,n,l,a) +else{b=B.c.am(a,4) +if(b===1)throw A.e(A.R(a1,a3,a5)) +if(b>1)a3=B.a.aC(a3,a5,a5,b===2?"==":"=")}return a3}} +A.f9.prototype={} +A.f8.prototype={ +Y(a){var s,r,q=A.aw(0,null,a.length) +if(0===q)return new Uint8Array(0) +s=new A.jK() +r=s.fV(a,0,q) +r.toString +s.ai(a,q) +return r}} +A.jK.prototype={ +fV(a,b,c){var s,r=this,q=r.a +if(q<0){r.a=A.mp(a,b,c,q) +return null}if(b===c)return new Uint8Array(0) +s=A.q0(a,b,c,q) +r.a=A.q2(a,b,c,s,0,r.a) +return s}, +ai(a,b){var s=this.a +if(s<-1)throw A.e(A.R("Missing padding character",a,b)) +if(s>0)throw A.e(A.R("Invalid length, must be multiple of four",a,b)) +this.a=-1}} +A.bR.prototype={} +A.aQ.prototype={$iaV:1} +A.fk.prototype={} +A.e_.prototype={ +k(a){var s=A.fl(this.a) +return(this.b!=null?"Converting object to an encodable object failed:":"Converting object did not return an encodable object:")+" "+s}} +A.fw.prototype={ +k(a){return"Cyclic error in JSON stringify"}} +A.fv.prototype={ +fU(a,b){var s=A.rf(a,this.gfY().a) +return s}, +h2(a,b){var s=A.q7(a,this.gh3().b,null) +return s}, +gh3(){return B.a5}, +gfY(){return B.a4}} +A.fy.prototype={} +A.fx.prototype={} +A.k6.prototype={ +dM(a){var s,r,q,p,o,n=this,m=a.length +for(s=0,r=0;r92){if(q>=55296){p=q&64512 +if(p===55296){o=r+1 +o=!(o=0&&(a.charCodeAt(p)&64512)===55296)}else p=!1 +else p=!0 +if(p){if(r>s)n.by(a,s,r) +s=r+1 +n.K(92) +n.K(117) +n.K(100) +p=q>>>8&15 +n.K(p<10?48+p:87+p) +p=q>>>4&15 +n.K(p<10?48+p:87+p) +p=q&15 +n.K(p<10?48+p:87+p)}}continue}if(q<32){if(r>s)n.by(a,s,r) +s=r+1 +n.K(92) +switch(q){case 8:n.K(98) +break +case 9:n.K(116) +break +case 10:n.K(110) +break +case 12:n.K(102) +break +case 13:n.K(114) +break +default:n.K(117) +n.K(48) +n.K(48) +p=q>>>4&15 +n.K(p<10?48+p:87+p) +p=q&15 +n.K(p<10?48+p:87+p) +break}}else if(q===34||q===92){if(r>s)n.by(a,s,r) +s=r+1 +n.K(92) +n.K(q)}}if(s===0)n.T(a) +else if(s=q.length)return A.c(q,-1) +q.pop()}catch(p){r=A.a_(p) +q=A.lZ(a,r,o.gd1()) +throw A.e(q)}}, +dL(a){var s,r,q=this +if(typeof a=="number"){if(!isFinite(a))return!1 +q.hC(a) +return!0}else if(a===!0){q.T("true") +return!0}else if(a===!1){q.T("false") +return!0}else if(a==null){q.T("null") +return!0}else if(typeof a=="string"){q.T('"') +q.dM(a) +q.T('"') +return!0}else if(t.j.b(a)){q.bI(a) +q.hA(a) +s=q.a +if(0>=s.length)return A.c(s,-1) +s.pop() +return!0}else if(t.f.b(a)){q.bI(a) +r=q.hB(a) +s=q.a +if(0>=s.length)return A.c(s,-1) +s.pop() +return r}else return!1}, +hA(a){var s,r,q=this +q.T("[") +s=J.aB(a) +if(s.gJ(a)){q.bx(s.p(a,0)) +for(r=1;r=0&&q>>18|240 +q=n.b=p+1 +if(!(p>>12&63|128 +p=n.b=q+1 +if(!(q>>6&63|128 +n.b=p+1 +if(!(p=0&&s=q)break +k.b=m+1 +r&2&&A.Q(s) +s[m]=n}else{m=n&64512 +if(m===55296){if(k.b+4>q)break +m=o+1 +if(!(mq)break +k.c6()}else if(n<=2047){m=k.b +l=m+1 +if(l>=q)break +k.b=l +r&2&&A.Q(s) +if(!(m>>6|192 +k.b=l+1 +s[l]=n&63|128}else{m=k.b +if(m+2>=q)break +l=k.b=m+1 +r&2&&A.Q(s) +if(!(m>>12|224 +m=k.b=l+1 +if(!(l>>6&63|128 +k.b=m+1 +if(!(m=15){o=l.a +n=A.qB(o,q,b,s) +if(n!=null){if(!o)return n +if(n.indexOf("\ufffd")<0)return n}}n=l.bN(q,b,s,d) +o=l.b +if((o&1)!==0){m=A.qD(o) +l.b=0 +throw A.e(A.R(m,a,p+l.c))}return n}, +bN(a,b,c,d){var s,r,q=this +if(c-b>1000){s=B.c.ad(b+c,2) +r=q.bN(a,b,s,!1) +if((q.b&1)!==0)return r +return r+q.bN(a,s,c,d)}return q.fX(a,b,c,d)}, +fX(a,b,a0,a1){var s,r,q,p,o,n,m,l,k=this,j="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHJEEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKCCCCCCCCCCCCDCLONNNMEEEEEEEEEEE",i=" \x000:XECCCCCN:lDb \x000:XECCCCCNvlDb \x000:XECCCCCN:lDb AAAAA\x00\x00\x00\x00\x00AAAAA00000AAAAA:::::AAAAAGG000AAAAA00KKKAAAAAG::::AAAAA:IIIIAAAAA000\x800AAAAA\x00\x00\x00\x00 AAAAA",h=65533,g=k.b,f=k.c,e=new A.ab(""),d=b+1,c=a.length +if(!(b>=0&&b=0&&s<256))return A.c(j,s) +q=j.charCodeAt(s)&31 +f=g<=32?s&61694>>>q:(s&63|f<<6)>>>0 +p=g+q +if(!(p>=0&&p<144))return A.c(i,p) +g=i.charCodeAt(p) +if(g===0){p=A.av(f) +e.a+=p +if(d===a0)break A +break}else if((g&1)!==0){if(r)switch(g){case 69:case 67:p=A.av(h) +e.a+=p +break +case 65:p=A.av(h) +e.a+=p;--d +break +default:p=A.av(h) +e.a=(e.a+=p)+p +break}else{k.b=g +k.c=d-1 +return""}g=0}if(d===a0)break A +o=d+1 +if(!(d>=0&&d=0&&d=0&&o=128){n=m-1 +o=m +break}o=m}if(n-d<20)for(l=d;l32)if(r){c=A.av(h) +e.a+=c}else{k.b=77 +k.c=a0 +return""}k.b=g +k.c=f +c=e.a +return c.charCodeAt(0)==0?c:c}} +A.aF.prototype={ +M(a,b){if(b==null)return!1 +return b instanceof A.aF&&this.a===b.a&&this.b===b.b&&this.c===b.c}, +gA(a){return A.l2(this.a,this.b,B.j,B.j)}, +a4(a,b){var s +t.dy.a(b) +s=B.c.a4(this.a,b.a) +if(s!==0)return s +return B.c.a4(this.b,b.b)}, +N(){var s=this +if(s.c)return s +return new A.aF(s.a,s.b,!0)}, +k(a){var s=this,r=A.lO(A.fR(s)),q=A.b2(A.m9(s)),p=A.b2(A.m5(s)),o=A.b2(A.m6(s)),n=A.b2(A.m8(s)),m=A.b2(A.ma(s)),l=A.i9(A.m7(s)),k=s.b,j=k===0?"":A.i9(k) +k=r+"-"+q +if(s.c)return k+"-"+p+" "+o+":"+n+":"+m+"."+l+j+"Z" +else return k+"-"+p+" "+o+":"+n+":"+m+"."+l+j}, +X(){var s=this,r=A.fR(s)>=-9999&&A.fR(s)<=9999?A.lO(A.fR(s)):A.om(A.fR(s)),q=A.b2(A.m9(s)),p=A.b2(A.m5(s)),o=A.b2(A.m6(s)),n=A.b2(A.m8(s)),m=A.b2(A.ma(s)),l=A.i9(A.m7(s)),k=s.b,j=k===0?"":A.i9(k) +k=r+"-"+q +if(s.c)return k+"-"+p+"T"+o+":"+n+":"+m+"."+l+j+"Z" +else return k+"-"+p+"T"+o+":"+n+":"+m+"."+l+j}, +$ial:1} +A.ia.prototype={ +$1(a){if(a==null)return 0 +return A.f1(a)}, +$S:15} +A.ib.prototype={ +$1(a){var s,r,q +if(a==null)return 0 +for(s=a.length,r=0,q=0;q<6;++q){r*=10 +if(qr)s=": Not in inclusive range "+A.J(r)+".."+A.J(q) +else s=qe.length +else s=!1 +if(s)f=null +if(f==null){if(e.length>78)e=B.a.u(e,0,75)+"..." +return g+"\n"+e}for(r=e.length,q=1,p=0,o=!1,n=0;n1?g+(" (at line "+q+", character "+(f-p+1)+")\n"):g+(" (at character "+(f+1)+")\n") +for(n=f;n=0))return A.c(e,n) +m=e.charCodeAt(n) +if(m===10||m===13){r=n +break}}l="" +if(r-p>78){k="..." +if(f-p<75){j=p+75 +i=p}else{if(r-f<75){i=r-75 +j=r +k=""}else{i=f-36 +j=f+36}l="..."}}else{j=r +i=p +k=""}return g+l+B.a.u(e,i,j)+k+"\n"+B.a.bz(" ",f-i+l.length)+"^\n"}else return f!=null?g+(" (at offset "+A.J(f)+")"):g}} +A.f.prototype={ +aZ(a,b,c){var s=A.h(this) +return A.c3(this,s.v(c).h("1(f.E)").a(b),s.h("f.E"),c)}, +gm(a){var s,r=this.gE(this) +for(s=0;r.t();)++s +return s}, +gC(a){return!this.gE(this).t()}, +gJ(a){return!this.gC(this)}, +a3(a,b){var s,r +A.ea(b,"index") +s=this.gE(this) +for(r=b;s.t();){if(r===0)return s.gB();--r}throw A.e(A.io(b,b-r,this,null,"index"))}, +k(a){return A.oA(this,"(",")")}} +A.bu.prototype={ +k(a){return"MapEntry("+this.a+": "+this.b+")"}} +A.O.prototype={ +gA(a){return A.n.prototype.gA.call(this,0)}, +k(a){return"null"}} +A.n.prototype={$in:1, +M(a,b){return this===b}, +gA(a){return A.c9(this)}, +k(a){return"Instance of '"+A.fS(this)+"'"}, +gI(a){return A.nf(this)}, +toString(){return this.k(this)}} +A.hx.prototype={ +k(a){return""}, +$iai:1} +A.aT.prototype={ +gE(a){return new A.fW(this.a)}} +A.fW.prototype={ +gB(){return this.d}, +t(){var s,r,q,p=this,o=p.b=p.c,n=p.a,m=n.length +if(o===m){p.d=-1 +return!1}if(!(o=0}, +dD(a){var s,r,q,p,o,n,m,l=this +a=A.lk(a,0,a.length) +s=a==="file" +r=l.b +q=l.d +if(a!==l.a)q=A.lj(q,a) +p=l.c +if(!(p!=null))p=r.length!==0||q!=null||s?"":null +o=l.e +if(!s)n=p!=null&&o.length!==0 +else n=!0 +if(n&&!B.a.L(o,"/"))o="/"+o +m=o +return A.lh(a,r,p,q,m,l.f,l.r)}, +gds(){return this.c!=null}, +gdv(){return this.f!=null}, +gdt(){return this.r!=null}, +k(a){return this.gcM()}, +M(a,b){var s,r,q,p=this +if(b==null)return!1 +if(p===b)return!0 +s=!1 +if(t.B.b(b))if(p.a===b.gb4())if(p.c!=null===b.gds())if(p.b===b.gdJ())if(p.gbq()===b.gbq())if(p.gbu()===b.gbu())if(p.e===b.gdB()){r=p.f +q=r==null +if(!q===b.gdv()){if(q)r="" +if(r===b.gdC()){r=p.r +q=r==null +if(!q===b.gdt()){s=q?"":r +s=s===b.gdr()}}}}return s}, +$idt:1, +gb4(){return this.a}, +gdB(){return this.e}} +A.js.prototype={ +gdI(){var s,r,q,p,o=this,n=null,m=o.c +if(m==null){m=o.b +if(0>=m.length)return A.c(m,0) +s=o.a +m=m[0]+1 +r=B.a.aB(s,"?",m) +q=s.length +if(r>=0){p=A.eX(s,r+1,q,256,!1,!1) +q=r}else p=n +m=o.c=new A.hk("data","",n,n,A.eX(s,m,q,128,!1,!1),p,n)}return m}, +k(a){var s,r=this.b +if(0>=r.length)return A.c(r,0) +s=this.a +return r[0]===-1?"data:"+s:s}} +A.ht.prototype={ +gds(){return this.c>0}, +gdu(){return this.c>0&&this.d+1=0}, +gb4(){var s=this.w +return s==null?this.w=this.ey():s}, +ey(){var s,r=this,q=r.b +if(q<=0)return"" +s=q===4 +if(s&&B.a.L(r.a,"http"))return"http" +if(q===5&&B.a.L(r.a,"https"))return"https" +if(s&&B.a.L(r.a,"file"))return"file" +if(q===7&&B.a.L(r.a,"package"))return"package" +return B.a.u(r.a,0,q)}, +gdJ(){var s=this.c,r=this.b+3 +return s>r?B.a.u(this.a,r,s-1):""}, +gbq(){var s=this.c +return s>0?B.a.u(this.a,s,this.d):""}, +gbu(){var s,r=this +if(r.gdu())return A.f1(B.a.u(r.a,r.d+1,r.e)) +s=r.b +if(s===4&&B.a.L(r.a,"http"))return 80 +if(s===5&&B.a.L(r.a,"https"))return 443 +return 0}, +gdB(){return B.a.u(this.a,this.e,this.f)}, +gdC(){var s=this.f,r=this.r +return s0?B.a.u(h.a,h.b+3,q):"" +o=h.gdu()?h.gbu():g +if(s)o=A.lj(o,a) +q=h.c +if(q>0)n=B.a.u(h.a,q,h.d) +else n=p.length!==0||o!=null||r?"":g +q=h.a +m=h.f +l=B.a.u(q,h.e,m) +if(!r)k=n!=null&&l.length!==0 +else k=!0 +if(k&&!B.a.L(l,"/"))l="/"+l +k=h.r +j=m4294967296)throw A.e(A.md("max must be in range 0 < max \u2264 2^32, was "+a)) +if(a>255)if(a>65535)s=a>16777215?4:3 +else s=2 +else s=1 +r=this.a +r.$flags&2&&A.Q(r,11) +r.setUint32(0,0,!1) +q=4-s +p=A.U(Math.pow(256,s)) +for(o=a-1,n=(a&o)>>>0===0;;){crypto.getRandomValues(J.lB(B.am.gdn(r),q,s)) +m=r.getUint32(0,!1) +if(n)return(m&o)>>>0 +l=m%a +if(m-l+a").a(a) +s=A.mr("subscription") +r=A.aU(new A.iQ(s),null,!0,q.y[1]) +s.b=a.cg(new A.iR(this,r),r.gfR(),r.gdk()) +return new A.M(r,A.h(r).h("M<1>"))}} +A.iQ.prototype={ +$0(){return this.a.d4().P()}, +$S:3} +A.iR.prototype={ +$1(a){var s,r,q,p=this.a.$ti +p.c.a(a) +try{this.b.l(0,p.y[1].a(a))}catch(q){p=A.a_(q) +if(t.A.b(p)){s=p +r=A.aO(q) +this.b.ah(s,r)}else throw q}}, +$S(){return this.a.$ti.h("~(1)")}} +A.fi.prototype={} +A.h9.prototype={} +A.h8.prototype={} +A.fn.prototype={} +A.fj.prototype={} +A.h_.prototype={} +A.f2.prototype={} +A.i1.prototype={} +A.fc.prototype={ +aa(){var s=0,r=A.H(t.H),q=1,p=[],o=this,n,m,l,k,j,i,h,g +var $async$aa=A.I(function(a,b){if(a===1){p.push(b) +s=q}for(;;)switch(s){case 0:h=new A.p($.u,t.D) +o.f=new A.ac(h,t.h) +n=A.tZ() +m=null +q=3 +s=6 +return A.y(n.$1(o.a.a),$async$aa) +case 6:m=b +q=1 +s=5 +break +case 3:q=2 +g=p.pop() +l=A.a_(g) +h=A.J(l) +throw A.e(new A.ch("transport_error","Failed to connect to Hub: "+h)) +s=5 +break +case 2:s=1 +break +case 5:o.b=m +j=A.o6(m,1) +o.c=j +i=j.c +o.d=new A.eu(i,A.h(i).h("eu<1>")).hj(o.gen(),!1,o.gf7()) +m.d.a.b1(new A.i2(o),t.H) +s=7 +return A.y(h,$async$aa) +case 7:return A.F(null,r) +case 1:return A.E(p.at(-1),r)}}) +return A.G($async$aa,r)}, +aK(a){return this.f6(t.R.a(a))}, +f6(a){var s=0,r=A.H(t.H),q,p=this,o,n,m,l,k,j,i,h,g,f,e,d,c,b +var $async$aK=A.I(function(a0,a1){if(a0===1)return A.E(a1,r) +for(;;)switch(s){case 0:o=a instanceof A.bp +n=o?a:null +s=o?4:5 +break +case 4:s=6 +return A.y(p.bg(n),$async$aK) +case 6:s=3 +break +case 5:o=a instanceof A.bK +m=o?a:null +if(o){l=B.a.a7(m.a) +if(l.length===0)A.v(B.ax) +o=m.b +k=m.c +p.e=new A.fT(new A.fU(l),o,A.oM(k,A.P(k).c)) +o=p.f +if(o!=null&&(o.a.a&30)===0)o.az() +s=3 +break}o=a instanceof A.bJ +j=o?a:null +if(o){o=p.f +if(o!=null&&(o.a.a&30)===0)o.H(new A.f6("auth_failed",j.b)) +s=3 +break}o=a instanceof A.c4 +i=o?a:null +if(o){o=p.r +if(!o.gC(0)){k=o.b +if(k===o.c)A.v(A.it());++o.d +h=o.a +g=h.length +if(!(k>>0 +f.D(i.a)}s=3 +break}o=a instanceof A.c8 +e=o?a:null +if(o){d=p.w.S(0,e.a) +if(d!=null){o=new A.aF(Date.now(),0,!1).N() +k=e.b +d.D(new A.au(o.b-k.b+1000*(o.a-k.a)))}s=3 +break}o=a instanceof A.bV +c=o?a:null +if(o){o=p.x.S(0,c.a) +if(o!=null)o.D(c.b) +s=3 +break}o=a instanceof A.cf +c=o?a:null +if(o){o=p.Q.S(0,c.a) +if(o!=null){k=c.d +if(k.length===0)new Uint8Array(0) +else B.K.Y(k) +o.D(new A.h_())}s=3 +break}o=a instanceof A.bW +c=o?a:null +if(o){o=p.as.S(0,c.a) +if(o!=null)o.D(new A.fj()) +s=3 +break}o=a instanceof A.bU +c=o?a:null +if(o){o=p.y.S(0,c.a) +if(o!=null)o.D(new A.fi()) +s=3 +break}o=a instanceof A.bG +c=o?a:null +if(o){o=p.z.S(0,c.a) +if(o!=null)o.D(new A.f2()) +s=3 +break}o=a instanceof A.ck +c=o?a:null +if(o){if(p.at.S(0,c.a)!=null){o=A.f0() +A.f0() +A.f0() +o.D(new A.h9())}s=3 +break}o=a instanceof A.cl +c=o?a:null +if(o){if(p.at.S(0,c.a)!=null){o=A.f0() +k=c.c +h=c.b +o.H(new A.jm(h,k))}s=3 +break}o=a instanceof A.cj +c=o?a:null +if(o){o=p.ax.S(0,c.a) +if(o!=null)o.D(c.b) +s=3 +break}o=a instanceof A.ci +c=o?a:null +if(o){o=p.ay.S(0,c.a) +if(o!=null)o.D(new A.h8()) +s=3 +break}o=a instanceof A.bH +c=o?a:null +if(o){o=p.ch.S(0,c.a) +if(o!=null)o.D(new A.fn()) +s=3 +break}o=a instanceof A.bq +c=o?a:null +if(o){o=p.CW.S(0,c.a) +if(o!=null)o.D(c) +s=3 +break}o=a instanceof A.c5 +b=o?a:null +s=o?7:8 +break +case 7:s=9 +return A.y(p.aP(b),$async$aK) +case 9:s=3 +break +case 8:s=3 +break +case 3:case 1:return A.F(q,r)}}) +return A.G($async$aK,r)}, +bg(a){var s=0,r=A.H(t.H),q=this,p,o +var $async$bg=A.I(function(b,c){if(b===1)return A.E(c,r) +for(;;)switch(s){case 0:o=q.b +if(o!=null)o.an(new A.an(new A.bp("client",1,1,null,A.z(["agent","omnyshell-client"],t.N,t.z)))) +o=a.d +if(o==null)o="" +s=2 +return A.y(q.a.b.c9(o),$async$bg) +case 2:p=c +o=q.b +if(o!=null)o.an(new A.an(p)) +return A.F(null,r)}}) +return A.G($async$bg,r)}, +b0(a,b,c){var s=0,r=A.H(t.J),q,p=2,o=[],n=this,m,l,k,j,i,h,g +var $async$b0=A.I(function(d,e){if(d===1){o.push(e) +s=p}for(;;)switch(s){case 0:h=n.b +if(h==null||!h.e)A.v(B.b_) +h=n.c +m=h.cN(h.e++) +h=m +k=$.u +j=new A.bx(h,new A.ac(new A.p(k,t.D),t.h),new A.ac(new A.p(k,t.fJ),t.bS),new A.ac(new A.p(k,t.gg),t.d8),B.E) +h=h.f +h=t.a4.a(new A.M(h,A.h(h).h("M<1>")).aY(j.gf4())) +j.f!==$&&A.bE("_controlSub") +j.f=h +l=j +h=n.b +h.toString +h.an(new A.an(new A.cc(m.a,b,a,null,B.r,B.A,null,c,null,null))) +p=4 +s=7 +return A.y(l.c.a,$async$b0) +case 7:p=2 +s=6 +break +case 4:p=3 +g=o.pop() +h=n.c +h.toString +s=8 +return A.y(h.aT(m.a),$async$b0) +case 8:throw g +s=6 +break +case 3:s=2 +break +case 6:q=l +s=1 +break +case 1:return A.F(q,r) +case 2:return A.E(o.at(-1),r)}}) +return A.G($async$b0,r)}, +cX(){var s,r,q,p,o,n=this +n.e=null +s=n.f +if(s!=null&&(s.a.a&30)===0)s.H(B.b0) +for(s=n.r,r=A.q8(s,s.$ti.c),q=r.$ti.c;r.t();){p=q.a(r.e) +if(!p.gR())p.H(B.e)}s.F(0) +for(s=n.w,r=new A.N(s,s.r,s.e,A.h(s).h("N<2>"));r.t();){q=r.d +if(!q.gR())q.H(B.e)}s.F(0) +for(s=n.x,r=new A.N(s,s.r,s.e,A.h(s).h("N<2>"));r.t();){q=r.d +if(!q.gR())q.H(B.e)}s.F(0) +for(s=n.y,r=new A.N(s,s.r,s.e,A.h(s).h("N<2>"));r.t();){q=r.d +if(!q.gR())q.H(B.e)}s.F(0) +for(s=n.z,r=new A.N(s,s.r,s.e,A.h(s).h("N<2>"));r.t();){q=r.d +if(!q.gR())q.H(B.e)}s.F(0) +for(s=n.Q,r=new A.N(s,s.r,s.e,A.h(s).h("N<2>"));r.t();){q=r.d +if(!q.gR())q.H(B.e)}s.F(0) +for(s=n.as,r=new A.N(s,s.r,s.e,A.h(s).h("N<2>"));r.t();){q=r.d +if(!q.gR())q.H(B.e)}s.F(0) +for(s=n.at,r=new A.N(s,s.r,s.e,A.h(s).h("N<2>"));r.t();)if(!A.f0().gR())A.f0().H(B.e) +s.F(0) +for(s=n.ax,r=new A.N(s,s.r,s.e,A.h(s).h("N<2>"));r.t();){q=r.d +if(!q.gR())q.H(B.e)}s.F(0) +for(s=n.ay,r=new A.N(s,s.r,s.e,A.h(s).h("N<2>"));r.t();){q=r.d +if(!q.gR())q.H(B.e)}s.F(0) +for(s=n.ch,r=new A.N(s,s.r,s.e,A.h(s).h("N<2>"));r.t();){q=r.d +if(!q.gR())q.H(B.e)}s.F(0) +for(s=n.CW,r=new A.N(s,s.r,s.e,A.h(s).h("N<2>"));r.t();){q=r.d +if(!q.gR())q.H(B.e)}s.F(0) +s=n.cx +r=A.h(s).h("c1<2>") +r=A.a2(new A.c1(s,r),r.h("f.E")) +q=r.length +o=0 +for(;oq)B.b.co(s,0,r-q) +return!0}} +A.im.prototype={ +hz(a,b){var s,r,q,p=this,o=A.iB(p.a.a,t.N),n=p.b +if(n===0)return null +s=o.length +if(n===s){p.c=a +p.d=b}r=p.d +if(r==null)r="" +for(q=n-1;q>=0;--q){if(!(q=n)return null +s=q.d +if(s==null)s="" +for(r=o+1;r=0))return A.c(p,r) +o=p[r] +if(B.a.L(o,s)){q.b=r +return o}}q.b=n +return q.c}, +al(){var s=this +s.b=s.a.a.length +s.c="" +s.d=null}} +A.i8.prototype={} +A.i6.prototype={ +gaD(){var s=this.a,r=B.c.ad(s.length,2) +return new A.eL(B.a.u(s,0,r),B.a.a8(s,r))}, +h6(a6){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4=null,a5=this.b +B.b.aw(a5,a6) +s=new A.hj(A.w([],t.eS)) +r=B.i.Y(this.a) +for(q=a5.$flags|0,p=t.L,o=r.length,n=t.s,m=a4,l=m,k=l,j=k,i=j,h=!1;g=a4,!0;h=!0){f=A.oi(a5,r) +if(f<0)break +e=f+o +d=B.b.aB(a5,10,e) +if(d<0){g=f +break}s.l(0,new Uint8Array(A.bC(B.b.a0(a5,0,f)))) +if(d>e){c=d-1 +if(!(c=a.length)return A.c(a,0) +i=a[0] +j=A.i7(a,1) +k=A.i7(a,2) +l=A.i7(a,3) +a0=A.i7(a,4) +if(a0!=null)m=A.l3(a0,a4)}a1=d+1 +q&1&&A.Q(a5,18) +A.aw(0,a1,a5.length) +a5.splice(0,a1)}if(g!=null){if(g>0){s.l(0,new Uint8Array(A.bC(B.b.a0(a5,0,g)))) +B.b.co(a5,0,g)}}else{a2=A.oj(a5,r) +p=a5.length +if(p>a2){a3=p-a2 +s.l(0,new Uint8Array(A.bC(B.b.a0(a5,0,a3)))) +B.b.co(a5,0,a3)}}return new A.i8(s.dG(),i,j,k,l,h,m)}} +A.dn.prototype={} +A.iP.prototype={} +A.fp.prototype={ +aH(){var s,r,q,p=this +if(p.as)return +p.as=!0 +s=p.a +r=s.b +q=r.d +p.z=new A.M(q,A.h(q).h("M<1>")).aY(p.gfo()) +q=r.e +p.Q=new A.M(q,A.h(q).h("M<1>")).aY(p.gfm()) +s.d.a.b1(p.gfc(),t.H).dq(new A.is(p)) +s=p.c +q=t.L +r.b7(B.m,q.a(B.i.Y(s.gcb()+"\n")),null) +r.b7(B.m,q.a(B.i.Y(s.bp(p.b)+"\n")),null)}, +fp(a){var s,r,q,p=this +t.p.a(a) +if(p.ax||p.a.w!=null||a.length===0)return +p.a.cv(a.length) +s=p.b.h6(a) +r=s.a +if(r.length!==0){p.f.$1(r) +q=p.CW +if(q!=null)q.l(0,r)}r=s.b +if(r!=null){p.cx=r +p.cy=s.c +p.db=s.d +p.dx=s.e}if(s.f){p.at=!1 +p.x.$1(!1) +p.w.$1(p.d3()) +p.fC(s.r)}}, +fn(a){var s,r=this +t.p.a(a) +if(r.ax||r.a.w!=null||a.length===0)return +r.a.cv(a.length) +r.f.$1(a) +s=r.CW +if(s!=null)s.l(0,a)}, +fC(a){var s,r,q=this,p=q.ch +if(p==null)return +q.ch=null +s=q.CW +r=s==null?null:s.dG() +if(r==null)r=new Uint8Array(0) +q.CW=null +if((p.a.a&30)===0)p.D(new A.iP(r,a))}, +d3(){var s=this +return new A.dn(s.cx,s.cy,s.db,s.dx)}, +e0(a){var s,r,q=this +if(q.ax)return +if(B.a.a7(a).length===0){q.w.$1(q.d3()) +return}q.at=!0 +q.x.$1(!0) +s=q.c +r=q.b +q.a.b.b7(B.m,t.L.a(B.i.Y(s.ct(a,!0,A.tR(a)?s.bp(r):s.cl(r))+"\n")),null)}, +dT(a){t.L.a(a) +if(this.ax)return +this.a.b.b7(B.m,a,null)}, +cY(a){var s,r=this +A.U(a) +if(r.ax)return +r.ax=!0 +s=r.ch +if(s!=null&&(s.a.a&30)===0){r.CW=r.ch=null +s.H(new A.ax("session ended during command"))}r.y.$1(a)}, +q(){var s=0,r=A.H(t.H),q=this +var $async$q=A.I(function(a,b){if(a===1)return A.E(b,r) +for(;;)switch(s){case 0:s=2 +return A.y(q.aS(),$async$q) +case 2:s=3 +return A.y(q.a.q(),$async$q) +case 3:return A.F(null,r)}}) +return A.G($async$q,r)}, +aS(){var s=0,r=A.H(t.H),q=this,p,o +var $async$aS=A.I(function(a,b){if(a===1)return A.E(b,r) +for(;;)switch(s){case 0:o=q.z +o=o==null?null:o.P() +p=t.H +s=2 +return A.y(o instanceof A.p?o:A.dx(o,p),$async$aS) +case 2:o=q.Q +o=o==null?null:o.P() +s=3 +return A.y(o instanceof A.p?o:A.dx(o,p),$async$aS) +case 3:q.Q=q.z=null +return A.F(null,r)}}) +return A.G($async$aS,r)}} +A.is.prototype={ +$1(a){this.a.cY(-1)}, +$S:4} +A.fA.prototype={ +bm(a){var s=0,r=A.H(t.H),q=this,p +var $async$bm=A.I(function(b,c){if(b===1)return A.E(c,r) +for(;;)switch(s){case 0:p=q.e +if(p.a.l(0,a))p.fu() +p=A.dx(null,t.H) +s=2 +return A.y(p,$async$bm) +case 2:p=q.fx +p===$&&A.r("_histCursor") +p.al() +return A.F(null,r)}}) +return A.G($async$bm,r)}, +bB(a){var s,r=this +r.CW=a +r.dx=A.oJ(a) +s=r.at +if(!s)r.U()}, +dV(a){var s,r=this +if(a===r.db)return +r.db=a +s=r.at +if(!s)r.U()}, +dU(a){var s=this +if(s.at===a)return +s.at=a +s.fy=B.p +s.go="" +B.b.F(s.id) +s.k1=0 +B.b.F(s.cx) +s.cy=0 +if(a)s.bK()}, +hg(){var s=this +if(s.as!=null)return +if(s.at){s.r.$0() +return}s.cT()}, +aH(){this.z=this.a.aY(this.gf2())}, +f3(a){var s,r,q,p=this +t.L.a(a) +s=p.as +if(s!=null){s.$1(a) +return}if(p.at){p.x.$1(a) +return}if(p.ay&&p.ch==null)return +for(r=J.cD(a);r.t();){q=r.gB() +switch(p.fy.a){case 0:if(q===27)p.fy=B.bg +else p.eW(q) +break +case 1:if(q===91||q===79){p.fy=B.bh +p.go=""}else p.fy=B.p +break +case 2:if(q>=64&&q<=126){p.eS(A.av(q),p.go) +p.fy=B.p}else p.go=p.go+A.av(q) +break}}}, +eW(a){var s=this,r=s.id +if(r.length!==0){B.b.l(r,a) +if(r.length>=s.k1){s.cS(B.V.fT(r,!0)) +B.b.F(r) +s.k1=0}return}switch(a){case 13:case 10:s.er() +break +case 127:case 8:s.el() +break +case 3:s.cT() +break +case 4:if(s.cx.length===0)s.w.$0() +break +case 1:s.bY() +break +case 5:s.bX() +break +case 9:s.be() +break +default:if(a<32)return +if(a<128)s.cS(A.av(a)) +else{B.b.F(r) +B.b.l(r,a) +if((a&224)===192)r=2 +else r=(a&240)===224?3:4 +s.k1=r}}}, +eS(a,b){var s,r,q,p=this,o="_histCursor" +switch(a){case"A":s=p.fx +s===$&&A.r(o) +r=p.cx +q=s.hz(B.b.aj(r),B.b.aj(B.b.a0(r,0,p.cy))) +if(q!=null)p.d9(q) +break +case"B":s=p.fx +s===$&&A.r(o) +q=s.h0() +if(q!=null)p.d9(q) +break +case"C":p.f0() +break +case"D":p.f_() +break +case"H":p.bY() +break +case"F":p.bX() +break +case"~":if(b==="1"||b==="7")p.bY() +else if(b==="4"||b==="8")p.bX() +else if(b==="3")p.eE() +break}}, +cS(a){var s=this,r=s.cx,q=s.cy +A.P(r).c.a(a) +r.$flags&1&&A.Q(r,"insert",2) +if(q<0||q>r.length)A.v(A.l4(q,null)) +r.splice(q,0,a);++s.cy +r=s.fx +r===$&&A.r("_histCursor") +r.al() +s.U()}, +el(){var s=this,r=s.cy +if(r===0)return +B.b.cn(s.cx,r-1);--s.cy +r=s.fx +r===$&&A.r("_histCursor") +r.al() +s.U()}, +eE(){var s=this,r=s.cy,q=s.cx +if(r>=q.length)return +B.b.cn(q,r) +r=s.fx +r===$&&A.r("_histCursor") +r.al() +s.U()}, +f_(){var s=this,r=s.cy +if(r===0)return +s.cy=r-1 +if(s.db>0){s.U() +return}s.b.$1("\x1b[D")}, +f0(){var s=this,r=s.cy +if(r>=s.cx.length)return +s.cy=r+1 +if(s.db>0){s.U() +return}s.b.$1("\x1b[C")}, +bY(){var s=this,r=s.cy +if(r===0)return +if(s.db>0){s.cy=0 +s.U() +return}s.b.$1("\x1b["+r+"D") +s.cy=0}, +bX(){var s=this,r=s.cx,q=r.length,p=q-s.cy +if(p===0)return +if(s.db>0){s.cy=q +s.U() +return}s.b.$1("\x1b["+p+"C") +s.cy=r.length}, +be(){var s=0,r=A.H(t.H),q,p=2,o=[],n=[],m=this,l,k,j,i,h,g,f,e,d,c,b +var $async$be=A.I(function(a,a0){if(a===1){o.push(a0) +s=p}for(;;)A:switch(s){case 0:c=m.y +if(c==null||m.ch!=null){s=1 +break}h=m.cy +l=h +g=m.cx +f=g.length +for(;;){e=l +if(typeof e!=="number"){q=e.dO() +s=1 +break A}if(e>0){e=l +if(typeof e!=="number"){q=e.e_() +s=1 +break A}--e +if(e>>>0!==e||e>=f){q=A.c(g,e) +s=1 +break A}e=g[e]!==" "}else e=!1 +if(!e)break +e=l +if(typeof e!=="number"){q=e.e_() +s=1 +break A}l=e-1}k=B.b.aj(B.b.a0(g,l,h)) +j=B.b.h5(B.b.a0(g,0,l),new A.iz()) +g=m.z +if(g!=null)g.cj() +p=4 +s=7 +return A.y(c.$2(k,j),$async$be) +case 7:i=a0 +m.eg(l,k,i) +n.push(6) +s=5 +break +case 4:p=3 +b=o.pop() +n.push(6) +s=5 +break +case 3:n=[2] +case 5:p=2 +g=m.z +if(g!=null)g.bv() +s=n.pop() +break +case 6:case 1:return A.F(q,r) +case 2:return A.E(o.at(-1),r)}}) +return A.G($async$be,r)}, +eg(a,b,c){var s,r,q,p=this +t.df.a(c) +s=J.aB(c) +if(s.gC(c)){p.b.$1("\x07") +return}if(s.gm(c)===1){r=s.gZ(c) +p.da(a,r,!B.a.h4(r,"/")) +return}q=A.oI(c) +if(q.length>b.length)p.da(a,q,!1) +else{p.b.$1("\r\n"+s.ak(c," ")+"\r\n") +p.fr=p.dy=0 +p.U()}}, +da(a,b,c){var s,r,q,p,o,n,m,l,k=this,j=t.I +j=A.c3(new A.aT(b),j.h("b(f.E)").a(A.hL()),j.h("f.E"),t.N) +s=A.a2(j,A.h(j).h("f.E")) +if(c)B.b.l(s," ") +j=k.cx +r=k.cy +A.P(j).h("f<1>").a(s) +j.$flags&1&&A.Q(j,"replaceRange","remove from or add to") +q=j.length +A.aw(a,r,q) +p=r-a +o=s.length +n=a+o +if(p>=o){m=p-o +l=q-m +B.b.aE(j,a,n,s) +if(m!==0){B.b.ab(j,n,l,j,r) +B.b.sm(j,l)}}else{l=q+(o-p) +j.length=l +B.b.ab(j,n,l,j,r) +B.b.aE(j,a,n,s)}k.cy=a+s.length +j=k.fx +j===$&&A.r("_histCursor") +j.al() +k.U()}, +er(){var s,r=this,q=r.cx,p=B.b.aj(q) +r.b.$1("\r\n") +B.b.F(q) +r.fr=r.dy=r.cy=0 +q=r.fx +q===$&&A.r("_histCursor") +q.al() +s=r.ch +if(s!=null){r.ch=null +s.D(p) +return}r.bb(p)}, +cT(){var s,r,q=this +q.b.$1("^C\r\n") +B.b.F(q.cx) +q.fr=q.dy=q.cy=0 +s=q.fx +s===$&&A.r("_histCursor") +s.al() +r=q.ch +if(r!=null){q.ch=null +r.D("") +return}q.r.$0()}, +bb(a){return this.eF(a)}, +eF(a){var s=0,r=A.H(t.H),q=1,p=[],o=[],n=this,m +var $async$bb=A.I(function(b,c){if(b===1){p.push(c) +s=q}for(;;)switch(s){case 0:n.ay=!0 +q=2 +m=n.c.$1(a) +s=5 +return A.y(m instanceof A.p?m:A.dx(m,t.H),$async$bb) +case 5:o.push(4) +s=3 +break +case 2:o=[1] +case 3:q=1 +n.ay=!1 +s=o.pop() +break +case 4:return A.F(null,r) +case 1:return A.E(p.at(-1),r)}}) +return A.G($async$bb,r)}, +d9(a){var s,r=this.cx +B.b.F(r) +s=t.I +s=A.c3(new A.aT(a),s.h("b(f.E)").a(A.hL()),s.h("f.E"),t.N) +s=A.a2(s,A.h(s).h("f.E")) +B.b.aw(r,s) +this.cy=r.length +this.U()}, +hr(a){var s +t.M.a(a) +s=this.at +if(s){a.$0() +return}this.bK() +a.$0() +this.U()}, +U(){var s,r,q,p=this +if(p.ax&&p.ch==null){p.bK() +return}if(p.db>0){p.fw() +return}s=p.cx +r=p.b +r.$1("\r\x1b[K"+p.CW+B.b.aj(s)) +q=s.length-p.cy +if(q>0)r.$1("\x1b["+q+"D")}, +fw(){var s,r,q=this,p=q.db,o=q.dx,n=q.cx,m=n.length,l=q.cy,k=o+m,j=B.c.aI(k+p-1,p),i=B.c.aI(o+q.fr,p),h=q.dy +i=h-(i+1) +i=i>0?"\x1b["+i+"B":"" +for(--h,s=0;s0&&B.c.am(k,p)===0){n+="\n\r";++j}}else{k=o+l +i=j-(B.c.aI(k,p)+1) +if(i>0)n+="\x1b["+i+"A" +r=B.c.am(k,p) +n+=r>0?"\r\x1b["+r+"C":"\r"}q.fr=l +q.dy=j +q.b.$1(n.charCodeAt(0)==0?n:n)}, +bK(){var s,r,q=this,p=q.db +if(p<=0){q.b.$1("\r\x1b[K") +q.fr=q.dy=0 +return}p=B.c.aI(q.dx+q.fr,p) +s=q.dy +p=s-(p+1) +p=p>0?"\x1b["+p+"B":"" +for(--s,r=0;r/dev/null)" "$(git status --porcelain 2>/dev/null | awk \'BEGIN{s=0;m=0;u=0}/^\\?\\?/{u++;next}{if(substr($0,1,1)!=" ")s++;if(substr($0,2,1)!=" ")m++}END{if(s+m+u>0)printf "+%d ~%d ?%d",s,m,u}\')" "$([ "$(id -u 2>/dev/null)" = 0 ] && echo root)"'}, +cl(a){var s=a.gaD() +return"printf '%s%s\\n' '"+s.a+"' '"+s.b+"'"}, +ct(a,b,c){var s=A.lx(a,"'","'\\''") +return"stty echo 2>/dev/null ; "+("eval '"+s+"' ; "+c)+" ; stty -echo 2>/dev/null"}} +A.fQ.prototype={ +gcb(){return"function prompt { '' }; $ErrorActionPreference='Continue'"}, +bp(a){var s=a.gaD() +return"$o=[Console]::Out;$br=(\"$(git rev-parse --abbrev-ref HEAD 2>$null)\").Trim();$st=@(git status --porcelain 2>$null);$s=0;$m=0;$u=0;foreach($l in $st){if($l -match '^\\?\\?'){$u++}else{if($l.Length -ge 1 -and $l[0] -ne ' '){$s++};if($l.Length -ge 2 -and $l[1] -ne ' '){$m++}}};$stat=if($s+$m+$u -gt 0){\"+$s ~$m ?$u\"}else{$null};$pv=if(([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)){'root'}else{$null};"+("$o.Write('"+s.a+"'+'"+s.b+"'+$PWD.Path+[char]9+$br+[char]9+$stat+[char]9+$pv+[char]10);$o.Flush()")}, +cl(a){var s=a.gaD() +return"[Console]::Out.Write('"+s.a+"'+'"+s.b+"'+[char]10);[Console]::Out.Flush()"}, +ct(a,b,c){return a+" ; "+c}} +A.ff.prototype={ +gcb(){return"prompt $G"}, +bp(a){var s=a.gaD() +return'=0&&a<5))return A.c(B.q,a) +s=B.q[a].a +r=s[0] +q=s[1] +p=s[2] +o=s[3] +n=r?"@"+j.a:"" +m=q?j.b:j.c +l=o&&j.d?" "+j.e:"" +s=j.f +k=s==null||!p?"":" git("+s+l+")" +return j.r+n+":"+m+k+j.w+" $ "}, +$S:20} +A.hC.prototype={ +aa(){var s=0,r=A.H(t.y),q +var $async$aa=A.I(function(a,b){if(a===1)return A.E(b,r) +for(;;)switch(s){case 0:q=!1 +s=1 +break +case 1:return A.F(q,r)}}) +return A.G($async$aa,r)}, +q(){var s=0,r=A.H(t.H) +var $async$q=A.I(function(a,b){if(a===1)return A.E(b,r) +for(;;)switch(s){case 0:return A.F(null,r)}}) +return A.G($async$q,r)}, +$im0:1} +A.fT.prototype={ +j(){var s=this.c +s=A.a2(s,A.h(s).c) +B.b.dY(s) +return A.z(["id",this.a.a,"displayName",this.b,"roles",s],t.N,t.z)}} +A.fV.prototype={ +j(){return A.z(["term",this.a,"cols",this.b,"rows",this.c],t.N,t.z)}} +A.ed.prototype={ +ac(){return"ShellFamily."+this.b}} +A.aG.prototype={ +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"sessionId",r.a) +q.i(0,"shortId",r.b) +q.i(0,"nodeId",r.c) +q.i(0,"ownerUserId",r.d) +q.i(0,"mode",r.e.b) +q.i(0,"createdAt",r.f.N().X()) +s=r.r +if(s!=null)q.i(0,"detachedAt",s.N().X()) +s=r.w +if(s!=null)q.i(0,"expiresAt",s.N().X()) +q.i(0,"state",r.x.b) +s=r.y +if(s!=null)q.i(0,"currentCommand",s) +s=r.z +if(s!=null)q.i(0,"currentCwd",s) +return q}} +A.fI.prototype={ +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"shells",r.a) +q.i(0,"features",r.b) +q.i(0,"maxSessions",r.c) +s=r.d +if(s!=null)q.i(0,"directEndpoint",s) +return q}} +A.b6.prototype={ +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"nodeId",r.a.a) +s=r.b +if(s!=null)q.i(0,"uid",s.a) +q.i(0,"displayName",r.c) +q.i(0,"platform",r.d.j()) +q.i(0,"labels",r.e) +q.i(0,"online",r.f) +s=r.r +if(s!=null)q.i(0,"capabilities",s.j()) +return q}} +A.iL.prototype={ +j(){var s=this +return A.z(["os",s.a,"arch",s.b,"agentVersion",s.c,"hostname",s.d],t.N,t.z)}} +A.cb.prototype={ +ac(){return"SessionMode."+this.b}} +A.by.prototype={ +ac(){return"SessionState."+this.b}} +A.aI.prototype={ +j(){var s=this,r=A.o(t.N,t.z) +r.i(0,"tunnelId",s.a) +r.i(0,"nodeId",s.b) +r.i(0,"ownerUserId",s.c) +r.i(0,"targetHost",s.d) +r.i(0,"targetPort",s.e) +r.i(0,"publicHost",s.f) +r.i(0,"publicPort",s.r) +if(s.w)r.i(0,"secure",!0) +r.i(0,"createdAt",s.x.N().X()) +return r}} +A.fJ.prototype={ +M(a,b){if(b==null)return!1 +return b instanceof A.fJ&&b.a===this.a}, +gA(a){return B.a.gA(this.a)}, +k(a){return this.a}} +A.fM.prototype={ +M(a,b){if(b==null)return!1 +return b instanceof A.fM&&b.a===this.a}, +gA(a){return B.a.gA(this.a)}, +k(a){return this.a}} +A.fU.prototype={ +M(a,b){if(b==null)return!1 +return b instanceof A.fU&&b.a===this.a}, +gA(a){return B.a.gA(this.a)}, +k(a){return this.a}} +A.fY.prototype={ +M(a,b){if(b==null)return!1 +return b instanceof A.fY&&b.a===this.a}, +gA(a){return B.a.gA(this.a)}, +k(a){return this.a}} +A.h7.prototype={ +c9(a){var s=0,r=A.H(t.bp),q,p=this +var $async$c9=A.I(function(b,c){if(b===1)return A.E(c,r) +for(;;)switch(s){case 0:q=new A.bk("token",p.a,p.b,null,null) +s=1 +break +case 1:return A.F(q,r)}}) +return A.G($async$c9,r)}, +$ioh:1} +A.eq.prototype={ +e9(a,b){var s=this,r=s.a.r.b +r===$&&A.r("_foreign") +r=r.b +r===$&&A.r("_streamController") +new A.M(r,A.h(r).h("M<1>")).a5(new A.jC(s),!1,s.geR(),new A.jD(s))}, +an(a){var s +if(!this.e)return +s=this.a.gcA() +s.a.l(0,A.h(s).h("bo.T").a(this.b.h1(a)))}, +q(){var s=0,r=A.H(t.H),q,p=this +var $async$q=A.I(function(a,b){if(a===1)return A.E(b,r) +for(;;)switch(s){case 0:if(!p.e){s=1 +break}p.e=!1 +s=3 +return A.y(p.a.gcA().ai(null,null),$async$q) +case 3:p.bT() +case 1:return A.F(q,r)}}) +return A.G($async$q,r)}, +bT(){var s,r=this +if(!r.e&&(r.d.a.a&30)!==0)return +r.e=!1 +s=r.c +if((s.b&4)===0)s.q() +s=r.d +if((s.a.a&30)===0)s.az()}, +$iiI:1} +A.jC.prototype={ +$1(a){var s,r,q +try{s=this.a +r=a==null?A.a3(a):a +s.c.l(0,s.b.fS(r))}catch(q){}}, +$S:2} +A.jD.prototype={ +$1(a){A.a3(a) +return this.a.bT()}, +$S:30} +A.fa.prototype={ +b5(a){if(this.x)return +this.b.$1(new A.an(a))}, +b7(a,b,c){var s,r,q,p,o +t.L.a(b) +if(this.x||J.kS(b))return +s=t.p.b(b)?b:new Uint8Array(A.bC(b)) +for(r=s.length,q=this.r,p=0;p=B.b.gZ(o).b.length))break +s=B.b.cn(o,0) +r=s.b +q=r.length +p.w=p.w-q +m.$1(new A.bT(1,s.a,n,r)) +r=s.c +if(r!=null){q=r.c+=q +r.b.$1(q)}}if(o.length===0)p.cI()}, +cI(){var s,r,q=this.y,p=q.length +if(p===0)return +for(s=0;s")).a5(s.geH(),!1,s.gf8(),new A.i0())) +s.d!==$&&A.bE("_sub") +s.d=r}, +cN(a){var s=null,r=t.p,q=new A.fa(a,this.a.gdS(),A.aU(s,s,!1,r),A.aU(s,s,!1,r),A.aU(s,s,!1,r),A.aU(s,s,!1,t.R),A.w([],t.fe),A.w([],t.ek)) +this.b.i(0,a,q) +return q}, +aT(a){var s=0,r=A.H(t.H),q=this,p +var $async$aT=A.I(function(b,c){if(b===1)return A.E(c,r) +for(;;)switch(s){case 0:p=q.b.S(0,a) +s=p!=null?2:3 +break +case 2:s=4 +return A.y(p.q(),$async$aT) +case 4:case 3:return A.F(null,r)}}) +return A.G($async$aT,r)}, +eI(a){var s,r,q,p,o +t.r.a(a) +s=a.gG() +r=s!=null&&s!==0?this.b.p(0,s):null +if(r!=null){A:{q=a instanceof A.bT +p=q?a:null +if(q){r.h_(p) +break A}q=a instanceof A.an +o=q?a.a:null +if(q){if(o instanceof A.bm){q=o.c +r.w+=q +r.cP()}r.fZ(o)}}return}if(a instanceof A.an&&(this.c.c&4)===0)this.c.l(0,a.a)}, +f9(){var s=this.c +if((s.c&4)===0)s.q()}, +aA(){var s=0,r=A.H(t.H),q,p=this,o,n,m,l +var $async$aA=A.I(function(a,b){if(a===1)return A.E(b,r) +for(;;)switch(s){case 0:if(p.f){s=1 +break}p.f=!0 +o=p.d +o===$&&A.r("_sub") +s=3 +return A.y(o.P(),$async$aA) +case 3:o=p.b +n=A.h(o).h("c1<2>") +m=A.a2(new A.c1(o,n),n.h("f.E")) +o.F(0) +o=m.length,l=0 +case 4:if(!(l>") +s=A.a2(new A.X(s,r.h("d(1)").a(new A.iF()),q),q.h("W.E")) +return A.z(["nodes",s],t.N,t.z)}} +A.iF.prototype={ +$1(a){return t.eX.a(a).j()}, +$S:32} +A.cc.prototype={ +gn(){return"session.open"}, +gG(){return this.a}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"nodeId",r.b) +q.i(0,"mode",r.c.b) +s=r.d +if(s!=null)q.i(0,"command",s) +s=r.e +if(s.length!==0)q.i(0,"args",s) +s=r.f +if(s.gJ(s))q.i(0,"env",s) +s=r.r +if(s!=null)q.i(0,"cwd",s) +s=r.w +if(s!=null)q.i(0,"pty",s.j()) +s=r.x +if(s!=null)q.i(0,"resumeSessionId",s) +s=r.y +if(s!=null)q.i(0,"shellFamily",s.b) +return q}} +A.cd.prototype={ +gn(){return"session.opened"}, +gG(){return this.a}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"sessionId",r.b) +q.i(0,"pty",r.c) +if(r.d)q.i(0,"altScreen",!0) +s=r.e +if(s!=="posix")q.i(0,"shell",s) +return q}} +A.ce.prototype={ +gn(){return"session.rejected"}, +gG(){return this.a}, +j(){return A.z(["reason",this.b,"message",this.c],t.N,t.z)}} +A.dc.prototype={ +gn(){return"node.session.open"}, +gG(){return this.a}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"sessionId",r.b) +q.i(0,"principal",r.c) +q.i(0,"mode",r.d.b) +s=r.e +if(s!=null)q.i(0,"command",s) +s=r.f +if(s.length!==0)q.i(0,"args",s) +s=r.r +if(s.gJ(s))q.i(0,"env",s) +s=r.w +if(s!=null)q.i(0,"cwd",s) +s=r.x +if(s!=null)q.i(0,"pty",s.j()) +s=r.y +if(s!=null)q.i(0,"resumeSessionId",s) +s=r.z +if(s!=null)q.i(0,"shellFamily",s.b) +return q}} +A.dd.prototype={ +gn(){return"node.session.opened"}, +gG(){return this.a}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"sessionId",r.b) +s=r.c +if(s!=null)q.i(0,"pid",s) +if(r.d)q.i(0,"altScreen",!0) +s=r.e +if(s!=="posix")q.i(0,"shell",s) +return q}} +A.de.prototype={ +gn(){return"node.session.rejected"}, +gG(){return this.a}, +j(){return A.z(["sessionId",this.b,"reason",this.c,"message",this.d],t.N,t.z)}} +A.bP.prototype={ +gn(){return"channel.resize"}, +gG(){return this.a}, +j(){return A.z(["cols",this.b,"rows",this.c],t.N,t.z)}} +A.bQ.prototype={ +gn(){return"channel.signal"}, +gG(){return this.a}, +j(){return A.z(["signal",this.b],t.N,t.z)}} +A.cI.prototype={ +gn(){return"channel.eof"}, +gG(){return this.a}, +j(){return A.z(["stream",this.b],t.N,t.z)}} +A.bO.prototype={ +gn(){return"channel.exit"}, +gG(){return this.a}, +j(){var s,r=A.o(t.N,t.z) +r.i(0,"exitCode",this.b) +s=this.c +if(s!=null)r.i(0,"signal",s) +r.i(0,"ts",this.d.N().X()) +return r}} +A.bl.prototype={ +gn(){return"channel.close"}, +gG(){return this.a}, +j(){var s,r=A.o(t.N,t.z) +r.i(0,"reason",this.b) +s=this.c +if(s!=null)r.i(0,"message",s) +return r}} +A.bm.prototype={ +gn(){return"channel.window"}, +gG(){return this.a}, +j(){return A.z(["stream",this.b,"credit",this.c],t.N,t.z)}} +A.di.prototype={ +gn(){return"error"}, +gG(){return this.d}, +j(){return A.z(["code",this.a,"message",this.b,"fatal",this.c],t.N,t.z)}} +A.dk.prototype={ +gn(){return"session.detach.request"}, +gG(){return this.a}, +j(){var s=A.o(t.N,t.z),r=this.b +if(r!=null)s.i(0,"timeoutSeconds",r) +return s}} +A.da.prototype={ +gn(){return"node.session.detach"}, +gG(){return this.a}, +j(){var s,r=A.o(t.N,t.z) +r.i(0,"sessionId",this.b) +r.i(0,"principal",this.c) +s=this.d +if(s!=null)r.i(0,"timeoutSeconds",s) +return r}} +A.db.prototype={ +gn(){return"node.session.detached"}, +gG(){return this.a}, +j(){var s,r=A.o(t.N,t.z) +r.i(0,"sessionId",this.b) +r.i(0,"shortId",this.c) +s=this.d +if(s!=null)r.i(0,"expiresAt",s.N().X()) +return r}} +A.ca.prototype={ +gn(){return"session.detached"}, +gG(){return this.a}, +j(){var s,r=A.o(t.N,t.z) +r.i(0,"sessionId",this.b) +r.i(0,"shortId",this.c) +s=this.d +if(s!=null)r.i(0,"expiresAt",s.N().X()) +return r}} +A.cL.prototype={ +gn(){return"sessions.list.request"}, +j(){return A.z(["requestId",this.a,"nodeId",this.b],t.N,t.z)}} +A.d1.prototype={ +gn(){return"node.sessions.list.request"}, +j(){return A.z(["requestId",this.a,"principal",this.b],t.N,t.z)}} +A.d2.prototype={ +gn(){return"node.sessions.list.response"}, +j(){var s=this.b,r=A.P(s),q=r.h("X<1,d>") +s=A.a2(new A.X(s,r.h("d(1)").a(new A.iD()),q),q.h("W.E")) +return A.z(["requestId",this.a,"sessions",s],t.N,t.z)}} +A.iD.prototype={ +$1(a){return t.U.a(a).j()}, +$S:23} +A.bV.prototype={ +gn(){return"sessions.list.response"}, +j(){var s=this.b,r=A.P(s),q=r.h("X<1,d>") +s=A.a2(new A.X(s,r.h("d(1)").a(new A.ic()),q),q.h("W.E")) +return A.z(["requestId",this.a,"sessions",s],t.N,t.z)}} +A.ic.prototype={ +$1(a){return t.U.a(a).j()}, +$S:23} +A.cK.prototype={ +gn(){return"sessions.kill.request"}, +j(){return A.z(["requestId",this.a,"nodeId",this.b,"sessionRef",this.c],t.N,t.z)}} +A.d_.prototype={ +gn(){return"node.sessions.kill.request"}, +j(){return A.z(["requestId",this.a,"principal",this.b,"sessionRef",this.c],t.N,t.z)}} +A.d0.prototype={ +gn(){return"node.sessions.kill.response"}, +j(){var s,r=A.o(t.N,t.z) +r.i(0,"requestId",this.a) +r.i(0,"ok",this.b) +s=this.c +if(s.length!==0)r.i(0,"message",s) +return r}} +A.bU.prototype={ +gn(){return"sessions.kill.response"}, +j(){var s,r=A.o(t.N,t.z) +r.i(0,"requestId",this.a) +r.i(0,"ok",this.b) +s=this.c +if(s.length!==0)r.i(0,"message",s) +return r}} +A.cE.prototype={ +gn(){return"sessions.detach.request"}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"nodeId",r.b) +s=r.c +if(s.length!==0)q.i(0,"sessionRef",s) +s=r.d +if(s!=null)q.i(0,"timeoutSeconds",s) +return q}} +A.cX.prototype={ +gn(){return"node.sessions.detach.request"}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"principal",r.b) +s=r.c +if(s.length!==0)q.i(0,"sessionRef",s) +s=r.d +if(s!=null)q.i(0,"timeoutSeconds",s) +return q}} +A.cY.prototype={ +gn(){return"node.sessions.detach.response"}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"ok",r.b) +s=r.c +if(s.length!==0)q.i(0,"shortId",s) +s=r.d +if(s.length!==0)q.i(0,"message",s) +return q}} +A.bG.prototype={ +gn(){return"sessions.detach.response"}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"ok",r.b) +s=r.c +if(s.length!==0)q.i(0,"shortId",s) +s=r.d +if(s.length!==0)q.i(0,"message",s) +return q}} +A.dl.prototype={ +gn(){return"sessions.screen.request"}, +j(){return A.z(["requestId",this.a,"nodeId",this.b,"sessionRef",this.c],t.N,t.z)}} +A.df.prototype={ +gn(){return"node.sessions.screen.request"}, +j(){return A.z(["requestId",this.a,"principal",this.b,"sessionRef",this.c],t.N,t.z)}} +A.dg.prototype={ +gn(){return"node.sessions.screen.response"}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"ok",r.b) +s=r.c +if(s.length!==0)q.i(0,"message",s) +s=r.d +if(s.length!==0)q.i(0,"screen",s) +if(r.e)q.i(0,"altScreen",!0) +return q}} +A.cf.prototype={ +gn(){return"sessions.screen.response"}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"ok",r.b) +s=r.c +if(s.length!==0)q.i(0,"message",s) +s=r.d +if(s.length!==0)q.i(0,"screen",s) +if(r.e)q.i(0,"altScreen",!0) +return q}} +A.aR.prototype={ +j(){return A.z(["host",this.a,"description",this.b],t.N,t.z)}} +A.kp.prototype={ +$1(a){var s=t.f.a(a).a2(0,t.N,t.z) +return new A.aR(A.j(s,"host"),A.j(s,"description"))}, +$S:34} +A.cM.prototype={ +gn(){return"drive.credential.request"}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"nodeId",r.b) +q.i(0,"op",r.c) +s=r.d +if(s!=null)q.i(0,"host",s) +s=r.e +if(s!=null)q.i(0,"credential",s) +return q}} +A.d3.prototype={ +gn(){return"node.drive.credential.request"}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"principal",r.b) +q.i(0,"op",r.c) +s=r.d +if(s!=null)q.i(0,"host",s) +s=r.e +if(s!=null)q.i(0,"credential",s) +return q}} +A.d4.prototype={ +gn(){return"node.drive.credential.response"}, +j(){var s,r,q,p=this,o=A.o(t.N,t.z) +o.i(0,"requestId",p.a) +o.i(0,"ok",p.b) +s=p.c +if(s.length!==0)o.i(0,"message",s) +s=p.d +if(s.length!==0){r=A.P(s) +q=r.h("X<1,d>") +s=A.a2(new A.X(s,r.h("d(1)").a(new A.iE()),q),q.h("W.E")) +o.i(0,"entries",s)}return o}} +A.iE.prototype={ +$1(a){return t.o.a(a).j()}, +$S:24} +A.bW.prototype={ +gn(){return"drive.credential.response"}, +j(){var s,r,q,p=this,o=A.o(t.N,t.z) +o.i(0,"requestId",p.a) +o.i(0,"ok",p.b) +s=p.c +if(s.length!==0)o.i(0,"message",s) +s=p.d +if(s.length!==0){r=A.P(s) +q=r.h("X<1,d>") +s=A.a2(new A.X(s,r.h("d(1)").a(new A.id()),q),q.h("W.E")) +o.i(0,"entries",s)}return o}} +A.id.prototype={ +$1(a){return t.o.a(a).j()}, +$S:24} +A.kq.prototype={ +$1(a){var s,r,q,p,o=t.f.a(a).a2(0,t.N,t.z),n=A.j(o,"sessionId"),m=A.j(o,"shortId"),l=A.j(o,"nodeId"),k=A.j(o,"ownerUserId"),j=A.i(o,"mode") +j=A.l6(j==null?"shell":j) +s=A.bZ(o,"createdAt") +r=A.fz(o,"detachedAt") +q=A.fz(o,"expiresAt") +p=A.i(o,"state") +return new A.aG(n,m,l,k,j,s,r,q,A.px(p==null?"detached":p),A.i(o,"currentCommand"),A.i(o,"currentCwd"))}, +$S:36} +A.ds.prototype={ +gn(){return"tunnel.open.request"}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"nodeId",r.b) +q.i(0,"targetHost",r.c) +q.i(0,"targetPort",r.d) +s=r.e +if(s!=null)q.i(0,"publicPort",s) +if(r.f)q.i(0,"secure",!0) +return q}} +A.ck.prototype={ +gn(){return"tunnel.opened"}, +j(){var s=this,r=A.o(t.N,t.z) +r.i(0,"requestId",s.a) +r.i(0,"tunnelId",s.b) +r.i(0,"publicHost",s.c) +r.i(0,"publicPort",s.d) +if(s.e)r.i(0,"secure",!0) +return r}} +A.cl.prototype={ +gn(){return"tunnel.rejected"}, +j(){return A.z(["requestId",this.a,"reason",this.b,"message",this.c],t.N,t.z)}} +A.dq.prototype={ +gn(){return"tunnel.close.request"}, +j(){return A.z(["requestId",this.a,"tunnelRef",this.b],t.N,t.z)}} +A.ci.prototype={ +gn(){return"tunnel.close.response"}, +j(){var s,r=A.o(t.N,t.z) +r.i(0,"requestId",this.a) +r.i(0,"ok",this.b) +s=this.c +if(s.length!==0)r.i(0,"message",s) +return r}} +A.dr.prototype={ +gn(){return"tunnel.list.request"}, +j(){return A.z(["requestId",this.a],t.N,t.z)}} +A.cj.prototype={ +gn(){return"tunnel.list.response"}, +j(){var s=this.b,r=A.P(s),q=r.h("X<1,d>") +s=A.a2(new A.X(s,r.h("d(1)").a(new A.jl()),q),q.h("W.E")) +return A.z(["requestId",this.a,"tunnels",s],t.N,t.z)}} +A.jl.prototype={ +$1(a){return t.x.a(a).j()}, +$S:37} +A.c5.prototype={ +gn(){return"node.tunnel.connect"}, +gG(){return this.a}, +j(){var s=this +return A.z(["tunnelId",s.b,"targetHost",s.c,"targetPort",s.d,"principal",s.e],t.N,t.z)}} +A.c7.prototype={ +gn(){return"node.tunnel.connected"}, +gG(){return this.a}, +j(){return A.z(["tunnelId",this.b],t.N,t.z)}} +A.c6.prototype={ +gn(){return"node.tunnel.connect.failed"}, +gG(){return this.a}, +j(){var s,r=A.o(t.N,t.z) +r.i(0,"tunnelId",this.b) +r.i(0,"reason",this.c) +s=this.d +if(s.length!==0)r.i(0,"message",s) +return r}} +A.kr.prototype={ +$1(a){var s,r,q,p=t.f.a(a).a2(0,t.N,t.z),o=A.j(p,"tunnelId"),n=A.j(p,"nodeId"),m=A.i(p,"ownerUserId") +if(m==null)m="" +s=A.i(p,"targetHost") +if(s==null)s="localhost" +r=A.bs(p,"targetPort") +q=A.i(p,"publicHost") +if(q==null)q="" +return new A.aI(o,n,m,s,r,q,A.bs(p,"publicPort"),A.a1(p,"secure"),A.bZ(p,"createdAt"))}, +$S:38} +A.cF.prototype={ +gn(){return"ai.config.request"}, +j(){return A.z(["requestId",this.a],t.N,t.z)}} +A.bH.prototype={ +gn(){return"ai.config.response"}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"available",r.b) +s=r.c +if(s!=null)q.i(0,"provider",s) +s=r.d +if(s!=null)q.i(0,"model",s) +s=r.e +if(s!=null)q.i(0,"plannerModel",s) +s=r.f +if(s!=null)q.i(0,"executorModel",s) +s=r.r +if(s!=null)q.i(0,"explainerModel",s) +s=r.w +if(s!=null)q.i(0,"baseUrl",s) +s=r.x +if(s!=null)q.i(0,"mode",s) +s=r.y +if(s!=null)q.i(0,"language",s) +return q}} +A.fm.prototype={ +ac(){return"HttpProxyCredentialMode."+this.b}} +A.cN.prototype={ +gn(){return"http.proxy.request"}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"method",r.b) +q.i(0,"url",r.c) +s=r.d +if(s.gJ(s))q.i(0,"headers",s) +q.i(0,"body",r.e) +s=r.f +if(s!==B.z)q.i(0,"credentialMode",s.b) +s=r.r +if(s!=null)q.i(0,"provider",s) +return q}} +A.bq.prototype={ +gn(){return"http.proxy.response"}, +j(){var s,r=this,q=A.o(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"statusCode",r.b) +s=r.c +if(s.gJ(s))q.i(0,"headers",s) +s=r.d +if(s.length!==0)q.i(0,"body",s) +s=r.e +if(s!=null)q.i(0,"error",s) +return q}} +A.dT.prototype={ +ac(){return"DataOpcode."+this.b}} +A.ij.prototype={ +h1(a){var s,r,q,p,o,n,m +A:{if(a instanceof A.an){s=a.a +r=s.gG() +q=A.z(["t",s.gn(),"d",s.j()],t.N,t.z) +if(r!=null)q.i(0,"c",r) +p=B.x.h2(q,null) +break A}if(a instanceof A.bT){o=a.d +p=o.length +if(p>65536)A.v(A.a9("Data payload "+p+" exceeds max 65536","malformed_frame")) +n=10+p +m=new Uint8Array(n) +m[0]=a.a&255 +m[1]=a.b.c&255 +A.lM(m,2,a.c) +A.lM(m,6,p) +B.k.aE(m,10,n,o) +p=m +break A}p=null}return p}, +fS(a){var s,r,q,p,o,n,m,l="malformed_frame" +if(typeof a=="string")return this.fW(a) +s=t.L +if(s.b(a)){s.a(a) +r=t.p.b(a)?a:new Uint8Array(A.bC(a)) +s=r.length +if(s<10)A.v(B.au) +if(0>=s)return A.c(r,0) +q=r[0] +if(1>=s)return A.c(r,1) +p=A.ok(r[1]) +o=A.lL(r,2) +n=A.lL(r,6) +m=s-10 +if(n!==m)A.v(A.a9("Data frame length mismatch: declared "+n+", got "+m,l)) +if(m>65536)A.v(A.a9("Data payload "+m+" exceeds max 65536",l)) +return new A.bT(q,p,o,A.mk(r,10,null))}throw A.e(B.ay)}, +fW(a){var s,r,q,p,o,n,m,l,k,j=null,i=null +try{i=B.x.fU(a,j)}catch(r){q=A.a_(r) +if(q instanceof A.ao){s=q +throw A.e(A.a9("Invalid control JSON: "+s.a,j))}else throw r}q=t.f +if(!q.b(i))throw A.e(B.as) +p=t.N +o=t.z +n=i.a2(0,p,o) +m=n.p(0,"t") +if(typeof m!="string")throw A.e(B.at) +l=this.a.p(0,m) +if(l==null)throw A.e(A.a9("Unknown control message type: "+m,j)) +k=A.hH(n.p(0,"c"))?A.U(n.p(0,"c")):j +return new A.an(l.$2(k,q.b(n.p(0,"d"))?q.a(n.p(0,"d")).a2(0,p,o):A.o(p,o)))}} +A.b7.prototype={} +A.an.prototype={ +gG(){return this.a.gG()}} +A.bT.prototype={ +gG(){return this.c}} +A.fK.prototype={ +k(a){return A.nf(this).k(0)+"("+this.a+"): "+this.b}} +A.aS.prototype={} +A.f6.prototype={} +A.fZ.prototype={} +A.jm.prototype={} +A.ch.prototype={} +A.iy.prototype={ +$2(a,b){return new A.bu(J.b0(a),J.b0(b),t.fK)}, +$S:39} +A.ix.prototype={ +$1(a){return J.b0(a)}, +$S:40} +A.iW.prototype={} +A.dN.prototype={ +ac(){return"AppErrorKind."+this.b}} +A.aD.prototype={ +k(a){return"AppError("+this.a.k(0)+", "+this.b+")"}} +A.fL.prototype={ +aV(a,b,c){var s=0,r=A.H(t.ga),q,p=2,o=[],n=this,m,l,k,j,i,h +var $async$aV=A.I(function(d,e){if(d===1){o.push(e) +s=p}for(;;)switch(s){case 0:i=A.pg(a) +n.e=!1 +k=t.N +m=new A.fc(new A.i1(i,new A.h7(b,c),null,n.geT()),new A.e2(A.cU(A.oN(null),null,!1,t.d1),t.eC),A.o(k,t.gE),A.o(k,t.ds),A.o(k,t.ev),A.o(k,t.b9),A.o(k,t.ef),A.o(k,t.dd),A.o(k,t.ge),A.o(k,t.eB),A.o(k,t.fb),A.o(k,t.bz),A.o(k,t.ak),A.o(t.S,t.eh)) +p=4 +s=7 +return A.y(m.aa(),$async$aV) +case 7:p=2 +s=6 +break +case 4:p=3 +h=o.pop() +l=A.a_(h) +s=8 +return A.y(m.q(),$async$aV) +case 8:k=A.lF(l) +throw A.e(k) +s=6 +break +case 3:s=2 +break +case 6:n.b=m +m.toString +k=m.e +k.toString +q=k +s=1 +break +case 1:return A.F(q,r) +case 2:return A.E(o.at(-1),r)}}) +return A.G($async$aV,r)}, +eU(){this.b=null}, +hq(a,b,c){return this.bc(new A.iJ(this,b,a,c),t.J)}, +bc(a,b){return this.eQ(b.h("V<0>()").a(a),b,b)}, +eQ(a,b,c){var s=0,r=A.H(c),q,p=2,o=[],n,m,l,k +var $async$bc=A.I(function(d,e){if(d===1){o.push(e) +s=p}for(;;)switch(s){case 0:p=4 +s=7 +return A.y(a.$0(),$async$bc) +case 7:m=e +q=m +s=1 +break +p=2 +s=6 +break +case 4:p=3 +k=o.pop() +n=A.a_(k) +m=A.lF(n) +throw A.e(m) +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.F(q,r) +case 2:return A.E(o.at(-1),r)}}) +return A.G($async$bc,r)}} +A.iJ.prototype={ +$0(){var s=this,r=s.a.b +if(r==null)A.v(B.H) +return r.b0(B.D,s.b,new A.fV("xterm-256color",s.c,s.d))}, +$S:41} +A.fg.prototype={ +fu(){var s,r=this.b +if(r==null)return +try{r.hE(this.c,B.b.ak(A.iB(this.a.a,t.N),"\n"))}catch(s){}}, +$iog:1} +A.h4.prototype={ +e7(a,b,c,d,e){var s,r,q=this,p=null,o=q.x +o=q.bd("Ctrl-"+o,new A.jb(q),"Control "+o) +q.w!==$&&A.bE("_lastCtrlButton") +q.w=o +s=q.bd("Ctrl",q.gfI(),"Control combinations") +q.r!==$&&A.bE("_ctrlButton") +q.r=s +A.l(s.classList).add("has-menu") +s.setAttribute("aria-haspopup","menu") +q.a.shn(new A.jc(q)) +r=t.O +r=A.ae("div","Terminal keys",p,A.w([q.au("Esc",B.a6),q.au("Tab",B.af),A.ae("div","Control",p,A.w([o,s],r),"term-ctrl-group",p,p,"group",p),q.aR("\u2191",B.a9,"Up"),q.aR("\u2193",B.aa,"Down"),q.aR("\u2190",B.ac,"Left"),q.aR("\u2192",B.ab,"Right"),q.bl("|"),q.bl("~"),q.bl("/"),q.bl("-"),q.bU("Copy",q.geB()),q.bU("Paste",q.gfs()),q.au("Home",B.ae),q.au("End",B.ad),q.au("PgUp",B.a7),q.au("PgDn",B.a8)],r),"term-accessory",p,p,"toolbar",p) +q.f!==$&&A.bE("element") +q.f=r}, +aR(a,b,c){return this.bd(a,new A.j9(this,t.L.a(b)),c)}, +au(a,b){return this.aR(a,b,null)}, +bl(a){return this.bU(a,new A.ja(this,a))}, +bd(a,b,c){var s=A.hJ(a,c,"mono",new A.j_(this,t.M.a(b)),!1) +A.dL(s,"mousedown",new A.j0()) +return s}, +bU(a,b){return this.bd(a,b,null)}, +eC(a){var s,r=a.length +if(r===0)return null +if(0>=r)return A.c(a,0) +s=a.charCodeAt(0) +if(s>=64&&s<=95)return s&31 +if(s>=97&&s<=122)return s&31 +if(s===32)return 0 +if(s===63)return 127 +return null}, +c4(a){var s,r,q=this,p=q.eC(a) +if(p==null){q.e.$1('"'+a+'" is not a valid Ctrl combination.') +return!1}q.a.aN(t.L.a(A.w([p],t.t))) +s=q.x=B.a.u(a,0,1).toUpperCase() +r=q.w +r===$&&A.r("_lastCtrlButton") +r.textContent="Ctrl-"+s +r.setAttribute("aria-label","Control "+s) +return!0}, +fJ(){if(this.y!=null)this.ap() +else this.fq()}, +fq(){var s,r,q,p,o,n,m,l,k,j,i,h=this,g="div",f=null,e="mousedown",d=t.O,c=A.w([],d) +for(s=0;s<12;++s)c.push(h.eq(B.ag[s])) +r=A.ae(g,f,f,c,"ctrl-menu-grid",f,f,"group",f) +q=A.hO("off","ctrl-custom-char","\xb7","text") +q.maxLength=1 +q.className="ctrl-custom-input mono" +c=new A.j8(h,q) +A.dL(q,"keydown",new A.j1(c)) +p=A.hJ("Send",f,f,c,!1) +A.dL(p,e,new A.j2()) +o=A.ae(g,f,f,A.w([A.ae("span",f,f,B.h,"ctrl-menu-label mono",f,f,f,"Ctrl-"),q,p],d),"ctrl-menu-custom",f,f,f,f) +n=A.hJ("Ctrl + next key","Arm Control for the next key","ctrl-menu-arm",new A.j3(h),!1) +A.dL(n,e,new A.j4()) +m=h.y=A.ae(g,"Control combinations",f,A.w([r,o,A.ae(g,f,f,B.h,"ctrl-menu-sep",f,f,f,f),n],d),"ctrl-menu",f,f,"menu",f) +d=v.G +A.l(A.aM(A.l(d.document).body).appendChild(m)) +c=h.r +c===$&&A.r("_ctrlButton") +l=A.l(c.getBoundingClientRect()) +A.l(m.style).position="fixed" +A.l(m.style).bottom=""+B.f.cp(A.U(A.l(d.window).innerHeight)-A.aY(l.top)+6)+"px" +k=A.aY(A.l(m.getBoundingClientRect()).width) +j=A.aY(l.left) +i=A.U(A.l(d.window).innerWidth)-k-8 +if(j>i)j=i +if(j<8)j=8 +A.l(m.style).left=""+B.f.cp(j)+"px" +h.z=new A.j5(A.dL(A.l(d.document),e,new A.j6(h,m)),A.dL(A.l(d.document),"keydown",new A.j7(h)))}, +eq(a){var s=A.hJ("^"+a,"Control "+a,"mono ctrl-menu-item",new A.iY(this,a),!1) +A.dL(s,"mousedown",new A.iZ()) +return s}, +ap(){var s=this,r=s.z +if(r!=null)r.$0() +s.z=null +r=s.y +if(r!=null)r.remove() +s.y=null}, +ba(){var s=0,r=A.H(t.H),q,p=2,o=[],n=this,m,l,k,j +var $async$ba=A.I(function(a,b){if(a===1){o.push(b) +s=p}for(;;)switch(s){case 0:l=n.b.a +k=A.L(l.getSelection()) +if(J.bi(k)===0){n.e.$1("Select text in the terminal first.") +s=1 +break}p=4 +s=7 +return A.y(n.d.$1(k),$async$ba) +case 7:l.clearSelection() +n.e.$1("Copied to clipboard.") +p=2 +s=6 +break +case 4:p=3 +j=o.pop() +n.e.$1("Copy failed \u2014 clipboard unavailable.") +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.F(q,r) +case 2:return A.E(o.at(-1),r)}}) +return A.G($async$ba,r)}, +bj(){var s=0,r=A.H(t.H),q=1,p=[],o=this,n,m,l +var $async$bj=A.I(function(a,b){if(a===1){p.push(b) +s=q}for(;;)switch(s){case 0:q=3 +s=6 +return A.y(o.c.$0(),$async$bj) +case 6:n=b +if(n!=null&&n.length!==0)o.a.aN(t.L.a(B.i.Y(n))) +q=1 +s=5 +break +case 3:q=2 +l=p.pop() +o.e.$1("Paste blocked \u2014 allow clipboard access.") +s=5 +break +case 2:s=1 +break +case 5:o.b.a.focus() +return A.F(null,r) +case 1:return A.E(p.at(-1),r)}}) +return A.G($async$bj,r)}} +A.jb.prototype={ +$0(){var s=this.a +return s.c4(s.x)}, +$S:0} +A.jc.prototype={ +$1(a){var s=this.a.r +s===$&&A.r("_ctrlButton") +return A.hF(A.l(s.classList).toggle("active",a))}, +$S:16} +A.j9.prototype={ +$0(){return this.a.a.aN(t.L.a(this.b))}, +$S:0} +A.ja.prototype={ +$0(){return this.a.a.aN(t.L.a(B.i.Y(this.b)))}, +$S:0} +A.j_.prototype={ +$0(){this.b.$0() +this.a.b.a.focus()}, +$S:0} +A.j0.prototype={ +$1(a){return A.l(a).preventDefault()}, +$S:1} +A.j8.prototype={ +$0(){var s,r=B.a.a7(A.L(this.b.value)) +if(r.length===0)return +s=this.a +if(s.c4(r)){s.ap() +s.b.a.focus()}}, +$S:0} +A.j1.prototype={ +$1(a){if(A.L(A.l(a).key)==="Enter")this.a.$0()}, +$S:1} +A.j2.prototype={ +$1(a){return A.l(a).preventDefault()}, +$S:1} +A.j3.prototype={ +$0(){var s=this.a,r=s.a,q=!r.CW +r.CW=q +r=r.fx +if(r!=null)r.$1(q) +s.ap() +s.b.a.focus()}, +$S:0} +A.j4.prototype={ +$1(a){return A.l(a).preventDefault()}, +$S:1} +A.j6.prototype={ +$1(a){var s,r=A.aM(A.l(a).target) +if(r!=null)if(!A.hF(this.b.contains(r))){s=this.a.r +s===$&&A.r("_ctrlButton") +s=A.hF(s.contains(r))}else s=!0 +else s=!1 +if(s)return +this.a.ap()}, +$S:1} +A.j7.prototype={ +$1(a){var s +if(A.L(A.l(a).key)==="Escape"){s=this.a +s.ap() +s.b.a.focus()}}, +$S:1} +A.j5.prototype={ +$0(){this.a.$0() +this.b.$0()}, +$S:0} +A.iY.prototype={ +$0(){var s=this.a +s.c4(this.b) +s.ap() +s.b.a.focus()}, +$S:0} +A.iZ.prototype={ +$1(a){return A.l(a).preventDefault()}, +$S:1} +A.bA.prototype={ +ac(){return"TerminalTextSize."+this.b}} +A.h5.prototype={ +fN(){var s,r,q,p=this,o=v.G +A.mi(A.l(o.window),"resize",p.gdP()) +s=A.aM(A.l(o.window).visualViewport) +if(s!=null)A.mi(s,"resize",p.gdQ()) +o=o.ResizeObserver +r=new A.jf(p) +if(typeof r=="function")A.v(A.bj("Attempting to rewrap a JS function.",null)) +q=function(a,b){return function(c,d){return a(b,c,d,arguments.length)}}(A.qK,r) +q[$.kR()]=r +A.l(new o(q)).observe(p.b)}, +aX(){this.eh() +this.fM()}, +fM(){var s,r=this.a,q=13 +switch(this.f.$0()){case B.F:break +case B.aX:q=B.c.bn(B.f.h9(10.4),6,40) +break +case B.aY:break +case B.aZ:q=B.c.bn(B.f.fQ(16.25),6,40) +break +default:q=null}A.l(r.a.options).fontSize=q +s=B.f.bn(q/13,0.7,1.6) +A.l(this.d.style).setProperty("--term-key-scale",B.f.hx(s,3)) +r.aX()}, +bA(){var s=this.w +if(s)return +this.w=!0 +A.U(A.l(v.G.window).requestAnimationFrame(A.cy(new A.ji(this))))}, +dR(){var s,r=this +r.bA() +s=r.y +if(s!=null)s.P() +r.y=A.jj(B.Y,r.gca())}, +eh(){var s,r,q=this,p=A.aM(A.l(v.G.document).documentElement) +p=p==null?null:A.hF(A.l(p.classList).contains("keyboard-open")) +s=p===!0 +if(q.r.$0()||s){A.L(A.l(q.b.style).removeProperty("height")) +return}p=q.b +A.L(A.l(p.style).removeProperty("height")) +r=q.ek() +if(r>0)A.l(p.style).height=""+B.f.cp(r)+"px"}, +ek(){var s,r,q,p=v.G,o=A.aM(A.l(p.window).visualViewport),n=o==null?null:A.aY(o.height) +if(n==null)n=A.U(A.l(p.window).innerHeight) +s=A.l(this.b.getBoundingClientRect()) +r=A.l(this.c.getBoundingClientRect()) +q=A.aY(r.top)-A.aY(s.bottom) +p=A.aY(r.height) +o=q>0?q:0 +return n-A.aY(s.top)-(p+o)}} +A.jg.prototype={ +$0(){return B.F}, +$S:44} +A.jh.prototype={ +$0(){return!1}, +$S:45} +A.jf.prototype={ +$2(a,b){t.c.a(a) +A.l(b) +this.a.bA()}, +$S:46} +A.ji.prototype={ +$1(a){var s +A.aY(a) +s=this.a +s.w=!1 +s.aX()}, +$S:47} +A.jd.prototype={ +$1(a){A.l(a) +return this.a.$0()}, +$S:1} +A.je.prototype={ +$0(){return this.a.removeEventListener(this.b,this.c)}, +$S:0} +A.em.prototype={ +e8(a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b=this,a=null,a0=b.f,a1=b.ax,a2=b.a,a3=a2.gaF(),a4=t.t +a3=new A.fA(new A.M(a0,A.h(a0).h("M<1>")),new A.jv(b),b.gfd(),a1,a,b.geX(),new A.jw(b),b.gfi(),a,A.w([],t.s),a3.a,B.p,A.w([],a4)) +a1=a1.a +a3.fx=new A.im(a1,a1.a.length) +b.e!==$&&A.bE("_editor") +b.e=a3 +a0=b7.r +a0=a0==null?a:a0.a +a4=A.w([],a4) +if(a0==null){a0=a +if(null==null)s=a0 +else s=a0 +if(s==null)s=$.nH().dN() +a0=s.length +if(6>=a0)return A.c(s,6) +a1=s[6] +s.$flags&2&&A.Q(s) +s[6]=a1&15|64 +if(8>=a0)return A.c(s,8) +s[8]=s[8]&63|128 +if(a0<16)A.v(A.md("buffer too small: need 16: length="+a0)) +a1=$.nG() +r=s[0] +if(!(r<256))return A.c(a1,r) +r=a1[r] +q=s[1] +if(!(q<256))return A.c(a1,q) +q=a1[q] +p=s[2] +if(!(p<256))return A.c(a1,p) +p=a1[p] +o=s[3] +if(!(o<256))return A.c(a1,o) +o=a1[o] +n=s[4] +if(!(n<256))return A.c(a1,n) +n=a1[n] +m=s[5] +if(!(m<256))return A.c(a1,m) +m=a1[m] +l=s[6] +if(!(l<256))return A.c(a1,l) +l=a1[l] +k=s[7] +if(!(k<256))return A.c(a1,k) +k=a1[k] +j=s[8] +if(!(j<256))return A.c(a1,j) +j=a1[j] +if(9>=a0)return A.c(s,9) +i=s[9] +if(!(i<256))return A.c(a1,i) +i=a1[i] +if(10>=a0)return A.c(s,10) +h=s[10] +if(!(h<256))return A.c(a1,h) +h=a1[h] +if(11>=a0)return A.c(s,11) +g=s[11] +if(!(g<256))return A.c(a1,g) +g=a1[g] +if(12>=a0)return A.c(s,12) +f=s[12] +if(!(f<256))return A.c(a1,f) +f=a1[f] +if(13>=a0)return A.c(s,13) +e=s[13] +if(!(e<256))return A.c(a1,e) +e=a1[e] +if(14>=a0)return A.c(s,14) +d=s[14] +if(!(d<256))return A.c(a1,d) +d=a1[d] +if(15>=a0)return A.c(s,15) +a0=s[15] +if(!(a0<256))return A.c(a1,a0) +a0=r+q+p+o+"-"+n+m+"-"+l+k+"-"+j+i+"-"+h+g+f+e+d+a1[a0]}a4=new A.i6("__OMNYSHELL_CWD_"+a0+"__",a4) +a0=a4 +a0=new A.fp(b7,a0,A.py(b7.y),!1,new A.jx(b),b.gfg(),new A.jy(b),b.gfa(),!1) +b.d!==$&&A.bE("_controller") +b.d=a0 +a2.ho(new A.jz(b)) +a2.hp(b.gfk()) +c=a2.gaF() +a1=c.a +if(a1>0&&c.b>0)b7.dE(a1,c.b) +a3.aH() +a0.aH()}, +fl(a,b){var s=this,r=s.d +r===$&&A.r("_controller") +r.a.dE(a,b) +r=s.e +r===$&&A.r("_editor") +r.dV(a) +r.bB(s.c3(s.fr)) +r=s.dx +if((r.c&4)===0)r.l(0,null)}, +aN(a){var s,r,q=this +t.L.a(a) +if(q.cx||J.kS(a))return +s=q.ef(a) +if(!q.cy&&!q.ch&&s.length===1&&J.nR(s)===3){q.eV() +return}r=q.f +if((r.b&4)===0)r.l(0,s)}, +eV(){var s=this.e +s===$&&A.r("_editor") +s.hg()}, +eY(){var s=this,r=s.d +r===$&&A.r("_controller") +r.a.cz("SIGINT") +if(!r.at){r=s.e +r===$&&A.r("_editor") +r.bB(s.c3(s.fr))}}, +fj(a){var s,r="_controller" +t.L.a(a) +s=J.aB(a) +if(s.gm(a)===1&&J.bF(s.gZ(a),3)){s=this.d +s===$&&A.r(r) +s.a.cz("SIGINT") +return}s=this.d +s===$&&A.r(r) +s.dT(a)}, +fh(a){var s +this.fr=a +s=this.e +s===$&&A.r("_editor") +s.bB(this.c3(a))}, +c3(a){var s=a.a +if(s==null)s="~" +return A.tE(a.b,s,a.c,this.c,this.b,a.d,this.a.gaF().a)}, +fb(a){if(this.cx)return +this.cx=!0 +this.a.a.write("\r\n\x1b[90m[session ended \u2014 exit "+a+"]\x1b[0m\r\n")}, +bh(a){return this.fe(A.L(a))}, +fe(a){var s=0,r=A.H(t.H),q=this,p +var $async$bh=A.I(function(b,c){if(b===1)return A.E(c,r) +for(;;)switch(s){case 0:s=a.length!==0?2:3 +break +case 2:p=q.e +p===$&&A.r("_editor") +s=4 +return A.y(p.bm(a),$async$bh) +case 4:case 3:p=q.d +p===$&&A.r("_controller") +p.e0(a) +return A.F(null,r)}}) +return A.G($async$bh,r)}, +ef(a){var s,r,q +t.L.a(a) +if(!this.CW)return a +this.eG() +s=J.aB(a) +if(s.gC(a))return a +r=s.gZ(a) +if(!(r>=64&&r<=95))q=r>=97&&r<=122 +else q=!0 +if(q){q=A.w([r&31],t.t) +B.b.aw(q,s.bD(a,1)) +return q}return a}, +eG(){if(!this.CW)return +this.CW=!1 +var s=this.fx +if(s!=null)s.$1(!1)}, +shn(a){this.fx=t.d3.a(a)}, +$ipF:1} +A.jv.prototype={ +$1(a){return this.a.a.a.write(new Uint8Array(A.bC(t.L.a(B.i.Y(a)))))}, +$S:7} +A.jw.prototype={ +$0(){var s=this.a.d +s===$&&A.r("_controller") +s.q() +return null}, +$S:0} +A.jx.prototype={ +$1(a){var s,r +t.L.a(a) +s=this.a +r=s.e +r===$&&A.r("_editor") +return r.hr(new A.ju(s,a))}, +$S:6} +A.ju.prototype={ +$0(){return this.a.a.a.write(new Uint8Array(A.bC(t.L.a(this.b))))}, +$S:0} +A.jy.prototype={ +$1(a){var s=this.a +s.ch=a +s=s.e +s===$&&A.r("_editor") +s.dU(a)}, +$S:16} +A.jz.prototype={ +$1(a){return this.a.aN(B.i.Y(a))}, +$S:7} +A.er.prototype={ +aX(){var s +try{this.b.fit()}catch(s){}}, +ho(a){A.l(this.a.onData(A.cy(new A.jE(t.ec.a(a)))))}, +hp(a){A.l(this.a.onResize(A.cy(new A.jF(t.dA.a(a)))))}, +gaF(){var s=this.a +return new A.eM(A.U(s.cols),A.U(s.rows))}, +$ipG:1} +A.jE.prototype={ +$1(a){return this.a.$1(A.L(a))}, +$S:7} +A.jF.prototype={ +$1(a){A.l(a) +return this.a.$2(A.U(a.cols),A.U(a.rows))}, +$S:1} +A.kB.prototype={ +$2(a,b){return this.a.setAttribute(A.L(a),A.L(b))}, +$S:52} +A.kO.prototype={ +$0(){return this.a.removeEventListener(this.b,this.c)}, +$S:0} +A.h6.prototype={ +bC(a,b){var s=null,r=A.ae("div",s,s,B.h,b.length===0?"toast":"toast "+b,s,s,"status",a) +A.l(this.a.appendChild(r)) +A.jj(B.Z,new A.jk(r))}, +dX(a){return this.bC(a,"")}} +A.jk.prototype={ +$0(){var s=this.a +if(A.aM(s.parentNode)!=null)s.remove()}, +$S:0} +A.kv.prototype={ +$1(a){A.l(a) +return this.a.$0()}, +$S:1} +A.dW.prototype={ +e6(a,b,c,d){var s=this,r=s.$ti,q=r.h("dy<1>").a(new A.dy(a,s,new A.ac(new A.p($.u,t.D),t.h),b,d.h("dy<0>"))) +s.a!==$&&A.bE("_sink") +s.a=q +if(c.a.ghh()){q=c.a +c.a=A.h(q).v(d).h("aV").a(new A.ee(d.h("@<0>").v(d).h("ee<1,2>"))).fO(q)}r=r.h("cg<1>").a(A.aU(null,new A.il(c,s,d),!0,d)) +s.b!==$&&A.bE("_streamController") +s.b=r}, +d_(){var s,r +this.d=!0 +s=this.c +if(s!=null)s.P() +r=this.b +r===$&&A.r("_streamController") +r.q()}} +A.il.prototype={ +$0(){var s,r,q=this.b +if(q.d)return +s=this.a.a +r=q.b +r===$&&A.r("_streamController") +q.c=s.cg(this.c.h("~(0)").a(r.gfL(r)),new A.ik(q),r.gdk())}, +$S:0} +A.ik.prototype={ +$0(){var s=this.a,r=s.a +r===$&&A.r("_sink") +r.d0() +s=s.b +s===$&&A.r("_streamController") +s.q()}, +$S:0} +A.dy.prototype={ +l(a,b){var s,r=this +r.$ti.c.a(b) +if(r.e)throw A.e(A.b8("Cannot add event after closing.")) +if(r.d)return +s=r.a +s.a.l(0,s.$ti.c.a(b))}, +ah(a,b){if(this.e)throw A.e(A.b8("Cannot add event after closing.")) +if(this.d)return +this.ee(a,b)}, +c7(a){return this.ah(a,null)}, +ee(a,b){var s=this +if(s.w){s.a.a.ah(a,b) +return}s.c.aU(a,b) +s.d0() +s.b.d_() +s.a.a.q().dq(new A.k2())}, +q(){var s=this +if(s.e)return s.c.a +s.e=!0 +if(!s.d){s.b.d_() +s.c.D(s.a.a.q())}return s.c.a}, +d0(){this.d=!0 +var s=this.c +if((s.a.a&30)===0)s.az() +return}, +$iay:1} +A.k2.prototype={ +$1(a){}, +$S:4} +A.h2.prototype={} +A.eg.prototype={$il8:1} +A.iN.prototype={ +dN(){var s=this.eO() +if(s.length!==16)throw A.e(A.lQ("The length of the Uint8list returned by the custom RNG must be 16.")) +else return s}} +A.i5.prototype={ +eO(){var s,r,q,p,o=new Uint8Array(16) +for(s=0;s<16;s+=4){r=$.no().hl(B.f.hu(Math.pow(2,32))) +if(!(s<16))return A.c(o,s) +o[s]=r +q=s+1 +p=B.c.a1(r,8) +if(!(q<16))return A.c(o,q) +o[q]=p +p=s+2 +q=B.c.a1(r,16) +if(!(p<16))return A.c(o,p) +o[p]=q +q=s+3 +p=B.c.a1(r,24) +if(!(q<16))return A.c(o,q) +o[q]=p}return o}} +A.kX.prototype={} +A.cq.prototype={ +a5(a,b,c,d){var s=this.$ti +s.h("~(1)?").a(a) +t.Y.a(c) +return A.mt(this.a,this.b,a,!1,s.c)}, +cg(a,b,c){return this.a5(a,null,b,c)}} +A.ey.prototype={ +P(){var s=this,r=A.lR(null,t.H) +if(s.b==null)return r +s.dj() +s.d=s.b=null +return r}, +ci(a){var s,r=this +r.$ti.h("~(1)?").a(a) +if(r.b==null)throw A.e(A.b8("Subscription has been canceled.")) +r.dj() +s=A.n8(new A.jQ(a),t.m) +s=s==null?null:A.cy(s) +r.d=s +r.dh()}, +dh(){var s=this,r=s.d +if(r!=null&&s.a<=0)s.b.addEventListener(s.c,r,!1)}, +dj(){var s=this.d +if(s!=null)this.b.removeEventListener(this.c,s,!1)}, +$iaj:1} +A.jP.prototype={ +$1(a){return this.a.$1(A.l(a))}, +$S:1} +A.jQ.prototype={ +$1(a){return this.a.$1(A.l(a))}, +$S:1} +A.bL.prototype={ +cF(a,b){var s=this.b +if((s.b&4)!==0)return +s.l(0,new A.cJ(a,b)) +s.q()}, +cw(a){var s +if((this.b.b&4)!==0)throw A.e(A.lc()) +s=A.nh(a) +s.toString +this.a.send(s)}, +ai(a,b){var s=0,r=A.H(t.H),q=this,p +var $async$ai=A.I(function(c,d){if(c===1)return A.E(d,r) +for(;;)switch(s){case 0:p=q.b +if((p.b&4)!==0)throw A.e(A.lc()) +p.q() +q.a.close() +return A.F(null,r)}}) +return A.G($async$ai,r)}, +$ijA:1} +A.hW.prototype={ +$1(a){A.l(a) +this.a.D(this.b)}, +$S:8} +A.hX.prototype={ +$1(a){var s +A.l(a) +s=this.a +if((s.a.a&30)===0)s.H(new A.eo("Failed to connect WebSocket")) +else this.b.cF(1006,"error")}, +$S:8} +A.hY.prototype={ +$1(a){var s,r,q=this.a.b +if((q.b&4)!==0)return +s=a.data +s.toString +r=A.mr("data") +if(typeof s==="string")r.b=new A.dp(A.L(s)) +else if(typeof s==="object"&&A.oB(A.l(s),"ArrayBuffer"))r.b=new A.cG(A.m2(t.e9.a(s),0,null)) +else throw A.e(A.b8("unexpected message type: "+J.kT(s).k(0))) +q.l(0,r.d4())}, +$S:1} +A.hZ.prototype={ +$1(a){var s +A.l(a) +s=this.a +if((s.a.a&30)===0)s.D(this.b) +this.b.cF(A.U(a.code),A.L(a.reason))}, +$S:8} +A.bd.prototype={} +A.dp.prototype={ +M(a,b){if(b==null)return!1 +return b instanceof A.dp&&b.a===this.a}, +gA(a){return B.a.gA(this.a)}} +A.cG.prototype={ +M(a,b){var s,r,q,p,o +if(b==null)return!1 +if(b instanceof A.cG&&b.a.length===this.a.length){for(s=this.a,r=s.length,q=b.a,p=q.length,o=0;o")).aY(new A.hQ(r)) +s=r.r.a +s===$&&A.r("_local") +s=s.b +s===$&&A.r("_streamController") +new A.M(s,A.h(s).h("M<1>")).hi(new A.hR(a),new A.hS(r,a)) +A.L(a.a.protocol) +r.f.az()}, +$S:55} +A.hQ.prototype={ +$1(a){var s,r,q,p="_local",o="_sink" +t.E.a(a) +A:{s=a instanceof A.dp +r=s?a.a:null +if(s){s=this.a.r.a +s===$&&A.r(p) +s=s.a +s===$&&A.r(o) +s.l(0,r) +break A}s=a instanceof A.cG +q=s?a.a:null +if(s){s=this.a.r.a +s===$&&A.r(p) +s=s.a +s===$&&A.r(o) +s.l(0,q) +break A}if(a instanceof A.cJ){s=this.a.r.a +s===$&&A.r(p) +s=s.a +s===$&&A.r(o) +s.q()}}}, +$S:56} +A.hR.prototype={ +$1(a){var s,r,q,p,o,n,m +try{A:{s=a +r=null +o=typeof s=="string" +if(o)r=s +if(o){o=this.a +n=A.L(r) +if((o.b.b&4)!==0)A.v(A.lc()) +n=A.nh(n) +n.toString +o.a.send(n) +break A}q=null +o=t.p.b(s) +if(o)q=s +if(o){this.a.cw(q) +break A}p=null +o=t.L.b(s) +if(o)p=s +if(o){this.a.cw(new Uint8Array(A.bC(p))) +break A}o=A.bc("Cannot send "+J.kT(a).k(0)) +throw A.e(o)}}catch(m){if(!(A.a_(m) instanceof A.en))throw m}}, +$S:12} +A.hS.prototype={ +$0(){var s=0,r=A.H(t.H),q=1,p=[],o=this,n,m,l +var $async$$0=A.I(function(a,b){if(a===1){p.push(b) +s=q}for(;;)switch(s){case 0:q=3 +n=o.a +s=6 +return A.y(o.b.ai(n.d,n.e),$async$$0) +case 6:q=1 +s=5 +break +case 3:q=2 +l=p.pop() +if(!(A.a_(l) instanceof A.en))throw l +s=5 +break +case 2:s=1 +break +case 5:return A.F(null,r) +case 1:return A.E(p.at(-1),r)}}) +return A.G($async$$0,r)}, +$S:3} +A.hU.prototype={ +$1(a){var s,r=new A.jB(J.b0(A.a3(a))),q=this.a +q.f.H(r) +q=q.r.a +q===$&&A.r("_local") +s=q.a +s===$&&A.r("_sink") +s.c7(r) +q=q.a +q===$&&A.r("_sink") +q.q()}, +$S:22} +A.hE.prototype={ +ai(a,b){var s=this.b +s.d=a +s.e=b +return this.e1()}, +$ipV:1} +A.jB.prototype={ +k(a){return"WebSocketChannelException: "+this.a}} +A.ie.prototype={ +aH(){var s,r=null,q="text",p=A.hO(r,"hub","hub.example.com",q),o=A.hO(r,"principal","alice",q),n=A.hO(r,"token",r,"password"),m=A.hO(r,"node","worker-01",q),l=this.a +A.hK(l) +s=A.ae("div",r,r,A.w([A.ae("h1",r,r,B.h,r,r,r,r,"Terminal"),A.kC("Hub",p),A.kC("Principal",o),A.kC("Token",n),A.kC("Node",m),A.hJ("Connect",r,r,new A.ig(this,p,o,n,m),!0)],t.O),"card pad-lg",r,r,r,r) +A.hK(l) +A.l(l.appendChild(s))}, +aM(a,b,c,d){return this.ez(a,b,c,d)}, +ez(a,b,c,d){var s=0,r=A.H(t.H),q=1,p=[],o=this,n,m,l,k +var $async$aM=A.I(function(e,f){if(e===1){p.push(f) +s=q}for(;;)switch(s){case 0:q=3 +s=6 +return A.y(o.c.aV(a,c,d),$async$aM) +case 6:s=7 +return A.y(o.bi(b,c),$async$aM) +case 7:q=1 +s=5 +break +case 3:q=2 +k=p.pop() +l=A.a_(k) +if(l instanceof A.aD){n=l +o.b.bC(n.b,"error")}else throw k +s=5 +break +case 2:s=1 +break +case 5:return A.F(null,r) +case 1:return A.E(p.at(-1),r)}}) +return A.G($async$aM,r)}, +bi(a,b){var s=0,r=A.H(t.H),q=this,p,o,n,m,l,k,j,i,h,g,f,e,d,c +var $async$bi=A.I(function(a0,a1){if(a0===1)return A.E(a1,r) +for(;;)switch(s){case 0:l=A.ae("div",null,null,B.h,"terminal-host",null,null,null,null) +k=A.ae("div",null,null,B.h,null,null,null,null,null) +j=t.O +i=A.ae("div",null,null,A.w([A.ae("div",null,null,A.w([l],j),"card terminal-card",null,null,null,null),k],j),"terminal-screen stack",null,null,null,null) +j=q.a +A.hK(j) +A.hK(j) +A.l(j.appendChild(i)) +j=v.G +p=j.Terminal +o={} +o.cursorBlink=!0 +o.fontFamily="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" +o.fontSize=13 +o.scrollback=5000 +n={} +n.background="#0b0e12" +n.foreground="#e6e9ee" +n.cursor="#4f8bff" +o.theme=n +p=A.l(new p(o)) +j=A.l(new j.FitAddon.FitAddon()) +m=new A.er(p,j) +p.loadAddon(j) +p.open(l) +j=m.gca() +A.jj(B.y,j) +A.jj(B.a_,j) +h=A +g=A.tW() +f=A.tX() +e=A +d=a +c=b +s=2 +return A.y(q.c.hq(m.gaF().a,a,m.gaF().b),$async$bi) +case 2:j=h.pD(g,f,e.pT(null,d,c,a1,m),q.b.gdW(),m).f +j===$&&A.r("element") +A.hK(k) +A.l(k.appendChild(j)) +A.pE(k,l,i,m).fN() +p.focus() +return A.F(null,r)}}) +return A.G($async$bi,r)}} +A.ig.prototype={ +$0(){var s=this,r=A.L(s.b.value),q=A.L(s.c.value),p=A.L(s.d.value) +return s.a.aM(r,A.L(s.e.value),q,p)}, +$S:0};(function aliases(){var s=J.bt.prototype +s.e2=s.k +s=A.D.prototype +s.e3=s.ab +s=A.bo.prototype +s.e1=s.q})();(function installTearOffs(){var s=hunkHelpers._static_2,r=hunkHelpers._static_1,q=hunkHelpers._static_0,p=hunkHelpers._instance_0u,o=hunkHelpers._instance_2u,n=hunkHelpers._instance_1i,m=hunkHelpers.installInstanceTearOff,l=hunkHelpers._instance_1u,k=hunkHelpers.installStaticTearOff +s(J,"qZ","lX",57) +r(A,"rr","pY",5) +r(A,"rs","pZ",5) +r(A,"rt","q_",5) +q(A,"nb","rm",0) +r(A,"ru","rc",2) +s(A,"rv","re",11) +q(A,"na","rd",0) +var j +p(j=A.aW.prototype,"gc0","aq",0) +p(j,"gc1","ar",0) +o(A.p.prototype,"gcJ","es",11) +n(j=A.cw.prototype,"gfL","l",12) +m(j,"gdk",0,1,function(){return[null]},["$2","$1"],["ah","c7"],54,0,0) +p(j,"gfR","q",58) +p(j=A.be.prototype,"gc0","aq",0) +p(j,"gc1","ar",0) +p(j=A.ad.prototype,"gc0","aq",0) +p(j,"gc1","ar",0) +p(A.dw.prototype,"gcZ","ff",0) +r(A,"ty","qP",9) +r(A,"hL","pB",20) +l(j=A.fc.prototype,"gen","aK",42) +p(j,"gf7","cX",0) +l(j=A.fp.prototype,"gfo","fp",18) +l(j,"gfm","fn",18) +l(j,"gfc","cY",19) +l(A.fA.prototype,"gf2","f3",6) +l(A.bx.prototype,"gf4","f5",27) +l(j=A.eq.prototype,"gdS","an",21) +p(j,"geR","bT",0) +l(j=A.fb.prototype,"geH","eI",21) +p(j,"gf8","f9",0) +s(A,"rP","ow",59) +s(A,"rC","nZ",60) +s(A,"rB","nY",61) +s(A,"rA","nX",62) +s(A,"t4","p3",63) +s(A,"t5","p4",64) +s(A,"rU","oS",65) +s(A,"t1","p0",66) +s(A,"t0","p_",67) +s(A,"tg","ph",68) +s(A,"th","pi",69) +s(A,"t2","p1",70) +s(A,"t3","p2",71) +s(A,"tl","ps",72) +s(A,"tm","pt",73) +s(A,"tn","pu",74) +s(A,"t8","p7",75) +s(A,"t9","p8",76) +s(A,"ta","p9",77) +s(A,"rG","o7",78) +s(A,"rH","o8",79) +s(A,"rE","o4",80) +s(A,"rF","o5",81) +s(A,"rD","o3",124) +s(A,"rI","o9",83) +s(A,"ti","pm",84) +s(A,"tj","pq",85) +s(A,"t6","p5",86) +s(A,"t7","p6",87) +s(A,"tk","pr",88) +s(A,"rL","oq",89) +s(A,"rX","oW",90) +s(A,"rY","oX",91) +s(A,"rM","or",92) +s(A,"rJ","oo",93) +s(A,"rV","oU",94) +s(A,"rW","oV",95) +s(A,"rK","op",96) +s(A,"rw","nS",97) +s(A,"rT","oR",98) +s(A,"rS","oQ",99) +s(A,"rx","nT",100) +s(A,"to","pv",101) +s(A,"tb","pa",102) +s(A,"tc","pb",103) +s(A,"tp","pw",104) +s(A,"rN","os",105) +s(A,"rZ","oY",106) +s(A,"t_","oZ",107) +s(A,"rO","ot",108) +s(A,"tu","pM",109) +s(A,"tv","pN",110) +s(A,"tw","pO",111) +s(A,"tq","pI",112) +s(A,"tr","pJ",113) +s(A,"ts","pK",114) +s(A,"tt","pL",115) +s(A,"te","pd",116) +s(A,"tf","pe",117) +s(A,"td","pc",118) +s(A,"ry","nV",119) +s(A,"rz","nW",120) +s(A,"rQ","oy",121) +s(A,"rR","oz",122) +p(A.fL.prototype,"geT","eU",0) +q(A,"tW","kx",123) +r(A,"tX","ky",25) +p(j=A.h4.prototype,"gfI","fJ",0) +p(j,"geB","ba",3) +p(j,"gfs","bj",3) +p(j=A.h5.prototype,"gca","aX",0) +p(j,"gdP","bA",0) +p(j,"gdQ","dR",0) +o(j=A.em.prototype,"gfk","fl",48) +p(j,"geX","eY",0) +l(j,"gfi","fj",6) +l(j,"gfg","fh",49) +l(j,"gfa","fb",19) +l(j,"gfd","bh",25) +p(A.er.prototype,"gca","aX",0) +m(A.h6.prototype,"gdW",0,1,null,["$2$kind","$1"],["bC","dX"],53,0,0) +k(A,"tZ",1,null,["$2$headers","$1"],["hM",function(a){return A.hM(a,null)}],82,0)})();(function inheritance(){var s=hunkHelpers.mixin,r=hunkHelpers.inherit,q=hunkHelpers.inheritMany +r(A.n,null) +q(A.n,[A.kZ,J.fq,A.ec,J.bI,A.hj,A.f,A.dQ,A.T,A.bn,A.K,A.iO,A.b5,A.e3,A.ep,A.ag,A.aX,A.dR,A.cs,A.bz,A.jn,A.iH,A.dV,A.eO,A.iA,A.e1,A.N,A.cP,A.dz,A.hg,A.ei,A.hw,A.jN,A.hA,A.aH,A.hn,A.kf,A.hz,A.es,A.af,A.aa,A.ad,A.ev,A.ew,A.aK,A.p,A.hh,A.eh,A.cw,A.hy,A.hi,A.cx,A.bf,A.hl,A.aL,A.dw,A.hu,A.eY,A.eB,A.hq,A.eF,A.D,A.ct,A.bR,A.aQ,A.jK,A.k6,A.kj,A.hD,A.aF,A.au,A.jO,A.fN,A.ef,A.jR,A.ao,A.bu,A.O,A.hx,A.fW,A.ab,A.eW,A.js,A.ht,A.iG,A.k3,A.bo,A.fi,A.h9,A.h8,A.fn,A.fj,A.h_,A.f2,A.i1,A.fc,A.i3,A.im,A.i8,A.i6,A.dn,A.iP,A.fp,A.fA,A.bx,A.dU,A.dm,A.hC,A.fT,A.fV,A.aG,A.fI,A.b6,A.iL,A.aI,A.fJ,A.fM,A.fU,A.fY,A.h7,A.eq,A.fa,A.hr,A.fb,A.k,A.aR,A.ij,A.b7,A.fK,A.iW,A.aD,A.fL,A.fg,A.h4,A.h5,A.em,A.er,A.h6,A.eg,A.dy,A.h2,A.iN,A.kX,A.ey,A.bL,A.bd,A.eo,A.jB,A.ie]) +q(J.fq,[J.fs,J.dY,J.dZ,J.cQ,J.cR,J.cO,J.br]) +q(J.dZ,[J.bt,J.A,A.bv,A.e6]) +q(J.bt,[J.fO,J.cn,J.b3]) +r(J.fr,A.ec) +r(J.iv,J.A) +q(J.cO,[J.dX,J.ft]) +q(A.f,[A.dv,A.q,A.c2,A.co,A.eD,A.hf,A.hv,A.aT]) +r(A.bM,A.dv) +r(A.ex,A.bM) +q(A.T,[A.bN,A.b4,A.ez,A.ho]) +q(A.bn,[A.fe,A.fd,A.h3,A.kG,A.kI,A.jH,A.jG,A.kl,A.k0,A.iU,A.iT,A.kb,A.ia,A.ib,A.kK,A.kP,A.kQ,A.iR,A.i2,A.kt,A.is,A.iz,A.kD,A.jC,A.jD,A.i0,A.iF,A.iD,A.ic,A.kp,A.iE,A.id,A.kq,A.jl,A.kr,A.ix,A.jc,A.j0,A.j1,A.j2,A.j4,A.j6,A.j7,A.iZ,A.ji,A.jd,A.jv,A.jx,A.jy,A.jz,A.jE,A.jF,A.kv,A.k2,A.jP,A.jQ,A.hW,A.hX,A.hY,A.hZ,A.hT,A.hQ,A.hR,A.hU]) +q(A.fe,[A.i_,A.i4,A.iw,A.kH,A.km,A.ku,A.k1,A.iC,A.k7,A.jt,A.iy,A.jf,A.kB]) +q(A.K,[A.c_,A.ba,A.fu,A.hb,A.fX,A.dO,A.hm,A.e_,A.aE,A.ek,A.ha,A.ax,A.fh]) +q(A.fd,[A.kM,A.jI,A.jJ,A.ke,A.jS,A.jX,A.jW,A.jU,A.jT,A.k_,A.jZ,A.jY,A.iV,A.iS,A.kd,A.kc,A.jM,A.jL,A.k8,A.kn,A.ka,A.ks,A.ki,A.kh,A.iQ,A.iJ,A.jb,A.j9,A.ja,A.j_,A.j8,A.j3,A.j5,A.iY,A.jg,A.jh,A.je,A.jw,A.ju,A.kO,A.jk,A.il,A.ik,A.hS,A.ig]) +q(A.q,[A.W,A.c0,A.c1,A.eA]) +q(A.W,[A.ej,A.X,A.e2,A.hp]) +r(A.bX,A.c2) +q(A.aX,[A.cv,A.dA]) +q(A.cv,[A.eL,A.eM]) +r(A.bg,A.dA) +r(A.bS,A.dR) +q(A.bz,[A.dS,A.eN]) +r(A.b1,A.dS) +r(A.e9,A.ba) +q(A.h3,[A.h1,A.cH]) +r(A.hB,A.dO) +r(A.cW,A.bv) +q(A.e6,[A.e4,A.a8]) +q(A.a8,[A.eG,A.eI]) +r(A.eH,A.eG) +r(A.e5,A.eH) +r(A.eJ,A.eI) +r(A.aq,A.eJ) +q(A.e5,[A.fB,A.fC]) +q(A.aq,[A.fD,A.fE,A.fF,A.fG,A.fH,A.e7,A.e8]) +r(A.eR,A.hm) +q(A.aa,[A.dB,A.cq]) +r(A.M,A.dB) +r(A.eu,A.M) +r(A.be,A.ad) +r(A.aW,A.be) +r(A.et,A.ev) +r(A.ac,A.ew) +q(A.cw,[A.du,A.dC]) +q(A.bf,[A.aJ,A.cp]) +r(A.hs,A.eY) +r(A.eC,A.ez) +r(A.eE,A.eN) +q(A.bR,[A.f7,A.fk,A.fv]) +q(A.aQ,[A.f9,A.f8,A.fy,A.fx,A.he,A.el]) +r(A.fw,A.e_) +r(A.k5,A.k6) +r(A.hd,A.fk) +q(A.aE,[A.dj,A.fo]) +r(A.hk,A.eW) +r(A.ee,A.eh) +q(A.jO,[A.eK,A.ed,A.cb,A.by,A.fm,A.dT,A.dN,A.bA]) +q(A.dm,[A.fP,A.fQ,A.ff]) +q(A.k,[A.bp,A.bk,A.bK,A.bJ,A.d8,A.d9,A.cZ,A.d5,A.d6,A.dh,A.c8,A.d7,A.c4,A.cc,A.cd,A.ce,A.dc,A.dd,A.de,A.bP,A.bQ,A.cI,A.bO,A.bl,A.bm,A.di,A.dk,A.da,A.db,A.ca,A.cL,A.d1,A.d2,A.bV,A.cK,A.d_,A.d0,A.bU,A.cE,A.cX,A.cY,A.bG,A.dl,A.df,A.dg,A.cf,A.cM,A.d3,A.d4,A.bW,A.ds,A.ck,A.cl,A.dq,A.ci,A.dr,A.cj,A.c5,A.c7,A.c6,A.cF,A.bH,A.cN,A.bq]) +q(A.b7,[A.an,A.bT]) +q(A.fK,[A.aS,A.f6,A.fZ,A.jm,A.ch]) +q(A.eg,[A.dW,A.f3]) +r(A.i5,A.iN) +q(A.bd,[A.dp,A.cG,A.cJ]) +r(A.en,A.eo) +r(A.hE,A.bo) +s(A.eG,A.D) +s(A.eH,A.ag) +s(A.eI,A.D) +s(A.eJ,A.ag) +s(A.du,A.hi) +s(A.dC,A.hy)})() +var v={G:typeof self!="undefined"?self:globalThis,typeUniverse:{eC:new Map(),tR:{},eT:{},tPV:{},sEA:[]},mangledGlobalNames:{a:"int",x:"double",ak:"num",b:"String",a5:"bool",O:"Null",t:"List",n:"Object",d:"Map",B:"JSObject"},mangledNames:{},types:["~()","~(B)","~(@)","V<~>()","O(@)","~(~())","~(t)","~(b)","O(B)","@(@)","O()","~(n,ai)","~(n?)","~(n?,n?)","@()","a(b?)","~(a5)","a5(b)","~(cm)","~(a)","b(a)","~(b7)","O(n)","d(aG)","d(aR)","V<~>(b)","n?(n?)","~(k)","O(~())","O(@,ai)","~(n)","~(a,@)","d(b6)","0&(b,a?)","aR(d<@,@>)","@(b)","aG(d<@,@>)","d(aI)","aI(d<@,@>)","bu(@,@)","b(@)","V()","V<~>(k)","~(~)","bA()","a5()","O(A,B)","O(x)","~(a,a)","~(dn)","O(n,ai)","@(@,b)","~(b,b)","~(b{kind:b})","~(n[ai?])","O(jA)","~(bd)","a(@,@)","V<@>()","bp(a?,d)","bk(a?,d)","bK(a?,d)","bJ(a?,d)","d8(a?,d)","d9(a?,d)","cZ(a?,d)","d5(a?,d)","d6(a?,d)","dh(a?,d)","c8(a?,d)","d7(a?,d)","c4(a?,d)","cc(a?,d)","cd(a?,d)","ce(a?,d)","dc(a?,d)","dd(a?,d)","de(a?,d)","bP(a?,d)","bQ(a?,d)","cI(a?,d)","bO(a?,d)","V(dt{headers:d?})","bm(a?,d)","di(a?,d)","dk(a?,d)","da(a?,d)","db(a?,d)","ca(a?,d)","cL(a?,d)","d1(a?,d)","d2(a?,d)","bV(a?,d)","cK(a?,d)","d_(a?,d)","d0(a?,d)","bU(a?,d)","cE(a?,d)","cX(a?,d)","cY(a?,d)","bG(a?,d)","dl(a?,d)","df(a?,d)","dg(a?,d)","cf(a?,d)","cM(a?,d)","d3(a?,d)","d4(a?,d)","bW(a?,d)","ds(a?,d)","ck(a?,d)","cl(a?,d)","dq(a?,d)","ci(a?,d)","dr(a?,d)","cj(a?,d)","c5(a?,d)","c7(a?,d)","c6(a?,d)","cF(a?,d)","bH(a?,d)","cN(a?,d)","bq(a?,d)","V()","bl(a?,d)"],interceptorsByTag:null,leafTags:null,arrayRti:Symbol("$ti"),rttc:{"2;":(a,b)=>c=>c instanceof A.eL&&a.b(c.a)&&b.b(c.b),"2;cols,rows":(a,b)=>c=>c instanceof A.eM&&a.b(c.a)&&b.b(c.b),"4;":a=>b=>b instanceof A.bg&&A.tS(a,b.a)}} +A.qn(v.typeUniverse,JSON.parse('{"fO":"bt","cn":"bt","b3":"bt","u6":"bv","A":{"t":["1"],"q":["1"],"B":[],"f":["1"],"a7":["1"]},"fs":{"a5":[],"C":[]},"dY":{"O":[],"C":[]},"dZ":{"B":[]},"bt":{"B":[]},"fr":{"ec":[]},"iv":{"A":["1"],"t":["1"],"q":["1"],"B":[],"f":["1"],"a7":["1"]},"bI":{"S":["1"]},"cO":{"x":[],"ak":[],"al":["ak"]},"dX":{"x":[],"a":[],"ak":[],"al":["ak"],"C":[]},"ft":{"x":[],"ak":[],"al":["ak"],"C":[]},"br":{"b":[],"al":["b"],"iK":[],"a7":["@"],"C":[]},"hj":{"o1":[]},"dv":{"f":["2"]},"dQ":{"S":["2"]},"bM":{"dv":["1","2"],"f":["2"],"f.E":"2"},"ex":{"bM":["1","2"],"dv":["1","2"],"q":["2"],"f":["2"],"f.E":"2"},"bN":{"T":["3","4"],"d":["3","4"],"T.K":"3","T.V":"4"},"c_":{"K":[]},"q":{"f":["1"]},"W":{"q":["1"],"f":["1"]},"ej":{"W":["1"],"q":["1"],"f":["1"],"W.E":"1","f.E":"1"},"b5":{"S":["1"]},"c2":{"f":["2"],"f.E":"2"},"bX":{"c2":["1","2"],"q":["2"],"f":["2"],"f.E":"2"},"e3":{"S":["2"]},"X":{"W":["2"],"q":["2"],"f":["2"],"W.E":"2","f.E":"2"},"co":{"f":["1"],"f.E":"1"},"ep":{"S":["1"]},"eL":{"cv":[],"aX":[]},"eM":{"cv":[],"aX":[]},"bg":{"dA":[],"aX":[]},"dR":{"d":["1","2"]},"bS":{"dR":["1","2"],"d":["1","2"]},"eD":{"f":["1"],"f.E":"1"},"cs":{"S":["1"]},"dS":{"bz":["1"],"h0":["1"],"q":["1"],"f":["1"]},"b1":{"dS":["1"],"bz":["1"],"h0":["1"],"q":["1"],"f":["1"]},"e9":{"ba":[],"K":[]},"fu":{"K":[]},"hb":{"K":[]},"eO":{"ai":[]},"bn":{"bY":[]},"fd":{"bY":[]},"fe":{"bY":[]},"h3":{"bY":[]},"h1":{"bY":[]},"cH":{"bY":[]},"fX":{"K":[]},"hB":{"K":[]},"b4":{"T":["1","2"],"m_":["1","2"],"d":["1","2"],"T.K":"1","T.V":"2"},"c0":{"q":["1"],"f":["1"],"f.E":"1"},"e1":{"S":["1"]},"c1":{"q":["1"],"f":["1"],"f.E":"1"},"N":{"S":["1"]},"cv":{"aX":[]},"dA":{"aX":[]},"cP":{"po":[],"iK":[]},"dz":{"eb":[],"cV":[]},"hf":{"f":["eb"],"f.E":"eb"},"hg":{"S":["eb"]},"ei":{"cV":[]},"hv":{"f":["cV"],"f.E":"cV"},"hw":{"S":["cV"]},"bv":{"B":[],"dP":[],"C":[]},"cW":{"bv":[],"B":[],"dP":[],"C":[]},"e6":{"B":[]},"hA":{"dP":[]},"e4":{"kW":[],"B":[],"C":[]},"a8":{"ap":["1"],"B":[],"a7":["1"]},"e5":{"D":["x"],"a8":["x"],"t":["x"],"ap":["x"],"q":["x"],"B":[],"a7":["x"],"f":["x"],"ag":["x"]},"aq":{"D":["a"],"a8":["a"],"t":["a"],"ap":["a"],"q":["a"],"B":[],"a7":["a"],"f":["a"],"ag":["a"]},"fB":{"ih":[],"D":["x"],"a8":["x"],"t":["x"],"ap":["x"],"q":["x"],"B":[],"a7":["x"],"f":["x"],"ag":["x"],"C":[],"D.E":"x"},"fC":{"ii":[],"D":["x"],"a8":["x"],"t":["x"],"ap":["x"],"q":["x"],"B":[],"a7":["x"],"f":["x"],"ag":["x"],"C":[],"D.E":"x"},"fD":{"aq":[],"ip":[],"D":["a"],"a8":["a"],"t":["a"],"ap":["a"],"q":["a"],"B":[],"a7":["a"],"f":["a"],"ag":["a"],"C":[],"D.E":"a"},"fE":{"aq":[],"iq":[],"D":["a"],"a8":["a"],"t":["a"],"ap":["a"],"q":["a"],"B":[],"a7":["a"],"f":["a"],"ag":["a"],"C":[],"D.E":"a"},"fF":{"aq":[],"ir":[],"D":["a"],"a8":["a"],"t":["a"],"ap":["a"],"q":["a"],"B":[],"a7":["a"],"f":["a"],"ag":["a"],"C":[],"D.E":"a"},"fG":{"aq":[],"jp":[],"D":["a"],"a8":["a"],"t":["a"],"ap":["a"],"q":["a"],"B":[],"a7":["a"],"f":["a"],"ag":["a"],"C":[],"D.E":"a"},"fH":{"aq":[],"jq":[],"D":["a"],"a8":["a"],"t":["a"],"ap":["a"],"q":["a"],"B":[],"a7":["a"],"f":["a"],"ag":["a"],"C":[],"D.E":"a"},"e7":{"aq":[],"jr":[],"D":["a"],"a8":["a"],"t":["a"],"ap":["a"],"q":["a"],"B":[],"a7":["a"],"f":["a"],"ag":["a"],"C":[],"D.E":"a"},"e8":{"aq":[],"cm":[],"D":["a"],"a8":["a"],"t":["a"],"ap":["a"],"q":["a"],"B":[],"a7":["a"],"f":["a"],"ag":["a"],"C":[],"D.E":"a"},"hm":{"K":[]},"eR":{"ba":[],"K":[]},"hz":{"pH":[]},"es":{"a6":["1"]},"af":{"K":[]},"eu":{"M":["1"],"dB":["1"],"aa":["1"],"aa.T":"1"},"aW":{"be":["1"],"ad":["1"],"aj":["1"],"az":["1"],"ad.T":"1"},"ev":{"cg":["1"],"ay":["1"],"eQ":["1"],"az":["1"]},"et":{"ev":["1"],"cg":["1"],"ay":["1"],"eQ":["1"],"az":["1"]},"ew":{"a6":["1"]},"ac":{"ew":["1"],"a6":["1"]},"p":{"V":["1"]},"eh":{"aV":["1","2"]},"cw":{"cg":["1"],"ay":["1"],"eQ":["1"],"az":["1"]},"du":{"hi":["1"],"cw":["1"],"cg":["1"],"ay":["1"],"eQ":["1"],"az":["1"]},"dC":{"hy":["1"],"cw":["1"],"cg":["1"],"ay":["1"],"eQ":["1"],"az":["1"]},"M":{"dB":["1"],"aa":["1"],"aa.T":"1"},"be":{"ad":["1"],"aj":["1"],"az":["1"],"ad.T":"1"},"cx":{"ay":["1"]},"ad":{"aj":["1"],"az":["1"],"ad.T":"1"},"dB":{"aa":["1"]},"aJ":{"bf":["1"]},"cp":{"bf":["@"]},"hl":{"bf":["@"]},"dw":{"aj":["1"]},"eY":{"mo":[]},"hs":{"eY":[],"mo":[]},"ez":{"T":["1","2"],"d":["1","2"]},"eC":{"ez":["1","2"],"T":["1","2"],"d":["1","2"],"T.K":"1","T.V":"2"},"eA":{"q":["1"],"f":["1"],"f.E":"1"},"eB":{"S":["1"]},"eE":{"bz":["1"],"h0":["1"],"q":["1"],"f":["1"]},"eF":{"S":["1"]},"T":{"d":["1","2"]},"e2":{"pn":["1"],"W":["1"],"q":["1"],"f":["1"],"W.E":"1","f.E":"1"},"ct":{"S":["1"]},"bz":{"h0":["1"],"q":["1"],"f":["1"]},"eN":{"bz":["1"],"h0":["1"],"q":["1"],"f":["1"]},"ho":{"T":["b","@"],"d":["b","@"],"T.K":"b","T.V":"@"},"hp":{"W":["b"],"q":["b"],"f":["b"],"W.E":"b","f.E":"b"},"f7":{"bR":["t","b"]},"f9":{"aQ":["t","b"],"aV":["t","b"]},"f8":{"aQ":["b","t"],"aV":["b","t"]},"aQ":{"aV":["1","2"]},"fk":{"bR":["b","t"]},"e_":{"K":[]},"fw":{"K":[]},"fv":{"bR":["n?","b"]},"fy":{"aQ":["n?","b"],"aV":["n?","b"]},"fx":{"aQ":["b","n?"],"aV":["b","n?"]},"hd":{"bR":["b","t"]},"he":{"aQ":["b","t"],"aV":["b","t"]},"el":{"aQ":["t","b"],"aV":["t","b"]},"aF":{"al":["aF"]},"x":{"ak":[],"al":["ak"]},"au":{"al":["au"]},"a":{"ak":[],"al":["ak"]},"t":{"q":["1"],"f":["1"]},"ak":{"al":["ak"]},"eb":{"cV":[]},"b":{"al":["b"],"iK":[]},"dO":{"K":[]},"ba":{"K":[]},"aE":{"K":[]},"dj":{"K":[]},"fo":{"K":[]},"ek":{"K":[]},"ha":{"K":[]},"ax":{"K":[]},"fh":{"K":[]},"fN":{"K":[]},"ef":{"K":[]},"hx":{"ai":[]},"aT":{"f":["a"],"f.E":"a"},"fW":{"S":["a"]},"ab":{"pA":[]},"eW":{"dt":[]},"ht":{"dt":[]},"hk":{"dt":[]},"bo":{"ay":["1"]},"ee":{"aV":["1","2"]},"bx":{"pz":[]},"fP":{"dm":[]},"fQ":{"dm":[]},"ff":{"dm":[]},"hC":{"m0":[]},"h7":{"oh":[]},"eq":{"iI":[]},"bp":{"k":[]},"bk":{"k":[]},"bK":{"k":[]},"bJ":{"k":[]},"d8":{"k":[]},"d9":{"k":[]},"cZ":{"k":[]},"d5":{"k":[]},"d6":{"k":[]},"dh":{"k":[]},"c8":{"k":[]},"d7":{"k":[]},"c4":{"k":[]},"cc":{"k":[]},"cd":{"k":[]},"ce":{"k":[]},"dc":{"k":[]},"dd":{"k":[]},"de":{"k":[]},"bP":{"k":[]},"bQ":{"k":[]},"cI":{"k":[]},"bO":{"k":[]},"bl":{"k":[]},"bm":{"k":[]},"di":{"k":[]},"dk":{"k":[]},"da":{"k":[]},"db":{"k":[]},"ca":{"k":[]},"cL":{"k":[]},"d1":{"k":[]},"d2":{"k":[]},"bV":{"k":[]},"cK":{"k":[]},"d_":{"k":[]},"d0":{"k":[]},"bU":{"k":[]},"cE":{"k":[]},"cX":{"k":[]},"cY":{"k":[]},"bG":{"k":[]},"dl":{"k":[]},"df":{"k":[]},"dg":{"k":[]},"cf":{"k":[]},"cM":{"k":[]},"d3":{"k":[]},"d4":{"k":[]},"bW":{"k":[]},"ds":{"k":[]},"ck":{"k":[]},"cl":{"k":[]},"dq":{"k":[]},"ci":{"k":[]},"dr":{"k":[]},"cj":{"k":[]},"c5":{"k":[]},"c7":{"k":[]},"c6":{"k":[]},"cF":{"k":[]},"bH":{"k":[]},"cN":{"k":[]},"bq":{"k":[]},"an":{"b7":[]},"bT":{"b7":[]},"fg":{"og":[]},"em":{"pF":[]},"er":{"pG":[]},"dW":{"l8":["1"]},"dy":{"ay":["1"]},"eg":{"l8":["1"]},"cq":{"aa":["1"],"aa.T":"1"},"ey":{"aj":["1"]},"bL":{"jA":[]},"dp":{"bd":[]},"cG":{"bd":[]},"cJ":{"bd":[]},"f3":{"pU":[],"l8":["@"]},"hE":{"pV":[],"bo":["@"],"ay":["@"],"bo.T":"@"},"ir":{"t":["a"],"q":["a"],"f":["a"]},"cm":{"t":["a"],"q":["a"],"f":["a"]},"jr":{"t":["a"],"q":["a"],"f":["a"]},"ip":{"t":["a"],"q":["a"],"f":["a"]},"jp":{"t":["a"],"q":["a"],"f":["a"]},"iq":{"t":["a"],"q":["a"],"f":["a"]},"jq":{"t":["a"],"q":["a"],"f":["a"]},"ih":{"t":["x"],"q":["x"],"f":["x"]},"ii":{"t":["x"],"q":["x"],"f":["x"]}}')) +A.qm(v.typeUniverse,JSON.parse('{"a8":1,"eh":2,"bf":1,"eN":1,"eg":1}')) +var u={f:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\u03f6\x00\u0404\u03f4 \u03f4\u03f6\u01f6\u01f6\u03f6\u03fc\u01f4\u03ff\u03ff\u0584\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u05d4\u01f4\x00\u01f4\x00\u0504\u05c4\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0400\x00\u0400\u0200\u03f7\u0200\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0200\u0200\u0200\u03f7\x00",c:"Error handler must accept one Object or one Object and a StackTrace as arguments, and return a value of the returned future's type"} +var t=(function rtii(){var s=A.aZ +return{a7:s("@<~>"),n:s("af"),bp:s("bk"),dK:s("bL"),dI:s("dP"),fd:s("kW"),dE:s("fa"),e8:s("al<@>"),b9:s("a6"),ev:s("a6"),dd:s("a6"),gE:s("a6"),ak:s("a6"),bz:s("a6"),ds:s("a6>"),eB:s("a6>"),ef:s("a6"),fb:s("a6"),Q:s("b1"),R:s("k"),w:s("k(a?,d)"),dy:s("aF"),U:s("aG"),o:s("aR"),fu:s("au"),d:s("q<@>"),C:s("K"),h4:s("ih"),gN:s("ii"),Z:s("bY"),dQ:s("ip"),an:s("iq"),gj:s("ir"),e:s("f<@>"),hb:s("f"),ek:s("A>"),O:s("A"),g1:s("A"),s:s("A"),eS:s("A"),fe:s("A
"),b:s("A<@>"),t:s("A
"),c:s("A"),aP:s("a7<@>"),T:s("dY"),m:s("B"),g:s("b3"),aU:s("ap<@>"),eC:s("e2>>"),df:s("t"),j:s("t<@>"),L:s("t"),eh:s("m0"),fK:s("bu"),P:s("d"),f:s("d<@,@>"),e9:s("cW"),bc:s("aq"),eX:s("b6"),a:s("O"),K:s("n"),dJ:s("iI"),r:s("b7"),ga:s("fT"),gT:s("ua"),bQ:s("+()"),ge:s("+completer,nodeId,targetPort(a6,b,a)"),cz:s("eb"),J:s("bx"),I:s("aT"),l:s("ai"),aG:s("h2"),V:s("cg"),a4:s("aj"),bF:s("aj"),N:s("b"),dm:s("C"),x:s("aI"),A:s("ba"),h7:s("jp"),bv:s("jq"),go:s("jr"),p:s("cm"),bI:s("cn"),B:s("dt"),dN:s("jA"),E:s("bd"),gi:s("ac"),d8:s("ac"),bS:s("ac"),h:s("ac<~>"),G:s("cq"),cX:s("p"),gg:s("p"),_:s("p<@>"),fJ:s("p"),D:s("p<~>"),hg:s("eC"),fv:s("eP"),y:s("a5"),al:s("a5(n)"),i:s("x"),z:s("@"),fO:s("@()"),v:s("@(n)"),W:s("@(n,ai)"),S:s("a"),d1:s("a6>?"),eH:s("V?"),bX:s("B?"),bM:s("t<@>?"),fF:s("d<@,@>?"),X:s("n?"),gO:s("ai?"),dk:s("b?"),aJ:s("bf<@>?"),F:s("aK<@,@>?"),br:s("hq?"),fQ:s("a5?"),cD:s("x?"),h6:s("a?"),cg:s("ak?"),Y:s("~()?"),bY:s("~(B)?"),d3:s("~(a5)?"),q:s("ak"),H:s("~"),M:s("~()"),u:s("~(n)"),k:s("~(n,ai)"),ec:s("~(b)"),cA:s("~(b,@)"),dA:s("~(a,a)")}})();(function constants(){var s=hunkHelpers.makeConstList +B.a1=J.fq.prototype +B.b=J.A.prototype +B.c=J.dX.prototype +B.f=J.cO.prototype +B.a=J.br.prototype +B.a2=J.b3.prototype +B.a3=J.dZ.prototype +B.am=A.e4.prototype +B.k=A.e8.prototype +B.C=J.fO.prototype +B.t=J.cn.prototype +B.G=new A.dN(0,"auth") +B.l=new A.dN(1,"transport") +B.u=new A.dN(5,"unknown") +B.H=new A.aD(B.l,"Not connected to a Hub.") +B.I=new A.aD(B.l,"Enter a Hub address.") +B.bi=new A.f9() +B.J=new A.f7() +B.K=new A.f8() +B.L=new A.ff() +B.v=function getTagFallback(o) { + var s = Object.prototype.toString.call(o); + return s.substring(8, s.length - 1); +} +B.M=function() { + var toStringFunction = Object.prototype.toString; + function getTag(o) { + var s = toStringFunction.call(o); + return s.substring(8, s.length - 1); + } + function getUnknownTag(object, tag) { + if (/^HTML[A-Z].*Element$/.test(tag)) { + var name = toStringFunction.call(object); + if (name == "[object Object]") return null; + return "HTMLElement"; + } + } + function getUnknownTagGenericBrowser(object, tag) { + if (object instanceof HTMLElement) return "HTMLElement"; + return getUnknownTag(object, tag); + } + function prototypeForTag(tag) { + if (typeof window == "undefined") return null; + if (typeof window[tag] == "undefined") return null; + var constructor = window[tag]; + if (typeof constructor != "function") return null; + return constructor.prototype; + } + function discriminator(tag) { return null; } + var isBrowser = typeof HTMLElement == "function"; + return { + getTag: getTag, + getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag, + prototypeForTag: prototypeForTag, + discriminator: discriminator }; +} +B.R=function(getTagFallback) { + return function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("DumpRenderTree") >= 0) return hooks; + if (userAgent.indexOf("Chrome") >= 0) { + function confirm(p) { + return typeof window == "object" && window[p] && window[p].name == p; + } + if (confirm("Window") && confirm("HTMLElement")) return hooks; + } + hooks.getTag = getTagFallback; + }; +} +B.N=function(hooks) { + if (typeof dartExperimentalFixupGetTag != "function") return hooks; + hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag); +} +B.Q=function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("Firefox") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "GeoGeolocation": "Geolocation", + "Location": "!Location", + "WorkerMessageEvent": "MessageEvent", + "XMLDocument": "!Document"}; + function getTagFirefox(o) { + var tag = getTag(o); + return quickMap[tag] || tag; + } + hooks.getTag = getTagFirefox; +} +B.P=function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("Trident/") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "HTMLDDElement": "HTMLElement", + "HTMLDTElement": "HTMLElement", + "HTMLPhraseElement": "HTMLElement", + "Position": "Geoposition" + }; + function getTagIE(o) { + var tag = getTag(o); + var newTag = quickMap[tag]; + if (newTag) return newTag; + if (tag == "Object") { + if (window.DataView && (o instanceof window.DataView)) return "DataView"; + } + return tag; + } + function prototypeForTagIE(tag) { + var constructor = window[tag]; + if (constructor == null) return null; + return constructor.prototype; + } + hooks.getTag = getTagIE; + hooks.prototypeForTag = prototypeForTagIE; +} +B.O=function(hooks) { + var getTag = hooks.getTag; + var prototypeForTag = hooks.prototypeForTag; + function getTagFixed(o) { + var tag = getTag(o); + if (tag == "Document") { + if (!!o.xmlVersion) return "!Document"; + return "!HTMLDocument"; + } + return tag; + } + function prototypeForTagFixed(tag) { + if (tag == "Document") return null; + return prototypeForTag(tag); + } + hooks.getTag = getTagFixed; + hooks.prototypeForTag = prototypeForTagFixed; +} +B.w=function(hooks) { return hooks; } + +B.x=new A.fv() +B.S=new A.fN() +B.T=new A.fP() +B.U=new A.fQ() +B.j=new A.iO() +B.bj=new A.iW() +B.V=new A.hd() +B.i=new A.he() +B.n=new A.hl() +B.d=new A.hs() +B.o=new A.hx() +B.m=new A.dT(1,0,"stdin") +B.W=new A.dT(2,1,"stdout") +B.X=new A.dT(3,2,"stderr") +B.y=new A.au(0) +B.Y=new A.au(2e5) +B.Z=new A.au(4e6) +B.a_=new A.au(8e4) +B.z=new A.fm(0,"none") +B.a0=new A.fm(1,"hubDefault") +B.a4=new A.fx(null) +B.a5=new A.fy(null) +B.a6=s([27],t.t) +B.a7=s([27,91,53,126],t.t) +B.a8=s([27,91,54,126],t.t) +B.a9=s([27,91,65],t.t) +B.aa=s([27,91,66],t.t) +B.ab=s([27,91,67],t.t) +B.ac=s([27,91,68],t.t) +B.ad=s([27,91,70],t.t) +B.ae=s([27,91,72],t.t) +B.af=s([9],t.t) +B.aD=new A.bg([!0,!1,!0,!0]) +B.aC=new A.bg([!0,!1,!0,!1]) +B.az=new A.bg([!1,!1,!0,!1]) +B.aB=new A.bg([!1,!0,!0,!1]) +B.aA=new A.bg([!1,!0,!1,!1]) +B.q=s([B.aD,B.aC,B.az,B.aB,B.aA],A.aZ("A<+(a5,a5,a5,a5)>")) +B.ag=s(["A","B","C","D","F","L","Q","S","N","P","W","Z"],t.s) +B.aj=s([],A.aZ("A")) +B.ai=s([],A.aZ("A")) +B.h=s([],t.O) +B.r=s([],t.s) +B.ah=s([],A.aZ("A")) +B.ak=s([],t.b) +B.B={} +B.A=new A.bS(B.B,[],A.aZ("bS")) +B.al=new A.bS(B.B,[],A.aZ("bS")) +B.as=new A.aS("protocol_error","Control frame must be a JSON object") +B.at=new A.aS("protocol_error","Control frame missing 't'") +B.au=new A.aS("malformed_frame","Data frame shorter than header") +B.av=new A.aS("protocol_error","Node id cannot be empty") +B.aw=new A.aS("protocol_error","Session id cannot be empty") +B.ax=new A.aS("protocol_error","Principal id cannot be empty") +B.ay=new A.aS("protocol_error","Unsupported WebSocket frame type") +B.aE=new A.cb(0,"exec") +B.D=new A.cb(1,"shell") +B.aF=new A.cb(2,"transfer") +B.aG=new A.cb(3,"drive") +B.aH=new A.cb(4,"tunnel") +B.aI=new A.fZ("session_rejected","Session closed before opening") +B.aJ=new A.by(0,"opening") +B.aK=new A.by(1,"open") +B.aL=new A.by(2,"closing") +B.aM=new A.by(3,"closed") +B.aN=new A.by(4,"detached") +B.aO=new A.by(5,"attached") +B.an={sudo:0,env:1,command:2,exec:3,nohup:4,time:5,builtin:6} +B.aP=new A.b1(B.an,7,t.Q) +B.ao={"-u":0,"-g":1,"-p":2,"-h":3,"-C":4,"-D":5,"-R":6,"-T":7,"-U":8,"-r":9,"-t":10} +B.aQ=new A.b1(B.ao,11,t.Q) +B.ar={ls:0,ll:1,la:2,l:3,cat:4,bat:5,echo:6,printf:7,pwd:8,whoami:9,id:10,date:11,uptime:12,df:13,du:14,free:15,ps:16,which:17,type:18,env:19,printenv:20,head:21,tail:22,wc:23,stat:24,file:25,hostname:26,uname:27,clear:28} +B.aR=new A.b1(B.ar,29,t.Q) +B.aq={status:0,log:1,diff:2,show:3,branch:4,remote:5,config:6} +B.aS=new A.b1(B.aq,7,t.Q) +B.ap={"-C":0,"-c":1,"--git-dir":2,"--work-tree":3,"--namespace":4,"--exec-path":5} +B.aT=new A.b1(B.ap,6,t.Q) +B.E=new A.ed(0,"posix") +B.aU=new A.ed(1,"powershell") +B.aV=new A.ed(2,"cmd") +B.aW=new A.dn(null,null,null,null) +B.F=new A.bA(0,"auto") +B.aX=new A.bA(1,"smaller") +B.aY=new A.bA(2,"normal") +B.aZ=new A.bA(3,"larger") +B.b_=new A.ch("transport_error","Client is not connected") +B.b0=new A.ch("transport_error","Disconnected from Hub") +B.e=new A.ch("transport_error","Disconnected") +B.b1=A.aC("dP") +B.b2=A.aC("kW") +B.b3=A.aC("ih") +B.b4=A.aC("ii") +B.b5=A.aC("ip") +B.b6=A.aC("iq") +B.b7=A.aC("ir") +B.b8=A.aC("B") +B.b9=A.aC("n") +B.ba=A.aC("jp") +B.bb=A.aC("jq") +B.bc=A.aC("jr") +B.bd=A.aC("cm") +B.be=new A.el(!1) +B.bf=new A.el(!0) +B.p=new A.eK(0,"normal") +B.bg=new A.eK(1,"esc") +B.bh=new A.eK(2,"csi")})();(function staticFields(){$.k4=null +$.at=A.w([],A.aZ("A")) +$.m4=null +$.lJ=null +$.lI=null +$.ng=null +$.n9=null +$.nk=null +$.kA=null +$.kJ=null +$.lt=null +$.k9=A.w([],A.aZ("A?>")) +$.dE=null +$.eZ=null +$.f_=null +$.lo=!1 +$.u=B.d})();(function lazyInitializers(){var s=hunkHelpers.lazyFinal,r=hunkHelpers.lazy +s($,"u2","nq",()=>A.ne("_$dart_dartClosure")) +s($,"u1","kR",()=>A.ne("_$dart_dartClosure_dartJSInterop")) +s($,"ur","nJ",()=>A.l1(0)) +s($,"uA","nP",()=>B.d.dF(new A.kM(),A.aZ("V<~>"))) +s($,"uw","nN",()=>A.w([new J.fr()],A.aZ("A"))) +s($,"uc","nw",()=>A.bb(A.jo({ +toString:function(){return"$receiver$"}}))) +s($,"ud","nx",()=>A.bb(A.jo({$method$:null, +toString:function(){return"$receiver$"}}))) +s($,"ue","ny",()=>A.bb(A.jo(null))) +s($,"uf","nz",()=>A.bb(function(){var $argumentsExpr$="$arguments$" +try{null.$method$($argumentsExpr$)}catch(q){return q.message}}())) +s($,"ui","nC",()=>A.bb(A.jo(void 0))) +s($,"uj","nD",()=>A.bb(function(){var $argumentsExpr$="$arguments$" +try{(void 0).$method$($argumentsExpr$)}catch(q){return q.message}}())) +s($,"uh","nB",()=>A.bb(A.mj(null))) +s($,"ug","nA",()=>A.bb(function(){try{null.$method$}catch(q){return q.message}}())) +s($,"ul","nF",()=>A.bb(A.mj(void 0))) +s($,"uk","nE",()=>A.bb(function(){try{(void 0).$method$}catch(q){return q.message}}())) +s($,"uo","ly",()=>A.pX()) +s($,"u5","dM",()=>$.nP()) +s($,"uu","nM",()=>A.l1(4096)) +s($,"us","nK",()=>new A.ki().$0()) +s($,"ut","nL",()=>new A.kh().$0()) +s($,"uq","lz",()=>A.oP(A.bC(A.w([-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-2,-2,-2,-2,-2,62,-2,62,-2,63,52,53,54,55,56,57,58,59,60,61,-2,-2,-2,-1,-2,-2,-2,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-2,-2,-2,-2,63,-2,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-2,-2,-2,-2,-2],t.t)))) +s($,"up","nI",()=>A.l1(0)) +s($,"u3","nr",()=>A.bw("^([+-]?\\d{4,6})-?(\\d\\d)-?(\\d\\d)(?:[ T](\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d+))?)?)?( ?[zZ]| ?([-+])(\\d\\d)(?::?(\\d\\d))?)?)?$")) +s($,"uv","hP",()=>A.kN(B.b9)) +s($,"u9","nv",()=>{var q=new A.k3(new DataView(new ArrayBuffer(A.qM(8)))) +q.ea() +return q}) +s($,"ux","nO",()=>A.bw("[|&;<>`]|\\$\\(")) +s($,"u0","np",()=>A.bw("\\x1b\\[[0-?]*[ -/]*[@-~]|\\x1b\\][^\\x07\\x1b]*(?:\\x07|\\x1b\\\\)")) +s($,"u7","nt",()=>A.bw("^[A-Za-z0-9_.-]+$")) +s($,"u8","nu",()=>A.bw("^[A-Za-z0-9_-]+$")) +s($,"u4","ns",()=>A.z(["hello",A.rP(),"auth.request",A.rC(),"auth.ok",A.rB(),"auth.fail",A.rA(),"node.register",A.t4(),"node.registered",A.t5(),"node.capabilities",A.rU(),"node.heartbeat",A.t1(),"node.heartbeat.ack",A.t0(),"ping",A.tg(),"pong",A.th(),"node.list.request",A.t2(),"node.list.response",A.t3(),"session.open",A.tl(),"session.opened",A.tm(),"session.rejected",A.tn(),"node.session.open",A.t8(),"node.session.opened",A.t9(),"node.session.rejected",A.ta(),"channel.resize",A.rG(),"channel.signal",A.rH(),"channel.eof",A.rE(),"channel.exit",A.rF(),"channel.close",A.rD(),"channel.window",A.rI(),"error",A.ti(),"session.detach.request",A.tj(),"node.session.detach",A.t6(),"node.session.detached",A.t7(),"session.detached",A.tk(),"sessions.list.request",A.rL(),"node.sessions.list.request",A.rX(),"node.sessions.list.response",A.rY(),"sessions.list.response",A.rM(),"sessions.kill.request",A.rJ(),"node.sessions.kill.request",A.rV(),"node.sessions.kill.response",A.rW(),"sessions.kill.response",A.rK(),"sessions.detach.request",A.rw(),"node.sessions.detach.request",A.rT(),"node.sessions.detach.response",A.rS(),"sessions.detach.response",A.rx(),"sessions.screen.request",A.to(),"node.sessions.screen.request",A.tb(),"node.sessions.screen.response",A.tc(),"sessions.screen.response",A.tp(),"drive.credential.request",A.rN(),"node.drive.credential.request",A.rZ(),"node.drive.credential.response",A.t_(),"drive.credential.response",A.rO(),"tunnel.open.request",A.tu(),"tunnel.opened",A.tv(),"tunnel.rejected",A.tw(),"tunnel.close.request",A.tq(),"tunnel.close.response",A.tr(),"tunnel.list.request",A.ts(),"tunnel.list.response",A.tt(),"node.tunnel.connect",A.te(),"node.tunnel.connected",A.tf(),"node.tunnel.connect.failed",A.td(),"ai.config.request",A.ry(),"ai.config.response",A.rz(),"http.proxy.request",A.rQ(),"http.proxy.response",A.rR()],t.N,t.w)) +r($,"un","nH",()=>new A.i5()) +s($,"um","nG",()=>{var q,p=J.lU(256,t.N) +for(q=0;q<256;++q)p[q]=B.a.dA(B.c.dH(q,16),2,"0") +return p}) +s($,"u_","no",()=>$.nv())})();(function nativeSupport(){!function(){var s=function(a){var m={} +m[a]=1 +return Object.keys(hunkHelpers.convertToFastObject(m))[0]} +v.getIsolateTag=function(a){return s("___dart_"+a+v.isolateTag)} +var r="___dart_isolate_tags_" +var q=Object[r]||(Object[r]=Object.create(null)) +var p="_ZxYxX" +for(var o=0;;o++){var n=s(p+"_"+o+"_") +if(!(n in q)){q[n]=1 +v.isolateTag=n +break}}v.dispatchPropertyName=v.getIsolateTag("dispatch_record")}() +hunkHelpers.setOrUpdateInterceptorsByTag({SharedArrayBuffer:A.bv,ArrayBuffer:A.cW,ArrayBufferView:A.e6,DataView:A.e4,Float32Array:A.fB,Float64Array:A.fC,Int16Array:A.fD,Int32Array:A.fE,Int8Array:A.fF,Uint16Array:A.fG,Uint32Array:A.fH,Uint8ClampedArray:A.e7,CanvasPixelArray:A.e7,Uint8Array:A.e8}) +hunkHelpers.setOrUpdateLeafTags({SharedArrayBuffer:true,ArrayBuffer:true,ArrayBufferView:false,DataView:true,Float32Array:true,Float64Array:true,Int16Array:true,Int32Array:true,Int8Array:true,Uint16Array:true,Uint32Array:true,Uint8ClampedArray:true,CanvasPixelArray:true,Uint8Array:false}) +A.a8.$nativeSuperclassTag="ArrayBufferView" +A.eG.$nativeSuperclassTag="ArrayBufferView" +A.eH.$nativeSuperclassTag="ArrayBufferView" +A.e5.$nativeSuperclassTag="ArrayBufferView" +A.eI.$nativeSuperclassTag="ArrayBufferView" +A.eJ.$nativeSuperclassTag="ArrayBufferView" +A.aq.$nativeSuperclassTag="ArrayBufferView"})() +Function.prototype.$0=function(){return this()} +Function.prototype.$1=function(a){return this(a)} +Function.prototype.$2=function(a,b){return this(a,b)} +Function.prototype.$3=function(a,b,c){return this(a,b,c)} +Function.prototype.$4=function(a,b,c,d){return this(a,b,c,d)} +Function.prototype.$1$1=function(a){return this(a)} +Function.prototype.$2$0=function(){return this()} +Function.prototype.$2$1=function(a){return this(a)} +Function.prototype.$1$0=function(){return this()} +convertAllToFastObject(w) +convertToFastObject($);(function(a){if(typeof document==="undefined"){a(null) +return}if(typeof document.currentScript!="undefined"){a(document.currentScript) +return}var s=document.scripts +function onLoad(b){for(var q=0;q -1; i -= 1) { + if (ary[i] && func(ary[i], i, ary)) { + break; + } + } + } + } + + function hasProp(obj, prop) { + return hasOwn.call(obj, prop); + } + + function getOwn(obj, prop) { + return hasProp(obj, prop) && obj[prop]; + } + + /** + * Cycles over properties in an object and calls a function for each + * property value. If the function returns a truthy value, then the + * iteration is stopped. + */ + function eachProp(obj, func) { + var prop; + for (prop in obj) { + if (hasProp(obj, prop)) { + if (func(obj[prop], prop)) { + break; + } + } + } + } + + /** + * Simple function to mix in properties from source into target, + * but only if target does not already have a property of the same name. + */ + function mixin(target, source, force, deepStringMixin) { + if (source) { + eachProp(source, function (value, prop) { + if (force || !hasProp(target, prop)) { + if (deepStringMixin && typeof value === 'object' && value && + !isArray(value) && !isFunction(value) && + !(value instanceof RegExp)) { + + if (!target[prop]) { + target[prop] = {}; + } + mixin(target[prop], value, force, deepStringMixin); + } else { + target[prop] = value; + } + } + }); + } + return target; + } + + //Similar to Function.prototype.bind, but the 'this' object is specified + //first, since it is easier to read/figure out what 'this' will be. + function bind(obj, fn) { + return function () { + return fn.apply(obj, arguments); + }; + } + + function scripts() { + return document.getElementsByTagName('script'); + } + + function defaultOnError(err) { + throw err; + } + + //Allow getting a global that is expressed in + //dot notation, like 'a.b.c'. + function getGlobal(value) { + if (!value) { + return value; + } + var g = global; + each(value.split('.'), function (part) { + g = g[part]; + }); + return g; + } + + /** + * Constructs an error with a pointer to an URL with more information. + * @param {String} id the error ID that maps to an ID on a web page. + * @param {String} message human readable error. + * @param {Error} [err] the original error, if there is one. + * + * @returns {Error} + */ + function makeError(id, msg, err, requireModules) { + var e = new Error(msg + '\nhttp://requirejs.org/docs/errors.html#' + id); + e.requireType = id; + e.requireModules = requireModules; + if (err) { + e.originalError = err; + } + return e; + } + + if (typeof define !== 'undefined') { + //If a define is already in play via another AMD loader, + //do not overwrite. + return; + } + + if (typeof requirejs !== 'undefined') { + if (isFunction(requirejs)) { + //Do not overwrite an existing requirejs instance. + return; + } + cfg = requirejs; + requirejs = undefined; + } + + //Allow for a require config object + if (typeof require !== 'undefined' && !isFunction(require)) { + //assume it is a config object. + cfg = require; + require = undefined; + } + + function newContext(contextName) { + var inCheckLoaded, Module, context, handlers, + checkLoadedTimeoutId, + config = { + //Defaults. Do not set a default for map + //config to speed up normalize(), which + //will run faster if there is no default. + waitSeconds: 7, + baseUrl: './', + paths: {}, + bundles: {}, + pkgs: {}, + shim: {}, + config: {} + }, + registry = {}, + //registry of just enabled modules, to speed + //cycle breaking code when lots of modules + //are registered, but not activated. + enabledRegistry = {}, + undefEvents = {}, + defQueue = [], + defined = {}, + urlFetched = {}, + bundlesMap = {}, + requireCounter = 1, + unnormalizedCounter = 1; + + /** + * Trims the . and .. from an array of path segments. + * It will keep a leading path segment if a .. will become + * the first path segment, to help with module name lookups, + * which act like paths, but can be remapped. But the end result, + * all paths that use this function should look normalized. + * NOTE: this method MODIFIES the input array. + * @param {Array} ary the array of path segments. + */ + function trimDots(ary) { + var i, part; + for (i = 0; i < ary.length; i++) { + part = ary[i]; + if (part === '.') { + ary.splice(i, 1); + i -= 1; + } else if (part === '..') { + // If at the start, or previous value is still .., + // keep them so that when converted to a path it may + // still work when converted to a path, even though + // as an ID it is less than ideal. In larger point + // releases, may be better to just kick out an error. + if (i === 0 || (i === 1 && ary[2] === '..') || ary[i - 1] === '..') { + continue; + } else if (i > 0) { + ary.splice(i - 1, 2); + i -= 2; + } + } + } + } + + /** + * Given a relative module name, like ./something, normalize it to + * a real name that can be mapped to a path. + * @param {String} name the relative name + * @param {String} baseName a real name that the name arg is relative + * to. + * @param {Boolean} applyMap apply the map config to the value. Should + * only be done if this normalization is for a dependency ID. + * @returns {String} normalized name + */ + function normalize(name, baseName, applyMap) { + var pkgMain, mapValue, nameParts, i, j, nameSegment, lastIndex, + foundMap, foundI, foundStarMap, starI, normalizedBaseParts, + baseParts = (baseName && baseName.split('/')), + map = config.map, + starMap = map && map['*']; + + //Adjust any relative paths. + if (name) { + name = name.split('/'); + lastIndex = name.length - 1; + + // If wanting node ID compatibility, strip .js from end + // of IDs. Have to do this here, and not in nameToUrl + // because node allows either .js or non .js to map + // to same file. + if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) { + name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, ''); + } + + // Starts with a '.' so need the baseName + if (name[0].charAt(0) === '.' && baseParts) { + //Convert baseName to array, and lop off the last part, + //so that . matches that 'directory' and not name of the baseName's + //module. For instance, baseName of 'one/two/three', maps to + //'one/two/three.js', but we want the directory, 'one/two' for + //this normalization. + normalizedBaseParts = baseParts.slice(0, baseParts.length - 1); + name = normalizedBaseParts.concat(name); + } + + trimDots(name); + name = name.join('/'); + } + + //Apply map config if available. + if (applyMap && map && (baseParts || starMap)) { + nameParts = name.split('/'); + + outerLoop: for (i = nameParts.length; i > 0; i -= 1) { + nameSegment = nameParts.slice(0, i).join('/'); + + if (baseParts) { + //Find the longest baseName segment match in the config. + //So, do joins on the biggest to smallest lengths of baseParts. + for (j = baseParts.length; j > 0; j -= 1) { + mapValue = getOwn(map, baseParts.slice(0, j).join('/')); + + //baseName segment has config, find if it has one for + //this name. + if (mapValue) { + mapValue = getOwn(mapValue, nameSegment); + if (mapValue) { + //Match, update name to the new value. + foundMap = mapValue; + foundI = i; + break outerLoop; + } + } + } + } + + //Check for a star map match, but just hold on to it, + //if there is a shorter segment match later in a matching + //config, then favor over this star map. + if (!foundStarMap && starMap && getOwn(starMap, nameSegment)) { + foundStarMap = getOwn(starMap, nameSegment); + starI = i; + } + } + + if (!foundMap && foundStarMap) { + foundMap = foundStarMap; + foundI = starI; + } + + if (foundMap) { + nameParts.splice(0, foundI, foundMap); + name = nameParts.join('/'); + } + } + + // If the name points to a package's name, use + // the package main instead. + pkgMain = getOwn(config.pkgs, name); + + return pkgMain ? pkgMain : name; + } + + function removeScript(name) { + if (isBrowser) { + each(scripts(), function (scriptNode) { + if (scriptNode.getAttribute('data-requiremodule') === name && + scriptNode.getAttribute('data-requirecontext') === context.contextName) { + scriptNode.parentNode.removeChild(scriptNode); + return true; + } + }); + } + } + + function hasPathFallback(id) { + var pathConfig = getOwn(config.paths, id); + if (pathConfig && isArray(pathConfig) && pathConfig.length > 1) { + //Pop off the first array value, since it failed, and + //retry + pathConfig.shift(); + context.require.undef(id); + + //Custom require that does not do map translation, since + //ID is "absolute", already mapped/resolved. + context.makeRequire(null, { + skipMap: true + })([id]); + + return true; + } + } + + //Turns a plugin!resource to [plugin, resource] + //with the plugin being undefined if the name + //did not have a plugin prefix. + function splitPrefix(name) { + var prefix, + index = name ? name.indexOf('!') : -1; + if (index > -1) { + prefix = name.substring(0, index); + name = name.substring(index + 1, name.length); + } + return [prefix, name]; + } + + /** + * Creates a module mapping that includes plugin prefix, module + * name, and path. If parentModuleMap is provided it will + * also normalize the name via require.normalize() + * + * @param {String} name the module name + * @param {String} [parentModuleMap] parent module map + * for the module name, used to resolve relative names. + * @param {Boolean} isNormalized: is the ID already normalized. + * This is true if this call is done for a define() module ID. + * @param {Boolean} applyMap: apply the map config to the ID. + * Should only be true if this map is for a dependency. + * + * @returns {Object} + */ + function makeModuleMap(name, parentModuleMap, isNormalized, applyMap) { + var url, pluginModule, suffix, nameParts, + prefix = null, + parentName = parentModuleMap ? parentModuleMap.name : null, + originalName = name, + isDefine = true, + normalizedName = ''; + + //If no name, then it means it is a require call, generate an + //internal name. + if (!name) { + isDefine = false; + name = '_@r' + (requireCounter += 1); + } + + nameParts = splitPrefix(name); + prefix = nameParts[0]; + name = nameParts[1]; + + if (prefix) { + prefix = normalize(prefix, parentName, applyMap); + pluginModule = getOwn(defined, prefix); + } + + //Account for relative paths if there is a base name. + if (name) { + if (prefix) { + if (isNormalized) { + normalizedName = name; + } else if (pluginModule && pluginModule.normalize) { + //Plugin is loaded, use its normalize method. + normalizedName = pluginModule.normalize(name, function (name) { + return normalize(name, parentName, applyMap); + }); + } else { + // If nested plugin references, then do not try to + // normalize, as it will not normalize correctly. This + // places a restriction on resourceIds, and the longer + // term solution is not to normalize until plugins are + // loaded and all normalizations to allow for async + // loading of a loader plugin. But for now, fixes the + // common uses. Details in #1131 + normalizedName = name.indexOf('!') === -1 ? + normalize(name, parentName, applyMap) : + name; + } + } else { + //A regular module. + normalizedName = normalize(name, parentName, applyMap); + + //Normalized name may be a plugin ID due to map config + //application in normalize. The map config values must + //already be normalized, so do not need to redo that part. + nameParts = splitPrefix(normalizedName); + prefix = nameParts[0]; + normalizedName = nameParts[1]; + isNormalized = true; + + url = context.nameToUrl(normalizedName); + } + } + + //If the id is a plugin id that cannot be determined if it needs + //normalization, stamp it with a unique ID so two matching relative + //ids that may conflict can be separate. + suffix = prefix && !pluginModule && !isNormalized ? + '_unnormalized' + (unnormalizedCounter += 1) : + ''; + + return { + prefix: prefix, + name: normalizedName, + parentMap: parentModuleMap, + unnormalized: !!suffix, + url: url, + originalName: originalName, + isDefine: isDefine, + id: (prefix ? + prefix + '!' + normalizedName : + normalizedName) + suffix + }; + } + + function getModule(depMap) { + var id = depMap.id, + mod = getOwn(registry, id); + + if (!mod) { + mod = registry[id] = new context.Module(depMap); + } + + return mod; + } + + function on(depMap, name, fn) { + var id = depMap.id, + mod = getOwn(registry, id); + + if (hasProp(defined, id) && + (!mod || mod.defineEmitComplete)) { + if (name === 'defined') { + fn(defined[id]); + } + } else { + mod = getModule(depMap); + if (mod.error && name === 'error') { + fn(mod.error); + } else { + mod.on(name, fn); + } + } + } + + function onError(err, errback) { + var ids = err.requireModules, + notified = false; + + if (errback) { + errback(err); + } else { + each(ids, function (id) { + var mod = getOwn(registry, id); + if (mod) { + //Set error on module, so it skips timeout checks. + mod.error = err; + if (mod.events.error) { + notified = true; + mod.emit('error', err); + } + } + }); + + if (!notified) { + req.onError(err); + } + } + } + + /** + * Internal method to transfer globalQueue items to this context's + * defQueue. + */ + function takeGlobalQueue() { + //Push all the globalDefQueue items into the context's defQueue + if (globalDefQueue.length) { + each(globalDefQueue, function(queueItem) { + var id = queueItem[0]; + if (typeof id === 'string') { + context.defQueueMap[id] = true; + } + defQueue.push(queueItem); + }); + globalDefQueue = []; + } + } + + handlers = { + 'require': function (mod) { + if (mod.require) { + return mod.require; + } else { + return (mod.require = context.makeRequire(mod.map)); + } + }, + 'exports': function (mod) { + mod.usingExports = true; + if (mod.map.isDefine) { + if (mod.exports) { + return (defined[mod.map.id] = mod.exports); + } else { + return (mod.exports = defined[mod.map.id] = {}); + } + } + }, + 'module': function (mod) { + if (mod.module) { + return mod.module; + } else { + return (mod.module = { + id: mod.map.id, + uri: mod.map.url, + config: function () { + return getOwn(config.config, mod.map.id) || {}; + }, + exports: mod.exports || (mod.exports = {}) + }); + } + } + }; + + function cleanRegistry(id) { + //Clean up machinery used for waiting modules. + delete registry[id]; + delete enabledRegistry[id]; + } + + function breakCycle(mod, traced, processed) { + var id = mod.map.id; + + if (mod.error) { + mod.emit('error', mod.error); + } else { + traced[id] = true; + each(mod.depMaps, function (depMap, i) { + var depId = depMap.id, + dep = getOwn(registry, depId); + + //Only force things that have not completed + //being defined, so still in the registry, + //and only if it has not been matched up + //in the module already. + if (dep && !mod.depMatched[i] && !processed[depId]) { + if (getOwn(traced, depId)) { + mod.defineDep(i, defined[depId]); + mod.check(); //pass false? + } else { + breakCycle(dep, traced, processed); + } + } + }); + processed[id] = true; + } + } + + function checkLoaded() { + var err, usingPathFallback, + waitInterval = config.waitSeconds * 1000, + //It is possible to disable the wait interval by using waitSeconds of 0. + expired = waitInterval && (context.startTime + waitInterval) < new Date().getTime(), + noLoads = [], + reqCalls = [], + stillLoading = false, + needCycleCheck = true; + + //Do not bother if this call was a result of a cycle break. + if (inCheckLoaded) { + return; + } + + inCheckLoaded = true; + + //Figure out the state of all the modules. + eachProp(enabledRegistry, function (mod) { + var map = mod.map, + modId = map.id; + + //Skip things that are not enabled or in error state. + if (!mod.enabled) { + return; + } + + if (!map.isDefine) { + reqCalls.push(mod); + } + + if (!mod.error) { + //If the module should be executed, and it has not + //been inited and time is up, remember it. + if (!mod.inited && expired) { + if (hasPathFallback(modId)) { + usingPathFallback = true; + stillLoading = true; + } else { + noLoads.push(modId); + removeScript(modId); + } + } else if (!mod.inited && mod.fetched && map.isDefine) { + stillLoading = true; + if (!map.prefix) { + //No reason to keep looking for unfinished + //loading. If the only stillLoading is a + //plugin resource though, keep going, + //because it may be that a plugin resource + //is waiting on a non-plugin cycle. + return (needCycleCheck = false); + } + } + } + }); + + if (expired && noLoads.length) { + //If wait time expired, throw error of unloaded modules. + err = makeError('timeout', 'Load timeout for modules: ' + noLoads, null, noLoads); + err.contextName = context.contextName; + return onError(err); + } + + //Not expired, check for a cycle. + if (needCycleCheck) { + each(reqCalls, function (mod) { + breakCycle(mod, {}, {}); + }); + } + + //If still waiting on loads, and the waiting load is something + //other than a plugin resource, or there are still outstanding + //scripts, then just try back later. + if ((!expired || usingPathFallback) && stillLoading) { + //Something is still waiting to load. Wait for it, but only + //if a timeout is not already in effect. + if ((isBrowser || isWebWorker) && !checkLoadedTimeoutId) { + checkLoadedTimeoutId = setTimeout(function () { + checkLoadedTimeoutId = 0; + checkLoaded(); + }, 50); + } + } + + inCheckLoaded = false; + } + + Module = function (map) { + this.events = getOwn(undefEvents, map.id) || {}; + this.map = map; + this.shim = getOwn(config.shim, map.id); + this.depExports = []; + this.depMaps = []; + this.depMatched = []; + this.pluginMaps = {}; + this.depCount = 0; + + /* this.exports this.factory + this.depMaps = [], + this.enabled, this.fetched + */ + }; + + Module.prototype = { + init: function (depMaps, factory, errback, options) { + options = options || {}; + + //Do not do more inits if already done. Can happen if there + //are multiple define calls for the same module. That is not + //a normal, common case, but it is also not unexpected. + if (this.inited) { + return; + } + + this.factory = factory; + + if (errback) { + //Register for errors on this module. + this.on('error', errback); + } else if (this.events.error) { + //If no errback already, but there are error listeners + //on this module, set up an errback to pass to the deps. + errback = bind(this, function (err) { + this.emit('error', err); + }); + } + + //Do a copy of the dependency array, so that + //source inputs are not modified. For example + //"shim" deps are passed in here directly, and + //doing a direct modification of the depMaps array + //would affect that config. + this.depMaps = depMaps && depMaps.slice(0); + + this.errback = errback; + + //Indicate this module has be initialized + this.inited = true; + + this.ignore = options.ignore; + + //Could have option to init this module in enabled mode, + //or could have been previously marked as enabled. However, + //the dependencies are not known until init is called. So + //if enabled previously, now trigger dependencies as enabled. + if (options.enabled || this.enabled) { + //Enable this module and dependencies. + //Will call this.check() + this.enable(); + } else { + this.check(); + } + }, + + defineDep: function (i, depExports) { + //Because of cycles, defined callback for a given + //export can be called more than once. + if (!this.depMatched[i]) { + this.depMatched[i] = true; + this.depCount -= 1; + this.depExports[i] = depExports; + } + }, + + fetch: function () { + if (this.fetched) { + return; + } + this.fetched = true; + + context.startTime = (new Date()).getTime(); + + var map = this.map; + + //If the manager is for a plugin managed resource, + //ask the plugin to load it now. + if (this.shim) { + context.makeRequire(this.map, { + enableBuildCallback: true + })(this.shim.deps || [], bind(this, function () { + return map.prefix ? this.callPlugin() : this.load(); + })); + } else { + //Regular dependency. + return map.prefix ? this.callPlugin() : this.load(); + } + }, + + load: function () { + var url = this.map.url; + + //Regular dependency. + if (!urlFetched[url]) { + urlFetched[url] = true; + context.load(this.map.id, url); + } + }, + + /** + * Checks if the module is ready to define itself, and if so, + * define it. + */ + check: function () { + if (!this.enabled || this.enabling) { + return; + } + + var err, cjsModule, + id = this.map.id, + depExports = this.depExports, + exports = this.exports, + factory = this.factory; + + if (!this.inited) { + // Only fetch if not already in the defQueue. + if (!hasProp(context.defQueueMap, id)) { + this.fetch(); + } + } else if (this.error) { + this.emit('error', this.error); + } else if (!this.defining) { + //The factory could trigger another require call + //that would result in checking this module to + //define itself again. If already in the process + //of doing that, skip this work. + this.defining = true; + + if (this.depCount < 1 && !this.defined) { + if (isFunction(factory)) { + //If there is an error listener, favor passing + //to that instead of throwing an error. However, + //only do it for define()'d modules. require + //errbacks should not be called for failures in + //their callbacks (#699). However if a global + //onError is set, use that. + if ((this.events.error && this.map.isDefine) || + req.onError !== defaultOnError) { + try { + exports = context.execCb(id, factory, depExports, exports); + } catch (e) { + err = e; + } + } else { + exports = context.execCb(id, factory, depExports, exports); + } + + // Favor return value over exports. If node/cjs in play, + // then will not have a return value anyway. Favor + // module.exports assignment over exports object. + if (this.map.isDefine && exports === undefined) { + cjsModule = this.module; + if (cjsModule) { + exports = cjsModule.exports; + } else if (this.usingExports) { + //exports already set the defined value. + exports = this.exports; + } + } + + if (err) { + err.requireMap = this.map; + err.requireModules = this.map.isDefine ? [this.map.id] : null; + err.requireType = this.map.isDefine ? 'define' : 'require'; + return onError((this.error = err)); + } + + } else { + //Just a literal value + exports = factory; + } + + this.exports = exports; + + if (this.map.isDefine && !this.ignore) { + defined[id] = exports; + + if (req.onResourceLoad) { + var resLoadMaps = []; + each(this.depMaps, function (depMap) { + resLoadMaps.push(depMap.normalizedMap || depMap); + }); + req.onResourceLoad(context, this.map, resLoadMaps); + } + } + + //Clean up + cleanRegistry(id); + + this.defined = true; + } + + //Finished the define stage. Allow calling check again + //to allow define notifications below in the case of a + //cycle. + this.defining = false; + + if (this.defined && !this.defineEmitted) { + this.defineEmitted = true; + this.emit('defined', this.exports); + this.defineEmitComplete = true; + } + + } + }, + + callPlugin: function () { + var map = this.map, + id = map.id, + //Map already normalized the prefix. + pluginMap = makeModuleMap(map.prefix); + + //Mark this as a dependency for this plugin, so it + //can be traced for cycles. + this.depMaps.push(pluginMap); + + on(pluginMap, 'defined', bind(this, function (plugin) { + var load, normalizedMap, normalizedMod, + bundleId = getOwn(bundlesMap, this.map.id), + name = this.map.name, + parentName = this.map.parentMap ? this.map.parentMap.name : null, + localRequire = context.makeRequire(map.parentMap, { + enableBuildCallback: true + }); + + //If current map is not normalized, wait for that + //normalized name to load instead of continuing. + if (this.map.unnormalized) { + //Normalize the ID if the plugin allows it. + if (plugin.normalize) { + name = plugin.normalize(name, function (name) { + return normalize(name, parentName, true); + }) || ''; + } + + //prefix and name should already be normalized, no need + //for applying map config again either. + normalizedMap = makeModuleMap(map.prefix + '!' + name, + this.map.parentMap, + true); + on(normalizedMap, + 'defined', bind(this, function (value) { + this.map.normalizedMap = normalizedMap; + this.init([], function () { return value; }, null, { + enabled: true, + ignore: true + }); + })); + + normalizedMod = getOwn(registry, normalizedMap.id); + if (normalizedMod) { + //Mark this as a dependency for this plugin, so it + //can be traced for cycles. + this.depMaps.push(normalizedMap); + + if (this.events.error) { + normalizedMod.on('error', bind(this, function (err) { + this.emit('error', err); + })); + } + normalizedMod.enable(); + } + + return; + } + + //If a paths config, then just load that file instead to + //resolve the plugin, as it is built into that paths layer. + if (bundleId) { + this.map.url = context.nameToUrl(bundleId); + this.load(); + return; + } + + load = bind(this, function (value) { + this.init([], function () { return value; }, null, { + enabled: true + }); + }); + + load.error = bind(this, function (err) { + this.inited = true; + this.error = err; + err.requireModules = [id]; + + //Remove temp unnormalized modules for this module, + //since they will never be resolved otherwise now. + eachProp(registry, function (mod) { + if (mod.map.id.indexOf(id + '_unnormalized') === 0) { + cleanRegistry(mod.map.id); + } + }); + + onError(err); + }); + + //Allow plugins to load other code without having to know the + //context or how to 'complete' the load. + load.fromText = bind(this, function (text, textAlt) { + /*jslint evil: true */ + var moduleName = map.name, + moduleMap = makeModuleMap(moduleName), + hasInteractive = useInteractive; + + //As of 2.1.0, support just passing the text, to reinforce + //fromText only being called once per resource. Still + //support old style of passing moduleName but discard + //that moduleName in favor of the internal ref. + if (textAlt) { + text = textAlt; + } + + //Turn off interactive script matching for IE for any define + //calls in the text, then turn it back on at the end. + if (hasInteractive) { + useInteractive = false; + } + + //Prime the system by creating a module instance for + //it. + getModule(moduleMap); + + //Transfer any config to this other module. + if (hasProp(config.config, id)) { + config.config[moduleName] = config.config[id]; + } + + try { + req.exec(text); + } catch (e) { + return onError(makeError('fromtexteval', + 'fromText eval for ' + id + + ' failed: ' + e, + e, + [id])); + } + + if (hasInteractive) { + useInteractive = true; + } + + //Mark this as a dependency for the plugin + //resource + this.depMaps.push(moduleMap); + + //Support anonymous modules. + context.completeLoad(moduleName); + + //Bind the value of that module to the value for this + //resource ID. + localRequire([moduleName], load); + }); + + //Use parentName here since the plugin's name is not reliable, + //could be some weird string with no path that actually wants to + //reference the parentName's path. + plugin.load(map.name, localRequire, load, config); + })); + + context.enable(pluginMap, this); + this.pluginMaps[pluginMap.id] = pluginMap; + }, + + enable: function () { + enabledRegistry[this.map.id] = this; + this.enabled = true; + + //Set flag mentioning that the module is enabling, + //so that immediate calls to the defined callbacks + //for dependencies do not trigger inadvertent load + //with the depCount still being zero. + this.enabling = true; + + //Enable each dependency + each(this.depMaps, bind(this, function (depMap, i) { + var id, mod, handler; + + if (typeof depMap === 'string') { + //Dependency needs to be converted to a depMap + //and wired up to this module. + depMap = makeModuleMap(depMap, + (this.map.isDefine ? this.map : this.map.parentMap), + false, + !this.skipMap); + this.depMaps[i] = depMap; + + handler = getOwn(handlers, depMap.id); + + if (handler) { + this.depExports[i] = handler(this); + return; + } + + this.depCount += 1; + + on(depMap, 'defined', bind(this, function (depExports) { + if (this.undefed) { + return; + } + this.defineDep(i, depExports); + this.check(); + })); + + if (this.errback) { + on(depMap, 'error', bind(this, this.errback)); + } else if (this.events.error) { + // No direct errback on this module, but something + // else is listening for errors, so be sure to + // propagate the error correctly. + on(depMap, 'error', bind(this, function(err) { + this.emit('error', err); + })); + } + } + + id = depMap.id; + mod = registry[id]; + + //Skip special modules like 'require', 'exports', 'module' + //Also, don't call enable if it is already enabled, + //important in circular dependency cases. + if (!hasProp(handlers, id) && mod && !mod.enabled) { + context.enable(depMap, this); + } + })); + + //Enable each plugin that is used in + //a dependency + eachProp(this.pluginMaps, bind(this, function (pluginMap) { + var mod = getOwn(registry, pluginMap.id); + if (mod && !mod.enabled) { + context.enable(pluginMap, this); + } + })); + + this.enabling = false; + + this.check(); + }, + + on: function (name, cb) { + var cbs = this.events[name]; + if (!cbs) { + cbs = this.events[name] = []; + } + cbs.push(cb); + }, + + emit: function (name, evt) { + each(this.events[name], function (cb) { + cb(evt); + }); + if (name === 'error') { + //Now that the error handler was triggered, remove + //the listeners, since this broken Module instance + //can stay around for a while in the registry. + delete this.events[name]; + } + } + }; + + function callGetModule(args) { + //Skip modules already defined. + if (!hasProp(defined, args[0])) { + getModule(makeModuleMap(args[0], null, true)).init(args[1], args[2]); + } + } + + function removeListener(node, func, name, ieName) { + //Favor detachEvent because of IE9 + //issue, see attachEvent/addEventListener comment elsewhere + //in this file. + if (node.detachEvent && !isOpera) { + //Probably IE. If not it will throw an error, which will be + //useful to know. + if (ieName) { + node.detachEvent(ieName, func); + } + } else { + node.removeEventListener(name, func, false); + } + } + + /** + * Given an event from a script node, get the requirejs info from it, + * and then removes the event listeners on the node. + * @param {Event} evt + * @returns {Object} + */ + function getScriptData(evt) { + //Using currentTarget instead of target for Firefox 2.0's sake. Not + //all old browsers will be supported, but this one was easy enough + //to support and still makes sense. + var node = evt.currentTarget || evt.srcElement; + + //Remove the listeners once here. + removeListener(node, context.onScriptLoad, 'load', 'onreadystatechange'); + removeListener(node, context.onScriptError, 'error'); + + return { + node: node, + id: node && node.getAttribute('data-requiremodule') + }; + } + + function intakeDefines() { + var args; + + //Any defined modules in the global queue, intake them now. + takeGlobalQueue(); + + //Make sure any remaining defQueue items get properly processed. + while (defQueue.length) { + args = defQueue.shift(); + if (args[0] === null) { + return onError(makeError('mismatch', 'Mismatched anonymous define() module: ' + + args[args.length - 1])); + } else { + //args are id, deps, factory. Should be normalized by the + //define() function. + callGetModule(args); + } + } + context.defQueueMap = {}; + } + + context = { + config: config, + contextName: contextName, + registry: registry, + defined: defined, + urlFetched: urlFetched, + defQueue: defQueue, + defQueueMap: {}, + Module: Module, + makeModuleMap: makeModuleMap, + nextTick: req.nextTick, + onError: onError, + + /** + * Set a configuration for the context. + * @param {Object} cfg config object to integrate. + */ + configure: function (cfg) { + //Make sure the baseUrl ends in a slash. + if (cfg.baseUrl) { + if (cfg.baseUrl.charAt(cfg.baseUrl.length - 1) !== '/') { + cfg.baseUrl += '/'; + } + } + + // Convert old style urlArgs string to a function. + if (typeof cfg.urlArgs === 'string') { + var urlArgs = cfg.urlArgs; + cfg.urlArgs = function(id, url) { + return (url.indexOf('?') === -1 ? '?' : '&') + urlArgs; + }; + } + + //Save off the paths since they require special processing, + //they are additive. + var shim = config.shim, + objs = { + paths: true, + bundles: true, + config: true, + map: true + }; + + eachProp(cfg, function (value, prop) { + if (objs[prop]) { + if (!config[prop]) { + config[prop] = {}; + } + mixin(config[prop], value, true, true); + } else { + config[prop] = value; + } + }); + + //Reverse map the bundles + if (cfg.bundles) { + eachProp(cfg.bundles, function (value, prop) { + each(value, function (v) { + if (v !== prop) { + bundlesMap[v] = prop; + } + }); + }); + } + + //Merge shim + if (cfg.shim) { + eachProp(cfg.shim, function (value, id) { + //Normalize the structure + if (isArray(value)) { + value = { + deps: value + }; + } + if ((value.exports || value.init) && !value.exportsFn) { + value.exportsFn = context.makeShimExports(value); + } + shim[id] = value; + }); + config.shim = shim; + } + + //Adjust packages if necessary. + if (cfg.packages) { + each(cfg.packages, function (pkgObj) { + var location, name; + + pkgObj = typeof pkgObj === 'string' ? {name: pkgObj} : pkgObj; + + name = pkgObj.name; + location = pkgObj.location; + if (location) { + config.paths[name] = pkgObj.location; + } + + //Save pointer to main module ID for pkg name. + //Remove leading dot in main, so main paths are normalized, + //and remove any trailing .js, since different package + //envs have different conventions: some use a module name, + //some use a file name. + config.pkgs[name] = pkgObj.name + '/' + (pkgObj.main || 'main') + .replace(currDirRegExp, '') + .replace(jsSuffixRegExp, ''); + }); + } + + //If there are any "waiting to execute" modules in the registry, + //update the maps for them, since their info, like URLs to load, + //may have changed. + eachProp(registry, function (mod, id) { + //If module already has init called, since it is too + //late to modify them, and ignore unnormalized ones + //since they are transient. + if (!mod.inited && !mod.map.unnormalized) { + mod.map = makeModuleMap(id, null, true); + } + }); + + //If a deps array or a config callback is specified, then call + //require with those args. This is useful when require is defined as a + //config object before require.js is loaded. + if (cfg.deps || cfg.callback) { + context.require(cfg.deps || [], cfg.callback); + } + }, + + makeShimExports: function (value) { + function fn() { + var ret; + if (value.init) { + ret = value.init.apply(global, arguments); + } + return ret || (value.exports && getGlobal(value.exports)); + } + return fn; + }, + + makeRequire: function (relMap, options) { + options = options || {}; + + function localRequire(deps, callback, errback) { + var id, map, requireMod; + + if (options.enableBuildCallback && callback && isFunction(callback)) { + callback.__requireJsBuild = true; + } + + if (typeof deps === 'string') { + if (isFunction(callback)) { + //Invalid call + return onError(makeError('requireargs', 'Invalid require call'), errback); + } + + //If require|exports|module are requested, get the + //value for them from the special handlers. Caveat: + //this only works while module is being defined. + if (relMap && hasProp(handlers, deps)) { + return handlers[deps](registry[relMap.id]); + } + + //Synchronous access to one module. If require.get is + //available (as in the Node adapter), prefer that. + if (req.get) { + return req.get(context, deps, relMap, localRequire); + } + + //Normalize module name, if it contains . or .. + map = makeModuleMap(deps, relMap, false, true); + id = map.id; + + if (!hasProp(defined, id)) { + return onError(makeError('notloaded', 'Module name "' + + id + + '" has not been loaded yet for context: ' + + contextName + + (relMap ? '' : '. Use require([])'))); + } + return defined[id]; + } + + //Grab defines waiting in the global queue. + intakeDefines(); + + //Mark all the dependencies as needing to be loaded. + context.nextTick(function () { + //Some defines could have been added since the + //require call, collect them. + intakeDefines(); + + requireMod = getModule(makeModuleMap(null, relMap)); + + //Store if map config should be applied to this require + //call for dependencies. + requireMod.skipMap = options.skipMap; + + requireMod.init(deps, callback, errback, { + enabled: true + }); + + checkLoaded(); + }); + + return localRequire; + } + + mixin(localRequire, { + isBrowser: isBrowser, + + /** + * Converts a module name + .extension into an URL path. + * *Requires* the use of a module name. It does not support using + * plain URLs like nameToUrl. + */ + toUrl: function (moduleNamePlusExt) { + var ext, + index = moduleNamePlusExt.lastIndexOf('.'), + segment = moduleNamePlusExt.split('/')[0], + isRelative = segment === '.' || segment === '..'; + + //Have a file extension alias, and it is not the + //dots from a relative path. + if (index !== -1 && (!isRelative || index > 1)) { + ext = moduleNamePlusExt.substring(index, moduleNamePlusExt.length); + moduleNamePlusExt = moduleNamePlusExt.substring(0, index); + } + + return context.nameToUrl(normalize(moduleNamePlusExt, + relMap && relMap.id, true), ext, true); + }, + + defined: function (id) { + return hasProp(defined, makeModuleMap(id, relMap, false, true).id); + }, + + specified: function (id) { + id = makeModuleMap(id, relMap, false, true).id; + return hasProp(defined, id) || hasProp(registry, id); + } + }); + + //Only allow undef on top level require calls + if (!relMap) { + localRequire.undef = function (id) { + //Bind any waiting define() calls to this context, + //fix for #408 + takeGlobalQueue(); + + var map = makeModuleMap(id, relMap, true), + mod = getOwn(registry, id); + + mod.undefed = true; + removeScript(id); + + delete defined[id]; + delete urlFetched[map.url]; + delete undefEvents[id]; + + //Clean queued defines too. Go backwards + //in array so that the splices do not + //mess up the iteration. + eachReverse(defQueue, function(args, i) { + if (args[0] === id) { + defQueue.splice(i, 1); + } + }); + delete context.defQueueMap[id]; + + if (mod) { + //Hold on to listeners in case the + //module will be attempted to be reloaded + //using a different config. + if (mod.events.defined) { + undefEvents[id] = mod.events; + } + + cleanRegistry(id); + } + }; + } + + return localRequire; + }, + + /** + * Called to enable a module if it is still in the registry + * awaiting enablement. A second arg, parent, the parent module, + * is passed in for context, when this method is overridden by + * the optimizer. Not shown here to keep code compact. + */ + enable: function (depMap) { + var mod = getOwn(registry, depMap.id); + if (mod) { + getModule(depMap).enable(); + } + }, + + /** + * Internal method used by environment adapters to complete a load event. + * A load event could be a script load or just a load pass from a synchronous + * load call. + * @param {String} moduleName the name of the module to potentially complete. + */ + completeLoad: function (moduleName) { + var found, args, mod, + shim = getOwn(config.shim, moduleName) || {}, + shExports = shim.exports; + + takeGlobalQueue(); + + while (defQueue.length) { + args = defQueue.shift(); + if (args[0] === null) { + args[0] = moduleName; + //If already found an anonymous module and bound it + //to this name, then this is some other anon module + //waiting for its completeLoad to fire. + if (found) { + break; + } + found = true; + } else if (args[0] === moduleName) { + //Found matching define call for this script! + found = true; + } + + callGetModule(args); + } + context.defQueueMap = {}; + + //Do this after the cycle of callGetModule in case the result + //of those calls/init calls changes the registry. + mod = getOwn(registry, moduleName); + + if (!found && !hasProp(defined, moduleName) && mod && !mod.inited) { + if (config.enforceDefine && (!shExports || !getGlobal(shExports))) { + if (hasPathFallback(moduleName)) { + return; + } else { + return onError(makeError('nodefine', + 'No define call for ' + moduleName, + null, + [moduleName])); + } + } else { + //A script that does not call define(), so just simulate + //the call for it. + callGetModule([moduleName, (shim.deps || []), shim.exportsFn]); + } + } + + checkLoaded(); + }, + + /** + * Converts a module name to a file path. Supports cases where + * moduleName may actually be just an URL. + * Note that it **does not** call normalize on the moduleName, + * it is assumed to have already been normalized. This is an + * internal API, not a public one. Use toUrl for the public API. + */ + nameToUrl: function (moduleName, ext, skipExt) { + var paths, syms, i, parentModule, url, + parentPath, bundleId, + pkgMain = getOwn(config.pkgs, moduleName); + + if (pkgMain) { + moduleName = pkgMain; + } + + bundleId = getOwn(bundlesMap, moduleName); + + if (bundleId) { + return context.nameToUrl(bundleId, ext, skipExt); + } + + //If a colon is in the URL, it indicates a protocol is used and it is just + //an URL to a file, or if it starts with a slash, contains a query arg (i.e. ?) + //or ends with .js, then assume the user meant to use an url and not a module id. + //The slash is important for protocol-less URLs as well as full paths. + if (req.jsExtRegExp.test(moduleName)) { + //Just a plain path, not module name lookup, so just return it. + //Add extension if it is included. This is a bit wonky, only non-.js things pass + //an extension, this method probably needs to be reworked. + url = moduleName + (ext || ''); + } else { + //A module that needs to be converted to a path. + paths = config.paths; + + syms = moduleName.split('/'); + //For each module name segment, see if there is a path + //registered for it. Start with most specific name + //and work up from it. + for (i = syms.length; i > 0; i -= 1) { + parentModule = syms.slice(0, i).join('/'); + + parentPath = getOwn(paths, parentModule); + if (parentPath) { + //If an array, it means there are a few choices, + //Choose the one that is desired + if (isArray(parentPath)) { + parentPath = parentPath[0]; + } + syms.splice(0, i, parentPath); + break; + } + } + + //Join the path parts together, then figure out if baseUrl is needed. + url = syms.join('/'); + url += (ext || (/^data\:|^blob\:|\?/.test(url) || skipExt ? '' : '.js')); + url = (url.charAt(0) === '/' || url.match(/^[\w\+\.\-]+:/) ? '' : config.baseUrl) + url; + } + + return config.urlArgs && !/^blob\:/.test(url) ? + url + config.urlArgs(moduleName, url) : url; + }, + + //Delegates to req.load. Broken out as a separate function to + //allow overriding in the optimizer. + load: function (id, url) { + req.load(context, id, url); + }, + + /** + * Executes a module callback function. Broken out as a separate function + * solely to allow the build system to sequence the files in the built + * layer in the right sequence. + * + * @private + */ + execCb: function (name, callback, args, exports) { + return callback.apply(exports, args); + }, + + /** + * callback for script loads, used to check status of loading. + * + * @param {Event} evt the event from the browser for the script + * that was loaded. + */ + onScriptLoad: function (evt) { + //Using currentTarget instead of target for Firefox 2.0's sake. Not + //all old browsers will be supported, but this one was easy enough + //to support and still makes sense. + if (evt.type === 'load' || + (readyRegExp.test((evt.currentTarget || evt.srcElement).readyState))) { + //Reset interactive script so a script node is not held onto for + //to long. + interactiveScript = null; + + //Pull out the name of the module and the context. + var data = getScriptData(evt); + context.completeLoad(data.id); + } + }, + + /** + * Callback for script errors. + */ + onScriptError: function (evt) { + var data = getScriptData(evt); + if (!hasPathFallback(data.id)) { + var parents = []; + eachProp(registry, function(value, key) { + if (key.indexOf('_@r') !== 0) { + each(value.depMaps, function(depMap) { + if (depMap.id === data.id) { + parents.push(key); + return true; + } + }); + } + }); + return onError(makeError('scripterror', 'Script error for "' + data.id + + (parents.length ? + '", needed by: ' + parents.join(', ') : + '"'), evt, [data.id])); + } + } + }; + + context.require = context.makeRequire(); + return context; + } + + /** + * Main entry point. + * + * If the only argument to require is a string, then the module that + * is represented by that string is fetched for the appropriate context. + * + * If the first argument is an array, then it will be treated as an array + * of dependency string names to fetch. An optional function callback can + * be specified to execute when all of those dependencies are available. + * + * Make a local req variable to help Caja compliance (it assumes things + * on a require that are not standardized), and to give a short + * name for minification/local scope use. + */ + req = requirejs = function (deps, callback, errback, optional) { + + //Find the right context, use default + var context, config, + contextName = defContextName; + + // Determine if have config object in the call. + if (!isArray(deps) && typeof deps !== 'string') { + // deps is a config object + config = deps; + if (isArray(callback)) { + // Adjust args if there are dependencies + deps = callback; + callback = errback; + errback = optional; + } else { + deps = []; + } + } + + if (config && config.context) { + contextName = config.context; + } + + context = getOwn(contexts, contextName); + if (!context) { + context = contexts[contextName] = req.s.newContext(contextName); + } + + if (config) { + context.configure(config); + } + + return context.require(deps, callback, errback); + }; + + /** + * Support require.config() to make it easier to cooperate with other + * AMD loaders on globally agreed names. + */ + req.config = function (config) { + return req(config); + }; + + /** + * Execute something after the current tick + * of the event loop. Override for other envs + * that have a better solution than setTimeout. + * @param {Function} fn function to execute later. + */ + req.nextTick = typeof setTimeout !== 'undefined' ? function (fn) { + setTimeout(fn, 4); + } : function (fn) { fn(); }; + + /** + * Export require as a global, but only if it does not already exist. + */ + if (!require) { + require = req; + } + + req.version = version; + + //Used to filter out dependencies that are already paths. + req.jsExtRegExp = /^\/|:|\?|\.js$/; + req.isBrowser = isBrowser; + s = req.s = { + contexts: contexts, + newContext: newContext + }; + + //Create default context. + req({}); + + //Exports some context-sensitive methods on global require. + each([ + 'toUrl', + 'undef', + 'defined', + 'specified' + ], function (prop) { + //Reference from contexts instead of early binding to default context, + //so that during builds, the latest instance of the default context + //with its config gets used. + req[prop] = function () { + var ctx = contexts[defContextName]; + return ctx.require[prop].apply(ctx, arguments); + }; + }); + + if (isBrowser) { + head = s.head = document.getElementsByTagName('head')[0]; + //If BASE tag is in play, using appendChild is a problem for IE6. + //When that browser dies, this can be removed. Details in this jQuery bug: + //http://dev.jquery.com/ticket/2709 + baseElement = document.getElementsByTagName('base')[0]; + if (baseElement) { + head = s.head = baseElement.parentNode; + } + } + + /** + * Any errors that require explicitly generates will be passed to this + * function. Intercept/override it if you want custom error handling. + * @param {Error} err the error object. + */ + req.onError = defaultOnError; + + /** + * Creates the node for the load command. Only used in browser envs. + */ + req.createNode = function (config, moduleName, url) { + var node = config.xhtml ? + document.createElementNS('http://www.w3.org/1999/xhtml', 'html:script') : + document.createElement('script'); + node.type = config.scriptType || 'text/javascript'; + node.charset = 'utf-8'; + node.async = true; + return node; + }; + + /** + * Does the request to load a module for the browser case. + * Make this a separate function to allow other environments + * to override it. + * + * @param {Object} context the require context to find state. + * @param {String} moduleName the name of the module. + * @param {Object} url the URL to the module. + */ + req.load = function (context, moduleName, url) { + var config = (context && context.config) || {}, + node; + if (isBrowser) { + //In the browser so use a script tag + node = req.createNode(config, moduleName, url); + + node.setAttribute('data-requirecontext', context.contextName); + node.setAttribute('data-requiremodule', moduleName); + + //Set up load listener. Test attachEvent first because IE9 has + //a subtle issue in its addEventListener and script onload firings + //that do not match the behavior of all other browsers with + //addEventListener support, which fire the onload event for a + //script right after the script execution. See: + //https://connect.microsoft.com/IE/feedback/details/648057/script-onload-event-is-not-fired-immediately-after-script-execution + //UNFORTUNATELY Opera implements attachEvent but does not follow the script + //script execution mode. + if (node.attachEvent && + //Check if node.attachEvent is artificially added by custom script or + //natively supported by browser + //read https://github.com/requirejs/requirejs/issues/187 + //if we can NOT find [native code] then it must NOT natively supported. + //in IE8, node.attachEvent does not have toString() + //Note the test for "[native code" with no closing brace, see: + //https://github.com/requirejs/requirejs/issues/273 + !(node.attachEvent.toString && node.attachEvent.toString().indexOf('[native code') < 0) && + !isOpera) { + //Probably IE. IE (at least 6-8) do not fire + //script onload right after executing the script, so + //we cannot tie the anonymous define call to a name. + //However, IE reports the script as being in 'interactive' + //readyState at the time of the define call. + useInteractive = true; + + node.attachEvent('onreadystatechange', context.onScriptLoad); + //It would be great to add an error handler here to catch + //404s in IE9+. However, onreadystatechange will fire before + //the error handler, so that does not help. If addEventListener + //is used, then IE will fire error before load, but we cannot + //use that pathway given the connect.microsoft.com issue + //mentioned above about not doing the 'script execute, + //then fire the script load event listener before execute + //next script' that other browsers do. + //Best hope: IE10 fixes the issues, + //and then destroys all installs of IE 6-9. + //node.attachEvent('onerror', context.onScriptError); + } else { + node.addEventListener('load', context.onScriptLoad, false); + node.addEventListener('error', context.onScriptError, false); + } + node.src = url; + + //Calling onNodeCreated after all properties on the node have been + //set, but before it is placed in the DOM. + if (config.onNodeCreated) { + config.onNodeCreated(node, config, moduleName, url); + } + + //For some cache cases in IE 6-8, the script executes before the end + //of the appendChild execution, so to tie an anonymous define + //call to the module name (which is stored on the node), hold on + //to a reference to this node, but clear after the DOM insertion. + currentlyAddingScript = node; + if (baseElement) { + head.insertBefore(node, baseElement); + } else { + head.appendChild(node); + } + currentlyAddingScript = null; + + return node; + } else if (isWebWorker) { + try { + //In a web worker, use importScripts. This is not a very + //efficient use of importScripts, importScripts will block until + //its script is downloaded and evaluated. However, if web workers + //are in play, the expectation is that a build has been done so + //that only one script needs to be loaded anyway. This may need + //to be reevaluated if other use cases become common. + + // Post a task to the event loop to work around a bug in WebKit + // where the worker gets garbage-collected after calling + // importScripts(): https://webkit.org/b/153317 + setTimeout(function() {}, 0); + importScripts(url); + + //Account for anonymous modules + context.completeLoad(moduleName); + } catch (e) { + context.onError(makeError('importscripts', + 'importScripts failed for ' + + moduleName + ' at ' + url, + e, + [moduleName])); + } + } + }; + + function getInteractiveScript() { + if (interactiveScript && interactiveScript.readyState === 'interactive') { + return interactiveScript; + } + + eachReverse(scripts(), function (script) { + if (script.readyState === 'interactive') { + return (interactiveScript = script); + } + }); + return interactiveScript; + } + + //Look for a data-main script attribute, which could also adjust the baseUrl. + if (isBrowser && !cfg.skipDataMain) { + //Figure out baseUrl. Get it from the script tag with require.js in it. + eachReverse(scripts(), function (script) { + //Set the 'head' where we can append children by + //using the script's parent. + if (!head) { + head = script.parentNode; + } + + //Look for a data-main attribute to set main script for the page + //to load. If it is there, the path to data main becomes the + //baseUrl, if it is not already set. + dataMain = script.getAttribute('data-main'); + if (dataMain) { + //Preserve dataMain in case it is a path (i.e. contains '?') + mainScript = dataMain; + + //Set final baseUrl if there is not already an explicit one, + //but only do so if the data-main value is not a loader plugin + //module ID. + if (!cfg.baseUrl && mainScript.indexOf('!') === -1) { + //Pull off the directory of data-main for use as the + //baseUrl. + src = mainScript.split('/'); + mainScript = src.pop(); + subPath = src.length ? src.join('/') + '/' : './'; + + cfg.baseUrl = subPath; + } + + //Strip off any trailing .js since mainScript is now + //like a module name. + mainScript = mainScript.replace(jsSuffixRegExp, ''); + + //If mainScript is still a path, fall back to dataMain + if (req.jsExtRegExp.test(mainScript)) { + mainScript = dataMain; + } + + //Put the data-main script in the files to load. + cfg.deps = cfg.deps ? cfg.deps.concat(mainScript) : [mainScript]; + + return true; + } + }); + } + + /** + * The function that handles definitions of modules. Differs from + * require() in that a string for the module should be the first argument, + * and the function to execute after dependencies are loaded should + * return a value to define the module corresponding to the first argument's + * name. + */ + define = function (name, deps, callback) { + var node, context; + + //Allow for anonymous modules + if (typeof name !== 'string') { + //Adjust args appropriately + callback = deps; + deps = name; + name = null; + } + + //This module may not have dependencies + if (!isArray(deps)) { + callback = deps; + deps = null; + } + + //If no name, and callback is a function, then figure out if it a + //CommonJS thing with dependencies. + if (!deps && isFunction(callback)) { + deps = []; + //Remove comments from the callback string, + //look for require calls, and pull them into the dependencies, + //but only if there are function args. + if (callback.length) { + callback + .toString() + .replace(commentRegExp, commentReplace) + .replace(cjsRequireRegExp, function (match, dep) { + deps.push(dep); + }); + + //May be a CommonJS thing even without require calls, but still + //could use exports, and module. Avoid doing exports and module + //work though if it just needs require. + //REQUIRES the function to expect the CommonJS variables in the + //order listed below. + deps = (callback.length === 1 ? ['require'] : ['require', 'exports', 'module']).concat(deps); + } + } + + //If in IE 6-8 and hit an anonymous define() call, do the interactive + //work. + if (useInteractive) { + node = currentlyAddingScript || getInteractiveScript(); + if (node) { + if (!name) { + name = node.getAttribute('data-requiremodule'); + } + context = contexts[node.getAttribute('data-requirecontext')]; + } + } + + //Always save off evaluating the def call until the script onload handler. + //This allows multiple modules to be in a file without prematurely + //tracing dependencies, and allows for anonymous module support, + //where the module name is not known until the script onload event + //occurs. If no context, use the global queue, and get it processed + //in the onscript load callback. + if (context) { + context.defQueue.push([name, deps, callback]); + context.defQueueMap[name] = true; + } else { + globalDefQueue.push([name, deps, callback]); + } + }; + + define.amd = { + jQuery: true + }; + + /** + * Executes the text. Normally just uses eval, but can be modified + * to use a better, environment-specific call. Only used for transpiling + * loader plugins, not for plain JS modules. + * @param {String} text the text to execute/evaluate. + */ + req.exec = function (text) { + /*jslint evil: true */ + return eval(text); + }; + + //Set up with config info. + req(cfg); +}(this, (typeof setTimeout === 'undefined' ? undefined : setTimeout))); diff --git a/build/packages/$sdk/dev_compiler/ddc/ddc_module_loader.js b/build/packages/$sdk/dev_compiler/ddc/ddc_module_loader.js new file mode 100644 index 0000000..e5de482 --- /dev/null +++ b/build/packages/$sdk/dev_compiler/ddc/ddc_module_loader.js @@ -0,0 +1,2236 @@ +// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +// This file defines the module loader for the dart runtime. +if (!self.dart_library) { + self.dart_library = typeof module != 'undefined' && module.exports || {}; + + (function (dart_library) { + 'use strict'; + + // Throws an error related to module loading. + // + // This does not throw a Dart error because the Dart SDK may not have loaded + // yet, and module loading errors cannot be caught by Dart code. + function throwLibraryError(message) { + // Dispatch event to allow others to react to the load error without + // capturing the exception. + if (!!self.dispatchEvent) { + self.dispatchEvent( + new CustomEvent('dartLoadException', { detail: message })); + } + throw Error(message); + } + + /** + * Returns true if we're running in d8. + * + * TODO(markzipan): Determine if this d8 check is too inexact. + */ + self.dart_library.isD8 = self.document.head == void 0; + + const libraryImports = Symbol('libraryImports'); + self.dart_library.libraryImports = libraryImports; + + const _metrics = Symbol('metrics'); + + // Returns a map from module name to various metrics for module. + function moduleMetrics() { + const map = {}; + const keys = Array.from(_libraries.keys()); + for (const key of keys) { + const lib = _libraries.get(key); + map[lib._name] = lib.firstLibraryValue[_metrics]; + } + return map; + } + self.dart_library.moduleMetrics = moduleMetrics; + + // Returns an application level overview of the module metrics. + function appMetrics() { + const metrics = moduleMetrics(); + let dartSize = 0; + let jsSize = 0; + let sourceMapSize = 0; + let evaluatedModules = 0; + const keys = Array.from(_libraries.keys()); + + let firstLoadStart = Number.MAX_VALUE; + let lastLoadEnd = Number.MIN_VALUE; + + for (const module of keys) { + let data = metrics[module]; + if (data != null) { + evaluatedModules++; + dartSize += data.dartSize; + jsSize += data.jsSize; + sourceMapSize += data.sourceMapSize; + firstLoadStart = Math.min(firstLoadStart, data.loadStart); + lastLoadEnd = Math.max(lastLoadEnd, data.loadEnd); + } + } + let loadTimeMs = + lastLoadEnd === Number.MIN_VALUE ? 0 : lastLoadEnd - firstLoadStart; + return { + 'dartSize': dartSize, + 'jsSize': jsSize, + 'sourceMapSize': sourceMapSize, + 'evaluatedModules': evaluatedModules, + 'loadTimeMs': loadTimeMs + }; + } + self.dart_library.appMetrics = appMetrics; + + function _sortFn(key1, key2) { + const t1 = _libraries.get(key1).firstLibraryValue[_metrics].loadStart; + const t2 = _libraries.get(key2).firstLibraryValue[_metrics].loadStart; + return t1 - t2; + } + + // Convenience method to print the metrics in the browser console + // in CSV format. + function metricsCsv() { + let buffer = + 'Module, JS Size, Dart Size, Load Start, Load End, Cumulative JS Size\n'; + const keys = Array.from(_libraries.keys()); + keys.sort(_sortFn); + let cumulativeJsSize = 0; + for (const key of keys) { + const lib = _libraries.get(key); + const jsSize = lib.firstLibraryValue[_metrics].jsSize; + cumulativeJsSize += jsSize; + const dartSize = lib.firstLibraryValue[_metrics].dartSize; + const loadStart = lib.firstLibraryValue[_metrics].loadStart; + const loadEnd = lib.firstLibraryValue[_metrics].loadEnd; + buffer += '"' + lib._name + '", ' + jsSize + ', ' + dartSize + ', ' + + loadStart + ', ' + loadEnd + ', ' + cumulativeJsSize + '\n'; + } + return buffer; + } + self.dart_library.metricsCsv = metricsCsv; + + // Module support. This is a simplified module system for Dart. + // Longer term, we can easily migrate to an existing JS module system: + // ES6, AMD, RequireJS, .... + + // Returns a proxy that delegates to the underlying loader. + // This defers loading of a module until a library is actually used. + const loadedModule = Symbol('loadedModule'); + self.dart_library.defer = function (module, name, patch) { + let done = false; + function loadDeferred() { + done = true; + let mod = module[loadedModule]; + let lib = mod[name]; + // Install unproxied module and library in caller's context. + patch(mod, lib); + } + // The deferred library object. Note, the only legal operations on a Dart + // library object should be get (to read a top-level variable, method, or + // Class) or set (to write a top-level variable). + return new Proxy({}, { + get: function (o, p) { + if (!done) loadDeferred(); + return module[name][p]; + }, + set: function (o, p, value) { + if (!done) loadDeferred(); + module[name][p] = value; + return true; + }, + }); + }; + + let _reverseImports = new Map(); + + // App name to set of libraries that were not only loaded on the page but + // also executed. + const _executedLibraries = new Map(); + self.dart_library.executedLibraryCount = function () { + let count = 0; + _executedLibraries.forEach(function (executedLibraries, _) { + count += executedLibraries.size; + }); + return count; + }; + + // Library instance that is going to be loaded or has been loaded. + class LibraryInstance { + constructor(libraryValue) { + this.libraryValue = libraryValue; + // Cyclic import detection + this.loadingState = LibraryLoader.NOT_LOADED; + } + + get isNotLoaded() { + return this.loadingState == LibraryLoader.NOT_LOADED; + } + } + + class LibraryLoader { + constructor(name, defaultLibraryValue, imports, loader, data) { + imports.forEach(function (i) { + let deps = _reverseImports.get(i); + if (!deps) { + deps = new Set(); + _reverseImports.set(i, deps); + } + deps.add(name); + }); + this._name = name; + this._defaultLibraryValue = + defaultLibraryValue ? defaultLibraryValue : {}; + this._imports = imports; + this._loader = loader; + data.jsSize = loader.toString().length; + data.loadStart = NaN; + data.loadEnd = NaN; + this._metrics = data; + + // First loaded instance for supporting logic that assumes there is only + // one app. + // TODO(b/204209941): Remove _firstLibraryInstance after debugger and + // metrics support multiple apps. + this._firstLibraryInstance = + new LibraryInstance(this._deepCopyDefaultValue()); + this._firstLibraryInstanceUsed = false; + + // App name to instance map. + this._instanceMap = new Map(); + } + + /// First loaded value for supporting logic that assumes there is only + /// one app. + get firstLibraryValue() { + return this._firstLibraryInstance.libraryValue; + } + + /// The loaded instance value for the given `appName`. + libraryValueInApp(appName) { + return this._instanceMap.get(appName).libraryValue; + } + + load(appName) { + let instance = this._instanceMap.get(appName); + if (!instance && !this._firstLibraryInstanceUsed) { + // If `_firstLibraryInstance` is already assigned to an app, creates a + // new instance clone (with deep copy) and assigns it the given app. + // Otherwise, reuse `_firstLibraryInstance`. + instance = this._firstLibraryInstance; + this._firstLibraryInstanceUsed = true; + this._instanceMap.set(appName, instance); + } + if (!instance) { + instance = new LibraryInstance(this._deepCopyDefaultValue()); + this._instanceMap.set(appName, instance); + } + + // Check for cycles + if (instance.loadingState == LibraryLoader.LOADING) { + throwLibraryError('Circular dependence on library: ' + this._name); + } else if (instance.loadingState >= LibraryLoader.READY) { + return instance.libraryValue; + } + if (!_executedLibraries.has(appName)) { + _executedLibraries.set(appName, new Set()); + } + _executedLibraries.get(appName).add(this._name); + instance.loadingState = LibraryLoader.LOADING; + + // Handle imports + let args = this._loadImports(appName); + + // Load the library + let loader = this; + let library = instance.libraryValue; + + library[libraryImports] = this._imports; + library[loadedModule] = library; + library[_metrics] = this._metrics; + args.unshift(library); + + if (this._name == 'dart_sdk') { + // Eagerly load the SDK. + if (!!self.performance && !!self.performance.now) { + library[_metrics].loadStart = self.performance.now(); + } + this._loader.apply(null, args); + if (!!self.performance && !!self.performance.now) { + library[_metrics].loadEnd = self.performance.now(); + } + } else { + // Load / parse other modules on demand. + let done = false; + instance.libraryValue = new Proxy(library, { + get: function (o, name) { + if (name == _metrics) { + return o[name]; + } + if (!done) { + done = true; + if (!!self.performance && !!self.performance.now) { + library[_metrics].loadStart = self.performance.now(); + } + loader._loader.apply(null, args); + if (!!self.performance && !!self.performance.now) { + library[_metrics].loadEnd = self.performance.now(); + } + } + return o[name]; + } + }); + } + + instance.loadingState = LibraryLoader.READY; + return instance.libraryValue; + } + + _loadImports(appName) { + let results = []; + for (let name of this._imports) { + results.push(import_(name, appName)); + } + return results; + } + + _deepCopyDefaultValue() { + return JSON.parse(JSON.stringify(this._defaultLibraryValue)); + } + } + LibraryLoader.NOT_LOADED = 0; + LibraryLoader.LOADING = 1; + LibraryLoader.READY = 2; + + // Map from name to LibraryLoader + let _libraries = new Map(); + self.dart_library.libraries = function () { + return _libraries.keys(); + }; + self.dart_library.debuggerLibraries = function () { + let debuggerLibraries = []; + _libraries.forEach(function (value, key, map) { + debuggerLibraries.push(value.load(_firstStartedAppName)); + }); + Object.setPrototypeOf(debuggerLibraries, null); + return debuggerLibraries; + }; + + // Invalidate a library and all things that depend on it + function _invalidateLibrary(name) { + let lib = _libraries.get(name); + if (lib._instanceMap.size === 0) return; + lib._firstLibraryInstance = + new LibraryInstance(lib._deepCopyDefaultValue()); + lib._firstLibraryInstanceUsed = false; + lib._instanceMap.clear(); + let deps = _reverseImports.get(name); + if (!deps) return; + deps.forEach(_invalidateLibrary); + } + + function library(name, defaultLibraryValue, imports, loader, data = {}) { + let result = _libraries.get(name); + if (result) { + console.log('Re-loading ' + name); + _invalidateLibrary(name); + } + result = + new LibraryLoader(name, defaultLibraryValue, imports, loader, data); + _libraries.set(name, result); + return result; + } + self.dart_library.library = library; + + // Local storage may be blocked by a browser policy in which case even + // trying to access it will throw. + function isLocalStorageAvailable() { + try { + !!self.localStorage; + return true; + } catch (e) { + return false; + } + } + + // Store executed modules upon reload. + if (!!self.addEventListener && isLocalStorageAvailable()) { + self.addEventListener('beforeunload', function (event) { + _nameToApp.forEach(function (_, appName) { + if (!_executedLibraries.get(appName)) { + return; + } + let libraryCache = { + 'time': new Date().getTime(), + 'modules': Array.from(_executedLibraries.get(appName).keys()), + }; + self.localStorage.setItem( + `dartLibraryCache:${appName}`, JSON.stringify(libraryCache)); + }); + }); + } + + // Map from module name to corresponding app to proxy library map. + let _proxyLibs = new Map(); + + /** + * Returns an instantiated module given its module name. + * + * Note: this method is not meant to be used outside DDC generated code, + * however it is currently being used in many places because DDC lacks an + * Embedding API. This API will be removed in the future once the Embedding + * API is established. + */ + function import_(name, appName) { + // For backward compatibility. + if (!appName && _lastStartedSubapp) { + appName = _lastStartedSubapp.appName; + } + + let proxy; + if (_proxyLibs.has(name)) { + proxy = _proxyLibs.get(name).get(appName); + } + if (proxy) return proxy; + let proxyLib = new Proxy({}, { + get: function (o, p) { + let lib = _libraries.get(name); + if (self.$dartJITModules) { + // The backing module changed so update the reference + if (!lib) { + let xhr = new XMLHttpRequest(); + let sourceURL = self.$dartLoader.moduleIdToUrl.get(name); + xhr.open('GET', sourceURL, false); + xhr.withCredentials = true; + xhr.send(); + // Add inline policy to make eval() call Trusted Types compatible + // when running in a TT compatible browser + let policy = { + createScript: function (script) { + return script; + } + }; + if (self.trustedTypes && self.trustedTypes.createPolicy) { + policy = self.trustedTypes.createPolicy( + 'dartDdcModuleLoading#dart_library', policy); + } + // Append sourceUrl so the resource shows up in the Chrome + // console. + eval(policy.createScript( + xhr.responseText + '//@ sourceURL=' + sourceURL)); + lib = _libraries.get(name); + } + } + if (!lib) { + throwLibraryError('Module ' + name + ' not loaded in the browser.'); + } + // Always load the library before accessing a property as it may have + // been invalidated. + return lib.load(appName)[p]; + } + }); + if (!_proxyLibs.has(name)) { + _proxyLibs.set(name, new Map()); + } + _proxyLibs.get(name).set(appName, proxyLib); + return proxyLib; + } + self.dart_library.import = import_; + + // Removes the corresponding library and invalidates all things that + // depend on it. + function _invalidateImport(name) { + let lib = _libraries.get(name); + if (!lib) return; + _invalidateLibrary(name); + _libraries.delete(name); + } + self.dart_library.invalidateImport = _invalidateImport; + + let _debuggerInitialized = false; + + // Caches the last N runIds to prevent hot reload requests from the same + // runId from executing more than once. + const _hotRestartRunIdCache = new Array(); + + // Called to initiate a hot restart of the application for a given uuid. If + // it is not set, the last started application will be hot restarted. + // + // "Hot restart" means all application state is cleared, the newly compiled + // modules are loaded, and `main()` is called. + // + // Note: `onReloadEnd()` can be provided, and if so will be used instead of + // `main()` for hot restart. + // + // This happens in the following sequence: + // + // 1. Look for `onReloadStart()` in the same library that has `main()`, and + // call it if present. This function is implemented by the application to + // ensure any global browser/DOM state is cleared, so the application can + // restart. + // 2. Wait for `onReloadStart()` to complete (either synchronously, or async + // if it returned a `Future`). + // 3. Call dart:_runtime's `hotRestart()` function to clear any state that + // `dartdevc` is tracking, such as initialized static fields and type + // caches. + // 4. Call `self.$dartReloadModifiedModules()` (provided by the HTML page) + // to reload the relevant JS modules, passing a callback that will invoke + // `main()`. + // 5. `$dartReloadModifiedModules` calls the callback to rerun main. + // + async function hotRestart(config) { + if (!self || !self.$dartReloadModifiedModules) { + console.warn('Hot restart not supported in this environment.'); + return; + } + + // If `config.runId` is set (e.g. a unique build ID that represent the + // current build and shared by multiple subapps), skip the following runs + // with the same id. + if (config && config.runId) { + if (_hotRestartRunIdCache.indexOf(config.runId) >= 0) { + // The run has already started (by other subapp or app) + return; + } + _hotRestartRunIdCache.push(config.runId); + + // Only cache the runIds for the last N runs. We assume that there are + // less than N requests with different runId can happen in a very short + // period of time (e.g. 1 second). + if (_hotRestartRunIdCache.length > 10) { + _hotRestartRunIdCache.shift(); + } + } + + self.console.clear(); + const sdk = _libraries.get('dart_sdk'); + + // Finds out what apps and their subapps should be hot restarted in + // their starting order. + const dirtyAppNames = new Array(); + const dirtySubapps = new Array(); + if (config && config.runId) { + _nameToApp.forEach(function (app, appName) { + dirtySubapps.push(...app.uuidToSubapp.values()); + dirtyAppNames.push(appName); + }); + } else { + dirtySubapps.push(_lastStartedSubapp); + dirtyAppNames.push(_lastStartedSubapp.appName); + } + + // Invokes onReloadStart for each subapp in reversed starting order. + const onReloadStartPromises = new Array(); + for (const subapp of dirtySubapps.reverse()) { + // Call the application's `onReloadStart()` function, if provided. + if (subapp.library && subapp.library.onReloadStart) { + const result = subapp.library.onReloadStart(); + if (result && result.then) { + let resolve; + onReloadStartPromises.push(new Promise(function (res, _) { + resolve = res; + })); + const dart = sdk.libraryValueInApp(subapp.appName).dart; + result.then(dart.dynamic, function () { + resolve(); + }); + } + } + } + // Reverse the subapps back to starting order. + dirtySubapps.reverse(); + + await Promise.all(onReloadStartPromises); + + // Invokes SDK `hotRestart` to reset all initialized fields and clears + // type caches and other temporary data structures used by the + // compiler/SDK. + for (const appName of dirtyAppNames) { + sdk.libraryValueInApp(appName).dart.hotRestart(); + } + + // Invoke `hotRestart` for the deferred loader to clear load ids and + // other temporary state. + if (self.deferred_loader) { + self.deferred_loader.hotRestart(); + } + + // Starts the subapps in their starting order. + for (const subapp of dirtySubapps) { + // Call the module loader to reload the necessary modules. + self.$dartReloadModifiedModules(subapp.appName, async function () { + // If the promise `readyToRunMain` is provided, then wait for + // it. This gives the debugging clients time to set any breakpoints. + if (!!(config && config.readyToRunMain)) { + await config.readyToRunMain; + } + // Once the modules are loaded, rerun `main()`. + start( + subapp.appName, subapp.uuid, subapp.moduleName, + subapp.libraryName, true); + }); + } + } + self.dart_library.reload = hotRestart; + + // Creates a script with the proper nonce value for strict CSP or noops on + // invalid platforms. + self.dart_library.createScript = (function () { + // Exit early if we aren't modifying an HtmlElement (such as in D8). + if (self.dart_library.isD8) return; + // Find the nonce value. (Note, this is only computed once.) + const scripts = Array.from(document.getElementsByTagName('script')); + let nonce; + scripts.some( + script => (nonce = script.nonce || script.getAttribute('nonce'))); + // If present, return a closure that automatically appends the nonce. + if (nonce) { + return function () { + let script = document.createElement('script'); + script.nonce = nonce; + return script; + }; + } else { + return function () { + return document.createElement('script'); + }; + } + })(); + + /// An App contains one or multiple Subapps, all of the subapps share the + /// same memory copy of library instances, and as a result they share state + /// in Dart statics and top-level fields. There can be one or multiple Apps + /// in a browser window, all of the Apps are isolated from each other + /// (i.e. they create different instances even for the same module). + class App { + constructor(name) { + this.name = name; + + // Subapp's uuid to subapps in initial starting order. + // (ES6 preserves iteration order) + this.uuidToSubapp = new Map(); + } + } + + class Subapp { + constructor(uuid, appName, moduleName, libraryName, library) { + this.uuid = uuid; + this.appName = appName; + this.moduleName = moduleName; + this.libraryName = libraryName; + this.library = library; + + this.originalBody = null; + } + } + + // App name to App map in initial starting order. + // (ES6 preserves iteration order) + const _nameToApp = new Map(); + let _firstStartedAppName; + let _lastStartedSubapp; + + /** + * Runs a Dart program's main method. + * + * Intended to be invoked by the bootstrapping code where the application + * is being embedded. + * + * Because multiple programs can be part of a single application on a page + * at once, we identify the entrypoint using multiple keys: `appName` + * denotes the parent application, this program within that application + * (aka. the subapp) is identified by an `uuid`. Finally the entrypoint + * method is located from the `moduleName` and `libraryName`. + * + * Often, when a page contains a single app, the uuid is a fixed trivial + * value like '00000000-0000-0000-0000-000000000000'. + * + * This is one of the current public Embedding APIs exposed by DDC. + * Note: this API will be replaced by `dartDevEmbedder.runMain` in the + * future. + */ + function start(appName, uuid, moduleName, libraryName, isReload) { + console.info( + `DDC: Subapp Module [${appName}:${moduleName}:${uuid}] is starting`); + if (libraryName == null) libraryName = moduleName; + const library = import_(moduleName, appName)[libraryName]; + + let app = _nameToApp.get(appName); + if (!isReload) { + if (!app) { + app = new App(appName); + _nameToApp.set(appName, app); + } + + let subapp = app.uuidToSubapp.get(uuid); + if (!subapp) { + subapp = new Subapp(uuid, appName, moduleName, libraryName, library); + app.uuidToSubapp.set(uuid, subapp); + } + + _lastStartedSubapp = subapp; + if (!_firstStartedAppName) { + _firstStartedAppName = appName; + } + } + + const subapp = app.uuidToSubapp.get(uuid); + const sdk = import_('dart_sdk', appName); + + if (!_debuggerInitialized) { + // This import is only needed for chrome debugging. We should provide an + // option to compile without it. + sdk._debugger.registerDevtoolsFormatter(); + + // Create isolate. + _debuggerInitialized = true; + } + if (isReload) { + // subapp may have been modified during reload, `subapp.library` needs + // to always point to the latest data. + subapp.library = library; + + if (library.onReloadEnd) { + library.onReloadEnd(); + return; + } else { + if (!!self.document) { + // Note: we expect originalBody to be undefined in non-browser + // environments, but in that case so is the body. + if (!subapp.originalBody && !!self.document.body) { + self.console.warn('No body saved to update on reload'); + } else { + self.document.body = subapp.originalBody; + } + } + } + } else { + // If not a reload and `onReloadEnd` is not defined, store the initial + // html to reset it on reload. + if (!library.onReloadEnd && !!self.document && !!self.document.body) { + subapp.originalBody = self.document.body.cloneNode(true); + } + } + library.main([]); + } + dart_library.start = start; + + + /** + * Configure the DDC runtime. + * + * Must be called before invoking [start]. + * + * The configuration parameter is an object that may provide any of the + * following keys: + * + * - weakNullSafetyErrors: throw errors when types violate sound null + * safety (deprecated). + * + * - nonNullAsserts: insert non-null assertions no non-nullable method + * parameters (deprecated, was used to aid in null safety + * migrations). + * + * - nativeNonNullAsserts: inject non-null assertions checks to validate + * that browser APIs are sound. This is helpful because browser APIs + * are generated from IDLs and cannot be proven to be correct + * statically. + * + * - jsInteropNonNullAsserts: inject non-null assertiosn to check + * nullability of `package:js` JS-interop APIs. The new + * `dart:js_interop` always includes non-null assertions. + * + * - dynamicModuleLoader: provide the implementation of dynamic module + * loading. Dynamic modules is an experimental feature. + * The DDC runtime delegates to the embedder how code for dynamic + * modules is downloaded. This entry in the configuration must be a + * function with the signature: + * `function(String, onLoad)` + * It accepts a `String` containing a Uri that denotes the module to + * be loaded. When the load completes, the loader must invoke + * `onLoad` and provide the module name of the dynamic module to it. + * + * Note: eventually we may want to make the loader return a promise. + * We avoided that for now because it interfereres with our testing + * in d8. + */ + dart_library.configure = function configure(appName, configuration) { + let runtimeLibrary = dart_library.import("dart_sdk", appName).dart; + if (!!configuration.weakNullSafetyErrors) { + runtimeLibrary.weakNullSafetyErrors(configuration.weakNullSafetyErrors); + } + if (!!configuration.nonNullAsserts) { + runtimeLibrary.nonNullAsserts(configuration.nonNullAsserts); + } + if (!!configuration.nativeNonNullAsserts) { + runtimeLibrary.nativeNonNullAsserts(configuration.nativeNonNullAsserts); + } + if (!!configuration.jsInteropNonNullAsserts) { + runtimeLibrary.jsInteropNonNullAsserts( + configuration.jsInteropNonNullAsserts); + } + if (!!configuration.dynamicModuleLoader) { + let loader = configuration.dynamicModuleLoader; + runtimeLibrary.setDynamicModuleLoader(loader, (moduleName) => { + // As mentioned in the docs above, loader will not invoke the + // entrypoint, but just return the moduleName to find where to call + // it. By using the module name, we don't need to expose the + // `import` as part of the embedding API. + // In the future module system, this will change to a library name, + // rather than a module name. + return import_(moduleName, appName).__dynamic_module_entrypoint__(); + }); + } + }; + })(dart_library); +} + +// Initialize the DDC module loader. +// +// Scripts are JS objects with the following structure: +// {"src": "path/to/script.js", "id": "lookup_id_for_script"} +(function () { + let _currentDirectory = (function () { + let _url = document.currentScript.src; + let lastSlash = _url.lastIndexOf('/'); + if (lastSlash == -1) return _url; + let currentDirectory = _url.substring(0, lastSlash + 1); + return currentDirectory; + })(); + + let trimmedDirectory = _currentDirectory.endsWith("/") ? + _currentDirectory.substring(0, _currentDirectory.length - 1) + : _currentDirectory; + + if (!self.$dartLoader) { + self.$dartLoader = { + // Maps cosmetic (but stable) module names to their fully resolved URL. + // + // TODO(markzipan): Multi-app scripts can have module name conflicts. + // This should ideally be separated per-app. + moduleIdToUrl: new Map(), + // Contains root directories below which scripts are resolved. + rootDirectories: new Array(), + // This mapping is required for proper translation of stack traces. + urlToModuleId: new Map(), + // The DDCLoader used for this app. Should not be used in multi-app + // scenarios. + loader: null, + // The LoadConfiguration used for this app's DDCLoader. Should not be used + // in multi-app scenarios. + loadConfig: null + }; + + // Every distinct DDC app requires its own load configuration. + self.$dartLoader.LoadConfiguration = class LoadConfiguration { + constructor() { + // Identifies the bootstrap script. + // This should be set by bootstrappers for bootstrap-specific hooks. + this.bootstrapScript = null; + + // True if the bootstrap script should be loaded on the this attempt. + this.tryLoadBootstrapScript = false; + + // The underlying function that loads scripts. + // + // @param {function(!DDCLoader)} + this.loadScriptFn = (_) => { }; + + // The root for script URLs. Defaults to the root of this file. + // + // TODO(markzipan): Using the default is not safe in a multi-app scenario + // due to apps clobbering state on dartLoader. Move this to the local + // DDCLoader, which is unique per-app. + this.root = trimmedDirectory; + + this.isWindows = false; + + // Optional event handlers. + // Called when modules begin loading. + this.onLoadStart = () => { }; + // Called when the app fails to load after retrying. + this.onLoadError = () => { }; + // Called if loading the bootstrap script is successful. + this.onBootstrapSuccess = () => { }; + // Called if the bootstrap script fails to load. + this.onBootstrapError = () => { }; + + this.maxRequestPoolSize = 1000; + + // Max retry to prevent from load failing scripts forever. + this.maxAttempts = 6; + } + }; + } + + /** + * Loads [jsFile] onto this instance's DDC app's page, then invokes + * [onLoad]. + * @param {string} jsFile + * @param {?function()} onLoad Callback after a successful load + */ + self.$dartLoader.forceLoadScript = function (jsFile, onLoad) { + // A head element won't be created for D8, so just load synchronously. + if (self.dart_library.isD8) { + self.load(jsFile); + onLoad?.(); + return; + } + let script = self.dart_library.createScript(); + let policy = { + createScriptURL: function (src) { return src; } + }; + if (self.trustedTypes && self.trustedTypes.createPolicy) { + policy = self.trustedTypes.createPolicy('dartDdcModuleUrl', policy); + } + script.setAttribute('src', policy.createScriptURL(jsFile)); + script.async = false; + script.defer = true; + script.onload = onLoad; + self.document.head.appendChild(script); + }; + + self.$dartLoader.forceLoadModule = function (moduleName) { + let modulePathScript = _currentDirectory + moduleName + '.js'; + self.$dartLoader.forceLoadScript(modulePathScript); + }; + + // Handles JS script downloads and evaluation for a DDC app. + // + // Every DDC application requires exactly one DDCLoader. + self.$dartLoader.DDCLoader = class DDCLoader { + constructor(loadConfig) { + this.attemptCount = 0; + + this.loadConfig = loadConfig; + + // Scripts that await to be loaded. + this.queue = new Array(); + + // These refer to scripts already added to the document (as script tag). + this.numToLoad = 0; + this.numLoaded = 0; + this.numFailed = 0; + + // Resets all the fields and makes a load attempt. + this.nextAttempt = function () { + if (this.attemptCount == 0) { + this.loadConfig.onLoadStart(); + } + this.attemptCount++; + this.queue = new Array(); + this.numToLoad = 0; + this.numLoaded = 0; + this.numFailed = 0; + + this.loadConfig.loadScriptFn(this); + }; + + // The current 'intended' hot restart generation. + // + // 0-indexed and increases by 1 on every successful hot restart. + // Unlike `hotRestartGeneration`, this is incremented when the intent to + // perform a hot restart is established. + // This is used to synchronize D8 timers and lookup files to load in + // each generation for hot restart testing. + this.intendedHotRestartGeneration = 0; + } + + // True if we are still processing scripts from the script queue. + // 'Processing' means the script is 1) currently being downloaded/parsed + // or 2) the script failed to download and is being retried. + scriptsActivelyBeingLoaded() { + return this.numToLoad > this.numLoaded + this.numFailed; + }; + + // Joins path segments from the root directory to [script]'s path to get a + // complete URL. + getScriptUrl(script) { + let pathSlash = this.loadConfig.isWindows ? "\\" : "/"; + // Get path segments for src + let splitSrc = script.src.toString().split(pathSlash); + let j = 0; + // Count number of relative path segments + while (splitSrc[j] == "..") { + j++; + } + // Get path segments for root directory + let splitDir = !this.loadConfig.root + || this.loadConfig.root == pathSlash ? [] + : this.loadConfig.root.split(pathSlash); + // Account for relative path from the root directory + let splitPath = splitDir + .slice(0, splitDir.length - j) + .concat(splitSrc.slice(j)); + // Join path segments to get a complete path + return splitPath.join(pathSlash); + }; + + // Adds [script] to the dartLoader's internals as if it had been loaded and + // returns its fully resolved source path. + // + // Should be called when scripts are loaded on the page externally from + // dartLoader's API. + registerScript(script) { + const src = this.getScriptUrl(script); + // TODO(markzipan): moduleIdToUrl and urlToModuleId may conflict in + // multi-app scenarios. Fix this by moving them into the DDCLoader. + self.$dartLoader.moduleIdToUrl.set(script.id, src); + self.$dartLoader.urlToModuleId.set(src, script.id); + return src; + }; + + // Adds [scripts] to [queue] according to validation function [allowScriptFn]. + // + // Scripts aren't loaded until loadEnqueuedModules is called. + addScriptsToQueue(scripts, allowScriptFn) { + for (let i = 0; i < scripts.length; i++) { + const script = scripts[i]; + + // Only load the bootstrap script after every other script has finished loading. + if (script.src == this.loadConfig.bootstrapScript.src) { + this.loadConfig.tryLoadBootstrapScript = true; + continue; + } + // Skip loading already-loaded scripts. + if (script.id == null || self.$dartLoader.moduleIdToUrl.has(script.id)) { + continue; + } + + // Register this script's resolved URL. + let resolvedSrc = this.registerScript(script); + + // Deferred scripts should be registered but not added during bootstrap. + if (self.$dartLoader.bootstrapModules !== void 0 && + !self.$dartLoader.bootstrapModules.has(script.id)) { + continue; + } + + if (!allowScriptFn || allowScriptFn(script)) { + this.queue.push({ id: script.id, src: resolvedSrc }); + } + } + + if (this.queue.length > 0) { + console.info( + `DDC is about to load ${this.queue.length}/${scripts.length} scripts with pool size = ${this.loadConfig.maxRequestPoolSize}`); + } + }; + + // Creates a script element to be loaded into the provided container. + createAndLoadScript(src, id, container, onError, onLoad) { + let el = self.dart_library.createScript(); + el.src = policy.createScriptURL(src); + el.async = false; + el.defer = true; + el.id = id; + el.onerror = onError; + el.onload = onLoad; + container.appendChild(el); + }; + + // Retrieves scripts from the loader queue, with at most [maxRequests] + // outgoing requests. + // + // TODO(markzipan): Rewrite this with a promise pool. + loadMore(maxRequests) { + let fragment = document.createDocumentFragment(); + let inflightRequests = 0; + while (this.queue.length > 0 && inflightRequests++ < maxRequests) { + const script = this.queue.shift(); + this.numToLoad++; + this.createAndLoadScript( + script.src.toString(), + script.id, + fragment, + this.onError.bind(this), + this.onLoad.bind(this) + ); + } + if (inflightRequests > 0) { + document.head.appendChild(fragment); + } else if (!this.scriptsActivelyBeingLoaded()) { + this.loadBootstrapJs(); + } + }; + + loadOneMore() { + if (this.queue.length > 0) { + this.loadMore(1); + } + }; + + // Loads modules when running with Chrome. + loadEnqueuedModules() { + this.loadMore(this.loadConfig.maxRequestPoolSize); + }; + + // Loads modules when running with d8. + loadEnqueuedModulesForD8() { + if (!self.dart_library.isD8) { + throw Error("'loadEnqueuedModulesForD8' is only supported in D8."); + } + // Load all enqueued scripts sequentially. + for (let i = 0; i < this.queue.length; i++) { + const script = this.queue[i]; + self.load(script.src.toString()); + } + this.queue.length = 0; + // Load the bootstrapper script if it wasn't already loaded. + if (this.loadConfig.tryLoadBootstrapScript) { + const script = this.loadConfig.bootstrapScript; + const src = this.registerScript(script); + self.load(src); + this.loadConfig.tryLoadBootstrapScript = false; + } + return; + }; + + // Loads just the bootstrap script. + // + // The bootstrapper is loaded only after all other scripts are loaded. + loadBootstrapJs() { + if (!this.loadConfig.tryLoadBootstrapScript) { + return; + } + const script = this.loadConfig.bootstrapScript; + const src = this.registerScript(script); + this.createAndLoadScript(src, script.id, document.head, null, null); + this.loadConfig.tryLoadBootstrapScript = false; + }; + + // Loads/retries compiled JS scripts. + // + // Should always be called after a script is loaded or errors. + processAfterLoadOrErrorEvent() { + if (this.scriptsActivelyBeingLoaded()) { + if (this.numFailed == 0) { + this.loadOneMore(); + } else if (this.attemptCount > this.maxAttempts) { + // Some scripts have failed to load. Continue loading the rest. + this.loadOneMore(); + } else { + // Some scripts have failed to load, but we can still make another + // load attempt. Wait for scheduled scripts to finish. + } + return; + } + + // Retry failed scripts to a limit, then load the bootstrap script. + if (this.numFailed == 0) { + this.loadBootstrapJs(); + return; + } + // Reload whatever failed if maxAttempts is not reached. + if (this.numFailed > 0) { + if (this.attemptCount <= this.loadConfig.maxAttempts) { + this.nextAttempt(); + } else { + console.error( + `Failed to load DDC scripts after ${this.loadConfig.maxAttempts} tries`); + this.loadConfig.onLoadError(); + this.loadBootstrapJs(); + } + } + }; + + onLoad(e) { + this.numLoaded++; + if (e.target.src == this.loadConfig.bootstrapScript.src) { + this.loadConfig.onBootstrapSuccess(); + } + this.processAfterLoadOrErrorEvent(); + }; + + onError(e) { + this.numFailed++; + const target = e.target; + self.$dartLoader.moduleIdToUrl.delete(target.id); + self.$dartLoader.urlToModuleId.delete(target.src); + self.deferred_loader.clearModule(target.id); + + if (target.src == this.loadConfig.bootstrapScript.src) { + this.loadConfig.onBootstrapError(); + } + this.processAfterLoadOrErrorEvent(); + }; + }; + + let policy = { + createScriptURL: function (src) { return src; } + }; + + if (self.trustedTypes && self.trustedTypes.createPolicy) { + policy = self.trustedTypes.createPolicy("dartDdcModuleUrl", policy); + } + + self.$dartLoader.loadScripts = function (scripts, loader) { + loader.loadConfig.loadScriptFn = function (loader) { + loader.addScriptsToQueue(scripts, null); + loader.loadEnqueuedModules(); + }; + loader.nextAttempt(); + }; +})(); + +if (!self.deferred_loader) { + self.deferred_loader = { + // Module IDs already loaded on the page (e.g., during bootstrap or after + // loadLibrary is called). + loadedModules: new Set(), + // An import graph of all direct imports (not deferred). + moduleGraph: new Map(), + // Maps module IDs to their resolved urls. + moduleToUrl: new Map(), + // Module IDs mapped to their resolved or resolving promises. + moduleToPromise: new Map(), + // Deferred libraries on which 'loadLibrary' have already been called. + // Load Ids are a composite of the URI of originating load's library and + // the target library name. + loadIds: new Set(), + }; + + /** + * Must be called before 'main' to initialize the deferred loader. + * @param {!Map} moduleToUrlMapping + * @param {!Map>} moduleGraph non-deferred import graph + * @param {!Array} loadedModules moduled loaded during bootstrap + */ + self.deferred_loader.initDeferredLoader = function ( + moduleToUrlMapping, moduleGraph, loadedModules) { + self.deferred_loader.moduleToUrl = moduleToUrlMapping; + self.deferred_loader.moduleGraph = moduleGraph; + for (let i = 0; i < loadedModules.length; i++) { + let module = loadedModules[i]; + self.deferred_loader.loadedModules.add(module); + self.deferred_loader.moduleToPromise.set(module, Promise.resolve()); + } + }; + + /** + * Returns all modules downstream of [moduleId] that are visible + * (i.e., not deferred) and have not already been loaded. + * @param {string} moduleId + * @return {!Array} module IDs that must be loaded with [moduleId] + */ + let dependenciesToLoad = function (moduleId) { + let stack = [moduleId]; + let seen = new Set(); + while (stack.length > 0) { + let module = stack.pop(); + if (seen.has(module)) continue; + seen.add(module); + stack = stack.concat(self.deferred_loader.moduleGraph.get(module)); + } + let dependencies = []; + seen.forEach(module => { + if (self.deferred_loader.loadedModules.has(module)) return; + dependencies.push(module); + }); + return dependencies; + }; + + /** + * Loads [moduleUrl] onto this instance's DDC app's page, then invokes + * [onLoad]. + * @param {string} moduleUrl + * @param {function()} onLoad Callback after a successful load + */ + let loadScript = function (moduleUrl, onLoad) { + // A head element won't be created for D8, so just load synchronously. + if (self.dart_library.isD8) { + self.load(moduleUrl); + onLoad(); + return; + } + let script = dart_library.createScript(); + let policy = { + createScriptURL: function (src) { + return src; + } + }; + if (self.trustedTypes && self.trustedTypes.createPolicy) { + policy = self.trustedTypes.createPolicy('dartDdcModuleUrl', policy); + } + script.setAttribute('src', policy.createScriptURL(moduleUrl)); + script.async = false; + script.defer = true; + script.onload = onLoad; + self.document.head.appendChild(script); + }; + + /** + * Performs a deferred load, calling [onSuccess] or [onError] callbacks when + * the deferred load completes or fails, respectively. + * @param {string} loadId {library URI}:{resource name being loaded} + * @param {string} targetModule moduleId of the resource requested by [loadId] + * @param {function(function())} onSuccess callback after a successful load + * @param {function(!Error)} onError callback after a failed load + */ + self.deferred_loader.loadDeferred = function ( + loadId, targetModule, onSuccess, onError) { + // loadLibrary had already been called, and its module has already been + // loaded, so just complete the future. + if (self.deferred_loader.loadIds.has(loadId)) { + onSuccess(); + return; + } + + // The module's been loaded, so mark this import as loaded and finish. + if (self.deferred_loader.loadedModules.has(targetModule)) { + self.deferred_loader.loadIds.add(loadId); + onSuccess(); + return; + } + + // The import's module has not been loaded, so load it and its dependencies + // before completing the callback. + let modulesToLoad = dependenciesToLoad(targetModule); + Promise + .all(modulesToLoad.map(module => { + let url = self.deferred_loader.moduleToUrl.get(module); + if (url === void 0) { + console.log('Unable to find URL for module: ' + module); + return; + } + let promise = self.deferred_loader.moduleToPromise.get(module); + if (promise !== void 0) return promise; + self.deferred_loader.moduleToPromise.set( + module, + new Promise((resolve) => loadScript(url, () => { + self.deferred_loader.loadedModules.add(module); + resolve(); + }))); + return self.deferred_loader.moduleToPromise.get(module); + })) + .then(() => { + onSuccess(() => self.deferred_loader.loadIds.add(loadId)); + }) + .catch((error) => { + onError(error.message); + }); + }; + + /** + * Returns whether or not the module containing [loadId] has finished loading. + * @param {string} loadId library URI concatenated with the resource being + * loaded + * @return {boolean} + */ + self.deferred_loader.isLoaded = function (loadId) { + return self.deferred_loader.loadIds.has(loadId); + }; + + /** + * Removes references to [moduleId] in the deferred loader. + * @param {string} moduleId + * + * TODO(markzipan): Determine how deep we should clear moduleId's references. + */ + self.deferred_loader.clearModule = function (moduleId) { + self.deferred_loader.loadedModules.delete(moduleId); + self.deferred_loader.moduleToUrl.delete(moduleId); + self.deferred_loader.moduleToPromise.delete(moduleId); + }; + + /** + * Clears state required for hot restart. + */ + self.deferred_loader.hotRestart = function () { + self.deferred_loader.loadIds = new Set(); + }; +} + +(function(dartDevEmbedder) { + 'use strict'; + + if (dartDevEmbedder) { + console.warn('Dart Development Embedder is already defined.'); + return; + } + + /** + * Manager for the state of libraries that orchestrates loading and reloading + * of libraries. + * + * A library moves through multiple phases from the start of the application: + * - Definition Phase: A library defines itself by declaring it's existence + * to the library manager and provides an initialization function. At this + * point the library is known to exist but is not yet usable. It is an + * error to import a library that has not been defined. + * - Initialization Phase: The library's initialization function is evaluated + * to create a library object containing all of its members. After + * initialization a library is ready to be linked. + * - Link Phase: The link function (a library member synthesized by the + * compiler) is called to connect class hierarchies of the classes defined + * by the library. This can trigger the initialization and linking of + * dependency libraries. After a library has been linked it is ready for + * use in the application. + */ + class LibraryManager { + // A growable mapping of library names to their initialization functions. + libraryInitializers = Object.create(null); + + // A growable mapping of library names to their initialized library objects. + // + // These are the result of calling a library's initialization function. + libraries = Object.create(null); + + pendingHotReloadLibraryNames = null; + pendingHotReloadFileUrls = null; + pendingHotReloadLibraryInitializers = Object.create(null); + + pendingHotRestartLibraryInitializers = Object.create(null); + + // The name of the entrypoint module. Set when the application starts for + // the first time and used during a hot restart. + savedEntryPointLibraryName = null; + + // The current hot restart generation. + // + // 0-indexed and increases by 1 on every successful hot restart. + // This value is read to determine the 'current' hot restart generation + // in our hot restart tests. This closely tracks but is not the same as + // `hotRestartIteration` in DDC's runtime. + // TODO(nshahan): This value should become shared across the embedder and + // the runtime. + hotRestartGeneration = 0; + + hotRestartInProgress = false; + + // TODO(nshahan): Set to true at the start of the hot reload process. + hotReloadInProgress = false; + + // The current hot reload generation. + // + // 0-indexed and increases by 1 on every successful hot reload. + hotReloadGeneration = 0; + + // The name of the entrypoint module. Set when the application starts for + // the first time and used during a hot restart. + savedEntryPointLibraryName = null; + savedDartSdkRuntimeOptions = null; + + // Whether we've initialized the necessary SDK libraries before any code or + // debugging APIs can execute. + // + // This should be reset whenever we recreate `libraries`, like during a hot + // restart. + triggeredSDKLibrariesWithSideEffects = false; + + createEmptyLibrary() { + return Object.create(null); + } + + // See docs on `DartDevEmbedder.runMain`. + defineLibrary(libraryName, initializer) { + // TODO(nshahan): Make this test stronger and check for generations. A + // library that is part of a pending hot reload could also be defined as + // part of the previous generation. + if (this.hotReloadInProgress) { + if (this.pendingHotReloadLibraryNames.includes(libraryName)) { + // If this is a library we're expecting to hot reload then collect the + // initializer. + this.pendingHotReloadLibraryInitializers[libraryName] = initializer; + } else if (!(libraryName in this.libraryInitializers)) { + // Otherwise if this is a new library (added via a new import), then + // add the initializer to the base set of libraries. + this.libraryInitializers[libraryName] = initializer; + } + // Otherwise this library is not expected to be hot reload so ignore it. + } else if (libraryManager.hotRestartInProgress) { + // TODO(srujzs): We should have a `pendingHotRestartLibraryNames` set + // like we do with hot reload, but that requires a change to the + // `hotRestart` API. This would prevent libraries that have different + // names from the ones we expect to be compiled during a hot restart + // from being accidentally treated as part of the hot restart. + this.pendingHotRestartLibraryInitializers[libraryName] = initializer; + } else if (libraryName in this.libraryInitializers) { + throw 'Library ' + libraryName + + ' was previously defined but DDC is not currently executing a hot ' + + ' reload or a hot restart. Failed to define the library.'; + } else { + this.libraryInitializers[libraryName] = initializer; + } + } + + /** + * Initializes and links a library. + * + * @param {string} libraryName Name of the library to be initialized and + * linked. + * @param {?function (Object?)} installFn A function to call to install the + * initialized library object into the context of an import. See + * `importLibrary` for more details. + * @return {!Object} The library object ready for use by the application. + */ + initializeAndLinkLibrary(libraryName, installFn) { + if (!this.triggeredSDKLibrariesWithSideEffects) { + this.triggerSDKLibrariesWithSideEffects(); + } + let currentLibrary = this.libraries[libraryName]; + if (currentLibrary == null) { + currentLibrary = this.createEmptyLibrary(); + // Run the initialization logic. + let initializer = this.libraryInitializers[libraryName]; + if (initializer == null) { + throw 'Library not defined: ' + libraryName + '. Failed to initialize.'; + } + initializer(currentLibrary); + // We make the library available in the map before linking to break out + // of cycles in library dependencies. + // Invariant: during linking a library dependency can be read in a state + // where it is initialized but may not be linked. + this.libraries[libraryName] = currentLibrary; + // Link the library. This action will trigger the initialization and + // linking of dependency libraries as needed. + currentLibrary[linkSymbol](); + } + if (installFn != null) { + installFn(currentLibrary); + } + // Invariant: at this point the library and all of its recursive + // dependencies are fully initialized and linked. + return currentLibrary; + } + + // See docs on `DartDevEmbedder.runMain`. + importLibrary(libraryName, installFn) { + let currentLibrary = this.libraries[libraryName]; + if (currentLibrary != null) { + // Library has already been initialized and linked. + return currentLibrary; + } + // If there is no install function, the library must be initialized and + // linked immediately. + if (installFn == null) { + // TODO(nshahan): Should we make this a separate API only used for the + // SDK imports? + return this.initializeAndLinkLibrary(libraryName); + } + + // Library initialization is lazy and only performed on the first access. + return new Proxy(Object.create(null), { + get: function(_, property) { + let library = + libraryManager.initializeAndLinkLibrary(libraryName, installFn); + return library[property]; + }, + set: function(_, property, value) { + let library = + libraryManager.initializeAndLinkLibrary(libraryName, installFn); + library[property] = value; + return true; + }, + }); + } + + /** + * Forces the SDK libraries with side effects on the JavaScript side to be + * initialized and linked. + * + * These side effects could be required for correct Dart semantics + * (ex: dart:_interceptors) or observable from a carefully crafted user + * program (ex: dart:html). In either case, the dependencies on the side + * effects are not expressed through a Dart import so the libraries need + * to be loaded manually before the user program starts running or before + * any debugging API is used. + */ + triggerSDKLibrariesWithSideEffects() { + this.triggeredSDKLibrariesWithSideEffects = true; + this.initializeAndLinkLibrary('dart:_runtime'); + this.initializeAndLinkLibrary('dart:_interceptors'); + this.initializeAndLinkLibrary('dart:_native_typed_data'); + this.initializeAndLinkLibrary('dart:html'); + this.initializeAndLinkLibrary('dart:indexed_db'); + this.initializeAndLinkLibrary('dart:svg'); + this.initializeAndLinkLibrary('dart:web_audio'); + this.initializeAndLinkLibrary('dart:web_gl'); + } + + // Runs the 'main' method on `entryPointLibrary` while attaching + // `capturedMainHandler` and `mainErrorCallback`. + _runMain(entryPointLibrary, args = []) { + // TODO(35113): Provide the ability to pass arguments in a type safe way. + let runMainAndHandleErrors = () => { + try { + let mainValue = entryPointLibrary.main(args); + // Attach the error callback to main's future if it's async. + if (dartDevEmbedderConfig.mainErrorCallback != null && + mainValue != null && mainValue.catchError != null) { + mainValue.catchError((e) => { + dartDevEmbedderConfig.mainErrorCallback(); + throw e; + }); + } + } catch (e) { + // Invoke the error callback if main is sync. This doesn't conflict + // with the rethrow in the async path since DDC catches async errors + // in a separate code path. + if (dartDevEmbedderConfig.mainErrorCallback != null) { + dartDevEmbedderConfig.mainErrorCallback(); + } + throw e; + } + }; + if (dartDevEmbedderConfig.capturedMainHandler) { + dartDevEmbedderConfig.capturedMainHandler(runMainAndHandleErrors); + } else { + runMainAndHandleErrors(); + } + } + + // See docs on `DartDevEmbedder.runMain`. + runMain(entryPointLibraryName, dartSdkRuntimeOptions) { + this.setDartSDKRuntimeOptions(dartSdkRuntimeOptions); + console.log( + 'Starting application from main method in: ' + entryPointLibraryName + + '.'); + let entryPointLibrary = + this.initializeAndLinkLibrary(entryPointLibraryName); + this.savedEntryPointLibraryName = entryPointLibraryName; + this.savedDartSdkRuntimeOptions = dartSdkRuntimeOptions; + this._runMain(entryPointLibrary); + } + + setDartSDKRuntimeOptions(options) { + let dartRuntimeLibrary = this.importLibrary('dart:_runtime'); + // TODO(nshahan) Use a single method in the Dart SDK to set all options? + // Or assign the single JS object and read it from the SDK? + if (options.weakNullSafetyErrors != null) { + dartRuntimeLibrary.weakNullSafetyErrors(options.weakNullSafetyErrors); + } + if (options.nonNullAsserts != null) { + dartRuntimeLibrary.nonNullAsserts(options.nonNullAsserts); + } + if (options.nativeNonNullAsserts != null) { + dartRuntimeLibrary.nativeNonNullAsserts(options.nativeNonNullAsserts); + } + if (options.jsInteropNonNullAsserts != null) { + dartRuntimeLibrary.jsInteropNonNullAsserts( + options.jsInteropNonNullAsserts); + } + } + + /** + * Begins a hot reload operation. + * + * @param {!Array} filesToLoad The urls of the files that contain + * the libraries to hot reload. + * @param {!Array} librariesToReload The names of the libraries to + * hot reload. + */ + async hotReloadStart(filesToLoad, librariesToReload) { + // TODO(60842): When deferred loading is implemented, block hot reloads + // until all active deferred loads have completed. + this.hotReloadInProgress = true; + this.pendingHotReloadFileUrls ??= filesToLoad; + this.pendingHotReloadLibraryNames ??= librariesToReload; + // Trigger download of the new library versions. + let reloadFilePromises = []; + for (let file of this.pendingHotReloadFileUrls) { + reloadFilePromises.push(new Promise((resolve) => { + self.$dartLoader.forceLoadScript(file, resolve); + })); + } + await Promise.all(reloadFilePromises).then((_) => { + if (dartDevEmbedderConfig.capturedHotReloadEndHandler != null) { + // Let the app decide when to update the libraries. + dartDevEmbedderConfig.capturedHotReloadEndHandler(() => { + this.hotReloadEnd(); + }); + } else { + this.hotReloadEnd(); + } + }); + } + + /** + * Completes a hot reload operation. + * + * This method runs synchronously to guarantee that all libraries + * are in a consistent state before yielding control back to the + * application. + */ + hotReloadEnd() { + // Clear RTI subtype caches before initializing libraries. + // These needs to be done before hot reload completes (and any new + // libraries initialize) in case subtype hierarchies updated. + let dartRtiLibrary = this.importLibrary('dart:_rti'); + dartRtiLibrary.resetRtiSubtypeCaches(); + + // On a hot reload, we reuse the existing library objects to ensure all + // references remain valid and continue to be unique. We track in + // `previouslyLoaded` which libraries already exist in the system, so we + // can properly initialize and link them with the new version of the code. + let previouslyLoaded = Object.create(null); + for (let name of this.pendingHotReloadLibraryNames) { + previouslyLoaded[name] = (this.libraries[name] != null); + } + + // All initializers are updated, but only libraries that were previously + // loaded need to be reinitialized. + for (let name of this.pendingHotReloadLibraryNames) { + let initializer = this.pendingHotReloadLibraryInitializers[name]; + this.libraryInitializers[name] = initializer; + if (previouslyLoaded[name]) { + initializer(this.libraries[name]); + } + } + + // Then we link the existing libraries. Note this may trigger initializing + // and linking new library dependencies that were not present before and + // requires for all library initializers to be up to date. + for (let name in this.pendingHotReloadLibraryInitializers) { + if (previouslyLoaded[name]) { + this.libraries[name][linkSymbol](); + } + } + // Cleanup. + this.pendingHotReloadLibraryInitializers = Object.create(null); + this.pendingHotReloadLibraryNames = null; + this.pendingHotReloadFileUrls = null; + this.hotReloadInProgress = false; + this.hotReloadGeneration += 1; + } + + /** + * Completes a hot restart operation. + */ + hotRestart() { + if (!this.savedEntryPointLibraryName) { + throw 'Error: Hot restart requested before application started.'; + } + // Clear all libraries. + this.libraries = Object.create(null); + this.triggeredSDKLibrariesWithSideEffects = false; + this.setDartSDKRuntimeOptions(this.savedDartSdkRuntimeOptions); + // Update initializers. They'll be invoked later at some point after we + // call main. + for (let name in this.pendingHotRestartLibraryInitializers) { + let initializer = this.pendingHotRestartLibraryInitializers[name]; + this.libraryInitializers[name] = initializer; + } + let entryPointLibrary = + this.initializeAndLinkLibrary(this.savedEntryPointLibraryName); + // TODO(nshahan): Start sharing a single source of truth for the restart + // generation between the dart:_runtime and this module system. + this.hotRestartGeneration += 1; + console.log( + 'Hot restarting application from main method in: ' + + this.savedEntryPointLibraryName + + ' (generation: ' + this.hotRestartGeneration + ').'); + // Cleanup. + this.hotRestartInProgress = false; + this.pendingHotRestartLibraryInitializers = Object.create(null); + + this._runMain(entryPointLibrary); + } + } + + // This is closed-upon to avoid exposing it through the `dartDevEmbedder`. + const libraryManager = new LibraryManager(); + + function dartDebuggerLibrary() { + return libraryManager.initializeAndLinkLibrary('dart:_debugger'); + } + + function dartDeveloperLibrary() { + return libraryManager.initializeAndLinkLibrary('dart:developer'); + } + + function dartRuntimeLibrary() { + return libraryManager.initializeAndLinkLibrary('dart:_runtime'); + } + + // Map from Dart file path to its stringified source map. It should only be + // set or accessed through the `Debugger`. + const sourceMaps = {}; + + /** + * Common debugging APIs that may be useful for metadata, invocations, + * developer extensions, bootstrapping, and more. + */ + // TODO(56966): A number of APIs in this class consume and return Dart + // objects, nested or otherwise. We should replace them with some kind of + // metadata instead so users don't accidentally rely on the object's + // representation. For now, we warn users to not do so in the APIs below. + class Debugger { + /** + * Returns a JavaScript array of all class names in a Dart library. + * + * @param {string} libraryUri URI of the Dart library. + * @return {!Array} Array containing the class names in the library. + */ + getClassesInLibrary(libraryUri) { + libraryManager.initializeAndLinkLibrary(libraryUri); + return dartRuntimeLibrary().getLibraryMetadata( + libraryUri, libraryManager.libraries); + } + + /** + * Returns a JavaScript object containing metadata of a class in a given + * Dart library. + * + * The object will be formatted as such: + * ``` + * { + * 'className': , + * 'superClassName': + * 'superClassLibraryId': + * 'fields': { + * : { + * 'isConst': , + * 'isFinal': , + * 'isStatic': , + * 'className': , + * 'classLibraryId': , + * } + * }, + * 'methods': { + * : { + * 'isConst': , + * 'isStatic': , + * 'isSetter" , + * 'isGetter" , + * } + * }, + * } + * ``` + * + * @param {string} libraryUri URI of the Dart library that the class is in. + * @param {string} name Name of the Dart class. + * @param {?Object} objectInstance Optional instance of the Dart class that's + * needed to determine the type of any generic members. + * @return {?Object} Object containing the metadata in the + * above format. + */ + getClassMetadata(libraryUri, name, objectInstance) { + libraryManager.initializeAndLinkLibrary(libraryUri); + return dartRuntimeLibrary().getClassMetadata( + libraryUri, name, objectInstance, libraryManager.libraries); + } + + /** + * Returns a JavaScript object containing metadata about a Dart value. + * + * The object will be formatted as such: + * ``` + * { + * 'className': , + * 'libraryId': , + * 'runtimeKind': , + * 'length': , + * 'typeName': , + * } + * ``` + * + * @param {!Object} value Dart value for which metadata is computed. + * @return {!Object} Object containing the metadata in the + * above format. + */ + getObjectMetadata(value) { + return dartRuntimeLibrary().getObjectMetadata(value); + } + + /** + * Returns the name of the given function. If it's bound to an object of + * class `C`, returns `C.` instead. + * + * @param {!Object} fun Dart function for which the name is returned. + * @return {string} Name of the given function in the above format. + */ + getFunctionName(fun) { + return dartRuntimeLibrary().getFunctionMetadata(fun); + } + + /** + * Returns an array of all the field names in the Dart object. + * + * @param {!Object} object Dart object whose field names are collected. + * @return {!Array} Array of field names. + */ + getObjectFieldNames(object) { + return dartRuntimeLibrary().getObjectFieldNames(object); + } + + /** + * If given a Dart `Set`, `List`, or `Map`, returns a sub-range array of at + * most the given number of elements starting at the given offset. If given + * any other Dart value, returns the original value. Any Dart values + * returned from this API should be treated as opaque pointers and should + * not be interacted with. + * + * @param {!Object} object Dart object for which the sub-range is computed. + * @param {number} offset Integer index at which the sub-range should start. + * @param {number} count Integer number of values in the sub-range. + * @return {!any} Either the sub-range or the original object. + */ + getSubRange(object, offset, count) { + return dartRuntimeLibrary().getSubRange(object, offset, count); + } + + /** + * Returns a JavaScript object containing the entries for a given Dart `Map` + * that will be formatted as: + * + * ``` + * { + * 'keys': [ , ...], + * 'values': [ , ...], + * } + * ``` + * + * Any Dart values returned from this API should be treated as opaque + * pointers and should not be interacted with. + * + * @param {!Object} map Dart `Map` whose entries will be copied. + * @return {!Object} Object containing the entries in + * the above format. + */ + getMapElements(map) { + return dartRuntimeLibrary().getMapElements(map); + } + + /** + * Returns a JavaScript object containing the entries for a given Dart `Set` + * that will be formatted as: + * + * ``` + * { + * 'entries': [ , ...], + * } + * ``` + * + * Any Dart values returned from this API should be treated as opaque + * pointers and should not be interacted with. + * + * @param {!Object} set Dart `Set` whose entries will be copied. + * @return {!Object} Object containing the entries in the + * above format. + */ + getSetElements(set) { + return dartRuntimeLibrary().getSetElements(set); + } + + /** + * Returns a JavaScript object containing metadata for a given Dart `Record` + * that will be formatted as: + * + * ``` + * { + * 'positionalCount': , + * 'named': [ , ...], + * 'values': [ , ..., , ... ], + * } + * ``` + * + * Any Dart values returned from this API should be treated as opaque + * pointers and should not be interacted with. + * + * @param {!Object} record Dart `Record` whose metadata will be computed. + * @return {!Object} Object containing the metadata in the + * above format. + */ + getRecordFields(record) { + return dartRuntimeLibrary().getRecordFields(record); + } + + /** + * Returns a JavaScript object containing metadata for a given Dart + * `Record`'s runtime type that will be formatted as: + * + * ``` + * { + * 'positionalCount': , + * 'named': [ , ...], + * 'types': [ , ..., , ... ], + * } + * ``` + * + * Any Dart values returned from this API should be treated as opaque + * pointers and should not be interacted with. + * + * @param {!Object} recordType Dart `Type` of a `Record` whose metadata will + * be computed. + * @return {!Object} Object containing the metadata in the + * above format. + */ + getRecordTypeFields(recordType) { + return dartRuntimeLibrary().getRecordTypeFields(recordType); + } + + /** + * Given a Dart instance, calls the method with the given name in that + * instance and returns the result. + * + * Any Dart values returned from this API should be treated as opaque + * pointers and should not be interacted with. + * + * @param {?Object} instance Dart instance whose method will be called. + * @param {string} name Name of the method. + * @param {!Array} args Array of arguments passed to the method. + * @return {?any} Result of calling the method. + */ + callInstanceMethod(instance, name, args) { + return dartRuntimeLibrary().dsendRepl(instance, name, args); + } + + /** + * Given a Dart library URI, calls the method with the given name in that + * library and returns the result. + * + * Any Dart values returned from this API should be treated as opaque + * pointers and should not be interacted with. + * + * @param {string} libraryUri Dart library URI in which the method exists. + * @param {string} name Name of the method. + * @param {!Array} args Array of arguments passed to the method. + * @return {?any} Result of calling the method. + */ + callLibraryMethod(libraryUri, name, args) { + let library = libraryManager.initializeAndLinkLibrary(libraryUri); + return library[name].apply(library, args); + } + + /** + * Register the DDC Chrome DevTools custom formatter into the global + * `devtoolsFormatters` property. + */ + registerDevtoolsFormatter() { + dartDebuggerLibrary().registerDevtoolsFormatter(); + } + + /** + * Invoke a registered extension with the given name and encoded map. + * + * @param {string} methodName The name of the registered extension. + * @param {string} encodedJson The encoded string map that will be passed as + * a parameter to the invoked method. + * @return {!Promise} Promise that will await the invocation of the + * extension. + */ + invokeExtension(methodName, encodedJson) { + return dartDeveloperLibrary().invokeExtension(methodName, encodedJson); + } + + /** + * Returns a JavaScript array containing the names of the extensions + * registered in `dart:developer`. + * + * @return {!Array} Array containing the extension names. + */ + get extensionNames() { + return dartDeveloperLibrary()._extensions.keys.toList(); + } + + /** + * Returns a Dart stack trace string given an error caught in JS. If the + * error is a Dart error or JS `Error`, we use the built-in stack. If the + * error is neither, we try to construct a stack trace if possible. + * + * @param {?any} error The error for which a stack trace will be produced. + * @return {string} The stringified stack trace. + */ + stackTrace(error) { + return dartRuntimeLibrary().stackTrace(error).toString(); + } + + /** + * Entrypoint for DDC-generated code to set a source map for a given + * library bundle name. + * + * @param {string} libraryBundleName The name of a compiled Dart library + * bundle. + * @param {string} sourceMap The stringified source map. + */ + // TODO(srujzs): If users shouldn't ever need to use this, can we make this + // not accessible for them? + setSourceMap(libraryBundleName, sourceMap) { + sourceMaps[libraryBundleName] = sourceMap; + } + + /** + * Returns the source map path for a given library bundle name, if one was + * registered. + * + * @param {string} libraryBundleName The name of a compiled Dart library + * bundle. + * @return {?string} The stringified source map if it was registered. + */ + getSourceMap(libraryBundleName) { + return sourceMaps[libraryBundleName]; + } + } + + const debugger_ = new Debugger(); + + /** + * Holds public configurations for the `DartDevEmbedder`. + * These properties may be modified during the runtime of the app. + */ + class DartDevEmbedderConfiguration { + /** + * An optional handler that acts as a wrapper around the invocation of the + * Dart program's 'main' method. Passed an opaque function as an argument + * that invokes 'main' when called. + * @type {?function(function())} + */ + capturedMainHandler = null; + + /** + * An optional callback that is invoked when 'main' throws. + * @type {?function()} + */ + mainErrorCallback = null; + + /** + * An optional handler that acts as a wrapper around the push of the hot + * reloaded libraries into the Dart runtime which completes the hot reload. + * Passed an opaque function as an argument that pushes the libraries that + * were previously loaded into the page during a call to + * `DartDevEmbedder.hotReload` when called. + * @type {?function(function())} + */ + capturedHotReloadEndHandler = null; + } + + const dartDevEmbedderConfig = new DartDevEmbedderConfiguration(); + + /** + * A symbol used to store the 'link' function on libraries. + */ + const linkSymbol = Symbol('link'); + + /** + * The API for embedding a Dart application in the page at development time + * that supports stateful hot reloading. + */ + class DartDevEmbedder { + /** + * @return {!DartDevEmbedderConfiguration} The configururation object for + * this `DartDevEmbedder`. + */ + get config() { + return dartDevEmbedderConfig; + } + + /** + * @return {!Symbol} The symbol used to store the 'link' function on + * libraries. + * + * NOTE: This is intended to only be used by DDC generated code. + */ + get linkSymbol() { + return linkSymbol; + } + + /** + * Runs the Dart main method. + * + * Intended to be invoked by the bootstrapping code where the application is + * being embedded. + * + * @param {string} entryPointLibraryName The name of the library that + * contains an entry point main method. + * @param {!Object} dartSdkRuntimeOptions An options bag for + * setting the runtime options in the Dart SDK. + */ + runMain(entryPointLibraryName, dartSdkRuntimeOptions) { + libraryManager.runMain(entryPointLibraryName, dartSdkRuntimeOptions); + } + + /** + * Declares the existence of a library identified by the `libraryName` and + * initialized by `initFn`. + * + * Should only be called from DDC compiled code. + * + * The initialization function may be called lazily when needed. + * + * @param {string} libraryName Name for referencing the library being + * defined. + * @param {function (!Object): !Object} initializer Function called to + * initialize the library. This callback takes a library object and + * installs the library members into it. + */ + defineLibrary(libraryName, initializer) { + libraryManager.defineLibrary(libraryName, initializer); + } + + /** + * Imports a library to make it available in the context of the import. + * + * Should only be called from DDC compiled code. + * + * The imported library may be initialized and linked lazily at the time of + * the first member access. + * + * @param {string} libraryName Name of the library to import. + * @param {?function (!Object)} installFn A callback invoked with the library + * object after the library has been initialized and linked. This + * notification is used to improve performance. Callers may use this + * callback to replace the proxy object with the real library object and, + * in doing so, remove the overhead of jumping through an indirect proxy on + * every property access. + * @return {!Object} A library object or a proxy to a library object. + */ + importLibrary(libraryName, installFn) { + return libraryManager.importLibrary(libraryName, installFn); + } + + /** + * DDC's entrypoint for triggering a hot reload. + * + * Previous generations may continue to run until all specified files + * have been loaded and initialized. + * + * @param {!Array} filesToLoad The urls of the files that contain + * the libraries to hot reload. + * @param {!Array} librariesToReload The names of the libraries to + * hot reload. + */ + async hotReload(filesToLoad, librariesToReload) { + await libraryManager.hotReloadStart(filesToLoad, librariesToReload); + } + + /** + * Immediately triggers a hot restart of the application losing all state + * and running the main method again. + */ + async hotRestart() { + libraryManager.hotRestartInProgress = true; + await self.$dartReloadModifiedModules( + libraryManager.savedEntryPointLibraryName, () => { + libraryManager.hotRestart(); + }); + } + + + /** + * @return {number} The current hot reload generation of the running + * application. + */ + get hotReloadGeneration() { + return libraryManager.hotReloadGeneration; + } + + /** + * @return {number} The current hot restart generation of the running + * application. + */ + get hotRestartGeneration() { + return libraryManager.hotRestartGeneration; + } + + /** + * @return {!Debugger} Common debugging APIs that may be useful for metadata, + * invocations, developer extensions, bootstrapping, and more. + */ + get debugger() { + return debugger_; + } + } + + self.dartDevEmbedder = new DartDevEmbedder(); +})(self.dartDevEmbedder); diff --git a/build/packages/$sdk/dev_compiler/web/dart_stack_trace_mapper.js b/build/packages/$sdk/dev_compiler/web/dart_stack_trace_mapper.js new file mode 100644 index 0000000..3621764 --- /dev/null +++ b/build/packages/$sdk/dev_compiler/web/dart_stack_trace_mapper.js @@ -0,0 +1,5687 @@ +(function dartProgram(){function copyProperties(a,b){var s=Object.keys(a) +for(var r=0;r=0)return true +if(typeof version=="function"&&version.length==0){var q=version() +if(/^\d+\.\d+\.\d+\.\d+$/.test(q))return true}}catch(p){}return false}() +function inherit(a,b){a.prototype.constructor=a +a.prototype["$i"+a.name]=a +if(b!=null){if(z){Object.setPrototypeOf(a.prototype,b.prototype) +return}var s=Object.create(b.prototype) +copyProperties(a.prototype,s) +a.prototype=s}}function inheritMany(a,b){for(var s=0;s4294967295)throw A.b(A.y(a,0,4294967295,"length",null)) +return J.jb(new Array(a),b)}, +ja(a,b){if(a<0)throw A.b(A.I("Length must be a non-negative integer: "+a)) +return A.h(new Array(a),b.h("w<0>"))}, +jb(a,b){var s=A.h(a,b.h("w<0>")) +s.$flags=1 +return s}, +fI(a){if(a<256)switch(a){case 9:case 10:case 11:case 12:case 13:case 32:case 133:case 160:return!0 +default:return!1}switch(a){case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8232:case 8233:case 8239:case 8287:case 12288:case 65279:return!0 +default:return!1}}, +jc(a,b){var s,r +for(s=a.length;b0;b=r){r=b-1 +if(!(r>>0===b&&b").E(c).h("c4<1,2>")) +return new A.aF(a,b.h("@<0>").E(c).h("aF<1,2>"))}, +je(a){return new A.cK("Field '"+a+"' has been assigned during initialization.")}, +eC(a){var s,r=a^48 +if(r<=9)return r +s=a|32 +if(97<=s&&s<=102)return s-87 +return-1}, +d5(a,b){a=a+b&536870911 +a=a+((a&524287)<<10)&536870911 +return a^a>>>6}, +fW(a){a=a+((a&67108863)<<3)&536870911 +a^=a>>>11 +return a+((a&16383)<<15)&536870911}, +fe(a,b,c){return a}, +fm(a){var s,r +for(s=$.W.length,r=0;rc)A.M(A.y(b,0,c,"start",null))}return new A.bY(a,b,c,d.h("bY<0>"))}, +eU(a,b,c,d){if(t.X.b(a))return new A.bu(a,b,c.h("@<0>").E(d).h("bu<1,2>")) +return new A.T(a,b,c.h("@<0>").E(d).h("T<1,2>"))}, +fX(a,b,c){var s="takeCount" +A.aZ(b,s,t.S) +A.O(b,s) +if(t.X.b(a))return new A.bv(a,b,c.h("bv<0>")) +return new A.aP(a,b,c.h("aP<0>"))}, +jp(a,b,c){var s="count" +if(t.X.b(a)){A.aZ(b,s,t.S) +A.O(b,s) +return new A.b0(a,b,c.h("b0<0>"))}A.aZ(b,s,t.S) +A.O(b,s) +return new A.ai(a,b,c.h("ai<0>"))}, +b4(){return new A.aO("No element")}, +fF(){return new A.aO("Too few elements")}, +aA:function aA(){}, +bp:function bp(a,b){this.a=a +this.$ti=b}, +aF:function aF(a,b){this.a=a +this.$ti=b}, +c4:function c4(a,b){this.a=a +this.$ti=b}, +c3:function c3(){}, +ab:function ab(a,b){this.a=a +this.$ti=b}, +aG:function aG(a,b){this.a=a +this.$ti=b}, +dy:function dy(a,b){this.a=a +this.b=b}, +cK:function cK(a){this.a=a}, +bq:function bq(a){this.a=a}, +dX:function dX(){}, +j:function j(){}, +C:function C(){}, +bY:function bY(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.$ti=d}, +S:function S(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.d=null +_.$ti=c}, +T:function T(a,b,c){this.a=a +this.b=b +this.$ti=c}, +bu:function bu(a,b,c){this.a=a +this.b=b +this.$ti=c}, +bI:function bI(a,b,c){var _=this +_.a=null +_.b=a +_.c=b +_.$ti=c}, +q:function q(a,b,c){this.a=a +this.b=b +this.$ti=c}, +V:function V(a,b,c){this.a=a +this.b=b +this.$ti=c}, +aS:function aS(a,b,c){this.a=a +this.b=b +this.$ti=c}, +bz:function bz(a,b,c){this.a=a +this.b=b +this.$ti=c}, +bA:function bA(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=null +_.$ti=d}, +aP:function aP(a,b,c){this.a=a +this.b=b +this.$ti=c}, +bv:function bv(a,b,c){this.a=a +this.b=b +this.$ti=c}, +bZ:function bZ(a,b,c){this.a=a +this.b=b +this.$ti=c}, +ai:function ai(a,b,c){this.a=a +this.b=b +this.$ti=c}, +b0:function b0(a,b,c){this.a=a +this.b=b +this.$ti=c}, +bS:function bS(a,b,c){this.a=a +this.b=b +this.$ti=c}, +bT:function bT(a,b,c){this.a=a +this.b=b +this.$ti=c}, +bU:function bU(a,b,c){var _=this +_.a=a +_.b=b +_.c=!1 +_.$ti=c}, +bw:function bw(a){this.$ti=a}, +bx:function bx(a){this.$ti=a}, +bK:function bK(a,b){this.a=a +this.$ti=b}, +bL:function bL(a,b){this.a=a +this.b=null +this.$ti=b}, +aH:function aH(){}, +aQ:function aQ(){}, +ba:function ba(){}, +ay:function ay(a){this.a=a}, +cg:function cg(){}, +hZ(a){var s=v.mangledGlobalNames[a] +if(s!=null)return s +return"minified:"+a}, +l6(a,b){var s +if(b!=null){s=b.x +if(s!=null)return s}return t.da.b(a)}, +f(a){var s +if(typeof a=="string")return a +if(typeof a=="number"){if(a!==0)return""+a}else if(!0===a)return"true" +else if(!1===a)return"false" +else if(a==null)return"null" +s=J.bo(a) +return s}, +cW(a){var s,r=$.fO +if(r==null)r=$.fO=Symbol("identityHashCode") +s=a[r] +if(s==null){s=Math.random()*0x3fffffff|0 +a[r]=s}return s}, +fP(a,b){var s,r,q,p,o,n=null,m=/^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(a) +if(m==null)return n +if(3>=m.length)return A.a(m,3) +s=m[3] +if(b==null){if(s!=null)return parseInt(a,10) +if(m[2]!=null)return parseInt(a,16) +return n}if(b<2||b>36)throw A.b(A.y(b,2,36,"radix",n)) +if(b===10&&s!=null)return parseInt(a,10) +if(b<10||s==null){r=b<=10?47+b:86+b +q=m[1] +for(p=q.length,o=0;or)return n}return parseInt(a,b)}, +cX(a){var s,r,q,p +if(a instanceof A.t)return A.L(A.a1(a),null) +s=J.an(a) +if(s===B.S||s===B.U||t.cB.b(a)){r=B.q(a) +if(r!=="Object"&&r!=="")return r +q=a.constructor +if(typeof q=="function"){p=q.name +if(typeof p=="string"&&p!=="Object"&&p!=="")return p}}return A.L(A.a1(a),null)}, +jj(a){var s,r,q +if(typeof a=="number"||A.fc(a))return J.bo(a) +if(typeof a=="string")return JSON.stringify(a) +if(a instanceof A.J)return a.i(0) +s=$.iv() +for(r=0;r<1;++r){q=s[r].cz(a) +if(q!=null)return q}return"Instance of '"+A.cX(a)+"'"}, +ji(){if(!!self.location)return self.location.href +return null}, +fN(a){var s,r,q,p,o=a.length +if(o<=500)return String.fromCharCode.apply(null,a) +for(s="",r=0;r65535)return A.jk(a)}return A.fN(a)}, +jl(a,b,c){var s,r,q,p +if(c<=500&&b===0&&c===a.length)return String.fromCharCode.apply(null,a) +for(s=b,r="";s>>0,s&1023|56320)}}throw A.b(A.y(a,0,1114111,null,null))}, +aw(a,b,c){var s,r,q={} +q.a=0 +s=[] +r=[] +q.a=b.length +B.b.aR(s,b) +q.b="" +if(c!=null&&c.a!==0)c.O(0,new A.dW(q,r,s)) +return J.iQ(a,new A.cE(B.Y,0,s,r,0))}, +jh(a,b,c){var s,r,q +if(Array.isArray(b))s=c==null||c.a===0 +else s=!1 +if(s){r=b.length +if(r===0){if(!!a.$0)return a.$0()}else if(r===1){if(!!a.$1)return a.$1(b[0])}else if(r===2){if(!!a.$2)return a.$2(b[0],b[1])}else if(r===3){if(!!a.$3)return a.$3(b[0],b[1],b[2])}else if(r===4){if(!!a.$4)return a.$4(b[0],b[1],b[2],b[3])}else if(r===5)if(!!a.$5)return a.$5(b[0],b[1],b[2],b[3],b[4]) +q=a[""+"$"+r] +if(q!=null)return q.apply(a,b)}return A.jg(a,b,c)}, +jg(a,b,c){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e +if(Array.isArray(b))s=b +else s=A.at(b,t.z) +r=s.length +q=a.$R +if(rk)return A.aw(a,s,null) +if(rq)return A.aw(a,s,c) +if(s===b)s=A.at(s,t.z) +i=Object.keys(n) +if(c==null)for(o=i.length,h=0;h=s)return A.eO(b,s,a,r) +return A.eW(b,r)}, +kV(a,b,c){if(a>c)return A.y(a,0,c,"start",null) +if(b!=null)if(bc)return A.y(b,a,c,"end",null) +return new A.a3(!0,b,"end",null)}, +ci(a){return new A.a3(!0,a,null,null)}, +b(a){return A.F(a,new Error())}, +F(a,b){var s +if(a==null)a=new A.c_() +b.dartException=a +s=A.lo +if("defineProperty" in Object){Object.defineProperty(b,"message",{get:s}) +b.name=""}else b.toString=s +return b}, +lo(){return J.bo(this.dartException)}, +M(a,b){throw A.F(a,b==null?new Error():b)}, +H(a,b,c){var s +if(b==null)b=0 +if(c==null)c=0 +s=Error() +A.M(A.km(a,b,c),s)}, +km(a,b,c){var s,r,q,p,o,n,m,l,k +if(typeof b=="string")s=b +else{r="[]=;add;removeWhere;retainWhere;removeRange;setRange;setInt8;setInt16;setInt32;setUint8;setUint16;setUint32;setFloat32;setFloat64".split(";") +q=r.length +p=b +if(p>q){c=p/q|0 +p%=q}s=r[p]}o=typeof c=="string"?c:"modify;remove from;add to".split(";")[c] +n=t.j.b(a)?"list":"ByteData" +m=a.$flags|0 +l="a " +if((m&4)!==0)k="constant " +else if((m&2)!==0){k="unmodifiable " +l="an "}else k=(m&1)!==0?"fixed-length ":"" +return new A.c0("'"+s+"': Cannot "+o+" "+l+k+n)}, +cj(a){throw A.b(A.Q(a))}, +al(a){var s,r,q,p,o,n +a=A.hY(a.replace(String({}),"$receiver$")) +s=a.match(/\\\$[a-zA-Z]+\\\$/g) +if(s==null)s=A.h([],t.s) +r=s.indexOf("\\$arguments\\$") +q=s.indexOf("\\$argumentsExpr\\$") +p=s.indexOf("\\$expr\\$") +o=s.indexOf("\\$method\\$") +n=s.indexOf("\\$receiver\\$") +return new A.ea(a.replace(new RegExp("\\\\\\$arguments\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$","g"),"((?:x|[^x])*)"),r,q,p,o,n)}, +eb(a){return function($expr$){var $argumentsExpr$="$arguments$" +try{$expr$.$method$($argumentsExpr$)}catch(s){return s.message}}(a)}, +h_(a){return function($expr$){try{$expr$.$method$}catch(s){return s.message}}(a)}, +eR(a,b){var s=b==null,r=s?null:b.method +return new A.cH(a,r,s?null:b.receiver)}, +ck(a){if(a==null)return new A.cS(a) +if(typeof a!=="object")return a +if("dartException" in a)return A.aX(a,a.dartException) +return A.kQ(a)}, +aX(a,b){if(t.C.b(b))if(b.$thrownJsError==null)b.$thrownJsError=a +return b}, +kQ(a){var s,r,q,p,o,n,m,l,k,j,i,h,g +if(!("message" in a))return a +s=a.message +if("number" in a&&typeof a.number=="number"){r=a.number +q=r&65535 +if((B.c.ap(r,16)&8191)===10)switch(q){case 438:return A.aX(a,A.eR(A.f(s)+" (Error "+q+")",null)) +case 445:case 5007:A.f(s) +return A.aX(a,new A.bN())}}if(a instanceof TypeError){p=$.i3() +o=$.i4() +n=$.i5() +m=$.i6() +l=$.i9() +k=$.ia() +j=$.i8() +$.i7() +i=$.ic() +h=$.ib() +g=p.U(s) +if(g!=null)return A.aX(a,A.eR(A.k(s),g)) +else{g=o.U(s) +if(g!=null){g.method="call" +return A.aX(a,A.eR(A.k(s),g))}else if(n.U(s)!=null||m.U(s)!=null||l.U(s)!=null||k.U(s)!=null||j.U(s)!=null||m.U(s)!=null||i.U(s)!=null||h.U(s)!=null){A.k(s) +return A.aX(a,new A.bN())}}return A.aX(a,new A.d8(typeof s=="string"?s:""))}if(a instanceof RangeError){if(typeof s=="string"&&s.indexOf("call stack")!==-1)return new A.bW() +s=function(b){try{return String(b)}catch(f){}return null}(a) +return A.aX(a,new A.a3(!1,null,null,typeof s=="string"?s.replace(/^RangeError:\s*/,""):s))}if(typeof InternalError=="function"&&a instanceof InternalError)if(typeof s=="string"&&s==="too much recursion")return new A.bW() +return a}, +hT(a){if(a==null)return J.aY(a) +if(typeof a=="object")return A.cW(a) +return J.aY(a)}, +j_(a2){var s,r,q,p,o,n,m,l,k,j,i=a2.co,h=a2.iS,g=a2.iI,f=a2.nDA,e=a2.aI,d=a2.fs,c=a2.cs,b=d[0],a=c[0],a0=i[b],a1=a2.fT +a1.toString +s=h?Object.create(new A.d4().constructor.prototype):Object.create(new A.b_(null,null).constructor.prototype) +s.$initialize=s.constructor +r=h?function static_tear_off(){this.$initialize()}:function tear_off(a3,a4){this.$initialize(a3,a4)} +s.constructor=r +r.prototype=s +s.$_name=b +s.$_target=a0 +q=!h +if(q)p=A.fB(b,a0,g,f) +else{s.$static_name=b +p=a0}s.$S=A.iW(a1,h,g) +s[a]=p +for(o=p,n=1;n=0 +else if(b instanceof A.ar){s=B.a.B(a,c) +return b.b.test(s)}else return!J.eM(b,B.a.B(a,c)).gcm(0)}, +fh(a){if(a.indexOf("$",0)>=0)return a.replace(/\$/g,"$$$$") +return a}, +lm(a,b,c,d){var s=b.bk(a,d) +if(s==null)return a +return A.fo(a,s.b.index,s.gM(),c)}, +hY(a){if(/[[\]{}()*+?.\\^$|]/.test(a))return a.replace(/[[\]{}()*+?.\\^$|]/g,"\\$&") +return a}, +Y(a,b,c){var s +if(typeof b=="string")return A.ll(a,b,c) +if(b instanceof A.ar){s=b.gbp() +s.lastIndex=0 +return a.replace(s,A.fh(c))}return A.lk(a,b,c)}, +lk(a,b,c){var s,r,q,p +for(s=J.eM(b,a),s=s.gt(s),r=0,q="";s.m();){p=s.gn() +q=q+a.substring(r,p.gK())+c +r=p.gM()}s=q+a.substring(r) +return s.charCodeAt(0)==0?s:s}, +ll(a,b,c){var s,r,q +if(b===""){if(a==="")return c +s=a.length +for(r=c,q=0;q=0)return a.split(b).join(c) +return a.replace(new RegExp(A.hY(b),"g"),A.fh(c))}, +hH(a){return a}, +lj(a,b,c,d){var s,r,q,p,o,n,m +for(s=b.aq(0,a),s=new A.c2(s.a,s.b,s.c),r=t.h,q=0,p="";s.m();){o=s.d +if(o==null)o=r.a(o) +n=o.b +m=n.index +p=p+A.f(A.hH(B.a.j(a,q,m)))+A.f(c.$1(o)) +q=m+n[0].length}s=p+A.f(A.hH(B.a.B(a,q))) +return s.charCodeAt(0)==0?s:s}, +ln(a,b,c,d){var s,r,q,p +if(typeof b=="string"){s=a.indexOf(b,d) +if(s<0)return a +return A.fo(a,s,s+b.length,c)}if(b instanceof A.ar)return d===0?a.replace(b.b,A.fh(c)):A.lm(a,b,c,d) +r=J.iJ(b,a,d) +q=r.gt(r) +if(!q.m())return a +p=q.gn() +return B.a.V(a,p.gK(),p.gM(),c)}, +fo(a,b,c,d){return a.substring(0,b)+d+a.substring(c)}, +bs:function bs(a,b){this.a=a +this.$ti=b}, +br:function br(){}, +bt:function bt(a,b,c){this.a=a +this.b=b +this.$ti=c}, +c5:function c5(a,b){this.a=a +this.$ti=b}, +c6:function c6(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.d=null +_.$ti=c}, +cA:function cA(){}, +b2:function b2(a,b){this.a=a +this.$ti=b}, +cE:function cE(a,b,c,d,e){var _=this +_.a=a +_.c=b +_.d=c +_.e=d +_.f=e}, +dW:function dW(a,b,c){this.a=a +this.b=b +this.c=c}, +bQ:function bQ(){}, +ea:function ea(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f}, +bN:function bN(){}, +cH:function cH(a,b,c){this.a=a +this.b=b +this.c=c}, +d8:function d8(a){this.a=a}, +cS:function cS(a){this.a=a}, +J:function J(){}, +ct:function ct(){}, +cu:function cu(){}, +d6:function d6(){}, +d4:function d4(){}, +b_:function b_(a,b){this.a=a +this.b=b}, +cY:function cY(a){this.a=a}, +eg:function eg(){}, +aJ:function aJ(a){var _=this +_.a=0 +_.f=_.e=_.d=_.c=_.b=null +_.r=0 +_.$ti=a}, +dP:function dP(a,b){this.a=a +this.b=b +this.c=null}, +aK:function aK(a,b){this.a=a +this.$ti=b}, +bH:function bH(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=null +_.$ti=d}, +dQ:function dQ(a,b){this.a=a +this.$ti=b}, +aL:function aL(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=null +_.$ti=d}, +eD:function eD(a){this.a=a}, +eE:function eE(a){this.a=a}, +eF:function eF(a){this.a=a}, +ar:function ar(a,b){var _=this +_.a=a +_.b=b +_.e=_.d=_.c=null}, +bb:function bb(a){this.b=a}, +dg:function dg(a,b,c){this.a=a +this.b=b +this.c=c}, +c2:function c2(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +bX:function bX(a,b){this.a=a +this.c=b}, +dn:function dn(a,b,c){this.a=a +this.b=b +this.c=c}, +dp:function dp(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +kn(a){return a}, +jf(a){return new Uint8Array(a)}, +eu(a,b,c){if(a>>>0!==a||a>=c)throw A.b(A.bk(b,a))}, +kk(a,b,c){var s +if(!(a>>>0!==a))if(b==null)s=a>c +else s=b>>>0!==b||a>b||b>c +else s=!0 +if(s)throw A.b(A.kV(a,b,c)) +if(b==null)return c +return b}, +b7:function b7(){}, +bJ:function bJ(){}, +a7:function a7(){}, +ag:function ag(){}, +cP:function cP(){}, +cQ:function cQ(){}, +aM:function aM(){}, +c7:function c7(){}, +c8:function c8(){}, +eX(a,b){var s=b.c +return s==null?b.c=A.ca(a,"fD",[b.x]):s}, +fS(a){var s=a.w +if(s===6||s===7)return A.fS(a.x) +return s===11||s===12}, +jn(a){return a.as}, +bl(a){return A.ei(v.typeUniverse,a,!1)}, +l5(a,b){var s,r,q,p,o +if(a==null)return null +s=b.y +r=a.Q +if(r==null)r=a.Q=new Map() +q=b.as +p=r.get(q) +if(p!=null)return p +o=A.aC(v.typeUniverse,a.x,s,0) +r.set(q,o) +return o}, +aC(a1,a2,a3,a4){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0=a2.w +switch(a0){case 5:case 1:case 2:case 3:case 4:return a2 +case 6:s=a2.x +r=A.aC(a1,s,a3,a4) +if(r===s)return a2 +return A.hf(a1,r,!0) +case 7:s=a2.x +r=A.aC(a1,s,a3,a4) +if(r===s)return a2 +return A.he(a1,r,!0) +case 8:q=a2.y +p=A.bi(a1,q,a3,a4) +if(p===q)return a2 +return A.ca(a1,a2.x,p) +case 9:o=a2.x +n=A.aC(a1,o,a3,a4) +m=a2.y +l=A.bi(a1,m,a3,a4) +if(n===o&&l===m)return a2 +return A.f4(a1,n,l) +case 10:k=a2.x +j=a2.y +i=A.bi(a1,j,a3,a4) +if(i===j)return a2 +return A.hg(a1,k,i) +case 11:h=a2.x +g=A.aC(a1,h,a3,a4) +f=a2.y +e=A.kM(a1,f,a3,a4) +if(g===h&&e===f)return a2 +return A.hd(a1,g,e) +case 12:d=a2.y +a4+=d.length +c=A.bi(a1,d,a3,a4) +o=a2.x +n=A.aC(a1,o,a3,a4) +if(c===d&&n===o)return a2 +return A.f5(a1,n,c,!0) +case 13:b=a2.x +if(b=0)p+=" "+r[q];++q}return p+"})"}, +hz(a3,a4,a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1=", ",a2=null +if(a5!=null){s=a5.length +if(a4==null)a4=A.h([],t.s) +else a2=a4.length +r=a4.length +for(q=s;q>0;--q)B.b.l(a4,"T"+(r+q)) +for(p=t.V,o="<",n="",q=0;q=0))return A.a(a4,l) +o=o+n+a4[l] +k=a5[q] +j=k.w +if(!(j===2||j===3||j===4||j===5||k===p))o+=" extends "+A.L(k,a4)}o+=">"}else o="" +p=a3.x +i=a3.y +h=i.a +g=h.length +f=i.b +e=f.length +d=i.c +c=d.length +b=A.L(p,a4) +for(a="",a0="",q=0;q0){a+=a0+"[" +for(a0="",q=0;q0){a+=a0+"{" +for(a0="",q=0;q "+b}, +L(a,b){var s,r,q,p,o,n,m,l=a.w +if(l===5)return"erased" +if(l===2)return"dynamic" +if(l===3)return"void" +if(l===1)return"Never" +if(l===4)return"any" +if(l===6){s=a.x +r=A.L(s,b) +q=s.w +return(q===11||q===12?"("+r+")":r)+"?"}if(l===7)return"FutureOr<"+A.L(a.x,b)+">" +if(l===8){p=A.kP(a.x) +o=a.y +return o.length>0?p+("<"+A.hE(o,b)+">"):p}if(l===10)return A.kI(a,b) +if(l===11)return A.hz(a,b,null) +if(l===12)return A.hz(a.x,b,a.y) +if(l===13){n=a.x +m=b.length +n=m-1-n +if(!(n>=0&&n0)p+="<"+A.c9(c)+">" +s=a.eC.get(p) +if(s!=null)return s +r=new A.a5(null,null) +r.w=8 +r.x=b +r.y=c +if(c.length>0)r.c=c[0] +r.as=p +q=A.aB(a,r) +a.eC.set(p,q) +return q}, +f4(a,b,c){var s,r,q,p,o,n +if(b.w===9){s=b.x +r=b.y.concat(c)}else{r=c +s=b}q=s.as+(";<"+A.c9(r)+">") +p=a.eC.get(q) +if(p!=null)return p +o=new A.a5(null,null) +o.w=9 +o.x=s +o.y=r +o.as=q +n=A.aB(a,o) +a.eC.set(q,n) +return n}, +hg(a,b,c){var s,r,q="+"+(b+"("+A.c9(c)+")"),p=a.eC.get(q) +if(p!=null)return p +s=new A.a5(null,null) +s.w=10 +s.x=b +s.y=c +s.as=q +r=A.aB(a,s) +a.eC.set(q,r) +return r}, +hd(a,b,c){var s,r,q,p,o,n=b.as,m=c.a,l=m.length,k=c.b,j=k.length,i=c.c,h=i.length,g="("+A.c9(m) +if(j>0){s=l>0?",":"" +g+=s+"["+A.c9(k)+"]"}if(h>0){s=l>0?",":"" +g+=s+"{"+A.jN(i)+"}"}r=n+(g+")") +q=a.eC.get(r) +if(q!=null)return q +p=new A.a5(null,null) +p.w=11 +p.x=b +p.y=c +p.as=r +o=A.aB(a,p) +a.eC.set(r,o) +return o}, +f5(a,b,c,d){var s,r=b.as+("<"+A.c9(c)+">"),q=a.eC.get(r) +if(q!=null)return q +s=A.jP(a,b,c,r,d) +a.eC.set(r,s) +return s}, +jP(a,b,c,d,e){var s,r,q,p,o,n,m,l +if(e){s=c.length +r=A.es(s) +for(q=0,p=0;p0){n=A.aC(a,b,r,0) +m=A.bi(a,c,r,0) +return A.f5(a,n,m,c!==m)}}l=new A.a5(null,null) +l.w=12 +l.x=b +l.y=c +l.as=d +return A.aB(a,l)}, +h8(a,b,c,d){return{u:a,e:b,r:c,s:[],p:0,n:d}}, +ha(a){var s,r,q,p,o,n,m,l=a.r,k=a.s +for(s=l.length,r=0;r=48&&q<=57)r=A.jH(r+1,q,l,k) +else if((((q|32)>>>0)-97&65535)<26||q===95||q===36||q===124)r=A.h9(a,r,l,k,!1) +else if(q===46)r=A.h9(a,r,l,k,!0) +else{++r +switch(q){case 44:break +case 58:k.push(!1) +break +case 33:k.push(!0) +break +case 59:k.push(A.aT(a.u,a.e,k.pop())) +break +case 94:k.push(A.jR(a.u,k.pop())) +break +case 35:k.push(A.cb(a.u,5,"#")) +break +case 64:k.push(A.cb(a.u,2,"@")) +break +case 126:k.push(A.cb(a.u,3,"~")) +break +case 60:k.push(a.p) +a.p=k.length +break +case 62:A.jJ(a,k) +break +case 38:A.jI(a,k) +break +case 63:p=a.u +k.push(A.hf(p,A.aT(p,a.e,k.pop()),a.n)) +break +case 47:p=a.u +k.push(A.he(p,A.aT(p,a.e,k.pop()),a.n)) +break +case 40:k.push(-3) +k.push(a.p) +a.p=k.length +break +case 41:A.jG(a,k) +break +case 91:k.push(a.p) +a.p=k.length +break +case 93:o=k.splice(a.p) +A.hb(a.u,a.e,o) +a.p=k.pop() +k.push(o) +k.push(-1) +break +case 123:k.push(a.p) +a.p=k.length +break +case 125:o=k.splice(a.p) +A.jL(a.u,a.e,o) +a.p=k.pop() +k.push(o) +k.push(-2) +break +case 43:n=l.indexOf("(",r) +k.push(l.substring(r,n)) +k.push(-4) +k.push(a.p) +a.p=k.length +r=n+1 +break +default:throw"Bad character "+q}}}m=k.pop() +return A.aT(a.u,a.e,m)}, +jH(a,b,c,d){var s,r,q=b-48 +for(s=c.length;a=48&&r<=57))break +q=q*10+(r-48)}d.push(q) +return a}, +h9(a,b,c,d,e){var s,r,q,p,o,n,m=b+1 +for(s=c.length;m>>0)-97&65535)<26||r===95||r===36||r===124))q=r>=48&&r<=57 +else q=!0 +if(!q)break}}p=c.substring(b,m) +if(e){s=a.u +o=a.e +if(o.w===9)o=o.x +n=A.jW(s,o.x)[p] +if(n==null)A.M('No "'+p+'" in "'+A.jn(o)+'"') +d.push(A.ej(s,o,n))}else d.push(p) +return m}, +jJ(a,b){var s,r=a.u,q=A.h7(a,b),p=b.pop() +if(typeof p=="string")b.push(A.ca(r,p,q)) +else{s=A.aT(r,a.e,p) +switch(s.w){case 11:b.push(A.f5(r,s,q,a.n)) +break +default:b.push(A.f4(r,s,q)) +break}}}, +jG(a,b){var s,r,q,p=a.u,o=b.pop(),n=null,m=null +if(typeof o=="number")switch(o){case-1:n=b.pop() +break +case-2:m=b.pop() +break +default:b.push(o) +break}else b.push(o) +s=A.h7(a,b) +o=b.pop() +switch(o){case-3:o=b.pop() +if(n==null)n=p.sEA +if(m==null)m=p.sEA +r=A.aT(p,a.e,o) +q=new A.dj() +q.a=s +q.b=n +q.c=m +b.push(A.hd(p,r,q)) +return +case-4:b.push(A.hg(p,b.pop(),s)) +return +default:throw A.b(A.cq("Unexpected state under `()`: "+A.f(o)))}}, +jI(a,b){var s=b.pop() +if(0===s){b.push(A.cb(a.u,1,"0&")) +return}if(1===s){b.push(A.cb(a.u,4,"1&")) +return}throw A.b(A.cq("Unexpected extended operation "+A.f(s)))}, +h7(a,b){var s=b.splice(a.p) +A.hb(a.u,a.e,s) +a.p=b.pop() +return s}, +aT(a,b,c){if(typeof c=="string")return A.ca(a,c,a.sEA) +else if(typeof c=="number"){b.toString +return A.jK(a,b,c)}else return c}, +hb(a,b,c){var s,r=c.length +for(s=0;sn)return!1 +m=n-o +l=s.b +k=r.b +j=l.length +i=k.length +if(o+j=d)return!1 +a1=f[b] +b+=3 +if(a00?new Array(q):v.typeUniverse.sEA +for(o=0;o0?new Array(a):v.typeUniverse.sEA}, +a5:function a5(a,b){var _=this +_.a=a +_.b=b +_.r=_.f=_.d=_.c=null +_.w=0 +_.as=_.Q=_.z=_.y=_.x=null}, +dj:function dj(){this.c=this.b=this.a=null}, +eh:function eh(a){this.a=a}, +di:function di(){}, +bf:function bf(a){this.a=a}, +eS(a,b){return new A.aJ(a.h("@<0>").E(b).h("aJ<1,2>"))}, +eT(a){var s,r +if(A.fm(a))return"{...}" +s=new A.E("") +try{r={} +B.b.l($.W,a) +s.a+="{" +r.a=!0 +a.O(0,new A.dS(r,s)) +s.a+="}"}finally{if(0>=$.W.length)return A.a($.W,-1) +$.W.pop()}r=s.a +return r.charCodeAt(0)==0?r:r}, +p:function p(){}, +D:function D(){}, +dS:function dS(a,b){this.a=a +this.b=b}, +cc:function cc(){}, +b6:function b6(){}, +aR:function aR(a,b){this.a=a +this.$ti=b}, +bg:function bg(){}, +kG(a,b){var s,r,q,p=null +try{p=JSON.parse(a)}catch(r){s=A.ck(r) +q=A.x(String(s),null,null) +throw A.b(q)}q=A.ev(p) +return q}, +ev(a){var s +if(a==null)return null +if(typeof a!="object")return a +if(!Array.isArray(a))return new A.dk(a,Object.create(null)) +for(s=0;s")) +for(s=J.aa(a);s.m();)B.b.l(r,c.a(s.gn())) +if(b)return r +r.$flags=1 +return r}, +at(a,b){var s,r +if(Array.isArray(a))return A.h(a.slice(0),b.h("w<0>")) +s=A.h([],b.h("w<0>")) +for(r=J.aa(a);r.m();)B.b.l(s,r.gn()) +return s}, +a4(a,b){var s=A.dR(a,!1,b) +s.$flags=3 +return s}, +fV(a,b,c){var s,r,q,p,o +A.O(b,"start") +s=c==null +r=!s +if(r){q=c-b +if(q<0)throw A.b(A.y(c,b,null,"end",null)) +if(q===0)return""}if(Array.isArray(a)){p=a +o=p.length +if(s)c=o +return A.fQ(b>0||c0)a=J.dw(a,b) +s=A.at(a,t.S) +return A.fQ(s)}, +fU(a){return A.N(a)}, +jr(a,b,c){var s=a.length +if(b>=s)return"" +return A.jl(a,b,c==null||c>s?s:c)}, +m(a,b){return new A.ar(a,A.eP(a,b,!0,!1,!1,""))}, +eZ(a,b,c){var s=J.aa(b) +if(!s.m())return a +if(c.length===0){do a+=A.f(s.gn()) +while(s.m())}else{a+=A.f(s.gn()) +while(s.m())a=a+c+A.f(s.gn())}return a}, +fK(a,b){return new A.cR(a,b.gco(),b.gcs(),b.gcp())}, +f3(){var s,r,q=A.ji() +if(q==null)throw A.b(A.U("'Uri.base' is not supported")) +s=$.h4 +if(s!=null&&q===$.h3)return s +r=A.P(q) +$.h4=r +$.h3=q +return r}, +k6(a,b,c,d){var s,r,q,p,o,n="0123456789ABCDEF" +if(c===B.f){s=$.ie() +s=s.b.test(b)}else s=!1 +if(s)return b +r=B.K.ag(b) +for(s=r.length,q=0,p="";q>>4&15]+n[o&15]}return p.charCodeAt(0)==0?p:p}, +b1(a){if(typeof a=="number"||A.fc(a)||a==null)return J.bo(a) +if(typeof a=="string")return JSON.stringify(a) +return A.jj(a)}, +cq(a){return new A.cp(a)}, +I(a){return new A.a3(!1,null,null,a)}, +cm(a,b,c){return new A.a3(!0,a,b,c)}, +fv(a){return new A.a3(!1,null,a,"Must not be null")}, +aZ(a,b,c){return a==null?A.M(A.fv(b)):a}, +eV(a){var s=null +return new A.ah(s,s,!1,s,s,a)}, +eW(a,b){return new A.ah(null,null,!0,a,b,"Value not in range")}, +y(a,b,c,d,e){return new A.ah(b,c,!0,a,d,"Invalid value")}, +fR(a,b,c,d){if(ac)throw A.b(A.y(a,b,c,d,null)) +return a}, +ax(a,b,c){if(0>a||a>c)throw A.b(A.y(a,0,c,"start",null)) +if(b!=null){if(a>b||b>c)throw A.b(A.y(b,a,c,"end",null)) +return b}return c}, +O(a,b){if(a<0)throw A.b(A.y(a,0,null,b,null)) +return a}, +eO(a,b,c,d){return new A.bB(b,!0,a,d,"Index out of range")}, +U(a){return new A.c0(a)}, +h0(a){return new A.d7(a)}, +d3(a){return new A.aO(a)}, +Q(a){return new A.cv(a)}, +x(a,b,c){return new A.A(a,b,c)}, +j9(a,b,c){var s,r +if(A.fm(a)){if(b==="("&&c===")")return"(...)" +return b+"..."+c}s=A.h([],t.s) +B.b.l($.W,a) +try{A.kF(a,s)}finally{if(0>=$.W.length)return A.a($.W,-1) +$.W.pop()}r=A.eZ(b,t.l.a(s),", ")+c +return r.charCodeAt(0)==0?r:r}, +fG(a,b,c){var s,r +if(A.fm(a))return b+"..."+c +s=new A.E(b) +B.b.l($.W,a) +try{r=s +r.a=A.eZ(r.a,a,", ")}finally{if(0>=$.W.length)return A.a($.W,-1) +$.W.pop()}s.a+=c +r=s.a +return r.charCodeAt(0)==0?r:r}, +kF(a,b){var s,r,q,p,o,n,m,l=a.gt(a),k=0,j=0 +for(;;){if(!(k<80||j<3))break +if(!l.m())return +s=A.f(l.gn()) +B.b.l(b,s) +k+=s.length+2;++j}if(!l.m()){if(j<=5)return +if(0>=b.length)return A.a(b,-1) +r=b.pop() +if(0>=b.length)return A.a(b,-1) +q=b.pop()}else{p=l.gn();++j +if(!l.m()){if(j<=4){B.b.l(b,A.f(p)) +return}r=A.f(p) +if(0>=b.length)return A.a(b,-1) +q=b.pop() +k+=r.length+2}else{o=l.gn();++j +for(;l.m();p=o,o=n){n=l.gn();++j +if(j>100){for(;;){if(!(k>75&&j>3))break +if(0>=b.length)return A.a(b,-1) +k-=b.pop().length+2;--j}B.b.l(b,"...") +return}}q=A.f(p) +r=A.f(o) +k+=r.length+q.length+4}}if(j>b.length+2){k+=5 +m="..."}else m=null +for(;;){if(!(k>80&&b.length>3))break +if(0>=b.length)return A.a(b,-1) +k-=b.pop().length+2 +if(m==null){k+=5 +m="..."}}if(m!=null)B.b.l(b,m) +B.b.l(b,q) +B.b.l(b,r)}, +fJ(a,b,c,d,e){return new A.aG(a,b.h("@<0>").E(c).E(d).E(e).h("aG<1,2,3,4>"))}, +fL(a,b,c){var s +if(B.j===c){s=J.aY(a) +b=J.aY(b) +return A.fW(A.d5(A.d5($.fr(),s),b))}s=J.aY(a) +b=J.aY(b) +c=c.gC(c) +c=A.fW(A.d5(A.d5(A.d5($.fr(),s),b),c)) +return c}, +h2(a){var s,r=null,q=new A.E(""),p=A.h([-1],t.t) +A.jB(r,r,r,q,p) +B.b.l(p,q.a.length) +q.a+="," +A.jA(256,B.A.ci(a),q) +s=q.a +return new A.d9(s.charCodeAt(0)==0?s:s,p,r).gad()}, +P(a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3=null,a4=a5.length +if(a4>=5){if(4>=a4)return A.a(a5,4) +s=((a5.charCodeAt(4)^58)*3|a5.charCodeAt(0)^100|a5.charCodeAt(1)^97|a5.charCodeAt(2)^116|a5.charCodeAt(3)^97)>>>0 +if(s===0)return A.h1(a4=14)B.b.v(r,7,a4) +q=r[1] +if(q>=0)if(A.hF(a5,0,q,20,r)===20)r[7]=q +p=r[2]+1 +o=r[3] +n=r[4] +m=r[5] +l=r[6] +if(lq+3)){i=o>0 +if(!(i&&o+1===n)){if(!B.a.A(a5,"\\",n))if(p>0)h=B.a.A(a5,"\\",p-1)||B.a.A(a5,"\\",p-2) +else h=!1 +else h=!0 +if(!h){if(!(mn+2&&B.a.A(a5,"/..",m-3) +else h=!0 +if(!h)if(q===4){if(B.a.A(a5,"file",0)){if(p<=0){if(!B.a.A(a5,"/",n)){g="file:///" +s=3}else{g="file://" +s=2}a5=g+B.a.j(a5,n,a4) +m+=s +l+=s +a4=a5.length +p=7 +o=7 +n=7}else if(n===m){++l +f=m+1 +a5=B.a.V(a5,n,m,"/");++a4 +m=f}j="file"}else if(B.a.A(a5,"http",0)){if(i&&o+3===n&&B.a.A(a5,"80",o+1)){l-=3 +e=n-3 +m-=3 +a5=B.a.V(a5,o,n,"") +a4-=3 +n=e}j="http"}}else if(q===5&&B.a.A(a5,"https",0)){if(i&&o+4===n&&B.a.A(a5,"443",o+1)){l-=4 +e=n-4 +m-=4 +a5=B.a.V(a5,o,n,"") +a4-=3 +n=e}j="https"}k=!h}}}}if(k)return new A.a_(a40)j=A.en(a5,0,q) +else{if(q===0)A.bh(a5,0,"Invalid empty scheme") +j=""}d=a3 +if(p>0){c=q+3 +b=c=c)n=0 +else{if(!(q>=0&&q=0&&b=0&&r=97&&o<=102)continue +if(p===46){if(q-1===b)return new A.A(n,a,q) +r=q +break}return new A.A("Unexpected character",a,q-1)}if(r-1===b)return new A.A(n,a,r) +return new A.A("Missing '.' in IPvFuture address",a,r)}if(r===c)return new A.A("Missing address in IPvFuture address, host, cursor",null,null) +for(;;){if(!(r>=0&&r=0&&a4=a5)j=0 +else{if(!(n=97&&f<=102)g=f-87 +else break A +k=h}if(nm){if(j===46){if(k){if(p<=6){A.jC(a3,m,a5,s,p*2) +p+=2 +n=a5 +break}a2.$2(a1,m)}break}o=p*2 +e=B.c.ap(l,8) +if(!(o<16))return A.a(s,o) +s[o]=e;++o +if(!(o<16))return A.a(s,o) +s[o]=l&255;++p +if(j===58){if(p<8){++n +m=n +l=0 +k=!0 +continue}a2.$2(a1,n)}break}if(j===58){if(q<0){d=p+1;++n +q=p +p=d +m=n +continue}a2.$2("only one wildcard `::` is allowed",n)}if(q!==p-1)a2.$2("missing part",n) +break}if(n0){a=c*2 +a0=16-b*2 +B.x.a8(s,a0,16,s,a) +B.x.cj(s,a,a0,0)}}return s}, +ce(a,b,c,d,e,f,g){return new A.cd(a,b,c,d,e,f,g)}, +B(a,b,c,d){var s,r,q,p,o,n,m,l,k=null +d=d==null?"":A.en(d,0,d.length) +s=A.hp(k,0,0) +a=A.hm(a,0,a==null?0:a.length,!1) +r=A.ho(k,0,0,k) +q=A.hl(k,0,0) +p=A.em(k,d) +o=d==="file" +if(a==null)n=s.length!==0||p!=null||o +else n=!1 +if(n)a="" +n=a==null +m=!n +b=A.hn(b,0,b==null?0:b.length,c,d,m) +l=d.length===0 +if(l&&n&&!B.a.q(b,"/"))b=A.f8(b,!l||m) +else b=A.aU(b) +return A.ce(d,s,n&&B.a.q(b,"//")?"":a,p,b,r,q)}, +hi(a){if(a==="http")return 80 +if(a==="https")return 443 +return 0}, +bh(a,b,c){throw A.b(A.x(c,a,b))}, +hh(a,b){return b?A.k2(a,!1):A.k1(a,!1)}, +jY(a,b){var s,r,q +for(s=a.length,r=0;r")),r=r.h("C.E");s.m();){q=s.d +if(q==null)q=r.a(q) +if(B.a.u(q,A.m('["*/:<>?\\\\|]',!1)))if(b)throw A.b(A.I("Illegal character in path")) +else throw A.b(A.U("Illegal character in path: "+q))}}, +jZ(a,b){var s,r="Illegal drive letter " +if(!(65<=a&&a<=90))s=97<=a&&a<=122 +else s=!0 +if(s)return +if(b)throw A.b(A.I(r+A.fU(a))) +else throw A.b(A.U(r+A.fU(a)))}, +k1(a,b){var s=null,r=A.h(a.split("/"),t.s) +if(B.a.q(a,"/"))return A.B(s,s,r,"file") +else return A.B(s,s,r,s)}, +k2(a,b){var s,r,q,p,o,n="\\",m=null,l="file" +if(B.a.q(a,"\\\\?\\"))if(B.a.A(a,"UNC\\",4))a=B.a.V(a,0,7,n) +else{a=B.a.B(a,4) +s=a.length +r=!0 +if(s>=3){if(1>=s)return A.a(a,1) +if(a.charCodeAt(1)===58){if(2>=s)return A.a(a,2) +s=a.charCodeAt(2)!==92}else s=r}else s=r +if(s)throw A.b(A.cm(a,"path","Windows paths with \\\\?\\ prefix must be absolute"))}else a=A.Y(a,"/",n) +s=a.length +if(s>1&&a.charCodeAt(1)===58){if(0>=s)return A.a(a,0) +A.jZ(a.charCodeAt(0),!0) +if(s!==2){if(2>=s)return A.a(a,2) +s=a.charCodeAt(2)!==92}else s=!0 +if(s)throw A.b(A.cm(a,"path","Windows paths with drive letter must be absolute")) +q=A.h(a.split(n),t.s) +A.ek(q,!0,1) +return A.B(m,m,q,l)}if(B.a.q(a,n))if(B.a.A(a,n,1)){p=B.a.a4(a,n,2) +s=p<0 +o=s?B.a.B(a,2):B.a.j(a,2,p) +q=A.h((s?"":B.a.B(a,p+1)).split(n),t.s) +A.ek(q,!0,0) +return A.B(o,m,q,l)}else{q=A.h(a.split(n),t.s) +A.ek(q,!0,0) +return A.B(m,m,q,l)}else{q=A.h(a.split(n),t.s) +A.ek(q,!0,0) +return A.B(m,m,q,m)}}, +em(a,b){if(a!=null&&a===A.hi(b))return null +return a}, +hm(a,b,c,d){var s,r,q,p,o,n,m,l,k +if(a==null)return null +if(b===c)return"" +s=a.length +if(!(b>=0&&b=0&&r=b&&o=b&&s=0&&r=o){if(h==null)h=new A.E("") +if(q=0&&r=n){if(p==null)p=new A.E("") +if(q")).a0(0,"/")}else if(d!=null)throw A.b(A.I("Both path and pathSegments specified")) +else r=A.cf(a,b,c,128,!0,!0) +if(r.length===0){if(q)return"/"}else if(p&&!B.a.q(r,"/"))r="/"+r +return A.k3(r,e,f)}, +k3(a,b,c){var s=b.length===0 +if(s&&!c&&!B.a.q(a,"/")&&!B.a.q(a,"\\"))return A.f8(a,!s||c) +return A.aU(a)}, +ho(a,b,c,d){if(a!=null)return A.cf(a,b,c,256,!0,!1) +return null}, +hl(a,b,c){if(a==null)return null +return A.cf(a,b,c,256,!0,!1)}, +f7(a,b,c){var s,r,q,p,o,n,m=u.v,l=b+2,k=a.length +if(l>=k)return"%" +s=b+1 +if(!(s>=0&&s=0))return A.a(a,l) +q=a.charCodeAt(l) +p=A.eC(r) +o=A.eC(q) +if(p<0||o<0)return"%" +n=p*16+o +if(n<127){if(!(n>=0))return A.a(m,n) +l=(m.charCodeAt(n)&1)!==0}else l=!1 +if(l)return A.N(c&&65<=n&&90>=n?(n|32)>>>0:n) +if(r>=97||q>=97)return B.a.j(a,b,b+3).toUpperCase() +return null}, +f6(a){var s,r,q,p,o,n,m,l,k="0123456789ABCDEF" +if(a<=127){s=new Uint8Array(3) +s[0]=37 +r=a>>>4 +if(!(r<16))return A.a(k,r) +s[1]=k.charCodeAt(r) +s[2]=k.charCodeAt(a&15)}else{if(a>2047)if(a>65535){q=240 +p=4}else{q=224 +p=3}else{q=192 +p=2}r=3*p +s=new Uint8Array(r) +for(o=0;--p,p>=0;q=128){n=B.c.c7(a,6*p)&63|q +if(!(o>>4 +if(!(l<16))return A.a(k,l) +if(!(m=0&&q=m)return A.a(s,-1) +s.pop() +if(s.length===0)B.b.l(s,"")}p=!0}else{p="."===n +if(!p)B.b.l(s,n)}}if(p)B.b.l(s,"") +return B.b.a0(s,"/")}, +f8(a,b){var s,r,q,p,o,n +if(!A.hq(a))return!b?A.hj(a):a +s=A.h([],t.s) +for(r=a.split("/"),q=r.length,p=!1,o=0;o=s.length)return A.a(s,-1) +s.pop()}else B.b.l(s,"..") +p=!0}else{p="."===n +if(!p)B.b.l(s,n.length===0&&s.length===0?"./":n)}}if(s.length===0)return"./" +if(p)B.b.l(s,"") +if(!b){if(0>=s.length)return A.a(s,0) +B.b.v(s,0,A.hj(s[0]))}return B.b.a0(s,"/")}, +hj(a){var s,r,q,p=u.v,o=a.length +if(o>=2&&A.hk(a.charCodeAt(0)))for(s=1;s127)throw A.b(A.I("Illegal percent encoding in URI")) +if(r===37){if(n+3>o)throw A.b(A.I("Truncated URI")) +B.b.l(p,A.k0(a,n+1)) +n+=2}else B.b.l(p,r)}}t.L.a(p) +return B.a3.ag(p)}, +hk(a){var s=a|32 +return 97<=s&&s<=122}, +jB(a,b,c,d,e){d.a=d.a}, +h1(a,b,c){var s,r,q,p,o,n,m,l,k="Invalid MIME type",j=A.h([b-1],t.t) +for(s=a.length,r=b,q=-1,p=null;rb)throw A.b(A.x(k,a,r)) +while(p!==44){B.b.l(j,r);++r +for(o=-1;r=0))return A.a(a,r) +p=a.charCodeAt(r) +if(p===61){if(o<0)o=r}else if(p===59||p===44)break}if(o>=0)B.b.l(j,o) +else{n=B.b.gI(j) +if(p!==44||r!==n+7||!B.a.A(a,"base64",n+1))throw A.b(A.x("Expecting '='",a,r)) +break}}B.b.l(j,r) +m=r+1 +if((j.length&1)===1)a=B.B.cq(a,m,s) +else{l=A.hr(a,m,s,256,!0,!1) +if(l!=null)a=B.a.V(a,m,s,l)}return new A.d9(a,j,c)}, +jA(a,b,c){var s,r,q,p,o,n="0123456789ABCDEF" +for(s=b.length,r=0,q=0;q>>4 +if(!(o<16))return A.a(n,o) +o=A.N(n.charCodeAt(o)) +c.a+=o +o=A.N(n.charCodeAt(p&15)) +c.a+=o}}if((r&4294967040)!==0)for(q=0;q255)throw A.b(A.cm(p,"non-byte value",null))}}, +hF(a,b,c,d,e){var s,r,q,p,o,n='\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe3\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0e\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\n\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\xeb\xeb\x8b\xeb\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x83\xeb\xeb\x8b\xeb\x8b\xeb\xcd\x8b\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x92\x83\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x8b\xeb\x8b\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xebD\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12D\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe8\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\x05\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x10\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\f\xec\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\xec\f\xec\f\xec\xcd\f\xec\f\f\f\f\f\f\f\f\f\xec\f\f\f\f\f\f\f\f\f\f\xec\f\xec\f\xec\f\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\r\xed\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\xed\r\xed\r\xed\xed\r\xed\r\r\r\r\r\r\r\r\r\xed\r\r\r\r\r\r\r\r\r\r\xed\r\xed\r\xed\r\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0f\xea\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe9\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\t\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x11\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xe9\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\t\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x13\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\xf5\x15\x15\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5' +for(s=a.length,r=b;r95)q=31 +p=d*96+q +if(!(p<2112))return A.a(n,p) +o=n.charCodeAt(p) +d=o&31 +B.b.v(e,o>>>5,r)}return d}, +hc(a){if(a.b===7&&B.a.q(a.a,"package")&&a.c<=0)return A.hG(a.a,a.e,a.f) +return-1}, +hG(a,b,c){var s,r,q,p +for(s=a.length,r=b,q=0;r=0&&r=s)return A.a(a,0) +p=b.D(a.charCodeAt(0))}else p=!1 +if(p){if(0>=s)return A.a(a,0) +B.b.l(q,a[0]) +o=1}else{B.b.l(q,"") +o=0}for(n=o;n=s)throw A.b(A.d3("incomplete VLQ value")) +o=a.gn() +n=$.ik().p(0,o) +if(n==null)throw A.b(A.x("invalid character in VLQ encoding: "+o,l,l)) +q=(n&32)===0 +r+=B.c.c6(n&31,p) +p+=5}m=r>>>1 +r=(r&1)===1?-m:m +if(r<$.iE()||r>$.iD())throw A.b(A.x("expected an encoded 32 bit int, but we got: "+r,l,l)) +return r}, +ex:function ex(){}, +cZ:function cZ(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +eY(a,b,c,d){var s=typeof d=="string"?A.P(d):t.I.a(d),r=c==null,q=r?0:c,p=b==null,o=p?a:b +if(a<0)A.M(A.eV("Offset may not be negative, was "+a+".")) +else if(!r&&c<0)A.M(A.eV("Line may not be negative, was "+A.f(c)+".")) +else if(!p&&b<0)A.M(A.eV("Column may not be negative, was "+A.f(b)+".")) +return new A.d_(s,a,q,o)}, +d_:function d_(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +d0:function d0(){}, +d1:function d1(){}, +iV(a){var s,r,q=u.q +if(a.length===0)return new A.aq(A.a4(A.h([],t.J),t.a)) +s=$.ft() +if(B.a.u(a,s)){s=B.a.af(a,s) +r=A.u(s) +return new A.aq(A.a4(new A.T(new A.V(s,r.h("X(1)").a(new A.dz()),r.h("V<1>")),r.h("r(1)").a(A.lq()),r.h("T<1,r>")),t.a))}if(!B.a.u(a,q))return new A.aq(A.a4(A.h([A.f0(a)],t.J),t.a)) +return new A.aq(A.a4(new A.q(A.h(a.split(q),t.s),t.cQ.a(A.lp()),t.k),t.a))}, +aq:function aq(a){this.a=a}, +dz:function dz(){}, +dE:function dE(){}, +dD:function dD(){}, +dB:function dB(){}, +dC:function dC(a){this.a=a}, +dA:function dA(a){this.a=a}, +j7(a){return A.fC(A.k(a))}, +fC(a){return A.cy(a,new A.dN(a))}, +j6(a){return A.j3(A.k(a))}, +j3(a){return A.cy(a,new A.dL(a))}, +j0(a){return A.cy(a,new A.dI(a))}, +j4(a){return A.j1(A.k(a))}, +j1(a){return A.cy(a,new A.dJ(a))}, +j5(a){return A.j2(A.k(a))}, +j2(a){return A.cy(a,new A.dK(a))}, +cz(a){if(B.a.u(a,$.i0()))return A.P(a) +else if(B.a.u(a,$.i1()))return A.hh(a,!0) +else if(B.a.q(a,"/"))return A.hh(a,!1) +if(B.a.u(a,"\\"))return $.iG().bK(a) +return A.P(a)}, +cy(a,b){var s,r +try{s=b.$0() +return s}catch(r){if(A.ck(r) instanceof A.A)return new A.a8(A.B(null,"unparsed",null,null),a) +else throw r}}, +i:function i(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +dN:function dN(a){this.a=a}, +dL:function dL(a){this.a=a}, +dM:function dM(a){this.a=a}, +dI:function dI(a){this.a=a}, +dJ:function dJ(a){this.a=a}, +dK:function dK(a){this.a=a}, +cM:function cM(a){this.a=a +this.b=$}, +jw(a){if(t.a.b(a))return a +if(a instanceof A.aq)return a.bJ() +return new A.cM(new A.e6(a))}, +f0(a){var s,r,q +try{if(a.length===0){r=A.f_(A.h([],t.F),null) +return r}if(B.a.u(a,$.iz())){r=A.jv(a) +return r}if(B.a.u(a,"\tat ")){r=A.ju(a) +return r}if(B.a.u(a,$.ip())||B.a.u(a,$.im())){r=A.jt(a) +return r}if(B.a.u(a,u.q)){r=A.iV(a).bJ() +return r}if(B.a.u(a,$.is())){r=A.fY(a) +return r}r=A.fZ(a) +return r}catch(q){r=A.ck(q) +if(r instanceof A.A){s=r +throw A.b(A.x(s.a+"\nStack trace:\n"+a,null,null))}else throw q}}, +jy(a){return A.fZ(A.k(a))}, +fZ(a){var s=A.a4(A.jz(a),t.B) +return new A.r(s)}, +jz(a){var s,r=B.a.bd(a),q=$.ft(),p=t.U,o=new A.V(A.h(A.Y(r,q,"").split("\n"),t.s),t.Q.a(new A.e7()),p) +if(!o.gt(0).m())return A.h([],t.F) +r=A.fX(o,o.gk(0)-1,p.h("c.E")) +q=A.n(r) +q=A.eU(r,q.h("i(c.E)").a(A.kZ()),q.h("c.E"),t.B) +s=A.at(q,A.n(q).h("c.E")) +if(!B.a.aT(o.gI(0),".da"))B.b.l(s,A.fC(o.gI(0))) +return s}, +jv(a){var s=t.cN,r=t.B +r=A.a4(A.eU(new A.bT(A.h(a.split("\n"),t.s),t.Q.a(new A.e5()),s),s.h("i(c.E)").a(A.hO()),s.h("c.E"),r),r) +return new A.r(r)}, +ju(a){var s=A.a4(new A.T(new A.V(A.h(a.split("\n"),t.s),t.Q.a(new A.e4()),t.U),t.d.a(A.hO()),t.M),t.B) +return new A.r(s)}, +jt(a){var s=A.a4(new A.T(new A.V(A.h(B.a.bd(a).split("\n"),t.s),t.Q.a(new A.e2()),t.U),t.d.a(A.kX()),t.M),t.B) +return new A.r(s)}, +jx(a){return A.fY(A.k(a))}, +fY(a){var s=a.length===0?A.h([],t.F):new A.T(new A.V(A.h(B.a.bd(a).split("\n"),t.s),t.Q.a(new A.e3()),t.U),t.d.a(A.kY()),t.M) +s=A.a4(s,t.B) +return new A.r(s)}, +f_(a,b){var s=A.a4(a,t.B) +return new A.r(s)}, +r:function r(a){this.a=a}, +e6:function e6(a){this.a=a}, +e7:function e7(){}, +e5:function e5(){}, +e4:function e4(){}, +e2:function e2(){}, +e3:function e3(){}, +e9:function e9(){}, +e8:function e8(a){this.a=a}, +a8:function a8(a,b){this.a=a +this.w=b}, +la(a,b,c){var s=A.jw(b).ga9(),r=A.u(s) +return A.f_(new A.bK(new A.q(s,r.h("i?(1)").a(new A.eI(a,c)),r.h("q<1,i?>")),t.cK),null)}, +kH(a){var s,r,q,p,o,n,m,l=B.a.bB(a,".") +if(l<0)return a +s=B.a.B(a,l+1) +a=s==="fn"?a:s +a=A.Y(a,"$124","|") +if(B.a.u(a,"|")){r=B.a.ah(a,"|") +q=B.a.ah(a," ") +p=B.a.ah(a,"escapedPound") +if(q>=0){o=B.a.j(a,0,q)==="set" +a=B.a.j(a,q+1,a.length)}else{n=r+1 +if(p>=0){o=B.a.j(a,n,p)==="set" +a=B.a.V(a,n,p+3,"")}else{m=B.a.j(a,n,a.length) +if(B.a.q(m,"unary")||B.a.q(m,"$"))a=A.kO(a) +o=!1}}a=A.Y(a,"|",".") +n=o?a+"=":a}else n=a +return n}, +kO(a){return A.lj(a,A.m("\\$[0-9]+",!1),t.A.a(t.bj.a(new A.ez(a))),null)}, +eI:function eI(a,b){this.a=a +this.b=b}, +ez:function ez(a){this.a=a}, +lb(a){var s +A.k(a) +s=$.hD +if(s==null)throw A.b(A.d3("Source maps are not done loading.")) +return A.la(s,A.f0(a),$.iF()).i(0)}, +le(a){$.hD=new A.cL(new A.cN(A.eS(t.N,t.E)),t.q.a(a))}, +l8(){self.$dartStackTraceUtility={mapper:A.hJ(A.lf(),t.bm),setSourceMapProvider:A.hJ(A.lg(),t.ae)}}, +dH:function dH(){}, +cL:function cL(a,b){this.a=a +this.b=b}, +eJ:function eJ(){}, +eK(a){throw A.F(A.je(a),new Error())}, +kl(a){var s,r=a.$dart_jsFunction +if(r!=null)return r +s=function(b,c){return function(){return b(c,Array.prototype.slice.apply(arguments))}}(A.ki,a) +s[$.fp()]=a +a.$dart_jsFunction=s +return s}, +ki(a,b){t.j.a(b) +t.Z.a(a) +return A.jh(a,b,null)}, +hJ(a,b){if(typeof a=="function")return a +else return b.a(A.kl(a))}, +hS(a,b,c){A.kS(c,t.H,"T","max") +return Math.max(c.a(a),c.a(b))}, +hW(a,b){return Math.pow(a,b)}, +fg(){var s,r,q,p,o=null +try{o=A.f3()}catch(s){if(t.W.b(A.ck(s))){r=$.ew +if(r!=null)return r +throw s}else throw s}if(J.ap(o,$.hx)){r=$.ew +r.toString +return r}$.hx=o +if($.fq()===$.ao())r=$.ew=o.bb(".").i(0) +else{q=o.bc() +p=q.length-1 +r=$.ew=p===0?q:B.a.j(q,0,p)}return r}, +fl(a){a|=32 +return 97<=a&&a<=122}, +hN(a,b){var s,r,q,p=a.length,o=b+2 +if(p=b+4){if(!(o=p)return b +if(!A.fl(a.charCodeAt(b)))return b +for(s=b+1;s9&&r!==43&&r!==45&&r!==46){if(r===58)return s+1 +break}}return b}, +lh(a){if(a.length<5)return!1 +return a.charCodeAt(4)===58&&(a.charCodeAt(0)|32)===102&&(a.charCodeAt(1)|32)===105&&(a.charCodeAt(2)|32)===108&&(a.charCodeAt(3)|32)===101}, +kR(a,b){var s,r +if(!B.a.A(a,"//",b))return b +b+=2 +for(s=a.length;b=0&&q").E(b).h("ab<1,2>"))}, +l(a,b){A.u(a).c.a(b) +a.$flags&1&&A.H(a,29) +a.push(b)}, +aF(a,b){var s +a.$flags&1&&A.H(a,"removeAt",1) +s=a.length +if(b>=s)throw A.b(A.eW(b,null)) +return a.splice(b,1)[0]}, +b0(a,b,c){var s +A.u(a).c.a(c) +a.$flags&1&&A.H(a,"insert",2) +s=a.length +if(b>s)throw A.b(A.eW(b,null)) +a.splice(b,0,c)}, +b1(a,b,c){var s,r +A.u(a).h("c<1>").a(c) +a.$flags&1&&A.H(a,"insertAll",2) +A.fR(b,0,a.length,"index") +if(!t.X.b(c))c=J.iS(c) +s=J.Z(c) +a.length=a.length+s +r=b+s +this.a8(a,r,a.length,a,b) +this.bM(a,b,r,c)}, +ba(a){a.$flags&1&&A.H(a,"removeLast",1) +if(a.length===0)throw A.b(A.bk(a,-1)) +return a.pop()}, +aR(a,b){var s +A.u(a).h("c<1>").a(b) +a.$flags&1&&A.H(a,"addAll",2) +if(Array.isArray(b)){this.bT(a,b) +return}for(s=J.aa(b);s.m();)a.push(s.gn())}, +bT(a,b){var s,r +t.b.a(b) +s=b.length +if(s===0)return +if(a===b)throw A.b(A.Q(a)) +for(r=0;r").E(c).h("q<1,2>"))}, +a0(a,b){var s,r=A.au(a.length,"",!1,t.N) +for(s=0;s=0&&b0)return a[0] +throw A.b(A.b4())}, +gI(a){var s=a.length +if(s>0)return a[s-1] +throw A.b(A.b4())}, +a8(a,b,c,d,e){var s,r,q,p,o +A.u(a).h("c<1>").a(d) +a.$flags&2&&A.H(a,5) +A.ax(b,c,a.length) +s=c-b +if(s===0)return +A.O(e,"skipCount") +if(t.j.b(d)){r=d +q=e}else{r=J.dw(d,e).a1(0,!1) +q=0}p=J.a9(r) +if(q+s>p.gk(r))throw A.b(A.fF()) +if(q=0;--o)a[b+o]=p.p(r,q+o) +else for(o=0;o"))}, +gC(a){return A.cW(a)}, +gk(a){return a.length}, +p(a,b){if(!(b>=0&&b=0&&b=0))return A.a(a,r) +a[r]=b}, +$ij:1, +$ic:1, +$il:1} +J.cC.prototype={ +cz(a){var s,r,q +if(!Array.isArray(a))return null +s=a.$flags|0 +if((s&4)!==0)r="const, " +else if((s&2)!==0)r="unmodifiable, " +else r=(s&1)!==0?"fixed, ":"" +q="Instance of '"+A.cX(a)+"'" +if(r==="")return q +return q+" ("+r+"length: "+a.length+")"}} +J.dO.prototype={} +J.aE.prototype={ +gn(){var s=this.d +return s==null?this.$ti.c.a(s):s}, +m(){var s,r=this,q=r.a,p=q.length +if(r.b!==p){q=A.cj(q) +throw A.b(q)}s=r.c +if(s>=p){r.d=null +return!1}r.d=q[s] +r.c=s+1 +return!0}, +$io:1} +J.cG.prototype={ +i(a){if(a===0&&1/a<0)return"-0.0" +else return""+a}, +gC(a){var s,r,q,p,o=a|0 +if(a===o)return o&536870911 +s=Math.abs(a) +r=Math.log(s)/0.6931471805599453|0 +q=Math.pow(2,r) +p=s<1?s/q:q/s +return((p*9007199254740992|0)+(p*3542243181176521|0))*599197+r*1259&536870911}, +bf(a,b){return a+b}, +aI(a,b){var s=a%b +if(s===0)return 0 +if(s>0)return s +return s+b}, +br(a,b){return(a|0)===a?a/b|0:this.ca(a,b)}, +ca(a,b){var s=a/b +if(s>=-2147483648&&s<=2147483647)return s|0 +if(s>0){if(s!==1/0)return Math.floor(s)}else if(s>-1/0)return Math.ceil(s) +throw A.b(A.U("Result of truncating division is "+A.f(s)+": "+A.f(a)+" ~/ "+b))}, +c6(a,b){return b>31?0:a<>>0}, +ap(a,b){var s +if(a>0)s=this.bq(a,b) +else{s=b>31?31:b +s=a>>s>>>0}return s}, +c7(a,b){if(0>b)throw A.b(A.ci(b)) +return this.bq(a,b)}, +bq(a,b){return b>31?0:a>>>b}, +gT(a){return A.am(t.H)}, +$iaD:1} +J.bC.prototype={ +gT(a){return A.am(t.S)}, +$iG:1, +$ie:1} +J.cF.prototype={ +gT(a){return A.am(t.i)}, +$iG:1} +J.aI.prototype={ +cc(a,b){if(b<0)throw A.b(A.bk(a,b)) +if(b>=a.length)A.M(A.bk(a,b)) +return a.charCodeAt(b)}, +ar(a,b,c){var s=b.length +if(c>s)throw A.b(A.y(c,0,s,null,null)) +return new A.dn(b,a,c)}, +aq(a,b){return this.ar(a,b,0)}, +bD(a,b,c){var s,r,q,p,o=null +if(c<0||c>b.length)throw A.b(A.y(c,0,b.length,o,o)) +s=a.length +r=b.length +if(c+s>r)return o +for(q=0;q=0&&pr)return!1 +return b===this.B(a,r-s)}, +bI(a,b,c){A.fR(0,0,a.length,"startIndex") +return A.ln(a,b,c,0)}, +af(a,b){var s +if(typeof b=="string")return A.h(a.split(b),t.s) +else{if(b instanceof A.ar){s=b.e +s=!(s==null?b.e=b.bU():s)}else s=!1 +if(s)return A.h(a.split(b.b),t.s) +else return this.bX(a,b)}}, +V(a,b,c,d){var s=A.ax(b,c,a.length) +return A.fo(a,b,s,d)}, +bX(a,b){var s,r,q,p,o,n,m=A.h([],t.s) +for(s=J.eM(b,a),s=s.gt(s),r=0,q=1;s.m();){p=s.gn() +o=p.gK() +n=p.gM() +q=n-o +if(q===0&&r===o)continue +B.b.l(m,this.j(a,r,o)) +r=n}if(r0)B.b.l(m,this.B(a,r)) +return m}, +A(a,b,c){var s +if(c<0||c>a.length)throw A.b(A.y(c,0,a.length,null,null)) +if(typeof b=="string"){s=c+b.length +if(s>a.length)return!1 +return b===a.substring(c,s)}return J.iP(b,a,c)!=null}, +q(a,b){return this.A(a,b,0)}, +j(a,b,c){return a.substring(b,A.ax(b,c,a.length))}, +B(a,b){return this.j(a,b,null)}, +bd(a){var s,r,q,p=a.trim(),o=p.length +if(o===0)return p +if(0>=o)return A.a(p,0) +if(p.charCodeAt(0)===133){s=J.jc(p,1) +if(s===o)return""}else s=0 +r=o-1 +if(!(r>=0))return A.a(p,r) +q=p.charCodeAt(r)===133?J.jd(p,r):o +if(s===0&&q===o)return p +return p.substring(s,q)}, +bg(a,b){var s,r +if(0>=b)return"" +if(b===1||a.length===0)return a +if(b!==b>>>0)throw A.b(B.J) +for(s=a,r="";;){if((b&1)===1)r=s+r +b=b>>>1 +if(b===0)break +s+=s}return r}, +bF(a,b){var s=b-a.length +if(s<=0)return a +return a+this.bg(" ",s)}, +a4(a,b,c){var s +if(c<0||c>a.length)throw A.b(A.y(c,0,a.length,null,null)) +s=a.indexOf(b,c) +return s}, +ah(a,b){return this.a4(a,b,0)}, +bC(a,b,c){var s,r +if(c==null)c=a.length +else if(c<0||c>a.length)throw A.b(A.y(c,0,a.length,null,null)) +s=b.length +r=a.length +if(c+s>r)c=r-s +return a.lastIndexOf(b,c)}, +bB(a,b){return this.bC(a,b,null)}, +u(a,b){return A.li(a,b,0)}, +i(a){return a}, +gC(a){var s,r,q +for(s=a.length,r=0,q=0;q>6}r=r+((r&67108863)<<3)&536870911 +r^=r>>11 +return r+((r&16383)<<15)&536870911}, +gT(a){return A.am(t.N)}, +gk(a){return a.length}, +$iG:1, +$idV:1, +$id:1} +A.aA.prototype={ +gt(a){return new A.bp(J.aa(this.gZ()),A.n(this).h("bp<1,2>"))}, +gk(a){return J.Z(this.gZ())}, +W(a,b){var s=A.n(this) +return A.dx(J.dw(this.gZ(),b),s.c,s.y[1])}, +a6(a,b){var s=A.n(this) +return A.dx(J.fu(this.gZ(),b),s.c,s.y[1])}, +G(a,b){return A.n(this).y[1].a(J.dv(this.gZ(),b))}, +u(a,b){return J.iM(this.gZ(),b)}, +i(a){return J.bo(this.gZ())}} +A.bp.prototype={ +m(){return this.a.m()}, +gn(){return this.$ti.y[1].a(this.a.gn())}, +$io:1} +A.aF.prototype={ +gZ(){return this.a}} +A.c4.prototype={$ij:1} +A.c3.prototype={ +p(a,b){return this.$ti.y[1].a(J.iH(this.a,b))}, +v(a,b,c){var s=this.$ti +J.iI(this.a,b,s.c.a(s.y[1].a(c)))}, +$ij:1, +$il:1} +A.ab.prototype={ +au(a,b){return new A.ab(this.a,this.$ti.h("@<1>").E(b).h("ab<1,2>"))}, +gZ(){return this.a}} +A.aG.prototype={ +a2(a,b,c){return new A.aG(this.a,this.$ti.h("@<1,2>").E(b).E(c).h("aG<1,2,3,4>"))}, +H(a){return this.a.H(a)}, +p(a,b){return this.$ti.h("4?").a(this.a.p(0,b))}, +O(a,b){this.a.O(0,new A.dy(this,this.$ti.h("~(3,4)").a(b)))}, +gX(){var s=this.$ti +return A.dx(this.a.gX(),s.c,s.y[2])}, +gk(a){var s=this.a +return s.gk(s)}} +A.dy.prototype={ +$2(a,b){var s=this.a.$ti +s.c.a(a) +s.y[1].a(b) +this.b.$2(s.y[2].a(a),s.y[3].a(b))}, +$S(){return this.a.$ti.h("~(1,2)")}} +A.cK.prototype={ +i(a){return"LateInitializationError: "+this.a}} +A.bq.prototype={ +gk(a){return this.a.length}, +p(a,b){var s=this.a +if(!(b>=0&&b"))}, +u(a,b){var s,r=this,q=r.gk(r) +for(s=0;ss)return s +return r}, +gc9(){var s=J.Z(this.a),r=this.b +if(r>s)return s +return r}, +gk(a){var s,r=J.Z(this.a),q=this.b +if(q>=r)return 0 +s=this.c +if(s==null||s>=r)return r-q +return s-q}, +G(a,b){var s=this,r=s.gc9()+b +if(b<0||r>=s.gbY())throw A.b(A.eO(b,s.gk(0),s,"index")) +return J.dv(s.a,r)}, +W(a,b){var s,r,q=this +A.O(b,"count") +s=q.b+b +r=q.c +if(r!=null&&s>=r)return new A.bw(q.$ti.h("bw<1>")) +return A.aj(q.a,s,r,q.$ti.c)}, +a6(a,b){var s,r,q,p=this +A.O(b,"count") +s=p.c +r=p.b +if(s==null)return A.aj(p.a,r,B.c.bf(r,b),p.$ti.c) +else{q=B.c.bf(r,b) +if(s=o){r.d=null +return!1}r.d=p.G(q,s);++r.c +return!0}, +$io:1} +A.T.prototype={ +gt(a){return new A.bI(J.aa(this.a),this.b,A.n(this).h("bI<1,2>"))}, +gk(a){return J.Z(this.a)}, +G(a,b){return this.b.$1(J.dv(this.a,b))}} +A.bu.prototype={$ij:1} +A.bI.prototype={ +m(){var s=this,r=s.b +if(r.m()){s.a=s.c.$1(r.gn()) +return!0}s.a=null +return!1}, +gn(){var s=this.a +return s==null?this.$ti.y[1].a(s):s}, +$io:1} +A.q.prototype={ +gk(a){return J.Z(this.a)}, +G(a,b){return this.b.$1(J.dv(this.a,b))}} +A.V.prototype={ +gt(a){return new A.aS(J.aa(this.a),this.b,this.$ti.h("aS<1>"))}} +A.aS.prototype={ +m(){var s,r +for(s=this.a,r=this.b;s.m();)if(r.$1(s.gn()))return!0 +return!1}, +gn(){return this.a.gn()}, +$io:1} +A.bz.prototype={ +gt(a){return new A.bA(J.aa(this.a),this.b,B.p,this.$ti.h("bA<1,2>"))}} +A.bA.prototype={ +gn(){var s=this.d +return s==null?this.$ti.y[1].a(s):s}, +m(){var s,r,q=this,p=q.c +if(p==null)return!1 +for(s=q.a,r=q.b;!p.m();){q.d=null +if(s.m()){q.c=null +p=J.aa(r.$1(s.gn())) +q.c=p}else return!1}q.d=q.c.gn() +return!0}, +$io:1} +A.aP.prototype={ +gt(a){var s=this.a +return new A.bZ(s.gt(s),this.b,A.n(this).h("bZ<1>"))}} +A.bv.prototype={ +gk(a){var s=this.a,r=s.gk(s) +s=this.b +if(r>s)return s +return r}, +$ij:1} +A.bZ.prototype={ +m(){if(--this.b>=0)return this.a.m() +this.b=-1 +return!1}, +gn(){if(this.b<0){this.$ti.c.a(null) +return null}return this.a.gn()}, +$io:1} +A.ai.prototype={ +W(a,b){A.aZ(b,"count",t.S) +A.O(b,"count") +return new A.ai(this.a,this.b+b,A.n(this).h("ai<1>"))}, +gt(a){var s=this.a +return new A.bS(s.gt(s),this.b,A.n(this).h("bS<1>"))}} +A.b0.prototype={ +gk(a){var s=this.a,r=s.gk(s)-this.b +if(r>=0)return r +return 0}, +W(a,b){A.aZ(b,"count",t.S) +A.O(b,"count") +return new A.b0(this.a,this.b+b,this.$ti)}, +$ij:1} +A.bS.prototype={ +m(){var s,r +for(s=this.a,r=0;r"))}} +A.bU.prototype={ +m(){var s,r,q=this +if(!q.c){q.c=!0 +for(s=q.a,r=q.b;s.m();)if(!r.$1(s.gn()))return!0}return q.a.m()}, +gn(){return this.a.gn()}, +$io:1} +A.bw.prototype={ +gt(a){return B.p}, +gk(a){return 0}, +G(a,b){throw A.b(A.y(b,0,0,"index",null))}, +u(a,b){return!1}, +W(a,b){A.O(b,"count") +return this}, +a6(a,b){A.O(b,"count") +return this}} +A.bx.prototype={ +m(){return!1}, +gn(){throw A.b(A.b4())}, +$io:1} +A.bK.prototype={ +gt(a){var s=this.a +return new A.bL(new A.S(s,s.gk(0),s.$ti.h("S")),this.$ti.h("bL<1>"))}} +A.bL.prototype={ +m(){var s,r,q +this.b=null +for(s=this.a,r=s.$ti.c;s.m();){q=s.d +if(q==null)q=r.a(q) +if(q!=null){this.b=q +return!0}}return!1}, +gn(){var s=this.b +return s==null?A.M(A.b4()):s}, +$io:1} +A.aH.prototype={} +A.aQ.prototype={ +v(a,b,c){A.n(this).h("aQ.E").a(c) +throw A.b(A.U("Cannot modify an unmodifiable list"))}} +A.ba.prototype={} +A.ay.prototype={ +gC(a){var s=this._hashCode +if(s!=null)return s +s=664597*B.a.gC(this.a)&536870911 +this._hashCode=s +return s}, +i(a){return'Symbol("'+this.a+'")'}, +J(a,b){if(b==null)return!1 +return b instanceof A.ay&&this.a===b.a}, +$ib8:1} +A.cg.prototype={} +A.bs.prototype={} +A.br.prototype={ +a2(a,b,c){var s=A.n(this) +return A.fJ(this,s.c,s.y[1],b,c)}, +i(a){return A.eT(this)}, +$iK:1} +A.bt.prototype={ +gk(a){return this.b.length}, +gbn(){var s=this.$keys +if(s==null){s=Object.keys(this.a) +this.$keys=s}return s}, +H(a){if(typeof a!="string")return!1 +if("__proto__"===a)return!1 +return this.a.hasOwnProperty(a)}, +p(a,b){if(!this.H(b))return null +return this.b[this.a[b]]}, +O(a,b){var s,r,q,p +this.$ti.h("~(1,2)").a(b) +s=this.gbn() +r=this.b +for(q=s.length,p=0;p"))}} +A.c5.prototype={ +gk(a){return this.a.length}, +gt(a){var s=this.a +return new A.c6(s,s.length,this.$ti.h("c6<1>"))}} +A.c6.prototype={ +gn(){var s=this.d +return s==null?this.$ti.c.a(s):s}, +m(){var s=this,r=s.c +if(r>=s.b){s.d=null +return!1}s.d=s.a[r] +s.c=r+1 +return!0}, +$io:1} +A.cA.prototype={ +J(a,b){if(b==null)return!1 +return b instanceof A.b2&&this.a.J(0,b.a)&&A.fj(this)===A.fj(b)}, +gC(a){return A.fL(this.a,A.fj(this),B.j)}, +i(a){var s=B.b.a0([A.am(this.$ti.c)],", ") +return this.a.i(0)+" with "+("<"+s+">")}} +A.b2.prototype={ +$2(a,b){return this.a.$1$2(a,b,this.$ti.y[0])}, +$S(){return A.l5(A.eA(this.a),this.$ti)}} +A.cE.prototype={ +gco(){var s=this.a +if(s instanceof A.ay)return s +return this.a=new A.ay(A.k(s))}, +gcs(){var s,r,q,p,o,n=this +if(n.c===1)return B.v +s=n.d +r=J.a9(s) +q=r.gk(s)-J.Z(n.e)-n.f +if(q===0)return B.v +p=[] +for(o=0;o>>0}, +i(a){return"Closure '"+this.$_name+"' of "+("Instance of '"+A.cX(this.a)+"'")}} +A.cY.prototype={ +i(a){return"RuntimeError: "+this.a}} +A.eg.prototype={} +A.aJ.prototype={ +gk(a){return this.a}, +gX(){return new A.aK(this,A.n(this).h("aK<1>"))}, +H(a){var s=this.b +if(s==null)return!1 +return s[a]!=null}, +p(a,b){var s,r,q,p,o=null +if(typeof b=="string"){s=this.b +if(s==null)return o +r=s[b] +q=r==null?o:r.b +return q}else if(typeof b=="number"&&(b&0x3fffffff)===b){p=this.c +if(p==null)return o +r=p[b] +q=r==null?o:r.b +return q}else return this.cl(b)}, +cl(a){var s,r,q=this.d +if(q==null)return null +s=q[this.by(a)] +r=this.bz(s,a) +if(r<0)return null +return s[r].b}, +v(a,b,c){var s,r,q,p,o,n,m=this,l=A.n(m) +l.c.a(b) +l.y[1].a(c) +if(typeof b=="string"){s=m.b +m.bi(s==null?m.b=m.aM():s,b,c)}else if(typeof b=="number"&&(b&0x3fffffff)===b){r=m.c +m.bi(r==null?m.c=m.aM():r,b,c)}else{q=m.d +if(q==null)q=m.d=m.aM() +p=m.by(b) +o=q[p] +if(o==null)q[p]=[m.aN(b,c)] +else{n=m.bz(o,b) +if(n>=0)o[n].b=c +else o.push(m.aN(b,c))}}}, +O(a,b){var s,r,q=this +A.n(q).h("~(1,2)").a(b) +s=q.e +r=q.r +while(s!=null){b.$2(s.a,s.b) +if(r!==q.r)throw A.b(A.Q(q)) +s=s.c}}, +bi(a,b,c){var s,r=A.n(this) +r.c.a(b) +r.y[1].a(c) +s=a[b] +if(s==null)a[b]=this.aN(b,c) +else s.b=c}, +aN(a,b){var s=this,r=A.n(s),q=new A.dP(r.c.a(a),r.y[1].a(b)) +if(s.e==null)s.e=s.f=q +else s.f=s.f.c=q;++s.a +s.r=s.r+1&1073741823 +return q}, +by(a){return J.aY(a)&1073741823}, +bz(a,b){var s,r +if(a==null)return-1 +s=a.length +for(r=0;r"]=s +delete s[""] +return s}} +A.dP.prototype={} +A.aK.prototype={ +gk(a){return this.a.a}, +gt(a){var s=this.a +return new A.bH(s,s.r,s.e,this.$ti.h("bH<1>"))}, +u(a,b){return this.a.H(b)}} +A.bH.prototype={ +gn(){return this.d}, +m(){var s,r=this,q=r.a +if(r.b!==q.r)throw A.b(A.Q(q)) +s=r.c +if(s==null){r.d=null +return!1}else{r.d=s.a +r.c=s.c +return!0}}, +$io:1} +A.dQ.prototype={ +gk(a){return this.a.a}, +gt(a){var s=this.a +return new A.aL(s,s.r,s.e,this.$ti.h("aL<1>"))}} +A.aL.prototype={ +gn(){return this.d}, +m(){var s,r=this,q=r.a +if(r.b!==q.r)throw A.b(A.Q(q)) +s=r.c +if(s==null){r.d=null +return!1}else{r.d=s.b +r.c=s.c +return!0}}, +$io:1} +A.eD.prototype={ +$1(a){return this.a(a)}, +$S:9} +A.eE.prototype={ +$2(a,b){return this.a(a,b)}, +$S:10} +A.eF.prototype={ +$1(a){return this.a(A.k(a))}, +$S:11} +A.ar.prototype={ +i(a){return"RegExp/"+this.a+"/"+this.b.flags}, +gbp(){var s=this,r=s.c +if(r!=null)return r +r=s.b +return s.c=A.eP(s.a,r.multiline,!r.ignoreCase,r.unicode,r.dotAll,"g")}, +gc3(){var s=this,r=s.d +if(r!=null)return r +r=s.b +return s.d=A.eP(s.a,r.multiline,!r.ignoreCase,r.unicode,r.dotAll,"y")}, +bU(){var s,r=this.a +if(!B.a.u(r,"("))return!1 +s=this.b.unicode?"u":"" +return new RegExp("(?:)|"+r,s).exec("").length>1}, +S(a){var s=this.b.exec(a) +if(s==null)return null +return new A.bb(s)}, +ar(a,b,c){var s=b.length +if(c>s)throw A.b(A.y(c,0,s,null,null)) +return new A.dg(this,b,c)}, +aq(a,b){return this.ar(0,b,0)}, +bk(a,b){var s,r=this.gbp() +if(r==null)r=A.et(r) +r.lastIndex=b +s=r.exec(a) +if(s==null)return null +return new A.bb(s)}, +bZ(a,b){var s,r=this.gc3() +if(r==null)r=A.et(r) +r.lastIndex=b +s=r.exec(a) +if(s==null)return null +return new A.bb(s)}, +bD(a,b,c){if(c<0||c>b.length)throw A.b(A.y(c,0,b.length,null,null)) +return this.bZ(b,c)}, +$idV:1, +$ijm:1} +A.bb.prototype={ +gK(){return this.b.index}, +gM(){var s=this.b +return s.index+s[0].length}, +Y(a){var s,r=this.b.groups +if(r!=null){s=r[a] +if(s!=null||a in r)return s}throw A.b(A.cm(a,"name","Not a capture group name"))}, +$ia6:1, +$ibP:1} +A.dg.prototype={ +gt(a){return new A.c2(this.a,this.b,this.c)}} +A.c2.prototype={ +gn(){var s=this.d +return s==null?t.h.a(s):s}, +m(){var s,r,q,p,o,n,m=this,l=m.b +if(l==null)return!1 +s=m.c +r=l.length +if(s<=r){q=m.a +p=q.bk(l,s) +if(p!=null){m.d=p +o=p.gM() +if(p.b.index===o){s=!1 +if(q.b.unicode){q=m.c +n=q+1 +if(n=0&&q=55296&&q<=56319){if(!(n>=0))return A.a(l,n) +s=l.charCodeAt(n) +s=s>=56320&&s<=57343}}}o=(s?o+1:o)+1}m.c=o +return!0}}m.b=m.d=null +return!1}, +$io:1} +A.bX.prototype={ +gM(){return this.a+this.c.length}, +$ia6:1, +gK(){return this.a}} +A.dn.prototype={ +gt(a){return new A.dp(this.a,this.b,this.c)}} +A.dp.prototype={ +m(){var s,r,q=this,p=q.c,o=q.b,n=o.length,m=q.a,l=m.length +if(p+n>l){q.d=null +return!1}s=m.indexOf(o,p) +if(s<0){q.c=l+1 +q.d=null +return!1}r=s+n +q.d=new A.bX(s,o) +q.c=r===q.c?r+1:r +return!0}, +gn(){var s=this.d +s.toString +return s}, +$io:1} +A.b7.prototype={ +gT(a){return B.Z}, +$iG:1} +A.bJ.prototype={ +c1(a,b,c,d){var s=A.y(b,0,c,d,null) +throw A.b(s)}, +bj(a,b,c,d){if(b>>>0!==b||b>c)this.c1(a,b,c,d)}} +A.a7.prototype={ +gk(a){return a.length}, +$ib5:1} +A.ag.prototype={ +v(a,b,c){A.ch(c) +a.$flags&2&&A.H(a) +A.eu(b,a,a.length) +a[b]=c}, +a8(a,b,c,d,e){var s,r,q,p +t.Y.a(d) +a.$flags&2&&A.H(a,5) +if(t.cu.b(d)){s=a.length +this.bj(a,b,s,"start") +this.bj(a,c,s,"end") +if(b>c)A.M(A.y(b,0,c,null,null)) +r=c-b +if(e<0)A.M(A.I(e)) +q=d.length +if(q-e"))}, +G(a,b){return this.p(a,b)}, +u(a,b){var s,r=this.gk(a) +for(s=0;s").E(c).h("q<1,2>"))}, +W(a,b){return A.aj(a,b,null,A.a1(a).h("p.E"))}, +a6(a,b){return A.aj(a,0,A.fe(b,"count",t.S),A.a1(a).h("p.E"))}, +au(a,b){return new A.ab(a,A.a1(a).h("@").E(b).h("ab<1,2>"))}, +cj(a,b,c,d){var s +A.a1(a).h("p.E?").a(d) +A.ax(b,c,this.gk(a)) +for(s=b;s").a(d) +A.ax(b,c,this.gk(a)) +s=c-b +if(s===0)return +A.O(e,"skipCount") +if(t.j.b(d)){r=e +q=d}else{q=J.dw(d,e).a1(0,!1) +r=0}p=J.a9(q) +if(r+s>p.gk(q))throw A.b(A.fF()) +if(r=0;--o)this.v(a,b+o,p.p(q,r+o)) +else for(o=0;o").E(c).h("aR<1,2>"))}} +A.bg.prototype={} +A.dk.prototype={ +p(a,b){var s,r=this.b +if(r==null)return this.c.p(0,b) +else if(typeof b!="string")return null +else{s=r[b] +return typeof s=="undefined"?this.c5(b):s}}, +gk(a){return this.b==null?this.c.a:this.an().length}, +gX(){if(this.b==null){var s=this.c +return new A.aK(s,A.n(s).h("aK<1>"))}return new A.dl(this)}, +H(a){if(this.b==null)return this.c.H(a) +return Object.prototype.hasOwnProperty.call(this.a,a)}, +O(a,b){var s,r,q,p,o=this +t.bn.a(b) +if(o.b==null)return o.c.O(0,b) +s=o.an() +for(r=0;r=0&&b"))}return s}, +u(a,b){return this.a.H(b)}} +A.eq.prototype={ +$0(){var s,r +try{s=new TextDecoder("utf-8",{fatal:true}) +return s}catch(r){}return null}, +$S:5} +A.ep.prototype={ +$0(){var s,r +try{s=new TextDecoder("utf-8",{fatal:false}) +return s}catch(r){}return null}, +$S:5} +A.cn.prototype={ +ci(a){return B.z.ag(a)}} +A.dq.prototype={ +ag(a){var s,r,q,p,o,n +A.k(a) +s=a.length +r=A.ax(0,null,s) +q=new Uint8Array(r) +for(p=~this.a,o=0;o=0&&e=0){if(!(d<64))return A.a(a0,d) +e=a0.charCodeAt(d) +if(e===j)continue +j=e}else{if(d===-1){if(n<0){g=o==null?null:o.a.length +if(g==null)g=0 +n=g+(q-p) +m=q}++l +if(j===61)continue}j=e}if(d!==-2){if(o==null){o=new A.E("") +g=o}else g=o +g.a+=B.a.j(a3,p,q) +c=A.N(j) +g.a+=c +p=k +continue}}throw A.b(A.x("Invalid base64 data",a3,q))}if(o!=null){a2=B.a.j(a3,p,a5) +a2=o.a+=a2 +r=a2.length +if(n>=0)A.fw(a3,m,a5,n,l,r) +else{b=B.c.aI(r-1,4)+1 +if(b===1)throw A.b(A.x(a1,a3,a5)) +while(b<4){a2+="=" +o.a=a2;++b}}a2=o.a +return B.a.V(a3,a4,a5,a2.charCodeAt(0)==0?a2:a2)}a=a5-a4 +if(n>=0)A.fw(a3,m,a5,n,l,a) +else{b=B.c.aI(a,4) +if(b===1)throw A.b(A.x(a1,a3,a5)) +if(b>1)a3=B.a.V(a3,a5,a5,b===2?"==":"=")}return a3}} +A.cs.prototype={} +A.ac.prototype={} +A.ee.prototype={} +A.ad.prototype={} +A.cx.prototype={} +A.cI.prototype={ +cd(a,b){var s=A.kG(a,this.gcf().a) +return s}, +gcf(){return B.V}} +A.cJ.prototype={} +A.dc.prototype={} +A.de.prototype={ +ag(a){var s,r,q,p,o,n +A.k(a) +s=a.length +r=A.ax(0,null,s) +if(r===0)return new Uint8Array(0) +q=r*3 +p=new Uint8Array(q) +o=new A.er(p) +if(o.c_(a,0,r)!==r){n=r-1 +if(!(n>=0&&n>>18|240 +q=n.b=p+1 +if(!(p>>12&63|128 +p=n.b=q+1 +if(!(q>>6&63|128 +n.b=p+1 +if(!(p=0&&s=q)break +k.b=m+1 +r&2&&A.H(s) +s[m]=n}else{m=n&64512 +if(m===55296){if(k.b+4>q)break +m=o+1 +if(!(mq)break +k.aP()}else if(n<=2047){m=k.b +l=m+1 +if(l>=q)break +k.b=l +r&2&&A.H(s) +if(!(m>>6|192 +k.b=l+1 +s[l]=n&63|128}else{m=k.b +if(m+2>=q)break +l=k.b=m+1 +r&2&&A.H(s) +if(!(m>>12|224 +m=k.b=l+1 +if(!(l>>6&63|128 +k.b=m+1 +if(!(m=15){o=l.a +n=A.k7(o,q,b,s) +if(n!=null){if(!o)return n +if(n.indexOf("\ufffd")<0)return n}}n=l.aJ(q,b,s,!0) +o=l.b +if((o&1)!==0){m=A.k9(o) +l.b=0 +throw A.b(A.x(m,a,p+l.c))}return n}, +aJ(a,b,c,d){var s,r,q=this +if(c-b>1000){s=B.c.br(b+c,2) +r=q.aJ(a,b,s,!1) +if((q.b&1)!==0)return r +return r+q.aJ(a,s,c,d)}return q.ce(a,b,c,d)}, +ce(a,b,a0,a1){var s,r,q,p,o,n,m,l,k=this,j="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHJEEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKCCCCCCCCCCCCDCLONNNMEEEEEEEEEEE",i=" \x000:XECCCCCN:lDb \x000:XECCCCCNvlDb \x000:XECCCCCN:lDb AAAAA\x00\x00\x00\x00\x00AAAAA00000AAAAA:::::AAAAAGG000AAAAA00KKKAAAAAG::::AAAAA:IIIIAAAAA000\x800AAAAA\x00\x00\x00\x00 AAAAA",h=65533,g=k.b,f=k.c,e=new A.E(""),d=b+1,c=a.length +if(!(b>=0&&b=0&&s<256))return A.a(j,s) +q=j.charCodeAt(s)&31 +f=g<=32?s&61694>>>q:(s&63|f<<6)>>>0 +p=g+q +if(!(p>=0&&p<144))return A.a(i,p) +g=i.charCodeAt(p) +if(g===0){p=A.N(f) +e.a+=p +if(d===a0)break A +break}else if((g&1)!==0){if(r)switch(g){case 69:case 67:p=A.N(h) +e.a+=p +break +case 65:p=A.N(h) +e.a+=p;--d +break +default:p=A.N(h) +e.a=(e.a+=p)+p +break}else{k.b=g +k.c=d-1 +return""}g=0}if(d===a0)break A +o=d+1 +if(!(d>=0&&d=0&&d=0&&o=128){n=m-1 +o=m +break}o=m}if(n-d<20)for(l=d;l32)if(r){c=A.N(h) +e.a+=c}else{k.b=77 +k.c=a0 +return""}k.b=g +k.c=f +c=e.a +return c.charCodeAt(0)==0?c:c}} +A.dT.prototype={ +$2(a,b){var s,r,q +t.cm.a(a) +s=this.b +r=this.a +q=(s.a+=r.a)+a.a +s.a=q +s.a=q+": " +q=A.b1(b) +s.a+=q +r.a=", "}, +$S:13} +A.v.prototype={} +A.cp.prototype={ +i(a){var s=this.a +if(s!=null)return"Assertion failed: "+A.b1(s) +return"Assertion failed"}} +A.c_.prototype={} +A.a3.prototype={ +gaL(){return"Invalid argument"+(!this.a?"(s)":"")}, +gaK(){return""}, +i(a){var s=this,r=s.c,q=r==null?"":" ("+r+")",p=s.d,o=p==null?"":": "+A.f(p),n=s.gaL()+q+o +if(!s.a)return n +return n+s.gaK()+": "+A.b1(s.gb2())}, +gb2(){return this.b}} +A.ah.prototype={ +gb2(){return A.hw(this.b)}, +gaL(){return"RangeError"}, +gaK(){var s,r=this.e,q=this.f +if(r==null)s=q!=null?": Not less than or equal to "+A.f(q):"" +else if(q==null)s=": Not greater than or equal to "+A.f(r) +else if(q>r)s=": Not in inclusive range "+A.f(r)+".."+A.f(q) +else s=qe.length +else s=!1 +if(s)f=null +if(f==null){if(e.length>78)e=B.a.j(e,0,75)+"..." +return g+"\n"+e}for(r=e.length,q=1,p=0,o=!1,n=0;n1?g+(" (at line "+q+", character "+(f-p+1)+")\n"):g+(" (at character "+(f+1)+")\n") +for(n=f;n=0))return A.a(e,n) +m=e.charCodeAt(n) +if(m===10||m===13){r=n +break}}l="" +if(r-p>78){k="..." +if(f-p<75){j=p+75 +i=p}else{if(r-f<75){i=r-75 +j=r +k=""}else{i=f-36 +j=f+36}l="..."}}else{j=r +i=p +k=""}return g+l+B.a.j(e,i,j)+k+"\n"+B.a.bg(" ",f-i+l.length)+"^\n"}else return f!=null?g+(" (at offset "+A.f(f)+")"):g}, +$iby:1} +A.c.prototype={ +au(a,b){return A.dx(this,A.n(this).h("c.E"),b)}, +b4(a,b,c){var s=A.n(this) +return A.eU(this,s.E(c).h("1(c.E)").a(b),s.h("c.E"),c)}, +u(a,b){var s +for(s=this.gt(this);s.m();)if(J.ap(s.gn(),b))return!0 +return!1}, +a1(a,b){var s=A.n(this).h("c.E") +if(b)s=A.at(this,s) +else{s=A.at(this,s) +s.$flags=1 +s=s}return s}, +aH(a){return this.a1(0,!0)}, +gk(a){var s,r=this.gt(this) +for(s=0;r.m();)++s +return s}, +gcm(a){return!this.gt(this).m()}, +a6(a,b){return A.fX(this,b,A.n(this).h("c.E"))}, +W(a,b){return A.jp(this,b,A.n(this).h("c.E"))}, +gaU(a){var s=this.gt(this) +if(!s.m())throw A.b(A.b4()) +return s.gn()}, +gI(a){var s,r=this.gt(this) +if(!r.m())throw A.b(A.b4()) +do s=r.gn() +while(r.m()) +return s}, +G(a,b){var s,r +A.O(b,"index") +s=this.gt(this) +for(r=b;s.m();){if(r===0)return s.gn();--r}throw A.b(A.eO(b,b-r,this,"index"))}, +i(a){return A.j9(this,"(",")")}} +A.bM.prototype={ +gC(a){return A.t.prototype.gC.call(this,0)}, +i(a){return"null"}} +A.t.prototype={$it:1, +J(a,b){return this===b}, +gC(a){return A.cW(this)}, +i(a){return"Instance of '"+A.cX(this)+"'"}, +bE(a,b){throw A.b(A.fK(this,t.o.a(b)))}, +gT(a){return A.bm(this)}, +toString(){return this.i(this)}} +A.E.prototype={ +gk(a){return this.a.length}, +i(a){var s=this.a +return s.charCodeAt(0)==0?s:s}, +$ijq:1} +A.ec.prototype={ +$2(a,b){throw A.b(A.x("Illegal IPv6 address, "+a,this.a,b))}, +$S:14} +A.cd.prototype={ +gbs(){var s,r,q,p,o=this,n=o.w +if(n===$){s=o.a +r=s.length!==0?s+":":"" +q=o.c +p=q==null +if(!p||s==="file"){s=r+"//" +r=o.b +if(r.length!==0)s=s+r+"@" +if(!p)s+=q +r=o.d +if(r!=null)s=s+":"+A.f(r)}else s=r +s+=o.e +r=o.f +if(r!=null)s=s+"?"+r +r=o.r +if(r!=null)s=s+"#"+r +n=o.w=s.charCodeAt(0)==0?s:s}return n}, +gb8(){var s,r,q,p=this,o=p.x +if(o===$){s=p.e +r=s.length +if(r!==0){if(0>=r)return A.a(s,0) +r=s.charCodeAt(0)===47}else r=!1 +if(r)s=B.a.B(s,1) +q=s.length===0?B.u:A.a4(new A.q(A.h(s.split("/"),t.s),t.q.a(A.kT()),t.r),t.N) +p.x!==$&&A.eK("pathSegments") +o=p.x=q}return o}, +gC(a){var s,r=this,q=r.y +if(q===$){s=B.a.gC(r.gbs()) +r.y!==$&&A.eK("hashCode") +r.y=s +q=s}return q}, +gbe(){return this.b}, +ga3(){var s=this.c +if(s==null)return"" +if(B.a.q(s,"[")&&!B.a.A(s,"v",1))return B.a.j(s,1,s.length-1) +return s}, +gak(){var s=this.d +return s==null?A.hi(this.a):s}, +gal(){var s=this.f +return s==null?"":s}, +gaz(){var s=this.r +return s==null?"":s}, +cn(a){var s=this.a +if(a.length!==s.length)return!1 +return A.kj(a,s,0)>=0}, +bH(a){var s,r,q,p,o,n,m,l=this +a=A.en(a,0,a.length) +s=a==="file" +r=l.b +q=l.d +if(a!==l.a)q=A.em(q,a) +p=l.c +if(!(p!=null))p=r.length!==0||q!=null||s?"":null +o=l.e +if(!s)n=p!=null&&o.length!==0 +else n=!0 +if(n&&!B.a.q(o,"/"))o="/"+o +m=o +return A.ce(a,r,p,q,m,l.f,l.r)}, +bo(a,b){var s,r,q,p,o,n,m,l,k +for(s=0,r=0;B.a.A(b,"../",r);){r+=3;++s}q=B.a.bB(a,"/") +p=a.length +for(;;){if(!(q>0&&s>0))break +o=B.a.bC(a,"/",q-1) +if(o<0)break +n=q-o +m=n!==2 +l=!1 +if(!m||n===3){k=o+1 +if(!(k0){k=B.a.j(n,0,l) +n=a.gaW()?k+A.aU(a.gR()):k+A.aU(h.bo(B.a.B(n,k.length),a.gR()))}else if(a.gaW())n=A.aU(a.gR()) +else if(n.length===0)if(p==null)n=s.length===0?a.gR():A.aU(a.gR()) +else n=A.aU("/"+a.gR()) +else{j=h.bo(n,a.gR()) +r=s.length===0 +if(!r||p!=null||B.a.q(n,"/"))n=A.aU(j) +else n=A.f8(j,!r||p!=null)}m=a.gaA()?a.gal():null}}}i=a.gaY()?a.gaz():null +return A.ce(s,q,p,o,n,m,i)}, +gaX(){return this.c!=null}, +gaA(){return this.f!=null}, +gaY(){return this.r!=null}, +gbx(){return this.e.length===0}, +gaW(){return B.a.q(this.e,"/")}, +bc(){var s,r=this,q=r.a +if(q!==""&&q!=="file")throw A.b(A.U("Cannot extract a file path from a "+q+" URI")) +q=r.f +if((q==null?"":q)!=="")throw A.b(A.U(u.y)) +q=r.r +if((q==null?"":q)!=="")throw A.b(A.U(u.l)) +if(r.c!=null&&r.ga3()!=="")A.M(A.U(u.j)) +s=r.gb8() +A.jY(s,!1) +q=A.eZ(B.a.q(r.e,"/")?"/":"",s,"/") +q=q.charCodeAt(0)==0?q:q +return q}, +i(a){return this.gbs()}, +J(a,b){var s,r,q,p=this +if(b==null)return!1 +if(p===b)return!0 +s=!1 +if(t.R.b(b))if(p.a===b.gL())if(p.c!=null===b.gaX())if(p.b===b.gbe())if(p.ga3()===b.ga3())if(p.gak()===b.gak())if(p.e===b.gR()){r=p.f +q=r==null +if(!q===b.gaA()){if(q)r="" +if(r===b.gal()){r=p.r +q=r==null +if(!q===b.gaY()){s=q?"":r +s=s===b.gaz()}}}}return s}, +$ic1:1, +gL(){return this.a}, +gR(){return this.e}} +A.el.prototype={ +$1(a){return A.k6(64,A.k(a),B.f,!1)}, +$S:3} +A.d9.prototype={ +gad(){var s,r,q,p,o=this,n=null,m=o.c +if(m==null){m=o.b +if(0>=m.length)return A.a(m,0) +s=o.a +m=m[0]+1 +r=B.a.a4(s,"?",m) +q=s.length +if(r>=0){p=A.cf(s,r+1,q,256,!1,!1) +q=r}else p=n +m=o.c=new A.dh("data","",n,n,A.cf(s,m,q,128,!1,!1),p,n)}return m}, +i(a){var s,r=this.b +if(0>=r.length)return A.a(r,0) +s=this.a +return r[0]===-1?"data:"+s:s}} +A.a_.prototype={ +gaX(){return this.c>0}, +gaZ(){return this.c>0&&this.d+1r?B.a.j(this.a,r,s-1):""}, +ga3(){var s=this.c +return s>0?B.a.j(this.a,s,this.d):""}, +gak(){var s,r=this +if(r.gaZ())return A.a2(B.a.j(r.a,r.d+1,r.e),null) +s=r.b +if(s===4&&B.a.q(r.a,"http"))return 80 +if(s===5&&B.a.q(r.a,"https"))return 443 +return 0}, +gR(){return B.a.j(this.a,this.e,this.f)}, +gal(){var s=this.f,r=this.r +return s=0&&q=q.length)return s +return new A.a_(B.a.j(q,0,r),s.b,s.c,s.d,s.e,s.f,r,s.w)}, +bH(a){var s,r,q,p,o,n,m,l,k,j,i,h=this,g=null +a=A.en(a,0,a.length) +s=!(h.b===a.length&&B.a.q(h.a,a)) +r=a==="file" +q=h.c +p=q>0?B.a.j(h.a,h.b+3,q):"" +o=h.gaZ()?h.gak():g +if(s)o=A.em(o,a) +q=h.c +if(q>0)n=B.a.j(h.a,q,h.d) +else n=p.length!==0||o!=null||r?"":g +q=h.a +m=h.f +l=B.a.j(q,h.e,m) +if(!r)k=n!=null&&l.length!==0 +else k=!0 +if(k&&!B.a.q(l,"/"))l="/"+l +k=h.r +j=m0)return b +s=b.c +if(s>0){r=a.b +if(r<=0)return b +q=r===4 +if(q&&B.a.q(a.a,"file"))p=b.e!==b.f +else if(q&&B.a.q(a.a,"http"))p=!b.bl("80") +else p=!(r===5&&B.a.q(a.a,"https"))||!b.bl("443") +if(p){o=r+1 +return new A.a_(B.a.j(a.a,0,o)+B.a.B(b.a,c+1),r,s+o,b.d+o,b.e+o,b.f+o,b.r+o,a.w)}else return this.bt().am(b)}n=b.e +c=b.f +if(n===c){s=b.r +if(c0?l:m +o=k-n +return new A.a_(B.a.j(a.a,0,k)+B.a.B(s,n),a.b,a.c,a.d,m,c+o,b.r+o,a.w)}j=a.e +i=a.f +if(j===i&&a.c>0){while(B.a.A(s,"../",n))n+=3 +o=j-n+1 +return new A.a_(B.a.j(a.a,0,j)+"/"+B.a.B(s,n),a.b,a.c,a.d,j,c+o,b.r+o,a.w)}h=a.a +l=A.hc(this) +if(l>=0)g=l +else for(g=j;B.a.A(h,"../",g);)g+=3 +f=0 +for(;;){e=n+3 +if(!(e<=c&&B.a.A(s,"../",n)))break;++f +n=e}for(r=h.length,d="";i>g;){--i +if(!(i>=0&&i=0){s=!(q===4&&B.a.q(r.a,"file")) +q=s}else q=!1 +if(q)throw A.b(A.U("Cannot extract a file path from a "+r.gL()+" URI")) +q=r.f +s=r.a +if(q0?s.ga3():r,n=s.gaZ()?s.gak():r,m=s.a,l=s.f,k=B.a.j(m,s.e,l),j=s.r +l=l0)s=!r.P(a) +if(s)return a +s=this.b +return this.bA(A.hI("absolute",s==null?A.fg():s,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o))}, +a_(a){var s=null +return this.bv(a,s,s,s,s,s,s,s,s,s,s,s,s,s,s)}, +cg(a){var s,r,q=A.aN(a,this.a) +q.aG() +s=q.d +r=s.length +if(r===0){s=q.b +return s==null?".":s}if(r===1){s=q.b +return s==null?".":s}B.b.ba(s) +s=q.e +if(0>=s.length)return A.a(s,-1) +s.pop() +q.aG() +return q.i(0)}, +bA(a){var s,r,q,p,o,n,m,l,k,j +t.c.a(a) +for(s=A.u(a),r=s.h("X(1)").a(new A.dF()),q=B.b.gt(a),s=new A.aS(q,r,s.h("aS<1>")),r=this.a,p=!1,o=!1,n="";s.m();){m=q.gn() +if(r.P(m)&&o){l=A.aN(m,r) +k=n.charCodeAt(0)==0?n:n +n=B.a.j(k,0,r.ac(k,!0)) +l.b=n +if(r.aj(n))B.b.v(l.e,0,r.ga7()) +n=l.i(0)}else if(r.F(m)>0){o=!r.P(m) +n=m}else{j=m.length +if(j!==0){if(0>=j)return A.a(m,0) +j=r.aS(m[0])}else j=!1 +if(!j)if(p)n+=r.ga7() +n+=m}p=r.aj(m)}return n.charCodeAt(0)==0?n:n}, +af(a,b){var s=A.aN(b,this.a),r=s.d,q=A.u(r),p=q.h("V<1>") +r=A.at(new A.V(r,q.h("X(1)").a(new A.dG()),p),p.h("c.E")) +s.scr(r) +r=s.b +if(r!=null)B.b.b0(s.d,0,r) +return s.d}, +b7(a){var s +if(!this.c4(a))return a +s=A.aN(a,this.a) +s.b6() +return s.i(0)}, +c4(a){var s,r,q,p,o,n,m=a.length +if(m===0)return!0 +s=this.a +r=s.F(a) +if(r!==0){q=r-1 +if(!(q>=0&&q=0))return A.a(a,o) +n=a.charCodeAt(o) +if(s.D(n)){if(p>=1&&p<6)return!0 +if(s===$.cl()&&n===47)return!0 +p=1}else if(n===46)p+=2 +else{if(s===$.ao())q=n===63||n===35 +else q=!1 +if(q)return!0 +p=6}}return p>=1&&p<6}, +aE(a,b){var s,r,q,p,o,n,m,l=this,k='Unable to find a path to "',j=b==null +if(j&&l.a.F(a)<=0)return l.b7(a) +if(j){j=l.b +b=j==null?A.fg():j}else b=l.a_(b) +j=l.a +if(j.F(b)<=0&&j.F(a)>0)return l.b7(a) +if(j.F(a)<=0||j.P(a))a=l.a_(a) +if(j.F(a)<=0&&j.F(b)>0)throw A.b(A.fM(k+a+'" from "'+b+'".')) +s=A.aN(b,j) +s.b6() +r=A.aN(a,j) +r.b6() +q=s.d +p=q.length +if(p!==0){if(0>=p)return A.a(q,0) +q=q[0]==="."}else q=!1 +if(q)return r.i(0) +q=s.b +p=r.b +if(q!=p)q=q==null||p==null||!j.b9(q,p) +else q=!1 +if(q)return r.i(0) +for(;;){q=s.d +p=q.length +o=!1 +if(p!==0){n=r.d +m=n.length +if(m!==0){if(0>=p)return A.a(q,0) +q=q[0] +if(0>=m)return A.a(n,0) +n=j.b9(q,n[0]) +q=n}else q=o}else q=o +if(!q)break +B.b.aF(s.d,0) +B.b.aF(s.e,1) +B.b.aF(r.d,0) +B.b.aF(r.e,1)}q=s.d +p=q.length +if(p!==0){if(0>=p)return A.a(q,0) +q=q[0]===".."}else q=!1 +if(q)throw A.b(A.fM(k+a+'" from "'+b+'".')) +q=t.N +B.b.b1(r.d,0,A.au(p,"..",!1,q)) +B.b.v(r.e,0,"") +B.b.b1(r.e,1,A.au(s.d.length,j.ga7(),!1,q)) +j=r.d +q=j.length +if(q===0)return"." +if(q>1&&B.b.gI(j)==="."){B.b.ba(r.d) +j=r.e +if(0>=j.length)return A.a(j,-1) +j.pop() +if(0>=j.length)return A.a(j,-1) +j.pop() +B.b.l(j,"")}r.b="" +r.aG() +return r.i(0)}, +cu(a){return this.aE(a,null)}, +bm(a,b){var s,r,q,p,o,n,m,l,k=this +a=A.k(a) +b=A.k(b) +r=k.a +q=r.F(A.k(a))>0 +p=r.F(A.k(b))>0 +if(q&&!p){b=k.a_(b) +if(r.P(a))a=k.a_(a)}else if(p&&!q){a=k.a_(a) +if(r.P(b))b=k.a_(b)}else if(p&&q){o=r.P(b) +n=r.P(a) +if(o&&!n)b=k.a_(b) +else if(n&&!o)a=k.a_(a)}m=k.c2(a,b) +if(m!==B.e)return m +s=null +try{s=k.aE(b,a)}catch(l){if(A.ck(l) instanceof A.bO)return B.d +else throw l}if(r.F(A.k(s))>0)return B.d +if(J.ap(s,"."))return B.o +if(J.ap(s,".."))return B.d +return J.Z(s)>=3&&J.iR(s,"..")&&r.D(J.iL(s,2))?B.d:B.h}, +c2(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=this +if(a===".")a="" +s=d.a +r=s.F(a) +q=s.F(b) +if(r!==q)return B.d +for(p=a.length,o=b.length,n=0;n=0&&l=0&&m=0&&l=0&&m=0))return A.a(a,q) +n=r.D(a.charCodeAt(q))}else n=!1 +if(!n)break;++q}if(q===s)break +m=q +for(;;){if(m=0))return A.a(a,m) +n=!r.D(a.charCodeAt(m))}else n=!1 +if(!n)break;++m}n=m-q +if(n===1){if(!(q>=0&&q=0&&qq.af(0,s).length?s:r}} +A.dF.prototype={ +$1(a){return A.k(a)!==""}, +$S:0} +A.dG.prototype={ +$1(a){return A.k(a).length!==0}, +$S:0} +A.bc.prototype={ +i(a){return this.a}} +A.bd.prototype={ +i(a){return this.a}} +A.b3.prototype={ +bL(a){var s,r=this.F(a) +if(r>0)return B.a.j(a,0,r) +if(this.P(a)){if(0>=a.length)return A.a(a,0) +s=a[0]}else s=null +return s}, +bG(a){var s,r,q=null,p=a.length +if(p===0)return A.B(q,q,q,q) +s=A.eN(this).af(0,a) +r=p-1 +if(!(r>=0))return A.a(a,r) +if(this.D(a.charCodeAt(r)))B.b.l(s,"") +return A.B(q,q,s,q)}, +av(a,b){return a===b}, +b9(a,b){return a===b}} +A.dU.prototype={ +gb_(){var s=this.d +if(s.length!==0)s=B.b.gI(s)===""||B.b.gI(this.e)!=="" +else s=!1 +return s}, +aG(){var s,r,q=this +for(;;){s=q.d +if(!(s.length!==0&&B.b.gI(s)===""))break +B.b.ba(q.d) +s=q.e +if(0>=s.length)return A.a(s,-1) +s.pop()}s=q.e +r=s.length +if(r!==0)B.b.v(s,r-1,"")}, +b6(){var s,r,q,p,o,n,m,l=this,k=A.h([],t.s),j=l.a +if(j===$.ao()&&l.d.length!==0){s=l.d +B.b.sI(s,A.ld(B.b.gI(s)))}for(s=l.d,r=s.length,q=0,p=0;p=n)return A.a(k,-1) +k.pop()}else ++q}else B.b.l(k,o)}if(l.b==null)B.b.b1(k,0,A.au(q,"..",!1,t.N)) +if(k.length===0&&l.b==null)B.b.l(k,".") +l.d=k +l.e=A.au(k.length+1,j.ga7(),!0,t.N) +m=l.b +s=m!=null +if(!s||k.length===0||!j.aj(m))B.b.v(l.e,0,"") +if(s)if(j===$.cl())l.b=A.Y(m,"/","\\") +l.aG()}, +i(a){var s,r,q,p,o,n=this.b +n=n!=null?n:"" +for(s=this.d,r=s.length,q=this.e,p=q.length,o=0;o=0))return A.a(a,s) +s=a.charCodeAt(s)!==47 +r=s}else r=!1 +return r}, +ac(a,b){var s=a.length +if(s!==0){if(0>=s)return A.a(a,0) +s=a.charCodeAt(0)===47}else s=!1 +if(s)return 1 +return 0}, +F(a){return this.ac(a,!1)}, +P(a){return!1}, +aD(a){var s +if(a.gL()===""||a.gL()==="file"){s=a.gR() +return A.f9(s,0,s.length,B.f,!1)}throw A.b(A.I("Uri "+a.i(0)+" must have scheme 'file:'."))}, +aQ(a){var s=A.aN(a,this),r=s.d +if(r.length===0)B.b.aR(r,A.h(["",""],t.s)) +else if(s.gb_())B.b.l(s.d,"") +return A.B(null,null,s.d,"file")}, +gb5(){return"posix"}, +ga7(){return"/"}} +A.db.prototype={ +aS(a){return B.a.u(a,"/")}, +D(a){return a===47}, +aj(a){var s,r=a.length +if(r===0)return!1 +s=r-1 +if(!(s>=0))return A.a(a,s) +if(a.charCodeAt(s)!==47)return!0 +return B.a.aT(a,"://")&&this.F(a)===r}, +ac(a,b){var s,r,q,p,o,n,m,l,k=a.length +if(k===0)return 0 +if(b&&A.lh(a))s=5 +else{s=A.kW(a,0) +b=!1}r=s>0 +q=r?A.kR(a,s):0 +if(q===k)return q +if(!(qs){n=A.hN(a,o) +if(n>o)return n}if(q===0)return o +return q}if(q>s)return q +if(r){m=q +l=p +for(;;){if(!(l!==35&&l!==63&&l!==47))break;++m +if(m===k)break +if(!(m=s)return A.a(a,0) +if(a.charCodeAt(0)===47)if(s>=2){if(1>=s)return A.a(a,1) +s=a.charCodeAt(1)!==47}else s=!0 +else s=r}else s=r +return s}, +aD(a){return a.i(0)}, +bG(a){return A.P(a)}, +aQ(a){return A.P(a)}, +gb5(){return"url"}, +ga7(){return"/"}} +A.df.prototype={ +aS(a){return B.a.u(a,"/")}, +D(a){return a===47||a===92}, +aj(a){var s,r=a.length +if(r===0)return!1 +s=r-1 +if(!(s>=0))return A.a(a,s) +s=a.charCodeAt(s) +return!(s===47||s===92)}, +ac(a,b){var s,r,q=a.length +if(q===0)return 0 +if(0>=q)return A.a(a,0) +if(a.charCodeAt(0)===47)return 1 +if(a.charCodeAt(0)===92){if(q>=2){if(1>=q)return A.a(a,1) +s=a.charCodeAt(1)!==92}else s=!0 +if(s)return 1 +r=B.a.a4(a,"\\",2) +if(r>0){r=B.a.a4(a,"\\",r+1) +if(r>0)return r}return q}if(q<3)return 0 +if(!A.fl(a.charCodeAt(0)))return 0 +if(a.charCodeAt(1)!==58)return 0 +q=a.charCodeAt(2) +if(!(q===47||q===92))return 0 +return 3}, +F(a){return this.ac(a,!1)}, +P(a){return this.F(a)===1}, +aD(a){var s,r +if(a.gL()!==""&&a.gL()!=="file")throw A.b(A.I("Uri "+a.i(0)+" must have scheme 'file:'.")) +s=a.gR() +if(a.ga3()===""){if(s.length>=3&&B.a.q(s,"/")&&A.hN(s,1)!==1)s=B.a.bI(s,"/","")}else s="\\\\"+a.ga3()+s +r=A.Y(s,"/","\\") +return A.f9(r,0,r.length,B.f,!1)}, +aQ(a){var s,r,q=A.aN(a,this),p=q.b +p.toString +if(B.a.q(p,"\\\\")){s=new A.V(A.h(p.split("\\"),t.s),t.Q.a(new A.ed()),t.U) +B.b.b0(q.d,0,s.gI(0)) +if(q.gb_())B.b.l(q.d,"") +return A.B(s.gaU(0),null,q.d,"file")}else{if(q.d.length===0||q.gb_())B.b.l(q.d,"") +p=q.d +r=q.b +r.toString +r=A.Y(r,"/","") +B.b.b0(p,0,A.Y(r,"\\","")) +return A.B(null,null,q.d,"file")}}, +av(a,b){var s +if(a===b)return!0 +if(a===47)return b===92 +if(a===92)return b===47 +if((a^b)!==32)return!1 +s=a|32 +return s>=97&&s<=122}, +b9(a,b){var s,r,q +if(a===b)return!0 +s=a.length +r=b.length +if(s!==r)return!1 +for(q=0;q")),q=this.c,p=this.a,o=this.b,n=t.a5,r=r.h("p.E");s.m();){m=s.d +if(m==null)m=r.a(m) +l=n.a(m.p(0,"offset")) +if(l==null)throw A.b(B.N) +k=A.fa(l.p(0,"line")) +if(k==null)throw A.b(B.P) +j=A.fa(l.p(0,"column")) +if(j==null)throw A.b(B.O) +B.b.l(p,k) +B.b.l(o,j) +i=A.dr(m.p(0,"url")) +h=n.a(m.p(0,"map")) +m=i!=null +if(m&&h!=null)throw A.b(B.L) +else if(m){m=A.x("section contains refers to "+i+', but no map was given for it. Make sure a map is passed in "otherMaps"',null,null) +throw A.b(m)}else if(h!=null)B.b.l(q,A.hU(h,c,b)) +else throw A.b(B.Q)}if(p.length===0)throw A.b(B.R)}, +i(a){var s,r,q,p,o,n,m=this,l=A.bm(m).i(0)+" : [" +for(s=m.a,r=m.b,q=m.c,p=0;p")),r="";s.m();)r+=s.d.i(0) +return r.charCodeAt(0)==0?r:r}, +ae(a,b,c,d){var s,r,q,p,o,n,m,l +d=A.aZ(d,"uri",t.N) +s=A.h([47,58],t.t) +for(r=d.length,q=this.a,p=!0,o=0;o0 +p=f.d +l=0 +k=0 +j=0 +i=0 +h=0 +g=0 +for(;;){if(!(n.c=a.length)throw A.b(A.d3("Invalid source url id. "+A.f(f.e)+", "+l+", "+j)) +o=n.ga5() +if(!(!o.a&&!o.b&&!o.c))throw A.b(f.aO(2,l)) +i+=A.ds(n) +o=n.ga5() +if(!(!o.a&&!o.b&&!o.c))throw A.b(f.aO(3,l)) +h+=A.ds(n) +o=n.ga5() +if(!(!o.a&&!o.b&&!o.c))B.b.l(m,new A.ak(k,j,i,h,d)) +else{g+=A.ds(n) +if(g>=s.length)throw A.b(A.d3("Invalid name id: "+A.f(f.e)+", "+l+", "+g)) +B.b.l(m,new A.ak(k,j,i,h,g))}}if(n.ga5().b)++n.c}}if(m.length!==0)B.b.l(p,new A.az(l,m)) +a2.O(0,new A.dY(f))}, +aO(a,b){return new A.aO("Invalid entry in sourcemap, expected 1, 4, or 5 values, but got "+a+".\ntargeturl: "+A.f(this.e)+", line: "+b)}, +c0(a,b){var s,r,q,p,o=this.d,n=A.hL(o,new A.dZ(a),t.e) +for(s=t.D;--n,n>=0;){if(!(n0){o=p-1 +if(!(o>>0!==s||s>=r.length)return A.a(r,s) +q=r[s] +r=l.f +if(r!=null)q=r+q +p=k.e +r=l.r +r=r==null?null:r.bb(q) +if(r==null)r=q +o=k.c +n=A.eY(0,k.d,o,r) +if(p!=null){r=l.b +if(p>>>0!==p||p>=r.length)return A.a(r,p) +r=r[p] +o=r.length +o=A.eY(n.b+o,n.d+o,n.c,n.a) +m=new A.bV(n,o,r) +m.bh(n,o,r) +return m}else return A.fT(n,n,"",!1)}, +i(a){var s=this,r=A.bm(s).i(0)+" : [targetUrl: "+A.f(s.e)+", sourceRoot: "+A.f(s.f)+", urls: "+A.f(s.a)+", names: "+A.f(s.b)+", lines: "+A.f(s.d)+"]" +return r.charCodeAt(0)==0?r:r}} +A.dY.prototype={ +$2(a,b){A.k(a) +if(B.a.q(a,"x_"))this.a.w.v(0,a,b)}, +$S:4} +A.dZ.prototype={ +$1(a){return t.e.a(a).a>this.a}, +$S:15} +A.e_.prototype={ +$1(a){return t.D.a(a).a>this.a}, +$S:16} +A.az.prototype={ +i(a){return A.bm(this).i(0)+": "+this.a+" "+A.f(this.b)}} +A.ak.prototype={ +i(a){var s=this +return A.bm(s).i(0)+": ("+s.a+", "+A.f(s.b)+", "+A.f(s.c)+", "+A.f(s.d)+", "+A.f(s.e)+")"}} +A.dm.prototype={ +m(){return++this.c=0&&s=0&&s0}, +ga5(){var s,r,q +if(!this.gck())return B.a6 +s=this.a +r=this.c+1 +if(!(r>=0&&r=0))return A.a(s,q) +l.a+=s[q]}l.a+=" ("+m.c+")" +s=l.a +return s.charCodeAt(0)==0?s:s}, +$io:1} +A.be.prototype={} +A.bV.prototype={} +A.ex.prototype={ +$0(){var s,r=A.eS(t.N,t.S) +for(s=0;s<64;++s)r.v(0,u.n[s],s) +return r}, +$S:17} +A.cZ.prototype={ +gk(a){return this.c.length}, +bS(a,b){var s,r,q,p,o,n,m,l,k,j +for(s=this.c,r=s.length,q=a.a,p=q.length,o=s.$flags|0,n=this.b,m=0;m"}, +gN(){return this.a}, +gab(){return this.b}, +gai(){return this.c}, +gaw(){return this.d}} +A.d0.prototype={ +bh(a,b,c){var s,r=this.b,q=this.a +if(!r.gN().J(0,q.gN()))throw A.b(A.I('Source URLs "'+q.gN().i(0)+'" and "'+r.gN().i(0)+"\" don't match.")) +else if(r.gab()'}, +$ie0:1} +A.aq.prototype={ +bJ(){var s=this.a,r=A.u(s) +return A.f_(new A.bz(s,r.h("c(1)").a(new A.dE()),r.h("bz<1,i>")),null)}, +i(a){var s=this.a,r=A.u(s) +return new A.q(s,r.h("d(1)").a(new A.dC(new A.q(s,r.h("e(1)").a(new A.dD()),r.h("q<1,e>")).aV(0,0,B.i,t.S))),r.h("q<1,d>")).a0(0,u.q)}, +$id2:1} +A.dz.prototype={ +$1(a){return A.k(a).length!==0}, +$S:0} +A.dE.prototype={ +$1(a){return t.a.a(a).ga9()}, +$S:18} +A.dD.prototype={ +$1(a){var s=t.a.a(a).ga9(),r=A.u(s) +return new A.q(s,r.h("e(1)").a(new A.dB()),r.h("q<1,e>")).aV(0,0,B.i,t.S)}, +$S:19} +A.dB.prototype={ +$1(a){return t.B.a(a).gaa().length}, +$S:6} +A.dC.prototype={ +$1(a){var s=t.a.a(a).ga9(),r=A.u(s) +return new A.q(s,r.h("d(1)").a(new A.dA(this.a)),r.h("q<1,d>")).aB(0)}, +$S:20} +A.dA.prototype={ +$1(a){t.B.a(a) +return B.a.bF(a.gaa(),this.a)+" "+A.f(a.gaC())+"\n"}, +$S:7} +A.i.prototype={ +gb3(){var s=this.a +if(s.gL()==="data")return"data:..." +return $.eL().ct(s)}, +gaa(){var s,r=this,q=r.b +if(q==null)return r.gb3() +s=r.c +if(s==null)return r.gb3()+" "+A.f(q) +return r.gb3()+" "+A.f(q)+":"+A.f(s)}, +i(a){return this.gaa()+" in "+A.f(this.d)}, +gad(){return this.a}, +gai(){return this.b}, +gaw(){return this.c}, +gaC(){return this.d}} +A.dN.prototype={ +$0(){var s,r,q,p,o,n,m,l=null,k=this.a +if(k==="...")return new A.i(A.B(l,l,l,l),l,l,"...") +s=$.iC().S(k) +if(s==null)return new A.a8(A.B(l,"unparsed",l,l),k) +k=s.b +if(1>=k.length)return A.a(k,1) +r=k[1] +r.toString +q=$.ij() +r=A.Y(r,q,"") +p=A.Y(r,"","") +if(2>=k.length)return A.a(k,2) +r=k[2] +q=r +q.toString +if(B.a.q(q,"=k.length)return A.a(k,3) +n=k[3].split(":") +k=n.length +m=k>1?A.a2(n[1],l):l +return new A.i(o,m,k>2?A.a2(n[2],l):l,p)}, +$S:1} +A.dL.prototype={ +$0(){var s,r,q,p,o,n,m="",l=this.a,k=$.iB().S(l) +if(k!=null){s=k.Y("member") +l=k.Y("uri") +l.toString +r=A.cz(l) +l=k.Y("index") +l.toString +q=k.Y("offset") +q.toString +p=A.a2(q,16) +if(!(s==null))l=s +return new A.i(r,1,p+1,l)}k=$.ix().S(l) +if(k!=null){l=new A.dM(l) +q=k.b +o=q.length +if(2>=o)return A.a(q,2) +n=q[2] +if(n!=null){o=n +o.toString +q=q[1] +q.toString +q=A.Y(q,"",m) +q=A.Y(q,"Anonymous function",m) +return l.$2(o,A.Y(q,"(anonymous function)",m))}else{if(3>=o)return A.a(q,3) +q=q[3] +q.toString +return l.$2(q,m)}}return new A.a8(A.B(null,"unparsed",null,null),l)}, +$S:1} +A.dM.prototype={ +$2(a,b){var s,r,q,p,o,n=null,m=$.iw(),l=m.S(a) +for(;l!=null;a=s){s=l.b +if(1>=s.length)return A.a(s,1) +s=s[1] +s.toString +l=m.S(s)}if(a==="native")return new A.i(A.P("native"),n,n,b) +r=$.iy().S(a) +if(r==null)return new A.a8(A.B(n,"unparsed",n,n),this.a) +m=r.b +if(1>=m.length)return A.a(m,1) +s=m[1] +s.toString +q=A.cz(s) +if(2>=m.length)return A.a(m,2) +s=m[2] +s.toString +p=A.a2(s,n) +if(3>=m.length)return A.a(m,3) +o=m[3] +return new A.i(q,p,o!=null?A.a2(o,n):n,b)}, +$S:21} +A.dI.prototype={ +$0(){var s,r,q,p,o=null,n=this.a,m=$.il().S(n) +if(m==null)return new A.a8(A.B(o,"unparsed",o,o),n) +n=m.b +if(1>=n.length)return A.a(n,1) +s=n[1] +s.toString +r=A.Y(s,"/<","") +if(2>=n.length)return A.a(n,2) +s=n[2] +s.toString +q=A.cz(s) +if(3>=n.length)return A.a(n,3) +n=n[3] +n.toString +p=A.a2(n,o) +return new A.i(q,p,o,r.length===0||r==="anonymous"?"":r)}, +$S:1} +A.dJ.prototype={ +$0(){var s,r,q,p,o,n,m,l,k=null,j=this.a,i=$.io().S(j) +if(i!=null){s=i.b +if(3>=s.length)return A.a(s,3) +r=s[3] +q=r +q.toString +if(B.a.u(q," line "))return A.j0(j) +j=r +j.toString +p=A.cz(j) +j=s.length +if(1>=j)return A.a(s,1) +o=s[1] +if(o!=null){if(2>=j)return A.a(s,2) +j=s[2] +j.toString +o+=B.b.aB(A.au(B.a.aq("/",j).gk(0),".",!1,t.N)) +if(o==="")o="" +o=B.a.bI(o,$.it(),"")}else o="" +if(4>=s.length)return A.a(s,4) +j=s[4] +if(j==="")n=k +else{j=j +j.toString +n=A.a2(j,k)}if(5>=s.length)return A.a(s,5) +j=s[5] +if(j==null||j==="")m=k +else{j=j +j.toString +m=A.a2(j,k)}return new A.i(p,n,m,o)}i=$.iq().S(j) +if(i!=null){j=i.Y("member") +j.toString +s=i.Y("uri") +s.toString +p=A.cz(s) +s=i.Y("index") +s.toString +r=i.Y("offset") +r.toString +l=A.a2(r,16) +if(!(j.length!==0))j=s +return new A.i(p,1,l+1,j)}i=$.iu().S(j) +if(i!=null){j=i.Y("member") +j.toString +return new A.i(A.B(k,"wasm code",k,k),k,k,j)}return new A.a8(A.B(k,"unparsed",k,k),j)}, +$S:1} +A.dK.prototype={ +$0(){var s,r,q,p,o=null,n=this.a,m=$.ir().S(n) +if(m==null)throw A.b(A.x("Couldn't parse package:stack_trace stack trace line '"+n+"'.",o,o)) +n=m.b +if(1>=n.length)return A.a(n,1) +s=n[1] +if(s==="data:...")r=A.h2("") +else{s=s +s.toString +r=A.P(s)}if(r.gL()===""){s=$.eL() +r=s.bK(s.bv(s.a.aD(A.fd(r)),o,o,o,o,o,o,o,o,o,o,o,o,o,o))}if(2>=n.length)return A.a(n,2) +s=n[2] +if(s==null)q=o +else{s=s +s.toString +q=A.a2(s,o)}if(3>=n.length)return A.a(n,3) +s=n[3] +if(s==null)p=o +else{s=s +s.toString +p=A.a2(s,o)}if(4>=n.length)return A.a(n,4) +return new A.i(r,q,p,n[4])}, +$S:1} +A.cM.prototype={ +gbu(){var s,r=this,q=r.b +if(q===$){s=r.a.$0() +r.b!==$&&A.eK("_trace") +r.b=s +q=s}return q}, +ga9(){return this.gbu().ga9()}, +i(a){return this.gbu().i(0)}, +$id2:1, +$ir:1} +A.r.prototype={ +i(a){var s=this.a,r=A.u(s) +return new A.q(s,r.h("d(1)").a(new A.e8(new A.q(s,r.h("e(1)").a(new A.e9()),r.h("q<1,e>")).aV(0,0,B.i,t.S))),r.h("q<1,d>")).aB(0)}, +$id2:1, +ga9(){return this.a}} +A.e6.prototype={ +$0(){return A.f0(this.a.i(0))}, +$S:22} +A.e7.prototype={ +$1(a){return A.k(a).length!==0}, +$S:0} +A.e5.prototype={ +$1(a){return!B.a.q(A.k(a),$.iA())}, +$S:0} +A.e4.prototype={ +$1(a){return A.k(a)!=="\tat "}, +$S:0} +A.e2.prototype={ +$1(a){A.k(a) +return a.length!==0&&a!=="[native code]"}, +$S:0} +A.e3.prototype={ +$1(a){return!B.a.q(A.k(a),"=====")}, +$S:0} +A.e9.prototype={ +$1(a){return t.B.a(a).gaa().length}, +$S:6} +A.e8.prototype={ +$1(a){t.B.a(a) +if(a instanceof A.a8)return a.i(0)+"\n" +return B.a.bF(a.gaa(),this.a)+" "+A.f(a.gaC())+"\n"}, +$S:7} +A.a8.prototype={ +i(a){return this.w}, +$ii:1, +gad(){return this.a}, +gai(){return null}, +gaw(){return null}, +gaa(){return"unparsed"}, +gaC(){return this.w}} +A.eI.prototype={ +$1(a){var s,r,q,p,o,n,m,l,k,j,i,h,g="dart:" +t.B.a(a) +if(a.gai()==null)return null +s=a.gaw() +if(s==null)s=0 +r=a.gai() +r.toString +q=this.a.bN(r-1,s-1,a.gad().i(0)) +if(q==null)return null +p=q.gN().i(0) +for(r=this.b,o=r.length,n=0;n()","l(r)","e(r)","d(r)","i(d,d)","r()","i?(i)","d(a6)","d(@)","~(@(d))","0^(0^,0^)"],interceptorsByTag:null,leafTags:null,arrayRti:Symbol("$ti")} +A.jT(v.typeUniverse,JSON.parse('{"cU":"af","b9":"af","as":"af","dH":"af","lw":"b7","cD":{"X":[],"G":[]},"bD":{"G":[]},"bF":{"R":[]},"af":{"R":[]},"w":{"l":["1"],"j":["1"],"R":[],"c":["1"]},"cC":{"bQ":[]},"dO":{"w":["1"],"l":["1"],"j":["1"],"R":[],"c":["1"]},"aE":{"o":["1"]},"cG":{"aD":[]},"bC":{"e":[],"aD":[],"G":[]},"cF":{"aD":[],"G":[]},"aI":{"d":[],"dV":[],"G":[]},"aA":{"c":["2"]},"bp":{"o":["2"]},"aF":{"aA":["1","2"],"c":["2"],"c.E":"2"},"c4":{"aF":["1","2"],"aA":["1","2"],"j":["2"],"c":["2"],"c.E":"2"},"c3":{"p":["2"],"l":["2"],"aA":["1","2"],"j":["2"],"c":["2"]},"ab":{"c3":["1","2"],"p":["2"],"l":["2"],"aA":["1","2"],"j":["2"],"c":["2"],"p.E":"2","c.E":"2"},"aG":{"D":["3","4"],"K":["3","4"],"D.K":"3","D.V":"4"},"cK":{"v":[]},"bq":{"p":["e"],"aQ":["e"],"l":["e"],"j":["e"],"c":["e"],"p.E":"e","aQ.E":"e"},"j":{"c":["1"]},"C":{"j":["1"],"c":["1"]},"bY":{"C":["1"],"j":["1"],"c":["1"],"C.E":"1","c.E":"1"},"S":{"o":["1"]},"T":{"c":["2"],"c.E":"2"},"bu":{"T":["1","2"],"j":["2"],"c":["2"],"c.E":"2"},"bI":{"o":["2"]},"q":{"C":["2"],"j":["2"],"c":["2"],"C.E":"2","c.E":"2"},"V":{"c":["1"],"c.E":"1"},"aS":{"o":["1"]},"bz":{"c":["2"],"c.E":"2"},"bA":{"o":["2"]},"aP":{"c":["1"],"c.E":"1"},"bv":{"aP":["1"],"j":["1"],"c":["1"],"c.E":"1"},"bZ":{"o":["1"]},"ai":{"c":["1"],"c.E":"1"},"b0":{"ai":["1"],"j":["1"],"c":["1"],"c.E":"1"},"bS":{"o":["1"]},"bT":{"c":["1"],"c.E":"1"},"bU":{"o":["1"]},"bw":{"j":["1"],"c":["1"],"c.E":"1"},"bx":{"o":["1"]},"bK":{"c":["1"],"c.E":"1"},"bL":{"o":["1"]},"ba":{"p":["1"],"aQ":["1"],"l":["1"],"j":["1"],"c":["1"]},"ay":{"b8":[]},"bs":{"aR":["1","2"],"bg":["1","2"],"b6":["1","2"],"cc":["1","2"],"K":["1","2"]},"br":{"K":["1","2"]},"bt":{"br":["1","2"],"K":["1","2"]},"c5":{"c":["1"],"c.E":"1"},"c6":{"o":["1"]},"cA":{"J":[],"ae":[]},"b2":{"J":[],"ae":[]},"cE":{"fE":[]},"bN":{"v":[]},"cH":{"v":[]},"d8":{"v":[]},"cS":{"by":[]},"J":{"ae":[]},"ct":{"J":[],"ae":[]},"cu":{"J":[],"ae":[]},"d6":{"J":[],"ae":[]},"d4":{"J":[],"ae":[]},"b_":{"J":[],"ae":[]},"cY":{"v":[]},"aJ":{"D":["1","2"],"K":["1","2"],"D.K":"1","D.V":"2"},"aK":{"j":["1"],"c":["1"],"c.E":"1"},"bH":{"o":["1"]},"dQ":{"j":["1"],"c":["1"],"c.E":"1"},"aL":{"o":["1"]},"ar":{"jm":[],"dV":[]},"bb":{"bP":[],"a6":[]},"dg":{"c":["bP"],"c.E":"bP"},"c2":{"o":["bP"]},"bX":{"a6":[]},"dn":{"c":["a6"],"c.E":"a6"},"dp":{"o":["a6"]},"b7":{"R":[],"G":[]},"bJ":{"R":[]},"a7":{"b5":["1"],"R":[]},"ag":{"p":["e"],"a7":["e"],"l":["e"],"b5":["e"],"j":["e"],"R":[],"c":["e"],"aH":["e"]},"cP":{"ag":[],"p":["e"],"a7":["e"],"l":["e"],"b5":["e"],"j":["e"],"R":[],"c":["e"],"aH":["e"],"G":[],"p.E":"e"},"cQ":{"ag":[],"f1":[],"p":["e"],"a7":["e"],"l":["e"],"b5":["e"],"j":["e"],"R":[],"c":["e"],"aH":["e"],"G":[],"p.E":"e"},"aM":{"ag":[],"f2":[],"p":["e"],"a7":["e"],"l":["e"],"b5":["e"],"j":["e"],"R":[],"c":["e"],"aH":["e"],"G":[],"p.E":"e"},"di":{"v":[]},"bf":{"v":[]},"p":{"l":["1"],"j":["1"],"c":["1"]},"D":{"K":["1","2"]},"b6":{"K":["1","2"]},"aR":{"bg":["1","2"],"b6":["1","2"],"cc":["1","2"],"K":["1","2"]},"dk":{"D":["d","@"],"K":["d","@"],"D.K":"d","D.V":"@"},"dl":{"C":["d"],"j":["d"],"c":["d"],"C.E":"d","c.E":"d"},"cn":{"ac":["d","l"]},"dq":{"ad":["d","l"]},"co":{"ad":["d","l"]},"cr":{"ac":["l","d"]},"cs":{"ad":["l","d"]},"ee":{"ac":["1","3"]},"cx":{"ac":["d","l"]},"cI":{"ac":["t?","d"]},"cJ":{"ad":["d","t?"]},"dc":{"ac":["d","l"]},"de":{"ad":["d","l"]},"dd":{"ad":["l","d"]},"e":{"aD":[]},"l":{"j":["1"],"c":["1"]},"bP":{"a6":[]},"d":{"dV":[]},"cp":{"v":[]},"c_":{"v":[]},"a3":{"v":[]},"ah":{"v":[]},"bB":{"ah":[],"v":[]},"cR":{"v":[]},"c0":{"v":[]},"d7":{"v":[]},"aO":{"v":[]},"cv":{"v":[]},"cT":{"v":[]},"bW":{"v":[]},"A":{"by":[]},"E":{"jq":[]},"cd":{"c1":[]},"a_":{"c1":[]},"dh":{"c1":[]},"bO":{"by":[]},"cV":{"b3":[]},"db":{"b3":[]},"df":{"b3":[]},"bR":{"av":[]},"cO":{"av":[]},"cN":{"av":[]},"dm":{"o":["d"]},"bV":{"e0":[]},"d0":{"e0":[]},"d1":{"e0":[]},"aq":{"d2":[]},"cM":{"r":[],"d2":[]},"r":{"d2":[]},"a8":{"i":[]},"cL":{"av":[]},"j8":{"l":["e"],"j":["e"],"c":["e"]},"f2":{"l":["e"],"j":["e"],"c":["e"]},"f1":{"l":["e"],"j":["e"],"c":["e"]}}')) +A.jS(v.typeUniverse,JSON.parse('{"ba":1,"cg":2,"a7":1}')) +var u={v:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\u03f6\x00\u0404\u03f4 \u03f4\u03f6\u01f6\u01f6\u03f6\u03fc\u01f4\u03ff\u03ff\u0584\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u05d4\u01f4\x00\u01f4\x00\u0504\u05c4\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0400\x00\u0400\u0200\u03f7\u0200\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0200\u0200\u0200\u03f7\x00",q:"===== asynchronous gap ===========================\n",n:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l:"Cannot extract a file path from a URI with a fragment component",y:"Cannot extract a file path from a URI with a query component",j:"Cannot extract a non-Windows file path from a file URI with an authority"} +var t=(function rtii(){var s=A.bl +return{_:s("bs"),X:s("j<@>"),C:s("v"),W:s("by"),B:s("i"),d:s("i(d)"),Z:s("ae"),o:s("fE"),c:s("c"),l:s("c<@>"),Y:s("c"),F:s("w"),v:s("w"),s:s("w"),p:s("w"),x:s("w"),J:s("w"),b:s("w<@>"),t:s("w"),T:s("bD"),m:s("R"),g:s("as"),da:s("b5<@>"),bV:s("aJ"),aY:s("l"),j:s("l<@>"),L:s("l"),f:s("K<@,@>"),M:s("T"),k:s("q"),r:s("q"),cu:s("ag"),cr:s("aM"),cK:s("bK"),P:s("bM"),K:s("t"),G:s("ah"),cY:s("lx"),h:s("bP"),E:s("bR"),cN:s("bT"),cJ:s("d_"),cx:s("e0"),N:s("d"),bj:s("d(a6)"),bm:s("d(d)"),cm:s("b8"),D:s("ak"),e:s("az"),a:s("r"),cQ:s("r(d)"),bW:s("G"),cB:s("b9"),R:s("c1"),U:s("V"),y:s("X"),Q:s("X(d)"),i:s("hM"),z:s("@"),q:s("@(d)"),S:s("e"),bc:s("fD?"),aQ:s("R?"),O:s("l<@>?"),a5:s("K<@,@>?"),V:s("t?"),w:s("cZ?"),u:s("d?"),A:s("d(a6)?"),I:s("c1?"),cG:s("X?"),dd:s("hM?"),a3:s("e?"),n:s("aD?"),H:s("aD"),bn:s("~(d,@)"),ae:s("~(@(d))")}})();(function constants(){var s=hunkHelpers.makeConstList +B.S=J.cB.prototype +B.b=J.w.prototype +B.c=J.bC.prototype +B.a=J.aI.prototype +B.T=J.as.prototype +B.U=J.bF.prototype +B.x=A.aM.prototype +B.y=J.cU.prototype +B.k=J.b9.prototype +B.z=new A.co(127) +B.i=new A.b2(A.lc(),A.bl("b2")) +B.A=new A.cn() +B.a9=new A.cs() +B.B=new A.cr() +B.p=new A.bx(A.bl("bx<0&>")) +B.q=function getTagFallback(o) { + var s = Object.prototype.toString.call(o); + return s.substring(8, s.length - 1); +} +B.C=function() { + var toStringFunction = Object.prototype.toString; + function getTag(o) { + var s = toStringFunction.call(o); + return s.substring(8, s.length - 1); + } + function getUnknownTag(object, tag) { + if (/^HTML[A-Z].*Element$/.test(tag)) { + var name = toStringFunction.call(object); + if (name == "[object Object]") return null; + return "HTMLElement"; + } + } + function getUnknownTagGenericBrowser(object, tag) { + if (object instanceof HTMLElement) return "HTMLElement"; + return getUnknownTag(object, tag); + } + function prototypeForTag(tag) { + if (typeof window == "undefined") return null; + if (typeof window[tag] == "undefined") return null; + var constructor = window[tag]; + if (typeof constructor != "function") return null; + return constructor.prototype; + } + function discriminator(tag) { return null; } + var isBrowser = typeof HTMLElement == "function"; + return { + getTag: getTag, + getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag, + prototypeForTag: prototypeForTag, + discriminator: discriminator }; +} +B.H=function(getTagFallback) { + return function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("DumpRenderTree") >= 0) return hooks; + if (userAgent.indexOf("Chrome") >= 0) { + function confirm(p) { + return typeof window == "object" && window[p] && window[p].name == p; + } + if (confirm("Window") && confirm("HTMLElement")) return hooks; + } + hooks.getTag = getTagFallback; + }; +} +B.D=function(hooks) { + if (typeof dartExperimentalFixupGetTag != "function") return hooks; + hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag); +} +B.G=function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("Firefox") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "GeoGeolocation": "Geolocation", + "Location": "!Location", + "WorkerMessageEvent": "MessageEvent", + "XMLDocument": "!Document"}; + function getTagFirefox(o) { + var tag = getTag(o); + return quickMap[tag] || tag; + } + hooks.getTag = getTagFirefox; +} +B.F=function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("Trident/") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "HTMLDDElement": "HTMLElement", + "HTMLDTElement": "HTMLElement", + "HTMLPhraseElement": "HTMLElement", + "Position": "Geoposition" + }; + function getTagIE(o) { + var tag = getTag(o); + var newTag = quickMap[tag]; + if (newTag) return newTag; + if (tag == "Object") { + if (window.DataView && (o instanceof window.DataView)) return "DataView"; + } + return tag; + } + function prototypeForTagIE(tag) { + var constructor = window[tag]; + if (constructor == null) return null; + return constructor.prototype; + } + hooks.getTag = getTagIE; + hooks.prototypeForTag = prototypeForTagIE; +} +B.E=function(hooks) { + var getTag = hooks.getTag; + var prototypeForTag = hooks.prototypeForTag; + function getTagFixed(o) { + var tag = getTag(o); + if (tag == "Document") { + if (!!o.xmlVersion) return "!Document"; + return "!HTMLDocument"; + } + return tag; + } + function prototypeForTagFixed(tag) { + if (tag == "Document") return null; + return prototypeForTag(tag); + } + hooks.getTag = getTagFixed; + hooks.prototypeForTag = prototypeForTagFixed; +} +B.r=function(hooks) { return hooks; } + +B.I=new A.cI() +B.J=new A.cT() +B.j=new A.dX() +B.f=new A.dc() +B.K=new A.de() +B.t=new A.eg() +B.L=new A.A("section can't use both url and map entries",null,null) +B.M=new A.A('map containing "sections" cannot contain "mappings", "sources", or "names".',null,null) +B.N=new A.A("section missing offset",null,null) +B.O=new A.A("offset missing column",null,null) +B.P=new A.A("offset missing line",null,null) +B.Q=new A.A("section missing url or map",null,null) +B.R=new A.A("expected at least one section",null,null) +B.V=new A.cJ(null) +B.u=s([],t.s) +B.v=s([],t.b) +B.W=s([],A.bl("w")) +B.X={} +B.w=new A.bt(B.X,[],A.bl("bt")) +B.Y=new A.ay("call") +B.Z=A.du("lr") +B.a_=A.du("j8") +B.a0=A.du("t") +B.a1=A.du("f1") +B.a2=A.du("f2") +B.a3=new A.dd(!1) +B.a4=new A.bc("reaches root") +B.l=new A.bc("below root") +B.m=new A.bc("at root") +B.n=new A.bc("above root") +B.d=new A.bd("different") +B.o=new A.bd("equal") +B.e=new A.bd("inconclusive") +B.h=new A.bd("within") +B.a5=new A.be(!1,!1,!1) +B.a6=new A.be(!1,!1,!0) +B.a7=new A.be(!1,!0,!1) +B.a8=new A.be(!0,!1,!1)})();(function staticFields(){$.ef=null +$.W=A.h([],A.bl("w")) +$.fO=null +$.fz=null +$.fy=null +$.hQ=null +$.hK=null +$.hX=null +$.eB=null +$.eG=null +$.fk=null +$.h3="" +$.h4=null +$.hx=null +$.ew=null +$.hD=null})();(function lazyInitializers(){var s=hunkHelpers.lazyFinal,r=hunkHelpers.lazy +s($,"lt","fp",()=>A.hP("_$dart_dartClosure")) +s($,"ls","i_",()=>A.hP("_$dart_dartClosure_dartJSInterop")) +s($,"m2","iv",()=>A.h([new J.cC()],A.bl("w"))) +s($,"lC","i3",()=>A.al(A.eb({ +toString:function(){return"$receiver$"}}))) +s($,"lD","i4",()=>A.al(A.eb({$method$:null, +toString:function(){return"$receiver$"}}))) +s($,"lE","i5",()=>A.al(A.eb(null))) +s($,"lF","i6",()=>A.al(function(){var $argumentsExpr$="$arguments$" +try{null.$method$($argumentsExpr$)}catch(q){return q.message}}())) +s($,"lI","i9",()=>A.al(A.eb(void 0))) +s($,"lJ","ia",()=>A.al(function(){var $argumentsExpr$="$arguments$" +try{(void 0).$method$($argumentsExpr$)}catch(q){return q.message}}())) +s($,"lH","i8",()=>A.al(A.h_(null))) +s($,"lG","i7",()=>A.al(function(){try{null.$method$}catch(q){return q.message}}())) +s($,"lL","ic",()=>A.al(A.h_(void 0))) +s($,"lK","ib",()=>A.al(function(){try{(void 0).$method$}catch(q){return q.message}}())) +s($,"lQ","ii",()=>A.jf(4096)) +s($,"lO","ig",()=>new A.eq().$0()) +s($,"lP","ih",()=>new A.ep().$0()) +s($,"lM","id",()=>new Int8Array(A.kn(A.h([-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-2,-2,-2,-2,-2,62,-2,62,-2,63,52,53,54,55,56,57,58,59,60,61,-2,-2,-2,-1,-2,-2,-2,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-2,-2,-2,-2,63,-2,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-2,-2,-2,-2,-2],t.t)))) +s($,"lN","ie",()=>A.m("^[\\-\\.0-9A-Z_a-z~]*$",!1)) +s($,"m_","fr",()=>A.hT(B.a0)) +s($,"mh","iG",()=>A.eN($.cl())) +s($,"mf","fs",()=>A.eN($.ao())) +s($,"ma","eL",()=>new A.cw($.fq(),null)) +s($,"lz","i2",()=>new A.cV(A.m("/",!1),A.m("[^/]$",!1),A.m("^/",!1))) +s($,"lB","cl",()=>new A.df(A.m("[/\\\\]",!1),A.m("[^/\\\\]$",!1),A.m("^(\\\\\\\\[^\\\\]+\\\\[^\\\\/]+|[a-zA-Z]:[/\\\\])",!1),A.m("^[/\\\\](?![/\\\\])",!1))) +s($,"lA","ao",()=>new A.db(A.m("/",!1),A.m("(^[a-zA-Z][-+.a-zA-Z\\d]*://|[^/])$",!1),A.m("[a-zA-Z][-+.a-zA-Z\\d]*://[^/]*",!1),A.m("^/",!1))) +s($,"ly","fq",()=>A.js()) +s($,"lS","ik",()=>new A.ex().$0()) +s($,"mc","iD",()=>A.ch(A.hW(2,31))-1) +s($,"md","iE",()=>-A.ch(A.hW(2,31))) +s($,"m9","iC",()=>A.m("^#\\d+\\s+(\\S.*) \\((.+?)((?::\\d+){0,2})\\)$",!1)) +s($,"m4","ix",()=>A.m("^\\s*at (?:(\\S.*?)(?: \\[as [^\\]]+\\])? \\((.*)\\)|(.*))$",!1)) +s($,"m5","iy",()=>A.m("^(.*?):(\\d+)(?::(\\d+))?$|native$",!1)) +s($,"m8","iB",()=>A.m("^\\s*at (?:(?.+) )?(?:\\(?(?:(?\\S+):wasm-function\\[(?\\d+)\\]\\:0x(?[0-9a-fA-F]+))\\)?)$",!1)) +s($,"m3","iw",()=>A.m("^eval at (?:\\S.*?) \\((.*)\\)(?:, .*?:\\d+:\\d+)?$",!1)) +s($,"lT","il",()=>A.m("(\\S+)@(\\S+) line (\\d+) >.* (Function|eval):\\d+:\\d+",!1)) +s($,"lV","io",()=>A.m("^(?:([^@(/]*)(?:\\(.*\\))?((?:/[^/]*)*)(?:\\(.*\\))?@)?(.*?):(\\d*)(?::(\\d*))?$",!1)) +s($,"lX","iq",()=>A.m("^(?.*?)@(?:(?\\S+).*?:wasm-function\\[(?\\d+)\\]:0x(?[0-9a-fA-F]+))$",!1)) +s($,"m1","iu",()=>A.m("^.*?wasm-function\\[(?.*)\\]@\\[wasm code\\]$",!1)) +s($,"lY","ir",()=>A.m("^(\\S+)(?: (\\d+)(?::(\\d+))?)?\\s+([^\\d].*)$",!1)) +s($,"lR","ij",()=>A.m("<(|[^>]+)_async_body>",!1)) +s($,"m0","it",()=>A.m("^\\.",!1)) +s($,"lu","i0",()=>A.m("^[a-zA-Z][-+.a-zA-Z\\d]*://",!1)) +s($,"lv","i1",()=>A.m("^([a-zA-Z]:[\\\\/]|\\\\\\\\)",!1)) +s($,"m6","iz",()=>A.m("(?:^|\\n) ?at ",!1)) +s($,"m7","iA",()=>A.m(" ?at ",!1)) +s($,"lU","im",()=>A.m("@\\S+ line \\d+ >.* (Function|eval):\\d+:\\d+",!1)) +s($,"lW","ip",()=>A.m("^(([.0-9A-Za-z_$/<]|\\(.*\\))*@)?[^\\s]*:\\d*$",!0)) +s($,"lZ","is",()=>A.m("^[^\\s<][^\\s]*( \\d+(:\\d+)?)?[ \\t]+[^\\s]+$",!0)) +s($,"mg","ft",()=>A.m("^\\n?$",!0)) +r($,"me","iF",()=>J.iO(self.$dartLoader.rootDirectories,new A.eJ(),t.N).aH(0))})();(function nativeSupport(){!function(){var s=function(a){var m={} +m[a]=1 +return Object.keys(hunkHelpers.convertToFastObject(m))[0]} +v.getIsolateTag=function(a){return s("___dart_"+a+v.isolateTag)} +var r="___dart_isolate_tags_" +var q=Object[r]||(Object[r]=Object.create(null)) +var p="_ZxYxX" +for(var o=0;;o++){var n=s(p+"_"+o+"_") +if(!(n in q)){q[n]=1 +v.isolateTag=n +break}}v.dispatchPropertyName=v.getIsolateTag("dispatch_record")}() +hunkHelpers.setOrUpdateInterceptorsByTag({ArrayBuffer:A.b7,SharedArrayBuffer:A.b7,ArrayBufferView:A.bJ,Int8Array:A.cP,Uint32Array:A.cQ,Uint8Array:A.aM}) +hunkHelpers.setOrUpdateLeafTags({ArrayBuffer:true,SharedArrayBuffer:true,ArrayBufferView:false,Int8Array:true,Uint32Array:true,Uint8Array:false}) +A.a7.$nativeSuperclassTag="ArrayBufferView" +A.c7.$nativeSuperclassTag="ArrayBufferView" +A.c8.$nativeSuperclassTag="ArrayBufferView" +A.ag.$nativeSuperclassTag="ArrayBufferView"})() +Function.prototype.$0=function(){return this()} +Function.prototype.$1=function(a){return this(a)} +Function.prototype.$2=function(a,b){return this(a,b)} +Function.prototype.$3=function(a,b,c){return this(a,b,c)} +Function.prototype.$2$0=function(){return this()} +Function.prototype.$1$0=function(){return this()} +Function.prototype.$1$1=function(a){return this(a)} +convertAllToFastObject(w) +convertToFastObject($);(function(a){if(typeof document==="undefined"){a(null) +return}if(typeof document.currentScript!="undefined"){a(document.currentScript) +return}var s=document.scripts +function onLoad(b){for(var q=0;q + +# Uses of peek in the parser + + * In parseType, the parser uses peekAfterIfType to tell the difference + between `id` and `id id`. + + * In parseSwitchCase, the parser uses peekPastLabels to select between case + labels and statement labels. + + * The parser uses isGeneralizedFunctionType in parseType. + + * The parser uses isValidMethodTypeArguments in parseSend. diff --git a/build/packages/analyzer/fix_data.yaml b/build/packages/analyzer/fix_data.yaml new file mode 100644 index 0000000..4b73002 --- /dev/null +++ b/build/packages/analyzer/fix_data.yaml @@ -0,0 +1,174 @@ +version: 1 +transforms: + # CompilationUnitElement + - title: "Replace with get enums" + date: 2022-10-21 + element: + getter: 'enums2' + uris: [ 'package:analyzer/dart/element/element.dart' ] + inClass: 'CompilationUnitElement' + changes: + - kind: 'rename' + newName: 'enums' + - title: "Replace with get enums" + date: 2022-10-21 + element: + getter: 'enums2' + uris: [ 'package:analyzer/src/dart/element/element.dart' ] + inClass: 'CompilationUnitElementImpl' + changes: + - kind: 'rename' + newName: 'enums' + - title: "Replace with get mixins" + date: 2022-10-21 + element: + getter: 'mixins2' + uris: [ 'package:analyzer/dart/element/element.dart' ] + inClass: 'CompilationUnitElement' + changes: + - kind: 'rename' + newName: 'mixins' + - title: "Replace with get mixins" + date: 2022-10-21 + element: + getter: 'mixins2' + uris: [ 'package:analyzer/src/dart/element/element.dart' ] + inClass: 'CompilationUnitElementImpl' + changes: + - kind: 'rename' + newName: 'mixins' + - title: "Replace with getEnum()" + date: 2022-10-21 + element: + method: 'getEnum2' + uris: [ 'package:analyzer/dart/element/element.dart' ] + inClass: 'CompilationUnitElement' + changes: + - kind: 'rename' + newName: 'getEnum' + + # LibraryElement + - title: "Replace with get parts" + date: 2022-10-21 + element: + getter: 'parts2' + uris: [ 'package:analyzer/dart/element/element.dart' ] + inClass: 'LibraryElement' + changes: + - kind: 'rename' + newName: 'parts' + - title: "Replace with get parts" + date: 2022-10-21 + element: + getter: 'parts2' + uris: [ 'package:analyzer/src/dart/element/element.dart' ] + inClass: 'LibraryElementImpl' + changes: + - kind: 'rename' + newName: 'parts' + + # PrefixElement + - title: "Replace with get imports" + date: 2022-10-21 + element: + getter: 'imports2' + uris: [ 'package:analyzer/dart/element/element.dart' ] + inClass: 'PrefixElement' + changes: + - kind: 'rename' + newName: 'imports' + + # isAccessibleIn + - title: "Replace with get isAccessibleIn" + date: 2022-10-21 + element: + method: 'isAccessibleIn2' + uris: [ 'package:analyzer/dart/element/element.dart' ] + inClass: 'Element' + changes: + - kind: 'rename' + newName: 'isAccessibleIn' + - title: "Replace with get isAccessibleIn" + date: 2022-10-21 + element: + method: 'isAccessibleIn2' + uris: [ 'package:analyzer/dart/element/element.dart' ] + inClass: 'ClassElement' + changes: + - kind: 'rename' + newName: 'isAccessibleIn' + - title: "Replace with get isAccessibleIn" + date: 2022-10-21 + element: + method: 'isAccessibleIn2' + uris: [ 'package:analyzer/dart/element/element.dart' ] + inClass: 'ConstructorElement' + changes: + - kind: 'rename' + newName: 'isAccessibleIn' + - title: "Replace with get isAccessibleIn" + date: 2022-10-21 + element: + method: 'isAccessibleIn2' + uris: [ 'package:analyzer/dart/element/element.dart' ] + inClass: 'ExecutableElement' + changes: + - kind: 'rename' + newName: 'isAccessibleIn' + - title: "Replace with get isAccessibleIn" + date: 2022-10-21 + element: + method: 'isAccessibleIn2' + uris: [ 'package:analyzer/dart/element/element.dart' ] + inClass: 'MethodElement' + changes: + - kind: 'rename' + newName: 'isAccessibleIn' + - title: "Replace with get isAccessibleIn" + date: 2022-10-21 + element: + method: 'isAccessibleIn2' + uris: [ 'package:analyzer/dart/element/element.dart' ] + inClass: 'InterfaceElement' + changes: + - kind: 'rename' + newName: 'isAccessibleIn' + - title: "Replace with get isAccessibleIn" + date: 2022-10-21 + element: + method: 'isAccessibleIn2' + uris: [ 'package:analyzer/dart/element/element.dart' ] + inClass: 'PropertyAccessorElement' + changes: + - kind: 'rename' + newName: 'isAccessibleIn' + + # buildSdkSummary() + - title: "Replace with buildSdkSummary()" + date: 2022-10-24 + element: + function: 'buildSdkSummary2' + uris: [ 'package:analyzer/dart/sdk/build_sdk_summary.dart' ] + changes: + - kind: 'rename' + newName: 'buildSdkSummary' + + # condition -> expression + - title: "Replace with get expression" + date: 2023-04-18 + element: + method: 'condition' + uris: [ 'package:analyzer/dart/ast/ast.dart' ] + inClass: 'IfStatement' + changes: + - kind: rename + newName: 'expression' + - title: "Replace with get expression" + date: 2023-04-18 + element: + method: 'condition' + uris: [ 'package:analyzer/dart/ast/ast.dart' ] + inClass: 'IfElement' + changes: + - kind: rename + newName: 'expression' diff --git a/build/packages/analyzer/src/summary/format.fbs b/build/packages/analyzer/src/summary/format.fbs new file mode 100644 index 0000000..6058601 --- /dev/null +++ b/build/packages/analyzer/src/summary/format.fbs @@ -0,0 +1,335 @@ +// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +// This file has been automatically generated. Please do not edit it manually. +// To regenerate the file, use the SDK script +// "pkg/analyzer/tool/summary/generate.dart $IDL_FILE_PATH", +// or "pkg/analyzer/tool/generate_files" for the analyzer package IDL/sources. + + +/// Enum used to indicate the kind of an index relation. +enum IndexRelationKind : byte { + /// Left: class. + /// Is extended by. + /// Right: other class declaration. + IS_EXTENDED_BY, + + /// Left: class. + /// Is implemented by. + /// Right: other class declaration. + IS_IMPLEMENTED_BY, + + /// Left: an interface element. + /// Constrains. + /// Right: mixin. + CONSTRAINS, + + /// Left: class. + /// Is mixed into. + /// Right: other class declaration. + IS_MIXED_IN_BY, + + /// Left: method, property accessor, function, variable. + /// Is invoked at. + /// Right: location. + IS_INVOKED_BY, + + /// Left: an unnamed constructor. + /// Is invoked by an enum constant, without arguments, which is special + /// because when the name given, an empty argument list must be added. + /// Right: location. + IS_INVOKED_BY_ENUM_CONSTANT_WITHOUT_ARGUMENTS, + + /// Left: any element. + /// Is invoked by a dot shorthand constructor invocation. + /// Right: location. + IS_INVOKED_BY_DOT_SHORTHANDS_CONSTRUCTOR, + + /// Left: any element. + /// Is referenced (and not invoked, read/written) at. + /// Right: location. + IS_REFERENCED_BY, + + /// Left: a pattern field. + /// Is referenced at. + /// Right: location. + IS_REFERENCED_BY_PATTERN_FIELD, + + /// Left: a constructor. + /// Is referenced by a constructor tear-off at, which is special because + /// the name of the constructor is required (`new` for unnamed). + /// Right: location. + IS_REFERENCED_BY_CONSTRUCTOR_TEAR_OFF, + + /// Left: a constructor. + /// Is referenced by a constructor tear-off at, which is special because + /// the name of the constructor is required (`new` for unnamed). + /// Right: location. + IS_REFERENCED_BY_DOT_SHORTHAND_CONSTRUCTOR_TEAR_OFF, + + /// Left: a parameter. + /// Is referenced by a named argument. + /// Right: named argument. + IS_REFERENCED_BY_NAMED_ARGUMENT, + + /// Left: unresolved member name. + /// Is read at. + /// Right: location. + IS_READ_BY, + + /// Left: unresolved member name. + /// Is both read and written at. + /// Right: location. + IS_READ_WRITTEN_BY, + + /// Left: unresolved member name. + /// Is written at. + /// Right: location. + IS_WRITTEN_BY +} + +/// When we need to reference a synthetic element in PackageIndex we use a +/// value of this enum to specify which kind of the synthetic element we +/// actually reference. +enum IndexSyntheticElementKind : byte { + /// Not a synthetic element. + notSynthetic, + + /// The unnamed synthetic constructor a class element. + constructor, + + /// The synthetic field element. + field, + + /// The synthetic getter of a property introducing element. + getter, + + /// The synthetic setter of a property introducing element. + setter, + + /// The synthetic top-level variable element. + topLevelVariable, + + /// The synthetic `loadLibrary` element. + loadLibrary, + + /// The synthetic `index` getter of an enum. + enumIndex, + + /// The synthetic `values` getter of an enum. + enumValues, + + /// The synthetic `toString` method of an enum. + enumToString, + + /// The containing unit itself. + unit +} + +/// Information about the context of an exception in analysis driver. +table AnalysisDriverExceptionContext { + /// The exception string. + exception:string (id: 1); + + /// The state of files when the exception happened. + files:[AnalysisDriverExceptionFile] (id: 3); + + /// The path of the file being analyzed when the exception happened. + path:string (id: 0); + + /// The exception stack trace string. + stackTrace:string (id: 2); +} + +/// Information about a single file in [AnalysisDriverExceptionContext]. +table AnalysisDriverExceptionFile { + /// The content of the file. + content:string (id: 1); + + /// The path of the file. + path:string (id: 0); +} + +/// Information about a resolved unit. +table AnalysisDriverResolvedUnit { + /// The full list of analysis errors, both syntactic and semantic. + errors:[AnalysisDriverUnitError] (id: 0); + + /// The index of the unit. + index:AnalysisDriverUnitIndex (id: 1); +} + +/// Information about a subtype of one or more classes. +table AnalysisDriverSubtype { + /// The names of defined instance members. + /// They are indexes into [AnalysisDriverUnitIndex.strings] list. + /// The list is sorted in ascending order. + members:[uint] (id: 1); + + /// The name of the class. + /// It is an index into [AnalysisDriverUnitIndex.strings] list. + name:uint (id: 0); +} + +/// Information about an error in a resolved unit. +table AnalysisDriverUnitError { + /// The context messages associated with the error. + contextMessages:[DiagnosticMessage] (id: 5); + + /// The optional correction hint for the error. + correction:string (id: 4); + + /// The length of the error in the file. + length:uint (id: 1); + + /// The message of the error. + message:string (id: 3); + + /// The offset from the beginning of the file. + offset:uint (id: 0); + + /// The unique name of the error code. + uniqueName:string (id: 2); +} + +/// Information about a resolved unit. +table AnalysisDriverUnitIndex { + /// Each item of this list corresponds to a unique referenced element. It is + /// a list of the prefixes associated with references to the element. + elementImportPrefixes:[string] (id: 20); + + /// Each item of this list corresponds to a unique referenced element. It is + /// the kind of the synthetic element. + elementKinds:[IndexSyntheticElementKind] (id: 4); + + /// Each item of this list corresponds to a unique referenced element. It is + /// the identifier of the class member element name, or `null` if the element + /// is a top-level element. The list is sorted in ascending order, so that + /// the client can quickly check whether an element is referenced in this + /// index. + elementNameClassMemberIds:[uint] (id: 7); + + /// Each item of this list corresponds to a unique referenced element. It is + /// the identifier of the named parameter name, or `null` if the element is + /// not a named parameter. The list is sorted in ascending order, so that the + /// client can quickly check whether an element is referenced in this index. + elementNameParameterIds:[uint] (id: 8); + + /// Each item of this list corresponds to a unique referenced element. It is + /// the identifier of the top-level element name, or `null` if the element is + /// the unit. The list is sorted in ascending order, so that the client can + /// quickly check whether an element is referenced in this index. + elementNameUnitMemberIds:[uint] (id: 6); + + /// Each item of this list corresponds to a unique referenced element. It is + /// the index into [unitLibraryUris] and [unitUnitUris] for the library + /// specific unit where the element is declared. + elementUnits:[uint] (id: 5); + + /// Support for indexing `part` and `part of` directives. + /// + /// This is the index into [unitLibraryUris] and [unitUnitUris]. + /// This is the library fragment referenced by the directive. + libFragmentRefTargets:[uint] (id: 21); + + /// Support for indexing `part` and `part of` directives. + /// + /// The offset of the URI in the directive. + libFragmentRefUriLengths:[uint] (id: 23); + + /// Support for indexing `part` and `part of` directives. + /// + /// The offset of the URI in the directive. + libFragmentRefUriOffsets:[uint] (id: 22); + + /// Identifier of the null string in [strings]. + nullStringId:uint (id: 1); + + /// List of unique element strings used in this index. The list is sorted in + /// ascending order, so that the client can quickly check the presence of a + /// string in this index. + strings:[string] (id: 0); + + /// The list of classes declared in the unit. + subtypes:[AnalysisDriverSubtype] (id: 19); + + /// The identifiers of supertypes of elements at corresponding indexes + /// in [subtypes]. They are indexes into [strings] list. The list is sorted + /// in ascending order. There might be more than one element with the same + /// value if there is more than one subtype of this supertype. + supertypes:[uint] (id: 18); + + /// Each item of this list corresponds to the library URI of a unique library + /// specific unit referenced in the index. It is an index into [strings] + /// list. + unitLibraryUris:[uint] (id: 2); + + /// Each item of this list corresponds to the unit URI of a unique library + /// specific unit referenced in the index. It is an index into [strings] + /// list. + unitUnitUris:[uint] (id: 3); + + /// Each item of this list is the `true` if the corresponding element usage + /// is qualified with some prefix. + usedElementIsQualifiedFlags:[ubyte] (id: 13); + + /// Each item of this list is the kind of the element usage. + usedElementKinds:[IndexRelationKind] (id: 10); + + /// Each item of this list is the length of the element usage. + usedElementLengths:[uint] (id: 12); + + /// Each item of this list is the offset of the element usage relative to the + /// beginning of the file. + usedElementOffsets:[uint] (id: 11); + + /// Each item of this list is the index into [elementUnits], + /// [elementNameUnitMemberIds], [elementNameClassMemberIds] and + /// [elementNameParameterIds]. The list is sorted in ascending order, so + /// that the client can quickly find element references in this index. + usedElements:[uint] (id: 9); + + /// Each item of this list is the `true` if the corresponding name usage + /// is qualified with some prefix. + usedNameIsQualifiedFlags:[ubyte] (id: 17); + + /// Each item of this list is the kind of the name usage. + usedNameKinds:[IndexRelationKind] (id: 15); + + /// Each item of this list is the offset of the name usage relative to the + /// beginning of the file. + usedNameOffsets:[uint] (id: 16); + + /// Each item of this list is the index into [strings] for a used name. The + /// list is sorted in ascending order, so that the client can quickly find + /// whether a name is used in this index. + usedNames:[uint] (id: 14); +} + +/// Errors for a single unit. +table CiderUnitErrors { + errors:[AnalysisDriverUnitError] (id: 0); +} + +table DiagnosticMessage { + /// The absolute and normalized path of the file associated with this message. + filePath:string (id: 0); + + /// The length of the source range associated with this message. + length:uint (id: 1); + + /// The text of the message. + message:string (id: 2); + + /// The zero-based offset from the start of the file to the beginning of the + /// source range associated with this message. + offset:uint (id: 3); + + /// The URL of the message, if any. + url:string (id: 4); +} + +root_type AnalysisDriverResolvedUnit; + +file_identifier "ADRU"; diff --git a/build/packages/analyzer/src/wolf/README.md b/build/packages/analyzer/src/wolf/README.md new file mode 100644 index 0000000..90ad72b --- /dev/null +++ b/build/packages/analyzer/src/wolf/README.md @@ -0,0 +1,81 @@ +# Wolf Analysis + +The code in this directory is __experimental__ and not yet ready for public +consumption. This file briefly describes its design and intended use. + +## Intention + +Wolf analysis is intended as a broader, more extensible version of flow analysis +for use in the analyzer package and the linter. If it proves useful, we may +expand it to be usable by clients of the analyzer such as code generators. + +The reason for making a new type of analysis, rather than extending flow +analysis, is because the design of flow analysis is heavily constrained in ways +that make it expensive to modify, maintain, and extend: + +- It has to operate in parallel with type inference. This means that it can only + make a single pass through the source code, and any time it "looks ahead", the + code it is looking at doesn't yet have types. This forces it to make some + conservative assumptions when analyzing loops and closures--for example, on + entry to a loop, flow analysis knows which variables are written inside the + loop body, but it doesn't know the types of the values that are written to + those variables; so it has to discard type promotions for all of them. If + later analysis shows that the values that were written are compatible with the + promoted type, it's too late to go back and update the analysis. + +- It can't be improved without bumping the language version (or it will break + existing programs). + +- All of its analyses must be 100% sound, because they are relied on by later + compilation stages. This severly limits its ability to account for human + intent, which we would sometimes like to do in lints. + +- It has to be shared between the analyzer and the common front end, which means + that all of the data structures it acts on must be abstract. + +Additionally, flow analysis doesn't understand special behavioral guarantees of +methods and types declared outside the SDK, and it never looks outside of a +single method body. + +## Design + +The design consists of multiple analysis stages: + +- AST-to-IR. The analyzer's AST is converted to a stack-based IR (intermediate + representation). The proposed IR and the approach for converting to it are + described in https://flutter.dev/go/dart-static-analysis-ir. + +- Scope analysis. A pass is made through the IR, identifying all the state + variables of interest. This includes local variables as well as any other + pieces of state that are needed for whatever lints are enabled. This stage + records the set of state variables that could potentially be changed inside + each loop, block, closure, etc., for use in later analysis stages. + +- SSA (single static assignment) analysis. A pass is made through the IR to + assign SSA node ids to each state variable and stack value. Queries are + generated at points that are of interest to whatever lints are enabled (e.g. a + lint that verifies that certain kinds of values are never null will generate + queries that ask "is the value represented by this SSA node null?"). + +- Query solver. Each query generated by SSA analysis is resolved by working + backwards through the IR, rewriting it in terms of previous SSA nodes, until a + point in the code is reached where the query either can or can't be + definitively answered. The mechanism for rewriting queries is inspired by + Prolog. Depending on the result of the query, a lint output might be + generated. + +Other analysis stages might be added in the future. For example, if we find that +some lints can't be easily expressed in terms of queries, but can still benefit +from the SSA representation, we may add other analysis stages after SSA +analysis, to support those lints. + +## Support structure + +In addition to the pieces above, there is a simple interpreter that executes the +IR. The interpreter is not intended for production use; it is just sophisticated +enough to serve as the basis for unit testing the other stages. For example, we +use it in the unit tests of the AST-to-IR conversion stage, to make sure that +the output of this stage properly reflects Dart semantics. (If, instead, our +unit tests simply compared the output of AST-to-IR conversion to an expected +sequence of instructions, the unit tests would be much more brittle, and there +would be a much greater risk of human error in reviewing them.) diff --git a/build/packages/build_runner/src/commands/serve/live_reload_client.js b/build/packages/build_runner/src/commands/serve/live_reload_client.js new file mode 100644 index 0000000..6925175 --- /dev/null +++ b/build/packages/build_runner/src/commands/serve/live_reload_client.js @@ -0,0 +1,8 @@ +(function () { + var _buildUpdatesProtocol = '$buildUpdates'; + + var ws = new WebSocket('ws://' + location.host, [_buildUpdatesProtocol]); + ws.onmessage = function (event) { + location.reload(); + }; +})(); \ No newline at end of file diff --git a/build/packages/build_web_compilers/src/dev_compiler_stack_trace/stack_trace_mapper.dart.js b/build/packages/build_web_compilers/src/dev_compiler_stack_trace/stack_trace_mapper.dart.js new file mode 100644 index 0000000..b7ef53b --- /dev/null +++ b/build/packages/build_web_compilers/src/dev_compiler_stack_trace/stack_trace_mapper.dart.js @@ -0,0 +1,5427 @@ +(function dartProgram(){function copyProperties(a,b){var s=Object.keys(a) +for(var r=0;r=0)return true +if(typeof version=="function"&&version.length==0){var q=version() +if(/^\d+\.\d+\.\d+\.\d+$/.test(q))return true}}catch(p){}return false}() +function inherit(a,b){a.prototype.constructor=a +a.prototype["$i"+a.name]=a +if(b!=null){if(z){Object.setPrototypeOf(a.prototype,b.prototype) +return}var s=Object.create(b.prototype) +copyProperties(a.prototype,s) +a.prototype=s}}function inheritMany(a,b){for(var s=0;s4294967295)throw A.a(A.A(a,0,4294967295,"length",null)) +return J.jg(new Array(a),b)}, +fJ(a,b){if(a<0)throw A.a(A.C("Length must be a non-negative integer: "+a)) +return A.e(new Array(a),b.i("r<0>"))}, +jg(a,b){var s=A.e(a,b.i("r<0>")) +s.$flags=1 +return s}, +fK(a){if(a<256)switch(a){case 9:case 10:case 11:case 12:case 13:case 32:case 133:case 160:return!0 +default:return!1}switch(a){case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8232:case 8233:case 8239:case 8287:case 12288:case 65279:return!0 +default:return!1}}, +jh(a,b){var s,r +for(s=a.length;b0;b=s){s=b-1 +r=a.charCodeAt(s) +if(r!==32&&r!==13&&!J.fK(r))break}return b}, +aK(a){if(typeof a=="number"){if(Math.floor(a)==a)return J.bi.prototype +return J.cg.prototype}if(typeof a=="string")return J.au.prototype +if(a==null)return J.bj.prototype +if(typeof a=="boolean")return J.cf.prototype +if(Array.isArray(a))return J.r.prototype +if(typeof a!="object"){if(typeof a=="function")return J.a6.prototype +if(typeof a=="symbol")return J.bm.prototype +if(typeof a=="bigint")return J.bl.prototype +return a}if(a instanceof A.o)return a +return J.fh(a)}, +a8(a){if(typeof a=="string")return J.au.prototype +if(a==null)return a +if(Array.isArray(a))return J.r.prototype +if(typeof a!="object"){if(typeof a=="function")return J.a6.prototype +if(typeof a=="symbol")return J.bm.prototype +if(typeof a=="bigint")return J.bl.prototype +return a}if(a instanceof A.o)return a +return J.fh(a)}, +aL(a){if(a==null)return a +if(Array.isArray(a))return J.r.prototype +if(typeof a!="object"){if(typeof a=="function")return J.a6.prototype +if(typeof a=="symbol")return J.bm.prototype +if(typeof a=="bigint")return J.bl.prototype +return a}if(a instanceof A.o)return a +return J.fh(a)}, +bV(a){if(typeof a=="string")return J.au.prototype +if(a==null)return a +if(!(a instanceof A.o))return J.aW.prototype +return a}, +L(a,b){if(a==null)return b==null +if(typeof a!="object")return b!=null&&a===b +return J.aK(a).K(a,b)}, +iI(a,b){if(typeof b==="number")if(Array.isArray(a)||typeof a=="string"||A.l4(a,a[v.dispatchPropertyName]))if(b>>>0===b&&b").b(a))return new A.bI(a,b.i("@<0>").L(c).i("bI<1,2>")) +return new A.aq(a,b.i("@<0>").L(c).i("aq<1,2>"))}, +eB(a){var s,r=a^48 +if(r<=9)return r +s=a|32 +if(97<=s&&s<=102)return s-87 +return-1}, +cQ(a,b){a=a+b&536870911 +a=a+((a&524287)<<10)&536870911 +return a^a>>>6}, +h_(a){a=a+((a&67108863)<<3)&536870911 +a^=a>>>11 +return a+((a&16383)<<15)&536870911}, +fd(a,b,c){return a}, +fk(a){var s,r +for(s=$.aN.length,r=0;rc)A.a3(A.A(b,0,c,"start",null))}return new A.aF(a,b,c,d.i("aF<0>"))}, +eV(a,b,c,d){if(t.X.b(a))return new A.b9(a,b,c.i("@<0>").L(d).i("b9<1,2>")) +return new A.Q(a,b,c.i("@<0>").L(d).i("Q<1,2>"))}, +h0(a,b,c){var s="takeCount" +A.aO(b,s) +A.H(b,s) +if(t.X.b(a))return new A.ba(a,b,c.i("ba<0>")) +return new A.aG(a,b,c.i("aG<0>"))}, +js(a,b,c){var s="count" +if(t.X.b(a)){A.aO(b,s) +A.H(b,s) +return new A.aR(a,b,c.i("aR<0>"))}A.aO(b,s) +A.H(b,s) +return new A.ab(a,b,c.i("ab<0>"))}, +bh(){return new A.aD("No element")}, +je(){return new A.aD("Too few elements")}, +al:function al(){}, +c5:function c5(a,b){this.a=a +this.$ti=b}, +aq:function aq(a,b){this.a=a +this.$ti=b}, +bI:function bI(a,b){this.a=a +this.$ti=b}, +bH:function bH(){}, +a9:function a9(a,b){this.a=a +this.$ti=b}, +ar:function ar(a,b){this.a=a +this.$ti=b}, +dh:function dh(a,b){this.a=a +this.b=b}, +bo:function bo(a){this.a=a}, +aQ:function aQ(a){this.a=a}, +dK:function dK(){}, +h:function h(){}, +q:function q(){}, +aF:function aF(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.$ti=d}, +F:function F(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.d=null +_.$ti=c}, +Q:function Q(a,b,c){this.a=a +this.b=b +this.$ti=c}, +b9:function b9(a,b,c){this.a=a +this.b=b +this.$ti=c}, +cq:function cq(a,b,c){var _=this +_.a=null +_.b=a +_.c=b +_.$ti=c}, +m:function m(a,b,c){this.a=a +this.b=b +this.$ti=c}, +E:function E(a,b,c){this.a=a +this.b=b +this.$ti=c}, +bF:function bF(a,b){this.a=a +this.b=b}, +bd:function bd(a,b,c){this.a=a +this.b=b +this.$ti=c}, +cb:function cb(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=null +_.$ti=d}, +aG:function aG(a,b,c){this.a=a +this.b=b +this.$ti=c}, +ba:function ba(a,b,c){this.a=a +this.b=b +this.$ti=c}, +cR:function cR(a,b,c){this.a=a +this.b=b +this.$ti=c}, +ab:function ab(a,b,c){this.a=a +this.b=b +this.$ti=c}, +aR:function aR(a,b,c){this.a=a +this.b=b +this.$ti=c}, +cK:function cK(a,b){this.a=a +this.b=b}, +by:function by(a,b,c){this.a=a +this.b=b +this.$ti=c}, +cL:function cL(a,b){this.a=a +this.b=b +this.c=!1}, +bb:function bb(a){this.$ti=a}, +c8:function c8(){}, +bG:function bG(a,b){this.a=a +this.$ti=b}, +cZ:function cZ(a,b){this.a=a +this.$ti=b}, +bu:function bu(a,b){this.a=a +this.$ti=b}, +cD:function cD(a){this.a=a +this.b=null}, +be:function be(){}, +cU:function cU(){}, +aX:function aX(){}, +aB:function aB(a,b){this.a=a +this.$ti=b}, +bU:function bU(){}, +i3(a){var s=v.mangledGlobalNames[a] +if(s!=null)return s +return"minified:"+a}, +l4(a,b){var s +if(b!=null){s=b.x +if(s!=null)return s}return t.D.b(a)}, +f(a){var s +if(typeof a=="string")return a +if(typeof a=="number"){if(a!==0)return""+a}else if(!0===a)return"true" +else if(!1===a)return"false" +else if(a==null)return"null" +s=J.b7(a) +return s}, +cH(a){var s,r=$.fR +if(r==null)r=$.fR=Symbol("identityHashCode") +s=a[r] +if(s==null){s=Math.random()*0x3fffffff|0 +a[r]=s}return s}, +fS(a,b){var s,r,q,p,o,n=null,m=/^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(a) +if(m==null)return n +s=m[3] +if(b==null){if(s!=null)return parseInt(a,10) +if(m[2]!=null)return parseInt(a,16) +return n}if(b<2||b>36)throw A.a(A.A(b,2,36,"radix",n)) +if(b===10&&s!=null)return parseInt(a,10) +if(b<10||s==null){r=b<=10?47+b:86+b +q=m[1] +for(p=q.length,o=0;or)return n}return parseInt(a,b)}, +dJ(a){return A.jl(a)}, +jl(a){var s,r,q,p +if(a instanceof A.o)return A.M(A.W(a),null) +s=J.aK(a) +if(s===B.O||s===B.R||t.n.b(a)){r=B.r(a) +if(r!=="Object"&&r!=="")return r +q=a.constructor +if(typeof q=="function"){p=q.name +if(typeof p=="string"&&p!=="Object"&&p!=="")return p}}return A.M(A.W(a),null)}, +jn(a){if(typeof a=="number"||A.fa(a))return J.b7(a) +if(typeof a=="string")return JSON.stringify(a) +if(a instanceof A.at)return a.h(0) +return"Instance of '"+A.dJ(a)+"'"}, +jm(){if(!!self.location)return self.location.href +return null}, +fQ(a){var s,r,q,p,o=a.length +if(o<=500)return String.fromCharCode.apply(null,a) +for(s="",r=0;r65535)return A.jo(a)}return A.fQ(a)}, +jp(a,b,c){var s,r,q,p +if(c<=500&&b===0&&c===a.length)return String.fromCharCode.apply(null,a) +for(s=b,r="";s>>0,s&1023|56320)}}throw A.a(A.A(a,0,1114111,null,null))}, +dd(a,b){var s,r="index" +if(!A.eu(b))return new A.a_(!0,b,r,null) +s=J.Z(a) +if(b<0||b>=s)return A.eR(b,s,a,r) +return A.eX(b,r)}, +kR(a,b,c){if(a>c)return A.A(a,0,c,"start",null) +if(b!=null)if(bc)return A.A(b,a,c,"end",null) +return new A.a_(!0,b,"end",null)}, +db(a){return new A.a_(!0,a,null,null)}, +a(a){return A.hV(new Error(),a)}, +hV(a,b){var s +if(b==null)b=new A.bC() +a.dartException=b +s=A.ln +if("defineProperty" in Object){Object.defineProperty(a,"message",{get:s}) +a.name=""}else a.toString=s +return a}, +ln(){return J.b7(this.dartException)}, +a3(a){throw A.a(a)}, +fo(a,b){throw A.hV(b,a)}, +X(a,b,c){var s +if(b==null)b=0 +if(c==null)c=0 +s=Error() +A.fo(A.kn(a,b,c),s)}, +kn(a,b,c){var s,r,q,p,o,n,m,l,k +if(typeof b=="string")s=b +else{r="[]=;add;removeWhere;retainWhere;removeRange;setRange;setInt8;setInt16;setInt32;setUint8;setUint16;setUint32;setFloat32;setFloat64".split(";") +q=r.length +p=b +if(p>q){c=p/q|0 +p%=q}s=r[p]}o=typeof c=="string"?c:"modify;remove from;add to".split(";")[c] +n=t.j.b(a)?"list":"ByteData" +m=a.$flags|0 +l="a " +if((m&4)!==0)k="constant " +else if((m&2)!==0){k="unmodifiable " +l="an "}else k=(m&1)!==0?"fixed-length ":"" +return new A.bD("'"+s+"': Cannot "+o+" "+l+k+n)}, +bX(a){throw A.a(A.N(a))}, +ac(a){var s,r,q,p,o,n +a=A.i2(a.replace(String({}),"$receiver$")) +s=a.match(/\\\$[a-zA-Z]+\\\$/g) +if(s==null)s=A.e([],t.s) +r=s.indexOf("\\$arguments\\$") +q=s.indexOf("\\$argumentsExpr\\$") +p=s.indexOf("\\$expr\\$") +o=s.indexOf("\\$method\\$") +n=s.indexOf("\\$receiver\\$") +return new A.e2(a.replace(new RegExp("\\\\\\$arguments\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$","g"),"((?:x|[^x])*)"),r,q,p,o,n)}, +e3(a){return function($expr$){var $argumentsExpr$="$arguments$" +try{$expr$.$method$($argumentsExpr$)}catch(s){return s.message}}(a)}, +h3(a){return function($expr$){try{$expr$.$method$}catch(s){return s.message}}(a)}, +eU(a,b){var s=b==null,r=s?null:b.method +return new A.ci(a,r,s?null:b.receiver)}, +b5(a){if(a==null)return new A.cE(a) +if(typeof a!=="object")return a +if("dartException" in a)return A.aM(a,a.dartException) +return A.kN(a)}, +aM(a,b){if(t.C.b(b))if(b.$thrownJsError==null)b.$thrownJsError=a +return b}, +kN(a){var s,r,q,p,o,n,m,l,k,j,i,h,g +if(!("message" in a))return a +s=a.message +if("number" in a&&typeof a.number=="number"){r=a.number +q=r&65535 +if((B.c.aB(r,16)&8191)===10)switch(q){case 438:return A.aM(a,A.eU(A.f(s)+" (Error "+q+")",null)) +case 445:case 5007:A.f(s) +return A.aM(a,new A.bw())}}if(a instanceof TypeError){p=$.i7() +o=$.i8() +n=$.i9() +m=$.ia() +l=$.id() +k=$.ie() +j=$.ic() +$.ib() +i=$.ih() +h=$.ig() +g=p.W(s) +if(g!=null)return A.aM(a,A.eU(s,g)) +else{g=o.W(s) +if(g!=null){g.method="call" +return A.aM(a,A.eU(s,g))}else if(n.W(s)!=null||m.W(s)!=null||l.W(s)!=null||k.W(s)!=null||j.W(s)!=null||m.W(s)!=null||i.W(s)!=null||h.W(s)!=null)return A.aM(a,new A.bw())}return A.aM(a,new A.cT(typeof s=="string"?s:""))}if(a instanceof RangeError){if(typeof s=="string"&&s.indexOf("call stack")!==-1)return new A.bA() +s=function(b){try{return String(b)}catch(f){}return null}(a) +return A.aM(a,new A.a_(!1,null,null,typeof s=="string"?s.replace(/^RangeError:\s*/,""):s))}if(typeof InternalError=="function"&&a instanceof InternalError)if(typeof s=="string"&&s==="too much recursion")return new A.bA() +return a}, +hY(a){if(a==null)return J.ap(a) +if(typeof a=="object")return A.cH(a) +return J.ap(a)}, +kS(a,b){var s,r,q,p=a.length +for(s=0;s=0 +else if(b instanceof A.av){s=B.a.A(a,c) +return b.b.test(s)}else return!J.eO(b,B.a.A(a,c)).gC(0)}, +fg(a){if(a.indexOf("$",0)>=0)return a.replace(/\$/g,"$$$$") +return a}, +lk(a,b,c,d){var s=b.bp(a,d) +if(s==null)return a +return A.fn(a,s.b.index,s.gP(),c)}, +i2(a){if(/[[\]{}()*+?.\\^$|]/.test(a))return a.replace(/[[\]{}()*+?.\\^$|]/g,"\\$&") +return a}, +R(a,b,c){var s +if(typeof b=="string")return A.lj(a,b,c) +if(b instanceof A.av){s=b.gbv() +s.lastIndex=0 +return a.replace(s,A.fg(c))}return A.li(a,b,c)}, +li(a,b,c){var s,r,q,p +for(s=J.eO(b,a),s=s.gq(s),r=0,q="";s.l();){p=s.gm() +q=q+a.substring(r,p.gJ())+c +r=p.gP()}s=q+a.substring(r) +return s.charCodeAt(0)==0?s:s}, +lj(a,b,c){var s,r,q +if(b===""){if(a==="")return c +s=a.length +r=""+c +for(q=0;q=0)return a.split(b).join(c) +return a.replace(new RegExp(A.i2(b),"g"),A.fg(c))}, +hO(a){return a}, +lh(a,b,c,d){var s,r,q,p,o,n,m +for(s=b.aC(0,a),s=new A.d0(s.a,s.b,s.c),r=t.d,q=0,p="";s.l();){o=s.d +if(o==null)o=r.a(o) +n=o.b +m=n.index +p=p+A.f(A.hO(B.a.j(a,q,m)))+A.f(c.$1(o)) +q=m+n[0].length}s=p+A.f(A.hO(B.a.A(a,q))) +return s.charCodeAt(0)==0?s:s}, +ll(a,b,c,d){var s,r,q,p +if(typeof b=="string"){s=a.indexOf(b,d) +if(s<0)return a +return A.fn(a,s,s+b.length,c)}if(b instanceof A.av)return d===0?a.replace(b.b,A.fg(c)):A.lk(a,b,c,d) +r=J.iJ(b,a,d) +q=r.gq(r) +if(!q.l())return a +p=q.gm() +return B.a.X(a,p.gJ(),p.gP(),c)}, +fn(a,b,c,d){return a.substring(0,b)+d+a.substring(c)}, +dz:function dz(){}, +bg:function bg(a,b){this.a=a +this.$ti=b}, +e2:function e2(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f}, +bw:function bw(){}, +ci:function ci(a,b,c){this.a=a +this.b=b +this.c=c}, +cT:function cT(a){this.a=a}, +cE:function cE(a){this.a=a}, +at:function at(){}, +dp:function dp(){}, +dq:function dq(){}, +dT:function dT(){}, +dR:function dR(){}, +b8:function b8(a,b){this.a=a +this.b=b}, +d1:function d1(a){this.a=a}, +cJ:function cJ(a){this.a=a}, +aw:function aw(a){var _=this +_.a=0 +_.f=_.e=_.d=_.c=_.b=null +_.r=0 +_.$ti=a}, +dC:function dC(a,b){this.a=a +this.b=b +this.c=null}, +ay:function ay(a,b){this.a=a +this.$ti=b}, +cp:function cp(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +bq:function bq(a,b){this.a=a +this.$ti=b}, +bp:function bp(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +eC:function eC(a){this.a=a}, +eD:function eD(a){this.a=a}, +eE:function eE(a){this.a=a}, +av:function av(a,b){var _=this +_.a=a +_.b=b +_.d=_.c=null}, +aY:function aY(a){this.b=a}, +d_:function d_(a,b,c){this.a=a +this.b=b +this.c=c}, +d0:function d0(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +bB:function bB(a,b){this.a=a +this.c=b}, +d7:function d7(a,b,c){this.a=a +this.b=b +this.c=c}, +ef:function ef(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +hF(a){return a}, +jk(a){return new Uint8Array(a)}, +aJ(a,b,c){if(a>>>0!==a||a>=c)throw A.a(A.dd(b,a))}, +kl(a,b,c){var s +if(!(a>>>0!==a))if(b==null)s=a>c +else s=b>>>0!==b||a>b||b>c +else s=!0 +if(s)throw A.a(A.kR(a,b,c)) +if(b==null)return c +return b}, +ct:function ct(){}, +cA:function cA(){}, +cu:function cu(){}, +aT:function aT(){}, +br:function br(){}, +bs:function bs(){}, +cv:function cv(){}, +cw:function cw(){}, +cx:function cx(){}, +cy:function cy(){}, +cz:function cz(){}, +cB:function cB(){}, +cC:function cC(){}, +bt:function bt(){}, +aU:function aU(){}, +bJ:function bJ(){}, +bK:function bK(){}, +bL:function bL(){}, +bM:function bM(){}, +fV(a,b){var s=b.c +return s==null?b.c=A.f3(a,b.x,!0):s}, +eY(a,b){var s=b.c +return s==null?b.c=A.bP(a,"fG",[b.x]):s}, +fW(a){var s=a.w +if(s===6||s===7||s===8)return A.fW(a.x) +return s===12||s===13}, +jq(a){return a.as}, +ez(a){return A.d9(v.typeUniverse,a,!1)}, +l2(a,b){var s,r,q,p,o +if(a==null)return null +s=b.y +r=a.Q +if(r==null)r=a.Q=new Map() +q=b.as +p=r.get(q) +if(p!=null)return p +o=A.af(v.typeUniverse,a.x,s,0) +r.set(q,o) +return o}, +af(a1,a2,a3,a4){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0=a2.w +switch(a0){case 5:case 1:case 2:case 3:case 4:return a2 +case 6:s=a2.x +r=A.af(a1,s,a3,a4) +if(r===s)return a2 +return A.hk(a1,r,!0) +case 7:s=a2.x +r=A.af(a1,s,a3,a4) +if(r===s)return a2 +return A.f3(a1,r,!0) +case 8:s=a2.x +r=A.af(a1,s,a3,a4) +if(r===s)return a2 +return A.hi(a1,r,!0) +case 9:q=a2.y +p=A.b2(a1,q,a3,a4) +if(p===q)return a2 +return A.bP(a1,a2.x,p) +case 10:o=a2.x +n=A.af(a1,o,a3,a4) +m=a2.y +l=A.b2(a1,m,a3,a4) +if(n===o&&l===m)return a2 +return A.f1(a1,n,l) +case 11:k=a2.x +j=a2.y +i=A.b2(a1,j,a3,a4) +if(i===j)return a2 +return A.hj(a1,k,i) +case 12:h=a2.x +g=A.af(a1,h,a3,a4) +f=a2.y +e=A.kJ(a1,f,a3,a4) +if(g===h&&e===f)return a2 +return A.hh(a1,g,e) +case 13:d=a2.y +a4+=d.length +c=A.b2(a1,d,a3,a4) +o=a2.x +n=A.af(a1,o,a3,a4) +if(c===d&&n===o)return a2 +return A.f2(a1,n,c,!0) +case 14:b=a2.x +if(b=0)p+=" "+r[q];++q}return p+"})"}, +hH(a3,a4,a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1=", ",a2=null +if(a5!=null){s=a5.length +if(a4==null)a4=A.e([],t.s) +else a2=a4.length +r=a4.length +for(q=s;q>0;--q)a4.push("T"+(r+q)) +for(p=t.O,o=t._,n="<",m="",q=0;q0){a+=a0+"[" +for(a0="",q=0;q0){a+=a0+"{" +for(a0="",q=0;q "+b}, +M(a,b){var s,r,q,p,o,n,m=a.w +if(m===5)return"erased" +if(m===2)return"dynamic" +if(m===3)return"void" +if(m===1)return"Never" +if(m===4)return"any" +if(m===6)return A.M(a.x,b) +if(m===7){s=a.x +r=A.M(s,b) +q=s.w +return(q===12||q===13?"("+r+")":r)+"?"}if(m===8)return"FutureOr<"+A.M(a.x,b)+">" +if(m===9){p=A.kM(a.x) +o=a.y +return o.length>0?p+("<"+A.hL(o,b)+">"):p}if(m===11)return A.kH(a,b) +if(m===12)return A.hH(a,b,null) +if(m===13)return A.hH(a.x,b,a.y) +if(m===14){n=a.x +return b[b.length-1-n]}return"?"}, +kM(a){var s=v.mangledGlobalNames[a] +if(s!=null)return s +return"minified:"+a}, +k2(a,b){var s=a.tR[b] +for(;typeof s=="string";)s=a.tR[s] +return s}, +k1(a,b){var s,r,q,p,o,n=a.eT,m=n[b] +if(m==null)return A.d9(a,b,!1) +else if(typeof m=="number"){s=m +r=A.bQ(a,5,"#") +q=A.eq(s) +for(p=0;p0)p+="<"+A.bO(c)+">" +s=a.eC.get(p) +if(s!=null)return s +r=new A.T(null,null) +r.w=9 +r.x=b +r.y=c +if(c.length>0)r.c=c[0] +r.as=p +q=A.ad(a,r) +a.eC.set(p,q) +return q}, +f1(a,b,c){var s,r,q,p,o,n +if(b.w===10){s=b.x +r=b.y.concat(c)}else{r=c +s=b}q=s.as+(";<"+A.bO(r)+">") +p=a.eC.get(q) +if(p!=null)return p +o=new A.T(null,null) +o.w=10 +o.x=s +o.y=r +o.as=q +n=A.ad(a,o) +a.eC.set(q,n) +return n}, +hj(a,b,c){var s,r,q="+"+(b+"("+A.bO(c)+")"),p=a.eC.get(q) +if(p!=null)return p +s=new A.T(null,null) +s.w=11 +s.x=b +s.y=c +s.as=q +r=A.ad(a,s) +a.eC.set(q,r) +return r}, +hh(a,b,c){var s,r,q,p,o,n=b.as,m=c.a,l=m.length,k=c.b,j=k.length,i=c.c,h=i.length,g="("+A.bO(m) +if(j>0){s=l>0?",":"" +g+=s+"["+A.bO(k)+"]"}if(h>0){s=l>0?",":"" +g+=s+"{"+A.jT(i)+"}"}r=n+(g+")") +q=a.eC.get(r) +if(q!=null)return q +p=new A.T(null,null) +p.w=12 +p.x=b +p.y=c +p.as=r +o=A.ad(a,p) +a.eC.set(r,o) +return o}, +f2(a,b,c,d){var s,r=b.as+("<"+A.bO(c)+">"),q=a.eC.get(r) +if(q!=null)return q +s=A.jV(a,b,c,r,d) +a.eC.set(r,s) +return s}, +jV(a,b,c,d,e){var s,r,q,p,o,n,m,l +if(e){s=c.length +r=A.eq(s) +for(q=0,p=0;p0){n=A.af(a,b,r,0) +m=A.b2(a,c,r,0) +return A.f2(a,n,m,c!==m)}}l=new A.T(null,null) +l.w=13 +l.x=b +l.y=c +l.as=d +return A.ad(a,l)}, +hc(a,b,c,d){return{u:a,e:b,r:c,s:[],p:0,n:d}}, +he(a){var s,r,q,p,o,n,m,l=a.r,k=a.s +for(s=l.length,r=0;r=48&&q<=57)r=A.jN(r+1,q,l,k) +else if((((q|32)>>>0)-97&65535)<26||q===95||q===36||q===124)r=A.hd(a,r,l,k,!1) +else if(q===46)r=A.hd(a,r,l,k,!0) +else{++r +switch(q){case 44:break +case 58:k.push(!1) +break +case 33:k.push(!0) +break +case 59:k.push(A.am(a.u,a.e,k.pop())) +break +case 94:k.push(A.jY(a.u,k.pop())) +break +case 35:k.push(A.bQ(a.u,5,"#")) +break +case 64:k.push(A.bQ(a.u,2,"@")) +break +case 126:k.push(A.bQ(a.u,3,"~")) +break +case 60:k.push(a.p) +a.p=k.length +break +case 62:A.jP(a,k) +break +case 38:A.jO(a,k) +break +case 42:p=a.u +k.push(A.hk(p,A.am(p,a.e,k.pop()),a.n)) +break +case 63:p=a.u +k.push(A.f3(p,A.am(p,a.e,k.pop()),a.n)) +break +case 47:p=a.u +k.push(A.hi(p,A.am(p,a.e,k.pop()),a.n)) +break +case 40:k.push(-3) +k.push(a.p) +a.p=k.length +break +case 41:A.jM(a,k) +break +case 91:k.push(a.p) +a.p=k.length +break +case 93:o=k.splice(a.p) +A.hf(a.u,a.e,o) +a.p=k.pop() +k.push(o) +k.push(-1) +break +case 123:k.push(a.p) +a.p=k.length +break +case 125:o=k.splice(a.p) +A.jR(a.u,a.e,o) +a.p=k.pop() +k.push(o) +k.push(-2) +break +case 43:n=l.indexOf("(",r) +k.push(l.substring(r,n)) +k.push(-4) +k.push(a.p) +a.p=k.length +r=n+1 +break +default:throw"Bad character "+q}}}m=k.pop() +return A.am(a.u,a.e,m)}, +jN(a,b,c,d){var s,r,q=b-48 +for(s=c.length;a=48&&r<=57))break +q=q*10+(r-48)}d.push(q) +return a}, +hd(a,b,c,d,e){var s,r,q,p,o,n,m=b+1 +for(s=c.length;m>>0)-97&65535)<26||r===95||r===36||r===124))q=r>=48&&r<=57 +else q=!0 +if(!q)break}}p=c.substring(b,m) +if(e){s=a.u +o=a.e +if(o.w===10)o=o.x +n=A.k2(s,o.x)[p] +if(n==null)A.a3('No "'+p+'" in "'+A.jq(o)+'"') +d.push(A.eh(s,o,n))}else d.push(p) +return m}, +jP(a,b){var s,r=a.u,q=A.hb(a,b),p=b.pop() +if(typeof p=="string")b.push(A.bP(r,p,q)) +else{s=A.am(r,a.e,p) +switch(s.w){case 12:b.push(A.f2(r,s,q,a.n)) +break +default:b.push(A.f1(r,s,q)) +break}}}, +jM(a,b){var s,r,q,p=a.u,o=b.pop(),n=null,m=null +if(typeof o=="number")switch(o){case-1:n=b.pop() +break +case-2:m=b.pop() +break +default:b.push(o) +break}else b.push(o) +s=A.hb(a,b) +o=b.pop() +switch(o){case-3:o=b.pop() +if(n==null)n=p.sEA +if(m==null)m=p.sEA +r=A.am(p,a.e,o) +q=new A.d4() +q.a=s +q.b=n +q.c=m +b.push(A.hh(p,r,q)) +return +case-4:b.push(A.hj(p,b.pop(),s)) +return +default:throw A.a(A.c2("Unexpected state under `()`: "+A.f(o)))}}, +jO(a,b){var s=b.pop() +if(0===s){b.push(A.bQ(a.u,1,"0&")) +return}if(1===s){b.push(A.bQ(a.u,4,"1&")) +return}throw A.a(A.c2("Unexpected extended operation "+A.f(s)))}, +hb(a,b){var s=b.splice(a.p) +A.hf(a.u,a.e,s) +a.p=b.pop() +return s}, +am(a,b,c){if(typeof c=="string")return A.bP(a,c,a.sEA) +else if(typeof c=="number"){b.toString +return A.jQ(a,b,c)}else return c}, +hf(a,b,c){var s,r=c.length +for(s=0;sn)return!1 +m=n-o +l=s.b +k=r.b +j=l.length +i=k.length +if(o+j=d)return!1 +a1=f[b] +b+=3 +if(a00?new Array(q):v.typeUniverse.sEA +for(o=0;o0?new Array(a):v.typeUniverse.sEA}, +T:function T(a,b){var _=this +_.a=a +_.b=b +_.r=_.f=_.d=_.c=null +_.w=0 +_.as=_.Q=_.z=_.y=_.x=null}, +d4:function d4(){this.c=this.b=this.a=null}, +eg:function eg(a){this.a=a}, +d3:function d3(){}, +bN:function bN(a){this.a=a}, +jj(a,b,c){return A.kS(a,new A.aw(b.i("@<0>").L(c).i("aw<1,2>")))}, +dD(a,b){return new A.aw(a.i("@<0>").L(b).i("aw<1,2>"))}, +fN(a){var s,r +if(A.fk(a))return"{...}" +s=new A.B("") +try{r={} +$.aN.push(a) +s.a+="{" +r.a=!0 +a.Z(0,new A.dF(r,s)) +s.a+="}"}finally{$.aN.pop()}r=s.a +return r.charCodeAt(0)==0?r:r}, +j:function j(){}, +D:function D(){}, +dF:function dF(a,b){this.a=a +this.b=b}, +kF(a,b){var s,r,q,p=null +try{p=JSON.parse(a)}catch(r){s=A.b5(r) +q=A.y(String(s),null,null) +throw A.a(q)}q=A.er(p) +return q}, +er(a){var s +if(a==null)return null +if(typeof a!="object")return a +if(!Array.isArray(a))return new A.d5(a,Object.create(null)) +for(s=0;s")) +for(s=J.Y(a);s.l();)r.push(s.gm()) +if(b)return r +r.$flags=1 +return r}, +aS(a,b,c){var s +if(b)return A.fM(a,c) +s=A.fM(a,c) +s.$flags=1 +return s}, +fM(a,b){var s,r +if(Array.isArray(a))return A.e(a.slice(0),b.i("r<0>")) +s=A.e([],b.i("r<0>")) +for(r=J.Y(a);r.l();)s.push(r.gm()) +return s}, +a0(a,b){var s=A.dE(a,!1,b) +s.$flags=3 +return s}, +fZ(a,b,c){var s,r,q,p,o +A.H(b,"start") +s=c==null +r=!s +if(r){q=c-b +if(q<0)throw A.a(A.A(c,b,null,"end",null)) +if(q===0)return""}if(Array.isArray(a)){p=a +o=p.length +if(s)c=o +return A.fT(b>0||c0)a=J.eP(a,b) +return A.fT(A.aS(a,!0,t.S))}, +fY(a){return A.G(a)}, +jt(a,b,c){var s=a.length +if(b>=s)return"" +return A.jp(a,b,c==null||c>s?s:c)}, +l(a,b){return new A.av(a,A.eS(a,b,!0,!1,!1,!1))}, +aE(a,b,c){var s=J.Y(b) +if(!s.l())return a +if(c.length===0){do a+=A.f(s.gm()) +while(s.l())}else{a+=A.f(s.gm()) +for(;s.l();)a=a+c+A.f(s.gm())}return a}, +f0(){var s,r,q=A.jm() +if(q==null)throw A.a(A.U("'Uri.base' is not supported")) +s=$.h8 +if(s!=null&&q===$.h7)return s +r=A.I(q) +$.h8=r +$.h7=q +return r}, +kd(a,b,c,d){var s,r,q,p,o,n="0123456789ABCDEF" +if(c===B.f){s=$.ij() +s=s.b.test(b)}else s=!1 +if(s)return b +r=B.G.an(b) +for(s=r.length,q=0,p="";q>>4&15]+n[o&15]}return p.charCodeAt(0)==0?p:p}, +ca(a){if(typeof a=="number"||A.fa(a)||a==null)return J.b7(a) +if(typeof a=="string")return JSON.stringify(a) +return A.jn(a)}, +c2(a){return new A.c1(a)}, +C(a){return new A.a_(!1,null,null,a)}, +bZ(a,b,c){return new A.a_(!0,a,b,c)}, +fy(a){return new A.a_(!1,null,a,"Must not be null")}, +aO(a,b){return a==null?A.a3(A.fy(b)):a}, +eW(a){var s=null +return new A.aa(s,s,!1,s,s,a)}, +eX(a,b){return new A.aa(null,null,!0,a,b,"Value not in range")}, +A(a,b,c,d,e){return new A.aa(b,c,!0,a,d,"Invalid value")}, +fU(a,b,c,d){if(ac)throw A.a(A.A(a,b,c,d,null)) +return a}, +aV(a,b,c){if(0>a||a>c)throw A.a(A.A(a,0,c,"start",null)) +if(b!=null){if(a>b||b>c)throw A.a(A.A(b,a,c,"end",null)) +return b}return c}, +H(a,b){if(a<0)throw A.a(A.A(a,0,null,b,null)) +return a}, +eR(a,b,c,d){return new A.bf(b,!0,a,d,"Index out of range")}, +U(a){return new A.bD(a)}, +h4(a){return new A.cS(a)}, +dQ(a){return new A.aD(a)}, +N(a){return new A.c6(a)}, +y(a,b,c){return new A.O(a,b,c)}, +jf(a,b,c){var s,r +if(A.fk(a)){if(b==="("&&c===")")return"(...)" +return b+"..."+c}s=A.e([],t.s) +$.aN.push(a) +try{A.kE(a,s)}finally{$.aN.pop()}r=A.aE(b,s,", ")+c +return r.charCodeAt(0)==0?r:r}, +fH(a,b,c){var s,r +if(A.fk(a))return b+"..."+c +s=new A.B(b) +$.aN.push(a) +try{r=s +r.a=A.aE(r.a,a,", ")}finally{$.aN.pop()}s.a+=c +r=s.a +return r.charCodeAt(0)==0?r:r}, +kE(a,b){var s,r,q,p,o,n,m,l=a.gq(a),k=0,j=0 +while(!0){if(!(k<80||j<3))break +if(!l.l())return +s=A.f(l.gm()) +b.push(s) +k+=s.length+2;++j}if(!l.l()){if(j<=5)return +r=b.pop() +q=b.pop()}else{p=l.gm();++j +if(!l.l()){if(j<=4){b.push(A.f(p)) +return}r=A.f(p) +q=b.pop() +k+=r.length+2}else{o=l.gm();++j +for(;l.l();p=o,o=n){n=l.gm();++j +if(j>100){while(!0){if(!(k>75&&j>3))break +k-=b.pop().length+2;--j}b.push("...") +return}}q=A.f(p) +r=A.f(o) +k+=r.length+q.length+4}}if(j>b.length+2){k+=5 +m="..."}else m=null +while(!0){if(!(k>80&&b.length>3))break +k-=b.pop().length+2 +if(m==null){k+=5 +m="..."}}if(m!=null)b.push(m) +b.push(q) +b.push(r)}, +fO(a,b,c){var s +if(B.k===c){s=J.ap(a) +b=J.ap(b) +return A.h_(A.cQ(A.cQ($.fr(),s),b))}s=J.ap(a) +b=J.ap(b) +c=c.gB(c) +c=A.h_(A.cQ(A.cQ(A.cQ($.fr(),s),b),c)) +return c}, +h6(a){var s,r=null,q=new A.B(""),p=A.e([-1],t.t) +A.jH(r,r,r,q,p) +p.push(q.a.length) +q.a+="," +A.jG(256,B.x.cv(a),q) +s=q.a +return new A.cV(s.charCodeAt(0)==0?s:s,p,r).ga5()}, +I(a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3=null,a4=a5.length +if(a4>=5){s=((a5.charCodeAt(4)^58)*3|a5.charCodeAt(0)^100|a5.charCodeAt(1)^97|a5.charCodeAt(2)^116|a5.charCodeAt(3)^97)>>>0 +if(s===0)return A.h5(a4=14)r[7]=a4 +q=r[1] +if(q>=0)if(A.hM(a5,0,q,20,r)===20)r[7]=q +p=r[2]+1 +o=r[3] +n=r[4] +m=r[5] +l=r[6] +if(lq+3)){i=o>0 +if(!(i&&o+1===n)){if(!B.a.u(a5,"\\",n))if(p>0)h=B.a.u(a5,"\\",p-1)||B.a.u(a5,"\\",p-2) +else h=!1 +else h=!0 +if(!h){if(!(mn+2&&B.a.u(a5,"/..",m-3) +else h=!0 +if(!h)if(q===4){if(B.a.u(a5,"file",0)){if(p<=0){if(!B.a.u(a5,"/",n)){g="file:///" +s=3}else{g="file://" +s=2}a5=g+B.a.j(a5,n,a4) +m+=s +l+=s +a4=a5.length +p=7 +o=7 +n=7}else if(n===m){++l +f=m+1 +a5=B.a.X(a5,n,m,"/");++a4 +m=f}j="file"}else if(B.a.u(a5,"http",0)){if(i&&o+3===n&&B.a.u(a5,"80",o+1)){l-=3 +e=n-3 +m-=3 +a5=B.a.X(a5,o,n,"") +a4-=3 +n=e}j="http"}}else if(q===5&&B.a.u(a5,"https",0)){if(i&&o+4===n&&B.a.u(a5,"443",o+1)){l-=4 +e=n-4 +m-=4 +a5=B.a.X(a5,o,n,"") +a4-=3 +n=e}j="https"}k=!h}}}}if(k)return new A.V(a40)j=A.el(a5,0,q) +else{if(q===0)A.b1(a5,0,"Invalid empty scheme") +j=""}d=a3 +if(p>0){c=q+3 +b=c9)k.$2("invalid character",s)}else{if(q===3)k.$2(m,s) +o=A.K(B.a.j(a,r,s),null) +if(o>255)k.$2(l,r) +n=q+1 +j[q]=o +r=s+1 +q=n}}if(q!==3)k.$2(m,c) +o=A.K(B.a.j(a,r,c),null) +if(o>255)k.$2(l,r) +j[q]=o +return j}, +h9(a,b,a0){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e=null,d=new A.e5(a),c=new A.e6(d,a) +if(a.length<2)d.$2("address is too short",e) +s=A.e([],t.t) +for(r=b,q=r,p=!1,o=!1;r>>0) +s.push((k[2]<<8|k[3])>>>0)}if(p){if(s.length>7)d.$2("an address with a wildcard must have less than 7 parts",e)}else if(s.length!==8)d.$2("an address without a wildcard must contain exactly 8 parts",e) +j=new Uint8Array(16) +for(l=s.length,i=9-l,r=0,h=0;r")),r=r.i("q.E");s.l();){q=s.d +if(q==null)q=r.a(q) +if(B.a.t(q,A.l('["*/:<>?\\\\|]',!1)))if(b)throw A.a(A.C("Illegal character in path")) +else throw A.a(A.U("Illegal character in path: "+q))}}, +k5(a,b){var s,r="Illegal drive letter " +if(!(65<=a&&a<=90))s=97<=a&&a<=122 +else s=!0 +if(s)return +if(b)throw A.a(A.C(r+A.fY(a))) +else throw A.a(A.U(r+A.fY(a)))}, +k8(a,b){var s=null,r=A.e(a.split("/"),t.s) +if(B.a.p(a,"/"))return A.z(s,s,r,"file") +else return A.z(s,s,r,s)}, +k9(a,b){var s,r,q,p,o="\\",n=null,m="file" +if(B.a.p(a,"\\\\?\\"))if(B.a.u(a,"UNC\\",4))a=B.a.X(a,0,7,o) +else{a=B.a.A(a,4) +if(a.length<3||a.charCodeAt(1)!==58||a.charCodeAt(2)!==92)throw A.a(A.bZ(a,"path","Windows paths with \\\\?\\ prefix must be absolute"))}else a=A.R(a,"/",o) +s=a.length +if(s>1&&a.charCodeAt(1)===58){A.k5(a.charCodeAt(0),!0) +if(s===2||a.charCodeAt(2)!==92)throw A.a(A.bZ(a,"path","Windows paths with drive letter must be absolute")) +r=A.e(a.split(o),t.s) +A.ei(r,!0,1) +return A.z(n,n,r,m)}if(B.a.p(a,o))if(B.a.u(a,o,1)){q=B.a.a4(a,o,2) +s=q<0 +p=s?B.a.A(a,2):B.a.j(a,2,q) +r=A.e((s?"":B.a.A(a,q+1)).split(o),t.s) +A.ei(r,!0,0) +return A.z(p,n,r,m)}else{r=A.e(a.split(o),t.s) +A.ei(r,!0,0) +return A.z(n,n,r,m)}else{r=A.e(a.split(o),t.s) +A.ei(r,!0,0) +return A.z(n,n,r,n)}}, +ek(a,b){if(a!=null&&a===A.hm(b))return null +return a}, +hq(a,b,c,d){var s,r,q,p,o,n +if(a==null)return null +if(b===c)return"" +if(a.charCodeAt(b)===91){s=c-1 +if(a.charCodeAt(s)!==93)A.b1(a,b,"Missing end `]` to match `[` in host") +r=b+1 +q=A.k6(a,r,s) +if(q=b&&q=b&&s=p){if(i==null)i=new A.B("") +if(r=o){if(q==null)q=new A.B("") +if(r")).a_(0,"/")}else if(d!=null)throw A.a(A.C("Both path and pathSegments specified")) +else s=A.bT(a,b,c,128,!0,!0) +if(s.length===0){if(r)return"/"}else if(q&&!B.a.p(s,"/"))s="/"+s +return A.ka(s,e,f)}, +ka(a,b,c){var s=b.length===0 +if(s&&!c&&!B.a.p(a,"/")&&!B.a.p(a,"\\"))return A.f6(a,!s||c) +return A.aI(a)}, +hs(a,b,c,d){if(a!=null)return A.bT(a,b,c,256,!0,!1) +return null}, +hp(a,b,c){if(a==null)return null +return A.bT(a,b,c,256,!0,!1)}, +f5(a,b,c){var s,r,q,p,o,n=b+2 +if(n>=a.length)return"%" +s=a.charCodeAt(b+1) +r=a.charCodeAt(n) +q=A.eB(s) +p=A.eB(r) +if(q<0||p<0)return"%" +o=q*16+p +if(o<127&&(u.v.charCodeAt(o)&1)!==0)return A.G(c&&65<=o&&90>=o?(o|32)>>>0:o) +if(s>=97||r>=97)return B.a.j(a,b,b+3).toUpperCase() +return null}, +f4(a){var s,r,q,p,o,n="0123456789ABCDEF" +if(a<=127){s=new Uint8Array(3) +s[0]=37 +s[1]=n.charCodeAt(a>>>4) +s[2]=n.charCodeAt(a&15)}else{if(a>2047)if(a>65535){r=240 +q=4}else{r=224 +q=3}else{r=192 +q=2}s=new Uint8Array(3*q) +for(p=0;--q,q>=0;r=128){o=B.c.ck(a,6*q)&63|r +s[p]=37 +s[p+1]=n.charCodeAt(o>>>4) +s[p+2]=n.charCodeAt(o&15) +p+=3}}return A.fZ(s,0,null)}, +bT(a,b,c,d,e,f){var s=A.hv(a,b,c,d,e,f) +return s==null?B.a.j(a,b,c):s}, +hv(a,b,c,d,e,f){var s,r,q,p,o,n,m,l,k,j,i=null,h=u.v +for(s=!e,r=b,q=r,p=i;r=2&&A.ho(a.charCodeAt(0)))for(s=1;s127||(u.v.charCodeAt(r)&8)===0)break}return a}, +kc(a,b){if(a.cF("package")&&a.c==null)return A.hN(b,0,b.length) +return-1}, +k7(a,b){var s,r,q +for(s=0,r=0;r<2;++r){q=a.charCodeAt(b+r) +if(48<=q&&q<=57)s=s*16+q-48 +else{q|=32 +if(97<=q&&q<=102)s=s*16+q-87 +else throw A.a(A.C("Invalid URL encoding"))}}return s}, +f7(a,b,c,d,e){var s,r,q,p,o=b +while(!0){if(!(o127)throw A.a(A.C("Illegal percent encoding in URI")) +if(r===37){if(o+3>q)throw A.a(A.C("Truncated URI")) +p.push(A.k7(a,o+1)) +o+=2}else p.push(r)}}return B.a6.an(p)}, +ho(a){var s=a|32 +return 97<=s&&s<=122}, +jH(a,b,c,d,e){d.a=d.a}, +h5(a,b,c){var s,r,q,p,o,n,m,l,k="Invalid MIME type",j=A.e([b-1],t.t) +for(s=a.length,r=b,q=-1,p=null;rb)throw A.a(A.y(k,a,r)) +for(;p!==44;){j.push(r);++r +for(o=-1;r=0)j.push(o) +else{n=B.b.gI(j) +if(p!==44||r!==n+7||!B.a.u(a,"base64",n+1))throw A.a(A.y("Expecting '='",a,r)) +break}}j.push(r) +m=r+1 +if((j.length&1)===1)a=B.y.cH(a,m,s) +else{l=A.hv(a,m,s,256,!0,!1) +if(l!=null)a=B.a.X(a,m,s,l)}return new A.cV(a,j,c)}, +jG(a,b,c){var s,r,q,p,o,n="0123456789ABCDEF" +for(s=b.length,r=0,q=0;q>>4)) +c.a+=o +o=A.G(n.charCodeAt(p&15)) +c.a+=o}}if((r&4294967040)!==0)for(q=0;q255)throw A.a(A.bZ(p,"non-byte value",null))}}, +hM(a,b,c,d,e){var s,r,q +for(s=b;s95)r=31 +q='\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe3\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0e\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\n\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\xeb\xeb\x8b\xeb\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x83\xeb\xeb\x8b\xeb\x8b\xeb\xcd\x8b\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x92\x83\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x8b\xeb\x8b\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xebD\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12D\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe8\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\x05\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x10\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\f\xec\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\xec\f\xec\f\xec\xcd\f\xec\f\f\f\f\f\f\f\f\f\xec\f\f\f\f\f\f\f\f\f\f\xec\f\xec\f\xec\f\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\r\xed\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\xed\r\xed\r\xed\xed\r\xed\r\r\r\r\r\r\r\r\r\xed\r\r\r\r\r\r\r\r\r\r\xed\r\xed\r\xed\r\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0f\xea\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe9\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\t\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x11\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xe9\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\t\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x13\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\xf5\x15\x15\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5'.charCodeAt(d*96+r) +d=q&31 +e[q>>>5]=s}return d}, +hg(a){if(a.b===7&&B.a.p(a.a,"package")&&a.c<=0)return A.hN(a.a,a.e,a.f) +return-1}, +hN(a,b,c){var s,r,q +for(s=b,r=0;s=1;s=q){q=s-1 +if(b[q]!=null)break}p=new A.B("") +o=""+(a+"(") +p.a=o +n=A.w(b) +m=n.i("aF<1>") +l=new A.aF(b,0,s,m) +l.c5(b,0,s,n.c) +m=o+new A.m(l,new A.ew(),m.i("m")).a_(0,", ") +p.a=m +p.a=m+("): part "+(r-1)+" was null, but part "+r+" was not.") +throw A.a(A.C(p.h(0)))}}, +c7:function c7(a,b){this.a=a +this.b=b}, +dr:function dr(){}, +ds:function ds(){}, +ew:function ew(){}, +aZ:function aZ(a){this.a=a}, +b_:function b_(a){this.a=a}, +dA:function dA(){}, +aA(a,b){var s,r,q,p,o,n=b.bX(a) +b.S(a) +if(n!=null)a=B.a.A(a,n.length) +s=t.s +r=A.e([],s) +q=A.e([],s) +s=a.length +if(s!==0&&b.v(a.charCodeAt(0))){q.push(a[0]) +p=1}else{q.push("") +p=0}for(o=p;o$.fs())throw A.a(A.C("expected 32 bit int, got: "+a)) +s=A.e([],t.s) +if(a<0){a=-a +r=1}else r=0 +a=a<<1|r +do{q=a&31 +a=a>>>5 +p=a>0 +s.push(u.n[p?q|32:q])}while(p) +return s}, +dc(a){var s,r,q,p,o,n,m,l=null +for(s=a.b,r=0,q=!1,p=0;!q;){if(++a.c>=s)throw A.a(A.dQ("incomplete VLQ value")) +o=a.gm() +n=$.ip().n(0,o) +if(n==null)throw A.a(A.y("invalid character in VLQ encoding: "+o,l,l)) +q=(n&32)===0 +r+=B.c.cj(n&31,p) +p+=5}m=r>>>1 +r=(r&1)===1?-m:m +if(r<$.ft()||r>$.fs())throw A.a(A.y("expected an encoded 32 bit int, but we got: "+r,l,l)) +return r}, +et:function et(){}, +cM:function cM(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +eZ(a,b,c,d){var s=typeof d=="string"?A.I(d):t.I.a(d),r=c==null,q=r?0:c,p=b==null,o=p?a:b +if(a<0)A.a3(A.eW("Offset may not be negative, was "+a+".")) +else if(!r&&c<0)A.a3(A.eW("Line may not be negative, was "+A.f(c)+".")) +else if(!p&&b<0)A.a3(A.eW("Column may not be negative, was "+A.f(b)+".")) +return new A.cN(s,a,q,o)}, +cN:function cN(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +cO:function cO(){}, +cP:function cP(){}, +iW(a){var s,r,q=u.q +if(a.length===0)return new A.as(A.a0(A.e([],t.J),t.a)) +s=$.fu() +if(B.a.t(a,s)){s=B.a.ai(a,s) +r=A.w(s) +return new A.as(A.a0(new A.Q(new A.E(s,new A.di(),r.i("E<1>")),A.lp(),r.i("Q<1,t>")),t.a))}if(!B.a.t(a,q))return new A.as(A.a0(A.e([A.f_(a)],t.J),t.a)) +return new A.as(A.a0(new A.m(A.e(a.split(q),t.s),A.lo(),t.k),t.a))}, +as:function as(a){this.a=a}, +di:function di(){}, +dn:function dn(){}, +dm:function dm(){}, +dk:function dk(){}, +dl:function dl(a){this.a=a}, +dj:function dj(a){this.a=a}, +ja(a){return A.fF(a)}, +fF(a){return A.cc(a,new A.dy(a))}, +j9(a){return A.j6(a)}, +j6(a){return A.cc(a,new A.dw(a))}, +j3(a){return A.cc(a,new A.dt(a))}, +j7(a){return A.j4(a)}, +j4(a){return A.cc(a,new A.du(a))}, +j8(a){return A.j5(a)}, +j5(a){return A.cc(a,new A.dv(a))}, +cd(a){if(B.a.t(a,$.i4()))return A.I(a) +else if(B.a.t(a,$.i5()))return A.hl(a,!0) +else if(B.a.p(a,"/"))return A.hl(a,!1) +if(B.a.t(a,"\\"))return $.iH().bT(a) +return A.I(a)}, +cc(a,b){var s,r +try{s=b.$0() +return s}catch(r){if(A.b5(r) instanceof A.O)return new A.a2(A.z(null,"unparsed",null,null),a) +else throw r}}, +k:function k(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +dy:function dy(a){this.a=a}, +dw:function dw(a){this.a=a}, +dx:function dx(a){this.a=a}, +dt:function dt(a){this.a=a}, +du:function du(a){this.a=a}, +dv:function dv(a){this.a=a}, +co:function co(a){this.a=a +this.b=$}, +jy(a){if(t.a.b(a))return a +if(a instanceof A.as)return a.bS() +return new A.co(new A.dZ(a))}, +f_(a){var s,r,q +try{if(a.length===0){r=A.dU(A.e([],t.F),null) +return r}if(B.a.t(a,$.iC())){r=A.jx(a) +return r}if(B.a.t(a,"\tat ")){r=A.jw(a) +return r}if(B.a.t(a,$.it())||B.a.t(a,$.ir())){r=A.jv(a) +return r}if(B.a.t(a,u.q)){r=A.iW(a).bS() +return r}if(B.a.t(a,$.iw())){r=A.h1(a) +return r}r=A.h2(a) +return r}catch(q){r=A.b5(q) +if(r instanceof A.O){s=r +throw A.a(A.y(s.a+"\nStack trace:\n"+a,null,null))}else throw q}}, +jA(a){return A.h2(a)}, +h2(a){var s=A.a0(A.jB(a),t.B) +return new A.t(s,new A.an(a))}, +jB(a){var s,r=B.a.bi(a),q=$.fu(),p=t.U,o=new A.E(A.e(A.R(r,q,"").split("\n"),t.s),new A.e_(),p) +if(!o.gq(0).l())return A.e([],t.F) +r=A.h0(o,o.gk(0)-1,p.i("d.E")) +r=A.eV(r,A.kW(),A.u(r).i("d.E"),t.B) +s=A.aS(r,!0,A.u(r).i("d.E")) +if(!J.iM(o.gI(0),".da"))B.b.ak(s,A.fF(o.gI(0))) +return s}, +jx(a){var s=A.a1(A.e(a.split("\n"),t.s),1,null,t.N).c0(0,new A.dY()),r=t.B +r=A.a0(A.eV(s,A.hT(),s.$ti.i("d.E"),r),r) +return new A.t(r,new A.an(a))}, +jw(a){var s=A.a0(new A.Q(new A.E(A.e(a.split("\n"),t.s),new A.dX(),t.U),A.hT(),t.L),t.B) +return new A.t(s,new A.an(a))}, +jv(a){var s=A.a0(new A.Q(new A.E(A.e(B.a.bi(a).split("\n"),t.s),new A.dV(),t.U),A.kU(),t.L),t.B) +return new A.t(s,new A.an(a))}, +jz(a){return A.h1(a)}, +h1(a){var s=a.length===0?A.e([],t.F):new A.Q(new A.E(A.e(B.a.bi(a).split("\n"),t.s),new A.dW(),t.U),A.kV(),t.L) +s=A.a0(s,t.B) +return new A.t(s,new A.an(a))}, +dU(a,b){var s=A.a0(a,t.B) +return new A.t(s,new A.an(b==null?"":b))}, +t:function t(a,b){this.a=a +this.b=b}, +dZ:function dZ(a){this.a=a}, +e_:function e_(){}, +dY:function dY(){}, +dX:function dX(){}, +dV:function dV(){}, +dW:function dW(){}, +e1:function e1(){}, +e0:function e0(a){this.a=a}, +a2:function a2(a,b){this.a=a +this.w=b}, +l9(a,b,c){var s=A.jy(b).gaa() +return A.dU(new A.bu(new A.m(s,new A.eH(a,c),A.w(s).i("m<1,k?>")),t.x),null).cB(new A.eI())}, +kG(a){var s,r,q,p,o,n,m,l=B.a.bK(a,".") +if(l<0)return a +s=B.a.A(a,l+1) +a=s==="fn"?a:s +a=A.R(a,"$124","|") +if(B.a.t(a,"|")){r=B.a.ao(a,"|") +q=B.a.ao(a," ") +p=B.a.ao(a,"escapedPound") +if(q>=0){o=B.a.j(a,0,q)==="set" +a=B.a.j(a,q+1,a.length)}else{n=r+1 +if(p>=0){o=B.a.j(a,n,p)==="set" +a=B.a.X(a,n,p+3,"")}else{m=B.a.j(a,n,a.length) +if(B.a.p(m,"unary")||B.a.p(m,"$"))a=A.kL(a) +o=!1}}a=A.R(a,"|",".") +n=o?a+"=":a}else n=a +return n}, +kL(a){return A.lh(a,A.l("\\$[0-9]+",!1),new A.ev(a),null)}, +eH:function eH(a,b){this.a=a +this.b=b}, +eI:function eI(){}, +ev:function ev(a){this.a=a}, +kT(a){var s=a.$ti.i("m") +return A.aS(new A.m(a,new A.eA(),s),!0,s.i("q.E"))}, +la(a){var s,r +if($.fb==null)throw A.a(A.dQ("Source maps are not done loading.")) +s=A.f_(a) +r=$.fb +r.toString +return A.l9(r,s,$.iG()).h(0)}, +lc(a){$.fb=new A.cn(new A.cr(A.dD(t.N,t.E)),new A.eK(a))}, +l7(){self.$dartStackTraceUtility={mapper:A.hI(A.ld()),setSourceMapProvider:A.hI(A.le())}}, +eA:function eA(){}, +cn:function cn(a,b){this.a=a +this.b=b}, +eJ:function eJ(){}, +eK:function eK(a){this.a=a}, +lm(a){A.fo(new A.bo("Field '"+a+"' has been assigned during initialization."),new Error())}, +eL(){A.fo(new A.bo("Field '' has been assigned during initialization."),new Error())}, +hI(a){var s +if(typeof a=="function")throw A.a(A.C("Attempting to rewrap a JS function.")) +s=function(b,c){return function(d){return b(c,d,arguments.length)}}(A.kj,a) +s[$.fp()]=a +return s}, +kj(a,b,c){if(c>=1)return a.$1(b) +return a.$0()}, +hX(a,b){return Math.max(a,b)}, +i0(a,b){return Math.pow(a,b)}, +ff(){var s,r,q,p,o=null +try{o=A.f0()}catch(s){if(t.M.b(A.b5(s))){r=$.es +if(r!=null)return r +throw s}else throw s}if(J.L(o,$.hE)){r=$.es +r.toString +return r}$.hE=o +if($.fq()===$.b6())r=$.es=o.bg(".").h(0) +else{q=o.bh() +p=q.length-1 +r=$.es=p===0?q:B.a.j(q,0,p)}return r}, +hW(a){var s +if(!(a>=65&&a<=90))s=a>=97&&a<=122 +else s=!0 +return s}, +hS(a,b){var s,r,q=null,p=a.length,o=b+2 +if(p").L(b).i("a9<1,2>"))}, +ak(a,b){a.$flags&1&&A.X(a,29) +a.push(b)}, +aL(a,b){var s +a.$flags&1&&A.X(a,"removeAt",1) +s=a.length +if(b>=s)throw A.a(A.eX(b,null)) +return a.splice(b,1)[0]}, +b7(a,b,c){var s +a.$flags&1&&A.X(a,"insert",2) +s=a.length +if(b>s)throw A.a(A.eX(b,null)) +a.splice(b,0,c)}, +b8(a,b,c){var s,r +a.$flags&1&&A.X(a,"insertAll",2) +A.fU(b,0,a.length,"index") +if(!t.X.b(c))c=J.iS(c) +s=J.Z(c) +a.length=a.length+s +r=b+s +this.bm(a,r,a.length,a,b) +this.bY(a,b,r,c)}, +bf(a){a.$flags&1&&A.X(a,"removeLast",1) +if(a.length===0)throw A.a(A.dd(a,-1)) +return a.pop()}, +bU(a,b){return new A.E(a,b,A.w(a).i("E<1>"))}, +bC(a,b){var s +a.$flags&1&&A.X(a,"addAll",2) +if(Array.isArray(b)){this.c6(a,b) +return}for(s=J.Y(b);s.l();)a.push(s.gm())}, +c6(a,b){var s,r=b.length +if(r===0)return +if(a===b)throw A.a(A.N(a)) +for(s=0;s").L(c).i("m<1,2>"))}, +a_(a,b){var s,r=A.a7(a.length,"",!1,t.N) +for(s=0;s0)return a[0] +throw A.a(A.bh())}, +gI(a){var s=a.length +if(s>0)return a[s-1] +throw A.a(A.bh())}, +bm(a,b,c,d,e){var s,r,q,p,o +a.$flags&2&&A.X(a,5) +A.aV(b,c,a.length) +s=c-b +if(s===0)return +A.H(e,"skipCount") +if(t.j.b(d)){r=d +q=e}else{r=J.eP(d,e).a2(0,!1) +q=0}p=J.a8(r) +if(q+s>p.gk(r))throw A.a(A.je()) +if(q=0;--o)a[b+o]=p.n(r,q+o) +else for(o=0;o"))}, +gB(a){return A.cH(a)}, +gk(a){return a.length}, +n(a,b){if(!(b>=0&&b=p){r.d=null +return!1}r.d=q[s] +r.c=s+1 +return!0}} +J.bk.prototype={ +h(a){if(a===0&&1/a<0)return"-0.0" +else return""+a}, +gB(a){var s,r,q,p,o=a|0 +if(a===o)return o&536870911 +s=Math.abs(a) +r=Math.log(s)/0.6931471805599453|0 +q=Math.pow(2,r) +p=s<1?s/q:q/s +return((p*9007199254740992|0)+(p*3542243181176521|0))*599197+r*1259&536870911}, +bk(a,b){return a+b}, +aP(a,b){var s=a%b +if(s===0)return 0 +if(s>0)return s +return s+b}, +by(a,b){return(a|0)===a?a/b|0:this.cn(a,b)}, +cn(a,b){var s=a/b +if(s>=-2147483648&&s<=2147483647)return s|0 +if(s>0){if(s!==1/0)return Math.floor(s)}else if(s>-1/0)return Math.ceil(s) +throw A.a(A.U("Result of truncating division is "+A.f(s)+": "+A.f(a)+" ~/ "+b))}, +cj(a,b){return b>31?0:a<>>0}, +aB(a,b){var s +if(a>0)s=this.bx(a,b) +else{s=b>31?31:b +s=a>>s>>>0}return s}, +ck(a,b){if(0>b)throw A.a(A.db(b)) +return this.bx(a,b)}, +bx(a,b){return b>31?0:a>>>b}, +gG(a){return A.ag(t.H)}, +$ix:1} +J.bi.prototype={ +gG(a){return A.ag(t.S)}, +$in:1, +$ib:1} +J.cg.prototype={ +gG(a){return A.ag(t.i)}, +$in:1} +J.au.prototype={ +cr(a,b){if(b<0)throw A.a(A.dd(a,b)) +if(b>=a.length)A.a3(A.dd(a,b)) +return a.charCodeAt(b)}, +aD(a,b,c){var s=b.length +if(c>s)throw A.a(A.A(c,0,s,null,null)) +return new A.d7(b,a,c)}, +aC(a,b){return this.aD(a,b,0)}, +bN(a,b,c){var s,r,q=null +if(c<0||c>b.length)throw A.a(A.A(c,0,b.length,q,q)) +s=a.length +if(c+s>b.length)return q +for(r=0;rr)return!1 +return b===this.A(a,r-s)}, +bR(a,b,c){A.fU(0,0,a.length,"startIndex") +return A.ll(a,b,c,0)}, +ai(a,b){var s,r +if(typeof b=="string")return A.e(a.split(b),t.s) +else{if(b instanceof A.av){s=b.gbu() +s.lastIndex=0 +r=s.exec("").length-2===0}else r=!1 +if(r)return A.e(a.split(b.b),t.s) +else return this.c9(a,b)}}, +X(a,b,c,d){var s=A.aV(b,c,a.length) +return A.fn(a,b,s,d)}, +c9(a,b){var s,r,q,p,o,n,m=A.e([],t.s) +for(s=J.eO(b,a),s=s.gq(s),r=0,q=1;s.l();){p=s.gm() +o=p.gJ() +n=p.gP() +q=n-o +if(q===0&&r===o)continue +m.push(this.j(a,r,o)) +r=n}if(r0)m.push(this.A(a,r)) +return m}, +u(a,b,c){var s +if(c<0||c>a.length)throw A.a(A.A(c,0,a.length,null,null)) +if(typeof b=="string"){s=c+b.length +if(s>a.length)return!1 +return b===a.substring(c,s)}return J.iQ(b,a,c)!=null}, +p(a,b){return this.u(a,b,0)}, +j(a,b,c){return a.substring(b,A.aV(b,c,a.length))}, +A(a,b){return this.j(a,b,null)}, +bi(a){var s,r,q,p=a.trim(),o=p.length +if(o===0)return p +if(p.charCodeAt(0)===133){s=J.jh(p,1) +if(s===o)return""}else s=0 +r=o-1 +q=p.charCodeAt(r)===133?J.ji(p,r):o +if(s===0&&q===o)return p +return p.substring(s,q)}, +bl(a,b){var s,r +if(0>=b)return"" +if(b===1||a.length===0)return a +if(b!==b>>>0)throw A.a(B.F) +for(s=a,r="";!0;){if((b&1)===1)r=s+r +b=b>>>1 +if(b===0)break +s+=s}return r}, +bO(a,b){var s=b-a.length +if(s<=0)return a +return a+this.bl(" ",s)}, +a4(a,b,c){var s +if(c<0||c>a.length)throw A.a(A.A(c,0,a.length,null,null)) +s=a.indexOf(b,c) +return s}, +ao(a,b){return this.a4(a,b,0)}, +bL(a,b,c){var s,r +if(c==null)c=a.length +else if(c<0||c>a.length)throw A.a(A.A(c,0,a.length,null,null)) +s=b.length +r=a.length +if(c+s>r)c=r-s +return a.lastIndexOf(b,c)}, +bK(a,b){return this.bL(a,b,null)}, +t(a,b){return A.lg(a,b,0)}, +h(a){return a}, +gB(a){var s,r,q +for(s=a.length,r=0,q=0;q>6}r=r+((r&67108863)<<3)&536870911 +r^=r>>11 +return r+((r&16383)<<15)&536870911}, +gG(a){return A.ag(t.N)}, +gk(a){return a.length}, +$in:1, +$ic:1} +A.al.prototype={ +gq(a){return new A.c5(J.Y(this.gV()),A.u(this).i("c5<1,2>"))}, +gk(a){return J.Z(this.gV())}, +gC(a){return J.fw(this.gV())}, +gab(a){return J.iN(this.gV())}, +Y(a,b){var s=A.u(this) +return A.dg(J.eP(this.gV(),b),s.c,s.y[1])}, +a8(a,b){var s=A.u(this) +return A.dg(J.fx(this.gV(),b),s.c,s.y[1])}, +D(a,b){return A.u(this).y[1].a(J.df(this.gV(),b))}, +t(a,b){return J.iL(this.gV(),b)}, +h(a){return J.b7(this.gV())}} +A.c5.prototype={ +l(){return this.a.l()}, +gm(){return this.$ti.y[1].a(this.a.gm())}} +A.aq.prototype={ +gV(){return this.a}} +A.bI.prototype={$ih:1} +A.bH.prototype={ +n(a,b){return this.$ti.y[1].a(J.iI(this.a,b))}, +$ih:1, +$ii:1} +A.a9.prototype={ +al(a,b){return new A.a9(this.a,this.$ti.i("@<1>").L(b).i("a9<1,2>"))}, +gV(){return this.a}} +A.ar.prototype={ +bD(a,b,c){return new A.ar(this.a,this.$ti.i("@<1,2>").L(b).L(c).i("ar<1,2,3,4>"))}, +O(a){return this.a.O(a)}, +n(a,b){return this.$ti.i("4?").a(this.a.n(0,b))}, +N(a,b,c){var s=this.$ti +this.a.N(0,s.c.a(b),s.y[1].a(c))}, +Z(a,b){this.a.Z(0,new A.dh(this,b))}, +ga0(){var s=this.$ti +return A.dg(this.a.ga0(),s.c,s.y[2])}, +gk(a){var s=this.a +return s.gk(s)}, +gC(a){var s=this.a +return s.gC(s)}} +A.dh.prototype={ +$2(a,b){var s=this.a.$ti +this.b.$2(s.y[2].a(a),s.y[3].a(b))}, +$S(){return this.a.$ti.i("~(1,2)")}} +A.bo.prototype={ +h(a){return"LateInitializationError: "+this.a}} +A.aQ.prototype={ +gk(a){return this.a.length}, +n(a,b){return this.a.charCodeAt(b)}} +A.dK.prototype={} +A.h.prototype={} +A.q.prototype={ +gq(a){var s=this +return new A.F(s,s.gk(s),A.u(s).i("F"))}, +gC(a){return this.gk(this)===0}, +t(a,b){var s,r=this,q=r.gk(r) +for(s=0;ss)throw A.a(A.A(r,0,s,"start",null))}}, +gca(){var s=J.Z(this.a),r=this.c +if(r==null||r>s)return s +return r}, +gcm(){var s=J.Z(this.a),r=this.b +if(r>s)return s +return r}, +gk(a){var s,r=J.Z(this.a),q=this.b +if(q>=r)return 0 +s=this.c +if(s==null||s>=r)return r-q +return s-q}, +D(a,b){var s=this,r=s.gcm()+b +if(b<0||r>=s.gca())throw A.a(A.eR(b,s.gk(0),s,"index")) +return J.df(s.a,r)}, +Y(a,b){var s,r,q=this +A.H(b,"count") +s=q.b+b +r=q.c +if(r!=null&&s>=r)return new A.bb(q.$ti.i("bb<1>")) +return A.a1(q.a,s,r,q.$ti.c)}, +a8(a,b){var s,r,q,p=this +A.H(b,"count") +s=p.c +r=p.b +if(s==null)return A.a1(p.a,r,B.c.bk(r,b),p.$ti.c) +else{q=B.c.bk(r,b) +if(s=o){r.d=null +return!1}r.d=p.D(q,s);++r.c +return!0}} +A.Q.prototype={ +gq(a){return new A.cq(J.Y(this.a),this.b,A.u(this).i("cq<1,2>"))}, +gk(a){return J.Z(this.a)}, +gC(a){return J.fw(this.a)}, +D(a,b){return this.b.$1(J.df(this.a,b))}} +A.b9.prototype={$ih:1} +A.cq.prototype={ +l(){var s=this,r=s.b +if(r.l()){s.a=s.c.$1(r.gm()) +return!0}s.a=null +return!1}, +gm(){var s=this.a +return s==null?this.$ti.y[1].a(s):s}} +A.m.prototype={ +gk(a){return J.Z(this.a)}, +D(a,b){return this.b.$1(J.df(this.a,b))}} +A.E.prototype={ +gq(a){return new A.bF(J.Y(this.a),this.b)}} +A.bF.prototype={ +l(){var s,r +for(s=this.a,r=this.b;s.l();)if(r.$1(s.gm()))return!0 +return!1}, +gm(){return this.a.gm()}} +A.bd.prototype={ +gq(a){return new A.cb(J.Y(this.a),this.b,B.q,this.$ti.i("cb<1,2>"))}} +A.cb.prototype={ +gm(){var s=this.d +return s==null?this.$ti.y[1].a(s):s}, +l(){var s,r,q=this,p=q.c +if(p==null)return!1 +for(s=q.a,r=q.b;!p.l();){q.d=null +if(s.l()){q.c=null +p=J.Y(r.$1(s.gm())) +q.c=p}else return!1}q.d=q.c.gm() +return!0}} +A.aG.prototype={ +gq(a){var s=this.a +return new A.cR(s.gq(s),this.b,A.u(this).i("cR<1>"))}} +A.ba.prototype={ +gk(a){var s=this.a,r=s.gk(s) +s=this.b +if(r>s)return s +return r}, +$ih:1} +A.cR.prototype={ +l(){if(--this.b>=0)return this.a.l() +this.b=-1 +return!1}, +gm(){if(this.b<0){this.$ti.c.a(null) +return null}return this.a.gm()}} +A.ab.prototype={ +Y(a,b){A.aO(b,"count") +A.H(b,"count") +return new A.ab(this.a,this.b+b,A.u(this).i("ab<1>"))}, +gq(a){var s=this.a +return new A.cK(s.gq(s),this.b)}} +A.aR.prototype={ +gk(a){var s=this.a,r=s.gk(s)-this.b +if(r>=0)return r +return 0}, +Y(a,b){A.aO(b,"count") +A.H(b,"count") +return new A.aR(this.a,this.b+b,this.$ti)}, +$ih:1} +A.cK.prototype={ +l(){var s,r +for(s=this.a,r=0;r"))}} +A.cZ.prototype={ +l(){var s,r +for(s=this.a,r=this.$ti.c;s.l();)if(r.b(s.gm()))return!0 +return!1}, +gm(){return this.$ti.c.a(this.a.gm())}} +A.bu.prototype={ +gbq(){var s,r,q +for(s=this.a,r=s.$ti,s=new A.F(s,s.gk(0),r.i("F")),r=r.i("q.E");s.l();){q=s.d +if(q==null)q=r.a(q) +if(q!=null)return q}return null}, +gC(a){return this.gbq()==null}, +gab(a){return this.gbq()!=null}, +gq(a){var s=this.a +return new A.cD(new A.F(s,s.gk(0),s.$ti.i("F")))}} +A.cD.prototype={ +l(){var s,r,q +this.b=null +for(s=this.a,r=s.$ti.c;s.l();){q=s.d +if(q==null)q=r.a(q) +if(q!=null){this.b=q +return!0}}return!1}, +gm(){var s=this.b +return s==null?A.a3(A.bh()):s}} +A.be.prototype={} +A.cU.prototype={} +A.aX.prototype={} +A.aB.prototype={ +gk(a){return J.Z(this.a)}, +D(a,b){var s=this.a,r=J.a8(s) +return r.D(s,r.gk(s)-1-b)}} +A.bU.prototype={} +A.dz.prototype={ +K(a,b){if(b==null)return!1 +return b instanceof A.bg&&this.a.K(0,b.a)&&A.fi(this)===A.fi(b)}, +gB(a){return A.fO(this.a,A.fi(this),B.k)}, +h(a){var s=B.b.a_([A.ag(this.$ti.c)],", ") +return this.a.h(0)+" with "+("<"+s+">")}} +A.bg.prototype={ +$2(a,b){return this.a.$1$2(a,b,this.$ti.y[0])}, +$S(){return A.l2(A.ex(this.a),this.$ti)}} +A.e2.prototype={ +W(a){var s,r,q=this,p=new RegExp(q.a).exec(a) +if(p==null)return null +s=Object.create(null) +r=q.b +if(r!==-1)s.arguments=p[r+1] +r=q.c +if(r!==-1)s.argumentsExpr=p[r+1] +r=q.d +if(r!==-1)s.expr=p[r+1] +r=q.e +if(r!==-1)s.method=p[r+1] +r=q.f +if(r!==-1)s.receiver=p[r+1] +return s}} +A.bw.prototype={ +h(a){return"Null check operator used on a null value"}} +A.ci.prototype={ +h(a){var s,r=this,q="NoSuchMethodError: method not found: '",p=r.b +if(p==null)return"NoSuchMethodError: "+r.a +s=r.c +if(s==null)return q+p+"' ("+r.a+")" +return q+p+"' on '"+s+"' ("+r.a+")"}} +A.cT.prototype={ +h(a){var s=this.a +return s.length===0?"Error":"Error: "+s}} +A.cE.prototype={ +h(a){return"Throw of null ('"+(this.a===null?"null":"undefined")+"' from JavaScript)"}, +$ibc:1} +A.at.prototype={ +h(a){var s=this.constructor,r=s==null?null:s.name +return"Closure '"+A.i3(r==null?"unknown":r)+"'"}, +gcP(){return this}, +$C:"$1", +$R:1, +$D:null} +A.dp.prototype={$C:"$0",$R:0} +A.dq.prototype={$C:"$2",$R:2} +A.dT.prototype={} +A.dR.prototype={ +h(a){var s=this.$static_name +if(s==null)return"Closure of unknown static method" +return"Closure '"+A.i3(s)+"'"}} +A.b8.prototype={ +K(a,b){if(b==null)return!1 +if(this===b)return!0 +if(!(b instanceof A.b8))return!1 +return this.$_target===b.$_target&&this.a===b.a}, +gB(a){return(A.hY(this.a)^A.cH(this.$_target))>>>0}, +h(a){return"Closure '"+this.$_name+"' of "+("Instance of '"+A.dJ(this.a)+"'")}} +A.d1.prototype={ +h(a){return"Reading static variable '"+this.a+"' during its initialization"}} +A.cJ.prototype={ +h(a){return"RuntimeError: "+this.a}} +A.aw.prototype={ +gk(a){return this.a}, +gC(a){return this.a===0}, +ga0(){return new A.ay(this,this.$ti.i("ay<1>"))}, +O(a){var s=this.b +if(s==null)return!1 +return s[a]!=null}, +n(a,b){var s,r,q,p,o=null +if(typeof b=="string"){s=this.b +if(s==null)return o +r=s[b] +q=r==null?o:r.b +return q}else if(typeof b=="number"&&(b&0x3fffffff)===b){p=this.c +if(p==null)return o +r=p[b] +q=r==null?o:r.b +return q}else return this.cE(b)}, +cE(a){var s,r,q=this.d +if(q==null)return null +s=q[J.ap(a)&1073741823] +r=this.bH(s,a) +if(r<0)return null +return s[r].b}, +N(a,b,c){var s,r,q,p,o,n,m=this +if(typeof b=="string"){s=m.b +m.bo(s==null?m.b=m.aU():s,b,c)}else if(typeof b=="number"&&(b&0x3fffffff)===b){r=m.c +m.bo(r==null?m.c=m.aU():r,b,c)}else{q=m.d +if(q==null)q=m.d=m.aU() +p=J.ap(b)&1073741823 +o=q[p] +if(o==null)q[p]=[m.aV(b,c)] +else{n=m.bH(o,b) +if(n>=0)o[n].b=c +else o.push(m.aV(b,c))}}}, +Z(a,b){var s=this,r=s.e,q=s.r +for(;r!=null;){b.$2(r.a,r.b) +if(q!==s.r)throw A.a(A.N(s)) +r=r.c}}, +bo(a,b,c){var s=a[b] +if(s==null)a[b]=this.aV(b,c) +else s.b=c}, +aV(a,b){var s=this,r=new A.dC(a,b) +if(s.e==null)s.e=s.f=r +else s.f=s.f.c=r;++s.a +s.r=s.r+1&1073741823 +return r}, +bH(a,b){var s,r +if(a==null)return-1 +s=a.length +for(r=0;r"]=s +delete s[""] +return s}} +A.dC.prototype={} +A.ay.prototype={ +gk(a){return this.a.a}, +gC(a){return this.a.a===0}, +gq(a){var s=this.a +return new A.cp(s,s.r,s.e)}, +t(a,b){return this.a.O(b)}} +A.cp.prototype={ +gm(){return this.d}, +l(){var s,r=this,q=r.a +if(r.b!==q.r)throw A.a(A.N(q)) +s=r.c +if(s==null){r.d=null +return!1}else{r.d=s.a +r.c=s.c +return!0}}} +A.bq.prototype={ +gk(a){return this.a.a}, +gC(a){return this.a.a===0}, +gq(a){var s=this.a +return new A.bp(s,s.r,s.e)}} +A.bp.prototype={ +gm(){return this.d}, +l(){var s,r=this,q=r.a +if(r.b!==q.r)throw A.a(A.N(q)) +s=r.c +if(s==null){r.d=null +return!1}else{r.d=s.b +r.c=s.c +return!0}}} +A.eC.prototype={ +$1(a){return this.a(a)}, +$S:4} +A.eD.prototype={ +$2(a,b){return this.a(a,b)}, +$S:11} +A.eE.prototype={ +$1(a){return this.a(a)}, +$S:12} +A.av.prototype={ +h(a){return"RegExp/"+this.a+"/"+this.b.flags}, +gbv(){var s=this,r=s.c +if(r!=null)return r +r=s.b +return s.c=A.eS(s.a,r.multiline,!r.ignoreCase,r.unicode,r.dotAll,!0)}, +gbu(){var s=this,r=s.d +if(r!=null)return r +r=s.b +return s.d=A.eS(s.a+"|()",r.multiline,!r.ignoreCase,r.unicode,r.dotAll,!0)}, +U(a){var s=this.b.exec(a) +if(s==null)return null +return new A.aY(s)}, +aD(a,b,c){var s=b.length +if(c>s)throw A.a(A.A(c,0,s,null,null)) +return new A.d_(this,b,c)}, +aC(a,b){return this.aD(0,b,0)}, +bp(a,b){var s,r=this.gbv() +r.lastIndex=b +s=r.exec(a) +if(s==null)return null +return new A.aY(s)}, +cb(a,b){var s,r=this.gbu() +r.lastIndex=b +s=r.exec(a) +if(s==null)return null +if(s.pop()!=null)return null +return new A.aY(s)}, +bN(a,b,c){if(c<0||c>b.length)throw A.a(A.A(c,0,b.length,null,null)) +return this.cb(b,c)}} +A.aY.prototype={ +gJ(){return this.b.index}, +gP(){var s=this.b +return s.index+s[0].length}, +a1(a){var s,r=this.b.groups +if(r!=null){s=r[a] +if(s!=null||a in r)return s}throw A.a(A.bZ(a,"name","Not a capture group name"))}, +$iaz:1, +$icI:1} +A.d_.prototype={ +gq(a){return new A.d0(this.a,this.b,this.c)}} +A.d0.prototype={ +gm(){var s=this.d +return s==null?t.d.a(s):s}, +l(){var s,r,q,p,o,n,m=this,l=m.b +if(l==null)return!1 +s=m.c +r=l.length +if(s<=r){q=m.a +p=q.bp(l,s) +if(p!=null){m.d=p +o=p.gP() +if(p.b.index===o){s=!1 +if(q.b.unicode){q=m.c +n=q+1 +if(n=55296&&r<=56319){s=l.charCodeAt(n) +s=s>=56320&&s<=57343}}}o=(s?o+1:o)+1}m.c=o +return!0}}m.b=m.d=null +return!1}} +A.bB.prototype={ +gP(){return this.a+this.c.length}, +$iaz:1, +gJ(){return this.a}} +A.d7.prototype={ +gq(a){return new A.ef(this.a,this.b,this.c)}} +A.ef.prototype={ +l(){var s,r,q=this,p=q.c,o=q.b,n=o.length,m=q.a,l=m.length +if(p+n>l){q.d=null +return!1}s=m.indexOf(o,p) +if(s<0){q.c=l+1 +q.d=null +return!1}r=s+n +q.d=new A.bB(s,o) +q.c=r===q.c?r+1:r +return!0}, +gm(){var s=this.d +s.toString +return s}} +A.ct.prototype={ +gG(a){return B.V}, +$in:1} +A.cA.prototype={} +A.cu.prototype={ +gG(a){return B.W}, +$in:1} +A.aT.prototype={ +gk(a){return a.length}, +$iP:1} +A.br.prototype={ +n(a,b){A.aJ(b,a,a.length) +return a[b]}, +$ih:1, +$ii:1} +A.bs.prototype={$ih:1,$ii:1} +A.cv.prototype={ +gG(a){return B.X}, +$in:1} +A.cw.prototype={ +gG(a){return B.Y}, +$in:1} +A.cx.prototype={ +gG(a){return B.Z}, +n(a,b){A.aJ(b,a,a.length) +return a[b]}, +$in:1} +A.cy.prototype={ +gG(a){return B.a_}, +n(a,b){A.aJ(b,a,a.length) +return a[b]}, +$in:1} +A.cz.prototype={ +gG(a){return B.a0}, +n(a,b){A.aJ(b,a,a.length) +return a[b]}, +$in:1} +A.cB.prototype={ +gG(a){return B.a2}, +n(a,b){A.aJ(b,a,a.length) +return a[b]}, +$in:1} +A.cC.prototype={ +gG(a){return B.a3}, +n(a,b){A.aJ(b,a,a.length) +return a[b]}, +$in:1} +A.bt.prototype={ +gG(a){return B.a4}, +gk(a){return a.length}, +n(a,b){A.aJ(b,a,a.length) +return a[b]}, +$in:1} +A.aU.prototype={ +gG(a){return B.a5}, +gk(a){return a.length}, +n(a,b){A.aJ(b,a,a.length) +return a[b]}, +$in:1, +$iaU:1} +A.bJ.prototype={} +A.bK.prototype={} +A.bL.prototype={} +A.bM.prototype={} +A.T.prototype={ +i(a){return A.eh(v.typeUniverse,this,a)}, +L(a){return A.k0(v.typeUniverse,this,a)}} +A.d4.prototype={} +A.eg.prototype={ +h(a){return A.M(this.a,null)}} +A.d3.prototype={ +h(a){return this.a}} +A.bN.prototype={} +A.j.prototype={ +gq(a){return new A.F(a,this.gk(a),A.W(a).i("F"))}, +D(a,b){return this.n(a,b)}, +gC(a){return this.gk(a)===0}, +gab(a){return!this.gC(a)}, +t(a,b){var s,r=this.gk(a) +for(s=0;s").L(c).i("m<1,2>"))}, +Y(a,b){return A.a1(a,b,null,A.W(a).i("j.E"))}, +a8(a,b){return A.a1(a,0,A.fd(b,"count",t.S),A.W(a).i("j.E"))}, +a2(a,b){var s,r,q,p,o=this +if(o.gC(a)){s=J.fJ(0,A.W(a).i("j.E")) +return s}r=o.n(a,0) +q=A.a7(o.gk(a),r,!0,A.W(a).i("j.E")) +for(p=1;p").L(b).i("a9<1,2>"))}, +h(a){return A.fH(a,"[","]")}, +$ih:1, +$ii:1} +A.D.prototype={ +bD(a,b,c){return new A.ar(this,A.u(this).i("@").L(b).L(c).i("ar<1,2,3,4>"))}, +Z(a,b){var s,r,q,p +for(s=this.ga0(),s=s.gq(s),r=A.u(this).i("D.V");s.l();){q=s.gm() +p=this.n(0,q) +b.$2(q,p==null?r.a(p):p)}}, +O(a){return this.ga0().t(0,a)}, +gk(a){var s=this.ga0() +return s.gk(s)}, +gC(a){var s=this.ga0() +return s.gC(s)}, +h(a){return A.fN(this)}, +$iS:1} +A.dF.prototype={ +$2(a,b){var s,r=this.a +if(!r.a)this.b.a+=", " +r.a=!1 +r=this.b +s=A.f(a) +s=r.a+=s +r.a=s+": " +s=A.f(b) +r.a+=s}, +$S:5} +A.d5.prototype={ +n(a,b){var s,r=this.b +if(r==null)return this.c.n(0,b) +else if(typeof b!="string")return null +else{s=r[b] +return typeof s=="undefined"?this.ci(b):s}}, +gk(a){return this.b==null?this.c.a:this.aj().length}, +gC(a){return this.gk(0)===0}, +ga0(){if(this.b==null){var s=this.c +return new A.ay(s,s.$ti.i("ay<1>"))}return new A.d6(this)}, +N(a,b,c){var s,r,q=this +if(q.b==null)q.c.N(0,b,c) +else if(q.O(b)){s=q.b +s[b]=c +r=q.a +if(r==null?s!=null:r!==s)r[b]=null}else q.co().N(0,b,c)}, +O(a){if(this.b==null)return this.c.O(a) +return Object.prototype.hasOwnProperty.call(this.a,a)}, +Z(a,b){var s,r,q,p,o=this +if(o.b==null)return o.c.Z(0,b) +s=o.aj() +for(r=0;r"))}return s}, +t(a,b){return this.a.O(b)}} +A.eo.prototype={ +$0(){var s,r +try{s=new TextDecoder("utf-8",{fatal:true}) +return s}catch(r){}return null}, +$S:6} +A.en.prototype={ +$0(){var s,r +try{s=new TextDecoder("utf-8",{fatal:false}) +return s}catch(r){}return null}, +$S:6} +A.c_.prototype={ +cv(a){return B.w.an(a)}} +A.d8.prototype={ +an(a){var s,r,q,p=A.aV(0,null,a.length),o=new Uint8Array(p) +for(s=~this.a,r=0;r=0){g=u.n.charCodeAt(f) +if(g===k)continue +k=g}else{if(f===-1){if(o<0){e=p==null?null:p.a.length +if(e==null)e=0 +o=e+(r-q) +n=r}++m +if(k===61)continue}k=g}if(f!==-2){if(p==null){p=new A.B("") +e=p}else e=p +e.a+=B.a.j(a0,q,r) +d=A.G(k) +e.a+=d +q=l +continue}}throw A.a(A.y("Invalid base64 data",a0,r))}if(p!=null){e=B.a.j(a0,q,a2) +e=p.a+=e +d=e.length +if(o>=0)A.fz(a0,n,a2,o,m,d) +else{c=B.c.aP(d-1,4)+1 +if(c===1)throw A.a(A.y(a,a0,a2)) +for(;c<4;){e+="=" +p.a=e;++c}}e=p.a +return B.a.X(a0,a1,a2,e.charCodeAt(0)==0?e:e)}b=a2-a1 +if(o>=0)A.fz(a0,n,a2,o,m,b) +else{c=B.c.aP(b,4) +if(c===1)throw A.a(A.y(a,a0,a2)) +if(c>1)a0=B.a.X(a0,a2,a2,c===2?"==":"=")}return a0}} +A.c4.prototype={} +A.ai.prototype={} +A.a5.prototype={} +A.c9.prototype={} +A.bn.prototype={ +h(a){var s=A.ca(this.a) +return(this.b!=null?"Converting object to an encodable object failed:":"Converting object did not return an encodable object:")+" "+s}} +A.ck.prototype={ +h(a){return"Cyclic error in JSON stringify"}} +A.cj.prototype={ +bE(a,b){var s=A.kF(a,this.gct().a) +return s}, +cw(a,b){var s=A.jL(a,this.gcz().b,null) +return s}, +gcz(){return B.T}, +gct(){return B.S}} +A.cm.prototype={} +A.cl.prototype={} +A.ec.prototype={ +bW(a){var s,r,q,p,o,n=this,m=a.length +for(s=0,r=0;r92){if(q>=55296){p=q&64512 +if(p===55296){o=r+1 +o=!(o=0&&(a.charCodeAt(p)&64512)===55296)}else p=!1 +else p=!0 +if(p){if(r>s)n.aO(a,s,r) +s=r+1 +n.F(92) +n.F(117) +n.F(100) +p=q>>>8&15 +n.F(p<10?48+p:87+p) +p=q>>>4&15 +n.F(p<10?48+p:87+p) +p=q&15 +n.F(p<10?48+p:87+p)}}continue}if(q<32){if(r>s)n.aO(a,s,r) +s=r+1 +n.F(92) +switch(q){case 8:n.F(98) +break +case 9:n.F(116) +break +case 10:n.F(110) +break +case 12:n.F(102) +break +case 13:n.F(114) +break +default:n.F(117) +n.F(48) +n.F(48) +p=q>>>4&15 +n.F(p<10?48+p:87+p) +p=q&15 +n.F(p<10?48+p:87+p) +break}}else if(q===34||q===92){if(r>s)n.aO(a,s,r) +s=r+1 +n.F(92) +n.F(q)}}if(s===0)n.M(a) +else if(s>>18|240 +q=o.b=p+1 +r[p]=s>>>12&63|128 +p=o.b=q+1 +r[q]=s>>>6&63|128 +o.b=p+1 +r[p]=s&63|128 +return!0}else{o.aY() +return!1}}, +cc(a,b,c){var s,r,q,p,o,n,m,l,k=this +if(b!==c&&(a.charCodeAt(c-1)&64512)===55296)--c +for(s=k.c,r=s.$flags|0,q=s.length,p=b;p=q)break +k.b=n+1 +r&2&&A.X(s) +s[n]=o}else{n=o&64512 +if(n===55296){if(k.b+4>q)break +m=p+1 +if(k.cp(o,a.charCodeAt(m)))p=m}else if(n===56320){if(k.b+3>q)break +k.aY()}else if(o<=2047){n=k.b +l=n+1 +if(l>=q)break +k.b=l +r&2&&A.X(s) +s[n]=o>>>6|192 +k.b=l+1 +s[l]=o&63|128}else{n=k.b +if(n+2>=q)break +l=k.b=n+1 +r&2&&A.X(s) +s[n]=o>>>12|224 +n=k.b=l+1 +s[l]=o>>>6&63|128 +k.b=n+1 +s[n]=o&63|128}}}return p}} +A.cX.prototype={ +an(a){return new A.em(this.a).c8(a,0,null,!0)}} +A.em.prototype={ +c8(a,b,c,d){var s,r,q,p,o,n,m=this,l=A.aV(b,c,J.Z(a)) +if(b===l)return"" +if(a instanceof Uint8Array){s=a +r=s +q=0}else{r=A.kf(a,b,l) +l-=b +q=b +b=0}if(l-b>=15){p=m.a +o=A.ke(p,r,b,l) +if(o!=null){if(!p)return o +if(o.indexOf("\ufffd")<0)return o}}o=m.aR(r,b,l,!0) +p=m.b +if((p&1)!==0){n=A.kg(p) +m.b=0 +throw A.a(A.y(n,a,q+m.c))}return o}, +aR(a,b,c,d){var s,r,q=this +if(c-b>1000){s=B.c.by(b+c,2) +r=q.aR(a,b,s,!1) +if((q.b&1)!==0)return r +return r+q.aR(a,s,c,d)}return q.cs(a,b,c,d)}, +cs(a,b,c,d){var s,r,q,p,o,n,m,l=this,k=65533,j=l.b,i=l.c,h=new A.B(""),g=b+1,f=a[b] +$label0$0:for(s=l.a;!0;){for(;!0;g=p){r="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHJEEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKCCCCCCCCCCCCDCLONNNMEEEEEEEEEEE".charCodeAt(f)&31 +i=j<=32?f&61694>>>r:(f&63|i<<6)>>>0 +j=" \x000:XECCCCCN:lDb \x000:XECCCCCNvlDb \x000:XECCCCCN:lDb AAAAA\x00\x00\x00\x00\x00AAAAA00000AAAAA:::::AAAAAGG000AAAAA00KKKAAAAAG::::AAAAA:IIIIAAAAA000\x800AAAAA\x00\x00\x00\x00 AAAAA".charCodeAt(j+r) +if(j===0){q=A.G(i) +h.a+=q +if(g===c)break $label0$0 +break}else if((j&1)!==0){if(s)switch(j){case 69:case 67:q=A.G(k) +h.a+=q +break +case 65:q=A.G(k) +h.a+=q;--g +break +default:q=A.G(k) +q=h.a+=q +h.a=q+A.G(k) +break}else{l.b=j +l.c=g-1 +return""}j=0}if(g===c)break $label0$0 +p=g+1 +f=a[g]}p=g+1 +f=a[g] +if(f<128){while(!0){if(!(p=128){o=n-1 +p=n +break}p=n}if(o-g<20)for(m=g;m32)if(s){s=A.G(k) +h.a+=s}else{l.b=77 +l.c=c +return""}l.b=j +l.c=i +s=h.a +return s.charCodeAt(0)==0?s:s}} +A.p.prototype={} +A.c1.prototype={ +h(a){var s=this.a +if(s!=null)return"Assertion failed: "+A.ca(s) +return"Assertion failed"}} +A.bC.prototype={} +A.a_.prototype={ +gaT(){return"Invalid argument"+(!this.a?"(s)":"")}, +gaS(){return""}, +h(a){var s=this,r=s.c,q=r==null?"":" ("+r+")",p=s.d,o=p==null?"":": "+A.f(p),n=s.gaT()+q+o +if(!s.a)return n +return n+s.gaS()+": "+A.ca(s.gb9())}, +gb9(){return this.b}} +A.aa.prototype={ +gb9(){return this.b}, +gaT(){return"RangeError"}, +gaS(){var s,r=this.e,q=this.f +if(r==null)s=q!=null?": Not less than or equal to "+A.f(q):"" +else if(q==null)s=": Not greater than or equal to "+A.f(r) +else if(q>r)s=": Not in inclusive range "+A.f(r)+".."+A.f(q) +else s=qe.length +else s=!1 +if(s)f=null +if(f==null){if(e.length>78)e=B.a.j(e,0,75)+"..." +return g+"\n"+e}for(r=1,q=0,p=!1,o=0;o1?g+(" (at line "+r+", character "+(f-q+1)+")\n"):g+(" (at character "+(f+1)+")\n") +m=e.length +for(o=f;o78){k="..." +if(f-q<75){j=q+75 +i=q}else{if(m-f<75){i=m-75 +j=m +k=""}else{i=f-36 +j=f+36}l="..."}}else{j=m +i=q +k=""}return g+l+B.a.j(e,i,j)+k+"\n"+B.a.bl(" ",f-i+l.length)+"^\n"}else return f!=null?g+(" (at offset "+A.f(f)+")"):g}, +$ibc:1} +A.d.prototype={ +al(a,b){return A.dg(this,A.u(this).i("d.E"),b)}, +bU(a,b){return new A.E(this,b,A.u(this).i("E"))}, +t(a,b){var s +for(s=this.gq(this);s.l();)if(J.L(s.gm(),b))return!0 +return!1}, +a2(a,b){return A.aS(this,b,A.u(this).i("d.E"))}, +ag(a){return this.a2(0,!0)}, +gk(a){var s,r=this.gq(this) +for(s=0;r.l();)++s +return s}, +gC(a){return!this.gq(this).l()}, +gab(a){return!this.gC(this)}, +a8(a,b){return A.h0(this,b,A.u(this).i("d.E"))}, +Y(a,b){return A.js(this,b,A.u(this).i("d.E"))}, +bZ(a,b){return new A.by(this,b,A.u(this).i("by"))}, +gaF(a){var s=this.gq(this) +if(!s.l())throw A.a(A.bh()) +return s.gm()}, +gI(a){var s,r=this.gq(this) +if(!r.l())throw A.a(A.bh()) +do s=r.gm() +while(r.l()) +return s}, +D(a,b){var s,r +A.H(b,"index") +s=this.gq(this) +for(r=b;s.l();){if(r===0)return s.gm();--r}throw A.a(A.eR(b,b-r,this,"index"))}, +h(a){return A.jf(this,"(",")")}} +A.bv.prototype={ +gB(a){return A.o.prototype.gB.call(this,0)}, +h(a){return"null"}} +A.o.prototype={$io:1, +K(a,b){return this===b}, +gB(a){return A.cH(this)}, +h(a){return"Instance of '"+A.dJ(this)+"'"}, +gG(a){return A.b4(this)}, +toString(){return this.h(this)}} +A.an.prototype={ +h(a){return this.a}} +A.B.prototype={ +gk(a){return this.a.length}, +h(a){var s=this.a +return s.charCodeAt(0)==0?s:s}} +A.e4.prototype={ +$2(a,b){throw A.a(A.y("Illegal IPv4 address, "+a,this.a,b))}, +$S:13} +A.e5.prototype={ +$2(a,b){throw A.a(A.y("Illegal IPv6 address, "+a,this.a,b))}, +$S:14} +A.e6.prototype={ +$2(a,b){var s +if(b-a>4)this.a.$2("an IPv6 part can only contain a maximum of 4 hex digits",a) +s=A.K(B.a.j(this.b,a,b),16) +if(s<0||s>65535)this.a.$2("each part must be in the range of `0x0..0xFFFF`",a) +return s}, +$S:15} +A.bR.prototype={ +gaX(){var s,r,q,p,o=this,n=o.w +if(n===$){s=o.a +r=s.length!==0?""+s+":":"" +q=o.c +p=q==null +if(!p||s==="file"){s=r+"//" +r=o.b +if(r.length!==0)s=s+r+"@" +if(!p)s+=q +r=o.d +if(r!=null)s=s+":"+A.f(r)}else s=r +s+=o.e +r=o.f +if(r!=null)s=s+"?"+r +r=o.r +if(r!=null)s=s+"#"+r +n!==$&&A.eL() +n=o.w=s.charCodeAt(0)==0?s:s}return n}, +gae(){var s,r,q=this,p=q.x +if(p===$){s=q.e +if(s.length!==0&&s.charCodeAt(0)===47)s=B.a.A(s,1) +r=s.length===0?B.u:A.a0(new A.m(A.e(s.split("/"),t.s),A.kP(),t.r),t.N) +q.x!==$&&A.eL() +p=q.x=r}return p}, +gB(a){var s,r=this,q=r.y +if(q===$){s=B.a.gB(r.gaX()) +r.y!==$&&A.eL() +r.y=s +q=s}return q}, +gbj(){return this.b}, +ga6(){var s=this.c +if(s==null)return"" +if(B.a.p(s,"["))return B.a.j(s,1,s.length-1) +return s}, +gau(){var s=this.d +return s==null?A.hm(this.a):s}, +gav(){var s=this.f +return s==null?"":s}, +gaG(){var s=this.r +return s==null?"":s}, +cF(a){var s=this.a +if(a.length!==s.length)return!1 +return A.kk(a,s,0)>=0}, +bQ(a){var s,r,q,p,o,n,m,l=this +a=A.el(a,0,a.length) +s=a==="file" +r=l.b +q=l.d +if(a!==l.a)q=A.ek(q,a) +p=l.c +if(!(p!=null))p=r.length!==0||q!=null||s?"":null +o=l.e +if(!s)n=p!=null&&o.length!==0 +else n=!0 +if(n&&!B.a.p(o,"/"))o="/"+o +m=o +return A.bS(a,r,p,q,m,l.f,l.r)}, +bt(a,b){var s,r,q,p,o,n,m +for(s=0,r=0;B.a.u(b,"../",r);){r+=3;++s}q=B.a.bK(a,"/") +while(!0){if(!(q>0&&s>0))break +p=B.a.bL(a,"/",q-1) +if(p<0)break +o=q-p +n=o!==2 +m=!1 +if(!n||o===3)if(a.charCodeAt(p+1)===46)n=!n||a.charCodeAt(p+2)===46 +else n=m +else n=m +if(n)break;--s +q=p}return B.a.X(a,q+1,null,B.a.A(b,r-3*s))}, +bg(a){return this.aw(A.I(a))}, +aw(a){var s,r,q,p,o,n,m,l,k,j,i,h=this +if(a.gH().length!==0)return a +else{s=h.a +if(a.gb3()){r=a.bQ(s) +return r}else{q=h.b +p=h.c +o=h.d +n=h.e +if(a.gbG())m=a.gaH()?a.gav():h.f +else{l=A.kc(h,n) +if(l>0){k=B.a.j(n,0,l) +n=a.gb2()?k+A.aI(a.gT()):k+A.aI(h.bt(B.a.A(n,k.length),a.gT()))}else if(a.gb2())n=A.aI(a.gT()) +else if(n.length===0)if(p==null)n=s.length===0?a.gT():A.aI(a.gT()) +else n=A.aI("/"+a.gT()) +else{j=h.bt(n,a.gT()) +r=s.length===0 +if(!r||p!=null||B.a.p(n,"/"))n=A.aI(j) +else n=A.f6(j,!r||p!=null)}m=a.gaH()?a.gav():null}}}i=a.gb4()?a.gaG():null +return A.bS(s,q,p,o,n,m,i)}, +gb3(){return this.c!=null}, +gaH(){return this.f!=null}, +gb4(){return this.r!=null}, +gbG(){return this.e.length===0}, +gb2(){return B.a.p(this.e,"/")}, +bh(){var s,r=this,q=r.a +if(q!==""&&q!=="file")throw A.a(A.U("Cannot extract a file path from a "+q+" URI")) +q=r.f +if((q==null?"":q)!=="")throw A.a(A.U(u.y)) +q=r.r +if((q==null?"":q)!=="")throw A.a(A.U(u.l)) +if(r.c!=null&&r.ga6()!=="")A.a3(A.U(u.j)) +s=r.gae() +A.k4(s,!1) +q=A.aE(B.a.p(r.e,"/")?""+"/":"",s,"/") +q=q.charCodeAt(0)==0?q:q +return q}, +h(a){return this.gaX()}, +K(a,b){var s,r,q,p=this +if(b==null)return!1 +if(p===b)return!0 +s=!1 +if(t.R.b(b))if(p.a===b.gH())if(p.c!=null===b.gb3())if(p.b===b.gbj())if(p.ga6()===b.ga6())if(p.gau()===b.gau())if(p.e===b.gT()){r=p.f +q=r==null +if(!q===b.gaH()){if(q)r="" +if(r===b.gav()){r=p.r +q=r==null +if(!q===b.gb4()){s=q?"":r +s=s===b.gaG()}}}}return s}, +$ibE:1, +gH(){return this.a}, +gT(){return this.e}} +A.ej.prototype={ +$1(a){return A.kd(64,a,B.f,!1)}, +$S:1} +A.cV.prototype={ +ga5(){var s,r,q,p,o=this,n=null,m=o.c +if(m==null){m=o.a +s=o.b[0]+1 +r=B.a.a4(m,"?",s) +q=m.length +if(r>=0){p=A.bT(m,r+1,q,256,!1,!1) +q=r}else p=n +m=o.c=new A.d2("data","",n,n,A.bT(m,s,q,128,!1,!1),p,n)}return m}, +h(a){var s=this.a +return this.b[0]===-1?"data:"+s:s}} +A.V.prototype={ +gb3(){return this.c>0}, +gb5(){return this.c>0&&this.d+1r?B.a.j(this.a,r,s-1):""}, +ga6(){var s=this.c +return s>0?B.a.j(this.a,s,this.d):""}, +gau(){var s,r=this +if(r.gb5())return A.K(B.a.j(r.a,r.d+1,r.e),null) +s=r.b +if(s===4&&B.a.p(r.a,"http"))return 80 +if(s===5&&B.a.p(r.a,"https"))return 443 +return 0}, +gT(){return B.a.j(this.a,this.e,this.f)}, +gav(){var s=this.f,r=this.r +return s=q.length)return s +return new A.V(B.a.j(q,0,r),s.b,s.c,s.d,s.e,s.f,r,s.w)}, +bQ(a){var s,r,q,p,o,n,m,l,k,j,i,h=this,g=null +a=A.el(a,0,a.length) +s=!(h.b===a.length&&B.a.p(h.a,a)) +r=a==="file" +q=h.c +p=q>0?B.a.j(h.a,h.b+3,q):"" +o=h.gb5()?h.gau():g +if(s)o=A.ek(o,a) +q=h.c +if(q>0)n=B.a.j(h.a,q,h.d) +else n=p.length!==0||o!=null||r?"":g +q=h.a +m=h.f +l=B.a.j(q,h.e,m) +if(!r)k=n!=null&&l.length!==0 +else k=!0 +if(k&&!B.a.p(l,"/"))l="/"+l +k=h.r +j=m0)return b +s=b.c +if(s>0){r=a.b +if(r<=0)return b +q=r===4 +if(q&&B.a.p(a.a,"file"))p=b.e!==b.f +else if(q&&B.a.p(a.a,"http"))p=!b.br("80") +else p=!(r===5&&B.a.p(a.a,"https"))||!b.br("443") +if(p){o=r+1 +return new A.V(B.a.j(a.a,0,o)+B.a.A(b.a,c+1),r,s+o,b.d+o,b.e+o,b.f+o,b.r+o,a.w)}else return this.bz().aw(b)}n=b.e +c=b.f +if(n===c){s=b.r +if(c0?l:m +o=k-n +return new A.V(B.a.j(a.a,0,k)+B.a.A(s,n),a.b,a.c,a.d,m,c+o,b.r+o,a.w)}j=a.e +i=a.f +if(j===i&&a.c>0){for(;B.a.u(s,"../",n);)n+=3 +o=j-n+1 +return new A.V(B.a.j(a.a,0,j)+"/"+B.a.A(s,n),a.b,a.c,a.d,j,c+o,b.r+o,a.w)}h=a.a +l=A.hg(this) +if(l>=0)g=l +else for(g=j;B.a.u(h,"../",g);)g+=3 +f=0 +while(!0){e=n+3 +if(!(e<=c&&B.a.u(s,"../",n)))break;++f +n=e}for(d="";i>g;){--i +if(h.charCodeAt(i)===47){if(f===0){d="/" +break}--f +d="/"}}if(i===g&&a.b<=0&&!B.a.u(h,"/",j)){n-=f*3 +d=""}o=i-n+d.length +return new A.V(B.a.j(h,0,i)+d+B.a.A(s,n),a.b,a.c,a.d,j,c+o,b.r+o,a.w)}, +bh(){var s,r=this,q=r.b +if(q>=0){s=!(q===4&&B.a.p(r.a,"file")) +q=s}else q=!1 +if(q)throw A.a(A.U("Cannot extract a file path from a "+r.gH()+" URI")) +q=r.f +s=r.a +if(q0?s.ga6():r,n=s.gb5()?s.gau():r,m=s.a,l=s.f,k=B.a.j(m,s.e,l),j=s.r +l=l0&&!s.S(a) +if(s)return a +s=this.b +return this.bI(0,s==null?A.ff():s,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)}, +a3(a){var s=null +return this.bB(a,s,s,s,s,s,s,s,s,s,s,s,s,s,s)}, +cu(a){var s,r,q=A.aA(a,this.a) +q.aM() +s=q.d +r=s.length +if(r===0){s=q.b +return s==null?".":s}if(r===1){s=q.b +return s==null?".":s}B.b.bf(s) +q.e.pop() +q.aM() +return q.h(0)}, +bI(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){var s=A.e([b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q],t.m) +A.hP("join",s) +return this.bJ(new A.bG(s,t.v))}, +cG(a,b,c){var s=null +return this.bI(0,b,c,s,s,s,s,s,s,s,s,s,s,s,s,s,s)}, +bJ(a){var s,r,q,p,o,n,m,l,k +for(s=J.iT(a,new A.dr()),r=J.Y(s.a),s=new A.bF(r,s.b),q=this.a,p=!1,o=!1,n="";s.l();){m=r.gm() +if(q.S(m)&&o){l=A.aA(m,q) +k=n.charCodeAt(0)==0?n:n +n=B.a.j(k,0,q.af(k,!0)) +l.b=n +if(q.ar(n))l.e[0]=q.ga9() +n=""+l.h(0)}else if(q.E(m)>0){o=!q.S(m) +n=""+m}else{if(!(m.length!==0&&q.b_(m[0])))if(p)n+=q.ga9() +n+=m}p=q.ar(m)}return n.charCodeAt(0)==0?n:n}, +ai(a,b){var s=A.aA(b,this.a),r=s.d,q=A.w(r).i("E<1>") +q=A.aS(new A.E(r,new A.ds(),q),!0,q.i("d.E")) +s.d=q +r=s.b +if(r!=null)B.b.b7(q,0,r) +return s.d}, +bd(a){var s +if(!this.cg(a))return a +s=A.aA(a,this.a) +s.bc() +return s.h(0)}, +cg(a){var s,r,q,p,o,n,m,l,k=this.a,j=k.E(a) +if(j!==0){if(k===$.bY())for(s=0;s0)return o.bd(a) +if(m.E(a)<=0||m.S(a))a=o.a3(a) +if(m.E(a)<=0&&m.E(b)>0)throw A.a(A.fP(n+a+'" from "'+b+'".')) +s=A.aA(b,m) +s.bc() +r=A.aA(a,m) +r.bc() +q=s.d +if(q.length!==0&&q[0]===".")return r.h(0) +q=s.b +p=r.b +if(q!=p)q=q==null||p==null||!m.be(q,p) +else q=!1 +if(q)return r.h(0) +while(!0){q=s.d +if(q.length!==0){p=r.d +q=p.length!==0&&m.be(q[0],p[0])}else q=!1 +if(!q)break +B.b.aL(s.d,0) +B.b.aL(s.e,1) +B.b.aL(r.d,0) +B.b.aL(r.e,1)}q=s.d +p=q.length +if(p!==0&&q[0]==="..")throw A.a(A.fP(n+a+'" from "'+b+'".')) +q=t.N +B.b.b8(r.d,0,A.a7(p,"..",!1,q)) +p=r.e +p[0]="" +B.b.b8(p,1,A.a7(s.d.length,m.ga9(),!1,q)) +m=r.d +q=m.length +if(q===0)return"." +if(q>1&&J.L(B.b.gI(m),".")){B.b.bf(r.d) +m=r.e +m.pop() +m.pop() +m.push("")}r.b="" +r.aM() +return r.h(0)}, +cJ(a){return this.aK(a,null)}, +bs(a,b){var s,r,q,p,o,n,m,l,k=this +a=a +b=b +r=k.a +q=r.E(a)>0 +p=r.E(b)>0 +if(q&&!p){b=k.a3(b) +if(r.S(a))a=k.a3(a)}else if(p&&!q){a=k.a3(a) +if(r.S(b))b=k.a3(b)}else if(p&&q){o=r.S(b) +n=r.S(a) +if(o&&!n)b=k.a3(b) +else if(n&&!o)a=k.a3(a)}m=k.cf(a,b) +if(m!==B.e)return m +s=null +try{s=k.aK(b,a)}catch(l){if(A.b5(l) instanceof A.bx)return B.d +else throw l}if(r.E(s)>0)return B.d +if(J.L(s,"."))return B.p +if(J.L(s,".."))return B.d +return J.Z(s)>=3&&J.iR(s,"..")&&r.v(J.iK(s,2))?B.d:B.h}, +cf(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e=this +if(a===".")a="" +s=e.a +r=s.E(a) +q=s.E(b) +if(r!==q)return B.d +for(p=0;pq.ai(0,s).length?s:r}} +A.dr.prototype={ +$1(a){return a!==""}, +$S:0} +A.ds.prototype={ +$1(a){return a.length!==0}, +$S:0} +A.ew.prototype={ +$1(a){return a==null?"null":'"'+a+'"'}, +$S:16} +A.aZ.prototype={ +h(a){return this.a}} +A.b_.prototype={ +h(a){return this.a}} +A.dA.prototype={ +bX(a){var s=this.E(a) +if(s>0)return B.a.j(a,0,s) +return this.S(a)?a[0]:null}, +bP(a){var s,r=null,q=a.length +if(q===0)return A.z(r,r,r,r) +s=A.eQ(this).ai(0,a) +if(this.v(a.charCodeAt(q-1)))B.b.ak(s,"") +return A.z(r,r,s,r)}, +aE(a,b){return a===b}, +be(a,b){return a===b}} +A.dH.prototype={ +gb6(){var s=this.d +if(s.length!==0)s=J.L(B.b.gI(s),"")||!J.L(B.b.gI(this.e),"") +else s=!1 +return s}, +aM(){var s,r,q=this +while(!0){s=q.d +if(!(s.length!==0&&J.L(B.b.gI(s),"")))break +B.b.bf(q.d) +q.e.pop()}s=q.e +r=s.length +if(r!==0)s[r-1]=""}, +bc(){var s,r,q,p,o,n=this,m=A.e([],t.s) +for(s=n.d,r=s.length,q=0,p=0;p0){s=B.a.a4(a,"\\",s+1) +if(s>0)return s}return r}if(r<3)return 0 +if(!A.hW(a.charCodeAt(0)))return 0 +if(a.charCodeAt(1)!==58)return 0 +r=a.charCodeAt(2) +if(!(r===47||r===92))return 0 +return 3}, +E(a){return this.af(a,!1)}, +S(a){return this.E(a)===1}, +aJ(a){var s,r +if(a.gH()!==""&&a.gH()!=="file")throw A.a(A.C("Uri "+a.h(0)+" must have scheme 'file:'.")) +s=a.gT() +if(a.ga6()===""){if(s.length>=3&&B.a.p(s,"/")&&A.hS(s,1)!=null)s=B.a.bR(s,"/","")}else s="\\\\"+a.ga6()+s +r=A.R(s,"/","\\") +return A.f7(r,0,r.length,B.f,!1)}, +aZ(a){var s,r,q=A.aA(a,this),p=q.b +p.toString +if(B.a.p(p,"\\\\")){s=new A.E(A.e(p.split("\\"),t.s),new A.e9(),t.U) +B.b.b7(q.d,0,s.gI(0)) +if(q.gb6())B.b.ak(q.d,"") +return A.z(s.gaF(0),null,q.d,"file")}else{if(q.d.length===0||q.gb6())B.b.ak(q.d,"") +p=q.d +r=q.b +r.toString +r=A.R(r,"/","") +B.b.b7(p,0,A.R(r,"\\","")) +return A.z(null,null,q.d,"file")}}, +aE(a,b){var s +if(a===b)return!0 +if(a===47)return b===92 +if(a===92)return b===47 +if((a^b)!==32)return!1 +s=a|32 +return s>=97&&s<=122}, +be(a,b){var s,r +if(a===b)return!0 +s=a.length +if(s!==b.length)return!1 +for(r=0;r")),q=this.c,p=this.a,o=this.b,n=t.Y,r=r.i("j.E");s.l();){m=s.d +if(m==null)m=r.a(m) +l=n.a(m.n(0,"offset")) +if(l==null)throw A.a(B.J) +k=A.hB(l.n(0,"line")) +if(k==null)throw A.a(B.L) +j=A.hB(l.n(0,"column")) +if(j==null)throw A.a(B.K) +p.push(k) +o.push(j) +i=A.f8(m.n(0,"url")) +h=n.a(m.n(0,"map")) +m=i!=null +if(m&&h!=null)throw A.a(B.H) +else if(m){m=A.y("section contains refers to "+i+', but no map was given for it. Make sure a map is passed in "otherMaps"',null,null) +throw A.a(m)}else if(h!=null)q.push(A.hZ(h,c,b)) +else throw A.a(B.M)}if(p.length===0)throw A.a(B.N)}, +h(a){var s,r,q,p,o=this,n=A.b4(o).h(0)+" : [" +for(s=o.a,r=o.b,q=o.c,p=0;p") +r=A.eV(new A.bq(s,r),new A.dG(),r.i("d.E"),t.c) +return A.aS(r,!0,A.u(r).i("d.E"))}, +h(a){var s,r +for(s=this.a,s=new A.bp(s,s.r,s.e),r="";s.l();)r+=s.d.h(0) +return r.charCodeAt(0)==0?r:r}, +ah(a,b,c,d){var s,r,q,p,o,n,m,l +d=A.aO(d,"uri") +s=A.e([47,58],t.t) +for(r=d.length,q=this.a,p=!0,o=0;o0 +r=f.d +l=0 +k=0 +j=0 +i=0 +h=0 +g=0 +while(!0){if(!(n.c=a1.length)throw A.a(A.dQ("Invalid source url id. "+A.f(f.e)+", "+l+", "+j)) +q=n.ga7() +if(!(!q.a&&!q.b&&!q.c))throw A.a(f.aW(2,l)) +i+=A.dc(n) +q=n.ga7() +if(!(!q.a&&!q.b&&!q.c))throw A.a(f.aW(3,l)) +h+=A.dc(n) +q=n.ga7() +if(!(!q.a&&!q.b&&!q.c))m.push(new A.ak(k,j,i,h,d)) +else{g+=A.dc(n) +if(g>=a0.length)throw A.a(A.dQ("Invalid name id: "+A.f(f.e)+", "+l+", "+g)) +m.push(new A.ak(k,j,i,h,g))}}if(n.ga7().b)++n.c}}if(m.length!==0)r.push(new A.aH(l,m)) +a4.Z(0,new A.dL(f))}, +az(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5=this,a6=new A.B("") +for(s=a5.d,r=s.length,q=0,p=0,o=0,n=0,m=0,l=0,k=!0,j=0;jq){for(g=q;gthis.a}, +$S:18} +A.dM.prototype={ +$1(a){return a.a>this.a}, +$S:19} +A.aH.prototype={ +h(a){return A.b4(this).h(0)+": "+this.a+" "+A.f(this.b)}} +A.ak.prototype={ +h(a){var s=this +return A.b4(s).h(0)+": ("+s.a+", "+A.f(s.b)+", "+A.f(s.c)+", "+A.f(s.d)+", "+A.f(s.e)+")"}} +A.ee.prototype={ +l(){return++this.c=0&&s0}, +ga7(){if(!this.gcD())return B.a9 +var s=this.a[this.c+1] +if(s===";")return B.ab +if(s===",")return B.aa +return B.a8}, +h(a){var s,r,q,p,o,n=this,m=new A.B("") +for(s=n.a,r=0;r=r||s[n]!==10)o=10}if(o===10)q.push(p+1)}}} +A.cN.prototype={ +bF(a){var s=this.a +if(!s.K(0,a.gR()))throw A.a(A.C('Source URLs "'+s.h(0)+'" and "'+a.gR().h(0)+"\" don't match.")) +return Math.abs(this.b-a.gad())}, +K(a,b){if(b==null)return!1 +return t.h.b(b)&&this.a.K(0,b.gR())&&this.b===b.gad()}, +gB(a){var s=this.a +s=s.gB(s) +return s+this.b}, +h(a){var s=this,r=A.b4(s).h(0) +return"<"+r+": "+s.b+" "+(s.a.h(0)+":"+(s.c+1)+":"+(s.d+1))+">"}, +gR(){return this.a}, +gad(){return this.b}, +gap(){return this.c}, +gam(){return this.d}} +A.cO.prototype={ +bn(a,b,c){var s,r=this.b,q=this.a +if(!r.gR().K(0,q.gR()))throw A.a(A.C('Source URLs "'+q.gR().h(0)+'" and "'+r.gR().h(0)+"\" don't match.")) +else if(r.gad()'}, +$idP:1} +A.as.prototype={ +bS(){var s=this.a +return A.dU(new A.bd(s,new A.dn(),A.w(s).i("bd<1,k>")),null)}, +h(a){var s=this.a,r=A.w(s) +return new A.m(s,new A.dl(new A.m(s,new A.dm(),r.i("m<1,b>")).b1(0,0,B.i)),r.i("m<1,c>")).a_(0,u.q)}} +A.di.prototype={ +$1(a){return a.length!==0}, +$S:0} +A.dn.prototype={ +$1(a){return a.gaa()}, +$S:21} +A.dm.prototype={ +$1(a){var s=a.gaa() +return new A.m(s,new A.dk(),A.w(s).i("m<1,b>")).b1(0,0,B.i)}, +$S:22} +A.dk.prototype={ +$1(a){return a.gac().length}, +$S:8} +A.dl.prototype={ +$1(a){var s=a.gaa() +return new A.m(s,new A.dj(this.a),A.w(s).i("m<1,c>")).aI(0)}, +$S:23} +A.dj.prototype={ +$1(a){return B.a.bO(a.gac(),this.a)+" "+A.f(a.gaq())+"\n"}, +$S:9} +A.k.prototype={ +gba(){var s=this.a +if(s.gH()==="data")return"data:..." +return $.eM().cI(s)}, +gac(){var s,r=this,q=r.b +if(q==null)return r.gba() +s=r.c +if(s==null)return r.gba()+" "+A.f(q) +return r.gba()+" "+A.f(q)+":"+A.f(s)}, +h(a){return this.gac()+" in "+A.f(this.d)}, +ga5(){return this.a}, +gap(){return this.b}, +gam(){return this.c}, +gaq(){return this.d}} +A.dy.prototype={ +$0(){var s,r,q,p,o,n,m,l=null,k=this.a +if(k==="...")return new A.k(A.z(l,l,l,l),l,l,"...") +s=$.iF().U(k) +if(s==null)return new A.a2(A.z(l,"unparsed",l,l),k) +k=s.b +r=k[1] +r.toString +q=$.io() +r=A.R(r,q,"") +p=A.R(r,"","") +r=k[2] +q=r +q.toString +if(B.a.p(q,"1?A.K(n[1],l):l +return new A.k(o,m,k>2?A.K(n[2],l):l,p)}, +$S:2} +A.dw.prototype={ +$0(){var s,r,q,p,o,n="",m=this.a,l=$.iE().U(m) +if(l!=null){s=l.a1("member") +m=l.a1("uri") +m.toString +r=A.cd(m) +m=l.a1("index") +m.toString +q=l.a1("offset") +q.toString +p=A.K(q,16) +if(!(s==null))m=s +return new A.k(r,1,p+1,m)}l=$.iA().U(m) +if(l!=null){m=new A.dx(m) +q=l.b +o=q[2] +if(o!=null){o=o +o.toString +q=q[1] +q.toString +q=A.R(q,"",n) +q=A.R(q,"Anonymous function",n) +return m.$2(o,A.R(q,"(anonymous function)",n))}else{q=q[3] +q.toString +return m.$2(q,n)}}return new A.a2(A.z(null,"unparsed",null,null),m)}, +$S:2} +A.dx.prototype={ +$2(a,b){var s,r,q,p,o,n=null,m=$.iz(),l=m.U(a) +for(;l!=null;a=s){s=l.b[1] +s.toString +l=m.U(s)}if(a==="native")return new A.k(A.I("native"),n,n,b) +r=$.iB().U(a) +if(r==null)return new A.a2(A.z(n,"unparsed",n,n),this.a) +m=r.b +s=m[1] +s.toString +q=A.cd(s) +s=m[2] +s.toString +p=A.K(s,n) +o=m[3] +return new A.k(q,p,o!=null?A.K(o,n):n,b)}, +$S:24} +A.dt.prototype={ +$0(){var s,r,q,p,o=null,n=this.a,m=$.iq().U(n) +if(m==null)return new A.a2(A.z(o,"unparsed",o,o),n) +n=m.b +s=n[1] +s.toString +r=A.R(s,"/<","") +s=n[2] +s.toString +q=A.cd(s) +n=n[3] +n.toString +p=A.K(n,o) +return new A.k(q,p,o,r.length===0||r==="anonymous"?"":r)}, +$S:2} +A.du.prototype={ +$0(){var s,r,q,p,o,n,m,l,k=null,j=this.a,i=$.is().U(j) +if(i!=null){s=i.b +r=s[3] +q=r +q.toString +if(B.a.t(q," line "))return A.j3(j) +j=r +j.toString +p=A.cd(j) +o=s[1] +if(o!=null){j=s[2] +j.toString +o+=B.b.aI(A.a7(B.a.aC("/",j).gk(0),".",!1,t.N)) +if(o==="")o="" +o=B.a.bR(o,$.ix(),"")}else o="" +j=s[4] +if(j==="")n=k +else{j=j +j.toString +n=A.K(j,k)}j=s[5] +if(j==null||j==="")m=k +else{j=j +j.toString +m=A.K(j,k)}return new A.k(p,n,m,o)}i=$.iu().U(j) +if(i!=null){j=i.a1("member") +j.toString +s=i.a1("uri") +s.toString +p=A.cd(s) +s=i.a1("index") +s.toString +r=i.a1("offset") +r.toString +l=A.K(r,16) +if(!(j.length!==0))j=s +return new A.k(p,1,l+1,j)}i=$.iy().U(j) +if(i!=null){j=i.a1("member") +j.toString +return new A.k(A.z(k,"wasm code",k,k),k,k,j)}return new A.a2(A.z(k,"unparsed",k,k),j)}, +$S:2} +A.dv.prototype={ +$0(){var s,r,q,p,o=null,n=this.a,m=$.iv().U(n) +if(m==null)throw A.a(A.y("Couldn't parse package:stack_trace stack trace line '"+n+"'.",o,o)) +n=m.b +s=n[1] +if(s==="data:...")r=A.h6("") +else{s=s +s.toString +r=A.I(s)}if(r.gH()===""){s=$.eM() +r=s.bT(s.bB(s.a.aJ(A.fc(r)),o,o,o,o,o,o,o,o,o,o,o,o,o,o))}s=n[2] +if(s==null)q=o +else{s=s +s.toString +q=A.K(s,o)}s=n[3] +if(s==null)p=o +else{s=s +s.toString +p=A.K(s,o)}return new A.k(r,q,p,n[4])}, +$S:2} +A.co.prototype={ +gbA(){var s,r=this,q=r.b +if(q===$){s=r.a.$0() +r.b!==$&&A.eL() +r.b=s +q=s}return q}, +gaa(){return this.gbA().gaa()}, +h(a){return this.gbA().h(0)}, +$it:1} +A.t.prototype={ +cC(a,b){var s,r,q,p,o={} +o.a=a +s=A.e([],t.F) +for(r=this.a,q=A.w(r).i("aB<1>"),r=new A.aB(r,q),r=new A.F(r,r.gk(0),q.i("F")),q=q.i("q.E");r.l();){p=r.d +if(p==null)p=q.a(p) +if(p instanceof A.a2||!o.a.$1(p))s.push(p) +else if(s.length===0||!o.a.$1(B.b.gI(s)))s.push(new A.k(p.ga5(),p.gap(),p.gam(),p.gaq()))}return A.dU(new A.aB(s,t.W),this.b.a)}, +cB(a){return this.cC(a,!1)}, +h(a){var s=this.a,r=A.w(s) +return new A.m(s,new A.e0(new A.m(s,new A.e1(),r.i("m<1,b>")).b1(0,0,B.i)),r.i("m<1,c>")).aI(0)}, +gaa(){return this.a}} +A.dZ.prototype={ +$0(){return A.f_(this.a.h(0))}, +$S:25} +A.e_.prototype={ +$1(a){return a.length!==0}, +$S:0} +A.dY.prototype={ +$1(a){return!B.a.p(a,$.iD())}, +$S:0} +A.dX.prototype={ +$1(a){return a!=="\tat "}, +$S:0} +A.dV.prototype={ +$1(a){return a.length!==0&&a!=="[native code]"}, +$S:0} +A.dW.prototype={ +$1(a){return!B.a.p(a,"=====")}, +$S:0} +A.e1.prototype={ +$1(a){return a.gac().length}, +$S:8} +A.e0.prototype={ +$1(a){if(a instanceof A.a2)return a.h(0)+"\n" +return B.a.bO(a.gac(),this.a)+" "+A.f(a.gaq())+"\n"}, +$S:9} +A.a2.prototype={ +h(a){return this.w}, +$ik:1, +ga5(){return this.a}, +gap(){return null}, +gam(){return null}, +gac(){return"unparsed"}, +gaq(){return this.w}} +A.eH.prototype={ +$1(a){var s,r,q,p,o,n,m,l,k,j,i,h,g="dart:",f=a.gap() +if(f==null)return null +s=a.gam() +if(s==null)s=0 +r=this.a.c_(f-1,s-1,a.ga5().h(0)) +if(r==null)return null +q=r.gR().h(0) +for(p=this.b,o=p.length,n=0;n(aC)","ao(aH)","ao(ak)","S()","i(t)","b(t)","c(t)","k(c,c)","t()","k?(k)","ao(k)","c(az)","o?(c)","~(a6)","0^(0^,0^)"],interceptorsByTag:null,leafTags:null,arrayRti:Symbol("$ti")} +A.k_(v.typeUniverse,JSON.parse('{"a6":"ax","cG":"ax","aW":"ax","cf":{"n":[]},"bj":{"n":[]},"r":{"i":["1"],"h":["1"]},"dB":{"r":["1"],"i":["1"],"h":["1"]},"bk":{"x":[]},"bi":{"x":[],"b":[],"n":[]},"cg":{"x":[],"n":[]},"au":{"c":[],"n":[]},"al":{"d":["2"]},"aq":{"al":["1","2"],"d":["2"],"d.E":"2"},"bI":{"aq":["1","2"],"al":["1","2"],"h":["2"],"d":["2"],"d.E":"2"},"bH":{"j":["2"],"i":["2"],"al":["1","2"],"h":["2"],"d":["2"]},"a9":{"bH":["1","2"],"j":["2"],"i":["2"],"al":["1","2"],"h":["2"],"d":["2"],"j.E":"2","d.E":"2"},"ar":{"D":["3","4"],"S":["3","4"],"D.V":"4","D.K":"3"},"bo":{"p":[]},"aQ":{"j":["b"],"i":["b"],"h":["b"],"j.E":"b"},"h":{"d":["1"]},"q":{"h":["1"],"d":["1"]},"aF":{"q":["1"],"h":["1"],"d":["1"],"q.E":"1","d.E":"1"},"Q":{"d":["2"],"d.E":"2"},"b9":{"Q":["1","2"],"h":["2"],"d":["2"],"d.E":"2"},"m":{"q":["2"],"h":["2"],"d":["2"],"q.E":"2","d.E":"2"},"E":{"d":["1"],"d.E":"1"},"bd":{"d":["2"],"d.E":"2"},"aG":{"d":["1"],"d.E":"1"},"ba":{"aG":["1"],"h":["1"],"d":["1"],"d.E":"1"},"ab":{"d":["1"],"d.E":"1"},"aR":{"ab":["1"],"h":["1"],"d":["1"],"d.E":"1"},"by":{"d":["1"],"d.E":"1"},"bb":{"h":["1"],"d":["1"],"d.E":"1"},"bG":{"d":["1"],"d.E":"1"},"bu":{"d":["1"],"d.E":"1"},"aX":{"j":["1"],"i":["1"],"h":["1"]},"aB":{"q":["1"],"h":["1"],"d":["1"],"q.E":"1","d.E":"1"},"bw":{"p":[]},"ci":{"p":[]},"cT":{"p":[]},"cE":{"bc":[]},"d1":{"p":[]},"cJ":{"p":[]},"aw":{"D":["1","2"],"S":["1","2"],"D.V":"2","D.K":"1"},"ay":{"h":["1"],"d":["1"],"d.E":"1"},"bq":{"h":["1"],"d":["1"],"d.E":"1"},"aY":{"cI":[],"az":[]},"d_":{"d":["cI"],"d.E":"cI"},"bB":{"az":[]},"d7":{"d":["az"],"d.E":"az"},"ct":{"n":[]},"cu":{"n":[]},"aT":{"P":["1"]},"br":{"j":["x"],"i":["x"],"P":["x"],"h":["x"]},"bs":{"j":["b"],"i":["b"],"P":["b"],"h":["b"]},"cv":{"j":["x"],"i":["x"],"P":["x"],"h":["x"],"n":[],"j.E":"x"},"cw":{"j":["x"],"i":["x"],"P":["x"],"h":["x"],"n":[],"j.E":"x"},"cx":{"j":["b"],"i":["b"],"P":["b"],"h":["b"],"n":[],"j.E":"b"},"cy":{"j":["b"],"i":["b"],"P":["b"],"h":["b"],"n":[],"j.E":"b"},"cz":{"j":["b"],"i":["b"],"P":["b"],"h":["b"],"n":[],"j.E":"b"},"cB":{"j":["b"],"i":["b"],"P":["b"],"h":["b"],"n":[],"j.E":"b"},"cC":{"j":["b"],"i":["b"],"P":["b"],"h":["b"],"n":[],"j.E":"b"},"bt":{"j":["b"],"i":["b"],"P":["b"],"h":["b"],"n":[],"j.E":"b"},"aU":{"j":["b"],"i":["b"],"P":["b"],"h":["b"],"n":[],"j.E":"b"},"d3":{"p":[]},"bN":{"p":[]},"j":{"i":["1"],"h":["1"]},"D":{"S":["1","2"]},"d5":{"D":["c","@"],"S":["c","@"],"D.V":"@","D.K":"c"},"d6":{"q":["c"],"h":["c"],"d":["c"],"q.E":"c","d.E":"c"},"c_":{"ai":["c","i"]},"d8":{"a5":["c","i"]},"c0":{"a5":["c","i"]},"c3":{"ai":["i","c"]},"c4":{"a5":["i","c"]},"c9":{"ai":["c","i"]},"bn":{"p":[]},"ck":{"p":[]},"cj":{"ai":["o?","c"]},"cm":{"a5":["o?","c"]},"cl":{"a5":["c","o?"]},"cW":{"ai":["c","i"]},"cY":{"a5":["c","i"]},"cX":{"a5":["i","c"]},"i":{"h":["1"]},"cI":{"az":[]},"c1":{"p":[]},"bC":{"p":[]},"a_":{"p":[]},"aa":{"p":[]},"bf":{"aa":[],"p":[]},"bD":{"p":[]},"cS":{"p":[]},"aD":{"p":[]},"c6":{"p":[]},"cF":{"p":[]},"bA":{"p":[]},"O":{"bc":[]},"bR":{"bE":[]},"V":{"bE":[]},"d2":{"bE":[]},"bx":{"bc":[]},"aC":{"aj":[]},"cs":{"aj":[]},"cr":{"aj":[]},"bz":{"dP":[]},"cO":{"dP":[]},"cP":{"dP":[]},"co":{"t":[]},"a2":{"k":[]},"cn":{"aj":[]},"jd":{"i":["b"],"h":["b"]},"jF":{"i":["b"],"h":["b"]},"jE":{"i":["b"],"h":["b"]},"jb":{"i":["b"],"h":["b"]},"jC":{"i":["b"],"h":["b"]},"jc":{"i":["b"],"h":["b"]},"jD":{"i":["b"],"h":["b"]},"j1":{"i":["x"],"h":["x"]},"j2":{"i":["x"],"h":["x"]}}')) +A.jZ(v.typeUniverse,JSON.parse('{"bF":1,"cK":1,"cL":1,"c8":1,"cD":1,"be":1,"cU":1,"aX":1,"bU":2,"cp":1,"bp":1,"aT":1}')) +var u={v:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\u03f6\x00\u0404\u03f4 \u03f4\u03f6\u01f6\u01f6\u03f6\u03fc\u01f4\u03ff\u03ff\u0584\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u05d4\u01f4\x00\u01f4\x00\u0504\u05c4\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0400\x00\u0400\u0200\u03f7\u0200\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0200\u0200\u0200\u03f7\x00",q:"===== asynchronous gap ===========================\n",n:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l:"Cannot extract a file path from a URI with a fragment component",y:"Cannot extract a file path from a URI with a query component",j:"Cannot extract a non-Windows file path from a file URI with an authority"} +var t=(function rtii(){var s=A.ez +return{X:s("h<@>"),C:s("p"),M:s("bc"),B:s("k"),Z:s("lv"),F:s("r"),o:s("r"),s:s("r"),p:s("r"),Q:s("r"),J:s("r"),b:s("r<@>"),t:s("r"),m:s("r"),T:s("bj"),g:s("a6"),D:s("P<@>"),j:s("i<@>"),c:s("S"),f:s("S<@,@>"),L:s("Q"),k:s("m"),r:s("m"),e:s("aU"),x:s("bu"),P:s("bv"),K:s("o"),G:s("aa"),V:s("lw"),d:s("cI"),W:s("aB"),E:s("aC"),h:s("cN"),u:s("dP"),N:s("c"),a:s("t"),l:s("n"),n:s("aW"),R:s("bE"),U:s("E"),v:s("bG"),y:s("ao"),i:s("x"),z:s("@"),S:s("b"),A:s("0&*"),_:s("o*"),q:s("fG?"),aL:s("i<@>?"),Y:s("S<@,@>?"),ar:s("S?"),O:s("o?"),w:s("cM?"),aD:s("c?"),I:s("bE?"),H:s("fm")}})();(function constants(){var s=hunkHelpers.makeConstList +B.O=J.ce.prototype +B.b=J.r.prototype +B.c=J.bi.prototype +B.P=J.bk.prototype +B.a=J.au.prototype +B.Q=J.a6.prototype +B.R=J.ch.prototype +B.v=J.cG.prototype +B.l=J.aW.prototype +B.w=new A.c0(127) +B.i=new A.bg(A.lb(),A.ez("bg")) +B.x=new A.c_() +B.ac=new A.c4() +B.y=new A.c3() +B.q=new A.c8() +B.r=function getTagFallback(o) { + var s = Object.prototype.toString.call(o); + return s.substring(8, s.length - 1); +} +B.z=function() { + var toStringFunction = Object.prototype.toString; + function getTag(o) { + var s = toStringFunction.call(o); + return s.substring(8, s.length - 1); + } + function getUnknownTag(object, tag) { + if (/^HTML[A-Z].*Element$/.test(tag)) { + var name = toStringFunction.call(object); + if (name == "[object Object]") return null; + return "HTMLElement"; + } + } + function getUnknownTagGenericBrowser(object, tag) { + if (object instanceof HTMLElement) return "HTMLElement"; + return getUnknownTag(object, tag); + } + function prototypeForTag(tag) { + if (typeof window == "undefined") return null; + if (typeof window[tag] == "undefined") return null; + var constructor = window[tag]; + if (typeof constructor != "function") return null; + return constructor.prototype; + } + function discriminator(tag) { return null; } + var isBrowser = typeof HTMLElement == "function"; + return { + getTag: getTag, + getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag, + prototypeForTag: prototypeForTag, + discriminator: discriminator }; +} +B.E=function(getTagFallback) { + return function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("DumpRenderTree") >= 0) return hooks; + if (userAgent.indexOf("Chrome") >= 0) { + function confirm(p) { + return typeof window == "object" && window[p] && window[p].name == p; + } + if (confirm("Window") && confirm("HTMLElement")) return hooks; + } + hooks.getTag = getTagFallback; + }; +} +B.A=function(hooks) { + if (typeof dartExperimentalFixupGetTag != "function") return hooks; + hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag); +} +B.D=function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("Firefox") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "GeoGeolocation": "Geolocation", + "Location": "!Location", + "WorkerMessageEvent": "MessageEvent", + "XMLDocument": "!Document"}; + function getTagFirefox(o) { + var tag = getTag(o); + return quickMap[tag] || tag; + } + hooks.getTag = getTagFirefox; +} +B.C=function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("Trident/") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "HTMLDDElement": "HTMLElement", + "HTMLDTElement": "HTMLElement", + "HTMLPhraseElement": "HTMLElement", + "Position": "Geoposition" + }; + function getTagIE(o) { + var tag = getTag(o); + var newTag = quickMap[tag]; + if (newTag) return newTag; + if (tag == "Object") { + if (window.DataView && (o instanceof window.DataView)) return "DataView"; + } + return tag; + } + function prototypeForTagIE(tag) { + var constructor = window[tag]; + if (constructor == null) return null; + return constructor.prototype; + } + hooks.getTag = getTagIE; + hooks.prototypeForTag = prototypeForTagIE; +} +B.B=function(hooks) { + var getTag = hooks.getTag; + var prototypeForTag = hooks.prototypeForTag; + function getTagFixed(o) { + var tag = getTag(o); + if (tag == "Document") { + if (!!o.xmlVersion) return "!Document"; + return "!HTMLDocument"; + } + return tag; + } + function prototypeForTagFixed(tag) { + if (tag == "Document") return null; + return prototypeForTag(tag); + } + hooks.getTag = getTagFixed; + hooks.prototypeForTag = prototypeForTagFixed; +} +B.t=function(hooks) { return hooks; } + +B.j=new A.cj() +B.F=new A.cF() +B.k=new A.dK() +B.f=new A.cW() +B.G=new A.cY() +B.H=new A.O("section can't use both url and map entries",null,null) +B.I=new A.O('map containing "sections" cannot contain "mappings", "sources", or "names".',null,null) +B.J=new A.O("section missing offset",null,null) +B.K=new A.O("offset missing column",null,null) +B.L=new A.O("offset missing line",null,null) +B.M=new A.O("section missing url or map",null,null) +B.N=new A.O("expected at least one section",null,null) +B.S=new A.cl(null) +B.T=new A.cm(null) +B.u=A.e(s([]),t.s) +B.U=A.e(s([]),t.m) +B.V=A.a4("lq") +B.W=A.a4("lr") +B.X=A.a4("j1") +B.Y=A.a4("j2") +B.Z=A.a4("jb") +B.a_=A.a4("jc") +B.a0=A.a4("jd") +B.a1=A.a4("o") +B.a2=A.a4("jC") +B.a3=A.a4("jD") +B.a4=A.a4("jE") +B.a5=A.a4("jF") +B.a6=new A.cX(!1) +B.a7=new A.aZ("reaches root") +B.m=new A.aZ("below root") +B.n=new A.aZ("at root") +B.o=new A.aZ("above root") +B.d=new A.b_("different") +B.p=new A.b_("equal") +B.e=new A.b_("inconclusive") +B.h=new A.b_("within") +B.a8=new A.b0(!1,!1,!1) +B.a9=new A.b0(!1,!1,!0) +B.aa=new A.b0(!1,!0,!1) +B.ab=new A.b0(!0,!1,!1)})();(function staticFields(){$.ea=null +$.aN=A.e([],A.ez("r")) +$.fR=null +$.fC=null +$.fB=null +$.hU=null +$.hQ=null +$.i1=null +$.ey=null +$.eF=null +$.fj=null +$.h7="" +$.h8=null +$.hE=null +$.es=null +$.fb=null})();(function lazyInitializers(){var s=hunkHelpers.lazyFinal +s($,"ls","fp",()=>A.kX("_$dart_dartClosure")) +s($,"lB","i7",()=>A.ac(A.e3({ +toString:function(){return"$receiver$"}}))) +s($,"lC","i8",()=>A.ac(A.e3({$method$:null, +toString:function(){return"$receiver$"}}))) +s($,"lD","i9",()=>A.ac(A.e3(null))) +s($,"lE","ia",()=>A.ac(function(){var $argumentsExpr$="$arguments$" +try{null.$method$($argumentsExpr$)}catch(r){return r.message}}())) +s($,"lH","id",()=>A.ac(A.e3(void 0))) +s($,"lI","ie",()=>A.ac(function(){var $argumentsExpr$="$arguments$" +try{(void 0).$method$($argumentsExpr$)}catch(r){return r.message}}())) +s($,"lG","ic",()=>A.ac(A.h3(null))) +s($,"lF","ib",()=>A.ac(function(){try{null.$method$}catch(r){return r.message}}())) +s($,"lK","ih",()=>A.ac(A.h3(void 0))) +s($,"lJ","ig",()=>A.ac(function(){try{(void 0).$method$}catch(r){return r.message}}())) +s($,"lP","im",()=>A.jk(4096)) +s($,"lN","ik",()=>new A.eo().$0()) +s($,"lO","il",()=>new A.en().$0()) +s($,"lL","ii",()=>new Int8Array(A.hF(A.e([-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-2,-2,-2,-2,-2,62,-2,62,-2,63,52,53,54,55,56,57,58,59,60,61,-2,-2,-2,-1,-2,-2,-2,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-2,-2,-2,-2,63,-2,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-2,-2,-2,-2,-2],t.t)))) +s($,"lM","ij",()=>A.l("^[\\-\\.0-9A-Z_a-z~]*$",!1)) +s($,"m9","fr",()=>A.hY(B.a1)) +s($,"mr","iH",()=>A.eQ($.bY())) +s($,"mp","eN",()=>A.eQ($.b6())) +s($,"mj","eM",()=>new A.c7($.fq(),null)) +s($,"ly","i6",()=>new A.dI(A.l("/",!1),A.l("[^/]$",!1),A.l("^/",!1))) +s($,"lA","bY",()=>new A.e8(A.l("[/\\\\]",!1),A.l("[^/\\\\]$",!1),A.l("^(\\\\\\\\[^\\\\]+\\\\[^\\\\/]+|[a-zA-Z]:[/\\\\])",!1),A.l("^[/\\\\](?![/\\\\])",!1))) +s($,"lz","b6",()=>new A.e7(A.l("/",!1),A.l("(^[a-zA-Z][-+.a-zA-Z\\d]*://|[^/])$",!1),A.l("[a-zA-Z][-+.a-zA-Z\\d]*://[^/]*",!1),A.l("^/",!1))) +s($,"lx","fq",()=>A.ju()) +s($,"m1","ip",()=>new A.et().$0()) +s($,"ml","fs",()=>A.hA(A.i0(2,31))-1) +s($,"mm","ft",()=>-A.hA(A.i0(2,31))) +s($,"mi","iF",()=>A.l("^#\\d+\\s+(\\S.*) \\((.+?)((?::\\d+){0,2})\\)$",!1)) +s($,"md","iA",()=>A.l("^\\s*at (?:(\\S.*?)(?: \\[as [^\\]]+\\])? \\((.*)\\)|(.*))$",!1)) +s($,"me","iB",()=>A.l("^(.*?):(\\d+)(?::(\\d+))?$|native$",!1)) +s($,"mh","iE",()=>A.l("^\\s*at (?:(?.+) )?(?:\\(?(?:(?\\S+):wasm-function\\[(?\\d+)\\]\\:0x(?[0-9a-fA-F]+))\\)?)$",!1)) +s($,"mc","iz",()=>A.l("^eval at (?:\\S.*?) \\((.*)\\)(?:, .*?:\\d+:\\d+)?$",!1)) +s($,"m2","iq",()=>A.l("(\\S+)@(\\S+) line (\\d+) >.* (Function|eval):\\d+:\\d+",!1)) +s($,"m4","is",()=>A.l("^(?:([^@(/]*)(?:\\(.*\\))?((?:/[^/]*)*)(?:\\(.*\\))?@)?(.*?):(\\d*)(?::(\\d*))?$",!1)) +s($,"m6","iu",()=>A.l("^(?.*?)@(?:(?\\S+).*?:wasm-function\\[(?\\d+)\\]:0x(?[0-9a-fA-F]+))$",!1)) +s($,"mb","iy",()=>A.l("^.*?wasm-function\\[(?.*)\\]@\\[wasm code\\]$",!1)) +s($,"m7","iv",()=>A.l("^(\\S+)(?: (\\d+)(?::(\\d+))?)?\\s+([^\\d].*)$",!1)) +s($,"m0","io",()=>A.l("<(|[^>]+)_async_body>",!1)) +s($,"ma","ix",()=>A.l("^\\.",!1)) +s($,"lt","i4",()=>A.l("^[a-zA-Z][-+.a-zA-Z\\d]*://",!1)) +s($,"lu","i5",()=>A.l("^([a-zA-Z]:[\\\\/]|\\\\\\\\)",!1)) +s($,"mf","iC",()=>A.l("\\n ?at ",!1)) +s($,"mg","iD",()=>A.l(" ?at ",!1)) +s($,"m3","ir",()=>A.l("@\\S+ line \\d+ >.* (Function|eval):\\d+:\\d+",!1)) +s($,"m5","it",()=>A.l("^(([.0-9A-Za-z_$/<]|\\(.*\\))*@)?[^\\s]*:\\d*$",!0)) +s($,"m8","iw",()=>A.l("^[^\\s<][^\\s]*( \\d+(:\\d+)?)?[ \\t]+[^\\s]+$",!0)) +s($,"mq","fu",()=>A.l("^\\n?$",!0)) +s($,"mn","iG",()=>{var r=A.lf().$dartLoader.rootDirectories,q=t.N +r=A.ez("i").b(r)?r:B.b.al(r,q) +return J.iP(r,new A.eJ(),q).ag(0)})})();(function nativeSupport(){!function(){var s=function(a){var m={} +m[a]=1 +return Object.keys(hunkHelpers.convertToFastObject(m))[0]} +v.getIsolateTag=function(a){return s("___dart_"+a+v.isolateTag)} +var r="___dart_isolate_tags_" +var q=Object[r]||(Object[r]=Object.create(null)) +var p="_ZxYxX" +for(var o=0;;o++){var n=s(p+"_"+o+"_") +if(!(n in q)){q[n]=1 +v.isolateTag=n +break}}v.dispatchPropertyName=v.getIsolateTag("dispatch_record")}() +hunkHelpers.setOrUpdateInterceptorsByTag({ArrayBuffer:A.ct,ArrayBufferView:A.cA,DataView:A.cu,Float32Array:A.cv,Float64Array:A.cw,Int16Array:A.cx,Int32Array:A.cy,Int8Array:A.cz,Uint16Array:A.cB,Uint32Array:A.cC,Uint8ClampedArray:A.bt,CanvasPixelArray:A.bt,Uint8Array:A.aU}) +hunkHelpers.setOrUpdateLeafTags({ArrayBuffer:true,ArrayBufferView:false,DataView:true,Float32Array:true,Float64Array:true,Int16Array:true,Int32Array:true,Int8Array:true,Uint16Array:true,Uint32Array:true,Uint8ClampedArray:true,CanvasPixelArray:true,Uint8Array:false}) +A.aT.$nativeSuperclassTag="ArrayBufferView" +A.bJ.$nativeSuperclassTag="ArrayBufferView" +A.bK.$nativeSuperclassTag="ArrayBufferView" +A.br.$nativeSuperclassTag="ArrayBufferView" +A.bL.$nativeSuperclassTag="ArrayBufferView" +A.bM.$nativeSuperclassTag="ArrayBufferView" +A.bs.$nativeSuperclassTag="ArrayBufferView"})() +Function.prototype.$0=function(){return this()} +Function.prototype.$1=function(a){return this(a)} +Function.prototype.$2=function(a,b){return this(a,b)} +Function.prototype.$3=function(a,b,c){return this(a,b,c)} +Function.prototype.$1$0=function(){return this()} +Function.prototype.$2$0=function(){return this()} +Function.prototype.$1$1=function(a){return this(a)} +convertAllToFastObject(w) +convertToFastObject($);(function(a){if(typeof document==="undefined"){a(null) +return}if(typeof document.currentScript!="undefined"){a(document.currentScript) +return}var s=document.scripts +function onLoad(b){for(var q=0;q baseEnvironment; + + /// Optional guard; when it returns `false` the session is refused. + final bool Function(ShellRequest request)? allowCommand; + + /// Backend used for exec sessions and whenever the PTY path is unavailable. + final ShellBackend fallback; + + /// Optional sink for a one-time warning when the PTY path is disabled. + final void Function(String message)? onWarning; + + bool _ptyUsable = !Platform.isWindows; + + /// Creates a PTY backend decorating [fallback]. + PtyShellBackend({ + required this.fallback, + String? defaultShell, + this.workingDirectory, + this.baseEnvironment = const {}, + this.allowCommand, + this.onWarning, + }) : defaultShell = defaultShell ?? resolveDefaultShell(); + + @override + Future start(ShellRequest request) async { + final spec = request.pty; + if (spec == null || !_ptyUsable) { + return fallback.start(request); + } + + if (allowCommand != null && !allowCommand!(request)) { + throw ProcessException( + request.command ?? defaultShell, + request.args, + 'Command not permitted by node policy', + ); + } + + PortablePty? pty; + try { + final (executable, args) = _invocation(request); + pty = PortablePty.open(rows: spec.rows, cols: spec.cols); + pty.spawn( + executable, + args: args, + environment: _environment(request, spec), + ); + if (pty.masterFd < 0) { + // No POSIX master fd (e.g. ConPTY): the poll-based reader cannot work. + throw StateError('PTY has no POSIX master fd'); + } + return PtyShellSession(pty, pid: pty.childPid); + } on Object catch (e) { + try { + pty?.close(); + } on Object { + // Ignore cleanup failure. + } + // Disable the PTY path for the rest of the process and fall back so the + // session still works (with env-var geometry) instead of being rejected. + _ptyUsable = false; + onWarning?.call('PTY backend unavailable, using pipe fallback: $e'); + return fallback.start(request); + } + } + + /// Resolves the executable/args, wrapping in `sh -c 'cd ; exec …'` when a + /// working directory is set, because `portable_pty.spawn` has no cwd option. + (String, List) _invocation(ShellRequest request) { + final (shell, shellArgs) = resolveShellInvocation(request, defaultShell); + final cwd = request.cwd ?? workingDirectory; + if (cwd == null || cwd.isEmpty) { + return (shell, shellArgs); + } + return ( + '/bin/sh', + [ + '-c', + 'cd ${_singleQuote(cwd)} 2>/dev/null; exec "\$0" "\$@"', + shell, + ...shellArgs, + ], + ); + } + + /// Environment for the child. `TERM` carries the negotiated terminal type; + /// `COLUMNS`/`LINES` are deliberately removed so terminal-aware programs read + /// the live kernel window size (which `resize` keeps current) rather than a + /// stale env value — ncurses otherwise prefers the env over the `ioctl`. + Map _environment(ShellRequest request, PtySpec spec) => + { + ...Platform.environment, + ...baseEnvironment, + ...request.env, + 'TERM': spec.term, + } + ..remove('COLUMNS') + ..remove('LINES'); + + static String _singleQuote(String s) => "'${s.replaceAll("'", r"'\''")}'"; +} diff --git a/build/packages/omnyshell/src/infrastructure/backend/pty/pty_shell_session.txt b/build/packages/omnyshell/src/infrastructure/backend/pty/pty_shell_session.txt new file mode 100644 index 0000000..7b85e38 --- /dev/null +++ b/build/packages/omnyshell/src/infrastructure/backend/pty/pty_shell_session.txt @@ -0,0 +1,259 @@ +// This class is itself deprecated (portable_pty native crash) but its factory / +// internal constructor reference it; silence the same-package warning here. +// ignore_for_file: deprecated_member_use_from_same_package +import 'dart:async'; +import 'dart:ffi' as ffi; +import 'dart:typed_data'; + +import 'package:ffi/ffi.dart'; +import 'package:portable_pty/portable_pty.dart'; + +import '../../../domain/backend/shell_session.dart'; + +/// A [ShellSession] backed by a real pseudo-terminal via `portable_pty`. +/// +/// Unlike the pipe-based [ProcessShellSession], the child runs on a controlling +/// terminal: `isatty()` is true, the kernel window size is honoured, and +/// [resize] drives `TIOCSWINSZ` live, so full-screen programs such as `nano` +/// render at the client's geometry and reflow on resize. +/// +/// `portable_pty`'s `readSync` blocks until data or EOF, which would freeze the +/// event loop. Instead we poll the master fd for readiness with `poll(2)` (zero +/// timeout) on a short timer and only read when data is pending; when the +/// consumer applies backpressure (the [stdout] subscription is paused) we stop +/// draining and let the kernel pty buffer fill, throttling the child naturally. +/// +/// **Temporarily deprecated** alongside `PtyShellBackend`: the underlying +/// `portable_pty` native library has a `SIGCHLD`-handler memory-safety bug that +/// can crash the process. The default PTY backend is now `ScriptPtyShellBackend` +/// (no FFI). Retained for opt-in use (`--pty-backend native`) and for when the +/// upstream fix lands. See https://github.com/kingwill101/dart_terminal/issues. +@Deprecated( + 'Temporarily disabled due to a portable_pty native SIGCHLD crash; the default ' + 'PTY backend is now ScriptPtyShellBackend. ' + 'See https://github.com/kingwill101/dart_terminal/issues.', +) +class PtyShellSession implements ShellSession { + final PortablePty _pty; + final int? _pid; + + final StreamController _out = StreamController(); + final Completer _exit = Completer(); + final ffi.Pointer<_PollFd> _pollFd; + + Timer? _timer; + bool _finished = false; + + PtyShellSession._(this._pty, this._pid, this._pollFd) { + _pollFd.ref + ..fd = _pty.masterFd + ..events = _pollIn + ..revents = 0; + _timer = Timer.periodic(_pollInterval, (_) => _tick()); + } + + /// Wraps an already-`spawn`ed [PortablePty]. The PTY must expose a valid POSIX + /// master fd (`masterFd >= 0`); callers gate this on non-Windows platforms. + factory PtyShellSession(PortablePty pty, {int? pid}) => + PtyShellSession._(pty, pid, calloc<_PollFd>()); + + static const _pollInterval = Duration(milliseconds: 8); + + // Cap reads per tick (64 × 64 KiB = 4 MiB) so a firehose cannot starve the + // event loop; the remainder is drained on the next tick. + static const _maxReadsPerTick = 64; + + @override + int? get pid => _pid; + + @override + Stream get stdout => _out.stream; + + // A PTY merges the child's stderr into the single master stream, so there is + // no separate stderr channel; an empty (immediately-done) stream keeps the + // node's stdout/stderr drain logic happy. + @override + Stream get stderr => const Stream.empty(); + + @override + Future get exitCode => _exit.future; + + void _tick() { + if (_finished) return; + // Honour backpressure: while the consumer is paused, leave bytes in the + // kernel pty buffer (the child blocks on write) instead of buffering here. + if (_out.isPaused) return; + + var eof = false; + var drained = false; // loop ended with no more readable data (not capped) + for (var i = 0; i < _maxReadsPerTick; i++) { + if (_out.isPaused) return; + if (!_readable()) { + drained = true; + break; + } + Uint8List chunk; + try { + chunk = _pty.readSync(65536); + } on Object { + eof = true; + break; + } + if (chunk.isEmpty) { + eof = true; + break; + } + _out.add(chunk); + } + if (eof) { + _finish(_pty.tryWait() ?? _safeWait()); + return; + } + // On Linux the native library keeps the pty slave fd open for the handle's + // lifetime, so the master never reports EOF/HUP after the child exits and + // the `eof` path above never fires (macOS does report EOF — hence the + // divergence). Detect exit explicitly: once all currently-readable bytes + // are drained (we stopped because there was no more data, not because we + // hit the per-tick cap), a non-null `tryWait` means the child is gone and + // its final output — written before exit — has already been consumed. + if (drained) { + final code = _pty.tryWait(); + if (code != null) _finish(code); + } + } + + /// `poll(fd, POLLIN, 0)`: returns true when the master fd has bytes pending or + /// has hung up (child exited) — in which case the following `readSync` + /// returns the remaining bytes, then empty (EOF). + bool _readable() { + _pollFd.ref.revents = 0; + final ret = _poll(_pollFd, 1, 0); + if (ret <= 0) return false; + return _pollFd.ref.revents & (_pollIn | _pollHup | _pollErr | _pollNval) != + 0; + } + + int _safeWait() { + try { + return _pty.wait(); + } on Object { + return -1; + } + } + + @override + void writeStdin(List data) { + if (_finished) return; + try { + _pty.writeBytes(Uint8List.fromList(data)); + } on Object { + // The child may have exited and closed the slave. + } + } + + @override + Future closeStdin() async { + // A PTY has no half-close; deliver the terminal EOF character (Ctrl-D) so + // the line discipline signals end-of-input to the foreground program. + if (_finished) return; + try { + _pty.writeBytes(Uint8List.fromList(const [0x04])); + } on Object { + // Ignore: child already gone. + } + } + + @override + void resize({required int cols, required int rows}) { + if (_finished) return; + try { + _pty.resize(rows: rows, cols: cols); + } on Object { + // Ignore: child already gone. + } + } + + @override + void sendSignal(String signal) { + if (_finished) return; + final sig = _signalNumber(signal); + if (sig == null) return; + try { + _pty.kill(sig); + } on Object { + // Ignore: child already gone. + } + } + + @override + Future kill() async { + if (_finished) return; + try { + _pty.kill(9); // SIGKILL + } on Object { + // Ignore. + } + _finish(_pty.tryWait() ?? -1); + } + + void _finish(int code) { + if (_finished) return; + _finished = true; + _timer?.cancel(); + _timer = null; + if (!_out.isClosed) unawaited(_out.close()); + if (!_exit.isCompleted) _exit.complete(code); + try { + _pty.close(); + } on Object { + // Ignore: already closed. + } + calloc.free(_pollFd); + } + + static int? _signalNumber(String name) { + switch (name.toUpperCase()) { + case 'SIGHUP': + case 'HUP': + return 1; + case 'SIGINT': + case 'INT': + return 2; + case 'SIGQUIT': + case 'QUIT': + return 3; + case 'SIGKILL': + case 'KILL': + return 9; + case 'SIGTERM': + case 'TERM': + return 15; + default: + return null; + } + } +} + +// --- poll(2) FFI ------------------------------------------------------------- + +const int _pollIn = 0x0001; +const int _pollErr = 0x0008; +const int _pollHup = 0x0010; +const int _pollNval = 0x0020; + +// struct pollfd { int fd; short events; short revents; } +final class _PollFd extends ffi.Struct { + @ffi.Int32() + external int fd; + @ffi.Int16() + external int events; + @ffi.Int16() + external int revents; +} + +typedef _PollNative = + ffi.Int Function(ffi.Pointer<_PollFd>, ffi.UnsignedLong, ffi.Int); +typedef _PollDart = int Function(ffi.Pointer<_PollFd>, int, int); + +final _PollDart _poll = ffi.DynamicLibrary.process() + .lookupFunction<_PollNative, _PollDart>('poll'); diff --git a/build/packages/test/dart.js b/build/packages/test/dart.js new file mode 100644 index 0000000..3840ba7 --- /dev/null +++ b/build/packages/test/dart.js @@ -0,0 +1,80 @@ +// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +// This script runs in HTML files and loads the corresponding test scripts for +// a JS browser. It's used by "pub serve" and user-authored HTML files; +window.onload = function() { + +// Sends an error message to the server indicating that the script failed to +// load. +// +// This mimics a MultiChannel-formatted message. +var sendLoadException = function(message) { + window.parent.postMessage({ + "data": [0, {"type": "loadException", "message": message}], + "exception": true, + }, window.location.origin); +} + +// Listen for dartLoadException events and forward to the server. +window.addEventListener('dartLoadException', function(e) { + sendLoadException(e.detail); +}); + +// The basename of the current page. +var name = window.location.href.replace(/.*\//, '').replace(/#.*/, ''); + +// Find . +var links = document.getElementsByTagName("link"); +var testLinks = []; +var length = links.length; +for (var i = 0; i < length; ++i) { + if (links[i].rel == "x-dart-test") testLinks.push(links[i]); +} + +if (testLinks.length != 1) { + sendLoadException( + 'Expected exactly 1 in ' + name + ', found ' + + testLinks.length + '.'); + return; +} + +var link = testLinks[0]; + +if (link.href == '') { + sendLoadException( + 'Expected in ' + name + ' to have an "href" ' + + 'attribute.'); + return; +} + +var script = document.createElement('script'); + +if (typeof trustedTypes !== 'undefined') { + const sanitizer = trustedTypes.createPolicy('dart#test', { + createScriptURL: (input) => input + '.browser_test.dart.js' + }); + script.src = sanitizer.createScriptURL(link.href); +} else { + script.src = link.href + '.browser_test.dart.js'; +} + +script.onerror = function(event) { + var message = "Failed to load script at " + script.src + + (event.message ? ": " + event.message : "."); + sendLoadException(message); +}; + +Array.from(document.querySelectorAll('script')).some(currentScript => { + if (currentScript.nonce) { + script.nonce = currentScript.nonce; + return true; + } +}); + +var parent = link.parentNode; +document.currentScript = script; +parent.replaceChild(script, link); + +}; diff --git a/build/packages/test/src/runner/browser/static/default.html.tpl b/build/packages/test/src/runner/browser/static/default.html.tpl new file mode 100644 index 0000000..a92f529 --- /dev/null +++ b/build/packages/test/src/runner/browser/static/default.html.tpl @@ -0,0 +1,8 @@ + + + + {{testName}} Test + {{testScript}} + + + diff --git a/build/packages/test/src/runner/browser/static/favicon.ico b/build/packages/test/src/runner/browser/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7ba349b3e628d2423d4a2ed217422a4722f73739 GIT binary patch literal 3559 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 0) + return true; + if (typeof version == "function" && version.length == 0) { + var v = version(); + if (/^\d+\.\d+\.\d+\.\d+$/.test(v)) + return true; + } + } catch (_) { + } + return false; + }(); + function inherit(cls, sup) { + cls.prototype.constructor = cls; + cls.prototype["$is" + cls.name] = cls; + if (sup != null) { + if (supportsDirectProtoAccess) { + Object.setPrototypeOf(cls.prototype, sup.prototype); + return; + } + var clsPrototype = Object.create(sup.prototype); + copyProperties(cls.prototype, clsPrototype); + cls.prototype = clsPrototype; + } + } + function inheritMany(sup, classes) { + for (var i = 0; i < classes.length; i++) { + inherit(classes[i], sup); + } + } + function mixinEasy(cls, mixin) { + mixinPropertiesEasy(mixin.prototype, cls.prototype); + cls.prototype.constructor = cls; + } + function mixinHard(cls, mixin) { + mixinPropertiesHard(mixin.prototype, cls.prototype); + cls.prototype.constructor = cls; + } + function lazy(holder, name, getterName, initializer) { + var uninitializedSentinel = holder; + holder[name] = uninitializedSentinel; + holder[getterName] = function() { + if (holder[name] === uninitializedSentinel) { + holder[name] = initializer(); + } + holder[getterName] = function() { + return this[name]; + }; + return holder[name]; + }; + } + function lazyFinal(holder, name, getterName, initializer) { + var uninitializedSentinel = holder; + holder[name] = uninitializedSentinel; + holder[getterName] = function() { + if (holder[name] === uninitializedSentinel) { + var value = initializer(); + if (holder[name] !== uninitializedSentinel) { + A.throwLateFieldADI(name); + } + holder[name] = value; + } + var finalValue = holder[name]; + holder[getterName] = function() { + return finalValue; + }; + return finalValue; + }; + } + function makeConstList(list, rti) { + if (rti != null) + A._setArrayType(list, rti); + list.$flags = 7; + return list; + } + function convertToFastObject(properties) { + function t() { + } + t.prototype = properties; + new t(); + return properties; + } + function convertAllToFastObject(arrayOfObjects) { + for (var i = 0; i < arrayOfObjects.length; ++i) { + convertToFastObject(arrayOfObjects[i]); + } + } + var functionCounter = 0; + function instanceTearOffGetter(isIntercepted, parameters) { + var cache = null; + return isIntercepted ? function(receiver) { + if (cache === null) + cache = A.closureFromTearOff(parameters); + return new cache(receiver, this); + } : function() { + if (cache === null) + cache = A.closureFromTearOff(parameters); + return new cache(this, null); + }; + } + function staticTearOffGetter(parameters) { + var cache = null; + return function() { + if (cache === null) + cache = A.closureFromTearOff(parameters).prototype; + return cache; + }; + } + var typesOffset = 0; + function tearOffParameters(container, isStatic, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, needsDirectAccess) { + if (typeof funType == "number") { + funType += typesOffset; + } + return {co: container, iS: isStatic, iI: isIntercepted, rC: requiredParameterCount, dV: optionalParameterDefaultValues, cs: callNames, fs: funsOrNames, fT: funType, aI: applyIndex || 0, nDA: needsDirectAccess}; + } + function installStaticTearOff(holder, getterName, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex) { + var parameters = tearOffParameters(holder, true, false, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, false); + var getterFunction = staticTearOffGetter(parameters); + holder[getterName] = getterFunction; + } + function installInstanceTearOff(prototype, getterName, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, needsDirectAccess) { + isIntercepted = !!isIntercepted; + var parameters = tearOffParameters(prototype, false, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, !!needsDirectAccess); + var getterFunction = instanceTearOffGetter(isIntercepted, parameters); + prototype[getterName] = getterFunction; + } + function setOrUpdateInterceptorsByTag(newTags) { + var tags = init.interceptorsByTag; + if (!tags) { + init.interceptorsByTag = newTags; + return; + } + copyProperties(newTags, tags); + } + function setOrUpdateLeafTags(newTags) { + var tags = init.leafTags; + if (!tags) { + init.leafTags = newTags; + return; + } + copyProperties(newTags, tags); + } + function updateTypes(newTypes) { + var types = init.types; + var length = types.length; + types.push.apply(types, newTypes); + return length; + } + function updateHolder(holder, newHolder) { + copyProperties(newHolder, holder); + return holder; + } + var hunkHelpers = function() { + var mkInstance = function(isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, applyIndex) { + return function(container, getterName, name, funType) { + return installInstanceTearOff(container, getterName, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, [name], funType, applyIndex, false); + }; + }, + mkStatic = function(requiredParameterCount, optionalParameterDefaultValues, callNames, applyIndex) { + return function(container, getterName, name, funType) { + return installStaticTearOff(container, getterName, requiredParameterCount, optionalParameterDefaultValues, callNames, [name], funType, applyIndex); + }; + }; + return {inherit: inherit, inheritMany: inheritMany, mixin: mixinEasy, mixinHard: mixinHard, installStaticTearOff: installStaticTearOff, installInstanceTearOff: installInstanceTearOff, _instance_0u: mkInstance(0, 0, null, ["call$0"], 0), _instance_1u: mkInstance(0, 1, null, ["call$1"], 0), _instance_2u: mkInstance(0, 2, null, ["call$2"], 0), _instance_0i: mkInstance(1, 0, null, ["call$0"], 0), _instance_1i: mkInstance(1, 1, null, ["call$1"], 0), _instance_2i: mkInstance(1, 2, null, ["call$2"], 0), _static_0: mkStatic(0, null, ["call$0"], 0), _static_1: mkStatic(1, null, ["call$1"], 0), _static_2: mkStatic(2, null, ["call$2"], 0), makeConstList: makeConstList, lazy: lazy, lazyFinal: lazyFinal, updateHolder: updateHolder, convertToFastObject: convertToFastObject, updateTypes: updateTypes, setOrUpdateInterceptorsByTag: setOrUpdateInterceptorsByTag, setOrUpdateLeafTags: setOrUpdateLeafTags}; + }(); + function initializeDeferredHunk(hunk) { + typesOffset = init.types.length; + hunk(hunkHelpers, init, holders, $); + } + var J = { + makeDispatchRecord(interceptor, proto, extension, indexability) { + return {i: interceptor, p: proto, e: extension, x: indexability}; + }, + getNativeInterceptor(object) { + var proto, objectProto, $constructor, interceptor, t1, + record = object[init.dispatchPropertyName]; + if (record == null) + if ($.initNativeDispatchFlag == null) { + A.initNativeDispatch(); + record = object[init.dispatchPropertyName]; + } + if (record != null) { + proto = record.p; + if (false === proto) + return record.i; + if (true === proto) + return object; + objectProto = Object.getPrototypeOf(object); + if (proto === objectProto) + return record.i; + if (record.e === objectProto) + throw A.wrapException(A.UnimplementedError$("Return interceptor for " + A.S(proto(object, record)))); + } + $constructor = object.constructor; + if ($constructor == null) + interceptor = null; + else { + t1 = $._JS_INTEROP_INTERCEPTOR_TAG; + if (t1 == null) + t1 = $._JS_INTEROP_INTERCEPTOR_TAG = init.getIsolateTag("_$dart_js"); + interceptor = $constructor[t1]; + } + if (interceptor != null) + return interceptor; + interceptor = A.lookupAndCacheInterceptor(object); + if (interceptor != null) + return interceptor; + if (typeof object == "function") + return B.JavaScriptFunction_methods; + proto = Object.getPrototypeOf(object); + if (proto == null) + return B.PlainJavaScriptObject_methods; + if (proto === Object.prototype) + return B.PlainJavaScriptObject_methods; + if (typeof $constructor == "function") { + t1 = $._JS_INTEROP_INTERCEPTOR_TAG; + if (t1 == null) + t1 = $._JS_INTEROP_INTERCEPTOR_TAG = init.getIsolateTag("_$dart_js"); + Object.defineProperty($constructor, t1, {value: B.UnknownJavaScriptObject_methods, enumerable: false, writable: true, configurable: true}); + return B.UnknownJavaScriptObject_methods; + } + return B.UnknownJavaScriptObject_methods; + }, + JSArray_JSArray$fixed($length, $E) { + if ($length < 0 || $length > 4294967295) + throw A.wrapException(A.RangeError$range($length, 0, 4294967295, "length", null)); + return J.JSArray_JSArray$markFixed(new Array($length), $E); + }, + JSArray_JSArray$growable($length, $E) { + if ($length < 0) + throw A.wrapException(A.ArgumentError$("Length must be a non-negative integer: " + $length, null)); + return A._setArrayType(new Array($length), $E._eval$1("JSArray<0>")); + }, + JSArray_JSArray$markFixed(allocation, $E) { + var t1 = A._setArrayType(allocation, $E._eval$1("JSArray<0>")); + t1.$flags = 1; + return t1; + }, + JSString__isWhitespace(codeUnit) { + if (codeUnit < 256) + switch (codeUnit) { + case 9: + case 10: + case 11: + case 12: + case 13: + case 32: + case 133: + case 160: + return true; + default: + return false; + } + switch (codeUnit) { + case 5760: + case 8192: + case 8193: + case 8194: + case 8195: + case 8196: + case 8197: + case 8198: + case 8199: + case 8200: + case 8201: + case 8202: + case 8232: + case 8233: + case 8239: + case 8287: + case 12288: + case 65279: + return true; + default: + return false; + } + }, + JSString__skipLeadingWhitespace(string, index) { + var t1, codeUnit; + for (t1 = string.length; index < t1;) { + codeUnit = string.charCodeAt(index); + if (codeUnit !== 32 && codeUnit !== 13 && !J.JSString__isWhitespace(codeUnit)) + break; + ++index; + } + return index; + }, + JSString__skipTrailingWhitespace(string, index) { + var t1, index0, codeUnit; + for (t1 = string.length; index > 0; index = index0) { + index0 = index - 1; + if (!(index0 < t1)) + return A.ioore(string, index0); + codeUnit = string.charCodeAt(index0); + if (codeUnit !== 32 && codeUnit !== 13 && !J.JSString__isWhitespace(codeUnit)) + break; + } + return index; + }, + getInterceptor$(receiver) { + if (typeof receiver == "number") { + if (Math.floor(receiver) == receiver) + return J.JSInt.prototype; + return J.JSNumNotInt.prototype; + } + if (typeof receiver == "string") + return J.JSString.prototype; + if (receiver == null) + return J.JSNull.prototype; + if (typeof receiver == "boolean") + return J.JSBool.prototype; + if (Array.isArray(receiver)) + return J.JSArray.prototype; + if (typeof receiver != "object") { + if (typeof receiver == "function") + return J.JavaScriptFunction.prototype; + if (typeof receiver == "symbol") + return J.JavaScriptSymbol.prototype; + if (typeof receiver == "bigint") + return J.JavaScriptBigInt.prototype; + return receiver; + } + if (receiver instanceof A.Object) + return receiver; + return J.getNativeInterceptor(receiver); + }, + getInterceptor$asx(receiver) { + if (typeof receiver == "string") + return J.JSString.prototype; + if (receiver == null) + return receiver; + if (Array.isArray(receiver)) + return J.JSArray.prototype; + if (typeof receiver != "object") { + if (typeof receiver == "function") + return J.JavaScriptFunction.prototype; + if (typeof receiver == "symbol") + return J.JavaScriptSymbol.prototype; + if (typeof receiver == "bigint") + return J.JavaScriptBigInt.prototype; + return receiver; + } + if (receiver instanceof A.Object) + return receiver; + return J.getNativeInterceptor(receiver); + }, + getInterceptor$ax(receiver) { + if (receiver == null) + return receiver; + if (Array.isArray(receiver)) + return J.JSArray.prototype; + if (typeof receiver != "object") { + if (typeof receiver == "function") + return J.JavaScriptFunction.prototype; + if (typeof receiver == "symbol") + return J.JavaScriptSymbol.prototype; + if (typeof receiver == "bigint") + return J.JavaScriptBigInt.prototype; + return receiver; + } + if (receiver instanceof A.Object) + return receiver; + return J.getNativeInterceptor(receiver); + }, + getInterceptor$n(receiver) { + if (typeof receiver == "number") + return J.JSNumber.prototype; + if (receiver == null) + return receiver; + if (!(receiver instanceof A.Object)) + return J.UnknownJavaScriptObject.prototype; + return receiver; + }, + getInterceptor$s(receiver) { + if (typeof receiver == "string") + return J.JSString.prototype; + if (receiver == null) + return receiver; + if (!(receiver instanceof A.Object)) + return J.UnknownJavaScriptObject.prototype; + return receiver; + }, + get$hashCode$(receiver) { + return J.getInterceptor$(receiver).get$hashCode(receiver); + }, + get$isEmpty$asx(receiver) { + return J.getInterceptor$asx(receiver).get$isEmpty(receiver); + }, + get$isNotEmpty$asx(receiver) { + return J.getInterceptor$asx(receiver).get$isNotEmpty(receiver); + }, + get$iterator$ax(receiver) { + return J.getInterceptor$ax(receiver).get$iterator(receiver); + }, + get$length$asx(receiver) { + return J.getInterceptor$asx(receiver).get$length(receiver); + }, + get$runtimeType$(receiver) { + return J.getInterceptor$(receiver).get$runtimeType(receiver); + }, + $eq$(receiver, a0) { + if (receiver == null) + return a0 == null; + if (typeof receiver != "object") + return a0 != null && receiver === a0; + return J.getInterceptor$(receiver).$eq(receiver, a0); + }, + $index$asx(receiver, a0) { + if (typeof a0 === "number") + if (Array.isArray(receiver) || typeof receiver == "string" || A.isJsIndexable(receiver, receiver[init.dispatchPropertyName])) + if (a0 >>> 0 === a0 && a0 < receiver.length) + return receiver[a0]; + return J.getInterceptor$asx(receiver).$index(receiver, a0); + }, + $indexSet$ax(receiver, a0, a1) { + return J.getInterceptor$ax(receiver).$indexSet(receiver, a0, a1); + }, + allMatches$1$s(receiver, a0) { + return J.getInterceptor$s(receiver).allMatches$1(receiver, a0); + }, + allMatches$2$s(receiver, a0, a1) { + return J.getInterceptor$s(receiver).allMatches$2(receiver, a0, a1); + }, + elementAt$1$ax(receiver, a0) { + return J.getInterceptor$ax(receiver).elementAt$1(receiver, a0); + }, + map$1$1$ax(receiver, a0, $T1) { + return J.getInterceptor$ax(receiver).map$1$1(receiver, a0, $T1); + }, + matchAsPrefix$2$s(receiver, a0, a1) { + return J.getInterceptor$s(receiver).matchAsPrefix$2(receiver, a0, a1); + }, + skip$1$ax(receiver, a0) { + return J.getInterceptor$ax(receiver).skip$1(receiver, a0); + }, + take$1$ax(receiver, a0) { + return J.getInterceptor$ax(receiver).take$1(receiver, a0); + }, + toInt$0$n(receiver) { + return J.getInterceptor$n(receiver).toInt$0(receiver); + }, + toList$0$ax(receiver) { + return J.getInterceptor$ax(receiver).toList$0(receiver); + }, + toString$0$(receiver) { + return J.getInterceptor$(receiver).toString$0(receiver); + }, + Interceptor: function Interceptor() { + }, + JSBool: function JSBool() { + }, + JSNull: function JSNull() { + }, + JavaScriptObject: function JavaScriptObject() { + }, + LegacyJavaScriptObject: function LegacyJavaScriptObject() { + }, + PlainJavaScriptObject: function PlainJavaScriptObject() { + }, + UnknownJavaScriptObject: function UnknownJavaScriptObject() { + }, + JavaScriptFunction: function JavaScriptFunction() { + }, + JavaScriptBigInt: function JavaScriptBigInt() { + }, + JavaScriptSymbol: function JavaScriptSymbol() { + }, + JSArray: function JSArray(t0) { + this.$ti = t0; + }, + JSArraySafeToStringHook: function JSArraySafeToStringHook() { + }, + JSUnmodifiableArray: function JSUnmodifiableArray(t0) { + this.$ti = t0; + }, + ArrayIterator: function ArrayIterator(t0, t1, t2) { + var _ = this; + _._iterable = t0; + _._length = t1; + _._index = 0; + _._current = null; + _.$ti = t2; + }, + JSNumber: function JSNumber() { + }, + JSInt: function JSInt() { + }, + JSNumNotInt: function JSNumNotInt() { + }, + JSString: function JSString() { + } + }, + A = {JS_CONST: function JS_CONST() { + }, + CastIterable_CastIterable(source, $S, $T) { + if (type$.EfficientLengthIterable_dynamic._is(source)) + return new A._EfficientLengthCastIterable(source, $S._eval$1("@<0>")._bind$1($T)._eval$1("_EfficientLengthCastIterable<1,2>")); + return new A.CastIterable(source, $S._eval$1("@<0>")._bind$1($T)._eval$1("CastIterable<1,2>")); + }, + LateError$fieldADI(fieldName) { + return new A.LateError("Field '" + fieldName + "' has been assigned during initialization."); + }, + LateError$fieldNI(fieldName) { + return new A.LateError("Field '" + fieldName + "' has not been initialized."); + }, + LateError$fieldAI(fieldName) { + return new A.LateError("Field '" + fieldName + "' has already been initialized."); + }, + hexDigitValue(char) { + var letter, + digit = char ^ 48; + if (digit <= 9) + return digit; + letter = char | 32; + if (97 <= letter && letter <= 102) + return letter - 87; + return -1; + }, + SystemHash_combine(hash, value) { + hash = hash + value & 536870911; + hash = hash + ((hash & 524287) << 10) & 536870911; + return hash ^ hash >>> 6; + }, + SystemHash_finish(hash) { + hash = hash + ((hash & 67108863) << 3) & 536870911; + hash ^= hash >>> 11; + return hash + ((hash & 16383) << 15) & 536870911; + }, + checkNotNullable(value, $name, $T) { + return value; + }, + isToStringVisiting(object) { + var t1, i; + for (t1 = $._toStringVisiting.length, i = 0; i < t1; ++i) + if (object === $._toStringVisiting[i]) + return true; + return false; + }, + SubListIterable$(_iterable, _start, _endOrLength, $E) { + A.RangeError_checkNotNegative(_start, "start"); + if (_endOrLength != null) { + A.RangeError_checkNotNegative(_endOrLength, "end"); + if (_start > _endOrLength) + A.throwExpression(A.RangeError$range(_start, 0, _endOrLength, "start", null)); + } + return new A.SubListIterable(_iterable, _start, _endOrLength, $E._eval$1("SubListIterable<0>")); + }, + MappedIterable_MappedIterable(iterable, $function, $S, $T) { + if (type$.EfficientLengthIterable_dynamic._is(iterable)) + return new A.EfficientLengthMappedIterable(iterable, $function, $S._eval$1("@<0>")._bind$1($T)._eval$1("EfficientLengthMappedIterable<1,2>")); + return new A.MappedIterable(iterable, $function, $S._eval$1("@<0>")._bind$1($T)._eval$1("MappedIterable<1,2>")); + }, + TakeIterable_TakeIterable(iterable, takeCount, $E) { + var _s9_ = "takeCount"; + A.ArgumentError_checkNotNull(takeCount, _s9_, type$.int); + A.RangeError_checkNotNegative(takeCount, _s9_); + if (type$.EfficientLengthIterable_dynamic._is(iterable)) + return new A.EfficientLengthTakeIterable(iterable, takeCount, $E._eval$1("EfficientLengthTakeIterable<0>")); + return new A.TakeIterable(iterable, takeCount, $E._eval$1("TakeIterable<0>")); + }, + SkipIterable_SkipIterable(iterable, count, $E) { + var _s5_ = "count"; + if (type$.EfficientLengthIterable_dynamic._is(iterable)) { + A.ArgumentError_checkNotNull(count, _s5_, type$.int); + A.RangeError_checkNotNegative(count, _s5_); + return new A.EfficientLengthSkipIterable(iterable, count, $E._eval$1("EfficientLengthSkipIterable<0>")); + } + A.ArgumentError_checkNotNull(count, _s5_, type$.int); + A.RangeError_checkNotNegative(count, _s5_); + return new A.SkipIterable(iterable, count, $E._eval$1("SkipIterable<0>")); + }, + IterableElementError_noElement() { + return new A.StateError("No element"); + }, + IterableElementError_tooFew() { + return new A.StateError("Too few elements"); + }, + CastStream: function CastStream(t0, t1) { + this._source = t0; + this.$ti = t1; + }, + CastStreamSubscription: function CastStreamSubscription(t0, t1, t2) { + var _ = this; + _._source = t0; + _.__internal$_zone = t1; + _._handleError = _._handleData = null; + _.$ti = t2; + }, + _CastIterableBase: function _CastIterableBase() { + }, + CastIterator: function CastIterator(t0, t1) { + this._source = t0; + this.$ti = t1; + }, + CastIterable: function CastIterable(t0, t1) { + this._source = t0; + this.$ti = t1; + }, + _EfficientLengthCastIterable: function _EfficientLengthCastIterable(t0, t1) { + this._source = t0; + this.$ti = t1; + }, + _CastListBase: function _CastListBase() { + }, + CastList: function CastList(t0, t1) { + this._source = t0; + this.$ti = t1; + }, + LateError: function LateError(t0) { + this._message = t0; + }, + CodeUnits: function CodeUnits(t0) { + this._string = t0; + }, + nullFuture_closure: function nullFuture_closure() { + }, + SentinelValue: function SentinelValue() { + }, + EfficientLengthIterable: function EfficientLengthIterable() { + }, + ListIterable: function ListIterable() { + }, + SubListIterable: function SubListIterable(t0, t1, t2, t3) { + var _ = this; + _.__internal$_iterable = t0; + _._start = t1; + _._endOrLength = t2; + _.$ti = t3; + }, + ListIterator: function ListIterator(t0, t1, t2) { + var _ = this; + _.__internal$_iterable = t0; + _.__internal$_length = t1; + _.__internal$_index = 0; + _.__internal$_current = null; + _.$ti = t2; + }, + MappedIterable: function MappedIterable(t0, t1, t2) { + this.__internal$_iterable = t0; + this._f = t1; + this.$ti = t2; + }, + EfficientLengthMappedIterable: function EfficientLengthMappedIterable(t0, t1, t2) { + this.__internal$_iterable = t0; + this._f = t1; + this.$ti = t2; + }, + MappedIterator: function MappedIterator(t0, t1, t2) { + var _ = this; + _.__internal$_current = null; + _._iterator = t0; + _._f = t1; + _.$ti = t2; + }, + MappedListIterable: function MappedListIterable(t0, t1, t2) { + this._source = t0; + this._f = t1; + this.$ti = t2; + }, + WhereIterable: function WhereIterable(t0, t1, t2) { + this.__internal$_iterable = t0; + this._f = t1; + this.$ti = t2; + }, + WhereIterator: function WhereIterator(t0, t1, t2) { + this._iterator = t0; + this._f = t1; + this.$ti = t2; + }, + ExpandIterable: function ExpandIterable(t0, t1, t2) { + this.__internal$_iterable = t0; + this._f = t1; + this.$ti = t2; + }, + ExpandIterator: function ExpandIterator(t0, t1, t2, t3) { + var _ = this; + _._iterator = t0; + _._f = t1; + _._currentExpansion = t2; + _.__internal$_current = null; + _.$ti = t3; + }, + TakeIterable: function TakeIterable(t0, t1, t2) { + this.__internal$_iterable = t0; + this._takeCount = t1; + this.$ti = t2; + }, + EfficientLengthTakeIterable: function EfficientLengthTakeIterable(t0, t1, t2) { + this.__internal$_iterable = t0; + this._takeCount = t1; + this.$ti = t2; + }, + TakeIterator: function TakeIterator(t0, t1, t2) { + this._iterator = t0; + this._remaining = t1; + this.$ti = t2; + }, + SkipIterable: function SkipIterable(t0, t1, t2) { + this.__internal$_iterable = t0; + this._skipCount = t1; + this.$ti = t2; + }, + EfficientLengthSkipIterable: function EfficientLengthSkipIterable(t0, t1, t2) { + this.__internal$_iterable = t0; + this._skipCount = t1; + this.$ti = t2; + }, + SkipIterator: function SkipIterator(t0, t1, t2) { + this._iterator = t0; + this._skipCount = t1; + this.$ti = t2; + }, + SkipWhileIterable: function SkipWhileIterable(t0, t1, t2) { + this.__internal$_iterable = t0; + this._f = t1; + this.$ti = t2; + }, + SkipWhileIterator: function SkipWhileIterator(t0, t1, t2) { + var _ = this; + _._iterator = t0; + _._f = t1; + _._hasSkipped = false; + _.$ti = t2; + }, + EmptyIterable: function EmptyIterable(t0) { + this.$ti = t0; + }, + EmptyIterator: function EmptyIterator(t0) { + this.$ti = t0; + }, + WhereTypeIterable: function WhereTypeIterable(t0, t1) { + this._source = t0; + this.$ti = t1; + }, + WhereTypeIterator: function WhereTypeIterator(t0, t1) { + this._source = t0; + this.$ti = t1; + }, + FixedLengthListMixin: function FixedLengthListMixin() { + }, + UnmodifiableListMixin: function UnmodifiableListMixin() { + }, + UnmodifiableListBase: function UnmodifiableListBase() { + }, + ReversedListIterable: function ReversedListIterable(t0, t1) { + this._source = t0; + this.$ti = t1; + }, + __CastListBase__CastIterableBase_ListMixin: function __CastListBase__CastIterableBase_ListMixin() { + }, + ConstantMap__throwUnmodifiable() { + throw A.wrapException(A.UnsupportedError$("Cannot modify unmodifiable Map")); + }, + unminifyOrTag(rawClassName) { + var preserved = init.mangledGlobalNames[rawClassName]; + if (preserved != null) + return preserved; + return rawClassName; + }, + isJsIndexable(object, record) { + var result; + if (record != null) { + result = record.x; + if (result != null) + return result; + } + return type$.JavaScriptIndexingBehavior_dynamic._is(object); + }, + S(value) { + var result; + if (typeof value == "string") + return value; + if (typeof value == "number") { + if (value !== 0) + return "" + value; + } else if (true === value) + return "true"; + else if (false === value) + return "false"; + else if (value == null) + return "null"; + result = J.toString$0$(value); + return result; + }, + Primitives_objectHashCode(object) { + var hash, + property = $.Primitives__identityHashCodeProperty; + if (property == null) + property = $.Primitives__identityHashCodeProperty = Symbol("identityHashCode"); + hash = object[property]; + if (hash == null) { + hash = Math.random() * 0x3fffffff | 0; + object[property] = hash; + } + return hash; + }, + Primitives_parseInt(source, radix) { + var decimalMatch, + match = /^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(source); + if (match == null) + return null; + if (3 >= match.length) + return A.ioore(match, 3); + decimalMatch = match[3]; + if (decimalMatch != null) + return parseInt(source, 10); + if (match[2] != null) + return parseInt(source, 16); + return null; + }, + Primitives_objectTypeName(object) { + var interceptor, dispatchName, $constructor, constructorName; + if (object instanceof A.Object) + return A._rtiToString(A.instanceType(object), null); + interceptor = J.getInterceptor$(object); + if (interceptor === B.Interceptor_methods || interceptor === B.JavaScriptObject_methods || type$.UnknownJavaScriptObject._is(object)) { + dispatchName = B.C_JS_CONST(object); + if (dispatchName !== "Object" && dispatchName !== "") + return dispatchName; + $constructor = object.constructor; + if (typeof $constructor == "function") { + constructorName = $constructor.name; + if (typeof constructorName == "string" && constructorName !== "Object" && constructorName !== "") + return constructorName; + } + } + return A._rtiToString(A.instanceType(object), null); + }, + Primitives_safeToString(object) { + var hooks, i, hookResult; + if (typeof object == "number" || A._isBool(object)) + return J.toString$0$(object); + if (typeof object == "string") + return JSON.stringify(object); + if (object instanceof A.Closure) + return object.toString$0(0); + hooks = $.$get$_safeToStringHooks(); + for (i = 0; i < 1; ++i) { + hookResult = hooks[i].tryFormat$1(object); + if (hookResult != null) + return hookResult; + } + return "Instance of '" + A.Primitives_objectTypeName(object) + "'"; + }, + Primitives_currentUri() { + if (!!self.location) + return self.location.href; + return null; + }, + Primitives__fromCharCodeApply(array) { + var result, i, i0, chunkEnd, + end = array.length; + if (end <= 500) + return String.fromCharCode.apply(null, array); + for (result = "", i = 0; i < end; i = i0) { + i0 = i + 500; + chunkEnd = i0 < end ? i0 : end; + result += String.fromCharCode.apply(null, array.slice(i, chunkEnd)); + } + return result; + }, + Primitives_stringFromCodePoints(codePoints) { + var t1, _i, i, + a = A._setArrayType([], type$.JSArray_int); + for (t1 = codePoints.length, _i = 0; _i < codePoints.length; codePoints.length === t1 || (0, A.throwConcurrentModificationError)(codePoints), ++_i) { + i = codePoints[_i]; + if (!A._isInt(i)) + throw A.wrapException(A.argumentErrorValue(i)); + if (i <= 65535) + B.JSArray_methods.add$1(a, i); + else if (i <= 1114111) { + B.JSArray_methods.add$1(a, 55296 + (B.JSInt_methods._shrOtherPositive$1(i - 65536, 10) & 1023)); + B.JSArray_methods.add$1(a, 56320 + (i & 1023)); + } else + throw A.wrapException(A.argumentErrorValue(i)); + } + return A.Primitives__fromCharCodeApply(a); + }, + Primitives_stringFromCharCodes(charCodes) { + var t1, _i, i; + for (t1 = charCodes.length, _i = 0; _i < t1; ++_i) { + i = charCodes[_i]; + if (!A._isInt(i)) + throw A.wrapException(A.argumentErrorValue(i)); + if (i < 0) + throw A.wrapException(A.argumentErrorValue(i)); + if (i > 65535) + return A.Primitives_stringFromCodePoints(charCodes); + } + return A.Primitives__fromCharCodeApply(charCodes); + }, + Primitives_stringFromNativeUint8List(charCodes, start, end) { + var i, result, i0, chunkEnd; + if (end <= 500 && start === 0 && end === charCodes.length) + return String.fromCharCode.apply(null, charCodes); + for (i = start, result = ""; i < end; i = i0) { + i0 = i + 500; + chunkEnd = i0 < end ? i0 : end; + result += String.fromCharCode.apply(null, charCodes.subarray(i, chunkEnd)); + } + return result; + }, + Primitives_stringFromCharCode(charCode) { + var bits; + if (0 <= charCode) { + if (charCode <= 65535) + return String.fromCharCode(charCode); + if (charCode <= 1114111) { + bits = charCode - 65536; + return String.fromCharCode((B.JSInt_methods._shrOtherPositive$1(bits, 10) | 55296) >>> 0, bits & 1023 | 56320); + } + } + throw A.wrapException(A.RangeError$range(charCode, 0, 1114111, null, null)); + }, + Primitives_lazyAsJsDate(receiver) { + if (receiver.date === void 0) + receiver.date = new Date(receiver._core$_value); + return receiver.date; + }, + Primitives_getYear(receiver) { + var t1 = A.Primitives_lazyAsJsDate(receiver).getUTCFullYear() + 0; + return t1; + }, + Primitives_getMonth(receiver) { + var t1 = A.Primitives_lazyAsJsDate(receiver).getUTCMonth() + 1; + return t1; + }, + Primitives_getDay(receiver) { + var t1 = A.Primitives_lazyAsJsDate(receiver).getUTCDate() + 0; + return t1; + }, + Primitives_getHours(receiver) { + var t1 = A.Primitives_lazyAsJsDate(receiver).getUTCHours() + 0; + return t1; + }, + Primitives_getMinutes(receiver) { + var t1 = A.Primitives_lazyAsJsDate(receiver).getUTCMinutes() + 0; + return t1; + }, + Primitives_getSeconds(receiver) { + var t1 = A.Primitives_lazyAsJsDate(receiver).getUTCSeconds() + 0; + return t1; + }, + Primitives_getMilliseconds(receiver) { + var t1 = A.Primitives_lazyAsJsDate(receiver).getUTCMilliseconds() + 0; + return t1; + }, + Primitives_extractStackTrace(error) { + var jsError = error.$thrownJsError; + if (jsError == null) + return null; + return A.getTraceFromException(jsError); + }, + Primitives_trySetStackTrace(error, stackTrace) { + var jsError; + if (error.$thrownJsError == null) { + jsError = new Error(); + A.initializeExceptionWrapper(error, jsError); + error.$thrownJsError = jsError; + jsError.stack = stackTrace.toString$0(0); + } + }, + iae(argument) { + throw A.wrapException(A.argumentErrorValue(argument)); + }, + ioore(receiver, index) { + if (receiver == null) + J.get$length$asx(receiver); + throw A.wrapException(A.diagnoseIndexError(receiver, index)); + }, + diagnoseIndexError(indexable, index) { + var $length, _s5_ = "index"; + if (!A._isInt(index)) + return new A.ArgumentError(true, index, _s5_, null); + $length = A._asInt(J.get$length$asx(indexable)); + if (index < 0 || index >= $length) + return A.IndexError$withLength(index, $length, indexable, _s5_); + return A.RangeError$value(index, _s5_); + }, + diagnoseRangeError(start, end, $length) { + if (start > $length) + return A.RangeError$range(start, 0, $length, "start", null); + if (end != null) + if (end < start || end > $length) + return A.RangeError$range(end, start, $length, "end", null); + return new A.ArgumentError(true, end, "end", null); + }, + argumentErrorValue(object) { + return new A.ArgumentError(true, object, null, null); + }, + wrapException(ex) { + return A.initializeExceptionWrapper(ex, new Error()); + }, + initializeExceptionWrapper(ex, wrapper) { + var t1; + if (ex == null) + ex = new A.TypeError(); + wrapper.dartException = ex; + t1 = A.toStringWrapper; + if ("defineProperty" in Object) { + Object.defineProperty(wrapper, "message", {get: t1}); + wrapper.name = ""; + } else + wrapper.toString = t1; + return wrapper; + }, + toStringWrapper() { + return J.toString$0$(this.dartException); + }, + throwExpression(ex, wrapper) { + throw A.initializeExceptionWrapper(ex, wrapper == null ? new Error() : wrapper); + }, + throwUnsupportedOperation(o, operation, verb) { + var wrapper; + if (operation == null) + operation = 0; + if (verb == null) + verb = 0; + wrapper = Error(); + A.throwExpression(A._diagnoseUnsupportedOperation(o, operation, verb), wrapper); + }, + _diagnoseUnsupportedOperation(o, encodedOperation, encodedVerb) { + var operation, table, tableLength, index, verb, object, flags, article, adjective; + if (typeof encodedOperation == "string") + operation = encodedOperation; + else { + table = "[]=;add;removeWhere;retainWhere;removeRange;setRange;setInt8;setInt16;setInt32;setUint8;setUint16;setUint32;setFloat32;setFloat64".split(";"); + tableLength = table.length; + index = encodedOperation; + if (index > tableLength) { + encodedVerb = index / tableLength | 0; + index %= tableLength; + } + operation = table[index]; + } + verb = typeof encodedVerb == "string" ? encodedVerb : "modify;remove from;add to".split(";")[encodedVerb]; + object = type$.List_dynamic._is(o) ? "list" : "ByteData"; + flags = o.$flags | 0; + article = "a "; + if ((flags & 4) !== 0) + adjective = "constant "; + else if ((flags & 2) !== 0) { + adjective = "unmodifiable "; + article = "an "; + } else + adjective = (flags & 1) !== 0 ? "fixed-length " : ""; + return new A.UnsupportedError("'" + operation + "': Cannot " + verb + " " + article + adjective + object); + }, + throwConcurrentModificationError(collection) { + throw A.wrapException(A.ConcurrentModificationError$(collection)); + }, + TypeErrorDecoder_extractPattern(message) { + var match, $arguments, argumentsExpr, expr, method, receiver; + message = A.quoteStringForRegExp(message.replace(String({}), "$receiver$")); + match = message.match(/\\\$[a-zA-Z]+\\\$/g); + if (match == null) + match = A._setArrayType([], type$.JSArray_String); + $arguments = match.indexOf("\\$arguments\\$"); + argumentsExpr = match.indexOf("\\$argumentsExpr\\$"); + expr = match.indexOf("\\$expr\\$"); + method = match.indexOf("\\$method\\$"); + receiver = match.indexOf("\\$receiver\\$"); + return new A.TypeErrorDecoder(message.replace(new RegExp("\\\\\\$arguments\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$", "g"), "((?:x|[^x])*)"), $arguments, argumentsExpr, expr, method, receiver); + }, + TypeErrorDecoder_provokeCallErrorOn(expression) { + return function($expr$) { + var $argumentsExpr$ = "$arguments$"; + try { + $expr$.$method$($argumentsExpr$); + } catch (e) { + return e.message; + } + }(expression); + }, + TypeErrorDecoder_provokePropertyErrorOn(expression) { + return function($expr$) { + try { + $expr$.$method$; + } catch (e) { + return e.message; + } + }(expression); + }, + JsNoSuchMethodError$(_message, match) { + var t1 = match == null, + t2 = t1 ? null : match.method; + return new A.JsNoSuchMethodError(_message, t2, t1 ? null : match.receiver); + }, + unwrapException(ex) { + if (ex == null) + return new A.NullThrownFromJavaScriptException(ex); + if (typeof ex !== "object") + return ex; + if ("dartException" in ex) + return A.saveStackTrace(ex, ex.dartException); + return A._unwrapNonDartException(ex); + }, + saveStackTrace(ex, error) { + if (type$.Error._is(error)) + if (error.$thrownJsError == null) + error.$thrownJsError = ex; + return error; + }, + _unwrapNonDartException(ex) { + var message, number, ieErrorCode, nsme, notClosure, nullCall, nullLiteralCall, undefCall, undefLiteralCall, nullProperty, undefProperty, undefLiteralProperty, match; + if (!("message" in ex)) + return ex; + message = ex.message; + if ("number" in ex && typeof ex.number == "number") { + number = ex.number; + ieErrorCode = number & 65535; + if ((B.JSInt_methods._shrOtherPositive$1(number, 16) & 8191) === 10) + switch (ieErrorCode) { + case 438: + return A.saveStackTrace(ex, A.JsNoSuchMethodError$(A.S(message) + " (Error " + ieErrorCode + ")", null)); + case 445: + case 5007: + A.S(message); + return A.saveStackTrace(ex, new A.NullError()); + } + } + if (ex instanceof TypeError) { + nsme = $.$get$TypeErrorDecoder_noSuchMethodPattern(); + notClosure = $.$get$TypeErrorDecoder_notClosurePattern(); + nullCall = $.$get$TypeErrorDecoder_nullCallPattern(); + nullLiteralCall = $.$get$TypeErrorDecoder_nullLiteralCallPattern(); + undefCall = $.$get$TypeErrorDecoder_undefinedCallPattern(); + undefLiteralCall = $.$get$TypeErrorDecoder_undefinedLiteralCallPattern(); + nullProperty = $.$get$TypeErrorDecoder_nullPropertyPattern(); + $.$get$TypeErrorDecoder_nullLiteralPropertyPattern(); + undefProperty = $.$get$TypeErrorDecoder_undefinedPropertyPattern(); + undefLiteralProperty = $.$get$TypeErrorDecoder_undefinedLiteralPropertyPattern(); + match = nsme.matchTypeError$1(message); + if (match != null) + return A.saveStackTrace(ex, A.JsNoSuchMethodError$(A._asString(message), match)); + else { + match = notClosure.matchTypeError$1(message); + if (match != null) { + match.method = "call"; + return A.saveStackTrace(ex, A.JsNoSuchMethodError$(A._asString(message), match)); + } else if (nullCall.matchTypeError$1(message) != null || nullLiteralCall.matchTypeError$1(message) != null || undefCall.matchTypeError$1(message) != null || undefLiteralCall.matchTypeError$1(message) != null || nullProperty.matchTypeError$1(message) != null || nullLiteralCall.matchTypeError$1(message) != null || undefProperty.matchTypeError$1(message) != null || undefLiteralProperty.matchTypeError$1(message) != null) { + A._asString(message); + return A.saveStackTrace(ex, new A.NullError()); + } + } + return A.saveStackTrace(ex, new A.UnknownJsTypeError(typeof message == "string" ? message : "")); + } + if (ex instanceof RangeError) { + if (typeof message == "string" && message.indexOf("call stack") !== -1) + return new A.StackOverflowError(); + message = function(ex) { + try { + return String(ex); + } catch (e) { + } + return null; + }(ex); + return A.saveStackTrace(ex, new A.ArgumentError(false, null, null, typeof message == "string" ? message.replace(/^RangeError:\s*/, "") : message)); + } + if (typeof InternalError == "function" && ex instanceof InternalError) + if (typeof message == "string" && message === "too much recursion") + return new A.StackOverflowError(); + return ex; + }, + getTraceFromException(exception) { + var trace; + if (exception == null) + return new A._StackTrace(exception); + trace = exception.$cachedTrace; + if (trace != null) + return trace; + trace = new A._StackTrace(exception); + if (typeof exception === "object") + exception.$cachedTrace = trace; + return trace; + }, + objectHashCode(object) { + if (object == null) + return J.get$hashCode$(object); + if (typeof object == "object") + return A.Primitives_objectHashCode(object); + return J.get$hashCode$(object); + }, + fillLiteralMap(keyValuePairs, result) { + var index, index0, index1, + $length = keyValuePairs.length; + for (index = 0; index < $length; index = index1) { + index0 = index + 1; + index1 = index0 + 1; + result.$indexSet(0, keyValuePairs[index], keyValuePairs[index0]); + } + return result; + }, + _invokeClosure(closure, numberOfArguments, arg1, arg2, arg3, arg4) { + type$.Function._as(closure); + switch (A._asInt(numberOfArguments)) { + case 0: + return closure.call$0(); + case 1: + return closure.call$1(arg1); + case 2: + return closure.call$2(arg1, arg2); + case 3: + return closure.call$3(arg1, arg2, arg3); + case 4: + return closure.call$4(arg1, arg2, arg3, arg4); + } + throw A.wrapException(new A._Exception("Unsupported number of arguments for wrapped closure")); + }, + convertDartClosureToJS(closure, arity) { + var $function = closure.$identity; + if (!!$function) + return $function; + $function = A.convertDartClosureToJSUncached(closure, arity); + closure.$identity = $function; + return $function; + }, + convertDartClosureToJSUncached(closure, arity) { + var entry; + switch (arity) { + case 0: + entry = closure.call$0; + break; + case 1: + entry = closure.call$1; + break; + case 2: + entry = closure.call$2; + break; + case 3: + entry = closure.call$3; + break; + case 4: + entry = closure.call$4; + break; + default: + entry = null; + } + if (entry != null) + return entry.bind(closure); + return function(closure, arity, invoke) { + return function(a1, a2, a3, a4) { + return invoke(closure, arity, a1, a2, a3, a4); + }; + }(closure, arity, A._invokeClosure); + }, + Closure_fromTearOff(parameters) { + var $prototype, $constructor, t2, trampoline, applyTrampoline, i, stub, stub0, stubName, stubCallName, + container = parameters.co, + isStatic = parameters.iS, + isIntercepted = parameters.iI, + needsDirectAccess = parameters.nDA, + applyTrampolineIndex = parameters.aI, + funsOrNames = parameters.fs, + callNames = parameters.cs, + $name = funsOrNames[0], + callName = callNames[0], + $function = container[$name], + t1 = parameters.fT; + t1.toString; + $prototype = isStatic ? Object.create(new A.StaticClosure().constructor.prototype) : Object.create(new A.BoundClosure(null, null).constructor.prototype); + $prototype.$initialize = $prototype.constructor; + $constructor = isStatic ? function static_tear_off() { + this.$initialize(); + } : function tear_off(a, b) { + this.$initialize(a, b); + }; + $prototype.constructor = $constructor; + $constructor.prototype = $prototype; + $prototype.$_name = $name; + $prototype.$_target = $function; + t2 = !isStatic; + if (t2) + trampoline = A.Closure_forwardCallTo($name, $function, isIntercepted, needsDirectAccess); + else { + $prototype.$static_name = $name; + trampoline = $function; + } + $prototype.$signature = A.Closure__computeSignatureFunction(t1, isStatic, isIntercepted); + $prototype[callName] = trampoline; + for (applyTrampoline = trampoline, i = 1; i < funsOrNames.length; ++i) { + stub = funsOrNames[i]; + if (typeof stub == "string") { + stub0 = container[stub]; + stubName = stub; + stub = stub0; + } else + stubName = ""; + stubCallName = callNames[i]; + if (stubCallName != null) { + if (t2) + stub = A.Closure_forwardCallTo(stubName, stub, isIntercepted, needsDirectAccess); + $prototype[stubCallName] = stub; + } + if (i === applyTrampolineIndex) + applyTrampoline = stub; + } + $prototype["call*"] = applyTrampoline; + $prototype.$requiredArgCount = parameters.rC; + $prototype.$defaultValues = parameters.dV; + return $constructor; + }, + Closure__computeSignatureFunction(functionType, isStatic, isIntercepted) { + if (typeof functionType == "number") + return functionType; + if (typeof functionType == "string") { + if (isStatic) + throw A.wrapException("Cannot compute signature for static tearoff."); + return function(recipe, evalOnReceiver) { + return function() { + return evalOnReceiver(this, recipe); + }; + }(functionType, A.BoundClosure_evalRecipe); + } + throw A.wrapException("Error in functionType of tearoff"); + }, + Closure_cspForwardCall(arity, needsDirectAccess, stubName, $function) { + var getReceiver = A.BoundClosure_receiverOf; + switch (needsDirectAccess ? -1 : arity) { + case 0: + return function(entry, receiverOf) { + return function() { + return receiverOf(this)[entry](); + }; + }(stubName, getReceiver); + case 1: + return function(entry, receiverOf) { + return function(a) { + return receiverOf(this)[entry](a); + }; + }(stubName, getReceiver); + case 2: + return function(entry, receiverOf) { + return function(a, b) { + return receiverOf(this)[entry](a, b); + }; + }(stubName, getReceiver); + case 3: + return function(entry, receiverOf) { + return function(a, b, c) { + return receiverOf(this)[entry](a, b, c); + }; + }(stubName, getReceiver); + case 4: + return function(entry, receiverOf) { + return function(a, b, c, d) { + return receiverOf(this)[entry](a, b, c, d); + }; + }(stubName, getReceiver); + case 5: + return function(entry, receiverOf) { + return function(a, b, c, d, e) { + return receiverOf(this)[entry](a, b, c, d, e); + }; + }(stubName, getReceiver); + default: + return function(f, receiverOf) { + return function() { + return f.apply(receiverOf(this), arguments); + }; + }($function, getReceiver); + } + }, + Closure_forwardCallTo(stubName, $function, isIntercepted, needsDirectAccess) { + if (isIntercepted) + return A.Closure_forwardInterceptedCallTo(stubName, $function, needsDirectAccess); + return A.Closure_cspForwardCall($function.length, needsDirectAccess, stubName, $function); + }, + Closure_cspForwardInterceptedCall(arity, needsDirectAccess, stubName, $function) { + var getReceiver = A.BoundClosure_receiverOf, + getInterceptor = A.BoundClosure_interceptorOf; + switch (needsDirectAccess ? -1 : arity) { + case 0: + throw A.wrapException(new A.RuntimeError("Intercepted function with no arguments.")); + case 1: + return function(entry, interceptorOf, receiverOf) { + return function() { + return interceptorOf(this)[entry](receiverOf(this)); + }; + }(stubName, getInterceptor, getReceiver); + case 2: + return function(entry, interceptorOf, receiverOf) { + return function(a) { + return interceptorOf(this)[entry](receiverOf(this), a); + }; + }(stubName, getInterceptor, getReceiver); + case 3: + return function(entry, interceptorOf, receiverOf) { + return function(a, b) { + return interceptorOf(this)[entry](receiverOf(this), a, b); + }; + }(stubName, getInterceptor, getReceiver); + case 4: + return function(entry, interceptorOf, receiverOf) { + return function(a, b, c) { + return interceptorOf(this)[entry](receiverOf(this), a, b, c); + }; + }(stubName, getInterceptor, getReceiver); + case 5: + return function(entry, interceptorOf, receiverOf) { + return function(a, b, c, d) { + return interceptorOf(this)[entry](receiverOf(this), a, b, c, d); + }; + }(stubName, getInterceptor, getReceiver); + case 6: + return function(entry, interceptorOf, receiverOf) { + return function(a, b, c, d, e) { + return interceptorOf(this)[entry](receiverOf(this), a, b, c, d, e); + }; + }(stubName, getInterceptor, getReceiver); + default: + return function(f, interceptorOf, receiverOf) { + return function() { + var a = [receiverOf(this)]; + Array.prototype.push.apply(a, arguments); + return f.apply(interceptorOf(this), a); + }; + }($function, getInterceptor, getReceiver); + } + }, + Closure_forwardInterceptedCallTo(stubName, $function, needsDirectAccess) { + var arity, t1; + if ($.BoundClosure__interceptorFieldNameCache == null) + $.BoundClosure__interceptorFieldNameCache = A.BoundClosure__computeFieldNamed("interceptor"); + if ($.BoundClosure__receiverFieldNameCache == null) + $.BoundClosure__receiverFieldNameCache = A.BoundClosure__computeFieldNamed("receiver"); + arity = $function.length; + t1 = A.Closure_cspForwardInterceptedCall(arity, needsDirectAccess, stubName, $function); + return t1; + }, + closureFromTearOff(parameters) { + return A.Closure_fromTearOff(parameters); + }, + BoundClosure_evalRecipe(closure, recipe) { + return A._Universe_evalInEnvironment(init.typeUniverse, A.instanceType(closure._receiver), recipe); + }, + BoundClosure_receiverOf(closure) { + return closure._receiver; + }, + BoundClosure_interceptorOf(closure) { + return closure._interceptor; + }, + BoundClosure__computeFieldNamed(fieldName) { + var names, i, $name, + template = new A.BoundClosure("receiver", "interceptor"), + t1 = Object.getOwnPropertyNames(template); + t1.$flags = 1; + names = t1; + for (t1 = names.length, i = 0; i < t1; ++i) { + $name = names[i]; + if (template[$name] === fieldName) + return $name; + } + throw A.wrapException(A.ArgumentError$("Field name " + fieldName + " not found.", null)); + }, + getIsolateAffinityTag($name) { + return init.getIsolateTag($name); + }, + staticInteropGlobalContext() { + return init.G; + }, + defineProperty(obj, property, value) { + Object.defineProperty(obj, property, {value: value, enumerable: false, writable: true, configurable: true}); + }, + lookupAndCacheInterceptor(obj) { + var interceptor, interceptorClass, altTag, mark, t1, + tag = A._asString($.getTagFunction.call$1(obj)), + record = $.dispatchRecordsForInstanceTags[tag]; + if (record != null) { + Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); + return record.i; + } + interceptor = $.interceptorsForUncacheableTags[tag]; + if (interceptor != null) + return interceptor; + interceptorClass = init.interceptorsByTag[tag]; + if (interceptorClass == null) { + altTag = A._asStringQ($.alternateTagFunction.call$2(obj, tag)); + if (altTag != null) { + record = $.dispatchRecordsForInstanceTags[altTag]; + if (record != null) { + Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); + return record.i; + } + interceptor = $.interceptorsForUncacheableTags[altTag]; + if (interceptor != null) + return interceptor; + interceptorClass = init.interceptorsByTag[altTag]; + tag = altTag; + } + } + if (interceptorClass == null) + return null; + interceptor = interceptorClass.prototype; + mark = tag[0]; + if (mark === "!") { + record = A.makeLeafDispatchRecord(interceptor); + $.dispatchRecordsForInstanceTags[tag] = record; + Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); + return record.i; + } + if (mark === "~") { + $.interceptorsForUncacheableTags[tag] = interceptor; + return interceptor; + } + if (mark === "-") { + t1 = A.makeLeafDispatchRecord(interceptor); + Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {value: t1, enumerable: false, writable: true, configurable: true}); + return t1.i; + } + if (mark === "+") + return A.patchInteriorProto(obj, interceptor); + if (mark === "*") + throw A.wrapException(A.UnimplementedError$(tag)); + if (init.leafTags[tag] === true) { + t1 = A.makeLeafDispatchRecord(interceptor); + Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {value: t1, enumerable: false, writable: true, configurable: true}); + return t1.i; + } else + return A.patchInteriorProto(obj, interceptor); + }, + patchInteriorProto(obj, interceptor) { + var proto = Object.getPrototypeOf(obj); + Object.defineProperty(proto, init.dispatchPropertyName, {value: J.makeDispatchRecord(interceptor, proto, null, null), enumerable: false, writable: true, configurable: true}); + return interceptor; + }, + makeLeafDispatchRecord(interceptor) { + return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJavaScriptIndexingBehavior); + }, + makeDefaultDispatchRecord(tag, interceptorClass, proto) { + var interceptor = interceptorClass.prototype; + if (init.leafTags[tag] === true) + return A.makeLeafDispatchRecord(interceptor); + else + return J.makeDispatchRecord(interceptor, proto, null, null); + }, + initNativeDispatch() { + if (true === $.initNativeDispatchFlag) + return; + $.initNativeDispatchFlag = true; + A.initNativeDispatchContinue(); + }, + initNativeDispatchContinue() { + var map, tags, fun, i, tag, proto, record, interceptorClass; + $.dispatchRecordsForInstanceTags = Object.create(null); + $.interceptorsForUncacheableTags = Object.create(null); + A.initHooks(); + map = init.interceptorsByTag; + tags = Object.getOwnPropertyNames(map); + if (typeof window != "undefined") { + window; + fun = function() { + }; + for (i = 0; i < tags.length; ++i) { + tag = tags[i]; + proto = $.prototypeForTagFunction.call$1(tag); + if (proto != null) { + record = A.makeDefaultDispatchRecord(tag, map[tag], proto); + if (record != null) { + Object.defineProperty(proto, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); + fun.prototype = proto; + } + } + } + } + for (i = 0; i < tags.length; ++i) { + tag = tags[i]; + if (/^[A-Za-z_]/.test(tag)) { + interceptorClass = map[tag]; + map["!" + tag] = interceptorClass; + map["~" + tag] = interceptorClass; + map["-" + tag] = interceptorClass; + map["+" + tag] = interceptorClass; + map["*" + tag] = interceptorClass; + } + } + }, + initHooks() { + var transformers, i, transformer, getTag, getUnknownTag, prototypeForTag, + hooks = B.C_JS_CONST0(); + hooks = A.applyHooksTransformer(B.C_JS_CONST1, A.applyHooksTransformer(B.C_JS_CONST2, A.applyHooksTransformer(B.C_JS_CONST3, A.applyHooksTransformer(B.C_JS_CONST3, A.applyHooksTransformer(B.C_JS_CONST4, A.applyHooksTransformer(B.C_JS_CONST5, A.applyHooksTransformer(B.C_JS_CONST6(B.C_JS_CONST), hooks))))))); + if (typeof dartNativeDispatchHooksTransformer != "undefined") { + transformers = dartNativeDispatchHooksTransformer; + if (typeof transformers == "function") + transformers = [transformers]; + if (Array.isArray(transformers)) + for (i = 0; i < transformers.length; ++i) { + transformer = transformers[i]; + if (typeof transformer == "function") + hooks = transformer(hooks) || hooks; + } + } + getTag = hooks.getTag; + getUnknownTag = hooks.getUnknownTag; + prototypeForTag = hooks.prototypeForTag; + $.getTagFunction = new A.initHooks_closure(getTag); + $.alternateTagFunction = new A.initHooks_closure0(getUnknownTag); + $.prototypeForTagFunction = new A.initHooks_closure1(prototypeForTag); + }, + applyHooksTransformer(transformer, hooks) { + return transformer(hooks) || hooks; + }, + createRecordTypePredicate(shape, fieldRtis) { + var $length = fieldRtis.length, + $function = init.rttc["" + $length + ";" + shape]; + if ($function == null) + return null; + if ($length === 0) + return $function; + if ($length === $function.length) + return $function.apply(null, fieldRtis); + return $function(fieldRtis); + }, + JSSyntaxRegExp_makeNative(source, multiLine, caseSensitive, unicode, dotAll, extraFlags) { + var m = multiLine ? "m" : "", + i = caseSensitive ? "" : "i", + u = unicode ? "u" : "", + s = dotAll ? "s" : "", + regexp = function(source, modifiers) { + try { + return new RegExp(source, modifiers); + } catch (e) { + return e; + } + }(source, m + i + u + s + extraFlags); + if (regexp instanceof RegExp) + return regexp; + throw A.wrapException(A.FormatException$("Illegal RegExp pattern (" + String(regexp) + ")", source, null)); + }, + stringContainsUnchecked(receiver, other, startIndex) { + var t1; + if (typeof other == "string") + return receiver.indexOf(other, startIndex) >= 0; + else if (other instanceof A.JSSyntaxRegExp) { + t1 = B.JSString_methods.substring$1(receiver, startIndex); + return other._nativeRegExp.test(t1); + } else + return !J.allMatches$1$s(other, B.JSString_methods.substring$1(receiver, startIndex)).get$isEmpty(0); + }, + escapeReplacement(replacement) { + if (replacement.indexOf("$", 0) >= 0) + return replacement.replace(/\$/g, "$$$$"); + return replacement; + }, + stringReplaceFirstRE(receiver, regexp, replacement, startIndex) { + var match = regexp._execGlobal$2(receiver, startIndex); + if (match == null) + return receiver; + return A.stringReplaceRangeUnchecked(receiver, match._match.index, match.get$end(), replacement); + }, + quoteStringForRegExp(string) { + if (/[[\]{}()*+?.\\^$|]/.test(string)) + return string.replace(/[[\]{}()*+?.\\^$|]/g, "\\$&"); + return string; + }, + stringReplaceAllUnchecked(receiver, pattern, replacement) { + var nativeRegexp; + if (typeof pattern == "string") + return A.stringReplaceAllUncheckedString(receiver, pattern, replacement); + if (pattern instanceof A.JSSyntaxRegExp) { + nativeRegexp = pattern.get$_nativeGlobalVersion(); + nativeRegexp.lastIndex = 0; + return receiver.replace(nativeRegexp, A.escapeReplacement(replacement)); + } + return A.stringReplaceAllGeneral(receiver, pattern, replacement); + }, + stringReplaceAllGeneral(receiver, pattern, replacement) { + var t1, startIndex, t2, match; + for (t1 = J.allMatches$1$s(pattern, receiver), t1 = t1.get$iterator(t1), startIndex = 0, t2 = ""; t1.moveNext$0();) { + match = t1.get$current(); + t2 = t2 + receiver.substring(startIndex, match.get$start()) + replacement; + startIndex = match.get$end(); + } + t1 = t2 + receiver.substring(startIndex); + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + stringReplaceAllUncheckedString(receiver, pattern, replacement) { + var $length, t1, i; + if (pattern === "") { + if (receiver === "") + return replacement; + $length = receiver.length; + for (t1 = replacement, i = 0; i < $length; ++i) + t1 = t1 + receiver[i] + replacement; + return t1.charCodeAt(0) == 0 ? t1 : t1; + } + if (receiver.indexOf(pattern, 0) < 0) + return receiver; + if (receiver.length < 500 || replacement.indexOf("$", 0) >= 0) + return receiver.split(pattern).join(replacement); + return receiver.replace(new RegExp(A.quoteStringForRegExp(pattern), "g"), A.escapeReplacement(replacement)); + }, + stringReplaceFirstUnchecked(receiver, pattern, replacement, startIndex) { + var index, t1, matches, match; + if (typeof pattern == "string") { + index = receiver.indexOf(pattern, startIndex); + if (index < 0) + return receiver; + return A.stringReplaceRangeUnchecked(receiver, index, index + pattern.length, replacement); + } + if (pattern instanceof A.JSSyntaxRegExp) + return startIndex === 0 ? receiver.replace(pattern._nativeRegExp, A.escapeReplacement(replacement)) : A.stringReplaceFirstRE(receiver, pattern, replacement, startIndex); + t1 = J.allMatches$2$s(pattern, receiver, startIndex); + matches = t1.get$iterator(t1); + if (!matches.moveNext$0()) + return receiver; + match = matches.get$current(); + return B.JSString_methods.replaceRange$3(receiver, match.get$start(), match.get$end(), replacement); + }, + stringReplaceRangeUnchecked(receiver, start, end, replacement) { + return receiver.substring(0, start) + replacement + receiver.substring(end); + }, + ConstantMap: function ConstantMap() { + }, + ConstantStringMap: function ConstantStringMap(t0, t1, t2) { + this._jsIndex = t0; + this._values = t1; + this.$ti = t2; + }, + _KeysOrValues: function _KeysOrValues(t0, t1) { + this._elements = t0; + this.$ti = t1; + }, + _KeysOrValuesOrElementsIterator: function _KeysOrValuesOrElementsIterator(t0, t1, t2) { + var _ = this; + _._elements = t0; + _.__js_helper$_length = t1; + _.__js_helper$_index = 0; + _.__js_helper$_current = null; + _.$ti = t2; + }, + Instantiation: function Instantiation() { + }, + Instantiation1: function Instantiation1(t0, t1) { + this._genericClosure = t0; + this.$ti = t1; + }, + SafeToStringHook: function SafeToStringHook() { + }, + TypeErrorDecoder: function TypeErrorDecoder(t0, t1, t2, t3, t4, t5) { + var _ = this; + _._pattern = t0; + _._arguments = t1; + _._argumentsExpr = t2; + _._expr = t3; + _._method = t4; + _._receiver = t5; + }, + NullError: function NullError() { + }, + JsNoSuchMethodError: function JsNoSuchMethodError(t0, t1, t2) { + this.__js_helper$_message = t0; + this._method = t1; + this._receiver = t2; + }, + UnknownJsTypeError: function UnknownJsTypeError(t0) { + this.__js_helper$_message = t0; + }, + NullThrownFromJavaScriptException: function NullThrownFromJavaScriptException(t0) { + this._irritant = t0; + }, + _StackTrace: function _StackTrace(t0) { + this._exception = t0; + this._trace = null; + }, + Closure: function Closure() { + }, + Closure0Args: function Closure0Args() { + }, + Closure2Args: function Closure2Args() { + }, + TearOffClosure: function TearOffClosure() { + }, + StaticClosure: function StaticClosure() { + }, + BoundClosure: function BoundClosure(t0, t1) { + this._receiver = t0; + this._interceptor = t1; + }, + RuntimeError: function RuntimeError(t0) { + this.message = t0; + }, + JsLinkedHashMap: function JsLinkedHashMap(t0) { + var _ = this; + _.__js_helper$_length = 0; + _._last = _._first = _.__js_helper$_rest = _.__js_helper$_nums = _.__js_helper$_strings = null; + _._modifications = 0; + _.$ti = t0; + }, + LinkedHashMapCell: function LinkedHashMapCell(t0, t1) { + var _ = this; + _.hashMapCellKey = t0; + _.hashMapCellValue = t1; + _._previous = _._next = null; + }, + LinkedHashMapKeysIterable: function LinkedHashMapKeysIterable(t0, t1) { + this.__js_helper$_map = t0; + this.$ti = t1; + }, + LinkedHashMapKeyIterator: function LinkedHashMapKeyIterator(t0, t1, t2, t3) { + var _ = this; + _.__js_helper$_map = t0; + _._modifications = t1; + _._cell = t2; + _.__js_helper$_current = null; + _.$ti = t3; + }, + LinkedHashMapValuesIterable: function LinkedHashMapValuesIterable(t0, t1) { + this.__js_helper$_map = t0; + this.$ti = t1; + }, + LinkedHashMapValueIterator: function LinkedHashMapValueIterator(t0, t1, t2, t3) { + var _ = this; + _.__js_helper$_map = t0; + _._modifications = t1; + _._cell = t2; + _.__js_helper$_current = null; + _.$ti = t3; + }, + initHooks_closure: function initHooks_closure(t0) { + this.getTag = t0; + }, + initHooks_closure0: function initHooks_closure0(t0) { + this.getUnknownTag = t0; + }, + initHooks_closure1: function initHooks_closure1(t0) { + this.prototypeForTag = t0; + }, + JSSyntaxRegExp: function JSSyntaxRegExp(t0, t1) { + var _ = this; + _.pattern = t0; + _._nativeRegExp = t1; + _._hasCapturesCache = _._nativeAnchoredRegExp = _._nativeGlobalRegExp = null; + }, + _MatchImplementation: function _MatchImplementation(t0) { + this._match = t0; + }, + _AllMatchesIterable: function _AllMatchesIterable(t0, t1, t2) { + this._re = t0; + this.__js_helper$_string = t1; + this.__js_helper$_start = t2; + }, + _AllMatchesIterator: function _AllMatchesIterator(t0, t1, t2) { + var _ = this; + _._regExp = t0; + _.__js_helper$_string = t1; + _._nextIndex = t2; + _.__js_helper$_current = null; + }, + StringMatch: function StringMatch(t0, t1) { + this.start = t0; + this.pattern = t1; + }, + _StringAllMatchesIterable: function _StringAllMatchesIterable(t0, t1, t2) { + this._input = t0; + this._pattern = t1; + this.__js_helper$_index = t2; + }, + _StringAllMatchesIterator: function _StringAllMatchesIterator(t0, t1, t2) { + var _ = this; + _._input = t0; + _._pattern = t1; + _.__js_helper$_index = t2; + _.__js_helper$_current = null; + }, + throwLateFieldNI(fieldName) { + throw A.initializeExceptionWrapper(A.LateError$fieldNI(fieldName), new Error()); + }, + throwLateFieldAI(fieldName) { + throw A.initializeExceptionWrapper(A.LateError$fieldAI(fieldName), new Error()); + }, + throwLateFieldADI(fieldName) { + throw A.initializeExceptionWrapper(A.LateError$fieldADI(fieldName), new Error()); + }, + _Cell$named(_name) { + var t1 = new A._Cell(_name); + return t1._value = t1; + }, + _Cell: function _Cell(t0) { + this._name = t0; + this._value = null; + }, + _ensureNativeList(list) { + return list; + }, + NativeInt8List__create1(arg) { + return new Int8Array(arg); + }, + NativeUint8List_NativeUint8List($length) { + return new Uint8Array($length); + }, + _checkValidIndex(index, list, $length) { + if (index >>> 0 !== index || index >= $length) + throw A.wrapException(A.diagnoseIndexError(list, index)); + }, + _checkValidRange(start, end, $length) { + var t1; + if (!(start >>> 0 !== start)) + t1 = end >>> 0 !== end || start > end || end > $length; + else + t1 = true; + if (t1) + throw A.wrapException(A.diagnoseRangeError(start, end, $length)); + return end; + }, + NativeByteBuffer: function NativeByteBuffer() { + }, + NativeTypedData: function NativeTypedData() { + }, + NativeByteData: function NativeByteData() { + }, + NativeTypedArray: function NativeTypedArray() { + }, + NativeTypedArrayOfDouble: function NativeTypedArrayOfDouble() { + }, + NativeTypedArrayOfInt: function NativeTypedArrayOfInt() { + }, + NativeFloat32List: function NativeFloat32List() { + }, + NativeFloat64List: function NativeFloat64List() { + }, + NativeInt16List: function NativeInt16List() { + }, + NativeInt32List: function NativeInt32List() { + }, + NativeInt8List: function NativeInt8List() { + }, + NativeUint16List: function NativeUint16List() { + }, + NativeUint32List: function NativeUint32List() { + }, + NativeUint8ClampedList: function NativeUint8ClampedList() { + }, + NativeUint8List: function NativeUint8List() { + }, + _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin: function _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin() { + }, + _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin: function _NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin() { + }, + _NativeTypedArrayOfInt_NativeTypedArray_ListMixin: function _NativeTypedArrayOfInt_NativeTypedArray_ListMixin() { + }, + _NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin: function _NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin() { + }, + Rti__getFutureFromFutureOr(universe, rti) { + var future = rti._precomputed1; + return future == null ? rti._precomputed1 = A._Universe__lookupInterfaceRti(universe, "Future", [rti._primary]) : future; + }, + Rti__isUnionOfFunctionType(rti) { + var kind = rti._kind; + if (kind === 6 || kind === 7) + return A.Rti__isUnionOfFunctionType(rti._primary); + return kind === 11 || kind === 12; + }, + Rti__getCanonicalRecipe(rti) { + return rti._canonicalRecipe; + }, + findType(recipe) { + return A._Universe_eval(init.typeUniverse, recipe, false); + }, + instantiatedGenericFunctionType(genericFunctionRti, instantiationRti) { + var t1, cache, key, probe, rti; + if (genericFunctionRti == null) + return null; + t1 = instantiationRti._rest; + cache = genericFunctionRti._bindCache; + if (cache == null) + cache = genericFunctionRti._bindCache = new Map(); + key = instantiationRti._canonicalRecipe; + probe = cache.get(key); + if (probe != null) + return probe; + rti = A._substitute(init.typeUniverse, genericFunctionRti._primary, t1, 0); + cache.set(key, rti); + return rti; + }, + _substitute(universe, rti, typeArguments, depth) { + var baseType, substitutedBaseType, interfaceTypeArguments, substitutedInterfaceTypeArguments, base, substitutedBase, $arguments, substitutedArguments, t1, fields, substitutedFields, returnType, substitutedReturnType, functionParameters, substitutedFunctionParameters, bounds, substitutedBounds, index, argument, + kind = rti._kind; + switch (kind) { + case 5: + case 1: + case 2: + case 3: + case 4: + return rti; + case 6: + baseType = rti._primary; + substitutedBaseType = A._substitute(universe, baseType, typeArguments, depth); + if (substitutedBaseType === baseType) + return rti; + return A._Universe__lookupQuestionRti(universe, substitutedBaseType, true); + case 7: + baseType = rti._primary; + substitutedBaseType = A._substitute(universe, baseType, typeArguments, depth); + if (substitutedBaseType === baseType) + return rti; + return A._Universe__lookupFutureOrRti(universe, substitutedBaseType, true); + case 8: + interfaceTypeArguments = rti._rest; + substitutedInterfaceTypeArguments = A._substituteArray(universe, interfaceTypeArguments, typeArguments, depth); + if (substitutedInterfaceTypeArguments === interfaceTypeArguments) + return rti; + return A._Universe__lookupInterfaceRti(universe, rti._primary, substitutedInterfaceTypeArguments); + case 9: + base = rti._primary; + substitutedBase = A._substitute(universe, base, typeArguments, depth); + $arguments = rti._rest; + substitutedArguments = A._substituteArray(universe, $arguments, typeArguments, depth); + if (substitutedBase === base && substitutedArguments === $arguments) + return rti; + return A._Universe__lookupBindingRti(universe, substitutedBase, substitutedArguments); + case 10: + t1 = rti._primary; + fields = rti._rest; + substitutedFields = A._substituteArray(universe, fields, typeArguments, depth); + if (substitutedFields === fields) + return rti; + return A._Universe__lookupRecordRti(universe, t1, substitutedFields); + case 11: + returnType = rti._primary; + substitutedReturnType = A._substitute(universe, returnType, typeArguments, depth); + functionParameters = rti._rest; + substitutedFunctionParameters = A._substituteFunctionParameters(universe, functionParameters, typeArguments, depth); + if (substitutedReturnType === returnType && substitutedFunctionParameters === functionParameters) + return rti; + return A._Universe__lookupFunctionRti(universe, substitutedReturnType, substitutedFunctionParameters); + case 12: + bounds = rti._rest; + depth += bounds.length; + substitutedBounds = A._substituteArray(universe, bounds, typeArguments, depth); + base = rti._primary; + substitutedBase = A._substitute(universe, base, typeArguments, depth); + if (substitutedBounds === bounds && substitutedBase === base) + return rti; + return A._Universe__lookupGenericFunctionRti(universe, substitutedBase, substitutedBounds, true); + case 13: + index = rti._primary; + if (index < depth) + return rti; + argument = typeArguments[index - depth]; + if (argument == null) + return rti; + return argument; + default: + throw A.wrapException(A.AssertionError$("Attempted to substitute unexpected RTI kind " + kind)); + } + }, + _substituteArray(universe, rtiArray, typeArguments, depth) { + var changed, i, rti, substitutedRti, + $length = rtiArray.length, + result = A._Utils_newArrayOrEmpty($length); + for (changed = false, i = 0; i < $length; ++i) { + rti = rtiArray[i]; + substitutedRti = A._substitute(universe, rti, typeArguments, depth); + if (substitutedRti !== rti) + changed = true; + result[i] = substitutedRti; + } + return changed ? result : rtiArray; + }, + _substituteNamed(universe, namedArray, typeArguments, depth) { + var changed, i, t1, t2, rti, substitutedRti, + $length = namedArray.length, + result = A._Utils_newArrayOrEmpty($length); + for (changed = false, i = 0; i < $length; i += 3) { + t1 = namedArray[i]; + t2 = namedArray[i + 1]; + rti = namedArray[i + 2]; + substitutedRti = A._substitute(universe, rti, typeArguments, depth); + if (substitutedRti !== rti) + changed = true; + result.splice(i, 3, t1, t2, substitutedRti); + } + return changed ? result : namedArray; + }, + _substituteFunctionParameters(universe, functionParameters, typeArguments, depth) { + var result, + requiredPositional = functionParameters._requiredPositional, + substitutedRequiredPositional = A._substituteArray(universe, requiredPositional, typeArguments, depth), + optionalPositional = functionParameters._optionalPositional, + substitutedOptionalPositional = A._substituteArray(universe, optionalPositional, typeArguments, depth), + named = functionParameters._named, + substitutedNamed = A._substituteNamed(universe, named, typeArguments, depth); + if (substitutedRequiredPositional === requiredPositional && substitutedOptionalPositional === optionalPositional && substitutedNamed === named) + return functionParameters; + result = new A._FunctionParameters(); + result._requiredPositional = substitutedRequiredPositional; + result._optionalPositional = substitutedOptionalPositional; + result._named = substitutedNamed; + return result; + }, + _setArrayType(target, rti) { + target[init.arrayRti] = rti; + return target; + }, + closureFunctionType(closure) { + var signature = closure.$signature; + if (signature != null) { + if (typeof signature == "number") + return A.getTypeFromTypesTable(signature); + return closure.$signature(); + } + return null; + }, + instanceOrFunctionType(object, testRti) { + var rti; + if (A.Rti__isUnionOfFunctionType(testRti)) + if (object instanceof A.Closure) { + rti = A.closureFunctionType(object); + if (rti != null) + return rti; + } + return A.instanceType(object); + }, + instanceType(object) { + if (object instanceof A.Object) + return A._instanceType(object); + if (Array.isArray(object)) + return A._arrayInstanceType(object); + return A._instanceTypeFromConstructor(J.getInterceptor$(object)); + }, + _arrayInstanceType(object) { + var rti = object[init.arrayRti], + defaultRti = type$.JSArray_dynamic; + if (rti == null) + return defaultRti; + if (rti.constructor !== defaultRti.constructor) + return defaultRti; + return rti; + }, + _instanceType(object) { + var rti = object.$ti; + return rti != null ? rti : A._instanceTypeFromConstructor(object); + }, + _instanceTypeFromConstructor(instance) { + var $constructor = instance.constructor, + probe = $constructor.$ccache; + if (probe != null) + return probe; + return A._instanceTypeFromConstructorMiss(instance, $constructor); + }, + _instanceTypeFromConstructorMiss(instance, $constructor) { + var effectiveConstructor = instance instanceof A.Closure ? Object.getPrototypeOf(Object.getPrototypeOf(instance)).constructor : $constructor, + rti = A._Universe_findErasedType(init.typeUniverse, effectiveConstructor.name); + $constructor.$ccache = rti; + return rti; + }, + getTypeFromTypesTable(index) { + var rti, + table = init.types, + type = table[index]; + if (typeof type == "string") { + rti = A._Universe_eval(init.typeUniverse, type, false); + table[index] = rti; + return rti; + } + return type; + }, + getRuntimeTypeOfDartObject(object) { + return A.createRuntimeType(A._instanceType(object)); + }, + getRuntimeTypeOfClosure(closure) { + var rti = A.closureFunctionType(closure); + return A.createRuntimeType(rti == null ? A.instanceType(closure) : rti); + }, + _structuralTypeOf(object) { + var functionRti = object instanceof A.Closure ? A.closureFunctionType(object) : null; + if (functionRti != null) + return functionRti; + if (type$.TrustedGetRuntimeType._is(object)) + return J.get$runtimeType$(object)._rti; + if (Array.isArray(object)) + return A._arrayInstanceType(object); + return A.instanceType(object); + }, + createRuntimeType(rti) { + var t1 = rti._cachedRuntimeType; + return t1 == null ? rti._cachedRuntimeType = new A._Type(rti) : t1; + }, + typeLiteral(recipe) { + return A.createRuntimeType(A._Universe_eval(init.typeUniverse, recipe, false)); + }, + _installSpecializedIsTest(object) { + var testRti = this; + testRti._is = A._specializedIsTest(testRti); + return testRti._is(object); + }, + _specializedIsTest(testRti) { + var kind, simpleIsFn, $name, predicate, t1; + if (testRti === type$.Object) + return A._isObject; + if (A.isTopType(testRti)) + return A._isTop; + kind = testRti._kind; + if (kind === 6) + return A._generalNullableIsTestImplementation; + if (kind === 1) + return A._isNever; + if (kind === 7) + return A._isFutureOr; + simpleIsFn = A._simpleSpecializedIsTest(testRti); + if (simpleIsFn != null) + return simpleIsFn; + if (kind === 8) { + $name = testRti._primary; + if (testRti._rest.every(A.isTopType)) { + testRti._specializedTestResource = "$is" + $name; + if ($name === "List") + return A._isListTestViaProperty; + if (testRti === type$.JSObject) + return A._isJSObject; + return A._isTestViaProperty; + } + } else if (kind === 10) { + predicate = A.createRecordTypePredicate(testRti._primary, testRti._rest); + t1 = predicate == null ? A._isNever : predicate; + return t1 == null ? A._asObject(t1) : t1; + } + return A._generalIsTestImplementation; + }, + _simpleSpecializedIsTest(testRti) { + if (testRti._kind === 8) { + if (testRti === type$.int) + return A._isInt; + if (testRti === type$.double || testRti === type$.num) + return A._isNum; + if (testRti === type$.String) + return A._isString; + if (testRti === type$.bool) + return A._isBool; + } + return null; + }, + _installSpecializedAsCheck(object) { + var testRti = this, + asFn = A._generalAsCheckImplementation; + if (A.isTopType(testRti)) + asFn = A._asTop; + else if (testRti === type$.Object) + asFn = A._asObject; + else if (A.isNullable(testRti)) { + asFn = A._generalNullableAsCheckImplementation; + if (testRti === type$.nullable_int) + asFn = A._asIntQ; + else if (testRti === type$.nullable_String) + asFn = A._asStringQ; + else if (testRti === type$.nullable_bool) + asFn = A._asBoolQ; + else if (testRti === type$.nullable_num) + asFn = A._asNumQ; + else if (testRti === type$.nullable_double) + asFn = A._asDoubleQ; + else if (testRti === type$.nullable_JSObject) + asFn = A._asJSObjectQ; + } else if (testRti === type$.int) + asFn = A._asInt; + else if (testRti === type$.String) + asFn = A._asString; + else if (testRti === type$.bool) + asFn = A._asBool; + else if (testRti === type$.num) + asFn = A._asNum; + else if (testRti === type$.double) + asFn = A._asDouble; + else if (testRti === type$.JSObject) + asFn = A._asJSObject; + testRti._as = asFn; + return testRti._as(object); + }, + _generalIsTestImplementation(object) { + var testRti = this; + if (object == null) + return A.isNullable(testRti); + return A.isSubtype(init.typeUniverse, A.instanceOrFunctionType(object, testRti), testRti); + }, + _generalNullableIsTestImplementation(object) { + if (object == null) + return true; + return this._primary._is(object); + }, + _isTestViaProperty(object) { + var tag, testRti = this; + if (object == null) + return A.isNullable(testRti); + tag = testRti._specializedTestResource; + if (object instanceof A.Object) + return !!object[tag]; + return !!J.getInterceptor$(object)[tag]; + }, + _isListTestViaProperty(object) { + var tag, testRti = this; + if (object == null) + return A.isNullable(testRti); + if (typeof object != "object") + return false; + if (Array.isArray(object)) + return true; + tag = testRti._specializedTestResource; + if (object instanceof A.Object) + return !!object[tag]; + return !!J.getInterceptor$(object)[tag]; + }, + _isJSObject(object) { + var t1 = this; + if (object == null) + return false; + if (typeof object == "object") { + if (object instanceof A.Object) + return !!object[t1._specializedTestResource]; + return true; + } + if (typeof object == "function") + return true; + return false; + }, + _isJSObjectStandalone(object) { + if (typeof object == "object") { + if (object instanceof A.Object) + return type$.JSObject._is(object); + return true; + } + if (typeof object == "function") + return true; + return false; + }, + _generalAsCheckImplementation(object) { + var testRti = this; + if (object == null) { + if (A.isNullable(testRti)) + return object; + } else if (testRti._is(object)) + return object; + throw A.initializeExceptionWrapper(A._errorForAsCheck(object, testRti), new Error()); + }, + _generalNullableAsCheckImplementation(object) { + var testRti = this; + if (object == null || testRti._is(object)) + return object; + throw A.initializeExceptionWrapper(A._errorForAsCheck(object, testRti), new Error()); + }, + _errorForAsCheck(object, testRti) { + return new A._TypeError("TypeError: " + A._Error_compose(object, A._rtiToString(testRti, null))); + }, + checkTypeBound(type, bound, variable, methodName) { + if (A.isSubtype(init.typeUniverse, type, bound)) + return type; + throw A.initializeExceptionWrapper(A._TypeError$fromMessage("The type argument '" + A._rtiToString(type, null) + "' is not a subtype of the type variable bound '" + A._rtiToString(bound, null) + "' of type variable '" + variable + "' in '" + methodName + "'."), new Error()); + }, + _Error_compose(object, checkedTypeDescription) { + return A.Error_safeToString(object) + ": type '" + A._rtiToString(A._structuralTypeOf(object), null) + "' is not a subtype of type '" + checkedTypeDescription + "'"; + }, + _TypeError$fromMessage(message) { + return new A._TypeError("TypeError: " + message); + }, + _TypeError__TypeError$forType(object, type) { + return new A._TypeError("TypeError: " + A._Error_compose(object, type)); + }, + _isFutureOr(object) { + var testRti = this; + return testRti._primary._is(object) || A.Rti__getFutureFromFutureOr(init.typeUniverse, testRti)._is(object); + }, + _isObject(object) { + return object != null; + }, + _asObject(object) { + if (object != null) + return object; + throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "Object"), new Error()); + }, + _isTop(object) { + return true; + }, + _asTop(object) { + return object; + }, + _isNever(object) { + return false; + }, + _isBool(object) { + return true === object || false === object; + }, + _asBool(object) { + if (true === object) + return true; + if (false === object) + return false; + throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "bool"), new Error()); + }, + _asBoolQ(object) { + if (true === object) + return true; + if (false === object) + return false; + if (object == null) + return object; + throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "bool?"), new Error()); + }, + _asDouble(object) { + if (typeof object == "number") + return object; + throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "double"), new Error()); + }, + _asDoubleQ(object) { + if (typeof object == "number") + return object; + if (object == null) + return object; + throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "double?"), new Error()); + }, + _isInt(object) { + return typeof object == "number" && Math.floor(object) === object; + }, + _asInt(object) { + if (typeof object == "number" && Math.floor(object) === object) + return object; + throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "int"), new Error()); + }, + _asIntQ(object) { + if (typeof object == "number" && Math.floor(object) === object) + return object; + if (object == null) + return object; + throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "int?"), new Error()); + }, + _isNum(object) { + return typeof object == "number"; + }, + _asNum(object) { + if (typeof object == "number") + return object; + throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "num"), new Error()); + }, + _asNumQ(object) { + if (typeof object == "number") + return object; + if (object == null) + return object; + throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "num?"), new Error()); + }, + _isString(object) { + return typeof object == "string"; + }, + _asString(object) { + if (typeof object == "string") + return object; + throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "String"), new Error()); + }, + _asStringQ(object) { + if (typeof object == "string") + return object; + if (object == null) + return object; + throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "String?"), new Error()); + }, + _asJSObject(object) { + if (A._isJSObjectStandalone(object)) + return object; + throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "JSObject"), new Error()); + }, + _asJSObjectQ(object) { + if (object == null) + return object; + if (A._isJSObjectStandalone(object)) + return object; + throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "JSObject?"), new Error()); + }, + _rtiArrayToString(array, genericContext) { + var s, sep, i; + for (s = "", sep = "", i = 0; i < array.length; ++i, sep = ", ") + s += sep + A._rtiToString(array[i], genericContext); + return s; + }, + _recordRtiToString(recordType, genericContext) { + var fieldCount, names, namesIndex, s, comma, i, + partialShape = recordType._primary, + fields = recordType._rest; + if ("" === partialShape) + return "(" + A._rtiArrayToString(fields, genericContext) + ")"; + fieldCount = fields.length; + names = partialShape.split(","); + namesIndex = names.length - fieldCount; + for (s = "(", comma = "", i = 0; i < fieldCount; ++i, comma = ", ") { + s += comma; + if (namesIndex === 0) + s += "{"; + s += A._rtiToString(fields[i], genericContext); + if (namesIndex >= 0) + s += " " + names[namesIndex]; + ++namesIndex; + } + return s + "})"; + }, + _functionRtiToString(functionType, genericContext, bounds) { + var boundsLength, offset, i, t1, typeParametersText, typeSep, t2, t3, boundRti, kind, parameters, requiredPositional, requiredPositionalLength, optionalPositional, optionalPositionalLength, named, namedLength, returnTypeText, argumentsText, sep, _s2_ = ", ", outerContextLength = null; + if (bounds != null) { + boundsLength = bounds.length; + if (genericContext == null) + genericContext = A._setArrayType([], type$.JSArray_String); + else + outerContextLength = genericContext.length; + offset = genericContext.length; + for (i = boundsLength; i > 0; --i) + B.JSArray_methods.add$1(genericContext, "T" + (offset + i)); + for (t1 = type$.nullable_Object, typeParametersText = "<", typeSep = "", i = 0; i < boundsLength; ++i, typeSep = _s2_) { + t2 = genericContext.length; + t3 = t2 - 1 - i; + if (!(t3 >= 0)) + return A.ioore(genericContext, t3); + typeParametersText = typeParametersText + typeSep + genericContext[t3]; + boundRti = bounds[i]; + kind = boundRti._kind; + if (!(kind === 2 || kind === 3 || kind === 4 || kind === 5 || boundRti === t1)) + typeParametersText += " extends " + A._rtiToString(boundRti, genericContext); + } + typeParametersText += ">"; + } else + typeParametersText = ""; + t1 = functionType._primary; + parameters = functionType._rest; + requiredPositional = parameters._requiredPositional; + requiredPositionalLength = requiredPositional.length; + optionalPositional = parameters._optionalPositional; + optionalPositionalLength = optionalPositional.length; + named = parameters._named; + namedLength = named.length; + returnTypeText = A._rtiToString(t1, genericContext); + for (argumentsText = "", sep = "", i = 0; i < requiredPositionalLength; ++i, sep = _s2_) + argumentsText += sep + A._rtiToString(requiredPositional[i], genericContext); + if (optionalPositionalLength > 0) { + argumentsText += sep + "["; + for (sep = "", i = 0; i < optionalPositionalLength; ++i, sep = _s2_) + argumentsText += sep + A._rtiToString(optionalPositional[i], genericContext); + argumentsText += "]"; + } + if (namedLength > 0) { + argumentsText += sep + "{"; + for (sep = "", i = 0; i < namedLength; i += 3, sep = _s2_) { + argumentsText += sep; + if (named[i + 1]) + argumentsText += "required "; + argumentsText += A._rtiToString(named[i + 2], genericContext) + " " + named[i]; + } + argumentsText += "}"; + } + if (outerContextLength != null) { + genericContext.toString; + genericContext.length = outerContextLength; + } + return typeParametersText + "(" + argumentsText + ") => " + returnTypeText; + }, + _rtiToString(rti, genericContext) { + var questionArgument, s, argumentKind, $name, $arguments, t1, t2, + kind = rti._kind; + if (kind === 5) + return "erased"; + if (kind === 2) + return "dynamic"; + if (kind === 3) + return "void"; + if (kind === 1) + return "Never"; + if (kind === 4) + return "any"; + if (kind === 6) { + questionArgument = rti._primary; + s = A._rtiToString(questionArgument, genericContext); + argumentKind = questionArgument._kind; + return (argumentKind === 11 || argumentKind === 12 ? "(" + s + ")" : s) + "?"; + } + if (kind === 7) + return "FutureOr<" + A._rtiToString(rti._primary, genericContext) + ">"; + if (kind === 8) { + $name = A._unminifyOrTag(rti._primary); + $arguments = rti._rest; + return $arguments.length > 0 ? $name + ("<" + A._rtiArrayToString($arguments, genericContext) + ">") : $name; + } + if (kind === 10) + return A._recordRtiToString(rti, genericContext); + if (kind === 11) + return A._functionRtiToString(rti, genericContext, null); + if (kind === 12) + return A._functionRtiToString(rti._primary, genericContext, rti._rest); + if (kind === 13) { + t1 = rti._primary; + t2 = genericContext.length; + t1 = t2 - 1 - t1; + if (!(t1 >= 0 && t1 < t2)) + return A.ioore(genericContext, t1); + return genericContext[t1]; + } + return "?"; + }, + _unminifyOrTag(rawClassName) { + var preserved = init.mangledGlobalNames[rawClassName]; + if (preserved != null) + return preserved; + return rawClassName; + }, + _Universe_findRule(universe, targetType) { + var rule = universe.tR[targetType]; + while (typeof rule == "string") + rule = universe.tR[rule]; + return rule; + }, + _Universe_findErasedType(universe, cls) { + var $length, erased, $arguments, i, $interface, + metadata = universe.eT, + probe = metadata[cls]; + if (probe == null) + return A._Universe_eval(universe, cls, false); + else if (typeof probe == "number") { + $length = probe; + erased = A._Universe__lookupTerminalRti(universe, 5, "#"); + $arguments = A._Utils_newArrayOrEmpty($length); + for (i = 0; i < $length; ++i) + $arguments[i] = erased; + $interface = A._Universe__lookupInterfaceRti(universe, cls, $arguments); + metadata[cls] = $interface; + return $interface; + } else + return probe; + }, + _Universe_addRules(universe, rules) { + return A._Utils_objectAssign(universe.tR, rules); + }, + _Universe_addErasedTypes(universe, types) { + return A._Utils_objectAssign(universe.eT, types); + }, + _Universe_eval(universe, recipe, normalize) { + var rti, + cache = universe.eC, + probe = cache.get(recipe); + if (probe != null) + return probe; + rti = A._Parser_parse(A._Parser_create(universe, null, recipe, false)); + cache.set(recipe, rti); + return rti; + }, + _Universe_evalInEnvironment(universe, environment, recipe) { + var probe, rti, + cache = environment._evalCache; + if (cache == null) + cache = environment._evalCache = new Map(); + probe = cache.get(recipe); + if (probe != null) + return probe; + rti = A._Parser_parse(A._Parser_create(universe, environment, recipe, true)); + cache.set(recipe, rti); + return rti; + }, + _Universe_bind(universe, environment, argumentsRti) { + var argumentsRecipe, probe, rti, + cache = environment._bindCache; + if (cache == null) + cache = environment._bindCache = new Map(); + argumentsRecipe = argumentsRti._canonicalRecipe; + probe = cache.get(argumentsRecipe); + if (probe != null) + return probe; + rti = A._Universe__lookupBindingRti(universe, environment, argumentsRti._kind === 9 ? argumentsRti._rest : [argumentsRti]); + cache.set(argumentsRecipe, rti); + return rti; + }, + _Universe__installTypeTests(universe, rti) { + rti._as = A._installSpecializedAsCheck; + rti._is = A._installSpecializedIsTest; + return rti; + }, + _Universe__lookupTerminalRti(universe, kind, key) { + var rti, t1, + probe = universe.eC.get(key); + if (probe != null) + return probe; + rti = new A.Rti(null, null); + rti._kind = kind; + rti._canonicalRecipe = key; + t1 = A._Universe__installTypeTests(universe, rti); + universe.eC.set(key, t1); + return t1; + }, + _Universe__lookupQuestionRti(universe, baseType, normalize) { + var t1, + key = baseType._canonicalRecipe + "?", + probe = universe.eC.get(key); + if (probe != null) + return probe; + t1 = A._Universe__createQuestionRti(universe, baseType, key, normalize); + universe.eC.set(key, t1); + return t1; + }, + _Universe__createQuestionRti(universe, baseType, key, normalize) { + var baseKind, t1, rti; + if (normalize) { + baseKind = baseType._kind; + t1 = true; + if (!A.isTopType(baseType)) + if (!(baseType === type$.Null || baseType === type$.JSNull)) + if (baseKind !== 6) + t1 = baseKind === 7 && A.isNullable(baseType._primary); + if (t1) + return baseType; + else if (baseKind === 1) + return type$.Null; + } + rti = new A.Rti(null, null); + rti._kind = 6; + rti._primary = baseType; + rti._canonicalRecipe = key; + return A._Universe__installTypeTests(universe, rti); + }, + _Universe__lookupFutureOrRti(universe, baseType, normalize) { + var t1, + key = baseType._canonicalRecipe + "/", + probe = universe.eC.get(key); + if (probe != null) + return probe; + t1 = A._Universe__createFutureOrRti(universe, baseType, key, normalize); + universe.eC.set(key, t1); + return t1; + }, + _Universe__createFutureOrRti(universe, baseType, key, normalize) { + var t1, rti; + if (normalize) { + t1 = baseType._kind; + if (A.isTopType(baseType) || baseType === type$.Object) + return baseType; + else if (t1 === 1) + return A._Universe__lookupInterfaceRti(universe, "Future", [baseType]); + else if (baseType === type$.Null || baseType === type$.JSNull) + return type$.nullable_Future_Null; + } + rti = new A.Rti(null, null); + rti._kind = 7; + rti._primary = baseType; + rti._canonicalRecipe = key; + return A._Universe__installTypeTests(universe, rti); + }, + _Universe__lookupGenericFunctionParameterRti(universe, index) { + var rti, t1, + key = "" + index + "^", + probe = universe.eC.get(key); + if (probe != null) + return probe; + rti = new A.Rti(null, null); + rti._kind = 13; + rti._primary = index; + rti._canonicalRecipe = key; + t1 = A._Universe__installTypeTests(universe, rti); + universe.eC.set(key, t1); + return t1; + }, + _Universe__canonicalRecipeJoin($arguments) { + var s, sep, i, + $length = $arguments.length; + for (s = "", sep = "", i = 0; i < $length; ++i, sep = ",") + s += sep + $arguments[i]._canonicalRecipe; + return s; + }, + _Universe__canonicalRecipeJoinNamed($arguments) { + var s, sep, i, t1, nameSep, + $length = $arguments.length; + for (s = "", sep = "", i = 0; i < $length; i += 3, sep = ",") { + t1 = $arguments[i]; + nameSep = $arguments[i + 1] ? "!" : ":"; + s += sep + t1 + nameSep + $arguments[i + 2]._canonicalRecipe; + } + return s; + }, + _Universe__lookupInterfaceRti(universe, $name, $arguments) { + var probe, rti, t1, + s = $name; + if ($arguments.length > 0) + s += "<" + A._Universe__canonicalRecipeJoin($arguments) + ">"; + probe = universe.eC.get(s); + if (probe != null) + return probe; + rti = new A.Rti(null, null); + rti._kind = 8; + rti._primary = $name; + rti._rest = $arguments; + if ($arguments.length > 0) + rti._precomputed1 = $arguments[0]; + rti._canonicalRecipe = s; + t1 = A._Universe__installTypeTests(universe, rti); + universe.eC.set(s, t1); + return t1; + }, + _Universe__lookupBindingRti(universe, base, $arguments) { + var newBase, newArguments, key, probe, rti, t1; + if (base._kind === 9) { + newBase = base._primary; + newArguments = base._rest.concat($arguments); + } else { + newArguments = $arguments; + newBase = base; + } + key = newBase._canonicalRecipe + (";<" + A._Universe__canonicalRecipeJoin(newArguments) + ">"); + probe = universe.eC.get(key); + if (probe != null) + return probe; + rti = new A.Rti(null, null); + rti._kind = 9; + rti._primary = newBase; + rti._rest = newArguments; + rti._canonicalRecipe = key; + t1 = A._Universe__installTypeTests(universe, rti); + universe.eC.set(key, t1); + return t1; + }, + _Universe__lookupRecordRti(universe, partialShapeTag, fields) { + var rti, t1, + key = "+" + (partialShapeTag + "(" + A._Universe__canonicalRecipeJoin(fields) + ")"), + probe = universe.eC.get(key); + if (probe != null) + return probe; + rti = new A.Rti(null, null); + rti._kind = 10; + rti._primary = partialShapeTag; + rti._rest = fields; + rti._canonicalRecipe = key; + t1 = A._Universe__installTypeTests(universe, rti); + universe.eC.set(key, t1); + return t1; + }, + _Universe__lookupFunctionRti(universe, returnType, parameters) { + var sep, key, probe, rti, t1, + s = returnType._canonicalRecipe, + requiredPositional = parameters._requiredPositional, + requiredPositionalLength = requiredPositional.length, + optionalPositional = parameters._optionalPositional, + optionalPositionalLength = optionalPositional.length, + named = parameters._named, + namedLength = named.length, + recipe = "(" + A._Universe__canonicalRecipeJoin(requiredPositional); + if (optionalPositionalLength > 0) { + sep = requiredPositionalLength > 0 ? "," : ""; + recipe += sep + "[" + A._Universe__canonicalRecipeJoin(optionalPositional) + "]"; + } + if (namedLength > 0) { + sep = requiredPositionalLength > 0 ? "," : ""; + recipe += sep + "{" + A._Universe__canonicalRecipeJoinNamed(named) + "}"; + } + key = s + (recipe + ")"); + probe = universe.eC.get(key); + if (probe != null) + return probe; + rti = new A.Rti(null, null); + rti._kind = 11; + rti._primary = returnType; + rti._rest = parameters; + rti._canonicalRecipe = key; + t1 = A._Universe__installTypeTests(universe, rti); + universe.eC.set(key, t1); + return t1; + }, + _Universe__lookupGenericFunctionRti(universe, baseFunctionType, bounds, normalize) { + var t1, + key = baseFunctionType._canonicalRecipe + ("<" + A._Universe__canonicalRecipeJoin(bounds) + ">"), + probe = universe.eC.get(key); + if (probe != null) + return probe; + t1 = A._Universe__createGenericFunctionRti(universe, baseFunctionType, bounds, key, normalize); + universe.eC.set(key, t1); + return t1; + }, + _Universe__createGenericFunctionRti(universe, baseFunctionType, bounds, key, normalize) { + var $length, typeArguments, count, i, bound, substitutedBase, substitutedBounds, rti; + if (normalize) { + $length = bounds.length; + typeArguments = A._Utils_newArrayOrEmpty($length); + for (count = 0, i = 0; i < $length; ++i) { + bound = bounds[i]; + if (bound._kind === 1) { + typeArguments[i] = bound; + ++count; + } + } + if (count > 0) { + substitutedBase = A._substitute(universe, baseFunctionType, typeArguments, 0); + substitutedBounds = A._substituteArray(universe, bounds, typeArguments, 0); + return A._Universe__lookupGenericFunctionRti(universe, substitutedBase, substitutedBounds, bounds !== substitutedBounds); + } + } + rti = new A.Rti(null, null); + rti._kind = 12; + rti._primary = baseFunctionType; + rti._rest = bounds; + rti._canonicalRecipe = key; + return A._Universe__installTypeTests(universe, rti); + }, + _Parser_create(universe, environment, recipe, normalize) { + return {u: universe, e: environment, r: recipe, s: [], p: 0, n: normalize}; + }, + _Parser_parse(parser) { + var t1, i, ch, u, array, end, item, + source = parser.r, + stack = parser.s; + for (t1 = source.length, i = 0; i < t1;) { + ch = source.charCodeAt(i); + if (ch >= 48 && ch <= 57) + i = A._Parser_handleDigit(i + 1, ch, source, stack); + else if ((((ch | 32) >>> 0) - 97 & 65535) < 26 || ch === 95 || ch === 36 || ch === 124) + i = A._Parser_handleIdentifier(parser, i, source, stack, false); + else if (ch === 46) + i = A._Parser_handleIdentifier(parser, i, source, stack, true); + else { + ++i; + switch (ch) { + case 44: + break; + case 58: + stack.push(false); + break; + case 33: + stack.push(true); + break; + case 59: + stack.push(A._Parser_toType(parser.u, parser.e, stack.pop())); + break; + case 94: + stack.push(A._Universe__lookupGenericFunctionParameterRti(parser.u, stack.pop())); + break; + case 35: + stack.push(A._Universe__lookupTerminalRti(parser.u, 5, "#")); + break; + case 64: + stack.push(A._Universe__lookupTerminalRti(parser.u, 2, "@")); + break; + case 126: + stack.push(A._Universe__lookupTerminalRti(parser.u, 3, "~")); + break; + case 60: + stack.push(parser.p); + parser.p = stack.length; + break; + case 62: + A._Parser_handleTypeArguments(parser, stack); + break; + case 38: + A._Parser_handleExtendedOperations(parser, stack); + break; + case 63: + u = parser.u; + stack.push(A._Universe__lookupQuestionRti(u, A._Parser_toType(u, parser.e, stack.pop()), parser.n)); + break; + case 47: + u = parser.u; + stack.push(A._Universe__lookupFutureOrRti(u, A._Parser_toType(u, parser.e, stack.pop()), parser.n)); + break; + case 40: + stack.push(-3); + stack.push(parser.p); + parser.p = stack.length; + break; + case 41: + A._Parser_handleArguments(parser, stack); + break; + case 91: + stack.push(parser.p); + parser.p = stack.length; + break; + case 93: + array = stack.splice(parser.p); + A._Parser_toTypes(parser.u, parser.e, array); + parser.p = stack.pop(); + stack.push(array); + stack.push(-1); + break; + case 123: + stack.push(parser.p); + parser.p = stack.length; + break; + case 125: + array = stack.splice(parser.p); + A._Parser_toTypesNamed(parser.u, parser.e, array); + parser.p = stack.pop(); + stack.push(array); + stack.push(-2); + break; + case 43: + end = source.indexOf("(", i); + stack.push(source.substring(i, end)); + stack.push(-4); + stack.push(parser.p); + parser.p = stack.length; + i = end + 1; + break; + default: + throw "Bad character " + ch; + } + } + } + item = stack.pop(); + return A._Parser_toType(parser.u, parser.e, item); + }, + _Parser_handleDigit(i, digit, source, stack) { + var t1, ch, + value = digit - 48; + for (t1 = source.length; i < t1; ++i) { + ch = source.charCodeAt(i); + if (!(ch >= 48 && ch <= 57)) + break; + value = value * 10 + (ch - 48); + } + stack.push(value); + return i; + }, + _Parser_handleIdentifier(parser, start, source, stack, hasPeriod) { + var t1, ch, t2, string, environment, recipe, + i = start + 1; + for (t1 = source.length; i < t1; ++i) { + ch = source.charCodeAt(i); + if (ch === 46) { + if (hasPeriod) + break; + hasPeriod = true; + } else { + if (!((((ch | 32) >>> 0) - 97 & 65535) < 26 || ch === 95 || ch === 36 || ch === 124)) + t2 = ch >= 48 && ch <= 57; + else + t2 = true; + if (!t2) + break; + } + } + string = source.substring(start, i); + if (hasPeriod) { + t1 = parser.u; + environment = parser.e; + if (environment._kind === 9) + environment = environment._primary; + recipe = A._Universe_findRule(t1, environment._primary)[string]; + if (recipe == null) + A.throwExpression('No "' + string + '" in "' + A.Rti__getCanonicalRecipe(environment) + '"'); + stack.push(A._Universe_evalInEnvironment(t1, environment, recipe)); + } else + stack.push(string); + return i; + }, + _Parser_handleTypeArguments(parser, stack) { + var base, + universe = parser.u, + $arguments = A._Parser_collectArray(parser, stack), + head = stack.pop(); + if (typeof head == "string") + stack.push(A._Universe__lookupInterfaceRti(universe, head, $arguments)); + else { + base = A._Parser_toType(universe, parser.e, head); + switch (base._kind) { + case 11: + stack.push(A._Universe__lookupGenericFunctionRti(universe, base, $arguments, parser.n)); + break; + default: + stack.push(A._Universe__lookupBindingRti(universe, base, $arguments)); + break; + } + } + }, + _Parser_handleArguments(parser, stack) { + var requiredPositional, returnType, parameters, + universe = parser.u, + head = stack.pop(), + optionalPositional = null, named = null; + if (typeof head == "number") + switch (head) { + case -1: + optionalPositional = stack.pop(); + break; + case -2: + named = stack.pop(); + break; + default: + stack.push(head); + break; + } + else + stack.push(head); + requiredPositional = A._Parser_collectArray(parser, stack); + head = stack.pop(); + switch (head) { + case -3: + head = stack.pop(); + if (optionalPositional == null) + optionalPositional = universe.sEA; + if (named == null) + named = universe.sEA; + returnType = A._Parser_toType(universe, parser.e, head); + parameters = new A._FunctionParameters(); + parameters._requiredPositional = requiredPositional; + parameters._optionalPositional = optionalPositional; + parameters._named = named; + stack.push(A._Universe__lookupFunctionRti(universe, returnType, parameters)); + return; + case -4: + stack.push(A._Universe__lookupRecordRti(universe, stack.pop(), requiredPositional)); + return; + default: + throw A.wrapException(A.AssertionError$("Unexpected state under `()`: " + A.S(head))); + } + }, + _Parser_handleExtendedOperations(parser, stack) { + var $top = stack.pop(); + if (0 === $top) { + stack.push(A._Universe__lookupTerminalRti(parser.u, 1, "0&")); + return; + } + if (1 === $top) { + stack.push(A._Universe__lookupTerminalRti(parser.u, 4, "1&")); + return; + } + throw A.wrapException(A.AssertionError$("Unexpected extended operation " + A.S($top))); + }, + _Parser_collectArray(parser, stack) { + var array = stack.splice(parser.p); + A._Parser_toTypes(parser.u, parser.e, array); + parser.p = stack.pop(); + return array; + }, + _Parser_toType(universe, environment, item) { + if (typeof item == "string") + return A._Universe__lookupInterfaceRti(universe, item, universe.sEA); + else if (typeof item == "number") { + environment.toString; + return A._Parser_indexToType(universe, environment, item); + } else + return item; + }, + _Parser_toTypes(universe, environment, items) { + var i, + $length = items.length; + for (i = 0; i < $length; ++i) + items[i] = A._Parser_toType(universe, environment, items[i]); + }, + _Parser_toTypesNamed(universe, environment, items) { + var i, + $length = items.length; + for (i = 2; i < $length; i += 3) + items[i] = A._Parser_toType(universe, environment, items[i]); + }, + _Parser_indexToType(universe, environment, index) { + var typeArguments, len, + kind = environment._kind; + if (kind === 9) { + if (index === 0) + return environment._primary; + typeArguments = environment._rest; + len = typeArguments.length; + if (index <= len) + return typeArguments[index - 1]; + index -= len; + environment = environment._primary; + kind = environment._kind; + } else if (index === 0) + return environment; + if (kind !== 8) + throw A.wrapException(A.AssertionError$("Indexed base must be an interface type")); + typeArguments = environment._rest; + if (index <= typeArguments.length) + return typeArguments[index - 1]; + throw A.wrapException(A.AssertionError$("Bad index " + index + " for " + environment.toString$0(0))); + }, + isSubtype(universe, s, t) { + var result, + sCache = s._isSubtypeCache; + if (sCache == null) + sCache = s._isSubtypeCache = new Map(); + result = sCache.get(t); + if (result == null) { + result = A._isSubtype(universe, s, null, t, null); + sCache.set(t, result); + } + return result; + }, + _isSubtype(universe, s, sEnv, t, tEnv) { + var sKind, leftTypeVariable, tKind, t1, t2, sBounds, tBounds, sLength, i, sBound, tBound; + if (s === t) + return true; + if (A.isTopType(t)) + return true; + sKind = s._kind; + if (sKind === 4) + return true; + if (A.isTopType(s)) + return false; + if (s._kind === 1) + return true; + leftTypeVariable = sKind === 13; + if (leftTypeVariable) + if (A._isSubtype(universe, sEnv[s._primary], sEnv, t, tEnv)) + return true; + tKind = t._kind; + t1 = type$.Null; + if (s === t1 || s === type$.JSNull) { + if (tKind === 7) + return A._isSubtype(universe, s, sEnv, t._primary, tEnv); + return t === t1 || t === type$.JSNull || tKind === 6; + } + if (t === type$.Object) { + if (sKind === 7) + return A._isSubtype(universe, s._primary, sEnv, t, tEnv); + return sKind !== 6; + } + if (sKind === 7) { + if (!A._isSubtype(universe, s._primary, sEnv, t, tEnv)) + return false; + return A._isSubtype(universe, A.Rti__getFutureFromFutureOr(universe, s), sEnv, t, tEnv); + } + if (sKind === 6) + return A._isSubtype(universe, t1, sEnv, t, tEnv) && A._isSubtype(universe, s._primary, sEnv, t, tEnv); + if (tKind === 7) { + if (A._isSubtype(universe, s, sEnv, t._primary, tEnv)) + return true; + return A._isSubtype(universe, s, sEnv, A.Rti__getFutureFromFutureOr(universe, t), tEnv); + } + if (tKind === 6) + return A._isSubtype(universe, s, sEnv, t1, tEnv) || A._isSubtype(universe, s, sEnv, t._primary, tEnv); + if (leftTypeVariable) + return false; + t1 = sKind !== 11; + if ((!t1 || sKind === 12) && t === type$.Function) + return true; + t2 = sKind === 10; + if (t2 && t === type$.Record) + return true; + if (tKind === 12) { + if (s === type$.JavaScriptFunction) + return true; + if (sKind !== 12) + return false; + sBounds = s._rest; + tBounds = t._rest; + sLength = sBounds.length; + if (sLength !== tBounds.length) + return false; + sEnv = sEnv == null ? sBounds : sBounds.concat(sEnv); + tEnv = tEnv == null ? tBounds : tBounds.concat(tEnv); + for (i = 0; i < sLength; ++i) { + sBound = sBounds[i]; + tBound = tBounds[i]; + if (!A._isSubtype(universe, sBound, sEnv, tBound, tEnv) || !A._isSubtype(universe, tBound, tEnv, sBound, sEnv)) + return false; + } + return A._isFunctionSubtype(universe, s._primary, sEnv, t._primary, tEnv); + } + if (tKind === 11) { + if (s === type$.JavaScriptFunction) + return true; + if (t1) + return false; + return A._isFunctionSubtype(universe, s, sEnv, t, tEnv); + } + if (sKind === 8) { + if (tKind !== 8) + return false; + return A._isInterfaceSubtype(universe, s, sEnv, t, tEnv); + } + if (t2 && tKind === 10) + return A._isRecordSubtype(universe, s, sEnv, t, tEnv); + return false; + }, + _isFunctionSubtype(universe, s, sEnv, t, tEnv) { + var sParameters, tParameters, sRequiredPositional, tRequiredPositional, sRequiredPositionalLength, tRequiredPositionalLength, requiredPositionalDelta, sOptionalPositional, tOptionalPositional, sOptionalPositionalLength, tOptionalPositionalLength, i, t1, sNamed, tNamed, sNamedLength, tNamedLength, sIndex, tIndex, tName, sName, sIsRequired; + if (!A._isSubtype(universe, s._primary, sEnv, t._primary, tEnv)) + return false; + sParameters = s._rest; + tParameters = t._rest; + sRequiredPositional = sParameters._requiredPositional; + tRequiredPositional = tParameters._requiredPositional; + sRequiredPositionalLength = sRequiredPositional.length; + tRequiredPositionalLength = tRequiredPositional.length; + if (sRequiredPositionalLength > tRequiredPositionalLength) + return false; + requiredPositionalDelta = tRequiredPositionalLength - sRequiredPositionalLength; + sOptionalPositional = sParameters._optionalPositional; + tOptionalPositional = tParameters._optionalPositional; + sOptionalPositionalLength = sOptionalPositional.length; + tOptionalPositionalLength = tOptionalPositional.length; + if (sRequiredPositionalLength + sOptionalPositionalLength < tRequiredPositionalLength + tOptionalPositionalLength) + return false; + for (i = 0; i < sRequiredPositionalLength; ++i) { + t1 = sRequiredPositional[i]; + if (!A._isSubtype(universe, tRequiredPositional[i], tEnv, t1, sEnv)) + return false; + } + for (i = 0; i < requiredPositionalDelta; ++i) { + t1 = sOptionalPositional[i]; + if (!A._isSubtype(universe, tRequiredPositional[sRequiredPositionalLength + i], tEnv, t1, sEnv)) + return false; + } + for (i = 0; i < tOptionalPositionalLength; ++i) { + t1 = sOptionalPositional[requiredPositionalDelta + i]; + if (!A._isSubtype(universe, tOptionalPositional[i], tEnv, t1, sEnv)) + return false; + } + sNamed = sParameters._named; + tNamed = tParameters._named; + sNamedLength = sNamed.length; + tNamedLength = tNamed.length; + for (sIndex = 0, tIndex = 0; tIndex < tNamedLength; tIndex += 3) { + tName = tNamed[tIndex]; + for (;;) { + if (sIndex >= sNamedLength) + return false; + sName = sNamed[sIndex]; + sIndex += 3; + if (tName < sName) + return false; + sIsRequired = sNamed[sIndex - 2]; + if (sName < tName) { + if (sIsRequired) + return false; + continue; + } + t1 = tNamed[tIndex + 1]; + if (sIsRequired && !t1) + return false; + t1 = sNamed[sIndex - 1]; + if (!A._isSubtype(universe, tNamed[tIndex + 2], tEnv, t1, sEnv)) + return false; + break; + } + } + while (sIndex < sNamedLength) { + if (sNamed[sIndex + 1]) + return false; + sIndex += 3; + } + return true; + }, + _isInterfaceSubtype(universe, s, sEnv, t, tEnv) { + var rule, recipes, $length, supertypeArgs, i, + sName = s._primary, + tName = t._primary; + while (sName !== tName) { + rule = universe.tR[sName]; + if (rule == null) + return false; + if (typeof rule == "string") { + sName = rule; + continue; + } + recipes = rule[tName]; + if (recipes == null) + return false; + $length = recipes.length; + supertypeArgs = $length > 0 ? new Array($length) : init.typeUniverse.sEA; + for (i = 0; i < $length; ++i) + supertypeArgs[i] = A._Universe_evalInEnvironment(universe, s, recipes[i]); + return A._areArgumentsSubtypes(universe, supertypeArgs, null, sEnv, t._rest, tEnv); + } + return A._areArgumentsSubtypes(universe, s._rest, null, sEnv, t._rest, tEnv); + }, + _areArgumentsSubtypes(universe, sArgs, sVariances, sEnv, tArgs, tEnv) { + var i, + $length = sArgs.length; + for (i = 0; i < $length; ++i) + if (!A._isSubtype(universe, sArgs[i], sEnv, tArgs[i], tEnv)) + return false; + return true; + }, + _isRecordSubtype(universe, s, sEnv, t, tEnv) { + var i, + sFields = s._rest, + tFields = t._rest, + sCount = sFields.length; + if (sCount !== tFields.length) + return false; + if (s._primary !== t._primary) + return false; + for (i = 0; i < sCount; ++i) + if (!A._isSubtype(universe, sFields[i], sEnv, tFields[i], tEnv)) + return false; + return true; + }, + isNullable(t) { + var kind = t._kind, + t1 = true; + if (!(t === type$.Null || t === type$.JSNull)) + if (!A.isTopType(t)) + if (kind !== 6) + t1 = kind === 7 && A.isNullable(t._primary); + return t1; + }, + isTopType(t) { + var kind = t._kind; + return kind === 2 || kind === 3 || kind === 4 || kind === 5 || t === type$.nullable_Object; + }, + _Utils_objectAssign(o, other) { + var i, key, + keys = Object.keys(other), + $length = keys.length; + for (i = 0; i < $length; ++i) { + key = keys[i]; + o[key] = other[key]; + } + }, + _Utils_newArrayOrEmpty($length) { + return $length > 0 ? new Array($length) : init.typeUniverse.sEA; + }, + Rti: function Rti(t0, t1) { + var _ = this; + _._as = t0; + _._is = t1; + _._cachedRuntimeType = _._specializedTestResource = _._isSubtypeCache = _._precomputed1 = null; + _._kind = 0; + _._canonicalRecipe = _._bindCache = _._evalCache = _._rest = _._primary = null; + }, + _FunctionParameters: function _FunctionParameters() { + this._named = this._optionalPositional = this._requiredPositional = null; + }, + _Type: function _Type(t0) { + this._rti = t0; + }, + _Error: function _Error() { + }, + _TypeError: function _TypeError(t0) { + this.__rti$_message = t0; + }, + _AsyncRun__initializeScheduleImmediate() { + var t1, div, span; + if (self.scheduleImmediate != null) + return A.async__AsyncRun__scheduleImmediateJsOverride$closure(); + if (self.MutationObserver != null && self.document != null) { + t1 = {}; + div = self.document.createElement("div"); + span = self.document.createElement("span"); + t1.storedCallback = null; + new self.MutationObserver(A.convertDartClosureToJS(new A._AsyncRun__initializeScheduleImmediate_internalCallback(t1), 1)).observe(div, {childList: true}); + return new A._AsyncRun__initializeScheduleImmediate_closure(t1, div, span); + } else if (self.setImmediate != null) + return A.async__AsyncRun__scheduleImmediateWithSetImmediate$closure(); + return A.async__AsyncRun__scheduleImmediateWithTimer$closure(); + }, + _AsyncRun__scheduleImmediateJsOverride(callback) { + self.scheduleImmediate(A.convertDartClosureToJS(new A._AsyncRun__scheduleImmediateJsOverride_internalCallback(type$.void_Function._as(callback)), 0)); + }, + _AsyncRun__scheduleImmediateWithSetImmediate(callback) { + self.setImmediate(A.convertDartClosureToJS(new A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback(type$.void_Function._as(callback)), 0)); + }, + _AsyncRun__scheduleImmediateWithTimer(callback) { + A.Timer__createTimer(B.Duration_0, type$.void_Function._as(callback)); + }, + Timer__createTimer(duration, callback) { + return A._TimerImpl$(duration._duration / 1000 | 0, callback); + }, + Timer__createPeriodicTimer(duration, callback) { + return A._TimerImpl$periodic(duration._duration / 1000 | 0, callback); + }, + _TimerImpl$(milliseconds, callback) { + var t1 = new A._TimerImpl(); + t1._TimerImpl$2(milliseconds, callback); + return t1; + }, + _TimerImpl$periodic(milliseconds, callback) { + var t1 = new A._TimerImpl(); + t1._TimerImpl$periodic$2(milliseconds, callback); + return t1; + }, + AsyncError_defaultStackTrace(error) { + var stackTrace; + if (type$.Error._is(error)) { + stackTrace = error.get$stackTrace(); + if (stackTrace != null) + return stackTrace; + } + return B._StringStackTrace_OdL; + }, + Future_Future$value(value, $T) { + var t1; + $T._as(value); + t1 = new A._Future($.Zone__current, $T._eval$1("_Future<0>")); + t1._asyncComplete$1(value); + return t1; + }, + _interceptError(error, stackTrace) { + var replacement, t1, t2, + zone = $.Zone__current; + if (zone === B.C__RootZone) + return null; + replacement = zone.errorCallback$2(error, stackTrace); + if (replacement == null) + return null; + t1 = replacement.error; + t2 = replacement.stackTrace; + if (type$.Error._is(t1)) + A.Primitives_trySetStackTrace(t1, t2); + return replacement; + }, + _interceptUserError(error, stackTrace) { + var replacement; + if ($.Zone__current !== B.C__RootZone) { + replacement = A._interceptError(error, stackTrace); + if (replacement != null) + return replacement; + } + if (stackTrace == null) + if (type$.Error._is(error)) { + stackTrace = error.get$stackTrace(); + if (stackTrace == null) { + A.Primitives_trySetStackTrace(error, B._StringStackTrace_OdL); + stackTrace = B._StringStackTrace_OdL; + } + } else + stackTrace = B._StringStackTrace_OdL; + else if (type$.Error._is(error)) + A.Primitives_trySetStackTrace(error, stackTrace); + return new A.AsyncError(error, stackTrace); + }, + _Future__chainCoreFuture(source, target, sync) { + var t2, t3, ignoreError, listeners, _box_0 = {}, + t1 = _box_0.source = source; + for (t2 = type$._Future_dynamic; t3 = t1._async$_state, (t3 & 4) !== 0; t1 = source) { + source = t2._as(t1._resultOrListeners); + _box_0.source = source; + } + if (t1 === target) { + t2 = A.StackTrace_current(); + target._asyncCompleteErrorObject$1(new A.AsyncError(new A.ArgumentError(true, t1, null, "Cannot complete a future with itself"), t2)); + return; + } + ignoreError = target._async$_state & 1; + t2 = t1._async$_state = t3 | ignoreError; + if ((t2 & 24) === 0) { + listeners = type$.nullable__FutureListener_dynamic_dynamic._as(target._resultOrListeners); + target._async$_state = target._async$_state & 1 | 4; + target._resultOrListeners = t1; + t1._prependListeners$1(listeners); + return; + } + if (!sync) + if (target._resultOrListeners == null) + t1 = (t2 & 16) === 0 || ignoreError !== 0; + else + t1 = false; + else + t1 = true; + if (t1) { + listeners = target._removeListeners$0(); + target._cloneResult$1(_box_0.source); + A._Future__propagateToListeners(target, listeners); + return; + } + target._async$_state ^= 2; + target._zone.scheduleMicrotask$1(new A._Future__chainCoreFuture_closure(_box_0, target)); + }, + _Future__propagateToListeners(source, listeners) { + var t2, t3, _box_0, t4, t5, hasError, asyncError, nextListener, nextListener0, sourceResult, t6, zone, oldZone, result, current, _box_1 = {}, + t1 = _box_1.source = source; + for (t2 = type$.AsyncError, t3 = type$.nullable__FutureListener_dynamic_dynamic;;) { + _box_0 = {}; + t4 = t1._async$_state; + t5 = (t4 & 16) === 0; + hasError = !t5; + if (listeners == null) { + if (hasError && (t4 & 1) === 0) { + asyncError = t2._as(t1._resultOrListeners); + t1._zone.handleUncaughtError$2(asyncError.error, asyncError.stackTrace); + } + return; + } + _box_0.listener = listeners; + nextListener = listeners._nextListener; + for (t1 = listeners; nextListener != null; t1 = nextListener, nextListener = nextListener0) { + t1._nextListener = null; + A._Future__propagateToListeners(_box_1.source, t1); + _box_0.listener = nextListener; + nextListener0 = nextListener._nextListener; + } + t4 = _box_1.source; + sourceResult = t4._resultOrListeners; + _box_0.listenerHasError = hasError; + _box_0.listenerValueOrError = sourceResult; + if (t5) { + t6 = t1.state; + t6 = (t6 & 1) !== 0 || (t6 & 15) === 8; + } else + t6 = true; + if (t6) { + zone = t1.result._zone; + if (hasError) { + t1 = t4._zone; + t1 = !(t1 === zone || t1.get$errorZone() === zone.get$errorZone()); + } else + t1 = false; + if (t1) { + t1 = _box_1.source; + asyncError = t2._as(t1._resultOrListeners); + t1._zone.handleUncaughtError$2(asyncError.error, asyncError.stackTrace); + return; + } + oldZone = $.Zone__current; + if (oldZone !== zone) + $.Zone__current = zone; + else + oldZone = null; + t1 = _box_0.listener.state; + if ((t1 & 15) === 8) + new A._Future__propagateToListeners_handleWhenCompleteCallback(_box_0, _box_1, hasError).call$0(); + else if (t5) { + if ((t1 & 1) !== 0) + new A._Future__propagateToListeners_handleValueCallback(_box_0, sourceResult).call$0(); + } else if ((t1 & 2) !== 0) + new A._Future__propagateToListeners_handleError(_box_1, _box_0).call$0(); + if (oldZone != null) + $.Zone__current = oldZone; + t1 = _box_0.listenerValueOrError; + if (t1 instanceof A._Future) { + t4 = _box_0.listener.$ti; + t4 = t4._eval$1("Future<2>")._is(t1) || !t4._rest[1]._is(t1); + } else + t4 = false; + if (t4) { + result = _box_0.listener.result; + if ((t1._async$_state & 24) !== 0) { + current = t3._as(result._resultOrListeners); + result._resultOrListeners = null; + listeners = result._reverseListeners$1(current); + result._async$_state = t1._async$_state & 30 | result._async$_state & 1; + result._resultOrListeners = t1._resultOrListeners; + _box_1.source = t1; + continue; + } else + A._Future__chainCoreFuture(t1, result, true); + return; + } + } + result = _box_0.listener.result; + current = t3._as(result._resultOrListeners); + result._resultOrListeners = null; + listeners = result._reverseListeners$1(current); + t1 = _box_0.listenerHasError; + t4 = _box_0.listenerValueOrError; + if (!t1) { + result.$ti._precomputed1._as(t4); + result._async$_state = 8; + result._resultOrListeners = t4; + } else { + t2._as(t4); + result._async$_state = result._async$_state & 1 | 16; + result._resultOrListeners = t4; + } + _box_1.source = result; + t1 = result; + } + }, + _registerErrorHandler(errorHandler, zone) { + if (type$.dynamic_Function_Object_StackTrace._is(errorHandler)) + return zone.registerBinaryCallback$3$1(errorHandler, type$.dynamic, type$.Object, type$.StackTrace); + if (type$.dynamic_Function_Object._is(errorHandler)) + return zone.registerUnaryCallback$2$1(errorHandler, type$.dynamic, type$.Object); + throw A.wrapException(A.ArgumentError$value(errorHandler, "onError", string$.Error_)); + }, + _microtaskLoop() { + var entry, next; + for (entry = $._nextCallback; entry != null; entry = $._nextCallback) { + $._lastPriorityCallback = null; + next = entry.next; + $._nextCallback = next; + if (next == null) + $._lastCallback = null; + entry.callback.call$0(); + } + }, + _startMicrotaskLoop() { + $._isInCallbackLoop = true; + try { + A._microtaskLoop(); + } finally { + $._lastPriorityCallback = null; + $._isInCallbackLoop = false; + if ($._nextCallback != null) + $.$get$_AsyncRun__scheduleImmediateClosure().call$1(A.async___startMicrotaskLoop$closure()); + } + }, + _scheduleAsyncCallback(callback) { + var newEntry = new A._AsyncCallbackEntry(callback), + lastCallback = $._lastCallback; + if (lastCallback == null) { + $._nextCallback = $._lastCallback = newEntry; + if (!$._isInCallbackLoop) + $.$get$_AsyncRun__scheduleImmediateClosure().call$1(A.async___startMicrotaskLoop$closure()); + } else + $._lastCallback = lastCallback.next = newEntry; + }, + _schedulePriorityAsyncCallback(callback) { + var entry, lastPriorityCallback, next, + t1 = $._nextCallback; + if (t1 == null) { + A._scheduleAsyncCallback(callback); + $._lastPriorityCallback = $._lastCallback; + return; + } + entry = new A._AsyncCallbackEntry(callback); + lastPriorityCallback = $._lastPriorityCallback; + if (lastPriorityCallback == null) { + entry.next = t1; + $._nextCallback = $._lastPriorityCallback = entry; + } else { + next = lastPriorityCallback.next; + entry.next = next; + $._lastPriorityCallback = lastPriorityCallback.next = entry; + if (next == null) + $._lastCallback = entry; + } + }, + scheduleMicrotask(callback) { + var t1, _null = null, + currentZone = $.Zone__current; + if (B.C__RootZone === currentZone) { + A._rootScheduleMicrotask(_null, _null, B.C__RootZone, callback); + return; + } + if (B.C__RootZone === currentZone.get$_scheduleMicrotask().zone) + t1 = B.C__RootZone.get$errorZone() === currentZone.get$errorZone(); + else + t1 = false; + if (t1) { + A._rootScheduleMicrotask(_null, _null, currentZone, currentZone.registerCallback$1$1(callback, type$.void)); + return; + } + t1 = $.Zone__current; + t1.scheduleMicrotask$1(t1.bindCallbackGuarded$1(callback)); + }, + StreamController_StreamController(onCancel, onListen, sync, $T) { + return new A._SyncStreamController(onListen, null, null, onCancel, $T._eval$1("_SyncStreamController<0>")); + }, + _runGuarded(notificationHandler) { + var e, s, exception; + if (notificationHandler == null) + return; + try { + notificationHandler.call$0(); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + $.Zone__current.handleUncaughtError$2(e, s); + } + }, + _BufferingStreamSubscription__registerDataHandler(zone, handleData, $T) { + var t1 = handleData == null ? A.async___nullDataHandler$closure() : handleData; + return zone.registerUnaryCallback$2$1(t1, type$.void, $T); + }, + _BufferingStreamSubscription__registerErrorHandler(zone, handleError) { + if (handleError == null) + handleError = A.async___nullErrorHandler$closure(); + if (type$.void_Function_Object_StackTrace._is(handleError)) + return zone.registerBinaryCallback$3$1(handleError, type$.dynamic, type$.Object, type$.StackTrace); + if (type$.void_Function_Object._is(handleError)) + return zone.registerUnaryCallback$2$1(handleError, type$.dynamic, type$.Object); + throw A.wrapException(A.ArgumentError$(string$.handle, null)); + }, + _nullDataHandler(value) { + }, + _nullErrorHandler(error, stackTrace) { + A._asObject(error); + type$.StackTrace._as(stackTrace); + $.Zone__current.handleUncaughtError$2(error, stackTrace); + }, + _nullDoneHandler() { + }, + Timer_Timer$periodic(duration, callback) { + var boundCallback, + t1 = $.Zone__current; + if (t1 === B.C__RootZone) + return t1.createPeriodicTimer$2(duration, callback); + boundCallback = t1.bindUnaryCallbackGuarded$1$1(callback, type$.Timer); + return $.Zone__current.createPeriodicTimer$2(duration, boundCallback); + }, + runZonedGuarded(body, onError, $R) { + var error, stackTrace, t1, exception, _null = null, zoneSpecification = null, zoneValues = null, + parentZone = $.Zone__current, + errorHandler = new A.runZonedGuarded_closure(parentZone, onError); + if (zoneSpecification == null) + zoneSpecification = new A._ZoneSpecification(errorHandler, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null); + else + zoneSpecification = A.ZoneSpecification_ZoneSpecification$from(zoneSpecification, errorHandler); + try { + t1 = parentZone.fork$2$specification$zoneValues(zoneSpecification, zoneValues).run$1$1(body, $R); + return t1; + } catch (exception) { + error = A.unwrapException(exception); + stackTrace = A.getTraceFromException(exception); + onError.call$2(error, stackTrace); + } + return _null; + }, + _rootHandleUncaughtError($self, $parent, zone, error, stackTrace) { + A._rootHandleError(error, type$.StackTrace._as(stackTrace)); + }, + _rootHandleError(error, stackTrace) { + A._schedulePriorityAsyncCallback(new A._rootHandleError_closure(error, stackTrace)); + }, + _rootRun($self, $parent, zone, f, $R) { + var old, t1; + type$.nullable_Zone._as($self); + type$.nullable_ZoneDelegate._as($parent); + type$.Zone._as(zone); + $R._eval$1("0()")._as(f); + t1 = $.Zone__current; + if (t1 === zone) + return f.call$0(); + $.Zone__current = zone; + old = t1; + try { + t1 = f.call$0(); + return t1; + } finally { + $.Zone__current = old; + } + }, + _rootRunUnary($self, $parent, zone, f, arg, $R, $T) { + var old, t1; + type$.nullable_Zone._as($self); + type$.nullable_ZoneDelegate._as($parent); + type$.Zone._as(zone); + $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f); + $T._as(arg); + t1 = $.Zone__current; + if (t1 === zone) + return f.call$1(arg); + $.Zone__current = zone; + old = t1; + try { + t1 = f.call$1(arg); + return t1; + } finally { + $.Zone__current = old; + } + }, + _rootRunBinary($self, $parent, zone, f, arg1, arg2, $R, $T1, $T2) { + var old, t1; + type$.nullable_Zone._as($self); + type$.nullable_ZoneDelegate._as($parent); + type$.Zone._as(zone); + $R._eval$1("@<0>")._bind$1($T1)._bind$1($T2)._eval$1("1(2,3)")._as(f); + $T1._as(arg1); + $T2._as(arg2); + t1 = $.Zone__current; + if (t1 === zone) + return f.call$2(arg1, arg2); + $.Zone__current = zone; + old = t1; + try { + t1 = f.call$2(arg1, arg2); + return t1; + } finally { + $.Zone__current = old; + } + }, + _rootRegisterCallback($self, $parent, zone, f, $R) { + return $R._eval$1("0()")._as(f); + }, + _rootRegisterUnaryCallback($self, $parent, zone, f, $R, $T) { + return $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f); + }, + _rootRegisterBinaryCallback($self, $parent, zone, f, $R, $T1, $T2) { + return $R._eval$1("@<0>")._bind$1($T1)._bind$1($T2)._eval$1("1(2,3)")._as(f); + }, + _rootErrorCallback($self, $parent, zone, error, stackTrace) { + type$.nullable_StackTrace._as(stackTrace); + return null; + }, + _rootScheduleMicrotask($self, $parent, zone, f) { + var t1, t2; + type$.void_Function._as(f); + if (B.C__RootZone !== zone) { + t1 = B.C__RootZone.get$errorZone(); + t2 = zone.get$errorZone(); + f = t1 !== t2 ? zone.bindCallbackGuarded$1(f) : zone.bindCallback$1$1(f, type$.void); + } + A._scheduleAsyncCallback(f); + }, + _rootCreateTimer($self, $parent, zone, duration, callback) { + type$.Duration._as(duration); + type$.void_Function._as(callback); + return A.Timer__createTimer(duration, B.C__RootZone !== zone ? zone.bindCallback$1$1(callback, type$.void) : callback); + }, + _rootCreatePeriodicTimer($self, $parent, zone, duration, callback) { + type$.Duration._as(duration); + type$.void_Function_Timer._as(callback); + return A.Timer__createPeriodicTimer(duration, B.C__RootZone !== zone ? zone.bindUnaryCallback$2$1(callback, type$.void, type$.Timer) : callback); + }, + _rootPrint($self, $parent, zone, line) { + A.printString(A.S(A._asString(line))); + }, + _rootFork($self, $parent, zone, specification, zoneValues) { + var valueMap, t1, handleUncaughtError; + type$.nullable_ZoneSpecification._as(specification); + type$.nullable_Map_of_nullable_Object_and_nullable_Object._as(zoneValues); + valueMap = zone.get$_map(); + t1 = new A._CustomZone(zone.get$_run(), zone.get$_runUnary(), zone.get$_runBinary(), zone.get$_registerCallback(), zone.get$_registerUnaryCallback(), zone.get$_registerBinaryCallback(), zone.get$_errorCallback(), zone.get$_scheduleMicrotask(), zone.get$_createTimer(), zone.get$_createPeriodicTimer(), zone.get$_print(), zone.get$_fork(), zone.get$_handleUncaughtError(), zone, valueMap); + handleUncaughtError = specification.handleUncaughtError; + if (handleUncaughtError != null) + t1._handleUncaughtError = new A._ZoneFunction(t1, handleUncaughtError, type$._ZoneFunction_of_void_Function_Zone_ZoneDelegate_Zone_Object_StackTrace); + return t1; + }, + ZoneSpecification_ZoneSpecification$from(other, handleUncaughtError) { + var t1 = handleUncaughtError == null ? other.handleUncaughtError : handleUncaughtError; + return new A._ZoneSpecification(t1, other.run, other.runUnary, other.runBinary, other.registerCallback, other.registerUnaryCallback, other.registerBinaryCallback, other.errorCallback, other.scheduleMicrotask, other.createTimer, other.createPeriodicTimer, other.print, other.fork); + }, + _AsyncRun__initializeScheduleImmediate_internalCallback: function _AsyncRun__initializeScheduleImmediate_internalCallback(t0) { + this._box_0 = t0; + }, + _AsyncRun__initializeScheduleImmediate_closure: function _AsyncRun__initializeScheduleImmediate_closure(t0, t1, t2) { + this._box_0 = t0; + this.div = t1; + this.span = t2; + }, + _AsyncRun__scheduleImmediateJsOverride_internalCallback: function _AsyncRun__scheduleImmediateJsOverride_internalCallback(t0) { + this.callback = t0; + }, + _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback: function _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback(t0) { + this.callback = t0; + }, + _TimerImpl: function _TimerImpl() { + this._tick = 0; + }, + _TimerImpl_internalCallback: function _TimerImpl_internalCallback(t0, t1) { + this.$this = t0; + this.callback = t1; + }, + _TimerImpl$periodic_closure: function _TimerImpl$periodic_closure(t0, t1, t2, t3) { + var _ = this; + _.$this = t0; + _.milliseconds = t1; + _.start = t2; + _.callback = t3; + }, + AsyncError: function AsyncError(t0, t1) { + this.error = t0; + this.stackTrace = t1; + }, + _Completer: function _Completer() { + }, + _AsyncCompleter: function _AsyncCompleter(t0, t1) { + this.future = t0; + this.$ti = t1; + }, + _SyncCompleter: function _SyncCompleter(t0, t1) { + this.future = t0; + this.$ti = t1; + }, + _FutureListener: function _FutureListener(t0, t1, t2, t3, t4) { + var _ = this; + _._nextListener = null; + _.result = t0; + _.state = t1; + _.callback = t2; + _.errorCallback = t3; + _.$ti = t4; + }, + _Future: function _Future(t0, t1) { + var _ = this; + _._async$_state = 0; + _._zone = t0; + _._resultOrListeners = null; + _.$ti = t1; + }, + _Future__addListener_closure: function _Future__addListener_closure(t0, t1) { + this.$this = t0; + this.listener = t1; + }, + _Future__prependListeners_closure: function _Future__prependListeners_closure(t0, t1) { + this._box_0 = t0; + this.$this = t1; + }, + _Future__chainCoreFuture_closure: function _Future__chainCoreFuture_closure(t0, t1) { + this._box_0 = t0; + this.target = t1; + }, + _Future__asyncCompleteWithValue_closure: function _Future__asyncCompleteWithValue_closure(t0, t1) { + this.$this = t0; + this.value = t1; + }, + _Future__asyncCompleteErrorObject_closure: function _Future__asyncCompleteErrorObject_closure(t0, t1) { + this.$this = t0; + this.error = t1; + }, + _Future__propagateToListeners_handleWhenCompleteCallback: function _Future__propagateToListeners_handleWhenCompleteCallback(t0, t1, t2) { + this._box_0 = t0; + this._box_1 = t1; + this.hasError = t2; + }, + _Future__propagateToListeners_handleWhenCompleteCallback_closure: function _Future__propagateToListeners_handleWhenCompleteCallback_closure(t0, t1) { + this.joinedResult = t0; + this.originalSource = t1; + }, + _Future__propagateToListeners_handleWhenCompleteCallback_closure0: function _Future__propagateToListeners_handleWhenCompleteCallback_closure0(t0) { + this.joinedResult = t0; + }, + _Future__propagateToListeners_handleValueCallback: function _Future__propagateToListeners_handleValueCallback(t0, t1) { + this._box_0 = t0; + this.sourceResult = t1; + }, + _Future__propagateToListeners_handleError: function _Future__propagateToListeners_handleError(t0, t1) { + this._box_1 = t0; + this._box_0 = t1; + }, + _AsyncCallbackEntry: function _AsyncCallbackEntry(t0) { + this.callback = t0; + this.next = null; + }, + Stream: function Stream() { + }, + Stream_pipe_closure: function Stream_pipe_closure(t0) { + this.streamConsumer = t0; + }, + Stream_length_closure: function Stream_length_closure(t0, t1) { + this._box_0 = t0; + this.$this = t1; + }, + Stream_length_closure0: function Stream_length_closure0(t0, t1) { + this._box_0 = t0; + this.future = t1; + }, + _StreamController: function _StreamController() { + }, + _StreamController__subscribe_closure: function _StreamController__subscribe_closure(t0) { + this.$this = t0; + }, + _StreamController__recordCancel_complete: function _StreamController__recordCancel_complete(t0) { + this.$this = t0; + }, + _SyncStreamControllerDispatch: function _SyncStreamControllerDispatch() { + }, + _SyncStreamController: function _SyncStreamController(t0, t1, t2, t3, t4) { + var _ = this; + _._varData = null; + _._async$_state = 0; + _._doneFuture = null; + _.onListen = t0; + _.onPause = t1; + _.onResume = t2; + _.onCancel = t3; + _.$ti = t4; + }, + _ControllerStream: function _ControllerStream(t0, t1) { + this._controller = t0; + this.$ti = t1; + }, + _ControllerSubscription: function _ControllerSubscription(t0, t1, t2, t3, t4, t5, t6) { + var _ = this; + _._controller = t0; + _._onData = t1; + _._onError = t2; + _._onDone = t3; + _._zone = t4; + _._async$_state = t5; + _._pending = _._cancelFuture = null; + _.$ti = t6; + }, + _StreamSinkWrapper: function _StreamSinkWrapper(t0, t1) { + this._target = t0; + this.$ti = t1; + }, + _AddStreamState_cancel_closure: function _AddStreamState_cancel_closure(t0) { + this.$this = t0; + }, + _BufferingStreamSubscription: function _BufferingStreamSubscription() { + }, + _BufferingStreamSubscription__sendError_sendError: function _BufferingStreamSubscription__sendError_sendError(t0, t1, t2) { + this.$this = t0; + this.error = t1; + this.stackTrace = t2; + }, + _BufferingStreamSubscription__sendDone_sendDone: function _BufferingStreamSubscription__sendDone_sendDone(t0) { + this.$this = t0; + }, + _StreamImpl: function _StreamImpl() { + }, + _DelayedEvent: function _DelayedEvent() { + }, + _DelayedData: function _DelayedData(t0, t1) { + this.value = t0; + this.next = null; + this.$ti = t1; + }, + _DelayedError: function _DelayedError(t0, t1) { + this.error = t0; + this.stackTrace = t1; + this.next = null; + }, + _DelayedDone: function _DelayedDone() { + }, + _PendingEvents: function _PendingEvents(t0) { + var _ = this; + _._async$_state = 0; + _.lastPendingEvent = _.firstPendingEvent = null; + _.$ti = t0; + }, + _PendingEvents_schedule_closure: function _PendingEvents_schedule_closure(t0, t1) { + this.$this = t0; + this.dispatch = t1; + }, + _DoneStreamSubscription: function _DoneStreamSubscription(t0, t1) { + var _ = this; + _._async$_state = 1; + _._zone = t0; + _._onDone = null; + _.$ti = t1; + }, + _EmptyStream: function _EmptyStream(t0) { + this.$ti = t0; + }, + _ZoneFunction: function _ZoneFunction(t0, t1, t2) { + this.zone = t0; + this.$function = t1; + this.$ti = t2; + }, + _Zone: function _Zone() { + }, + _CustomZone: function _CustomZone(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) { + var _ = this; + _._run = t0; + _._runUnary = t1; + _._runBinary = t2; + _._registerCallback = t3; + _._registerUnaryCallback = t4; + _._registerBinaryCallback = t5; + _._errorCallback = t6; + _._scheduleMicrotask = t7; + _._createTimer = t8; + _._createPeriodicTimer = t9; + _._print = t10; + _._fork = t11; + _._handleUncaughtError = t12; + _._delegateCache = null; + _.parent = t13; + _._map = t14; + }, + _CustomZone_bindCallback_closure: function _CustomZone_bindCallback_closure(t0, t1, t2) { + this.$this = t0; + this.registered = t1; + this.R = t2; + }, + _CustomZone_bindUnaryCallback_closure: function _CustomZone_bindUnaryCallback_closure(t0, t1, t2, t3) { + var _ = this; + _.$this = t0; + _.registered = t1; + _.T = t2; + _.R = t3; + }, + _CustomZone_bindCallbackGuarded_closure: function _CustomZone_bindCallbackGuarded_closure(t0, t1) { + this.$this = t0; + this.registered = t1; + }, + _CustomZone_bindUnaryCallbackGuarded_closure: function _CustomZone_bindUnaryCallbackGuarded_closure(t0, t1, t2) { + this.$this = t0; + this.registered = t1; + this.T = t2; + }, + _RootZone: function _RootZone() { + }, + _RootZone_bindCallback_closure: function _RootZone_bindCallback_closure(t0, t1, t2) { + this.$this = t0; + this.f = t1; + this.R = t2; + }, + _RootZone_bindUnaryCallback_closure: function _RootZone_bindUnaryCallback_closure(t0, t1, t2, t3) { + var _ = this; + _.$this = t0; + _.f = t1; + _.T = t2; + _.R = t3; + }, + _RootZone_bindCallbackGuarded_closure: function _RootZone_bindCallbackGuarded_closure(t0, t1) { + this.$this = t0; + this.f = t1; + }, + _RootZone_bindUnaryCallbackGuarded_closure: function _RootZone_bindUnaryCallbackGuarded_closure(t0, t1, t2) { + this.$this = t0; + this.f = t1; + this.T = t2; + }, + runZonedGuarded_closure: function runZonedGuarded_closure(t0, t1) { + this.parentZone = t0; + this.onError = t1; + }, + _ZoneDelegate: function _ZoneDelegate(t0) { + this._delegationTarget = t0; + }, + _rootHandleError_closure: function _rootHandleError_closure(t0, t1) { + this.error = t0; + this.stackTrace = t1; + }, + _ZoneSpecification: function _ZoneSpecification(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12) { + var _ = this; + _.handleUncaughtError = t0; + _.run = t1; + _.runUnary = t2; + _.runBinary = t3; + _.registerCallback = t4; + _.registerUnaryCallback = t5; + _.registerBinaryCallback = t6; + _.errorCallback = t7; + _.scheduleMicrotask = t8; + _.createTimer = t9; + _.createPeriodicTimer = t10; + _.print = t11; + _.fork = t12; + }, + HashMap_HashMap($K, $V) { + return new A._HashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("_HashMap<1,2>")); + }, + _HashMap__getTableEntry(table, key) { + var entry = table[key]; + return entry === table ? null : entry; + }, + _HashMap__setTableEntry(table, key, value) { + if (value == null) + table[key] = table; + else + table[key] = value; + }, + _HashMap__newHashTable() { + var table = Object.create(null); + A._HashMap__setTableEntry(table, "", table); + delete table[""]; + return table; + }, + LinkedHashMap_LinkedHashMap$_literal(keyValuePairs, $K, $V) { + return $K._eval$1("@<0>")._bind$1($V)._eval$1("LinkedHashMap<1,2>")._as(A.fillLiteralMap(keyValuePairs, new A.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>")))); + }, + LinkedHashMap_LinkedHashMap$_empty($K, $V) { + return new A.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>")); + }, + LinkedHashSet_LinkedHashSet$_empty($E) { + return new A._LinkedHashSet($E._eval$1("_LinkedHashSet<0>")); + }, + _LinkedHashSet__newHashTable() { + var table = Object.create(null); + table[""] = table; + delete table[""]; + return table; + }, + _LinkedHashSetIterator$(_set, _modifications, $E) { + var t1 = new A._LinkedHashSetIterator(_set, _modifications, $E._eval$1("_LinkedHashSetIterator<0>")); + t1._collection$_cell = _set._collection$_first; + return t1; + }, + MapBase_mapToString(m) { + var result, t1; + if (A.isToStringVisiting(m)) + return "{...}"; + result = new A.StringBuffer(""); + try { + t1 = {}; + B.JSArray_methods.add$1($._toStringVisiting, m); + result._contents += "{"; + t1.first = true; + m.forEach$1(0, new A.MapBase_mapToString_closure(t1, result)); + result._contents += "}"; + } finally { + if (0 >= $._toStringVisiting.length) + return A.ioore($._toStringVisiting, -1); + $._toStringVisiting.pop(); + } + t1 = result._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + _HashMap: function _HashMap(t0) { + var _ = this; + _._collection$_length = 0; + _._keys = _._collection$_rest = _._nums = _._strings = null; + _.$ti = t0; + }, + _IdentityHashMap: function _IdentityHashMap(t0) { + var _ = this; + _._collection$_length = 0; + _._keys = _._collection$_rest = _._nums = _._strings = null; + _.$ti = t0; + }, + _HashMapKeyIterable: function _HashMapKeyIterable(t0, t1) { + this._collection$_map = t0; + this.$ti = t1; + }, + _HashMapKeyIterator: function _HashMapKeyIterator(t0, t1, t2) { + var _ = this; + _._collection$_map = t0; + _._keys = t1; + _._offset = 0; + _._collection$_current = null; + _.$ti = t2; + }, + _LinkedHashSet: function _LinkedHashSet(t0) { + var _ = this; + _._collection$_length = 0; + _._collection$_last = _._collection$_first = _._collection$_rest = _._nums = _._strings = null; + _._collection$_modifications = 0; + _.$ti = t0; + }, + _LinkedHashSetCell: function _LinkedHashSetCell(t0) { + this._element = t0; + this._collection$_previous = this._collection$_next = null; + }, + _LinkedHashSetIterator: function _LinkedHashSetIterator(t0, t1, t2) { + var _ = this; + _._set = t0; + _._collection$_modifications = t1; + _._collection$_current = _._collection$_cell = null; + _.$ti = t2; + }, + ListBase: function ListBase() { + }, + MapBase: function MapBase() { + }, + MapBase_mapToString_closure: function MapBase_mapToString_closure(t0, t1) { + this._box_0 = t0; + this.result = t1; + }, + _UnmodifiableMapMixin: function _UnmodifiableMapMixin() { + }, + MapView: function MapView() { + }, + UnmodifiableMapView: function UnmodifiableMapView(t0, t1) { + this._collection$_map = t0; + this.$ti = t1; + }, + SetBase: function SetBase() { + }, + _SetBase: function _SetBase() { + }, + _UnmodifiableMapView_MapView__UnmodifiableMapMixin: function _UnmodifiableMapView_MapView__UnmodifiableMapMixin() { + }, + _parseJson(source, reviver) { + var e, exception, t1, parsed = null; + try { + parsed = JSON.parse(source); + } catch (exception) { + e = A.unwrapException(exception); + t1 = A.FormatException$(String(e), null, null); + throw A.wrapException(t1); + } + t1 = A._convertJsonToDartLazy(parsed); + return t1; + }, + _convertJsonToDartLazy(object) { + var i; + if (object == null) + return null; + if (typeof object != "object") + return object; + if (!Array.isArray(object)) + return new A._JsonMap(object, Object.create(null)); + for (i = 0; i < object.length; ++i) + object[i] = A._convertJsonToDartLazy(object[i]); + return object; + }, + _Utf8Decoder__makeNativeUint8List(codeUnits, start, end) { + var bytes, t1, i, b, + $length = end - start; + if ($length <= 4096) + bytes = $.$get$_Utf8Decoder__reusableBuffer(); + else + bytes = new Uint8Array($length); + for (t1 = J.getInterceptor$asx(codeUnits), i = 0; i < $length; ++i) { + b = t1.$index(codeUnits, start + i); + if ((b & 255) !== b) + b = 255; + bytes[i] = b; + } + return bytes; + }, + _Utf8Decoder__convertInterceptedUint8List(allowMalformed, codeUnits, start, end) { + var decoder = allowMalformed ? $.$get$_Utf8Decoder__decoderNonfatal() : $.$get$_Utf8Decoder__decoder(); + if (decoder == null) + return null; + if (0 === start && end === codeUnits.length) + return A._Utf8Decoder__useTextDecoder(decoder, codeUnits); + return A._Utf8Decoder__useTextDecoder(decoder, codeUnits.subarray(start, end)); + }, + _Utf8Decoder__useTextDecoder(decoder, codeUnits) { + var t1, exception; + try { + t1 = decoder.decode(codeUnits); + return t1; + } catch (exception) { + } + return null; + }, + Base64Codec__checkPadding(source, sourceIndex, sourceEnd, firstPadding, paddingCount, $length) { + if (B.JSInt_methods.$mod($length, 4) !== 0) + throw A.wrapException(A.FormatException$("Invalid base64 padding, padded length must be multiple of four, is " + $length, source, sourceEnd)); + if (firstPadding + paddingCount !== $length) + throw A.wrapException(A.FormatException$("Invalid base64 padding, '=' not at the end", source, sourceIndex)); + if (paddingCount > 2) + throw A.wrapException(A.FormatException$("Invalid base64 padding, more than two '=' characters", source, sourceIndex)); + }, + JsonUnsupportedObjectError$(unsupportedObject, cause, partialResult) { + return new A.JsonUnsupportedObjectError(unsupportedObject, cause); + }, + _defaultToEncodable(object) { + return object.toJson$0(); + }, + _JsonStringStringifier$(_sink, _toEncodable) { + return new A._JsonStringStringifier(_sink, [], A.convert___defaultToEncodable$closure()); + }, + _JsonStringStringifier_stringify(object, toEncodable, indent) { + var t1, + output = new A.StringBuffer(""); + A._JsonStringStringifier_printOn(object, output, toEncodable, indent); + t1 = output._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + _JsonStringStringifier_printOn(object, output, toEncodable, indent) { + var stringifier = A._JsonStringStringifier$(output, toEncodable); + stringifier.writeObject$1(object); + }, + _Utf8Decoder_errorDescription(state) { + switch (state) { + case 65: + return "Missing extension byte"; + case 67: + return "Unexpected extension byte"; + case 69: + return "Invalid UTF-8 byte"; + case 71: + return "Overlong encoding"; + case 73: + return "Out of unicode range"; + case 75: + return "Encoded surrogate"; + case 77: + return "Unfinished UTF-8 octet sequence"; + default: + return ""; + } + }, + _JsonMap: function _JsonMap(t0, t1) { + this._original = t0; + this._processed = t1; + this._data = null; + }, + _JsonMapKeyIterable: function _JsonMapKeyIterable(t0) { + this._convert$_parent = t0; + }, + _Utf8Decoder__decoder_closure: function _Utf8Decoder__decoder_closure() { + }, + _Utf8Decoder__decoderNonfatal_closure: function _Utf8Decoder__decoderNonfatal_closure() { + }, + AsciiCodec: function AsciiCodec() { + }, + _UnicodeSubsetEncoder: function _UnicodeSubsetEncoder() { + }, + AsciiEncoder: function AsciiEncoder(t0) { + this._subsetMask = t0; + }, + Base64Codec: function Base64Codec() { + }, + Base64Encoder: function Base64Encoder() { + }, + Codec: function Codec() { + }, + _FusedCodec: function _FusedCodec(t0, t1, t2) { + this._convert$_first = t0; + this._second = t1; + this.$ti = t2; + }, + Converter: function Converter() { + }, + Encoding: function Encoding() { + }, + JsonUnsupportedObjectError: function JsonUnsupportedObjectError(t0, t1) { + this.unsupportedObject = t0; + this.cause = t1; + }, + JsonCyclicError: function JsonCyclicError(t0, t1) { + this.unsupportedObject = t0; + this.cause = t1; + }, + JsonCodec: function JsonCodec() { + }, + JsonEncoder: function JsonEncoder(t0) { + this._toEncodable = t0; + }, + JsonDecoder: function JsonDecoder(t0) { + this._reviver = t0; + }, + _JsonStringifier: function _JsonStringifier() { + }, + _JsonStringifier_writeMap_closure: function _JsonStringifier_writeMap_closure(t0, t1) { + this._box_0 = t0; + this.keyValueList = t1; + }, + _JsonStringStringifier: function _JsonStringStringifier(t0, t1, t2) { + this._sink = t0; + this._seen = t1; + this._toEncodable = t2; + }, + Utf8Codec: function Utf8Codec() { + }, + Utf8Encoder: function Utf8Encoder() { + }, + _Utf8Encoder: function _Utf8Encoder(t0) { + this._bufferIndex = this._carry = 0; + this._buffer = t0; + }, + Utf8Decoder: function Utf8Decoder(t0) { + this._allowMalformed = t0; + }, + _Utf8Decoder: function _Utf8Decoder(t0) { + this.allowMalformed = t0; + this._state = 16; + this._charOrIndex = 0; + }, + int_parse(source) { + var value = A.Primitives_parseInt(source, null); + if (value != null) + return value; + throw A.wrapException(A.FormatException$(source, null, null)); + }, + Error__throw(error, stackTrace) { + error = A.initializeExceptionWrapper(error, new Error()); + if (error == null) + error = A._asObject(error); + error.stack = stackTrace.toString$0(0); + throw error; + }, + List_List$filled($length, fill, growable, $E) { + var i, + result = growable ? J.JSArray_JSArray$growable($length, $E) : J.JSArray_JSArray$fixed($length, $E); + if ($length !== 0 && fill != null) + for (i = 0; i < result.length; ++i) + result[i] = fill; + return result; + }, + List_List$from(elements, growable, $E) { + var t1, + list = A._setArrayType([], $E._eval$1("JSArray<0>")); + for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();) + B.JSArray_methods.add$1(list, $E._as(t1.get$current())); + if (growable) + return list; + list.$flags = 1; + return list; + }, + List_List$_of(elements, $E) { + var list, t1; + if (Array.isArray(elements)) + return A._setArrayType(elements.slice(0), $E._eval$1("JSArray<0>")); + list = A._setArrayType([], $E._eval$1("JSArray<0>")); + for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();) + B.JSArray_methods.add$1(list, t1.get$current()); + return list; + }, + List_List$unmodifiable(elements, $E) { + var result = A.List_List$from(elements, false, $E); + result.$flags = 3; + return result; + }, + String_String$fromCharCodes(charCodes, start, end) { + var t1, t2, maxLength, array, len; + A.RangeError_checkNotNegative(start, "start"); + t1 = end == null; + t2 = !t1; + if (t2) { + maxLength = end - start; + if (maxLength < 0) + throw A.wrapException(A.RangeError$range(end, start, null, "end", null)); + if (maxLength === 0) + return ""; + } + if (Array.isArray(charCodes)) { + array = charCodes; + len = array.length; + if (t1) + end = len; + return A.Primitives_stringFromCharCodes(start > 0 || end < len ? array.slice(start, end) : array); + } + if (type$.NativeUint8List._is(charCodes)) + return A.String__stringFromUint8List(charCodes, start, end); + if (t2) + charCodes = J.take$1$ax(charCodes, end); + if (start > 0) + charCodes = J.skip$1$ax(charCodes, start); + t1 = A.List_List$_of(charCodes, type$.int); + return A.Primitives_stringFromCharCodes(t1); + }, + String_String$fromCharCode(charCode) { + return A.Primitives_stringFromCharCode(charCode); + }, + String__stringFromUint8List(charCodes, start, endOrNull) { + var len = charCodes.length; + if (start >= len) + return ""; + return A.Primitives_stringFromNativeUint8List(charCodes, start, endOrNull == null || endOrNull > len ? len : endOrNull); + }, + RegExp_RegExp(source, multiLine) { + return new A.JSSyntaxRegExp(source, A.JSSyntaxRegExp_makeNative(source, multiLine, true, false, false, "")); + }, + StringBuffer__writeAll(string, objects, separator) { + var iterator = J.get$iterator$ax(objects); + if (!iterator.moveNext$0()) + return string; + if (separator.length === 0) { + do + string += A.S(iterator.get$current()); + while (iterator.moveNext$0()); + } else { + string += A.S(iterator.get$current()); + while (iterator.moveNext$0()) + string = string + separator + A.S(iterator.get$current()); + } + return string; + }, + Uri_base() { + var cachedUri, uri, + current = A.Primitives_currentUri(); + if (current == null) + throw A.wrapException(A.UnsupportedError$("'Uri.base' is not supported")); + cachedUri = $.Uri__cachedBaseUri; + if (cachedUri != null && current === $.Uri__cachedBaseString) + return cachedUri; + uri = A.Uri_parse(current); + $.Uri__cachedBaseUri = uri; + $.Uri__cachedBaseString = current; + return uri; + }, + _Uri__uriEncode(canonicalMask, text, encoding, spaceToPlus) { + var t1, bytes, i, t2, byte, + _s16_ = "0123456789ABCDEF"; + if (encoding === B.C_Utf8Codec) { + t1 = $.$get$_Uri__needsNoEncoding(); + t1 = t1._nativeRegExp.test(text); + } else + t1 = false; + if (t1) + return text; + bytes = B.C_Utf8Encoder.convert$1(text); + for (t1 = bytes.length, i = 0, t2 = ""; i < t1; ++i) { + byte = bytes[i]; + if (byte < 128 && (string$.x00_____.charCodeAt(byte) & canonicalMask) !== 0) + t2 += A.Primitives_stringFromCharCode(byte); + else + t2 = spaceToPlus && byte === 32 ? t2 + "+" : t2 + "%" + _s16_[byte >>> 4 & 15] + _s16_[byte & 15]; + } + return t2.charCodeAt(0) == 0 ? t2 : t2; + }, + StackTrace_current() { + return A.getTraceFromException(new Error()); + }, + DateTime__fourDigits(n) { + var absN = Math.abs(n), + sign = n < 0 ? "-" : ""; + if (absN >= 1000) + return "" + n; + if (absN >= 100) + return sign + "0" + absN; + if (absN >= 10) + return sign + "00" + absN; + return sign + "000" + absN; + }, + DateTime__threeDigits(n) { + if (n >= 100) + return "" + n; + if (n >= 10) + return "0" + n; + return "00" + n; + }, + DateTime__twoDigits(n) { + if (n >= 10) + return "" + n; + return "0" + n; + }, + Error_safeToString(object) { + if (typeof object == "number" || A._isBool(object) || object == null) + return J.toString$0$(object); + if (typeof object == "string") + return JSON.stringify(object); + return A.Primitives_safeToString(object); + }, + Error_throwWithStackTrace(error, stackTrace) { + A.checkNotNullable(error, "error", type$.Object); + A.checkNotNullable(stackTrace, "stackTrace", type$.StackTrace); + A.Error__throw(error, stackTrace); + }, + AssertionError$(message) { + return new A.AssertionError(message); + }, + ArgumentError$(message, $name) { + return new A.ArgumentError(false, null, $name, message); + }, + ArgumentError$value(value, $name, message) { + return new A.ArgumentError(true, value, $name, message); + }, + ArgumentError_checkNotNull(argument, $name, $T) { + return argument; + }, + RangeError$value(value, $name) { + return new A.RangeError(null, null, true, value, $name, "Value not in range"); + }, + RangeError$range(invalidValue, minValue, maxValue, $name, message) { + return new A.RangeError(minValue, maxValue, true, invalidValue, $name, "Invalid value"); + }, + RangeError_checkValueInInterval(value, minValue, maxValue, $name) { + if (value < minValue || value > maxValue) + throw A.wrapException(A.RangeError$range(value, minValue, maxValue, $name, null)); + return value; + }, + RangeError_checkValidRange(start, end, $length) { + if (0 > start || start > $length) + throw A.wrapException(A.RangeError$range(start, 0, $length, "start", null)); + if (end != null) { + if (start > end || end > $length) + throw A.wrapException(A.RangeError$range(end, start, $length, "end", null)); + return end; + } + return $length; + }, + RangeError_checkNotNegative(value, $name) { + if (value < 0) + throw A.wrapException(A.RangeError$range(value, 0, null, $name, null)); + return value; + }, + IndexError$withLength(invalidValue, $length, indexable, $name) { + return new A.IndexError($length, true, invalidValue, $name, "Index out of range"); + }, + UnsupportedError$(message) { + return new A.UnsupportedError(message); + }, + UnimplementedError$(message) { + return new A.UnimplementedError(message); + }, + StateError$(message) { + return new A.StateError(message); + }, + ConcurrentModificationError$(modifiedObject) { + return new A.ConcurrentModificationError(modifiedObject); + }, + FormatException$(message, source, offset) { + return new A.FormatException(message, source, offset); + }, + Iterable_iterableToShortString(iterable, leftDelimiter, rightDelimiter) { + var parts, t1; + if (A.isToStringVisiting(iterable)) { + if (leftDelimiter === "(" && rightDelimiter === ")") + return "(...)"; + return leftDelimiter + "..." + rightDelimiter; + } + parts = A._setArrayType([], type$.JSArray_String); + B.JSArray_methods.add$1($._toStringVisiting, iterable); + try { + A._iterablePartsToStrings(iterable, parts); + } finally { + if (0 >= $._toStringVisiting.length) + return A.ioore($._toStringVisiting, -1); + $._toStringVisiting.pop(); + } + t1 = A.StringBuffer__writeAll(leftDelimiter, type$.Iterable_dynamic._as(parts), ", ") + rightDelimiter; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + Iterable_iterableToFullString(iterable, leftDelimiter, rightDelimiter) { + var buffer, t1; + if (A.isToStringVisiting(iterable)) + return leftDelimiter + "..." + rightDelimiter; + buffer = new A.StringBuffer(leftDelimiter); + B.JSArray_methods.add$1($._toStringVisiting, iterable); + try { + t1 = buffer; + t1._contents = A.StringBuffer__writeAll(t1._contents, iterable, ", "); + } finally { + if (0 >= $._toStringVisiting.length) + return A.ioore($._toStringVisiting, -1); + $._toStringVisiting.pop(); + } + buffer._contents += rightDelimiter; + t1 = buffer._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + _iterablePartsToStrings(iterable, parts) { + var next, ultimateString, penultimateString, penultimate, ultimate, ultimate0, elision, + it = iterable.get$iterator(iterable), + $length = 0, count = 0; + for (;;) { + if (!($length < 80 || count < 3)) + break; + if (!it.moveNext$0()) + return; + next = A.S(it.get$current()); + B.JSArray_methods.add$1(parts, next); + $length += next.length + 2; + ++count; + } + if (!it.moveNext$0()) { + if (count <= 5) + return; + if (0 >= parts.length) + return A.ioore(parts, -1); + ultimateString = parts.pop(); + if (0 >= parts.length) + return A.ioore(parts, -1); + penultimateString = parts.pop(); + } else { + penultimate = it.get$current(); + ++count; + if (!it.moveNext$0()) { + if (count <= 4) { + B.JSArray_methods.add$1(parts, A.S(penultimate)); + return; + } + ultimateString = A.S(penultimate); + if (0 >= parts.length) + return A.ioore(parts, -1); + penultimateString = parts.pop(); + $length += ultimateString.length + 2; + } else { + ultimate = it.get$current(); + ++count; + for (; it.moveNext$0(); penultimate = ultimate, ultimate = ultimate0) { + ultimate0 = it.get$current(); + ++count; + if (count > 100) { + for (;;) { + if (!($length > 75 && count > 3)) + break; + if (0 >= parts.length) + return A.ioore(parts, -1); + $length -= parts.pop().length + 2; + --count; + } + B.JSArray_methods.add$1(parts, "..."); + return; + } + } + penultimateString = A.S(penultimate); + ultimateString = A.S(ultimate); + $length += ultimateString.length + penultimateString.length + 4; + } + } + if (count > parts.length + 2) { + $length += 5; + elision = "..."; + } else + elision = null; + for (;;) { + if (!($length > 80 && parts.length > 3)) + break; + if (0 >= parts.length) + return A.ioore(parts, -1); + $length -= parts.pop().length + 2; + if (elision == null) { + $length += 5; + elision = "..."; + } + } + if (elision != null) + B.JSArray_methods.add$1(parts, elision); + B.JSArray_methods.add$1(parts, penultimateString); + B.JSArray_methods.add$1(parts, ultimateString); + }, + Object_hash(object1, object2) { + var t1 = J.get$hashCode$(object1); + object2 = J.get$hashCode$(object2); + object2 = A.SystemHash_finish(A.SystemHash_combine(A.SystemHash_combine($.$get$_hashSeed(), t1), object2)); + return object2; + }, + Uri_Uri$dataFromString($content) { + var t1, _null = null, + buffer = new A.StringBuffer(""), + indices = A._setArrayType([-1], type$.JSArray_int); + A.UriData__writeUri(_null, _null, _null, buffer, indices); + B.JSArray_methods.add$1(indices, buffer._contents.length); + buffer._contents += ","; + A.UriData__uriEncodeBytes(256, B.C_AsciiCodec.encode$1($content), buffer); + t1 = buffer._contents; + return new A.UriData(t1.charCodeAt(0) == 0 ? t1 : t1, indices, _null).get$uri(); + }, + Uri_parse(uri) { + var delta, indices, schemeEnd, hostStart, portStart, pathStart, queryStart, fragmentStart, isSimple, scheme, t1, t2, schemeAuth, queryStart0, pathStart0, port, userInfoStart, userInfo, host, portNumber, path, query, _null = null, + end = uri.length; + if (end >= 5) { + if (4 >= end) + return A.ioore(uri, 4); + delta = ((uri.charCodeAt(4) ^ 58) * 3 | uri.charCodeAt(0) ^ 100 | uri.charCodeAt(1) ^ 97 | uri.charCodeAt(2) ^ 116 | uri.charCodeAt(3) ^ 97) >>> 0; + if (delta === 0) + return A.UriData__parse(end < end ? B.JSString_methods.substring$2(uri, 0, end) : uri, 5, _null).get$uri(); + else if (delta === 32) + return A.UriData__parse(B.JSString_methods.substring$2(uri, 5, end), 0, _null).get$uri(); + } + indices = A.List_List$filled(8, 0, false, type$.int); + B.JSArray_methods.$indexSet(indices, 0, 0); + B.JSArray_methods.$indexSet(indices, 1, -1); + B.JSArray_methods.$indexSet(indices, 2, -1); + B.JSArray_methods.$indexSet(indices, 7, -1); + B.JSArray_methods.$indexSet(indices, 3, 0); + B.JSArray_methods.$indexSet(indices, 4, 0); + B.JSArray_methods.$indexSet(indices, 5, end); + B.JSArray_methods.$indexSet(indices, 6, end); + if (A._scan(uri, 0, end, 0, indices) >= 14) + B.JSArray_methods.$indexSet(indices, 7, end); + schemeEnd = indices[1]; + if (schemeEnd >= 0) + if (A._scan(uri, 0, schemeEnd, 20, indices) === 20) + indices[7] = schemeEnd; + hostStart = indices[2] + 1; + portStart = indices[3]; + pathStart = indices[4]; + queryStart = indices[5]; + fragmentStart = indices[6]; + if (fragmentStart < queryStart) + queryStart = fragmentStart; + if (pathStart < hostStart) + pathStart = queryStart; + else if (pathStart <= schemeEnd) + pathStart = schemeEnd + 1; + if (portStart < hostStart) + portStart = pathStart; + isSimple = indices[7] < 0; + scheme = _null; + if (isSimple) { + isSimple = false; + if (!(hostStart > schemeEnd + 3)) { + t1 = portStart > 0; + if (!(t1 && portStart + 1 === pathStart)) { + if (!B.JSString_methods.startsWith$2(uri, "\\", pathStart)) + if (hostStart > 0) + t2 = B.JSString_methods.startsWith$2(uri, "\\", hostStart - 1) || B.JSString_methods.startsWith$2(uri, "\\", hostStart - 2); + else + t2 = false; + else + t2 = true; + if (!t2) { + if (!(queryStart < end && queryStart === pathStart + 2 && B.JSString_methods.startsWith$2(uri, "..", pathStart))) + t2 = queryStart > pathStart + 2 && B.JSString_methods.startsWith$2(uri, "/..", queryStart - 3); + else + t2 = true; + if (!t2) + if (schemeEnd === 4) { + if (B.JSString_methods.startsWith$2(uri, "file", 0)) { + if (hostStart <= 0) { + if (!B.JSString_methods.startsWith$2(uri, "/", pathStart)) { + schemeAuth = "file:///"; + delta = 3; + } else { + schemeAuth = "file://"; + delta = 2; + } + uri = schemeAuth + B.JSString_methods.substring$2(uri, pathStart, end); + queryStart += delta; + fragmentStart += delta; + end = uri.length; + hostStart = 7; + portStart = 7; + pathStart = 7; + } else if (pathStart === queryStart) { + ++fragmentStart; + queryStart0 = queryStart + 1; + uri = B.JSString_methods.replaceRange$3(uri, pathStart, queryStart, "/"); + ++end; + queryStart = queryStart0; + } + scheme = "file"; + } else if (B.JSString_methods.startsWith$2(uri, "http", 0)) { + if (t1 && portStart + 3 === pathStart && B.JSString_methods.startsWith$2(uri, "80", portStart + 1)) { + fragmentStart -= 3; + pathStart0 = pathStart - 3; + queryStart -= 3; + uri = B.JSString_methods.replaceRange$3(uri, portStart, pathStart, ""); + end -= 3; + pathStart = pathStart0; + } + scheme = "http"; + } + } else if (schemeEnd === 5 && B.JSString_methods.startsWith$2(uri, "https", 0)) { + if (t1 && portStart + 4 === pathStart && B.JSString_methods.startsWith$2(uri, "443", portStart + 1)) { + fragmentStart -= 4; + pathStart0 = pathStart - 4; + queryStart -= 4; + uri = B.JSString_methods.replaceRange$3(uri, portStart, pathStart, ""); + end -= 3; + pathStart = pathStart0; + } + scheme = "https"; + } + isSimple = !t2; + } + } + } + } + if (isSimple) + return new A._SimpleUri(end < uri.length ? B.JSString_methods.substring$2(uri, 0, end) : uri, schemeEnd, hostStart, portStart, pathStart, queryStart, fragmentStart, scheme); + if (scheme == null) + if (schemeEnd > 0) + scheme = A._Uri__makeScheme(uri, 0, schemeEnd); + else { + if (schemeEnd === 0) + A._Uri__fail(uri, 0, "Invalid empty scheme"); + scheme = ""; + } + port = _null; + if (hostStart > 0) { + userInfoStart = schemeEnd + 3; + userInfo = userInfoStart < hostStart ? A._Uri__makeUserInfo(uri, userInfoStart, hostStart - 1) : ""; + host = A._Uri__makeHost(uri, hostStart, portStart, false); + t1 = portStart + 1; + if (t1 < pathStart) { + portNumber = A.Primitives_parseInt(B.JSString_methods.substring$2(uri, t1, pathStart), _null); + port = A._Uri__makePort(portNumber == null ? A.throwExpression(A.FormatException$("Invalid port", uri, t1)) : portNumber, scheme); + } + } else { + host = _null; + userInfo = ""; + } + path = A._Uri__makePath(uri, pathStart, queryStart, _null, scheme, host != null); + query = queryStart < fragmentStart ? A._Uri__makeQuery(uri, queryStart + 1, fragmentStart, _null) : _null; + return A._Uri$_internal(scheme, userInfo, host, port, path, query, fragmentStart < end ? A._Uri__makeFragment(uri, fragmentStart + 1, end) : _null); + }, + Uri_decodeComponent(encodedComponent) { + A._asString(encodedComponent); + return A._Uri__uriDecode(encodedComponent, 0, encodedComponent.length, B.C_Utf8Codec, false); + }, + Uri_splitQueryString(query) { + var t1 = type$.String; + return B.JSArray_methods.fold$1$2(A._setArrayType(query.split("&"), type$.JSArray_String), A.LinkedHashMap_LinkedHashMap$_empty(t1, t1), new A.Uri_splitQueryString_closure(B.C_Utf8Codec), type$.Map_String_String); + }, + Uri__ipv4FormatError(msg, source, position) { + throw A.wrapException(A.FormatException$("Illegal IPv4 address, " + msg, source, position)); + }, + Uri__parseIPv4Address(host, start, end, target, targetOffset) { + var t1, octetStart, cursor, octetIndex, octetValue, char, digit, octetIndex0, t2, + _s17_ = "invalid character"; + for (t1 = host.length, octetStart = start, cursor = octetStart, octetIndex = 0, octetValue = 0;;) { + if (cursor >= end) + char = 0; + else { + if (!(cursor >= 0 && cursor < t1)) + return A.ioore(host, cursor); + char = host.charCodeAt(cursor); + } + digit = char ^ 48; + if (digit <= 9) { + if (octetValue !== 0 || cursor === octetStart) { + octetValue = octetValue * 10 + digit; + if (octetValue <= 255) { + ++cursor; + continue; + } + A.Uri__ipv4FormatError("each part must be in the range 0..255", host, octetStart); + } + A.Uri__ipv4FormatError("parts must not have leading zeros", host, octetStart); + } + if (cursor === octetStart) { + if (cursor === end) + break; + A.Uri__ipv4FormatError(_s17_, host, cursor); + } + octetIndex0 = octetIndex + 1; + t2 = targetOffset + octetIndex; + target.$flags & 2 && A.throwUnsupportedOperation(target); + if (!(t2 < 16)) + return A.ioore(target, t2); + target[t2] = octetValue; + if (char === 46) { + if (octetIndex0 < 4) { + ++cursor; + octetIndex = octetIndex0; + octetStart = cursor; + octetValue = 0; + continue; + } + break; + } + if (cursor === end) { + if (octetIndex0 === 4) + return; + break; + } + A.Uri__ipv4FormatError(_s17_, host, cursor); + octetIndex = octetIndex0; + } + A.Uri__ipv4FormatError("IPv4 address should contain exactly 4 parts", host, cursor); + }, + Uri__validateIPvAddress(host, start, end) { + var error; + if (start === end) + throw A.wrapException(A.FormatException$("Empty IP address", host, start)); + if (!(start >= 0 && start < host.length)) + return A.ioore(host, start); + if (host.charCodeAt(start) === 118) { + error = A.Uri__validateIPvFutureAddress(host, start, end); + if (error != null) + throw A.wrapException(error); + return false; + } + A.Uri_parseIPv6Address(host, start, end); + return true; + }, + Uri__validateIPvFutureAddress(host, start, end) { + var t1, cursor, cursor0, char, ucChar, + _s38_ = "Missing hex-digit in IPvFuture address", + _s128_ = string$.x00_____; + ++start; + for (t1 = host.length, cursor = start;; cursor = cursor0) { + if (cursor < end) { + cursor0 = cursor + 1; + if (!(cursor >= 0 && cursor < t1)) + return A.ioore(host, cursor); + char = host.charCodeAt(cursor); + if ((char ^ 48) <= 9) + continue; + ucChar = char | 32; + if (ucChar >= 97 && ucChar <= 102) + continue; + if (char === 46) { + if (cursor0 - 1 === start) + return new A.FormatException(_s38_, host, cursor0); + cursor = cursor0; + break; + } + return new A.FormatException("Unexpected character", host, cursor0 - 1); + } + if (cursor - 1 === start) + return new A.FormatException(_s38_, host, cursor); + return new A.FormatException("Missing '.' in IPvFuture address", host, cursor); + } + if (cursor === end) + return new A.FormatException("Missing address in IPvFuture address, host, cursor", null, null); + for (;;) { + if (!(cursor >= 0 && cursor < t1)) + return A.ioore(host, cursor); + char = host.charCodeAt(cursor); + if (!(char < 128)) + return A.ioore(_s128_, char); + if ((_s128_.charCodeAt(char) & 16) !== 0) { + ++cursor; + if (cursor < end) + continue; + return null; + } + return new A.FormatException("Invalid IPvFuture address character", host, cursor); + } + }, + Uri_parseIPv6Address(host, start, end) { + var result, t1, wildcardAt, partCount, t2, cursor, partStart, hexValue, decValue, char, _0_0, decValue0, hexDigit, _1_0, t3, partCount0, partAfterWildcard, partsAfterWildcard, positionAfterWildcard, newPositionAfterWildcard, + _s39_ = "an address must contain at most 8 parts", + error = new A.Uri_parseIPv6Address_error(host); + if (end - start < 2) + error.call$2("address is too short", null); + result = new Uint8Array(16); + t1 = host.length; + if (!(start >= 0 && start < t1)) + return A.ioore(host, start); + wildcardAt = -1; + partCount = 0; + if (host.charCodeAt(start) === 58) { + t2 = start + 1; + if (!(t2 < t1)) + return A.ioore(host, t2); + if (host.charCodeAt(t2) === 58) { + cursor = start + 2; + partStart = cursor; + wildcardAt = 0; + partCount = 1; + } else { + error.call$2("invalid start colon", start); + cursor = start; + partStart = cursor; + } + } else { + cursor = start; + partStart = cursor; + } + for (hexValue = 0, decValue = true;;) { + if (cursor >= end) + char = 0; + else { + if (!(cursor < t1)) + return A.ioore(host, cursor); + char = host.charCodeAt(cursor); + } + $label0$0: { + _0_0 = char ^ 48; + decValue0 = false; + if (_0_0 <= 9) + hexDigit = _0_0; + else { + _1_0 = char | 32; + if (_1_0 >= 97 && _1_0 <= 102) + hexDigit = _1_0 - 87; + else + break $label0$0; + decValue = decValue0; + } + if (cursor < partStart + 4) { + hexValue = hexValue * 16 + hexDigit; + ++cursor; + continue; + } + error.call$2("an IPv6 part can contain a maximum of 4 hex digits", partStart); + } + if (cursor > partStart) { + if (char === 46) { + if (decValue) { + if (partCount <= 6) { + A.Uri__parseIPv4Address(host, partStart, end, result, partCount * 2); + partCount += 2; + cursor = end; + break; + } + error.call$2(_s39_, partStart); + } + break; + } + t2 = partCount * 2; + t3 = B.JSInt_methods._shrOtherPositive$1(hexValue, 8); + if (!(t2 < 16)) + return A.ioore(result, t2); + result[t2] = t3; + ++t2; + if (!(t2 < 16)) + return A.ioore(result, t2); + result[t2] = hexValue & 255; + ++partCount; + if (char === 58) { + if (partCount < 8) { + ++cursor; + partStart = cursor; + hexValue = 0; + decValue = true; + continue; + } + error.call$2(_s39_, cursor); + } + break; + } + if (char === 58) { + if (wildcardAt < 0) { + partCount0 = partCount + 1; + ++cursor; + wildcardAt = partCount; + partCount = partCount0; + partStart = cursor; + continue; + } + error.call$2("only one wildcard `::` is allowed", cursor); + } + if (wildcardAt !== partCount - 1) + error.call$2("missing part", cursor); + break; + } + if (cursor < end) + error.call$2("invalid character", cursor); + if (partCount < 8) { + if (wildcardAt < 0) + error.call$2("an address without a wildcard must contain exactly 8 parts", end); + partAfterWildcard = wildcardAt + 1; + partsAfterWildcard = partCount - partAfterWildcard; + if (partsAfterWildcard > 0) { + positionAfterWildcard = partAfterWildcard * 2; + newPositionAfterWildcard = 16 - partsAfterWildcard * 2; + B.NativeUint8List_methods.setRange$4(result, newPositionAfterWildcard, 16, result, positionAfterWildcard); + B.NativeUint8List_methods.fillRange$3(result, positionAfterWildcard, newPositionAfterWildcard, 0); + } + } + return result; + }, + _Uri$_internal(scheme, _userInfo, _host, _port, path, _query, _fragment) { + return new A._Uri(scheme, _userInfo, _host, _port, path, _query, _fragment); + }, + _Uri__Uri(host, path, pathSegments, scheme) { + var userInfo, query, fragment, port, isFile, t1, hasAuthority, t2, _null = null; + scheme = scheme == null ? "" : A._Uri__makeScheme(scheme, 0, scheme.length); + userInfo = A._Uri__makeUserInfo(_null, 0, 0); + host = A._Uri__makeHost(host, 0, host == null ? 0 : host.length, false); + query = A._Uri__makeQuery(_null, 0, 0, _null); + fragment = A._Uri__makeFragment(_null, 0, 0); + port = A._Uri__makePort(_null, scheme); + isFile = scheme === "file"; + if (host == null) + t1 = userInfo.length !== 0 || port != null || isFile; + else + t1 = false; + if (t1) + host = ""; + t1 = host == null; + hasAuthority = !t1; + path = A._Uri__makePath(path, 0, path == null ? 0 : path.length, pathSegments, scheme, hasAuthority); + t2 = scheme.length === 0; + if (t2 && t1 && !B.JSString_methods.startsWith$1(path, "/")) + path = A._Uri__normalizeRelativePath(path, !t2 || hasAuthority); + else + path = A._Uri__removeDotSegments(path); + return A._Uri$_internal(scheme, userInfo, t1 && B.JSString_methods.startsWith$1(path, "//") ? "" : host, port, path, query, fragment); + }, + _Uri__defaultPort(scheme) { + if (scheme === "http") + return 80; + if (scheme === "https") + return 443; + return 0; + }, + _Uri__fail(uri, index, message) { + throw A.wrapException(A.FormatException$(message, uri, index)); + }, + _Uri__Uri$file(path, windows) { + return windows ? A._Uri__makeWindowsFileUrl(path, false) : A._Uri__makeFileUri(path, false); + }, + _Uri__checkNonWindowsPathReservedCharacters(segments, argumentError) { + var t1, _i, segment; + for (t1 = segments.length, _i = 0; _i < t1; ++_i) { + segment = segments[_i]; + if (B.JSString_methods.contains$1(segment, "/")) { + t1 = A.UnsupportedError$("Illegal path character " + segment); + throw A.wrapException(t1); + } + } + }, + _Uri__checkWindowsPathReservedCharacters(segments, argumentError, firstSegment) { + var t1, t2, t3; + for (t1 = A.SubListIterable$(segments, firstSegment, null, A._arrayInstanceType(segments)._precomputed1), t2 = t1.$ti, t1 = new A.ListIterator(t1, t1.get$length(0), t2._eval$1("ListIterator")), t2 = t2._eval$1("ListIterable.E"); t1.moveNext$0();) { + t3 = t1.__internal$_current; + if (t3 == null) + t3 = t2._as(t3); + if (B.JSString_methods.contains$1(t3, A.RegExp_RegExp('["*/:<>?\\\\|]', false))) + if (argumentError) + throw A.wrapException(A.ArgumentError$("Illegal character in path", null)); + else + throw A.wrapException(A.UnsupportedError$("Illegal character in path: " + t3)); + } + }, + _Uri__checkWindowsDriveLetter(charCode, argumentError) { + var t1, + _s21_ = "Illegal drive letter "; + if (!(65 <= charCode && charCode <= 90)) + t1 = 97 <= charCode && charCode <= 122; + else + t1 = true; + if (t1) + return; + if (argumentError) + throw A.wrapException(A.ArgumentError$(_s21_ + A.String_String$fromCharCode(charCode), null)); + else + throw A.wrapException(A.UnsupportedError$(_s21_ + A.String_String$fromCharCode(charCode))); + }, + _Uri__makeFileUri(path, slashTerminated) { + var _null = null, + segments = A._setArrayType(path.split("/"), type$.JSArray_String); + if (B.JSString_methods.startsWith$1(path, "/")) + return A._Uri__Uri(_null, _null, segments, "file"); + else + return A._Uri__Uri(_null, _null, segments, _null); + }, + _Uri__makeWindowsFileUrl(path, slashTerminated) { + var t1, t2, pathSegments, pathStart, hostPart, _s1_ = "\\", _null = null, _s4_ = "file"; + if (B.JSString_methods.startsWith$1(path, "\\\\?\\")) + if (B.JSString_methods.startsWith$2(path, "UNC\\", 4)) + path = B.JSString_methods.replaceRange$3(path, 0, 7, _s1_); + else { + path = B.JSString_methods.substring$1(path, 4); + t1 = path.length; + t2 = true; + if (t1 >= 3) { + if (1 >= t1) + return A.ioore(path, 1); + if (path.charCodeAt(1) === 58) { + if (2 >= t1) + return A.ioore(path, 2); + t1 = path.charCodeAt(2) !== 92; + } else + t1 = t2; + } else + t1 = t2; + if (t1) + throw A.wrapException(A.ArgumentError$value(path, "path", "Windows paths with \\\\?\\ prefix must be absolute")); + } + else + path = A.stringReplaceAllUnchecked(path, "/", _s1_); + t1 = path.length; + if (t1 > 1 && path.charCodeAt(1) === 58) { + if (0 >= t1) + return A.ioore(path, 0); + A._Uri__checkWindowsDriveLetter(path.charCodeAt(0), true); + if (t1 !== 2) { + if (2 >= t1) + return A.ioore(path, 2); + t1 = path.charCodeAt(2) !== 92; + } else + t1 = true; + if (t1) + throw A.wrapException(A.ArgumentError$value(path, "path", "Windows paths with drive letter must be absolute")); + pathSegments = A._setArrayType(path.split(_s1_), type$.JSArray_String); + A._Uri__checkWindowsPathReservedCharacters(pathSegments, true, 1); + return A._Uri__Uri(_null, _null, pathSegments, _s4_); + } + if (B.JSString_methods.startsWith$1(path, _s1_)) + if (B.JSString_methods.startsWith$2(path, _s1_, 1)) { + pathStart = B.JSString_methods.indexOf$2(path, _s1_, 2); + t1 = pathStart < 0; + hostPart = t1 ? B.JSString_methods.substring$1(path, 2) : B.JSString_methods.substring$2(path, 2, pathStart); + pathSegments = A._setArrayType((t1 ? "" : B.JSString_methods.substring$1(path, pathStart + 1)).split(_s1_), type$.JSArray_String); + A._Uri__checkWindowsPathReservedCharacters(pathSegments, true, 0); + return A._Uri__Uri(hostPart, _null, pathSegments, _s4_); + } else { + pathSegments = A._setArrayType(path.split(_s1_), type$.JSArray_String); + A._Uri__checkWindowsPathReservedCharacters(pathSegments, true, 0); + return A._Uri__Uri(_null, _null, pathSegments, _s4_); + } + else { + pathSegments = A._setArrayType(path.split(_s1_), type$.JSArray_String); + A._Uri__checkWindowsPathReservedCharacters(pathSegments, true, 0); + return A._Uri__Uri(_null, _null, pathSegments, _null); + } + }, + _Uri__makePort(port, scheme) { + if (port != null && port === A._Uri__defaultPort(scheme)) + return null; + return port; + }, + _Uri__makeHost(host, start, end, strictIPv6) { + var t1, t2, t3, zoneID, index, zoneIDstart, isIPv6, hostChars, i; + if (host == null) + return null; + if (start === end) + return ""; + t1 = host.length; + if (!(start >= 0 && start < t1)) + return A.ioore(host, start); + if (host.charCodeAt(start) === 91) { + t2 = end - 1; + if (!(t2 >= 0 && t2 < t1)) + return A.ioore(host, t2); + if (host.charCodeAt(t2) !== 93) + A._Uri__fail(host, start, "Missing end `]` to match `[` in host"); + t3 = start + 1; + if (!(t3 < t1)) + return A.ioore(host, t3); + zoneID = ""; + if (host.charCodeAt(t3) !== 118) { + index = A._Uri__checkZoneID(host, t3, t2); + if (index < t2) { + zoneIDstart = index + 1; + zoneID = A._Uri__normalizeZoneID(host, B.JSString_methods.startsWith$2(host, "25", zoneIDstart) ? index + 3 : zoneIDstart, t2, "%25"); + } + } else + index = t2; + isIPv6 = A.Uri__validateIPvAddress(host, t3, index); + hostChars = B.JSString_methods.substring$2(host, t3, index); + return "[" + (isIPv6 ? hostChars.toLowerCase() : hostChars) + zoneID + "]"; + } + for (i = start; i < end; ++i) { + if (!(i < t1)) + return A.ioore(host, i); + if (host.charCodeAt(i) === 58) { + index = B.JSString_methods.indexOf$2(host, "%", start); + index = index >= start && index < end ? index : end; + if (index < end) { + zoneIDstart = index + 1; + zoneID = A._Uri__normalizeZoneID(host, B.JSString_methods.startsWith$2(host, "25", zoneIDstart) ? index + 3 : zoneIDstart, end, "%25"); + } else + zoneID = ""; + A.Uri_parseIPv6Address(host, start, index); + return "[" + B.JSString_methods.substring$2(host, start, index) + zoneID + "]"; + } + } + return A._Uri__normalizeRegName(host, start, end); + }, + _Uri__checkZoneID(host, start, end) { + var index = B.JSString_methods.indexOf$2(host, "%", start); + return index >= start && index < end ? index : end; + }, + _Uri__normalizeZoneID(host, start, end, prefix) { + var t1, index, sectionStart, isNormalized, char, replacement, t2, t3, sourceLength, tail, slice, + buffer = prefix !== "" ? new A.StringBuffer(prefix) : null; + for (t1 = host.length, index = start, sectionStart = index, isNormalized = true; index < end;) { + if (!(index >= 0 && index < t1)) + return A.ioore(host, index); + char = host.charCodeAt(index); + if (char === 37) { + replacement = A._Uri__normalizeEscape(host, index, true); + t2 = replacement == null; + if (t2 && isNormalized) { + index += 3; + continue; + } + if (buffer == null) + buffer = new A.StringBuffer(""); + t3 = buffer._contents += B.JSString_methods.substring$2(host, sectionStart, index); + if (t2) + replacement = B.JSString_methods.substring$2(host, index, index + 3); + else if (replacement === "%") + A._Uri__fail(host, index, "ZoneID should not contain % anymore"); + buffer._contents = t3 + replacement; + index += 3; + sectionStart = index; + isNormalized = true; + } else if (char < 127 && (string$.x00_____.charCodeAt(char) & 1) !== 0) { + if (isNormalized && 65 <= char && 90 >= char) { + if (buffer == null) + buffer = new A.StringBuffer(""); + if (sectionStart < index) { + buffer._contents += B.JSString_methods.substring$2(host, sectionStart, index); + sectionStart = index; + } + isNormalized = false; + } + ++index; + } else { + sourceLength = 1; + if ((char & 64512) === 55296 && index + 1 < end) { + t2 = index + 1; + if (!(t2 < t1)) + return A.ioore(host, t2); + tail = host.charCodeAt(t2); + if ((tail & 64512) === 56320) { + char = 65536 + ((char & 1023) << 10) + (tail & 1023); + sourceLength = 2; + } + } + slice = B.JSString_methods.substring$2(host, sectionStart, index); + if (buffer == null) { + buffer = new A.StringBuffer(""); + t2 = buffer; + } else + t2 = buffer; + t2._contents += slice; + t3 = A._Uri__escapeChar(char); + t2._contents += t3; + index += sourceLength; + sectionStart = index; + } + } + if (buffer == null) + return B.JSString_methods.substring$2(host, start, end); + if (sectionStart < end) { + slice = B.JSString_methods.substring$2(host, sectionStart, end); + buffer._contents += slice; + } + t1 = buffer._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + _Uri__normalizeRegName(host, start, end) { + var t1, index, sectionStart, buffer, isNormalized, char, replacement, t2, slice, t3, sourceLength, tail, + _s128_ = string$.x00_____; + for (t1 = host.length, index = start, sectionStart = index, buffer = null, isNormalized = true; index < end;) { + if (!(index >= 0 && index < t1)) + return A.ioore(host, index); + char = host.charCodeAt(index); + if (char === 37) { + replacement = A._Uri__normalizeEscape(host, index, true); + t2 = replacement == null; + if (t2 && isNormalized) { + index += 3; + continue; + } + if (buffer == null) + buffer = new A.StringBuffer(""); + slice = B.JSString_methods.substring$2(host, sectionStart, index); + if (!isNormalized) + slice = slice.toLowerCase(); + t3 = buffer._contents += slice; + sourceLength = 3; + if (t2) + replacement = B.JSString_methods.substring$2(host, index, index + 3); + else if (replacement === "%") { + replacement = "%25"; + sourceLength = 1; + } + buffer._contents = t3 + replacement; + index += sourceLength; + sectionStart = index; + isNormalized = true; + } else if (char < 127 && (_s128_.charCodeAt(char) & 32) !== 0) { + if (isNormalized && 65 <= char && 90 >= char) { + if (buffer == null) + buffer = new A.StringBuffer(""); + if (sectionStart < index) { + buffer._contents += B.JSString_methods.substring$2(host, sectionStart, index); + sectionStart = index; + } + isNormalized = false; + } + ++index; + } else if (char <= 93 && (_s128_.charCodeAt(char) & 1024) !== 0) + A._Uri__fail(host, index, "Invalid character"); + else { + sourceLength = 1; + if ((char & 64512) === 55296 && index + 1 < end) { + t2 = index + 1; + if (!(t2 < t1)) + return A.ioore(host, t2); + tail = host.charCodeAt(t2); + if ((tail & 64512) === 56320) { + char = 65536 + ((char & 1023) << 10) + (tail & 1023); + sourceLength = 2; + } + } + slice = B.JSString_methods.substring$2(host, sectionStart, index); + if (!isNormalized) + slice = slice.toLowerCase(); + if (buffer == null) { + buffer = new A.StringBuffer(""); + t2 = buffer; + } else + t2 = buffer; + t2._contents += slice; + t3 = A._Uri__escapeChar(char); + t2._contents += t3; + index += sourceLength; + sectionStart = index; + } + } + if (buffer == null) + return B.JSString_methods.substring$2(host, start, end); + if (sectionStart < end) { + slice = B.JSString_methods.substring$2(host, sectionStart, end); + if (!isNormalized) + slice = slice.toLowerCase(); + buffer._contents += slice; + } + t1 = buffer._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + _Uri__makeScheme(scheme, start, end) { + var t1, i, containsUpperCase, codeUnit; + if (start === end) + return ""; + t1 = scheme.length; + if (!(start < t1)) + return A.ioore(scheme, start); + if (!A._Uri__isAlphabeticCharacter(scheme.charCodeAt(start))) + A._Uri__fail(scheme, start, "Scheme not starting with alphabetic character"); + for (i = start, containsUpperCase = false; i < end; ++i) { + if (!(i < t1)) + return A.ioore(scheme, i); + codeUnit = scheme.charCodeAt(i); + if (!(codeUnit < 128 && (string$.x00_____.charCodeAt(codeUnit) & 8) !== 0)) + A._Uri__fail(scheme, i, "Illegal scheme character"); + if (65 <= codeUnit && codeUnit <= 90) + containsUpperCase = true; + } + scheme = B.JSString_methods.substring$2(scheme, start, end); + return A._Uri__canonicalizeScheme(containsUpperCase ? scheme.toLowerCase() : scheme); + }, + _Uri__canonicalizeScheme(scheme) { + if (scheme === "http") + return "http"; + if (scheme === "file") + return "file"; + if (scheme === "https") + return "https"; + if (scheme === "package") + return "package"; + return scheme; + }, + _Uri__makeUserInfo(userInfo, start, end) { + if (userInfo == null) + return ""; + return A._Uri__normalizeOrSubstring(userInfo, start, end, 16, false, false); + }, + _Uri__makePath(path, start, end, pathSegments, scheme, hasAuthority) { + var t1, result, + isFile = scheme === "file", + ensureLeadingSlash = isFile || hasAuthority; + if (path == null) { + if (pathSegments == null) + return isFile ? "/" : ""; + t1 = A._arrayInstanceType(pathSegments); + result = new A.MappedListIterable(pathSegments, t1._eval$1("String(1)")._as(new A._Uri__makePath_closure()), t1._eval$1("MappedListIterable<1,String>")).join$1(0, "/"); + } else if (pathSegments != null) + throw A.wrapException(A.ArgumentError$("Both path and pathSegments specified", null)); + else + result = A._Uri__normalizeOrSubstring(path, start, end, 128, true, true); + if (result.length === 0) { + if (isFile) + return "/"; + } else if (ensureLeadingSlash && !B.JSString_methods.startsWith$1(result, "/")) + result = "/" + result; + return A._Uri__normalizePath(result, scheme, hasAuthority); + }, + _Uri__normalizePath(path, scheme, hasAuthority) { + var t1 = scheme.length === 0; + if (t1 && !hasAuthority && !B.JSString_methods.startsWith$1(path, "/") && !B.JSString_methods.startsWith$1(path, "\\")) + return A._Uri__normalizeRelativePath(path, !t1 || hasAuthority); + return A._Uri__removeDotSegments(path); + }, + _Uri__makeQuery(query, start, end, queryParameters) { + if (query != null) + return A._Uri__normalizeOrSubstring(query, start, end, 256, true, false); + return null; + }, + _Uri__makeFragment(fragment, start, end) { + if (fragment == null) + return null; + return A._Uri__normalizeOrSubstring(fragment, start, end, 256, true, false); + }, + _Uri__normalizeEscape(source, index, lowerCase) { + var t3, firstDigit, secondDigit, firstDigitValue, secondDigitValue, value, + _s128_ = string$.x00_____, + t1 = index + 2, + t2 = source.length; + if (t1 >= t2) + return "%"; + t3 = index + 1; + if (!(t3 >= 0 && t3 < t2)) + return A.ioore(source, t3); + firstDigit = source.charCodeAt(t3); + if (!(t1 >= 0)) + return A.ioore(source, t1); + secondDigit = source.charCodeAt(t1); + firstDigitValue = A.hexDigitValue(firstDigit); + secondDigitValue = A.hexDigitValue(secondDigit); + if (firstDigitValue < 0 || secondDigitValue < 0) + return "%"; + value = firstDigitValue * 16 + secondDigitValue; + if (value < 127) { + if (!(value >= 0)) + return A.ioore(_s128_, value); + t1 = (_s128_.charCodeAt(value) & 1) !== 0; + } else + t1 = false; + if (t1) + return A.Primitives_stringFromCharCode(lowerCase && 65 <= value && 90 >= value ? (value | 32) >>> 0 : value); + if (firstDigit >= 97 || secondDigit >= 97) + return B.JSString_methods.substring$2(source, index, index + 3).toUpperCase(); + return null; + }, + _Uri__escapeChar(char) { + var codeUnits, t1, flag, encodedBytes, index, byte, t2, t3, + _s16_ = "0123456789ABCDEF"; + if (char <= 127) { + codeUnits = new Uint8Array(3); + codeUnits[0] = 37; + t1 = char >>> 4; + if (!(t1 < 16)) + return A.ioore(_s16_, t1); + codeUnits[1] = _s16_.charCodeAt(t1); + codeUnits[2] = _s16_.charCodeAt(char & 15); + } else { + if (char > 2047) + if (char > 65535) { + flag = 240; + encodedBytes = 4; + } else { + flag = 224; + encodedBytes = 3; + } + else { + flag = 192; + encodedBytes = 2; + } + t1 = 3 * encodedBytes; + codeUnits = new Uint8Array(t1); + for (index = 0; --encodedBytes, encodedBytes >= 0; flag = 128) { + byte = B.JSInt_methods._shrReceiverPositive$1(char, 6 * encodedBytes) & 63 | flag; + if (!(index < t1)) + return A.ioore(codeUnits, index); + codeUnits[index] = 37; + t2 = index + 1; + t3 = byte >>> 4; + if (!(t3 < 16)) + return A.ioore(_s16_, t3); + if (!(t2 < t1)) + return A.ioore(codeUnits, t2); + codeUnits[t2] = _s16_.charCodeAt(t3); + t3 = index + 2; + if (!(t3 < t1)) + return A.ioore(codeUnits, t3); + codeUnits[t3] = _s16_.charCodeAt(byte & 15); + index += 3; + } + } + return A.String_String$fromCharCodes(codeUnits, 0, null); + }, + _Uri__normalizeOrSubstring(component, start, end, charMask, escapeDelimiters, replaceBackslash) { + var t1 = A._Uri__normalize(component, start, end, charMask, escapeDelimiters, replaceBackslash); + return t1 == null ? B.JSString_methods.substring$2(component, start, end) : t1; + }, + _Uri__normalize(component, start, end, charMask, escapeDelimiters, replaceBackslash) { + var t1, t2, index, sectionStart, buffer, char, sourceLength, replacement, t3, tail, _null = null, + _s128_ = string$.x00_____; + for (t1 = !escapeDelimiters, t2 = component.length, index = start, sectionStart = index, buffer = _null; index < end;) { + if (!(index >= 0 && index < t2)) + return A.ioore(component, index); + char = component.charCodeAt(index); + if (char < 127 && (_s128_.charCodeAt(char) & charMask) !== 0) + ++index; + else { + sourceLength = 1; + if (char === 37) { + replacement = A._Uri__normalizeEscape(component, index, false); + if (replacement == null) { + index += 3; + continue; + } + if ("%" === replacement) + replacement = "%25"; + else + sourceLength = 3; + } else if (char === 92 && replaceBackslash) + replacement = "/"; + else if (t1 && char <= 93 && (_s128_.charCodeAt(char) & 1024) !== 0) { + A._Uri__fail(component, index, "Invalid character"); + sourceLength = _null; + replacement = sourceLength; + } else { + if ((char & 64512) === 55296) { + t3 = index + 1; + if (t3 < end) { + if (!(t3 < t2)) + return A.ioore(component, t3); + tail = component.charCodeAt(t3); + if ((tail & 64512) === 56320) { + char = 65536 + ((char & 1023) << 10) + (tail & 1023); + sourceLength = 2; + } + } + } + replacement = A._Uri__escapeChar(char); + } + if (buffer == null) { + buffer = new A.StringBuffer(""); + t3 = buffer; + } else + t3 = buffer; + t3._contents = (t3._contents += B.JSString_methods.substring$2(component, sectionStart, index)) + replacement; + if (typeof sourceLength !== "number") + return A.iae(sourceLength); + index += sourceLength; + sectionStart = index; + } + } + if (buffer == null) + return _null; + if (sectionStart < end) { + t1 = B.JSString_methods.substring$2(component, sectionStart, end); + buffer._contents += t1; + } + t1 = buffer._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + _Uri__mayContainDotSegments(path) { + if (B.JSString_methods.startsWith$1(path, ".")) + return true; + return B.JSString_methods.indexOf$1(path, "/.") !== -1; + }, + _Uri__removeDotSegments(path) { + var output, t1, t2, appendSlash, _i, segment, t3; + if (!A._Uri__mayContainDotSegments(path)) + return path; + output = A._setArrayType([], type$.JSArray_String); + for (t1 = path.split("/"), t2 = t1.length, appendSlash = false, _i = 0; _i < t2; ++_i) { + segment = t1[_i]; + if (segment === "..") { + t3 = output.length; + if (t3 !== 0) { + if (0 >= t3) + return A.ioore(output, -1); + output.pop(); + if (output.length === 0) + B.JSArray_methods.add$1(output, ""); + } + appendSlash = true; + } else { + appendSlash = "." === segment; + if (!appendSlash) + B.JSArray_methods.add$1(output, segment); + } + } + if (appendSlash) + B.JSArray_methods.add$1(output, ""); + return B.JSArray_methods.join$1(output, "/"); + }, + _Uri__normalizeRelativePath(path, allowScheme) { + var output, t1, t2, appendSlash, _i, segment; + if (!A._Uri__mayContainDotSegments(path)) + return !allowScheme ? A._Uri__escapeScheme(path) : path; + output = A._setArrayType([], type$.JSArray_String); + for (t1 = path.split("/"), t2 = t1.length, appendSlash = false, _i = 0; _i < t2; ++_i) { + segment = t1[_i]; + if (".." === segment) { + if (output.length !== 0 && B.JSArray_methods.get$last(output) !== "..") { + if (0 >= output.length) + return A.ioore(output, -1); + output.pop(); + } else + B.JSArray_methods.add$1(output, ".."); + appendSlash = true; + } else { + appendSlash = "." === segment; + if (!appendSlash) + B.JSArray_methods.add$1(output, segment.length === 0 && output.length === 0 ? "./" : segment); + } + } + if (output.length === 0) + return "./"; + if (appendSlash) + B.JSArray_methods.add$1(output, ""); + if (!allowScheme) { + if (0 >= output.length) + return A.ioore(output, 0); + B.JSArray_methods.$indexSet(output, 0, A._Uri__escapeScheme(output[0])); + } + return B.JSArray_methods.join$1(output, "/"); + }, + _Uri__escapeScheme(path) { + var i, char, t2, + _s128_ = string$.x00_____, + t1 = path.length; + if (t1 >= 2 && A._Uri__isAlphabeticCharacter(path.charCodeAt(0))) + for (i = 1; i < t1; ++i) { + char = path.charCodeAt(i); + if (char === 58) + return B.JSString_methods.substring$2(path, 0, i) + "%3A" + B.JSString_methods.substring$1(path, i + 1); + if (char <= 127) { + if (!(char < 128)) + return A.ioore(_s128_, char); + t2 = (_s128_.charCodeAt(char) & 8) === 0; + } else + t2 = true; + if (t2) + break; + } + return path; + }, + _Uri__packageNameEnd(uri, path) { + if (uri.isScheme$1("package") && uri._host == null) + return A._skipPackageNameChars(path, 0, path.length); + return -1; + }, + _Uri__hexCharPairToByte(s, pos) { + var t1, byte, i, t2, charCode; + for (t1 = s.length, byte = 0, i = 0; i < 2; ++i) { + t2 = pos + i; + if (!(t2 < t1)) + return A.ioore(s, t2); + charCode = s.charCodeAt(t2); + if (48 <= charCode && charCode <= 57) + byte = byte * 16 + charCode - 48; + else { + charCode |= 32; + if (97 <= charCode && charCode <= 102) + byte = byte * 16 + charCode - 87; + else + throw A.wrapException(A.ArgumentError$("Invalid URL encoding", null)); + } + } + return byte; + }, + _Uri__uriDecode(text, start, end, encoding, plusToSpace) { + var simple, codeUnit, t2, bytes, + t1 = text.length, + i = start; + for (;;) { + if (!(i < end)) { + simple = true; + break; + } + if (!(i < t1)) + return A.ioore(text, i); + codeUnit = text.charCodeAt(i); + t2 = true; + if (codeUnit <= 127) + if (codeUnit !== 37) + t2 = plusToSpace && codeUnit === 43; + if (t2) { + simple = false; + break; + } + ++i; + } + if (simple) + if (B.C_Utf8Codec === encoding) + return B.JSString_methods.substring$2(text, start, end); + else + bytes = new A.CodeUnits(B.JSString_methods.substring$2(text, start, end)); + else { + bytes = A._setArrayType([], type$.JSArray_int); + for (i = start; i < end; ++i) { + if (!(i < t1)) + return A.ioore(text, i); + codeUnit = text.charCodeAt(i); + if (codeUnit > 127) + throw A.wrapException(A.ArgumentError$("Illegal percent encoding in URI", null)); + if (codeUnit === 37) { + if (i + 3 > t1) + throw A.wrapException(A.ArgumentError$("Truncated URI", null)); + B.JSArray_methods.add$1(bytes, A._Uri__hexCharPairToByte(text, i + 1)); + i += 2; + } else if (plusToSpace && codeUnit === 43) + B.JSArray_methods.add$1(bytes, 32); + else + B.JSArray_methods.add$1(bytes, codeUnit); + } + } + type$.List_int._as(bytes); + return B.Utf8Decoder_false.convert$1(bytes); + }, + _Uri__isAlphabeticCharacter(codeUnit) { + var lowerCase = codeUnit | 32; + return 97 <= lowerCase && lowerCase <= 122; + }, + UriData__writeUri(mimeType, charsetName, parameters, buffer, indices) { + buffer._contents = buffer._contents; + }, + UriData__parse(text, start, sourceUri) { + var t1, i, slashIndex, char, equalsIndex, lastSeparator, t2, data, + _s17_ = "Invalid MIME type", + indices = A._setArrayType([start - 1], type$.JSArray_int); + for (t1 = text.length, i = start, slashIndex = -1, char = null; i < t1; ++i) { + char = text.charCodeAt(i); + if (char === 44 || char === 59) + break; + if (char === 47) { + if (slashIndex < 0) { + slashIndex = i; + continue; + } + throw A.wrapException(A.FormatException$(_s17_, text, i)); + } + } + if (slashIndex < 0 && i > start) + throw A.wrapException(A.FormatException$(_s17_, text, i)); + while (char !== 44) { + B.JSArray_methods.add$1(indices, i); + ++i; + for (equalsIndex = -1; i < t1; ++i) { + if (!(i >= 0)) + return A.ioore(text, i); + char = text.charCodeAt(i); + if (char === 61) { + if (equalsIndex < 0) + equalsIndex = i; + } else if (char === 59 || char === 44) + break; + } + if (equalsIndex >= 0) + B.JSArray_methods.add$1(indices, equalsIndex); + else { + lastSeparator = B.JSArray_methods.get$last(indices); + if (char !== 44 || i !== lastSeparator + 7 || !B.JSString_methods.startsWith$2(text, "base64", lastSeparator + 1)) + throw A.wrapException(A.FormatException$("Expecting '='", text, i)); + break; + } + } + B.JSArray_methods.add$1(indices, i); + t2 = i + 1; + if ((indices.length & 1) === 1) + text = B.C_Base64Codec.normalize$3(text, t2, t1); + else { + data = A._Uri__normalize(text, t2, t1, 256, true, false); + if (data != null) + text = B.JSString_methods.replaceRange$3(text, t2, t1, data); + } + return new A.UriData(text, indices, sourceUri); + }, + UriData__uriEncodeBytes(canonicalMask, bytes, buffer) { + var t1, byteOr, i, byte, t2, + _s16_ = "0123456789ABCDEF"; + for (t1 = bytes.length, byteOr = 0, i = 0; i < t1; ++i) { + byte = bytes[i]; + byteOr |= byte; + if (byte < 128 && (string$.x00_____.charCodeAt(byte) & canonicalMask) !== 0) { + t2 = A.Primitives_stringFromCharCode(byte); + buffer._contents += t2; + } else { + t2 = A.Primitives_stringFromCharCode(37); + buffer._contents += t2; + t2 = byte >>> 4; + if (!(t2 < 16)) + return A.ioore(_s16_, t2); + t2 = A.Primitives_stringFromCharCode(_s16_.charCodeAt(t2)); + buffer._contents += t2; + t2 = A.Primitives_stringFromCharCode(_s16_.charCodeAt(byte & 15)); + buffer._contents += t2; + } + } + if ((byteOr & 4294967040) !== 0) + for (i = 0; i < t1; ++i) { + byte = bytes[i]; + if (byte > 255) + throw A.wrapException(A.ArgumentError$value(byte, "non-byte value", null)); + } + }, + _scan(uri, start, end, state, indices) { + var t1, i, char, t2, transition, + _s2112_ = '\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe3\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0e\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\n\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\xeb\xeb\x8b\xeb\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x83\xeb\xeb\x8b\xeb\x8b\xeb\xcd\x8b\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x92\x83\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x8b\xeb\x8b\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xebD\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12D\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe8\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\x05\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x10\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\f\xec\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\xec\f\xec\f\xec\xcd\f\xec\f\f\f\f\f\f\f\f\f\xec\f\f\f\f\f\f\f\f\f\f\xec\f\xec\f\xec\f\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\r\xed\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\xed\r\xed\r\xed\xed\r\xed\r\r\r\r\r\r\r\r\r\xed\r\r\r\r\r\r\r\r\r\r\xed\r\xed\r\xed\r\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0f\xea\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe9\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\t\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x11\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xe9\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\t\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x13\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\xf5\x15\x15\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5'; + for (t1 = uri.length, i = start; i < end; ++i) { + if (!(i < t1)) + return A.ioore(uri, i); + char = uri.charCodeAt(i) ^ 96; + if (char > 95) + char = 31; + t2 = state * 96 + char; + if (!(t2 < 2112)) + return A.ioore(_s2112_, t2); + transition = _s2112_.charCodeAt(t2); + state = transition & 31; + B.JSArray_methods.$indexSet(indices, transition >>> 5, i); + } + return state; + }, + _SimpleUri__packageNameEnd(uri) { + if (uri._schemeEnd === 7 && B.JSString_methods.startsWith$1(uri._uri, "package") && uri._hostStart <= 0) + return A._skipPackageNameChars(uri._uri, uri._pathStart, uri._queryStart); + return -1; + }, + _skipPackageNameChars(source, start, end) { + var t1, i, dots, char; + for (t1 = source.length, i = start, dots = 0; i < end; ++i) { + if (!(i >= 0 && i < t1)) + return A.ioore(source, i); + char = source.charCodeAt(i); + if (char === 47) + return dots !== 0 ? i : -1; + if (char === 37 || char === 58) + return -1; + dots |= char ^ 46; + } + return -1; + }, + _caseInsensitiveCompareStart(prefix, string, start) { + var t1, t2, result, i, t3, stringChar, delta, lowerChar; + for (t1 = prefix.length, t2 = string.length, result = 0, i = 0; i < t1; ++i) { + t3 = start + i; + if (!(t3 < t2)) + return A.ioore(string, t3); + stringChar = string.charCodeAt(t3); + delta = prefix.charCodeAt(i) ^ stringChar; + if (delta !== 0) { + if (delta === 32) { + lowerChar = stringChar | delta; + if (97 <= lowerChar && lowerChar <= 122) { + result = 32; + continue; + } + } + return -1; + } + } + return result; + }, + DateTime: function DateTime(t0, t1, t2) { + this._core$_value = t0; + this._microsecond = t1; + this.isUtc = t2; + }, + Duration: function Duration(t0) { + this._duration = t0; + }, + Error: function Error() { + }, + AssertionError: function AssertionError(t0) { + this.message = t0; + }, + TypeError: function TypeError() { + }, + ArgumentError: function ArgumentError(t0, t1, t2, t3) { + var _ = this; + _._hasValue = t0; + _.invalidValue = t1; + _.name = t2; + _.message = t3; + }, + RangeError: function RangeError(t0, t1, t2, t3, t4, t5) { + var _ = this; + _.start = t0; + _.end = t1; + _._hasValue = t2; + _.invalidValue = t3; + _.name = t4; + _.message = t5; + }, + IndexError: function IndexError(t0, t1, t2, t3, t4) { + var _ = this; + _.length = t0; + _._hasValue = t1; + _.invalidValue = t2; + _.name = t3; + _.message = t4; + }, + UnsupportedError: function UnsupportedError(t0) { + this.message = t0; + }, + UnimplementedError: function UnimplementedError(t0) { + this.message = t0; + }, + StateError: function StateError(t0) { + this.message = t0; + }, + ConcurrentModificationError: function ConcurrentModificationError(t0) { + this.modifiedObject = t0; + }, + OutOfMemoryError: function OutOfMemoryError() { + }, + StackOverflowError: function StackOverflowError() { + }, + _Exception: function _Exception(t0) { + this.message = t0; + }, + FormatException: function FormatException(t0, t1, t2) { + this.message = t0; + this.source = t1; + this.offset = t2; + }, + Iterable: function Iterable() { + }, + Null: function Null() { + }, + Object: function Object() { + }, + _StringStackTrace: function _StringStackTrace(t0) { + this._stackTrace = t0; + }, + StringBuffer: function StringBuffer(t0) { + this._contents = t0; + }, + Uri_splitQueryString_closure: function Uri_splitQueryString_closure(t0) { + this.encoding = t0; + }, + Uri_parseIPv6Address_error: function Uri_parseIPv6Address_error(t0) { + this.host = t0; + }, + _Uri: function _Uri(t0, t1, t2, t3, t4, t5, t6) { + var _ = this; + _.scheme = t0; + _._userInfo = t1; + _._host = t2; + _._port = t3; + _.path = t4; + _._query = t5; + _._fragment = t6; + _.___Uri_queryParameters_FI = _.___Uri_hashCode_FI = _.___Uri_pathSegments_FI = _.___Uri__text_FI = $; + }, + _Uri__makePath_closure: function _Uri__makePath_closure() { + }, + UriData: function UriData(t0, t1, t2) { + this._text = t0; + this._separatorIndices = t1; + this._uriCache = t2; + }, + _SimpleUri: function _SimpleUri(t0, t1, t2, t3, t4, t5, t6, t7) { + var _ = this; + _._uri = t0; + _._schemeEnd = t1; + _._hostStart = t2; + _._portStart = t3; + _._pathStart = t4; + _._queryStart = t5; + _._fragmentStart = t6; + _._schemeCache = t7; + _._hashCodeCache = null; + }, + _DataUri: function _DataUri(t0, t1, t2, t3, t4, t5, t6) { + var _ = this; + _.scheme = t0; + _._userInfo = t1; + _._host = t2; + _._port = t3; + _.path = t4; + _._query = t5; + _._fragment = t6; + _.___Uri_queryParameters_FI = _.___Uri_hashCode_FI = _.___Uri_pathSegments_FI = _.___Uri__text_FI = $; + }, + NullRejectionException: function NullRejectionException(t0) { + this.isUndefined = t0; + }, + _functionToJS0(f) { + var result; + if (typeof f == "function") + throw A.wrapException(A.ArgumentError$("Attempting to rewrap a JS function.", null)); + result = function(_call, f) { + return function() { + return _call(f); + }; + }(A._callDartFunctionFast0, f); + result[$.$get$DART_CLOSURE_DART_JSINTEROP_PROPERTY_NAME()] = f; + return result; + }, + _functionToJS1(f) { + var result; + if (typeof f == "function") + throw A.wrapException(A.ArgumentError$("Attempting to rewrap a JS function.", null)); + result = function(_call, f) { + return function(arg1) { + return _call(f, arg1, arguments.length); + }; + }(A._callDartFunctionFast1, f); + result[$.$get$DART_CLOSURE_DART_JSINTEROP_PROPERTY_NAME()] = f; + return result; + }, + _callDartFunctionFast0(callback) { + return type$.Function._as(callback).call$0(); + }, + _callDartFunctionFast1(callback, arg1, $length) { + type$.Function._as(callback); + if (A._asInt($length) >= 1) + return callback.call$1(arg1); + return callback.call$0(); + }, + _noJsifyRequired(o) { + return o == null || A._isBool(o) || typeof o == "number" || typeof o == "string" || type$.Int8List._is(o) || type$.Uint8List._is(o) || type$.Uint8ClampedList._is(o) || type$.Int16List._is(o) || type$.Uint16List._is(o) || type$.Int32List._is(o) || type$.Uint32List._is(o) || type$.Float32List._is(o) || type$.Float64List._is(o) || type$.ByteBuffer._is(o) || type$.ByteData._is(o); + }, + jsify(object) { + if (A._noJsifyRequired(object)) + return object; + return new A.jsify__convert(new A._IdentityHashMap(type$._IdentityHashMap_of_nullable_Object_and_nullable_Object)).call$1(object); + }, + getProperty(o, $name, $T) { + return $T._as(o[$name]); + }, + callConstructor(constr, $arguments, $T) { + var args, factoryFunction; + if ($arguments instanceof Array) + switch ($arguments.length) { + case 0: + return $T._as(new constr()); + case 1: + return $T._as(new constr($arguments[0])); + case 2: + return $T._as(new constr($arguments[0], $arguments[1])); + case 3: + return $T._as(new constr($arguments[0], $arguments[1], $arguments[2])); + case 4: + return $T._as(new constr($arguments[0], $arguments[1], $arguments[2], $arguments[3])); + } + args = [null]; + B.JSArray_methods.addAll$1(args, $arguments); + factoryFunction = constr.bind.apply(constr, args); + String(factoryFunction); + return $T._as(new factoryFunction()); + }, + promiseToFuture(jsPromise, $T) { + var t1 = new A._Future($.Zone__current, $T._eval$1("_Future<0>")), + completer = new A._AsyncCompleter(t1, $T._eval$1("_AsyncCompleter<0>")); + jsPromise.then(A.convertDartClosureToJS(new A.promiseToFuture_closure(completer, $T), 1), A.convertDartClosureToJS(new A.promiseToFuture_closure0(completer), 1)); + return t1; + }, + _noDartifyRequired(o) { + return o == null || typeof o === "boolean" || typeof o === "number" || typeof o === "string" || o instanceof Int8Array || o instanceof Uint8Array || o instanceof Uint8ClampedArray || o instanceof Int16Array || o instanceof Uint16Array || o instanceof Int32Array || o instanceof Uint32Array || o instanceof Float32Array || o instanceof Float64Array || o instanceof ArrayBuffer || o instanceof DataView; + }, + dartify(o) { + if (A._noDartifyRequired(o)) + return o; + return new A.dartify_convert(new A._IdentityHashMap(type$._IdentityHashMap_of_nullable_Object_and_nullable_Object)).call$1(o); + }, + jsify__convert: function jsify__convert(t0) { + this._convertedObjects = t0; + }, + promiseToFuture_closure: function promiseToFuture_closure(t0, t1) { + this.completer = t0; + this.T = t1; + }, + promiseToFuture_closure0: function promiseToFuture_closure0(t0) { + this.completer = t0; + }, + dartify_convert: function dartify_convert(t0) { + this._convertedObjects = t0; + }, + NullStreamSink: function NullStreamSink(t0, t1) { + var _ = this; + _.done = t0; + _._addingStream = _._null_stream_sink$_closed = false; + _.$ti = t1; + }, + NullStreamSink_addStream_closure: function NullStreamSink_addStream_closure(t0) { + this.$this = t0; + }, + Context_Context(style) { + return new A.Context(style, "."); + }, + _parseUri(uri) { + return uri; + }, + _validateArgList(method, args) { + var numArgs, i, numArgs0, message, t1, t2, t3, t4; + for (numArgs = args.length, i = 1; i < numArgs; ++i) { + if (args[i] == null || args[i - 1] != null) + continue; + for (; numArgs >= 1; numArgs = numArgs0) { + numArgs0 = numArgs - 1; + if (args[numArgs0] != null) + break; + } + message = new A.StringBuffer(""); + t1 = method + "("; + message._contents = t1; + t2 = A._arrayInstanceType(args); + t3 = t2._eval$1("SubListIterable<1>"); + t4 = new A.SubListIterable(args, 0, numArgs, t3); + t4.SubListIterable$3(args, 0, numArgs, t2._precomputed1); + t3 = t1 + new A.MappedListIterable(t4, t3._eval$1("String(ListIterable.E)")._as(new A._validateArgList_closure()), t3._eval$1("MappedListIterable")).join$1(0, ", "); + message._contents = t3; + message._contents = t3 + ("): part " + (i - 1) + " was null, but part " + i + " was not."); + throw A.wrapException(A.ArgumentError$(message.toString$0(0), null)); + } + }, + Context: function Context(t0, t1) { + this.style = t0; + this._context$_current = t1; + }, + Context_joinAll_closure: function Context_joinAll_closure() { + }, + Context_split_closure: function Context_split_closure() { + }, + _validateArgList_closure: function _validateArgList_closure() { + }, + InternalStyle: function InternalStyle() { + }, + ParsedPath_ParsedPath$parse(path, style) { + var t1, parts, separators, t2, start, i, + root = style.getRoot$1(path); + style.isRootRelative$1(path); + if (root != null) + path = B.JSString_methods.substring$1(path, root.length); + t1 = type$.JSArray_String; + parts = A._setArrayType([], t1); + separators = A._setArrayType([], t1); + t1 = path.length; + if (t1 !== 0) { + if (0 >= t1) + return A.ioore(path, 0); + t2 = style.isSeparator$1(path.charCodeAt(0)); + } else + t2 = false; + if (t2) { + if (0 >= t1) + return A.ioore(path, 0); + B.JSArray_methods.add$1(separators, path[0]); + start = 1; + } else { + B.JSArray_methods.add$1(separators, ""); + start = 0; + } + for (i = start; i < t1; ++i) + if (style.isSeparator$1(path.charCodeAt(i))) { + B.JSArray_methods.add$1(parts, B.JSString_methods.substring$2(path, start, i)); + B.JSArray_methods.add$1(separators, path[i]); + start = i + 1; + } + if (start < t1) { + B.JSArray_methods.add$1(parts, B.JSString_methods.substring$1(path, start)); + B.JSArray_methods.add$1(separators, ""); + } + return new A.ParsedPath(style, root, parts, separators); + }, + ParsedPath: function ParsedPath(t0, t1, t2, t3) { + var _ = this; + _.style = t0; + _.root = t1; + _.parts = t2; + _.separators = t3; + }, + PathException$(message) { + return new A.PathException(message); + }, + PathException: function PathException(t0) { + this.message = t0; + }, + Style__getPlatformStyle() { + if (A.Uri_base().get$scheme() !== "file") + return $.$get$Style_url(); + if (!B.JSString_methods.endsWith$1(A.Uri_base().get$path(), "/")) + return $.$get$Style_url(); + if (A._Uri__Uri(null, "a/b", null, null).toFilePath$0() === "a\\b") + return $.$get$Style_windows(); + return $.$get$Style_posix(); + }, + Style: function Style() { + }, + PosixStyle: function PosixStyle(t0, t1, t2) { + this.separatorPattern = t0; + this.needsSeparatorPattern = t1; + this.rootPattern = t2; + }, + UrlStyle: function UrlStyle(t0, t1, t2, t3) { + var _ = this; + _.separatorPattern = t0; + _.needsSeparatorPattern = t1; + _.rootPattern = t2; + _.relativeRootPattern = t3; + }, + WindowsStyle: function WindowsStyle(t0, t1, t2, t3) { + var _ = this; + _.separatorPattern = t0; + _.needsSeparatorPattern = t1; + _.rootPattern = t2; + _.relativeRootPattern = t3; + }, + WindowsStyle_absolutePathToUri_closure: function WindowsStyle_absolutePathToUri_closure() { + }, + Chain_Chain$parse(chain) { + var t1, t2, + _s51_ = string$.x3d_____; + if (chain.length === 0) + return new A.Chain(A.List_List$unmodifiable(A._setArrayType([], type$.JSArray_Trace), type$.Trace)); + t1 = $.$get$vmChainGap(); + if (B.JSString_methods.contains$1(chain, t1)) { + t1 = B.JSString_methods.split$1(chain, t1); + t2 = A._arrayInstanceType(t1); + return new A.Chain(A.List_List$unmodifiable(new A.MappedIterable(new A.WhereIterable(t1, t2._eval$1("bool(1)")._as(new A.Chain_Chain$parse_closure()), t2._eval$1("WhereIterable<1>")), t2._eval$1("Trace(1)")._as(new A.Chain_Chain$parse_closure0()), t2._eval$1("MappedIterable<1,Trace>")), type$.Trace)); + } + if (!B.JSString_methods.contains$1(chain, _s51_)) + return new A.Chain(A.List_List$unmodifiable(A._setArrayType([A.Trace_Trace$parse(chain)], type$.JSArray_Trace), type$.Trace)); + return new A.Chain(A.List_List$unmodifiable(new A.MappedListIterable(A._setArrayType(chain.split(_s51_), type$.JSArray_String), type$.Trace_Function_String._as(new A.Chain_Chain$parse_closure1()), type$.MappedListIterable_String_Trace), type$.Trace)); + }, + Chain: function Chain(t0) { + this.traces = t0; + }, + Chain_Chain$parse_closure: function Chain_Chain$parse_closure() { + }, + Chain_Chain$parse_closure0: function Chain_Chain$parse_closure0() { + }, + Chain_Chain$parse_closure1: function Chain_Chain$parse_closure1() { + }, + Chain_toTrace_closure: function Chain_toTrace_closure() { + }, + Chain_toString_closure0: function Chain_toString_closure0() { + }, + Chain_toString__closure0: function Chain_toString__closure0() { + }, + Chain_toString_closure: function Chain_toString_closure(t0) { + this.longest = t0; + }, + Chain_toString__closure: function Chain_toString__closure(t0) { + this.longest = t0; + }, + Frame_Frame$parseVM(frame) { + return A.Frame__catchFormatException(frame, new A.Frame_Frame$parseVM_closure(frame)); + }, + Frame_Frame$parseV8(frame) { + return A.Frame__catchFormatException(frame, new A.Frame_Frame$parseV8_closure(frame)); + }, + Frame_Frame$_parseFirefoxEval(frame) { + return A.Frame__catchFormatException(frame, new A.Frame_Frame$_parseFirefoxEval_closure(frame)); + }, + Frame_Frame$parseFirefox(frame) { + return A.Frame__catchFormatException(frame, new A.Frame_Frame$parseFirefox_closure(frame)); + }, + Frame_Frame$parseFriendly(frame) { + return A.Frame__catchFormatException(frame, new A.Frame_Frame$parseFriendly_closure(frame)); + }, + Frame__uriOrPathToUri(uriOrPath) { + if (B.JSString_methods.contains$1(uriOrPath, $.$get$Frame__uriRegExp())) + return A.Uri_parse(uriOrPath); + else if (B.JSString_methods.contains$1(uriOrPath, $.$get$Frame__windowsRegExp())) + return A._Uri__Uri$file(uriOrPath, true); + else if (B.JSString_methods.startsWith$1(uriOrPath, "/")) + return A._Uri__Uri$file(uriOrPath, false); + if (B.JSString_methods.contains$1(uriOrPath, "\\")) + return $.$get$windows().toUri$1(uriOrPath); + return A.Uri_parse(uriOrPath); + }, + Frame__catchFormatException(text, body) { + var t1, exception; + try { + t1 = body.call$0(); + return t1; + } catch (exception) { + if (A.unwrapException(exception) instanceof A.FormatException) + return new A.UnparsedFrame(A._Uri__Uri(null, "unparsed", null, null), text); + else + throw exception; + } + }, + Frame: function Frame(t0, t1, t2, t3) { + var _ = this; + _.uri = t0; + _.line = t1; + _.column = t2; + _.member = t3; + }, + Frame_Frame$parseVM_closure: function Frame_Frame$parseVM_closure(t0) { + this.frame = t0; + }, + Frame_Frame$parseV8_closure: function Frame_Frame$parseV8_closure(t0) { + this.frame = t0; + }, + Frame_Frame$parseV8_closure_parseLocation: function Frame_Frame$parseV8_closure_parseLocation(t0) { + this.frame = t0; + }, + Frame_Frame$_parseFirefoxEval_closure: function Frame_Frame$_parseFirefoxEval_closure(t0) { + this.frame = t0; + }, + Frame_Frame$parseFirefox_closure: function Frame_Frame$parseFirefox_closure(t0) { + this.frame = t0; + }, + Frame_Frame$parseFriendly_closure: function Frame_Frame$parseFriendly_closure(t0) { + this.frame = t0; + }, + LazyTrace: function LazyTrace(t0) { + this._thunk = t0; + this.__LazyTrace__trace_FI = $; + }, + LazyTrace_terse_closure: function LazyTrace_terse_closure(t0) { + this.$this = t0; + }, + Trace_Trace$from(trace) { + if (type$.Trace._is(trace)) + return trace; + if (trace instanceof A.Chain) + return trace.toTrace$0(); + return new A.LazyTrace(new A.Trace_Trace$from_closure(trace)); + }, + Trace_Trace$parse(trace) { + var error, t1, exception; + try { + if (trace.length === 0) { + t1 = A.Trace$(A._setArrayType([], type$.JSArray_Frame), null); + return t1; + } + if (B.JSString_methods.contains$1(trace, $.$get$_v8Trace())) { + t1 = A.Trace$parseV8(trace); + return t1; + } + if (B.JSString_methods.contains$1(trace, "\tat ")) { + t1 = A.Trace$parseJSCore(trace); + return t1; + } + if (B.JSString_methods.contains$1(trace, $.$get$_firefoxSafariTrace()) || B.JSString_methods.contains$1(trace, $.$get$_firefoxEvalTrace())) { + t1 = A.Trace$parseFirefox(trace); + return t1; + } + if (B.JSString_methods.contains$1(trace, string$.x3d_____)) { + t1 = A.Chain_Chain$parse(trace).toTrace$0(); + return t1; + } + if (B.JSString_methods.contains$1(trace, $.$get$_friendlyTrace())) { + t1 = A.Trace$parseFriendly(trace); + return t1; + } + t1 = A.Trace$parseVM(trace); + return t1; + } catch (exception) { + t1 = A.unwrapException(exception); + if (t1 instanceof A.FormatException) { + error = t1; + throw A.wrapException(A.FormatException$(error.message + "\nStack trace:\n" + trace, null, null)); + } else + throw exception; + } + }, + Trace$parseVM(trace) { + var t1 = A.List_List$unmodifiable(A.Trace__parseVM(trace), type$.Frame); + return new A.Trace(t1, new A._StringStackTrace(trace)); + }, + Trace__parseVM(trace) { + var $frames, + t1 = B.JSString_methods.trim$0(trace), + t2 = $.$get$vmChainGap(), + t3 = type$.WhereIterable_String, + lines = new A.WhereIterable(A._setArrayType(A.stringReplaceAllUnchecked(t1, t2, "").split("\n"), type$.JSArray_String), type$.bool_Function_String._as(new A.Trace__parseVM_closure()), t3); + if (!lines.get$iterator(0).moveNext$0()) + return A._setArrayType([], type$.JSArray_Frame); + t1 = A.TakeIterable_TakeIterable(lines, lines.get$length(0) - 1, t3._eval$1("Iterable.E")); + t2 = A._instanceType(t1); + t2 = A.MappedIterable_MappedIterable(t1, t2._eval$1("Frame(Iterable.E)")._as(new A.Trace__parseVM_closure0()), t2._eval$1("Iterable.E"), type$.Frame); + $frames = A.List_List$_of(t2, A._instanceType(t2)._eval$1("Iterable.E")); + if (!B.JSString_methods.endsWith$1(lines.get$last(0), ".da")) + B.JSArray_methods.add$1($frames, A.Frame_Frame$parseVM(lines.get$last(0))); + return $frames; + }, + Trace$parseV8(trace) { + var t2, t3, + t1 = A.SubListIterable$(A._setArrayType(trace.split("\n"), type$.JSArray_String), 1, null, type$.String); + t1 = t1.super$Iterable$skipWhile(0, t1.$ti._eval$1("bool(ListIterable.E)")._as(new A.Trace$parseV8_closure())); + t2 = type$.Frame; + t3 = t1.$ti; + t2 = A.List_List$unmodifiable(A.MappedIterable_MappedIterable(t1, t3._eval$1("Frame(Iterable.E)")._as(new A.Trace$parseV8_closure0()), t3._eval$1("Iterable.E"), t2), t2); + return new A.Trace(t2, new A._StringStackTrace(trace)); + }, + Trace$parseJSCore(trace) { + var t1 = A.List_List$unmodifiable(new A.MappedIterable(new A.WhereIterable(A._setArrayType(trace.split("\n"), type$.JSArray_String), type$.bool_Function_String._as(new A.Trace$parseJSCore_closure()), type$.WhereIterable_String), type$.Frame_Function_String._as(new A.Trace$parseJSCore_closure0()), type$.MappedIterable_String_Frame), type$.Frame); + return new A.Trace(t1, new A._StringStackTrace(trace)); + }, + Trace$parseFirefox(trace) { + var t1 = A.List_List$unmodifiable(new A.MappedIterable(new A.WhereIterable(A._setArrayType(B.JSString_methods.trim$0(trace).split("\n"), type$.JSArray_String), type$.bool_Function_String._as(new A.Trace$parseFirefox_closure()), type$.WhereIterable_String), type$.Frame_Function_String._as(new A.Trace$parseFirefox_closure0()), type$.MappedIterable_String_Frame), type$.Frame); + return new A.Trace(t1, new A._StringStackTrace(trace)); + }, + Trace$parseFriendly(trace) { + var t1 = trace.length === 0 ? A._setArrayType([], type$.JSArray_Frame) : new A.MappedIterable(new A.WhereIterable(A._setArrayType(B.JSString_methods.trim$0(trace).split("\n"), type$.JSArray_String), type$.bool_Function_String._as(new A.Trace$parseFriendly_closure()), type$.WhereIterable_String), type$.Frame_Function_String._as(new A.Trace$parseFriendly_closure0()), type$.MappedIterable_String_Frame); + t1 = A.List_List$unmodifiable(t1, type$.Frame); + return new A.Trace(t1, new A._StringStackTrace(trace)); + }, + Trace$($frames, original) { + var t1 = A.List_List$unmodifiable($frames, type$.Frame); + return new A.Trace(t1, new A._StringStackTrace(original == null ? "" : original)); + }, + Trace: function Trace(t0, t1) { + this.frames = t0; + this.original = t1; + }, + Trace_Trace$from_closure: function Trace_Trace$from_closure(t0) { + this.trace = t0; + }, + Trace__parseVM_closure: function Trace__parseVM_closure() { + }, + Trace__parseVM_closure0: function Trace__parseVM_closure0() { + }, + Trace$parseV8_closure: function Trace$parseV8_closure() { + }, + Trace$parseV8_closure0: function Trace$parseV8_closure0() { + }, + Trace$parseJSCore_closure: function Trace$parseJSCore_closure() { + }, + Trace$parseJSCore_closure0: function Trace$parseJSCore_closure0() { + }, + Trace$parseFirefox_closure: function Trace$parseFirefox_closure() { + }, + Trace$parseFirefox_closure0: function Trace$parseFirefox_closure0() { + }, + Trace$parseFriendly_closure: function Trace$parseFriendly_closure() { + }, + Trace$parseFriendly_closure0: function Trace$parseFriendly_closure0() { + }, + Trace_terse_closure: function Trace_terse_closure() { + }, + Trace_foldFrames_closure: function Trace_foldFrames_closure(t0) { + this.oldPredicate = t0; + }, + Trace_foldFrames_closure0: function Trace_foldFrames_closure0(t0) { + this._box_0 = t0; + }, + Trace_toString_closure0: function Trace_toString_closure0() { + }, + Trace_toString_closure: function Trace_toString_closure(t0) { + this.longest = t0; + }, + UnparsedFrame: function UnparsedFrame(t0, t1) { + this.uri = t0; + this.member = t1; + }, + GuaranteeChannel$(innerStream, innerSink, allowSinkErrors, $T) { + var t2, t1 = {}; + t1.innerStream = innerStream; + t2 = new A.GuaranteeChannel($T._eval$1("GuaranteeChannel<0>")); + t2.GuaranteeChannel$3$allowSinkErrors(innerSink, true, t1, $T); + return t2; + }, + GuaranteeChannel: function GuaranteeChannel(t0) { + var _ = this; + _.__GuaranteeChannel__streamController_F = _.__GuaranteeChannel__sink_F = $; + _._subscription = null; + _._disconnected = false; + _.$ti = t0; + }, + GuaranteeChannel_closure: function GuaranteeChannel_closure(t0, t1, t2) { + this._box_0 = t0; + this.$this = t1; + this.T = t2; + }, + GuaranteeChannel__closure: function GuaranteeChannel__closure(t0) { + this.$this = t0; + }, + _GuaranteeSink: function _GuaranteeSink(t0, t1, t2, t3, t4) { + var _ = this; + _._inner = t0; + _._channel = t1; + _._doneCompleter = t2; + _._closed = _._disconnected = false; + _._addStreamCompleter = _._addStreamSubscription = null; + _._allowErrors = t3; + _.$ti = t4; + }, + _GuaranteeSink_addStream_closure: function _GuaranteeSink_addStream_closure(t0) { + this.$this = t0; + }, + _MultiChannel$(inner, $T) { + var t1 = type$.int; + t1 = new A._MultiChannel(inner, A.StreamChannelController$(true, $T), A.LinkedHashMap_LinkedHashMap$_empty(t1, $T._eval$1("StreamChannelController<0>")), A.LinkedHashSet_LinkedHashSet$_empty(t1), A.LinkedHashSet_LinkedHashSet$_empty(t1), $T._eval$1("_MultiChannel<0>")); + t1._MultiChannel$1(inner, $T); + return t1; + }, + _MultiChannel: function _MultiChannel(t0, t1, t2, t3, t4, t5) { + var _ = this; + _._multi_channel$_inner = t0; + _._innerStreamSubscription = null; + _._mainController = t1; + _._controllers = t2; + _._pendingIds = t3; + _._closedIds = t4; + _._nextId = 1; + _.$ti = t5; + }, + _MultiChannel_closure: function _MultiChannel_closure(t0, t1) { + this.$this = t0; + this.T = t1; + }, + _MultiChannel_closure0: function _MultiChannel_closure0(t0) { + this.$this = t0; + }, + _MultiChannel_closure1: function _MultiChannel_closure1(t0, t1) { + this.$this = t0; + this.T = t1; + }, + _MultiChannel__closure: function _MultiChannel__closure(t0, t1, t2) { + this.$this = t0; + this.id = t1; + this.T = t2; + }, + _MultiChannel_virtualChannel_closure: function _MultiChannel_virtualChannel_closure(t0, t1) { + this._box_0 = t0; + this.$this = t1; + }, + _MultiChannel_virtualChannel_closure0: function _MultiChannel_virtualChannel_closure0(t0, t1) { + this._box_0 = t0; + this.$this = t1; + }, + VirtualChannel: function VirtualChannel(t0, t1, t2, t3) { + var _ = this; + _._parent = t0; + _.stream = t1; + _.sink = t2; + _.$ti = t3; + }, + StreamChannelController$(sync, $T) { + var _null = null, + t1 = new A.StreamChannelController($T._eval$1("StreamChannelController<0>")), + localToForeignController = A.StreamController_StreamController(_null, _null, true, $T), + foreignToLocalController = A.StreamController_StreamController(_null, _null, true, $T), + t2 = A._instanceType(foreignToLocalController), + t3 = A._instanceType(localToForeignController), + t4 = $T._eval$1("StreamChannel<0>"); + t1.__StreamChannelController__local_F = t4._as(A.GuaranteeChannel$(new A._ControllerStream(foreignToLocalController, t2._eval$1("_ControllerStream<1>")), new A._StreamSinkWrapper(localToForeignController, t3._eval$1("_StreamSinkWrapper<1>")), true, $T)); + t1.__StreamChannelController__foreign_F = t4._as(A.GuaranteeChannel$(new A._ControllerStream(localToForeignController, t3._eval$1("_ControllerStream<1>")), new A._StreamSinkWrapper(foreignToLocalController, t2._eval$1("_StreamSinkWrapper<1>")), true, $T)); + return t1; + }, + StreamChannelController: function StreamChannelController(t0) { + this.__StreamChannelController__foreign_F = this.__StreamChannelController__local_F = $; + this.$ti = t0; + }, + StreamChannelMixin: function StreamChannelMixin() { + }, + EventTarget_addEventListener(_this, type, listener) { + var t1 = A._functionToJS1(listener); + _this.addEventListener.apply(_this, [type, t1]); + }, + EventTarget_removeEventListener(_this, type, listener) { + var t1 = A._functionToJS1(listener); + _this.removeEventListener.apply(_this, [type, t1]); + }, + MessagePort_get_postMessage(_this) { + return new A.MessagePort_get_postMessage_closure(_this); + }, + _callConstructor(constructorName, args) { + var $constructor = type$.nullable_JavaScriptFunction._as(A._asJSObject(init.G.window)[constructorName]); + if ($constructor == null) + return null; + return A.callConstructor($constructor, args, type$.JSObject); + }, + Subscription$(target, type, listener) { + A.EventTarget_addEventListener(target, type, listener); + return new A.Subscription(type, target, listener); + }, + MessagePort_get_postMessage_closure: function MessagePort_get_postMessage_closure(t0) { + this._this = t0; + }, + Subscription: function Subscription(t0, t1, t2) { + this.type = t0; + this.target = t1; + this.listener = t2; + }, + main() { + var t1 = init.G; + A._asJSObject(A._asJSObject(t1.window).console).log("Dart test runner browser host running"); + if ($.$get$_currentUrl().get$queryParameters().$index(0, "debug") === "true") + A._asJSObject(A._asJSObjectQ(A._asJSObject(t1.document).body).classList).add("debug"); + A.runZonedGuarded(new A.main_closure(), new A.main_closure0(), type$.Null); + }, + _connectToServer() { + var controller, t2, + t1 = $.$get$_currentUrl().get$queryParameters().$index(0, "managerUrl"); + t1.toString; + t1 = A._callConstructor("WebSocket", [t1]); + t1.toString; + controller = A.StreamChannelController$(true, type$.nullable_Object); + A.EventTarget_addEventListener(t1, "message", new A._connectToServer_closure(controller)); + t2 = controller.__StreamChannelController__local_F; + t2 === $ && A.throwLateFieldNI("_local"); + t2 = t2.__GuaranteeChannel__streamController_F; + t2 === $ && A.throwLateFieldNI("_streamController"); + new A._ControllerStream(t2, A._instanceType(t2)._eval$1("_ControllerStream<1>")).listen$1(new A._connectToServer_closure0(t1)); + t1 = controller.__StreamChannelController__foreign_F; + t1 === $ && A.throwLateFieldNI("_foreign"); + return A._MultiChannel$(t1, type$.dynamic); + }, + _connectToIframe(url, id) { + var t2, iframe, controller, windowSubscription, + suiteUrl = A.Uri_parse(url).removeFragment$0(), + t1 = init.G; + A._asJSObject(A._asJSObject(t1.window).console).log("Starting suite " + suiteUrl.toString$0(0)); + t2 = A._asJSObject(t1.document); + iframe = A._asJSObject(t2.createElement.apply(t2, ["iframe"])); + $._iframes.$indexSet(0, id, iframe); + controller = A.StreamChannelController$(true, type$.nullable_Object); + windowSubscription = A._Cell$named("windowSubscription"); + windowSubscription._value = A.Subscription$(A._asJSObject(t1.window), "message", new A._connectToIframe_closure(iframe, windowSubscription, suiteUrl, id, controller)); + iframe.src = url; + A._asJSObject(A._asJSObjectQ(A._asJSObject(t1.document).body).appendChild(iframe)); + A._asJSObject(A._asJSObject(t1.window).console).log("Appended iframe with src " + url); + t1 = controller.__StreamChannelController__foreign_F; + t1 === $ && A.throwLateFieldNI("_foreign"); + return t1; + }, + main_closure: function main_closure() { + }, + main__closure: function main__closure(t0) { + this.serverChannel = t0; + }, + main__closure0: function main__closure0(t0) { + this.serverChannel = t0; + }, + main__closure1: function main__closure1(t0) { + this.serverChannel = t0; + }, + main__closure2: function main__closure2(t0) { + this.serverChannel = t0; + }, + main__closure3: function main__closure3(t0) { + this.serverChannel = t0; + }, + main_closure0: function main_closure0() { + }, + _connectToServer_closure: function _connectToServer_closure(t0) { + this.controller = t0; + }, + _connectToServer_closure0: function _connectToServer_closure0(t0) { + this.webSocket = t0; + }, + _connectToIframe_closure: function _connectToIframe_closure(t0, t1, t2, t3, t4) { + var _ = this; + _.iframe = t0; + _.windowSubscription = t1; + _.suiteUrl = t2; + _.id = t3; + _.controller = t4; + }, + _connectToIframe__closure: function _connectToIframe__closure(t0) { + this.controller = t0; + }, + printString(string) { + if (typeof dartPrint == "function") { + dartPrint(string); + return; + } + if (typeof console == "object" && typeof console.log != "undefined") { + console.log(string); + return; + } + if (typeof print == "function") { + print(string); + return; + } + throw "Unable to print message: " + String(string); + }, + max(a, b, $T) { + A.checkTypeBound($T, type$.num, "T", "max"); + return Math.max($T._as(a), $T._as(b)); + }, + current() { + var exception, t1, path, lastIndex, uri = null; + try { + uri = A.Uri_base(); + } catch (exception) { + if (type$.Exception._is(A.unwrapException(exception))) { + t1 = $._current; + if (t1 != null) + return t1; + throw exception; + } else + throw exception; + } + if (J.$eq$(uri, $._currentUriBase)) { + t1 = $._current; + t1.toString; + return t1; + } + $._currentUriBase = uri; + if ($.$get$Style_platform() === $.$get$Style_url()) + t1 = $._current = uri.resolve$1(".").toString$0(0); + else { + path = uri.toFilePath$0(); + lastIndex = path.length - 1; + t1 = $._current = lastIndex === 0 ? path : B.JSString_methods.substring$2(path, 0, lastIndex); + } + return t1; + }, + isAlphabetic(char) { + var t1; + if (!(char >= 65 && char <= 90)) + t1 = char >= 97 && char <= 122; + else + t1 = true; + return t1; + }, + driveLetterEnd(path, index) { + var t2, t3, _null = null, + t1 = path.length, + index0 = index + 2; + if (t1 < index0) + return _null; + if (!(index >= 0 && index < t1)) + return A.ioore(path, index); + if (!A.isAlphabetic(path.charCodeAt(index))) + return _null; + t2 = index + 1; + if (!(t2 < t1)) + return A.ioore(path, t2); + if (path.charCodeAt(t2) !== 58) { + t3 = index + 4; + if (t1 < t3) + return _null; + if (B.JSString_methods.substring$2(path, t2, t3).toLowerCase() !== "%3a") + return _null; + index = index0; + } + t2 = index + 2; + if (t1 === t2) + return t2; + if (!(t2 >= 0 && t2 < t1)) + return A.ioore(path, t2); + if (path.charCodeAt(t2) !== 47) + return _null; + return index + 3; + } + }, + B = {}; + var holders = [A, J, B]; + var $ = {}; + A.JS_CONST.prototype = {}; + J.Interceptor.prototype = { + $eq(receiver, other) { + return receiver === other; + }, + get$hashCode(receiver) { + return A.Primitives_objectHashCode(receiver); + }, + toString$0(receiver) { + return "Instance of '" + A.Primitives_objectTypeName(receiver) + "'"; + }, + get$runtimeType(receiver) { + return A.createRuntimeType(A._instanceTypeFromConstructor(this)); + } + }; + J.JSBool.prototype = { + toString$0(receiver) { + return String(receiver); + }, + get$hashCode(receiver) { + return receiver ? 519018 : 218159; + }, + get$runtimeType(receiver) { + return A.createRuntimeType(type$.bool); + }, + $isTrustedGetRuntimeType: 1, + $isbool: 1 + }; + J.JSNull.prototype = { + $eq(receiver, other) { + return null == other; + }, + toString$0(receiver) { + return "null"; + }, + get$hashCode(receiver) { + return 0; + }, + $isTrustedGetRuntimeType: 1, + $isNull: 1 + }; + J.JavaScriptObject.prototype = {$isJSObject: 1}; + J.LegacyJavaScriptObject.prototype = { + get$hashCode(receiver) { + return 0; + }, + toString$0(receiver) { + return String(receiver); + } + }; + J.PlainJavaScriptObject.prototype = {}; + J.UnknownJavaScriptObject.prototype = {}; + J.JavaScriptFunction.prototype = { + toString$0(receiver) { + var dartClosure = receiver[$.$get$DART_CLOSURE_PROPERTY_NAME()]; + if (dartClosure == null) + dartClosure = receiver[$.$get$DART_CLOSURE_DART_JSINTEROP_PROPERTY_NAME()]; + if (dartClosure == null) + return this.super$LegacyJavaScriptObject$toString(receiver); + return "JavaScript function for " + J.toString$0$(dartClosure); + }, + $isFunction: 1 + }; + J.JavaScriptBigInt.prototype = { + get$hashCode(receiver) { + return 0; + }, + toString$0(receiver) { + return String(receiver); + } + }; + J.JavaScriptSymbol.prototype = { + get$hashCode(receiver) { + return 0; + }, + toString$0(receiver) { + return String(receiver); + } + }; + J.JSArray.prototype = { + cast$1$0(receiver, $R) { + return new A.CastList(receiver, A._arrayInstanceType(receiver)._eval$1("@<1>")._bind$1($R)._eval$1("CastList<1,2>")); + }, + add$1(receiver, value) { + A._arrayInstanceType(receiver)._precomputed1._as(value); + receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, 29); + receiver.push(value); + }, + removeAt$1(receiver, index) { + var t1; + receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "removeAt", 1); + t1 = receiver.length; + if (index >= t1) + throw A.wrapException(A.RangeError$value(index, null)); + return receiver.splice(index, 1)[0]; + }, + insert$2(receiver, index, value) { + var t1; + A._arrayInstanceType(receiver)._precomputed1._as(value); + receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "insert", 2); + t1 = receiver.length; + if (index > t1) + throw A.wrapException(A.RangeError$value(index, null)); + receiver.splice(index, 0, value); + }, + insertAll$2(receiver, index, iterable) { + var insertionLength, end; + A._arrayInstanceType(receiver)._eval$1("Iterable<1>")._as(iterable); + receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "insertAll", 2); + A.RangeError_checkValueInInterval(index, 0, receiver.length, "index"); + if (!type$.EfficientLengthIterable_dynamic._is(iterable)) + iterable = J.toList$0$ax(iterable); + insertionLength = J.get$length$asx(iterable); + receiver.length = receiver.length + insertionLength; + end = index + insertionLength; + this.setRange$4(receiver, end, receiver.length, receiver, index); + this.setRange$3(receiver, index, end, iterable); + }, + removeLast$0(receiver) { + receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "removeLast", 1); + if (receiver.length === 0) + throw A.wrapException(A.diagnoseIndexError(receiver, -1)); + return receiver.pop(); + }, + addAll$1(receiver, collection) { + var t1; + A._arrayInstanceType(receiver)._eval$1("Iterable<1>")._as(collection); + receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "addAll", 2); + if (Array.isArray(collection)) { + this._addAllFromArray$1(receiver, collection); + return; + } + for (t1 = J.get$iterator$ax(collection); t1.moveNext$0();) + receiver.push(t1.get$current()); + }, + _addAllFromArray$1(receiver, array) { + var len, i; + type$.JSArray_dynamic._as(array); + len = array.length; + if (len === 0) + return; + if (receiver === array) + throw A.wrapException(A.ConcurrentModificationError$(receiver)); + for (i = 0; i < len; ++i) + receiver.push(array[i]); + }, + clear$0(receiver) { + receiver.$flags & 1 && A.throwUnsupportedOperation(receiver, "clear", "clear"); + receiver.length = 0; + }, + map$1$1(receiver, f, $T) { + var t1 = A._arrayInstanceType(receiver); + return new A.MappedListIterable(receiver, t1._bind$1($T)._eval$1("1(2)")._as(f), t1._eval$1("@<1>")._bind$1($T)._eval$1("MappedListIterable<1,2>")); + }, + join$1(receiver, separator) { + var i, + list = A.List_List$filled(receiver.length, "", false, type$.String); + for (i = 0; i < receiver.length; ++i) + this.$indexSet(list, i, A.S(receiver[i])); + return list.join(separator); + }, + join$0(receiver) { + return this.join$1(receiver, ""); + }, + take$1(receiver, n) { + return A.SubListIterable$(receiver, 0, A.checkNotNullable(n, "count", type$.int), A._arrayInstanceType(receiver)._precomputed1); + }, + skip$1(receiver, n) { + return A.SubListIterable$(receiver, n, null, A._arrayInstanceType(receiver)._precomputed1); + }, + fold$1$2(receiver, initialValue, combine, $T) { + var $length, value, i; + $T._as(initialValue); + A._arrayInstanceType(receiver)._bind$1($T)._eval$1("1(1,2)")._as(combine); + $length = receiver.length; + for (value = initialValue, i = 0; i < $length; ++i) { + value = combine.call$2(value, receiver[i]); + if (receiver.length !== $length) + throw A.wrapException(A.ConcurrentModificationError$(receiver)); + } + return value; + }, + elementAt$1(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + return A.ioore(receiver, index); + return receiver[index]; + }, + get$first(receiver) { + if (receiver.length > 0) + return receiver[0]; + throw A.wrapException(A.IterableElementError_noElement()); + }, + get$last(receiver) { + var t1 = receiver.length; + if (t1 > 0) + return receiver[t1 - 1]; + throw A.wrapException(A.IterableElementError_noElement()); + }, + setRange$4(receiver, start, end, iterable, skipCount) { + var $length, otherList, otherStart, t1, i; + A._arrayInstanceType(receiver)._eval$1("Iterable<1>")._as(iterable); + receiver.$flags & 2 && A.throwUnsupportedOperation(receiver, 5); + A.RangeError_checkValidRange(start, end, receiver.length); + $length = end - start; + if ($length === 0) + return; + A.RangeError_checkNotNegative(skipCount, "skipCount"); + if (type$.List_dynamic._is(iterable)) { + otherList = iterable; + otherStart = skipCount; + } else { + otherList = J.skip$1$ax(iterable, skipCount).toList$1$growable(0, false); + otherStart = 0; + } + t1 = J.getInterceptor$asx(otherList); + if (otherStart + $length > t1.get$length(otherList)) + throw A.wrapException(A.IterableElementError_tooFew()); + if (otherStart < start) + for (i = $length - 1; i >= 0; --i) + receiver[start + i] = t1.$index(otherList, otherStart + i); + else + for (i = 0; i < $length; ++i) + receiver[start + i] = t1.$index(otherList, otherStart + i); + }, + setRange$3(receiver, start, end, iterable) { + return this.setRange$4(receiver, start, end, iterable, 0); + }, + get$isEmpty(receiver) { + return receiver.length === 0; + }, + get$isNotEmpty(receiver) { + return receiver.length !== 0; + }, + toString$0(receiver) { + return A.Iterable_iterableToFullString(receiver, "[", "]"); + }, + toList$1$growable(receiver, growable) { + var t1 = A._setArrayType(receiver.slice(0), A._arrayInstanceType(receiver)); + return t1; + }, + toList$0(receiver) { + return this.toList$1$growable(receiver, true); + }, + get$iterator(receiver) { + return new J.ArrayIterator(receiver, receiver.length, A._arrayInstanceType(receiver)._eval$1("ArrayIterator<1>")); + }, + get$hashCode(receiver) { + return A.Primitives_objectHashCode(receiver); + }, + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + if (!(index >= 0 && index < receiver.length)) + throw A.wrapException(A.diagnoseIndexError(receiver, index)); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._arrayInstanceType(receiver)._precomputed1._as(value); + receiver.$flags & 2 && A.throwUnsupportedOperation(receiver); + if (!(index >= 0 && index < receiver.length)) + throw A.wrapException(A.diagnoseIndexError(receiver, index)); + receiver[index] = value; + }, + $isEfficientLengthIterable: 1, + $isIterable: 1, + $isList: 1 + }; + J.JSArraySafeToStringHook.prototype = { + tryFormat$1(array) { + var flags, info, base; + if (!Array.isArray(array)) + return null; + flags = array.$flags | 0; + if ((flags & 4) !== 0) + info = "const, "; + else if ((flags & 2) !== 0) + info = "unmodifiable, "; + else + info = (flags & 1) !== 0 ? "fixed, " : ""; + base = "Instance of '" + A.Primitives_objectTypeName(array) + "'"; + if (info === "") + return base; + return base + " (" + info + "length: " + array.length + ")"; + } + }; + J.JSUnmodifiableArray.prototype = {}; + J.ArrayIterator.prototype = { + get$current() { + var t1 = this._current; + return t1 == null ? this.$ti._precomputed1._as(t1) : t1; + }, + moveNext$0() { + var t2, _this = this, + t1 = _this._iterable, + $length = t1.length; + if (_this._length !== $length) { + t1 = A.throwConcurrentModificationError(t1); + throw A.wrapException(t1); + } + t2 = _this._index; + if (t2 >= $length) { + _this._current = null; + return false; + } + _this._current = t1[t2]; + _this._index = t2 + 1; + return true; + }, + $isIterator: 1 + }; + J.JSNumber.prototype = { + toInt$0(receiver) { + var t1; + if (receiver >= -2147483648 && receiver <= 2147483647) + return receiver | 0; + if (isFinite(receiver)) { + t1 = receiver < 0 ? Math.ceil(receiver) : Math.floor(receiver); + return t1 + 0; + } + throw A.wrapException(A.UnsupportedError$("" + receiver + ".toInt()")); + }, + toString$0(receiver) { + if (receiver === 0 && 1 / receiver < 0) + return "-0.0"; + else + return "" + receiver; + }, + get$hashCode(receiver) { + var absolute, floorLog2, factor, scaled, + intValue = receiver | 0; + if (receiver === intValue) + return intValue & 536870911; + absolute = Math.abs(receiver); + floorLog2 = Math.log(absolute) / 0.6931471805599453 | 0; + factor = Math.pow(2, floorLog2); + scaled = absolute < 1 ? absolute / factor : factor / absolute; + return ((scaled * 9007199254740992 | 0) + (scaled * 3542243181176521 | 0)) * 599197 + floorLog2 * 1259 & 536870911; + }, + $add(receiver, other) { + return receiver + other; + }, + $mod(receiver, other) { + var result = receiver % other; + if (result === 0) + return 0; + if (result > 0) + return result; + return result + other; + }, + $tdiv(receiver, other) { + if ((receiver | 0) === receiver) + if (other >= 1) + return receiver / other | 0; + return this._tdivSlow$1(receiver, other); + }, + _tdivFast$1(receiver, other) { + return (receiver | 0) === receiver ? receiver / other | 0 : this._tdivSlow$1(receiver, other); + }, + _tdivSlow$1(receiver, other) { + var quotient = receiver / other; + if (quotient >= -2147483648 && quotient <= 2147483647) + return quotient | 0; + if (quotient > 0) { + if (quotient !== 1 / 0) + return Math.floor(quotient); + } else if (quotient > -1 / 0) + return Math.ceil(quotient); + throw A.wrapException(A.UnsupportedError$("Result of truncating division is " + A.S(quotient) + ": " + A.S(receiver) + " ~/ " + other)); + }, + _shrOtherPositive$1(receiver, other) { + var t1; + if (receiver > 0) + t1 = this._shrBothPositive$1(receiver, other); + else { + t1 = other > 31 ? 31 : other; + t1 = receiver >> t1 >>> 0; + } + return t1; + }, + _shrReceiverPositive$1(receiver, other) { + if (0 > other) + throw A.wrapException(A.argumentErrorValue(other)); + return this._shrBothPositive$1(receiver, other); + }, + _shrBothPositive$1(receiver, other) { + return other > 31 ? 0 : receiver >>> other; + }, + get$runtimeType(receiver) { + return A.createRuntimeType(type$.num); + }, + $isdouble: 1, + $isnum: 1 + }; + J.JSInt.prototype = { + get$runtimeType(receiver) { + return A.createRuntimeType(type$.int); + }, + $isTrustedGetRuntimeType: 1, + $isint: 1 + }; + J.JSNumNotInt.prototype = { + get$runtimeType(receiver) { + return A.createRuntimeType(type$.double); + }, + $isTrustedGetRuntimeType: 1 + }; + J.JSString.prototype = { + allMatches$2(receiver, string, start) { + var t1 = string.length; + if (start > t1) + throw A.wrapException(A.RangeError$range(start, 0, t1, null, null)); + return new A._StringAllMatchesIterable(string, receiver, start); + }, + allMatches$1(receiver, string) { + return this.allMatches$2(receiver, string, 0); + }, + matchAsPrefix$2(receiver, string, start) { + var t1, t2, i, t3, _null = null; + if (start < 0 || start > string.length) + throw A.wrapException(A.RangeError$range(start, 0, string.length, _null, _null)); + t1 = receiver.length; + t2 = string.length; + if (start + t1 > t2) + return _null; + for (i = 0; i < t1; ++i) { + t3 = start + i; + if (!(t3 >= 0 && t3 < t2)) + return A.ioore(string, t3); + if (string.charCodeAt(t3) !== receiver.charCodeAt(i)) + return _null; + } + return new A.StringMatch(start, receiver); + }, + endsWith$1(receiver, other) { + var otherLength = other.length, + t1 = receiver.length; + if (otherLength > t1) + return false; + return other === this.substring$1(receiver, t1 - otherLength); + }, + replaceFirst$2(receiver, from, to) { + A.RangeError_checkValueInInterval(0, 0, receiver.length, "startIndex"); + return A.stringReplaceFirstUnchecked(receiver, from, to, 0); + }, + split$1(receiver, pattern) { + var t1; + if (typeof pattern == "string") + return A._setArrayType(receiver.split(pattern), type$.JSArray_String); + else { + if (pattern instanceof A.JSSyntaxRegExp) { + t1 = pattern._hasCapturesCache; + t1 = !(t1 == null ? pattern._hasCapturesCache = pattern._computeHasCaptures$0() : t1); + } else + t1 = false; + if (t1) + return A._setArrayType(receiver.split(pattern._nativeRegExp), type$.JSArray_String); + else + return this._defaultSplit$1(receiver, pattern); + } + }, + replaceRange$3(receiver, start, end, replacement) { + var e = A.RangeError_checkValidRange(start, end, receiver.length); + return A.stringReplaceRangeUnchecked(receiver, start, e, replacement); + }, + _defaultSplit$1(receiver, pattern) { + var t1, start, $length, match, matchStart, matchEnd, + result = A._setArrayType([], type$.JSArray_String); + for (t1 = J.allMatches$1$s(pattern, receiver), t1 = t1.get$iterator(t1), start = 0, $length = 1; t1.moveNext$0();) { + match = t1.get$current(); + matchStart = match.get$start(); + matchEnd = match.get$end(); + $length = matchEnd - matchStart; + if ($length === 0 && start === matchStart) + continue; + B.JSArray_methods.add$1(result, this.substring$2(receiver, start, matchStart)); + start = matchEnd; + } + if (start < receiver.length || $length > 0) + B.JSArray_methods.add$1(result, this.substring$1(receiver, start)); + return result; + }, + startsWith$2(receiver, pattern, index) { + var endIndex; + if (index < 0 || index > receiver.length) + throw A.wrapException(A.RangeError$range(index, 0, receiver.length, null, null)); + if (typeof pattern == "string") { + endIndex = index + pattern.length; + if (endIndex > receiver.length) + return false; + return pattern === receiver.substring(index, endIndex); + } + return J.matchAsPrefix$2$s(pattern, receiver, index) != null; + }, + startsWith$1(receiver, pattern) { + return this.startsWith$2(receiver, pattern, 0); + }, + substring$2(receiver, start, end) { + return receiver.substring(start, A.RangeError_checkValidRange(start, end, receiver.length)); + }, + substring$1(receiver, start) { + return this.substring$2(receiver, start, null); + }, + trim$0(receiver) { + var startIndex, t1, endIndex0, + result = receiver.trim(), + endIndex = result.length; + if (endIndex === 0) + return result; + if (0 >= endIndex) + return A.ioore(result, 0); + if (result.charCodeAt(0) === 133) { + startIndex = J.JSString__skipLeadingWhitespace(result, 1); + if (startIndex === endIndex) + return ""; + } else + startIndex = 0; + t1 = endIndex - 1; + if (!(t1 >= 0)) + return A.ioore(result, t1); + endIndex0 = result.charCodeAt(t1) === 133 ? J.JSString__skipTrailingWhitespace(result, t1) : endIndex; + if (startIndex === 0 && endIndex0 === endIndex) + return result; + return result.substring(startIndex, endIndex0); + }, + $mul(receiver, times) { + var s, result; + if (0 >= times) + return ""; + if (times === 1 || receiver.length === 0) + return receiver; + if (times !== times >>> 0) + throw A.wrapException(B.C_OutOfMemoryError); + for (s = receiver, result = "";;) { + if ((times & 1) === 1) + result = s + result; + times = times >>> 1; + if (times === 0) + break; + s += s; + } + return result; + }, + padLeft$2(receiver, width, padding) { + var delta = width - receiver.length; + if (delta <= 0) + return receiver; + return this.$mul(padding, delta) + receiver; + }, + padRight$1(receiver, width) { + var delta = width - receiver.length; + if (delta <= 0) + return receiver; + return receiver + this.$mul(" ", delta); + }, + indexOf$2(receiver, pattern, start) { + var t1; + if (start < 0 || start > receiver.length) + throw A.wrapException(A.RangeError$range(start, 0, receiver.length, null, null)); + t1 = receiver.indexOf(pattern, start); + return t1; + }, + indexOf$1(receiver, pattern) { + return this.indexOf$2(receiver, pattern, 0); + }, + lastIndexOf$2(receiver, pattern, start) { + var t1, t2; + if (start == null) + start = receiver.length; + else if (start < 0 || start > receiver.length) + throw A.wrapException(A.RangeError$range(start, 0, receiver.length, null, null)); + t1 = pattern.length; + t2 = receiver.length; + if (start + t1 > t2) + start = t2 - t1; + return receiver.lastIndexOf(pattern, start); + }, + lastIndexOf$1(receiver, pattern) { + return this.lastIndexOf$2(receiver, pattern, null); + }, + contains$1(receiver, other) { + return A.stringContainsUnchecked(receiver, other, 0); + }, + toString$0(receiver) { + return receiver; + }, + get$hashCode(receiver) { + var t1, hash, i; + for (t1 = receiver.length, hash = 0, i = 0; i < t1; ++i) { + hash = hash + receiver.charCodeAt(i) & 536870911; + hash = hash + ((hash & 524287) << 10) & 536870911; + hash ^= hash >> 6; + } + hash = hash + ((hash & 67108863) << 3) & 536870911; + hash ^= hash >> 11; + return hash + ((hash & 16383) << 15) & 536870911; + }, + get$runtimeType(receiver) { + return A.createRuntimeType(type$.String); + }, + get$length(receiver) { + return receiver.length; + }, + $isTrustedGetRuntimeType: 1, + $isPattern: 1, + $isString: 1 + }; + A.CastStream.prototype = { + listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, onError) { + var t2, + t1 = this.$ti; + t1._eval$1("~(2)?")._as(onData); + t2 = this._source.listen$3$cancelOnError$onDone(null, cancelOnError, type$.nullable_void_Function._as(onDone)); + t1 = new A.CastStreamSubscription(t2, $.Zone__current, t1._eval$1("CastStreamSubscription<1,2>")); + t2.onData$1(t1.get$__internal$_onData()); + t1.onData$1(onData); + t1.onError$1(onError); + return t1; + }, + listen$1(onData) { + return this.listen$4$cancelOnError$onDone$onError(onData, null, null, null); + }, + listen$3$onDone$onError(onData, onDone, onError) { + return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError); + }, + listen$3$cancelOnError$onDone(onData, cancelOnError, onDone) { + return this.listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, null); + } + }; + A.CastStreamSubscription.prototype = { + cancel$0() { + return this._source.cancel$0(); + }, + onData$1(handleData) { + var t1 = this.$ti; + t1._eval$1("~(2)?")._as(handleData); + this._handleData = handleData == null ? null : this.__internal$_zone.registerUnaryCallback$2$1(handleData, type$.dynamic, t1._rest[1]); + }, + onError$1(handleError) { + var _this = this; + _this._source.onError$1(handleError); + if (handleError == null) + _this._handleError = null; + else if (type$.void_Function_Object_StackTrace._is(handleError)) + _this._handleError = _this.__internal$_zone.registerBinaryCallback$3$1(handleError, type$.dynamic, type$.Object, type$.StackTrace); + else if (type$.void_Function_Object._is(handleError)) + _this._handleError = _this.__internal$_zone.registerUnaryCallback$2$1(handleError, type$.dynamic, type$.Object); + else + throw A.wrapException(A.ArgumentError$(string$.handle, null)); + }, + __internal$_onData$1(data) { + var targetData, error, stack, handleError, t2, exception, _this = this, + t1 = _this.$ti; + t1._precomputed1._as(data); + t2 = _this._handleData; + if (t2 == null) + return; + targetData = null; + try { + targetData = t1._rest[1]._as(data); + } catch (exception) { + error = A.unwrapException(exception); + stack = A.getTraceFromException(exception); + handleError = _this._handleError; + if (handleError == null) + _this.__internal$_zone.handleUncaughtError$2(error, stack); + else { + t1 = type$.Object; + t2 = _this.__internal$_zone; + if (type$.void_Function_Object_StackTrace._is(handleError)) + t2.runBinaryGuarded$2$3(handleError, error, stack, t1, type$.StackTrace); + else + t2.runUnaryGuarded$1$2(type$.void_Function_Object._as(handleError), error, t1); + } + return; + } + _this.__internal$_zone.runUnaryGuarded$1$2(t2, targetData, t1._rest[1]); + }, + $isStreamSubscription: 1 + }; + A._CastIterableBase.prototype = { + get$iterator(_) { + return new A.CastIterator(J.get$iterator$ax(this.get$_source()), A._instanceType(this)._eval$1("CastIterator<1,2>")); + }, + get$length(_) { + return J.get$length$asx(this.get$_source()); + }, + get$isEmpty(_) { + return J.get$isEmpty$asx(this.get$_source()); + }, + get$isNotEmpty(_) { + return J.get$isNotEmpty$asx(this.get$_source()); + }, + skip$1(_, count) { + var t1 = A._instanceType(this); + return A.CastIterable_CastIterable(J.skip$1$ax(this.get$_source(), count), t1._precomputed1, t1._rest[1]); + }, + take$1(_, count) { + var t1 = A._instanceType(this); + return A.CastIterable_CastIterable(J.take$1$ax(this.get$_source(), count), t1._precomputed1, t1._rest[1]); + }, + elementAt$1(_, index) { + return A._instanceType(this)._rest[1]._as(J.elementAt$1$ax(this.get$_source(), index)); + }, + toString$0(_) { + return J.toString$0$(this.get$_source()); + } + }; + A.CastIterator.prototype = { + moveNext$0() { + return this._source.moveNext$0(); + }, + get$current() { + return this.$ti._rest[1]._as(this._source.get$current()); + }, + $isIterator: 1 + }; + A.CastIterable.prototype = { + get$_source() { + return this._source; + } + }; + A._EfficientLengthCastIterable.prototype = {$isEfficientLengthIterable: 1}; + A._CastListBase.prototype = { + $index(_, index) { + return this.$ti._rest[1]._as(J.$index$asx(this._source, index)); + }, + $indexSet(_, index, value) { + var t1 = this.$ti; + J.$indexSet$ax(this._source, index, t1._precomputed1._as(t1._rest[1]._as(value))); + }, + $isEfficientLengthIterable: 1, + $isList: 1 + }; + A.CastList.prototype = { + get$_source() { + return this._source; + } + }; + A.LateError.prototype = { + toString$0(_) { + return "LateInitializationError: " + this._message; + } + }; + A.CodeUnits.prototype = { + get$length(_) { + return this._string.length; + }, + $index(_, i) { + var t1 = this._string; + if (!(i >= 0 && i < t1.length)) + return A.ioore(t1, i); + return t1.charCodeAt(i); + } + }; + A.nullFuture_closure.prototype = { + call$0() { + return A.Future_Future$value(null, type$.void); + }, + $signature: 33 + }; + A.SentinelValue.prototype = {}; + A.EfficientLengthIterable.prototype = {}; + A.ListIterable.prototype = { + get$iterator(_) { + var _this = this; + return new A.ListIterator(_this, _this.get$length(_this), A._instanceType(_this)._eval$1("ListIterator")); + }, + get$isEmpty(_) { + return this.get$length(this) === 0; + }, + join$1(_, separator) { + var first, t1, i, _this = this, + $length = _this.get$length(_this); + if (separator.length !== 0) { + if ($length === 0) + return ""; + first = A.S(_this.elementAt$1(0, 0)); + if ($length !== _this.get$length(_this)) + throw A.wrapException(A.ConcurrentModificationError$(_this)); + for (t1 = first, i = 1; i < $length; ++i) { + t1 = t1 + separator + A.S(_this.elementAt$1(0, i)); + if ($length !== _this.get$length(_this)) + throw A.wrapException(A.ConcurrentModificationError$(_this)); + } + return t1.charCodeAt(0) == 0 ? t1 : t1; + } else { + for (i = 0, t1 = ""; i < $length; ++i) { + t1 += A.S(_this.elementAt$1(0, i)); + if ($length !== _this.get$length(_this)) + throw A.wrapException(A.ConcurrentModificationError$(_this)); + } + return t1.charCodeAt(0) == 0 ? t1 : t1; + } + }, + join$0(_) { + return this.join$1(0, ""); + }, + map$1$1(_, toElement, $T) { + var t1 = A._instanceType(this); + return new A.MappedListIterable(this, t1._bind$1($T)._eval$1("1(ListIterable.E)")._as(toElement), t1._eval$1("@")._bind$1($T)._eval$1("MappedListIterable<1,2>")); + }, + fold$1$2(_, initialValue, combine, $T) { + var $length, value, i, _this = this; + $T._as(initialValue); + A._instanceType(_this)._bind$1($T)._eval$1("1(1,ListIterable.E)")._as(combine); + $length = _this.get$length(_this); + for (value = initialValue, i = 0; i < $length; ++i) { + value = combine.call$2(value, _this.elementAt$1(0, i)); + if ($length !== _this.get$length(_this)) + throw A.wrapException(A.ConcurrentModificationError$(_this)); + } + return value; + }, + skip$1(_, count) { + return A.SubListIterable$(this, count, null, A._instanceType(this)._eval$1("ListIterable.E")); + }, + take$1(_, count) { + return A.SubListIterable$(this, 0, A.checkNotNullable(count, "count", type$.int), A._instanceType(this)._eval$1("ListIterable.E")); + } + }; + A.SubListIterable.prototype = { + SubListIterable$3(_iterable, _start, _endOrLength, $E) { + var endOrLength, + t1 = this._start; + A.RangeError_checkNotNegative(t1, "start"); + endOrLength = this._endOrLength; + if (endOrLength != null) { + A.RangeError_checkNotNegative(endOrLength, "end"); + if (t1 > endOrLength) + throw A.wrapException(A.RangeError$range(t1, 0, endOrLength, "start", null)); + } + }, + get$_endIndex() { + var $length = J.get$length$asx(this.__internal$_iterable), + endOrLength = this._endOrLength; + if (endOrLength == null || endOrLength > $length) + return $length; + return endOrLength; + }, + get$_startIndex() { + var $length = J.get$length$asx(this.__internal$_iterable), + t1 = this._start; + if (t1 > $length) + return $length; + return t1; + }, + get$length(_) { + var endOrLength, + $length = J.get$length$asx(this.__internal$_iterable), + t1 = this._start; + if (t1 >= $length) + return 0; + endOrLength = this._endOrLength; + if (endOrLength == null || endOrLength >= $length) + return $length - t1; + return endOrLength - t1; + }, + elementAt$1(_, index) { + var _this = this, + realIndex = _this.get$_startIndex() + index; + if (index < 0 || realIndex >= _this.get$_endIndex()) + throw A.wrapException(A.IndexError$withLength(index, _this.get$length(0), _this, "index")); + return J.elementAt$1$ax(_this.__internal$_iterable, realIndex); + }, + skip$1(_, count) { + var newStart, endOrLength, _this = this; + A.RangeError_checkNotNegative(count, "count"); + newStart = _this._start + count; + endOrLength = _this._endOrLength; + if (endOrLength != null && newStart >= endOrLength) + return new A.EmptyIterable(_this.$ti._eval$1("EmptyIterable<1>")); + return A.SubListIterable$(_this.__internal$_iterable, newStart, endOrLength, _this.$ti._precomputed1); + }, + take$1(_, count) { + var endOrLength, t1, newEnd, _this = this; + A.RangeError_checkNotNegative(count, "count"); + endOrLength = _this._endOrLength; + t1 = _this._start; + if (endOrLength == null) + return A.SubListIterable$(_this.__internal$_iterable, t1, B.JSInt_methods.$add(t1, count), _this.$ti._precomputed1); + else { + newEnd = B.JSInt_methods.$add(t1, count); + if (endOrLength < newEnd) + return _this; + return A.SubListIterable$(_this.__internal$_iterable, t1, newEnd, _this.$ti._precomputed1); + } + }, + toList$1$growable(_, growable) { + var $length, result, i, _this = this, + start = _this._start, + t1 = _this.__internal$_iterable, + t2 = J.getInterceptor$asx(t1), + end = t2.get$length(t1), + endOrLength = _this._endOrLength; + if (endOrLength != null && endOrLength < end) + end = endOrLength; + $length = end - start; + if ($length <= 0) { + t1 = J.JSArray_JSArray$fixed(0, _this.$ti._precomputed1); + return t1; + } + result = A.List_List$filled($length, t2.elementAt$1(t1, start), false, _this.$ti._precomputed1); + for (i = 1; i < $length; ++i) { + B.JSArray_methods.$indexSet(result, i, t2.elementAt$1(t1, start + i)); + if (t2.get$length(t1) < end) + throw A.wrapException(A.ConcurrentModificationError$(_this)); + } + return result; + } + }; + A.ListIterator.prototype = { + get$current() { + var t1 = this.__internal$_current; + return t1 == null ? this.$ti._precomputed1._as(t1) : t1; + }, + moveNext$0() { + var t3, _this = this, + t1 = _this.__internal$_iterable, + t2 = J.getInterceptor$asx(t1), + $length = t2.get$length(t1); + if (_this.__internal$_length !== $length) + throw A.wrapException(A.ConcurrentModificationError$(t1)); + t3 = _this.__internal$_index; + if (t3 >= $length) { + _this.__internal$_current = null; + return false; + } + _this.__internal$_current = t2.elementAt$1(t1, t3); + ++_this.__internal$_index; + return true; + }, + $isIterator: 1 + }; + A.MappedIterable.prototype = { + get$iterator(_) { + return new A.MappedIterator(J.get$iterator$ax(this.__internal$_iterable), this._f, A._instanceType(this)._eval$1("MappedIterator<1,2>")); + }, + get$length(_) { + return J.get$length$asx(this.__internal$_iterable); + }, + get$isEmpty(_) { + return J.get$isEmpty$asx(this.__internal$_iterable); + }, + elementAt$1(_, index) { + return this._f.call$1(J.elementAt$1$ax(this.__internal$_iterable, index)); + } + }; + A.EfficientLengthMappedIterable.prototype = {$isEfficientLengthIterable: 1}; + A.MappedIterator.prototype = { + moveNext$0() { + var _this = this, + t1 = _this._iterator; + if (t1.moveNext$0()) { + _this.__internal$_current = _this._f.call$1(t1.get$current()); + return true; + } + _this.__internal$_current = null; + return false; + }, + get$current() { + var t1 = this.__internal$_current; + return t1 == null ? this.$ti._rest[1]._as(t1) : t1; + }, + $isIterator: 1 + }; + A.MappedListIterable.prototype = { + get$length(_) { + return J.get$length$asx(this._source); + }, + elementAt$1(_, index) { + return this._f.call$1(J.elementAt$1$ax(this._source, index)); + } + }; + A.WhereIterable.prototype = { + get$iterator(_) { + return new A.WhereIterator(J.get$iterator$ax(this.__internal$_iterable), this._f, this.$ti._eval$1("WhereIterator<1>")); + }, + map$1$1(_, toElement, $T) { + var t1 = this.$ti; + return new A.MappedIterable(this, t1._bind$1($T)._eval$1("1(2)")._as(toElement), t1._eval$1("@<1>")._bind$1($T)._eval$1("MappedIterable<1,2>")); + } + }; + A.WhereIterator.prototype = { + moveNext$0() { + var t1, t2; + for (t1 = this._iterator, t2 = this._f; t1.moveNext$0();) + if (t2.call$1(t1.get$current())) + return true; + return false; + }, + get$current() { + return this._iterator.get$current(); + }, + $isIterator: 1 + }; + A.ExpandIterable.prototype = { + get$iterator(_) { + return new A.ExpandIterator(J.get$iterator$ax(this.__internal$_iterable), this._f, B.C_EmptyIterator, this.$ti._eval$1("ExpandIterator<1,2>")); + } + }; + A.ExpandIterator.prototype = { + get$current() { + var t1 = this.__internal$_current; + return t1 == null ? this.$ti._rest[1]._as(t1) : t1; + }, + moveNext$0() { + var t2, t3, _this = this, + t1 = _this._currentExpansion; + if (t1 == null) + return false; + for (t2 = _this._iterator, t3 = _this._f; !t1.moveNext$0();) { + _this.__internal$_current = null; + if (t2.moveNext$0()) { + _this._currentExpansion = null; + t1 = J.get$iterator$ax(t3.call$1(t2.get$current())); + _this._currentExpansion = t1; + } else + return false; + } + _this.__internal$_current = _this._currentExpansion.get$current(); + return true; + }, + $isIterator: 1 + }; + A.TakeIterable.prototype = { + get$iterator(_) { + var t1 = this.__internal$_iterable; + return new A.TakeIterator(t1.get$iterator(t1), this._takeCount, A._instanceType(this)._eval$1("TakeIterator<1>")); + } + }; + A.EfficientLengthTakeIterable.prototype = { + get$length(_) { + var t1 = this.__internal$_iterable, + iterableLength = t1.get$length(t1); + t1 = this._takeCount; + if (iterableLength > t1) + return t1; + return iterableLength; + }, + $isEfficientLengthIterable: 1 + }; + A.TakeIterator.prototype = { + moveNext$0() { + if (--this._remaining >= 0) + return this._iterator.moveNext$0(); + this._remaining = -1; + return false; + }, + get$current() { + if (this._remaining < 0) { + this.$ti._precomputed1._as(null); + return null; + } + return this._iterator.get$current(); + }, + $isIterator: 1 + }; + A.SkipIterable.prototype = { + skip$1(_, count) { + A.ArgumentError_checkNotNull(count, "count", type$.int); + A.RangeError_checkNotNegative(count, "count"); + return new A.SkipIterable(this.__internal$_iterable, this._skipCount + count, A._instanceType(this)._eval$1("SkipIterable<1>")); + }, + get$iterator(_) { + var t1 = this.__internal$_iterable; + return new A.SkipIterator(t1.get$iterator(t1), this._skipCount, A._instanceType(this)._eval$1("SkipIterator<1>")); + } + }; + A.EfficientLengthSkipIterable.prototype = { + get$length(_) { + var t1 = this.__internal$_iterable, + $length = t1.get$length(t1) - this._skipCount; + if ($length >= 0) + return $length; + return 0; + }, + skip$1(_, count) { + A.ArgumentError_checkNotNull(count, "count", type$.int); + A.RangeError_checkNotNegative(count, "count"); + return new A.EfficientLengthSkipIterable(this.__internal$_iterable, this._skipCount + count, this.$ti); + }, + $isEfficientLengthIterable: 1 + }; + A.SkipIterator.prototype = { + moveNext$0() { + var t1, i; + for (t1 = this._iterator, i = 0; i < this._skipCount; ++i) + t1.moveNext$0(); + this._skipCount = 0; + return t1.moveNext$0(); + }, + get$current() { + return this._iterator.get$current(); + }, + $isIterator: 1 + }; + A.SkipWhileIterable.prototype = { + get$iterator(_) { + return new A.SkipWhileIterator(J.get$iterator$ax(this.__internal$_iterable), this._f, this.$ti._eval$1("SkipWhileIterator<1>")); + } + }; + A.SkipWhileIterator.prototype = { + moveNext$0() { + var t1, t2, _this = this; + if (!_this._hasSkipped) { + _this._hasSkipped = true; + for (t1 = _this._iterator, t2 = _this._f; t1.moveNext$0();) + if (!t2.call$1(t1.get$current())) + return true; + } + return _this._iterator.moveNext$0(); + }, + get$current() { + return this._iterator.get$current(); + }, + $isIterator: 1 + }; + A.EmptyIterable.prototype = { + get$iterator(_) { + return B.C_EmptyIterator; + }, + get$isEmpty(_) { + return true; + }, + get$length(_) { + return 0; + }, + elementAt$1(_, index) { + throw A.wrapException(A.RangeError$range(index, 0, 0, "index", null)); + }, + map$1$1(_, toElement, $T) { + this.$ti._bind$1($T)._eval$1("1(2)")._as(toElement); + return new A.EmptyIterable($T._eval$1("EmptyIterable<0>")); + }, + skip$1(_, count) { + A.RangeError_checkNotNegative(count, "count"); + return this; + }, + take$1(_, count) { + A.RangeError_checkNotNegative(count, "count"); + return this; + } + }; + A.EmptyIterator.prototype = { + moveNext$0() { + return false; + }, + get$current() { + throw A.wrapException(A.IterableElementError_noElement()); + }, + $isIterator: 1 + }; + A.WhereTypeIterable.prototype = { + get$iterator(_) { + return new A.WhereTypeIterator(J.get$iterator$ax(this._source), this.$ti._eval$1("WhereTypeIterator<1>")); + } + }; + A.WhereTypeIterator.prototype = { + moveNext$0() { + var t1, t2; + for (t1 = this._source, t2 = this.$ti._precomputed1; t1.moveNext$0();) + if (t2._is(t1.get$current())) + return true; + return false; + }, + get$current() { + return this.$ti._precomputed1._as(this._source.get$current()); + }, + $isIterator: 1 + }; + A.FixedLengthListMixin.prototype = {}; + A.UnmodifiableListMixin.prototype = { + $indexSet(_, index, value) { + A._instanceType(this)._eval$1("UnmodifiableListMixin.E")._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot modify an unmodifiable list")); + } + }; + A.UnmodifiableListBase.prototype = {}; + A.ReversedListIterable.prototype = { + get$length(_) { + return J.get$length$asx(this._source); + }, + elementAt$1(_, index) { + var t1 = this._source, + t2 = J.getInterceptor$asx(t1); + return t2.elementAt$1(t1, t2.get$length(t1) - 1 - index); + } + }; + A.__CastListBase__CastIterableBase_ListMixin.prototype = {}; + A.ConstantMap.prototype = { + get$isEmpty(_) { + return this.get$length(this) === 0; + }, + toString$0(_) { + return A.MapBase_mapToString(this); + }, + $indexSet(_, key, value) { + var t1 = A._instanceType(this); + t1._precomputed1._as(key); + t1._rest[1]._as(value); + A.ConstantMap__throwUnmodifiable(); + }, + $isMap: 1 + }; + A.ConstantStringMap.prototype = { + get$length(_) { + return this._values.length; + }, + get$__js_helper$_keys() { + var keys = this.$keys; + if (keys == null) { + keys = Object.keys(this._jsIndex); + this.$keys = keys; + } + return keys; + }, + containsKey$1(key) { + if (typeof key != "string") + return false; + if ("__proto__" === key) + return false; + return this._jsIndex.hasOwnProperty(key); + }, + $index(_, key) { + if (!this.containsKey$1(key)) + return null; + return this._values[this._jsIndex[key]]; + }, + forEach$1(_, f) { + var keys, values, t1, i; + this.$ti._eval$1("~(1,2)")._as(f); + keys = this.get$__js_helper$_keys(); + values = this._values; + for (t1 = keys.length, i = 0; i < t1; ++i) + f.call$2(keys[i], values[i]); + }, + get$keys() { + return new A._KeysOrValues(this.get$__js_helper$_keys(), this.$ti._eval$1("_KeysOrValues<1>")); + } + }; + A._KeysOrValues.prototype = { + get$length(_) { + return this._elements.length; + }, + get$isEmpty(_) { + return 0 === this._elements.length; + }, + get$isNotEmpty(_) { + return 0 !== this._elements.length; + }, + get$iterator(_) { + var t1 = this._elements; + return new A._KeysOrValuesOrElementsIterator(t1, t1.length, this.$ti._eval$1("_KeysOrValuesOrElementsIterator<1>")); + } + }; + A._KeysOrValuesOrElementsIterator.prototype = { + get$current() { + var t1 = this.__js_helper$_current; + return t1 == null ? this.$ti._precomputed1._as(t1) : t1; + }, + moveNext$0() { + var _this = this, + t1 = _this.__js_helper$_index; + if (t1 >= _this.__js_helper$_length) { + _this.__js_helper$_current = null; + return false; + } + _this.__js_helper$_current = _this._elements[t1]; + _this.__js_helper$_index = t1 + 1; + return true; + }, + $isIterator: 1 + }; + A.Instantiation.prototype = { + $eq(_, other) { + if (other == null) + return false; + return other instanceof A.Instantiation1 && this._genericClosure.$eq(0, other._genericClosure) && A.getRuntimeTypeOfClosure(this) === A.getRuntimeTypeOfClosure(other); + }, + get$hashCode(_) { + return A.Object_hash(this._genericClosure, A.getRuntimeTypeOfClosure(this)); + }, + toString$0(_) { + var t1 = B.JSArray_methods.join$1([A.createRuntimeType(this.$ti._precomputed1)], ", "); + return this._genericClosure.toString$0(0) + " with " + ("<" + t1 + ">"); + } + }; + A.Instantiation1.prototype = { + call$2(a0, a1) { + return this._genericClosure.call$1$2(a0, a1, this.$ti._rest[0]); + }, + call$4(a0, a1, a2, a3) { + return this._genericClosure.call$1$4(a0, a1, a2, a3, this.$ti._rest[0]); + }, + $signature() { + return A.instantiatedGenericFunctionType(A.closureFunctionType(this._genericClosure), this.$ti); + } + }; + A.SafeToStringHook.prototype = {}; + A.TypeErrorDecoder.prototype = { + matchTypeError$1(message) { + var result, t1, _this = this, + match = new RegExp(_this._pattern).exec(message); + if (match == null) + return null; + result = Object.create(null); + t1 = _this._arguments; + if (t1 !== -1) + result.arguments = match[t1 + 1]; + t1 = _this._argumentsExpr; + if (t1 !== -1) + result.argumentsExpr = match[t1 + 1]; + t1 = _this._expr; + if (t1 !== -1) + result.expr = match[t1 + 1]; + t1 = _this._method; + if (t1 !== -1) + result.method = match[t1 + 1]; + t1 = _this._receiver; + if (t1 !== -1) + result.receiver = match[t1 + 1]; + return result; + } + }; + A.NullError.prototype = { + toString$0(_) { + return "Null check operator used on a null value"; + } + }; + A.JsNoSuchMethodError.prototype = { + toString$0(_) { + var t2, _this = this, + _s38_ = "NoSuchMethodError: method not found: '", + t1 = _this._method; + if (t1 == null) + return "NoSuchMethodError: " + _this.__js_helper$_message; + t2 = _this._receiver; + if (t2 == null) + return _s38_ + t1 + "' (" + _this.__js_helper$_message + ")"; + return _s38_ + t1 + "' on '" + t2 + "' (" + _this.__js_helper$_message + ")"; + } + }; + A.UnknownJsTypeError.prototype = { + toString$0(_) { + var t1 = this.__js_helper$_message; + return t1.length === 0 ? "Error" : "Error: " + t1; + } + }; + A.NullThrownFromJavaScriptException.prototype = { + toString$0(_) { + return "Throw of null ('" + (this._irritant === null ? "null" : "undefined") + "' from JavaScript)"; + }, + $isException: 1 + }; + A._StackTrace.prototype = { + toString$0(_) { + var trace, + t1 = this._trace; + if (t1 != null) + return t1; + t1 = this._exception; + trace = t1 !== null && typeof t1 === "object" ? t1.stack : null; + return this._trace = trace == null ? "" : trace; + }, + $isStackTrace: 1 + }; + A.Closure.prototype = { + toString$0(_) { + var $constructor = this.constructor, + $name = $constructor == null ? null : $constructor.name; + return "Closure '" + A.unminifyOrTag($name == null ? "unknown" : $name) + "'"; + }, + $isFunction: 1, + get$$call() { + return this; + }, + "call*": "call$1", + $requiredArgCount: 1, + $defaultValues: null + }; + A.Closure0Args.prototype = {"call*": "call$0", $requiredArgCount: 0}; + A.Closure2Args.prototype = {"call*": "call$2", $requiredArgCount: 2}; + A.TearOffClosure.prototype = {}; + A.StaticClosure.prototype = { + toString$0(_) { + var $name = this.$static_name; + if ($name == null) + return "Closure of unknown static method"; + return "Closure '" + A.unminifyOrTag($name) + "'"; + } + }; + A.BoundClosure.prototype = { + $eq(_, other) { + if (other == null) + return false; + if (this === other) + return true; + if (!(other instanceof A.BoundClosure)) + return false; + return this.$_target === other.$_target && this._receiver === other._receiver; + }, + get$hashCode(_) { + return (A.objectHashCode(this._receiver) ^ A.Primitives_objectHashCode(this.$_target)) >>> 0; + }, + toString$0(_) { + return "Closure '" + this.$_name + "' of " + ("Instance of '" + A.Primitives_objectTypeName(this._receiver) + "'"); + } + }; + A.RuntimeError.prototype = { + toString$0(_) { + return "RuntimeError: " + this.message; + } + }; + A.JsLinkedHashMap.prototype = { + get$length(_) { + return this.__js_helper$_length; + }, + get$isEmpty(_) { + return this.__js_helper$_length === 0; + }, + get$keys() { + return new A.LinkedHashMapKeysIterable(this, A._instanceType(this)._eval$1("LinkedHashMapKeysIterable<1>")); + }, + containsKey$1(key) { + var strings, nums; + if (typeof key == "string") { + strings = this.__js_helper$_strings; + if (strings == null) + return false; + return strings[key] != null; + } else if (typeof key == "number" && (key & 0x3fffffff) === key) { + nums = this.__js_helper$_nums; + if (nums == null) + return false; + return nums[key] != null; + } else + return this.internalContainsKey$1(key); + }, + internalContainsKey$1(key) { + var rest = this.__js_helper$_rest; + if (rest == null) + return false; + return this.internalFindBucketIndex$2(rest[this.internalComputeHashCode$1(key)], key) >= 0; + }, + $index(_, key) { + var strings, cell, t1, nums, _null = null; + if (typeof key == "string") { + strings = this.__js_helper$_strings; + if (strings == null) + return _null; + cell = strings[key]; + t1 = cell == null ? _null : cell.hashMapCellValue; + return t1; + } else if (typeof key == "number" && (key & 0x3fffffff) === key) { + nums = this.__js_helper$_nums; + if (nums == null) + return _null; + cell = nums[key]; + t1 = cell == null ? _null : cell.hashMapCellValue; + return t1; + } else + return this.internalGet$1(key); + }, + internalGet$1(key) { + var bucket, index, + rest = this.__js_helper$_rest; + if (rest == null) + return null; + bucket = rest[this.internalComputeHashCode$1(key)]; + index = this.internalFindBucketIndex$2(bucket, key); + if (index < 0) + return null; + return bucket[index].hashMapCellValue; + }, + $indexSet(_, key, value) { + var strings, nums, rest, hash, bucket, index, _this = this, + t1 = A._instanceType(_this); + t1._precomputed1._as(key); + t1._rest[1]._as(value); + if (typeof key == "string") { + strings = _this.__js_helper$_strings; + _this.__js_helper$_addHashTableEntry$3(strings == null ? _this.__js_helper$_strings = _this._newHashTable$0() : strings, key, value); + } else if (typeof key == "number" && (key & 0x3fffffff) === key) { + nums = _this.__js_helper$_nums; + _this.__js_helper$_addHashTableEntry$3(nums == null ? _this.__js_helper$_nums = _this._newHashTable$0() : nums, key, value); + } else { + rest = _this.__js_helper$_rest; + if (rest == null) + rest = _this.__js_helper$_rest = _this._newHashTable$0(); + hash = _this.internalComputeHashCode$1(key); + bucket = rest[hash]; + if (bucket == null) + rest[hash] = [_this._newLinkedCell$2(key, value)]; + else { + index = _this.internalFindBucketIndex$2(bucket, key); + if (index >= 0) + bucket[index].hashMapCellValue = value; + else + bucket.push(_this._newLinkedCell$2(key, value)); + } + } + }, + putIfAbsent$2(key, ifAbsent) { + var t2, value, _this = this, + t1 = A._instanceType(_this); + t1._precomputed1._as(key); + t1._eval$1("2()")._as(ifAbsent); + if (_this.containsKey$1(key)) { + t2 = _this.$index(0, key); + return t2 == null ? t1._rest[1]._as(t2) : t2; + } + value = ifAbsent.call$0(); + _this.$indexSet(0, key, value); + return value; + }, + remove$1(_, key) { + var _this = this; + if (typeof key == "string") + return _this._removeHashTableEntry$2(_this.__js_helper$_strings, key); + else if (typeof key == "number" && (key & 0x3fffffff) === key) + return _this._removeHashTableEntry$2(_this.__js_helper$_nums, key); + else + return _this.internalRemove$1(key); + }, + internalRemove$1(key) { + var hash, bucket, index, cell, _this = this, + rest = _this.__js_helper$_rest; + if (rest == null) + return null; + hash = _this.internalComputeHashCode$1(key); + bucket = rest[hash]; + index = _this.internalFindBucketIndex$2(bucket, key); + if (index < 0) + return null; + cell = bucket.splice(index, 1)[0]; + _this._unlinkCell$1(cell); + if (bucket.length === 0) + delete rest[hash]; + return cell.hashMapCellValue; + }, + clear$0(_) { + var _this = this; + if (_this.__js_helper$_length > 0) { + _this.__js_helper$_strings = _this.__js_helper$_nums = _this.__js_helper$_rest = _this._first = _this._last = null; + _this.__js_helper$_length = 0; + _this._modified$0(); + } + }, + forEach$1(_, action) { + var cell, modifications, _this = this; + A._instanceType(_this)._eval$1("~(1,2)")._as(action); + cell = _this._first; + modifications = _this._modifications; + while (cell != null) { + action.call$2(cell.hashMapCellKey, cell.hashMapCellValue); + if (modifications !== _this._modifications) + throw A.wrapException(A.ConcurrentModificationError$(_this)); + cell = cell._next; + } + }, + __js_helper$_addHashTableEntry$3(table, key, value) { + var cell, + t1 = A._instanceType(this); + t1._precomputed1._as(key); + t1._rest[1]._as(value); + cell = table[key]; + if (cell == null) + table[key] = this._newLinkedCell$2(key, value); + else + cell.hashMapCellValue = value; + }, + _removeHashTableEntry$2(table, key) { + var cell; + if (table == null) + return null; + cell = table[key]; + if (cell == null) + return null; + this._unlinkCell$1(cell); + delete table[key]; + return cell.hashMapCellValue; + }, + _modified$0() { + this._modifications = this._modifications + 1 & 1073741823; + }, + _newLinkedCell$2(key, value) { + var _this = this, + t1 = A._instanceType(_this), + cell = new A.LinkedHashMapCell(t1._precomputed1._as(key), t1._rest[1]._as(value)); + if (_this._first == null) + _this._first = _this._last = cell; + else { + t1 = _this._last; + t1.toString; + cell._previous = t1; + _this._last = t1._next = cell; + } + ++_this.__js_helper$_length; + _this._modified$0(); + return cell; + }, + _unlinkCell$1(cell) { + var _this = this, + previous = cell._previous, + next = cell._next; + if (previous == null) + _this._first = next; + else + previous._next = next; + if (next == null) + _this._last = previous; + else + next._previous = previous; + --_this.__js_helper$_length; + _this._modified$0(); + }, + internalComputeHashCode$1(key) { + return J.get$hashCode$(key) & 1073741823; + }, + internalFindBucketIndex$2(bucket, key) { + var $length, i; + if (bucket == null) + return -1; + $length = bucket.length; + for (i = 0; i < $length; ++i) + if (J.$eq$(bucket[i].hashMapCellKey, key)) + return i; + return -1; + }, + toString$0(_) { + return A.MapBase_mapToString(this); + }, + _newHashTable$0() { + var table = Object.create(null); + table[""] = table; + delete table[""]; + return table; + }, + $isLinkedHashMap: 1 + }; + A.LinkedHashMapCell.prototype = {}; + A.LinkedHashMapKeysIterable.prototype = { + get$length(_) { + return this.__js_helper$_map.__js_helper$_length; + }, + get$isEmpty(_) { + return this.__js_helper$_map.__js_helper$_length === 0; + }, + get$iterator(_) { + var t1 = this.__js_helper$_map; + return new A.LinkedHashMapKeyIterator(t1, t1._modifications, t1._first, this.$ti._eval$1("LinkedHashMapKeyIterator<1>")); + }, + contains$1(_, element) { + return this.__js_helper$_map.containsKey$1(element); + } + }; + A.LinkedHashMapKeyIterator.prototype = { + get$current() { + return this.__js_helper$_current; + }, + moveNext$0() { + var cell, _this = this, + t1 = _this.__js_helper$_map; + if (_this._modifications !== t1._modifications) + throw A.wrapException(A.ConcurrentModificationError$(t1)); + cell = _this._cell; + if (cell == null) { + _this.__js_helper$_current = null; + return false; + } else { + _this.__js_helper$_current = cell.hashMapCellKey; + _this._cell = cell._next; + return true; + } + }, + $isIterator: 1 + }; + A.LinkedHashMapValuesIterable.prototype = { + get$length(_) { + return this.__js_helper$_map.__js_helper$_length; + }, + get$isEmpty(_) { + return this.__js_helper$_map.__js_helper$_length === 0; + }, + get$iterator(_) { + var t1 = this.__js_helper$_map; + return new A.LinkedHashMapValueIterator(t1, t1._modifications, t1._first, this.$ti._eval$1("LinkedHashMapValueIterator<1>")); + } + }; + A.LinkedHashMapValueIterator.prototype = { + get$current() { + return this.__js_helper$_current; + }, + moveNext$0() { + var cell, _this = this, + t1 = _this.__js_helper$_map; + if (_this._modifications !== t1._modifications) + throw A.wrapException(A.ConcurrentModificationError$(t1)); + cell = _this._cell; + if (cell == null) { + _this.__js_helper$_current = null; + return false; + } else { + _this.__js_helper$_current = cell.hashMapCellValue; + _this._cell = cell._next; + return true; + } + }, + $isIterator: 1 + }; + A.initHooks_closure.prototype = { + call$1(o) { + return this.getTag(o); + }, + $signature: 12 + }; + A.initHooks_closure0.prototype = { + call$2(o, tag) { + return this.getUnknownTag(o, tag); + }, + $signature: 27 + }; + A.initHooks_closure1.prototype = { + call$1(tag) { + return this.prototypeForTag(A._asString(tag)); + }, + $signature: 29 + }; + A.JSSyntaxRegExp.prototype = { + toString$0(_) { + return "RegExp/" + this.pattern + "/" + this._nativeRegExp.flags; + }, + get$_nativeGlobalVersion() { + var _this = this, + t1 = _this._nativeGlobalRegExp; + if (t1 != null) + return t1; + t1 = _this._nativeRegExp; + return _this._nativeGlobalRegExp = A.JSSyntaxRegExp_makeNative(_this.pattern, t1.multiline, !t1.ignoreCase, t1.unicode, t1.dotAll, "g"); + }, + get$_nativeAnchoredVersion() { + var _this = this, + t1 = _this._nativeAnchoredRegExp; + if (t1 != null) + return t1; + t1 = _this._nativeRegExp; + return _this._nativeAnchoredRegExp = A.JSSyntaxRegExp_makeNative(_this.pattern, t1.multiline, !t1.ignoreCase, t1.unicode, t1.dotAll, "y"); + }, + _computeHasCaptures$0() { + var t2, + t1 = this.pattern; + if (!B.JSString_methods.contains$1(t1, "(")) + return false; + t2 = this._nativeRegExp.unicode ? "u" : ""; + return new RegExp("(?:)|" + t1, t2).exec("").length > 1; + }, + firstMatch$1(string) { + var m = this._nativeRegExp.exec(string); + if (m == null) + return null; + return new A._MatchImplementation(m); + }, + allMatches$2(_, string, start) { + var t1 = string.length; + if (start > t1) + throw A.wrapException(A.RangeError$range(start, 0, t1, null, null)); + return new A._AllMatchesIterable(this, string, start); + }, + allMatches$1(_, string) { + return this.allMatches$2(0, string, 0); + }, + _execGlobal$2(string, start) { + var match, + regexp = this.get$_nativeGlobalVersion(); + if (regexp == null) + regexp = A._asObject(regexp); + regexp.lastIndex = start; + match = regexp.exec(string); + if (match == null) + return null; + return new A._MatchImplementation(match); + }, + _execAnchored$2(string, start) { + var match, + regexp = this.get$_nativeAnchoredVersion(); + if (regexp == null) + regexp = A._asObject(regexp); + regexp.lastIndex = start; + match = regexp.exec(string); + if (match == null) + return null; + return new A._MatchImplementation(match); + }, + matchAsPrefix$2(_, string, start) { + if (start < 0 || start > string.length) + throw A.wrapException(A.RangeError$range(start, 0, string.length, null, null)); + return this._execAnchored$2(string, start); + }, + $isPattern: 1, + $isRegExp: 1 + }; + A._MatchImplementation.prototype = { + get$start() { + return this._match.index; + }, + get$end() { + var t1 = this._match; + return t1.index + t1[0].length; + }, + $isMatch: 1, + $isRegExpMatch: 1 + }; + A._AllMatchesIterable.prototype = { + get$iterator(_) { + return new A._AllMatchesIterator(this._re, this.__js_helper$_string, this.__js_helper$_start); + } + }; + A._AllMatchesIterator.prototype = { + get$current() { + var t1 = this.__js_helper$_current; + return t1 == null ? type$.RegExpMatch._as(t1) : t1; + }, + moveNext$0() { + var t1, t2, t3, match, nextIndex, t4, _this = this, + string = _this.__js_helper$_string; + if (string == null) + return false; + t1 = _this._nextIndex; + t2 = string.length; + if (t1 <= t2) { + t3 = _this._regExp; + match = t3._execGlobal$2(string, t1); + if (match != null) { + _this.__js_helper$_current = match; + nextIndex = match.get$end(); + if (match._match.index === nextIndex) { + t1 = false; + if (t3._nativeRegExp.unicode) { + t3 = _this._nextIndex; + t4 = t3 + 1; + if (t4 < t2) { + if (!(t3 >= 0 && t3 < t2)) + return A.ioore(string, t3); + t3 = string.charCodeAt(t3); + if (t3 >= 55296 && t3 <= 56319) { + if (!(t4 >= 0)) + return A.ioore(string, t4); + t1 = string.charCodeAt(t4); + t1 = t1 >= 56320 && t1 <= 57343; + } + } + } + nextIndex = (t1 ? nextIndex + 1 : nextIndex) + 1; + } + _this._nextIndex = nextIndex; + return true; + } + } + _this.__js_helper$_string = _this.__js_helper$_current = null; + return false; + }, + $isIterator: 1 + }; + A.StringMatch.prototype = { + get$end() { + return this.start + this.pattern.length; + }, + $isMatch: 1, + get$start() { + return this.start; + } + }; + A._StringAllMatchesIterable.prototype = { + get$iterator(_) { + return new A._StringAllMatchesIterator(this._input, this._pattern, this.__js_helper$_index); + } + }; + A._StringAllMatchesIterator.prototype = { + moveNext$0() { + var index, end, _this = this, + t1 = _this.__js_helper$_index, + t2 = _this._pattern, + t3 = t2.length, + t4 = _this._input, + t5 = t4.length; + if (t1 + t3 > t5) { + _this.__js_helper$_current = null; + return false; + } + index = t4.indexOf(t2, t1); + if (index < 0) { + _this.__js_helper$_index = t5 + 1; + _this.__js_helper$_current = null; + return false; + } + end = index + t3; + _this.__js_helper$_current = new A.StringMatch(index, t2); + _this.__js_helper$_index = end === _this.__js_helper$_index ? end + 1 : end; + return true; + }, + get$current() { + var t1 = this.__js_helper$_current; + t1.toString; + return t1; + }, + $isIterator: 1 + }; + A._Cell.prototype = { + _readLocal$0() { + var t1 = this._value; + if (t1 === this) + throw A.wrapException(new A.LateError("Local '" + this._name + "' has not been initialized.")); + return t1; + } + }; + A.NativeByteBuffer.prototype = { + get$runtimeType(receiver) { + return B.Type_ByteBuffer_rqD; + }, + $isTrustedGetRuntimeType: 1, + $isByteBuffer: 1 + }; + A.NativeTypedData.prototype = { + _invalidPosition$3(receiver, position, $length, $name) { + var t1 = A.RangeError$range(position, 0, $length, $name, null); + throw A.wrapException(t1); + }, + _checkPosition$3(receiver, position, $length, $name) { + if (position >>> 0 !== position || position > $length) + this._invalidPosition$3(receiver, position, $length, $name); + } + }; + A.NativeByteData.prototype = { + get$runtimeType(receiver) { + return B.Type_ByteData_9dB; + }, + $isTrustedGetRuntimeType: 1, + $isByteData: 1 + }; + A.NativeTypedArray.prototype = { + get$length(receiver) { + return receiver.length; + }, + _setRangeFast$4(receiver, start, end, source, skipCount) { + var count, sourceLength, + targetLength = receiver.length; + this._checkPosition$3(receiver, start, targetLength, "start"); + this._checkPosition$3(receiver, end, targetLength, "end"); + if (start > end) + throw A.wrapException(A.RangeError$range(start, 0, end, null, null)); + count = end - start; + if (skipCount < 0) + throw A.wrapException(A.ArgumentError$(skipCount, null)); + sourceLength = source.length; + if (sourceLength - skipCount < count) + throw A.wrapException(A.StateError$("Not enough elements")); + if (skipCount !== 0 || sourceLength !== count) + source = source.subarray(skipCount, skipCount + count); + receiver.set(source, start); + }, + $isJavaScriptIndexingBehavior: 1 + }; + A.NativeTypedArrayOfDouble.prototype = { + $index(receiver, index) { + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + $indexSet(receiver, index, value) { + A._asDouble(value); + receiver.$flags & 2 && A.throwUnsupportedOperation(receiver); + A._checkValidIndex(index, receiver, receiver.length); + receiver[index] = value; + }, + $isEfficientLengthIterable: 1, + $isIterable: 1, + $isList: 1 + }; + A.NativeTypedArrayOfInt.prototype = { + $indexSet(receiver, index, value) { + A._asInt(value); + receiver.$flags & 2 && A.throwUnsupportedOperation(receiver); + A._checkValidIndex(index, receiver, receiver.length); + receiver[index] = value; + }, + setRange$4(receiver, start, end, iterable, skipCount) { + type$.Iterable_int._as(iterable); + receiver.$flags & 2 && A.throwUnsupportedOperation(receiver, 5); + if (type$.NativeTypedArrayOfInt._is(iterable)) { + this._setRangeFast$4(receiver, start, end, iterable, skipCount); + return; + } + this.super$ListBase$setRange(receiver, start, end, iterable, skipCount); + }, + $isEfficientLengthIterable: 1, + $isIterable: 1, + $isList: 1 + }; + A.NativeFloat32List.prototype = { + get$runtimeType(receiver) { + return B.Type_Float32List_9Kz; + }, + $isTrustedGetRuntimeType: 1, + $isFloat32List: 1 + }; + A.NativeFloat64List.prototype = { + get$runtimeType(receiver) { + return B.Type_Float64List_9Kz; + }, + $isTrustedGetRuntimeType: 1, + $isFloat64List: 1 + }; + A.NativeInt16List.prototype = { + get$runtimeType(receiver) { + return B.Type_Int16List_s5h; + }, + $index(receiver, index) { + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + $isTrustedGetRuntimeType: 1, + $isInt16List: 1 + }; + A.NativeInt32List.prototype = { + get$runtimeType(receiver) { + return B.Type_Int32List_O8Z; + }, + $index(receiver, index) { + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + $isTrustedGetRuntimeType: 1, + $isInt32List: 1 + }; + A.NativeInt8List.prototype = { + get$runtimeType(receiver) { + return B.Type_Int8List_rFV; + }, + $index(receiver, index) { + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + $isTrustedGetRuntimeType: 1, + $isInt8List: 1 + }; + A.NativeUint16List.prototype = { + get$runtimeType(receiver) { + return B.Type_Uint16List_kmP; + }, + $index(receiver, index) { + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + $isTrustedGetRuntimeType: 1, + $isUint16List: 1 + }; + A.NativeUint32List.prototype = { + get$runtimeType(receiver) { + return B.Type_Uint32List_kmP; + }, + $index(receiver, index) { + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + $isTrustedGetRuntimeType: 1, + $isUint32List: 1 + }; + A.NativeUint8ClampedList.prototype = { + get$runtimeType(receiver) { + return B.Type_Uint8ClampedList_04U; + }, + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + $isTrustedGetRuntimeType: 1, + $isUint8ClampedList: 1 + }; + A.NativeUint8List.prototype = { + get$runtimeType(receiver) { + return B.Type_Uint8List_8Eb; + }, + get$length(receiver) { + return receiver.length; + }, + $index(receiver, index) { + A._checkValidIndex(index, receiver, receiver.length); + return receiver[index]; + }, + sublist$2(receiver, start, end) { + return new Uint8Array(receiver.subarray(start, A._checkValidRange(start, end, receiver.length))); + }, + $isTrustedGetRuntimeType: 1, + $isNativeUint8List: 1, + $isUint8List: 1 + }; + A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin.prototype = {}; + A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin.prototype = {}; + A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin.prototype = {}; + A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin.prototype = {}; + A.Rti.prototype = { + _eval$1(recipe) { + return A._Universe_evalInEnvironment(init.typeUniverse, this, recipe); + }, + _bind$1(typeOrTuple) { + return A._Universe_bind(init.typeUniverse, this, typeOrTuple); + } + }; + A._FunctionParameters.prototype = {}; + A._Type.prototype = { + toString$0(_) { + return A._rtiToString(this._rti, null); + } + }; + A._Error.prototype = { + toString$0(_) { + return this.__rti$_message; + } + }; + A._TypeError.prototype = {$isTypeError: 1}; + A._AsyncRun__initializeScheduleImmediate_internalCallback.prototype = { + call$1(__wc0_formal) { + var t1 = this._box_0, + f = t1.storedCallback; + t1.storedCallback = null; + f.call$0(); + }, + $signature: 9 + }; + A._AsyncRun__initializeScheduleImmediate_closure.prototype = { + call$1(callback) { + var t1, t2; + this._box_0.storedCallback = type$.void_Function._as(callback); + t1 = this.div; + t2 = this.span; + t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2); + }, + $signature: 39 + }; + A._AsyncRun__scheduleImmediateJsOverride_internalCallback.prototype = { + call$0() { + this.callback.call$0(); + }, + $signature: 2 + }; + A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback.prototype = { + call$0() { + this.callback.call$0(); + }, + $signature: 2 + }; + A._TimerImpl.prototype = { + _TimerImpl$2(milliseconds, callback) { + if (self.setTimeout != null) + self.setTimeout(A.convertDartClosureToJS(new A._TimerImpl_internalCallback(this, callback), 0), milliseconds); + else + throw A.wrapException(A.UnsupportedError$("`setTimeout()` not found.")); + }, + _TimerImpl$periodic$2(milliseconds, callback) { + if (self.setTimeout != null) + self.setInterval(A.convertDartClosureToJS(new A._TimerImpl$periodic_closure(this, milliseconds, Date.now(), callback), 0), milliseconds); + else + throw A.wrapException(A.UnsupportedError$("Periodic timer.")); + }, + $isTimer: 1 + }; + A._TimerImpl_internalCallback.prototype = { + call$0() { + this.$this._tick = 1; + this.callback.call$0(); + }, + $signature: 0 + }; + A._TimerImpl$periodic_closure.prototype = { + call$0() { + var duration, _this = this, + t1 = _this.$this, + tick = t1._tick + 1, + t2 = _this.milliseconds; + if (t2 > 0) { + duration = Date.now() - _this.start; + if (duration > (tick + 1) * t2) + tick = B.JSInt_methods.$tdiv(duration, t2); + } + t1._tick = tick; + _this.callback.call$1(t1); + }, + $signature: 2 + }; + A.AsyncError.prototype = { + toString$0(_) { + return A.S(this.error); + }, + $isError: 1, + get$stackTrace() { + return this.stackTrace; + } + }; + A._Completer.prototype = { + completeError$2(error, stackTrace) { + if ((this.future._async$_state & 30) !== 0) + throw A.wrapException(A.StateError$("Future already completed")); + this._completeErrorObject$1(A._interceptUserError(error, stackTrace)); + }, + completeError$1(error) { + return this.completeError$2(error, null); + }, + $isCompleter: 1 + }; + A._AsyncCompleter.prototype = { + complete$1(value) { + var t2, + t1 = this.$ti; + t1._eval$1("1/?")._as(value); + t2 = this.future; + if ((t2._async$_state & 30) !== 0) + throw A.wrapException(A.StateError$("Future already completed")); + t2._asyncComplete$1(t1._eval$1("1/")._as(value)); + }, + complete$0() { + return this.complete$1(null); + }, + _completeErrorObject$1(error) { + this.future._asyncCompleteErrorObject$1(error); + } + }; + A._SyncCompleter.prototype = { + complete$1(value) { + var t2, + t1 = this.$ti; + t1._eval$1("1/?")._as(value); + t2 = this.future; + if ((t2._async$_state & 30) !== 0) + throw A.wrapException(A.StateError$("Future already completed")); + t2._complete$1(t1._eval$1("1/")._as(value)); + }, + complete$0() { + return this.complete$1(null); + }, + _completeErrorObject$1(error) { + this.future._completeErrorObject$1(error); + } + }; + A._FutureListener.prototype = { + matchesErrorTest$1(asyncError) { + if ((this.state & 15) !== 6) + return true; + return this.result._zone.runUnary$2$2(type$.bool_Function_Object._as(this.callback), asyncError.error, type$.bool, type$.Object); + }, + handleError$1(asyncError) { + var exception, _this = this, + errorCallback = _this.errorCallback, + result = null, + t1 = type$.dynamic, + t2 = type$.Object, + t3 = asyncError.error, + t4 = _this.result._zone; + if (type$.dynamic_Function_Object_StackTrace._is(errorCallback)) + result = t4.runBinary$3$3(errorCallback, t3, asyncError.stackTrace, t1, t2, type$.StackTrace); + else + result = t4.runUnary$2$2(type$.dynamic_Function_Object._as(errorCallback), t3, t1, t2); + try { + t1 = _this.$ti._eval$1("2/")._as(result); + return t1; + } catch (exception) { + if (type$.TypeError._is(A.unwrapException(exception))) { + if ((_this.state & 1) !== 0) + throw A.wrapException(A.ArgumentError$("The error handler of Future.then must return a value of the returned future's type", "onError")); + throw A.wrapException(A.ArgumentError$("The error handler of Future.catchError must return a value of the future's type", "onError")); + } else + throw exception; + } + } + }; + A._Future.prototype = { + then$1$2$onError(f, onError, $R) { + var currentZone, result, t2, + t1 = this.$ti; + t1._bind$1($R)._eval$1("1/(2)")._as(f); + currentZone = $.Zone__current; + if (currentZone === B.C__RootZone) { + if (onError != null && !type$.dynamic_Function_Object_StackTrace._is(onError) && !type$.dynamic_Function_Object._is(onError)) + throw A.wrapException(A.ArgumentError$value(onError, "onError", string$.Error_)); + } else { + f = currentZone.registerUnaryCallback$2$1(f, $R._eval$1("0/"), t1._precomputed1); + if (onError != null) + onError = A._registerErrorHandler(onError, currentZone); + } + result = new A._Future($.Zone__current, $R._eval$1("_Future<0>")); + t2 = onError == null ? 1 : 3; + this._addListener$1(new A._FutureListener(result, t2, f, onError, t1._eval$1("@<1>")._bind$1($R)._eval$1("_FutureListener<1,2>"))); + return result; + }, + then$1$1(f, $R) { + return this.then$1$2$onError(f, null, $R); + }, + whenComplete$1(action) { + var t1, t2, result; + type$.dynamic_Function._as(action); + t1 = this.$ti; + t2 = $.Zone__current; + result = new A._Future(t2, t1); + if (t2 !== B.C__RootZone) + action = t2.registerCallback$1$1(action, type$.dynamic); + this._addListener$1(new A._FutureListener(result, 8, action, null, t1._eval$1("_FutureListener<1,1>"))); + return result; + }, + _setErrorObject$1(error) { + this._async$_state = this._async$_state & 1 | 16; + this._resultOrListeners = error; + }, + _cloneResult$1(source) { + this._async$_state = source._async$_state & 30 | this._async$_state & 1; + this._resultOrListeners = source._resultOrListeners; + }, + _addListener$1(listener) { + var source, _this = this, + t1 = _this._async$_state; + if (t1 <= 3) { + listener._nextListener = type$.nullable__FutureListener_dynamic_dynamic._as(_this._resultOrListeners); + _this._resultOrListeners = listener; + } else { + if ((t1 & 4) !== 0) { + source = type$._Future_dynamic._as(_this._resultOrListeners); + if ((source._async$_state & 24) === 0) { + source._addListener$1(listener); + return; + } + _this._cloneResult$1(source); + } + _this._zone.scheduleMicrotask$1(new A._Future__addListener_closure(_this, listener)); + } + }, + _prependListeners$1(listeners) { + var t1, existingListeners, next, cursor, next0, source, _this = this, _box_0 = {}; + _box_0.listeners = listeners; + if (listeners == null) + return; + t1 = _this._async$_state; + if (t1 <= 3) { + existingListeners = type$.nullable__FutureListener_dynamic_dynamic._as(_this._resultOrListeners); + _this._resultOrListeners = listeners; + if (existingListeners != null) { + next = listeners._nextListener; + for (cursor = listeners; next != null; cursor = next, next = next0) + next0 = next._nextListener; + cursor._nextListener = existingListeners; + } + } else { + if ((t1 & 4) !== 0) { + source = type$._Future_dynamic._as(_this._resultOrListeners); + if ((source._async$_state & 24) === 0) { + source._prependListeners$1(listeners); + return; + } + _this._cloneResult$1(source); + } + _box_0.listeners = _this._reverseListeners$1(listeners); + _this._zone.scheduleMicrotask$1(new A._Future__prependListeners_closure(_box_0, _this)); + } + }, + _removeListeners$0() { + var current = type$.nullable__FutureListener_dynamic_dynamic._as(this._resultOrListeners); + this._resultOrListeners = null; + return this._reverseListeners$1(current); + }, + _reverseListeners$1(listeners) { + var current, prev, next; + for (current = listeners, prev = null; current != null; prev = current, current = next) { + next = current._nextListener; + current._nextListener = prev; + } + return prev; + }, + _complete$1(value) { + var listeners, _this = this, + t1 = _this.$ti; + t1._eval$1("1/")._as(value); + if (t1._eval$1("Future<1>")._is(value)) + A._Future__chainCoreFuture(value, _this, true); + else { + listeners = _this._removeListeners$0(); + t1._precomputed1._as(value); + _this._async$_state = 8; + _this._resultOrListeners = value; + A._Future__propagateToListeners(_this, listeners); + } + }, + _completeWithValue$1(value) { + var listeners, _this = this; + _this.$ti._precomputed1._as(value); + listeners = _this._removeListeners$0(); + _this._async$_state = 8; + _this._resultOrListeners = value; + A._Future__propagateToListeners(_this, listeners); + }, + _completeWithResultOf$1(source) { + var t1, t2, listeners, _this = this; + if ((source._async$_state & 16) !== 0) { + t1 = _this._zone; + t2 = source._zone; + t1 = !(t1 === t2 || t1.get$errorZone() === t2.get$errorZone()); + } else + t1 = false; + if (t1) + return; + listeners = _this._removeListeners$0(); + _this._cloneResult$1(source); + A._Future__propagateToListeners(_this, listeners); + }, + _completeErrorObject$1(error) { + var listeners = this._removeListeners$0(); + this._setErrorObject$1(error); + A._Future__propagateToListeners(this, listeners); + }, + _completeError$2(error, stackTrace) { + A._asObject(error); + type$.StackTrace._as(stackTrace); + this._completeErrorObject$1(new A.AsyncError(error, stackTrace)); + }, + _asyncComplete$1(value) { + var t1 = this.$ti; + t1._eval$1("1/")._as(value); + if (t1._eval$1("Future<1>")._is(value)) { + this._chainFuture$1(value); + return; + } + this._asyncCompleteWithValue$1(value); + }, + _asyncCompleteWithValue$1(value) { + var _this = this; + _this.$ti._precomputed1._as(value); + _this._async$_state ^= 2; + _this._zone.scheduleMicrotask$1(new A._Future__asyncCompleteWithValue_closure(_this, value)); + }, + _chainFuture$1(value) { + A._Future__chainCoreFuture(this.$ti._eval$1("Future<1>")._as(value), this, false); + return; + }, + _asyncCompleteErrorObject$1(error) { + this._async$_state ^= 2; + this._zone.scheduleMicrotask$1(new A._Future__asyncCompleteErrorObject_closure(this, error)); + }, + $isFuture: 1 + }; + A._Future__addListener_closure.prototype = { + call$0() { + A._Future__propagateToListeners(this.$this, this.listener); + }, + $signature: 0 + }; + A._Future__prependListeners_closure.prototype = { + call$0() { + A._Future__propagateToListeners(this.$this, this._box_0.listeners); + }, + $signature: 0 + }; + A._Future__chainCoreFuture_closure.prototype = { + call$0() { + A._Future__chainCoreFuture(this._box_0.source, this.target, true); + }, + $signature: 0 + }; + A._Future__asyncCompleteWithValue_closure.prototype = { + call$0() { + this.$this._completeWithValue$1(this.value); + }, + $signature: 0 + }; + A._Future__asyncCompleteErrorObject_closure.prototype = { + call$0() { + this.$this._completeErrorObject$1(this.error); + }, + $signature: 0 + }; + A._Future__propagateToListeners_handleWhenCompleteCallback.prototype = { + call$0() { + var e, s, t1, exception, t2, t3, originalSource, joinedResult, _this = this, completeResult = null; + try { + t1 = _this._box_0.listener; + completeResult = t1.result._zone.run$1$1(type$.dynamic_Function._as(t1.callback), type$.dynamic); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + if (_this.hasError && type$.AsyncError._as(_this._box_1.source._resultOrListeners).error === e) { + t1 = _this._box_0; + t1.listenerValueOrError = type$.AsyncError._as(_this._box_1.source._resultOrListeners); + } else { + t1 = e; + t2 = s; + if (t2 == null) + t2 = A.AsyncError_defaultStackTrace(t1); + t3 = _this._box_0; + t3.listenerValueOrError = new A.AsyncError(t1, t2); + t1 = t3; + } + t1.listenerHasError = true; + return; + } + if (completeResult instanceof A._Future && (completeResult._async$_state & 24) !== 0) { + if ((completeResult._async$_state & 16) !== 0) { + t1 = _this._box_0; + t1.listenerValueOrError = type$.AsyncError._as(completeResult._resultOrListeners); + t1.listenerHasError = true; + } + return; + } + if (completeResult instanceof A._Future) { + originalSource = _this._box_1.source; + joinedResult = new A._Future(originalSource._zone, originalSource.$ti); + completeResult.then$1$2$onError(new A._Future__propagateToListeners_handleWhenCompleteCallback_closure(joinedResult, originalSource), new A._Future__propagateToListeners_handleWhenCompleteCallback_closure0(joinedResult), type$.void); + t1 = _this._box_0; + t1.listenerValueOrError = joinedResult; + t1.listenerHasError = false; + } + }, + $signature: 0 + }; + A._Future__propagateToListeners_handleWhenCompleteCallback_closure.prototype = { + call$1(__wc0_formal) { + this.joinedResult._completeWithResultOf$1(this.originalSource); + }, + $signature: 9 + }; + A._Future__propagateToListeners_handleWhenCompleteCallback_closure0.prototype = { + call$2(e, s) { + A._asObject(e); + type$.StackTrace._as(s); + this.joinedResult._completeErrorObject$1(new A.AsyncError(e, s)); + }, + $signature: 34 + }; + A._Future__propagateToListeners_handleValueCallback.prototype = { + call$0() { + var e, s, t1, t2, t3, t4, t5, exception; + try { + t1 = this._box_0; + t2 = t1.listener; + t3 = t2.$ti; + t4 = t3._precomputed1; + t5 = t4._as(this.sourceResult); + t1.listenerValueOrError = t2.result._zone.runUnary$2$2(t3._eval$1("2/(1)")._as(t2.callback), t5, t3._eval$1("2/"), t4); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + t1 = e; + t2 = s; + if (t2 == null) + t2 = A.AsyncError_defaultStackTrace(t1); + t3 = this._box_0; + t3.listenerValueOrError = new A.AsyncError(t1, t2); + t3.listenerHasError = true; + } + }, + $signature: 0 + }; + A._Future__propagateToListeners_handleError.prototype = { + call$0() { + var asyncError, e, s, t1, exception, t2, t3, _this = this; + try { + asyncError = type$.AsyncError._as(_this._box_1.source._resultOrListeners); + t1 = _this._box_0; + if (t1.listener.matchesErrorTest$1(asyncError) && t1.listener.errorCallback != null) { + t1.listenerValueOrError = t1.listener.handleError$1(asyncError); + t1.listenerHasError = false; + } + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + t1 = type$.AsyncError._as(_this._box_1.source._resultOrListeners); + if (t1.error === e) { + t2 = _this._box_0; + t2.listenerValueOrError = t1; + t1 = t2; + } else { + t1 = e; + t2 = s; + if (t2 == null) + t2 = A.AsyncError_defaultStackTrace(t1); + t3 = _this._box_0; + t3.listenerValueOrError = new A.AsyncError(t1, t2); + t1 = t3; + } + t1.listenerHasError = true; + } + }, + $signature: 0 + }; + A._AsyncCallbackEntry.prototype = {}; + A.Stream.prototype = { + pipe$1(streamConsumer) { + A._instanceType(this)._eval$1("StreamConsumer")._as(streamConsumer); + return streamConsumer.addStream$1(this).then$1$1(new A.Stream_pipe_closure(streamConsumer), type$.dynamic); + }, + get$length(_) { + var t1 = {}, + future = new A._Future($.Zone__current, type$._Future_int); + t1.count = 0; + this.listen$4$cancelOnError$onDone$onError(new A.Stream_length_closure(t1, this), true, new A.Stream_length_closure0(t1, future), future.get$_completeError()); + return future; + } + }; + A.Stream_pipe_closure.prototype = { + call$1(__wc0_formal) { + return this.streamConsumer.close$0(); + }, + $signature: 38 + }; + A.Stream_length_closure.prototype = { + call$1(__wc0_formal) { + A._instanceType(this.$this)._eval$1("Stream.T")._as(__wc0_formal); + ++this._box_0.count; + }, + $signature() { + return A._instanceType(this.$this)._eval$1("~(Stream.T)"); + } + }; + A.Stream_length_closure0.prototype = { + call$0() { + this.future._complete$1(this._box_0.count); + }, + $signature: 0 + }; + A._StreamController.prototype = { + get$_pendingEvents() { + var t1, _this = this; + if ((_this._async$_state & 8) === 0) + return A._instanceType(_this)._eval$1("_PendingEvents<1>?")._as(_this._varData); + t1 = A._instanceType(_this); + return t1._eval$1("_PendingEvents<1>?")._as(t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData)._varData); + }, + _ensurePendingEvents$0() { + var events, t1, state, _this = this; + if ((_this._async$_state & 8) === 0) { + events = _this._varData; + if (events == null) + events = _this._varData = new A._PendingEvents(A._instanceType(_this)._eval$1("_PendingEvents<1>")); + return A._instanceType(_this)._eval$1("_PendingEvents<1>")._as(events); + } + t1 = A._instanceType(_this); + state = t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData); + events = state._varData; + if (events == null) + events = state._varData = new A._PendingEvents(t1._eval$1("_PendingEvents<1>")); + return t1._eval$1("_PendingEvents<1>")._as(events); + }, + get$_async$_subscription() { + var varData = this._varData; + if ((this._async$_state & 8) !== 0) + varData = type$._StreamControllerAddStreamState_nullable_Object._as(varData)._varData; + return A._instanceType(this)._eval$1("_ControllerSubscription<1>")._as(varData); + }, + _badEventState$0() { + if ((this._async$_state & 4) !== 0) + return new A.StateError("Cannot add event after closing"); + return new A.StateError("Cannot add event while adding a stream"); + }, + _ensureDoneFuture$0() { + var t1 = this._doneFuture; + if (t1 == null) + t1 = this._doneFuture = (this._async$_state & 2) !== 0 ? $.$get$Future__nullFuture() : new A._Future($.Zone__current, type$._Future_void); + return t1; + }, + add$1(_, value) { + var _this = this; + A._instanceType(_this)._precomputed1._as(value); + if (_this._async$_state >= 4) + throw A.wrapException(_this._badEventState$0()); + _this._add$1(value); + }, + addError$2(error, stackTrace) { + var _0_0; + A._asObject(error); + type$.nullable_StackTrace._as(stackTrace); + if (this._async$_state >= 4) + throw A.wrapException(this._badEventState$0()); + _0_0 = A._interceptUserError(error, stackTrace); + this._async$_addError$2(_0_0.error, _0_0.stackTrace); + }, + addError$1(error) { + return this.addError$2(error, null); + }, + close$0() { + var _this = this, + t1 = _this._async$_state; + if ((t1 & 4) !== 0) + return _this._ensureDoneFuture$0(); + if (t1 >= 4) + throw A.wrapException(_this._badEventState$0()); + t1 = _this._async$_state = t1 | 4; + if ((t1 & 1) !== 0) + _this._sendDone$0(); + else if ((t1 & 3) === 0) + _this._ensurePendingEvents$0().add$1(0, B.C__DelayedDone); + return _this._ensureDoneFuture$0(); + }, + _add$1(value) { + var t2, _this = this, + t1 = A._instanceType(_this); + t1._precomputed1._as(value); + t2 = _this._async$_state; + if ((t2 & 1) !== 0) + _this._sendData$1(value); + else if ((t2 & 3) === 0) + _this._ensurePendingEvents$0().add$1(0, new A._DelayedData(value, t1._eval$1("_DelayedData<1>"))); + }, + _async$_addError$2(error, stackTrace) { + var t1 = this._async$_state; + if ((t1 & 1) !== 0) + this._sendError$2(error, stackTrace); + else if ((t1 & 3) === 0) + this._ensurePendingEvents$0().add$1(0, new A._DelayedError(error, stackTrace)); + }, + _subscribe$4(onData, onError, onDone, cancelOnError) { + var t2, t3, t4, t5, t6, t7, subscription, pendingEvents, addState, _this = this, + t1 = A._instanceType(_this); + t1._eval$1("~(1)?")._as(onData); + type$.nullable_void_Function._as(onDone); + if ((_this._async$_state & 3) !== 0) + throw A.wrapException(A.StateError$("Stream has already been listened to.")); + t2 = $.Zone__current; + t3 = cancelOnError ? 1 : 0; + t4 = onError != null ? 32 : 0; + t5 = A._BufferingStreamSubscription__registerDataHandler(t2, onData, t1._precomputed1); + t6 = A._BufferingStreamSubscription__registerErrorHandler(t2, onError); + t7 = onDone == null ? A.async___nullDoneHandler$closure() : onDone; + subscription = new A._ControllerSubscription(_this, t5, t6, t2.registerCallback$1$1(t7, type$.void), t2, t3 | t4, t1._eval$1("_ControllerSubscription<1>")); + pendingEvents = _this.get$_pendingEvents(); + if (((_this._async$_state |= 1) & 8) !== 0) { + addState = t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData); + addState._varData = subscription; + addState.addSubscription.resume$0(); + } else + _this._varData = subscription; + subscription._setPendingEvents$1(pendingEvents); + subscription._guardCallback$1(new A._StreamController__subscribe_closure(_this)); + return subscription; + }, + _recordCancel$1(subscription) { + var result, onCancel, cancelResult, e, s, exception, result0, t2, _this = this, + t1 = A._instanceType(_this); + t1._eval$1("StreamSubscription<1>")._as(subscription); + result = null; + if ((_this._async$_state & 8) !== 0) + result = t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData).cancel$0(); + _this._varData = null; + _this._async$_state = _this._async$_state & 4294967286 | 2; + onCancel = _this.onCancel; + if (onCancel != null) + if (result == null) + try { + cancelResult = onCancel.call$0(); + if (cancelResult instanceof A._Future) + result = cancelResult; + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + result0 = new A._Future($.Zone__current, type$._Future_void); + t1 = A._asObject(e); + t2 = type$.StackTrace._as(s); + result0._asyncCompleteErrorObject$1(new A.AsyncError(t1, t2)); + result = result0; + } + else + result = result.whenComplete$1(onCancel); + t1 = new A._StreamController__recordCancel_complete(_this); + if (result != null) + result = result.whenComplete$1(t1); + else + t1.call$0(); + return result; + }, + $isStreamConsumer: 1, + $isStreamSink: 1, + $isStreamController: 1, + $is_StreamControllerLifecycle: 1, + $is_EventDispatch: 1 + }; + A._StreamController__subscribe_closure.prototype = { + call$0() { + A._runGuarded(this.$this.onListen); + }, + $signature: 0 + }; + A._StreamController__recordCancel_complete.prototype = { + call$0() { + var doneFuture = this.$this._doneFuture; + if (doneFuture != null && (doneFuture._async$_state & 30) === 0) + doneFuture._asyncComplete$1(null); + }, + $signature: 0 + }; + A._SyncStreamControllerDispatch.prototype = { + _sendData$1(data) { + this.$ti._precomputed1._as(data); + this.get$_async$_subscription()._add$1(data); + }, + _sendError$2(error, stackTrace) { + this.get$_async$_subscription()._async$_addError$2(error, stackTrace); + }, + _sendDone$0() { + this.get$_async$_subscription()._close$0(); + } + }; + A._SyncStreamController.prototype = {}; + A._ControllerStream.prototype = { + get$hashCode(_) { + return (A.Primitives_objectHashCode(this._controller) ^ 892482866) >>> 0; + }, + $eq(_, other) { + if (other == null) + return false; + if (this === other) + return true; + return other instanceof A._ControllerStream && other._controller === this._controller; + } + }; + A._ControllerSubscription.prototype = { + _onCancel$0() { + return this._controller._recordCancel$1(this); + }, + _onPause$0() { + var t1 = this._controller, + t2 = A._instanceType(t1); + t2._eval$1("StreamSubscription<1>")._as(this); + if ((t1._async$_state & 8) !== 0) + t2._eval$1("_StreamControllerAddStreamState<1>")._as(t1._varData).addSubscription.pause$0(); + A._runGuarded(t1.onPause); + }, + _onResume$0() { + var t1 = this._controller, + t2 = A._instanceType(t1); + t2._eval$1("StreamSubscription<1>")._as(this); + if ((t1._async$_state & 8) !== 0) + t2._eval$1("_StreamControllerAddStreamState<1>")._as(t1._varData).addSubscription.resume$0(); + A._runGuarded(t1.onResume); + } + }; + A._StreamSinkWrapper.prototype = { + add$1(_, data) { + this._target.add$1(0, this.$ti._precomputed1._as(data)); + }, + $isStreamConsumer: 1, + $isStreamSink: 1 + }; + A._AddStreamState_cancel_closure.prototype = { + call$0() { + this.$this.addStreamFuture._asyncComplete$1(null); + }, + $signature: 2 + }; + A._BufferingStreamSubscription.prototype = { + _setPendingEvents$1(pendingEvents) { + var _this = this; + A._instanceType(_this)._eval$1("_PendingEvents<_BufferingStreamSubscription.T>?")._as(pendingEvents); + if (pendingEvents == null) + return; + _this._pending = pendingEvents; + if (pendingEvents.lastPendingEvent != null) { + _this._async$_state = (_this._async$_state | 128) >>> 0; + pendingEvents.schedule$1(_this); + } + }, + onData$1(handleData) { + var t1 = A._instanceType(this); + this._onData = A._BufferingStreamSubscription__registerDataHandler(this._zone, t1._eval$1("~(_BufferingStreamSubscription.T)?")._as(handleData), t1._eval$1("_BufferingStreamSubscription.T")); + }, + onError$1(handleError) { + var _this = this, + t1 = _this._async$_state; + if (handleError == null) + _this._async$_state = (t1 & 4294967263) >>> 0; + else + _this._async$_state = (t1 | 32) >>> 0; + _this._onError = A._BufferingStreamSubscription__registerErrorHandler(_this._zone, handleError); + }, + cancel$0() { + var _this = this, + t1 = (_this._async$_state & 4294967279) >>> 0; + _this._async$_state = t1; + if ((t1 & 8) === 0) + _this._cancel$0(); + t1 = _this._cancelFuture; + return t1 == null ? $.$get$Future__nullFuture() : t1; + }, + _cancel$0() { + var t2, _this = this, + t1 = _this._async$_state = (_this._async$_state | 8) >>> 0; + if ((t1 & 128) !== 0) { + t2 = _this._pending; + if (t2._async$_state === 1) + t2._async$_state = 3; + } + if ((t1 & 64) === 0) + _this._pending = null; + _this._cancelFuture = _this._onCancel$0(); + }, + _add$1(data) { + var t2, _this = this, + t1 = A._instanceType(_this); + t1._eval$1("_BufferingStreamSubscription.T")._as(data); + t2 = _this._async$_state; + if ((t2 & 8) !== 0) + return; + if (t2 < 64) + _this._sendData$1(data); + else + _this._addPending$1(new A._DelayedData(data, t1._eval$1("_DelayedData<_BufferingStreamSubscription.T>"))); + }, + _async$_addError$2(error, stackTrace) { + var t1; + if (type$.Error._is(error)) + A.Primitives_trySetStackTrace(error, stackTrace); + t1 = this._async$_state; + if ((t1 & 8) !== 0) + return; + if (t1 < 64) + this._sendError$2(error, stackTrace); + else + this._addPending$1(new A._DelayedError(error, stackTrace)); + }, + _close$0() { + var _this = this, + t1 = _this._async$_state; + if ((t1 & 8) !== 0) + return; + t1 = (t1 | 2) >>> 0; + _this._async$_state = t1; + if (t1 < 64) + _this._sendDone$0(); + else + _this._addPending$1(B.C__DelayedDone); + }, + _onPause$0() { + }, + _onResume$0() { + }, + _onCancel$0() { + return null; + }, + _addPending$1($event) { + var t1, _this = this, + pending = _this._pending; + if (pending == null) + pending = _this._pending = new A._PendingEvents(A._instanceType(_this)._eval$1("_PendingEvents<_BufferingStreamSubscription.T>")); + pending.add$1(0, $event); + t1 = _this._async$_state; + if ((t1 & 128) === 0) { + t1 = (t1 | 128) >>> 0; + _this._async$_state = t1; + if (t1 < 256) + pending.schedule$1(_this); + } + }, + _sendData$1(data) { + var t2, _this = this, + t1 = A._instanceType(_this)._eval$1("_BufferingStreamSubscription.T"); + t1._as(data); + t2 = _this._async$_state; + _this._async$_state = (t2 | 64) >>> 0; + _this._zone.runUnaryGuarded$1$2(_this._onData, data, t1); + _this._async$_state = (_this._async$_state & 4294967231) >>> 0; + _this._checkState$1((t2 & 4) !== 0); + }, + _sendError$2(error, stackTrace) { + var cancelFuture, _this = this, + t1 = _this._async$_state, + t2 = new A._BufferingStreamSubscription__sendError_sendError(_this, error, stackTrace); + if ((t1 & 1) !== 0) { + _this._async$_state = (t1 | 16) >>> 0; + _this._cancel$0(); + cancelFuture = _this._cancelFuture; + if (cancelFuture != null && cancelFuture !== $.$get$Future__nullFuture()) + cancelFuture.whenComplete$1(t2); + else + t2.call$0(); + } else { + t2.call$0(); + _this._checkState$1((t1 & 4) !== 0); + } + }, + _sendDone$0() { + var cancelFuture, _this = this, + t1 = new A._BufferingStreamSubscription__sendDone_sendDone(_this); + _this._cancel$0(); + _this._async$_state = (_this._async$_state | 16) >>> 0; + cancelFuture = _this._cancelFuture; + if (cancelFuture != null && cancelFuture !== $.$get$Future__nullFuture()) + cancelFuture.whenComplete$1(t1); + else + t1.call$0(); + }, + _guardCallback$1(callback) { + var t1, _this = this; + type$.void_Function._as(callback); + t1 = _this._async$_state; + _this._async$_state = (t1 | 64) >>> 0; + callback.call$0(); + _this._async$_state = (_this._async$_state & 4294967231) >>> 0; + _this._checkState$1((t1 & 4) !== 0); + }, + _checkState$1(wasInputPaused) { + var t2, isInputPaused, _this = this, + t1 = _this._async$_state; + if ((t1 & 128) !== 0 && _this._pending.lastPendingEvent == null) { + t1 = _this._async$_state = (t1 & 4294967167) >>> 0; + t2 = false; + if ((t1 & 4) !== 0) + if (t1 < 256) { + t2 = _this._pending; + t2 = t2 == null ? null : t2.lastPendingEvent == null; + t2 = t2 !== false; + } + if (t2) { + t1 = (t1 & 4294967291) >>> 0; + _this._async$_state = t1; + } + } + for (;; wasInputPaused = isInputPaused) { + if ((t1 & 8) !== 0) { + _this._pending = null; + return; + } + isInputPaused = (t1 & 4) !== 0; + if (wasInputPaused === isInputPaused) + break; + _this._async$_state = (t1 ^ 64) >>> 0; + if (isInputPaused) + _this._onPause$0(); + else + _this._onResume$0(); + t1 = (_this._async$_state & 4294967231) >>> 0; + _this._async$_state = t1; + } + if ((t1 & 128) !== 0 && t1 < 256) + _this._pending.schedule$1(_this); + }, + $isStreamSubscription: 1, + $is_EventDispatch: 1 + }; + A._BufferingStreamSubscription__sendError_sendError.prototype = { + call$0() { + var onError, t3, t4, + t1 = this.$this, + t2 = t1._async$_state; + if ((t2 & 8) !== 0 && (t2 & 16) === 0) + return; + t1._async$_state = (t2 | 64) >>> 0; + onError = t1._onError; + t2 = this.error; + t3 = type$.Object; + t4 = t1._zone; + if (type$.void_Function_Object_StackTrace._is(onError)) + t4.runBinaryGuarded$2$3(onError, t2, this.stackTrace, t3, type$.StackTrace); + else + t4.runUnaryGuarded$1$2(type$.void_Function_Object._as(onError), t2, t3); + t1._async$_state = (t1._async$_state & 4294967231) >>> 0; + }, + $signature: 0 + }; + A._BufferingStreamSubscription__sendDone_sendDone.prototype = { + call$0() { + var t1 = this.$this, + t2 = t1._async$_state; + if ((t2 & 16) === 0) + return; + t1._async$_state = (t2 | 74) >>> 0; + t1._zone.runGuarded$1(t1._onDone); + t1._async$_state = (t1._async$_state & 4294967231) >>> 0; + }, + $signature: 0 + }; + A._StreamImpl.prototype = { + listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, onError) { + var t1 = this.$ti; + t1._eval$1("~(1)?")._as(onData); + type$.nullable_void_Function._as(onDone); + return this._controller._subscribe$4(t1._eval$1("~(1)?")._as(onData), onError, onDone, cancelOnError === true); + }, + listen$1(onData) { + return this.listen$4$cancelOnError$onDone$onError(onData, null, null, null); + }, + listen$3$onDone$onError(onData, onDone, onError) { + return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError); + }, + listen$2$onDone(onData, onDone) { + return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, null); + }, + listen$3$cancelOnError$onDone(onData, cancelOnError, onDone) { + return this.listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, null); + } + }; + A._DelayedEvent.prototype = { + set$next(next) { + this.next = type$.nullable__DelayedEvent_dynamic._as(next); + }, + get$next() { + return this.next; + } + }; + A._DelayedData.prototype = { + perform$1(dispatch) { + this.$ti._eval$1("_EventDispatch<1>")._as(dispatch)._sendData$1(this.value); + } + }; + A._DelayedError.prototype = { + perform$1(dispatch) { + dispatch._sendError$2(this.error, this.stackTrace); + } + }; + A._DelayedDone.prototype = { + perform$1(dispatch) { + dispatch._sendDone$0(); + }, + get$next() { + return null; + }, + set$next(__wc0_formal) { + throw A.wrapException(A.StateError$("No events after a done.")); + }, + $is_DelayedEvent: 1 + }; + A._PendingEvents.prototype = { + schedule$1(dispatch) { + var t1, _this = this; + _this.$ti._eval$1("_EventDispatch<1>")._as(dispatch); + t1 = _this._async$_state; + if (t1 === 1) + return; + if (t1 >= 1) { + _this._async$_state = 1; + return; + } + A.scheduleMicrotask(new A._PendingEvents_schedule_closure(_this, dispatch)); + _this._async$_state = 1; + }, + add$1(_, $event) { + var _this = this, + lastEvent = _this.lastPendingEvent; + if (lastEvent == null) + _this.firstPendingEvent = _this.lastPendingEvent = $event; + else { + lastEvent.set$next($event); + _this.lastPendingEvent = $event; + } + } + }; + A._PendingEvents_schedule_closure.prototype = { + call$0() { + var t2, $event, nextEvent, + t1 = this.$this, + oldState = t1._async$_state; + t1._async$_state = 0; + if (oldState === 3) + return; + t2 = t1.$ti._eval$1("_EventDispatch<1>")._as(this.dispatch); + $event = t1.firstPendingEvent; + nextEvent = $event.get$next(); + t1.firstPendingEvent = nextEvent; + if (nextEvent == null) + t1.lastPendingEvent = null; + $event.perform$1(t2); + }, + $signature: 0 + }; + A._DoneStreamSubscription.prototype = { + onData$1(handleData) { + this.$ti._eval$1("~(1)?")._as(handleData); + }, + onError$1(handleError) { + }, + cancel$0() { + this._async$_state = -1; + this._onDone = null; + return $.$get$Future__nullFuture(); + }, + _onMicrotask$0() { + var _0_0, _this = this, + unscheduledState = _this._async$_state - 1; + if (unscheduledState === 0) { + _this._async$_state = -1; + _0_0 = _this._onDone; + if (_0_0 != null) { + _this._onDone = null; + _this._zone.runGuarded$1(_0_0); + } + } else + _this._async$_state = unscheduledState; + }, + $isStreamSubscription: 1 + }; + A._EmptyStream.prototype = { + listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, onError) { + var t2, + t1 = this.$ti; + t1._eval$1("~(1)?")._as(onData); + type$.nullable_void_Function._as(onDone); + t2 = $.Zone__current; + t1 = new A._DoneStreamSubscription(t2, t1._eval$1("_DoneStreamSubscription<1>")); + A.scheduleMicrotask(t1.get$_onMicrotask()); + if (onDone != null) + t1._onDone = t2.registerCallback$1$1(onDone, type$.void); + return t1; + }, + listen$1(onData) { + return this.listen$4$cancelOnError$onDone$onError(onData, null, null, null); + }, + listen$3$onDone$onError(onData, onDone, onError) { + return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError); + }, + listen$3$cancelOnError$onDone(onData, cancelOnError, onDone) { + return this.listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, null); + } + }; + A._ZoneFunction.prototype = {}; + A._Zone.prototype = { + _processUncaughtError$3(zone, error, stackTrace) { + var implZone, handler, parentDelegate, parentZone, currentZone, e, s, implementation, t1, exception; + type$.StackTrace._as(stackTrace); + implementation = this.get$_handleUncaughtError(); + implZone = implementation.zone; + if (implZone === B.C__RootZone) { + A._rootHandleError(error, stackTrace); + return; + } + handler = implementation.$function; + parentDelegate = implZone.get$_parentDelegate(); + t1 = implZone.get$parent(); + t1.toString; + parentZone = t1; + currentZone = $.Zone__current; + try { + $.Zone__current = parentZone; + handler.call$5(implZone, parentDelegate, zone, error, stackTrace); + $.Zone__current = currentZone; + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + $.Zone__current = currentZone; + t1 = error === e ? stackTrace : s; + parentZone._processUncaughtError$3(implZone, e, t1); + } + }, + $isZone: 1 + }; + A._CustomZone.prototype = { + get$_delegate() { + var t1 = this._delegateCache; + return t1 == null ? this._delegateCache = new A._ZoneDelegate(this) : t1; + }, + get$_parentDelegate() { + return this.parent.get$_delegate(); + }, + get$errorZone() { + return this._handleUncaughtError.zone; + }, + runGuarded$1(f) { + var e, s, exception; + type$.void_Function._as(f); + try { + this.run$1$1(f, type$.void); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + this._processUncaughtError$3(this, A._asObject(e), type$.StackTrace._as(s)); + } + }, + runUnaryGuarded$1$2(f, arg, $T) { + var e, s, exception; + $T._eval$1("~(0)")._as(f); + $T._as(arg); + try { + this.runUnary$2$2(f, arg, type$.void, $T); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + this._processUncaughtError$3(this, A._asObject(e), type$.StackTrace._as(s)); + } + }, + runBinaryGuarded$2$3(f, arg1, arg2, $T1, $T2) { + var e, s, exception; + $T1._eval$1("@<0>")._bind$1($T2)._eval$1("~(1,2)")._as(f); + $T1._as(arg1); + $T2._as(arg2); + try { + this.runBinary$3$3(f, arg1, arg2, type$.void, $T1, $T2); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + this._processUncaughtError$3(this, A._asObject(e), type$.StackTrace._as(s)); + } + }, + bindCallback$1$1(f, $R) { + return new A._CustomZone_bindCallback_closure(this, this.registerCallback$1$1($R._eval$1("0()")._as(f), $R), $R); + }, + bindUnaryCallback$2$1(f, $R, $T) { + return new A._CustomZone_bindUnaryCallback_closure(this, this.registerUnaryCallback$2$1($R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f), $R, $T), $T, $R); + }, + bindCallbackGuarded$1(f) { + return new A._CustomZone_bindCallbackGuarded_closure(this, this.registerCallback$1$1(type$.void_Function._as(f), type$.void)); + }, + bindUnaryCallbackGuarded$1$1(f, $T) { + return new A._CustomZone_bindUnaryCallbackGuarded_closure(this, this.registerUnaryCallback$2$1($T._eval$1("~(0)")._as(f), type$.void, $T), $T); + }, + handleUncaughtError$2(error, stackTrace) { + this._processUncaughtError$3(this, error, type$.StackTrace._as(stackTrace)); + }, + fork$2$specification$zoneValues(specification, zoneValues) { + var implementation = this._fork, + t1 = implementation.zone; + return implementation.$function.call$5(t1, t1.get$_parentDelegate(), this, specification, zoneValues); + }, + run$1$1(f, $R) { + var implementation, t1; + $R._eval$1("0()")._as(f); + implementation = this._run; + t1 = implementation.zone; + return implementation.$function.call$1$4(t1, t1.get$_parentDelegate(), this, f, $R); + }, + runUnary$2$2(f, arg, $R, $T) { + var implementation, t1; + $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f); + $T._as(arg); + implementation = this._runUnary; + t1 = implementation.zone; + return implementation.$function.call$2$5(t1, t1.get$_parentDelegate(), this, f, arg, $R, $T); + }, + runBinary$3$3(f, arg1, arg2, $R, $T1, $T2) { + var implementation, t1; + $R._eval$1("@<0>")._bind$1($T1)._bind$1($T2)._eval$1("1(2,3)")._as(f); + $T1._as(arg1); + $T2._as(arg2); + implementation = this._runBinary; + t1 = implementation.zone; + return implementation.$function.call$3$6(t1, t1.get$_parentDelegate(), this, f, arg1, arg2, $R, $T1, $T2); + }, + registerCallback$1$1(callback, $R) { + var implementation, t1; + $R._eval$1("0()")._as(callback); + implementation = this._registerCallback; + t1 = implementation.zone; + return implementation.$function.call$1$4(t1, t1.get$_parentDelegate(), this, callback, $R); + }, + registerUnaryCallback$2$1(callback, $R, $T) { + var implementation, t1; + $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(callback); + implementation = this._registerUnaryCallback; + t1 = implementation.zone; + return implementation.$function.call$2$4(t1, t1.get$_parentDelegate(), this, callback, $R, $T); + }, + registerBinaryCallback$3$1(callback, $R, $T1, $T2) { + var implementation, t1; + $R._eval$1("@<0>")._bind$1($T1)._bind$1($T2)._eval$1("1(2,3)")._as(callback); + implementation = this._registerBinaryCallback; + t1 = implementation.zone; + return implementation.$function.call$3$4(t1, t1.get$_parentDelegate(), this, callback, $R, $T1, $T2); + }, + errorCallback$2(error, stackTrace) { + var implementation = this._errorCallback, + implementationZone = implementation.zone; + if (implementationZone === B.C__RootZone) + return null; + return implementation.$function.call$5(implementationZone, implementationZone.get$_parentDelegate(), this, error, stackTrace); + }, + scheduleMicrotask$1(f) { + var implementation, t1; + type$.void_Function._as(f); + implementation = this._scheduleMicrotask; + t1 = implementation.zone; + return implementation.$function.call$4(t1, t1.get$_parentDelegate(), this, f); + }, + createPeriodicTimer$2(duration, f) { + var implementation, t1; + type$.void_Function_Timer._as(f); + implementation = this._createPeriodicTimer; + t1 = implementation.zone; + return implementation.$function.call$5(t1, t1.get$_parentDelegate(), this, duration, f); + }, + get$_run() { + return this._run; + }, + get$_runUnary() { + return this._runUnary; + }, + get$_runBinary() { + return this._runBinary; + }, + get$_registerCallback() { + return this._registerCallback; + }, + get$_registerUnaryCallback() { + return this._registerUnaryCallback; + }, + get$_registerBinaryCallback() { + return this._registerBinaryCallback; + }, + get$_errorCallback() { + return this._errorCallback; + }, + get$_scheduleMicrotask() { + return this._scheduleMicrotask; + }, + get$_createTimer() { + return this._createTimer; + }, + get$_createPeriodicTimer() { + return this._createPeriodicTimer; + }, + get$_print() { + return this._print; + }, + get$_fork() { + return this._fork; + }, + get$_handleUncaughtError() { + return this._handleUncaughtError; + }, + get$parent() { + return this.parent; + }, + get$_map() { + return this._map; + } + }; + A._CustomZone_bindCallback_closure.prototype = { + call$0() { + return this.$this.run$1$1(this.registered, this.R); + }, + $signature() { + return this.R._eval$1("0()"); + } + }; + A._CustomZone_bindUnaryCallback_closure.prototype = { + call$1(arg) { + var _this = this, + t1 = _this.T; + return _this.$this.runUnary$2$2(_this.registered, t1._as(arg), _this.R, t1); + }, + $signature() { + return this.R._eval$1("@<0>")._bind$1(this.T)._eval$1("1(2)"); + } + }; + A._CustomZone_bindCallbackGuarded_closure.prototype = { + call$0() { + return this.$this.runGuarded$1(this.registered); + }, + $signature: 0 + }; + A._CustomZone_bindUnaryCallbackGuarded_closure.prototype = { + call$1(arg) { + var t1 = this.T; + return this.$this.runUnaryGuarded$1$2(this.registered, t1._as(arg), t1); + }, + $signature() { + return this.T._eval$1("~(0)"); + } + }; + A._RootZone.prototype = { + get$_run() { + return B._ZoneFunction__RootZone__rootRun; + }, + get$_runUnary() { + return B._ZoneFunction__RootZone__rootRunUnary; + }, + get$_runBinary() { + return B._ZoneFunction__RootZone__rootRunBinary; + }, + get$_registerCallback() { + return B._ZoneFunction__RootZone__rootRegisterCallback; + }, + get$_registerUnaryCallback() { + return B._ZoneFunction_Xkh; + }, + get$_registerBinaryCallback() { + return B._ZoneFunction_e9o; + }, + get$_errorCallback() { + return B._ZoneFunction__RootZone__rootErrorCallback; + }, + get$_scheduleMicrotask() { + return B._ZoneFunction__RootZone__rootScheduleMicrotask; + }, + get$_createTimer() { + return B._ZoneFunction__RootZone__rootCreateTimer; + }, + get$_createPeriodicTimer() { + return B._ZoneFunction_PAY; + }, + get$_print() { + return B._ZoneFunction__RootZone__rootPrint; + }, + get$_fork() { + return B._ZoneFunction__RootZone__rootFork; + }, + get$_handleUncaughtError() { + return B._ZoneFunction_KjJ; + }, + get$parent() { + return null; + }, + get$_map() { + return $.$get$_RootZone__rootMap(); + }, + get$_delegate() { + var t1 = $._RootZone__rootDelegate; + return t1 == null ? $._RootZone__rootDelegate = new A._ZoneDelegate(this) : t1; + }, + get$_parentDelegate() { + var t1 = $._RootZone__rootDelegate; + return t1 == null ? $._RootZone__rootDelegate = new A._ZoneDelegate(this) : t1; + }, + get$errorZone() { + return this; + }, + runGuarded$1(f) { + var e, s, exception; + type$.void_Function._as(f); + try { + if (B.C__RootZone === $.Zone__current) { + f.call$0(); + return; + } + A._rootRun(null, null, this, f, type$.void); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + A._rootHandleError(A._asObject(e), type$.StackTrace._as(s)); + } + }, + runUnaryGuarded$1$2(f, arg, $T) { + var e, s, exception; + $T._eval$1("~(0)")._as(f); + $T._as(arg); + try { + if (B.C__RootZone === $.Zone__current) { + f.call$1(arg); + return; + } + A._rootRunUnary(null, null, this, f, arg, type$.void, $T); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + A._rootHandleError(A._asObject(e), type$.StackTrace._as(s)); + } + }, + runBinaryGuarded$2$3(f, arg1, arg2, $T1, $T2) { + var e, s, exception; + $T1._eval$1("@<0>")._bind$1($T2)._eval$1("~(1,2)")._as(f); + $T1._as(arg1); + $T2._as(arg2); + try { + if (B.C__RootZone === $.Zone__current) { + f.call$2(arg1, arg2); + return; + } + A._rootRunBinary(null, null, this, f, arg1, arg2, type$.void, $T1, $T2); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + A._rootHandleError(A._asObject(e), type$.StackTrace._as(s)); + } + }, + bindCallback$1$1(f, $R) { + return new A._RootZone_bindCallback_closure(this, $R._eval$1("0()")._as(f), $R); + }, + bindUnaryCallback$2$1(f, $R, $T) { + return new A._RootZone_bindUnaryCallback_closure(this, $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f), $T, $R); + }, + bindCallbackGuarded$1(f) { + return new A._RootZone_bindCallbackGuarded_closure(this, type$.void_Function._as(f)); + }, + bindUnaryCallbackGuarded$1$1(f, $T) { + return new A._RootZone_bindUnaryCallbackGuarded_closure(this, $T._eval$1("~(0)")._as(f), $T); + }, + handleUncaughtError$2(error, stackTrace) { + A._rootHandleError(error, type$.StackTrace._as(stackTrace)); + }, + fork$2$specification$zoneValues(specification, zoneValues) { + return A._rootFork(null, null, this, specification, zoneValues); + }, + run$1$1(f, $R) { + $R._eval$1("0()")._as(f); + if ($.Zone__current === B.C__RootZone) + return f.call$0(); + return A._rootRun(null, null, this, f, $R); + }, + runUnary$2$2(f, arg, $R, $T) { + $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f); + $T._as(arg); + if ($.Zone__current === B.C__RootZone) + return f.call$1(arg); + return A._rootRunUnary(null, null, this, f, arg, $R, $T); + }, + runBinary$3$3(f, arg1, arg2, $R, $T1, $T2) { + $R._eval$1("@<0>")._bind$1($T1)._bind$1($T2)._eval$1("1(2,3)")._as(f); + $T1._as(arg1); + $T2._as(arg2); + if ($.Zone__current === B.C__RootZone) + return f.call$2(arg1, arg2); + return A._rootRunBinary(null, null, this, f, arg1, arg2, $R, $T1, $T2); + }, + registerCallback$1$1(f, $R) { + return $R._eval$1("0()")._as(f); + }, + registerUnaryCallback$2$1(f, $R, $T) { + return $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f); + }, + registerBinaryCallback$3$1(f, $R, $T1, $T2) { + return $R._eval$1("@<0>")._bind$1($T1)._bind$1($T2)._eval$1("1(2,3)")._as(f); + }, + errorCallback$2(error, stackTrace) { + return null; + }, + scheduleMicrotask$1(f) { + A._rootScheduleMicrotask(null, null, this, type$.void_Function._as(f)); + }, + createPeriodicTimer$2(duration, f) { + return A.Timer__createPeriodicTimer(duration, type$.void_Function_Timer._as(f)); + } + }; + A._RootZone_bindCallback_closure.prototype = { + call$0() { + return this.$this.run$1$1(this.f, this.R); + }, + $signature() { + return this.R._eval$1("0()"); + } + }; + A._RootZone_bindUnaryCallback_closure.prototype = { + call$1(arg) { + var _this = this, + t1 = _this.T; + return _this.$this.runUnary$2$2(_this.f, t1._as(arg), _this.R, t1); + }, + $signature() { + return this.R._eval$1("@<0>")._bind$1(this.T)._eval$1("1(2)"); + } + }; + A._RootZone_bindCallbackGuarded_closure.prototype = { + call$0() { + return this.$this.runGuarded$1(this.f); + }, + $signature: 0 + }; + A._RootZone_bindUnaryCallbackGuarded_closure.prototype = { + call$1(arg) { + var t1 = this.T; + return this.$this.runUnaryGuarded$1$2(this.f, t1._as(arg), t1); + }, + $signature() { + return this.T._eval$1("~(0)"); + } + }; + A.runZonedGuarded_closure.prototype = { + call$5($self, $parent, zone, error, stackTrace) { + var e, s, exception, t2, + t1 = type$.StackTrace; + t1._as(stackTrace); + try { + this.parentZone.runBinary$3$3(this.onError, error, stackTrace, type$.void, type$.Object, t1); + } catch (exception) { + e = A.unwrapException(exception); + s = A.getTraceFromException(exception); + t2 = $parent._delegationTarget; + if (e === error) + t2._processUncaughtError$3(zone, error, stackTrace); + else + t2._processUncaughtError$3(zone, A._asObject(e), t1._as(s)); + } + }, + $signature: 24 + }; + A._ZoneDelegate.prototype = {$isZoneDelegate: 1}; + A._rootHandleError_closure.prototype = { + call$0() { + A.Error_throwWithStackTrace(this.error, this.stackTrace); + }, + $signature: 0 + }; + A._ZoneSpecification.prototype = {$isZoneSpecification: 1}; + A._HashMap.prototype = { + get$length(_) { + return this._collection$_length; + }, + get$isEmpty(_) { + return this._collection$_length === 0; + }, + get$keys() { + return new A._HashMapKeyIterable(this, A._instanceType(this)._eval$1("_HashMapKeyIterable<1>")); + }, + containsKey$1(key) { + var strings, nums; + if (typeof key == "string" && key !== "__proto__") { + strings = this._strings; + return strings == null ? false : strings[key] != null; + } else if (typeof key == "number" && (key & 1073741823) === key) { + nums = this._nums; + return nums == null ? false : nums[key] != null; + } else + return this._containsKey$1(key); + }, + _containsKey$1(key) { + var rest = this._collection$_rest; + if (rest == null) + return false; + return this._findBucketIndex$2(this._getBucket$2(rest, key), key) >= 0; + }, + $index(_, key) { + var strings, t1, nums; + if (typeof key == "string" && key !== "__proto__") { + strings = this._strings; + t1 = strings == null ? null : A._HashMap__getTableEntry(strings, key); + return t1; + } else if (typeof key == "number" && (key & 1073741823) === key) { + nums = this._nums; + t1 = nums == null ? null : A._HashMap__getTableEntry(nums, key); + return t1; + } else + return this._get$1(key); + }, + _get$1(key) { + var bucket, index, + rest = this._collection$_rest; + if (rest == null) + return null; + bucket = this._getBucket$2(rest, key); + index = this._findBucketIndex$2(bucket, key); + return index < 0 ? null : bucket[index + 1]; + }, + $indexSet(_, key, value) { + var strings, nums, _this = this, + t1 = A._instanceType(_this); + t1._precomputed1._as(key); + t1._rest[1]._as(value); + if (typeof key == "string" && key !== "__proto__") { + strings = _this._strings; + _this._addHashTableEntry$3(strings == null ? _this._strings = A._HashMap__newHashTable() : strings, key, value); + } else if (typeof key == "number" && (key & 1073741823) === key) { + nums = _this._nums; + _this._addHashTableEntry$3(nums == null ? _this._nums = A._HashMap__newHashTable() : nums, key, value); + } else + _this._set$2(key, value); + }, + _set$2(key, value) { + var rest, hash, bucket, index, _this = this, + t1 = A._instanceType(_this); + t1._precomputed1._as(key); + t1._rest[1]._as(value); + rest = _this._collection$_rest; + if (rest == null) + rest = _this._collection$_rest = A._HashMap__newHashTable(); + hash = _this._computeHashCode$1(key); + bucket = rest[hash]; + if (bucket == null) { + A._HashMap__setTableEntry(rest, hash, [key, value]); + ++_this._collection$_length; + _this._keys = null; + } else { + index = _this._findBucketIndex$2(bucket, key); + if (index >= 0) + bucket[index + 1] = value; + else { + bucket.push(key, value); + ++_this._collection$_length; + _this._keys = null; + } + } + }, + forEach$1(_, action) { + var keys, $length, t2, i, key, t3, _this = this, + t1 = A._instanceType(_this); + t1._eval$1("~(1,2)")._as(action); + keys = _this._computeKeys$0(); + for ($length = keys.length, t2 = t1._precomputed1, t1 = t1._rest[1], i = 0; i < $length; ++i) { + key = keys[i]; + t2._as(key); + t3 = _this.$index(0, key); + action.call$2(key, t3 == null ? t1._as(t3) : t3); + if (keys !== _this._keys) + throw A.wrapException(A.ConcurrentModificationError$(_this)); + } + }, + _computeKeys$0() { + var strings, index, names, entries, i, nums, rest, bucket, $length, i0, _this = this, + result = _this._keys; + if (result != null) + return result; + result = A.List_List$filled(_this._collection$_length, null, false, type$.dynamic); + strings = _this._strings; + index = 0; + if (strings != null) { + names = Object.getOwnPropertyNames(strings); + entries = names.length; + for (i = 0; i < entries; ++i) { + result[index] = names[i]; + ++index; + } + } + nums = _this._nums; + if (nums != null) { + names = Object.getOwnPropertyNames(nums); + entries = names.length; + for (i = 0; i < entries; ++i) { + result[index] = +names[i]; + ++index; + } + } + rest = _this._collection$_rest; + if (rest != null) { + names = Object.getOwnPropertyNames(rest); + entries = names.length; + for (i = 0; i < entries; ++i) { + bucket = rest[names[i]]; + $length = bucket.length; + for (i0 = 0; i0 < $length; i0 += 2) { + result[index] = bucket[i0]; + ++index; + } + } + } + return _this._keys = result; + }, + _addHashTableEntry$3(table, key, value) { + var t1 = A._instanceType(this); + t1._precomputed1._as(key); + t1._rest[1]._as(value); + if (table[key] == null) { + ++this._collection$_length; + this._keys = null; + } + A._HashMap__setTableEntry(table, key, value); + }, + _computeHashCode$1(key) { + return J.get$hashCode$(key) & 1073741823; + }, + _getBucket$2(table, key) { + return table[this._computeHashCode$1(key)]; + }, + _findBucketIndex$2(bucket, key) { + var $length, i; + if (bucket == null) + return -1; + $length = bucket.length; + for (i = 0; i < $length; i += 2) + if (J.$eq$(bucket[i], key)) + return i; + return -1; + } + }; + A._IdentityHashMap.prototype = { + _computeHashCode$1(key) { + return A.objectHashCode(key) & 1073741823; + }, + _findBucketIndex$2(bucket, key) { + var $length, i, t1; + if (bucket == null) + return -1; + $length = bucket.length; + for (i = 0; i < $length; i += 2) { + t1 = bucket[i]; + if (t1 == null ? key == null : t1 === key) + return i; + } + return -1; + } + }; + A._HashMapKeyIterable.prototype = { + get$length(_) { + return this._collection$_map._collection$_length; + }, + get$isEmpty(_) { + return this._collection$_map._collection$_length === 0; + }, + get$isNotEmpty(_) { + return this._collection$_map._collection$_length !== 0; + }, + get$iterator(_) { + var t1 = this._collection$_map; + return new A._HashMapKeyIterator(t1, t1._computeKeys$0(), this.$ti._eval$1("_HashMapKeyIterator<1>")); + }, + contains$1(_, element) { + return this._collection$_map.containsKey$1(element); + } + }; + A._HashMapKeyIterator.prototype = { + get$current() { + var t1 = this._collection$_current; + return t1 == null ? this.$ti._precomputed1._as(t1) : t1; + }, + moveNext$0() { + var _this = this, + keys = _this._keys, + offset = _this._offset, + t1 = _this._collection$_map; + if (keys !== t1._keys) + throw A.wrapException(A.ConcurrentModificationError$(t1)); + else if (offset >= keys.length) { + _this._collection$_current = null; + return false; + } else { + _this._collection$_current = keys[offset]; + _this._offset = offset + 1; + return true; + } + }, + $isIterator: 1 + }; + A._LinkedHashSet.prototype = { + get$iterator(_) { + var _this = this, + t1 = new A._LinkedHashSetIterator(_this, _this._collection$_modifications, _this.$ti._eval$1("_LinkedHashSetIterator<1>")); + t1._collection$_cell = _this._collection$_first; + return t1; + }, + get$length(_) { + return this._collection$_length; + }, + get$isEmpty(_) { + return this._collection$_length === 0; + }, + get$isNotEmpty(_) { + return this._collection$_length !== 0; + }, + contains$1(_, object) { + var nums; + if ((object & 1073741823) === object) { + nums = this._nums; + if (nums == null) + return false; + return type$.nullable__LinkedHashSetCell._as(nums[object]) != null; + } else + return this._contains$1(object); + }, + _contains$1(object) { + var rest = this._collection$_rest; + if (rest == null) + return false; + return this._findBucketIndex$2(rest[B.JSInt_methods.get$hashCode(object) & 1073741823], object) >= 0; + }, + add$1(_, element) { + var strings, nums, _this = this; + _this.$ti._precomputed1._as(element); + if (typeof element == "string" && element !== "__proto__") { + strings = _this._strings; + return _this._addHashTableEntry$2(strings == null ? _this._strings = A._LinkedHashSet__newHashTable() : strings, element); + } else if (typeof element == "number" && (element & 1073741823) === element) { + nums = _this._nums; + return _this._addHashTableEntry$2(nums == null ? _this._nums = A._LinkedHashSet__newHashTable() : nums, element); + } else + return _this._collection$_add$1(element); + }, + _collection$_add$1(element) { + var rest, hash, bucket, _this = this; + _this.$ti._precomputed1._as(element); + rest = _this._collection$_rest; + if (rest == null) + rest = _this._collection$_rest = A._LinkedHashSet__newHashTable(); + hash = J.get$hashCode$(element) & 1073741823; + bucket = rest[hash]; + if (bucket == null) + rest[hash] = [_this._collection$_newLinkedCell$1(element)]; + else { + if (_this._findBucketIndex$2(bucket, element) >= 0) + return false; + bucket.push(_this._collection$_newLinkedCell$1(element)); + } + return true; + }, + remove$1(_, object) { + if ((object & 1073741823) === object) + return this._collection$_removeHashTableEntry$2(this._nums, object); + else + return this._remove$1(object); + }, + _remove$1(object) { + var hash, bucket, index, cell, + rest = this._collection$_rest; + if (rest == null) + return false; + hash = B.JSInt_methods.get$hashCode(object) & 1073741823; + bucket = rest[hash]; + index = this._findBucketIndex$2(bucket, object); + if (index < 0) + return false; + cell = bucket.splice(index, 1)[0]; + if (0 === bucket.length) + delete rest[hash]; + this._collection$_unlinkCell$1(cell); + return true; + }, + _addHashTableEntry$2(table, element) { + this.$ti._precomputed1._as(element); + if (type$.nullable__LinkedHashSetCell._as(table[element]) != null) + return false; + table[element] = this._collection$_newLinkedCell$1(element); + return true; + }, + _collection$_removeHashTableEntry$2(table, element) { + var cell; + if (table == null) + return false; + cell = type$.nullable__LinkedHashSetCell._as(table[element]); + if (cell == null) + return false; + this._collection$_unlinkCell$1(cell); + delete table[element]; + return true; + }, + _collection$_modified$0() { + this._collection$_modifications = this._collection$_modifications + 1 & 1073741823; + }, + _collection$_newLinkedCell$1(element) { + var t1, _this = this, + cell = new A._LinkedHashSetCell(_this.$ti._precomputed1._as(element)); + if (_this._collection$_first == null) + _this._collection$_first = _this._collection$_last = cell; + else { + t1 = _this._collection$_last; + t1.toString; + cell._collection$_previous = t1; + _this._collection$_last = t1._collection$_next = cell; + } + ++_this._collection$_length; + _this._collection$_modified$0(); + return cell; + }, + _collection$_unlinkCell$1(cell) { + var _this = this, + previous = cell._collection$_previous, + next = cell._collection$_next; + if (previous == null) + _this._collection$_first = next; + else + previous._collection$_next = next; + if (next == null) + _this._collection$_last = previous; + else + next._collection$_previous = previous; + --_this._collection$_length; + _this._collection$_modified$0(); + }, + _findBucketIndex$2(bucket, element) { + var $length, i; + if (bucket == null) + return -1; + $length = bucket.length; + for (i = 0; i < $length; ++i) + if (J.$eq$(bucket[i]._element, element)) + return i; + return -1; + } + }; + A._LinkedHashSetCell.prototype = {}; + A._LinkedHashSetIterator.prototype = { + get$current() { + var t1 = this._collection$_current; + return t1 == null ? this.$ti._precomputed1._as(t1) : t1; + }, + moveNext$0() { + var _this = this, + cell = _this._collection$_cell, + t1 = _this._set; + if (_this._collection$_modifications !== t1._collection$_modifications) + throw A.wrapException(A.ConcurrentModificationError$(t1)); + else if (cell == null) { + _this._collection$_current = null; + return false; + } else { + _this._collection$_current = _this.$ti._eval$1("1?")._as(cell._element); + _this._collection$_cell = cell._collection$_next; + return true; + } + }, + $isIterator: 1 + }; + A.ListBase.prototype = { + get$iterator(receiver) { + return new A.ListIterator(receiver, this.get$length(receiver), A.instanceType(receiver)._eval$1("ListIterator")); + }, + elementAt$1(receiver, index) { + return this.$index(receiver, index); + }, + get$isEmpty(receiver) { + return this.get$length(receiver) === 0; + }, + get$isNotEmpty(receiver) { + return !this.get$isEmpty(receiver); + }, + get$first(receiver) { + if (this.get$length(receiver) === 0) + throw A.wrapException(A.IterableElementError_noElement()); + return this.$index(receiver, 0); + }, + map$1$1(receiver, f, $T) { + var t1 = A.instanceType(receiver); + return new A.MappedListIterable(receiver, t1._bind$1($T)._eval$1("1(ListBase.E)")._as(f), t1._eval$1("@")._bind$1($T)._eval$1("MappedListIterable<1,2>")); + }, + skip$1(receiver, count) { + return A.SubListIterable$(receiver, count, null, A.instanceType(receiver)._eval$1("ListBase.E")); + }, + take$1(receiver, count) { + return A.SubListIterable$(receiver, 0, A.checkNotNullable(count, "count", type$.int), A.instanceType(receiver)._eval$1("ListBase.E")); + }, + fillRange$3(receiver, start, end, fill) { + var i; + A.instanceType(receiver)._eval$1("ListBase.E?")._as(fill); + A.RangeError_checkValidRange(start, end, this.get$length(receiver)); + for (i = start; i < end; ++i) + this.$indexSet(receiver, i, fill); + }, + setRange$4(receiver, start, end, iterable, skipCount) { + var $length, otherStart, otherList, t1, i; + A.instanceType(receiver)._eval$1("Iterable")._as(iterable); + A.RangeError_checkValidRange(start, end, this.get$length(receiver)); + $length = end - start; + if ($length === 0) + return; + A.RangeError_checkNotNegative(skipCount, "skipCount"); + if (type$.List_dynamic._is(iterable)) { + otherStart = skipCount; + otherList = iterable; + } else { + otherList = J.skip$1$ax(iterable, skipCount).toList$1$growable(0, false); + otherStart = 0; + } + t1 = J.getInterceptor$asx(otherList); + if (otherStart + $length > t1.get$length(otherList)) + throw A.wrapException(A.IterableElementError_tooFew()); + if (otherStart < start) + for (i = $length - 1; i >= 0; --i) + this.$indexSet(receiver, start + i, t1.$index(otherList, otherStart + i)); + else + for (i = 0; i < $length; ++i) + this.$indexSet(receiver, start + i, t1.$index(otherList, otherStart + i)); + }, + toString$0(receiver) { + return A.Iterable_iterableToFullString(receiver, "[", "]"); + }, + $isEfficientLengthIterable: 1, + $isIterable: 1, + $isList: 1 + }; + A.MapBase.prototype = { + forEach$1(_, action) { + var t2, key, t3, + t1 = A._instanceType(this); + t1._eval$1("~(MapBase.K,MapBase.V)")._as(action); + for (t2 = this.get$keys(), t2 = t2.get$iterator(t2), t1 = t1._eval$1("MapBase.V"); t2.moveNext$0();) { + key = t2.get$current(); + t3 = this.$index(0, key); + action.call$2(key, t3 == null ? t1._as(t3) : t3); + } + }, + containsKey$1(key) { + return this.get$keys().contains$1(0, key); + }, + get$length(_) { + var t1 = this.get$keys(); + return t1.get$length(t1); + }, + get$isEmpty(_) { + var t1 = this.get$keys(); + return t1.get$isEmpty(t1); + }, + toString$0(_) { + return A.MapBase_mapToString(this); + }, + $isMap: 1 + }; + A.MapBase_mapToString_closure.prototype = { + call$2(k, v) { + var t2, + t1 = this._box_0; + if (!t1.first) + this.result._contents += ", "; + t1.first = false; + t1 = this.result; + t2 = A.S(k); + t1._contents = (t1._contents += t2) + ": "; + t2 = A.S(v); + t1._contents += t2; + }, + $signature: 13 + }; + A._UnmodifiableMapMixin.prototype = { + $indexSet(_, key, value) { + var t1 = this.$ti; + t1._precomputed1._as(key); + t1._rest[1]._as(value); + throw A.wrapException(A.UnsupportedError$("Cannot modify unmodifiable map")); + } + }; + A.MapView.prototype = { + $index(_, key) { + return this._collection$_map.$index(0, key); + }, + $indexSet(_, key, value) { + var t1 = this.$ti; + this._collection$_map.$indexSet(0, t1._precomputed1._as(key), t1._rest[1]._as(value)); + }, + containsKey$1(key) { + return this._collection$_map.containsKey$1(key); + }, + forEach$1(_, action) { + this._collection$_map.forEach$1(0, this.$ti._eval$1("~(1,2)")._as(action)); + }, + get$isEmpty(_) { + var t1 = this._collection$_map; + return t1.get$isEmpty(t1); + }, + get$length(_) { + var t1 = this._collection$_map; + return t1.get$length(t1); + }, + get$keys() { + return this._collection$_map.get$keys(); + }, + toString$0(_) { + return this._collection$_map.toString$0(0); + }, + $isMap: 1 + }; + A.UnmodifiableMapView.prototype = {}; + A.SetBase.prototype = { + get$isEmpty(_) { + return this._collection$_length === 0; + }, + get$isNotEmpty(_) { + return this._collection$_length !== 0; + }, + map$1$1(_, f, $T) { + var t1 = this.$ti; + return new A.EfficientLengthMappedIterable(this, t1._bind$1($T)._eval$1("1(2)")._as(f), t1._eval$1("@<1>")._bind$1($T)._eval$1("EfficientLengthMappedIterable<1,2>")); + }, + toString$0(_) { + return A.Iterable_iterableToFullString(this, "{", "}"); + }, + take$1(_, n) { + return A.TakeIterable_TakeIterable(this, n, this.$ti._precomputed1); + }, + skip$1(_, n) { + return A.SkipIterable_SkipIterable(this, n, this.$ti._precomputed1); + }, + elementAt$1(_, index) { + var iterator, skipCount, t1, _this = this; + A.RangeError_checkNotNegative(index, "index"); + iterator = A._LinkedHashSetIterator$(_this, _this._collection$_modifications, _this.$ti._precomputed1); + for (skipCount = index; iterator.moveNext$0();) { + if (skipCount === 0) { + t1 = iterator._collection$_current; + return t1 == null ? iterator.$ti._precomputed1._as(t1) : t1; + } + --skipCount; + } + throw A.wrapException(A.IndexError$withLength(index, index - skipCount, _this, "index")); + }, + $isEfficientLengthIterable: 1, + $isIterable: 1, + $isSet: 1 + }; + A._SetBase.prototype = {}; + A._UnmodifiableMapView_MapView__UnmodifiableMapMixin.prototype = {}; + A._JsonMap.prototype = { + $index(_, key) { + var result, + t1 = this._processed; + if (t1 == null) + return this._data.$index(0, key); + else if (typeof key != "string") + return null; + else { + result = t1[key]; + return typeof result == "undefined" ? this._process$1(key) : result; + } + }, + get$length(_) { + return this._processed == null ? this._data.__js_helper$_length : this._convert$_computeKeys$0().length; + }, + get$isEmpty(_) { + return this.get$length(0) === 0; + }, + get$keys() { + if (this._processed == null) { + var t1 = this._data; + return new A.LinkedHashMapKeysIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapKeysIterable<1>")); + } + return new A._JsonMapKeyIterable(this); + }, + $indexSet(_, key, value) { + var processed, original, _this = this; + if (_this._processed == null) + _this._data.$indexSet(0, key, value); + else if (_this.containsKey$1(key)) { + processed = _this._processed; + processed[key] = value; + original = _this._original; + if (original == null ? processed != null : original !== processed) + original[key] = null; + } else + _this._upgrade$0().$indexSet(0, key, value); + }, + containsKey$1(key) { + if (this._processed == null) + return this._data.containsKey$1(key); + return Object.prototype.hasOwnProperty.call(this._original, key); + }, + forEach$1(_, f) { + var keys, i, key, value, _this = this; + type$.void_Function_String_dynamic._as(f); + if (_this._processed == null) + return _this._data.forEach$1(0, f); + keys = _this._convert$_computeKeys$0(); + for (i = 0; i < keys.length; ++i) { + key = keys[i]; + value = _this._processed[key]; + if (typeof value == "undefined") { + value = A._convertJsonToDartLazy(_this._original[key]); + _this._processed[key] = value; + } + f.call$2(key, value); + if (keys !== _this._data) + throw A.wrapException(A.ConcurrentModificationError$(_this)); + } + }, + _convert$_computeKeys$0() { + var keys = type$.nullable_List_dynamic._as(this._data); + if (keys == null) + keys = this._data = A._setArrayType(Object.keys(this._original), type$.JSArray_String); + return keys; + }, + _upgrade$0() { + var result, keys, i, t1, key, _this = this; + if (_this._processed == null) + return _this._data; + result = A.LinkedHashMap_LinkedHashMap$_empty(type$.String, type$.dynamic); + keys = _this._convert$_computeKeys$0(); + for (i = 0; t1 = keys.length, i < t1; ++i) { + key = keys[i]; + result.$indexSet(0, key, _this.$index(0, key)); + } + if (t1 === 0) + B.JSArray_methods.add$1(keys, ""); + else + B.JSArray_methods.clear$0(keys); + _this._original = _this._processed = null; + return _this._data = result; + }, + _process$1(key) { + var result; + if (!Object.prototype.hasOwnProperty.call(this._original, key)) + return null; + result = A._convertJsonToDartLazy(this._original[key]); + return this._processed[key] = result; + } + }; + A._JsonMapKeyIterable.prototype = { + get$length(_) { + return this._convert$_parent.get$length(0); + }, + elementAt$1(_, index) { + var t1 = this._convert$_parent; + if (t1._processed == null) + t1 = t1.get$keys().elementAt$1(0, index); + else { + t1 = t1._convert$_computeKeys$0(); + if (!(index >= 0 && index < t1.length)) + return A.ioore(t1, index); + t1 = t1[index]; + } + return t1; + }, + get$iterator(_) { + var t1 = this._convert$_parent; + if (t1._processed == null) { + t1 = t1.get$keys(); + t1 = t1.get$iterator(t1); + } else { + t1 = t1._convert$_computeKeys$0(); + t1 = new J.ArrayIterator(t1, t1.length, A._arrayInstanceType(t1)._eval$1("ArrayIterator<1>")); + } + return t1; + }, + contains$1(_, key) { + return this._convert$_parent.containsKey$1(key); + } + }; + A._Utf8Decoder__decoder_closure.prototype = { + call$0() { + var t1, exception; + try { + t1 = new TextDecoder("utf-8", {fatal: true}); + return t1; + } catch (exception) { + } + return null; + }, + $signature: 14 + }; + A._Utf8Decoder__decoderNonfatal_closure.prototype = { + call$0() { + var t1, exception; + try { + t1 = new TextDecoder("utf-8", {fatal: false}); + return t1; + } catch (exception) { + } + return null; + }, + $signature: 14 + }; + A.AsciiCodec.prototype = { + encode$1(source) { + return B.AsciiEncoder_127.convert$1(source); + } + }; + A._UnicodeSubsetEncoder.prototype = { + convert$1(string) { + var stringLength, end, result, t1, i, codeUnit; + A._asString(string); + stringLength = string.length; + end = A.RangeError_checkValidRange(0, null, stringLength); + result = new Uint8Array(end); + for (t1 = ~this._subsetMask, i = 0; i < end; ++i) { + if (!(i < stringLength)) + return A.ioore(string, i); + codeUnit = string.charCodeAt(i); + if ((codeUnit & t1) !== 0) + throw A.wrapException(A.ArgumentError$value(string, "string", "Contains invalid characters.")); + if (!(i < end)) + return A.ioore(result, i); + result[i] = codeUnit; + } + return result; + } + }; + A.AsciiEncoder.prototype = {}; + A.Base64Codec.prototype = { + normalize$3(source, start, end) { + var inverseAlphabet, t2, i, sliceStart, buffer, firstPadding, firstPaddingSourceIndex, paddingCount, i0, char, i1, digit1, t3, digit2, char0, value, t4, endLength, $length, + _s64_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", + _s31_ = "Invalid base64 encoding length ", + t1 = source.length; + end = A.RangeError_checkValidRange(start, end, t1); + inverseAlphabet = $.$get$_Base64Decoder__inverseAlphabet(); + for (t2 = inverseAlphabet.length, i = start, sliceStart = i, buffer = null, firstPadding = -1, firstPaddingSourceIndex = -1, paddingCount = 0; i < end; i = i0) { + i0 = i + 1; + if (!(i < t1)) + return A.ioore(source, i); + char = source.charCodeAt(i); + if (char === 37) { + i1 = i0 + 2; + if (i1 <= end) { + if (!(i0 < t1)) + return A.ioore(source, i0); + digit1 = A.hexDigitValue(source.charCodeAt(i0)); + t3 = i0 + 1; + if (!(t3 < t1)) + return A.ioore(source, t3); + digit2 = A.hexDigitValue(source.charCodeAt(t3)); + char0 = digit1 * 16 + digit2 - (digit2 & 256); + if (char0 === 37) + char0 = -1; + i0 = i1; + } else + char0 = -1; + } else + char0 = char; + if (0 <= char0 && char0 <= 127) { + if (!(char0 >= 0 && char0 < t2)) + return A.ioore(inverseAlphabet, char0); + value = inverseAlphabet[char0]; + if (value >= 0) { + if (!(value < 64)) + return A.ioore(_s64_, value); + char0 = _s64_.charCodeAt(value); + if (char0 === char) + continue; + char = char0; + } else { + if (value === -1) { + if (firstPadding < 0) { + t3 = buffer == null ? null : buffer._contents.length; + if (t3 == null) + t3 = 0; + firstPadding = t3 + (i - sliceStart); + firstPaddingSourceIndex = i; + } + ++paddingCount; + if (char === 61) + continue; + } + char = char0; + } + if (value !== -2) { + if (buffer == null) { + buffer = new A.StringBuffer(""); + t3 = buffer; + } else + t3 = buffer; + t3._contents += B.JSString_methods.substring$2(source, sliceStart, i); + t4 = A.Primitives_stringFromCharCode(char); + t3._contents += t4; + sliceStart = i0; + continue; + } + } + throw A.wrapException(A.FormatException$("Invalid base64 data", source, i)); + } + if (buffer != null) { + t1 = B.JSString_methods.substring$2(source, sliceStart, end); + t1 = buffer._contents += t1; + t2 = t1.length; + if (firstPadding >= 0) + A.Base64Codec__checkPadding(source, firstPaddingSourceIndex, end, firstPadding, paddingCount, t2); + else { + endLength = B.JSInt_methods.$mod(t2 - 1, 4) + 1; + if (endLength === 1) + throw A.wrapException(A.FormatException$(_s31_, source, end)); + while (endLength < 4) { + t1 += "="; + buffer._contents = t1; + ++endLength; + } + } + t1 = buffer._contents; + return B.JSString_methods.replaceRange$3(source, start, end, t1.charCodeAt(0) == 0 ? t1 : t1); + } + $length = end - start; + if (firstPadding >= 0) + A.Base64Codec__checkPadding(source, firstPaddingSourceIndex, end, firstPadding, paddingCount, $length); + else { + endLength = B.JSInt_methods.$mod($length, 4); + if (endLength === 1) + throw A.wrapException(A.FormatException$(_s31_, source, end)); + if (endLength > 1) + source = B.JSString_methods.replaceRange$3(source, end, end, endLength === 2 ? "==" : "="); + } + return source; + } + }; + A.Base64Encoder.prototype = {}; + A.Codec.prototype = {}; + A._FusedCodec.prototype = {}; + A.Converter.prototype = {$isStreamTransformer: 1}; + A.Encoding.prototype = {}; + A.JsonUnsupportedObjectError.prototype = { + toString$0(_) { + var safeString = A.Error_safeToString(this.unsupportedObject); + return (this.cause != null ? "Converting object to an encodable object failed:" : "Converting object did not return an encodable object:") + " " + safeString; + } + }; + A.JsonCyclicError.prototype = { + toString$0(_) { + return "Cyclic error in JSON stringify"; + } + }; + A.JsonCodec.prototype = { + decode$2$reviver(source, reviver) { + var t1 = A._parseJson(source, this.get$decoder()._reviver); + return t1; + }, + encode$2$toEncodable(value, toEncodable) { + var t1 = A._JsonStringStringifier_stringify(value, this.get$encoder()._toEncodable, null); + return t1; + }, + get$encoder() { + return B.JsonEncoder_null; + }, + get$decoder() { + return B.JsonDecoder_null; + } + }; + A.JsonEncoder.prototype = {}; + A.JsonDecoder.prototype = {}; + A._JsonStringifier.prototype = { + writeStringContent$1(s) { + var offset, i, charCode, t1, t2, _this = this, + $length = s.length; + for (offset = 0, i = 0; i < $length; ++i) { + charCode = s.charCodeAt(i); + if (charCode > 92) { + if (charCode >= 55296) { + t1 = charCode & 64512; + if (t1 === 55296) { + t2 = i + 1; + t2 = !(t2 < $length && (s.charCodeAt(t2) & 64512) === 56320); + } else + t2 = false; + if (!t2) + if (t1 === 56320) { + t1 = i - 1; + t1 = !(t1 >= 0 && (s.charCodeAt(t1) & 64512) === 55296); + } else + t1 = false; + else + t1 = true; + if (t1) { + if (i > offset) + _this.writeStringSlice$3(s, offset, i); + offset = i + 1; + _this.writeCharCode$1(92); + _this.writeCharCode$1(117); + _this.writeCharCode$1(100); + t1 = charCode >>> 8 & 15; + _this.writeCharCode$1(t1 < 10 ? 48 + t1 : 87 + t1); + t1 = charCode >>> 4 & 15; + _this.writeCharCode$1(t1 < 10 ? 48 + t1 : 87 + t1); + t1 = charCode & 15; + _this.writeCharCode$1(t1 < 10 ? 48 + t1 : 87 + t1); + } + } + continue; + } + if (charCode < 32) { + if (i > offset) + _this.writeStringSlice$3(s, offset, i); + offset = i + 1; + _this.writeCharCode$1(92); + switch (charCode) { + case 8: + _this.writeCharCode$1(98); + break; + case 9: + _this.writeCharCode$1(116); + break; + case 10: + _this.writeCharCode$1(110); + break; + case 12: + _this.writeCharCode$1(102); + break; + case 13: + _this.writeCharCode$1(114); + break; + default: + _this.writeCharCode$1(117); + _this.writeCharCode$1(48); + _this.writeCharCode$1(48); + t1 = charCode >>> 4 & 15; + _this.writeCharCode$1(t1 < 10 ? 48 + t1 : 87 + t1); + t1 = charCode & 15; + _this.writeCharCode$1(t1 < 10 ? 48 + t1 : 87 + t1); + break; + } + } else if (charCode === 34 || charCode === 92) { + if (i > offset) + _this.writeStringSlice$3(s, offset, i); + offset = i + 1; + _this.writeCharCode$1(92); + _this.writeCharCode$1(charCode); + } + } + if (offset === 0) + _this.writeString$1(s); + else if (offset < $length) + _this.writeStringSlice$3(s, offset, $length); + }, + _checkCycle$1(object) { + var t1, t2, i, t3; + for (t1 = this._seen, t2 = t1.length, i = 0; i < t2; ++i) { + t3 = t1[i]; + if (object == null ? t3 == null : object === t3) + throw A.wrapException(new A.JsonCyclicError(object, null)); + } + B.JSArray_methods.add$1(t1, object); + }, + writeObject$1(object) { + var customJson, e, t1, exception, _this = this; + if (_this.writeJsonValue$1(object)) + return; + _this._checkCycle$1(object); + try { + customJson = _this._toEncodable.call$1(object); + if (!_this.writeJsonValue$1(customJson)) { + t1 = A.JsonUnsupportedObjectError$(object, null, _this.get$_partialResult()); + throw A.wrapException(t1); + } + t1 = _this._seen; + if (0 >= t1.length) + return A.ioore(t1, -1); + t1.pop(); + } catch (exception) { + e = A.unwrapException(exception); + t1 = A.JsonUnsupportedObjectError$(object, e, _this.get$_partialResult()); + throw A.wrapException(t1); + } + }, + writeJsonValue$1(object) { + var t1, success, _this = this; + if (typeof object == "number") { + if (!isFinite(object)) + return false; + _this.writeNumber$1(object); + return true; + } else if (object === true) { + _this.writeString$1("true"); + return true; + } else if (object === false) { + _this.writeString$1("false"); + return true; + } else if (object == null) { + _this.writeString$1("null"); + return true; + } else if (typeof object == "string") { + _this.writeString$1('"'); + _this.writeStringContent$1(object); + _this.writeString$1('"'); + return true; + } else if (type$.List_dynamic._is(object)) { + _this._checkCycle$1(object); + _this.writeList$1(object); + t1 = _this._seen; + if (0 >= t1.length) + return A.ioore(t1, -1); + t1.pop(); + return true; + } else if (type$.Map_dynamic_dynamic._is(object)) { + _this._checkCycle$1(object); + success = _this.writeMap$1(object); + t1 = _this._seen; + if (0 >= t1.length) + return A.ioore(t1, -1); + t1.pop(); + return success; + } else + return false; + }, + writeList$1(list) { + var t1, i, _this = this; + _this.writeString$1("["); + t1 = J.getInterceptor$asx(list); + if (t1.get$isNotEmpty(list)) { + _this.writeObject$1(t1.$index(list, 0)); + for (i = 1; i < t1.get$length(list); ++i) { + _this.writeString$1(","); + _this.writeObject$1(t1.$index(list, i)); + } + } + _this.writeString$1("]"); + }, + writeMap$1(map) { + var t1, keyValueList, i, separator, t2, _this = this, _box_0 = {}; + if (map.get$isEmpty(map)) { + _this.writeString$1("{}"); + return true; + } + t1 = map.get$length(map) * 2; + keyValueList = A.List_List$filled(t1, null, false, type$.nullable_Object); + i = _box_0.i = 0; + _box_0.allStringKeys = true; + map.forEach$1(0, new A._JsonStringifier_writeMap_closure(_box_0, keyValueList)); + if (!_box_0.allStringKeys) + return false; + _this.writeString$1("{"); + for (separator = '"'; i < t1; i += 2, separator = ',"') { + _this.writeString$1(separator); + _this.writeStringContent$1(A._asString(keyValueList[i])); + _this.writeString$1('":'); + t2 = i + 1; + if (!(t2 < t1)) + return A.ioore(keyValueList, t2); + _this.writeObject$1(keyValueList[t2]); + } + _this.writeString$1("}"); + return true; + } + }; + A._JsonStringifier_writeMap_closure.prototype = { + call$2(key, value) { + var t1, t2; + if (typeof key != "string") + this._box_0.allStringKeys = false; + t1 = this.keyValueList; + t2 = this._box_0; + B.JSArray_methods.$indexSet(t1, t2.i++, key); + B.JSArray_methods.$indexSet(t1, t2.i++, value); + }, + $signature: 13 + }; + A._JsonStringStringifier.prototype = { + get$_partialResult() { + var t1 = this._sink; + return t1 instanceof A.StringBuffer ? t1.toString$0(0) : null; + }, + writeNumber$1(number) { + this._sink.write$1(B.JSNumber_methods.toString$0(number)); + }, + writeString$1(string) { + this._sink.write$1(string); + }, + writeStringSlice$3(string, start, end) { + this._sink.write$1(B.JSString_methods.substring$2(string, start, end)); + }, + writeCharCode$1(charCode) { + this._sink.writeCharCode$1(charCode); + } + }; + A.Utf8Codec.prototype = {}; + A.Utf8Encoder.prototype = { + convert$1(string) { + var stringLength, end, t1, encoder, t2; + A._asString(string); + stringLength = string.length; + end = A.RangeError_checkValidRange(0, null, stringLength); + if (end === 0) + return new Uint8Array(0); + t1 = new Uint8Array(end * 3); + encoder = new A._Utf8Encoder(t1); + if (encoder._fillBuffer$3(string, 0, end) !== end) { + t2 = end - 1; + if (!(t2 >= 0 && t2 < stringLength)) + return A.ioore(string, t2); + encoder._writeReplacementCharacter$0(); + } + return B.NativeUint8List_methods.sublist$2(t1, 0, encoder._bufferIndex); + } + }; + A._Utf8Encoder.prototype = { + _writeReplacementCharacter$0() { + var t4, _this = this, + t1 = _this._buffer, + t2 = _this._bufferIndex, + t3 = _this._bufferIndex = t2 + 1; + t1.$flags & 2 && A.throwUnsupportedOperation(t1); + t4 = t1.length; + if (!(t2 < t4)) + return A.ioore(t1, t2); + t1[t2] = 239; + t2 = _this._bufferIndex = t3 + 1; + if (!(t3 < t4)) + return A.ioore(t1, t3); + t1[t3] = 191; + _this._bufferIndex = t2 + 1; + if (!(t2 < t4)) + return A.ioore(t1, t2); + t1[t2] = 189; + }, + _writeSurrogate$2(leadingSurrogate, nextCodeUnit) { + var rune, t1, t2, t3, t4, _this = this; + if ((nextCodeUnit & 64512) === 56320) { + rune = 65536 + ((leadingSurrogate & 1023) << 10) | nextCodeUnit & 1023; + t1 = _this._buffer; + t2 = _this._bufferIndex; + t3 = _this._bufferIndex = t2 + 1; + t1.$flags & 2 && A.throwUnsupportedOperation(t1); + t4 = t1.length; + if (!(t2 < t4)) + return A.ioore(t1, t2); + t1[t2] = rune >>> 18 | 240; + t2 = _this._bufferIndex = t3 + 1; + if (!(t3 < t4)) + return A.ioore(t1, t3); + t1[t3] = rune >>> 12 & 63 | 128; + t3 = _this._bufferIndex = t2 + 1; + if (!(t2 < t4)) + return A.ioore(t1, t2); + t1[t2] = rune >>> 6 & 63 | 128; + _this._bufferIndex = t3 + 1; + if (!(t3 < t4)) + return A.ioore(t1, t3); + t1[t3] = rune & 63 | 128; + return true; + } else { + _this._writeReplacementCharacter$0(); + return false; + } + }, + _fillBuffer$3(str, start, end) { + var t1, t2, t3, t4, stringIndex, codeUnit, t5, t6, _this = this; + if (start !== end) { + t1 = end - 1; + if (!(t1 >= 0 && t1 < str.length)) + return A.ioore(str, t1); + t1 = (str.charCodeAt(t1) & 64512) === 55296; + } else + t1 = false; + if (t1) + --end; + for (t1 = _this._buffer, t2 = t1.$flags | 0, t3 = t1.length, t4 = str.length, stringIndex = start; stringIndex < end; ++stringIndex) { + if (!(stringIndex < t4)) + return A.ioore(str, stringIndex); + codeUnit = str.charCodeAt(stringIndex); + if (codeUnit <= 127) { + t5 = _this._bufferIndex; + if (t5 >= t3) + break; + _this._bufferIndex = t5 + 1; + t2 & 2 && A.throwUnsupportedOperation(t1); + t1[t5] = codeUnit; + } else { + t5 = codeUnit & 64512; + if (t5 === 55296) { + if (_this._bufferIndex + 4 > t3) + break; + t5 = stringIndex + 1; + if (!(t5 < t4)) + return A.ioore(str, t5); + if (_this._writeSurrogate$2(codeUnit, str.charCodeAt(t5))) + stringIndex = t5; + } else if (t5 === 56320) { + if (_this._bufferIndex + 3 > t3) + break; + _this._writeReplacementCharacter$0(); + } else if (codeUnit <= 2047) { + t5 = _this._bufferIndex; + t6 = t5 + 1; + if (t6 >= t3) + break; + _this._bufferIndex = t6; + t2 & 2 && A.throwUnsupportedOperation(t1); + if (!(t5 < t3)) + return A.ioore(t1, t5); + t1[t5] = codeUnit >>> 6 | 192; + _this._bufferIndex = t6 + 1; + t1[t6] = codeUnit & 63 | 128; + } else { + t5 = _this._bufferIndex; + if (t5 + 2 >= t3) + break; + t6 = _this._bufferIndex = t5 + 1; + t2 & 2 && A.throwUnsupportedOperation(t1); + if (!(t5 < t3)) + return A.ioore(t1, t5); + t1[t5] = codeUnit >>> 12 | 224; + t5 = _this._bufferIndex = t6 + 1; + if (!(t6 < t3)) + return A.ioore(t1, t6); + t1[t6] = codeUnit >>> 6 & 63 | 128; + _this._bufferIndex = t5 + 1; + if (!(t5 < t3)) + return A.ioore(t1, t5); + t1[t5] = codeUnit & 63 | 128; + } + } + } + return stringIndex; + } + }; + A.Utf8Decoder.prototype = { + convert$1(codeUnits) { + return new A._Utf8Decoder(this._allowMalformed)._convertGeneral$4(type$.List_int._as(codeUnits), 0, null, true); + } + }; + A._Utf8Decoder.prototype = { + _convertGeneral$4(codeUnits, start, maybeEnd, single) { + var end, casted, bytes, errorOffset, t1, result, message, _this = this; + type$.List_int._as(codeUnits); + end = A.RangeError_checkValidRange(start, maybeEnd, J.get$length$asx(codeUnits)); + if (start === end) + return ""; + if (codeUnits instanceof Uint8Array) { + casted = codeUnits; + bytes = casted; + errorOffset = 0; + } else { + bytes = A._Utf8Decoder__makeNativeUint8List(codeUnits, start, end); + end -= start; + errorOffset = start; + start = 0; + } + if (single && end - start >= 15) { + t1 = _this.allowMalformed; + result = A._Utf8Decoder__convertInterceptedUint8List(t1, bytes, start, end); + if (result != null) { + if (!t1) + return result; + if (result.indexOf("\ufffd") < 0) + return result; + } + } + result = _this._decodeRecursive$4(bytes, start, end, single); + t1 = _this._state; + if ((t1 & 1) !== 0) { + message = A._Utf8Decoder_errorDescription(t1); + _this._state = 0; + throw A.wrapException(A.FormatException$(message, codeUnits, errorOffset + _this._charOrIndex)); + } + return result; + }, + _decodeRecursive$4(bytes, start, end, single) { + var mid, s1, _this = this; + if (end - start > 1000) { + mid = B.JSInt_methods._tdivFast$1(start + end, 2); + s1 = _this._decodeRecursive$4(bytes, start, mid, false); + if ((_this._state & 1) !== 0) + return s1; + return s1 + _this._decodeRecursive$4(bytes, mid, end, single); + } + return _this.decodeGeneral$4(bytes, start, end, single); + }, + decodeGeneral$4(bytes, start, end, single) { + var byte, t2, type, t3, i0, markEnd, i1, m, _this = this, + _s256_ = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHJEEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKCCCCCCCCCCCCDCLONNNMEEEEEEEEEEE", + _s144_ = " \x000:XECCCCCN:lDb \x000:XECCCCCNvlDb \x000:XECCCCCN:lDb AAAAA\x00\x00\x00\x00\x00AAAAA00000AAAAA:::::AAAAAGG000AAAAA00KKKAAAAAG::::AAAAA:IIIIAAAAA000\x800AAAAA\x00\x00\x00\x00 AAAAA", + _65533 = 65533, + state = _this._state, + char = _this._charOrIndex, + buffer = new A.StringBuffer(""), + i = start + 1, + t1 = bytes.length; + if (!(start >= 0 && start < t1)) + return A.ioore(bytes, start); + byte = bytes[start]; + $label0$0: + for (t2 = _this.allowMalformed;;) { + for (;; i = i0) { + if (!(byte >= 0 && byte < 256)) + return A.ioore(_s256_, byte); + type = _s256_.charCodeAt(byte) & 31; + char = state <= 32 ? byte & 61694 >>> type : (byte & 63 | char << 6) >>> 0; + t3 = state + type; + if (!(t3 >= 0 && t3 < 144)) + return A.ioore(_s144_, t3); + state = _s144_.charCodeAt(t3); + if (state === 0) { + t3 = A.Primitives_stringFromCharCode(char); + buffer._contents += t3; + if (i === end) + break $label0$0; + break; + } else if ((state & 1) !== 0) { + if (t2) + switch (state) { + case 69: + case 67: + t3 = A.Primitives_stringFromCharCode(_65533); + buffer._contents += t3; + break; + case 65: + t3 = A.Primitives_stringFromCharCode(_65533); + buffer._contents += t3; + --i; + break; + default: + t3 = A.Primitives_stringFromCharCode(_65533); + buffer._contents = (buffer._contents += t3) + t3; + break; + } + else { + _this._state = state; + _this._charOrIndex = i - 1; + return ""; + } + state = 0; + } + if (i === end) + break $label0$0; + i0 = i + 1; + if (!(i >= 0 && i < t1)) + return A.ioore(bytes, i); + byte = bytes[i]; + } + i0 = i + 1; + if (!(i >= 0 && i < t1)) + return A.ioore(bytes, i); + byte = bytes[i]; + if (byte < 128) { + for (;;) { + if (!(i0 < end)) { + markEnd = end; + break; + } + i1 = i0 + 1; + if (!(i0 >= 0 && i0 < t1)) + return A.ioore(bytes, i0); + byte = bytes[i0]; + if (byte >= 128) { + markEnd = i1 - 1; + i0 = i1; + break; + } + i0 = i1; + } + if (markEnd - i < 20) + for (m = i; m < markEnd; ++m) { + if (!(m < t1)) + return A.ioore(bytes, m); + t3 = A.Primitives_stringFromCharCode(bytes[m]); + buffer._contents += t3; + } + else { + t3 = A.String_String$fromCharCodes(bytes, i, markEnd); + buffer._contents += t3; + } + if (markEnd === end) + break $label0$0; + i = i0; + } else + i = i0; + } + if (single && state > 32) + if (t2) { + t1 = A.Primitives_stringFromCharCode(_65533); + buffer._contents += t1; + } else { + _this._state = 77; + _this._charOrIndex = end; + return ""; + } + _this._state = state; + _this._charOrIndex = char; + t1 = buffer._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + } + }; + A.DateTime.prototype = { + $eq(_, other) { + var t1; + if (other == null) + return false; + t1 = false; + if (other instanceof A.DateTime) + if (this._core$_value === other._core$_value) + t1 = this._microsecond === other._microsecond; + return t1; + }, + get$hashCode(_) { + return A.Object_hash(this._core$_value, this._microsecond); + }, + toString$0(_) { + var _this = this, + y = A.DateTime__fourDigits(A.Primitives_getYear(_this)), + m = A.DateTime__twoDigits(A.Primitives_getMonth(_this)), + d = A.DateTime__twoDigits(A.Primitives_getDay(_this)), + h = A.DateTime__twoDigits(A.Primitives_getHours(_this)), + min = A.DateTime__twoDigits(A.Primitives_getMinutes(_this)), + sec = A.DateTime__twoDigits(A.Primitives_getSeconds(_this)), + ms = A.DateTime__threeDigits(A.Primitives_getMilliseconds(_this)), + t1 = _this._microsecond, + us = t1 === 0 ? "" : A.DateTime__threeDigits(t1); + return y + "-" + m + "-" + d + " " + h + ":" + min + ":" + sec + "." + ms + us + "Z"; + } + }; + A.Duration.prototype = { + $eq(_, other) { + if (other == null) + return false; + return other instanceof A.Duration && this._duration === other._duration; + }, + get$hashCode(_) { + return B.JSInt_methods.get$hashCode(this._duration); + }, + toString$0(_) { + var minutesPadding, seconds, secondsPadding, + microseconds = this._duration, + microseconds0 = microseconds % 3600000000, + minutes = B.JSInt_methods._tdivFast$1(microseconds0, 60000000); + microseconds0 %= 60000000; + minutesPadding = minutes < 10 ? "0" : ""; + seconds = B.JSInt_methods._tdivFast$1(microseconds0, 1000000); + secondsPadding = seconds < 10 ? "0" : ""; + return "" + (microseconds / 3600000000 | 0) + ":" + minutesPadding + minutes + ":" + secondsPadding + seconds + "." + B.JSString_methods.padLeft$2(B.JSInt_methods.toString$0(microseconds0 % 1000000), 6, "0"); + } + }; + A.Error.prototype = { + get$stackTrace() { + return A.Primitives_extractStackTrace(this); + } + }; + A.AssertionError.prototype = { + toString$0(_) { + var t1 = this.message; + if (t1 != null) + return "Assertion failed: " + A.Error_safeToString(t1); + return "Assertion failed"; + } + }; + A.TypeError.prototype = {}; + A.ArgumentError.prototype = { + get$_errorName() { + return "Invalid argument" + (!this._hasValue ? "(s)" : ""); + }, + get$_errorExplanation() { + return ""; + }, + toString$0(_) { + var _this = this, + $name = _this.name, + nameString = $name == null ? "" : " (" + $name + ")", + message = _this.message, + messageString = message == null ? "" : ": " + A.S(message), + prefix = _this.get$_errorName() + nameString + messageString; + if (!_this._hasValue) + return prefix; + return prefix + _this.get$_errorExplanation() + ": " + A.Error_safeToString(_this.get$invalidValue()); + }, + get$invalidValue() { + return this.invalidValue; + } + }; + A.RangeError.prototype = { + get$invalidValue() { + return A._asNumQ(this.invalidValue); + }, + get$_errorName() { + return "RangeError"; + }, + get$_errorExplanation() { + var explanation, + start = this.start, + end = this.end; + if (start == null) + explanation = end != null ? ": Not less than or equal to " + A.S(end) : ""; + else if (end == null) + explanation = ": Not greater than or equal to " + A.S(start); + else if (end > start) + explanation = ": Not in inclusive range " + A.S(start) + ".." + A.S(end); + else + explanation = end < start ? ": Valid value range is empty" : ": Only valid value is " + A.S(start); + return explanation; + } + }; + A.IndexError.prototype = { + get$invalidValue() { + return A._asInt(this.invalidValue); + }, + get$_errorName() { + return "RangeError"; + }, + get$_errorExplanation() { + if (A._asInt(this.invalidValue) < 0) + return ": index must not be negative"; + var t1 = this.length; + if (t1 === 0) + return ": no indices are valid"; + return ": index should be less than " + t1; + }, + get$length(receiver) { + return this.length; + } + }; + A.UnsupportedError.prototype = { + toString$0(_) { + return "Unsupported operation: " + this.message; + } + }; + A.UnimplementedError.prototype = { + toString$0(_) { + return "UnimplementedError: " + this.message; + } + }; + A.StateError.prototype = { + toString$0(_) { + return "Bad state: " + this.message; + } + }; + A.ConcurrentModificationError.prototype = { + toString$0(_) { + var t1 = this.modifiedObject; + if (t1 == null) + return "Concurrent modification during iteration."; + return "Concurrent modification during iteration: " + A.Error_safeToString(t1) + "."; + } + }; + A.OutOfMemoryError.prototype = { + toString$0(_) { + return "Out of Memory"; + }, + get$stackTrace() { + return null; + }, + $isError: 1 + }; + A.StackOverflowError.prototype = { + toString$0(_) { + return "Stack Overflow"; + }, + get$stackTrace() { + return null; + }, + $isError: 1 + }; + A._Exception.prototype = { + toString$0(_) { + return "Exception: " + this.message; + }, + $isException: 1 + }; + A.FormatException.prototype = { + toString$0(_) { + var t1, lineEnd, lineNum, lineStart, previousCharWasCR, i, char, prefix, postfix, end, start, + message = this.message, + report = "" !== message ? "FormatException: " + message : "FormatException", + offset = this.offset, + source = this.source; + if (typeof source == "string") { + if (offset != null) + t1 = offset < 0 || offset > source.length; + else + t1 = false; + if (t1) + offset = null; + if (offset == null) { + if (source.length > 78) + source = B.JSString_methods.substring$2(source, 0, 75) + "..."; + return report + "\n" + source; + } + for (lineEnd = source.length, lineNum = 1, lineStart = 0, previousCharWasCR = false, i = 0; i < offset; ++i) { + if (!(i < lineEnd)) + return A.ioore(source, i); + char = source.charCodeAt(i); + if (char === 10) { + if (lineStart !== i || !previousCharWasCR) + ++lineNum; + lineStart = i + 1; + previousCharWasCR = false; + } else if (char === 13) { + ++lineNum; + lineStart = i + 1; + previousCharWasCR = true; + } + } + report = lineNum > 1 ? report + (" (at line " + lineNum + ", character " + (offset - lineStart + 1) + ")\n") : report + (" (at character " + (offset + 1) + ")\n"); + for (i = offset; i < lineEnd; ++i) { + if (!(i >= 0)) + return A.ioore(source, i); + char = source.charCodeAt(i); + if (char === 10 || char === 13) { + lineEnd = i; + break; + } + } + prefix = ""; + if (lineEnd - lineStart > 78) { + postfix = "..."; + if (offset - lineStart < 75) { + end = lineStart + 75; + start = lineStart; + } else { + if (lineEnd - offset < 75) { + start = lineEnd - 75; + end = lineEnd; + postfix = ""; + } else { + start = offset - 36; + end = offset + 36; + } + prefix = "..."; + } + } else { + end = lineEnd; + start = lineStart; + postfix = ""; + } + return report + prefix + B.JSString_methods.substring$2(source, start, end) + postfix + "\n" + B.JSString_methods.$mul(" ", offset - start + prefix.length) + "^\n"; + } else + return offset != null ? report + (" (at offset " + A.S(offset) + ")") : report; + }, + $isException: 1 + }; + A.Iterable.prototype = { + map$1$1(_, toElement, $T) { + var t1 = A._instanceType(this); + return A.MappedIterable_MappedIterable(this, t1._bind$1($T)._eval$1("1(Iterable.E)")._as(toElement), t1._eval$1("Iterable.E"), $T); + }, + toList$1$growable(_, growable) { + var t1 = A._instanceType(this)._eval$1("Iterable.E"); + if (growable) + t1 = A.List_List$_of(this, t1); + else { + t1 = A.List_List$_of(this, t1); + t1.$flags = 1; + t1 = t1; + } + return t1; + }, + toList$0(_) { + return this.toList$1$growable(0, true); + }, + get$length(_) { + var count, + it = this.get$iterator(this); + for (count = 0; it.moveNext$0();) + ++count; + return count; + }, + get$isEmpty(_) { + return !this.get$iterator(this).moveNext$0(); + }, + get$isNotEmpty(_) { + return !this.get$isEmpty(this); + }, + take$1(_, count) { + return A.TakeIterable_TakeIterable(this, count, A._instanceType(this)._eval$1("Iterable.E")); + }, + skip$1(_, count) { + return A.SkipIterable_SkipIterable(this, count, A._instanceType(this)._eval$1("Iterable.E")); + }, + skipWhile$1(_, test) { + var t1 = A._instanceType(this); + return new A.SkipWhileIterable(this, t1._eval$1("bool(Iterable.E)")._as(test), t1._eval$1("SkipWhileIterable")); + }, + get$first(_) { + var it = this.get$iterator(this); + if (!it.moveNext$0()) + throw A.wrapException(A.IterableElementError_noElement()); + return it.get$current(); + }, + get$last(_) { + var result, + it = this.get$iterator(this); + if (!it.moveNext$0()) + throw A.wrapException(A.IterableElementError_noElement()); + do + result = it.get$current(); + while (it.moveNext$0()); + return result; + }, + elementAt$1(_, index) { + var iterator, skipCount; + A.RangeError_checkNotNegative(index, "index"); + iterator = this.get$iterator(this); + for (skipCount = index; iterator.moveNext$0();) { + if (skipCount === 0) + return iterator.get$current(); + --skipCount; + } + throw A.wrapException(A.IndexError$withLength(index, index - skipCount, this, "index")); + }, + toString$0(_) { + return A.Iterable_iterableToShortString(this, "(", ")"); + } + }; + A.Null.prototype = { + get$hashCode(_) { + return A.Object.prototype.get$hashCode.call(this, 0); + }, + toString$0(_) { + return "null"; + } + }; + A.Object.prototype = {$isObject: 1, + $eq(_, other) { + return this === other; + }, + get$hashCode(_) { + return A.Primitives_objectHashCode(this); + }, + toString$0(_) { + return "Instance of '" + A.Primitives_objectTypeName(this) + "'"; + }, + get$runtimeType(_) { + return A.getRuntimeTypeOfDartObject(this); + }, + toString() { + return this.toString$0(this); + } + }; + A._StringStackTrace.prototype = { + toString$0(_) { + return this._stackTrace; + }, + $isStackTrace: 1 + }; + A.StringBuffer.prototype = { + get$length(_) { + return this._contents.length; + }, + write$1(obj) { + var t1 = A.S(obj); + this._contents += t1; + }, + writeCharCode$1(charCode) { + var t1 = A.Primitives_stringFromCharCode(charCode); + this._contents += t1; + }, + toString$0(_) { + var t1 = this._contents; + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + $isStringSink: 1 + }; + A.Uri_splitQueryString_closure.prototype = { + call$2(map, element) { + var index, key, value, t1; + type$.Map_String_String._as(map); + A._asString(element); + index = B.JSString_methods.indexOf$1(element, "="); + if (index === -1) { + if (element !== "") + map.$indexSet(0, A._Uri__uriDecode(element, 0, element.length, this.encoding, true), ""); + } else if (index !== 0) { + key = B.JSString_methods.substring$2(element, 0, index); + value = B.JSString_methods.substring$1(element, index + 1); + t1 = this.encoding; + map.$indexSet(0, A._Uri__uriDecode(key, 0, key.length, t1, true), A._Uri__uriDecode(value, 0, value.length, t1, true)); + } + return map; + }, + $signature: 22 + }; + A.Uri_parseIPv6Address_error.prototype = { + call$2(msg, position) { + throw A.wrapException(A.FormatException$("Illegal IPv6 address, " + msg, this.host, position)); + }, + $signature: 32 + }; + A._Uri.prototype = { + get$_text() { + var t1, t2, t3, t4, _this = this, + value = _this.___Uri__text_FI; + if (value === $) { + t1 = _this.scheme; + t2 = t1.length !== 0 ? t1 + ":" : ""; + t3 = _this._host; + t4 = t3 == null; + if (!t4 || t1 === "file") { + t1 = t2 + "//"; + t2 = _this._userInfo; + if (t2.length !== 0) + t1 = t1 + t2 + "@"; + if (!t4) + t1 += t3; + t2 = _this._port; + if (t2 != null) + t1 = t1 + ":" + A.S(t2); + } else + t1 = t2; + t1 += _this.path; + t2 = _this._query; + if (t2 != null) + t1 = t1 + "?" + t2; + t2 = _this._fragment; + if (t2 != null) + t1 = t1 + "#" + t2; + value = _this.___Uri__text_FI = t1.charCodeAt(0) == 0 ? t1 : t1; + } + return value; + }, + get$pathSegments() { + var pathToSplit, t1, result, _this = this, + value = _this.___Uri_pathSegments_FI; + if (value === $) { + pathToSplit = _this.path; + t1 = pathToSplit.length; + if (t1 !== 0) { + if (0 >= t1) + return A.ioore(pathToSplit, 0); + t1 = pathToSplit.charCodeAt(0) === 47; + } else + t1 = false; + if (t1) + pathToSplit = B.JSString_methods.substring$1(pathToSplit, 1); + result = pathToSplit.length === 0 ? B.List_empty : A.List_List$unmodifiable(new A.MappedListIterable(A._setArrayType(pathToSplit.split("/"), type$.JSArray_String), type$.dynamic_Function_String._as(A.core_Uri_decodeComponent$closure()), type$.MappedListIterable_String_dynamic), type$.String); + _this.___Uri_pathSegments_FI !== $ && A.throwLateFieldADI("pathSegments"); + value = _this.___Uri_pathSegments_FI = result; + } + return value; + }, + get$hashCode(_) { + var result, _this = this, + value = _this.___Uri_hashCode_FI; + if (value === $) { + result = B.JSString_methods.get$hashCode(_this.get$_text()); + _this.___Uri_hashCode_FI !== $ && A.throwLateFieldADI("hashCode"); + _this.___Uri_hashCode_FI = result; + value = result; + } + return value; + }, + get$queryParameters() { + var t1, _this = this, + value = _this.___Uri_queryParameters_FI; + if (value === $) { + t1 = _this._query; + t1 = A.Uri_splitQueryString(t1 == null ? "" : t1); + _this.___Uri_queryParameters_FI !== $ && A.throwLateFieldADI("queryParameters"); + value = _this.___Uri_queryParameters_FI = new A.UnmodifiableMapView(t1, type$.UnmodifiableMapView_String_String); + } + return value; + }, + get$userInfo() { + return this._userInfo; + }, + get$host() { + var host = this._host; + if (host == null) + return ""; + if (B.JSString_methods.startsWith$1(host, "[") && !B.JSString_methods.startsWith$2(host, "v", 1)) + return B.JSString_methods.substring$2(host, 1, host.length - 1); + return host; + }, + get$port() { + var t1 = this._port; + return t1 == null ? A._Uri__defaultPort(this.scheme) : t1; + }, + get$query() { + var t1 = this._query; + return t1 == null ? "" : t1; + }, + get$fragment() { + var t1 = this._fragment; + return t1 == null ? "" : t1; + }, + isScheme$1(scheme) { + var thisScheme = this.scheme; + if (scheme.length !== thisScheme.length) + return false; + return A._caseInsensitiveCompareStart(scheme, thisScheme, 0) >= 0; + }, + replace$1$scheme(scheme) { + var isFile, userInfo, port, host, currentPath, t1, path, _this = this; + scheme = A._Uri__makeScheme(scheme, 0, scheme.length); + isFile = scheme === "file"; + userInfo = _this._userInfo; + port = _this._port; + if (scheme !== _this.scheme) + port = A._Uri__makePort(port, scheme); + host = _this._host; + if (!(host != null)) + host = userInfo.length !== 0 || port != null || isFile ? "" : null; + currentPath = _this.path; + if (!isFile) + t1 = host != null && currentPath.length !== 0; + else + t1 = true; + if (t1 && !B.JSString_methods.startsWith$1(currentPath, "/")) + currentPath = "/" + currentPath; + path = currentPath; + return A._Uri$_internal(scheme, userInfo, host, port, path, _this._query, _this._fragment); + }, + removeFragment$0() { + var _this = this; + if (_this._fragment == null) + return _this; + return A._Uri$_internal(_this.scheme, _this._userInfo, _this._host, _this._port, _this.path, _this._query, null); + }, + _mergePaths$2(base, reference) { + var backCount, refStart, baseEnd, t1, newEnd, delta, t2, t3, t4; + for (backCount = 0, refStart = 0; B.JSString_methods.startsWith$2(reference, "../", refStart);) { + refStart += 3; + ++backCount; + } + baseEnd = B.JSString_methods.lastIndexOf$1(base, "/"); + t1 = base.length; + for (;;) { + if (!(baseEnd > 0 && backCount > 0)) + break; + newEnd = B.JSString_methods.lastIndexOf$2(base, "/", baseEnd - 1); + if (newEnd < 0) + break; + delta = baseEnd - newEnd; + t2 = delta !== 2; + t3 = false; + if (!t2 || delta === 3) { + t4 = newEnd + 1; + if (!(t4 < t1)) + return A.ioore(base, t4); + if (base.charCodeAt(t4) === 46) + if (t2) { + t2 = newEnd + 2; + if (!(t2 < t1)) + return A.ioore(base, t2); + t2 = base.charCodeAt(t2) === 46; + } else + t2 = true; + else + t2 = t3; + } else + t2 = t3; + if (t2) + break; + --backCount; + baseEnd = newEnd; + } + return B.JSString_methods.replaceRange$3(base, baseEnd + 1, null, B.JSString_methods.substring$1(reference, refStart - 3 * backCount)); + }, + resolve$1(reference) { + return this.resolveUri$1(A.Uri_parse(reference)); + }, + resolveUri$1(reference) { + var targetScheme, t1, targetUserInfo, targetHost, targetPort, targetPath, targetQuery, packageNameEnd, packageName, mergedPath, fragment, _this = this; + if (reference.get$scheme().length !== 0) + return reference; + else { + targetScheme = _this.scheme; + if (reference.get$hasAuthority()) { + t1 = reference.replace$1$scheme(targetScheme); + return t1; + } else { + targetUserInfo = _this._userInfo; + targetHost = _this._host; + targetPort = _this._port; + targetPath = _this.path; + if (reference.get$hasEmptyPath()) + targetQuery = reference.get$hasQuery() ? reference.get$query() : _this._query; + else { + packageNameEnd = A._Uri__packageNameEnd(_this, targetPath); + if (packageNameEnd > 0) { + packageName = B.JSString_methods.substring$2(targetPath, 0, packageNameEnd); + targetPath = reference.get$hasAbsolutePath() ? packageName + A._Uri__removeDotSegments(reference.get$path()) : packageName + A._Uri__removeDotSegments(_this._mergePaths$2(B.JSString_methods.substring$1(targetPath, packageName.length), reference.get$path())); + } else if (reference.get$hasAbsolutePath()) + targetPath = A._Uri__removeDotSegments(reference.get$path()); + else if (targetPath.length === 0) + if (targetHost == null) + targetPath = targetScheme.length === 0 ? reference.get$path() : A._Uri__removeDotSegments(reference.get$path()); + else + targetPath = A._Uri__removeDotSegments("/" + reference.get$path()); + else { + mergedPath = _this._mergePaths$2(targetPath, reference.get$path()); + t1 = targetScheme.length === 0; + if (!t1 || targetHost != null || B.JSString_methods.startsWith$1(targetPath, "/")) + targetPath = A._Uri__removeDotSegments(mergedPath); + else + targetPath = A._Uri__normalizeRelativePath(mergedPath, !t1 || targetHost != null); + } + targetQuery = reference.get$hasQuery() ? reference.get$query() : null; + } + } + } + fragment = reference.get$hasFragment() ? reference.get$fragment() : null; + return A._Uri$_internal(targetScheme, targetUserInfo, targetHost, targetPort, targetPath, targetQuery, fragment); + }, + get$hasAuthority() { + return this._host != null; + }, + get$hasQuery() { + return this._query != null; + }, + get$hasFragment() { + return this._fragment != null; + }, + get$hasEmptyPath() { + return this.path.length === 0; + }, + get$hasAbsolutePath() { + return B.JSString_methods.startsWith$1(this.path, "/"); + }, + toFilePath$0() { + var pathSegments, _this = this, + t1 = _this.scheme; + if (t1 !== "" && t1 !== "file") + throw A.wrapException(A.UnsupportedError$("Cannot extract a file path from a " + t1 + " URI")); + t1 = _this._query; + if ((t1 == null ? "" : t1) !== "") + throw A.wrapException(A.UnsupportedError$(string$.Cannotfq)); + t1 = _this._fragment; + if ((t1 == null ? "" : t1) !== "") + throw A.wrapException(A.UnsupportedError$(string$.Cannotff)); + if (_this._host != null && _this.get$host() !== "") + A.throwExpression(A.UnsupportedError$(string$.Cannotn)); + pathSegments = _this.get$pathSegments(); + A._Uri__checkNonWindowsPathReservedCharacters(pathSegments, false); + t1 = A.StringBuffer__writeAll(B.JSString_methods.startsWith$1(_this.path, "/") ? "/" : "", pathSegments, "/"); + t1 = t1.charCodeAt(0) == 0 ? t1 : t1; + return t1; + }, + toString$0(_) { + return this.get$_text(); + }, + $eq(_, other) { + var t1, t2, t3, _this = this; + if (other == null) + return false; + if (_this === other) + return true; + t1 = false; + if (type$.Uri._is(other)) + if (_this.scheme === other.get$scheme()) + if (_this._host != null === other.get$hasAuthority()) + if (_this._userInfo === other.get$userInfo()) + if (_this.get$host() === other.get$host()) + if (_this.get$port() === other.get$port()) + if (_this.path === other.get$path()) { + t2 = _this._query; + t3 = t2 == null; + if (!t3 === other.get$hasQuery()) { + if (t3) + t2 = ""; + if (t2 === other.get$query()) { + t2 = _this._fragment; + t3 = t2 == null; + if (!t3 === other.get$hasFragment()) { + t1 = t3 ? "" : t2; + t1 = t1 === other.get$fragment(); + } + } + } + } + return t1; + }, + $isUri: 1, + get$scheme() { + return this.scheme; + }, + get$path() { + return this.path; + } + }; + A._Uri__makePath_closure.prototype = { + call$1(s) { + return A._Uri__uriEncode(64, A._asString(s), B.C_Utf8Codec, false); + }, + $signature: 15 + }; + A.UriData.prototype = { + get$uri() { + var t2, queryIndex, end, query, _this = this, _null = null, + t1 = _this._uriCache; + if (t1 == null) { + t1 = _this._separatorIndices; + if (0 >= t1.length) + return A.ioore(t1, 0); + t2 = _this._text; + t1 = t1[0] + 1; + queryIndex = B.JSString_methods.indexOf$2(t2, "?", t1); + end = t2.length; + if (queryIndex >= 0) { + query = A._Uri__normalizeOrSubstring(t2, queryIndex + 1, end, 256, false, false); + end = queryIndex; + } else + query = _null; + t1 = _this._uriCache = new A._DataUri("data", "", _null, _null, A._Uri__normalizeOrSubstring(t2, t1, end, 128, false, false), query, _null); + } + return t1; + }, + toString$0(_) { + var t2, + t1 = this._separatorIndices; + if (0 >= t1.length) + return A.ioore(t1, 0); + t2 = this._text; + return t1[0] === -1 ? "data:" + t2 : t2; + } + }; + A._SimpleUri.prototype = { + get$hasAuthority() { + return this._hostStart > 0; + }, + get$hasPort() { + return this._hostStart > 0 && this._portStart + 1 < this._pathStart; + }, + get$hasQuery() { + return this._queryStart < this._fragmentStart; + }, + get$hasFragment() { + return this._fragmentStart < this._uri.length; + }, + get$hasAbsolutePath() { + return B.JSString_methods.startsWith$2(this._uri, "/", this._pathStart); + }, + get$hasEmptyPath() { + return this._pathStart === this._queryStart; + }, + get$scheme() { + var t1 = this._schemeCache; + return t1 == null ? this._schemeCache = this._computeScheme$0() : t1; + }, + _computeScheme$0() { + var t2, _this = this, + t1 = _this._schemeEnd; + if (t1 <= 0) + return ""; + t2 = t1 === 4; + if (t2 && B.JSString_methods.startsWith$1(_this._uri, "http")) + return "http"; + if (t1 === 5 && B.JSString_methods.startsWith$1(_this._uri, "https")) + return "https"; + if (t2 && B.JSString_methods.startsWith$1(_this._uri, "file")) + return "file"; + if (t1 === 7 && B.JSString_methods.startsWith$1(_this._uri, "package")) + return "package"; + return B.JSString_methods.substring$2(_this._uri, 0, t1); + }, + get$userInfo() { + var t1 = this._hostStart, + t2 = this._schemeEnd + 3; + return t1 > t2 ? B.JSString_methods.substring$2(this._uri, t2, t1 - 1) : ""; + }, + get$host() { + var t1 = this._hostStart; + return t1 > 0 ? B.JSString_methods.substring$2(this._uri, t1, this._portStart) : ""; + }, + get$port() { + var t1, _this = this; + if (_this.get$hasPort()) + return A.int_parse(B.JSString_methods.substring$2(_this._uri, _this._portStart + 1, _this._pathStart)); + t1 = _this._schemeEnd; + if (t1 === 4 && B.JSString_methods.startsWith$1(_this._uri, "http")) + return 80; + if (t1 === 5 && B.JSString_methods.startsWith$1(_this._uri, "https")) + return 443; + return 0; + }, + get$path() { + return B.JSString_methods.substring$2(this._uri, this._pathStart, this._queryStart); + }, + get$query() { + var t1 = this._queryStart, + t2 = this._fragmentStart; + return t1 < t2 ? B.JSString_methods.substring$2(this._uri, t1 + 1, t2) : ""; + }, + get$fragment() { + var t1 = this._fragmentStart, + t2 = this._uri; + return t1 < t2.length ? B.JSString_methods.substring$1(t2, t1 + 1) : ""; + }, + get$queryParameters() { + if (this._queryStart >= this._fragmentStart) + return B.Map_empty; + return new A.UnmodifiableMapView(A.Uri_splitQueryString(this.get$query()), type$.UnmodifiableMapView_String_String); + }, + _isPort$1(port) { + var portDigitStart = this._portStart + 1; + return portDigitStart + port.length === this._pathStart && B.JSString_methods.startsWith$2(this._uri, port, portDigitStart); + }, + removeFragment$0() { + var _this = this, + t1 = _this._fragmentStart, + t2 = _this._uri; + if (t1 >= t2.length) + return _this; + return new A._SimpleUri(B.JSString_methods.substring$2(t2, 0, t1), _this._schemeEnd, _this._hostStart, _this._portStart, _this._pathStart, _this._queryStart, t1, _this._schemeCache); + }, + replace$1$scheme(scheme) { + var schemeChanged, isFile, t1, userInfo, port, host, t2, path, t3, query, fragment, _this = this, _null = null; + scheme = A._Uri__makeScheme(scheme, 0, scheme.length); + schemeChanged = !(_this._schemeEnd === scheme.length && B.JSString_methods.startsWith$1(_this._uri, scheme)); + isFile = scheme === "file"; + t1 = _this._hostStart; + userInfo = t1 > 0 ? B.JSString_methods.substring$2(_this._uri, _this._schemeEnd + 3, t1) : ""; + port = _this.get$hasPort() ? _this.get$port() : _null; + if (schemeChanged) + port = A._Uri__makePort(port, scheme); + t1 = _this._hostStart; + if (t1 > 0) + host = B.JSString_methods.substring$2(_this._uri, t1, _this._portStart); + else + host = userInfo.length !== 0 || port != null || isFile ? "" : _null; + t1 = _this._uri; + t2 = _this._queryStart; + path = B.JSString_methods.substring$2(t1, _this._pathStart, t2); + if (!isFile) + t3 = host != null && path.length !== 0; + else + t3 = true; + if (t3 && !B.JSString_methods.startsWith$1(path, "/")) + path = "/" + path; + t3 = _this._fragmentStart; + query = t2 < t3 ? B.JSString_methods.substring$2(t1, t2 + 1, t3) : _null; + t2 = _this._fragmentStart; + fragment = t2 < t1.length ? B.JSString_methods.substring$1(t1, t2 + 1) : _null; + return A._Uri$_internal(scheme, userInfo, host, port, path, query, fragment); + }, + resolve$1(reference) { + return this.resolveUri$1(A.Uri_parse(reference)); + }, + resolveUri$1(reference) { + if (reference instanceof A._SimpleUri) + return this._simpleMerge$2(this, reference); + return this._toNonSimple$0().resolveUri$1(reference); + }, + _simpleMerge$2(base, ref) { + var t2, t3, t4, isSimple, delta, refStart, basePathStart, packageNameEnd, basePathStart0, baseStart, baseEnd, baseUri, baseStart0, backCount, refStart0, insert, + t1 = ref._schemeEnd; + if (t1 > 0) + return ref; + t2 = ref._hostStart; + if (t2 > 0) { + t3 = base._schemeEnd; + if (t3 <= 0) + return ref; + t4 = t3 === 4; + if (t4 && B.JSString_methods.startsWith$1(base._uri, "file")) + isSimple = ref._pathStart !== ref._queryStart; + else if (t4 && B.JSString_methods.startsWith$1(base._uri, "http")) + isSimple = !ref._isPort$1("80"); + else + isSimple = !(t3 === 5 && B.JSString_methods.startsWith$1(base._uri, "https")) || !ref._isPort$1("443"); + if (isSimple) { + delta = t3 + 1; + return new A._SimpleUri(B.JSString_methods.substring$2(base._uri, 0, delta) + B.JSString_methods.substring$1(ref._uri, t1 + 1), t3, t2 + delta, ref._portStart + delta, ref._pathStart + delta, ref._queryStart + delta, ref._fragmentStart + delta, base._schemeCache); + } else + return this._toNonSimple$0().resolveUri$1(ref); + } + refStart = ref._pathStart; + t1 = ref._queryStart; + if (refStart === t1) { + t2 = ref._fragmentStart; + if (t1 < t2) { + t3 = base._queryStart; + delta = t3 - t1; + return new A._SimpleUri(B.JSString_methods.substring$2(base._uri, 0, t3) + B.JSString_methods.substring$1(ref._uri, t1), base._schemeEnd, base._hostStart, base._portStart, base._pathStart, t1 + delta, t2 + delta, base._schemeCache); + } + t1 = ref._uri; + if (t2 < t1.length) { + t3 = base._fragmentStart; + return new A._SimpleUri(B.JSString_methods.substring$2(base._uri, 0, t3) + B.JSString_methods.substring$1(t1, t2), base._schemeEnd, base._hostStart, base._portStart, base._pathStart, base._queryStart, t2 + (t3 - t2), base._schemeCache); + } + return base.removeFragment$0(); + } + t2 = ref._uri; + if (B.JSString_methods.startsWith$2(t2, "/", refStart)) { + basePathStart = base._pathStart; + packageNameEnd = A._SimpleUri__packageNameEnd(this); + basePathStart0 = packageNameEnd > 0 ? packageNameEnd : basePathStart; + delta = basePathStart0 - refStart; + return new A._SimpleUri(B.JSString_methods.substring$2(base._uri, 0, basePathStart0) + B.JSString_methods.substring$1(t2, refStart), base._schemeEnd, base._hostStart, base._portStart, basePathStart, t1 + delta, ref._fragmentStart + delta, base._schemeCache); + } + baseStart = base._pathStart; + baseEnd = base._queryStart; + if (baseStart === baseEnd && base._hostStart > 0) { + while (B.JSString_methods.startsWith$2(t2, "../", refStart)) + refStart += 3; + delta = baseStart - refStart + 1; + return new A._SimpleUri(B.JSString_methods.substring$2(base._uri, 0, baseStart) + "/" + B.JSString_methods.substring$1(t2, refStart), base._schemeEnd, base._hostStart, base._portStart, baseStart, t1 + delta, ref._fragmentStart + delta, base._schemeCache); + } + baseUri = base._uri; + packageNameEnd = A._SimpleUri__packageNameEnd(this); + if (packageNameEnd >= 0) + baseStart0 = packageNameEnd; + else + for (baseStart0 = baseStart; B.JSString_methods.startsWith$2(baseUri, "../", baseStart0);) + baseStart0 += 3; + backCount = 0; + for (;;) { + refStart0 = refStart + 3; + if (!(refStart0 <= t1 && B.JSString_methods.startsWith$2(t2, "../", refStart))) + break; + ++backCount; + refStart = refStart0; + } + for (t3 = baseUri.length, insert = ""; baseEnd > baseStart0;) { + --baseEnd; + if (!(baseEnd >= 0 && baseEnd < t3)) + return A.ioore(baseUri, baseEnd); + if (baseUri.charCodeAt(baseEnd) === 47) { + if (backCount === 0) { + insert = "/"; + break; + } + --backCount; + insert = "/"; + } + } + if (baseEnd === baseStart0 && base._schemeEnd <= 0 && !B.JSString_methods.startsWith$2(baseUri, "/", baseStart)) { + refStart -= backCount * 3; + insert = ""; + } + delta = baseEnd - refStart + insert.length; + return new A._SimpleUri(B.JSString_methods.substring$2(baseUri, 0, baseEnd) + insert + B.JSString_methods.substring$1(t2, refStart), base._schemeEnd, base._hostStart, base._portStart, baseStart, t1 + delta, ref._fragmentStart + delta, base._schemeCache); + }, + toFilePath$0() { + var t2, _this = this, + t1 = _this._schemeEnd; + if (t1 >= 0) { + t2 = !(t1 === 4 && B.JSString_methods.startsWith$1(_this._uri, "file")); + t1 = t2; + } else + t1 = false; + if (t1) + throw A.wrapException(A.UnsupportedError$("Cannot extract a file path from a " + _this.get$scheme() + " URI")); + t1 = _this._queryStart; + t2 = _this._uri; + if (t1 < t2.length) { + if (t1 < _this._fragmentStart) + throw A.wrapException(A.UnsupportedError$(string$.Cannotfq)); + throw A.wrapException(A.UnsupportedError$(string$.Cannotff)); + } + if (_this._hostStart < _this._portStart) + A.throwExpression(A.UnsupportedError$(string$.Cannotn)); + t1 = B.JSString_methods.substring$2(t2, _this._pathStart, t1); + return t1; + }, + get$hashCode(_) { + var t1 = this._hashCodeCache; + return t1 == null ? this._hashCodeCache = B.JSString_methods.get$hashCode(this._uri) : t1; + }, + $eq(_, other) { + if (other == null) + return false; + if (this === other) + return true; + return type$.Uri._is(other) && this._uri === other.toString$0(0); + }, + _toNonSimple$0() { + var _this = this, _null = null, + t1 = _this.get$scheme(), + t2 = _this.get$userInfo(), + t3 = _this._hostStart > 0 ? _this.get$host() : _null, + t4 = _this.get$hasPort() ? _this.get$port() : _null, + t5 = _this._uri, + t6 = _this._queryStart, + t7 = B.JSString_methods.substring$2(t5, _this._pathStart, t6), + t8 = _this._fragmentStart; + t6 = t6 < t8 ? _this.get$query() : _null; + return A._Uri$_internal(t1, t2, t3, t4, t7, t6, t8 < t5.length ? _this.get$fragment() : _null); + }, + toString$0(_) { + return this._uri; + }, + $isUri: 1 + }; + A._DataUri.prototype = {}; + A.NullRejectionException.prototype = { + toString$0(_) { + return "Promise was rejected with a value of `" + (this.isUndefined ? "undefined" : "null") + "`."; + }, + $isException: 1 + }; + A.jsify__convert.prototype = { + call$1(o) { + var t1, convertedMap, key, convertedList; + if (A._noJsifyRequired(o)) + return o; + t1 = this._convertedObjects; + if (t1.containsKey$1(o)) + return t1.$index(0, o); + if (type$.Map_dynamic_dynamic._is(o)) { + convertedMap = {}; + t1.$indexSet(0, o, convertedMap); + for (t1 = o.get$keys(), t1 = t1.get$iterator(t1); t1.moveNext$0();) { + key = t1.get$current(); + convertedMap[key] = this.call$1(o.$index(0, key)); + } + return convertedMap; + } else if (type$.Iterable_dynamic._is(o)) { + convertedList = []; + t1.$indexSet(0, o, convertedList); + B.JSArray_methods.addAll$1(convertedList, J.map$1$1$ax(o, this, type$.dynamic)); + return convertedList; + } else + return o; + }, + $signature: 16 + }; + A.promiseToFuture_closure.prototype = { + call$1(r) { + return this.completer.complete$1(this.T._eval$1("0/?")._as(r)); + }, + $signature: 6 + }; + A.promiseToFuture_closure0.prototype = { + call$1(e) { + if (e == null) + return this.completer.completeError$1(new A.NullRejectionException(e === undefined)); + return this.completer.completeError$1(e); + }, + $signature: 6 + }; + A.dartify_convert.prototype = { + call$1(o) { + var t1, millisSinceEpoch, proto, t2, dartObject, originalKeys, dartKeys, i, jsKey, dartKey, l, $length; + if (A._noDartifyRequired(o)) + return o; + t1 = this._convertedObjects; + o.toString; + if (t1.containsKey$1(o)) + return t1.$index(0, o); + if (o instanceof Date) { + millisSinceEpoch = o.getTime(); + if (millisSinceEpoch < -864e13 || millisSinceEpoch > 864e13) + A.throwExpression(A.RangeError$range(millisSinceEpoch, -864e13, 864e13, "millisecondsSinceEpoch", null)); + A.checkNotNullable(true, "isUtc", type$.bool); + return new A.DateTime(millisSinceEpoch, 0, true); + } + if (o instanceof RegExp) + throw A.wrapException(A.ArgumentError$("structured clone of RegExp", null)); + if (o instanceof Promise) + return A.promiseToFuture(o, type$.nullable_Object); + proto = Object.getPrototypeOf(o); + if (proto === Object.prototype || proto === null) { + t2 = type$.nullable_Object; + dartObject = A.LinkedHashMap_LinkedHashMap$_empty(t2, t2); + t1.$indexSet(0, o, dartObject); + originalKeys = Object.keys(o); + dartKeys = []; + for (t1 = J.getInterceptor$ax(originalKeys), t2 = t1.get$iterator(originalKeys); t2.moveNext$0();) + dartKeys.push(A.dartify(t2.get$current())); + for (i = 0; i < t1.get$length(originalKeys); ++i) { + jsKey = t1.$index(originalKeys, i); + if (!(i < dartKeys.length)) + return A.ioore(dartKeys, i); + dartKey = dartKeys[i]; + if (jsKey != null) + dartObject.$indexSet(0, dartKey, this.call$1(o[jsKey])); + } + return dartObject; + } + if (o instanceof Array) { + l = o; + dartObject = []; + t1.$indexSet(0, o, dartObject); + $length = A._asInt(o.length); + for (t1 = J.getInterceptor$asx(l), i = 0; i < $length; ++i) + dartObject.push(this.call$1(t1.$index(l, i))); + return dartObject; + } + return o; + }, + $signature: 16 + }; + A.NullStreamSink.prototype = { + addStream$1(stream) { + var _this = this; + _this.$ti._eval$1("Stream<1>")._as(stream); + _this._checkEventAllowed$0(); + _this._addingStream = true; + return stream.listen$1(null).cancel$0().whenComplete$1(new A.NullStreamSink_addStream_closure(_this)); + }, + _checkEventAllowed$0() { + if (this._null_stream_sink$_closed) + throw A.wrapException(A.StateError$("Cannot add to a closed sink.")); + if (this._addingStream) + throw A.wrapException(A.StateError$("Cannot add to a sink while adding a stream.")); + }, + close$0() { + this._null_stream_sink$_closed = true; + return this.done; + }, + $isStreamConsumer: 1, + $isStreamSink: 1 + }; + A.NullStreamSink_addStream_closure.prototype = { + call$0() { + this.$this._addingStream = false; + }, + $signature: 2 + }; + A.Context.prototype = { + absolute$15(part1, part2, part3, part4, part5, part6, part7, part8, part9, part10, part11, part12, part13, part14, part15) { + var t1; + A._validateArgList("absolute", A._setArrayType([part1, part2, part3, part4, part5, part6, part7, part8, part9, part10, part11, part12, part13, part14, part15], type$.JSArray_nullable_String)); + t1 = this.style; + t1 = t1.rootLength$1(part1) > 0 && !t1.isRootRelative$1(part1); + if (t1) + return part1; + t1 = this._context$_current; + return this.join$16(0, t1 == null ? A.current() : t1, part1, part2, part3, part4, part5, part6, part7, part8, part9, part10, part11, part12, part13, part14, part15); + }, + absolute$1(part1) { + var _null = null; + return this.absolute$15(part1, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null); + }, + join$16(_, part1, part2, part3, part4, part5, part6, part7, part8, part9, part10, part11, part12, part13, part14, part15, part16) { + var parts = A._setArrayType([part1, part2, part3, part4, part5, part6, part7, part8, part9, part10, part11, part12, part13, part14, part15, part16], type$.JSArray_nullable_String); + A._validateArgList("join", parts); + return this.joinAll$1(new A.WhereTypeIterable(parts, type$.WhereTypeIterable_String)); + }, + join$2(_, part1, part2) { + var _null = null; + return this.join$16(0, part1, part2, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null); + }, + joinAll$1(parts) { + var t1, t2, t3, needsSeparator, isAbsoluteAndNotRootRelative, t4, t5, parsed, path, t6; + type$.Iterable_String._as(parts); + for (t1 = parts.$ti, t2 = t1._eval$1("bool(Iterable.E)")._as(new A.Context_joinAll_closure()), t3 = parts.get$iterator(0), t1 = new A.WhereIterator(t3, t2, t1._eval$1("WhereIterator")), t2 = this.style, needsSeparator = false, isAbsoluteAndNotRootRelative = false, t4 = ""; t1.moveNext$0();) { + t5 = t3.get$current(); + if (t2.isRootRelative$1(t5) && isAbsoluteAndNotRootRelative) { + parsed = A.ParsedPath_ParsedPath$parse(t5, t2); + path = t4.charCodeAt(0) == 0 ? t4 : t4; + t4 = B.JSString_methods.substring$2(path, 0, t2.rootLength$2$withDrive(path, true)); + parsed.root = t4; + if (t2.needsSeparator$1(t4)) + B.JSArray_methods.$indexSet(parsed.separators, 0, t2.get$separator()); + t4 = parsed.toString$0(0); + } else if (t2.rootLength$1(t5) > 0) { + isAbsoluteAndNotRootRelative = !t2.isRootRelative$1(t5); + t4 = t5; + } else { + t6 = t5.length; + if (t6 !== 0) { + if (0 >= t6) + return A.ioore(t5, 0); + t6 = t2.containsSeparator$1(t5[0]); + } else + t6 = false; + if (!t6) + if (needsSeparator) + t4 += t2.get$separator(); + t4 += t5; + } + needsSeparator = t2.needsSeparator$1(t5); + } + return t4.charCodeAt(0) == 0 ? t4 : t4; + }, + split$1(_, path) { + var parsed = A.ParsedPath_ParsedPath$parse(path, this.style), + t1 = parsed.parts, + t2 = A._arrayInstanceType(t1), + t3 = t2._eval$1("WhereIterable<1>"); + t1 = A.List_List$_of(new A.WhereIterable(t1, t2._eval$1("bool(1)")._as(new A.Context_split_closure()), t3), t3._eval$1("Iterable.E")); + parsed.set$parts(t1); + t1 = parsed.root; + if (t1 != null) + B.JSArray_methods.insert$2(parsed.parts, 0, t1); + return parsed.parts; + }, + normalize$1(path) { + var parsed; + if (!this._needsNormalization$1(path)) + return path; + parsed = A.ParsedPath_ParsedPath$parse(path, this.style); + parsed.normalize$0(); + return parsed.toString$0(0); + }, + _needsNormalization$1(path) { + var t2, i, start, previous, previousPrevious, codeUnit, t3, + t1 = this.style, + root = t1.rootLength$1(path); + if (root !== 0) { + if (t1 === $.$get$Style_windows()) + for (t2 = path.length, i = 0; i < root; ++i) { + if (!(i < t2)) + return A.ioore(path, i); + if (path.charCodeAt(i) === 47) + return true; + } + start = root; + previous = 47; + } else { + start = 0; + previous = null; + } + for (t2 = path.length, i = start, previousPrevious = null; i < t2; ++i, previousPrevious = previous, previous = codeUnit) { + if (!(i >= 0)) + return A.ioore(path, i); + codeUnit = path.charCodeAt(i); + if (t1.isSeparator$1(codeUnit)) { + if (t1 === $.$get$Style_windows() && codeUnit === 47) + return true; + if (previous != null && t1.isSeparator$1(previous)) + return true; + if (previous === 46) + t3 = previousPrevious == null || previousPrevious === 46 || t1.isSeparator$1(previousPrevious); + else + t3 = false; + if (t3) + return true; + } + } + if (previous == null) + return true; + if (t1.isSeparator$1(previous)) + return true; + if (previous === 46) + t1 = previousPrevious == null || t1.isSeparator$1(previousPrevious) || previousPrevious === 46; + else + t1 = false; + if (t1) + return true; + return false; + }, + relative$1(path) { + var from, fromParsed, pathParsed, t3, t4, t5, t6, _this = this, + _s26_ = 'Unable to find a path to "', + t1 = _this.style, + t2 = t1.rootLength$1(path); + if (t2 <= 0) + return _this.normalize$1(path); + t2 = _this._context$_current; + from = t2 == null ? A.current() : t2; + if (t1.rootLength$1(from) <= 0 && t1.rootLength$1(path) > 0) + return _this.normalize$1(path); + if (t1.rootLength$1(path) <= 0 || t1.isRootRelative$1(path)) + path = _this.absolute$1(path); + if (t1.rootLength$1(path) <= 0 && t1.rootLength$1(from) > 0) + throw A.wrapException(A.PathException$(_s26_ + path + '" from "' + from + '".')); + fromParsed = A.ParsedPath_ParsedPath$parse(from, t1); + fromParsed.normalize$0(); + pathParsed = A.ParsedPath_ParsedPath$parse(path, t1); + pathParsed.normalize$0(); + t2 = fromParsed.parts; + t3 = t2.length; + if (t3 !== 0) { + if (0 >= t3) + return A.ioore(t2, 0); + t2 = t2[0] === "."; + } else + t2 = false; + if (t2) + return pathParsed.toString$0(0); + t2 = fromParsed.root; + t3 = pathParsed.root; + if (t2 != t3) + t2 = t2 == null || t3 == null || !t1.pathsEqual$2(t2, t3); + else + t2 = false; + if (t2) + return pathParsed.toString$0(0); + for (;;) { + t2 = fromParsed.parts; + t3 = t2.length; + t4 = false; + if (t3 !== 0) { + t5 = pathParsed.parts; + t6 = t5.length; + if (t6 !== 0) { + if (0 >= t3) + return A.ioore(t2, 0); + t2 = t2[0]; + if (0 >= t6) + return A.ioore(t5, 0); + t5 = t1.pathsEqual$2(t2, t5[0]); + t2 = t5; + } else + t2 = t4; + } else + t2 = t4; + if (!t2) + break; + B.JSArray_methods.removeAt$1(fromParsed.parts, 0); + B.JSArray_methods.removeAt$1(fromParsed.separators, 1); + B.JSArray_methods.removeAt$1(pathParsed.parts, 0); + B.JSArray_methods.removeAt$1(pathParsed.separators, 1); + } + t2 = fromParsed.parts; + t3 = t2.length; + if (t3 !== 0) { + if (0 >= t3) + return A.ioore(t2, 0); + t2 = t2[0] === ".."; + } else + t2 = false; + if (t2) + throw A.wrapException(A.PathException$(_s26_ + path + '" from "' + from + '".')); + t2 = type$.String; + B.JSArray_methods.insertAll$2(pathParsed.parts, 0, A.List_List$filled(t3, "..", false, t2)); + B.JSArray_methods.$indexSet(pathParsed.separators, 0, ""); + B.JSArray_methods.insertAll$2(pathParsed.separators, 1, A.List_List$filled(fromParsed.parts.length, t1.get$separator(), false, t2)); + t1 = pathParsed.parts; + t2 = t1.length; + if (t2 === 0) + return "."; + if (t2 > 1 && B.JSArray_methods.get$last(t1) === ".") { + B.JSArray_methods.removeLast$0(pathParsed.parts); + t1 = pathParsed.separators; + if (0 >= t1.length) + return A.ioore(t1, -1); + t1.pop(); + if (0 >= t1.length) + return A.ioore(t1, -1); + t1.pop(); + B.JSArray_methods.add$1(t1, ""); + } + pathParsed.root = ""; + pathParsed.removeTrailingSeparators$0(); + return pathParsed.toString$0(0); + }, + toUri$1(path) { + var t2, + t1 = this.style; + if (t1.rootLength$1(path) <= 0) + return t1.relativePathToUri$1(path); + else { + t2 = this._context$_current; + return t1.absolutePathToUri$1(this.join$2(0, t2 == null ? A.current() : t2, path)); + } + }, + prettyUri$1(uri) { + var path, rel, _this = this, + typedUri = A._parseUri(uri); + if (typedUri.get$scheme() === "file" && _this.style === $.$get$Style_url()) + return typedUri.toString$0(0); + else if (typedUri.get$scheme() !== "file" && typedUri.get$scheme() !== "" && _this.style !== $.$get$Style_url()) + return typedUri.toString$0(0); + path = _this.normalize$1(_this.style.pathFromUri$1(A._parseUri(typedUri))); + rel = _this.relative$1(path); + return _this.split$1(0, rel).length > _this.split$1(0, path).length ? path : rel; + } + }; + A.Context_joinAll_closure.prototype = { + call$1(part) { + return A._asString(part) !== ""; + }, + $signature: 1 + }; + A.Context_split_closure.prototype = { + call$1(part) { + return A._asString(part).length !== 0; + }, + $signature: 1 + }; + A._validateArgList_closure.prototype = { + call$1(arg) { + A._asStringQ(arg); + return arg == null ? "null" : '"' + arg + '"'; + }, + $signature: 23 + }; + A.InternalStyle.prototype = { + getRoot$1(path) { + var t1, + $length = this.rootLength$1(path); + if ($length > 0) + return B.JSString_methods.substring$2(path, 0, $length); + if (this.isRootRelative$1(path)) { + if (0 >= path.length) + return A.ioore(path, 0); + t1 = path[0]; + } else + t1 = null; + return t1; + }, + relativePathToUri$1(path) { + var segments, t2, _null = null, + t1 = path.length; + if (t1 === 0) + return A._Uri__Uri(_null, _null, _null, _null); + segments = A.Context_Context(this).split$1(0, path); + t2 = t1 - 1; + if (!(t2 >= 0)) + return A.ioore(path, t2); + if (this.isSeparator$1(path.charCodeAt(t2))) + B.JSArray_methods.add$1(segments, ""); + return A._Uri__Uri(_null, _null, segments, _null); + }, + pathsEqual$2(path1, path2) { + return path1 === path2; + } + }; + A.ParsedPath.prototype = { + get$hasTrailingSeparator() { + var t1 = this.parts; + if (t1.length !== 0) + t1 = B.JSArray_methods.get$last(t1) === "" || B.JSArray_methods.get$last(this.separators) !== ""; + else + t1 = false; + return t1; + }, + removeTrailingSeparators$0() { + var t1, t2, _this = this; + for (;;) { + t1 = _this.parts; + if (!(t1.length !== 0 && B.JSArray_methods.get$last(t1) === "")) + break; + B.JSArray_methods.removeLast$0(_this.parts); + t1 = _this.separators; + if (0 >= t1.length) + return A.ioore(t1, -1); + t1.pop(); + } + t1 = _this.separators; + t2 = t1.length; + if (t2 !== 0) + B.JSArray_methods.$indexSet(t1, t2 - 1, ""); + }, + normalize$0() { + var t1, t2, leadingDoubles, _i, part, t3, _this = this, + newParts = A._setArrayType([], type$.JSArray_String); + for (t1 = _this.parts, t2 = t1.length, leadingDoubles = 0, _i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i) { + part = t1[_i]; + if (!(part === "." || part === "")) + if (part === "..") { + t3 = newParts.length; + if (t3 !== 0) { + if (0 >= t3) + return A.ioore(newParts, -1); + newParts.pop(); + } else + ++leadingDoubles; + } else + B.JSArray_methods.add$1(newParts, part); + } + if (_this.root == null) + B.JSArray_methods.insertAll$2(newParts, 0, A.List_List$filled(leadingDoubles, "..", false, type$.String)); + if (newParts.length === 0 && _this.root == null) + B.JSArray_methods.add$1(newParts, "."); + _this.parts = newParts; + t1 = _this.style; + _this.separators = A.List_List$filled(newParts.length + 1, t1.get$separator(), true, type$.String); + t2 = _this.root; + if (t2 == null || newParts.length === 0 || !t1.needsSeparator$1(t2)) + B.JSArray_methods.$indexSet(_this.separators, 0, ""); + t2 = _this.root; + if (t2 != null && t1 === $.$get$Style_windows()) + _this.root = A.stringReplaceAllUnchecked(t2, "/", "\\"); + _this.removeTrailingSeparators$0(); + }, + toString$0(_) { + var t2, t3, t4, t5, i, + t1 = this.root; + t1 = t1 != null ? t1 : ""; + for (t2 = this.parts, t3 = t2.length, t4 = this.separators, t5 = t4.length, i = 0; i < t3; ++i) { + if (!(i < t5)) + return A.ioore(t4, i); + t1 = t1 + t4[i] + t2[i]; + } + t1 += B.JSArray_methods.get$last(t4); + return t1.charCodeAt(0) == 0 ? t1 : t1; + }, + set$parts(parts) { + this.parts = type$.List_String._as(parts); + } + }; + A.PathException.prototype = { + toString$0(_) { + return "PathException: " + this.message; + }, + $isException: 1 + }; + A.Style.prototype = { + toString$0(_) { + return this.get$name(); + } + }; + A.PosixStyle.prototype = { + containsSeparator$1(path) { + return B.JSString_methods.contains$1(path, "/"); + }, + isSeparator$1(codeUnit) { + return codeUnit === 47; + }, + needsSeparator$1(path) { + var t2, + t1 = path.length; + if (t1 !== 0) { + t2 = t1 - 1; + if (!(t2 >= 0)) + return A.ioore(path, t2); + t2 = path.charCodeAt(t2) !== 47; + t1 = t2; + } else + t1 = false; + return t1; + }, + rootLength$2$withDrive(path, withDrive) { + var t1 = path.length; + if (t1 !== 0) { + if (0 >= t1) + return A.ioore(path, 0); + t1 = path.charCodeAt(0) === 47; + } else + t1 = false; + if (t1) + return 1; + return 0; + }, + rootLength$1(path) { + return this.rootLength$2$withDrive(path, false); + }, + isRootRelative$1(path) { + return false; + }, + pathFromUri$1(uri) { + var t1; + if (uri.get$scheme() === "" || uri.get$scheme() === "file") { + t1 = uri.get$path(); + return A._Uri__uriDecode(t1, 0, t1.length, B.C_Utf8Codec, false); + } + throw A.wrapException(A.ArgumentError$("Uri " + uri.toString$0(0) + " must have scheme 'file:'.", null)); + }, + absolutePathToUri$1(path) { + var parsed = A.ParsedPath_ParsedPath$parse(path, this), + t1 = parsed.parts; + if (t1.length === 0) + B.JSArray_methods.addAll$1(t1, A._setArrayType(["", ""], type$.JSArray_String)); + else if (parsed.get$hasTrailingSeparator()) + B.JSArray_methods.add$1(parsed.parts, ""); + return A._Uri__Uri(null, null, parsed.parts, "file"); + }, + get$name() { + return "posix"; + }, + get$separator() { + return "/"; + } + }; + A.UrlStyle.prototype = { + containsSeparator$1(path) { + return B.JSString_methods.contains$1(path, "/"); + }, + isSeparator$1(codeUnit) { + return codeUnit === 47; + }, + needsSeparator$1(path) { + var t2, + t1 = path.length; + if (t1 === 0) + return false; + t2 = t1 - 1; + if (!(t2 >= 0)) + return A.ioore(path, t2); + if (path.charCodeAt(t2) !== 47) + return true; + return B.JSString_methods.endsWith$1(path, "://") && this.rootLength$1(path) === t1; + }, + rootLength$2$withDrive(path, withDrive) { + var i, codeUnit, index, + t1 = path.length; + if (t1 === 0) + return 0; + if (0 >= t1) + return A.ioore(path, 0); + if (path.charCodeAt(0) === 47) + return 1; + for (i = 0; i < t1; ++i) { + codeUnit = path.charCodeAt(i); + if (codeUnit === 47) + return 0; + if (codeUnit === 58) { + if (i === 0) + return 0; + index = B.JSString_methods.indexOf$2(path, "/", B.JSString_methods.startsWith$2(path, "//", i + 1) ? i + 3 : i); + if (index <= 0) + return t1; + if (!withDrive || t1 < index + 3) + return index; + if (!B.JSString_methods.startsWith$1(path, "file://")) + return index; + t1 = A.driveLetterEnd(path, index + 1); + return t1 == null ? index : t1; + } + } + return 0; + }, + rootLength$1(path) { + return this.rootLength$2$withDrive(path, false); + }, + isRootRelative$1(path) { + var t1 = path.length; + if (t1 !== 0) { + if (0 >= t1) + return A.ioore(path, 0); + t1 = path.charCodeAt(0) === 47; + } else + t1 = false; + return t1; + }, + pathFromUri$1(uri) { + return uri.toString$0(0); + }, + relativePathToUri$1(path) { + return A.Uri_parse(path); + }, + absolutePathToUri$1(path) { + return A.Uri_parse(path); + }, + get$name() { + return "url"; + }, + get$separator() { + return "/"; + } + }; + A.WindowsStyle.prototype = { + containsSeparator$1(path) { + return B.JSString_methods.contains$1(path, "/"); + }, + isSeparator$1(codeUnit) { + return codeUnit === 47 || codeUnit === 92; + }, + needsSeparator$1(path) { + var t2, + t1 = path.length; + if (t1 === 0) + return false; + t2 = t1 - 1; + if (!(t2 >= 0)) + return A.ioore(path, t2); + t2 = path.charCodeAt(t2); + return !(t2 === 47 || t2 === 92); + }, + rootLength$2$withDrive(path, withDrive) { + var t2, index, + t1 = path.length; + if (t1 === 0) + return 0; + if (0 >= t1) + return A.ioore(path, 0); + if (path.charCodeAt(0) === 47) + return 1; + if (path.charCodeAt(0) === 92) { + if (t1 >= 2) { + if (1 >= t1) + return A.ioore(path, 1); + t2 = path.charCodeAt(1) !== 92; + } else + t2 = true; + if (t2) + return 1; + index = B.JSString_methods.indexOf$2(path, "\\", 2); + if (index > 0) { + index = B.JSString_methods.indexOf$2(path, "\\", index + 1); + if (index > 0) + return index; + } + return t1; + } + if (t1 < 3) + return 0; + if (!A.isAlphabetic(path.charCodeAt(0))) + return 0; + if (path.charCodeAt(1) !== 58) + return 0; + t1 = path.charCodeAt(2); + if (!(t1 === 47 || t1 === 92)) + return 0; + return 3; + }, + rootLength$1(path) { + return this.rootLength$2$withDrive(path, false); + }, + isRootRelative$1(path) { + return this.rootLength$1(path) === 1; + }, + pathFromUri$1(uri) { + var path, t1; + if (uri.get$scheme() !== "" && uri.get$scheme() !== "file") + throw A.wrapException(A.ArgumentError$("Uri " + uri.toString$0(0) + " must have scheme 'file:'.", null)); + path = uri.get$path(); + if (uri.get$host() === "") { + if (path.length >= 3 && B.JSString_methods.startsWith$1(path, "/") && A.driveLetterEnd(path, 1) != null) + path = B.JSString_methods.replaceFirst$2(path, "/", ""); + } else + path = "\\\\" + uri.get$host() + path; + t1 = A.stringReplaceAllUnchecked(path, "/", "\\"); + return A._Uri__uriDecode(t1, 0, t1.length, B.C_Utf8Codec, false); + }, + absolutePathToUri$1(path) { + var rootParts, t2, + parsed = A.ParsedPath_ParsedPath$parse(path, this), + t1 = parsed.root; + t1.toString; + if (B.JSString_methods.startsWith$1(t1, "\\\\")) { + rootParts = new A.WhereIterable(A._setArrayType(t1.split("\\"), type$.JSArray_String), type$.bool_Function_String._as(new A.WindowsStyle_absolutePathToUri_closure()), type$.WhereIterable_String); + B.JSArray_methods.insert$2(parsed.parts, 0, rootParts.get$last(0)); + if (parsed.get$hasTrailingSeparator()) + B.JSArray_methods.add$1(parsed.parts, ""); + return A._Uri__Uri(rootParts.get$first(0), null, parsed.parts, "file"); + } else { + if (parsed.parts.length === 0 || parsed.get$hasTrailingSeparator()) + B.JSArray_methods.add$1(parsed.parts, ""); + t1 = parsed.parts; + t2 = parsed.root; + t2.toString; + t2 = A.stringReplaceAllUnchecked(t2, "/", ""); + B.JSArray_methods.insert$2(t1, 0, A.stringReplaceAllUnchecked(t2, "\\", "")); + return A._Uri__Uri(null, null, parsed.parts, "file"); + } + }, + codeUnitsEqual$2(codeUnit1, codeUnit2) { + var upperCase1; + if (codeUnit1 === codeUnit2) + return true; + if (codeUnit1 === 47) + return codeUnit2 === 92; + if (codeUnit1 === 92) + return codeUnit2 === 47; + if ((codeUnit1 ^ codeUnit2) !== 32) + return false; + upperCase1 = codeUnit1 | 32; + return upperCase1 >= 97 && upperCase1 <= 122; + }, + pathsEqual$2(path1, path2) { + var t1, t2, i; + if (path1 === path2) + return true; + t1 = path1.length; + t2 = path2.length; + if (t1 !== t2) + return false; + for (i = 0; i < t1; ++i) { + if (!(i < t2)) + return A.ioore(path2, i); + if (!this.codeUnitsEqual$2(path1.charCodeAt(i), path2.charCodeAt(i))) + return false; + } + return true; + }, + get$name() { + return "windows"; + }, + get$separator() { + return "\\"; + } + }; + A.WindowsStyle_absolutePathToUri_closure.prototype = { + call$1(part) { + return A._asString(part) !== ""; + }, + $signature: 1 + }; + A.Chain.prototype = { + toTrace$0() { + var t1 = this.traces, + t2 = A._arrayInstanceType(t1); + return A.Trace$(new A.ExpandIterable(t1, t2._eval$1("Iterable(1)")._as(new A.Chain_toTrace_closure()), t2._eval$1("ExpandIterable<1,Frame>")), null); + }, + toString$0(_) { + var t1 = this.traces, + t2 = A._arrayInstanceType(t1); + return new A.MappedListIterable(t1, t2._eval$1("String(1)")._as(new A.Chain_toString_closure(new A.MappedListIterable(t1, t2._eval$1("int(1)")._as(new A.Chain_toString_closure0()), t2._eval$1("MappedListIterable<1,int>")).fold$1$2(0, 0, B.CONSTANT, type$.int))), t2._eval$1("MappedListIterable<1,String>")).join$1(0, string$.x3d_____); + }, + $isStackTrace: 1 + }; + A.Chain_Chain$parse_closure.prototype = { + call$1(line) { + return A._asString(line).length !== 0; + }, + $signature: 1 + }; + A.Chain_Chain$parse_closure0.prototype = { + call$1(trace) { + return A.Trace$parseVM(A._asString(trace)); + }, + $signature: 17 + }; + A.Chain_Chain$parse_closure1.prototype = { + call$1(trace) { + return A.Trace$parseFriendly(A._asString(trace)); + }, + $signature: 17 + }; + A.Chain_toTrace_closure.prototype = { + call$1(trace) { + return type$.Trace._as(trace).get$frames(); + }, + $signature: 25 + }; + A.Chain_toString_closure0.prototype = { + call$1(trace) { + var t1 = type$.Trace._as(trace).get$frames(), + t2 = A._arrayInstanceType(t1); + return new A.MappedListIterable(t1, t2._eval$1("int(1)")._as(new A.Chain_toString__closure0()), t2._eval$1("MappedListIterable<1,int>")).fold$1$2(0, 0, B.CONSTANT, type$.int); + }, + $signature: 26 + }; + A.Chain_toString__closure0.prototype = { + call$1(frame) { + return type$.Frame._as(frame).get$location().length; + }, + $signature: 18 + }; + A.Chain_toString_closure.prototype = { + call$1(trace) { + var t1 = type$.Trace._as(trace).get$frames(), + t2 = A._arrayInstanceType(t1); + return new A.MappedListIterable(t1, t2._eval$1("String(1)")._as(new A.Chain_toString__closure(this.longest)), t2._eval$1("MappedListIterable<1,String>")).join$0(0); + }, + $signature: 28 + }; + A.Chain_toString__closure.prototype = { + call$1(frame) { + type$.Frame._as(frame); + return B.JSString_methods.padRight$1(frame.get$location(), this.longest) + " " + A.S(frame.get$member()) + "\n"; + }, + $signature: 19 + }; + A.Frame.prototype = { + get$isCore() { + return this.uri.get$scheme() === "dart"; + }, + get$library() { + var t1 = this.uri; + if (t1.get$scheme() === "data") + return "data:..."; + return $.$get$context().prettyUri$1(t1); + }, + get$$package() { + var t1 = this.uri; + if (t1.get$scheme() !== "package") + return null; + return B.JSArray_methods.get$first(t1.get$path().split("/")); + }, + get$location() { + var t2, _this = this, + t1 = _this.line; + if (t1 == null) + return _this.get$library(); + t2 = _this.column; + if (t2 == null) + return _this.get$library() + " " + A.S(t1); + return _this.get$library() + " " + A.S(t1) + ":" + A.S(t2); + }, + toString$0(_) { + return this.get$location() + " in " + A.S(this.member); + }, + get$uri() { + return this.uri; + }, + get$line() { + return this.line; + }, + get$column() { + return this.column; + }, + get$member() { + return this.member; + } + }; + A.Frame_Frame$parseVM_closure.prototype = { + call$0() { + var match, t2, t3, member, uri, lineAndColumn, line, _null = null, + t1 = this.frame; + if (t1 === "...") + return new A.Frame(A._Uri__Uri(_null, _null, _null, _null), _null, _null, "..."); + match = $.$get$_vmFrame().firstMatch$1(t1); + if (match == null) + return new A.UnparsedFrame(A._Uri__Uri(_null, "unparsed", _null, _null), t1); + t1 = match._match; + if (1 >= t1.length) + return A.ioore(t1, 1); + t2 = t1[1]; + t2.toString; + t3 = $.$get$_asyncBody(); + t2 = A.stringReplaceAllUnchecked(t2, t3, ""); + member = A.stringReplaceAllUnchecked(t2, "", ""); + if (2 >= t1.length) + return A.ioore(t1, 2); + t2 = t1[2]; + t3 = t2; + t3.toString; + if (B.JSString_methods.startsWith$1(t3, "= t1.length) + return A.ioore(t1, 3); + lineAndColumn = t1[3].split(":"); + t1 = lineAndColumn.length; + line = t1 > 1 ? A.int_parse(lineAndColumn[1]) : _null; + return new A.Frame(uri, line, t1 > 2 ? A.int_parse(lineAndColumn[2]) : _null, member); + }, + $signature: 4 + }; + A.Frame_Frame$parseV8_closure.prototype = { + call$0() { + var t2, t3, t4, _s4_ = "", + t1 = this.frame, + match = $.$get$_v8Frame().firstMatch$1(t1); + if (match == null) + return new A.UnparsedFrame(A._Uri__Uri(null, "unparsed", null, null), t1); + t1 = new A.Frame_Frame$parseV8_closure_parseLocation(t1); + t2 = match._match; + t3 = t2.length; + if (2 >= t3) + return A.ioore(t2, 2); + t4 = t2[2]; + if (t4 != null) { + t3 = t4; + t3.toString; + t2 = t2[1]; + t2.toString; + t2 = A.stringReplaceAllUnchecked(t2, "", _s4_); + t2 = A.stringReplaceAllUnchecked(t2, "Anonymous function", _s4_); + return t1.call$2(t3, A.stringReplaceAllUnchecked(t2, "(anonymous function)", _s4_)); + } else { + if (3 >= t3) + return A.ioore(t2, 3); + t2 = t2[3]; + t2.toString; + return t1.call$2(t2, _s4_); + } + }, + $signature: 4 + }; + A.Frame_Frame$parseV8_closure_parseLocation.prototype = { + call$2($location, member) { + var t2, urlMatch, uri, line, columnMatch, _null = null, + t1 = $.$get$_v8EvalLocation(), + evalMatch = t1.firstMatch$1($location); + for (; evalMatch != null; $location = t2) { + t2 = evalMatch._match; + if (1 >= t2.length) + return A.ioore(t2, 1); + t2 = t2[1]; + t2.toString; + evalMatch = t1.firstMatch$1(t2); + } + if ($location === "native") + return new A.Frame(A.Uri_parse("native"), _null, _null, member); + urlMatch = $.$get$_v8UrlLocation().firstMatch$1($location); + if (urlMatch == null) + return new A.UnparsedFrame(A._Uri__Uri(_null, "unparsed", _null, _null), this.frame); + t1 = urlMatch._match; + if (1 >= t1.length) + return A.ioore(t1, 1); + t2 = t1[1]; + t2.toString; + uri = A.Frame__uriOrPathToUri(t2); + if (2 >= t1.length) + return A.ioore(t1, 2); + t2 = t1[2]; + t2.toString; + line = A.int_parse(t2); + if (3 >= t1.length) + return A.ioore(t1, 3); + columnMatch = t1[3]; + return new A.Frame(uri, line, columnMatch != null ? A.int_parse(columnMatch) : _null, member); + }, + $signature: 31 + }; + A.Frame_Frame$_parseFirefoxEval_closure.prototype = { + call$0() { + var t2, member, uri, line, _null = null, + t1 = this.frame, + match = $.$get$_firefoxEvalLocation().firstMatch$1(t1); + if (match == null) + return new A.UnparsedFrame(A._Uri__Uri(_null, "unparsed", _null, _null), t1); + t1 = match._match; + if (1 >= t1.length) + return A.ioore(t1, 1); + t2 = t1[1]; + t2.toString; + member = A.stringReplaceAllUnchecked(t2, "/<", ""); + if (2 >= t1.length) + return A.ioore(t1, 2); + t2 = t1[2]; + t2.toString; + uri = A.Frame__uriOrPathToUri(t2); + if (3 >= t1.length) + return A.ioore(t1, 3); + t1 = t1[3]; + t1.toString; + line = A.int_parse(t1); + return new A.Frame(uri, line, _null, member.length === 0 || member === "anonymous" ? "" : member); + }, + $signature: 4 + }; + A.Frame_Frame$parseFirefox_closure.prototype = { + call$0() { + var t2, t3, t4, uri, member, line, column, _null = null, + t1 = this.frame, + match = $.$get$_firefoxSafariFrame().firstMatch$1(t1); + if (match == null) + return new A.UnparsedFrame(A._Uri__Uri(_null, "unparsed", _null, _null), t1); + t2 = match._match; + if (3 >= t2.length) + return A.ioore(t2, 3); + t3 = t2[3]; + t4 = t3; + t4.toString; + if (B.JSString_methods.contains$1(t4, " line ")) + return A.Frame_Frame$_parseFirefoxEval(t1); + t1 = t3; + t1.toString; + uri = A.Frame__uriOrPathToUri(t1); + t1 = t2.length; + if (1 >= t1) + return A.ioore(t2, 1); + member = t2[1]; + if (member != null) { + if (2 >= t1) + return A.ioore(t2, 2); + t1 = t2[2]; + t1.toString; + member += B.JSArray_methods.join$0(A.List_List$filled(B.JSString_methods.allMatches$1("/", t1).get$length(0), ".", false, type$.String)); + if (member === "") + member = ""; + member = B.JSString_methods.replaceFirst$2(member, $.$get$_initialDot(), ""); + } else + member = ""; + if (4 >= t2.length) + return A.ioore(t2, 4); + t1 = t2[4]; + if (t1 === "") + line = _null; + else { + t1 = t1; + t1.toString; + line = A.int_parse(t1); + } + if (5 >= t2.length) + return A.ioore(t2, 5); + t1 = t2[5]; + if (t1 == null || t1 === "") + column = _null; + else { + t1 = t1; + t1.toString; + column = A.int_parse(t1); + } + return new A.Frame(uri, line, column, member); + }, + $signature: 4 + }; + A.Frame_Frame$parseFriendly_closure.prototype = { + call$0() { + var t2, uri, line, column, _null = null, + t1 = this.frame, + match = $.$get$_friendlyFrame().firstMatch$1(t1); + if (match == null) + throw A.wrapException(A.FormatException$("Couldn't parse package:stack_trace stack trace line '" + t1 + "'.", _null, _null)); + t1 = match._match; + if (1 >= t1.length) + return A.ioore(t1, 1); + t2 = t1[1]; + if (t2 === "data:...") + uri = A.Uri_Uri$dataFromString(""); + else { + t2 = t2; + t2.toString; + uri = A.Uri_parse(t2); + } + if (uri.get$scheme() === "") { + t2 = $.$get$context(); + uri = t2.toUri$1(t2.absolute$15(t2.style.pathFromUri$1(A._parseUri(uri)), _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null)); + } + if (2 >= t1.length) + return A.ioore(t1, 2); + t2 = t1[2]; + if (t2 == null) + line = _null; + else { + t2 = t2; + t2.toString; + line = A.int_parse(t2); + } + if (3 >= t1.length) + return A.ioore(t1, 3); + t2 = t1[3]; + if (t2 == null) + column = _null; + else { + t2 = t2; + t2.toString; + column = A.int_parse(t2); + } + if (4 >= t1.length) + return A.ioore(t1, 4); + return new A.Frame(uri, line, column, t1[4]); + }, + $signature: 4 + }; + A.LazyTrace.prototype = { + get$_lazy_trace$_trace() { + var result, _this = this, + value = _this.__LazyTrace__trace_FI; + if (value === $) { + result = _this._thunk.call$0(); + _this.__LazyTrace__trace_FI !== $ && A.throwLateFieldADI("_trace"); + _this.__LazyTrace__trace_FI = result; + value = result; + } + return value; + }, + get$frames() { + return this.get$_lazy_trace$_trace().get$frames(); + }, + get$terse() { + return new A.LazyTrace(new A.LazyTrace_terse_closure(this)); + }, + toString$0(_) { + return this.get$_lazy_trace$_trace().toString$0(0); + }, + $isStackTrace: 1, + $isTrace: 1 + }; + A.LazyTrace_terse_closure.prototype = { + call$0() { + return this.$this.get$_lazy_trace$_trace().get$terse(); + }, + $signature: 20 + }; + A.Trace.prototype = { + get$terse() { + return this.foldFrames$2$terse(new A.Trace_terse_closure(), true); + }, + foldFrames$2$terse(predicate, terse) { + var newFrames, t1, t2, t3, _box_0 = {}; + _box_0.predicate = predicate; + type$.bool_Function_Frame._as(predicate); + _box_0.predicate = predicate; + _box_0.predicate = new A.Trace_foldFrames_closure(predicate); + newFrames = A._setArrayType([], type$.JSArray_Frame); + for (t1 = this.frames, t2 = A._arrayInstanceType(t1)._eval$1("ReversedListIterable<1>"), t1 = new A.ReversedListIterable(t1, t2), t1 = new A.ListIterator(t1, t1.get$length(0), t2._eval$1("ListIterator")), t2 = t2._eval$1("ListIterable.E"); t1.moveNext$0();) { + t3 = t1.__internal$_current; + if (t3 == null) + t3 = t2._as(t3); + if (t3 instanceof A.UnparsedFrame || !_box_0.predicate.call$1(t3)) + B.JSArray_methods.add$1(newFrames, t3); + else if (newFrames.length === 0 || !_box_0.predicate.call$1(B.JSArray_methods.get$last(newFrames))) + B.JSArray_methods.add$1(newFrames, new A.Frame(t3.get$uri(), t3.get$line(), t3.get$column(), t3.get$member())); + } + t1 = type$.Frame_Function_Frame._as(new A.Trace_foldFrames_closure0(_box_0)); + t2 = type$.MappedListIterable_Frame_Frame; + newFrames = A.List_List$_of(new A.MappedListIterable(newFrames, t1, t2), t2._eval$1("ListIterable.E")); + if (newFrames.length > 1 && _box_0.predicate.call$1(B.JSArray_methods.get$first(newFrames))) + B.JSArray_methods.removeAt$1(newFrames, 0); + return A.Trace$(new A.ReversedListIterable(newFrames, A._arrayInstanceType(newFrames)._eval$1("ReversedListIterable<1>")), this.original._stackTrace); + }, + toString$0(_) { + var t1 = this.frames, + t2 = A._arrayInstanceType(t1); + return new A.MappedListIterable(t1, t2._eval$1("String(1)")._as(new A.Trace_toString_closure(new A.MappedListIterable(t1, t2._eval$1("int(1)")._as(new A.Trace_toString_closure0()), t2._eval$1("MappedListIterable<1,int>")).fold$1$2(0, 0, B.CONSTANT, type$.int))), t2._eval$1("MappedListIterable<1,String>")).join$0(0); + }, + $isStackTrace: 1, + get$frames() { + return this.frames; + } + }; + A.Trace_Trace$from_closure.prototype = { + call$0() { + return A.Trace_Trace$parse(this.trace.toString$0(0)); + }, + $signature: 20 + }; + A.Trace__parseVM_closure.prototype = { + call$1(line) { + return A._asString(line).length !== 0; + }, + $signature: 1 + }; + A.Trace__parseVM_closure0.prototype = { + call$1(line) { + return A.Frame_Frame$parseVM(A._asString(line)); + }, + $signature: 5 + }; + A.Trace$parseV8_closure.prototype = { + call$1(line) { + return !B.JSString_methods.startsWith$1(A._asString(line), $.$get$_v8TraceLine()); + }, + $signature: 1 + }; + A.Trace$parseV8_closure0.prototype = { + call$1(line) { + return A.Frame_Frame$parseV8(A._asString(line)); + }, + $signature: 5 + }; + A.Trace$parseJSCore_closure.prototype = { + call$1(line) { + return A._asString(line) !== "\tat "; + }, + $signature: 1 + }; + A.Trace$parseJSCore_closure0.prototype = { + call$1(line) { + return A.Frame_Frame$parseV8(A._asString(line)); + }, + $signature: 5 + }; + A.Trace$parseFirefox_closure.prototype = { + call$1(line) { + A._asString(line); + return line.length !== 0 && line !== "[native code]"; + }, + $signature: 1 + }; + A.Trace$parseFirefox_closure0.prototype = { + call$1(line) { + return A.Frame_Frame$parseFirefox(A._asString(line)); + }, + $signature: 5 + }; + A.Trace$parseFriendly_closure.prototype = { + call$1(line) { + return !B.JSString_methods.startsWith$1(A._asString(line), "====="); + }, + $signature: 1 + }; + A.Trace$parseFriendly_closure0.prototype = { + call$1(line) { + return A.Frame_Frame$parseFriendly(A._asString(line)); + }, + $signature: 5 + }; + A.Trace_terse_closure.prototype = { + call$1(_) { + return false; + }, + $signature: 21 + }; + A.Trace_foldFrames_closure.prototype = { + call$1(frame) { + var t1; + if (this.oldPredicate.call$1(frame)) + return true; + if (frame.get$isCore()) + return true; + if (frame.get$$package() === "stack_trace") + return true; + t1 = frame.get$member(); + t1.toString; + if (!B.JSString_methods.contains$1(t1, "")) + return false; + return frame.get$line() == null; + }, + $signature: 21 + }; + A.Trace_foldFrames_closure0.prototype = { + call$1(frame) { + var t1, t2; + type$.Frame._as(frame); + if (frame instanceof A.UnparsedFrame || !this._box_0.predicate.call$1(frame)) + return frame; + t1 = frame.get$library(); + t2 = $.$get$_terseRegExp(); + return new A.Frame(A.Uri_parse(A.stringReplaceAllUnchecked(t1, t2, "")), null, null, frame.get$member()); + }, + $signature: 53 + }; + A.Trace_toString_closure0.prototype = { + call$1(frame) { + return type$.Frame._as(frame).get$location().length; + }, + $signature: 18 + }; + A.Trace_toString_closure.prototype = { + call$1(frame) { + type$.Frame._as(frame); + if (frame instanceof A.UnparsedFrame) + return frame.toString$0(0) + "\n"; + return B.JSString_methods.padRight$1(frame.get$location(), this.longest) + " " + A.S(frame.get$member()) + "\n"; + }, + $signature: 19 + }; + A.UnparsedFrame.prototype = { + toString$0(_) { + return this.member; + }, + $isFrame: 1, + get$uri() { + return this.uri; + }, + get$line() { + return null; + }, + get$column() { + return null; + }, + get$isCore() { + return false; + }, + get$library() { + return "unparsed"; + }, + get$$package() { + return null; + }, + get$location() { + return "unparsed"; + }, + get$member() { + return this.member; + } + }; + A.GuaranteeChannel.prototype = { + GuaranteeChannel$3$allowSinkErrors(innerSink, allowSinkErrors, _box_0, $T) { + var _this = this, + t1 = _this.$ti, + t2 = t1._eval$1("_GuaranteeSink<1>")._as(new A._GuaranteeSink(innerSink, _this, new A._AsyncCompleter(new A._Future($.Zone__current, type$._Future_dynamic), type$._AsyncCompleter_dynamic), true, $T._eval$1("_GuaranteeSink<0>"))); + _this.__GuaranteeChannel__sink_F !== $ && A.throwLateFieldAI("_sink"); + _this.__GuaranteeChannel__sink_F = t2; + t1 = t1._eval$1("StreamController<1>")._as(A.StreamController_StreamController(null, new A.GuaranteeChannel_closure(_box_0, _this, $T), true, $T)); + _this.__GuaranteeChannel__streamController_F !== $ && A.throwLateFieldAI("_streamController"); + _this.__GuaranteeChannel__streamController_F = t1; + }, + _onSinkDisconnected$0() { + var subscription, t1; + this._disconnected = true; + subscription = this._subscription; + if (subscription != null) + subscription.cancel$0(); + t1 = this.__GuaranteeChannel__streamController_F; + t1 === $ && A.throwLateFieldNI("_streamController"); + t1.close$0(); + } + }; + A.GuaranteeChannel_closure.prototype = { + call$0() { + var t2, t3, + t1 = this.$this; + if (t1._disconnected) + return; + t2 = this._box_0.innerStream; + t3 = t1.__GuaranteeChannel__streamController_F; + t3 === $ && A.throwLateFieldNI("_streamController"); + t1._subscription = t2.listen$3$onDone$onError(this.T._eval$1("~(0)")._as(t3.get$add(t3)), new A.GuaranteeChannel__closure(t1), t3.get$addError()); + }, + $signature: 0 + }; + A.GuaranteeChannel__closure.prototype = { + call$0() { + var t1 = this.$this, + t2 = t1.__GuaranteeChannel__sink_F; + t2 === $ && A.throwLateFieldNI("_sink"); + t2._onStreamDisconnected$0(); + t1 = t1.__GuaranteeChannel__streamController_F; + t1 === $ && A.throwLateFieldNI("_streamController"); + t1.close$0(); + }, + $signature: 0 + }; + A._GuaranteeSink.prototype = { + add$1(_, data) { + var t1, _this = this; + _this.$ti._precomputed1._as(data); + if (_this._closed) + throw A.wrapException(A.StateError$("Cannot add event after closing.")); + if (_this._addStreamSubscription != null) + throw A.wrapException(A.StateError$("Cannot add event while adding stream.")); + if (_this._disconnected) + return; + t1 = _this._inner; + t1._target.add$1(0, t1.$ti._precomputed1._as(data)); + }, + addError$2(error, stackTrace) { + var _this = this; + A._asObject(error); + type$.nullable_StackTrace._as(stackTrace); + if (_this._closed) + throw A.wrapException(A.StateError$("Cannot add event after closing.")); + if (_this._addStreamSubscription != null) + throw A.wrapException(A.StateError$("Cannot add event while adding stream.")); + if (_this._disconnected) + return; + _this._addError$2(error, stackTrace); + }, + addError$1(error) { + return this.addError$2(error, null); + }, + _addError$2(error, stackTrace) { + this._inner._target.addError$2(A._asObject(error), type$.nullable_StackTrace._as(stackTrace)); + return; + }, + _addError$1(error) { + return this._addError$2(error, null); + }, + addStream$1(stream) { + var t2, t3, _this = this, + t1 = _this.$ti; + t1._eval$1("Stream<1>")._as(stream); + if (_this._closed) + throw A.wrapException(A.StateError$("Cannot add stream after closing.")); + if (_this._addStreamSubscription != null) + throw A.wrapException(A.StateError$("Cannot add stream while adding stream.")); + if (_this._disconnected) + return A.Future_Future$value(null, type$.void); + t2 = new A._SyncCompleter(new A._Future($.Zone__current, type$._Future_dynamic), type$._SyncCompleter_dynamic); + _this._addStreamCompleter = t2; + t3 = _this._inner; + _this._addStreamSubscription = stream.listen$3$onDone$onError(t1._eval$1("~(1)")._as(t3.get$add(t3)), type$.void_Function_$opt_dynamic._as(t2.get$complete()), _this.get$_addError()); + return _this._addStreamCompleter.future.then$1$1(new A._GuaranteeSink_addStream_closure(_this), type$.void); + }, + close$0() { + var _this = this; + if (_this._addStreamSubscription != null) + throw A.wrapException(A.StateError$("Cannot close sink while adding stream.")); + if (_this._closed) + return _this._doneCompleter.future; + _this._closed = true; + if (!_this._disconnected) { + _this._channel._onSinkDisconnected$0(); + _this._doneCompleter.complete$1(_this._inner._target.close$0()); + } + return _this._doneCompleter.future; + }, + _onStreamDisconnected$0() { + var t1, t2, _this = this; + _this._disconnected = true; + t1 = _this._doneCompleter; + if ((t1.future._async$_state & 30) === 0) + t1.complete$0(); + t1 = _this._addStreamSubscription; + if (t1 == null) + return; + t2 = _this._addStreamCompleter; + t2.toString; + t2.complete$1(t1.cancel$0()); + _this._addStreamSubscription = _this._addStreamCompleter = null; + }, + $isStreamConsumer: 1, + $isStreamSink: 1 + }; + A._GuaranteeSink_addStream_closure.prototype = { + call$1(_) { + var t1 = this.$this; + t1._addStreamSubscription = t1._addStreamCompleter = null; + }, + $signature: 9 + }; + A._MultiChannel.prototype = { + _MultiChannel$1(inner, $T) { + var t2, t3, _this = this, + _s17_ = "_streamController", + t1 = _this._mainController; + _this._controllers.$indexSet(0, 0, t1); + t1 = t1.__StreamChannelController__local_F; + t1 === $ && A.throwLateFieldNI("_local"); + t2 = t1.__GuaranteeChannel__streamController_F; + t2 === $ && A.throwLateFieldNI(_s17_); + new A._ControllerStream(t2, A._instanceType(t2)._eval$1("_ControllerStream<1>")).listen$2$onDone(new A._MultiChannel_closure(_this, $T), new A._MultiChannel_closure0(_this)); + t2 = _this._multi_channel$_inner.__GuaranteeChannel__streamController_F; + t2 === $ && A.throwLateFieldNI(_s17_); + t3 = A._instanceType(t2)._eval$1("_ControllerStream<1>"); + t1 = t1.__GuaranteeChannel__sink_F; + t1 === $ && A.throwLateFieldNI("_sink"); + _this._innerStreamSubscription = new A.CastStream(new A._ControllerStream(t2, t3), t3._eval$1("CastStream>")).listen$3$onDone$onError(new A._MultiChannel_closure1(_this, $T), _this.get$_closeInnerChannel(), t1.get$addError()); + }, + virtualChannel$1(id) { + var t2, controller, _this = this, + _s17_ = "_streamController", + _s8_ = "_foreign", + t1 = {}; + t1.outputId = t1.inputId = null; + t1.inputId = id; + t1.outputId = id + 1; + if (_this._multi_channel$_inner == null) { + t1 = _this.$ti; + t2 = A.Future_Future$value(null, type$.dynamic); + return new A.VirtualChannel(_this, new A._EmptyStream(t1._eval$1("_EmptyStream<1>")), new A.NullStreamSink(t2, t1._eval$1("NullStreamSink<1>")), t1._eval$1("VirtualChannel<1>")); + } + controller = A._Cell$named("controller"); + if (_this._pendingIds.remove$1(0, id)) { + t2 = _this._controllers.$index(0, id); + t2.toString; + controller._value = t2; + } else { + t2 = _this._controllers; + if (t2.containsKey$1(id) || _this._closedIds.contains$1(0, id)) + throw A.wrapException(A.ArgumentError$("A virtual channel with id " + id + " already exists.", null)); + else { + controller._value = A.StreamChannelController$(true, _this.$ti._precomputed1); + t2.$indexSet(0, id, controller._readLocal$0()); + } + } + t2 = controller._readLocal$0().__StreamChannelController__local_F; + t2 === $ && A.throwLateFieldNI("_local"); + t2 = t2.__GuaranteeChannel__streamController_F; + t2 === $ && A.throwLateFieldNI(_s17_); + new A._ControllerStream(t2, A._instanceType(t2)._eval$1("_ControllerStream<1>")).listen$2$onDone(new A._MultiChannel_virtualChannel_closure(t1, _this), new A._MultiChannel_virtualChannel_closure0(t1, _this)); + t1 = controller._readLocal$0().__StreamChannelController__foreign_F; + t1 === $ && A.throwLateFieldNI(_s8_); + t1 = t1.__GuaranteeChannel__streamController_F; + t1 === $ && A.throwLateFieldNI(_s17_); + t2 = controller._readLocal$0().__StreamChannelController__foreign_F; + t2 === $ && A.throwLateFieldNI(_s8_); + t2 = t2.__GuaranteeChannel__sink_F; + t2 === $ && A.throwLateFieldNI("_sink"); + return new A.VirtualChannel(_this, new A._ControllerStream(t1, A._instanceType(t1)._eval$1("_ControllerStream<1>")), t2, _this.$ti._eval$1("VirtualChannel<1>")); + }, + _closeChannel$2(inputId, outputId) { + var t1, t2, _this = this; + _this._closedIds.add$1(0, inputId); + t1 = _this._controllers; + t2 = t1.remove$1(0, inputId).__StreamChannelController__local_F; + t2 === $ && A.throwLateFieldNI("_local"); + t2 = t2.__GuaranteeChannel__sink_F; + t2 === $ && A.throwLateFieldNI("_sink"); + t2.close$0(); + t2 = _this._multi_channel$_inner; + if (t2 == null) + return; + t2 = t2.__GuaranteeChannel__sink_F; + t2 === $ && A.throwLateFieldNI("_sink"); + t2.add$1(0, A._setArrayType([outputId], type$.JSArray_int)); + if (t1.__js_helper$_length === 0) + _this._closeInnerChannel$0(); + }, + _closeInnerChannel$0() { + var t2, t3, _i, t4, _this = this, + t1 = _this._multi_channel$_inner.__GuaranteeChannel__sink_F; + t1 === $ && A.throwLateFieldNI("_sink"); + t1.close$0(); + _this._innerStreamSubscription._source.cancel$0(); + _this._multi_channel$_inner = null; + for (t1 = _this._controllers, t2 = A.List_List$from(new A.LinkedHashMapValuesIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapValuesIterable<2>")), true, type$.dynamic), t3 = t2.length, _i = 0; _i < t3; ++_i) { + t4 = t2[_i].get$local().__GuaranteeChannel__sink_F; + t4 === $ && A.throwLateFieldNI("_sink"); + t4.close$0(); + } + t1.clear$0(0); + }, + $isMultiChannel: 1 + }; + A._MultiChannel_closure.prototype = { + call$1(message) { + var t1; + this.T._as(message); + t1 = this.$this._multi_channel$_inner.__GuaranteeChannel__sink_F; + t1 === $ && A.throwLateFieldNI("_sink"); + return t1.add$1(0, [0, message]); + }, + $signature() { + return this.T._eval$1("~(0)"); + } + }; + A._MultiChannel_closure0.prototype = { + call$0() { + return this.$this._closeChannel$2(0, 0); + }, + $signature: 0 + }; + A._MultiChannel_closure1.prototype = { + call$1(message) { + var t1, id, t2, t3, controller, t4; + type$.List_dynamic._as(message); + t1 = J.getInterceptor$asx(message); + id = A._asInt(t1.$index(message, 0)); + t2 = this.$this; + if (t2._closedIds.contains$1(0, id)) + return; + t3 = this.T; + controller = t2._controllers.putIfAbsent$2(id, new A._MultiChannel__closure(t2, id, t3)); + t2 = t1.get$length(message); + t4 = controller.__StreamChannelController__local_F; + if (t2 > 1) { + t4 === $ && A.throwLateFieldNI("_local"); + t2 = t4.__GuaranteeChannel__sink_F; + t2 === $ && A.throwLateFieldNI("_sink"); + t2.add$1(0, t3._as(t1.$index(message, 1))); + } else { + t4 === $ && A.throwLateFieldNI("_local"); + t1 = t4.__GuaranteeChannel__sink_F; + t1 === $ && A.throwLateFieldNI("_sink"); + t1.close$0(); + } + }, + $signature: 36 + }; + A._MultiChannel__closure.prototype = { + call$0() { + this.$this._pendingIds.add$1(0, this.id); + return A.StreamChannelController$(true, this.T); + }, + $signature() { + return this.T._eval$1("StreamChannelController<0>()"); + } + }; + A._MultiChannel_virtualChannel_closure.prototype = { + call$1(message) { + var t1 = this.$this; + t1.$ti._precomputed1._as(message); + t1 = t1._multi_channel$_inner.__GuaranteeChannel__sink_F; + t1 === $ && A.throwLateFieldNI("_sink"); + return t1.add$1(0, [this._box_0.outputId, message]); + }, + $signature() { + return this.$this.$ti._eval$1("~(1)"); + } + }; + A._MultiChannel_virtualChannel_closure0.prototype = { + call$0() { + var t1 = this._box_0; + return this.$this._closeChannel$2(t1.inputId, t1.outputId); + }, + $signature: 0 + }; + A.VirtualChannel.prototype = {$isMultiChannel: 1}; + A.StreamChannelController.prototype = { + get$local() { + var t1 = this.__StreamChannelController__local_F; + t1 === $ && A.throwLateFieldNI("_local"); + return t1; + } + }; + A.StreamChannelMixin.prototype = {$isStreamChannel: 1}; + A.MessagePort_get_postMessage_closure.prototype = { + call$1(message) { + var t1 = this._this, + t2 = []; + if (message != null) + t2.push(A.jsify(message)); + return t1.postMessage.apply(t1, t2); + }, + $signature: 3 + }; + A.Subscription.prototype = {}; + A.main_closure.prototype = { + call$0() { + var play, + serverChannel = A._connectToServer(), + t1 = serverChannel._mainController.__StreamChannelController__foreign_F; + t1 === $ && A.throwLateFieldNI("_foreign"); + t1 = t1.__GuaranteeChannel__streamController_F; + t1 === $ && A.throwLateFieldNI("_streamController"); + new A._ControllerStream(t1, A._instanceType(t1)._eval$1("_ControllerStream<1>")).listen$1(new A.main__closure(serverChannel)); + A.Timer_Timer$periodic(B.Duration_1000000, new A.main__closure0(serverChannel)); + t1 = init.G; + play = A._asJSObjectQ(A._asJSObject(t1.document).querySelector("#play")); + play.toString; + A.EventTarget_addEventListener(play, "click", new A.main__closure1(serverChannel)); + t1.dartTest = {resume: A._functionToJS0(new A.main__closure2(serverChannel)), restartCurrent: A._functionToJS0(new A.main__closure3(serverChannel))}; + }, + $signature: 2 + }; + A.main__closure.prototype = { + call$1(message) { + var _0_4_isSet, _0_3, _0_15, _0_15_isSet, _0_14, _0_14_isSet, channel, url, id, t1, _0_4, _0_3_isSet, t2, _0_9, _0_12, suiteChannel, _null = null, + _s7_ = "command", + _s2_ = "id"; + $label0$0: { + _0_4_isSet = type$.Map_dynamic_dynamic._is(message); + _0_3 = _null; + _0_15 = _null; + _0_15_isSet = false; + _0_14 = _null; + _0_14_isSet = false; + channel = _null; + url = _null; + id = _null; + t1 = false; + if (_0_4_isSet) { + _0_4 = message.$index(0, _s7_); + _0_3_isSet = _0_4 == null; + if (_0_3_isSet) { + _0_3 = message.containsKey$1(_s7_); + t2 = _0_3; + } else + t2 = true; + if (t2) + if ("loadSuite" === _0_4) { + _0_9 = message.$index(0, "channel"); + if (_0_9 == null) + t2 = message.containsKey$1("channel"); + else + t2 = true; + if (t2) + if (typeof _0_9 == "number") { + _0_12 = message.$index(0, "url"); + if (_0_12 == null) + t2 = message.containsKey$1("url"); + else + t2 = true; + if (t2) { + _0_15_isSet = typeof _0_12 == "string"; + if (_0_15_isSet) { + _0_15 = message.$index(0, _s2_); + _0_14_isSet = _0_15 == null; + if (_0_14_isSet) { + _0_14 = message.containsKey$1(_s2_); + t2 = _0_14; + } else + t2 = true; + if (t2) { + t1 = typeof _0_15 == "number"; + if (t1) + id = _0_15; + } + url = _0_12; + } + } + channel = _0_9; + } + } + } else { + _0_4 = _null; + _0_3_isSet = false; + } + if (t1) { + suiteChannel = this.serverChannel.virtualChannel$1(J.toInt$0$n(channel)); + t1 = suiteChannel.$ti._eval$1("StreamChannel<1>")._as(A._connectToIframe(url, J.toInt$0$n(id))); + t2 = t1.__GuaranteeChannel__sink_F; + t2 === $ && A.throwLateFieldNI("_sink"); + suiteChannel.stream.pipe$1(t2); + t1 = t1.__GuaranteeChannel__streamController_F; + t1 === $ && A.throwLateFieldNI("_streamController"); + new A._ControllerStream(t1, A._instanceType(t1)._eval$1("_ControllerStream<1>")).pipe$1(suiteChannel.sink); + break $label0$0; + } + t1 = false; + if (_0_4_isSet) { + if (_0_4 == null) + if (_0_3_isSet) + t2 = _0_3; + else { + _0_3 = message.containsKey$1(_s7_); + t2 = _0_3; + _0_3_isSet = true; + } + else + t2 = true; + if (t2) + t1 = "displayPause" === _0_4; + } + if (t1) { + A._asJSObject(A._asJSObjectQ(A._asJSObject(init.G.document).body).classList).add("paused"); + break $label0$0; + } + t1 = false; + if (_0_4_isSet) { + if (_0_4 == null) + if (_0_3_isSet) + t2 = _0_3; + else { + _0_3 = message.containsKey$1(_s7_); + t2 = _0_3; + _0_3_isSet = true; + } + else + t2 = true; + if (t2) + t1 = "resume" === _0_4; + } + if (t1) { + A._asJSObject(A._asJSObjectQ(A._asJSObject(init.G.document).body).classList).remove("paused"); + break $label0$0; + } + id = _null; + t1 = false; + if (_0_4_isSet) { + if (_0_4 == null) + t2 = _0_3_isSet ? _0_3 : message.containsKey$1(_s7_); + else + t2 = true; + if (t2) + if ("closeSuite" === _0_4) { + if (_0_15_isSet) + t2 = _0_15; + else { + _0_15 = message.$index(0, _s2_); + t2 = _0_15; + _0_15_isSet = true; + } + if (t2 == null) + t2 = _0_14_isSet ? _0_14 : message.containsKey$1(_s2_); + else + t2 = true; + if (t2) { + id = _0_15_isSet ? _0_15 : message.$index(0, _s2_); + t1 = true; + } + } + } + if (t1) { + t1 = $._iframes.remove$1(0, id); + if (A._asJSObjectQ(t1.parentNode) != null) + A._asJSObject(A._asJSObjectQ(t1.parentNode).removeChild(t1)); + t1 = $._subscriptions.remove$1(0, id); + if (t1 != null) + t1.cancel$0(); + t1 = $._domSubscriptions.remove$1(0, id); + if (t1 != null) + A.EventTarget_removeEventListener(t1.target, t1.type, t1.listener); + break $label0$0; + } + A._asJSObject(A._asJSObject(init.G.window).console).warn("Unhandled message from test runner: " + A.S(message)); + } + }, + $signature: 6 + }; + A.main__closure0.prototype = { + call$1(__wc0_formal) { + var t1, t2; + type$.Timer._as(__wc0_formal); + t1 = this.serverChannel._mainController.__StreamChannelController__foreign_F; + t1 === $ && A.throwLateFieldNI("_foreign"); + t1 = t1.__GuaranteeChannel__sink_F; + t1 === $ && A.throwLateFieldNI("_sink"); + t2 = type$.String; + return t1.add$1(0, A.LinkedHashMap_LinkedHashMap$_literal(["command", "ping"], t2, t2)); + }, + $signature: 37 + }; + A.main__closure1.prototype = { + call$1(__wc1_formal) { + var t1, t2; + A._asJSObject(__wc1_formal); + t1 = init.G; + if (!A._asBool(A._asJSObject(A._asJSObjectQ(A._asJSObject(t1.document).body).classList).contains("paused"))) + return; + A._asJSObject(A._asJSObjectQ(A._asJSObject(t1.document).body).classList).remove("paused"); + t1 = this.serverChannel._mainController.__StreamChannelController__foreign_F; + t1 === $ && A.throwLateFieldNI("_foreign"); + t1 = t1.__GuaranteeChannel__sink_F; + t1 === $ && A.throwLateFieldNI("_sink"); + t2 = type$.String; + t1.add$1(0, A.LinkedHashMap_LinkedHashMap$_literal(["command", "resume"], t2, t2)); + }, + $signature: 7 + }; + A.main__closure2.prototype = { + call$0() { + var t2, + t1 = init.G; + if (!A._asBool(A._asJSObject(A._asJSObjectQ(A._asJSObject(t1.document).body).classList).contains("paused"))) + return; + A._asJSObject(A._asJSObjectQ(A._asJSObject(t1.document).body).classList).remove("paused"); + t1 = this.serverChannel._mainController.__StreamChannelController__foreign_F; + t1 === $ && A.throwLateFieldNI("_foreign"); + t1 = t1.__GuaranteeChannel__sink_F; + t1 === $ && A.throwLateFieldNI("_sink"); + t2 = type$.String; + t1.add$1(0, A.LinkedHashMap_LinkedHashMap$_literal(["command", "resume"], t2, t2)); + }, + $signature: 2 + }; + A.main__closure3.prototype = { + call$0() { + var t2, + t1 = this.serverChannel._mainController.__StreamChannelController__foreign_F; + t1 === $ && A.throwLateFieldNI("_foreign"); + t1 = t1.__GuaranteeChannel__sink_F; + t1 === $ && A.throwLateFieldNI("_sink"); + t2 = type$.String; + t1.add$1(0, A.LinkedHashMap_LinkedHashMap$_literal(["command", "restart"], t2, t2)); + }, + $signature: 2 + }; + A.main_closure0.prototype = { + call$2(error, stackTrace) { + A._asObject(error); + type$.StackTrace._as(stackTrace); + A._asJSObject(A._asJSObject(init.G.window).console).warn(A.S(error) + "\n" + A.Trace_Trace$from(stackTrace).get$terse().toString$0(0)); + }, + $signature: 10 + }; + A._connectToServer_closure.prototype = { + call$1(message) { + var t1; + A._asJSObject(message); + t1 = this.controller.__StreamChannelController__local_F; + t1 === $ && A.throwLateFieldNI("_local"); + t1 = t1.__GuaranteeChannel__sink_F; + t1 === $ && A.throwLateFieldNI("_sink"); + t1.add$1(0, B.C_JsonCodec.decode$2$reviver(A._asString(A.dartify(message.data)), null)); + }, + $signature: 7 + }; + A._connectToServer_closure0.prototype = { + call$1(message) { + return this.webSocket.send(B.C_JsonCodec.encode$2$toEncodable(message, null)); + }, + $signature: 3 + }; + A._connectToIframe_closure.prototype = { + call$1($event) { + var t1, t2, _0_0, port, data, _0_6, _0_11, _this = this, + _s9_ = "exception"; + A._asJSObject($event); + t1 = init.G; + if (A._asString($event.origin) !== A._asString(A._asJSObject(A._asJSObject(t1.window).location).origin)) + return; + t2 = $event.source.location; + t2 = t2 == null ? null : A._asStringQ(t2.href); + if (t2 != A._asStringQ(_this.iframe.src)) + return; + $event.stopPropagation(); + t2 = _this.windowSubscription._readLocal$0(); + A.EventTarget_removeEventListener(t2.target, t2.type, t2.listener); + $label0$0: { + _0_0 = A.dartify($event.data); + if ("port" === _0_0) { + A._asJSObject(A._asJSObject(t1.window).console).log("Connecting channel for suite " + _this.suiteUrl.toString$0(0)); + t1 = type$.JSArray_nullable_Object._as($event.ports); + t1 = B.JSArray_methods.cast$1$0(t1, type$.JSObject); + port = t1.get$first(t1); + t1 = _this.id; + t2 = _this.controller; + $._domSubscriptions.$indexSet(0, t1, A.Subscription$(port, "message", new A._connectToIframe__closure(t2))); + port.start(); + t2 = t2.__StreamChannelController__local_F; + t2 === $ && A.throwLateFieldNI("_local"); + t2 = t2.__GuaranteeChannel__streamController_F; + t2 === $ && A.throwLateFieldNI("_streamController"); + $._subscriptions.$indexSet(0, t1, new A._ControllerStream(t2, A._instanceType(t2)._eval$1("_ControllerStream<1>")).listen$1(A.MessagePort_get_postMessage(port))); + break $label0$0; + } + data = null; + t1 = false; + if (type$.Map_dynamic_dynamic._is(_0_0)) { + _0_6 = _0_0.$index(0, _s9_); + if (_0_6 == null) + t2 = _0_0.containsKey$1(_s9_); + else + t2 = true; + if (t2) + if (true === _0_6) { + _0_11 = _0_0.$index(0, "data"); + if (_0_11 == null) + t1 = _0_0.containsKey$1("data"); + else + t1 = true; + if (t1) + data = _0_11; + } + } + if (t1) { + t1 = _this.controller.__StreamChannelController__local_F; + t1 === $ && A.throwLateFieldNI("_local"); + t1 = t1.__GuaranteeChannel__sink_F; + t1 === $ && A.throwLateFieldNI("_sink"); + t1.add$1(0, data); + } + } + }, + $signature: 7 + }; + A._connectToIframe__closure.prototype = { + call$1($event) { + var t1; + A._asJSObject($event); + t1 = this.controller.__StreamChannelController__local_F; + t1 === $ && A.throwLateFieldNI("_local"); + t1 = t1.__GuaranteeChannel__sink_F; + t1 === $ && A.throwLateFieldNI("_sink"); + t1.add$1(0, A.dartify($event.data)); + }, + $signature: 7 + }; + (function aliases() { + var _ = J.LegacyJavaScriptObject.prototype; + _.super$LegacyJavaScriptObject$toString = _.toString$0; + _ = A.ListBase.prototype; + _.super$ListBase$setRange = _.setRange$4; + _ = A.Iterable.prototype; + _.super$Iterable$skipWhile = _.skipWhile$1; + })(); + (function installTearOffs() { + var _instance_1_u = hunkHelpers._instance_1u, + _static_1 = hunkHelpers._static_1, + _static_0 = hunkHelpers._static_0, + _static_2 = hunkHelpers._static_2, + _static = hunkHelpers.installStaticTearOff, + _instance = hunkHelpers.installInstanceTearOff, + _instance_2_u = hunkHelpers._instance_2u, + _instance_1_i = hunkHelpers._instance_1i, + _instance_0_u = hunkHelpers._instance_0u; + _instance_1_u(A.CastStreamSubscription.prototype, "get$__internal$_onData", "__internal$_onData$1", 3); + _static_1(A, "async__AsyncRun__scheduleImmediateJsOverride$closure", "_AsyncRun__scheduleImmediateJsOverride", 8); + _static_1(A, "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", "_AsyncRun__scheduleImmediateWithSetImmediate", 8); + _static_1(A, "async__AsyncRun__scheduleImmediateWithTimer$closure", "_AsyncRun__scheduleImmediateWithTimer", 8); + _static_0(A, "async___startMicrotaskLoop$closure", "_startMicrotaskLoop", 0); + _static_1(A, "async___nullDataHandler$closure", "_nullDataHandler", 6); + _static_2(A, "async___nullErrorHandler$closure", "_nullErrorHandler", 10); + _static_0(A, "async___nullDoneHandler$closure", "_nullDoneHandler", 0); + _static(A, "async___rootHandleUncaughtError$closure", 5, null, ["call$5"], ["_rootHandleUncaughtError"], 40, 0); + _static(A, "async___rootRun$closure", 4, null, ["call$1$4", "call$4"], ["_rootRun", function($self, $parent, zone, f) { + return A._rootRun($self, $parent, zone, f, type$.dynamic); + }], 41, 0); + _static(A, "async___rootRunUnary$closure", 5, null, ["call$2$5", "call$5"], ["_rootRunUnary", function($self, $parent, zone, f, arg) { + var t1 = type$.dynamic; + return A._rootRunUnary($self, $parent, zone, f, arg, t1, t1); + }], 42, 0); + _static(A, "async___rootRunBinary$closure", 6, null, ["call$3$6"], ["_rootRunBinary"], 43, 0); + _static(A, "async___rootRegisterCallback$closure", 4, null, ["call$1$4", "call$4"], ["_rootRegisterCallback", function($self, $parent, zone, f) { + return A._rootRegisterCallback($self, $parent, zone, f, type$.dynamic); + }], 44, 0); + _static(A, "async___rootRegisterUnaryCallback$closure", 4, null, ["call$2$4", "call$4"], ["_rootRegisterUnaryCallback", function($self, $parent, zone, f) { + var t1 = type$.dynamic; + return A._rootRegisterUnaryCallback($self, $parent, zone, f, t1, t1); + }], 45, 0); + _static(A, "async___rootRegisterBinaryCallback$closure", 4, null, ["call$3$4", "call$4"], ["_rootRegisterBinaryCallback", function($self, $parent, zone, f) { + var t1 = type$.dynamic; + return A._rootRegisterBinaryCallback($self, $parent, zone, f, t1, t1, t1); + }], 46, 0); + _static(A, "async___rootErrorCallback$closure", 5, null, ["call$5"], ["_rootErrorCallback"], 47, 0); + _static(A, "async___rootScheduleMicrotask$closure", 4, null, ["call$4"], ["_rootScheduleMicrotask"], 48, 0); + _static(A, "async___rootCreateTimer$closure", 5, null, ["call$5"], ["_rootCreateTimer"], 49, 0); + _static(A, "async___rootCreatePeriodicTimer$closure", 5, null, ["call$5"], ["_rootCreatePeriodicTimer"], 50, 0); + _static(A, "async___rootPrint$closure", 4, null, ["call$4"], ["_rootPrint"], 51, 0); + _static(A, "async___rootFork$closure", 5, null, ["call$5"], ["_rootFork"], 52, 0); + _instance(A._SyncCompleter.prototype, "get$complete", 0, 0, null, ["call$1", "call$0"], ["complete$1", "complete$0"], 30, 0, 0); + _instance_2_u(A._Future.prototype, "get$_completeError", "_completeError$2", 10); + var _; + _instance_1_i(_ = A._StreamController.prototype, "get$add", "add$1", 3); + _instance(_, "get$addError", 0, 1, null, ["call$2", "call$1"], ["addError$2", "addError$1"], 11, 0, 0); + _instance_1_i(A._StreamSinkWrapper.prototype, "get$add", "add$1", 3); + _instance_0_u(A._DoneStreamSubscription.prototype, "get$_onMicrotask", "_onMicrotask$0", 0); + _static_1(A, "convert___defaultToEncodable$closure", "_defaultToEncodable", 12); + _static_1(A, "core_Uri_decodeComponent$closure", "Uri_decodeComponent", 15); + _instance(_ = A._GuaranteeSink.prototype, "get$addError", 0, 1, null, ["call$2", "call$1"], ["addError$2", "addError$1"], 11, 0, 0); + _instance(_, "get$_addError", 0, 1, null, ["call$2", "call$1"], ["_addError$2", "_addError$1"], 11, 0, 0); + _instance_0_u(A._MultiChannel.prototype, "get$_closeInnerChannel", "_closeInnerChannel$0", 0); + _static(A, "math__max$closure", 2, null, ["call$1$2", "call$2"], ["max", function(a, b) { + return A.max(a, b, type$.num); + }], 35, 0); + })(); + (function inheritance() { + var _mixin = hunkHelpers.mixin, + _inherit = hunkHelpers.inherit, + _inheritMany = hunkHelpers.inheritMany; + _inherit(A.Object, null); + _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, A.SafeToStringHook, J.ArrayIterator, A.Stream, A.CastStreamSubscription, A.Iterable, A.CastIterator, A.Error, A.ListBase, A.Closure, A.SentinelValue, A.ListIterator, A.MappedIterator, A.WhereIterator, A.ExpandIterator, A.TakeIterator, A.SkipIterator, A.SkipWhileIterator, A.EmptyIterator, A.WhereTypeIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A.ConstantMap, A._KeysOrValuesOrElementsIterator, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A._StackTrace, A.MapBase, A.LinkedHashMapCell, A.LinkedHashMapKeyIterator, A.LinkedHashMapValueIterator, A.JSSyntaxRegExp, A._MatchImplementation, A._AllMatchesIterator, A.StringMatch, A._StringAllMatchesIterator, A._Cell, A.Rti, A._FunctionParameters, A._Type, A._TimerImpl, A.AsyncError, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A._StreamController, A._SyncStreamControllerDispatch, A._BufferingStreamSubscription, A._StreamSinkWrapper, A._DelayedEvent, A._DelayedDone, A._PendingEvents, A._DoneStreamSubscription, A._ZoneFunction, A._Zone, A._ZoneDelegate, A._ZoneSpecification, A._HashMapKeyIterator, A.SetBase, A._LinkedHashSetCell, A._LinkedHashSetIterator, A._UnmodifiableMapMixin, A.MapView, A.Codec, A.Converter, A._JsonStringifier, A._Utf8Encoder, A._Utf8Decoder, A.DateTime, A.Duration, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.Null, A._StringStackTrace, A.StringBuffer, A._Uri, A.UriData, A._SimpleUri, A.NullRejectionException, A.NullStreamSink, A.Context, A.Style, A.ParsedPath, A.PathException, A.Chain, A.Frame, A.LazyTrace, A.Trace, A.UnparsedFrame, A.StreamChannelMixin, A._GuaranteeSink, A.StreamChannelController, A.Subscription]); + _inheritMany(J.Interceptor, [J.JSBool, J.JSNull, J.JavaScriptObject, J.JavaScriptBigInt, J.JavaScriptSymbol, J.JSNumber, J.JSString]); + _inheritMany(J.JavaScriptObject, [J.LegacyJavaScriptObject, J.JSArray, A.NativeByteBuffer, A.NativeTypedData]); + _inheritMany(J.LegacyJavaScriptObject, [J.PlainJavaScriptObject, J.UnknownJavaScriptObject, J.JavaScriptFunction]); + _inherit(J.JSArraySafeToStringHook, A.SafeToStringHook); + _inherit(J.JSUnmodifiableArray, J.JSArray); + _inheritMany(J.JSNumber, [J.JSInt, J.JSNumNotInt]); + _inheritMany(A.Stream, [A.CastStream, A._StreamImpl, A._EmptyStream]); + _inheritMany(A.Iterable, [A._CastIterableBase, A.EfficientLengthIterable, A.MappedIterable, A.WhereIterable, A.ExpandIterable, A.TakeIterable, A.SkipIterable, A.SkipWhileIterable, A.WhereTypeIterable, A._KeysOrValues, A._AllMatchesIterable, A._StringAllMatchesIterable]); + _inheritMany(A._CastIterableBase, [A.CastIterable, A.__CastListBase__CastIterableBase_ListMixin]); + _inherit(A._EfficientLengthCastIterable, A.CastIterable); + _inherit(A._CastListBase, A.__CastListBase__CastIterableBase_ListMixin); + _inherit(A.CastList, A._CastListBase); + _inheritMany(A.Error, [A.LateError, A.TypeError, A.JsNoSuchMethodError, A.UnknownJsTypeError, A.RuntimeError, A._Error, A.JsonUnsupportedObjectError, A.AssertionError, A.ArgumentError, A.UnsupportedError, A.UnimplementedError, A.StateError, A.ConcurrentModificationError]); + _inherit(A.UnmodifiableListBase, A.ListBase); + _inherit(A.CodeUnits, A.UnmodifiableListBase); + _inheritMany(A.Closure, [A.Closure0Args, A.Instantiation, A.Closure2Args, A.TearOffClosure, A.initHooks_closure, A.initHooks_closure1, A._AsyncRun__initializeScheduleImmediate_internalCallback, A._AsyncRun__initializeScheduleImmediate_closure, A._Future__propagateToListeners_handleWhenCompleteCallback_closure, A.Stream_pipe_closure, A.Stream_length_closure, A._CustomZone_bindUnaryCallback_closure, A._CustomZone_bindUnaryCallbackGuarded_closure, A._RootZone_bindUnaryCallback_closure, A._RootZone_bindUnaryCallbackGuarded_closure, A.runZonedGuarded_closure, A._Uri__makePath_closure, A.jsify__convert, A.promiseToFuture_closure, A.promiseToFuture_closure0, A.dartify_convert, A.Context_joinAll_closure, A.Context_split_closure, A._validateArgList_closure, A.WindowsStyle_absolutePathToUri_closure, A.Chain_Chain$parse_closure, A.Chain_Chain$parse_closure0, A.Chain_Chain$parse_closure1, A.Chain_toTrace_closure, A.Chain_toString_closure0, A.Chain_toString__closure0, A.Chain_toString_closure, A.Chain_toString__closure, A.Trace__parseVM_closure, A.Trace__parseVM_closure0, A.Trace$parseV8_closure, A.Trace$parseV8_closure0, A.Trace$parseJSCore_closure, A.Trace$parseJSCore_closure0, A.Trace$parseFirefox_closure, A.Trace$parseFirefox_closure0, A.Trace$parseFriendly_closure, A.Trace$parseFriendly_closure0, A.Trace_terse_closure, A.Trace_foldFrames_closure, A.Trace_foldFrames_closure0, A.Trace_toString_closure0, A.Trace_toString_closure, A._GuaranteeSink_addStream_closure, A._MultiChannel_closure, A._MultiChannel_closure1, A._MultiChannel_virtualChannel_closure, A.MessagePort_get_postMessage_closure, A.main__closure, A.main__closure0, A.main__closure1, A._connectToServer_closure, A._connectToServer_closure0, A._connectToIframe_closure, A._connectToIframe__closure]); + _inheritMany(A.Closure0Args, [A.nullFuture_closure, A._AsyncRun__scheduleImmediateJsOverride_internalCallback, A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback, A._TimerImpl_internalCallback, A._TimerImpl$periodic_closure, A._Future__addListener_closure, A._Future__prependListeners_closure, A._Future__chainCoreFuture_closure, A._Future__asyncCompleteWithValue_closure, A._Future__asyncCompleteErrorObject_closure, A._Future__propagateToListeners_handleWhenCompleteCallback, A._Future__propagateToListeners_handleValueCallback, A._Future__propagateToListeners_handleError, A.Stream_length_closure0, A._StreamController__subscribe_closure, A._StreamController__recordCancel_complete, A._AddStreamState_cancel_closure, A._BufferingStreamSubscription__sendError_sendError, A._BufferingStreamSubscription__sendDone_sendDone, A._PendingEvents_schedule_closure, A._CustomZone_bindCallback_closure, A._CustomZone_bindCallbackGuarded_closure, A._RootZone_bindCallback_closure, A._RootZone_bindCallbackGuarded_closure, A._rootHandleError_closure, A._Utf8Decoder__decoder_closure, A._Utf8Decoder__decoderNonfatal_closure, A.NullStreamSink_addStream_closure, A.Frame_Frame$parseVM_closure, A.Frame_Frame$parseV8_closure, A.Frame_Frame$_parseFirefoxEval_closure, A.Frame_Frame$parseFirefox_closure, A.Frame_Frame$parseFriendly_closure, A.LazyTrace_terse_closure, A.Trace_Trace$from_closure, A.GuaranteeChannel_closure, A.GuaranteeChannel__closure, A._MultiChannel_closure0, A._MultiChannel__closure, A._MultiChannel_virtualChannel_closure0, A.main_closure, A.main__closure2, A.main__closure3]); + _inheritMany(A.EfficientLengthIterable, [A.ListIterable, A.EmptyIterable, A.LinkedHashMapKeysIterable, A.LinkedHashMapValuesIterable, A._HashMapKeyIterable]); + _inheritMany(A.ListIterable, [A.SubListIterable, A.MappedListIterable, A.ReversedListIterable, A._JsonMapKeyIterable]); + _inherit(A.EfficientLengthMappedIterable, A.MappedIterable); + _inherit(A.EfficientLengthTakeIterable, A.TakeIterable); + _inherit(A.EfficientLengthSkipIterable, A.SkipIterable); + _inherit(A.ConstantStringMap, A.ConstantMap); + _inherit(A.Instantiation1, A.Instantiation); + _inherit(A.NullError, A.TypeError); + _inheritMany(A.TearOffClosure, [A.StaticClosure, A.BoundClosure]); + _inheritMany(A.MapBase, [A.JsLinkedHashMap, A._HashMap, A._JsonMap]); + _inheritMany(A.Closure2Args, [A.initHooks_closure0, A._Future__propagateToListeners_handleWhenCompleteCallback_closure0, A.MapBase_mapToString_closure, A._JsonStringifier_writeMap_closure, A.Uri_splitQueryString_closure, A.Uri_parseIPv6Address_error, A.Frame_Frame$parseV8_closure_parseLocation, A.main_closure0]); + _inheritMany(A.NativeTypedData, [A.NativeByteData, A.NativeTypedArray]); + _inheritMany(A.NativeTypedArray, [A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin, A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin]); + _inherit(A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin, A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin); + _inherit(A.NativeTypedArrayOfDouble, A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin); + _inherit(A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin, A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin); + _inherit(A.NativeTypedArrayOfInt, A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin); + _inheritMany(A.NativeTypedArrayOfDouble, [A.NativeFloat32List, A.NativeFloat64List]); + _inheritMany(A.NativeTypedArrayOfInt, [A.NativeInt16List, A.NativeInt32List, A.NativeInt8List, A.NativeUint16List, A.NativeUint32List, A.NativeUint8ClampedList, A.NativeUint8List]); + _inherit(A._TypeError, A._Error); + _inheritMany(A._Completer, [A._AsyncCompleter, A._SyncCompleter]); + _inherit(A._SyncStreamController, A._StreamController); + _inherit(A._ControllerStream, A._StreamImpl); + _inherit(A._ControllerSubscription, A._BufferingStreamSubscription); + _inheritMany(A._DelayedEvent, [A._DelayedData, A._DelayedError]); + _inheritMany(A._Zone, [A._CustomZone, A._RootZone]); + _inherit(A._IdentityHashMap, A._HashMap); + _inherit(A._SetBase, A.SetBase); + _inherit(A._LinkedHashSet, A._SetBase); + _inherit(A._UnmodifiableMapView_MapView__UnmodifiableMapMixin, A.MapView); + _inherit(A.UnmodifiableMapView, A._UnmodifiableMapView_MapView__UnmodifiableMapMixin); + _inheritMany(A.Codec, [A.Encoding, A.Base64Codec, A._FusedCodec, A.JsonCodec]); + _inheritMany(A.Encoding, [A.AsciiCodec, A.Utf8Codec]); + _inheritMany(A.Converter, [A._UnicodeSubsetEncoder, A.Base64Encoder, A.JsonEncoder, A.JsonDecoder, A.Utf8Encoder, A.Utf8Decoder]); + _inherit(A.AsciiEncoder, A._UnicodeSubsetEncoder); + _inherit(A.JsonCyclicError, A.JsonUnsupportedObjectError); + _inherit(A._JsonStringStringifier, A._JsonStringifier); + _inheritMany(A.ArgumentError, [A.RangeError, A.IndexError]); + _inherit(A._DataUri, A._Uri); + _inherit(A.InternalStyle, A.Style); + _inheritMany(A.InternalStyle, [A.PosixStyle, A.UrlStyle, A.WindowsStyle]); + _inheritMany(A.StreamChannelMixin, [A.GuaranteeChannel, A._MultiChannel, A.VirtualChannel]); + _mixin(A.UnmodifiableListBase, A.UnmodifiableListMixin); + _mixin(A.__CastListBase__CastIterableBase_ListMixin, A.ListBase); + _mixin(A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin, A.ListBase); + _mixin(A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin, A.FixedLengthListMixin); + _mixin(A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin, A.ListBase); + _mixin(A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin, A.FixedLengthListMixin); + _mixin(A._SyncStreamController, A._SyncStreamControllerDispatch); + _mixin(A._UnmodifiableMapView_MapView__UnmodifiableMapMixin, A._UnmodifiableMapMixin); + })(); + var init = { + G: typeof self != "undefined" ? self : globalThis, + typeUniverse: {eC: new Map(), tR: {}, eT: {}, tPV: {}, sEA: []}, + mangledGlobalNames: {int: "int", double: "double", num: "num", String: "String", bool: "bool", Null: "Null", List: "List", Object: "Object", Map: "Map", JSObject: "JSObject"}, + mangledNames: {}, + types: ["~()", "bool(String)", "Null()", "~(Object?)", "Frame()", "Frame(String)", "~(@)", "~(JSObject)", "~(~())", "Null(@)", "~(Object,StackTrace)", "~(Object[StackTrace?])", "@(@)", "~(Object?,Object?)", "@()", "String(String)", "Object?(Object?)", "Trace(String)", "int(Frame)", "String(Frame)", "Trace()", "bool(Frame)", "Map(Map,String)", "String(String?)", "~(Zone,ZoneDelegate,Zone,Object,StackTrace)", "List(Trace)", "int(Trace)", "@(@,String)", "String(Trace)", "@(String)", "~([Object?])", "Frame(String,String)", "0&(String,int?)", "Future<~>()", "Null(Object,StackTrace)", "0^(0^,0^)", "~(List<@>)", "~(Timer)", "Future<@>(@)", "Null(~())", "~(Zone?,ZoneDelegate?,Zone,Object,StackTrace)", "0^(Zone?,ZoneDelegate?,Zone,0^())", "0^(Zone?,ZoneDelegate?,Zone,0^(1^),1^)", "0^(Zone?,ZoneDelegate?,Zone,0^(1^,2^),1^,2^)", "0^()(Zone,ZoneDelegate,Zone,0^())", "0^(1^)(Zone,ZoneDelegate,Zone,0^(1^))", "0^(1^,2^)(Zone,ZoneDelegate,Zone,0^(1^,2^))", "AsyncError?(Zone,ZoneDelegate,Zone,Object,StackTrace?)", "~(Zone?,ZoneDelegate?,Zone,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~(Timer))", "~(Zone,ZoneDelegate,Zone,String)", "Zone(Zone?,ZoneDelegate?,Zone,ZoneSpecification?,Map?)", "Frame(Frame)"], + interceptorsByTag: null, + leafTags: null, + arrayRti: Symbol("$ti") + }; + A._Universe_addRules(init.typeUniverse, JSON.parse('{"PlainJavaScriptObject":"LegacyJavaScriptObject","UnknownJavaScriptObject":"LegacyJavaScriptObject","JavaScriptFunction":"LegacyJavaScriptObject","NativeArrayBuffer":"NativeByteBuffer","JSArray":{"List":["1"],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"]},"JSBool":{"bool":[],"TrustedGetRuntimeType":[]},"JSNull":{"Null":[],"TrustedGetRuntimeType":[]},"JavaScriptObject":{"JSObject":[]},"LegacyJavaScriptObject":{"JSObject":[]},"JSArraySafeToStringHook":{"SafeToStringHook":[]},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"]},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[]},"JSInt":{"double":[],"int":[],"num":[],"TrustedGetRuntimeType":[]},"JSNumNotInt":{"double":[],"num":[],"TrustedGetRuntimeType":[]},"JSString":{"String":[],"Pattern":[],"TrustedGetRuntimeType":[]},"CastStream":{"Stream":["2"],"Stream.T":"2"},"CastStreamSubscription":{"StreamSubscription":["2"]},"_CastIterableBase":{"Iterable":["2"]},"CastIterator":{"Iterator":["2"]},"CastIterable":{"_CastIterableBase":["1","2"],"Iterable":["2"],"Iterable.E":"2"},"_EfficientLengthCastIterable":{"CastIterable":["1","2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"_CastListBase":{"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"]},"CastList":{"_CastListBase":["1","2"],"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListBase.E":"2","Iterable.E":"2"},"LateError":{"Error":[]},"CodeUnits":{"ListBase":["int"],"UnmodifiableListMixin":["int"],"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"ListBase.E":"int","UnmodifiableListMixin.E":"int"},"EfficientLengthIterable":{"Iterable":["1"]},"ListIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"SubListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"ListIterator":{"Iterator":["1"]},"MappedIterable":{"Iterable":["2"],"Iterable.E":"2"},"EfficientLengthMappedIterable":{"MappedIterable":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"MappedIterator":{"Iterator":["2"]},"MappedListIterable":{"ListIterable":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListIterable.E":"2","Iterable.E":"2"},"WhereIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereIterator":{"Iterator":["1"]},"ExpandIterable":{"Iterable":["2"],"Iterable.E":"2"},"ExpandIterator":{"Iterator":["2"]},"TakeIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthTakeIterable":{"TakeIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"TakeIterator":{"Iterator":["1"]},"SkipIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthSkipIterable":{"SkipIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"SkipIterator":{"Iterator":["1"]},"SkipWhileIterable":{"Iterable":["1"],"Iterable.E":"1"},"SkipWhileIterator":{"Iterator":["1"]},"EmptyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"EmptyIterator":{"Iterator":["1"]},"WhereTypeIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereTypeIterator":{"Iterator":["1"]},"UnmodifiableListBase":{"ListBase":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ReversedListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"ConstantMap":{"Map":["1","2"]},"ConstantStringMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"_KeysOrValues":{"Iterable":["1"],"Iterable.E":"1"},"_KeysOrValuesOrElementsIterator":{"Iterator":["1"]},"Instantiation":{"Closure":[],"Function":[]},"Instantiation1":{"Closure":[],"Function":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"NullThrownFromJavaScriptException":{"Exception":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Closure":[],"Function":[]},"Closure2Args":{"Closure":[],"Function":[]},"TearOffClosure":{"Closure":[],"Function":[]},"StaticClosure":{"Closure":[],"Function":[]},"BoundClosure":{"Closure":[],"Function":[]},"RuntimeError":{"Error":[]},"JsLinkedHashMap":{"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"LinkedHashMapKeysIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapKeyIterator":{"Iterator":["1"]},"LinkedHashMapValuesIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapValueIterator":{"Iterator":["1"]},"JSSyntaxRegExp":{"RegExp":[],"Pattern":[]},"_MatchImplementation":{"RegExpMatch":[],"Match":[]},"_AllMatchesIterable":{"Iterable":["RegExpMatch"],"Iterable.E":"RegExpMatch"},"_AllMatchesIterator":{"Iterator":["RegExpMatch"]},"StringMatch":{"Match":[]},"_StringAllMatchesIterable":{"Iterable":["Match"],"Iterable.E":"Match"},"_StringAllMatchesIterator":{"Iterator":["Match"]},"NativeByteBuffer":{"JSObject":[],"ByteBuffer":[],"TrustedGetRuntimeType":[]},"NativeTypedData":{"JSObject":[]},"NativeByteData":{"ByteData":[],"JSObject":[],"TrustedGetRuntimeType":[]},"NativeTypedArray":{"JavaScriptIndexingBehavior":["1"],"JSObject":[]},"NativeTypedArrayOfDouble":{"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"Float32List":[],"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double"},"NativeFloat64List":{"Float64List":[],"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double"},"NativeInt16List":{"NativeTypedArrayOfInt":[],"Int16List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeInt32List":{"NativeTypedArrayOfInt":[],"Int32List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeInt8List":{"NativeTypedArrayOfInt":[],"Int8List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeUint16List":{"NativeTypedArrayOfInt":[],"Uint16List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeUint32List":{"NativeTypedArrayOfInt":[],"Uint32List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeUint8ClampedList":{"NativeTypedArrayOfInt":[],"Uint8ClampedList":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeUint8List":{"NativeTypedArrayOfInt":[],"Uint8List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"_Error":{"Error":[]},"_TypeError":{"TypeError":[],"Error":[]},"AsyncError":{"Error":[]},"_TimerImpl":{"Timer":[]},"_Completer":{"Completer":["1"]},"_AsyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_SyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_Future":{"Future":["1"]},"_StreamController":{"StreamController":["1"],"StreamSink":["1"],"StreamConsumer":["1"],"_StreamControllerLifecycle":["1"],"_EventDispatch":["1"]},"_SyncStreamController":{"_SyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"StreamConsumer":["1"],"_StreamControllerLifecycle":["1"],"_EventDispatch":["1"]},"_ControllerStream":{"_StreamImpl":["1"],"Stream":["1"],"Stream.T":"1"},"_ControllerSubscription":{"_BufferingStreamSubscription":["1"],"StreamSubscription":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamSinkWrapper":{"StreamSink":["1"],"StreamConsumer":["1"]},"_BufferingStreamSubscription":{"StreamSubscription":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamImpl":{"Stream":["1"]},"_DelayedData":{"_DelayedEvent":["1"]},"_DelayedError":{"_DelayedEvent":["@"]},"_DelayedDone":{"_DelayedEvent":["@"]},"_DoneStreamSubscription":{"StreamSubscription":["1"]},"_EmptyStream":{"Stream":["1"],"Stream.T":"1"},"_Zone":{"Zone":[]},"_CustomZone":{"_Zone":[],"Zone":[]},"_RootZone":{"_Zone":[],"Zone":[]},"_ZoneDelegate":{"ZoneDelegate":[]},"_ZoneSpecification":{"ZoneSpecification":[]},"_HashMap":{"MapBase":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_IdentityHashMap":{"_HashMap":["1","2"],"MapBase":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_LinkedHashSet":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_LinkedHashSetIterator":{"Iterator":["1"]},"ListBase":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"SetBase":{"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SetBase":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_JsonMap":{"MapBase":["String","@"],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"_JsonMapKeyIterable":{"ListIterable":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ListIterable.E":"String","Iterable.E":"String"},"AsciiCodec":{"Codec":["String","List"]},"_UnicodeSubsetEncoder":{"Converter":["String","List"],"StreamTransformer":["String","List"]},"AsciiEncoder":{"Converter":["String","List"],"StreamTransformer":["String","List"]},"Base64Codec":{"Codec":["List","String"]},"Base64Encoder":{"Converter":["List","String"],"StreamTransformer":["List","String"]},"_FusedCodec":{"Codec":["1","3"]},"Converter":{"StreamTransformer":["1","2"]},"Encoding":{"Codec":["String","List"]},"JsonUnsupportedObjectError":{"Error":[]},"JsonCyclicError":{"Error":[]},"JsonCodec":{"Codec":["Object?","String"]},"JsonEncoder":{"Converter":["Object?","String"],"StreamTransformer":["Object?","String"]},"JsonDecoder":{"Converter":["String","Object?"],"StreamTransformer":["String","Object?"]},"Utf8Codec":{"Codec":["String","List"]},"Utf8Encoder":{"Converter":["String","List"],"StreamTransformer":["String","List"]},"Utf8Decoder":{"Converter":["List","String"],"StreamTransformer":["List","String"]},"double":{"num":[]},"int":{"num":[]},"List":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"RegExpMatch":{"Match":[]},"String":{"Pattern":[]},"AssertionError":{"Error":[]},"TypeError":{"Error":[]},"ArgumentError":{"Error":[]},"RangeError":{"Error":[]},"IndexError":{"Error":[]},"UnsupportedError":{"Error":[]},"UnimplementedError":{"Error":[]},"StateError":{"Error":[]},"ConcurrentModificationError":{"Error":[]},"OutOfMemoryError":{"Error":[]},"StackOverflowError":{"Error":[]},"_Exception":{"Exception":[]},"FormatException":{"Exception":[]},"_StringStackTrace":{"StackTrace":[]},"StringBuffer":{"StringSink":[]},"_Uri":{"Uri":[]},"_SimpleUri":{"Uri":[]},"_DataUri":{"Uri":[]},"NullRejectionException":{"Exception":[]},"NullStreamSink":{"StreamSink":["1"],"StreamConsumer":["1"]},"PathException":{"Exception":[]},"PosixStyle":{"InternalStyle":[]},"UrlStyle":{"InternalStyle":[]},"WindowsStyle":{"InternalStyle":[]},"Chain":{"StackTrace":[]},"LazyTrace":{"Trace":[],"StackTrace":[]},"Trace":{"StackTrace":[]},"UnparsedFrame":{"Frame":[]},"GuaranteeChannel":{"StreamChannelMixin":["1"],"StreamChannel":["1"]},"_GuaranteeSink":{"StreamSink":["1"],"StreamConsumer":["1"]},"_MultiChannel":{"StreamChannelMixin":["1"],"MultiChannel":["1"],"StreamChannel":["1"]},"VirtualChannel":{"StreamChannelMixin":["1"],"MultiChannel":["1"],"StreamChannel":["1"]},"StreamChannelMixin":{"StreamChannel":["1"]},"Int8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint8ClampedList":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Int16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Int32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Float32List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"]},"Float64List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"]}}')); + A._Universe_addErasedTypes(init.typeUniverse, JSON.parse('{"UnmodifiableListBase":1,"__CastListBase__CastIterableBase_ListMixin":2,"NativeTypedArray":1,"_DelayedEvent":1,"_SetBase":1}')); + var string$ = { + x00_____: "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\u03f6\x00\u0404\u03f4 \u03f4\u03f6\u01f6\u01f6\u03f6\u03fc\u01f4\u03ff\u03ff\u0584\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u05d4\u01f4\x00\u01f4\x00\u0504\u05c4\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0400\x00\u0400\u0200\u03f7\u0200\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0200\u0200\u0200\u03f7\x00", + x3d_____: "===== asynchronous gap ===========================\n", + Cannotff: "Cannot extract a file path from a URI with a fragment component", + Cannotfq: "Cannot extract a file path from a URI with a query component", + Cannotn: "Cannot extract a non-Windows file path from a file URI with an authority", + Error_: "Error handler must accept one Object or one Object and a StackTrace as arguments, and return a value of the returned future's type", + handle: "handleError callback must take either an Object (the error), or both an Object (the error) and a StackTrace." + }; + var type$ = (function rtii() { + var findType = A.findType; + return { + AsyncError: findType("AsyncError"), + ByteBuffer: findType("ByteBuffer"), + ByteData: findType("ByteData"), + Duration: findType("Duration"), + EfficientLengthIterable_dynamic: findType("EfficientLengthIterable<@>"), + Error: findType("Error"), + Exception: findType("Exception"), + Float32List: findType("Float32List"), + Float64List: findType("Float64List"), + Frame: findType("Frame"), + Frame_Function_Frame: findType("Frame(Frame)"), + Frame_Function_String: findType("Frame(String)"), + Function: findType("Function"), + Int16List: findType("Int16List"), + Int32List: findType("Int32List"), + Int8List: findType("Int8List"), + Iterable_String: findType("Iterable"), + Iterable_dynamic: findType("Iterable<@>"), + Iterable_int: findType("Iterable"), + JSArray_Frame: findType("JSArray"), + JSArray_String: findType("JSArray"), + JSArray_Trace: findType("JSArray"), + JSArray_dynamic: findType("JSArray<@>"), + JSArray_int: findType("JSArray"), + JSArray_nullable_Object: findType("JSArray"), + JSArray_nullable_String: findType("JSArray"), + JSNull: findType("JSNull"), + JSObject: findType("JSObject"), + JavaScriptFunction: findType("JavaScriptFunction"), + JavaScriptIndexingBehavior_dynamic: findType("JavaScriptIndexingBehavior<@>"), + List_String: findType("List"), + List_dynamic: findType("List<@>"), + List_int: findType("List"), + Map_String_String: findType("Map"), + Map_dynamic_dynamic: findType("Map<@,@>"), + MappedIterable_String_Frame: findType("MappedIterable"), + MappedListIterable_Frame_Frame: findType("MappedListIterable"), + MappedListIterable_String_Trace: findType("MappedListIterable"), + MappedListIterable_String_dynamic: findType("MappedListIterable"), + NativeTypedArrayOfInt: findType("NativeTypedArrayOfInt"), + NativeUint8List: findType("NativeUint8List"), + Null: findType("Null"), + Object: findType("Object"), + Record: findType("Record"), + RegExpMatch: findType("RegExpMatch"), + StackTrace: findType("StackTrace"), + String: findType("String"), + Timer: findType("Timer"), + Trace: findType("Trace"), + Trace_Function_String: findType("Trace(String)"), + TrustedGetRuntimeType: findType("TrustedGetRuntimeType"), + TypeError: findType("TypeError"), + Uint16List: findType("Uint16List"), + Uint32List: findType("Uint32List"), + Uint8ClampedList: findType("Uint8ClampedList"), + Uint8List: findType("Uint8List"), + UnknownJavaScriptObject: findType("UnknownJavaScriptObject"), + UnmodifiableMapView_String_String: findType("UnmodifiableMapView"), + Uri: findType("Uri"), + WhereIterable_String: findType("WhereIterable"), + WhereTypeIterable_String: findType("WhereTypeIterable"), + Zone: findType("Zone"), + _AsyncCompleter_dynamic: findType("_AsyncCompleter<@>"), + _Future_dynamic: findType("_Future<@>"), + _Future_int: findType("_Future"), + _Future_void: findType("_Future<~>"), + _IdentityHashMap_of_nullable_Object_and_nullable_Object: findType("_IdentityHashMap"), + _StreamControllerAddStreamState_nullable_Object: findType("_StreamControllerAddStreamState"), + _SyncCompleter_dynamic: findType("_SyncCompleter<@>"), + _ZoneFunction_of_void_Function_Zone_ZoneDelegate_Zone_Object_StackTrace: findType("_ZoneFunction<~(Zone,ZoneDelegate,Zone,Object,StackTrace)>"), + bool: findType("bool"), + bool_Function_Frame: findType("bool(Frame)"), + bool_Function_Object: findType("bool(Object)"), + bool_Function_String: findType("bool(String)"), + double: findType("double"), + dynamic: findType("@"), + dynamic_Function: findType("@()"), + dynamic_Function_Object: findType("@(Object)"), + dynamic_Function_Object_StackTrace: findType("@(Object,StackTrace)"), + dynamic_Function_String: findType("@(String)"), + int: findType("int"), + nullable_Future_Null: findType("Future?"), + nullable_JSObject: findType("JSObject?"), + nullable_JavaScriptFunction: findType("JavaScriptFunction?"), + nullable_List_dynamic: findType("List<@>?"), + nullable_Map_of_nullable_Object_and_nullable_Object: findType("Map?"), + nullable_Object: findType("Object?"), + nullable_StackTrace: findType("StackTrace?"), + nullable_String: findType("String?"), + nullable_Zone: findType("Zone?"), + nullable_ZoneDelegate: findType("ZoneDelegate?"), + nullable_ZoneSpecification: findType("ZoneSpecification?"), + nullable__DelayedEvent_dynamic: findType("_DelayedEvent<@>?"), + nullable__FutureListener_dynamic_dynamic: findType("_FutureListener<@,@>?"), + nullable__LinkedHashSetCell: findType("_LinkedHashSetCell?"), + nullable_bool: findType("bool?"), + nullable_double: findType("double?"), + nullable_int: findType("int?"), + nullable_num: findType("num?"), + nullable_void_Function: findType("~()?"), + num: findType("num"), + void: findType("~"), + void_Function: findType("~()"), + void_Function_$opt_dynamic: findType("~([@])"), + void_Function_Object: findType("~(Object)"), + void_Function_Object_StackTrace: findType("~(Object,StackTrace)"), + void_Function_String_dynamic: findType("~(String,@)"), + void_Function_Timer: findType("~(Timer)") + }; + })(); + (function constants() { + var makeConstList = hunkHelpers.makeConstList; + B.Interceptor_methods = J.Interceptor.prototype; + B.JSArray_methods = J.JSArray.prototype; + B.JSInt_methods = J.JSInt.prototype; + B.JSNumber_methods = J.JSNumber.prototype; + B.JSString_methods = J.JSString.prototype; + B.JavaScriptFunction_methods = J.JavaScriptFunction.prototype; + B.JavaScriptObject_methods = J.JavaScriptObject.prototype; + B.NativeUint8List_methods = A.NativeUint8List.prototype; + B.PlainJavaScriptObject_methods = J.PlainJavaScriptObject.prototype; + B.UnknownJavaScriptObject_methods = J.UnknownJavaScriptObject.prototype; + B.AsciiEncoder_127 = new A.AsciiEncoder(127); + B.CONSTANT = new A.Instantiation1(A.math__max$closure(), A.findType("Instantiation1")); + B.C_AsciiCodec = new A.AsciiCodec(); + B.C_Base64Encoder = new A.Base64Encoder(); + B.C_Base64Codec = new A.Base64Codec(); + B.C_EmptyIterator = new A.EmptyIterator(A.findType("EmptyIterator<0&>")); + B.C_JS_CONST = function getTagFallback(o) { + var s = Object.prototype.toString.call(o); + return s.substring(8, s.length - 1); +}; + B.C_JS_CONST0 = function() { + var toStringFunction = Object.prototype.toString; + function getTag(o) { + var s = toStringFunction.call(o); + return s.substring(8, s.length - 1); + } + function getUnknownTag(object, tag) { + if (/^HTML[A-Z].*Element$/.test(tag)) { + var name = toStringFunction.call(object); + if (name == "[object Object]") return null; + return "HTMLElement"; + } + } + function getUnknownTagGenericBrowser(object, tag) { + if (object instanceof HTMLElement) return "HTMLElement"; + return getUnknownTag(object, tag); + } + function prototypeForTag(tag) { + if (typeof window == "undefined") return null; + if (typeof window[tag] == "undefined") return null; + var constructor = window[tag]; + if (typeof constructor != "function") return null; + return constructor.prototype; + } + function discriminator(tag) { return null; } + var isBrowser = typeof HTMLElement == "function"; + return { + getTag: getTag, + getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag, + prototypeForTag: prototypeForTag, + discriminator: discriminator }; +}; + B.C_JS_CONST6 = function(getTagFallback) { + return function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("DumpRenderTree") >= 0) return hooks; + if (userAgent.indexOf("Chrome") >= 0) { + function confirm(p) { + return typeof window == "object" && window[p] && window[p].name == p; + } + if (confirm("Window") && confirm("HTMLElement")) return hooks; + } + hooks.getTag = getTagFallback; + }; +}; + B.C_JS_CONST1 = function(hooks) { + if (typeof dartExperimentalFixupGetTag != "function") return hooks; + hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag); +}; + B.C_JS_CONST5 = function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("Firefox") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "GeoGeolocation": "Geolocation", + "Location": "!Location", + "WorkerMessageEvent": "MessageEvent", + "XMLDocument": "!Document"}; + function getTagFirefox(o) { + var tag = getTag(o); + return quickMap[tag] || tag; + } + hooks.getTag = getTagFirefox; +}; + B.C_JS_CONST4 = function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("Trident/") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "HTMLDDElement": "HTMLElement", + "HTMLDTElement": "HTMLElement", + "HTMLPhraseElement": "HTMLElement", + "Position": "Geoposition" + }; + function getTagIE(o) { + var tag = getTag(o); + var newTag = quickMap[tag]; + if (newTag) return newTag; + if (tag == "Object") { + if (window.DataView && (o instanceof window.DataView)) return "DataView"; + } + return tag; + } + function prototypeForTagIE(tag) { + var constructor = window[tag]; + if (constructor == null) return null; + return constructor.prototype; + } + hooks.getTag = getTagIE; + hooks.prototypeForTag = prototypeForTagIE; +}; + B.C_JS_CONST2 = function(hooks) { + var getTag = hooks.getTag; + var prototypeForTag = hooks.prototypeForTag; + function getTagFixed(o) { + var tag = getTag(o); + if (tag == "Document") { + if (!!o.xmlVersion) return "!Document"; + return "!HTMLDocument"; + } + return tag; + } + function prototypeForTagFixed(tag) { + if (tag == "Document") return null; + return prototypeForTag(tag); + } + hooks.getTag = getTagFixed; + hooks.prototypeForTag = prototypeForTagFixed; +}; + B.C_JS_CONST3 = function(hooks) { return hooks; } +; + B.C_JsonCodec = new A.JsonCodec(); + B.C_OutOfMemoryError = new A.OutOfMemoryError(); + B.C_SentinelValue = new A.SentinelValue(); + B.C_Utf8Codec = new A.Utf8Codec(); + B.C_Utf8Encoder = new A.Utf8Encoder(); + B.C__DelayedDone = new A._DelayedDone(); + B.C__RootZone = new A._RootZone(); + B.Duration_0 = new A.Duration(0); + B.Duration_1000000 = new A.Duration(1000000); + B.JsonDecoder_null = new A.JsonDecoder(null); + B.JsonEncoder_null = new A.JsonEncoder(null); + B.List_empty = makeConstList([], type$.JSArray_String); + B.Object_empty = {}; + B.Map_empty = new A.ConstantStringMap(B.Object_empty, [], A.findType("ConstantStringMap")); + B.Type_ByteBuffer_rqD = A.typeLiteral("ByteBuffer"); + B.Type_ByteData_9dB = A.typeLiteral("ByteData"); + B.Type_Float32List_9Kz = A.typeLiteral("Float32List"); + B.Type_Float64List_9Kz = A.typeLiteral("Float64List"); + B.Type_Int16List_s5h = A.typeLiteral("Int16List"); + B.Type_Int32List_O8Z = A.typeLiteral("Int32List"); + B.Type_Int8List_rFV = A.typeLiteral("Int8List"); + B.Type_Object_A4p = A.typeLiteral("Object"); + B.Type_Uint16List_kmP = A.typeLiteral("Uint16List"); + B.Type_Uint32List_kmP = A.typeLiteral("Uint32List"); + B.Type_Uint8ClampedList_04U = A.typeLiteral("Uint8ClampedList"); + B.Type_Uint8List_8Eb = A.typeLiteral("Uint8List"); + B.Utf8Decoder_false = new A.Utf8Decoder(false); + B._StringStackTrace_OdL = new A._StringStackTrace(""); + B._ZoneFunction_KjJ = new A._ZoneFunction(B.C__RootZone, A.async___rootHandleUncaughtError$closure(), type$._ZoneFunction_of_void_Function_Zone_ZoneDelegate_Zone_Object_StackTrace); + B._ZoneFunction_PAY = new A._ZoneFunction(B.C__RootZone, A.async___rootCreatePeriodicTimer$closure(), A.findType("_ZoneFunction")); + B._ZoneFunction_Xkh = new A._ZoneFunction(B.C__RootZone, A.async___rootRegisterUnaryCallback$closure(), A.findType("_ZoneFunction<0^(1^)(Zone,ZoneDelegate,Zone,0^(1^))>")); + B._ZoneFunction__RootZone__rootCreateTimer = new A._ZoneFunction(B.C__RootZone, A.async___rootCreateTimer$closure(), A.findType("_ZoneFunction")); + B._ZoneFunction__RootZone__rootErrorCallback = new A._ZoneFunction(B.C__RootZone, A.async___rootErrorCallback$closure(), A.findType("_ZoneFunction")); + B._ZoneFunction__RootZone__rootFork = new A._ZoneFunction(B.C__RootZone, A.async___rootFork$closure(), A.findType("_ZoneFunction?)>")); + B._ZoneFunction__RootZone__rootPrint = new A._ZoneFunction(B.C__RootZone, A.async___rootPrint$closure(), A.findType("_ZoneFunction<~(Zone,ZoneDelegate,Zone,String)>")); + B._ZoneFunction__RootZone__rootRegisterCallback = new A._ZoneFunction(B.C__RootZone, A.async___rootRegisterCallback$closure(), A.findType("_ZoneFunction<0^()(Zone,ZoneDelegate,Zone,0^())>")); + B._ZoneFunction__RootZone__rootRun = new A._ZoneFunction(B.C__RootZone, A.async___rootRun$closure(), A.findType("_ZoneFunction<0^(Zone,ZoneDelegate,Zone,0^())>")); + B._ZoneFunction__RootZone__rootRunBinary = new A._ZoneFunction(B.C__RootZone, A.async___rootRunBinary$closure(), A.findType("_ZoneFunction<0^(Zone,ZoneDelegate,Zone,0^(1^,2^),1^,2^)>")); + B._ZoneFunction__RootZone__rootRunUnary = new A._ZoneFunction(B.C__RootZone, A.async___rootRunUnary$closure(), A.findType("_ZoneFunction<0^(Zone,ZoneDelegate,Zone,0^(1^),1^)>")); + B._ZoneFunction__RootZone__rootScheduleMicrotask = new A._ZoneFunction(B.C__RootZone, A.async___rootScheduleMicrotask$closure(), A.findType("_ZoneFunction<~(Zone,ZoneDelegate,Zone,~())>")); + B._ZoneFunction_e9o = new A._ZoneFunction(B.C__RootZone, A.async___rootRegisterBinaryCallback$closure(), A.findType("_ZoneFunction<0^(1^,2^)(Zone,ZoneDelegate,Zone,0^(1^,2^))>")); + })(); + (function staticFields() { + $._JS_INTEROP_INTERCEPTOR_TAG = null; + $._toStringVisiting = A._setArrayType([], A.findType("JSArray")); + $.Primitives__identityHashCodeProperty = null; + $.BoundClosure__receiverFieldNameCache = null; + $.BoundClosure__interceptorFieldNameCache = null; + $.getTagFunction = null; + $.alternateTagFunction = null; + $.prototypeForTagFunction = null; + $.dispatchRecordsForInstanceTags = null; + $.interceptorsForUncacheableTags = null; + $.initNativeDispatchFlag = null; + $._nextCallback = null; + $._lastCallback = null; + $._lastPriorityCallback = null; + $._isInCallbackLoop = false; + $.Zone__current = B.C__RootZone; + $._RootZone__rootDelegate = null; + $.Uri__cachedBaseString = ""; + $.Uri__cachedBaseUri = null; + $._currentUriBase = null; + $._current = null; + $._iframes = A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.JSObject); + $._subscriptions = A.LinkedHashMap_LinkedHashMap$_empty(type$.int, A.findType("StreamSubscription<~>")); + $._domSubscriptions = A.LinkedHashMap_LinkedHashMap$_empty(type$.int, A.findType("Subscription")); + })(); + (function lazyInitializers() { + var _lazyFinal = hunkHelpers.lazyFinal; + _lazyFinal($, "DART_CLOSURE_PROPERTY_NAME", "$get$DART_CLOSURE_PROPERTY_NAME", () => A.getIsolateAffinityTag("_$dart_dartClosure")); + _lazyFinal($, "DART_CLOSURE_DART_JSINTEROP_PROPERTY_NAME", "$get$DART_CLOSURE_DART_JSINTEROP_PROPERTY_NAME", () => A.getIsolateAffinityTag("_$dart_dartClosure_dartJSInterop")); + _lazyFinal($, "nullFuture", "$get$nullFuture", () => B.C__RootZone.run$1$1(new A.nullFuture_closure(), A.findType("Future<~>"))); + _lazyFinal($, "_safeToStringHooks", "$get$_safeToStringHooks", () => A._setArrayType([new J.JSArraySafeToStringHook()], A.findType("JSArray"))); + _lazyFinal($, "TypeErrorDecoder_noSuchMethodPattern", "$get$TypeErrorDecoder_noSuchMethodPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokeCallErrorOn({ + toString: function() { + return "$receiver$"; + } + }))); + _lazyFinal($, "TypeErrorDecoder_notClosurePattern", "$get$TypeErrorDecoder_notClosurePattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokeCallErrorOn({$method$: null, + toString: function() { + return "$receiver$"; + } + }))); + _lazyFinal($, "TypeErrorDecoder_nullCallPattern", "$get$TypeErrorDecoder_nullCallPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokeCallErrorOn(null))); + _lazyFinal($, "TypeErrorDecoder_nullLiteralCallPattern", "$get$TypeErrorDecoder_nullLiteralCallPattern", () => A.TypeErrorDecoder_extractPattern(function() { + var $argumentsExpr$ = "$arguments$"; + try { + null.$method$($argumentsExpr$); + } catch (e) { + return e.message; + } + }())); + _lazyFinal($, "TypeErrorDecoder_undefinedCallPattern", "$get$TypeErrorDecoder_undefinedCallPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokeCallErrorOn(void 0))); + _lazyFinal($, "TypeErrorDecoder_undefinedLiteralCallPattern", "$get$TypeErrorDecoder_undefinedLiteralCallPattern", () => A.TypeErrorDecoder_extractPattern(function() { + var $argumentsExpr$ = "$arguments$"; + try { + (void 0).$method$($argumentsExpr$); + } catch (e) { + return e.message; + } + }())); + _lazyFinal($, "TypeErrorDecoder_nullPropertyPattern", "$get$TypeErrorDecoder_nullPropertyPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokePropertyErrorOn(null))); + _lazyFinal($, "TypeErrorDecoder_nullLiteralPropertyPattern", "$get$TypeErrorDecoder_nullLiteralPropertyPattern", () => A.TypeErrorDecoder_extractPattern(function() { + try { + null.$method$; + } catch (e) { + return e.message; + } + }())); + _lazyFinal($, "TypeErrorDecoder_undefinedPropertyPattern", "$get$TypeErrorDecoder_undefinedPropertyPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokePropertyErrorOn(void 0))); + _lazyFinal($, "TypeErrorDecoder_undefinedLiteralPropertyPattern", "$get$TypeErrorDecoder_undefinedLiteralPropertyPattern", () => A.TypeErrorDecoder_extractPattern(function() { + try { + (void 0).$method$; + } catch (e) { + return e.message; + } + }())); + _lazyFinal($, "_AsyncRun__scheduleImmediateClosure", "$get$_AsyncRun__scheduleImmediateClosure", () => A._AsyncRun__initializeScheduleImmediate()); + _lazyFinal($, "Future__nullFuture", "$get$Future__nullFuture", () => $.$get$nullFuture()); + _lazyFinal($, "_RootZone__rootMap", "$get$_RootZone__rootMap", () => { + var t1 = type$.dynamic; + return A.HashMap_HashMap(t1, t1); + }); + _lazyFinal($, "_Utf8Decoder__reusableBuffer", "$get$_Utf8Decoder__reusableBuffer", () => A.NativeUint8List_NativeUint8List(4096)); + _lazyFinal($, "_Utf8Decoder__decoder", "$get$_Utf8Decoder__decoder", () => new A._Utf8Decoder__decoder_closure().call$0()); + _lazyFinal($, "_Utf8Decoder__decoderNonfatal", "$get$_Utf8Decoder__decoderNonfatal", () => new A._Utf8Decoder__decoderNonfatal_closure().call$0()); + _lazyFinal($, "_Base64Decoder__inverseAlphabet", "$get$_Base64Decoder__inverseAlphabet", () => A.NativeInt8List__create1(A._ensureNativeList(A._setArrayType([-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -2, -2, -2, -2, -2, 62, -2, 62, -2, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -2, -2, -2, -1, -2, -2, -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -2, -2, -2, -2, 63, -2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -2, -2, -2, -2, -2], type$.JSArray_int)))); + _lazyFinal($, "_Uri__needsNoEncoding", "$get$_Uri__needsNoEncoding", () => A.RegExp_RegExp("^[\\-\\.0-9A-Z_a-z~]*$", false)); + _lazyFinal($, "_hashSeed", "$get$_hashSeed", () => A.objectHashCode(B.Type_Object_A4p)); + _lazyFinal($, "windows", "$get$windows", () => A.Context_Context($.$get$Style_windows())); + _lazyFinal($, "context", "$get$context", () => new A.Context($.$get$Style_platform(), null)); + _lazyFinal($, "Style_posix", "$get$Style_posix", () => new A.PosixStyle(A.RegExp_RegExp("/", false), A.RegExp_RegExp("[^/]$", false), A.RegExp_RegExp("^/", false))); + _lazyFinal($, "Style_windows", "$get$Style_windows", () => new A.WindowsStyle(A.RegExp_RegExp("[/\\\\]", false), A.RegExp_RegExp("[^/\\\\]$", false), A.RegExp_RegExp("^(\\\\\\\\[^\\\\]+\\\\[^\\\\/]+|[a-zA-Z]:[/\\\\])", false), A.RegExp_RegExp("^[/\\\\](?![/\\\\])", false))); + _lazyFinal($, "Style_url", "$get$Style_url", () => new A.UrlStyle(A.RegExp_RegExp("/", false), A.RegExp_RegExp("(^[a-zA-Z][-+.a-zA-Z\\d]*://|[^/])$", false), A.RegExp_RegExp("[a-zA-Z][-+.a-zA-Z\\d]*://[^/]*", false), A.RegExp_RegExp("^/", false))); + _lazyFinal($, "Style_platform", "$get$Style_platform", () => A.Style__getPlatformStyle()); + _lazyFinal($, "_vmFrame", "$get$_vmFrame", () => A.RegExp_RegExp("^#\\d+\\s+(\\S.*) \\((.+?)((?::\\d+){0,2})\\)$", false)); + _lazyFinal($, "_v8Frame", "$get$_v8Frame", () => A.RegExp_RegExp("^\\s*at (?:(\\S.*?)(?: \\[as [^\\]]+\\])? \\((.*)\\)|(.*))$", false)); + _lazyFinal($, "_v8UrlLocation", "$get$_v8UrlLocation", () => A.RegExp_RegExp("^(.*?):(\\d+)(?::(\\d+))?$|native$", false)); + _lazyFinal($, "_v8EvalLocation", "$get$_v8EvalLocation", () => A.RegExp_RegExp("^eval at (?:\\S.*?) \\((.*)\\)(?:, .*?:\\d+:\\d+)?$", false)); + _lazyFinal($, "_firefoxEvalLocation", "$get$_firefoxEvalLocation", () => A.RegExp_RegExp("(\\S+)@(\\S+) line (\\d+) >.* (Function|eval):\\d+:\\d+", false)); + _lazyFinal($, "_firefoxSafariFrame", "$get$_firefoxSafariFrame", () => A.RegExp_RegExp("^(?:([^@(/]*)(?:\\(.*\\))?((?:/[^/]*)*)(?:\\(.*\\))?@)?(.*?):(\\d*)(?::(\\d*))?$", false)); + _lazyFinal($, "_friendlyFrame", "$get$_friendlyFrame", () => A.RegExp_RegExp("^(\\S+)(?: (\\d+)(?::(\\d+))?)?\\s+([^\\d].*)$", false)); + _lazyFinal($, "_asyncBody", "$get$_asyncBody", () => A.RegExp_RegExp("<(|[^>]+)_async_body>", false)); + _lazyFinal($, "_initialDot", "$get$_initialDot", () => A.RegExp_RegExp("^\\.", false)); + _lazyFinal($, "Frame__uriRegExp", "$get$Frame__uriRegExp", () => A.RegExp_RegExp("^[a-zA-Z][-+.a-zA-Z\\d]*://", false)); + _lazyFinal($, "Frame__windowsRegExp", "$get$Frame__windowsRegExp", () => A.RegExp_RegExp("^([a-zA-Z]:[\\\\/]|\\\\\\\\)", false)); + _lazyFinal($, "_terseRegExp", "$get$_terseRegExp", () => A.RegExp_RegExp("(-patch)?([/\\\\].*)?$", false)); + _lazyFinal($, "_v8Trace", "$get$_v8Trace", () => A.RegExp_RegExp("\\n ?at ", false)); + _lazyFinal($, "_v8TraceLine", "$get$_v8TraceLine", () => A.RegExp_RegExp(" ?at ", false)); + _lazyFinal($, "_firefoxEvalTrace", "$get$_firefoxEvalTrace", () => A.RegExp_RegExp("@\\S+ line \\d+ >.* (Function|eval):\\d+:\\d+", false)); + _lazyFinal($, "_firefoxSafariTrace", "$get$_firefoxSafariTrace", () => A.RegExp_RegExp("^(([.0-9A-Za-z_$/<]|\\(.*\\))*@)?[^\\s]*:\\d*$", true)); + _lazyFinal($, "_friendlyTrace", "$get$_friendlyTrace", () => A.RegExp_RegExp("^[^\\s<][^\\s]*( \\d+(:\\d+)?)?[ \\t]+[^\\s]+$", true)); + _lazyFinal($, "vmChainGap", "$get$vmChainGap", () => A.RegExp_RegExp("^\\n?$", true)); + _lazyFinal($, "_currentUrl", "$get$_currentUrl", () => { + var t1 = type$.JSObject; + return A.Uri_parse(A.getProperty(A.getProperty(A.getProperty(A.staticInteropGlobalContext(), "window", t1), "location", t1), "href", type$.String)); + }); + })(); + (function nativeSupport() { + !function() { + var intern = function(s) { + var o = {}; + o[s] = 1; + return Object.keys(hunkHelpers.convertToFastObject(o))[0]; + }; + init.getIsolateTag = function(name) { + return intern("___dart_" + name + init.isolateTag); + }; + var tableProperty = "___dart_isolate_tags_"; + var usedProperties = Object[tableProperty] || (Object[tableProperty] = Object.create(null)); + var rootProperty = "_ZxYxX"; + for (var i = 0;; i++) { + var property = intern(rootProperty + "_" + i + "_"); + if (!(property in usedProperties)) { + usedProperties[property] = 1; + init.isolateTag = property; + break; + } + } + init.dispatchPropertyName = init.getIsolateTag("dispatch_record"); + }(); + hunkHelpers.setOrUpdateInterceptorsByTag({ArrayBuffer: A.NativeByteBuffer, SharedArrayBuffer: A.NativeByteBuffer, ArrayBufferView: A.NativeTypedData, DataView: A.NativeByteData, Float32Array: A.NativeFloat32List, Float64Array: A.NativeFloat64List, Int16Array: A.NativeInt16List, Int32Array: A.NativeInt32List, Int8Array: A.NativeInt8List, Uint16Array: A.NativeUint16List, Uint32Array: A.NativeUint32List, Uint8ClampedArray: A.NativeUint8ClampedList, CanvasPixelArray: A.NativeUint8ClampedList, Uint8Array: A.NativeUint8List}); + hunkHelpers.setOrUpdateLeafTags({ArrayBuffer: true, SharedArrayBuffer: true, ArrayBufferView: false, DataView: true, Float32Array: true, Float64Array: true, Int16Array: true, Int32Array: true, Int8Array: true, Uint16Array: true, Uint32Array: true, Uint8ClampedArray: true, CanvasPixelArray: true, Uint8Array: false}); + A.NativeTypedArray.$nativeSuperclassTag = "ArrayBufferView"; + A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin.$nativeSuperclassTag = "ArrayBufferView"; + A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin.$nativeSuperclassTag = "ArrayBufferView"; + A.NativeTypedArrayOfDouble.$nativeSuperclassTag = "ArrayBufferView"; + A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin.$nativeSuperclassTag = "ArrayBufferView"; + A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin.$nativeSuperclassTag = "ArrayBufferView"; + A.NativeTypedArrayOfInt.$nativeSuperclassTag = "ArrayBufferView"; + })(); + Function.prototype.call$1 = function(a) { + return this(a); + }; + Function.prototype.call$2 = function(a, b) { + return this(a, b); + }; + Function.prototype.call$0 = function() { + return this(); + }; + Function.prototype.call$1$1 = function(a) { + return this(a); + }; + Function.prototype.call$3$3 = function(a, b, c) { + return this(a, b, c); + }; + Function.prototype.call$5 = function(a, b, c, d, e) { + return this(a, b, c, d, e); + }; + Function.prototype.call$3 = function(a, b, c) { + return this(a, b, c); + }; + Function.prototype.call$3$6 = function(a, b, c, d, e, f) { + return this(a, b, c, d, e, f); + }; + Function.prototype.call$1$4 = function(a, b, c, d) { + return this(a, b, c, d); + }; + Function.prototype.call$2$1 = function(a) { + return this(a); + }; + Function.prototype.call$2$5 = function(a, b, c, d, e) { + return this(a, b, c, d, e); + }; + Function.prototype.call$2$4 = function(a, b, c, d) { + return this(a, b, c, d); + }; + Function.prototype.call$4 = function(a, b, c, d) { + return this(a, b, c, d); + }; + Function.prototype.call$2$2 = function(a, b) { + return this(a, b); + }; + Function.prototype.call$3$1 = function(a) { + return this(a); + }; + Function.prototype.call$3$4 = function(a, b, c, d) { + return this(a, b, c, d); + }; + Function.prototype.call$1$2 = function(a, b) { + return this(a, b); + }; + Function.prototype.call$2$3 = function(a, b, c) { + return this(a, b, c); + }; + convertAllToFastObject(holders); + convertToFastObject($); + (function(callback) { + if (typeof document === "undefined") { + callback(null); + return; + } + if (typeof document.currentScript != "undefined") { + callback(document.currentScript); + return; + } + var scripts = document.scripts; + function onLoad(event) { + for (var i = 0; i < scripts.length; ++i) { + scripts[i].removeEventListener("load", onLoad, false); + } + callback(event.target); + } + for (var i = 0; i < scripts.length; ++i) { + scripts[i].addEventListener("load", onLoad, false); + } + })(function(currentScript) { + init.currentScript = currentScript; + var callMain = A.main; + if (typeof dartMainRunner === "function") { + dartMainRunner(callMain, []); + } else { + callMain([]); + } + }); +})(); + +//# sourceMappingURL=host.dart.js.map diff --git a/build/packages/test/src/runner/browser/static/index.html b/build/packages/test/src/runner/browser/static/index.html new file mode 100644 index 0000000..69617fa --- /dev/null +++ b/build/packages/test/src/runner/browser/static/index.html @@ -0,0 +1,24 @@ + + + + test Browser Host + + + + + + + + + + + +
+ + + + + + + + diff --git a/build/packages/test/src/runner/browser/static/run_wasm_chrome.js b/build/packages/test/src/runner/browser/static/run_wasm_chrome.js new file mode 100644 index 0000000..4dabc32 --- /dev/null +++ b/build/packages/test/src/runner/browser/static/run_wasm_chrome.js @@ -0,0 +1,33 @@ +// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +// TODO(joshualitt): Investigate making this a module. Currently, Dart2Wasm is +// broken in D8 with modules because of an issue with async. This may or may not +// affect chrome. +(async () => { + // Fetch and compile Wasm binary. + let wasmUrl, jsRuntimeUrl; + let dataElement = document.getElementById("WasmBootstrapInfo"); + if (dataElement) { + wasmUrl = dataElement.dataset.wasmurl; + jsRuntimeUrl = "./" + dataElement.dataset.jsruntimeurl; + } else { + // Infer from current script + let scriptSrc = document.currentScript.src; + wasmUrl = scriptSrc.replace(/\.js$/, '.wasm'); + jsRuntimeUrl = scriptSrc.replace(/\.js$/, '.mjs'); + } + + // Instantiate the Dart module, importing from the global scope. + let dart2wasmJsRuntime = await import(jsRuntimeUrl); + + // dart2wasm versions starting with 3.6.0-212.0.dev return a new type that + // comes with instantiation and invoke methods. Since the min SDK is 3.7, + // we only need to support this version. + let compiledModule = await dart2wasmJsRuntime.compileStreaming( + fetch(wasmUrl), + ); + let instantiatedModule = await compiledModule.instantiate(); + instantiatedModule.invokeMain(); +})(); diff --git a/build/packages/vm_service/DEPENDENCIES.md b/build/packages/vm_service/DEPENDENCIES.md new file mode 100644 index 0000000..c9cb2f0 --- /dev/null +++ b/build/packages/vm_service/DEPENDENCIES.md @@ -0,0 +1,17 @@ + + +```mermaid +flowchart TD; +vm_service.dart-->src; +vm_service_io.dart-->src; +vm_service_io.dart-->vm_service.dart; +``` + +### Inversions +In this folder: 0 + +Including sub-folders: 0 + diff --git a/build/packages/vm_service/src/DEPENDENCIES.md b/build/packages/vm_service/src/DEPENDENCIES.md new file mode 100644 index 0000000..97676cc --- /dev/null +++ b/build/packages/vm_service/src/DEPENDENCIES.md @@ -0,0 +1,18 @@ + + +```mermaid +flowchart TD; +_helpers.dart-->vm_service.dart; +dart_io_extensions.dart-->vm_service.dart; +snapshot_graph.dart-->_stream_helpers.dart; +snapshot_graph.dart-->vm_service.dart; +``` + +### Inversions +In this folder: 0 + +Including sub-folders: 0 + diff --git a/build/packages/vm_service/src/README.md b/build/packages/vm_service/src/README.md new file mode 100644 index 0000000..8375f1c --- /dev/null +++ b/build/packages/vm_service/src/README.md @@ -0,0 +1 @@ +Files, that are not exported, start with `_`. diff --git a/build/packages/web/fix_data.yaml b/build/packages/web/fix_data.yaml new file mode 100644 index 0000000..7d6fc6c --- /dev/null +++ b/build/packages/web/fix_data.yaml @@ -0,0 +1,1279 @@ +# Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file +# for details. All rights reserved. Use of this source code is governed by a +# BSD-style license that can be found in the LICENSE file. + +# Please add new fixes to the top of the file. For documentation about this file +# format, see https://dart.dev/go/data-driven-fixes. + +version: 1 + +transforms: + # AnchorElement => HTMLAnchorElement + - title: "Rename to 'HTMLAnchorElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'AnchorElement' + changes: + - kind: 'rename' + newName: 'HTMLAnchorElement' + # AreaElement => HTMLAreaElement + - title: "Rename to 'HTMLAreaElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'AreaElement' + changes: + - kind: 'rename' + newName: 'HTMLAreaElement' + # AudioElement => HTMLAudioElement + - title: "Rename to 'HTMLAudioElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'AudioElement' + changes: + - kind: 'rename' + newName: 'HTMLAudioElement' + # BaseElement => HTMLBaseElement + - title: "Rename to 'HTMLBaseElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'BaseElement' + changes: + - kind: 'rename' + newName: 'HTMLBaseElement' + # BodyElement => HTMLBodyElement + - title: "Rename to 'HTMLBodyElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'BodyElement' + changes: + - kind: 'rename' + newName: 'HTMLBodyElement' + # BRElement => HTMLBRElement + - title: "Rename to 'HTMLBRElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'BRElement' + changes: + - kind: 'rename' + newName: 'HTMLBRElement' + # ButtonElement => HTMLButtonElement + - title: "Rename to 'HTMLButtonElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'ButtonElement' + changes: + - kind: 'rename' + newName: 'HTMLButtonElement' + # CanvasElement => HTMLCanvasElement + - title: "Rename to 'HTMLCanvasElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CanvasElement' + changes: + - kind: 'rename' + newName: 'HTMLCanvasElement' + # CDataSection => CDATASection + - title: "Rename to 'CDATASection'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CDataSection' + changes: + - kind: 'rename' + newName: 'CDATASection' + # CssConditionRule => CSSConditionRule + - title: "Rename to 'CSSConditionRule'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssConditionRule' + changes: + - kind: 'rename' + newName: 'CSSConditionRule' + # CssFontFaceRule => CSSFontFaceRule + - title: "Rename to 'CSSFontFaceRule'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssFontFaceRule' + changes: + - kind: 'rename' + newName: 'CSSFontFaceRule' + # CssGroupingRule => CSSGroupingRule + - title: "Rename to 'CSSGroupingRule'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssGroupingRule' + changes: + - kind: 'rename' + newName: 'CSSGroupingRule' + # CssImageValue => CSSImageValue + - title: "Rename to 'CSSImageValue'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssImageValue' + changes: + - kind: 'rename' + newName: 'CSSImageValue' + # CssImportRule => CSSImportRule + - title: "Rename to 'CSSImportRule'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssImportRule' + changes: + - kind: 'rename' + newName: 'CSSImportRule' + # CssKeyframeRule => CSSKeyframeRule + - title: "Rename to 'CSSKeyframeRule'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssKeyframeRule' + changes: + - kind: 'rename' + newName: 'CSSKeyframeRule' + # CssKeyframesRule => CSSKeyframesRule + - title: "Rename to 'CSSKeyframesRule'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssKeyframesRule' + changes: + - kind: 'rename' + newName: 'CSSKeyframesRule' + # CssKeywordValue => CSSKeywordValue + - title: "Rename to 'CSSKeywordValue'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssKeywordValue' + changes: + - kind: 'rename' + newName: 'CSSKeywordValue' + # CssMatrixComponent => CSSMatrixComponent + - title: "Rename to 'CSSMatrixComponent'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssMatrixComponent' + changes: + - kind: 'rename' + newName: 'CSSMatrixComponent' + # CssMediaRule => CSSMediaRule + - title: "Rename to 'CSSMediaRule'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssMediaRule' + changes: + - kind: 'rename' + newName: 'CSSMediaRule' + # CssNamespaceRule => CSSNamespaceRule + - title: "Rename to 'CSSNamespaceRule'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssNamespaceRule' + changes: + - kind: 'rename' + newName: 'CSSNamespaceRule' + # CssNumericValue => CSSNumericValue + - title: "Rename to 'CSSNumericValue'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssNumericValue' + changes: + - kind: 'rename' + newName: 'CSSNumericValue' + # CssPageRule => CSSPageRule + - title: "Rename to 'CSSPageRule'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssPageRule' + changes: + - kind: 'rename' + newName: 'CSSPageRule' + # CssPerspective => CSSPerspective + - title: "Rename to 'CSSPerspective'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssPerspective' + changes: + - kind: 'rename' + newName: 'CSSPerspective' + # CssRule => CSSRule + - title: "Rename to 'CSSRule'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssRule' + changes: + - kind: 'rename' + newName: 'CSSRule' + # CssScale => CSSScale + - title: "Rename to 'CSSScale'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssScale' + changes: + - kind: 'rename' + newName: 'CSSScale' + # CssSkew => CSSSkew + - title: "Rename to 'CSSSkew'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssSkew' + changes: + - kind: 'rename' + newName: 'CSSSkew' + # CssStyleDeclaration => CSSStyleDeclaration + - title: "Rename to 'CSSStyleDeclaration'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssStyleDeclaration' + changes: + - kind: 'rename' + newName: 'CSSStyleDeclaration' + # CssStyleRule => CSSStyleRule + - title: "Rename to 'CSSStyleRule'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssStyleRule' + changes: + - kind: 'rename' + newName: 'CSSStyleRule' + # CssStyleSheet => CSSStyleSheet + - title: "Rename to 'CSSStyleSheet'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssStyleSheet' + changes: + - kind: 'rename' + newName: 'CSSStyleSheet' + # CssStyleValue => CSSStyleValue + - title: "Rename to 'CSSStyleValue'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssStyleValue' + changes: + - kind: 'rename' + newName: 'CSSStyleValue' + # CssSupportsRule => CSSSupportsRule + - title: "Rename to 'CSSSupportsRule'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssSupportsRule' + changes: + - kind: 'rename' + newName: 'CSSSupportsRule' + # CssTransformComponent => CSSTransformComponent + - title: "Rename to 'CSSTransformComponent'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssTransformComponent' + changes: + - kind: 'rename' + newName: 'CSSTransformComponent' + # CssTransformValue => CSSTransformValue + - title: "Rename to 'CSSTransformValue'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssTransformValue' + changes: + - kind: 'rename' + newName: 'CSSTransformValue' + # CssUnitValue => CSSUnitValue + - title: "Rename to 'CSSUnitValue'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssUnitValue' + changes: + - kind: 'rename' + newName: 'CSSUnitValue' + # CssUnparsedValue => CSSUnparsedValue + - title: "Rename to 'CSSUnparsedValue'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssUnparsedValue' + changes: + - kind: 'rename' + newName: 'CSSUnparsedValue' + # CssVariableReferenceValue => CSSVariableReferenceValue + - title: "Rename to 'CSSVariableReferenceValue'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'CssVariableReferenceValue' + changes: + - kind: 'rename' + newName: 'CSSVariableReferenceValue' + # DataElement => HTMLDataElement + - title: "Rename to 'HTMLDataElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DataElement' + changes: + - kind: 'rename' + newName: 'HTMLDataElement' + # DataListElement => HTMLDataListElement + - title: "Rename to 'HTMLDataListElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DataListElement' + changes: + - kind: 'rename' + newName: 'HTMLDataListElement' + # DetailsElement => HTMLDetailsElement + - title: "Rename to 'HTMLDetailsElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DetailsElement' + changes: + - kind: 'rename' + newName: 'HTMLDetailsElement' + # DialogElement => HTMLDialogElement + - title: "Rename to 'HTMLDialogElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DialogElement' + changes: + - kind: 'rename' + newName: 'HTMLDialogElement' + # DivElement => HTMLDivElement + - title: "Rename to 'HTMLDivElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DivElement' + changes: + - kind: 'rename' + newName: 'HTMLDivElement' + # DListElement => HTMLDListElement + - title: "Rename to 'HTMLDListElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DListElement' + changes: + - kind: 'rename' + newName: 'HTMLDListElement' + # DomException => DOMException + - title: "Rename to 'DOMException'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DomException' + changes: + - kind: 'rename' + newName: 'DOMException' + # DomImplementation => DOMImplementation + - title: "Rename to 'DOMImplementation'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DomImplementation' + changes: + - kind: 'rename' + newName: 'DOMImplementation' + # DomMatrix => DOMMatrix + - title: "Rename to 'DOMMatrix'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DomMatrix' + changes: + - kind: 'rename' + newName: 'DOMMatrix' + # DomMatrixReadOnly => DOMMatrixReadOnly + - title: "Rename to 'DOMMatrixReadOnly'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DomMatrixReadOnly' + changes: + - kind: 'rename' + newName: 'DOMMatrixReadOnly' + # DomParser => DOMParser + - title: "Rename to 'DOMParser'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DomParser' + changes: + - kind: 'rename' + newName: 'DOMParser' + # DomPoint => DOMPoint + - title: "Rename to 'DOMPoint'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DomPoint' + changes: + - kind: 'rename' + newName: 'DOMPoint' + # DomPointReadOnly => DOMPointReadOnly + - title: "Rename to 'DOMPointReadOnly'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DomPointReadOnly' + changes: + - kind: 'rename' + newName: 'DOMPointReadOnly' + # DomQuad => DOMQuad + - title: "Rename to 'DOMQuad'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DomQuad' + changes: + - kind: 'rename' + newName: 'DOMQuad' + # DomRectList => DOMRectList + - title: "Rename to 'DOMRectList'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DomRectList' + changes: + - kind: 'rename' + newName: 'DOMRectList' + # DomRectReadOnly => DOMRectReadOnly + - title: "Rename to 'DOMRectReadOnly'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DomRectReadOnly' + changes: + - kind: 'rename' + newName: 'DOMRectReadOnly' + # DomStringList => DOMStringList + - title: "Rename to 'DOMStringList'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DomStringList' + changes: + - kind: 'rename' + newName: 'DOMStringList' + # DomStringMap => DOMStringMap + - title: "Rename to 'DOMStringMap'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DomStringMap' + changes: + - kind: 'rename' + newName: 'DOMStringMap' + # DomTokenList => DOMTokenList + - title: "Rename to 'DOMTokenList'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'DomTokenList' + changes: + - kind: 'rename' + newName: 'DOMTokenList' + # EmbedElement => HTMLEmbedElement + - title: "Rename to 'HTMLEmbedElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'EmbedElement' + changes: + - kind: 'rename' + newName: 'HTMLEmbedElement' + # Entry => FileSystemEntry + - title: "Rename to 'FileSystemEntry'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'Entry' + changes: + - kind: 'rename' + newName: 'FileSystemEntry' + # FieldSetElement => HTMLFieldSetElement + - title: "Rename to 'HTMLFieldSetElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'FieldSetElement' + changes: + - kind: 'rename' + newName: 'HTMLFieldSetElement' + # FileEntry => FileSystemFileEntry + - title: "Rename to 'FileSystemFileEntry'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'FileEntry' + changes: + - kind: 'rename' + newName: 'FileSystemFileEntry' + # FormElement => HTMLFormElement + - title: "Rename to 'HTMLFormElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'FormElement' + changes: + - kind: 'rename' + newName: 'HTMLFormElement' + # Geoposition => GeolocationPosition + - title: "Rename to 'GeolocationPosition'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'Geoposition' + changes: + - kind: 'rename' + newName: 'GeolocationPosition' + # HeadElement => HTMLHeadElement + - title: "Rename to 'HTMLHeadElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'HeadElement' + changes: + - kind: 'rename' + newName: 'HTMLHeadElement' + # HeadingElement => HTMLHeadingElement + - title: "Rename to 'HTMLHeadingElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'HeadingElement' + changes: + - kind: 'rename' + newName: 'HTMLHeadingElement' + # HRElement => HTMLHRElement + - title: "Rename to 'HTMLHRElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'HRElement' + changes: + - kind: 'rename' + newName: 'HTMLHRElement' + # HtmlCollection => HTMLCollection + - title: "Rename to 'HTMLCollection'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'HtmlCollection' + changes: + - kind: 'rename' + newName: 'HTMLCollection' + # HtmlDocument => Document + - title: "Rename to 'Document'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'HtmlDocument' + changes: + - kind: 'rename' + newName: 'Document' + # HtmlElement => HTMLElement + - title: "Rename to 'HTMLElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'HtmlElement' + changes: + - kind: 'rename' + newName: 'HTMLElement' + # HtmlFormControlsCollection => HTMLFormControlsCollection + - title: "Rename to 'HTMLFormControlsCollection'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'HtmlFormControlsCollection' + changes: + - kind: 'rename' + newName: 'HTMLFormControlsCollection' + # HtmlHtmlElement => HTMLHtmlElement + - title: "Rename to 'HTMLHtmlElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'HtmlHtmlElement' + changes: + - kind: 'rename' + newName: 'HTMLHtmlElement' + # HtmlOptionsCollection => HTMLOptionsCollection + - title: "Rename to 'HTMLOptionsCollection'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'HtmlOptionsCollection' + changes: + - kind: 'rename' + newName: 'HTMLOptionsCollection' + # HttpRequest => XMLHttpRequest (see test_fixes/README.md) + # - title: "Rename to 'XMLHttpRequest'" + # date: 2024-01-12 + # element: + # uris: [ 'package:web/web.dart' ] + # class: 'HttpRequest' + # changes: + # - kind: 'rename' + # newName: 'XMLHttpRequest' + # HttpRequestEventTarget => XMLHttpRequestEventTarget + - title: "Rename to 'XMLHttpRequestEventTarget'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'HttpRequestEventTarget' + changes: + - kind: 'rename' + newName: 'XMLHttpRequestEventTarget' + # HttpRequestUpload => XMLHttpRequestUpload + - title: "Rename to 'XMLHttpRequestUpload'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'HttpRequestUpload' + changes: + - kind: 'rename' + newName: 'XMLHttpRequestUpload' + # IFrameElement => HTMLIFrameElement + - title: "Rename to 'HTMLIFrameElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'IFrameElement' + changes: + - kind: 'rename' + newName: 'HTMLIFrameElement' + # ImageElement => HTMLImageElement + - title: "Rename to 'HTMLImageElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'ImageElement' + changes: + - kind: 'rename' + newName: 'HTMLImageElement' + # InputElement => HTMLInputElement + - title: "Rename to 'HTMLInputElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'InputElement' + changes: + - kind: 'rename' + newName: 'HTMLInputElement' + # LabelElement => HTMLLabelElement + - title: "Rename to 'HTMLLabelElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'LabelElement' + changes: + - kind: 'rename' + newName: 'HTMLLabelElement' + # LegendElement => HTMLLegendElement + - title: "Rename to 'HTMLLegendElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'LegendElement' + changes: + - kind: 'rename' + newName: 'HTMLLegendElement' + # LIElement => HTMLLIElement + - title: "Rename to 'HTMLLIElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'LIElement' + changes: + - kind: 'rename' + newName: 'HTMLLIElement' + # LinkElement => HTMLLinkElement + - title: "Rename to 'HTMLLinkElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'LinkElement' + changes: + - kind: 'rename' + newName: 'HTMLLinkElement' + # MapElement => HTMLMapElement + - title: "Rename to 'HTMLMapElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'MapElement' + changes: + - kind: 'rename' + newName: 'HTMLMapElement' + # MediaElement => HTMLMediaElement + - title: "Rename to 'HTMLMediaElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'MediaElement' + changes: + - kind: 'rename' + newName: 'HTMLMediaElement' + # MenuElement => HTMLMenuElement + - title: "Rename to 'HTMLMenuElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'MenuElement' + changes: + - kind: 'rename' + newName: 'HTMLMenuElement' + # MetaElement => HTMLMetaElement + - title: "Rename to 'HTMLMetaElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'MetaElement' + changes: + - kind: 'rename' + newName: 'HTMLMetaElement' + # MeterElement => HTMLMeterElement + - title: "Rename to 'HTMLMeterElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'MeterElement' + changes: + - kind: 'rename' + newName: 'HTMLMeterElement' + # ModElement => HTMLModElement + - title: "Rename to 'HTMLModElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'ModElement' + changes: + - kind: 'rename' + newName: 'HTMLModElement' + # ObjectElement => HTMLObjectElement + - title: "Rename to 'HTMLObjectElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'ObjectElement' + changes: + - kind: 'rename' + newName: 'HTMLObjectElement' + # OListElement => HTMLOListElement + - title: "Rename to 'HTMLOListElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'OListElement' + changes: + - kind: 'rename' + newName: 'HTMLOListElement' + # OptGroupElement => HTMLOptGroupElement + - title: "Rename to 'HTMLOptGroupElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'OptGroupElement' + changes: + - kind: 'rename' + newName: 'HTMLOptGroupElement' + # OptionElement => HTMLOptionElement + - title: "Rename to 'HTMLOptionElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'OptionElement' + changes: + - kind: 'rename' + newName: 'HTMLOptionElement' + # OutputElement => HTMLOutputElement + - title: "Rename to 'HTMLOutputElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'OutputElement' + changes: + - kind: 'rename' + newName: 'HTMLOutputElement' + # ParagraphElement => HTMLParagraphElement + - title: "Rename to 'HTMLParagraphElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'ParagraphElement' + changes: + - kind: 'rename' + newName: 'HTMLParagraphElement' + # ParamElement => HTMLParamElement + - title: "Rename to 'HTMLParamElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'ParamElement' + changes: + - kind: 'rename' + newName: 'HTMLParamElement' + # PictureElement => HTMLPictureElement + - title: "Rename to 'HTMLPictureElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'PictureElement' + changes: + - kind: 'rename' + newName: 'HTMLPictureElement' + # PositionError => GeolocationPositionError + - title: "Rename to 'GeolocationPositionError'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'PositionError' + changes: + - kind: 'rename' + newName: 'GeolocationPositionError' + # PreElement => HTMLPreElement + - title: "Rename to 'HTMLPreElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'PreElement' + changes: + - kind: 'rename' + newName: 'HTMLPreElement' + # ProgressElement => HTMLProgressElement + - title: "Rename to 'HTMLProgressElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'ProgressElement' + changes: + - kind: 'rename' + newName: 'HTMLProgressElement' + # QuoteElement => HTMLQuoteElement + - title: "Rename to 'HTMLQuoteElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'QuoteElement' + changes: + - kind: 'rename' + newName: 'HTMLQuoteElement' + # RtcCertificate => RTCCertificate + - title: "Rename to 'RTCCertificate'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcCertificate' + changes: + - kind: 'rename' + newName: 'RTCCertificate' + # RtcDataChannel => RTCDataChannel + - title: "Rename to 'RTCDataChannel'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcDataChannel' + changes: + - kind: 'rename' + newName: 'RTCDataChannel' + # RtcDataChannelEvent => RTCDataChannelEvent + - title: "Rename to 'RTCDataChannelEvent'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcDataChannelEvent' + changes: + - kind: 'rename' + newName: 'RTCDataChannelEvent' + # RtcDtmfSender => RTCDTMFSender + - title: "Rename to 'RTCDTMFSender'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcDtmfSender' + changes: + - kind: 'rename' + newName: 'RTCDTMFSender' + # RtcDtmfToneChangeEvent => RTCDTMFToneChangeEvent + - title: "Rename to 'RTCDTMFToneChangeEvent'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcDtmfToneChangeEvent' + changes: + - kind: 'rename' + newName: 'RTCDTMFToneChangeEvent' + # RtcIceCandidate => RTCIceCandidate + - title: "Rename to 'RTCIceCandidate'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcIceCandidate' + changes: + - kind: 'rename' + newName: 'RTCIceCandidate' + # RtcPeerConnection => RTCPeerConnection + - title: "Rename to 'RTCPeerConnection'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcPeerConnection' + changes: + - kind: 'rename' + newName: 'RTCPeerConnection' + # RtcPeerConnectionIceEvent => RTCPeerConnectionIceEvent + - title: "Rename to 'RTCPeerConnectionIceEvent'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcPeerConnectionIceEvent' + changes: + - kind: 'rename' + newName: 'RTCPeerConnectionIceEvent' + # RtcRtpContributingSource => RTCRtpContributingSource + - title: "Rename to 'RTCRtpContributingSource'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcRtpContributingSource' + changes: + - kind: 'rename' + newName: 'RTCRtpContributingSource' + # RtcRtpReceiver => RTCRtpReceiver + - title: "Rename to 'RTCRtpReceiver'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcRtpReceiver' + changes: + - kind: 'rename' + newName: 'RTCRtpReceiver' + # RtcRtpSender => RTCRtpSender + - title: "Rename to 'RTCRtpSender'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcRtpSender' + changes: + - kind: 'rename' + newName: 'RTCRtpSender' + # RtcSessionDescription => RTCSessionDescription + - title: "Rename to 'RTCSessionDescription'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcSessionDescription' + changes: + - kind: 'rename' + newName: 'RTCSessionDescription' + # RtcStatsReport => RTCStatsReport + - title: "Rename to 'RTCStatsReport'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcStatsReport' + changes: + - kind: 'rename' + newName: 'RTCStatsReport' + # RtcTrackEvent => RTCTrackEvent + - title: "Rename to 'RTCTrackEvent'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'RtcTrackEvent' + changes: + - kind: 'rename' + newName: 'RTCTrackEvent' + # ScriptElement => HTMLScriptElement + - title: "Rename to 'HTMLScriptElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'ScriptElement' + changes: + - kind: 'rename' + newName: 'HTMLScriptElement' + # SelectElement => HTMLSelectElement + - title: "Rename to 'HTMLSelectElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'SelectElement' + changes: + - kind: 'rename' + newName: 'HTMLSelectElement' + # SlotElement => HTMLSlotElement + - title: "Rename to 'HTMLSlotElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'SlotElement' + changes: + - kind: 'rename' + newName: 'HTMLSlotElement' + # SourceElement => HTMLSourceElement + - title: "Rename to 'HTMLSourceElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'SourceElement' + changes: + - kind: 'rename' + newName: 'HTMLSourceElement' + # SpanElement => HTMLSpanElement + - title: "Rename to 'HTMLSpanElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'SpanElement' + changes: + - kind: 'rename' + newName: 'HTMLSpanElement' + # SpeechRecognitionError => SpeechRecognitionErrorEvent + - title: "Rename to 'SpeechRecognitionErrorEvent'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'SpeechRecognitionError' + changes: + - kind: 'rename' + newName: 'SpeechRecognitionErrorEvent' + # StyleElement => HTMLStyleElement + - title: "Rename to 'HTMLStyleElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'StyleElement' + changes: + - kind: 'rename' + newName: 'HTMLStyleElement' + # StylePropertyMapReadonly => StylePropertyMapReadOnly + - title: "Rename to 'StylePropertyMapReadOnly'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'StylePropertyMapReadonly' + changes: + - kind: 'rename' + newName: 'StylePropertyMapReadOnly' + # TableCaptionElement => HTMLTableCaptionElement + - title: "Rename to 'HTMLTableCaptionElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'TableCaptionElement' + changes: + - kind: 'rename' + newName: 'HTMLTableCaptionElement' + # TableColElement => HTMLTableColElement + - title: "Rename to 'HTMLTableColElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'TableColElement' + changes: + - kind: 'rename' + newName: 'HTMLTableColElement' + # TableElement => HTMLTableElement + - title: "Rename to 'HTMLTableElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'TableElement' + changes: + - kind: 'rename' + newName: 'HTMLTableElement' + # TableRowElement => HTMLTableRowElement + - title: "Rename to 'HTMLTableRowElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'TableRowElement' + changes: + - kind: 'rename' + newName: 'HTMLTableRowElement' + # TableSectionElement => HTMLTableSectionElement + - title: "Rename to 'HTMLTableSectionElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'TableSectionElement' + changes: + - kind: 'rename' + newName: 'HTMLTableSectionElement' + # TemplateElement => HTMLTemplateElement + - title: "Rename to 'HTMLTemplateElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'TemplateElement' + changes: + - kind: 'rename' + newName: 'HTMLTemplateElement' + # TextAreaElement => HTMLTextAreaElement + - title: "Rename to 'HTMLTextAreaElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'TextAreaElement' + changes: + - kind: 'rename' + newName: 'HTMLTextAreaElement' + # TimeElement => HTMLTimeElement + - title: "Rename to 'HTMLTimeElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'TimeElement' + changes: + - kind: 'rename' + newName: 'HTMLTimeElement' + # TitleElement => HTMLTitleElement + - title: "Rename to 'HTMLTitleElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'TitleElement' + changes: + - kind: 'rename' + newName: 'HTMLTitleElement' + # TrackElement => HTMLTrackElement + - title: "Rename to 'HTMLTrackElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'TrackElement' + changes: + - kind: 'rename' + newName: 'HTMLTrackElement' + # UListElement => HTMLUListElement + - title: "Rename to 'HTMLUListElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'UListElement' + changes: + - kind: 'rename' + newName: 'HTMLUListElement' + # UnderlyingSourceBase => UnderlyingSource + - title: "Rename to 'UnderlyingSource'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'UnderlyingSourceBase' + changes: + - kind: 'rename' + newName: 'UnderlyingSource' + # UnknownElement => HTMLUnknownElement + - title: "Rename to 'HTMLUnknownElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'UnknownElement' + changes: + - kind: 'rename' + newName: 'HTMLUnknownElement' + # Url => URL + - title: "Rename to 'URL'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'Url' + changes: + - kind: 'rename' + newName: 'URL' + # UrlSearchParams => URLSearchParams + - title: "Rename to 'URLSearchParams'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'UrlSearchParams' + changes: + - kind: 'rename' + newName: 'URLSearchParams' + # VideoElement => HTMLVideoElement + - title: "Rename to 'HTMLVideoElement'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'VideoElement' + changes: + - kind: 'rename' + newName: 'HTMLVideoElement' + # VttCue => VTTCue + - title: "Rename to 'VTTCue'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'VttCue' + changes: + - kind: 'rename' + newName: 'VTTCue' + # VttRegion => VTTRegion + - title: "Rename to 'VTTRegion'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'VttRegion' + changes: + - kind: 'rename' + newName: 'VTTRegion' + # XmlDocument => XMLDocument + - title: "Rename to 'XMLDocument'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'XmlDocument' + changes: + - kind: 'rename' + newName: 'XMLDocument' + # XmlSerializer => XMLSerializer + - title: "Rename to 'XMLSerializer'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'XmlSerializer' + changes: + - kind: 'rename' + newName: 'XMLSerializer' + # XsltProcessor => XSLTProcessor + - title: "Rename to 'XSLTProcessor'" + date: 2024-01-12 + element: + uris: [ 'package:web/web.dart' ] + class: 'XsltProcessor' + changes: + - kind: 'rename' + newName: 'XSLTProcessor' diff --git a/build/packages/xml/src/xpath/AGENTS.md b/build/packages/xml/src/xpath/AGENTS.md new file mode 100644 index 0000000..fa74894 --- /dev/null +++ b/build/packages/xml/src/xpath/AGENTS.md @@ -0,0 +1,177 @@ +# XPath + +Adhere to the official XPath 3.1 standard at all times: + +- XML Path Language (XPath) 3.1: +- XPath Functions and Operators 3.1: + +## Overal Design + +The core goals of this design are **efficiency**, **compactness**, and **readability**. To achieve this, we avoid heavy wrapper objects and runtime interpreters where possible. Instead, we leverage Dart's strong type system, modern features, and core libraries. + +- **Zero-Wrapper**: Map XPath Data Model types map directly to native Dart types. +- **Lazy Sequences**: Use Dart's `Iterable` for all sequences to ensure laziness and low memory footprint. +- **Functional AST**: Expression nodes are executable functors, reducing the need for a separate interpreter pass for evaluation. +- **Exceptions**: Use Dart's exception system and human readable error messages to report errors. + +## Data Model + +Instead of wrapping every integer, string, and node, we use Dart's native types. This allows the XPath engine to interact seamlessly with existing Dart objects. + +Type descriptions are implemented as subclasses of [XPathType](definitions/type.dart). Types can check if a Dart Object is of their type with [XPathType.matches]. Types can convert any other object to their type with [XPathType.cast]. + +### Sequences + +Sequences are implemented as an `XPathSequence`, a thin wrapper around a Dart [Iterable]. The impelementation is defined in [sequence.dart](types/sequence.dart). + +| XPath Type | Dart Type | Type Implementation +| --- | --- | --- +| `sequence` | `XPathSequence` | `xsSequence` +| `empty-sequence` | `XPathSequence` | `xsEmptySequence` + +There are various optimized implementations for specific use-cases. Use the most appropriate implementation for a given use-case. + +| XPathSequence | Description +| --- | --- +| `XPathSequence.empty` | The empty sequence. +| `XPathSequence.trueSequence` | The sequence with a single `true` value. +| `XPathSequence.falseSequence` | The sequence with a single `false` value. +| `XPathSequence.emptyString` | The sequence with an empty string. +| `XPathSequence.nan` | The sequence with a NaN value. +| `XPathSequence.emptyArray` | The sequence with an empty array. +| `XPathSequence.emptyMap` | The sequence with an empty map. +| `const XPathSequence.single(value)` | The sequence with a single value. +| `const XPathSequence(iterable)` | The sequence of an iterable. +| `XPathSequence.cached(iterable)` | The sequence of an iterable that is at most evaluated once and then cached. +| `XPathSequence.range(start, stop)` | The sequence of integers from start to stop. + +### Nodes + +XML nodes are represented by the [XmlNode](../../xml/nodes/node.dart) class and its subtypes. + +| XPath Type | Dart Type | Implementation +| --- | --- | --- +| `attribute` | `XmlAttribute` | `xsAttribute` +| `comment` | `XmlComment` | `xsComment` +| `document` | `XmlDocument` | `xsDocument` +| `element` | `XmlElement` | `xsElement` +| `node` | `XmlNode` | `xsNode` +| `namespace` | `XmlNamespace` | `xsNamespace` +| `processing-instruction` | `XmlProcessing` | `xsProcessingInstruction` +| `text` | `XmlText` and `XmlCDATA` | `xsText` + +### Functions + +| XPath Type | Dart Type | Implementation +| --- | --- | --- +| `function(*)` | `XPathFunction` | `xsFunction` +| `array(*)` | `XPathArray` | `xsArray` +| `map(*)` | `XPathMap` | `xsMap` + +### Dates, Times and Durations + +Date and time values are represented by the Dart `DateTime` class. +Duration values are represented by the Dart `Duration`. + +| XPath Type | Dart Type | Implementation +| --- | --- | --- +| `xs:date` | `DateTime` | `xsDateTime` +| `xs:dateTime` | `DateTime` | `xsDateTime` +| `xs:dateTimeStamp` | `DateTime` | `xsDateTime` +| `xs:dayTimeDuration` | `Duration` | `xsDuration` +| `xs:duration` | `Duration` | `xsDuration` +| `xs:gDay` | `DateTime` | `xsDateTime` +| `xs:gMonth` | `DateTime` | `xsDateTime` +| `xs:gMonthDay` | `DateTime` | `xsDateTime` +| `xs:gYear` | `DateTime` | `xsDateTime` +| `xs:gYearMonth` | `DateTime` | `xsDateTime` +| `xs:time` | `DateTime` | `xsDateTime` +| `xs:yearMonthDuration` | `Duration` | `xsDuration` + +### Numerics + +Numeric values are represented by the Dart `num` class and its subtypes. + +| XPath Type | Dart Type | Implementation +| --- | --- | --- +| `xs:numeric` | `num` | `xsNumeric` +| `xs:byte` | `int` | `xsByte` +| `xs:decimal` | `num` | `xsDecimal` +| `xs:double` | `double` | `xsDouble` +| `xs:float` | `double` | `xsDouble` +| `xs:int` | `int` | `xsInt` +| `xs:integer` | `int` | `xsInteger` +| `xs:long` | `int` | `xsLong` +| `xs:negativeInteger` | `int` | `xsNegativeInteger` +| `xs:nonNegativeInteger` | `int` | `xsNonNegativeInteger` +| `xs:nonPositiveInteger` | `int` | `xsNonPositiveInteger` +| `xs:positiveInteger` | `int` | `xsPositiveInteger` +| `xs:short` | `int` | `xsShort` +| `xs:unsignedByte` | `int` | `xsUnsignedByte` +| `xs:unsignedInt` | `int` | `xsUnsignedInt` +| `xs:unsignedLong` | `int` | `xsUnsignedLong` +| `xs:unsignedShort` | `int` | `xsUnsignedShort` + +### Strings + +String values are represented by the Dart `String` class. + +| XPath Type | Dart Type | Implementation +| --- | --- | --- +| `xs:string` | `String` | `xsString` +| `xs:normalizedString` | `String` | `xsString` +| `xs:token` | `String` | `xsString` +| `xs:language` | `String` | `xsString` +| `xs:NMTOKEN` | `String` | `xsString` +| `xs:NMTOKENS` | `String` | `xsString` +| `xs:Name` | `String` | `xsString` +| `xs:NCName` | `String` | `xsString` +| `xs:ID` | `String` | `xsString` +| `xs:IDREF` | `String` | `xsString` +| `xs:IDREFS` | `String` | `xsString` +| `xs:ENTITY` | `String` | `xsString` +| `xs:ENTITIES` | `String` | `xsString` + +### Booleans + +Boolean values are represented by the Dart `bool` class. + +| XPath Type | Dart Type | Implementation +| --- | --- | --- +| `xs:boolean` | `bool` | `xsBoolean` + +### Others + +| XPath Type | Dart Type | Implementation +| --- | --- | --- +| `item()` | `Object` | `xsAny` +| `xs:base64Binary` | `XPathBase64Binary` | `xsBase64Binary` +| `xs:hexBinary` | `XPathHexBinary` | `xsHexBinary` +| `xs:anyURI` | `String` | `xsString` +| `xs:QName` | `XmlName` | `xsQName` +| `xs:untyped` | `Object` | `xsAny` +| `xs:untypedAtomic` | `Object` | `xsAny` +| `xs:NOTATION` | `String` | `xsString` + +## Functions & Operators + +All **XPath functions** are implemented in the [functions](functions) directory. A function definition follows the pattern: + +1. A comment with a link to the standard describing the function. +2. A const `XPathFunctionDefinition` describing the function signature referring to the implementation function below. + - Arguments with the cardinalty `XPathCardinality.exactlyOne` (default) has the corresponding native type. + - Arguments with the cardinalty `XPathCardinality.zeroOrOne` has the corresponding type nullable. + - Arguments with the cardinalty `XPathCardinality.zeroOrMore` or `XPathCardinality.oneOrMore` have type `XPathSequence`. +3. The private function implementation following these principles: + - The first argument is always `XPathContext context`. + - The following arguments are the arguments as described in the definition. + - The argument types must be the corresponding native types, optional arguments are nullable. + - The return type is always `XPathSequence`. + - The function body should not do any type validation or argument unpacking. This must be done through the configuration in `XPathFunctionDefinition`. + +All **XPath operators** are implemented as functions in the [operators](operators) directory. An operator definition follows the pattern: + +1. A comment with a link to the standard describing the operator. +2. The operator implementation following these principles + - The arguments are always of the type `XPathSequence`. + - The return type is always `XPathSequence`. diff --git a/build/pubspec.lock b/build/pubspec.lock new file mode 100644 index 0000000..a5dd9db --- /dev/null +++ b/build/pubspec.lock @@ -0,0 +1,749 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "1b0e6a07425a3e460666e88bf1c949ccc7bb0116ad562ce94a1eca60fe820725" + url: "https://pub.dev" + source: hosted + version: "103.0.0" + acme_client: + dependency: transitive + description: + name: acme_client + sha256: "8088670cf255ea4d7bc130d3c493db3c0052cbe684234274969f002157b02a9c" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "61c04d0c1bfed555c681ea079519933f071a5a026578ff73c4ff0df2d3462e5e" + url: "https://pub.dev" + source: hosted + version: "13.3.0" + archive: + dependency: transitive + description: + name: archive + sha256: a96e8b390886ee8abb49b7bd3ac8df6f451c621619f52a26e815fdcf568959ff + url: "https://pub.dev" + source: hosted + version: "4.0.9" + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + asn1lib: + dependency: transitive + description: + name: asn1lib + sha256: "9a8f69025044eb466b9b60ef3bc3ac99b4dc6c158ae9c56d25eeccf5bc56d024" + url: "https://pub.dev" + source: hosted + version: "1.6.5" + async: + dependency: transitive + description: + name: async + sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37 + url: "https://pub.dev" + source: hosted + version: "2.13.1" + basic_utils: + dependency: transitive + description: + name: basic_utils + sha256: "548047bef0b3b697be19fa62f46de54d99c9019a69fb7db92c69e19d87f633c7" + url: "https://pub.dev" + source: hosted + version: "5.8.2" + bazel_worker: + dependency: transitive + description: + name: bazel_worker + sha256: "87cae9150fcf9942b8057e5f51c4848a3efde1289e97411e1c8f01e350120999" + url: "https://pub.dev" + source: hosted + version: "1.1.5" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + build: + dependency: transitive + description: + name: build + sha256: "45d14a0fb23e018d8287c32fc98d726ce466b231928ed9b9200f29bd3ccd39ae" + url: "https://pub.dev" + source: hosted + version: "4.0.7" + build_config: + dependency: transitive + description: + name: build_config + sha256: f2c223156a26eea323e6244b85141d76413a80aeee9fe0b380773789fabaf8ae + url: "https://pub.dev" + source: hosted + version: "1.3.1" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: fd754058c342243718d5171a95f352cfc9fcf0cba8cfa26df67cb13a5836db78 + url: "https://pub.dev" + source: hosted + version: "4.1.2" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "5367e521935b102bdf1e735d2aab461e36b2edca6517662d088dd04cc39f8d16" + url: "https://pub.dev" + source: hosted + version: "2.15.1" + build_web_compilers: + dependency: "direct dev" + description: + name: build_web_compilers + sha256: c8be4b48f09289d145c7eaa3240f1e7776c529ea1cecddf483218edd3129de3f + url: "https://pub.dev" + source: hosted + version: "4.8.0" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: "34e4067d30ce212937df995f03b69992eea683539ceeac7f679a1f1eba055b56" + url: "https://pub.dev" + source: hosted + version: "8.12.6" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + url: "https://pub.dev" + source: hosted + version: "2.0.4" + cli_config: + dependency: transitive + description: + name: cli_config + sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec + url: "https://pub.dev" + source: hosted + version: "0.2.0" + collection: + dependency: transitive + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + command_shield: + dependency: "direct main" + description: + name: command_shield + sha256: c39f699d55df40e64b17feaa8d58ee6746f6d913e4d12f228c61680a6f1223b7 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + coverage: + dependency: transitive + description: + name: coverage + sha256: "956a3de0725ca232ad353565a8290d3357592bf4250f6f298a185e2d949c5d3d" + url: "https://pub.dev" + source: hosted + version: "1.15.1" + crypto: + dependency: transitive + description: + name: crypto + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf + url: "https://pub.dev" + source: hosted + version: "3.0.7" + crypto_keys: + dependency: transitive + description: + name: crypto_keys + sha256: "6e473fff865ec757174dcc585d6eaa7f5f40bf3cb58f444ec5ab4a01e9083cf9" + url: "https://pub.dev" + source: hosted + version: "0.3.1" + cryptography: + dependency: transitive + description: + name: cryptography + sha256: "3eda3029d34ec9095a27a198ac9785630fe525c0eb6a49f3d575272f8e792ef0" + url: "https://pub.dev" + source: hosted + version: "2.9.0" + dart_service_manager: + dependency: transitive + description: + name: dart_service_manager + sha256: f4382550345bf0d493aa99ccff45a78c2958f68a110da4959fd4723f7d1ad4b3 + url: "https://pub.dev" + source: hosted + version: "1.3.1" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "3f88fc9c96c568d631356507355a2d1e983ee000c9ac008bdcb39b5bf53ce777" + url: "https://pub.dev" + source: hosted + version: "3.1.12" + dio: + dependency: transitive + description: + name: dio + sha256: ea2bad3c89a27635ce2d85cce4d6b199da49a5a48ec77b03e45b65a3b90922b0 + url: "https://pub.dev" + source: hosted + version: "5.10.0" + dio_web_adapter: + dependency: transitive + description: + name: dio_web_adapter + sha256: dd58dc3861eb36edb13b217efc006a1c21e5bbc341de8c229b85634fa5e362e4 + url: "https://pub.dev" + source: hosted + version: "2.2.0" + ffi: + dependency: transitive + description: + name: ffi + sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + url: "https://pub.dev" + source: hosted + version: "2.1.3" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + http: + dependency: transitive + description: + name: http + sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" + url: "https://pub.dev" + source: hosted + version: "1.6.0" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 + url: "https://pub.dev" + source: hosted + version: "3.2.2" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + image: + dependency: "direct dev" + description: + name: image + sha256: "6300175e00616bbc832e2fc91bfa4d776af5402c81c7151bee6905bb08473c52" + url: "https://pub.dev" + source: hosted + version: "4.9.1" + io: + dependency: transitive + description: + name: io + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b + url: "https://pub.dev" + source: hosted + version: "1.0.5" + jose: + dependency: transitive + description: + name: jose + sha256: a0a339d0a0652dc1bd89f8b92d38479e07e16db83858fb55fa57212479f323f7 + url: "https://pub.dev" + source: hosted + version: "0.3.5+2" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "2a743920d81b7910627f68ee2c9ac1fc0bfee32b9fc3403587d7c6791ca12f80" + url: "https://pub.dev" + source: hosted + version: "4.12.0" + lints: + dependency: "direct dev" + description: + name: lints + sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: "31bd099b47c10cd1aeb55146a2d46ce0277630ecef3f7dae54ad7873f36696cd" + url: "https://pub.dev" + source: hosted + version: "0.12.20" + meta: + dependency: transitive + description: + name: meta + sha256: "307249ce4ff29d58a18e97f6345f539382eb9c9c29ecda628900f31de0443dd9" + url: "https://pub.dev" + source: hosted + version: "1.19.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + multi_domain_secure_server: + dependency: transitive + description: + name: multi_domain_secure_server + sha256: eb0bc2f47939a172e1f42ab23ba42cdedc01e3b37a1ec66bf36da8a1e76c1504 + url: "https://pub.dev" + source: hosted + version: "1.0.17" + node_preamble: + dependency: transitive + description: + name: node_preamble + sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + omnydrive: + dependency: transitive + description: + name: omnydrive + sha256: "44eeb60ad1ad8fa9f9e2dbdeb8d438140e805d5d7093b62a97e3cc57a13d8ac8" + url: "https://pub.dev" + source: hosted + version: "1.12.3" + omnyhub: + dependency: transitive + description: + name: omnyhub + sha256: "8bd20fed512bee996cbd38a719185fae8fd3aa4d51b0e685223fc3c32ae1cd62" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + omnyshell: + dependency: "direct main" + description: + name: omnyshell + sha256: "7d3d86c1be1f3df161db30593e770d19235565de6830dc807b731d9dbfdfbea8" + url: "https://pub.dev" + source: hosted + version: "1.56.1" + package_config: + dependency: transitive + description: + name: package_config + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc + url: "https://pub.dev" + source: hosted + version: "2.2.0" + path: + dependency: transitive + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675" + url: "https://pub.dev" + source: hosted + version: "7.0.2" + pointycastle: + dependency: transitive + description: + name: pointycastle + sha256: "92aa3841d083cc4b0f4709b5c74fd6409a3e6ba833ffc7dc6a8fee096366acf5" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + pool: + dependency: transitive + description: + name: pool + sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" + url: "https://pub.dev" + source: hosted + version: "1.5.2" + posix: + dependency: transitive + description: + name: posix + sha256: "185ef7606574f789b40f289c233efa52e96dead518aed988e040a10737febb07" + url: "https://pub.dev" + source: hosted + version: "6.5.0" + protobuf: + dependency: transitive + description: + name: protobuf + sha256: "75ec242d22e950bdcc79ee38dd520ce4ee0bc491d7fadc4ea47694604d22bf06" + url: "https://pub.dev" + source: hosted + version: "6.0.0" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + quiver: + dependency: transitive + description: + name: quiver + sha256: ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2 + url: "https://pub.dev" + source: hosted + version: "3.2.2" + scratch_space: + dependency: transitive + description: + name: scratch_space + sha256: "55f141cf286eca871f739518b689af61cb994d671f3fd8efabd63aba7578c309" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + shelf: + dependency: transitive + description: + name: shelf + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + url: "https://pub.dev" + source: hosted + version: "1.4.2" + shelf_letsencrypt: + dependency: transitive + description: + name: shelf_letsencrypt + sha256: e2c418aa1713c4701640ac4aff3b6cf91864e260be0d5e8d9ae8d5a7efe1c395 + url: "https://pub.dev" + source: hosted + version: "2.0.3" + shelf_packages_handler: + dependency: transitive + description: + name: shelf_packages_handler + sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + shelf_static: + dependency: transitive + description: + name: shelf_static + sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 + url: "https://pub.dev" + source: hosted + version: "1.1.3" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + source_map_stack_trace: + dependency: transitive + description: + name: source_map_stack_trace + sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b + url: "https://pub.dev" + source: hosted + version: "2.1.2" + source_maps: + dependency: transitive + description: + name: source_maps + sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812" + url: "https://pub.dev" + source: hosted + version: "0.10.13" + source_span: + dependency: transitive + description: + name: source_span + sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" + url: "https://pub.dev" + source: hosted + version: "1.10.2" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + url: "https://pub.dev" + source: hosted + version: "1.12.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 + url: "https://pub.dev" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + url: "https://pub.dev" + source: hosted + version: "1.4.1" + tcp_tunnel: + dependency: transitive + description: + name: tcp_tunnel + sha256: "940060a10aed9e53e7b2a14c51f29ed0645d8313c1c0fd27f0b7337a47c4a610" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + test: + dependency: "direct dev" + description: + name: test + sha256: "0d5ba5602ec3baa28c8ce365e1efc5575969c765f45c554a3e167dc7945b9c30" + url: "https://pub.dev" + source: hosted + version: "1.31.2" + test_api: + dependency: transitive + description: + name: test_api + sha256: "475610b2aa23c19687cce2961e44b0cc57cafe220f67c2b80201231b2a07fbe7" + url: "https://pub.dev" + source: hosted + version: "0.7.13" + test_core: + dependency: transitive + description: + name: test_core + sha256: a39c204a4fc7a7ccb04a2b985e359fda3cc37e45e0b8ac61c3fb1a05aa832132 + url: "https://pub.dev" + source: hosted + version: "0.6.19" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + uuid: + dependency: transitive + description: + name: uuid + sha256: "1fef9e8e11e2991bb773070d4656b7bd5d850967a2456cfc83cf47925ba79489" + url: "https://pub.dev" + source: hosted + version: "4.5.3" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360" + url: "https://pub.dev" + source: hosted + version: "15.2.0" + watcher: + dependency: transitive + description: + name: watcher + sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + web: + dependency: "direct main" + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 + url: "https://pub.dev" + source: hosted + version: "3.0.3" + webkit_inspection_protocol: + dependency: transitive + description: + name: webkit_inspection_protocol + sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + x509: + dependency: transitive + description: + name: x509 + sha256: cbd1a63846884afd273cda247b0365284c8d85a365ca98e110413f93d105b935 + url: "https://pub.dev" + source: hosted + version: "0.2.4+3" + xml: + dependency: transitive + description: + name: xml + sha256: "67f0aff7be013d107995e9b75bf4e7f2c3ef2dfdb2c8e68024bba0a7fd5756a4" + url: "https://pub.dev" + source: hosted + version: "7.0.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" + yaml_edit: + dependency: transitive + description: + name: yaml_edit + sha256: "07c9e63ba42519745182b88ca12264a7ba2484d8239958778dfe4d44fe760488" + url: "https://pub.dev" + source: hosted + version: "2.2.4" +sdks: + dart: ">=3.12.2 <3.13.0-z" diff --git a/build/pubspec.yaml b/build/pubspec.yaml new file mode 100644 index 0000000..50303c5 --- /dev/null +++ b/build/pubspec.yaml @@ -0,0 +1,30 @@ +name: omnyshell_web +description: >- + A browser client for OmnyShell — connect to a Hub, discover nodes, run + interactive sessions — and the reusable library behind it: embed a real remote + shell terminal, or its UI kit, in any Dart web app. +version: 1.15.0 +repository: https://github.com/OmnyGrid/omnyshell_web +topics: + - terminal + - ssh + - web + - pwa + +environment: + sdk: ^3.12.2 + +dependencies: + omnyshell: ^1.56.1 + web: ^1.1.1 + # The `:ide` agent panel gates its run_command tool with the same shield the + # CLI uses; it's browser-safe (dart:io-free) and already pulled in by + # omnyshell, so depend on it directly. + command_shield: ^1.4.0 + +dev_dependencies: + build_runner: ^2.15.1 + build_web_compilers: ^4.8.0 + image: ^4.9.1 + lints: ^6.1.0 + test: ^1.31.2 diff --git a/build/web/boot.js b/build/web/boot.js new file mode 100644 index 0000000..841f77b --- /dev/null +++ b/build/web/boot.js @@ -0,0 +1,76 @@ +// Pre-paint boot. External (not inline) so the deployed Content-Security-Policy +// can forbid inline scripts (`script-src 'self'`). +// +// 1. Apply the saved theme before first paint to avoid a flash of the wrong +// palette, and seed the PWA theme-color to match. +// 2. Register the service worker for installability + an offline app shell. +// 3. Block pinch-to-zoom on iOS Safari, which ignores the viewport's +// user-scalable=no. (Android/others are handled by the viewport meta and +// `touch-action` in kit.css.) +(function () { + // Safari-only gesture events fire for pinch; preventing them stops page zoom. + // Passive:false is required so preventDefault is honoured. + var blockGesture = function (e) { + e.preventDefault(); + }; + document.addEventListener('gesturestart', blockGesture, { passive: false }); + document.addEventListener('gesturechange', blockGesture, { passive: false }); + document.addEventListener('gestureend', blockGesture, { passive: false }); + + try { + var pref = localStorage.getItem('omnyshell.theme') || 'system'; + var dark = + pref === 'dark' || + (pref === 'system' && + window.matchMedia && + window.matchMedia('(prefers-color-scheme: dark)').matches); + document.documentElement.setAttribute('data-theme', dark ? 'dark' : 'light'); + var meta = document.getElementById('theme-color'); + if (meta) meta.setAttribute('content', dark ? '#0f1318' : '#f6f7f9'); + } catch (e) { + document.documentElement.setAttribute('data-theme', 'light'); + } + + if ('serviceWorker' in navigator) { + window.addEventListener('load', function () { + navigator.serviceWorker.register('service_worker.js').catch(function (e) { + // eslint-disable-next-line no-console + console.warn('Service worker registration failed:', e); + }); + }); + } +})(); + +// Track the visual viewport so the terminal UI can sit above the on-screen +// keyboard. The soft keyboard overlays content rather than resizing the layout +// viewport, so we expose the visible height (--vvh) and keyboard inset (--kb) +// as CSS custom properties and flag `.keyboard-open` once the keyboard is up. +// (terminal.css binds the terminal screen to --vvh; the Dart side re-fits xterm +// on the same visualViewport resize.) +(function () { + var vv = window.visualViewport; + if (!vv) return; + var root = document.documentElement; + var queued = 0; + function apply() { + queued = 0; + var visible = vv.height; + // The keyboard inset is measured against the layout viewport — the same box + // `position: fixed` (and `bottom: var(--kb)`) resolves against. On iOS the + // layout viewport does NOT shrink for the keyboard, while window.innerHeight + // sometimes does, so take the larger as the stable full-height reference. + var full = Math.max(window.innerHeight, document.documentElement.clientHeight); + var keyboard = Math.max(0, full - visible - vv.offsetTop); + root.style.setProperty('--vvh', visible + 'px'); + root.style.setProperty('--kb', keyboard + 'px'); + // A small threshold avoids flagging an accessory/suggestion bar as the + // keyboard; a hardware keyboard reports ~0 and stays "closed". + root.classList.toggle('keyboard-open', keyboard > 80); + } + function onChange() { + if (!queued) queued = requestAnimationFrame(apply); + } + vv.addEventListener('resize', onChange); + vv.addEventListener('scroll', onChange); + apply(); +})(); diff --git a/build/web/icons/apple-touch-icon.png b/build/web/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..56f3aeab48d922ffd546a95656abe34f1b32e032 GIT binary patch literal 1780 zcmd5-{WsGK7$-H06h}+)7P+Mtl)Meo{f1a1SMpLAS*CUoTi8(Dv6N!HoU3^sDM#dW z-o{8S-;}Y7B(G)KM7G%4nt8eF^dH<`?mg#uKF>Ly^PJClK0kcUbKA?)RZV4=ih_cI z8q&?#TR!PO8VZpkf(5ZqP=K@`odKVOyoGU8#GhAn!9_s~Sa+RanvZL~9N}?NH4Uv% z9E?7IKVs;nF;@(2O@}V^<+dKZ#aDTj3w38)(h5RvDoO}VHF-h~Ew;=V{Jhf0;&7+q zM>S)qQ5YUU?9kpXSY<34*~>zsXGHLJ-i%J}j#E2#8x@KbZ`f*BmZ<*^%54)f98|O? zT=5$Pe@#b|CR^j#mEZIlGwZ7YrWX4L9k+TLY2r&(%ly6!WD6=1K}DIgPHVt%E0-F` z?!!f|p~Ln#H6(HL?c)=!kAfY#54PAXdGUxX<89rHc>U@<29=&NTdL9kU|-&N9i3HP zvoCo0#oBjqKAn=1+M}#@>Gy@&;Y!nCrqEp$IyL=+-Ka^gOX_TSg36ZQH^J~F?50%0 zX`g$5j z&m_+$tvw$>JtFiQSOBi;O79r4xmJg+IovPoXnm9{r^aU*O0eatVph~VagjNKDkPYX z&5+`X+YxDf2K5bR$26tdy@~IQwed4mowDck*m6DDg@=gMrP7*qM`5toO?kojjq`dH zYOI#;_jA|K0RLCl@M!&WkvL>xehOS$mJ6tRusuZ$HwdTwyZ~3Tb;7NGV+l%x$Xx<# zm>Y5O{Dd&(OO^I6Ql*!-FgUcs`_0?0g^$mzZ0_?86b2`|muA4C1B!~QhK1yGTDjLk ztKZZT^;0bT;85d;|6=%teOtBxAZ>t9#jYOVPiogBMV^_)sHy=V`l&FuvltehRrm6x z*n8-f763*t26O|m>i7+>dCZ$G>r7Z#(AVly9(PNV9WHImzZWs7qqjV^ zqoE2Zv+dYDo9ZCzro>HuFe}Gi8`|3q4mf%qhT16}wC303NY$R4zuK9CiTwUL0L%Bs zHb$?7k-Hn{lzkbrF#5-ZGjY@9LBj*h*Ir+Dv?fk0k;(k94*0S2CQ!S*{D!<1D_> zEINoG5a_fKhgCA3`?mfaEoE@wh%hMB4#LmMYcaJs)AjM7wWIarID3p$Z$gdH>;dO( zOh#IWAd}*|BA{#uGGUgs9koCUo2c7W*S2GN5MSo>i4#8~Q21^B?$)5{q~trWw6uyi zAh80oMFa3N$>EH5R>mBd+*y4bVZ(ps!iJd?a;D>+#m9fX4eQkh`d{F2fx1y@1^XvP zIg90U>LSZ3Xa#~#_^fSwPhj} zGO5R71nipaB+ zw^mpEBL^+81a#0LOvO;wAk&)2?1y+tM(f*9-f*YD5|a2*CN{Aa^o@G&mky6~_xrZ8 zKA-KB82LdmNvBw1y#bj8cyT{Bv02!JgSVY9)ufx_@)C3JcTxBJHq=-pAxOneduNS} zkAN&O7AFzWAVkGoJHN3Dp;nN!!PIyU;{`+I&(P+ZVf$ zwP3p+P?n?IT>kKat)wha1f0lf#x0w?q7Am{@f$u!@Xg>O(WY}I;V3~2mBcl8NHhd|b* TbSOshZ>E5B@pP^{9zyyDclB?_ literal 0 HcmV?d00001 diff --git a/build/web/icons/favicon.png b/build/web/icons/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..fa9af6da587ae0f8822bfcec1e27e9064719b9a4 GIT binary patch literal 1055 zcmV+)1mOFLP)7@(RQxH9r;8Q`O4`E6L zK@S=EkWiqa23@ek%Cf>stLg5{?o9lron>cRb!YY*-T6R<*)z_3-hQ@DIr{xRQ2zaKk*@oX5y$bW&F%!jW(S_<7l3MHh&Frh zs3;2fWl5DK52&i56QUD`mK!mLoccH(vh8`;eppu0g%T__U zs~U#88)@9m5KIXeXukqk#dW&hR%|&+LMp$i4La)!Xz`mDh6OykmO_rn*(H#gw_n%h zs(uV;5jPyX3GbfN&2k62Fdaez&#w{@FK_3=j$`+AZ3(ICAZ=qA{CxX}2FE!O(-?St zr<5E&ziNQY!c)4o)w|BX*x(CrRkj7MV*x6I7<)Q-Z3#G&GIhW2uI&M7>IdZRy+qy^ z3sCby81qH7UC`ZB4x7sAb#2Sj3rM)(oS}^&TA*s?wCpp|-vTSQAJ?^QJ93Zaqk>@K zMsYq!&fWtFDS71FxjX|nPGIpUc6J(P=F$tl;QiC{u>QbxR*zvP0PTg(I|*6E=Rlqw z2S;KWljkrIfVKkdg$9rNE7%k04qgpZ1z;BHX(}hSA{>1!CrB2e4Qc|=KJdIq?1X3H zi>}Q*+y!HU9n@1O&=P>Q0qsLL&}QIF%xV&YSOx4n*$&;!<-|6qimYoxd*So^W@;lK z76E7v1lv+#7ygWX(6!f8YV}!hRJu?B?szfNf?r(E`P8uO^^!k_v@tcRINp4@P4|<42 z!05+zm>lViYDooS+UOXF7N!KqGvkI9wJ@GpWhD`-fkulP@vy82fl8+7Rf%|kh;>*i zm6t+6xRWBXqFAmyvP}}G>Y|Btbkjg z;D@0Ty5%64h46J?1w5W>##+xu+-d*;5u^gHD2u+?BNTzn9x(4_4+w-4R=}}{Y=!MM Ze*seslAr|kZDard002ovPDHLkV1m;D-i!bM literal 0 HcmV?d00001 diff --git a/build/web/icons/icon-192.png b/build/web/icons/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..78c2595527ad7518815510ffb86e8e38eb439da4 GIT binary patch literal 4120 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 Om`ahDh5FW z3eJf87!$Auj;{0LHky;xWDi1C|FhE zJN3SzxifvqPEo>PdOUNKznitZSG%uVIK^H{<{PKYT`!7C?`SNq$=GrQzL8BroXNROJRT#oBah>#w}vz_7j|`&qnco z>l8u&kq@x~kQ4ScETZJ(9g-nl1;TmK_Vpm=DMw3BkW$~hLbH20BJ~9V8nPI;J(sF8 zd+yEI?Y6ZaSz_WW_&v7fZ|duG)wGTJgMzsQ>J@R89o*Q-oSE^gH+Z*f&UxS6CK#%R z0Tg<510DI$$yDLBy3BZ98~0+q}7$ z;X~3updg6+-mat;?0ee#>9V}KrR&0oXHhAjRLY9PI@x6O-QG(5Wh+?aRM_YzpSj5n z*};C%orj0ENh?sN=Jz*yi(-QQa<#K}`Ku&UOw|9iue;Ly1Rz6UJIvUYxGy3bd@rT@^lXhm zz)&Z@@EtQ_+l~@*HL|ui5XS+7D&FrsAL050lBAm0|M9~a>U&Fu+bI+Y38@{t!5c(e zgoHqwu+e2tq!-+EX%9L`*l!H562;}7iQ-1=<}5GTxG)eWep1Ajoz*w$gzi+@kNY)2 zo5P6kvXTD5M>A)&vC?fI{)rh7*#LK>oKLit%MBmS{|Q|iE=C+-(7&*VLLzq~yjMeg zX3;OR@+z$Bd#V;^u!~i-WcLGYlT{!32U*i9CX1aUv0-Jz4F=z^441V3z zC56l#GT8W9rfRff5y*Q&ng}H@h_4o-XT8^(jNU>;IIL|hzo};{RVON=ztWQg&-<|N z)C=|E6%FOUML4scI%H+ivTV1aTl2?5(Op%G9M>gZ>|vq$4A(RZ`U1{OE$^6EUDlb? z*2BL^&Bp)%jRSJaeY5MBb){^NYDh-R(V^AJ^<3{FL%eMxK%kHUygj9pm5BR-u#H z?n+iF$m05i(Jj|(VlLUqsRsr&Og#j;*ur?XI5%9>n|d|r53G{JA(#vQbE3TDqP-#n z4~!CCp;3``3T8KWpViKuYF?v%GX1CH=}@6T%VRWuraFN!Vnw?^XgT`KmxMi~3_xkS zD>Kf5u9N3OV(Vu-Ke}PBA8}X-+&^&<47wNx^^YTZ^ybhQpFOMhYRa}D7H1@1KWIfd zOA3j_>lzkHb3F(1)CDpag4a;YX^7Q}%4x3DcuqM`te20oT+j7S z(mCD56+g?ZVh2m}dI z-Gf2C%t&P#y{=&aLA~O4H2Zh0aR&mv`T4;yKkR19c0BjK90v~aWu=*~mQyy#Y=8Hf z(h2`ndJwx0ua5yR@&^3C@OnGN$3M5v^i?e~;fgNErtc&?S(%Dj1|D0rd(sQGJTi)q zonucBQYHXMj^7&*9*_;i&o(Dq``HdPgQ7}JV34@RC5Kq;(x__{C9ScS1hHC+5;JEZ zV`rF`w9q_$&f#G~E8M=luq?#g9*m$WMdgS_bEZH@+B&kb1pD?h)`<7LgENhy){J3} zrDU*waNv*89x(VXV0bxUjecpWDOk??N_ZL{w98_L$wis~kvgauxQzU?1Nbbr$c}(b zg9a==z1#*3g+n+J$<|XodoS|G2M4Abn=6!lJea&!S@HRllzRyo)|g^}Ma zPCnkS7zZTwnn)OyHco)#X-svShmq&HK#zBt>ie*Y`-{w=8``g2znRqw$ zJ2^xs-+kJsY?{w)1fLVQ9te9iro?l#VO0L$-UyU8ep7BuEelw}atl(< z%c~gs=obfi+DZ#+-^Z&pYsN1rG zia#q}K_FKfF4t`v<^Jlp$cMw()#k8@wQ9*@DblLkY zS(dGmK}mVzKhm*pCN#MnK{Y>e(byqHuASz z$DXYMdbVM}T{A4D)v3a-aIS=^>;Wz~J7~q^I)0A!j1vNwQ()gU7bn*SLeDnCgba04x!{VlA>QN&HSe*)GP*Ud{!@%R4*mZa0` literal 0 HcmV?d00001 diff --git a/build/web/icons/icon-maskable-512.png b/build/web/icons/icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..5be5aeb21eda9f02a8b4dc19b5f63de3d347e3d5 GIT binary patch literal 8553 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 bif-zB?Rb88tRDOc1!QAsf4KC}*{lBrVO(bM literal 0 HcmV?d00001 diff --git a/build/web/icons/icon-omnygrid-bg.png b/build/web/icons/icon-omnygrid-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..f0af34972f2a8d630aa3d2072cc910cf9a37f49d GIT binary patch literal 478547 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

utpWu)&JwaBR$D{nU+OmSC!PW6cJ_$Pw?@l7uYA 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

-1^RV>w{p+MOq*xh{B-V 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∨1vqjipu(7=@7BB%23#r zI5x6?xC%C%m{{pvz`Hi)*wWx`XiR8#G^$g z^d2zhR!{!$kys6hDmtdIvN~uwqzD|m9IZQ*KJ`p^km2g_8@*R*WhlN0NHf~86_oty zt6$$+bHv=o05VWdnA3NKIXu`n_bp)V{`n>59&Vq1^Bi+uBIX{9x!?X!nA_NQ!rV_z zt*=j~8DO7-fcmClbd2t$67Uhh>CF);k8_`+bR4scpiM{K*4@-McG&6D%;NYBfr&w7 zZuP_IL{XiS2zl@4zyHT+{pBCKg(tA^^zTo3j0f=(0H75_!8rFU-8G;D&acZccx!2y5p4JF^$IpSeSZ4GTg=Tk_Lq9c#)!EaO)pQ)MBJiHxktS0w1rw*~ zn6S7=ZHSya-|W^QK4cYQYeQrR+;tJ6UmWK$AVLzru0R6&Fgw8Na* z8E5pdYT_QGcV;zht5DP<`Rl{51xNuxWs2va5q|u*X_<<04zpCNHYjI>5@YVdnydN} zV=lk@!^GV49ppu!y-$jP7L6eeU)bkME7`1>aCyNtPr9p)BqKeHOfoaq6ji`AGr*x=t|j;_~2Q|$4*_y6^J@9`0K zQ+}}rSHSvt1hg>JndPrbBhW=R3dNM zVhJ-g%*8-~vrk=Lob~%$}CTal#x9;?nSS3y@{;p>EEN zboqzG#`c(NL(~%HLVLi*K`B>eKSBtAh8i%(ozll1a|N6|<~T(^F$cQ1Z+IU|+xwL8 zM}aw(_Q~>A_H&8SKUJ!F1GuMQ22(pw$N63@B=W&jWgb84e%kWFB60=bCI_n z9-H{CJK{Xqrm+5}KmBvAPjmTkJ$Ex6d-%x_bFAy*WAF1wUTuaNX~vB= z-~O!y3lgC>*9Zvln$bTpe^>gSIryeZs?Jln@?l0F8Az*M+h)~1Wo#DtLwr^C#=0?y z$xG8t&aM|VrDiOZZmfacPSSv0#7yS z6GG}Q)f1^oUe-bYJ{@XJD{`TQxxUl7i=Lx`S4O-&O}yUNQD-t1<^!H(V42QIx0H0O zu;^?(xNgXHWvN|p&T{A@_D6LYflgt@JX z?)rIR?m2r}?`{)wQcZsg=B|ag+n0CWef?Wla~tSxpT6?P-~Af3!pD`3pUB!rZ!JAQ zoy!i0&e(-g`fALTB5B@_Am(Vsrwpa~K@};sr=%BE6l^$qbEDJy$l`sS@f2E_Iy8+r z9WP$&wKwLn$ZQzlOC0$Mqw3&HD7En2QQELqvhg>LgwW;@a>pElu5aKL_l}`zSQ=+X zIF#0hKsI8jYW>7q@9QH>*!TYTb$XBG>Uaz&OR@eoFF?YaBazMq2?5C&UF@|6$y^~Q z-*4_x+l!N4V9uNi<=2h2-M9@ninS<+S(sBj4jUb|B@vlcn6u3;%R7@RddAmh4$A6F zVy+|q)A1kTf~hSyOGRa>qdfw+je7GaNt%v7mM36Z(grvvHn!2@HSSSMVTC4OqT|N*>QEFOB==;%}Str~kp9pdr z^9P^+$g-~mm}@OD_w66Q_!v+IYwjJGyEo?Wz}DOa=B^8K&vP`y-Ln(sp6xN`*j!;w zBm19D8Q0(bcI)O}j?p(OVoaQ*sbthOPK7$7aKwYCQwm1=!k}a1Z7DTwgn3u>j;qLC zwbSQ~#@fe@YlKo8^w_`%91XB-w5|?ma=w8%RrY+eOUJXM+&}*OW^pMOdT5ACP-1g- z1(2vzYtr8Q%Y`@Cy&Ms~h1MKOeGgD}peM`br^oUBr~mN(SU>yOAO0{pI)p8yC|Kcs zsh#=)qv?5`a*^NP@{o)*oQL%f)s%oYXYe9YqY9Ql9wv;JM%0laju2<~k=d6a^}1#z z%DSp{O<-@VA?ka1qug5;ht$LH~gA~=i;V#WxuH&K7sDl!^6PpmPJ)mv^( z;m%;PygXNjjyy6g=X@XRcX8?GQt_b*WU3u1)YEFreWEZ|PV2Le#M~=qT5ZiybF(nF zIjz^i+;^U%9@v;;rWKWQ*T7s^bKg5*?pBn0c)I_|tJi=0@DGpMpoqtfbGqo+vaWs~ zRep_083m^m^u21C4DAg!KDxtaH>ib4@sUl(UanD)HH8bLS;YAj=teJw7;||dFtr)m z>2une@e%70YrDs^>GsU2xTdSiQw1J$jmQW6+_|;%_~v8XUM~E;?Jv5zf{MH|B7lTO zQzhnZ-v9M){!i=g>*EbKq*2$mn!KZWYD2*Seu2MsP+MO*DsEiWQx3)D{i;yurN&eh z;CUcqnDJ@@^L#`6Xo0>#a zJxr?#O?eQg(10{G!8T&fK!AV<@Aa`(2pwcl!HlsEev%)FIZwxMsF@Sj99r0lABedtVa}hEw#TLmF?YBz=HRrx zc!vKjF!$wir}YwZ*Jqf!w`967hjm?;!{gJ<%WoIvUJ7&8+g(4Z+}K`-6?P)hSSOK)e*WPu*b~h`o}QwmmcA)y%4_>GOv*3}DaQU(B;ym}_N? z0;LEi`?FSDS?wdXHd(A}3fA9{jcQ<-zy-{uJV2%;&gBWR${KLZn6-~v8@eUst%;g; zP!?SEA*lm}GkjCm9=(L|A>wQMAR|~rR{{x@=pzm*Ewo<;=8I_qmhOY{Pjh+-$*LoT zqa_iaI3A6;pAvIgZ^xXQB2Jk5F`U+q#@vJFe4Q}&rRR4r=dMrY+ZpDbu1}ad)y;ux zFM+w&Ke>Z^`qR^fxmT}$aQk$UXF82?eSAb52`)qpsLpG)#z;zws#7z#NpxHR1te*4 z7j<8WeoRk=r}rc5dZwwzyH;* z|J`+Zz}`W6VAAbt5snF%>DXPfB)asUmoYp(bn9O6T7p7AE5$b?gD0NcH_;z zi@8rfe)@)(Yl}WWYU?#L_^6{rn3IKW=ou8cI;}p}In#>GKGph^rh^$>PBtWU849rEU8W3~ZsB-ag_SRc4*N0Dm(eTw`XQTDlfJNsf=QlYcZZD}Y zHwFcFTEO#NyD&G-Fjuuy=a`H9zA)zvwHC3n!?h&s4-UrhaAnMW{l&**%^7p1+&SjH z@xK5db_lhe9k?qu9OeDIlH9Zm)v zWA>W}(hhUW1?GBq&dH!3nmMLG;V-XrvBR9=rIagF@sVaqW&X0(m5%%K^P)oG`^AU7 zFt?TOy#KQgKmUo(p4Mkh|F)YqRz35%&z=5#<})9B{+EAv|I=$MML9XGGD*jH@4a9D zCe5rGhy5R{-+c0FemXJdiRZ%Hfi?&*_nSS=_V@miUna~!Lc9bsq(#M|A!E)pWnE38 zFj|U6H0J1%iXL;PKy-<@6g)~Vmj-&h%vnr@Q5;=`Llgh|m+l5>5RncydX&V6mhNtm zkUBa(d(zs5f3c1 zM}lt_tysG>BLd9B7G)s*Wmg99;B0v3+aS5Wn+FGIm)C5oY@29UauwF9VvRIj_GjPA z*VU3&N^!#S&(emfR5xJI*M(_}_S45}a>9}P$NP#OQXF%2&UmKhZF5uBid=|JdOE6_ z+Dio|Un&w)mtp~7cY^~%9ic1xZ|`DNmRz3YeQGs8#&RL$*>4HmS!SqhbQU+S0{T%S zEpIQ2So8mG9vys5y%=u0VlAk?s$jL8$YrF?aJXSfFTAo*d^Q0i@)5QBygTq{ z#9RIY*NcUal3&L8?6}K6>;3PZkXn?!Bf2U$B6QbRoJoDqvXd<=Jb4J%uzX~im_NL* zHdJf&fx_`|0IEEkrt_zI3X3Q>SvcYpoASuG1vy*v%AzqqqCe;U7z>Wu=+)h2@o8hF z^>5@v&VVyF=s+9tt|)d8wR^X7@HMgQq2)B>aQo8_2v=l7mw*d4?DqcRI*bfS@d^il zi3$Uo4;|WS8=-A{1IyXpTjr!3ktdo#s(eMM3N25g5kK(L*C9S!v}xpfQhg1ky4uf|$wPVF$vKLm#d047o>g+p_?WP=ih2+Oa=ox6<3Xk# zwg$s4=Ugu2pN9eMM?i~JPbdX?Oz3<5ur378=^s+pgSIadPx^h4 zt%8xo_MLK_{a8X4>IQ!FkyH-Aw9 zt|pa)PZZ%SVboF;`wPsUwXDga+)Vyn@%{4Wkb+wo7l3cQ*QC0l7zU}8dES?C7SAg= zKGP@F%lr{TrZTmG9~s-*pN4j~1Lr4kZ&MHyC_8Jv1IG=C{E%q8Gz)JjoukkNoV6o;uB2Py87&f2cBOD@c<=CuC$^ ztVp!RW?Y!oxQfc2i`O8WoY2-FLFBSC4Jb{%M~cH?F^p<~T-T4F1fc$CNBot4JfaM3 zl?^`KOs)I-=&H5I&B?abk=AeBzE-1-UY(4W2R*fEX?MbXGrzcY zSDVq@DD_)FF$q`W5!+vfEy7dSMG9n}fMc${rSl~A;*21<>%Df?49zfVA|`)eI)VN2 zC`G<5F+&(6^m3f|;|~XVmgaHN67p5I)xJzTJOv-yYYl$j>@nsS@s38YDVEZFbf`H; zitIA#ZD_7 zv~HJWR|h>@PQTLqjD^?Gc^lr>=RB6o;V9&dU8W^yS(fZ~xS?pSbeekrUMG9g?a@5* z{YwKPTRbf6CgT^w@PM*dTDYRq;6ev_Dw(CVIqhr)ThSA8@RnqtM_Fl{_KOrgFTvSl zlA;0*&X*GnLqD{u$-NZ4MIUUxvE@oGylEUu(a`>XUH!Buu`buf3 z!CIExrv8II8D#nUR0}v?GtK_P&5J%%@L--G$Dx&Ep`aZut~s~F0+zg=QqfvnC7@?t zdo*L!;T|x))S^`1V*b=O#Z*meObN`;cr|?xNUN#VL_p|n$?pA{cmBiMiY88;xj4A=!OihWe|>9tBmloWXI*bA5y7hP ze>IimXG{3kE716)B~+Sy83R9{mg&4>#g7qfehyf~f#CT$6NeK>oe58W zs%dv>kDD!A^Y-$S&7>u{*_o$VI0F5o{aAxAw>$kkhjZR-PUnsGUw!FV|9d`QU45n| zfASeJ@1;*48}>T;YxD7(qFZPF-9Gvh*aE6Dj#|G^*`r$&+4EO7tlUjoE;sij<5eMb z0uQH?46CW)@v!=2>*tHJ^YWed*q*?Rq(AflXv% zt4RZ1j*>?$>$9y_=9w;Xtdz~BukC3GypgB(?%cx7c%K(MV9S^SFX}PAV8G6Wsx&1% z9CZ^Y4>Mhi`V|EFS{rS971uHaRI^YG?&CeeTZQh#m5Fh+uH?KJMO14u`57Qy@4BdK zwV1sgjLczp^<5(AU4pU+rbvlpajE07e8E^QkJ!gZNjn9~|5TVbyL@cJxCtp3ss>cc z%>U5!a-h?gNRgpR@L3_S%jzK)-r1v#d~<{eX!oLIxK)tdZ~t^l!M(Yb@{@8FzyA5L z=F~1C$+((xAI)drNitW+$?rTG~x|N@+Czb<#STh=F169a!Qv3uE;~eoNve>>d@h-YKy_{EG7+ zWv}^?hB|FD&IYq?2akUZQ{w&Rqy;P4j7kR9xGysne_ZK@%w*V0%BOq@h@dAQsXoH| zb|T>UIgi>8A>pMRRQ$Sw7L4(Mj3c+Dvf5jOzq*lRIH-;9jGMMSg}LaHcq#5#2mePy zsPE+RK;rVQ|X~i=gL)%YP(>@Uxvo{F?{fMZqSat?^gbAvNUL?-gqgq@LOY0 zDS2-s%+1+|Jii)(dfJqYixC`w?&}GNy8X>nbb3rY;$9qzerTgnoE_A-Ff#uzJRbJw zk=D_X@p`c5G7i-L-_PZ*3UX_OPD=zvq}k2BcxAuYj(7+zm-ca}?PYpf^OrM}XfOHH4$Q6x6Keduzy)7M2{wI+obQezioT3Wls&cV_58b6oc z9xF|~MI9e&ca#-olYTTkQ6_jPI5|J3hKn>4KKPoNcKP9ZWDhtZ^KZDcCUMVmeiIiv<8#KCHU;G{uNNm0_ z{jh8T@*@9SFQ5|pQ7_b_E5kvB3ekPD8K8LAG0w&p)bseB6K+X0;+Lp5Yxu6`P*jMU%J7lO>=jnsOH5 zE;Nq35g?b;wHj*Dr37#Oy9PRFQSjBlw^fnq`SRh2LMHzVx5mQf=tfHPm!AyxZUlP{ z4={9+OZrNgY7owS7R68gLqPWWyRc?|8>ddpk4H=1;v!8&I3Oy$HBV@9e9rt#lM&hI zD@;OEG+g_OkF{>nHsMfk@H4`jXxlWyVW~MUnRLxw~WW&b?iu~N%yIe9v zX?>4YPbi)}+AoZ~FB!Z3olajn^E0uQ({_)4W=hMkT=~bd#&_xjC!O4X=4qw5RCW}O z-(NPZGVjS`rz*v;vv8QNHlP28&+v39%wrfe@Nw!BHaNKempVp^#AbI_SU^%dP*Cvk zSU6CI1(+;C#OESEGN!T)oHwmcFmK-h2iB?_$MI zF0)TT6n6nT_$`tmSHrm~C&y7^Zfyx=Rl`*7UuCO8>4)4!rIVJAeyX>W0{K;XI}nrN zPXvFyLfx)+>N+72>K@zf-Cb7{Sr$A}hp#FY!eIXUIJLqAvHc(7V7`8j!mLx?^f7iZpq^2WCqEnb%8xo~ak<#^2G zLbXwNizTN%gb^5p7nRSQR&jo;Twdiku#e(lq9#qHqlo%xWCc+>Z0wx^ey^*>l-&23MK;j{$;pL zHcD5?BdvBp0V!%HIKlg>%q7{pMUQa0fb@mf7dpW9sRp?ruSIDdZ@GkUAJDtGR!@Zk zUzKf~z0*Qw19eyc9{+;jj;xf_&(|w`7EA7n0C}5j?MFOoN}xJFJgg-W_VA?+)v<2u z@Kjbp#0gpQWtGP_r7IH^CW8HPIFF3X%VzB-vr2SK^R_7a?~5V0?Ff;{>@Sov2T*3T8NK%MYkBJUNeDH4OtG1l zDmh|zo9}9%cTSdkBv7OIXHj3I=12%#16t_KoD;Mu#ZD`tRnF*l-ZB1ar7tlkl6u}C z8%6&tF-f(;fiUo!I)|il_r`x1=E-le|Eiu7)`*f7J6*g{hv0naAN+-OP`p`y&zeE5 zhk8-;HL&$AdcbLe0pgG8ngZ`^M+;1ue?%bC86o~5BtW9z?06BCXRSY?r@dJHxj5u2 zQo&ghyV;4l+IZ#fpC0!y$JROLpX~XI#gGe&iU0|RI*1L*f6{8PhrAf@ zLr3@VK%|AqNa|(F}x+zl@z|J#ZWZIXcDX~ zF+V%Ie-lIvXACe87j!=neqJhr3wET(Lz8Rnxd!ug4=h!U(<~?jk4N~23Mbr<6)m}@ z-AUn%(6Xh*%A(A*YtmE%2~;!QOZ`}lguMF7Ti@VK@^HSdkqrrnM$6S>iPomNqE@(?IOLYT754wAFvAE<$IOSf3VLbNyqbw&iUHtkycX5 zDvTmG#egEx63P4~!NFfPCcqg26DR;8`R)emWBrKKBfMNAPk$@LK89mCP)4ZU5lIOC zhR_~*xA(iopzh59KW>20rEE2i3lYc*?rm-{znw>|w|V1iQs=Vt?-Sc&gA2ks4Izn8 zt?Xm9v!NCLw?>y5qa*`wWI$2lWtWck54^A0#oD<8Yo4ettJqZ7Piijs+Xz~Y)>7v}SGjmoI z>jX4qm3?xFNzsp>amiq8*y~$Ddk(3?L7|*|VH+NTpab$hy2(kf6uLR25t6q!u zZ#E`q#kPObvVJuPgjhBHizP!=sg~5#ARd{&pZMI#=+T*NLN=u0uDsFdRKmC;@oz-q=0I3znVm(=+3 zrNxIOP!;^=a`n~5?WW-fu5d(CS%2Q5Cj2P*&*9Gc2&%s&w;BPUVUJ`)Nkr6qe_b+y z3JosSgJ>OGA0mD6IyLO__t6WF=TIUKQN~&xLyk$}>Gwu_!73p!{Opt@(N0#`l;VQ? zvM&QQ`8D{}oO^g;C*5Y4oWj1E2%jjUh>XQk;qI$P&VS^P9E^N})2j9BSYTA!>ZR&& zZBCHYvoFv#&CnTILgD>e?rCY}YDn99=hq_RUpP|L6fUT1Yf)T#~qqf-w9F^qxS z9P6-K(ghck{@#-uK|vN=D4sL&$^TgpE%4rU=Bd4?%y;-KCmT2j6K$CB#5}nA;`_;H z2Sz>66@!>qYS&2-2J6Y~tDMOIHMsqgr>~p?ls=0P``XrKkqZccs%kc;UFeq`T>O<@9-ocZtzhqzv*JR^H8{PuPVz{e9^wDEAe_`+JRmWI&h@yBn+ z95v+=&InWaP7znJLncG4yHmX5kKcB#&;a8fZ^7g5+xVpRTKBvBSYgSqg8Te*na^la zx22b9Ay{XU2S1>uk&n6MQBhkz(}F;whH_5+oQV-P6l~3vWqfp1FLi|Hd74e*>jp8kkL;PN4blR5qwoRB zd1-CZjb2e+^MJ5eoW0wUi@clm!o@}ZRIWwwXl;jUt z{AXQ_NF87rZe{UBGN0O$=50GXm#RrkMp%{^9*O=hk)8p3)U$0Ja=UZ&M?9>@-*@?| zB8cf&%O!DJQr;7F)vw8+oXK~W%=PfsuSza}g-|*_=x167Sroo_j)QkT#0Q%l(@<>k z{D}yOKvJ+cIf1%;Q_6Nptb2?&%&8;ylX`9`M4db>7)?$7cB5bY}P^uWE< zM)0m6D;lBcO4Zdj?Dw7@Y3cFX8}9z+qPyeCXPp@a5>n2^yzPpmuJWkaZ}z=5f`aAm z;ryfqMjD04F<<9FreIE+%(fG1`?cd&hzVJ~{b6Exe7J2GB}jfXGQ4l+3^?O} zKmPtkN7Y+Fu6NMIE{-Z=&1o3nFm63eV7y3!WG%7EY>i@?A?VVA|D#*wfGoFc4@Evkw&~%{}tMnhqPc7?S=~qbrkqJ{lxZVjQ|wu4ZcSIf!;gAwoMg3$3ZZ zj#zXG&2NDdxnWc=|Hzhm(uBa$CWaK7&_{nr+W}g1QjPG{;CudKjhy0Op_l2#1Hnw- zreOBp=;ss2z!H-h@)m!|(!8MK;QX7jFDrQE^kdK6+Kcrvp&M^*1AyN>5Kl<`qAZ9+n zP8xiqL;|l=v%K`J*sW8#2?2?GaXYP!d&B4+M`a4pCa}hu2JELRn?C)T`9$k0VHK!c zgZ!eYpLeAHj{)5|YV_`{ zQ1J_$%65r*)8pq9I5k~|@_Q90wxl2SMZv>fCeLJ6adQBjgDwUB{k2u4(g<=ozvQmH4X4(+AGJ~tt_oUe zF)cN?aCuk9$K+^Cf#k8DiT877@77+wOz9cc}m?@HlIlbsHdFv z6Nw&Dn|u8CxeDj9{xkrJagpMX<$8GkOXp3T+SL%ZQ~8zBVsQ_JsAK@PtHuy&rm329 zg!w6O>W5Pn%-wy9)>q{6-hPwTlvC*RlwE28Sx8+^H<{7pPa`plNAS)YZe)HP@7=CN|k&qpkEJ*;3>OBFcGzC`4~PH!jDw$^m`POJ6% zyVOMbbM+sL!nXo#pZUPVDI*DqA~U@8`=EpjfM-UO^PJ}ZOma*42RYe0~J`a*~!E$9SE!;`mOd1UXi1)KPvc^|r8HW4+ z&TO=Hf>xmZJGp3x)daYQ12daONSIjLFscEnGRgc^2+YdO!#OWX@3lDl(_w3po5Xb($+Ni%KW#gj+0Jfnx}uE^W6yE_o!KK z?&=P;?6yG-z(~r;!yW<)5-Tc0GA~Uig#K#e-Zr<&5?dyd(T!3LcDw zTn-Wj-BZx=i`ai$;G{8JiVQj3arETgI~f7kyPJl?$^%1wMTUj65GO40U)5*|`?v~} zS~x2GX2Mz?C%@m7fM|SY_l;i1-mho$2RP?v7_e53wUL5t>%2j<7x?61qjS^yR>Q~G zwghFqtbqSBD}RV_;$=_Jt&7WQ^E!@~_@PnWDi4<_#P}V8n&#b`G4r|C3g_`MHLggU zU4^P=cTawB;jk@w8+03r5TUA7;n~|f><^K5x&^PRw zUnBZfRqbA`i)%ajX2|^;&qB3#fT{!M$N@!4_IthH|GdTtnT~?=%MAlbyRldcYWrRq zT9Vh69qY zO;1o|rRrPUm1eVcp{IQQVtOyfi^2XQthsx)?4_3&5i%LJ4a3gcDW*a$s1Br~+%=Gv z^njJP{i%`bDcY+39xjziJ*Zp!q@INgy(4hBB4r+f64f0=$3{r`52p`%8ia)}5=_HB zb={871ikh2z_8?9d|ajODe~GBd}m2H?O`De``G`go`~sQXGN>Cx{wJz5=W zEA+~c0$7znT4MdsgeNXp7}e&V>aS|eeNHD&U%aOzgKuAj!;~AIij7F-$RKNs9oUf_ zkYjWheBg(LT!;MFWcJz}9Atwwy3@`fx(3G2u*l!NT;C57k=mJ+JS|pui>a&bkqvjv zeV;WQPyQzA!vGzhi#;qq^IaUr=2RT6RqpR~T;_z|)P{U#c3NB#Bn^s-xHHr|rhnh0 z&6PhZEhIEfmHV~`kN;~(_h0jPxo<2E2K8Yom)gY%@grB&ks$u6V3ujek@nJ1HRGfJ zvyVTDCna;cG`$Kh-lr6t&2+vBkNnX#m{W%IuQkoB49|E;7z)09A>f?+ZcVnMg8=x% zyq1NYFDBo?{NzJea5x50x3XaSJJ>vWRh(>iG8mQ1#Wiffs?vS9(VM zeRuTl;Z#Xx2@`l}oH^DyQ@Y_hPoEHfDXEnHpQdB20rfEZvSf1np3Pd$2l_3ZHl8>p z5)&T85L01UIBZA8tP=;owX9x+s#MrZ^e&an>1!jqxln~|tp6@p|C^BlJF;0FJBVf7 zMaW&F5tef#M5kE8A@sn9dE3iXVOM3BI;Xz2)n2Bd%y-tqzwb%ZVcVuiZMq4?aNQJA z(f=4qR6eV4B25Fb4DE67s{H5{tSZ^RZ{S~*wWI4M>=gAh#bE^_A?cyqmu}j(#D{P2;W> z9T1gW@#ykNQ5J1865&xLK zU%TjSO|n^KDe^Wdku=cWT|7%sVCCF zbts0~^>#m`JLQR=)PLt}QkTXVuAY+_-;7v3nxr1z>H92i3-zTH3gsIC7Z&oErrjrG zg7{oh6HqYeu`%Jh;?90rYf|pBHxb`(h-_ zg!7N3r4{c;jyKtpX31n8T`H}yP@E9*R0u*vgQP~!+8T$W|>B4hd!S=zIL{!}!$4--|CEuBS02-x_|eY{lHRulQK6FYhbZQWo_LJ< z|Gf6dpV%8cZ4j3BX#J)(SUhKkRC9mnEL(EUzcxxUfE<>?7~m)v#I4$x#HcBBwQZBP zxt-Q^cAys_UrllSUGB8gDpqNrE^$SOcKF(x`VYd3vh+xOf4%?U4I^N3*QCtNr=72V zEof{SZDp~G?sA473=cEXVbNUQ5vOQMo|F%T%VONhhj^8bxrsecQO)s0C~BtS?t4nw zltouD+M7Z>+SI0&;S;_{5+4e{q!IKCWCyjPVLI-t07b4am=X)aLo#dBVITH=Mz^Z4 zs*t>=2S%_kJrWM5=cnkvnh+m^7JeHyzzB5W^qvjzT6sV& zn1g2UCMC@aa?S`nDLRIEZ&ymf^C*`oVc7e-)Ttd#>$u{tczd1=KG!ojvvHrGnlJrs z`@_+?k;`@lAorNvLLVv#`YFwLh=P(RSyYZWqgIQ@eN=@0ynm-flq;XO@6+h>zwhO2 zI2UaB%>cncOWM_`G1SdpZcGLh6|a{QA9_feb?h4_w(MWmow+Gi>GC=Y3O7{xs}E_3 zFxVvOSKrV?3Qf}}F6q&0+LKbz#Uqf2n}X*8slMMfrn`u{l@hl|3`=_Rc(Iv}6x7); z-fnZh)~kxdRignP(Rt#1Z5qx)#3%KOjv2nm&Ymw(x?^{*e)nWF01QxDn^|Ya7}ByaC625^}Wx*^tl zszs68i3Rj^;EyfWcA9&nbV2;-=rmOuc|Hyy=j9zD+M22D@ZRvqMS7f)ht|{8b+lxZ80Xydrh)+a7 zT`>Pqu8J`ch%ISGth2C__xxZ;bUybpdC%k1K%pB7>)~DUhs1Oex;S!cvNaB)gQRjf zcJLSO_E1p>5j3JVPe|a*s*crq1hsPrKK!%Min1Te+%6Y4JyogP4>SKExW&5&Z98i? zt*!@=U8|6hj-=yde>y7_j!n_}o5gU1Cb(TN*5YT=nx#1Z%X2j2bHRv`(A~=+CfEKd z)!+^XuEld7hgZ8hnPc0&(o7;2u-DKa6uW?VqO$Ljk502!SE|;Nw~^==9vgaKFt=F{ zcw;wRjI4r+XD-7NWi6FmFoC8$ohRm|xVLsOw6kN*3}bmLZ;K8Jl8~FWb}4!jcH@3DkhTQCRLa?P{6jdRN9&Gz zFYNDbV*)JhhV zF_TwboMWf_TwXd^4kkb`h9~DhNC)^zydPw``mcymj2{`EpAG`#5%1Pw}1D| z4^dDo2TQt>q43ub;+n*o46gqc-lbLj@7$_)wUdMeAfqOFBc zW>O?G0ib;iylE_{asMH==Wk^O!nU6m>D7k z^EuOA+d{DwEExD1eY3|t={akMxl-;4sJzP+*OrsY0Ceni^-l2o_O8AVi0&z5(GH!uxr3=!K(aF=+x(xnhSxSROeQ??T^9)=d>#}xQE|X3O?~SB{ z*|m9-%_hcFdJTe~qu2#%lVav5jMcT@@sNsx94ge`@-udQ+8fZ!t4bWd;a)BC!hBg_ zsE|5VFJ9WtN3qaRz21B>$2v zh&=H=*|`#c-``$L6 zDt41K)|<^)!EwQTCm-ID=Pe|sQ?RIn&aQMX#?9_B!*hj%oqP(ovGX{q*qx?M%-Zl= zxib=W8ea;x{{opm)ov#@z1pTr$at^*VxK35@VT7ph3i}@N4qBJS5x1}mTMPfOnGBr zbAM_tXWQw2Cy5n0b$Zg~BD}+KFi6?4jXPR~VCY@M45Slb+i}c&F~MTV6>4(x`OWmn z66stnR}=7A(Ig$g`3;_ih+09^y~WhWh_ub=9_g^Fhm-Xew_p_?9WW117hdt<9g*qJ z+ulGVH^kEPVepLVs0-6vT@|f#MeA(Jf+pBwvo|2x7Z91hgz8hS^*n7`Xh2wpx`le$ zXqD)R+KU)*f?}u6q1edoV2U>#T|@xNi>*H>c`CXYY zAoa`vf4(IYdG4$pA;}*bYbd!zu!t89dzEoRRQvBSm{(Y4ETev$7S~=lIp^MM5l7`suXIr`9 zMy`kl^eALzBy7zIteYtWuvG0F3Yj_6k|H;8`Ceue&GA%=&}PJWpQ&_Q+%H1PihDV? zZzle!l+M490#7qJjAGa&y|g9C!3Unx(VWPl`^gge+V(Ci;Pt}g@_(}gPnR5~*O#{! zEY9{`t%+dBqP3; zk8^fA_1rvL&h17AC1HYHl3+@Y;&b0ye?0Jx3O(cs*K{{JsCa0N!<(px(A$l(3?(R0 zX|})=;oWIwu!5_=9f4*Pl5!U@vj?CZnv`t&P=Q{SQmDRjPZ6Qfv4dKdwa+{Yc z((772N%b#J&(D>5-3G{O4lun<2FX@YOhA}|r+qUdgIqH-RER1fipa3%m4k&J!kE0ppba1tuOM14&`RSe3Awh)Fz-9jDibX{t)#<8CjYU9iCY%Kg#4b;cFRli%G+vQ z5g|GJT5!P~9tt2r+eWYkGNSeR7L$1YgFilfJH4ih7K!(GmNbWP3DNvV$Vhbea0!BC z#RkcfkY%|#xbLkz+2R{n`B~ZG0CTe3>WXgvvdUVE&Dl!*xEZ2sDKTV3n4fNo^}Qv3 zcaE2JMt%5LRP(}HE;q){`CC>gcekI2doepTLp~+@n&ihfoNaRZB%mC5I2)^iHqqt-;&!KQWPn9DVqg{Oz^%Ba0PD$tPh|@dzrSq(4D-E{T5**WpywLE^cF2d;S=+7c}}^u;td~2zZjW zt8lbjuY5oS0|C0yJ3p^iL8Rgm?zzVZVnb(D<~pr(=9co*sG7CC9O|M zV8hR;)K}2gF7c3f`)FJ#oneOq_BA?Lu8`gNTR3;MZjjKIXI#Xhel$Y8q@VkydRcN~ zZVhK&9z4vO5J}cRyiEBykeg=*v3GKcze1n1HCJ=DmI%7B_I2y}2ECLTPHUi5{?t0K zV04=i+nzY7;foKAp3ei_VIl{17q==ZM0Wr5j<4LQ3XUz_aM@X0YcPIrG z^OA)KZhsGQke)lfDv+(h_dqf~$|nVm>LOpL%ZL1@speqDDr!?(@)~L={IhwrBXvFS z>s2jv6z{LXsc&Mla|SJ-nPqIL?!4n$on5?lbZZXvS!dNQB&SN0T@=h)fgt4HJd z4;wA8dune$b;E8HOtuZVdCkwj!nr?u&Z&(D1j%VV_kJWo|7Dr;6FI&8b4E}zti-^Uw2UHf>{9Ka0?+$gPN{jWyJ0>^{b%u>o}AgL_cTwb-VXe4 z4K?EMtuL+c<`~RmMV9))px_ZpTC}4WNC{7A<1`jqR=dDv@A*SXK;S8e1ICD6kK+Kb z!SLB2bRIfOmjxI4eojPK%asu9a-gSashVyUy7!S9_sayqUy~42I$H4Hzhjyd|86SB zvwXIRo!+|l#9ZjRKpyBL(uMeDLbZ@vJ4$ngV6j15jY~|=9Q5@%QR+8GQE)@?*nTq4 zyh-re-t>#{5h1YrmIvAAj1%!>@N#n)tseOsX5-Gw(Rj@i7^z%GHjrnW#VHgZP0Do4-D5_!#8EM!4Uo8AT!PW_>5({-eTh2!MA0&{puV) zVqXS5y%*FR$6IT$cR*{X3faOlEsu4t^cZ7<&VzkTfbaB_U>q}|;gVx7>WjLmHrRhk zz)1dYff`R))MY%SGJxaMETwj4W4GF+m*o206`_vH_v8`qmt%Fz1`UI0pY0G#9^!!= zYm}=Pc*m7Kb@vR%N+@d^Zky<$ikbN#9-(zZ^Z%IC@&sBF+?%&}PTR`_cS29%_NV*( z3rx+?XubB#WXmuLXqG|834Z?1-n_HvZh#pn6KsdP5?p+7?f$oUxr4iCO7~a5z}vW% z;kTg~={{JsuW6l0EXC3z*jp+W!)m2=x3g|WMVfy?Fi9Jumy*3n04{l$fW7Rwg?ZDn2^Ree^G)WlNINK| zI7G>d=)*`BPDEi=e*TDC*As`wQQRYMu7snu_)U5amX1C3cH@OB)l-a&j#9TAkG$$= zSwO=ebXj!OQD1TS&tKj~-RnPj#D`Hy2SmUKDr$|al-f_(wzfFowS$e;y=OlkF8Der z0icJEi=+Q_rROC6kHgC08C_g8*p-9+5e|U1h=mE(oc+65O-$G}ShJQG&m85dND{%$#KaB=xrIoP58!&n0k{(VU-}L)!Y%SV>c={n#=DKOj+5$q1xG z=$A-Srqbs;eCY{In3>P2FpWsE%Jzm7#OHV=`NQl!h=z=K3S9Y2ZOYf6-p@@6Y>aML z)J&+wMJy=$F|so-09eP%8$H=j*3=+lfo95Q?`5Mkk0OpMmGO1}x1(2IBny37(b|@W z&%zPPzB62Cdr{Rz_uba@FzP@Me2a*L)%BuGZEE+}(cz}v{}YOs3(_JFrkRmwM2fj5 z;@Rjex&XBKEj_$Qlr|jAA6h>GENIbG*kaYVN+`Oilq&PPk|}Sl8B{Zd2WRJNhMR(W ze?-`Pgrzi@VrqB27)8^wBB~rcd3;rUm2mhfF1YZR>Fvg$CJx87E(@`*3n_uk5}rMG z=VPM$g;a5{7ZJ=1yd(@b6W6hc?P3LqTTLL~>ArJ|Q$_1AOZ4;U^;*nwL=o?X^7r0= zm|xCW&p1nMzx;E}6$+=KAvN@N$^Jy)6r4>q{lKl1v2cuIE+PE#bCx*l7ptk>>lr6u zGNjj!7F2#$0aUqtwHO~V7ZtA=F=MO6X}&Dwk= z8h@p?R+Sg+{z`&<@BGKOQw5`3V$8uZw*IqyX8rFc{maH#eY?{|X27Yehg7LJbhM6I(0ghWZ6=!{~UZ&^88m4(6I@6Wdk z8xOTJWD5R3_qeT`EH(i}Qd44)ycx}ZCIdWZ^COysFkd0uui<2ngh%O#45;V9(YR^- zud0`#zeCl?XwWkps9DVx>pGfysVi0Q^C&^3)#(`0+}8{l;raVYptpzlo^vckxNn$$ z!Wx-I@E%3}WqSI)e7RLj%GZR`jzO_10&6E4OWWBDz^9B!om1%oHxJie`B3?YETgeo zS&bw$r`0E;V`T7!7WKVj-E{htKc82Uw82QJ#Ouq6@hhzkgJ}HeUkHm(5=S5SOPSgs z&x96w8x7T9S%2Cx^=__LMK`UU-Qbty!S| z+399KOyW7J&RBiZQSN zE8GwSMam=mWB!;sZ|r8l{@z@#?ELS4P4B1c)VWg~E7+dwXEOek#0@6D&c$*Xmf3L8K zwS(7%)p%a*5_Whe1A!+HkmB&FhN$9H9zHyBdG0_;PoIFF7j20Yl@(`Cp{x40v1j`Z%z-n_Z17k{_2FajCKn19@r?@kbT@y zva2(TCOJx$x}c(&tubCjCFcwM>I44fMK~VNrhR%&*F0j^67N_7^AY^}ib#slpJ-P5 zTIC^8B?g71kyK`(lo;beAkru(U^;{wsEjqzCfane@fDJ(5Y)>x7PIvlOP&_O8ed!| ze5BT$Gr|1nvLCb4&;6oxz58ZjvmwNF5ZM|BZv+nL_rHmGYJ7pkWds-zvNVzf_N)jY zH9uA;)tLmQ?j2DJCr%>i5}sD`qf@VNxP0Gl%FnrvyM0%WXA&NN70uq_HajMLR#0<@ zp;j|zjIR$!>pM{|==;H;@8v)8p^8Pb5?p|DxR`#3V-t#rde;8EY5$U8r@duv-4w~K zFN79GkA(<>%kah}3uDjugHX8sK0D7ydY%Lgf@6yUZy|4>twvB&d{K0$hJ}4#vf8WI zjZ4;7tL2ksiAQyb{ZR$Z6u9TWxT1p3dz)nQWMqg#Um{)lnj=j-yI@^s1$*;JmEr}! z#lxf!{?=2SqM_5HS=G#Y8xBj>ciuC#8L-Bt)DE9EA1|eWCJzdccte~`P@slI=2;D7!1d93kLIA9)FAnUp1|@&icG%L56^#8)xDCo*}07 zf7d(xA2QR4x*t(|SA=PD2Gdx0uX+_Lg5fldBpJlI;gn=~Q+@I!X9}*jSmjeVlLw?12HuZ%z^3Y4Px95q)EQp{)=?&xq4khN;ou zR;!Rgv81f=d~q!SE;yS2v=;km3s6b{|Bi}*aw-$~|gCuGb$ z{}2WaOXuSYd^~wB3;bovA@Gx>G$YWJ7UUQNFtzBRA3l#5V;haoSwj6q2J5qRtAXB6 zZV+WXoR0#qtX}z1Ld^mK=JKBkh>3WTx*pV;@?Ii|9_ruj6540;@g2<%^z0>YRGSb_ z7NVHmazKf$J zk~UyVyI^d)zljIwsSbrv=p|9P0*jPTH&K}zMe}2U^E8rpxgGqC*%G^F{MB{CEstN6 zn*u~Z*uCKAQ5GM`ILciyY;&6~1Wo?p+s-fej4tjTPQElt5p0McTU?_3nipWf%0sC8 z>(!{Z26y;Sr;3<%Ij!DIti@%P`xqh3s~^>2k#+o~sdP@oa9jlcZXXZwj|v;m+9q~4 zitSY%f0p!990hYT3qSirqN`ww2FFj;gE?3-QADRJZ9;>DmKa@V>X+xwMX6=n zDKUxi1EfWp#fu@jiDy9MJVAn`!@hh0Tyc{vvP+%lpdPv_oplOf+P|eSr z{yPEMuiLtd0I<%lwQWGr*=RE5U0Uulo^U{fSCznR{4YFtl8-WkuQ;-F-;P%|D3NGE z2+hI=RO&6`^i0Sfd`O@h-~U`?SEXX{|MAJUWvl-vUR@rz#iiRE#g+nRYku6jhwBL* zR4yogT*>;1Ci(>NuTo$wqObxk7z`#R)8WkbGA@v&Pz`zp|RjxO*iOA%M%>@19DX)Q7NQPJE5W{!&0tFnGOm4 z;d8?9Y~BrGUi0}Z0ZazoR6cw`fohKl0x4djr+e+Yv>jQw7iud1L4GoKYS3}^zUcUz zKmpK96zQQ|omPE0AWt6*lu)Toim#8$&kGbGpVI*HLlk%wAHnk>SomrNh$qL7lRzhr zhmqc*Kq3g(G*ia*-2PD<^ZDB)h;Zt(hUu!Y{7&9al34J|ps9;ZD#8Prp$3lI7_z%Irld zhxokY#&P&=P|%euOubN2{E|ERYcTktf3vJNR#0SQm?$E)>ZSQIUX(qJIstDk86In5 z>`D{WSI>EJOSM@EDryb!kQ+y?{*tN^)P#^gcJ25d^8|$xCd;Os4sfIZ%Jo9U_RTj%Dv{4Y}3jZDCyb15Ck*+MZGDMTOg%KM!xmqSGpbPy!0%)oS30=X)g`?>dDG zVNuI$>*%-0k=I?ncIS0C>xL5K-d8Kkx^QVvZdGg6D{f_y?3fzgKiKUcXBi)FHkq`A zm&t;ckbBv%!tw(c(3sL!iN4)8`!wFJs1D-!YOW@Nw+;vLB07;Aiv0Dq&Xexs%F?On~;@ZVU zo`|D1VX!F_4q}6z7J43E_9<3L!`$h44EnTuP2Wi{_F`0D(8xAa4vs3$XOLR#k&FKCgG43$&O?-@`i>{&w& z(|QjS9eYnJUIFO54+kWS0;ppdSfHO9jzvN-Y{W*SbBE6 z%-~f}`1>1dHi}&MCD=67N5~Q}W5mX;+Dq>UjAaJXX@kRNP)wb z3fv;Lo!+nu39u+JWfdSmXW~G=UC<6^4e_K(WZ7!*YOQmjy8|J*jhqB_y+Fm6eY~g! z-Xkh^J{R)@DwX&K_7rTCL~6UxBMg)-57$ro-87Gmu?|}?9-!OF8I{}7*RVL2H6bSW z;KD9l8Po_WZQ_U&RMH_mr}e)L`;Jimi`xgic-o6DV1AEkF~(JR@9te;YA0@jcqKSR zvzYv+s+{Df(_Od(UdnAPJOHz&Z0UnJ;n*G%(BFRW{li(En?(~%zVf!^i-niBV!jb4 zZ{YBWbUo0nII5c&!BY>9W$(=bPVvyG%q{v}LYlekwiBa)rm7S3Q9G6J~-y@>6^Ak8)&(z^A+VUOxfJqwt)>M}JGvZ9&$PJH?fvV07_rX&Jd*$7Ip5o2I@|*LyC0sHOFO|J7L#IRh@%8JgkK=@i{KVSF$5 zG5NHlzMsYs$(&7f>-~SNJ77=5#i{hL9e$;kYn9s91pc+sp(y(EidCxVMMHdQd)^Q-$~3uH*iEmyV66qCYz-YtPr(7LR?+bB;*cRQu^=3 zz%go){foE=&PB|>Ugym^VoH1zp~uTRxqL8*EkjM>4*@=d!w(N1a9M}xrsNUX47kup zPjlcf!T*#1QkY@`fP{UWek%;d%3JWU(5q26jFkU*UUnb#I=sx(<{O zCo`NqGneSHwyb&~{2uXs(6|rhm7uMLP~i(*hZW9cKeKN{8y|nhcytYP-EXrS9>FVA z`o8}C03qzX`JO~-PDsU|W2V$nuQYeE0*hUXzH&CaHPsokR4Y*u^uu0g; zjI8JTs}G9l=BIH-hv?VZY(R+gpY`ipw{SSe z65h7ZU1D#R_HyGb-Y?jjIcF1f0Ua3RUL~Sj{L7n`sscEsL#yz<;MEk~-q=EQHqJgi zrS=bk+TSw2>s1u048CQNUnJjcFs*gmfpHVAhhVL;A z{y8IlseUkeN&qIr=L~gDcb%x1QwRZ%%QFUt|P|MFU0u!yWNv> zL;XKGA46&$ACIlVO3y}?bS;iaK#QVS(wvyevaHAJOEts+g^R;wt{O2)I!yOwJtfIc ziKuy4IfY{I?m||mgqzp0R9wGT_p9?=7=j4)3OZ_J7aRIhiOC05F}nRsAT(z7!+1CD zud)=y)kPZBu;4i7W^e*2km9BK3hB|`)eP1522WUxa44q&&gC#GSWXhYHWp^uw2vHJ z#r|qc-C4*!GpxXHK^b9S#b;B!FLJ1C3rY6+IgHjZszh2ru4AUDvVQ%kzE1|19C1ua;&KT<(?6hkB$V5>hGwJKIW}gk0r( z2ALp2hqmGP^7% z8+Xzemz>}Jb_Xr-qh8p6&4_33#EudOAH*H*1l3&~UgIKyQT5)$ zo&5wH*5$^$F3YPS9)%LU&(U@AB0)QJ1ZJ$R^@lJz@=2_pG`NW)=V+aqHH@) zIz{q`j*^Nwt)x#sW+>2miFlCWQ^k!(%F>}*+&=b%)_9h$6egyirRq1@ z3(d~npPQ_Y)#BE4_&z=#?Y-4<>-FB7-1Gh0%;DrBZe=qL{ZSdzeitk$rV;ceIkbar zAEgr9;?hG7OP2m+Y(0k#RYpRG@nj;icx@_M@vRRzboz-@xNYd}N?^Ba5!EwPqu*39s+9D~;nbi-ypB&zg z!^WC>>-5>Zb$6-@Vs27Fjy8>AOr#pPn3zZ5AyC@PXGRuIT6jcJMRXinms~9;=v>(J z&_|<~d93~}C#Qil!qKi8{#N*OMkABr+-l20+%3*nXn9n@>q~^sIZq~)eWlt9^JQiT zlm4IGNE(=2l46~K#f1N80X0X$yR30hU5v`{HTPTQ+P;_I!0N6(R&w(7_^AU1RBs}; zznUL*YG^f0u*HbIC(NR}3Yn>*>s^<`QT_2VX0p>KCCkeawRtkSeiKN3&=8Z`Sn zg0T7Hn}#!jcKUbAx{FW_sm!IU3{gTZ=k<+nhk6GqF2B9p@%*m27EO-gXyTqQai;Ls z?g`25qSO`r&uo}b4H+Dq)Ek_YyCqaE143Q19mbERt&OULe!H++OeHz99{wHs4Tr3S zF=xYE8YqCQboCUg?tuBy03cIg&*AVTWGrx%9M!J99S`$8A3fj&k|G=Ffp@siU4r0i zXCg7-Mi=;AAxh8$!vixM#o$zmq~`amziZ}dqPJs+!7KQ;cvI-aKjf>ZjBA=VVnRyF z0)$ayZ(0QgLg2)fH@OHP9aNM!u3B#Qn=^R-*G8|gGtj`Jb$qMb8VTN6Y~$zFB#!zz ztW*KQ6qC0nV|jsHUr0n6pX#C=E>22OzFGKM=TeTnZ1mC@&(UJ-wD&JhWL4X6JUHAl z?^8}NrH*+&(#tvdeSAYMbDSz?hk>r<@J75(lyQ**lhU1%!&z z7~2+kyNlzH`({QfL&gIG{27p$Lk3&TvzuvO#M>{634)dDZjPZ_E{K#;Fo&&b{(jeZ zjD8qi_z4<}yFV+{5Y3K)@+qnU;$G%g_T{9rtJBx}^M;x}wAF%e5d-S)&xeu*C_FIO zz<4im85jDYAdjUAelmhw#e#k?J+e4{7`UPgJqB|wir`1_Q)D!1x0h)oDt1Z!*I8d8fq<7(;zal~XH)ji4PV2ai<}WqV$I{eCaF%)fNH&|O^Zumq4+ z-%_r)YLwkUm~zKOW~y#s%pT(Tj&c1ASCOO=&dQ5Tn5W7i(h5+u{cntLBb* z>f1ObOcd8xsOpD%CKH9*6h|ujeF0khT#2t}U|&+MVX>~G%8h=%F3h!-Kpc#wqrc6B0PFSpE#O1R>0MU3q~UB#|l_jq!#52F%{TXL?} zJ;vWpe!6Dtl|w9Wh6;U1mEgD`z-LR;reQ~m1JZG_2Z}W*Q&iC}Fvorj(o`AAMz z)vVW%{|rm=AC}~v!DMsd!Mr%AO{_T_>yr-G5Wh`KT75-$?qyIzXL5*=8!t_za-N?F z3LR1JwOXiC*~}*u_%t&G_Wa|w?BR9Mbaw^4y&8Omk#qPg34e~e6_UicLjP8zIZ;B}LT>BIy^ZMA?qv4~T^e!sFZdWb zr6i>yt56{|$x;Y<8t7FV{4Zc?!-9Gp-tDf9mCBsJB#a>m4sbifg|$P1D1a{QfW@{0 z-iTvzghlo-Mzrt$qgms(*oOQ_i*o z#lRPjD&izYyOY}tRTR{-QG|0*Sr z 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 g*bKMDCJr!4axSWB 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

jVM#Y);-Z{8Upg2t{Epdt4O%2Z$2S6eQ>Ua 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 literal 0 HcmV?d00001 diff --git a/build/web/icons/icon-omnygrid.png b/build/web/icons/icon-omnygrid.png new file mode 100644 index 0000000000000000000000000000000000000000..afd611820857bf39aabf536c2a807352d11f4f9f GIT binary patch literal 37100 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

0Zam@-P*jjdZV9FL6ZT`zmrrWJdw6VOs?ca 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 literal 0 HcmV?d00001 diff --git a/build/web/icons/logo-omnygrid.png b/build/web/icons/logo-omnygrid.png new file mode 100644 index 0000000000000000000000000000000000000000..36058cd3d89de2fce3acc7f3845927d1f953052f GIT binary patch literal 28487 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

9j zq(87!K1c%n`Rutuo@+D3fu`|aA`1PJ!qY|M!E{qV#5>eEC0u4KWo6dIwW5LnvARzS zSbFI8(`ABKw)52TJ_XHu>px%!oD3Q<0N{DBXG-YsrY~bTT*nI9u`-w%!$Wu|kT@5K z>n^_vP*Y5Ma^qa_-rHi2VF+zK3e9**cg7{CIt|k&la1v4vYZtt`Ik5^ zk3w01%I}FXiR*{SY1>J&QR?$x*b7J0wld8)=c))>+wl^|8gtGaB?u7CDYj%lfm2cN zy;KI14bFq1W26eSzx!r?lgEPRzUZc-;y@q~;f{9ju}Ki?CNB*#I`$|<;Mhp52-$9%T_x-!;bhnGUuk?ZVgJNP?*9&gQQUYgx zQcAi+#UbA=(PeepFIuHzoyTJ2zo&lvMq(Mn&7+yS_G^U8ZnM>QdjI zuIZkkQ}3HSvFb8l--a+ELh6`)x=`M|GO{U(9%U70`nP4BKuXNYqrjsIwZE%7oo_sQ zqPt&N(u5PcU_%2+`x4V3@KtxP@&jAr`1M1tTCZBjwAT<$BX%v1r=A)*-i1&L(}FEK zH91XdZUrG7T#@H@UwT)e-W{2_Z{z>4CaH_M;}`^Pje(@x(4Z9+5#qP>w>ExW{X_3t zb4QbFdP6LHdh^0{DdK-mZO?h~G#&IY<3C>bSbLfE{u#ka>&ImUcWOQp>sickAITfn zKemB94{OxRLv5?k4LfA_bZfpuLBqemXv4-4p-+^$2SDseuzD54U*gP9s*H3YS{sqZNQK^3uF`MZ- z?(j|2mhIw(?VhBkW0qJfc?^-_ESpx$p$(NTe+EkmNw^whKh&3+!pz&3e=} z;l2}$Ujuz{ms)5VuiuWZgLqwSm57qM6L=%;MLQ#xOVhs~@!p8X24$F#(ke|&2gsXb zrdW;b1?wGLV>%QRJ|hc}7l-m4mcdWRLfh*?S+Mj$%g#Wcw!UbdHa~rpM-|84Lwo!;I zwA1i)iN~UP`KC(YiP|zx=cyb?CoM{cI>xdK0C@uYU<=dKRNmR+E zURqrIlI98*zHU6_o)1b%-2L7`(Up06y{o0sJBOCv!^8hwAaSzlmH-H2|I=&%z0*C> zxjawb8_7ml)X+m0PGE)f)1v@Wk_+<#UP=ZkhC*i&bHv{W)m#*`;3kAn0wXjJx4{T-a||P&T`g&M=po zkx$;3og=#0&KruNQ+I8pay>D~*T!|1v*p(>d31$SPHQ~}#zfyu%bP{RV@X;5DsS~z z&dNCc`a83Wak+@SW3S6le<<(aoi(_QckzX?WJKUw=fY&n-)Fv-uCY$FCB`dE(K+qA zelA;|zWy4H`qLe_@wJW^$%F#mWsS#`BQXUKacTS3HX#zB4XPIehb@tIS^|w7Acf<4b~o z&Efl)gcCG|zcb^`&xtbqv0$o6VrhcAIpu1-SGq1|Gv5oDVl1HM@_dJx3sj%biffSoDwO2cU3`^p#aUR@i&|6#}Hi> zNe;BGtA(HD-SLU-ynh9A%Ys`qeNVO~-ntX;Byz1-QL;GvcLT||mv!6D4j10fAl#OX z72<)$5kSHOz0myNy+{-UQO3XC!K(V@D}IbS+MXV~>$M-M36Me?LQ)@wD2*twh-MGz zequG9s3cRhHMic?hi9vUtkB~kLf@?usycZAHT5N{RN@t=rAT;=ST@76m*1P+HwY8t zm@py(#iSzEF(Pp}8fMN@etB{(j*)-J^mW;i$N1opMNT>rz|P8nKdyV^3i*dHKkmy?Ti<0rcW46J!i2#(h&KRD9mNrGVN zLxSztFlCRGUt7+fN4F0bmU}}&I8BoXF^F?9Riy+uUPGHI)=-e^q(lwX24|LmJQP7Q zS({E$mUeSgYJ4=gis5V&-FEb86{E33Fy0jmV-rhr0W31MZmnRNH(4|V-bL2>+%#+K zNz0_`nG>n%6ra9XkL$F(E&yuq%Xbe_}Rd< z>JTi*gc-A>q@P3ZRj{oL+CnUGZTexnqZ`)3_%RRnBK@z(xqZdWs7!));^4k(#vbI0 zelm)l4)kH>rI%JRcYg7_NhG7HkZkYX{U*V#u^S8}RT-e_s{u$zxc5DRswS9UiulLj zi=Mp?DUTryG5xaE$<>usZS(mAU0EMdiKEZhM?_Q@($v4Dkp-2`<5dTo{fc2A(C1Nn zQz(rZL9l*^X88U11)$$-PmW)0C?2h|(D_5B&+`e&{4Oz5BVtsK*G$R9R;F-aj7p2| z$i0Q>-K-*y_uD>Bf;7Y7aa!krFGkes%&7jVzT9%=kvwTR5<5QSL76NQsNZGO5;~=^ zVBJsXq+i$_u*|R|w3(@o%A*w?V;4W!IZ>oC!idRkib?F%Bnd?&V%+(mzq{x2O6tN}$>R_DVjsx_!Gv_kh{iY0@};cp`@6MeiG#Zw34UeQ-$bMZy@RI2Y?dpZ5vt!!#HoYe}fWTqr4M3=7{tHrMi^^md+o|T=xZxvw zBFJbuJj4GC8$_BgF0yuD()GoRAb~dN4>baYH&&lGb6wHU4H~yIHA4|)UKc@}A^ANp zMvEr_1V7n}`znti3>sbPSbAkS*j=)}1SyebuOOK5cC(1LB644 zF8{cK?|~@dp;{G`b-M{~_8M~x&-TwK@%crfhX@_R?B;7w4|%L%*jX1*^Oe1vRTY=h zEBd!9O6#`C+tXmd074t*0!PTuX8ICe06UhdBWsPl*8#h#-f#UPuQ(|=>d<;ZeofYh z*Hox?`QB7#Yb@s~nCgkYzsqA_au z3YWAC?}~2|MO%Fb%R9WX{63e0vcwKYs$eB$VJfWJI@GvK!IoGV)DQ$|E7w{jq>)uc zRoyXFI*CFe^j&lqDnH+I0-~GW(u5-ZgsnNy_^MM#JeC2aYL;s3!u+iQN57)%KRy`( zVVl1BYc5n;qJC1$+^Ey(5Ct_h>~Dd6TMy z{u}a+5WZ*YP-yqot`at8PvB{&v+XYR0Ef1pV0xZ0Nydvl6+P(``?ds z3!k|b>@RAR;!f`;li!^kgfMe(arU#d6?)n-_EwxlnZ&;i@6hQCrv^hr+E2=pZ2eO+ zi1dE!sMSACAzGF&!I=GmS3%<=-X}=JH|Ur>LHfC~A}MT+mdy`NOl?Ul+&*!&(ICvw zDd)%kas`u!I7~>GbW;s4JnXYSKO5bF`Rap(pIeRa(m&rYRXFFE>oq+IuUxwS zp&(Q3tL2TrZwNV_pUqD>NIuM8&^8q{6&2x1{QeHo(=<#>7IYS7XLTf>qAXGrBTG*P z^HY1RQFWYE<#tB8)2KhB&cl@o44CxV2x3xDL0{80L9j25FF^kr-K5Cs=I(vJMXg;w zQlz(;+T?95eXtny+lh72TXVgk1{-9^qd&NctNEg4tD+m_?0dsr#P+%W&Hc;=XJUBs z?Zlpj!I|9@Jy<;L-1FFJGI5^S4#agY-Xpbo2EnO*<9YvV31T?%Rl(5Fb!~KZmDB5!a+snBeg1Ybaj)($ zBrPK1#}7OW^+8hc491JLPv+~kXp0I|>82Pw{**7HqF3MzRu|JvSH#me{p5u%SU2{B zVjz&v(-90=IV;Ms_!0U#Hmu-f_$Z_(Ygp4!E6MT~(zhVq@~|BDEn1WbnOJmK61Zl|Q|GJ|jLq_$7V+xM8rKWVxDtced`|cUxi&fDo#d-@Ca)d47Kx;9+EEWOu$- zRf+qdu9pNUer7YWHD-{OijKfGaM|736d896!$qCD@?+)uvfZj)tlz%oYkzlOAdKF^ z=Wyy0`WVVSrT;31g-Ic1HUeGAmDw*u1w+0(?pHrMz#3K13#hYO(Yh7*?#WhydnTu{ zV;&a7fJLX+v3L!R9XQow3IYALzmSqZI zXqLl2vVUjhi$aZhKKvpm$NP77cNK1fsjA6(p1ulX00oAvdU>hEui3qJoX2f*9$IF( zq9^hES>lU!^g1iRa45WwUH2<80r#a+M3dk`;H=dn<~B#|0Tq$2De~pruUuRmw4tB8 z4g}b&`spdROY~B|2KCPbxg_)=l!YYD$I|S!?Oi0!_S4Mwn=7i0dA;w)$0UoIXPm2d z_i_=yW&a6w6ehx>K=9XyI}qgUCKh08&ffl z4kXq82h|gyRz9YwX_SFMiYPwWf*9>ouYa{QkEgV?kraNf62*ltP8k=NeucmwC{%1W zrkC}q&zHRPH(%0xB`{FviE_#2Kn;=?*ZsqT_@EP#VD)5c%Ftw#nG^a;0S`xYknj0? zLfd2!5kdBa81+GY)@dqC8%gz8wKjaNl2IwaaIhV_|MEH}RnUTGWB9FSFAXoOzw50V zgLaB>$M~{4aEAE;PCo%U~L zJC)<+wdgTu>1$7<6?HXRt$%IR3|hqqB$S#NQX#bo6Cz%`;GR|A5w2iGqxFfA8!7oB zZh|zP>UhhYpEDbL`5cCJmDlR00CAOYv7`jb!cB)?6gqo4g?DDps;j*Yv32XG_vRaC zI_Od+cO`3%(XkkQLHY1auV)jy?oFOQ-AfH?>`c}|e2}d3yxyCu*DdQ@yDob_jJ4RV z*TOG55{2{V)D*ai*Z^q;LN1;8r{>TeFa5^_Zwxd&*_wt zH-GbBrjC2Oy}H9LOJ$Hpg+-%&hNjagDuJq9qBI%kC&HkeNX4y{{1;<|uB7FoBk)xaGNu+tmM^1@Sl^qFtM*1kSY zpKd<)yEi@!@Yqf|*ne-ZFir|LC3b`+5$TCb`BZ;pN9^xU)jTBu3)4;RE(8U1-&v8J zWCcL26AO!x^@+tJ8!-w%l*|)UPEc9C6$^dVS!gR;x-P`@;_ynWU*mVCCQQ>|#m_2& zF3Dz~-NFotuPN;@C=6LdFo?z=Y79m1+%cMCc5L4Dwdx!fw`KX!l!S^##y0R%QYBNy5Y)xUkL?E&w33NY`K&o+f<2EDAPG)4OD`Yr-~Sma zFfuy#O}TG7vVtPS^=z>Okz_iUUyeo`P0lOXJ_kYhWkf%G~i_TUiY|!*>VE9~V7haRwaQ z{^KnZnwzU@ByduKeMPpJe=*t%s(_xIMnWX}i*?RFo5kU;U5YgBaRHmvBM0*Q`mAUa}k!a4wqAC)nbuAGG zJM!Nv7u|X1GX=qTr{Hh2Y(cwco+7RflR|dyF^G2+JHH+@X}pT8S{xtb1X6eeVnz1# z^>yKK(CS%(ezV@J^zY~haRCmvx&XK%%mz}0W;#e1`0Ty&Jd_SSHmu86Hs8N;hsG_6 z6WQ`bmTy~=sPaga)ikNKN)I4FiN~9*@5Dg%fIgJj zqm7?3fREI}Bn1V*_7fnPT#bK2H|P{OaxJK+x+${o%W*B!g|ig{S$fKa3h?2aC^@*v z98IF>lqgC|DNu$?3mLNG%FIWmaqFJucpzVq%~W2xn)ADQm*P{4ARwhdD-j{J&S8=zFolaoxgR-n5e+75w)t$n%VOMK?s+GBCM*8F zqMxU~2z^q6|6?<-hkrG39kBdnZ|>xS$~S4U4h87Fry|hD1y!a_7T< z6c0Kbf)`+HPKG|d{hJlQC=!Dh(;H_AI~ zj8f~DiO`Fw@l$p6j%D(yn_Nurk`7>_A<(x`Oqr#aS=oqMhZ4ij80buArJ+zI{=e;3 zR$}0N2;W*l+^fXcMv@UeMMP8_E+O@Lg(j|CaK;~QRDy7(9%2ox7m3d#tsgOK(=v~| z!0I=#V)jzemHq7BD|i_`7|WkXq@6=Gf~xwlOqY=f5SV8;vke{68`n8)UdbAY-iz|C z1#Q*~U?Bqd{WEjHGswN5PJW1B3#$XFqim%sb$DSnYk1MSp9-GTNl|88-q@8u)j+NxlG#m~9; z8Sx4{pR$HZtD>}{jMgh~tE2egG2@miBUCeSAT)LVp97Hm2^ zH0s=Q`aIuI8%j&^*UParPo^b5ods?%lTAnv3!N4&vIKg+b1qhHaZHa@7#+qkNs-;} z#)qE75JKHfdQeicw}~zMepq)z&58@)FCv1(8viM}J=&3bguR)MwLG0f08&Haoc#$< z?W@o;m^;zLV{naJjnb_!Pm}kDMvJ6J%r3M!hyw*kXbZQa~v!liKNH7MJ@FLJ>Nsz&pQiVpBWU_yLtfdroBX(N1i%8 z{31I9TJq^FarEXsN6y{tqrFASp)BI3-=A2qnY$3A<60oC$i2lb;slaJ37r?^@G9tL z+uJYaKjKC85}IYF;56zEYWTY~?@_vO;ecB#{7L68t9=!30=;51=2h!wlM+&nd~r<1 zTYkO>eQm^h!Zqm^_@1SR*3t6b5f6cF%roY4;iVK!M19Po{i1fS7M)g+W|iZ>`ms=x z`4g;+_@PW~4UTQe$){Q18LTGF5fnV4RcdoYyhs%8J-fkKj-H17aM2VXY%;{nSuuHY?J#T zaNSGcmJp%bfgLh59mTZ|qKX-JbJk%5JyQ&grVXV=gDW^%qstnz>c2TSzyViJIJcWx zK}G-+nTf$TIQSj&CGf-n#relaJ0x(bg8W6jOERz#Zi+b?7@yzowci=gpd_a&uU2>8 zbNd>BVhxMnWk2o+Xwnb+v^WiymEtirBmw`YyR-g_;*0wD-DT-o8p)-*B&1n71f&F{ zT&0ml5JX`BMLMM$1Zh!9BwRWLL_tDer33*1k&t}&{_^|*&yUaiG&4WUnR7pL?tR@m z_q@*^5^%^u0R7GifY0E+^2Lyg0LaF?ez-Q)33$uTA*oU&{2!u1o`x;Qk&xUDvKSC~ z4Q`5F9M_MICX7BZ02l`z1!`dGuLCB$Ndwf~yrpJeg*@i$SoS2(jbDX;v})os?q zkQ816u0s`pT?n#Ins)2W4-t>^>`5@5o~g!F+@FZ`o^%l?7SRinVeLg0A3dpUGmp83 zPWYuMaAW#tsTdRv_I%mC>UQV?QM{Gd;Hc&l(ozudJ=5YS(2ogdGvTYppC~4dEKCs( z_?vfMrEV$GKiTMgBl@>Ng&q_>pj4ng>&uR&g;)tgT)srAG^;#yd;g%4y-oy;e2)~Bcgc2KppE!@VLbCv(daCReJRIwvAPrHqpr{^4rcJP_Q~pv)_rCs2uYu&Tpq# zNi->3Wj|-Hzu=Mc`CFlx2@#hLl{}u$o+Tep8}y|`?yg$>xmjZxBw3nvZ)E>H$v)s+ z{!^&>_V)?75Y>j~46)@>vAx-9aswGuN_Y3->zL@4?Z4@!(MQ|!jn4BP1dwPMn0|}9 zK}o*T-g4O2XX-_neyO32L8=Pua=^t;Gq*VCM25(xzXRwsS;O*`H|INJ*bzaZhp1#H(1Re;(Toop%Anr` z1Yf4oVS>klR2=MzJGTzc$Br$*q&aebtWV+-A6;+TV z_3>)4Xi#fg2Z3igDKB*=6Gk4G3!^A)u;H>Hk9#S#nOETwj)uhNh8Z-;I#$@uMeU~} zT$Zxar-B)iKHM8w6QuJ7>Z+=xPuguZ?_!6CdmVKB`}-P-hJI{xUz74SW2C8UF{%0l zobAa(%nritE>N_+ToMvm{I)lsGnRj22LYx}5DJtyEda`Z=XWAnz>M@gwft6QyV)Aq z8W|ys;S4v#zMz|LT=)=&oeHx1Ci(VPm%#3kPFGSD5m)Q)FFH0sl`}VQ(vJ8x{F*fh zL6L!yT+s~HNBYFK!D@Ad7A#0BwdZNc!0@!6s;6{~*e-~Qmi6d>uPbNbehuJP7JvR` zQ78C8iQ-+w_|k!RwR8#`&SqowsHJ1#k`qfAJp7dvFXnv@=`Cp(ifc+~v3ZF!3kovD z2y%$fmYG6d+VRP4*wJPrB7zcpBQKwOWuXR9CkqXKztE)sF3blr!Ps^B|DB6RddLQl|`k@s!bK%@|_BL#GlZMatjh zb$=Z~N{QZ6gmH^J@E=Q+@%a@-DLP6=X*1OC>&Q&Zox-4Yll2=loU=pZMCag>`_}4j zd;!L5X~q#=y9aCJXN?#9Mt6I^GTCAgFaM-0l%Lw$_`1x-R&&3Up9bg}4PmLLvP?n` zXjQptDy>{+@GLp^mJ@gWVF?xF7v$dgkLB#VZwz2H1)&{E6BplXw_NH*DH|j~+ob^k zlwfPS)5?l06d^i1^M+xmH!{nHWy+$=O5UZ!+qzF8zdrR4f1^2+OU_0oAUZZvGDZ+y z$R9|N)J8`D8K=%xCibTpfx>DyBgbbK0<^G)MvxVLX>WOg^9dIba=^;%f-W&rok?xE z_~#+{K`E1QvnOG2M(wk?#{pBc?!WADwrQKOtmk$Q=t4`c^OIC=XY|)iN#!kLR4RXU zbSGM$lk$TUx6Dh2A-z{}_q zK?+6Y{C{lmJTT*DZ-v)8l0^UUIcI#Kp{pQKEcaEWCV+~a_S;_c*BF7!I|lxNyA2n2 z*np}$WkVV~kk>QIBmsFf^d;8G3MTj4Vm#D%1!-ePb zd&Ucf);H{AUlGSL{+&7aka0^~CykHD+ayBqSJ94jLG{;5K!=&WpmNlGCWNT%$l1f+ zJOu(20vbzo2AYt~<#mv*c6MAfH>Lc!K7Hn5Cl8KYsJW%+D+I7pd5I4L8WvgD7O;xY zAr-;1!-TZcJ4(BvIW#@@?@Nw%lddHl2x!1RM`h>Q7w@@;;3jN}+IHeI1pncg(aY)e zRBHS4j3w;lkOH+$+A?nwIKkn##YloN}PBd9+TIIgVk8UIK>J zo&4}qveb;;LA$s%zJzHP9bM6L*VEQnD0bu(!j@3qAw*m(_o+{ZQQ#^@xL~Eu>jqSr z?=1cF<7_!{WSe1lYF&*D9kXu}I>JCg22A%%LbZ^pSVli5-l-$KBlq9*oA)PWI zuWO~#VNIeIl|Nqoqr9kkoyUsUU1(J5|Eaq>5mXvjtxPSlB4NEBomsSr0Q_ddMD`nW-Z6R$nZXl*#wLP>w$Q>5_EZa{N1A9^0?{e;FWZ}))nILY z40y0A_*I{D3Z{ENT}`|FdBy7&5#-@HQ=xlb81k+6#Fw*VO&od#vqd>1Jv2D8%s7)< z0#@mo&d<~8$J)j-bV?tP>>%MEhSli=BHBAo3N~Sx5J*a%P=jGi;*jO$0<_=`>7e|M zV7&pF+<1kl<^(VT?ga0$lxqJM+jnrq@CjqQIZn`oU*q}^Gw}C3)1k7Blt@!9OZ#!D z7?oH8<&(9ggZ*!JTLQOzxzY_-aHP-6OIihY-PBV^db8Mj^-zc{<61`sJ($VlpUkK* z`#i{?Ae1vgwnz7wtGHyIA$LlKm|f87(9GCZf@R&TWdXP`g6^KNk>2oa=08(cT7sPs))47B$HZ`(# zdz^|@Fa9}RzV-2NHvR6K!1q2P`6-guE3(5!6|U3E_3~5F-z>dfEo;THrJl|Uli-1; zyh@GYWT0lS7$L+KVqz00v%D!WFZc5#u*=DHhS+5{^Ut;g6L;pqP9+(UNQIR0=Xf~% zo`-e38Yx}Lb%OV7K2Nau+ctLMY3a%NxE39<(cW^tZX$0`7sF%pMF%Go;Z9*x-JJ21 zy7v`V*l;i{hrVic;&6qm{I>?p>z(mIqOy)c9fgD#>Y2u%us*|4rqMt!SQd+jE+0Vl zFfuEAWfr0^FU~H^3|}$nS4EVQP|1khle;KbPW|}3>8DEQ-D?0Bo$#@Giwx8`8Jy1g z!@#VzCjw-efmWHena@6ca4^?Y!z$O{IM?(oK>7Umtq4O%!_vL}nLthheH#5Zr0Vr9 zme(#+aw2{6O6O%-nZ@rv>fHnHXy(Mrz3Wj!wbA9lbE$V6 zmX6_)A|c0u*|ejaNU={iaT6-G$$%fljcib)*}YT@xqNbZT5vpOz1Zge0)|-;yTMC$ zwWym(JiQR~z?SCfByhO{{(fF=1k^eH{9`*UFecZI!kW?~u>H`t(9?r~A zZR;^n;0xcutH3JWH5QH?o(sDiUTAsVbi3c@EH~9pS5|4OZ3XG)>iLkkWc-C?>kDpP z4k;PwIy_&Bt_a% z&C~eQMf(W1Q{d_D_u7BRO;T?0#g`XS8yg%y{W?AlUtU(Z*|sc9mbxx7DLNRLgSzxE zH8e9QG@JDSYkEXUFOZNnnAU}}iTIQM;$VP4-QTV^(_!nWKH8AvP#mqndtyZcwJwT} z8^7x(#&K^7PxwVjN?i?K(@+QO$m!F9q#->9v+CMAv_O^GGwE>~MlTwMjcOuuh&p+} z6c)bFaKC<>&s3p!DGw5$$%}l^hU?KR*k;(WYo4s>A~nAzY#XKRbP*8x%yPtGZGUNDysi+rs$|l?LVlahBv)?-H4N8@9j!0-bvn(QaMFpu-O5R?ecOmgE`yqg zX5TDU;Be4vQAkoa_);()T}lVgN1xCBa8aOLBawxdH5WS_eH1#W>~mW%)z_w9NVwh` znAxe{)esu}ca6znoJ`vj_L^A4){6=s2*2dxm$O5L zQ<}rt@U67}RtUFVEeK2|m$)|4Fetrl$#)9lnWv5Ii>+egdwenF5Sy&5m2A#`7Nd-h zI1Ndoe|N>M36oZQMxP<%5hmkdE^J$*qFirC|!-F5evQe7ys>T#FxoO?i3k?TCJz2Eje-Y z{krrC4P>hm9E_7$D~It#^GvoM8Hpnv0m5PVwqk&C{rDs`IkpyGmP@MMx5d0^<0%pd zq^5JzA>4_1NuaQbm(T4T-3w-QpY^^z4UZtgDW>YGUa>i$=2+TQN8>Sth`Z#@%C zfhmRg0tJe~)`O@&wRqxOKylIG{U*51mPqZ7Fbs`nt)_qN9>B+Q{7}Ax%oEVXo50N2 zzx4kQ-Xxcm>0@}rUbI7Gi71%WCi=8sXiSKu;@zcJ7mxsqHxLQp1Or?vlun0#3I2ma-6Rz_(zo zLvLYv$`_NOZ(OeJO23w5A?@d^(3AkO)A>4zEQznm*Z}(bH4269QK(y}L%<~|>RFzI zb78McbhMkIr@SsZDulj;akvCXEhN8d_q+3?^HuM? z?G~D7jjpe3c@W=u|I(+ofr>0X(eacgOAVjs(lYVtErsVtKMY+XmHwQb(TxF+HAMK0MT(k2tA_-rIOwRKL1^6{`8Oldz>axH19>Oe94;Ohxw%W**m7;Ykub<0U zTUfll0-x2U)n{{p!pz|*sf75f*cp>$y(7yett?k}H4dy^S((RiIe{7o2`n~`PJwWs zY%%omLG_T7xSX8d;Z}>EpWm&wt2T92s~VIRJM=8+;~!gyiX7Nf>H>8Si58>`X!nza6>lqeObN$SZ$|yhoq|lQVav4Mz3)*vOdzlEF(Cn}W{<*xYB*lOR7S$wm5%Iq_Q(p1CVRsI4H2wC2 z2>=q($AWU8qb(I7wZfZE2)<^&KK0T`ygWC4-Kc5c zcVIQ^mYhDWGfVkYPDN>Mn36*IkwaQ2K?>B%q#iVnSA-ROCN}+=BeyPX}>(QY^K2 zz&$wTpH0iU>TRgHtOyQGcqqZq0(caKALCM>dAci#<9L(R{@(KbZIiQ8b~n^4r{!vO z7k{jLnfTSS>OwXSTqs<9d$(|ybgYK5>1CMot%_rBXrT}2X#EeH+NC@0l z)5iI}Dt&hozqOy$oT1z-~)&K`R;T7ao~_?nSF6BwITG6j449&CQTVf z|FNmf(96Gk!Oln5)oJ_p$b(ovy_a<(Z|%<30!8g(G*>Bu!UWWuRzPL6~B)}y~mf4Eh))OC-%**oh{U=+B>1Yr(XjO#g0dgjubxn zjouyH&R{CBHc2^}`QZ61W~@2eLl7{pfw=T_$$Le4zKH8;dOV#nt#AwqCjJ(D|NC}m z4l$wPX?r1MubBJ8y51MR4f71uz7llsy{_6io90*q3CUCMiZqWG5rfAdvOhM?%0-v_ZH-QNN%<<{go1ROd$@1O2z+%}c!PGMPe z#)TfycQyWi%evuC7UxNOjrDBdhH{vfY5_9jq5BgKSp`c~J z)c6OF0>;tqaq+r2A1TF*zy{m|N^vx3Vdy;}ng$)o3rwu6Gh8S^0<4u@`w{HA`lB80 zqz>QnKXIRF*07GPsTA0pOQH!OHd}7G9}c(2rRGhn+6GPpxX6M!<`4~ml+d`_*gO z#4u`r5T}k3ehKooCAW~(XAH2f29x+Oow6ANkbC>*jjho(9n{mczI-m4b#ks{-cYMR z!7x<&j{uL%gKSSFzL|S6r4Q_o8V$tj2z>{-xb*G0J()tUFLIE1H~D61W3GnI#B_rx zD%Ru$rHVf4+-Z1WHQ4!6rewg^>9>U5L_`~OUTcom(hXjJ%H^&oD!rM{suBM(*?+4R zC<=lPq$n9Q*dDQf#d&kj%rs;UyI14Z77K8{GTU3%9WNxy5-uTiw2qhTzWzeC13??_ zk3T87pG;r~TUa>-jfO!s2+Y}rz!PHv*cF;{RgcH;M-&MhDagFDG+3a5Eh@R0SpDq5 zlPM4D<`9J|os@oP8dR;M_J)Nu3~I*EzDxJiCZoe5iJ&mvLPPxV>loyK*8s-|tS$)@ z5)TNJRWa@oU9pcsL!X(>Ww64gSf`u3e;gpf&y=0*@>te%lm{aKQ3f82y8<}$MIeyx z{yc(1+}P6qOVNkHfL8>jZz>T`Rw;YB?<`BZIOfkH8w&#)gFizb)bdO1>+-6g_4iAP z9aVve17ZFxeC&WNOy@1&oJG9y1IomkQZR2dpD0CL6wx2CKa~N+nf5&+y5z6$*OA$tE1osaAM4}3@iD+;E9S$Cn`zMAw{jlM$Y1V!GxWPaBlqFofFR!}+Jc1+ykUnbOBhYE$8Fk-{S zf$Ofu#`*heJSIRF5}uNFpuktU0l?EccJjr;pkX-=TorQ-?NVW^Yeur zgKKdwdKH>0hx2-KIR`gJtA}#tf4H;23)y%5DymEQ&uNIR<_qmACbs7~at2C`J$ybw zyPsdL{e5^VM)~x6nqSG~q9@tH?DX{D&X&9T%8iTeuD(9$xUX-S_J67T)V6!N@=u$s zb1ZRMTkFbH&!>Y)N6GrkR=&Y)G6bN&?TX8{mD~)w%9_TwZlFKpZEJG?J(G}DKk zaIzwm%zO*#h->I0A9#tJjVzH9EElz1G;c;`8Hlav>;8WDKWhSw9Gn#AlZz$JM|sy0k`rlQ#EI;e z=YA-L(RrLHZa*1;8ZfX3rFx(3oAiX@jFclsn{)oUqfQF3g3m$L3;{9viC8WD5Ae8R zPF-_D>o9|Yf>svd!+``8kfnHrhx-9W3>!i`H+J}hJh$U$#zseFDJXRzTwp#d`sbn#E+Hq*N@efY*l7s}yoyUKt4$VEQL~~|Pgh|9K=mJEc z_bpCB94Xpuv({QC3K+I%TI81@k?|FN5B>iOFD*#b%>3)LVl$!ZG#yP-h^r<1%nl?`gZJ?N_d> z$jX~qWq#9z+?Xd~l?yF9;KZJ=?h%K7B^MzY4z&VB1iJN_d?Le*x0g4KfcpiLmLXXe zU_wm5I$7VdeSnOh02S2$Kmuv8;-xpR;W6({X>$-nNQiiSKM8yq)bb$;3HbsfXo=u1 zEX%dpJIuElC!M#$0Teicr9j(!-efxP-G2OS{tBIsubUQ$^M(@@h$V~#Rq?1D;NvZl zp3nNXeP5E%hU;LTlka{%u;;<)yNDcT)5(Hl8X6jx6aX!8VoOA>(&iG|- z!=kF?L$ZPdX=EQWRcVctB0CW}nVqdE8ION=Dg*_nh=4EX9;N;T4F6tymmJfq6niE1 z;~-SIV9V_H$sD^qXBZ=9bxRC3eZWtRW&$~E_LeS@`0EgkoIrFUtPT-0&P0YnEXzVo zp;ek{sJc`@V9yj{`Q|76H?mDcmP(DNbK3g&(vAW+K3f zU}68&iPD^+%ie>$PngSCIv=tG_|>e73t?E;zC)7PRtE9l!@lmj++!kC6~z!7 z|M^6`2P4kAHaA(be&0}XhzfDxZ#VkOcrxXT1+6Zm24=&+-^Wx3Y|123^bn~Z6A$cX zzP`tggUgSBpM8W%84)N|BS9o3E3r2h%L^`2GT3(#)Cn zRQJUhY1l7nywXyudQiCaN-TLv)I(G+ReDpXl1y4K^F<%x=9Ovm2vnKcDy9f zc5%t~v87Ru$L9tC=~WJ%UeqhNivu2j=f`$kv#4*`>_?UYHXuMim zN(sie!9b7Tr&XS%@s029%};5=lMelWw)Tq-yr|}6gz)a_okiH+wDYGIf18xI&>%*) zJp}*F<>l~;C~*Ig{UaJ$0u&`GJbM6N2AU(EfF=Ai(gcH`6wii?%_D^4``;twff9RG zGeq39>$|Z;3C2{PO%s2Q8aqQ~IU=-%SR5<#T<*(;^w0_@4kp)KI<0S?s|% z`B|T%v1Dlo69Vjl>)TMJQH*}irLxAW~UB#jprG?J#sL6K+iDr}DuD78W7^%Rtu3z3va{9O#Bl_T2R4 z`a5O_imLXPJ=!GZXB$67C;85{zBwCu)L*BB$tJK`@Kfk;@1pVaO7_8DV_p=X7Oy4V z?NUax?u${*w$)EvI#Mo71m08_{LPx_L%DTO#!Lbp~nah3FfG zK^^RgLghp(^gm5Z&NbdS71-5&q{)tZ^q^5sxKN{ezQ-q==zf^w3QVI1*64E&;u~)% zl>8v9;jaom{D5X9b7#`3M4`d7|5aR(5E_l^+m~}7#HH1R?v6MKAY`9|5t$);gZL%J zqzrG7V{rxHU)^0-?dhg;(siRqx8*FrPg08|l~iXu8YS-z6tVnNM(V~;_vev+)}fjx zS%%y+(ng&`-_~1#+b;9@iWD%=qe+I(Q>^Wq*ntGY5-ps?F*9cl-wPU4AwTj zUHQnE+I`6!g}_u;-LlwRyHzw8^hTEg!$wJgr`J%{g}K!6eyF0eQZ9-nbH~<(Y7h7! zK8j+yiMrUHN@0f+^`RYNBgyIejaah26%K5+F@GvBqBe>EHfAF-au5oUBqcpR^I(_S zt9SWMW1!a+NI502{ldV7DWqz0t)Ik5&JgqWDD*iuhD^Jg~fE1X01qCs%VrNwCb0&w!rwr@idlxUFkfA7X0+H|ouuy>9ms z%Z4lb%h2rMb?)%RChAxQgO$KIogh?Y>$%qD~td)0yVfr5)?>VjC+Z|l{U27S3`lisr z1;&A$Q<**z>Lj~Nw57zIL=aC)`51I+qCj>XsCk~2I4yD&$AW|yrU%~O0}M8Bo7Dd< zAj#8goJ-?MZgSrqX?hOn6J-bfj0AbpV8)+aM`N0Q~WS>%fj(H|U|+iI8?q*2v%88x?Tq zOdp0)x&>qmKv*@`q=**{Hl*b~t9#(F2@D-M`Y;DKu|2>A=c{2(WgWD1iJiKP~-Z=Sb=-7yGqy8}J;2 zYC!&c9fw!+iF^{X321PY-U;sf!H(`5&4pw9$I3Wa1T+AEVD6woAVYG@v?d%ttYB1Q)s zetUta36gO^HanezWje15u(CrBm2X>v59>@3tt!AV6Ax3vIUxY7*(iK_KZXL$OgwQi z*7_UOv&wGq{VHgViD5MF<7UUteF%StE4#g!a4dEErcOihGJk;(;MXL95|_d`yjGrV zvlntZ%e{;4Yg|xBtojHXbz!^7vxV9%ORem{G0Os&62>!x!eabd3_!@w+LEr{TXta;Dq67uW| zqKfKtzP!5pzaIDhpB5ha|5=wQ?GOhcuB1kfUw%6$qWfRbF`RKTxvbisk0k!PrK@SE JQLBat{~ro70IC20 literal 0 HcmV?d00001 diff --git a/build/web/index.html b/build/web/index.html new file mode 100644 index 0000000..126abc5 --- /dev/null +++ b/build/web/index.html @@ -0,0 +1,43 @@ + + + + + + + + + OmnyShell + + + + + + + + + + + + + + + + + + + + + + + + +

+
+ + diff --git a/web/styles.css b/build/web/kit.css similarity index 59% rename from web/styles.css rename to build/web/kit.css index 76498c8..ba95e0c 100644 --- a/web/styles.css +++ b/build/web/kit.css @@ -1,3 +1,12 @@ +/* OmnyGrid web UI kit — design tokens, base, layout, components, modal, toasts. + * + * Shipped by `package:omnyshell_web` and installed into a consuming app with + * `dart run omnyshell_web:copy_assets`. The widgets in `ui_kit.dart` are styled + * by the class names defined here, so an app that imports them must ship this + * file or they render unstyled. + * + * Terminal chrome lives in `terminal.css`. */ + /* ── Design tokens ─────────────────────────────────────────────────────── */ :root { --font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, @@ -308,227 +317,6 @@ button.btn-sm { padding: 6px 10px; font-size: 0.82rem; } white-space: nowrap; } -/* Tighten the terminal screen: no extra gap between the toolbar and the - terminal (the generic toolbar margin would otherwise stack with the column - gap and waste vertical space). */ -.terminal-screen { gap: 8px; } -.terminal-screen .toolbar { margin-bottom: 0; } - -/* The terminal screen's toolbar carries several controls (Sessions, Fullscreen, - Detach, Terminate); keep its buttons compact and let the title shrink so the - whole row fits a phone width. */ -.terminal-screen .toolbar { gap: 8px; } -.terminal-screen .toolbar h1 { - font-size: 1rem; - min-width: 0; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.terminal-screen .toolbar button { padding: 6px 10px; font-size: 0.85rem; } - -/* Terminal */ -.terminal-card { padding: 8px; background: #0b0e12; } -.terminal-host { - width: 100%; - /* dvh so the terminal shrinks (rather than hiding under) the soft keyboard; - vh fallback for browsers without dvh, and a min-height floor so the fit - addon always has a measurable, non-zero container. */ - height: 60vh; - height: 60dvh; - min-height: 260px; - max-height: 600px; -} -.terminal-host .xterm { height: 100%; } -/* The terminal palette is dark; in the light theme invert it so it reads as a - light terminal instead of a dark box on a light page. The card frame is - painted to match the terminal background, so set it to the inverted+hue- - rotated colour (#eff2f6) — otherwise a dark border rings the inverted box. */ -[data-theme="light"] .terminal-host { filter: invert(1) hue-rotate(180deg); } -[data-theme="light"] .terminal-card { background: #eff2f6; } - -/* On-screen accessory key bar (touch devices lack Esc/Tab/Ctrl/arrows). */ -.term-accessory { - display: flex; - gap: 6px; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - padding: 8px; - padding-bottom: calc(8px + env(safe-area-inset-bottom)); - background: var(--bg-elevated); - border: 1px solid var(--border); - border-radius: var(--radius); -} -.term-accessory button { - flex: 0 0 auto; - /* Sized via --term-key-scale (set per session from the terminal font) so the - keys shrink/grow with the text; defaults to 1 = the original sizing. */ - min-width: calc(44px * var(--term-key-scale, 1)); - min-height: calc(40px * var(--term-key-scale, 1)); - padding: calc(8px * var(--term-key-scale, 1)) calc(12px * var(--term-key-scale, 1)); - font-size: calc(0.9rem * var(--term-key-scale, 1)); -} -.term-accessory button.active { - background: var(--accent); - color: var(--accent-fg); - border-color: var(--accent); -} -/* The last-used quick key and the `Ctrl ▾` trigger read as one segmented - control: joined edges, a single shared divider, only the outer corners - rounded. */ -.term-ctrl-group { display: inline-flex; flex: 0 0 auto; } -.term-ctrl-group > button { border-radius: 0; position: relative; } -.term-ctrl-group > button:first-child { - border-top-left-radius: var(--radius); - border-bottom-left-radius: var(--radius); -} -.term-ctrl-group > button:last-child { - border-top-right-radius: var(--radius); - border-bottom-right-radius: var(--radius); - margin-left: -1px; /* collapse the shared border into one divider */ -} -/* Raise the focused/hovered/armed edge so its border sits above the overlap. */ -.term-ctrl-group > button:hover, -.term-ctrl-group > button:focus, -.term-ctrl-group > button.active { z-index: 1; } - -/* The Ctrl button carries a caret to signal it opens a menu. */ -.term-accessory button.has-menu::after { - content: '▾'; - margin-left: 4px; - font-size: 0.8em; - opacity: 0.7; -} - -/* Ctrl combinations popup, anchored above the Ctrl button (positioned in JS). */ -.ctrl-menu { - z-index: 45; - display: flex; - flex-direction: column; - gap: 8px; - padding: 8px; - max-width: calc(100vw - 16px); - background: var(--bg-elevated); - border: 1px solid var(--border); - border-radius: var(--radius); - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4); -} -.ctrl-menu-grid { - display: grid; - grid-template-columns: repeat(5, 1fr); - gap: 6px; -} -.ctrl-menu-item { min-width: 40px; min-height: 36px; padding: 6px 8px; } -.ctrl-menu-custom { display: flex; align-items: center; gap: 6px; } -.ctrl-menu-label { opacity: 0.8; } -.ctrl-custom-input { - width: 44px; - text-align: center; - text-transform: uppercase; -} -.ctrl-menu-sep { height: 1px; background: var(--border); margin: 2px 0; } -.ctrl-menu-arm { width: 100%; } - -/* Terminal screen: lock the page to the viewport so only the terminal's own - content scrolls — no body/page scroll or mobile rubber-banding. The terminal - card flexes to fill the space below the toolbar, and xterm's viewport handles - scrollback. Scoped to `.terminal-active` so other screens scroll normally. */ -html.terminal-active { height: 100%; overflow: hidden; overscroll-behavior: none; } -/* Anchor the app to the *visible* viewport, not the layout viewport: on iOS - `height: 100%` is the layout viewport, which is taller than the visible area - (Safari's bottom toolbar), so the key bar/last row would fall below the edge - with no scroll to reach them. --vvh (visualViewport) is exact; 100dvh is the - CSS fallback that already accounts for the dynamic toolbars. */ -html.terminal-active body { - height: var(--vvh, 100dvh); - overflow: hidden; - overscroll-behavior: none; -} -html.terminal-active #app { height: 100%; min-height: 0; } -html.terminal-active .app-main { - flex: 1; - min-height: 0; - overflow: hidden; -} -/* Fill the available height ONLY when the screen is in normal (in-flow) layout. - In fullscreen / keyboard-open it is `position: fixed` and sized by inset + - `bottom: var(--kb)`; setting `height: 100%` there would over-constrain the box - (top + height wins, so the keyboard `bottom` lift is ignored) and on iOS a - fixed `height: 100%` resolves taller than the visible viewport. */ -html.terminal-active:not(.term-fullscreen):not(.keyboard-open) .terminal-screen { - height: 100%; - min-height: 0; -} -html.terminal-active .terminal-card { flex: 1; min-height: 0; } -html.terminal-active .terminal-host { height: 100%; min-height: 0; max-height: none; } -/* The terminal's definite height (viewport − header/toolbar − key bar) is applied - inline by the screen controller (overriding the 100% above), and cleared in - fullscreen / while the keyboard is open so the fixed-layout CSS sizes it. The - 100% here is only the pre-script fallback. */ -/* Keep scroll chaining inside the terminal even at the scrollback ends. */ -.terminal-host .xterm-viewport { overscroll-behavior: contain; } - -/* Fullscreen terminal: fill the whole window, hide app chrome. */ -.term-fullscreen .app-header { display: none; } -.term-fullscreen .app-main { max-width: none; padding: 0; } - -/* Bind the terminal to the *visual* viewport — the area above the on-screen - keyboard — in fullscreen, and whenever the soft keyboard is open in any mode. - The keyboard overlays content (it doesn't shrink the layout viewport), so - without this the accessory key bar and the prompt sit hidden behind it. As a - fixed, --vvh-tall flex column [toolbar, terminal(flex:1), accessory], the key - bar lands just above the keyboard and the terminal (re-fit from Dart on - visualViewport resize) keeps its prompt row visible. --vvh is set by boot.js; - it falls back to the full dynamic viewport when there's no keyboard. */ -.term-fullscreen .terminal-screen, -.keyboard-open .terminal-screen { - position: fixed; - /* Pin to the layout viewport, then raise the bottom edge above the keyboard - by its measured inset (--kb, 0 when closed). On iOS `position: fixed` - resolves against the layout viewport — which the keyboard does NOT shrink — - so lifting `bottom` is far more reliable than sizing by visual height. */ - inset: 0; - bottom: var(--kb, 0px); - z-index: 40; - gap: 0; - background: #0b0e12; -} -/* Hide the screen toolbar (Sessions / Detach / Terminate / toggle) in - fullscreen. With just the keyboard open it stays, so its controls remain - reachable while typing. */ -.term-fullscreen .terminal-screen > .toolbar { display: none; } - -.term-fullscreen .terminal-card, -.keyboard-open .terminal-card { - flex: 1; - border: 0; - border-radius: 0; - padding: 4px; - padding-top: calc(4px + env(safe-area-inset-top)); -} -.term-fullscreen .terminal-host, -.keyboard-open .terminal-host { - height: 100%; - min-height: 0; - max-height: none; -} -.term-fullscreen .term-accessory, -.keyboard-open .term-accessory { border-radius: 0; } -/* The keyboard already covers the home-indicator inset, so drop the extra - bottom padding that would otherwise lift the key bar away from it. */ -.keyboard-open .term-accessory { padding-bottom: 8px; } - -/* Floating exit button — only shown in fullscreen. */ -.term-exit-fullscreen { display: none; } -.term-fullscreen .term-exit-fullscreen { - display: inline-flex; - position: fixed; - top: calc(8px + env(safe-area-inset-top)); - right: calc(8px + env(safe-area-inset-right)); - z-index: 41; - opacity: 0.85; -} - /* Modal */ .modal-overlay { position: fixed; inset: 0; z-index: 50; @@ -597,12 +385,6 @@ html.terminal-active .terminal-host { height: 100%; min-height: 0; max-height: n .session-item { flex-direction: column; align-items: stretch; gap: 10px; } .session-actions { justify-content: flex-start; } .session-actions button { flex: 1 1 auto; padding: 8px 6px; font-size: 0.82rem; } - /* Terminal toolbar stays compact and wraps instead of overflowing; the - spacer is dropped so the controls pack tightly across the row. */ - .terminal-screen .toolbar { flex-wrap: wrap; gap: 6px; } - .terminal-screen .toolbar .grow { display: none; } - .terminal-screen .toolbar button { padding: 6px 9px; font-size: 0.8rem; } - .terminal-screen .toolbar h1 { font-size: 0.9rem; } /* Login card uses more of the screen on phones: trim the outer gutter (respecting safe-area insets) and the card's inner padding so the form fields get extra width instead of being boxed in. The 420px cap still diff --git a/build/web/main.dart.js b/build/web/main.dart.js new file mode 100644 index 0000000..1080900 --- /dev/null +++ b/build/web/main.dart.js @@ -0,0 +1,24716 @@ +(function dartProgram(){function copyProperties(a,b){var s=Object.keys(a) +for(var r=0;r=0)return true +if(typeof version=="function"&&version.length==0){var q=version() +if(/^\d+\.\d+\.\d+\.\d+$/.test(q))return true}}catch(p){}return false}() +function inherit(a,b){a.prototype.constructor=a +a.prototype["$i"+a.name]=a +if(b!=null){if(z){Object.setPrototypeOf(a.prototype,b.prototype) +return}var s=Object.create(b.prototype) +copyProperties(a.prototype,s) +a.prototype=s}}function inheritMany(a,b){for(var s=0;s4294967295)throw A.d(A.ay(a,0,4294967295,"length",null)) +return J.DE(new Array(a),b)}, +yY(a,b){if(a<0)throw A.d(A.as("Length must be a non-negative integer: "+a,null)) +return A.e(new Array(a),b.h("z<0>"))}, +yX(a,b){if(a<0)throw A.d(A.as("Length must be a non-negative integer: "+a,null)) +return A.e(new Array(a),b.h("z<0>"))}, +DE(a,b){var s=A.e(a,b.h("z<0>")) +s.$flags=1 +return s}, +DF(a,b){var s=t.hO +return J.yq(s.a(a),s.a(b))}, +yZ(a){if(a<256)switch(a){case 9:case 10:case 11:case 12:case 13:case 32:case 133:case 160:return!0 +default:return!1}switch(a){case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8232:case 8233:case 8239:case 8287:case 12288:case 65279:return!0 +default:return!1}}, +z_(a,b){var s,r +for(s=a.length;b0;b=r){r=b-1 +if(!(r>>0===b&&b").H(c).h("jr<1,2>")) +return new A.ee(a,b.h("@<0>").H(c).h("ee<1,2>"))}, +DI(a){return new A.dE("Field '"+a+"' has been assigned during initialization.")}, +DK(a){return new A.dE("Field '"+a+"' has not been initialized.")}, +DJ(a){return new A.dE("Field '"+a+"' has already been initialized.")}, +wO(a){var s,r=a^48 +if(r<=9)return r +s=a|32 +if(97<=s&&s<=102)return s-87 +return-1}, +az(a,b){a=a+b&536870911 +a=a+((a&524287)<<10)&536870911 +return a^a>>>6}, +hx(a){a=a+((a&67108863)<<3)&536870911 +a^=a>>>11 +return a+((a&16383)<<15)&536870911}, +dq(a,b,c){return a}, +yh(a){var s,r +for(s=$.ca.length,r=0;rc)A.K(A.ay(b,0,c,"start",null))}return new A.eW(a,b,c,d.h("eW<0>"))}, +d6(a,b,c,d){if(t.g.b(a))return new A.eu(a,b,c.h("@<0>").H(d).h("eu<1,2>")) +return new A.bI(a,b,c.h("@<0>").H(d).h("bI<1,2>"))}, +zv(a,b,c){var s="takeCount" +A.kq(b,s,t.S) +A.bq(b,s) +if(t.g.b(a))return new A.iu(a,b,c.h("iu<0>")) +return new A.eX(a,b,c.h("eX<0>"))}, +zt(a,b,c){var s="count" +if(t.g.b(a)){A.kq(b,s,t.S) +A.bq(b,s) +return new A.fM(a,b,c.h("fM<0>"))}A.kq(b,s,t.S) +A.bq(b,s) +return new A.db(a,b,c.h("db<0>"))}, +ce(){return new A.bX("No element")}, +yW(){return new A.bX("Too few elements")}, +mn(a,b,c,d,e){if(c-b<=32)A.EN(a,b,c,d,e) +else A.EM(a,b,c,d,e)}, +EN(a,b,c,d,e){var s,r,q,p,o,n +for(s=b+1,r=J.at(a);s<=c;++s){q=r.k(a,s) +p=s +for(;;){if(p>b){o=d.$2(r.k(a,p-1),q) +if(typeof o!=="number")return o.aP() +o=o>0}else o=!1 +if(!o)break +n=p-1 +r.i(a,p,r.k(a,n)) +p=n}r.i(a,p,q)}}, +EM(a3,a4,a5,a6,a7){var s,r,q,p,o,n,m,l,k,j=B.c.W(a5-a4+1,6),i=a4+j,h=a5-j,g=B.c.W(a4+a5,2),f=g-j,e=g+j,d=J.at(a3),c=d.k(a3,i),b=d.k(a3,f),a=d.k(a3,g),a0=d.k(a3,e),a1=d.k(a3,h),a2=a6.$2(c,b) +if(typeof a2!=="number")return a2.aP() +if(a2>0){s=b +b=c +c=s}a2=a6.$2(a0,a1) +if(typeof a2!=="number")return a2.aP() +if(a2>0){s=a1 +a1=a0 +a0=s}a2=a6.$2(c,a) +if(typeof a2!=="number")return a2.aP() +if(a2>0){s=a +a=c +c=s}a2=a6.$2(b,a) +if(typeof a2!=="number")return a2.aP() +if(a2>0){s=a +a=b +b=s}a2=a6.$2(c,a0) +if(typeof a2!=="number")return a2.aP() +if(a2>0){s=a0 +a0=c +c=s}a2=a6.$2(a,a0) +if(typeof a2!=="number")return a2.aP() +if(a2>0){s=a0 +a0=a +a=s}a2=a6.$2(b,a1) +if(typeof a2!=="number")return a2.aP() +if(a2>0){s=a1 +a1=b +b=s}a2=a6.$2(b,a) +if(typeof a2!=="number")return a2.aP() +if(a2>0){s=a +a=b +b=s}a2=a6.$2(a0,a1) +if(typeof a2!=="number")return a2.aP() +if(a2>0){s=a1 +a1=a0 +a0=s}d.i(a3,i,c) +d.i(a3,g,a) +d.i(a3,h,a1) +d.i(a3,f,d.k(a3,a4)) +d.i(a3,e,d.k(a3,a5)) +r=a4+1 +q=a5-1 +p=J.a0(a6.$2(b,a0),0) +if(p)for(o=r;o<=q;++o){n=d.k(a3,o) +m=a6.$2(n,b) +if(m===0)continue +if(m<0){if(o!==r){d.i(a3,o,d.k(a3,r)) +d.i(a3,r,n)}++r}else for(;;){m=a6.$2(d.k(a3,q),b) +if(m>0){--q +continue}else{l=q-1 +if(m<0){d.i(a3,o,d.k(a3,r)) +k=r+1 +d.i(a3,r,d.k(a3,q)) +d.i(a3,q,n) +q=l +r=k +break}else{d.i(a3,o,d.k(a3,q)) +d.i(a3,q,n) +q=l +break}}}}else for(o=r;o<=q;++o){n=d.k(a3,o) +if(a6.$2(n,b)<0){if(o!==r){d.i(a3,o,d.k(a3,r)) +d.i(a3,r,n)}++r}else if(a6.$2(n,a0)>0)for(;;)if(a6.$2(d.k(a3,q),a0)>0){--q +if(qh){while(J.a0(a6.$2(d.k(a3,r),b),0))++r +while(J.a0(a6.$2(d.k(a3,q),a0),0))--q +for(o=r;o<=q;++o){n=d.k(a3,o) +if(a6.$2(n,b)===0){if(o!==r){d.i(a3,o,d.k(a3,r)) +d.i(a3,r,n)}++r}else if(a6.$2(n,a0)===0)for(;;)if(a6.$2(d.k(a3,q),a0)===0){--q +if(q=r.length)return A.b(r,3) +s=r[3] +if(s!=null)return parseInt(a,10) +if(r[2]!=null)return parseInt(a,16) +return null}, +m5(a){var s,r,q,p +if(a instanceof A.x)return A.bM(A.bg(a),null) +s=J.fr(a) +if(s===B.ic||s===B.ie||t.qF.b(a)){r=B.cI(a) +if(r!=="Object"&&r!=="")return r +q=a.constructor +if(typeof q=="function"){p=q.name +if(typeof p=="string"&&p!=="Object"&&p!=="")return p}}return A.bM(A.bg(a),null)}, +zl(a){var s,r,q +if(a==null||typeof a=="number"||A.nW(a))return J.b9(a) +if(typeof a=="string")return JSON.stringify(a) +if(a instanceof A.bD)return a.l(0) +if(a instanceof A.b1)return a.jA(!0) +s=$.C1() +for(r=0;r<1;++r){q=s[r].rj(a) +if(q!=null)return q}return"Instance of '"+A.m5(a)+"'"}, +Ep(){return Date.now()}, +Er(){var s,r +if($.rS!==0)return +$.rS=1000 +if(typeof window=="undefined")return +s=window +if(s==null)return +if(!!s.dartUseDateNowForTicks)return +r=s.performance +if(r==null)return +if(typeof r.now!="function")return +$.rS=1e6 +$.hj=new A.rR(r)}, +Eo(){if(!!self.location)return self.location.href +return null}, +zd(a){var s,r,q,p,o=a.length +if(o<=500)return String.fromCharCode.apply(null,a) +for(s="",r=0;r65535)return A.Es(a)}return A.zd(a)}, +Et(a,b,c){var s,r,q,p +if(c<=500&&b===0&&c===a.length)return String.fromCharCode.apply(null,a) +for(s=b,r="";s>>0,s&1023|56320)}}throw A.d(A.ay(a,0,1114111,null,null))}, +Eu(a,b,c,d,e,f,g,h,i){var s,r,q,p=b-1 +if(0<=a&&a<100){a+=400 +p-=4800}s=B.c.bc(h,1000) +g+=B.c.W(h-s,1000) +r=i?Date.UTC(a,p,c,d,e,f,g):new Date(a,p,c,d,e,f,g).valueOf() +q=!0 +if(!isNaN(r))if(!(r<-864e13))if(!(r>864e13))q=r===864e13&&s!==0 +if(q)return null +return r}, +c4(a){if(a.date===void 0)a.date=new Date(a.a) +return a.date}, +m4(a){return a.c?A.c4(a).getUTCFullYear()+0:A.c4(a).getFullYear()+0}, +zj(a){return a.c?A.c4(a).getUTCMonth()+1:A.c4(a).getMonth()+1}, +zf(a){return a.c?A.c4(a).getUTCDate()+0:A.c4(a).getDate()+0}, +zg(a){return a.c?A.c4(a).getUTCHours()+0:A.c4(a).getHours()+0}, +zi(a){return a.c?A.c4(a).getUTCMinutes()+0:A.c4(a).getMinutes()+0}, +zk(a){return a.c?A.c4(a).getUTCSeconds()+0:A.c4(a).getSeconds()+0}, +zh(a){return a.c?A.c4(a).getUTCMilliseconds()+0:A.c4(a).getMilliseconds()+0}, +Eq(a){var s=a.$thrownJsError +if(s==null)return null +return A.bt(s)}, +rT(a,b){var s +if(a.$thrownJsError==null){s=new Error() +A.aT(a,s) +a.$thrownJsError=s +s.stack=b.l(0)}}, +B_(a){throw A.d(A.i0(a))}, +b(a,b){if(a==null)J.aE(a) +throw A.d(A.i2(a,b))}, +i2(a,b){var s,r="index" +if(!A.hT(b))return new A.cs(!0,b,r,null) +s=A.a4(J.aE(a)) +if(b<0||b>=s)return A.le(b,s,a,null,r) +return A.t_(b,r)}, +Iw(a,b,c){if(a<0||a>c)return A.ay(a,0,c,"start",null) +if(b!=null)if(bc)return A.ay(b,a,c,"end",null) +return new A.cs(!0,b,"end",null)}, +i0(a){return new A.cs(!0,a,null,null)}, +d(a){return A.aT(a,new Error())}, +aT(a,b){var s +if(a==null)a=new A.dd() +b.dartException=a +s=A.Jg +if("defineProperty" in Object){Object.defineProperty(b,"message",{get:s}) +b.name=""}else b.toString=s +return b}, +Jg(){return J.b9(this.dartException)}, +K(a,b){throw A.aT(a,b==null?new Error():b)}, +ai(a,b,c){var s +if(b==null)b=0 +if(c==null)c=0 +s=Error() +A.K(A.Gm(a,b,c),s)}, +Gm(a,b,c){var s,r,q,p,o,n,m,l,k +if(typeof b=="string")s=b +else{r="[]=;add;removeWhere;retainWhere;removeRange;setRange;setInt8;setInt16;setInt32;setUint8;setUint16;setUint32;setFloat32;setFloat64".split(";") +q=r.length +p=b +if(p>q){c=p/q|0 +p%=q}s=r[p]}o=typeof c=="string"?c:"modify;remove from;add to".split(";")[c] +n=t._.b(a)?"list":"ByteData" +m=a.$flags|0 +l="a " +if((m&4)!==0)k="constant " +else if((m&2)!==0){k="unmodifiable " +l="an "}else k=(m&1)!==0?"fixed-length ":"" +return new A.je("'"+s+"': Cannot "+o+" "+l+k+n)}, +M(a){throw A.d(A.aG(a))}, +de(a){var s,r,q,p,o,n +a=A.Ba(a.replace(String({}),"$receiver$")) +s=a.match(/\\\$[a-zA-Z]+\\\$/g) +if(s==null)s=A.e([],t.s) +r=s.indexOf("\\$arguments\\$") +q=s.indexOf("\\$argumentsExpr\\$") +p=s.indexOf("\\$expr\\$") +o=s.indexOf("\\$method\\$") +n=s.indexOf("\\$receiver\\$") +return new A.uN(a.replace(new RegExp("\\\\\\$arguments\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$","g"),"((?:x|[^x])*)"),r,q,p,o,n)}, +uO(a){return function($expr$){var $argumentsExpr$="$arguments$" +try{$expr$.$method$($argumentsExpr$)}catch(s){return s.message}}(a)}, +zz(a){return function($expr$){try{$expr$.$method$}catch(s){return s.message}}(a)}, +xJ(a,b){var s=b==null,r=s?null:b.method +return new A.ll(a,r,s?null:b.receiver)}, +R(a){var s +if(a==null)return new A.lP(a) +if(a instanceof A.iw){s=a.a +return A.e0(a,s==null?A.ap(s):s)}if(typeof a!=="object")return a +if("dartException" in a)return A.e0(a,a.dartException) +return A.H6(a)}, +e0(a,b){if(t.yt.b(b))if(b.$thrownJsError==null)b.$thrownJsError=a +return b}, +H6(a){var s,r,q,p,o,n,m,l,k,j,i,h,g +if(!("message" in a))return a +s=a.message +if("number" in a&&typeof a.number=="number"){r=a.number +q=r&65535 +if((B.c.aT(r,16)&8191)===10)switch(q){case 438:return A.e0(a,A.xJ(A.u(s)+" (Error "+q+")",null)) +case 445:case 5007:A.u(s) +return A.e0(a,new A.iW())}}if(a instanceof TypeError){p=$.BE() +o=$.BF() +n=$.BG() +m=$.BH() +l=$.BK() +k=$.BL() +j=$.BJ() +$.BI() +i=$.BN() +h=$.BM() +g=p.bw(s) +if(g!=null)return A.e0(a,A.xJ(A.r(s),g)) +else{g=o.bw(s) +if(g!=null){g.method="call" +return A.e0(a,A.xJ(A.r(s),g))}else if(n.bw(s)!=null||m.bw(s)!=null||l.bw(s)!=null||k.bw(s)!=null||j.bw(s)!=null||m.bw(s)!=null||i.bw(s)!=null||h.bw(s)!=null){A.r(s) +return A.e0(a,new A.iW())}}return A.e0(a,new A.mG(typeof s=="string"?s:""))}if(a instanceof RangeError){if(typeof s=="string"&&s.indexOf("call stack")!==-1)return new A.j9() +s=function(b){try{return String(b)}catch(f){}return null}(a) +return A.e0(a,new A.cs(!1,null,null,typeof s=="string"?s.replace(/^RangeError:\s*/,""):s))}if(typeof InternalError=="function"&&a instanceof InternalError)if(typeof s=="string"&&s==="too much recursion")return new A.j9() +return a}, +bt(a){var s +if(a instanceof A.iw)return a.b +if(a==null)return new A.jR(a) +s=a.$cachedTrace +if(s!=null)return s +s=new A.jR(a) +if(typeof a==="object")a.$cachedTrace=s +return s}, +i5(a){if(a==null)return J.am(a) +if(typeof a=="object")return A.dI(a) +return J.am(a)}, +Hi(a){if(typeof a=="number")return B.p.gE(a) +if(a instanceof A.nI)return A.dI(a) +if(a instanceof A.b1)return a.gE(a) +if(a instanceof A.u0)return a.gE(0) +return A.i5(a)}, +AV(a,b){var s,r,q,p=a.length +for(s=0;s=0 +else if(b instanceof A.dC){s=B.a.D(a,c) +return b.b.test(s)}else return!J.xs(b,B.a.D(a,c)).gK(0)}, +AU(a){if(a.indexOf("$",0)>=0)return a.replace(/\$/g,"$$$$") +return a}, +Ba(a){if(/[[\]{}()*+?.\\^$|]/.test(a))return a.replace(/[[\]{}()*+?.\\^$|]/g,"\\$&") +return a}, +ad(a,b,c){var s +if(typeof b=="string")return A.Jb(a,b,c) +if(b instanceof A.dC){s=b.giX() +s.lastIndex=0 +return a.replace(s,A.AU(c))}return A.Ja(a,b,c)}, +Ja(a,b,c){var s,r,q,p +for(s=J.xs(b,a),s=s.gJ(s),r=0,q="";s.q();){p=s.gA() +q=q+a.substring(r,p.gP())+c +r=p.gO()}s=q+a.substring(r) +return s.charCodeAt(0)==0?s:s}, +Jb(a,b,c){var s,r,q +if(b===""){if(a==="")return c +s=a.length +for(r=c,q=0;q=0)return a.split(b).join(c) +return a.replace(new RegExp(A.Ba(b),"g"),A.AU(c))}, +AJ(a){return a}, +Bf(a,b,c,d){var s,r,q,p,o,n,m +for(s=b.dK(0,a),s=new A.hF(s.a,s.b,s.c),r=t.he,q=0,p="";s.q();){o=s.d +if(o==null)o=r.a(o) +n=o.b +m=n.index +p=p+A.u(A.AJ(B.a.m(a,q,m)))+A.u(c.$1(o)) +q=m+n[0].length}s=p+A.u(A.AJ(B.a.D(a,q))) +return s.charCodeAt(0)==0?s:s}, +Bg(a,b,c,d){var s=a.indexOf(b,d) +if(s<0)return a +return A.Bh(a,s,s+b.length,c)}, +Bh(a,b,c,d){return a.substring(0,b)+d+a.substring(c)}, +aD:function aD(a,b){this.a=a +this.b=b}, +jL:function jL(a,b){this.a=a +this.b=b}, +dS:function dS(a,b){this.a=a +this.b=b}, +dT:function dT(a,b){this.a=a +this.b=b}, +hM:function hM(a,b){this.a=a +this.b=b}, +bA:function bA(a,b){this.a=a +this.b=b}, +dU:function dU(a,b){this.a=a +this.b=b}, +jM:function jM(a,b,c){this.a=a +this.b=b +this.c=c}, +jN:function jN(a,b,c){this.a=a +this.b=b +this.c=c}, +dl:function dl(a){this.a=a}, +jO:function jO(a){this.a=a}, +fJ:function fJ(){}, +pp:function pp(a,b,c){this.a=a +this.b=b +this.c=c}, +X:function X(a,b,c){this.a=a +this.b=b +this.$ti=c}, +jz:function jz(a,b){this.a=a +this.$ti=b}, +dk:function dk(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.d=null +_.$ti=c}, +iz:function iz(a,b){this.a=a +this.$ti=b}, +fK:function fK(){}, +B:function B(a,b,c){this.a=a +this.b=b +this.$ti=c}, +Z:function Z(a,b){this.a=a +this.$ti=b}, +lf:function lf(){}, +fQ:function fQ(a,b){this.a=a +this.$ti=b}, +rR:function rR(a){this.a=a}, +j1:function j1(){}, +uN:function uN(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f}, +iW:function iW(){}, +ll:function ll(a,b,c){this.a=a +this.b=b +this.c=c}, +mG:function mG(a){this.a=a}, +lP:function lP(a){this.a=a}, +iw:function iw(a,b){this.a=a +this.b=b}, +jR:function jR(a){this.a=a +this.b=null}, +bD:function bD(){}, +kF:function kF(){}, +kG:function kG(){}, +mx:function mx(){}, +ms:function ms(){}, +fF:function fF(a,b){this.a=a +this.b=b}, +mh:function mh(a){this.a=a}, +bS:function bS(a){var _=this +_.a=0 +_.f=_.e=_.d=_.c=_.b=null +_.r=0 +_.$ti=a}, +r1:function r1(a){this.a=a}, +r6:function r6(a,b){var _=this +_.a=a +_.b=b +_.d=_.c=null}, +d5:function d5(a,b){this.a=a +this.$ti=b}, +iI:function iI(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=null +_.$ti=d}, +c2:function c2(a,b){this.a=a +this.$ti=b}, +aq:function aq(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=null +_.$ti=d}, +d4:function d4(a,b){this.a=a +this.$ti=b}, +iH:function iH(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=null +_.$ti=d}, +iE:function iE(a){var _=this +_.a=0 +_.f=_.e=_.d=_.c=_.b=null +_.r=0 +_.$ti=a}, +ex:function ex(a){var _=this +_.a=0 +_.f=_.e=_.d=_.c=_.b=null +_.r=0 +_.$ti=a}, +wP:function wP(a){this.a=a}, +wQ:function wQ(a){this.a=a}, +wR:function wR(a){this.a=a}, +b1:function b1(){}, +cl:function cl(){}, +fk:function fk(){}, +fl:function fl(){}, +dC:function dC(a,b){var _=this +_.a=a +_.b=b +_.e=_.d=_.c=null}, +hJ:function hJ(a){this.b=a}, +mV:function mV(a,b,c){this.a=a +this.b=b +this.c=c}, +hF:function hF(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +hv:function hv(a,b){this.a=a +this.c=b}, +nA:function nA(a,b,c){this.a=a +this.b=b +this.c=c}, +nB:function nB(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +w(a){throw A.aT(A.DK(a),new Error())}, +ax(a){throw A.aT(A.DJ(a),new Error())}, +i6(a){throw A.aT(A.DI(a),new Error())}, +vl(a){var s=new A.vk(a) +return s.b=s}, +vk:function vk(a){this.a=a +this.b=null}, +Gg(a){return a}, +c9(a){var s,r,q +if(t.CP.b(a))return a +s=J.at(a) +r=A.bU(s.gn(a),null,!1,t.z) +for(q=0;q>>0!==a||a>=c)throw A.d(A.i2(b,a))}, +Am(a,b,c){var s +if(!(a>>>0!==a))s=b>>>0!==b||a>b||b>c +else s=!0 +if(s)throw A.d(A.Iw(a,b,c)) +return b}, +dG:function dG(){}, +fZ:function fZ(){}, +iP:function iP(){}, +nN:function nN(a){this.a=a}, +iN:function iN(){}, +bn:function bn(){}, +iO:function iO(){}, +c3:function c3(){}, +lF:function lF(){}, +lG:function lG(){}, +lH:function lH(){}, +lI:function lI(){}, +lJ:function lJ(){}, +lK:function lK(){}, +iQ:function iQ(){}, +iR:function iR(){}, +eA:function eA(){}, +jD:function jD(){}, +jE:function jE(){}, +jF:function jF(){}, +jG:function jG(){}, +xP(a,b){var s=b.c +return s==null?b.c=A.jX(a,"H",[b.x]):s}, +zp(a){var s=a.w +if(s===6||s===7)return A.zp(a.x) +return s===11||s===12}, +Ez(a){return a.as}, +B5(a,b){var s,r=b.length +for(s=0;s=p)return A.b(q,0) +s=A.jZ(v.typeUniverse,A.ya(q[0]),"@<0>") +for(r=1;r=0)p+=" "+r[q];++q}return p+"})"}, +As(a3,a4,a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1=", ",a2=null +if(a5!=null){s=a5.length +if(a4==null)a4=A.e([],t.s) +else a2=a4.length +r=a4.length +for(q=s;q>0;--q)B.b.j(a4,"T"+(r+q)) +for(p=t.X,o="<",n="",q=0;q=0))return A.b(a4,l) +o=o+n+a4[l] +k=a5[q] +j=k.w +if(!(j===2||j===3||j===4||j===5||k===p))o+=" extends "+A.bM(k,a4)}o+=">"}else o="" +p=a3.x +i=a3.y +h=i.a +g=h.length +f=i.b +e=f.length +d=i.c +c=d.length +b=A.bM(p,a4) +for(a="",a0="",q=0;q0){a+=a0+"[" +for(a0="",q=0;q0){a+=a0+"{" +for(a0="",q=0;q "+b}, +bM(a,b){var s,r,q,p,o,n,m,l=a.w +if(l===5)return"erased" +if(l===2)return"dynamic" +if(l===3)return"void" +if(l===1)return"Never" +if(l===4)return"any" +if(l===6){s=a.x +r=A.bM(s,b) +q=s.w +return(q===11||q===12?"("+r+")":r)+"?"}if(l===7)return"FutureOr<"+A.bM(a.x,b)+">" +if(l===8){p=A.H5(a.x) +o=a.y +return o.length>0?p+("<"+A.AD(o,b)+">"):p}if(l===10)return A.GU(a,b) +if(l===11)return A.As(a,b,null) +if(l===12)return A.As(a.x,b,a.y) +if(l===13){n=a.x +m=b.length +n=m-1-n +if(!(n>=0&&n0)p+="<"+A.jW(c)+">" +s=a.eC.get(p) +if(s!=null)return s +r=new A.cy(null,null) +r.w=8 +r.x=b +r.y=c +if(c.length>0)r.c=c[0] +r.as=p +q=A.dW(a,r) +a.eC.set(p,q) +return q}, +y1(a,b,c){var s,r,q,p,o,n +if(b.w===9){s=b.x +r=b.y.concat(c)}else{r=c +s=b}q=s.as+(";<"+A.jW(r)+">") +p=a.eC.get(q) +if(p!=null)return p +o=new A.cy(null,null) +o.w=9 +o.x=s +o.y=r +o.as=q +n=A.dW(a,o) +a.eC.set(q,n) +return n}, +A0(a,b,c){var s,r,q="+"+(b+"("+A.jW(c)+")"),p=a.eC.get(q) +if(p!=null)return p +s=new A.cy(null,null) +s.w=10 +s.x=b +s.y=c +s.as=q +r=A.dW(a,s) +a.eC.set(q,r) +return r}, +zY(a,b,c){var s,r,q,p,o,n=b.as,m=c.a,l=m.length,k=c.b,j=k.length,i=c.c,h=i.length,g="("+A.jW(m) +if(j>0){s=l>0?",":"" +g+=s+"["+A.jW(k)+"]"}if(h>0){s=l>0?",":"" +g+=s+"{"+A.FP(i)+"}"}r=n+(g+")") +q=a.eC.get(r) +if(q!=null)return q +p=new A.cy(null,null) +p.w=11 +p.x=b +p.y=c +p.as=r +o=A.dW(a,p) +a.eC.set(r,o) +return o}, +y2(a,b,c,d){var s,r=b.as+("<"+A.jW(c)+">"),q=a.eC.get(r) +if(q!=null)return q +s=A.FR(a,b,c,r,d) +a.eC.set(r,s) +return s}, +FR(a,b,c,d,e){var s,r,q,p,o,n,m,l +if(e){s=c.length +r=A.wa(s) +for(q=0,p=0;p0){n=A.dX(a,b,r,0) +m=A.hY(a,c,r,0) +return A.y2(a,n,m,c!==m)}}l=new A.cy(null,null) +l.w=12 +l.x=b +l.y=c +l.as=d +return A.dW(a,l)}, +zQ(a,b,c,d){return{u:a,e:b,r:c,s:[],p:0,n:d}}, +zS(a){var s,r,q,p,o,n,m,l=a.r,k=a.s +for(s=l.length,r=0;r=48&&q<=57)r=A.FF(r+1,q,l,k) +else if((((q|32)>>>0)-97&65535)<26||q===95||q===36||q===124)r=A.zR(a,r,l,k,!1) +else if(q===46)r=A.zR(a,r,l,k,!0) +else{++r +switch(q){case 44:break +case 58:k.push(!1) +break +case 33:k.push(!0) +break +case 59:k.push(A.fj(a.u,a.e,k.pop())) +break +case 94:k.push(A.FT(a.u,k.pop())) +break +case 35:k.push(A.jY(a.u,5,"#")) +break +case 64:k.push(A.jY(a.u,2,"@")) +break +case 126:k.push(A.jY(a.u,3,"~")) +break +case 60:k.push(a.p) +a.p=k.length +break +case 62:A.FH(a,k) +break +case 38:A.FG(a,k) +break +case 63:p=a.u +k.push(A.A_(p,A.fj(p,a.e,k.pop()),a.n)) +break +case 47:p=a.u +k.push(A.zZ(p,A.fj(p,a.e,k.pop()),a.n)) +break +case 40:k.push(-3) +k.push(a.p) +a.p=k.length +break +case 41:A.FE(a,k) +break +case 91:k.push(a.p) +a.p=k.length +break +case 93:o=k.splice(a.p) +A.zT(a.u,a.e,o) +a.p=k.pop() +k.push(o) +k.push(-1) +break +case 123:k.push(a.p) +a.p=k.length +break +case 125:o=k.splice(a.p) +A.FJ(a.u,a.e,o) +a.p=k.pop() +k.push(o) +k.push(-2) +break +case 43:n=l.indexOf("(",r) +k.push(l.substring(r,n)) +k.push(-4) +k.push(a.p) +a.p=k.length +r=n+1 +break +default:throw"Bad character "+q}}}m=k.pop() +return A.fj(a.u,a.e,m)}, +FF(a,b,c,d){var s,r,q=b-48 +for(s=c.length;a=48&&r<=57))break +q=q*10+(r-48)}d.push(q) +return a}, +zR(a,b,c,d,e){var s,r,q,p,o,n,m=b+1 +for(s=c.length;m>>0)-97&65535)<26||r===95||r===36||r===124))q=r>=48&&r<=57 +else q=!0 +if(!q)break}}p=c.substring(b,m) +if(e){s=a.u +o=a.e +if(o.w===9)o=o.x +n=A.FX(s,o.x)[p] +if(n==null)A.K('No "'+p+'" in "'+A.Ez(o)+'"') +d.push(A.jZ(s,o,n))}else d.push(p) +return m}, +FH(a,b){var s,r=a.u,q=A.zP(a,b),p=b.pop() +if(typeof p=="string")b.push(A.jX(r,p,q)) +else{s=A.fj(r,a.e,p) +switch(s.w){case 11:b.push(A.y2(r,s,q,a.n)) +break +default:b.push(A.y1(r,s,q)) +break}}}, +FE(a,b){var s,r,q,p=a.u,o=b.pop(),n=null,m=null +if(typeof o=="number")switch(o){case-1:n=b.pop() +break +case-2:m=b.pop() +break +default:b.push(o) +break}else b.push(o) +s=A.zP(a,b) +o=b.pop() +switch(o){case-3:o=b.pop() +if(n==null)n=p.sEA +if(m==null)m=p.sEA +r=A.fj(p,a.e,o) +q=new A.nf() +q.a=s +q.b=n +q.c=m +b.push(A.zY(p,r,q)) +return +case-4:b.push(A.A0(p,b.pop(),s)) +return +default:throw A.d(A.kv("Unexpected state under `()`: "+A.u(o)))}}, +FG(a,b){var s=b.pop() +if(0===s){b.push(A.jY(a.u,1,"0&")) +return}if(1===s){b.push(A.jY(a.u,4,"1&")) +return}throw A.d(A.kv("Unexpected extended operation "+A.u(s)))}, +zP(a,b){var s=b.splice(a.p) +A.zT(a.u,a.e,s) +a.p=b.pop() +return s}, +fj(a,b,c){if(typeof c=="string")return A.jX(a,c,a.sEA) +else if(typeof c=="number"){b.toString +return A.FI(a,b,c)}else return c}, +zT(a,b,c){var s,r=c.length +for(s=0;sn)return!1 +m=n-o +l=s.b +k=r.b +j=l.length +i=k.length +if(o+j=d)return!1 +a1=f[b] +b+=3 +if(a00?new Array(q):v.typeUniverse.sEA +for(o=0;o0?new Array(a):v.typeUniverse.sEA}, +cy:function cy(a,b){var _=this +_.a=a +_.b=b +_.r=_.f=_.d=_.c=null +_.w=0 +_.as=_.Q=_.z=_.y=_.x=null}, +nf:function nf(){this.c=this.b=this.a=null}, +nI:function nI(a){this.a=a}, +nb:function nb(){}, +hQ:function hQ(a){this.a=a}, +Fj(){var s,r,q +if(self.scheduleImmediate!=null)return A.H7() +if(self.MutationObserver!=null&&self.document!=null){s={} +r=self.document.createElement("div") +q=self.document.createElement("span") +s.a=null +new self.MutationObserver(A.i1(new A.vd(s),1)).observe(r,{childList:true}) +return new A.vc(s,r,q)}else if(self.setImmediate!=null)return A.H8() +return A.H9()}, +Fk(a){self.scheduleImmediate(A.i1(new A.ve(t.Q.a(a)),0))}, +Fl(a){self.setImmediate(A.i1(new A.vf(t.Q.a(a)),0))}, +Fm(a){A.xV(B.cX,t.Q.a(a))}, +xV(a,b){var s=B.c.W(a.a,1000) +return A.FN(s<0?0:s,b)}, +FN(a,b){var s=new A.nF() +s.lx(a,b) +return s}, +p(a){return new A.jj(new A.v($.E,a.h("v<0>")),a.h("jj<0>"))}, +o(a,b){a.$2(0,null) +b.b=!0 +return b.a}, +f(a,b){A.Gb(a,b)}, +n(a,b){b.V(a)}, +m(a,b){b.cg(A.R(a),A.bt(a))}, +Gb(a,b){var s,r,q=new A.wc(b),p=new A.wd(b) +if(a instanceof A.v)a.jy(q,p,t.z) +else{s=t.z +if(a instanceof A.v)a.cw(q,p,s) +else{r=new A.v($.E,t.hR) +r.a=8 +r.c=a +r.jy(q,p,s)}}}, +q(a){var s=function(b,c){return function(d,e){while(true){try{b(d,e) +break}catch(r){e=r +d=c}}}}(a,1) +return $.E.hW(new A.wx(s),t.H,t.S,t.z)}, +zX(a,b,c){return 0}, +id(a){var s +if(t.yt.b(a)){s=a.gdj() +if(s!=null)return s}return B.aH}, +xF(a,b){var s=a==null?b.a(a):a,r=new A.v($.E,b.h("v<0>")) +r.c5(s) +return r}, +Dp(a,b){var s +if(!b.b(null))throw A.d(A.cY(null,"computation","The type parameter is not nullable")) +s=new A.v($.E,b.h("v<0>")) +A.eY(a,new A.pY(null,s,b)) +return s}, +Dr(a,b){var s,r,q,p,o,n,m,l,k,j,i,h={},g=null,f=!1,e=new A.v($.E,b.h("v>")) +h.a=null +h.b=0 +h.c=h.d=null +s=new A.q1(h,g,f,e) +try{for(n=t.c,m=0,l=0;m<2;++m){r=a[m] +q=l +r.cw(new A.q0(h,q,e,b,g,f),s,n) +l=++h.b}if(l===0){n=e +n.dr(A.e([],b.h("z<0>"))) +return n}h.a=A.bU(l,null,!1,b.h("0?"))}catch(k){p=A.R(k) +o=A.bt(k) +if(h.b===0||f){n=e +l=p +j=o +i=A.wn(l,j) +l=new A.aO(l,j==null?A.id(l):j) +n.c6(l) +return n}else{h.d=p +h.c=o}}return e}, +Dq(a,b){var s,r,q=new A.v($.E,b.h("v<0>")),p=new A.jU(q,b.h("jU<0>")),o=new A.q_(p,b),n=new A.pZ(p) +for(s=t.H,r=0;r<2;++r)a[r].cw(o,n,s) +return q}, +F1(a,b){return new A.hz(a,b)}, +wn(a,b){if($.E===B.t)return null +return null}, +nV(a,b){if($.E!==B.t)A.wn(a,b) +if(b==null)if(t.yt.b(a)){b=a.gdj() +if(b==null){A.rT(a,B.aH) +b=B.aH}}else b=B.aH +else if(t.yt.b(a))A.rT(a,b) +return new A.aO(a,b)}, +bs(a,b){var s=new A.v($.E,b.h("v<0>")) +b.a(a) +s.a=8 +s.c=a +return s}, +vu(a,b,c){var s,r,q,p,o={},n=o.a=a +for(s=t.hR;r=n.a,(r&4)!==0;n=a){a=s.a(n.c) +o.a=a}if(n===b){s=A.xS() +b.c6(new A.aO(new A.cs(!0,n,null,"Cannot complete a future with itself"),s)) +return}q=b.a&1 +s=n.a=r|q +if((s&24)===0){p=t.F.a(b.c) +b.a=b.a&1|4 +b.c=n +n.j7(p) +return}if(!c)if(b.c==null)n=(s&16)===0||q!==0 +else n=!1 +else n=!0 +if(n){p=b.dE() +b.ej(o.a) +A.ff(b,p) +return}b.a^=2 +A.hX(null,null,b.b,t.Q.a(new A.vv(o,b)))}, +ff(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d={},c=d.a=a +for(s=t.n,r=t.F;;){q={} +p=c.a +o=(p&16)===0 +n=!o +if(b==null){if(n&&(p&1)===0){m=s.a(c.c) +A.hW(m.a,m.b)}return}q.a=b +l=b.a +for(c=b;l!=null;c=l,l=k){c.a=null +A.ff(d.a,c) +q.a=l +k=l.a}p=d.a +j=p.c +q.b=n +q.c=j +if(o){i=c.c +i=(i&1)!==0||(i&15)===8}else i=!0 +if(i){h=c.b.b +if(n){p=p.b===h +p=!(p||p)}else p=!1 +if(p){s.a(j) +A.hW(j.a,j.b) +return}g=$.E +if(g!==h)$.E=h +else g=null +c=c.c +if((c&15)===8)new A.vz(q,d,n).$0() +else if(o){if((c&1)!==0)new A.vy(q,j).$0()}else if((c&2)!==0)new A.vx(d,q).$0() +if(g!=null)$.E=g +c=q.c +if(c instanceof A.v){p=q.a.$ti +p=p.h("H<2>").b(c)||!p.y[1].b(c)}else p=!1 +if(p){f=q.a.b +if((c.a&24)!==0){e=r.a(f.c) +f.c=null +b=f.eM(e) +f.a=c.a&30|f.a&1 +f.c=c.c +d.a=c +continue}else A.vu(c,f,!0) +return}}f=q.a.b +e=r.a(f.c) +f.c=null +b=f.eM(e) +c=q.b +p=q.c +if(!c){f.$ti.c.a(p) +f.a=8 +f.c=p}else{s.a(p) +f.a=f.a&1|16 +f.c=p}d.a=f +c=f}}, +Az(a,b){var s +if(t.nW.b(a))return b.hW(a,t.z,t.K,t.l) +s=t.h_ +if(s.b(a))return s.a(a) +throw A.d(A.cY(a,"onError",u.w))}, +GO(){var s,r +for(s=$.hV;s!=null;s=$.hV){$.k8=null +r=s.b +$.hV=r +if(r==null)$.k7=null +s.a.$0()}}, +H1(){$.y9=!0 +try{A.GO()}finally{$.k8=null +$.y9=!1 +if($.hV!=null)$.ym().$1(A.AO())}}, +AG(a){var s=new A.mY(a),r=$.k7 +if(r==null){$.hV=$.k7=s +if(!$.y9)$.ym().$1(A.AO())}else $.k7=r.b=s}, +GW(a){var s,r,q,p=$.hV +if(p==null){A.AG(a) +$.k8=$.k7 +return}s=new A.mY(a) +r=$.k8 +if(r==null){s.b=p +$.hV=$.k8=s}else{q=r.b +s.b=q +$.k8=r.b=s +if(q==null)$.k7=s}}, +o3(a){var s=null,r=$.E +if(B.t===r){A.hX(s,s,B.t,a) +return}A.hX(s,s,r,t.Q.a(r.ho(a)))}, +zu(a,b){var s=null,r=b.h("dP<0>"),q=new A.dP(s,s,s,s,r) +q.aC(a) +q.iy() +return new A.ac(q,r.h("ac<1>"))}, +JH(a,b){A.dq(a,"stream",t.K) +return new A.nz(b.h("nz<0>"))}, +ci(a,b,c,d){var s=null +return c?new A.hP(b,s,s,a,d.h("hP<0>")):new A.dP(b,s,s,a,d.h("dP<0>"))}, +cj(a){return new A.jk(null,null,a.h("jk<0>"))}, +nX(a){var s,r,q +if(a==null)return +try{a.$0()}catch(q){s=A.R(q) +r=A.bt(q) +A.hW(A.ap(s),t.l.a(r))}}, +Fs(a,b,c,d,e,f){var s=$.E,r=e?1:0,q=c!=null?32:0,p=A.vg(s,b,f),o=A.xY(s,c),n=d==null?A.yc():d +return new A.di(a,p,o,t.Q.a(n),s,r|q,f.h("di<0>"))}, +vg(a,b,c){var s=b==null?A.Ha():b +return t.j4.H(c).h("1(2)").a(s)}, +xY(a,b){if(b==null)b=A.Hb() +if(t.sp.b(b))return a.hW(b,t.z,t.K,t.l) +if(t.eC.b(b))return t.h_.a(b) +throw A.d(A.as("handleError callback must take either an Object (the error), or both an Object (the error) and a StackTrace.",null))}, +GP(a){}, +GR(a,b){A.hW(A.ap(a),t.l.a(b))}, +GQ(){}, +zJ(a,b){var s=new A.hG($.E,b.h("hG<0>")) +A.o3(s.gj1()) +if(a!=null)s.c=t.Q.a(a) +return s}, +AE(a,b,c,d){var s,r,q,p +try{b.$1(a.$0())}catch(p){s=A.R(p) +r=A.bt(p) +q=A.wn(s,r) +if(q!=null)c.$2(q.a,q.b) +else c.$2(s,r)}}, +Ge(a,b,c){var s=a.U() +if(s!==$.fu())s.dd(new A.wf(b,c)) +else b.aD(c)}, +Ak(a,b){return new A.we(a,b)}, +Gf(a,b,c){var s=a.U() +if(s!==$.fu())s.dd(new A.wg(b,c)) +else b.bM(c)}, +eY(a,b){var s=$.E +if(s===B.t)return A.xV(a,t.Q.a(b)) +return A.xV(a,t.Q.a(s.ho(b)))}, +hW(a,b){A.GW(new A.wt(a,b))}, +AA(a,b,c,d,e){var s,r=$.E +if(r===c)return d.$0() +$.E=c +s=r +try{r=d.$0() +return r}finally{$.E=s}}, +AC(a,b,c,d,e,f,g){var s,r=$.E +if(r===c)return d.$1(e) +$.E=c +s=r +try{r=d.$1(e) +return r}finally{$.E=s}}, +AB(a,b,c,d,e,f,g,h,i){var s,r=$.E +if(r===c)return d.$2(e,f) +$.E=c +s=r +try{r=d.$2(e,f) +return r}finally{$.E=s}}, +hX(a,b,c,d){t.Q.a(d) +if(B.t!==c){d=c.ho(d) +d=d}A.AG(d)}, +vd:function vd(a){this.a=a}, +vc:function vc(a,b,c){this.a=a +this.b=b +this.c=c}, +ve:function ve(a){this.a=a}, +vf:function vf(a){this.a=a}, +nF:function nF(){this.b=null}, +w2:function w2(a,b){this.a=a +this.b=b}, +jj:function jj(a,b){this.a=a +this.b=!1 +this.$ti=b}, +wc:function wc(a){this.a=a}, +wd:function wd(a){this.a=a}, +wx:function wx(a){this.a=a}, +dm:function dm(a,b){var _=this +_.a=a +_.e=_.d=_.c=_.b=null +_.$ti=b}, +dV:function dV(a,b){this.a=a +this.$ti=b}, +aO:function aO(a,b){this.a=a +this.b=b}, +aA:function aA(a,b){this.a=a +this.$ti=b}, +cU:function cU(a,b,c,d,e,f,g){var _=this +_.ay=0 +_.CW=_.ch=null +_.w=a +_.a=b +_.b=c +_.c=d +_.d=e +_.e=f +_.r=_.f=null +_.$ti=g}, +jn:function jn(){}, +jk:function jk(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.r=_.f=_.e=_.d=null +_.$ti=c}, +pY:function pY(a,b,c){this.a=a +this.b=b +this.c=c}, +q1:function q1(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +q0:function q0(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f}, +q_:function q_(a,b){this.a=a +this.b=b}, +pZ:function pZ(a){this.a=a}, +hz:function hz(a,b){this.a=a +this.b=b}, +fb:function fb(){}, +W:function W(a,b){this.a=a +this.$ti=b}, +jU:function jU(a,b){this.a=a +this.$ti=b}, +cD:function cD(a,b,c,d,e){var _=this +_.a=null +_.b=a +_.c=b +_.d=c +_.e=d +_.$ti=e}, +v:function v(a,b){var _=this +_.a=0 +_.b=a +_.c=null +_.$ti=b}, +vr:function vr(a,b){this.a=a +this.b=b}, +vw:function vw(a,b){this.a=a +this.b=b}, +vv:function vv(a,b){this.a=a +this.b=b}, +vt:function vt(a,b){this.a=a +this.b=b}, +vs:function vs(a,b){this.a=a +this.b=b}, +vz:function vz(a,b,c){this.a=a +this.b=b +this.c=c}, +vA:function vA(a,b){this.a=a +this.b=b}, +vB:function vB(a){this.a=a}, +vy:function vy(a,b){this.a=a +this.b=b}, +vx:function vx(a,b){this.a=a +this.b=b}, +vC:function vC(a,b){this.a=a +this.b=b}, +vD:function vD(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +vE:function vE(a,b,c){this.a=a +this.b=b +this.c=c}, +vF:function vF(a,b){this.a=a +this.b=b}, +mY:function mY(a){this.a=a +this.b=null}, +aa:function aa(){}, +tQ:function tQ(a,b){this.a=a +this.b=b}, +tR:function tR(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f}, +tO:function tO(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +tP:function tP(a,b){this.a=a +this.b=b}, +tU:function tU(a){this.a=a}, +tV:function tV(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +tS:function tS(a,b){this.a=a +this.b=b}, +tT:function tT(){}, +tW:function tW(a,b){this.a=a +this.b=b}, +tX:function tX(a,b){this.a=a +this.b=b}, +tM:function tM(a){this.a=a}, +tN:function tN(a,b,c){this.a=a +this.b=b +this.c=c}, +eV:function eV(){}, +jb:function jb(){}, +fm:function fm(){}, +w1:function w1(a){this.a=a}, +w0:function w0(a){this.a=a}, +nE:function nE(){}, +mZ:function mZ(){}, +dP:function dP(a,b,c,d,e){var _=this +_.a=null +_.b=0 +_.c=null +_.d=a +_.e=b +_.f=c +_.r=d +_.$ti=e}, +hP:function hP(a,b,c,d,e){var _=this +_.a=null +_.b=0 +_.c=null +_.d=a +_.e=b +_.f=c +_.r=d +_.$ti=e}, +ac:function ac(a,b){this.a=a +this.$ti=b}, +di:function di(a,b,c,d,e,f,g){var _=this +_.w=a +_.a=b +_.b=c +_.c=d +_.d=e +_.e=f +_.r=_.f=null +_.$ti=g}, +fn:function fn(a,b){this.a=a +this.$ti=b}, +b_:function b_(){}, +vi:function vi(a,b,c){this.a=a +this.b=b +this.c=c}, +vh:function vh(a){this.a=a}, +hO:function hO(){}, +dj:function dj(){}, +cC:function cC(a,b){this.b=a +this.a=null +this.$ti=b}, +fd:function fd(a,b){this.b=a +this.c=b +this.a=null}, +n9:function n9(){}, +cE:function cE(a){var _=this +_.a=0 +_.c=_.b=null +_.$ti=a}, +vT:function vT(a,b){this.a=a +this.b=b}, +hG:function hG(a,b){var _=this +_.a=1 +_.b=a +_.c=null +_.$ti=b}, +nz:function nz(a){this.$ti=a}, +js:function js(a){this.$ti=a}, +wf:function wf(a,b){this.a=a +this.b=b}, +we:function we(a,b){this.a=a +this.b=b}, +wg:function wg(a,b){this.a=a +this.b=b}, +jt:function jt(a,b){this.a=a +this.$ti=b}, +hN:function hN(a,b,c,d,e,f){var _=this +_.w=$ +_.x=null +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.r=_.f=null +_.$ti=f}, +jm:function jm(a,b,c){this.a=a +this.b=b +this.$ti=c}, +k5:function k5(){}, +nv:function nv(){}, +vZ:function vZ(a,b){this.a=a +this.b=b}, +w_:function w_(a,b,c){this.a=a +this.b=b +this.c=c}, +wt:function wt(a,b){this.a=a +this.b=b}, +zM(a,b){var s=a[b] +return s===a?null:s}, +y_(a,b,c){if(c==null)a[b]=a +else a[b]=c}, +xZ(){var s=Object.create(null) +A.y_(s,"",s) +delete s[""] +return s}, +xK(a,b,c,d){if(b==null){if(a==null)return new A.bS(c.h("@<0>").H(d).h("bS<1,2>")) +b=A.Hg()}else{if(A.Io()===b&&A.In()===a)return new A.iE(c.h("@<0>").H(d).h("iE<1,2>")) +if(a==null)a=A.Hf()}return A.FB(a,b,null,c,d)}, +G(a,b,c){return b.h("@<0>").H(c).h("lA<1,2>").a(A.AV(a,new A.bS(b.h("@<0>").H(c).h("bS<1,2>"))))}, +I(a,b){return new A.bS(a.h("@<0>").H(b).h("bS<1,2>"))}, +FB(a,b,c,d,e){return new A.jC(a,b,new A.vR(d),d.h("@<0>").H(e).h("jC<1,2>"))}, +z3(a){return new A.fg(a.h("fg<0>"))}, +cN(a){return new A.fg(a.h("fg<0>"))}, +y0(){var s=Object.create(null) +s[""]=s +delete s[""] +return s}, +FC(a,b,c){var s=new A.fh(a,b,c.h("fh<0>")) +s.c=a.e +return s}, +Gj(a,b){return J.a0(a,b)}, +Gk(a){return J.am(a)}, +z2(a,b,c){var s=A.xK(null,null,b,c) +a.aa(0,new A.r7(s,b,c)) +return s}, +DN(a,b){var s,r,q=A.z3(b) +for(s=a.length,r=0;r=$.ca.length)return A.b($.ca,-1) +$.ca.pop()}r=s.a +return r.charCodeAt(0)==0?r:r}, +DP(a){return 8}, +FD(a,b){return new A.fi(a,a.c,a.d,a.b,b.h("fi<0>"))}, +FY(){throw A.d(A.aw("Cannot change an unmodifiable set"))}, +jv:function jv(){}, +jy:function jy(a){var _=this +_.a=0 +_.e=_.d=_.c=_.b=null +_.$ti=a}, +jw:function jw(a,b){this.a=a +this.$ti=b}, +jx:function jx(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.d=null +_.$ti=c}, +jC:function jC(a,b,c,d){var _=this +_.w=a +_.x=b +_.y=c +_.a=0 +_.f=_.e=_.d=_.c=_.b=null +_.r=0 +_.$ti=d}, +vR:function vR(a){this.a=a}, +fg:function fg(a){var _=this +_.a=0 +_.f=_.e=_.d=_.c=_.b=null +_.r=0 +_.$ti=a}, +nq:function nq(a){this.a=a +this.b=null}, +fh:function fh(a,b,c){var _=this +_.a=a +_.b=b +_.d=_.c=null +_.$ti=c}, +r7:function r7(a,b,c){this.a=a +this.b=b +this.c=c}, +P:function P(){}, +a1:function a1(){}, +rc:function rc(a){this.a=a}, +re:function re(a,b){this.a=a +this.b=b}, +nM:function nM(){}, +iL:function iL(){}, +f8:function f8(a,b){this.a=a +this.$ti=b}, +iJ:function iJ(a,b){var _=this +_.a=a +_.d=_.c=_.b=0 +_.$ti=b}, +fi:function fi(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=null +_.$ti=e}, +cR:function cR(){}, +jP:function jP(){}, +nO:function nO(){}, +jd:function jd(a,b){this.a=a +this.$ti=b}, +k_:function k_(){}, +k0:function k0(){}, +Ax(a,b){var s,r,q,p=null +try{p=JSON.parse(a)}catch(r){s=A.R(r) +q=A.an(String(s),null,null) +throw A.d(q)}q=A.wi(p) +return q}, +wi(a){var s +if(a==null)return null +if(typeof a!="object")return a +if(!Array.isArray(a))return new A.nm(a,Object.create(null)) +for(s=0;s>>2,h=3-(a0&3) +for(s=J.at(b),r=a.length,q=f.$flags|0,p=c,o=0;p>>0 +i=(i<<8|n)&16777215;--h +if(h===0){m=g+1 +l=i>>>18&63 +if(!(l>>12&63 +if(!(l>>6&63 +if(!(l=0&&o<=255){if(e&&h<3){m=g+1 +j=m+1 +if(3-h===1){s=i>>>2&63 +if(!(s>>10&63 +if(!(s>>4&63 +if(!(s>>0}for(p=c;p255)break;++p}throw A.d(A.cY(b,"Not a byte value at index "+p+": 0x"+B.c.i4(s.k(b,p),16),null))}, +Fp(a,b,c,d,a0,a1){var s,r,q,p,o,n,m,l,k,j,i="Invalid encoding before padding",h="Invalid character",g=B.c.aT(a1,2),f=a1&3,e=$.yn() +for(s=a.length,r=e.length,q=d.$flags|0,p=b,o=0;p=0){g=(g<<6|l)&16777215 +f=f+1&3 +if(f===0){k=a0+1 +q&2&&A.ai(d) +m=d.length +if(!(a0>>16&255 +a0=k+1 +if(!(k>>8&255 +k=a0+1 +if(!(a01){if(o>127)break +if(f===3){if((g&3)!==0)throw A.d(A.an(i,a,p)) +k=a0+1 +q&2&&A.ai(d) +s=d.length +if(!(a0>>10 +if(!(k>>2}else{if((g&15)!==0)throw A.d(A.an(i,a,p)) +q&2&&A.ai(d) +if(!(a0>>4}j=(3-f)*3 +if(n===37)j+=2 +return A.zH(a,p+1,c,-j-1)}throw A.d(A.an(h,a,p))}if(o>=0&&o<=127)return(g<<2|f)>>>0 +for(p=b;p127)break}throw A.d(A.an(h,a,p))}, +Fn(a,b,c,d){var s=A.Fo(a,b,c),r=(d&3)+(s-b),q=B.c.aT(r,2)*3,p=r&3 +if(p!==0&&s0)return new Uint8Array(q) +return $.BQ()}, +Fo(a,b,c){var s,r=a.length,q=c,p=q,o=0 +for(;;){if(!(p>b&&o<2))break +A:{--p +if(!(p>=0&&p=0&&p=0&&p0;){if(!(b3?s-3:s)===2){if(q!==51)break;++b;--s +if(b===c)break +if(!(b>>0 +if(q>=0&&q<=255)return +A.FA(a,b,c)}, +FA(a,b,c){var s,r,q +for(s=J.at(a),r=b;r255)throw A.d(A.an("Source contains non-Latin-1 characters.",a,r))}}, +Ae(a){switch(a){case 65:return"Missing extension byte" +case 67:return"Unexpected extension byte" +case 69:return"Invalid UTF-8 byte" +case 71:return"Overlong encoding" +case 73:return"Out of unicode range" +case 75:return"Encoded surrogate" +case 77:return"Unfinished UTF-8 octet sequence" +default:return""}}, +nm:function nm(a,b){this.a=a +this.b=b +this.c=null}, +nn:function nn(a){this.a=a}, +nk:function nk(a,b,c){this.b=a +this.c=b +this.a=c}, +w9:function w9(){}, +w8:function w8(){}, +kr:function kr(){}, +nK:function nK(){}, +kt:function kt(a){this.a=a}, +nL:function nL(a,b){this.a=a +this.b=b}, +nJ:function nJ(){}, +ks:function ks(a,b){this.a=a +this.b=b}, +nc:function nc(a){this.a=a}, +ny:function ny(a){this.a=a}, +ig:function ig(){}, +ky:function ky(){}, +jl:function jl(a){this.a=0 +this.b=a}, +n2:function n2(a){this.c=null +this.a=0 +this.b=a}, +n1:function n1(){}, +mX:function mX(a,b){this.a=a +this.b=b}, +kx:function kx(){}, +n_:function n_(){this.a=0}, +n0:function n0(a,b){this.a=a +this.b=b}, +c_:function c_(){}, +jo:function jo(a){this.a=a}, +jp:function jp(a,b){this.a=a +this.b=b +this.c=0}, +io:function io(){}, +fc:function fc(a,b,c){this.a=a +this.b=b +this.$ti=c}, +bE:function bE(){}, +a7:function a7(){}, +ps:function ps(a){this.a=a}, +dz:function dz(){}, +pN:function pN(){}, +pO:function pO(){}, +iF:function iF(a,b){this.a=a +this.b=b}, +ln:function ln(a,b){this.a=a +this.b=b}, +lm:function lm(){}, +lp:function lp(a){this.b=a}, +nl:function nl(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=!1}, +lo:function lo(a){this.a=a}, +vP:function vP(){}, +vQ:function vQ(a,b){this.a=a +this.b=b}, +vO:function vO(a,b,c){this.c=a +this.a=b +this.b=c}, +lu:function lu(){}, +lw:function lw(a){this.a=a}, +lv:function lv(a,b){this.a=a +this.b=b}, +jA:function jA(a){this.a=a}, +np:function np(a){this.a=a}, +lz:function lz(){}, +cA:function cA(){}, +nC:function nC(a,b){this.a=a +this.b=b}, +fp:function fp(){}, +fo:function fo(a){this.a=a}, +k4:function k4(a,b,c){this.a=a +this.b=b +this.c=c}, +mJ:function mJ(){}, +mK:function mK(){}, +nQ:function nQ(a){this.b=this.a=0 +this.c=a}, +nR:function nR(a,b){var _=this +_.d=a +_.b=_.a=0 +_.c=b}, +jf:function jf(a){this.a=a}, +hS:function hS(a){this.a=a +this.b=16 +this.c=0}, +nU:function nU(){}, +II(a){return A.i5(a)}, +fs(a){var s=A.bJ(a,null) +if(s!=null)return s +throw A.d(A.an(a,null,null))}, +Dj(a,b){a=A.aT(a,new Error()) +if(a==null)a=A.ap(a) +a.stack=b.l(0) +throw a}, +bU(a,b,c,d){var s,r=c?J.yY(a,d):J.xG(a,d) +if(a!==0&&b!=null)for(s=0;s")) +for(s=J.aN(a);s.q();)B.b.j(r,c.a(s.gA())) +if(b)return r +r.$flags=1 +return r}, +N(a,b){var s,r +if(Array.isArray(a))return A.e(a.slice(0),b.h("z<0>")) +s=A.e([],b.h("z<0>")) +for(r=J.aN(a);r.q();)B.b.j(s,r.gA()) +return s}, +cO(a,b){var s=A.xL(a,!1,b) +s.$flags=3 +return s}, +c5(a,b,c){var s,r,q,p,o +A.bq(b,"start") +s=c==null +r=!s +if(r){q=c-b +if(q<0)throw A.d(A.ay(c,b,null,"end",null)) +if(q===0)return""}if(Array.isArray(a)){p=a +o=p.length +if(s)c=o +return A.zm(b>0||c0)a=J.o9(a,b) +s=A.N(a,t.S) +return A.zm(s)}, +ER(a){return A.ak(A.a4(a))}, +EQ(a){return A.ak(a)}, +ES(a,b,c){var s=a.length +if(b>=s)return"" +return A.Et(a,b,c==null||c>s?s:c)}, +O(a,b){return new A.dC(a,A.xH(a,!1,b,!1,!1,""))}, +IH(a,b){return a==null?b==null:a===b}, +tY(a,b,c){var s=J.aN(b) +if(!s.q())return a +if(c.length===0){do a+=A.u(s.gA()) +while(s.q())}else{a+=A.u(s.gA()) +while(s.q())a=a+c+A.u(s.gA())}return a}, +xW(){var s,r,q=A.Eo() +if(q==null)throw A.d(A.aw("'Uri.base' is not supported")) +s=$.zE +if(s!=null&&q===$.zD)return s +r=A.hC(q) +$.zE=r +$.zD=q +return r}, +cG(a,b,c,d){var s,r,q,p,o,n="0123456789ABCDEF" +if(c===B.l){s=$.BT() +s=s.b.test(b)}else s=!1 +if(s)return b +r=c.cX(b) +for(s=r.length,q=0,p="";q>>4&15]+n[o&15]}return p.charCodeAt(0)==0?p:p}, +xS(){return A.bt(new Error())}, +D3(a,b,c,d,e,f,g,h,i){var s="microsecond",r=A.Eu(a,b,c,d,e,f,g,h,i) +if(r==null)return null +if(h>999)A.K(A.ay(h,0,999,s,null)) +if(r<-864e13||r>864e13)A.K(A.ay(r,-864e13,864e13,"millisecondsSinceEpoch",null)) +if(r===864e13&&h!==0)A.K(A.cY(h,s,"Time including microseconds is outside valid range")) +A.dq(i,"isUtc",t.y) +return new A.bk(r,h,i)}, +D5(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c=$.Bo().d0(a) +if(c!=null){s=new A.pA() +r=c.b +if(1>=r.length)return A.b(r,1) +q=r[1] +q.toString +p=A.fs(q) +if(2>=r.length)return A.b(r,2) +q=r[2] +q.toString +o=A.fs(q) +if(3>=r.length)return A.b(r,3) +q=r[3] +q.toString +n=A.fs(q) +if(4>=r.length)return A.b(r,4) +m=s.$1(r[4]) +if(5>=r.length)return A.b(r,5) +l=s.$1(r[5]) +if(6>=r.length)return A.b(r,6) +k=s.$1(r[6]) +if(7>=r.length)return A.b(r,7) +j=new A.pB().$1(r[7]) +i=B.c.W(j,1000) +q=r.length +if(8>=q)return A.b(r,8) +h=r[8]!=null +if(h){if(9>=q)return A.b(r,9) +g=r[9] +if(g!=null){f=g==="-"?-1:1 +if(10>=q)return A.b(r,10) +q=r[10] +q.toString +e=A.fs(q) +if(11>=r.length)return A.b(r,11) +l-=f*(s.$1(r[11])+60*e)}}d=A.D3(p,o,n,m,l,k,i,j%1000,h) +if(d==null)throw A.d(A.an("Time out of range",a,null)) +return d}else throw A.d(A.an("Invalid date format",a,null))}, +yP(a){var s,r +try{s=A.D5(a) +return s}catch(r){if(t.Bj.b(A.R(r)))return null +else throw r}}, +yO(a){var s=Math.abs(a),r=a<0?"-":"" +if(s>=1000)return""+a +if(s>=100)return r+"0"+s +if(s>=10)return r+"00"+s +return r+"000"+s}, +D4(a){var s=Math.abs(a),r=a<0?"-":"+" +if(s>=1e5)return r+s +return r+"0"+s}, +pz(a){if(a>=100)return""+a +if(a>=10)return"0"+a +return"00"+a}, +cZ(a){if(a>=10)return""+a +return"0"+a}, +it(a,b,c,d,e,f){return new A.aX(c+1000*d+1e6*f+6e7*e+36e8*b+864e8*a)}, +l0(a){if(typeof a=="number"||A.nW(a)||a==null)return J.b9(a) +if(typeof a=="string")return JSON.stringify(a) +return A.zl(a)}, +Dk(a,b){A.dq(a,"error",t.K) +A.dq(b,"stackTrace",t.l) +A.Dj(a,b)}, +kv(a){return new A.ku(a)}, +as(a,b){return new A.cs(!1,null,b,a)}, +cY(a,b,c){return new A.cs(!0,a,b,c)}, +kq(a,b,c){return a}, +b7(a){var s=null +return new A.hl(s,s,!1,s,s,a)}, +t_(a,b){return new A.hl(null,null,!0,a,b,"Value not in range")}, +ay(a,b,c,d,e){return new A.hl(b,c,!0,a,d,"Invalid value")}, +zo(a,b,c,d){if(ac)throw A.d(A.ay(a,b,c,d,null)) +return a}, +aR(a,b,c){if(0>a||a>c)throw A.d(A.ay(a,0,c,"start",null)) +if(b!=null){if(a>b||b>c)throw A.d(A.ay(b,a,c,"end",null)) +return b}return c}, +bq(a,b){if(a<0)throw A.d(A.ay(a,0,null,b,null)) +return a}, +le(a,b,c,d,e){return new A.ld(b,!0,a,e,"Index out of range")}, +aw(a){return new A.je(a)}, +zB(a){return new A.mF(a)}, +aC(a){return new A.bX(a)}, +aG(a){return new A.kM(a)}, +yT(a){return new A.nd(a)}, +an(a,b,c){return new A.bG(a,b,c)}, +DC(a,b,c){var s,r +if(A.yh(a)){if(b==="("&&c===")")return"(...)" +return b+"..."+c}s=A.e([],t.s) +B.b.j($.ca,a) +try{A.GK(a,s)}finally{if(0>=$.ca.length)return A.b($.ca,-1) +$.ca.pop()}r=A.tY(b,t.tY.a(s),", ")+c +return r.charCodeAt(0)==0?r:r}, +r_(a,b,c){var s,r +if(A.yh(a))return b+"..."+c +s=new A.T(b) +B.b.j($.ca,a) +try{r=s +r.a=A.tY(r.a,a,", ")}finally{if(0>=$.ca.length)return A.b($.ca,-1) +$.ca.pop()}s.a+=c +r=s.a +return r.charCodeAt(0)==0?r:r}, +GK(a,b){var s,r,q,p,o,n,m,l=a.gJ(a),k=0,j=0 +for(;;){if(!(k<80||j<3))break +if(!l.q())return +s=A.u(l.gA()) +B.b.j(b,s) +k+=s.length+2;++j}if(!l.q()){if(j<=5)return +if(0>=b.length)return A.b(b,-1) +r=b.pop() +if(0>=b.length)return A.b(b,-1) +q=b.pop()}else{p=l.gA();++j +if(!l.q()){if(j<=4){B.b.j(b,A.u(p)) +return}r=A.u(p) +if(0>=b.length)return A.b(b,-1) +q=b.pop() +k+=r.length+2}else{o=l.gA();++j +for(;l.q();p=o,o=n){n=l.gA();++j +if(j>100){for(;;){if(!(k>75&&j>3))break +if(0>=b.length)return A.b(b,-1) +k-=b.pop().length+2;--j}B.b.j(b,"...") +return}}q=A.u(p) +r=A.u(o) +k+=r.length+q.length+4}}if(j>b.length+2){k+=5 +m="..."}else m=null +for(;;){if(!(k>80&&b.length>3))break +if(0>=b.length)return A.b(b,-1) +k-=b.pop().length+2 +if(m==null){k+=5 +m="..."}}if(m!=null)B.b.j(b,m) +B.b.j(b,q) +B.b.j(b,r)}, +z6(a,b,c,d,e){return new A.ef(a,b.h("@<0>").H(c).H(d).H(e).h("ef<1,2,3,4>"))}, +bo(a,b,c,d,e,f,g){var s +if(B.f===c){s=J.am(a) +b=J.am(b) +return A.hx(A.az(A.az($.fv(),s),b))}if(B.f===d){s=J.am(a) +b=J.am(b) +c=J.am(c) +return A.hx(A.az(A.az(A.az($.fv(),s),b),c))}if(B.f===e){s=J.am(a) +b=J.am(b) +c=J.am(c) +d=J.am(d) +return A.hx(A.az(A.az(A.az(A.az($.fv(),s),b),c),d))}if(B.f===f){s=J.am(a) +b=J.am(b) +c=J.am(c) +d=J.am(d) +e=J.am(e) +return A.hx(A.az(A.az(A.az(A.az(A.az($.fv(),s),b),c),d),e))}if(B.f===g){s=J.am(a) +b=J.am(b) +c=J.am(c) +d=J.am(d) +e=J.am(e) +f=J.am(f) +return A.hx(A.az(A.az(A.az(A.az(A.az(A.az($.fv(),s),b),c),d),e),f))}s=J.am(a) +b=J.am(b) +c=J.am(c) +d=J.am(d) +e=J.am(e) +f=J.am(f) +g=J.am(g) +g=A.hx(A.az(A.az(A.az(A.az(A.az(A.az(A.az($.fv(),s),b),c),d),e),f),g)) +return g}, +eG(a){var s,r,q=$.fv() +for(s=a.length,r=0;r"))}, +Gh(a,b){return 65536+((a&1023)<<10)+(b&1023)}, +hC(a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3=null,a4=a5.length +if(a4>=5){if(4>=a4)return A.b(a5,4) +s=((a5.charCodeAt(4)^58)*3|a5.charCodeAt(0)^100|a5.charCodeAt(1)^97|a5.charCodeAt(2)^116|a5.charCodeAt(3)^97)>>>0 +if(s===0)return A.zC(a4=14)B.b.i(r,7,a4) +q=r[1] +if(q>=0)if(A.AF(a5,0,q,20,r)===20)r[7]=q +p=r[2]+1 +o=r[3] +n=r[4] +m=r[5] +l=r[6] +if(lq+3)){i=o>0 +if(!(i&&o+1===n)){if(!B.a.a6(a5,"\\",n))if(p>0)h=B.a.a6(a5,"\\",p-1)||B.a.a6(a5,"\\",p-2) +else h=!1 +else h=!0 +if(!h){if(!(mn+2&&B.a.a6(a5,"/..",m-3) +else h=!0 +if(!h)if(q===4){if(B.a.a6(a5,"file",0)){if(p<=0){if(!B.a.a6(a5,"/",n)){g="file:///" +s=3}else{g="file://" +s=2}a5=g+B.a.m(a5,n,a4) +m+=s +l+=s +a4=a5.length +p=7 +o=7 +n=7}else if(n===m){++l +f=m+1 +a5=B.a.bI(a5,n,m,"/");++a4 +m=f}j="file"}else if(B.a.a6(a5,"http",0)){if(i&&o+3===n&&B.a.a6(a5,"80",o+1)){l-=3 +e=n-3 +m-=3 +a5=B.a.bI(a5,o,n,"") +a4-=3 +n=e}j="http"}}else if(q===5&&B.a.a6(a5,"https",0)){if(i&&o+4===n&&B.a.a6(a5,"443",o+1)){l-=4 +e=n-4 +m-=4 +a5=B.a.bI(a5,o,n,"") +a4-=3 +n=e}j="https"}k=!h}}}}if(k)return new A.cm(a40)j=A.y4(a5,0,q) +else{if(q===0)A.hR(a5,0,"Invalid empty scheme") +j=""}d=a3 +if(p>0){c=q+3 +b=c=c)n=0 +else{if(!(q>=0&&q=0&&b=0&&r=97&&o<=102)continue +if(p===46){if(q-1===b)return new A.bG(n,a,q) +r=q +break}return new A.bG("Unexpected character",a,q-1)}if(r-1===b)return new A.bG(n,a,r) +return new A.bG("Missing '.' in IPvFuture address",a,r)}if(r===c)return new A.bG("Missing address in IPvFuture address, host, cursor",null,null) +for(;;){if(!(r>=0&&r=0&&a4=a5)j=0 +else{if(!(n=97&&f<=102)g=f-87 +else break A +k=h}if(nm){if(j===46){if(k){if(p<=6){A.Fa(a3,m,a5,s,p*2) +p+=2 +n=a5 +break}a2.$2(a1,m)}break}o=p*2 +e=B.c.aT(l,8) +if(!(o<16))return A.b(s,o) +s[o]=e;++o +if(!(o<16))return A.b(s,o) +s[o]=l&255;++p +if(j===58){if(p<8){++n +m=n +l=0 +k=!0 +continue}a2.$2(a1,n)}break}if(j===58){if(q<0){d=p+1;++n +q=p +p=d +m=n +continue}a2.$2("only one wildcard `::` is allowed",n)}if(q!==p-1)a2.$2("missing part",n) +break}if(n0){a=c*2 +a0=16-b*2 +B.H.bd(s,a0,16,s,a) +B.H.pZ(s,a,a0,0)}}return s}, +k2(a,b,c,d,e,f,g){return new A.k1(a,b,c,d,e,f,g)}, +A2(a){if(a==="http")return 80 +if(a==="https")return 443 +return 0}, +hR(a,b,c){throw A.d(A.an(c,a,b))}, +G_(a,b){var s,r,q +for(s=a.length,r=0;r=0&&b=0&&r=b&&o=b&&s=0&&r=o){if(h==null)h=new A.T("") +if(q=0&&r=n){if(p==null)p=new A.T("") +if(q=k)return"%" +s=b+1 +if(!(s>=0&&s=0))return A.b(a,l) +q=a.charCodeAt(l) +p=A.wO(r) +o=A.wO(q) +if(p<0||o<0)return"%" +n=p*16+o +if(n<127){if(!(n>=0))return A.b(m,n) +l=(m.charCodeAt(n)&1)!==0}else l=!1 +if(l)return A.ak(c&&65<=n&&90>=n?(n|32)>>>0:n) +if(r>=97||q>=97)return B.a.m(a,b,b+3).toUpperCase() +return null}, +y3(a){var s,r,q,p,o,n,m,l,k="0123456789ABCDEF" +if(a<=127){s=new Uint8Array(3) +s[0]=37 +r=a>>>4 +if(!(r<16))return A.b(k,r) +s[1]=k.charCodeAt(r) +s[2]=k.charCodeAt(a&15)}else{if(a>2047)if(a>65535){q=240 +p=4}else{q=224 +p=3}else{q=192 +p=2}r=3*p +s=new Uint8Array(r) +for(o=0;--p,p>=0;q=128){n=B.c.oM(a,6*p)&63|q +if(!(o>>4 +if(!(l<16))return A.b(k,l) +if(!(m=0&&q=m)return A.b(s,-1) +s.pop() +if(s.length===0)B.b.j(s,"")}p=!0}else{p="."===n +if(!p)B.b.j(s,n)}}if(p)B.b.j(s,"") +return B.b.S(s,"/")}, +y6(a,b){var s,r,q,p,o,n +if(!A.Aa(a))return!b?A.A3(a):a +s=A.e([],t.s) +for(r=a.split("/"),q=r.length,p=!1,o=0;o=s.length)return A.b(s,-1) +s.pop()}else B.b.j(s,"..") +p=!0}else{p="."===n +if(!p)B.b.j(s,n.length===0&&s.length===0?"./":n)}}if(s.length===0)return"./" +if(p)B.b.j(s,"") +if(!b){if(0>=s.length)return A.b(s,0) +B.b.i(s,0,A.A3(s[0]))}return B.b.S(s,"/")}, +A3(a){var s,r,q,p=u.S,o=a.length +if(o>=2&&A.A4(a.charCodeAt(0)))for(s=1;s127)throw A.d(A.as("Illegal percent encoding in URI",null)) +if(r===37){if(n+3>o)throw A.d(A.as("Truncated URI",null)) +B.b.j(p,A.G1(a,n+1)) +n+=2}else B.b.j(p,r)}}return d.b5(p)}, +A4(a){var s=a|32 +return 97<=s&&s<=122}, +zC(a,b,c){var s,r,q,p,o,n,m,l,k="Invalid MIME type",j=A.e([b-1],t.t) +for(s=a.length,r=b,q=-1,p=null;rb)throw A.d(A.an(k,a,r)) +while(p!==44){B.b.j(j,r);++r +for(o=-1;r=0))return A.b(a,r) +p=a.charCodeAt(r) +if(p===61){if(o<0)o=r}else if(p===59||p===44)break}if(o>=0)B.b.j(j,o) +else{n=B.b.gaX(j) +if(p!==44||r!==n+7||!B.a.a6(a,"base64",n+1))throw A.d(A.an("Expecting '='",a,r)) +break}}B.b.j(j,r) +m=r+1 +if((j.length&1)===1)a=B.cG.qo(a,m,s) +else{l=A.Ab(a,m,s,256,!0,!1) +if(l!=null)a=B.a.bI(a,m,s,l)}return new A.uS(a,j,c)}, +AF(a,b,c,d,e){var s,r,q,p,o,n='\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe3\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0e\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\n\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\xeb\xeb\x8b\xeb\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x83\xeb\xeb\x8b\xeb\x8b\xeb\xcd\x8b\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x92\x83\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x8b\xeb\x8b\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xebD\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12D\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe8\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\x05\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x10\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\f\xec\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\xec\f\xec\f\xec\xcd\f\xec\f\f\f\f\f\f\f\f\f\xec\f\f\f\f\f\f\f\f\f\f\xec\f\xec\f\xec\f\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\r\xed\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\xed\r\xed\r\xed\xed\r\xed\r\r\r\r\r\r\r\r\r\xed\r\r\r\r\r\r\r\r\r\r\xed\r\xed\r\xed\r\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0f\xea\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe9\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\t\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x11\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xe9\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\t\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x13\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\xf5\x15\x15\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5' +for(s=a.length,r=b;r95)q=31 +p=d*96+q +if(!(p<2112))return A.b(n,p) +o=n.charCodeAt(p) +d=o&31 +B.b.i(e,o>>>5,r)}return d}, +zW(a){if(a.b===7&&B.a.u(a.a,"package")&&a.c<=0)return A.AI(a.a,a.e,a.f) +return-1}, +AI(a,b,c){var s,r,q,p +for(s=a.length,r=b,q=0;r=0&&r=1)return a.$1(b) +return a.$0()}, +Gd(a,b,c,d){t.BO.a(a) +A.a4(d) +if(d>=2)return a.$2(b,c) +if(d===1)return a.$1(b) +return a.$0()}, +Aw(a){return a==null||A.nW(a)||typeof a=="number"||typeof a=="string"||t.kT.b(a)||t.p.b(a)||t.gJ.b(a)||t.EE.b(a)||t.ys.b(a)||t.fO.b(a)||t.tu.b(a)||t.D4.b(a)||t.ni.b(a)||t.l2.b(a)||t.yp.b(a)}, +B2(a){if(A.Aw(a))return a +return new A.wX(new A.jy(t.BT)).$1(a)}, +B7(a,b){var s=new A.v($.E,b.h("v<0>")),r=new A.W(s,b.h("W<0>")) +a.then(A.i1(new A.x0(r,b),1),A.i1(new A.x1(r),1)) +return s}, +wX:function wX(a){this.a=a}, +x0:function x0(a,b){this.a=a +this.b=b}, +x1:function x1(a){this.a=a}, +B4(a,b,c){A.Hd(c,t.fY,"T","max") +return Math.max(c.a(a),c.a(b))}, +vM:function vM(a){this.a=a}, +d_:function d_(){}, +j7:function j7(a){this.$ti=a}, +tI:function tI(a){this.a=a}, +tJ:function tJ(a,b){this.a=a +this.b=b}, +S:function S(){}, +oR:function oR(a){this.a=a}, +oS:function oS(a){this.a=a}, +oT:function oT(a,b){this.a=a +this.b=b}, +oU:function oU(a){this.a=a}, +oV:function oV(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +yy(a,b){var s,r=a==null,q=r?new A.iV($.xr()):a,p=A.yL() +r=r?new A.iV($.xr()):a +s=A.CT() +r=new A.oW(r,s) +if(b==null)s=new A.mi(B.dn) +else s=b +return new A.ow(q,p,r,B.fv,s)}, +ow:function ow(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +ox:function ox(){}, +oy:function oy(a){this.a=a}, +ph:function ph(a,b,c,d,e){var _=this +_.a=a +_.f=b +_.r=c +_.w=d +_.y=e}, +hU(a,b,c){var s,r +if(a===b)return!0 +if(a.length!==b.length)return!1 +for(s=0;s") +q=A.N(new A.ae(a,s.h("y(1)").a(new A.py()),r),r.h("i.E")) +if(q.length>=2){s=q[0] +s=(s==="pub"||s==="packages")&&q[1]==="publish"}else s=!1 +return s}, +kR:function kR(){}, +py:function py(){}, +kT:function kT(){}, +kW:function kW(){}, +pK:function pK(){}, +pI:function pI(){}, +pJ:function pJ(){}, +kY:function kY(){}, +l_:function l_(){}, +l5:function l5(){}, +pU:function pU(){}, +pT:function pT(){}, +Gx(a){var s +t.a.a(a) +s=new A.il(a,A.U(a).h("il<1,a?>")) +if(s.bX(s,new A.wo(),new A.wp())!=="push")return!1 +return B.b.ac(a,new A.wq())}, +l7:function l7(){}, +wo:function wo(){}, +wp:function wp(){}, +wq:function wq(){}, +l9:function l9(){}, +lb:function lb(){}, +lE:function lE(){}, +DT(a){return B.b.ac(t.a.a(a),new A.rl())}, +DV(a){var s +t.a.a(a) +s=A.U(a) +return new A.ae(a,s.h("y(1)").a(new A.rn()),s.h("ae<1>")).gn(0)>1}, +DU(a){return B.b.ac(t.a.a(a),new A.rm())}, +lL:function lL(){}, +rl:function rl(){}, +rn:function rn(){}, +rm:function rm(){}, +lV:function lV(){}, +GN(a){var s,r,q,p,o,n +t.a.a(a) +for(s=a.length,r=!1,q=0;q1){n=B.a.D(p,1) +if(n==="1"||n==="0"){if(r)return!0 +r=o +continue}r=o +continue}if(p==="1"||p==="0"||p==="-1")return!0}return!1}, +GM(a){var s,r,q,p,o +t.a.a(a) +for(s=0;r=a.length,s=3?s:B.o +b.cr("Recursive permission/ownership change on a system root.")}}, +GH(a){var s,r,q=B.a.G(a).toLowerCase() +if(q==="/"||q==="/*")return!0 +for(s=B.dT.gJ(B.dT);s.q();){r=s.gA() +if(q!==r){r+="/" +r=q===r||B.a.u(q,r)}else r=!0 +if(r)return!0}return!1}, +mw:function mw(){}, +u3:function u3(){}, +u2:function u2(){}, +wr:function wr(){}, +ws:function ws(){}, +mL:function mL(){}, +mO:function mO(){}, +cJ:function cJ(a,b){this.a=a +this.b=b}, +pM:function pM(){}, +yN(a){var s +if(a==null){s=$.xr() +s=A.yy(new A.iV(s),null)}else s=a +return new A.po(s,B.fQ)}, +po:function po(a,b){this.b=a +this.c=b}, +xo:function xo(){}, +xp:function xp(){}, +xq:function xq(){}, +wy:function wy(){}, +rB(a,b,c){return new A.iU(a)}, +iU:function iU(a){this.c=a}, +iV:function iV(a){this.a=a}, +pn:function pn(){}, +rX:function rX(){}, +rY:function rY(a,b,c){this.a=a +this.b=b +this.c=c}, +q5:function q5(){}, +q6:function q6(a){this.a=a}, +yg(a,b){var s=B.a.aY(a,A.O("[\\\\/]",!0)),r=s>=0?B.a.D(a,s+1):a +r=r.toLowerCase() +if(B.a.aA(r,".exe"))r=B.a.m(r,0,r.length-4) +if(B.nG.t(0,r))return A.y7(b,A.IM()) +if(r==="cmd")return A.y7(b,new A.wS()) +if(B.oA.t(0,r))return A.y7(b,new A.wT()) +return null}, +GE(a){var s +if(a==="-c"||a==="--command")return!0 +s=!1 +if(a.length>=2)if(a[0]==="-")if(a[1]!=="-")if(B.a.aA(a,"c")){s=A.O("^-[a-z]+$",!0) +s=s.b.test(a)}if(s)return!0 +return!1}, +y7(a,b){var s,r +for(s=0;s"}, +FK(a){var s +if(a!=null){if(0>=a.length)return A.b(a,0) +s=a.charCodeAt(0)>=48&&a.charCodeAt(0)<=57}else s=!1 +return s}, +rO:function rO(){}, +cF:function cF(a,b){this.a=a +this.b=b}, +aW:function aW(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +jK:function jK(a,b){this.a=a +this.b=b +this.c=0}, +jJ:function jJ(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=0}, +vX:function vX(){}, +FM(a){var s +if(a!=null){if(0>=a.length)return A.b(a,0) +s=a.charCodeAt(0)>=48&&a.charCodeAt(0)<=57}else s=!1 +return s}, +zV(a){return a===" "||a==="\t"||a==="\r"||a==="\n"||a==="|"||a==="&"||a===";"||a==="<"||a===">"}, +tH:function tH(){}, +oL:function oL(){}, +rN:function rN(){}, +be:function be(a,b){this.a=a +this.b=b}, +aJ:function aJ(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +jQ:function jQ(a,b){this.a=a +this.b=b +this.c=0}, +jV:function jV(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=0}, +w3:function w3(){}, +zI(a){return a===" "||a==="\t"||a==="\r"||a==="\n"||a==="|"||a==="&"||a===">"||a==="<"}, +Fr(a){var s +if(a!=null){if(0>=a.length)return A.b(a,0) +s=a.charCodeAt(0)>=48&&a.charCodeAt(0)<=57}else s=!1 +return s}, +v7:function v7(){}, +cB:function cB(a,b){this.a=a +this.b=b}, +b0:function b0(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +n7:function n7(a,b){this.a=a +this.b=b +this.c=0}, +n6:function n6(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=0}, +vm:function vm(){}, +dy:function dy(){}, +m_:function m_(){}, +lx:function lx(){}, +mg:function mg(){}, +ml:function ml(){}, +tF:function tF(){}, +tG:function tG(){}, +Cy(a){var s,r +switch(a.a.a){case 6:return'Benign redirection "'+a.b+'" (stream merge); writes no file.' +case 0:case 1:case 4:case 5:case 7:case 8:case 2:case 3:s=a.b +r=s.toLowerCase() +if(r==="/dev/null"||r==="nul"||r==="nul:"||r==="$null")return'Benign redirection to null sink "'+s+'"; discards the stream.' +return null}}, +kA:function kA(){}, +kK:function kK(){}, +kQ:function kQ(){}, +px:function px(a,b,c){this.a=a +this.b=b +this.c=c}, +D9(a){return B.b.ac(a,new A.pD())}, +D8(a){var s +A.r(a) +if(a==="--recursive")return!0 +if(a.toLowerCase()==="/s")return!0 +if(B.a.u(a,"--"))return!1 +if(B.a.u(a,"-")){s=A.O("[rR]",!0) +s=s.b.test(a)}else s=!1 +return s}, +D7(a){A.r(a) +if(a==="--force")return!0 +if(a.toLowerCase()==="/f"||a.toLowerCase()==="/q")return!0 +if(B.a.u(a,"--"))return!1 +return B.a.u(a,"-")&&B.a.t(a,"f")}, +D6(a){var s,r,q,p=B.a.G(A.r(a)) +if(p.length===0)return!1 +if(B.o9.t(0,p))return!0 +s=$.Bq() +if(s.b.test(p))return!0 +s=$.Bs() +if(s.b.test(p))return!0 +s=$.Br() +if(s.b.test(p))return!0 +r=p.toLowerCase() +s=$.Bp() +if(s.b.test(r))return!0 +for(s=B.dS.gJ(B.dS);s.q();){q=s.gA() +if(r===q||r===q+"/"||B.a.u(r,q+"/*"))return!0}return!1}, +kU:function kU(){}, +pD:function pD(){}, +pC:function pC(){}, +vI:function vI(a,b){this.a=a +this.b=b}, +kZ:function kZ(){}, +lt:function lt(a){this.a=a}, +lX:function lX(){}, +m8:function m8(){}, +mc:function mc(){}, +mk:function mk(){}, +tA:function tA(){}, +tB:function tB(){}, +tC:function tC(){}, +tD:function tD(){}, +tE:function tE(){}, +t9:function t9(a,b){this.a=a +this.b=b}, +mi:function mi(a){this.a=a}, +t7:function t7(){}, +zq(a,b){var s,r,q,p,o,n,m=new A.T(""),l=a.length +for(s=0;s=0))return A.b(a,s) +r=a[s] +if(r==="\\"){q=m.a+=" " +p=s+1 +if(p0&&B.c.bc(s-r,3)===0)p+="," +p+=q[r]}return p.charCodeAt(0)==0?p:p}, +of:function of(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +kg:function kg(a,b){this.a=a +this.b=b}, +fy:function fy(a,b){this.a=a +this.b=b}, +dx:function dx(a,b){this.a=a +this.b=b}, +cf:function cf(a,b){this.a=a +this.b=b}, +og:function og(a,b,c,d,e,f,g){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g}, +ok:function ok(a,b,c,d,e,f,g,h,i,j,k){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i +_.Q=_.z=_.y=!1 +_.as=j +_.at=0 +_.ax=k}, +on:function on(){}, +oo:function oo(){}, +op:function op(a){this.a=a}, +ol:function ol(){}, +cn:function cn(a,b){this.a=a +this.b=b}, +kh:function kh(){}, +kl:function kl(){}, +yx(a){var s,r=a==null?null:B.a.G(a) +A:{if("anthropic"===r){s=B.bg +break A}if("openai"===r){s=B.eA +break A}if("gemini"===r){s=B.eB +break A}s=null +break A}return s}, +AR(a){var s +switch(a.a){case 0:s="claude-haiku-4-5" +break +case 1:s="gpt-4.1-mini" +break +case 2:s="gemini-2.5-flash" +break +default:s=null}return s}, +kf:function kf(a,b){this.a=a +this.b=b}, +ia:function ia(a,b){this.a=a +this.b=b}, +i8:function i8(a,b,c,d,e,f,g,h,i){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i}, +iq:function iq(a,b,c){this.a=a +this.b=b +this.c=c}, +fP:function fP(a,b,c){this.a=a +this.b=b +this.c=c}, +xz(a){return new A.ba(B.bh,a,B.ab,null)}, +xA(a){return new A.ba(B.bi,a,B.ab,null)}, +dp(a){var s=typeof a=="number"?B.p.kx(a):0 +return s<0?0:s}, +yb(a,b){var s=a.k(0,"x-omnyshell-proxy-elapsed-ms"),r=s==null?null:A.bJ(B.a.G(s),null) +return r!=null&&r>=0?r:b}, +i9(a,b){return new A.dr(a,b)}, +fA:function fA(a,b){this.a=a +this.b=b}, +ba:function ba(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +cc:function cc(a,b,c){this.a=a +this.b=b +this.c=c}, +fC:function fC(a,b,c){this.a=a +this.b=b +this.c=c}, +bu:function bu(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +fB:function fB(a,b){this.a=a +this.b=b}, +e8:function e8(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +ds:function ds(a,b,c){this.a=a +this.b=b +this.d=c}, +dr:function dr(a,b){this.a=a +this.b=b}, +kn:function kn(a,b){this.a=a +this.b=b}, +oA:function oA(){}, +oB:function oB(){}, +oC:function oC(){}, +oz:function oz(a,b){this.a=a +this.b=b}, +l6:function l6(a,b){this.a=a +this.b=b}, +q2:function q2(){}, +q3:function q3(){}, +q4:function q4(){}, +lS:function lS(a,b){this.a=a +this.b=b}, +Cs(a){var s=B.a.G(a).toLowerCase() +return s==="off"||s==="none"||s==="default"}, +ki:function ki(a,b,c,d,e,f,g,h){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h}, +oq:function oq(a,b){this.a=a +this.b=b}, +or:function or(a,b){this.a=a +this.b=b}, +os:function os(a,b,c){this.a=a +this.b=b +this.c=c}, +ot:function ot(a,b){this.a=a +this.b=b}, +ou:function ou(a,b){this.a=a +this.b=b}, +nw:function nw(a){this.a=a}, +n5:function n5(a){this.a=a}, +l2:function l2(a,b,c){this.a=a +this.b=b +this.c=c}, +d0:function d0(a,b){this.a=a +this.b=b}, +f1:function f1(a,b,c,d,e){var _=this +_.a=a +_.c=b +_.d=c +_.e=d +_.f=e}, +f0:function f0(a,b){this.a=a +this.b=b}, +cd:function cd(a,b,c,d,e,f,g,h,i){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i}, +kX:function kX(){}, +d9:function d9(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +cX:function cX(a,b,c){this.a=a +this.b=b +this.c=c}, +p0:function p0(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.f=d}, +kE:function kE(a,b,c,d,e,f,g,h,i,j,k,l,m,n){var _=this +_.a=a +_.f=_.e=_.d=_.c=_.b=null +_.r=b +_.w=c +_.x=d +_.y=e +_.z=f +_.Q=g +_.as=h +_.at=i +_.ax=j +_.ay=k +_.ch=l +_.CW=m +_.cx=n}, +p3:function p3(a){this.a=a}, +p1:function p1(a,b){this.a=a +this.b=b}, +pa:function pa(a,b){this.a=a +this.b=b}, +pf:function pf(a,b){this.a=a +this.b=b}, +pb:function pb(a,b){this.a=a +this.b=b}, +p8:function p8(a,b){this.a=a +this.b=b}, +pg:function pg(a,b){this.a=a +this.b=b}, +pe:function pe(a,b){this.a=a +this.b=b}, +p4:function p4(a,b){this.a=a +this.b=b}, +p9:function p9(a,b){this.a=a +this.b=b}, +p5:function p5(a,b){this.a=a +this.b=b}, +p6:function p6(a,b){this.a=a +this.b=b}, +p7:function p7(){}, +pd:function pd(a,b){this.a=a +this.b=b}, +pc:function pc(a,b){this.a=a +this.b=b}, +p2:function p2(a,b){this.a=a +this.b=b}, +IV(a){var s,r,q,p,o=B.a.G(a) +if(o.length===0)return!1 +s=A.GZ(a,o) +if(s.length===0)return!1 +r=$.C2() +if(r.b.test(a))return!0 +q=A.Gc(B.b.gI(s)) +if(q==="cd")return!0 +if(q==="git"){p=A.Gn(A.bx(s,1,null,A.U(s).c)) +if(p==="config")return!B.b.t(s,"--get")&&!B.b.t(s,"--list")&&!B.b.t(s,"-l") +return!B.oa.t(0,p)}return!B.o0.t(0,q)}, +GZ(a,b){var s,r,q,p,o,n=B.a.cC(b,A.O("\\s+",!0)) +B.b.qN(n,new A.wv()) +for(s=0;r=n.length,s=0))return A.b(n,s) +q=n[s] +r=A.O("^[A-Za-z_][A-Za-z0-9_]*=",!0) +if(r.b.test(q)){++s +continue}p=B.a.aY(q,"/") +if(B.np.t(0,p<0?q:B.a.D(q,p+1))){++s +for(;;){r=n.length +if(!(sb)return B.b.b2(s,r-b) +return s}, +pj:function pj(a,b){this.a=a +this.b=b}, +qx:function qx(a,b){var _=this +_.a=a +_.b=b +_.c="" +_.d=null}, +pv(a,b){var s +if(b>=a.length)return null +s=a[b] +return s.length===0?null:s}, +D0(a,b){var s,r,q,p,o,n=a.length,m=b.length,l=m-1 +if(n0;--s){q=n-s +p=0 +for(;;){if(!(p=0&&o16e3?B.a.m(b,0,16e3)+"\n\u2026(truncated)\u2026":b +return new A.fx(a,"The user is working on this file.\n\nPath: "+a+"\n\n```\n"+s+"\n```")}, +xx(a,b){var s,r,q=J.at(b) +if(q.gn(b)>200){s=A.N(q.bz(b,200),t.N) +s.push("\u2026("+(q.gn(b)-200)+" more)") +r=s}else r=b +q=J.at(r) +q=q.gK(r)?"(empty)":q.S(r,"\n") +return new A.fx(a+"/","The user is working in this directory.\n\nPath: "+a+"\n\nContents:\n"+q)}, +fx:function fx(a,b){this.a=a +this.b=b}, +fz:function fz(a,b){this.a=a +this.b=b}, +ma:function ma(a,b,c){this.a=a +this.b=b +this.c=c}, +rU:function rU(a){this.a=a}, +rW:function rW(a){this.a=a}, +rV:function rV(a){this.a=a}, +mE:function mE(){}, +oh:function oh(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.d=c +_.e=d +_.f=e +_.r="" +_.w=0 +_.x=!1}, +oi:function oi(a,b){this.a=a +this.b=b}, +oj:function oj(a){this.a=a}, +q7(a,b){return A.Ds(a,b)}, +Ds(a,b){var s=0,r=A.p(t.kh),q,p=2,o=[],n,m,l,k,j +var $async$q7=A.q(function(c,d){if(c===1){o.push(d) +s=p}for(;;)switch(s){case 0:p=4 +s=7 +return A.f(a.d_("git rev-parse --show-toplevel",b),$async$q7) +case 7:n=d +if(n.a!==0){q=null +s=1 +break}m=B.a.G(n.b) +if(J.aE(m)===0){q=null +s=1 +break}l=$.b3().a4(m) +q=new A.l8(a,l) +s=1 +break +p=2 +s=6 +break +case 4:p=3 +j=o.pop() +q=null +s=1 +break +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$q7,r)}, +l8:function l8(a,b){this.a=a +this.b=b}, +J_(a){var s,r,q,p,o,n,m,l,k,j,i,h,g=A.I(t.N,t.gH) +for(s=a.split("\n"),r=s.length,q=0;q ") +if(k>=0){j=A.hZ(B.a.m(m,0,k)) +i=A.hZ(B.a.D(m,k+4)) +g.i(0,j,B.au) +g.i(0,i,B.au) +continue}g.i(0,A.hZ(m),B.au) +continue}h=o!==" "?o:n +A:{if("A"===h){l=B.aP +break A}if("M"===h){l=B.at +break A}if("D"===h){l=B.bE +break A}if("C"===h){l=B.aP +break A}if("T"===h){l=B.at +break A}l=B.at +break A}g.i(0,A.hZ(m),l)}return g}, +J0(a){var s,r,q,p,o,n,m=t.S,l=A.I(m,t.wV),k=A.cN(m),j=a.split("\n") +for(m=t.s,s=0;r=j.length,s=0))return A.b(j,s) +q=j[s] +if(!B.a.u(q,"@@")){++s +continue}p=A.GT(q) +if(p==null){++s +continue}o=A.e([],m);++s +for(;;){if(!(s=s.length)return A.b(s,1) +s=s[1] +s.toString +return new A.vJ(A.fs(s))}, +G7(a,b,c,d){var s,r,q,p,o,n,m,l,k=A.e([],t.t) +for(s=b.length,r=a,q=0,p=0;ps){if(s===0)l=a<1?1:a +else l=B.b.gaX(k)+1 +d.j(0,l)}}, +hZ(a){var s=B.a.G(a),r=s.length +if(r>=2&&B.a.u(s,'"')&&B.a.aA(s,'"')){r=B.a.m(s,1,r-1) +r=A.ad(r,'\\"','"') +return A.ad(r,"\\\\","\\")}return s}, +bH:function bH(a,b){this.a=a +this.b=b}, +fO:function fO(a,b){this.a=a +this.b=b}, +fW:function fW(a,b){this.a=a +this.b=b}, +vJ:function vJ(a){this.a=a}, +DB(a,b,c,d,e,f){var s=A.e([],t.AV),r=$.E,q=f.d,p=$.b3(),o=p.a4(q),n=p.a +p=A.eI(p.a4(q),n).gjU().length===0?p.a4(q):A.eI(p.a4(q),n).gjU() +return new A.lc(f,q,e,new A.qe(),new A.l4(new A.qS(f),new A.bF(o,p,!0,0,!0)),f.e,b,a,d,c,s,B.C,B.dr,new A.W(new A.v(r,t.D),t.h))}, +fN:function fN(a,b){this.a=a +this.b=b}, +jI:function jI(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +vn:function vn(a,b,c){this.a=a +this.b=b +this.c=c}, +lc:function lc(a,b,c,d,e,f,g,h,i,j,k,l,m,n){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=null +_.f=e +_.r=f +_.x=null +_.y=g +_.z=h +_.Q=i +_.as=j +_.at=k +_.ax=-1 +_.ay=l +_.CW=_.ch=0 +_.cx=null +_.cy=!1 +_.db=null +_.dx=!1 +_.dy=null +_.fr=m +_.fy=_.fx=null +_.k1=_.id=_.go=!1 +_.k2=null +_.k3="" +_.ok=n}, +qS:function qS(a){this.a=a}, +qT:function qT(a,b,c){this.a=a +this.b=b +this.c=c}, +qU:function qU(a){this.a=a}, +qV:function qV(a){this.a=a}, +qM:function qM(a){this.a=a}, +qE:function qE(a){this.a=a}, +qF:function qF(){}, +qG:function qG(a,b){this.a=a +this.b=b}, +qH:function qH(a,b,c){this.a=a +this.b=b +this.c=c}, +qI:function qI(a,b,c){this.a=a +this.b=b +this.c=c}, +qJ:function qJ(a,b,c){this.a=a +this.b=b +this.c=c}, +qK:function qK(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +qL:function qL(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +qR:function qR(){}, +qQ:function qQ(a){this.a=a}, +qP:function qP(a){this.a=a}, +qN:function qN(){}, +qO:function qO(a){this.a=a}, +qB:function qB(a){this.a=a}, +qy:function qy(){}, +qz:function qz(){}, +qA:function qA(){}, +qC:function qC(a){this.a=a}, +qD:function qD(a,b,c){this.a=a +this.b=b +this.c=c}, +ni:function ni(a){this.a=a}, +vK:function vK(){}, +yR(a,b,c){var s,r,q,p=B.a.t(b,A.ak(0)),o=B.a.t(b,"\r\n"),n=A.ad(b,"\r\n","\n"),m=B.a.aA(n,"\n"),l=t.s,k=A.e((m&&n.length!==0?B.a.m(n,0,n.length-1):n).split("\n"),l) +l=k.length===0?A.e([""],l):k +s=o?"\r\n":"\n" +r=m||b.length===0 +q=c.q1(a) +return new A.et(new A.uH(a,l,s,r,p),q,B.bL)}, +et:function et(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.e=_.d=0 +_.f=null}, +Do(a,b){var s=t.cy +s.a(a) +s.a(b) +s=a.b +if(s!==b.b)return s?-1:1 +return B.a.a3(a.a.toLowerCase(),b.a.toLowerCase())}, +bQ:function bQ(a,b){this.a=a +this.b=b}, +bF:function bF(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=null}, +l4:function l4(a,b){this.a=a +this.b=b +this.c=!1}, +pS:function pS(a){this.a=a}, +pP:function pP(a){this.a=a}, +pQ:function pQ(){}, +pR:function pR(){}, +uH:function uH(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.w=_.r=_.f=0 +_.x=!1}, +kS:function kS(){}, +aM:function aM(a,b){this.a=a +this.b=b}, +hw:function hw(a,b){this.a=a +this.b=b}, +cM:function cM(a){this.a=a}, +aU:function aU(a,b){this.a=a +this.b=b}, +uL:function uL(){}, +d2:function d2(){}, +qe:function qe(){}, +lq:function lq(){}, +lC:function lC(){}, +lY:function lY(){}, +hn:function hn(a,b,c){var _=this +_.a=a +_.b=b +_.c=null +_.d=c}, +mU:function mU(){}, +pi:function pi(a,b,c){this.a=a +this.b=b +this.c=c}, +us:function us(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.d=c +_.e=d +_.f="" +_.r=0 +_.x=_.w=null +_.y=e +_.z=0}, +uE:function uE(a,b,c){this.a=a +this.b=b +this.c=c}, +uz:function uz(a){this.a=a}, +uB:function uB(a){this.a=a}, +uA:function uA(a,b){this.a=a +this.b=b}, +uC:function uC(a,b){this.a=a +this.b=b}, +uD:function uD(a,b,c){this.a=a +this.b=b +this.c=c}, +uy:function uy(a,b,c){this.a=a +this.b=b +this.c=c}, +ut:function ut(a){this.a=a}, +uu:function uu(a,b){this.a=a +this.b=b}, +uv:function uv(){}, +uw:function uw(a,b){this.a=a +this.b=b}, +ux:function ux(a,b,c){this.a=a +this.b=b +this.c=c}, +km:function km(){}, +d8:function d8(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +b6:function b6(a,b){this.a=a +this.b=b}, +aP:function aP(a,b,c){this.a=a +this.b=b +this.c=c}, +DG(a){if((a&224)===192)return 2 +if((a&240)===224)return 3 +if((a&248)===240)return 4 +return 0}, +r4:function r4(a){this.a=a}, +du:function du(a,b){this.a=a +this.b=b}, +t6:function t6(a,b,c){this.a=a +this.b=b +this.c=c}, +aF:function aF(a){this.b=a}, +a5:function a5(a,b,c,d,e,f,g){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g}, +mb:function mb(a,b,c){this.a=a +this.b=b +this.c=c}, +t0:function t0(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +t1:function t1(a,b){this.a=a +this.b=b}, +t2:function t2(){}, +jB:function jB(a,b){this.a=a +this.b=b}, +md:function md(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +mR(a){return new A.mQ(a)}, +dO:function dO(a,b){this.a=a +this.b=b}, +mS:function mS(a,b){this.a=a +this.b=b}, +mQ:function mQ(a){this.a=a}, +hr:function hr(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +eT:function eT(a,b){this.a=a +this.b=b}, +lg:function lg(a,b,c,d,e,f,g,h,i){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.f=e +_.w=f +_.x=g +_.y=h +_.Q=_.z=null +_.ax=_.at=_.as=!1 +_.ay=i +_.dx=_.db=_.cy=_.cx=_.CW=_.ch=null}, +qZ:function qZ(a){this.a=a}, +DL(a){var s,r,q,p,o,n,m,l,k,j,i=J.at(a) +if(i.gK(a))return"" +s=i.gI(a) +r=t.N +q=t.cS +q.h("a(i.E)").a(A.nZ()) +q=q.h("i.E") +s=A.d6(new A.ch(s),A.nZ(),q,r) +p=A.N(s,A.l(s).h("i.E")) +for(i=i.aS(a,1),s=i.$ti,i=new A.aI(i,i.gn(0),s.h("aI")),s=s.h("Q.E");i.q();){o=i.d +o=A.d6(new A.ch(o==null?s.a(o):o),A.nZ(),q,r) +n=A.N(o,A.l(o).h("i.E")) +m=p.length +l=n.length +k=m=0))return A.b(n,q) +if(n[q]===27){++q +if(q=64&&o<=126)}else o=!1 +if(!o)break;++q}if(p)++q}continue}++r;++q}return r}, +ly:function ly(a,b,c,d,e,f,g,h,i,j,k,l,m){var _=this +_.a=a +_.b=b +_.c=c +_.e=d +_.f=e +_.r=f +_.w=g +_.x=h +_.y=i +_.z=null +_.Q=!1 +_.as=null +_.ay=_.ax=_.at=!1 +_.ch=null +_.CW="" +_.cx=j +_.cy=0 +_.db=k +_.fr=_.dy=_.dx=0 +_.fx=$ +_.fy=l +_.go="" +_.id=m +_.k1=0}, +r5:function r5(){}, +jH:function jH(a,b){this.a=a +this.b=b}, +DQ(){var s,r,q=new A.r9(A.I(t.N,t.kQ)) +for(s=$.Bv(),r=0;r<16;++r)q.fp(s[r]) +return q}, +Ar(a){var s=a.a +return B.a.d5(B.c.l(B.c.W(s,36e8)),2,"0")+":"+B.a.d5(B.c.l(B.c.bc(B.c.W(s,6e7),60)),2,"0")+":"+B.a.d5(B.c.l(B.c.bc(B.c.W(s,1e6),60)),2,"0")}, +GX(a){var s +switch(a.a){case 0:s="POSIX (sh/bash)" +break +case 1:s="PowerShell" +break +case 2:s="cmd.exe" +break +default:s=null}return s}, +IZ(a){var s,r,q,p,o,n,m,l,k,j,i,h=A.e([],t.Cp) +for(s=B.bn.Y(a),r=s.length,q=0;q")),r=0;s.q();)r+=A.AK(s.d) +return a.e=r}, +GS(a){var s,r,q,p=A.O("^(\\d+)\\s*([smhd])$",!0).d0(B.a.G(a).toLowerCase()) +if(p==null)return null +s=p.b +if(1>=s.length)return A.b(s,1) +r=s[1] +r.toString +q=A.fs(r) +if(2>=s.length)return A.b(s,2) +s=s[2] +s.toString +A:{if("s"===s){s=A.it(0,0,0,0,0,q) +break A}if("m"===s){s=A.it(0,0,0,0,q,0) +break A}if("h"===s){s=A.it(0,q,0,0,0,0) +break A}if("d"===s){s=A.it(q,0,0,0,0,0) +break A}s=null +break A}return s}, +hp:function hp(a,b){this.a=a +this.b=b}, +r8:function r8(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.w=g +_.x=h +_.y=i +_.z=j +_.Q=k +_.as=l +_.at=m +_.ax=n +_.ay=o +_.CW=_.ch=!1}, +av:function av(){}, +r9:function r9(a){this.a=a}, +ra:function ra(){}, +ng:function ng(){}, +nj:function nj(){}, +vL:function vL(){}, +nT:function nT(){}, +ns:function ns(){}, +mW:function mW(){}, +nh:function nh(){}, +nr:function nr(){}, +vS:function vS(){}, +n3:function n3(){}, +nx:function nx(){}, +no:function no(){}, +nu:function nu(){}, +vU:function vU(){}, +vV:function vV(){}, +vW:function vW(){}, +nH:function nH(){}, +w4:function w4(a){this.a=a}, +nG:function nG(){}, +c8:function c8(a,b,c){var _=this +_.a=a +_.b=b +_.c=!1 +_.e=_.d=0 +_.f=c}, +x6:function x6(a){this.a=a}, +x7:function x7(a,b,c){this.a=a +this.b=b +this.c=c}, +x8:function x8(){}, +na:function na(){}, +ne:function ne(){}, +n4:function n4(){}, +cg:function cg(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=$ +_.w=_.r=null +_.x=!1 +_.y=f}, +is:function is(a,b){this.b=a +this.c=b}, +zs(a){var s +switch(a.a){case 0:s=B.fS +break +case 1:s=B.fT +break +case 2:s=B.fj +break +default:s=null}return s}, +hq:function hq(){}, +m0:function m0(){}, +m2:function m2(){}, +kH:function kH(){}, +IA(a,b,a0,a1,a2,a3,a4){var s,r,q,p,o,n,m,l,k,j,i,h,g=a0!=null&&a0.length!==0,f=A.GY(b),e=a3==null,d=new A.wM(a1,f,b,g,a0,a,a2,e?"":" (\u26a0 "+a3+")"),c=0 +if(a4>0){s=c +for(;;){if(!(s<5)){c=4 +break}if(new A.ch(d.$1(s)).gn(0)+16<=a4){c=s +break}++s}}r=B.bN[c].a +q=r[0] +p=r[1] +o=r[2] +n=r[3] +m=q?"@"+a1:"" +l=p?f:b +k=n&&g?" "+a0:"" +j=k.length===0?"":"\x1b[32m"+k+"\x1b[31m" +i=a==null||!o?"":" \x1b[34mgit(\x1b[31m"+a+j+"\x1b[0m\x1b[34m)\x1b[0m" +h=e?"":" \x1b[1;31m(\u26a0 "+a3+")\x1b[0m" +return"\x1b[32m"+a2+m+"\x1b[0m:\x1b[36m"+l+"\x1b[0m"+i+h+" $ "}, +GY(a){var s,r=A.O("[/\\\\]+$",!0),q=A.ad(a,r,""),p=B.a.aY(q,A.O("[/\\\\]",!0)) +if(p<0)return a +s=B.a.D(q,p+1) +if(s.length===0)return a +return"\u2026/"+s}, +wM:function wM(a,b,c,d,e,f,g,h){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h}, +nP:function nP(){}, +m6:function m6(a,b,c){this.a=a +this.b=b +this.c=c}, +zn(a){var s,r,q=A.A(a,"term") +if(q==null)q="xterm-256color" +s=A.bT(a,"cols",80) +s.toString +r=A.bT(a,"rows",24) +r.toString +return new A.iZ(q,s,r)}, +iZ:function iZ(a,b,c){this.a=a +this.b=b +this.c=c}, +xR(a){var s +A:{if("powershell"===a){s=B.dW +break A}if("cmd"===a){s=B.dX +break A}s=B.c_ +break A}return s}, +j6:function j6(a,b){this.a=a +this.b=b}, +aB:function aB(a,b,c,d,e,f,g,h,i,j,k){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i +_.y=j +_.z=k}, +z9(a){var s=A.lr(a,"shells"),r=A.lr(a,"features"),q=A.bT(a,"maxSessions",50) +q.toString +return new A.rp(s,r,q,A.A(a,"directEndpoint"))}, +rp:function rp(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +za(a){var s,r,q,p,o,n,m=null,l=a.k(0,"capabilities"),k=A.A(a,"uid"),j=A.C(a,"nodeId"),i=B.a.G(j) +if(i.length===0)A.K(B.mO) +s=$.Bw() +if(!s.b.test(i))A.K(A.bp('Invalid node id: "'+j+'"',m)) +if(k==null)j=m +else{r=B.a.G(k) +if(B.a.u(r,"nod_")||B.a.u(r,"hub_")){j=$.Bx() +j=!j.b.test(r)}else j=!0 +if(j)A.K(A.bp('Invalid UID: "'+k+'"',m)) +j=new A.lR(r)}s=A.A(a,"displayName") +if(s==null)s="" +q=A.zc(A.iG(a.k(0,"platform"))) +p=A.fV(a,"labels") +o=A.b5(a,"online") +n=l==null?m:A.z9(A.iG(l)) +return new A.aZ(new A.lM(i),j,s,q,p,o,n)}, +aZ:function aZ(a,b,c,d,e,f,g){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g}, +zc(a){var s,r=A.C(a,"os"),q=A.C(a,"arch"),p=A.A(a,"agentVersion") +if(p==null)p="unknown" +s=A.A(a,"hostname") +return new A.rM(r,q,p,s==null?"unknown":s)}, +rM:function rM(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +xQ(a){var s +A:{if("shell"===a){s=B.bU +break A}if("transfer"===a){s=B.ng +break A}if("drive"===a){s=B.nh +break A}if("tunnel"===a){s=B.ni +break A}s=B.dH +break A}return s}, +EH(a){var s +A:{if("opening"===a){s=B.nk +break A}if("open"===a){s=B.nl +break A}if("closing"===a){s=B.nm +break A}if("closed"===a){s=B.nn +break A}if("attached"===a){s=B.no +break A}s=B.b1 +break A}return s}, +eN:function eN(a,b){this.a=a +this.b=b}, +dL:function dL(a,b){this.a=a +this.b=b}, +bz:function bz(a,b,c,d,e,f,g,h,i){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i}, +lM:function lM(a){this.a=a}, +lR:function lR(a){this.a=a}, +m7:function m7(a){this.a=a}, +mj:function mj(a){this.a=a}, +mC:function mC(a,b){this.a=a +this.b=b}, +Fi(a,b){var s=new A.ji(a,b,A.ci(null,null,!1,t.nl),new A.W(new A.v($.E,t.D),t.h)) +s.lv(a,b) +return s}, +ji:function ji(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=!0}, +v8:function v8(a){this.a=a}, +v9:function v9(a){this.a=a}, +kB:function kB(a,b,c,d,e,f,g,h){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=262144 +_.x=!1 +_.y=h}, +nt:function nt(a,b,c){this.a=a +this.b=b +this.c=c}, +CG(a,b){var s=new A.kC(a,A.I(t.S,t.hW),A.cj(t.An),b) +s.lj(a,b) +return s}, +kC:function kC(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=$ +_.e=d +_.f=!1}, +p_:function p_(){}, +Dt(a,b){var s,r,q,p,o +A.L(a) +t.P.a(b) +s=A.C(b,"role") +r=A.dD(b,"protocolVersion") +q=A.bT(b,"minVersion",1) +q.toString +p=A.A(b,"nonce") +o=t.f +return new A.dA(s,r,q,p,o.b(b.k(0,"info"))?o.a(b.k(0,"info")).ak(0,t.N,t.z):B.ld)}, +Cx(a,b){A.L(a) +t.P.a(b) +return new A.dt(A.C(b,"method"),A.C(b,"principal"),A.A(b,"token"),A.A(b,"publicKey"),A.A(b,"signature"))}, +Cw(a,b){var s,r +A.L(a) +t.P.a(b) +s=A.C(b,"principal") +r=A.A(b,"displayName") +if(r==null)r="" +return new A.ec(s,r,A.lr(b,"roles"),A.C(b,"sessionToken"))}, +Cv(a,b){var s,r +A.L(a) +t.P.a(b) +s=A.A(b,"reason") +if(s==null)s="auth_failed" +r=A.A(b,"message") +return new A.eb(s,r==null?"Authentication failed":r)}, +E9(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=A.C(b,"nodeId") +r=A.A(b,"uid") +q=A.A(b,"displayName") +if(q==null)q="" +return new A.ha(s,r,q,A.zc(A.iG(b.k(0,"platform"))),A.fV(b,"labels"))}, +Ea(a,b){A.L(a) +t.P.a(b) +return new A.hb(A.C(b,"nodeId"),A.ey(b,"assignedAt"))}, +DY(a,b){A.L(a) +return new A.h1(A.z9(t.P.a(b)))}, +E6(a,b){var s,r +A.L(a) +t.P.a(b) +s=A.C(b,"nodeId") +r=A.bT(b,"activeSessions",0) +r.toString +return new A.h8(s,r,A.dD(b,"seq"),A.ey(b,"ts"))}, +E5(a,b){A.L(a) +t.P.a(b) +return new A.h9(A.dD(b,"seq"),A.ey(b,"ts"))}, +Em(a,b){A.L(a) +t.P.a(b) +return new A.eJ(A.C(b,"id"),A.ey(b,"ts"))}, +En(a,b){A.L(a) +t.P.a(b) +return new A.eK(A.C(b,"id"),A.ey(b,"ts"),A.ey(b,"serverTs"))}, +E7(a,b){A.L(a) +return new A.eB(A.fV(t.P.a(b),"filter"))}, +E8(a,b){var s,r,q,p +A.L(a) +s=t.P.a(b).k(0,"nodes") +r=t._.b(s)?s:B.aW +q=A.e([],t.yT) +for(p=J.aN(r);p.q();)q.push(A.za(A.iG(p.gA()))) +return new A.eC(q)}, +EC(a,b){var s,r,q,p,o,n,m,l,k,j,i +A.L(a) +t.P.a(b) +s=b.k(0,"pty") +r=A.A(b,"shellFamily") +q=a==null?A.K(A.bf("session.open")):a +p=A.C(b,"nodeId") +o=A.A(b,"mode") +o=A.xQ(o==null?"exec":o) +n=A.A(b,"command") +m=A.lr(b,"args") +l=A.fV(b,"env") +k=A.A(b,"cwd") +j=s==null?null:A.zn(A.iG(s)) +i=A.A(b,"resumeSessionId") +return new A.eO(q,p,o,n,m,l,k,j,i,r==null?null:A.xR(r))}, +ED(a,b){var s,r,q,p,o +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("session.opened")):a +r=A.C(b,"sessionId") +q=A.b5(b,"pty") +p=A.b5(b,"altScreen") +o=A.A(b,"shell") +return new A.eP(s,r,q,p,o==null?"posix":o)}, +EE(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("session.rejected")):a +r=A.A(b,"reason") +if(r==null)r="session_rejected" +q=A.A(b,"message") +return new A.eQ(s,r,q==null?"Session rejected":q)}, +Ed(a,b){var s,r,q,p,o,n,m,l,k,j,i,h +A.L(a) +t.P.a(b) +s=b.k(0,"pty") +r=A.A(b,"shellFamily") +q=a==null?A.K(A.bf("node.session.open")):a +p=A.C(b,"sessionId") +o=A.C(b,"principal") +n=A.A(b,"mode") +n=A.xQ(n==null?"exec":n) +m=A.A(b,"command") +l=A.lr(b,"args") +k=A.fV(b,"env") +j=A.A(b,"cwd") +i=s==null?null:A.zn(A.iG(s)) +h=A.A(b,"resumeSessionId") +return new A.he(q,p,o,n,m,l,k,j,i,h,r==null?null:A.xR(r))}, +Ee(a,b){var s,r,q,p,o +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("node.session.opened")):a +r=A.C(b,"sessionId") +q=A.bT(b,"pid",null) +p=A.b5(b,"altScreen") +o=A.A(b,"shell") +return new A.hf(s,r,q,p,o==null?"posix":o)}, +Ef(a,b){var s,r,q,p +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("node.session.rejected")):a +r=A.A(b,"sessionId") +if(r==null)r="" +q=A.A(b,"reason") +if(q==null)q="session_rejected" +p=A.A(b,"message") +return new A.hg(s,r,q,p==null?"Session rejected":p)}, +CH(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("channel.resize")):a +r=A.bT(b,"cols",80) +r.toString +q=A.bT(b,"rows",24) +q.toString +return new A.eh(s,r,q)}, +CI(a,b){var s +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("channel.signal")):a +return new A.ei(s,A.C(b,"signal"))}, +CE(a,b){var s,r +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("channel.eof")):a +r=A.A(b,"stream") +return new A.fH(s,r==null?"stdin":r)}, +CF(a,b){var s,r,q,p +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("channel.exit")):a +r=A.bT(b,"exitCode",0) +r.toString +q=A.A(b,"signal") +p=A.ls(b,"ts") +return new A.eg(s,r,q,p==null?new A.bk(Date.now(),0,!1).av():p)}, +CD(a,b){var s,r +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("channel.close")):a +r=A.A(b,"reason") +if(r==null)r="normal" +return new A.dv(s,r,A.A(b,"message"))}, +CJ(a,b){var s,r +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("channel.window")):a +r=A.A(b,"stream") +if(r==null)r="stdout" +return new A.dw(s,r,A.dD(b,"credit"))}, +Ev(a,b){var s,r +A.L(a) +t.P.a(b) +s=A.A(b,"code") +if(s==null)s="protocol_error" +r=A.A(b,"message") +if(r==null)r="Protocol error" +return new A.hk(s,r,A.b5(b,"fatal"),a)}, +EA(a,b){var s +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("session.detach.request")):a +return new A.eL(s,A.bT(b,"timeoutSeconds",null))}, +Eb(a,b){var s +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("node.session.detach")):a +return new A.hc(s,A.C(b,"sessionId"),A.C(b,"principal"),A.bT(b,"timeoutSeconds",null))}, +Ec(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("node.session.detached")):a +r=A.C(b,"sessionId") +q=A.A(b,"shortId") +if(q==null)q="" +return new A.hd(s,r,q,A.ls(b,"expiresAt"))}, +EB(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("session.detached")):a +r=A.C(b,"sessionId") +q=A.A(b,"shortId") +if(q==null)q="" +return new A.eM(s,r,q,A.ls(b,"expiresAt"))}, +Dc(a,b){A.L(a) +t.P.a(b) +return new A.eq(A.C(b,"requestId"),A.C(b,"nodeId"))}, +E0(a,b){A.L(a) +t.P.a(b) +return new A.h4(A.C(b,"requestId"),A.C(b,"principal"))}, +E1(a,b){A.L(a) +t.P.a(b) +return new A.h5(A.C(b,"requestId"),A.Ap(b.k(0,"sessions")))}, +Dd(a,b){A.L(a) +t.P.a(b) +return new A.er(A.C(b,"requestId"),A.Ap(b.k(0,"sessions")))}, +Da(a,b){A.L(a) +t.P.a(b) +return new A.eo(A.C(b,"requestId"),A.C(b,"nodeId"),A.C(b,"sessionRef"))}, +DZ(a,b){A.L(a) +t.P.a(b) +return new A.h2(A.C(b,"requestId"),A.C(b,"principal"),A.C(b,"sessionRef"))}, +E_(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.b5(b,"ok") +q=A.A(b,"message") +return new A.h3(s,r,q==null?"":q)}, +Db(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.b5(b,"ok") +q=A.A(b,"message") +return new A.ep(s,r,q==null?"":q)}, +Cl(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.C(b,"nodeId") +q=A.A(b,"sessionRef") +if(q==null)q="" +return new A.e3(s,r,q,A.bT(b,"timeoutSeconds",null))}, +DX(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.C(b,"principal") +q=A.A(b,"sessionRef") +if(q==null)q="" +return new A.h_(s,r,q,A.bT(b,"timeoutSeconds",null))}, +DW(a,b){var s,r,q,p +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.b5(b,"ok") +q=A.A(b,"shortId") +if(q==null)q="" +p=A.A(b,"message") +return new A.h0(s,r,q,p==null?"":p)}, +Cm(a,b){var s,r,q,p +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.b5(b,"ok") +q=A.A(b,"shortId") +if(q==null)q="" +p=A.A(b,"message") +return new A.e4(s,r,q,p==null?"":p)}, +EF(a,b){A.L(a) +t.P.a(b) +return new A.eR(A.C(b,"requestId"),A.C(b,"nodeId"),A.C(b,"sessionRef"))}, +Eg(a,b){A.L(a) +t.P.a(b) +return new A.hh(A.C(b,"requestId"),A.C(b,"principal"),A.C(b,"sessionRef"))}, +Eh(a,b){var s,r,q,p +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.b5(b,"ok") +q=A.A(b,"message") +if(q==null)q="" +p=A.A(b,"screen") +if(p==null)p="" +return new A.hi(s,r,q,p,A.b5(b,"altScreen"))}, +EG(a,b){var s,r,q,p +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.b5(b,"ok") +q=A.A(b,"message") +if(q==null)q="" +p=A.A(b,"screen") +if(p==null)p="" +return new A.eS(s,r,q,p,A.b5(b,"altScreen"))}, +Ao(a){var s,r +if(!t._.b(a))return B.jN +s=J.kc(a,t.f) +r=s.$ti +r=A.d6(s,r.h("cL(i.E)").a(new A.wk()),r.h("i.E"),t.ec) +s=A.N(r,A.l(r).h("i.E")) +s.$flags=1 +return s}, +De(a,b){var s,r,q,p,o +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.C(b,"nodeId") +q=A.C(b,"op") +p=A.A(b,"host") +o=t.yq.a(b.k(0,"credential")) +return new A.fL(s,r,q,p,o==null?null:o.ak(0,t.N,t.z))}, +E3(a,b){var s,r,q,p,o +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.C(b,"principal") +q=A.C(b,"op") +p=A.A(b,"host") +o=t.yq.a(b.k(0,"credential")) +return new A.h6(s,r,q,p,o==null?null:o.ak(0,t.N,t.z))}, +E4(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.b5(b,"ok") +q=A.A(b,"message") +if(q==null)q="" +return new A.h7(s,r,q,A.Ao(b.k(0,"entries")))}, +Df(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.b5(b,"ok") +q=A.A(b,"message") +if(q==null)q="" +return new A.es(s,r,q,A.Ao(b.k(0,"entries")))}, +Ap(a){var s,r +if(!t._.b(a))return B.jR +s=J.kc(a,t.f) +r=s.$ti +r=A.d6(s,r.h("aB(i.E)").a(new A.wl()),r.h("i.E"),t.k) +s=A.N(r,A.l(r).h("i.E")) +return s}, +F7(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.C(b,"nodeId") +q=A.A(b,"targetHost") +if(q==null)q="localhost" +return new A.f4(s,r,q,A.dD(b,"targetPort"),A.bT(b,"publicPort",null),A.b5(b,"secure"))}, +F8(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.C(b,"tunnelId") +q=A.A(b,"publicHost") +if(q==null)q="" +return new A.f5(s,r,q,A.dD(b,"publicPort"),A.b5(b,"secure"))}, +F9(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.A(b,"reason") +if(r==null)r="tunnel_rejected" +q=A.A(b,"message") +return new A.f6(s,r,q==null?"Tunnel rejected":q)}, +F3(a,b){A.L(a) +t.P.a(b) +return new A.eZ(A.C(b,"requestId"),A.C(b,"tunnelRef"))}, +F4(a,b){var s,r,q +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.b5(b,"ok") +q=A.A(b,"message") +return new A.f_(s,r,q==null?"":q)}, +F5(a,b){A.L(a) +return new A.f2(A.C(t.P.a(b),"requestId"))}, +F6(a,b){A.L(a) +t.P.a(b) +return new A.f3(A.C(b,"requestId"),A.Gi(b.k(0,"tunnels")))}, +Ej(a,b){var s,r,q,p,o +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("node.tunnel.connect")):a +r=A.C(b,"tunnelId") +q=A.A(b,"targetHost") +if(q==null)q="localhost" +p=A.dD(b,"targetPort") +o=A.A(b,"principal") +return new A.eD(s,r,q,p,o==null?"":o)}, +Ek(a,b){var s,r +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("node.tunnel.connected")):a +r=A.A(b,"tunnelId") +return new A.eF(s,r==null?"":r)}, +Ei(a,b){var s,r,q,p +A.L(a) +t.P.a(b) +s=a==null?A.K(A.bf("node.tunnel.connect.failed")):a +r=A.A(b,"tunnelId") +if(r==null)r="" +q=A.A(b,"reason") +if(q==null)q="dial_failed" +p=A.A(b,"message") +return new A.eE(s,r,q,p==null?"":p)}, +Gi(a){var s,r +if(!t._.b(a))return B.jM +s=J.kc(a,t.f) +r=s.$ti +r=A.d6(s,r.h("bz(i.E)").a(new A.wm()),r.h("i.E"),t.r_) +s=A.N(r,A.l(r).h("i.E")) +return s}, +bf(a){return new A.bG("Control message '"+a+"' requires a channel id",null,null)}, +Ct(a,b){A.L(a) +return new A.e6(A.C(t.P.a(b),"requestId"))}, +Cu(a,b){A.L(a) +t.P.a(b) +return new A.e7(A.C(b,"requestId"),A.b5(b,"available"),A.A(b,"provider"),A.A(b,"model"),A.A(b,"plannerModel"),A.A(b,"executorModel"),A.A(b,"explainerModel"),A.A(b,"baseUrl"),A.A(b,"mode"),A.A(b,"language"))}, +Dy(a){var s +A:{if("hubDefault"===(a==null?null:B.a.G(a))){s=B.d1 +break A}s=B.bI +break A}return s}, +Dz(a,b){var s,r,q,p,o +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.C(b,"method") +q=A.C(b,"url") +p=A.fV(b,"headers") +o=A.A(b,"body") +if(o==null)o="" +return new A.ew(s,r,q,p,o,A.Dy(A.A(b,"credentialMode")),A.A(b,"provider"))}, +DA(a,b){var s,r,q,p +A.L(a) +t.P.a(b) +s=A.C(b,"requestId") +r=A.bT(b,"statusCode",0) +r.toString +q=A.fV(b,"headers") +p=A.A(b,"body") +if(p==null)p="" +return new A.cv(s,r,q,p,A.A(b,"error"))}, +F:function F(){}, +dA:function dA(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +dt:function dt(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +ec:function ec(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +eb:function eb(a,b){this.a=a +this.b=b}, +ha:function ha(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +hb:function hb(a,b){this.a=a +this.b=b}, +h1:function h1(a){this.a=a}, +h8:function h8(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +h9:function h9(a,b){this.a=a +this.b=b}, +eJ:function eJ(a,b){this.a=a +this.b=b}, +eK:function eK(a,b,c){this.a=a +this.b=b +this.c=c}, +eB:function eB(a){this.a=a}, +eC:function eC(a){this.a=a}, +rz:function rz(){}, +eO:function eO(a,b,c,d,e,f,g,h,i,j){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i +_.y=j}, +eP:function eP(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +eQ:function eQ(a,b,c){this.a=a +this.b=b +this.c=c}, +he:function he(a,b,c,d,e,f,g,h,i,j,k){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i +_.y=j +_.z=k}, +hf:function hf(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +hg:function hg(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +eh:function eh(a,b,c){this.a=a +this.b=b +this.c=c}, +ei:function ei(a,b){this.a=a +this.b=b}, +fH:function fH(a,b){this.a=a +this.b=b}, +eg:function eg(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +dv:function dv(a,b,c){this.a=a +this.b=b +this.c=c}, +dw:function dw(a,b,c){this.a=a +this.b=b +this.c=c}, +hk:function hk(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +eL:function eL(a,b){this.a=a +this.b=b}, +hc:function hc(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +hd:function hd(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +eM:function eM(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +eq:function eq(a,b){this.a=a +this.b=b}, +h4:function h4(a,b){this.a=a +this.b=b}, +h5:function h5(a,b){this.a=a +this.b=b}, +rq:function rq(){}, +er:function er(a,b){this.a=a +this.b=b}, +pE:function pE(){}, +eo:function eo(a,b,c){this.a=a +this.b=b +this.c=c}, +h2:function h2(a,b,c){this.a=a +this.b=b +this.c=c}, +h3:function h3(a,b,c){this.a=a +this.b=b +this.c=c}, +ep:function ep(a,b,c){this.a=a +this.b=b +this.c=c}, +e3:function e3(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +h_:function h_(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +h0:function h0(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +e4:function e4(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +eR:function eR(a,b,c){this.a=a +this.b=b +this.c=c}, +hh:function hh(a,b,c){this.a=a +this.b=b +this.c=c}, +hi:function hi(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +eS:function eS(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +cL:function cL(a,b){this.a=a +this.b=b}, +wk:function wk(){}, +fL:function fL(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +h6:function h6(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +h7:function h7(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +ry:function ry(){}, +es:function es(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +pL:function pL(){}, +wl:function wl(){}, +f4:function f4(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f}, +f5:function f5(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +f6:function f6(a,b,c){this.a=a +this.b=b +this.c=c}, +eZ:function eZ(a,b){this.a=a +this.b=b}, +f_:function f_(a,b,c){this.a=a +this.b=b +this.c=c}, +f2:function f2(a){this.a=a}, +f3:function f3(a,b){this.a=a +this.b=b}, +uM:function uM(){}, +eD:function eD(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +eF:function eF(a,b){this.a=a +this.b=b}, +eE:function eE(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +wm:function wm(){}, +e6:function e6(a){this.a=a}, +e7:function e7(a,b,c,d,e,f,g,h,i,j){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i +_.y=j}, +la:function la(a,b){this.a=a +this.b=b}, +ew:function ew(a,b,c,d,e,f,g){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g}, +cv:function cv(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +D2(a){var s +A:{if(1===a){s=B.a9 +break A}if(2===a){s=B.i3 +break A}if(3===a){s=B.i4 +break A}s=A.K(A.bp("Unknown data opcode: 0x"+B.c.i4(a,16),null))}return s}, +ir:function ir(a,b,c){this.c=a +this.a=b +this.b=c}, +pX:function pX(a){this.a=a}, +d7:function d7(){}, +aL:function aL(a){this.a=a}, +en:function en(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +bp(a,b){return new A.cw(b==null?"protocol_error":b,a)}, +dH:function dH(){}, +cw:function cw(a,b){this.a=a +this.b=b}, +ie:function ie(a,b){this.a=a +this.b=b}, +j2:function j2(a,b){this.a=a +this.b=b}, +mD:function mD(a,b){this.a=a +this.b=b}, +dN:function dN(a,b){this.a=a +this.b=b}, +iG(a){if(t.f.b(a))return a.ak(0,t.N,t.z) +throw A.d(A.bp("Expected value to be a JSON object",null))}, +C(a,b){var s=a.k(0,b) +if(typeof s=="string")return s +throw A.d(A.bp("Missing or invalid string field '"+b+"'",null))}, +A(a,b){var s=a.k(0,b) +if(s==null)return null +if(typeof s=="string")return s +throw A.d(A.bp("Invalid string field '"+b+"'",null))}, +dD(a,b){var s=a.k(0,b) +if(A.hT(s))return s +throw A.d(A.bp("Missing or invalid int field '"+b+"'",null))}, +bT(a,b,c){var s=a.k(0,b) +if(s==null)return c +if(A.hT(s))return s +throw A.d(A.bp("Invalid int field '"+b+"'",null))}, +b5(a,b){var s=a.k(0,b) +if(s==null)return!1 +if(A.nW(s))return s +throw A.d(A.bp("Invalid bool field '"+b+"'",null))}, +ey(a,b){var s=A.yP(A.C(a,b)) +if(s==null)throw A.d(A.bp("Invalid timestamp field '"+b+"'",null)) +return s.av()}, +ls(a,b){var s,r=A.A(a,b) +if(r==null)return null +s=A.yP(r) +if(s==null)throw A.d(A.bp("Invalid timestamp field '"+b+"'",null)) +return s.av()}, +fV(a,b){var s,r=a.k(0,b) +if(r==null)return B.ac +if(t.f.b(r)){s=t.N +return r.d4(0,new A.r3(),s,s)}throw A.d(A.bp("Invalid map field '"+b+"'",null))}, +lr(a,b){var s,r=a.k(0,b) +if(r==null)return B.G +if(t._.b(r)){s=J.o8(r,new A.r2(),t.N) +s=A.N(s,s.$ti.h("Q.E")) +return s}throw A.d(A.bp("Invalid list field '"+b+"'",null))}, +r3:function r3(){}, +r2:function r2(){}, +u1:function u1(){}, +ib:function ib(a,b,c){var _=this +_.a=a +_.b=b +_.d=_.c=$ +_.e=null +_.f="" +_.r=c}, +oF:function oF(a){this.a=a}, +oG:function oG(a){this.a=a}, +oH:function oH(a){this.a=a}, +oE:function oE(a){this.a=a}, +oD:function oD(a,b,c,d,e,f,g,h,i,j,k){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i +_.y=j +_.z=k}, +wz(a5){var s=0,r=A.p(t.yu),q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4 +var $async$wz=A.q(function(a6,a7){if(a6===1)return A.m(a7,r) +for(;;)switch(s){case 0:a=v.G +a0=A.j(A.j(a.window).localStorage) +a1=new A.lB(a0) +a2=new A.tz(a1) +a3=new A.lQ() +a4=new A.kw(a3,a2,new A.aQ(B.cF,A.cj(t.zX),t.dK)) +a3.sqp(a4.gnr()) +p=A.cj(t.A) +o=A.yQ(A.Y(a0.getItem("omnyshell.terminal.dimPreset"))) +n=A.cj(t.cE) +m=A.Y(a0.getItem("omnyshell.terminal.customCols")) +m=A.bJ(m==null?"":m,null) +m=B.c.M(m==null?100:m,20,400) +l=t.S +k=A.cj(l) +j=t.jF +i=A.Y(a0.getItem("omnyshell.terminal.customRows")) +i=A.bJ(i==null?"":i,null) +i=B.c.M(i==null?30:i,5,200) +l=A.cj(l) +h=A.zy(A.Y(a0.getItem("omnyshell.terminal.textSize"))) +g=A.cj(t.aW) +f=A.j(A.j(a.window).matchMedia("(prefers-color-scheme: dark)")) +e=new A.mA(a2,new A.wA(f),new A.wB(),new A.aQ(A.F0(A.Y(a0.getItem("omnyshell.theme"))),A.cj(t.sm),t.Ef)) +e.fJ() +f.addEventListener("change",A.cW(new A.wC(e))) +a0=A.j(a.window) +d=A.j(a.window) +d=A.B3(B.dg,A.AZ(A.r(A.j(d.location).hash))) +c=A.cj(t.xf) +a=A.aS(A.j(a.document).getElementById("toasts")) +a.toString +b=new A.ib(new A.oD(a3,a4,new A.lN(a3,new A.ro("omnyshell.cache.nodes",a1),new A.aQ(B.cD,p,t.wg)),e,new A.uk(a2,new A.aQ(o,n,t.pa),new A.aQ(m,k,j),new A.aQ(i,l,j),new A.aQ(h,g,t.qv)),new A.ov(a2,a3),new A.t4(B.dg,a0,new A.aQ(d,c,t.pM)),a2,a1,new A.mB(a),new A.aQ(null,A.cj(t.T),t.vS)),a5,A.e([],t.we)) +a=A.t("header",null,null,B.h,"app-header",null,null,null,null) +b.c=a +c=A.t("main",null,null,B.h,"app-main",null,null,null,null) +b.d=c +c=A.t("div",null,null,A.e([a,c],t.O),null,null,null,null,null) +A.cq(a5) +A.j(a5.appendChild(c)) +a5.setAttribute("aria-busy","false") +b.b1() +s=3 +return A.f(a4.fw(),$async$wz) +case 3:q=b +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$wz,r)}, +wA:function wA(a){this.a=a}, +wB:function wB(){}, +wC:function wC(a){this.a=a}, +yz(a,b,c,d){return new A.bb(a,b,d)}, +ko(a){if(a instanceof A.bb)return a +if(a instanceof A.ie)return new A.bb(B.eK,"Authentication failed: "+a.b,"Check the principal and token, then try again.") +if(a instanceof A.dN)return new A.bb(B.ah,"Connection failed: "+a.b,"Verify the Hub URL is reachable over wss:// and its certificate is trusted by this browser. Self-signed Hubs must be trusted at the OS/browser level first.") +if(a instanceof A.dH)return new A.bb(B.bk,a.b,null) +return new A.bb(B.bk,J.b9(a),null)}, +ic:function ic(a,b){this.a=a +this.b=b}, +bb:function bb(a,b,c){this.a=a +this.b=b +this.c=c}, +aQ:function aQ(a,b,c){this.a=a +this.b=b +this.$ti=c}, +xO(a){var s,r,q,p=null,o="Invalid Hub address: ",n=B.a.G(a) +if(n.length===0)throw A.d(B.eL) +s=B.a.t(n,"://")?n:"wss://"+n +r=null +try{r=A.hC(s)}catch(q){if(t.Bj.b(A.R(q)))throw A.d(A.yz(B.ah,o+a,p,p)) +else throw q}if(r.gbj().length===0)throw A.d(A.yz(B.ah,o+a,p,p)) +if(r.gaG()!=="wss"&&r.gaG()!=="ws")return r.hY("wss") +return r}, +lQ:function lQ(){var _=this +_.d=_.c=_.b=null +_.e=!1 +_.f=null}, +rG:function rG(a,b){this.a=a +this.b=b}, +rE:function rE(a){this.a=a}, +rH:function rH(a,b){this.a=a +this.b=b}, +rF:function rF(a,b,c){this.a=a +this.b=b +this.c=c}, +rJ:function rJ(a,b,c){this.a=a +this.b=b +this.c=c}, +rD:function rD(a,b,c){this.a=a +this.b=b +this.c=c}, +rI:function rI(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +rK:function rK(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +B3(a,b){var s,r,q,p,o,n,m,l,k,j=A.AH(b) +for(s=t.N,r=0;r<5;++r){q=a[r] +p=A.AH(q) +if(p.length!==j.length)continue +o=A.I(s,s) +m=0 +for(;;){if(!(m"))}, +fX:function fX(a,b){this.a=a +this.b=b}, +b4:function b4(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.$ti=e}, +fD:function fD(a,b){this.a=a +this.b=b}, +ct:function ct(a,b,c){this.a=a +this.c=b +this.d=c}, +kw:function kw(a,b,c){this.a=a +this.b=b +this.c=c}, +lN:function lN(a,b,c){this.a=a +this.b=b +this.c=c}, +e2:function e2(a,b){this.a=a +this.b=b}, +iY:function iY(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +j4:function j4(a,b,c){this.a=a +this.b=b +this.c=c}, +uk:function uk(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +F0(a){return B.b.bX(B.df,new A.uI(a),new A.uJ())}, +bY:function bY(a,b){this.a=a +this.b=b}, +uI:function uI(a){this.a=a}, +uJ:function uJ(){}, +hm:function hm(a,b){this.a=a +this.b=b}, +mA:function mA(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +lB:function lB(a){this.a=a}, +ro:function ro(a,b){this.a=a +this.b=b}, +tz:function tz(a){this.b=a}, +x3(a,b,c,d){var s=0,r=A.p(t.H),q,p,o +var $async$x3=A.q(function(e,f){if(e===1)return A.m(f,r) +for(;;)switch(s){case 0:s=3 +return A.f(A.o2(c,d),$async$x3) +case 3:o=f +if(o==null){b.fp(new A.kk(a)) +s=1 +break}p=o.a +b.fp(new A.ki(p,A.B9(p,o.b),A.yN(null),B.fd,new A.x4(d),new A.x5(d),p.w,p.x)) +case 1:return A.n(q,r)}}) +return A.o($async$x3,r)}, +o2(a,b){return A.J6(a,b)}, +J6(a2,a3){var s=0,r=A.p(t.uD),q,p=2,o=[],n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1 +var $async$o2=A.q(function(a4,a5){if(a4===1){o.push(a5) +s=p}for(;;)switch(s){case 0:p=4 +g=a3.b.a +n=A.Y(g.getItem("omnyshell.ai.apiKey")) +if(A.Y(g.getItem("omnyshell.ai.useHubDefault"))==="false"&&n!=null&&n.length!==0){i=A.yx(A.Y(g.getItem("omnyshell.ai.provider"))) +m=i==null?B.bg:i +f=A.Y(g.getItem("omnyshell.ai.model")) +if(f==null)f=A.AR(m) +e=A.xy(A.Y(g.getItem("omnyshell.ai.mode"))) +if(e==null)e=B.a6 +l=new A.i8(m,f,null,null,null,n,null,e,A.Y(g.getItem("omnyshell.ai.language"))) +g=a2.gbi() +q=new A.hM(l,new A.fP(g,B.bI,null)) +s=1 +break}s=7 +return A.f(a2.fb().kv(B.ib),$async$o2) +case 7:k=a5 +j=k.b +if(!k.a||j==null){q=null +s=1 +break}m=A.yx(j) +i=m==null?B.bg:m +f=k.c +if(f==null)f=A.AR(i) +e=k.d +d=k.e +c=k.f +b=k.r +a=A.Y(g.getItem("omnyshell.ai.mode")) +a=A.xy(a==null?k.w:a) +if(a==null)a=B.a6 +g=A.Y(g.getItem("omnyshell.ai.language")) +if(g==null)g=k.x +h=new A.i8(i,f,e,d,c,"",b,a,g) +g=a2.gbi() +a=i.b +q=new A.hM(h,new A.fP(g,B.d1,a)) +s=1 +break +p=2 +s=6 +break +case 4:p=3 +a1=o.pop() +q=null +s=1 +break +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$o2,r)}, +x4:function x4(a){this.a=a}, +x5:function x5(a){this.a=a}, +kk:function kk(a){this.a=a}, +CS(a,b){var s,r,q,p,o=A.O("[^A-Za-z0-9_.@-]",!0),n=A.ad(a,o,"_"),m="omnyshell.history."+(n.length===0?"_":n),l=A.CP(null,1000) +try{s=A.Y(b.a.getItem(A.r(m))) +if(s!=null){o=l +r=t.Du.a(new A.ae(A.e(s.split("\n"),t.s),t.Ag.a(new A.pk()),t.vY)) +q=o.a +B.b.a0(q) +B.b.C(q,r) +o.iu()}}catch(p){}return new A.kI(l,b,m)}, +kI:function kI(a,b,c){this.a=a +this.b=b +this.c=c}, +pk:function pk(){}, +mM:function mM(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +uV:function uV(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f}, +EW(a,b,c,d,e){var s=new A.my(c,e,a,b,d) +s.lt(a,b,c,d,e) +return s}, +wF(){var s=0,r=A.p(t.T),q +var $async$wF=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:s=3 +return A.f(A.B7(A.j(A.j(A.j(A.j(v.G.window).navigator).clipboard).readText()),t.N),$async$wF) +case 3:q=b +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$wF,r)}, +wG(a){return A.Is(A.r(a))}, +Is(a){var s=0,r=A.p(t.H) +var $async$wG=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:s=2 +return A.f(A.B7(A.j(A.j(A.j(A.j(v.G.window).navigator).clipboard).writeText(a)),t.X),$async$wG) +case 2:return A.n(null,r)}}) +return A.o($async$wG,r)}, +my:function my(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.w=_.r=_.f=$ +_.x="C" +_.z=_.y=null}, +ui:function ui(a){this.a=a}, +uj:function uj(a){this.a=a}, +ug:function ug(a,b){this.a=a +this.b=b}, +uh:function uh(a,b){this.a=a +this.b=b}, +u6:function u6(a,b){this.a=a +this.b=b}, +u7:function u7(){}, +uf:function uf(a,b){this.a=a +this.b=b}, +u8:function u8(a){this.a=a}, +u9:function u9(){}, +ua:function ua(a){this.a=a}, +ub:function ub(){}, +ud:function ud(a,b){this.a=a +this.b=b}, +ue:function ue(a){this.a=a}, +uc:function uc(a,b){this.a=a +this.b=b}, +u4:function u4(a,b){this.a=a +this.b=b}, +u5:function u5(){}, +yQ(a){return B.b.bX(B.jw,new A.pG(a),new A.pH())}, +zy(a){return B.b.bX(B.iY,new A.uF(a),new A.uG())}, +wE(a){return new A.dT(B.c.M(B.p.dW((a.a-24)/7.8),20,400),B.c.M(B.p.dW((a.b-230)/15.6),5,200))}, +bP:function bP(a,b){this.a=a +this.b=b}, +pG:function pG(a){this.a=a}, +pH:function pH(){}, +by:function by(a,b){this.a=a +this.b=b}, +uF:function uF(a){this.a=a}, +uG:function uG(){}, +lT:function lT(a,b){this.a=a +this.b=b}, +pF:function pF(a,b){this.a=a +this.b=b}, +EX(a,b,c,d,e,f,g){return new A.mz(f,c,a,e,b,g,d)}, +zx(a,b,c){var s=A.cW(new A.ul(c)) +a.addEventListener(b,s) +return new A.um(a,b,s)}, +mz:function mz(a,b,c,d,e,f,g){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.x=_.w=!1 +_.at=_.as=_.Q=_.z=_.y=null}, +un:function un(a){this.a=a}, +uo:function uo(a){this.a=a}, +up:function up(a){this.a=a}, +uq:function uq(a){this.a=a}, +ur:function ur(a){this.a=a}, +ul:function ul(a){this.a=a}, +um:function um(a,b,c){this.a=a +this.b=b +this.c=c}, +Fe(a,b,c,d,e,f,g,h,i,j,k,l,m,n){var s=A.ci(null,null,!1,t.L),r=A.cj(t.H),q=Date.now() +s=new A.jg(n,i,d,s,b,a,f,e,j,k,h,g,c,l,r,new A.bk(q,0,!1),B.oG) +s.lu(a,b,c,d,e,f,g,h,i,j,k,l,m,null,n) +return s}, +jg:function jg(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){var _=this +_.a=a +_.b=b +_.c=c +_.e=_.d=$ +_.f=d +_.r=e +_.w=f +_.x=g +_.y=h +_.z=i +_.Q=j +_.as=k +_.at=l +_.ax=m +_.ay=n +_.cy=_.cx=_.CW=_.ch=!1 +_.db=null +_.dx=o +_.dy=p +_.fr=q +_.fx=null}, +v1:function v1(a){this.a=a}, +v2:function v2(a){this.a=a}, +v3:function v3(a){this.a=a}, +uW:function uW(a,b){this.a=a +this.b=b}, +v4:function v4(a){this.a=a}, +v5:function v5(a){this.a=a}, +uZ:function uZ(a){this.a=a}, +uY:function uY(a){this.a=a}, +v_:function v_(a){this.a=a}, +uX:function uX(a,b){this.a=a +this.b=b}, +v0:function v0(a){this.a=a}, +mT:function mT(a,b,c){var _=this +_.b=a +_.c=b +_.d=c +_.a=null}, +dh:function dh(a,b){var _=this +_.a=a +_.b=b +_.f=_.e=_.d=_.c=null}, +va:function va(a){this.a=a}, +vb:function vb(a){this.a=a}, +t(a,b,c,d,e,f,g,h,i){var s,r,q=A.j(A.j(v.G.document).createElement(a)) +if(e!=null)q.className=e +if(f!=null)q.id=f +if(i!=null)q.textContent=i +if(h!=null)q.setAttribute("role",h) +if(b!=null)q.setAttribute("aria-label",b) +if(c!=null)c.aa(0,new A.wI(q)) +for(s=d.length,r=0;r=1;s=q){q=s-1 +if(b[q]!=null)break}p=new A.T("") +o=a+"(" +p.a=o +n=A.U(b) +m=n.h("eW<1>") +l=new A.eW(b,0,s,m) +l.ls(b,0,s,n.c) +m=o+new A.a2(l,m.h("a(Q.E)").a(new A.ww()),m.h("a2")).S(0,", ") +p.a=m +p.a=m+("): part "+(r-1)+" was null, but part "+r+" was not.") +throw A.d(A.as(p.l(0),null))}}, +kO:function kO(a,b){this.a=a +this.b=b}, +pq:function pq(){}, +pr:function pr(){}, +ww:function ww(){}, +hK:function hK(a){this.a=a}, +hL:function hL(a){this.a=a}, +fR:function fR(){}, +eI(a,b){var s,r,q,p,o,n,m=b.kM(a),l=b.b7(a) +if(m!=null)a=B.a.D(a,m.length) +s=t.s +r=A.e([],s) +q=A.e([],s) +s=a.length +if(s!==0){if(0>=s)return A.b(a,0) +p=b.a8(a.charCodeAt(0))}else p=!1 +if(p){if(0>=s)return A.b(a,0) +B.b.j(q,a[0]) +o=1}else{B.b.j(q,"") +o=0}for(n=o;na.c.length)A.K(A.b7("Offset "+b+u.D+a.gn(0)+".")) +return new A.l3(a,b)}, +tK:function tK(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +l3:function l3(a,b){this.a=a +this.b=b}, +hH:function hH(a,b,c){this.a=a +this.b=b +this.c=c}, +Du(a,b){var s=A.Dv(A.e([A.Ft(a,!0)],t.oi)),r=new A.qv(b).$0(),q=B.c.l(B.b.gaX(s).b+1),p=A.Dw(s)?0:3,o=A.U(s) +return new A.qa(s,r,null,1+Math.max(q.length,p),new A.a2(s,o.h("c(1)").a(new A.qc()),o.h("a2<1,c>")).e6(0,B.fc),!A.IP(new A.a2(s,o.h("x?(1)").a(new A.qd()),o.h("a2<1,x?>"))),new A.T(""))}, +Dw(a){var s,r,q +for(s=0;s"));r.q();)J.ys(r.d,new A.qh()) +s=s.h("d4<1,2>") +r=s.h("ix") +s=A.N(new A.ix(new A.d4(q,s),s.h("i(i.E)").a(new A.qi()),r),r.h("i.E")) +return s}, +Ft(a,b){var s=new A.vH(a).$0() +return new A.b8(s,!0,null)}, +Fv(a){var s,r,q,p,o,n,m=a.ga1() +if(!B.a.t(m,"\r\n"))return a +s=a.gO().gan() +for(r=m.length-1,q=0;q=0))return A.b(a,s) +if(a.charCodeAt(s)===10)return r===1?0:r-B.a.fj(a,"\n",r-2)-1 +else return r-B.a.aY(a,"\n")-1}}, +qa:function qa(a,b,c,d,e,f,g){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g}, +qv:function qv(a){this.a=a}, +qc:function qc(){}, +qb:function qb(){}, +qd:function qd(){}, +qg:function qg(){}, +qh:function qh(){}, +qi:function qi(){}, +qf:function qf(a){this.a=a}, +qw:function qw(){}, +qj:function qj(a){this.a=a}, +qq:function qq(a,b,c){this.a=a +this.b=b +this.c=c}, +qr:function qr(a,b){this.a=a +this.b=b}, +qs:function qs(a){this.a=a}, +qt:function qt(a,b,c,d,e,f,g){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g}, +qo:function qo(a,b){this.a=a +this.b=b}, +qp:function qp(a,b){this.a=a +this.b=b}, +qk:function qk(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +ql:function ql(a,b,c){this.a=a +this.b=b +this.c=c}, +qm:function qm(a,b,c){this.a=a +this.b=b +this.c=c}, +qn:function qn(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +qu:function qu(a,b,c){this.a=a +this.b=b +this.c=c}, +b8:function b8(a,b,c){this.a=a +this.b=b +this.c=c}, +vH:function vH(a){this.a=a}, +c7:function c7(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +mo(a,b,c,d){if(a<0)A.K(A.b7("Offset may not be negative, was "+a+".")) +else if(c<0)A.K(A.b7("Line may not be negative, was "+c+".")) +else if(b<0)A.K(A.b7("Column may not be negative, was "+b+".")) +return new A.cz(d,a,c,b)}, +cz:function cz(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +mp:function mp(){}, +mq:function mq(){}, +EO(a,b,c){return new A.hs(c,a,b)}, +mr:function mr(){}, +hs:function hs(a,b,c){this.c=a +this.a=b +this.b=c}, +ht:function ht(){}, +tL(a,b,c,d){var s=new A.dc(d,a,b,c) +s.lr(a,b,c) +if(!B.a.t(d,c))A.K(A.as('The context line "'+d+'" must contain "'+c+'".',null)) +if(A.wL(d,c,a.gal())==null)A.K(A.as('The span text "'+c+'" must start at column '+(a.gal()+1)+' in a line within "'+d+'".',null)) +return s}, +dc:function dc(a,b,c,d){var _=this +_.d=a +_.a=b +_.b=c +_.c=d}, +yU(a,b,c,d){var s,r={} +r.a=a +s=new A.iA(d.h("iA<0>")) +s.lk(b,c,r,d) +return s}, +iA:function iA(a){var _=this +_.b=_.a=$ +_.c=null +_.d=!1 +_.$ti=a}, +q9:function q9(a,b,c){this.a=a +this.b=b +this.c=c}, +q8:function q8(a){this.a=a}, +hI:function hI(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.e=_.d=!1 +_.r=_.f=null +_.w=d +_.$ti=e}, +vG:function vG(){}, +mt:function mt(a){this.b=this.a=$ +this.$ti=a}, +ja:function ja(){}, +mv:function mv(a,b,c){this.c=a +this.a=b +this.b=c}, +tZ:function tZ(a,b){var _=this +_.a=a +_.b=b +_.c=0 +_.e=_.d=null}, +rZ:function rZ(){}, +pt:function pt(){}, +uU:function uU(){}, +zL(a,b,c,d,e){var s +if(c==null)s=null +else{s=A.AM(new A.vp(c),t.m) +s=s==null?null:A.cW(s)}s=new A.ju(a,b,s,!1,e.h("ju<0>")) +s.hh() +return s}, +AM(a,b){var s=$.E +if(s===B.t)return a +return s.pu(a,b)}, +xD:function xD(a,b){this.a=a +this.$ti=b}, +fe:function fe(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.$ti=d}, +ju:function ju(a,b,c,d,e){var _=this +_.a=0 +_.b=a +_.c=b +_.d=c +_.e=d +_.$ti=e}, +vp:function vp(a){this.a=a}, +vq:function vq(a){this.a=a}, +xB(a,b){var s=0,r=A.p(t.Ej),q,p,o,n,m,l,k +var $async$xB=A.q(function(c,d){if(c===1)return A.m(d,r) +for(;;)switch(s){case 0:if(!a.fi("ws")&&!a.fi("wss"))throw A.d(A.cY(a,"url","only ws: and wss: schemes are supported")) +p=v.G +o=p.WebSocket +n=a.l(0) +p=p.Array +p=t.Cf.a(new p()) +m=A.j(new o(n,p)) +m.binaryType="arraybuffer" +l=new A.ed(m,A.ci(null,null,!1,t.uy)) +p=new A.v($.E,t.g_) +k=new A.W(p,t.vE) +if(A.a4(m.readyState)===1)k.V(l) +else if(A.a4(m.readyState)===2||A.a4(m.readyState)===3)k.a7(new A.hE("Unexpected WebSocket state: "+A.a4(m.readyState)+", expected CONNECTING (0) or OPEN (1)")) +else new A.fe(m,"open",!1,t.v5).gI(0).aZ(new A.oM(k,l),t.H) +o=t.v5 +n=t.H +new A.fe(m,"error",!1,o).gI(0).aZ(new A.oN(k,l),n) +A.zL(m,"message",t.xS.a(new A.oO(l)),!1,t.m) +new A.fe(m,"close",!1,o).gI(0).aZ(new A.oP(k,l),n) +q=p +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$xB,r)}, +ed:function ed(a,b){this.a=a +this.b=b}, +oM:function oM(a,b){this.a=a +this.b=b}, +oN:function oN(a,b){this.a=a +this.b=b}, +oO:function oO(a){this.a=a}, +oP:function oP(a,b){this.a=a +this.b=b}, +xX(){return new A.hD("Connection Closed")}, +dg:function dg(){}, +hy:function hy(a){this.a=a}, +fE:function fE(a){this.a=a}, +fI:function fI(a,b){this.a=a +this.b=b}, +hE:function hE(a){this.a=a}, +hD:function hD(a){this.a=a}, +Cn(a){var s=null,r=$.E,q=new A.mt(t.hv),p=t.X,o=A.ci(s,s,!0,p),n=A.ci(s,s,!0,p),m=A.l(n),l=A.l(o) +q.a=A.yU(new A.ac(n,m.h("ac<1>")),new A.fn(o,l.h("fn<1>")),!0,p) +q.b=A.yU(new A.ac(o,l.h("ac<1>")),new A.fn(n,m.h("fn<1>")),!1,p) +q=new A.kd(new A.W(new A.v(r,t.D),t.h),q) +q.li(a) +return q}, +kd:function kd(a,b){var _=this +_.e=_.d=null +_.f=a +_.r=b +_.w=$}, +od:function od(a){this.a=a}, +oa:function oa(a){this.a=a}, +ob:function ob(a){this.a=a}, +oc:function oc(a,b){this.a=a +this.b=b}, +oe:function oe(a){this.a=a}, +nS:function nS(a,b){this.b=a +this.a=b}, +mN:function mN(a){this.a=a}, +zA(a,b,c){var s=a.BYTES_PER_ELEMENT +c=A.aR(b,c,B.c.dm(a.byteLength,s)) +return J.xt(B.H.ghp(a),a.byteOffset+b*s,(c-b)*s)}, +IF(a,b,c,d){var s,r,q,p,o,n=A.I(d,c.h("k<0>")) +for(s=c.h("z<0>"),r=0;r<1;++r){q=a[r] +p=b.$1(q) +o=n.k(0,p) +if(o==null){o=A.e([],s) +n.i(0,p,o) +p=o}else p=o +J.fw(p,q)}return n}, +ah(a,b,c,d,e){var s,r,q=A.e([],t.j) +for(s=a.length,r=0;r0)return s.a4(a) +if(b==null)return null +return s.a4(s.q6(0,b,a))}, +IG(a){var s +A:{if(B.dW===a){s=B.bB +break A}if(B.dX===a){s=B.bA +break A}s=B.bz +break A}return s}, +Cr(a5,a6,a7,a8){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4 +if(a6.gK(0)||a6.d<3)return null +s=a6.b +r=a7?B.c3:B.V +q=a6.a +p=a6.c +a5.aV(q,s,p,1," ",B.V) +o=q+1 +n=p-2 +a5.am(o,s," AI AGENT ",r,n) +m=a8.d.a +if(p>18){l=p-14 +k=m.length +j=k>l?"\u2026"+B.a.D(m,k-l):m +a5.bW(q+p-1-j.length,s,j,B.V)}i=s+1 +k=a6.d +h=k-2 +g=A.e([],t.s) +for(f=A.cO(a8.e,t.N),e=f.length,d=0;d=g.length)continue +if(!(a1>=0&&a1b;){if(p.length!==0){B.b.j(s,p) +p=""}B.b.j(s,B.a.m(m,0,b)) +m=B.a.D(m,b)}k=p.length +if(k===0)p=m +else if(k+1+l<=b)p=p+" "+m +else{B.b.j(s,p) +p=m}}B.b.j(s,p) +return s}, +Di(a1,a2,a3,a4,a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=null,c=a2.a,b=a2.b,a=a2.c,a0=a2.d +a1.aV(c,b,a,a0," ",B.U) +if(a2.gK(0))return d +s=a4.a +if(s.e){a1.am(c+B.c.M(B.c.W(a-27,2),0,a),b+B.c.W(a0,2),"\u2014 binary file (read-only) \u2014",B.U.cj(B.ak),a) +return d}r=s.b +q=B.c.M(B.c.l(r.length).length,2,9) +p=1+q+1 +o=c+p +n=a-p +if(n<=0)return d +m=s.f +l=a4.d +if(m=l+a0){m=m-a0+1 +a4.d=m}else m=l +if(m<0)a4.d=0 +m=s.r +l=a4.e +if(m=l+n){m=m-n+1 +a4.e=m}else m=l +if(m<0)a4.e=0 +for(k=0;k=r.length){a1.bW(c,i,"~",B.b6) +continue}h=j===s.f +g=h?B.aK:d +if(h)a1.aV(c,i,a,1," ",B.U.jW(g)) +A.Dg(a1,c,i,j,q,a4,h) +A.Dh(a1,o,i,n,j,a4,a5,g)}if(!a3)return d +f=b+(s.f-a4.d) +e=o+(s.r-a4.e) +if(f=b+a0||e=c+a)return d +return new A.dU(e,f)}, +Dg(a,b,c,d,e,f,g){var s,r,q=d+1,p=f.c.a.k(0,q),o=f.c.b.t(0,q),n=p==null +if(n&&!o)s=" " +else s=o&&n?"\u2581":"\u258e" +switch(p){case B.bH:n=B.bs +break +case B.d0:n=B.aI +break +case null:case void 0:n=o?B.ar:null +break +default:n=null}r=g?B.c0:B.b6 +a.aR(b,c,s,r.cj(n==null?r.a:n)) +n=b+1 +a.bW(n,c,B.a.qz(B.c.l(q),e),r) +a.aR(n+e,c," ",r)}, +Dh(a,b,c,d,e,f,g,a0){var s,r,q,p,o,n,m,l,k,j,i=f.l0(e,g),h=b+d +for(s=f.b.d2(f.a.qa(e),i,g).a,r=s.length,q=a0==null,p=0,o=0;o=b&&j=h)break}}}, +Dn(a2,a3,a4,a5,a6,a7,a8){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b=a3.a,a=a3.b,a0=a3.c,a1=a3.d +a2.aV(b,a,a0,a1," ",B.e_) +for(s=b+1,r=a0-2,q=b+a0-2,p=0;p=a5.length)break +if(!(o>=0&&oc.length+3)a2.bW(q,m,d,l?i:B.e_.cj(h))}}, +Dl(a){switch(a){case B.at:case B.au:return B.aI +case B.aP:return B.bs +case B.aQ:return B.ha +case B.bE:return B.ar +case B.bG:return B.ar +case null:case void 0:case B.d_:case B.bF:return null}}, +Dm(a){switch(a){case B.at:return"M" +case B.aP:return"A" +case B.bE:return"D" +case B.au:return"R" +case B.aQ:return"?" +case B.bG:return"!" +case null:case void 0:case B.d_:case B.bF:return null}}, +Dx(a,b,c){var s,r,q,p,o,n,m,l,k,j,i +if(b.gK(0))return +s=b.b +r=b.a +q=b.c +a.aV(r,s,q,1," ",B.dY) +if(c){p=A.N(B.kN,t.p_) +B.b.C(p,B.dc) +o=p}else o=B.dc +n=r+1 +m=r+q-1 +for(r=o.length,l=n,k=0;kn&&l+(j.length+1+i.length)>m)break +l=a.am(l,s,j,B.oJ,m-l) +l=a.am(l,s," "+i,B.dY,m-l)+3}}, +yV(a0,a1,a2,a3,a4){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e=a2.length,d=e!==0,c=a1.c,b=B.c.M(c-4,4,c),a=a4.length +e=[a3.length+2,a+1,e] +s=24 +r=0 +for(;r<3;++r){q=e[r] +if(q>s)s=q}if(s>b)s=b +p=s+4 +o=d?4:3 +n=a1.a+B.c.M(B.c.W(c-p,2),0,c) +e=a1.d +m=a1.b+B.c.M(B.c.W(e-o,2),0,e) +for(l=0;lq+l.length+1)a.bW(j,s,k,B.c1)}, +EV(a,a0,a1,a2){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=a0.a,c=a0.b,b=a0.c +a.aV(d,c,b,1," ",B.V) +if(a2.length===0){a.am(d+1,c,"no files open \u2014 Tab to focus the tree, Enter to open",B.V,b-2) +return}s=A.e([],t.s) +for(r=a2.length,q=0;qb){if(!(a1>=0&&a1b?i-b:0 +if(jb)continue +a.am(e,c,r,f,b-e)}}, +EU(a){var s +if(a.length===0)return"untitled" +s=B.a.aY(a,A.O("[/\\\\]",!0)) +return s<0?a:B.a.D(a,s+1)}, +F_(a5,a6,a7,a8){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4 +if(a6.gK(0)||a6.d<3)return null +s=a6.b +r=a7?B.c3:B.V +q=a6.a +p=a6.c +a5.aV(q,s,p,1," ",B.V) +o=q+1 +n=p-2 +a5.am(o,s," TERMINAL ",r,n) +m=a8.d +l=q+p-1 +k=m.length +j=l-k +if(j>q+12)a5.bW(j,s,m,B.V) +else if(p>16){i=p-16 +h=k>i?"\u2026"+B.a.D(m,k-i):m +a5.bW(l-h.length,s,h,B.V)}g=s+1 +k=a6.d +f=k-2 +e=A.cO(a8.e,t.N) +d=e.length +c=d-f +b=B.c.M(c,0,d) +a=B.c.M(c-B.c.M(a8.r,0,b),0,d) +for(a0=0;a0=d)continue +if(!(a1>=0&&a11&&B.a.aA(p,"/")))break +p=B.a.m(p,0,s-1)}r=B.a.aY(p,"/") +q=r<0?p:B.a.D(p,r+1) +return q.length===0?"archive":q}, +AW(a){var s,r=a,q=0 +for(;;){if(!(r>=1024&&q<4))break +r/=1024;++q}s=B.p.i5(r,q===0?0:1) +if(!(q<5))return A.b(B.de,q) +return s+" "+B.de[q]}, +o_(a,b){var s=0,r=A.p(t.tN),q,p,o,n +var $async$o_=A.q(function(c,d){if(c===1)return A.m(d,r) +for(;;)switch(s){case 0:n=A.Cn(A.xB(a,null)) +s=3 +return A.f(n.f.a,$async$o_) +case 3:p=$.Bu() +o=A.xK(null,null,t.N,t.eR) +o.C(0,p) +q=A.Fi(n,new A.pX(o)) +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$o_,r)}, +yH(a,b,c){var s,r,q +if(c<0||c>4294967295)throw A.d(A.cY(c,"value","not a uint32")) +s=B.c.aT(c,24) +a.$flags&2&&A.ai(a) +r=a.length +if(!(b>>0}, +Bb(a,b){var s,r=b.dR(a).a +if(r<0)return"just now" +s=B.c.W(r,1e6) +if(s<60)return""+s+"s ago" +s=B.c.W(r,6e7) +if(s<60)return""+s+"m ago" +s=B.c.W(r,36e8) +if(s<24)return""+s+"h ago" +return""+B.c.W(r,864e8)+"d ago"}, +Ji(a,b){var s,r=a.dR(b).a +if(r<0)return"expired" +s=B.c.W(r,6e7) +if(s<60)return"in "+s+"m" +s=B.c.W(r,36e8) +if(s<24)return"in "+s+"h" +return"in "+B.c.W(r,864e8)+"d"}, +AS(){var s=A.j(A.j(v.G.window).screen),r=A.a4(s.width),q=A.a4(s.height),p=r=65&&a<=90))s=a>=97&&a<=122 +else s=!0 +return s}, +AT(a,b){var s,r,q=null,p=a.length,o=b+2 +if(p=0&&b=0&&s")),q=q.h("Q.E");r.q();){p=r.d +if(!J.a0(p==null?q.a(p):p,s))return!1}return!0}, +J5(a,b,c){var s=B.b.aW(a,null) +if(s<0)throw A.d(A.as(A.u(a)+" contains no null elements.",null)) +B.b.i(a,s,b)}, +Bc(a,b,c){var s=B.b.aW(a,b) +if(s<0)throw A.d(A.as(A.u(a)+" contains no elements matching "+b.l(0)+".",null)) +B.b.i(a,s,null)}, +Ip(a,b){var s,r,q,p +for(s=new A.cu(a),r=t.I,s=new A.aI(s,s.gn(0),r.h("aI")),r=r.h("P.E"),q=0;s.q();){p=s.d +if((p==null?r.a(p):p)===b)++q}return q}, +wL(a,b,c){var s,r,q +if(b.length===0)for(s=0;;){r=B.a.a_(a,"\n",s) +if(r===-1)return a.length-s>=c?s:null +if(r-s>=c)return s +s=r+1}r=B.a.aW(a,b) +while(r!==-1){q=r===0?0:B.a.fj(a,"\n",r-1)+1 +if(c===r-q)return q +r=B.a.a_(a,b,r+1)}return null}, +IS(){var s=A.aS(A.j(v.G.document).getElementById("app")) +A.wz(s==null?A.j(s):s)}},B={} +var w=[A,J,B] +var $={} +A.xI.prototype={} +J.lh.prototype={ +L(a,b){return a===b}, +gE(a){return A.dI(a)}, +l(a){return"Instance of '"+A.m5(a)+"'"}, +gai(a){return A.cb(A.y8(this))}} +J.lj.prototype={ +l(a){return String(a)}, +gE(a){return a?519018:218159}, +gai(a){return A.cb(t.y)}, +$iao:1, +$iy:1} +J.iC.prototype={ +L(a,b){return null==b}, +l(a){return"null"}, +gE(a){return 0}, +gai(a){return A.cb(t.c)}, +$iao:1, +$iab:1} +J.iD.prototype={$iaj:1} +J.dF.prototype={ +gE(a){return 0}, +gai(a){return B.pH}, +l(a){return String(a)}} +J.lZ.prototype={} +J.f7.prototype={} +J.d3.prototype={ +l(a){var s=a[$.Bn()] +if(s==null)s=a[$.o4()] +if(s==null)return this.lb(a) +return"JavaScript function for "+J.b9(s)}, +$id1:1} +J.fT.prototype={ +gE(a){return 0}, +l(a){return String(a)}} +J.fU.prototype={ +gE(a){return 0}, +l(a){return String(a)}} +J.z.prototype={ +j(a,b){A.U(a).c.a(b) +a.$flags&1&&A.ai(a,29) +a.push(b)}, +bx(a,b){a.$flags&1&&A.ai(a,"removeAt",1) +if(b<0||b>=a.length)throw A.d(A.t_(b,null)) +return a.splice(b,1)[0]}, +hJ(a,b,c){A.U(a).c.a(c) +a.$flags&1&&A.ai(a,"insert",2) +if(b<0||b>a.length)throw A.d(A.t_(b,null)) +a.splice(b,0,c)}, +hK(a,b,c){var s,r +A.U(a).h("i<1>").a(c) +a.$flags&1&&A.ai(a,"insertAll",2) +A.zo(b,0,a.length,"index") +if(!t.g.b(c))c=J.yu(c) +s=J.aE(c) +a.length=a.length+s +r=b+s +this.bd(a,r,a.length,a,b) +this.bK(a,b,r,c)}, +hX(a){a.$flags&1&&A.ai(a,"removeLast",1) +if(a.length===0)throw A.d(A.i2(a,-1)) +return a.pop()}, +qN(a,b){A.U(a).h("y(1)").a(b) +a.$flags&1&&A.ai(a,16) +this.je(a,b,!0)}, +je(a,b,c){var s,r,q,p,o +A.U(a).h("y(1)").a(b) +s=[] +r=a.length +for(q=0;q"))}, +C(a,b){var s +A.U(a).h("i<1>").a(b) +a.$flags&1&&A.ai(a,"addAll",2) +if(Array.isArray(b)){this.ly(a,b) +return}for(s=J.aN(b);s.q();)a.push(s.gA())}, +ly(a,b){var s,r +t.zz.a(b) +s=b.length +if(s===0)return +if(a===b)throw A.d(A.aG(a)) +for(r=0;r").H(c).h("a2<1,2>"))}, +S(a,b){var s,r=A.bU(a.length,"",!1,t.N) +for(s=0;s=s)return A.b(a,0) +r=a[0] +for(q=1;q=0&&ba.length)throw A.d(A.ay(b,0,a.length,"start",null)) +if(c==null)c=a.length +else if(ca.length)throw A.d(A.ay(c,b,a.length,"end",null)) +if(b===c)return A.e([],A.U(a)) +return A.e(a.slice(b,c),A.U(a))}, +b2(a,b){return this.aq(a,b,null)}, +gI(a){if(a.length>0)return a[0] +throw A.d(A.ce())}, +gaX(a){var s=a.length +if(s>0)return a[s-1] +throw A.d(A.ce())}, +e9(a,b,c){a.$flags&1&&A.ai(a,18) +A.aR(b,c,a.length) +a.splice(b,c-b)}, +bd(a,b,c,d,e){var s,r,q,p,o +A.U(a).h("i<1>").a(d) +a.$flags&2&&A.ai(a,5) +A.aR(b,c,a.length) +s=c-b +if(s===0)return +A.bq(e,"skipCount") +if(t._.b(d)){r=d +q=e}else{r=J.o9(d,e).c1(0,!1) +q=0}p=J.at(r) +if(q+s>p.gn(r))throw A.d(A.yW()) +if(q=0;--o)a[b+o]=p.k(r,q+o) +else for(o=0;o").a(d) +a.$flags&1&&A.ai(a,"replaceRange","remove from or add to") +A.aR(b,c,a.length) +if(!t.g.b(d))d=J.yu(d) +s=c-b +r=J.aE(d) +q=b+r +p=a.length +if(s>=r){o=s-r +n=p-o +m.bK(a,b,q,d) +if(o!==0){m.bd(a,q,n,a,c) +m.sn(a,n)}}else{n=p+(r-s) +a.length=n +m.bd(a,q,n,a,c) +m.bK(a,b,q,d)}}, +ac(a,b){var s,r +A.U(a).h("y(1)").a(b) +s=a.length +for(r=0;r0){a[0]=q +a[1]=r}return}p=0 +if(n.c.b(null))for(o=0;o0)this.od(a,p)}, +di(a){return this.bn(a,null)}, +od(a,b){var s,r=a.length +for(;s=r-1,r>0;r=s)if(a[s]===null){a[s]=void 0;--b +if(b===0)break}}, +a_(a,b,c){var s,r=a.length +if(c>=r)return-1 +if(c<0)c=0 +for(s=c;s"))}, +gE(a){return A.dI(a)}, +gn(a){return a.length}, +sn(a,b){a.$flags&1&&A.ai(a,"set length","change the length of") +if(b<0)throw A.d(A.ay(b,0,null,"newLength",null)) +if(b>a.length)A.U(a).c.a(null) +a.length=b}, +k(a,b){if(!(b>=0&&b=0&&b"))}, +fg(a,b){var s +A.U(a).h("y(1)").a(b) +if(0>=a.length)return-1 +for(s=0;s=p){r.d=null +return!1}r.d=q[s] +r.c=s+1 +return!0}, +$ia8:1} +J.fS.prototype={ +a3(a,b){var s +A.Ah(b) +if(ab)return 1 +else if(a===b){if(a===0){s=this.gfh(b) +if(this.gfh(a)===s)return 0 +if(this.gfh(a))return-1 +return 1}return 0}else if(isNaN(a)){if(isNaN(b))return 0 +return 1}else return-1}, +gfh(a){return a===0?1/a<0:a<0}, +kx(a){var s +if(a>=-2147483648&&a<=2147483647)return a|0 +if(isFinite(a)){s=a<0?Math.ceil(a):Math.floor(a) +return s+0}throw A.d(A.aw(""+a+".toInt()"))}, +pv(a){var s,r +if(a>=0){if(a<=2147483647){s=a|0 +return a===s?s:s+1}}else if(a>=-2147483648)return a|0 +r=Math.ceil(a) +if(isFinite(r))return r +throw A.d(A.aw(""+a+".ceil()"))}, +dW(a){var s,r +if(a>=0){if(a<=2147483647)return a|0}else if(a>=-2147483648){s=a|0 +return a===s?s:s-1}r=Math.floor(a) +if(isFinite(r))return r +throw A.d(A.aw(""+a+".floor()"))}, +cv(a){if(a>0){if(a!==1/0)return Math.round(a)}else if(a>-1/0)return 0-Math.round(0-a) +throw A.d(A.aw(""+a+".round()"))}, +M(a,b,c){if(this.a3(b,c)>0)throw A.d(A.i0(b)) +if(this.a3(a,b)<0)return b +if(this.a3(a,c)>0)return c +return a}, +i5(a,b){var s +if(b>20)throw A.d(A.ay(b,0,20,"fractionDigits",null)) +s=a.toFixed(b) +if(a===0&&this.gfh(a))return"-"+s +return s}, +i4(a,b){var s,r,q,p,o +if(b<2||b>36)throw A.d(A.ay(b,2,36,"radix",null)) +s=a.toString(b) +r=s.length +q=r-1 +if(!(q>=0))return A.b(s,q) +if(s.charCodeAt(q)!==41)return s +p=/^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(s) +if(p==null)A.K(A.aw("Unexpected toString result: "+s)) +r=p.length +if(1>=r)return A.b(p,1) +s=p[1] +if(3>=r)return A.b(p,3) +o=+p[3] +r=p[2] +if(r!=null){s+=r +o-=r.length}return s+B.a.aQ("0",o)}, +l(a){if(a===0&&1/a<0)return"-0.0" +else return""+a}, +gE(a){var s,r,q,p,o=a|0 +if(a===o)return o&536870911 +s=Math.abs(a) +r=Math.log(s)/0.6931471805599453|0 +q=Math.pow(2,r) +p=s<1?s/q:q/s +return((p*9007199254740992|0)+(p*3542243181176521|0))*599197+r*1259&536870911}, +ia(a,b){return a+b}, +bc(a,b){var s=a%b +if(s===0)return 0 +if(s>0)return s +if(b<0)return s-b +else return s+b}, +dm(a,b){if((a|0)===a)if(b>=1||b<-1)return a/b|0 +return this.jw(a,b)}, +W(a,b){return(a|0)===a?a/b|0:this.jw(a,b)}, +jw(a,b){var s=a/b +if(s>=-2147483648&&s<=2147483647)return s|0 +if(s>0){if(s!==1/0)return Math.floor(s)}else if(s>-1/0)return Math.ceil(s) +throw A.d(A.aw("Result of truncating division is "+A.u(s)+": "+A.u(a)+" ~/ "+b))}, +aT(a,b){var s +if(a>0)s=this.ju(a,b) +else{s=b>31?31:b +s=a>>s>>>0}return s}, +oM(a,b){if(0>b)throw A.d(A.i0(b)) +return this.ju(a,b)}, +ju(a,b){return b>31?0:a>>>b}, +aP(a,b){return a>b}, +gai(a){return A.cb(t.fY)}, +$iaK:1, +$ia_:1, +$ibB:1} +J.iB.prototype={ +gai(a){return A.cb(t.S)}, +$iao:1, +$ic:1} +J.lk.prototype={ +gai(a){return A.cb(t.pR)}, +$iao:1} +J.dB.prototype={ +pC(a,b){if(b<0)throw A.d(A.i2(a,b)) +if(b>=a.length)A.K(A.i2(a,b)) +return a.charCodeAt(b)}, +hm(a,b,c){var s=b.length +if(c>s)throw A.d(A.ay(c,0,s,null,null)) +return new A.nA(b,a,c)}, +dK(a,b){return this.hm(a,b,0)}, +cq(a,b,c){var s,r,q,p,o=null +if(c<0||c>b.length)throw A.d(A.ay(c,0,b.length,o,o)) +s=a.length +r=b.length +if(c+s>r)return o +for(q=0;q=0&&pr)return!1 +return b===this.D(a,r-s)}, +kr(a,b,c){A.zo(0,0,a.length,"startIndex") +return A.Bg(a,b,c,0)}, +cC(a,b){var s +if(typeof b=="string")return A.e(a.split(b),t.s) +else{if(b instanceof A.dC){s=b.e +s=!(s==null?b.e=b.lW():s)}else s=!1 +if(s)return A.e(a.split(b.b),t.s) +else return this.m6(a,b)}}, +bI(a,b,c,d){var s=A.aR(b,c,a.length) +return A.Bh(a,b,s,d)}, +m6(a,b){var s,r,q,p,o,n,m=A.e([],t.s) +for(s=J.xs(b,a),s=s.gJ(s),r=0,q=1;s.q();){p=s.gA() +o=p.gP() +n=p.gO() +q=n-o +if(q===0&&r===o)continue +B.b.j(m,this.m(a,r,o)) +r=n}if(r0)B.b.j(m,this.D(a,r)) +return m}, +a6(a,b,c){var s +if(c<0||c>a.length)throw A.d(A.ay(c,0,a.length,null,null)) +s=c+b.length +if(s>a.length)return!1 +return b===a.substring(c,s)}, +u(a,b){return this.a6(a,b,0)}, +m(a,b,c){return a.substring(b,A.aR(b,c,a.length))}, +D(a,b){return this.m(a,b,null)}, +G(a){var s,r,q,p=a.trim(),o=p.length +if(o===0)return p +if(0>=o)return A.b(p,0) +if(p.charCodeAt(0)===133){s=J.z_(p,1) +if(s===o)return""}else s=0 +r=o-1 +if(!(r>=0))return A.b(p,r) +q=p.charCodeAt(r)===133?J.z0(p,r):o +if(s===0&&q===o)return p +return p.substring(s,q)}, +i7(a){var s=a.trimStart(),r=s.length +if(r===0)return s +if(0>=r)return A.b(s,0) +if(s.charCodeAt(0)!==133)return s +return s.substring(J.z_(s,1))}, +c2(a){var s,r=a.trimEnd(),q=r.length +if(q===0)return r +s=q-1 +if(!(s>=0))return A.b(r,s) +if(r.charCodeAt(s)!==133)return r +return r.substring(0,J.z0(r,s))}, +aQ(a,b){var s,r +if(0>=b)return"" +if(b===1||a.length===0)return a +if(b!==b>>>0)throw A.d(B.fN) +for(s=a,r="";;){if((b&1)===1)r=s+r +b=b>>>1 +if(b===0)break +s+=s}return r}, +d5(a,b,c){var s=b-a.length +if(s<=0)return a +return this.aQ(c,s)+a}, +qz(a,b){return this.d5(a,b," ")}, +kl(a,b){var s=b-a.length +if(s<=0)return a +return a+this.aQ(" ",s)}, +a_(a,b,c){var s +if(c<0||c>a.length)throw A.d(A.ay(c,0,a.length,null,null)) +s=a.indexOf(b,c) +return s}, +aW(a,b){return this.a_(a,b,0)}, +fj(a,b,c){var s,r,q +if(c==null)c=a.length +else if(c<0||c>a.length)throw A.d(A.ay(c,0,a.length,null,null)) +if(typeof b=="string"){s=b.length +r=a.length +if(c+s>r)c=r-s +return a.lastIndexOf(b,c)}for(s=J.i3(b),q=c;q>=0;--q)if(s.cq(b,a,q)!=null)return q +return-1}, +aY(a,b){return this.fj(a,b,null)}, +t(a,b){return A.J9(a,b,0)}, +a3(a,b){var s +A.r(b) +if(a===b)s=0 +else s=a>6}r=r+((r&67108863)<<3)&536870911 +r^=r>>11 +return r+((r&16383)<<15)&536870911}, +gai(a){return A.cb(t.N)}, +gn(a){return a.length}, +$ibl:1, +$iao:1, +$iaK:1, +$irL:1, +$ia:1} +A.dQ.prototype={ +j(a,b){t.L.a(b) +B.b.j(this.b,b) +this.a=this.a+b.length}, +ft(){var s,r,q,p,o,n,m,l=this,k=l.a +if(k===0)return $.BR() +s=l.b +r=s.length +if(r===1){if(0>=r)return A.b(s,0) +q=s[0] +l.a=0 +B.b.a0(s) +return q}q=new Uint8Array(k) +for(p=0,o=0;o"))}, +gn(a){return J.aE(this.gbg())}, +gK(a){return J.bZ(this.gbg())}, +gZ(a){return J.Cf(this.gbg())}, +aS(a,b){var s=A.l(this) +return A.oX(J.o9(this.gbg(),b),s.c,s.y[1])}, +bz(a,b){var s=A.l(this) +return A.oX(J.yt(this.gbg(),b),s.c,s.y[1])}, +ad(a,b){return A.l(this).y[1].a(J.o7(this.gbg(),b))}, +gI(a){return A.l(this).y[1].a(J.kb(this.gbg()))}, +t(a,b){return J.Cd(this.gbg(),b)}, +l(a){return J.b9(this.gbg())}} +A.ik.prototype={ +q(){return this.a.q()}, +gA(){return this.$ti.y[1].a(this.a.gA())}, +$ia8:1} +A.ee.prototype={ +gbg(){return this.a}} +A.jr.prototype={$iJ:1} +A.jq.prototype={ +k(a,b){return this.$ti.y[1].a(J.o6(this.a,b))}, +i(a,b,c){var s=this.$ti +J.yp(this.a,b,s.c.a(s.y[1].a(c)))}, +sn(a,b){J.Ch(this.a,b)}, +j(a,b){var s=this.$ti +J.fw(this.a,s.c.a(s.y[1].a(b)))}, +bn(a,b){var s +this.$ti.h("c(2,2)?").a(b) +s=b==null?null:new A.vj(this,b) +J.ys(this.a,s)}, +$iJ:1, +$ik:1} +A.vj.prototype={ +$2(a,b){var s=this.a.$ti,r=s.c +r.a(a) +r.a(b) +s=s.y[1] +return this.b.$2(s.a(a),s.a(b))}, +$S(){return this.a.$ti.h("c(1,1)")}} +A.il.prototype={ +gbg(){return this.a}} +A.ef.prototype={ +ak(a,b,c){return new A.ef(this.a,this.$ti.h("@<1,2>").H(b).H(c).h("ef<1,2,3,4>"))}, +ag(a){return this.a.ag(a)}, +k(a,b){return this.$ti.h("4?").a(this.a.k(0,b))}, +aa(a,b){this.a.aa(0,new A.oZ(this,this.$ti.h("~(3,4)").a(b)))}, +gar(){var s=this.$ti +return A.oX(this.a.gar(),s.c,s.y[2])}, +gn(a){var s=this.a +return s.gn(s)}, +gK(a){var s=this.a +return s.gK(s)}, +gZ(a){var s=this.a +return s.gZ(s)}, +gX(){return this.a.gX().b8(0,new A.oY(this),this.$ti.h("V<3,4>"))}} +A.oZ.prototype={ +$2(a,b){var s=this.a.$ti +s.c.a(a) +s.y[1].a(b) +this.b.$2(s.y[2].a(a),s.y[3].a(b))}, +$S(){return this.a.$ti.h("~(1,2)")}} +A.oY.prototype={ +$1(a){var s=this.a.$ti +s.h("V<1,2>").a(a) +return new A.V(s.y[2].a(a.a),s.y[3].a(a.b),s.h("V<3,4>"))}, +$S(){return this.a.$ti.h("V<3,4>(V<1,2>)")}} +A.dE.prototype={ +l(a){return"LateInitializationError: "+this.a}} +A.cu.prototype={ +gn(a){return this.a.length}, +k(a,b){var s=this.a +if(!(b>=0&&b"))}, +gK(a){return this.gn(this)===0}, +gI(a){if(this.gn(this)===0)throw A.d(A.ce()) +return this.ad(0,0)}, +t(a,b){var s,r=this,q=r.gn(r) +for(s=0;s").H(c).h("a2<1,2>"))}, +e6(a,b){var s,r,q,p=this +A.l(p).h("Q.E(Q.E,Q.E)").a(b) +s=p.gn(p) +if(s===0)throw A.d(A.ce()) +r=p.ad(0,0) +for(q=1;qs)throw A.d(A.ay(r,0,s,"start",null))}}, +gmg(){var s=J.aE(this.a),r=this.c +if(r==null||r>s)return s +return r}, +goQ(){var s=J.aE(this.a),r=this.b +if(r>s)return s +return r}, +gn(a){var s,r=J.aE(this.a),q=this.b +if(q>=r)return 0 +s=this.c +if(s==null||s>=r)return r-q +return s-q}, +ad(a,b){var s=this,r=s.goQ()+b +if(b<0||r>=s.gmg())throw A.d(A.le(b,s.gn(0),s,null,"index")) +return J.o7(s.a,r)}, +aS(a,b){var s,r,q=this +A.bq(b,"count") +s=q.b+b +r=q.c +if(r!=null&&s>=r)return new A.ev(q.$ti.h("ev<1>")) +return A.bx(q.a,s,r,q.$ti.c)}, +bz(a,b){var s,r,q,p=this +A.bq(b,"count") +s=p.c +r=p.b +if(s==null)return A.bx(p.a,r,B.c.ia(r,b),p.$ti.c) +else{q=B.c.ia(r,b) +if(s=o){r.d=null +return!1}r.d=p.ad(q,s);++r.c +return!0}, +$ia8:1} +A.bI.prototype={ +gJ(a){return new A.iM(J.aN(this.a),this.b,A.l(this).h("iM<1,2>"))}, +gn(a){return J.aE(this.a)}, +gK(a){return J.bZ(this.a)}, +gI(a){return this.b.$1(J.kb(this.a))}, +ad(a,b){return this.b.$1(J.o7(this.a,b))}} +A.eu.prototype={$iJ:1} +A.iM.prototype={ +q(){var s=this,r=s.b +if(r.q()){s.a=s.c.$1(r.gA()) +return!0}s.a=null +return!1}, +gA(){var s=this.a +return s==null?this.$ti.y[1].a(s):s}, +$ia8:1} +A.a2.prototype={ +gn(a){return J.aE(this.a)}, +ad(a,b){return this.b.$1(J.o7(this.a,b))}} +A.ae.prototype={ +gJ(a){return new A.f9(J.aN(this.a),this.b,this.$ti.h("f9<1>"))}, +b8(a,b,c){var s=this.$ti +return new A.bI(this,s.H(c).h("1(2)").a(b),s.h("@<1>").H(c).h("bI<1,2>"))}} +A.f9.prototype={ +q(){var s,r +for(s=this.a,r=this.b;s.q();)if(r.$1(s.gA()))return!0 +return!1}, +gA(){return this.a.gA()}, +$ia8:1} +A.ix.prototype={ +gJ(a){return new A.iy(J.aN(this.a),this.b,B.cH,this.$ti.h("iy<1,2>"))}} +A.iy.prototype={ +gA(){var s=this.d +return s==null?this.$ti.y[1].a(s):s}, +q(){var s,r,q=this,p=q.c +if(p==null)return!1 +for(s=q.a,r=q.b;!p.q();){q.d=null +if(s.q()){q.c=null +p=J.aN(r.$1(s.gA())) +q.c=p}else return!1}q.d=q.c.gA() +return!0}, +$ia8:1} +A.eX.prototype={ +gJ(a){var s=this.a +return new A.jc(s.gJ(s),this.b,A.l(this).h("jc<1>"))}} +A.iu.prototype={ +gn(a){var s=this.a,r=s.gn(s) +s=this.b +if(B.c.aP(r,s))return s +return r}, +$iJ:1} +A.jc.prototype={ +q(){if(--this.b>=0)return this.a.q() +this.b=-1 +return!1}, +gA(){if(this.b<0){this.$ti.c.a(null) +return null}return this.a.gA()}, +$ia8:1} +A.db.prototype={ +aS(a,b){A.kq(b,"count",t.S) +A.bq(b,"count") +return new A.db(this.a,this.b+b,A.l(this).h("db<1>"))}, +gJ(a){var s=this.a +return new A.j8(s.gJ(s),this.b,A.l(this).h("j8<1>"))}} +A.fM.prototype={ +gn(a){var s=this.a,r=s.gn(s)-this.b +if(r>=0)return r +return 0}, +aS(a,b){A.kq(b,"count",t.S) +A.bq(b,"count") +return new A.fM(this.a,this.b+b,this.$ti)}, +$iJ:1} +A.j8.prototype={ +q(){var s,r +for(s=this.a,r=0;r"))}, +aS(a,b){A.bq(b,"count") +return this}, +bz(a,b){A.bq(b,"count") +return this}, +c1(a,b){var s=J.xG(0,this.$ti.c) +return s}} +A.iv.prototype={ +q(){return!1}, +gA(){throw A.d(A.ce())}, +$ia8:1} +A.bL.prototype={ +gJ(a){return new A.fa(J.aN(this.a),this.$ti.h("fa<1>"))}} +A.fa.prototype={ +q(){var s,r +for(s=this.a,r=this.$ti.c;s.q();)if(r.b(s.gA()))return!0 +return!1}, +gA(){return this.$ti.c.a(this.a.gA())}, +$ia8:1} +A.aH.prototype={ +sn(a,b){throw A.d(A.aw("Cannot change the length of a fixed-length list"))}, +j(a,b){A.bg(a).h("aH.E").a(b) +throw A.d(A.aw("Cannot add to a fixed-length list"))}} +A.cT.prototype={ +i(a,b,c){A.l(this).h("cT.E").a(c) +throw A.d(A.aw("Cannot modify an unmodifiable list"))}, +sn(a,b){throw A.d(A.aw("Cannot change the length of an unmodifiable list"))}, +j(a,b){A.l(this).h("cT.E").a(b) +throw A.d(A.aw("Cannot add to an unmodifiable list"))}, +bn(a,b){A.l(this).h("c(cT.E,cT.E)?").a(b) +throw A.d(A.aw("Cannot modify an unmodifiable list"))}} +A.hA.prototype={} +A.j0.prototype={ +gn(a){return J.aE(this.a)}, +ad(a,b){var s=this.a,r=J.at(s) +return r.ad(s,r.gn(s)-1-b)}} +A.u0.prototype={} +A.k6.prototype={} +A.aD.prototype={$r:"+(1,2)",$s:1} +A.jL.prototype={$r:"+box,root(1,2)",$s:2} +A.dS.prototype={$r:"+carry,end(1,2)",$s:3} +A.dT.prototype={$r:"+cols,rows(1,2)",$s:4} +A.hM.prototype={$r:"+config,httpClient(1,2)",$s:5} +A.bA.prototype={$r:"+label,value(1,2)",$s:6} +A.dU.prototype={$r:"+x,y(1,2)",$s:7} +A.jM.prototype={$r:"+completer,nodeId,targetPort(1,2,3)",$s:8} +A.jN.prototype={$r:"+hub,principal,token(1,2,3)",$s:9} +A.dl.prototype={$r:"+(1,2,3,4)",$s:10} +A.jO.prototype={$r:"+isDir,isLink,path,size(1,2,3,4)",$s:11} +A.fJ.prototype={ +ak(a,b,c){var s=A.l(this) +return A.z6(this,s.c,s.y[1],b,c)}, +gK(a){return this.gn(this)===0}, +gZ(a){return this.gn(this)!==0}, +l(a){return A.rd(this)}, +gX(){return new A.dV(this.pS(),A.l(this).h("dV>"))}, +pS(){var s=this +return function(){var r=0,q=1,p=[],o,n,m,l,k +return function $async$gX(a,b,c){if(b===1){p.push(c) +r=q}for(;;)switch(r){case 0:o=s.gar(),o=o.gJ(o),n=A.l(s),m=n.y[1],n=n.h("V<1,2>") +case 2:if(!o.q()){r=3 +break}l=o.gA() +k=s.k(0,l) +r=4 +return a.b=new A.V(l,k==null?m.a(k):k,n),1 +case 4:r=2 +break +case 3:return 0 +case 1:return a.c=p.at(-1),3}}}}, +d4(a,b,c,d){var s=A.I(c,d) +this.aa(0,new A.pp(this,A.l(this).H(c).H(d).h("V<1,2>(3,4)").a(b),s)) +return s}, +$ih:1} +A.pp.prototype={ +$2(a,b){var s=A.l(this.a),r=this.b.$2(s.c.a(a),s.y[1].a(b)) +this.c.i(0,r.a,r.b)}, +$S(){return A.l(this.a).h("~(1,2)")}} +A.X.prototype={ +gn(a){return this.b.length}, +giS(){var s=this.$keys +if(s==null){s=Object.keys(this.a) +this.$keys=s}return s}, +ag(a){if(typeof a!="string")return!1 +if("__proto__"===a)return!1 +return this.a.hasOwnProperty(a)}, +k(a,b){if(!this.ag(b))return null +return this.b[this.a[b]]}, +aa(a,b){var s,r,q,p +this.$ti.h("~(1,2)").a(b) +s=this.giS() +r=this.b +for(q=s.length,p=0;p"))}} +A.jz.prototype={ +gn(a){return this.a.length}, +gK(a){return 0===this.a.length}, +gZ(a){return 0!==this.a.length}, +gJ(a){var s=this.a +return new A.dk(s,s.length,this.$ti.h("dk<1>"))}} +A.dk.prototype={ +gA(){var s=this.d +return s==null?this.$ti.c.a(s):s}, +q(){var s=this,r=s.c +if(r>=s.b){s.d=null +return!1}s.d=s.a[r] +s.c=r+1 +return!0}, +$ia8:1} +A.iz.prototype={ +c8(){var s=this,r=s.$map +if(r==null){r=new A.ex(s.$ti.h("ex<1,2>")) +A.AV(s.a,r) +s.$map=r}return r}, +ag(a){return this.c8().ag(a)}, +k(a,b){return this.c8().k(0,b)}, +aa(a,b){this.$ti.h("~(1,2)").a(b) +this.c8().aa(0,b)}, +gar(){var s=this.c8() +return new A.d5(s,A.l(s).h("d5<1>"))}, +gn(a){return this.c8().a}} +A.fK.prototype={ +j(a,b){A.l(this).c.a(b) +A.CY()}} +A.B.prototype={ +gn(a){return this.b}, +gK(a){return this.b===0}, +gZ(a){return this.b!==0}, +gJ(a){var s,r=this,q=r.$keys +if(q==null){q=Object.keys(r.a) +r.$keys=q}s=q +return new A.dk(s,s.length,r.$ti.h("dk<1>"))}, +t(a,b){if(typeof b!="string")return!1 +if("__proto__"===b)return!1 +return this.a.hasOwnProperty(b)}} +A.Z.prototype={ +gn(a){return this.a.length}, +gK(a){return this.a.length===0}, +gZ(a){return this.a.length!==0}, +gJ(a){var s=this.a +return new A.dk(s,s.length,this.$ti.h("dk<1>"))}, +c8(){var s,r,q,p,o=this,n=o.$map +if(n==null){n=new A.ex(o.$ti.h("ex<1,1>")) +for(s=o.a,r=s.length,q=0;q")}} +A.fQ.prototype={ +$2(a,b){return this.a.$1$2(a,b,this.$ti.y[0])}, +$S(){return A.IO(A.nY(this.a),this.$ti)}} +A.rR.prototype={ +$0(){return B.p.dW(1000*this.a.now())}, +$S:15} +A.j1.prototype={} +A.uN.prototype={ +bw(a){var s,r,q=this,p=new RegExp(q.a).exec(a) +if(p==null)return null +s=Object.create(null) +r=q.b +if(r!==-1)s.arguments=p[r+1] +r=q.c +if(r!==-1)s.argumentsExpr=p[r+1] +r=q.d +if(r!==-1)s.expr=p[r+1] +r=q.e +if(r!==-1)s.method=p[r+1] +r=q.f +if(r!==-1)s.receiver=p[r+1] +return s}} +A.iW.prototype={ +l(a){return"Null check operator used on a null value"}} +A.ll.prototype={ +l(a){var s,r=this,q="NoSuchMethodError: method not found: '",p=r.b +if(p==null)return"NoSuchMethodError: "+r.a +s=r.c +if(s==null)return q+p+"' ("+r.a+")" +return q+p+"' on '"+s+"' ("+r.a+")"}} +A.mG.prototype={ +l(a){var s=this.a +return s.length===0?"Error":"Error: "+s}} +A.lP.prototype={ +l(a){return"Throw of null ('"+(this.a===null?"null":"undefined")+"' from JavaScript)"}, +$iaf:1} +A.iw.prototype={} +A.jR.prototype={ +l(a){var s,r=this.b +if(r!=null)return r +r=this.a +s=r!==null&&typeof r==="object"?r.stack:null +return this.b=s==null?"":s}, +$ibW:1} +A.bD.prototype={ +l(a){var s=this.constructor,r=s==null?null:s.name +return"Closure '"+A.Bj(r==null?"unknown":r)+"'"}, +gai(a){var s=A.nY(this) +return A.cb(s==null?A.bg(this):s)}, +$id1:1, +grr(){return this}, +$C:"$1", +$R:1, +$D:null} +A.kF.prototype={$C:"$0",$R:0} +A.kG.prototype={$C:"$2",$R:2} +A.mx.prototype={} +A.ms.prototype={ +l(a){var s=this.$static_name +if(s==null)return"Closure of unknown static method" +return"Closure '"+A.Bj(s)+"'"}} +A.fF.prototype={ +L(a,b){if(b==null)return!1 +if(this===b)return!0 +if(!(b instanceof A.fF))return!1 +return this.$_target===b.$_target&&this.a===b.a}, +gE(a){return(A.i5(this.a)^A.dI(this.$_target))>>>0}, +l(a){return"Closure '"+this.$_name+"' of "+("Instance of '"+A.m5(this.a)+"'")}} +A.mh.prototype={ +l(a){return"RuntimeError: "+this.a}} +A.bS.prototype={ +gn(a){return this.a}, +gK(a){return this.a===0}, +gZ(a){return this.a!==0}, +gar(){return new A.d5(this,A.l(this).h("d5<1>"))}, +gX(){return new A.d4(this,A.l(this).h("d4<1,2>"))}, +ag(a){var s,r +if(typeof a=="string"){s=this.b +if(s==null)return!1 +return s[a]!=null}else if(typeof a=="number"&&(a&0x3fffffff)===a){r=this.c +if(r==null)return!1 +return r[a]!=null}else return this.kc(a)}, +kc(a){var s=this.d +if(s==null)return!1 +return this.co(s[this.cn(a)],a)>=0}, +C(a,b){A.l(this).h("h<1,2>").a(b).aa(0,new A.r1(this))}, +k(a,b){var s,r,q,p,o=null +if(typeof b=="string"){s=this.b +if(s==null)return o +r=s[b] +q=r==null?o:r.b +return q}else if(typeof b=="number"&&(b&0x3fffffff)===b){p=this.c +if(p==null)return o +r=p[b] +q=r==null?o:r.b +return q}else return this.kd(b)}, +kd(a){var s,r,q=this.d +if(q==null)return null +s=q[this.cn(a)] +r=this.co(s,a) +if(r<0)return null +return s[r].b}, +i(a,b,c){var s,r,q=this,p=A.l(q) +p.c.a(b) +p.y[1].a(c) +if(typeof b=="string"){s=q.b +q.iq(s==null?q.b=q.h9():s,b,c)}else if(typeof b=="number"&&(b&0x3fffffff)===b){r=q.c +q.iq(r==null?q.c=q.h9():r,b,c)}else q.kf(b,c)}, +kf(a,b){var s,r,q,p,o=this,n=A.l(o) +n.c.a(a) +n.y[1].a(b) +s=o.d +if(s==null)s=o.d=o.h9() +r=o.cn(a) +q=s[r] +if(q==null)s[r]=[o.ha(a,b)] +else{p=o.co(q,a) +if(p>=0)q[p].b=b +else q.push(o.ha(a,b))}}, +qI(a,b){var s,r,q=this,p=A.l(q) +p.c.a(a) +p.h("2()").a(b) +if(q.ag(a)){s=q.k(0,a) +return s==null?p.y[1].a(s):s}r=b.$0() +q.i(0,a,r) +return r}, +a5(a,b){var s=this +if(typeof b=="string")return s.jd(s.b,b) +else if(typeof b=="number"&&(b&0x3fffffff)===b)return s.jd(s.c,b) +else return s.ke(b)}, +ke(a){var s,r,q,p,o=this,n=o.d +if(n==null)return null +s=o.cn(a) +r=n[s] +q=o.co(r,a) +if(q<0)return null +p=r.splice(q,1)[0] +o.jD(p) +if(r.length===0)delete n[s] +return p.b}, +a0(a){var s=this +if(s.a>0){s.b=s.c=s.d=s.e=s.f=null +s.a=0 +s.h6()}}, +aa(a,b){var s,r,q=this +A.l(q).h("~(1,2)").a(b) +s=q.e +r=q.r +while(s!=null){b.$2(s.a,s.b) +if(r!==q.r)throw A.d(A.aG(q)) +s=s.c}}, +iq(a,b,c){var s,r=A.l(this) +r.c.a(b) +r.y[1].a(c) +s=a[b] +if(s==null)a[b]=this.ha(b,c) +else s.b=c}, +jd(a,b){var s +if(a==null)return null +s=a[b] +if(s==null)return null +this.jD(s) +delete a[b] +return s.b}, +h6(){this.r=this.r+1&1073741823}, +ha(a,b){var s=this,r=A.l(s),q=new A.r6(r.c.a(a),r.y[1].a(b)) +if(s.e==null)s.e=s.f=q +else{r=s.f +r.toString +q.d=r +s.f=r.c=q}++s.a +s.h6() +return q}, +jD(a){var s=this,r=a.d,q=a.c +if(r==null)s.e=q +else r.c=q +if(q==null)s.f=r +else q.d=r;--s.a +s.h6()}, +cn(a){return J.am(a)&1073741823}, +co(a,b){var s,r +if(a==null)return-1 +s=a.length +for(r=0;r"]=s +delete s[""] +return s}, +$ilA:1} +A.r1.prototype={ +$2(a,b){var s=this.a,r=A.l(s) +s.i(0,r.c.a(a),r.y[1].a(b))}, +$S(){return A.l(this.a).h("~(1,2)")}} +A.r6.prototype={} +A.d5.prototype={ +gn(a){return this.a.a}, +gK(a){return this.a.a===0}, +gJ(a){var s=this.a +return new A.iI(s,s.r,s.e,this.$ti.h("iI<1>"))}, +t(a,b){return this.a.ag(b)}} +A.iI.prototype={ +gA(){return this.d}, +q(){var s,r=this,q=r.a +if(r.b!==q.r)throw A.d(A.aG(q)) +s=r.c +if(s==null){r.d=null +return!1}else{r.d=s.a +r.c=s.c +return!0}}, +$ia8:1} +A.c2.prototype={ +gn(a){return this.a.a}, +gK(a){return this.a.a===0}, +gJ(a){var s=this.a +return new A.aq(s,s.r,s.e,this.$ti.h("aq<1>"))}} +A.aq.prototype={ +gA(){return this.d}, +q(){var s,r=this,q=r.a +if(r.b!==q.r)throw A.d(A.aG(q)) +s=r.c +if(s==null){r.d=null +return!1}else{r.d=s.b +r.c=s.c +return!0}}, +$ia8:1} +A.d4.prototype={ +gn(a){return this.a.a}, +gK(a){return this.a.a===0}, +gJ(a){var s=this.a +return new A.iH(s,s.r,s.e,this.$ti.h("iH<1,2>"))}} +A.iH.prototype={ +gA(){var s=this.d +s.toString +return s}, +q(){var s,r=this,q=r.a +if(r.b!==q.r)throw A.d(A.aG(q)) +s=r.c +if(s==null){r.d=null +return!1}else{r.d=new A.V(s.a,s.b,r.$ti.h("V<1,2>")) +r.c=s.c +return!0}}, +$ia8:1} +A.iE.prototype={ +cn(a){return A.i5(a)&1073741823}, +co(a,b){var s,r,q +if(a==null)return-1 +s=a.length +for(r=0;r0;){--q;--s +B.b.i(j,q,r[s])}}return A.cO(j,k)}} +A.cl.prototype={ +er(){return[this.a,this.b]}, +L(a,b){if(b==null)return!1 +return b instanceof A.cl&&this.$s===b.$s&&J.a0(this.a,b.a)&&J.a0(this.b,b.b)}, +gE(a){return A.bo(this.$s,this.a,this.b,B.f,B.f,B.f,B.f)}} +A.fk.prototype={ +er(){return[this.a,this.b,this.c]}, +L(a,b){var s=this +if(b==null)return!1 +return b instanceof A.fk&&s.$s===b.$s&&J.a0(s.a,b.a)&&J.a0(s.b,b.b)&&J.a0(s.c,b.c)}, +gE(a){var s=this +return A.bo(s.$s,s.a,s.b,s.c,B.f,B.f,B.f)}} +A.fl.prototype={ +er(){return this.a}, +L(a,b){if(b==null)return!1 +return b instanceof A.fl&&this.$s===b.$s&&A.FL(this.a,b.a)}, +gE(a){return A.bo(this.$s,A.eG(this.a),B.f,B.f,B.f,B.f,B.f)}} +A.dC.prototype={ +l(a){return"RegExp/"+this.a+"/"+this.b.flags}, +giX(){var s=this,r=s.c +if(r!=null)return r +r=s.b +return s.c=A.xH(s.a,r.multiline,!r.ignoreCase,r.unicode,r.dotAll,"g")}, +gni(){var s=this,r=s.d +if(r!=null)return r +r=s.b +return s.d=A.xH(s.a,r.multiline,!r.ignoreCase,r.unicode,r.dotAll,"y")}, +lW(){var s,r=this.a +if(!B.a.t(r,"("))return!1 +s=this.b.unicode?"u":"" +return new RegExp("(?:)|"+r,s).exec("").length>1}, +d0(a){var s=this.b.exec(a) +if(s==null)return null +return new A.hJ(s)}, +l1(a){var s,r=this.d0(a) +if(r!=null){s=r.b +if(0>=s.length)return A.b(s,0) +return s[0]}return null}, +hm(a,b,c){var s=b.length +if(c>s)throw A.d(A.ay(c,0,s,null,null)) +return new A.mV(this,b,c)}, +dK(a,b){return this.hm(0,b,0)}, +ml(a,b){var s,r=this.giX() +if(r==null)r=A.ap(r) +r.lastIndex=b +s=r.exec(a) +if(s==null)return null +return new A.hJ(s)}, +mk(a,b){var s,r=this.gni() +if(r==null)r=A.ap(r) +r.lastIndex=b +s=r.exec(a) +if(s==null)return null +return new A.hJ(s)}, +cq(a,b,c){if(c<0||c>b.length)throw A.d(A.ay(c,0,b.length,null,null)) +return this.mk(b,c)}, +$irL:1, +$iEx:1} +A.hJ.prototype={ +gP(){return this.b.index}, +gO(){var s=this.b +return s.index+s[0].length}, +k(a,b){var s=this.b +if(!(b=0&&q=55296&&q<=56319){if(!(n>=0))return A.b(l,n) +s=l.charCodeAt(n) +s=s>=56320&&s<=57343}}}o=(s?o+1:o)+1}m.c=o +return!0}}m.b=m.d=null +return!1}, +$ia8:1} +A.hv.prototype={ +gO(){return this.a+this.c.length}, +k(a,b){if(b!==0)throw A.d(A.t_(b,null)) +return this.c}, +$icP:1, +gP(){return this.a}} +A.nA.prototype={ +gJ(a){return new A.nB(this.a,this.b,this.c)}, +gI(a){var s=this.b,r=this.a.indexOf(s,this.c) +if(r>=0)return new A.hv(r,s) +throw A.d(A.ce())}} +A.nB.prototype={ +q(){var s,r,q=this,p=q.c,o=q.b,n=o.length,m=q.a,l=m.length +if(p+n>l){q.d=null +return!1}s=m.indexOf(o,p) +if(s<0){q.c=l+1 +q.d=null +return!1}r=s+n +q.d=new A.hv(s,o) +q.c=r===q.c?r+1:r +return!0}, +gA(){var s=this.d +s.toString +return s}, +$ia8:1} +A.vk.prototype={ +cb(){var s=this.b +if(s===this)throw A.d(new A.dE("Local '"+this.a+"' has not been initialized.")) +return s}, +sk7(a){var s=this +if(s.b!==s)throw A.d(new A.dE("Local '"+s.a+"' has already been initialized.")) +s.b=a}} +A.dG.prototype={ +gai(a){return B.pA}, +jS(a,b,c){return c==null?new Uint8Array(a,b):new Uint8Array(a,b,c)}, +$iao:1, +$idG:1, +$iii:1} +A.fZ.prototype={$ifZ:1} +A.iP.prototype={ +ghp(a){if(((a.$flags|0)&2)!==0)return new A.nN(a.buffer) +else return a.buffer}, +n_(a,b,c,d){var s=A.ay(b,0,c,d,null) +throw A.d(s)}, +iw(a,b,c,d){if(b>>>0!==b||b>c)this.n_(a,b,c,d)}} +A.nN.prototype={ +jS(a,b,c){var s=A.z8(this.a,b,c) +s.$flags=3 +return s}, +$iii:1} +A.iN.prototype={ +gai(a){return B.pB}, +$iao:1, +$ixC:1} +A.bn.prototype={ +gn(a){return a.length}, +oG(a,b,c,d,e){var s,r,q=a.length +this.iw(a,b,q,"start") +this.iw(a,c,q,"end") +if(b>c)throw A.d(A.ay(b,0,c,null,null)) +s=c-b +if(e<0)throw A.d(A.as(e,null)) +r=d.length +if(r-e").b(a))s.iv(a) +else s.dr(a)}}, +cg(a,b){var s +if(b==null)b=A.id(a) +s=this.a +if(this.b)s.aD(new A.aO(a,b)) +else s.c6(new A.aO(a,b))}, +a7(a){return this.cg(a,null)}, +gaN(){return(this.a.a&30)!==0}, +$ibd:1} +A.wc.prototype={ +$1(a){return this.a.$2(0,a)}, +$S:10} +A.wd.prototype={ +$2(a,b){this.a.$2(1,new A.iw(a,t.l.a(b)))}, +$S:76} +A.wx.prototype={ +$2(a,b){this.a(A.a4(a),b)}, +$S:117} +A.dm.prototype={ +gA(){var s=this.b +return s==null?this.$ti.c.a(s):s}, +of(a,b){var s,r,q +a=A.a4(a) +b=b +s=this.a +for(;;)try{r=s(this,a,b) +return r}catch(q){b=q +a=1}}, +q(){var s,r,q,p,o=this,n=null,m=0 +for(;;){s=o.d +if(s!=null)try{if(s.q()){o.b=s.gA() +return!0}else o.d=null}catch(r){n=r +m=1 +o.d=null}q=o.of(m,n) +if(1===q)return!0 +if(0===q){o.b=null +p=o.e +if(p==null||p.length===0){o.a=A.zX +return!1}if(0>=p.length)return A.b(p,-1) +o.a=p.pop() +m=0 +n=null +continue}if(2===q){m=0 +n=null +continue}if(3===q){n=o.c +o.c=null +p=o.e +if(p==null||p.length===0){o.b=null +o.a=A.zX +throw n +return!1}if(0>=p.length)return A.b(p,-1) +o.a=p.pop() +m=1 +continue}throw A.d(A.aC("sync*"))}return!1}, +pq(a){var s,r,q=this +if(a instanceof A.dV){s=a.a() +r=q.e +if(r==null)r=q.e=[] +B.b.j(r,q.a) +q.a=s +return 2}else{q.d=J.aN(a) +return 2}}, +$ia8:1} +A.dV.prototype={ +gJ(a){return new A.dm(this.a(),this.$ti.h("dm<1>"))}} +A.aO.prototype={ +l(a){return A.u(this.a)}, +$iau:1, +gdj(){return this.b}} +A.aA.prototype={ +gbY(){return!0}} +A.cU.prototype={ +bP(){}, +bQ(){}, +seB(a){this.ch=this.$ti.h("cU<1>?").a(a)}, +shc(a){this.CW=this.$ti.h("cU<1>?").a(a)}} +A.jn.prototype={ +gh5(){return this.c<4}, +oa(a){var s,r +A.l(this).h("cU<1>").a(a) +s=a.CW +r=a.ch +if(s==null)this.d=r +else s.seB(r) +if(r==null)this.e=s +else r.shc(s) +a.shc(a) +a.seB(a)}, +jv(a,b,c,d){var s,r,q,p,o,n,m,l,k=this,j=A.l(k) +j.h("~(1)?").a(a) +t.Z.a(c) +if((k.c&4)!==0)return A.zJ(c,j.c) +s=$.E +r=d?1:0 +q=b!=null?32:0 +p=A.vg(s,a,j.c) +o=A.xY(s,b) +n=c==null?A.yc():c +j=j.h("cU<1>") +m=new A.cU(k,p,o,t.Q.a(n),s,r|q,j) +m.CW=m +m.ch=m +j.a(m) +m.ay=k.c&1 +l=k.e +k.e=m +m.seB(null) +m.shc(l) +if(l==null)k.d=m +else l.seB(m) +if(k.d==k.e)A.nX(k.a) +return m}, +ja(a){var s=this,r=A.l(s) +a=r.h("cU<1>").a(r.h("bw<1>").a(a)) +if(a.ch===a)return null +r=a.ay +if((r&2)!==0)a.ay=r|4 +else{s.oa(a) +if((s.c&2)===0&&s.d==null)s.lL()}return null}, +jb(a){A.l(this).h("bw<1>").a(a)}, +jc(a){A.l(this).h("bw<1>").a(a)}, +fI(){if((this.c&4)!==0)return new A.bX("Cannot add new events after calling close") +return new A.bX("Cannot add new events while doing an addStream")}, +j(a,b){var s=this +A.l(s).c.a(b) +if(!s.gh5())throw A.d(s.fI()) +s.cc(b)}, +aJ(a,b){var s +if(!this.gh5())throw A.d(this.fI()) +s=A.nV(a,b) +this.ce(s.a,s.b)}, +p(){var s,r,q=this +if((q.c&4)!==0){s=q.r +s.toString +return s}if(!q.gh5())throw A.d(q.fI()) +q.c|=4 +r=q.r +if(r==null)r=q.r=new A.v($.E,t.D) +q.cd() +return r}, +lL(){if((this.c&4)!==0){var s=this.r +if((s.a&30)===0)s.c5(null)}A.nX(this.b)}, +$iaY:1, +$ick:1, +$ieU:1, +$ijT:1, +$icV:1, +$ic6:1, +$ia3:1} +A.jk.prototype={ +cc(a){var s,r=this.$ti +r.c.a(a) +for(s=this.d,r=r.h("cC<1>");s!=null;s=s.ch)s.bB(new A.cC(a,r))}, +ce(a,b){var s +for(s=this.d;s!=null;s=s.ch)s.bB(new A.fd(a,b))}, +cd(){var s=this.d +if(s!=null)for(;s!=null;s=s.ch)s.bB(B.aG) +else this.r.c5(null)}} +A.pY.prototype={ +$0(){this.c.a(null) +this.b.bM(null)}, +$S:0} +A.q1.prototype={ +$2(a,b){var s,r,q=this +A.ap(a) +t.l.a(b) +s=q.a +r=--s.b +if(s.a!=null){s.a=null +s.d=a +s.c=b +if(r===0||q.c)q.d.aD(new A.aO(a,b))}else if(r===0&&!q.c){r=s.d +r.toString +s=s.c +s.toString +q.d.aD(new A.aO(r,s))}}, +$S:11} +A.q0.prototype={ +$1(a){var s,r,q,p,o,n,m,l,k=this,j=k.d +j.a(a) +o=k.a +s=--o.b +r=o.a +if(r!=null){J.yp(r,k.b,a) +if(J.a0(s,0)){q=A.e([],j.h("z<0>")) +for(o=r,n=o.length,m=0;m").H(p.c).h("1(2)").a(a) +if(b!=null)b=A.Az(b,s)}r=new A.v(s,c.h("v<0>")) +q=b==null?1:3 +this.dn(new A.cD(r,q,a,b,p.h("@<1>").H(c).h("cD<1,2>"))) +return r}, +aZ(a,b){return this.cw(a,null,b)}, +jy(a,b,c){var s,r=this.$ti +r.H(c).h("1/(2)").a(a) +s=new A.v($.E,c.h("v<0>")) +this.dn(new A.cD(s,19,a,b,r.h("@<1>").H(c).h("cD<1,2>"))) +return s}, +bF(a){var s=this.$ti,r=$.E,q=new A.v(r,s) +if(r!==B.t)a=A.Az(a,r) +this.dn(new A.cD(q,2,null,a,s.h("cD<1,1>"))) +return q}, +dd(a){var s,r +t.pF.a(a) +s=this.$ti +r=new A.v($.E,s) +this.dn(new A.cD(r,8,a,null,s.h("cD<1,1>"))) +return r}, +oE(a){this.a=this.a&1|16 +this.c=a}, +ej(a){this.a=a.a&30|this.a&1 +this.c=a.c}, +dn(a){var s,r=this,q=r.a +if(q<=3){a.a=t.F.a(r.c) +r.c=a}else{if((q&4)!==0){s=t.hR.a(r.c) +if((s.a&24)===0){s.dn(a) +return}r.ej(s)}A.hX(null,null,r.b,t.Q.a(new A.vr(r,a)))}}, +j7(a){var s,r,q,p,o,n,m=this,l={} +l.a=a +if(a==null)return +s=m.a +if(s<=3){r=t.F.a(m.c) +m.c=a +if(r!=null){q=a.a +for(p=a;q!=null;p=q,q=o)o=q.a +p.a=r}}else{if((s&4)!==0){n=t.hR.a(m.c) +if((n.a&24)===0){n.j7(a) +return}m.ej(n)}l.a=m.eM(a) +A.hX(null,null,m.b,t.Q.a(new A.vw(l,m)))}}, +dE(){var s=t.F.a(this.c) +this.c=null +return this.eM(s)}, +eM(a){var s,r,q +for(s=a,r=null;s!=null;r=s,s=q){q=s.a +s.a=r}return r}, +bM(a){var s,r=this,q=r.$ti +q.h("1/").a(a) +if(q.h("H<1>").b(a))A.vu(a,r,!0) +else{s=r.dE() +q.c.a(a) +r.a=8 +r.c=a +A.ff(r,s)}}, +dr(a){var s,r=this +r.$ti.c.a(a) +s=r.dE() +r.a=8 +r.c=a +A.ff(r,s)}, +lU(a){var s,r,q=this +if((a.a&16)!==0){s=q.b===a.b +s=!(s||s)}else s=!1 +if(s)return +r=q.dE() +q.ej(a) +A.ff(q,r)}, +aD(a){var s=this.dE() +this.oE(a) +A.ff(this,s)}, +lT(a,b){A.ap(a) +t.l.a(b) +this.aD(new A.aO(a,b))}, +c5(a){var s=this.$ti +s.h("1/").a(a) +if(s.h("H<1>").b(a)){this.iv(a) +return}this.lG(a)}, +lG(a){var s=this +s.$ti.c.a(a) +s.a^=2 +A.hX(null,null,s.b,t.Q.a(new A.vt(s,a)))}, +iv(a){A.vu(this.$ti.h("H<1>").a(a),this,!1) +return}, +c6(a){this.a^=2 +A.hX(null,null,this.b,t.Q.a(new A.vs(this,a)))}, +kw(a,b){var s,r,q=this,p={},o=q.$ti +o.h("1/()?").a(b) +if((q.a&24)!==0){p=new A.v($.E,o) +p.c5(q) +return p}s=$.E +r=new A.v(s,o) +p.a=null +if(b==null)p.a=A.eY(a,new A.vC(r,a)) +else p.a=A.eY(a,new A.vD(q,r,s,o.h("1/()").a(b))) +q.cw(new A.vE(p,q,r),new A.vF(p,r),t.c) +return r}, +kv(a){return this.kw(a,null)}, +$iH:1} +A.vr.prototype={ +$0(){A.ff(this.a,this.b)}, +$S:0} +A.vw.prototype={ +$0(){A.ff(this.b,this.a.a)}, +$S:0} +A.vv.prototype={ +$0(){A.vu(this.a.a,this.b,!0)}, +$S:0} +A.vt.prototype={ +$0(){this.a.dr(this.b)}, +$S:0} +A.vs.prototype={ +$0(){this.a.aD(this.b)}, +$S:0} +A.vz.prototype={ +$0(){var s,r,q,p,o,n,m,l,k=this,j=null +try{q=k.a.a +j=q.b.b.i_(t.pF.a(q.d),t.z)}catch(p){s=A.R(p) +r=A.bt(p) +if(k.c&&t.n.a(k.b.a.c).a===s){q=k.a +q.c=t.n.a(k.b.a.c)}else{q=s +o=r +if(o==null)o=A.id(q) +n=k.a +n.c=new A.aO(q,o) +q=n}q.b=!0 +return}if(j instanceof A.v&&(j.a&24)!==0){if((j.a&16)!==0){q=k.a +q.c=t.n.a(j.c) +q.b=!0}return}if(j instanceof A.v){m=k.b.a +l=new A.v(m.b,m.$ti) +j.cw(new A.vA(l,m),new A.vB(l),t.H) +q=k.a +q.c=l +q.b=!1}}, +$S:0} +A.vA.prototype={ +$1(a){this.a.lU(this.b)}, +$S:13} +A.vB.prototype={ +$2(a,b){A.ap(a) +t.l.a(b) +this.a.aD(new A.aO(a,b))}, +$S:31} +A.vy.prototype={ +$0(){var s,r,q,p,o,n,m,l +try{q=this.a +p=q.a +o=p.$ti +n=o.c +m=n.a(this.b) +q.c=p.b.b.i1(o.h("2/(1)").a(p.d),m,o.h("2/"),n)}catch(l){s=A.R(l) +r=A.bt(l) +q=s +p=r +if(p==null)p=A.id(q) +o=this.a +o.c=new A.aO(q,p) +o.b=!0}}, +$S:0} +A.vx.prototype={ +$0(){var s,r,q,p,o,n,m,l=this +try{s=t.n.a(l.a.a.c) +p=l.b +if(p.a.qj(s)&&p.a.e!=null){p.c=p.a.q2(s) +p.b=!1}}catch(o){r=A.R(o) +q=A.bt(o) +p=t.n.a(l.a.a.c) +if(p.a===r){n=l.b +n.c=p +p=n}else{p=r +n=q +if(n==null)n=A.id(p) +m=l.b +m.c=new A.aO(p,n) +p=m}p.b=!0}}, +$S:0} +A.vC.prototype={ +$0(){var s=A.xS() +this.a.aD(new A.aO(new A.hz("Future not completed",this.b),s))}, +$S:0} +A.vD.prototype={ +$0(){var s,r,q,p,o,n=this +try{n.b.bM(n.c.i_(n.d,n.a.$ti.h("1/")))}catch(q){s=A.R(q) +r=A.bt(q) +p=s +o=r +if(o==null)o=A.id(p) +n.b.aD(new A.aO(p,o))}}, +$S:0} +A.vE.prototype={ +$1(a){var s +this.b.$ti.c.a(a) +s=this.a.a +if(s.b!=null){s.U() +this.c.dr(a)}}, +$S(){return this.b.$ti.h("ab(1)")}} +A.vF.prototype={ +$2(a,b){var s +A.ap(a) +t.l.a(b) +s=this.a.a +if(s.b!=null){s.U() +this.b.aD(new A.aO(a,b))}}, +$S:31} +A.mY.prototype={} +A.aa.prototype={ +gbY(){return!1}, +hC(a,b,c,d){var s,r,q={} +d.a(b) +A.l(this).H(d).h("1(1,aa.T)").a(c) +s=new A.v($.E,d.h("v<0>")) +q.a=b +r=this.au(null,!0,new A.tQ(q,s),s.gel()) +r.e3(new A.tR(q,this,c,r,s,d)) +return s}, +aa(a,b){var s,r +A.l(this).h("~(aa.T)").a(b) +s=new A.v($.E,t.hR) +r=this.au(null,!0,new A.tU(s),s.gel()) +r.e3(new A.tV(this,b,r,s)) +return s}, +gn(a){var s={},r=new A.v($.E,t.AJ) +s.a=0 +this.au(new A.tW(s,this),!0,new A.tX(s,r),r.gel()) +return r}, +gI(a){var s=new A.v($.E,A.l(this).h("v")),r=this.au(null,!0,new A.tM(s),s.gel()) +r.e3(new A.tN(this,r,s)) +return s}} +A.tQ.prototype={ +$0(){this.b.bM(this.a.a)}, +$S:0} +A.tR.prototype={ +$1(a){var s=this,r=s.a,q=s.f +A.AE(new A.tO(r,s.c,A.l(s.b).h("aa.T").a(a),q),new A.tP(r,q),A.Ak(s.d,s.e),q)}, +$S(){return A.l(this.b).h("~(aa.T)")}} +A.tO.prototype={ +$0(){return this.b.$2(this.a.a,this.c)}, +$S(){return this.d.h("0()")}} +A.tP.prototype={ +$1(a){this.a.a=this.b.a(a)}, +$S(){return this.b.h("ab(0)")}} +A.tU.prototype={ +$0(){this.a.bM(null)}, +$S:0} +A.tV.prototype={ +$1(a){var s=this +A.AE(new A.tS(s.b,A.l(s.a).h("aa.T").a(a)),new A.tT(),A.Ak(s.c,s.d),t.H)}, +$S(){return A.l(this.a).h("~(aa.T)")}} +A.tS.prototype={ +$0(){return this.a.$1(this.b)}, +$S:0} +A.tT.prototype={ +$1(a){}, +$S:75} +A.tW.prototype={ +$1(a){A.l(this.b).h("aa.T").a(a);++this.a.a}, +$S(){return A.l(this.b).h("~(aa.T)")}} +A.tX.prototype={ +$0(){this.b.bM(this.a.a)}, +$S:0} +A.tM.prototype={ +$0(){var s,r=A.xS(),q=new A.bX("No element") +A.rT(q,r) +s=A.wn(q,r) +s=new A.aO(q,r) +this.a.aD(s)}, +$S:0} +A.tN.prototype={ +$1(a){A.Gf(this.b,this.c,A.l(this.a).h("aa.T").a(a))}, +$S(){return A.l(this.a).h("~(aa.T)")}} +A.eV.prototype={ +gbY(){return this.a.gbY()}, +au(a,b,c,d){return this.a.au(A.l(this).h("~(eV.T)?").a(a),b,t.Z.a(c),d)}, +bv(a,b,c){return this.au(a,null,b,c)}} +A.jb.prototype={$ibr:1} +A.fm.prototype={ +gnY(){var s,r=this +if((r.b&8)===0)return A.l(r).h("cE<1>?").a(r.a) +s=A.l(r) +return s.h("cE<1>?").a(s.h("jS<1>").a(r.a).ghj())}, +fW(){var s,r,q=this +if((q.b&8)===0){s=q.a +if(s==null)s=q.a=new A.cE(A.l(q).h("cE<1>")) +return A.l(q).h("cE<1>").a(s)}r=A.l(q) +s=r.h("jS<1>").a(q.a).ghj() +return r.h("cE<1>").a(s)}, +gcT(){var s=this.a +if((this.b&8)!==0)s=t.qs.a(s).ghj() +return A.l(this).h("di<1>").a(s)}, +fK(){if((this.b&4)!==0)return new A.bX("Cannot add event after closing") +return new A.bX("Cannot add event while adding a stream")}, +iH(){var s=this.c +if(s==null)s=this.c=(this.b&2)!==0?$.fu():new A.v($.E,t.D) +return s}, +j(a,b){var s=this +A.l(s).c.a(b) +if(s.b>=4)throw A.d(s.fK()) +s.aC(b)}, +aJ(a,b){var s,r,q=this +A.ap(a) +t.hF.a(b) +if(q.b>=4)throw A.d(q.fK()) +s=A.nV(a,b) +a=s.a +b=s.b +r=q.b +if((r&1)!==0)q.ce(a,b) +else if((r&3)===0)q.fW().j(0,new A.fd(a,b))}, +f2(a){return this.aJ(a,null)}, +p(){var s=this,r=s.b +if((r&4)!==0)return s.iH() +if(r>=4)throw A.d(s.fK()) +s.iy() +return s.iH()}, +iy(){var s=this.b|=4 +if((s&1)!==0)this.cd() +else if((s&3)===0)this.fW().j(0,B.aG)}, +aC(a){var s,r=this,q=A.l(r) +q.c.a(a) +s=r.b +if((s&1)!==0)r.cc(a) +else if((s&3)===0)r.fW().j(0,new A.cC(a,q.h("cC<1>")))}, +jv(a,b,c,d){var s,r,q,p=this,o=A.l(p) +o.h("~(1)?").a(a) +t.Z.a(c) +if((p.b&3)!==0)throw A.d(A.aC("Stream has already been listened to.")) +s=A.Fs(p,a,b,c,d,o.c) +r=p.gnY() +if(((p.b|=1)&8)!==0){q=o.h("jS<1>").a(p.a) +q.shj(s) +q.cu()}else p.a=s +s.oF(r) +s.h_(new A.w1(p)) +return s}, +ja(a){var s,r,q,p,o,n,m,l,k=this,j=A.l(k) +j.h("bw<1>").a(a) +s=null +if((k.b&8)!==0)s=j.h("jS<1>").a(k.a).U() +k.a=null +k.b=k.b&4294967286|2 +r=k.r +if(r!=null)if(s==null)try{q=r.$0() +if(q instanceof A.v)s=q}catch(n){p=A.R(n) +o=A.bt(n) +m=new A.v($.E,t.D) +j=A.ap(p) +l=t.l.a(o) +m.c6(new A.aO(j,l)) +s=m}else s=s.dd(r) +j=new A.w0(k) +if(s!=null)s=s.dd(j) +else j.$0() +return s}, +jb(a){var s=this,r=A.l(s) +r.h("bw<1>").a(a) +if((s.b&8)!==0)r.h("jS<1>").a(s.a).d7() +A.nX(s.e)}, +jc(a){var s=this,r=A.l(s) +r.h("bw<1>").a(a) +if((s.b&8)!==0)r.h("jS<1>").a(s.a).cu() +A.nX(s.f)}, +$iaY:1, +$ick:1, +$ieU:1, +$ijT:1, +$icV:1, +$ic6:1, +$ia3:1} +A.w1.prototype={ +$0(){A.nX(this.a.d)}, +$S:0} +A.w0.prototype={ +$0(){var s=this.a.c +if(s!=null&&(s.a&30)===0)s.c5(null)}, +$S:0} +A.nE.prototype={ +cc(a){this.$ti.c.a(a) +this.gcT().aC(a)}, +ce(a,b){this.gcT().bL(a,b)}, +cd(){this.gcT().aH()}} +A.mZ.prototype={ +cc(a){var s=this.$ti +s.c.a(a) +this.gcT().bB(new A.cC(a,s.h("cC<1>")))}, +ce(a,b){this.gcT().bB(new A.fd(a,b))}, +cd(){this.gcT().bB(B.aG)}} +A.dP.prototype={} +A.hP.prototype={} +A.ac.prototype={ +gE(a){return(A.dI(this.a)^892482866)>>>0}, +L(a,b){if(b==null)return!1 +if(this===b)return!0 +return b instanceof A.ac&&b.a===this.a}} +A.di.prototype={ +hb(){return this.w.ja(this)}, +bP(){this.w.jb(this)}, +bQ(){this.w.jc(this)}} +A.fn.prototype={ +j(a,b){this.a.j(0,this.$ti.c.a(b))}, +aJ(a,b){this.a.aJ(a,b)}, +p(){return this.a.p()}, +$iaY:1, +$ick:1, +$ia3:1} +A.b_.prototype={ +oF(a){var s=this +A.l(s).h("cE?").a(a) +if(a==null)return +s.r=a +if(a.c!=null){s.e=(s.e|128)>>>0 +a.ef(s)}}, +e3(a){var s=A.l(this) +this.a=A.vg(this.d,s.h("~(b_.T)?").a(a),s.h("b_.T"))}, +d7(){var s,r,q=this,p=q.e +if((p&8)!==0)return +s=(p+256|4)>>>0 +q.e=s +if(p<256){r=q.r +if(r!=null)if(r.a===1)r.a=3}if((p&4)===0&&(s&64)===0)q.h_(q.geD())}, +cu(){var s=this,r=s.e +if((r&8)!==0)return +if(r>=256){r=s.e=r-256 +if(r<256)if((r&128)!==0&&s.r.c!=null)s.r.ef(s) +else{r=(r&4294967291)>>>0 +s.e=r +if((r&64)===0)s.h_(s.geE())}}}, +U(){var s=this,r=(s.e&4294967279)>>>0 +s.e=r +if((r&8)===0)s.fL() +r=s.f +return r==null?$.fu():r}, +fL(){var s,r=this,q=r.e=(r.e|8)>>>0 +if((q&128)!==0){s=r.r +if(s.a===1)s.a=3}if((q&64)===0)r.r=null +r.f=r.hb()}, +aC(a){var s,r=this,q=A.l(r) +q.h("b_.T").a(a) +s=r.e +if((s&8)!==0)return +if(s<64)r.cc(a) +else r.bB(new A.cC(a,q.h("cC")))}, +bL(a,b){var s +if(t.yt.b(a))A.rT(a,b) +s=this.e +if((s&8)!==0)return +if(s<64)this.ce(a,b) +else this.bB(new A.fd(a,b))}, +aH(){var s=this,r=s.e +if((r&8)!==0)return +r=(r|2)>>>0 +s.e=r +if(r<64)s.cd() +else s.bB(B.aG)}, +bP(){}, +bQ(){}, +hb(){return null}, +bB(a){var s,r=this,q=r.r +if(q==null)q=r.r=new A.cE(A.l(r).h("cE")) +q.j(0,a) +s=r.e +if((s&128)===0){s=(s|128)>>>0 +r.e=s +if(s<256)q.ef(r)}}, +cc(a){var s,r=this,q=A.l(r).h("b_.T") +q.a(a) +s=r.e +r.e=(s|64)>>>0 +r.d.i2(r.a,a,q) +r.e=(r.e&4294967231)>>>0 +r.fN((s&4)!==0)}, +ce(a,b){var s,r=this,q=r.e,p=new A.vi(r,a,b) +if((q&1)!==0){r.e=(q|16)>>>0 +r.fL() +s=r.f +if(s!=null&&s!==$.fu())s.dd(p) +else p.$0()}else{p.$0() +r.fN((q&4)!==0)}}, +cd(){var s,r=this,q=new A.vh(r) +r.fL() +r.e=(r.e|16)>>>0 +s=r.f +if(s!=null&&s!==$.fu())s.dd(q) +else q.$0()}, +h_(a){var s,r=this +t.Q.a(a) +s=r.e +r.e=(s|64)>>>0 +a.$0() +r.e=(r.e&4294967231)>>>0 +r.fN((s&4)!==0)}, +fN(a){var s,r,q=this,p=q.e +if((p&128)!==0&&q.r.c==null){p=q.e=(p&4294967167)>>>0 +s=!1 +if((p&4)!==0)if(p<256){s=q.r +s=s==null?null:s.c==null +s=s!==!1}if(s){p=(p&4294967291)>>>0 +q.e=p}}for(;;a=r){if((p&8)!==0){q.r=null +return}r=(p&4)!==0 +if(a===r)break +q.e=(p^64)>>>0 +if(r)q.bP() +else q.bQ() +p=(q.e&4294967231)>>>0 +q.e=p}if((p&128)!==0&&p<256)q.r.ef(q)}, +$ibw:1, +$icV:1, +$ic6:1} +A.vi.prototype={ +$0(){var s,r,q,p=this.a,o=p.e +if((o&8)!==0&&(o&16)===0)return +p.e=(o|64)>>>0 +s=p.b +o=this.b +r=t.K +q=p.d +if(t.sp.b(s))q.rg(s,o,this.c,r,t.l) +else q.i2(t.eC.a(s),o,r) +p.e=(p.e&4294967231)>>>0}, +$S:0} +A.vh.prototype={ +$0(){var s=this.a,r=s.e +if((r&16)===0)return +s.e=(r|74)>>>0 +s.d.i0(s.c) +s.e=(s.e&4294967231)>>>0}, +$S:0} +A.hO.prototype={ +au(a,b,c,d){var s=A.l(this) +s.h("~(1)?").a(a) +t.Z.a(c) +return this.a.jv(s.h("~(1)?").a(a),d,c,b===!0)}, +qh(a,b,c){return this.au(a,b,c,null)}, +aE(a){return this.au(a,null,null,null)}, +qg(a,b){return this.au(a,null,b,null)}, +bv(a,b,c){return this.au(a,null,b,c)}} +A.dj.prototype={ +se2(a){this.a=t.Ed.a(a)}, +ge2(){return this.a}} +A.cC.prototype={ +hU(a){this.$ti.h("c6<1>").a(a).cc(this.b)}} +A.fd.prototype={ +hU(a){a.ce(this.b,this.c)}} +A.n9.prototype={ +hU(a){a.cd()}, +ge2(){return null}, +se2(a){throw A.d(A.aC("No events after a done."))}, +$idj:1} +A.cE.prototype={ +ef(a){var s,r=this +r.$ti.h("c6<1>").a(a) +s=r.a +if(s===1)return +if(s>=1){r.a=1 +return}A.o3(new A.vT(r,a)) +r.a=1}, +j(a,b){var s=this,r=s.c +if(r==null)s.b=s.c=b +else{r.se2(b) +s.c=b}}} +A.vT.prototype={ +$0(){var s,r,q,p=this.a,o=p.a +p.a=0 +if(o===3)return +s=p.$ti.h("c6<1>").a(this.b) +r=p.b +q=r.ge2() +p.b=q +if(q==null)p.c=null +r.hU(s)}, +$S:0} +A.hG.prototype={ +e3(a){this.$ti.h("~(1)?").a(a)}, +d7(){var s=this.a +if(s>=0)this.a=s+2}, +cu(){var s=this,r=s.a-2 +if(r<0)return +if(r===0){s.a=1 +A.o3(s.gj1())}else s.a=r}, +U(){this.a=-1 +this.c=null +return $.fu()}, +nD(){var s,r=this,q=r.a-1 +if(q===0){r.a=-1 +s=r.c +if(s!=null){r.c=null +r.b.i0(s)}}else r.a=q}, +$ibw:1} +A.nz.prototype={} +A.js.prototype={ +au(a,b,c,d){var s=this.$ti +s.h("~(1)?").a(a) +return A.zJ(t.Z.a(c),s.c)}, +bv(a,b,c){return this.au(a,null,b,c)}, +gbY(){return!0}} +A.wf.prototype={ +$0(){return this.a.aD(this.b)}, +$S:0} +A.we.prototype={ +$2(a,b){t.l.a(b) +A.Ge(this.a,this.b,new A.aO(a,b))}, +$S:11} +A.wg.prototype={ +$0(){return this.a.bM(this.b)}, +$S:0} +A.jt.prototype={ +j(a,b){var s=this.a +b=s.$ti.y[1].a(this.$ti.c.a(b)) +if((s.e&2)!==0)A.K(A.aC("Stream is already closed")) +s.eh(b)}, +aJ(a,b){this.a.bL(a,b)}, +p(){var s=this.a +if((s.e&2)!==0)A.K(A.aC("Stream is already closed")) +s.im()}, +$iaY:1, +$ia3:1} +A.hN.prototype={ +aC(a){this.$ti.y[1].a(a) +if((this.e&2)!==0)throw A.d(A.aC("Stream is already closed")) +this.eh(a)}, +bL(a,b){t.l.a(b) +if((this.e&2)!==0)throw A.d(A.aC("Stream is already closed")) +this.lf(a,b)}, +aH(){if((this.e&2)!==0)throw A.d(A.aC("Stream is already closed")) +this.im()}, +bP(){var s=this.x +if(s!=null)s.d7()}, +bQ(){var s=this.x +if(s!=null)s.cu()}, +hb(){var s=this.x +if(s!=null){this.x=null +return s.U()}return null}, +mG(a){var s,r,q,p +this.$ti.c.a(a) +try{q=this.w +q===$&&A.w("_transformerSink") +q.j(0,a)}catch(p){s=A.R(p) +r=A.bt(p) +this.bL(s,r)}}, +mN(a,b){var s,r,q,p +A.ap(a) +t.l.a(b) +try{q=this.w +q===$&&A.w("_transformerSink") +q.aJ(a,b)}catch(p){s=A.R(p) +r=A.bt(p) +if(s===a)this.bL(a,b) +else this.bL(s,r)}}, +mK(){var s,r,q,p +try{this.x=null +q=this.w +q===$&&A.w("_transformerSink") +q.p()}catch(p){s=A.R(p) +r=A.bt(p) +this.bL(s,r)}}} +A.jm.prototype={ +gbY(){return this.b.gbY()}, +au(a,b,c,d){var s,r,q,p,o,n,m,l=this.$ti +l.h("~(2)?").a(a) +t.Z.a(c) +s=$.E +r=b===!0?1:0 +q=d!=null?32:0 +p=A.vg(s,a,l.y[1]) +o=A.xY(s,d) +n=c==null?A.yc():c +m=new A.hN(p,o,t.Q.a(n),s,r|q,l.h("hN<1,2>")) +m.w=l.h("aY<1>").a(this.a.$1(new A.jt(m,l.h("jt<2>")))) +m.x=this.b.bv(m.gmF(),m.gmJ(),m.gmM()) +return m}, +bv(a,b,c){return this.au(a,null,b,c)}} +A.k5.prototype={$izG:1} +A.nv.prototype={ +i0(a){var s,r,q +t.Q.a(a) +try{if(B.t===$.E){a.$0() +return}A.AA(null,null,this,a,t.H)}catch(q){s=A.R(q) +r=A.bt(q) +A.hW(A.ap(s),t.l.a(r))}}, +i2(a,b,c){var s,r,q +c.h("~(0)").a(a) +c.a(b) +try{if(B.t===$.E){a.$1(b) +return}A.AC(null,null,this,a,b,t.H,c)}catch(q){s=A.R(q) +r=A.bt(q) +A.hW(A.ap(s),t.l.a(r))}}, +rg(a,b,c,d,e){var s,r,q +d.h("@<0>").H(e).h("~(1,2)").a(a) +d.a(b) +e.a(c) +try{if(B.t===$.E){a.$2(b,c) +return}A.AB(null,null,this,a,b,c,t.H,d,e)}catch(q){s=A.R(q) +r=A.bt(q) +A.hW(A.ap(s),t.l.a(r))}}, +ho(a){return new A.vZ(this,t.Q.a(a))}, +pu(a,b){return new A.w_(this,b.h("~(0)").a(a),b)}, +i_(a,b){b.h("0()").a(a) +if($.E===B.t)return a.$0() +return A.AA(null,null,this,a,b)}, +i1(a,b,c,d){c.h("@<0>").H(d).h("1(2)").a(a) +d.a(b) +if($.E===B.t)return a.$1(b) +return A.AC(null,null,this,a,b,c,d)}, +rf(a,b,c,d,e,f){d.h("@<0>").H(e).H(f).h("1(2,3)").a(a) +e.a(b) +f.a(c) +if($.E===B.t)return a.$2(b,c) +return A.AB(null,null,this,a,b,c,d,e,f)}, +hW(a,b,c,d){return b.h("@<0>").H(c).H(d).h("1(2,3)").a(a)}} +A.vZ.prototype={ +$0(){return this.a.i0(this.b)}, +$S:0} +A.w_.prototype={ +$1(a){var s=this.c +return this.a.i2(this.b,s.a(a),s)}, +$S(){return this.c.h("~(0)")}} +A.wt.prototype={ +$0(){A.Dk(this.a,this.b)}, +$S:0} +A.jv.prototype={ +gn(a){return this.a}, +gK(a){return this.a===0}, +gZ(a){return this.a!==0}, +gar(){return new A.jw(this,this.$ti.h("jw<1>"))}, +ag(a){var s,r +if(typeof a=="string"&&a!=="__proto__"){s=this.b +return s==null?!1:s[a]!=null}else if(typeof a=="number"&&(a&1073741823)===a){r=this.c +return r==null?!1:r[a]!=null}else return this.m_(a)}, +m_(a){var s=this.d +if(s==null)return!1 +return this.cI(this.iN(s,a),a)>=0}, +k(a,b){var s,r,q +if(typeof b=="string"&&b!=="__proto__"){s=this.b +r=s==null?null:A.zM(s,b) +return r}else if(typeof b=="number"&&(b&1073741823)===b){q=this.c +r=q==null?null:A.zM(q,b) +return r}else return this.mz(b)}, +mz(a){var s,r,q=this.d +if(q==null)return null +s=this.iN(q,a) +r=this.cI(s,a) +return r<0?null:s[r+1]}, +i(a,b,c){var s,r,q,p,o,n,m=this,l=m.$ti +l.c.a(b) +l.y[1].a(c) +if(typeof b=="string"&&b!=="__proto__"){s=m.b +m.iB(s==null?m.b=A.xZ():s,b,c)}else if(typeof b=="number"&&(b&1073741823)===b){r=m.c +m.iB(r==null?m.c=A.xZ():r,b,c)}else{q=m.d +if(q==null)q=m.d=A.xZ() +p=A.i5(b)&1073741823 +o=q[p] +if(o==null){A.y_(q,p,[b,c]);++m.a +m.e=null}else{n=m.cI(o,b) +if(n>=0)o[n+1]=c +else{o.push(b,c);++m.a +m.e=null}}}}, +aa(a,b){var s,r,q,p,o,n,m=this,l=m.$ti +l.h("~(1,2)").a(b) +s=m.iC() +for(r=s.length,q=l.c,l=l.y[1],p=0;p"))}, +t(a,b){return this.a.ag(b)}} +A.jx.prototype={ +gA(){var s=this.d +return s==null?this.$ti.c.a(s):s}, +q(){var s=this,r=s.b,q=s.c,p=s.a +if(r!==p.e)throw A.d(A.aG(p)) +else if(q>=r.length){s.d=null +return!1}else{s.d=r[q] +s.c=q+1 +return!0}}, +$ia8:1} +A.jC.prototype={ +k(a,b){if(!this.y.$1(b))return null +return this.l8(b)}, +i(a,b,c){var s=this.$ti +this.la(s.c.a(b),s.y[1].a(c))}, +ag(a){if(!this.y.$1(a))return!1 +return this.l7(a)}, +a5(a,b){if(!this.y.$1(b))return null +return this.l9(b)}, +cn(a){return this.x.$1(this.$ti.c.a(a))&1073741823}, +co(a,b){var s,r,q,p +if(a==null)return-1 +s=a.length +for(r=this.$ti.c,q=this.w,p=0;p")) +r.c=s.e +return r}, +gn(a){return this.a}, +gK(a){return this.a===0}, +gZ(a){return this.a!==0}, +t(a,b){var s,r +if(typeof b=="string"&&b!=="__proto__"){s=this.b +if(s==null)return!1 +return t.Af.a(s[b])!=null}else if(typeof b=="number"&&(b&1073741823)===b){r=this.c +if(r==null)return!1 +return t.Af.a(r[b])!=null}else return this.lZ(b)}, +lZ(a){var s=this.d +if(s==null)return!1 +return this.cI(s[this.iE(a)],a)>=0}, +gI(a){var s=this.e +if(s==null)throw A.d(A.aC("No elements")) +return A.l(this).c.a(s.a)}, +j(a,b){var s,r,q=this +A.l(q).c.a(b) +if(typeof b=="string"&&b!=="__proto__"){s=q.b +return q.iA(s==null?q.b=A.y0():s,b)}else if(typeof b=="number"&&(b&1073741823)===b){r=q.c +return q.iA(r==null?q.c=A.y0():r,b)}else return q.fP(b)}, +fP(a){var s,r,q,p=this +A.l(p).c.a(a) +s=p.d +if(s==null)s=p.d=A.y0() +r=p.iE(a) +q=s[r] +if(q==null)s[r]=[p.fQ(a)] +else{if(p.cI(q,a)>=0)return!1 +q.push(p.fQ(a))}return!0}, +iA(a,b){A.l(this).c.a(b) +if(t.Af.a(a[b])!=null)return!1 +a[b]=this.fQ(b) +return!0}, +fQ(a){var s=this,r=new A.nq(A.l(s).c.a(a)) +if(s.e==null)s.e=s.f=r +else s.f=s.f.b=r;++s.a +s.r=s.r+1&1073741823 +return r}, +iE(a){return J.am(a)&1073741823}, +cI(a,b){var s,r +if(a==null)return-1 +s=a.length +for(r=0;r"))}, +ad(a,b){return this.k(a,b)}, +gK(a){return this.gn(a)===0}, +gZ(a){return!this.gK(a)}, +gI(a){if(this.gn(a)===0)throw A.d(A.ce()) +return this.k(a,0)}, +t(a,b){var s,r=this.gn(a) +for(s=0;s"))}, +i9(a,b){return new A.bL(a,b.h("bL<0>"))}, +b8(a,b,c){var s=A.bg(a) +return new A.a2(a,s.H(c).h("1(P.E)").a(b),s.h("@").H(c).h("a2<1,2>"))}, +aS(a,b){return A.bx(a,b,null,A.bg(a).h("P.E"))}, +bz(a,b){return A.bx(a,0,A.dq(b,"count",t.S),A.bg(a).h("P.E"))}, +j(a,b){var s +A.bg(a).h("P.E").a(b) +s=this.gn(a) +this.sn(a,s+1) +this.i(a,s,b)}, +bn(a,b){var s,r=A.bg(a) +r.h("c(P.E,P.E)?").a(b) +s=b==null?A.He():b +A.mn(a,0,this.gn(a)-1,s,r.h("P.E"))}, +kL(a,b,c){A.aR(b,c,this.gn(a)) +return A.bx(a,b,c,A.bg(a).h("P.E"))}, +pZ(a,b,c,d){var s +A.bg(a).h("P.E?").a(d) +A.aR(b,c,this.gn(a)) +for(s=b;s").a(d) +A.aR(b,c,this.gn(a)) +s=c-b +if(s===0)return +A.bq(e,"skipCount") +if(t._.b(d)){r=e +q=d}else{q=J.o9(d,e).c1(0,!1) +r=0}p=J.at(q) +if(r+s>p.gn(q))throw A.d(A.yW()) +if(r=0;--o)this.i(a,b+o,p.k(q,r+o)) +else for(o=0;o"))}, +d4(a,b,c,d){var s,r,q,p,o,n=A.l(this) +n.H(c).H(d).h("V<1,2>(a1.K,a1.V)").a(b) +s=A.I(c,d) +for(r=this.gar(),r=r.gJ(r),n=n.h("a1.V");r.q();){q=r.gA() +p=this.k(0,q) +o=b.$2(q,p==null?n.a(p):p) +s.i(0,o.a,o.b)}return s}, +ag(a){return this.gar().t(0,a)}, +gn(a){var s=this.gar() +return s.gn(s)}, +gK(a){var s=this.gar() +return s.gK(s)}, +gZ(a){var s=this.gar() +return s.gZ(s)}, +l(a){return A.rd(this)}, +$ih:1} +A.rc.prototype={ +$1(a){var s=this.a,r=A.l(s) +r.h("a1.K").a(a) +s=s.k(0,a) +if(s==null)s=r.h("a1.V").a(s) +return new A.V(a,s,r.h("V"))}, +$S(){return A.l(this.a).h("V(a1.K)")}} +A.re.prototype={ +$2(a,b){var s,r=this.a +if(!r.a)this.b.a+=", " +r.a=!1 +r=this.b +s=A.u(a) +r.a=(r.a+=s)+": " +s=A.u(b) +r.a+=s}, +$S:35} +A.nM.prototype={} +A.iL.prototype={ +ak(a,b,c){return this.a.ak(0,b,c)}, +k(a,b){return this.a.k(0,b)}, +aa(a,b){this.a.aa(0,A.l(this).h("~(1,2)").a(b))}, +gK(a){var s=this.a +return s.gK(s)}, +gZ(a){var s=this.a +return s.gZ(s)}, +gn(a){var s=this.a +return s.gn(s)}, +gar(){return this.a.gar()}, +l(a){return this.a.l(0)}, +gX(){return this.a.gX()}, +d4(a,b,c,d){return this.a.d4(0,A.l(this).H(c).H(d).h("V<1,2>(3,4)").a(b),c,d)}, +$ih:1} +A.f8.prototype={ +ak(a,b,c){return new A.f8(this.a.ak(0,b,c),b.h("@<0>").H(c).h("f8<1,2>"))}} +A.iJ.prototype={ +gJ(a){var s=this +return new A.fi(s,s.c,s.d,s.b,s.$ti.h("fi<1>"))}, +gK(a){return this.b===this.c}, +gn(a){return(this.c-this.b&this.a.length-1)>>>0}, +gI(a){var s,r=this,q=r.b +if(q===r.c)throw A.d(A.ce()) +s=r.a +if(!(qb||b>=p)A.K(A.le(b,p,q,null,"index")) +p=q.a +s=p.length +r=(q.b+b&s-1)>>>0 +if(!(r>=0&&r>>0){r=q.a +if(!(s>=0&&s>>0)B.b.i(s.a,r,null) +s.b=s.c=0;++s.d}}, +l(a){return A.r_(this,"{","}")}, +qL(){var s,r,q=this,p=q.b +if(p===q.c)throw A.d(A.ce());++q.d +s=q.a +if(!(p>>0 +return r}, +fP(a){var s,r,q,p,o=this,n=o.$ti +n.c.a(a) +B.b.i(o.a,o.c,a) +s=o.c +r=o.a.length +s=(s+1&r-1)>>>0 +o.c=s +if(o.b===s){q=A.bU(r*2,null,!1,n.h("1?")) +n=o.a +s=o.b +p=n.length-s +B.b.bd(q,0,p,n,s) +B.b.bd(q,p,p+o.b,o.a,0) +o.b=0 +o.c=o.a.length +o.a=q}++o.d}, +o9(a){var s,r,q,p=this,o=p.a.length-1,n=p.b,m=p.c +if((a-n&o)>>>0<(m-a&o)>>>0){for(s=a;n=p.b,s!==n;s=r){r=(s-1&o)>>>0 +n=p.a +if(!(r>=0&&r=0&&s>>0 +return(a+1&o)>>>0}else{p.c=(m-1&o)>>>0 +for(s=a;n=p.c,s!==n;s=q){q=(s+1&o)>>>0 +n=p.a +if(!(q>=0&&q=0&&s>>0 +return!0}, +$ia8:1} +A.cR.prototype={ +gK(a){return this.gn(this)===0}, +gZ(a){return this.gn(this)!==0}, +C(a,b){var s +A.l(this).h("i<1>").a(b) +for(s=b.gJ(b);s.q();)this.j(0,s.gA())}, +b8(a,b,c){var s=A.l(this) +return new A.eu(this,s.H(c).h("1(2)").a(b),s.h("@<1>").H(c).h("eu<1,2>"))}, +l(a){return A.r_(this,"{","}")}, +ac(a,b){var s +A.l(this).h("y(1)").a(b) +for(s=this.gJ(this);s.q();)if(b.$1(s.gA()))return!0 +return!1}, +bz(a,b){return A.zv(this,b,A.l(this).c)}, +aS(a,b){return A.zt(this,b,A.l(this).c)}, +gI(a){var s=this.gJ(this) +if(!s.q())throw A.d(A.ce()) +return s.gA()}, +ad(a,b){var s,r +A.bq(b,"index") +s=this.gJ(this) +for(r=b;s.q();){if(r===0)return s.gA();--r}throw A.d(A.le(b,b-r,this,null,"index"))}, +$iJ:1, +$ii:1, +$ida:1} +A.jP.prototype={} +A.nO.prototype={ +j(a,b){this.$ti.c.a(b) +return A.FY()}} +A.jd.prototype={ +t(a,b){return this.a.t(0,b)}, +gn(a){return this.a.a}, +gJ(a){var s=this.a +return A.FC(s,s.r,A.l(s).c)}} +A.k_.prototype={} +A.k0.prototype={} +A.nm.prototype={ +k(a,b){var s,r=this.b +if(r==null)return this.c.k(0,b) +else if(typeof b!="string")return null +else{s=r[b] +return typeof s=="undefined"?this.o1(b):s}}, +gn(a){return this.b==null?this.c.a:this.em().length}, +gK(a){return this.gn(0)===0}, +gZ(a){return this.gn(0)>0}, +gar(){if(this.b==null){var s=this.c +return new A.d5(s,A.l(s).h("d5<1>"))}return new A.nn(this)}, +ag(a){if(this.b==null)return this.c.ag(a) +return Object.prototype.hasOwnProperty.call(this.a,a)}, +aa(a,b){var s,r,q,p,o=this +t.m1.a(b) +if(o.b==null)return o.c.aa(0,b) +s=o.em() +for(r=0;r=0&&b"))}return s}, +t(a,b){return this.a.ag(b)}} +A.nk.prototype={ +p(){var s,r,q,p=this +p.lg() +s=p.a +r=s.a +s.a="" +s=p.c +q=s.a +q.aC(s.$ti.c.a(A.Ax(r.charCodeAt(0)==0?r:r,p.b))) +q.aH()}} +A.w9.prototype={ +$0(){var s,r +try{s=new TextDecoder("utf-8",{fatal:true}) +return s}catch(r){}return null}, +$S:47} +A.w8.prototype={ +$0(){var s,r +try{s=new TextDecoder("utf-8",{fatal:false}) +return s}catch(r){}return null}, +$S:47} +A.kr.prototype={ +gT(){return"us-ascii"}, +cX(a){return B.f8.Y(a)}, +b5(a){var s +t.L.a(a) +s=B.cC.Y(a) +return s}, +gdP(){return B.cC}} +A.nK.prototype={ +Y(a){var s,r,q,p,o,n +A.r(a) +s=a.length +r=A.aR(0,null,s) +q=new Uint8Array(r) +for(p=~this.a,o=0;o>>0!==0){if(q>b)r.aB(a,b,q,!1) +p.a(B.bM) +r.aB(B.bM,0,B.bM.length,!1) +b=q+1}if(b>>0!==0)throw A.d(A.an("Source contains non-ASCII bytes.",null,null)) +s=this.a.a +s.a.aC(s.$ti.c.a(A.c5(b,0,null)))}} +A.ig.prototype={ +ghy(){return B.fg}, +qo(a3,a4,a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0=u.U,a1="Invalid base64 encoding length ",a2=a3.length +a5=A.aR(a4,a5,a2) +s=$.yn() +for(r=s.length,q=a4,p=q,o=null,n=-1,m=-1,l=0;q=0&&e=0){if(!(d<64))return A.b(a0,d) +e=a0.charCodeAt(d) +if(e===j)continue +j=e}else{if(d===-1){if(n<0){g=o==null?null:o.a.length +if(g==null)g=0 +n=g+(q-p) +m=q}++l +if(j===61)continue}j=e}if(d!==-2){if(o==null){o=new A.T("") +g=o}else g=o +g.a+=B.a.m(a3,p,q) +c=A.ak(j) +g.a+=c +p=k +continue}}throw A.d(A.an("Invalid base64 data",a3,q))}if(o!=null){a2=B.a.m(a3,p,a5) +a2=o.a+=a2 +r=a2.length +if(n>=0)A.yB(a3,m,a5,n,l,r) +else{b=B.c.bc(r-1,4)+1 +if(b===1)throw A.d(A.an(a1,a3,a5)) +while(b<4){a2+="=" +o.a=a2;++b}}a2=o.a +return B.a.bI(a3,a4,a5,a2.charCodeAt(0)==0?a2:a2)}a=a5-a4 +if(n>=0)A.yB(a3,m,a5,n,l,a) +else{b=B.c.bc(a,4) +if(b===1)throw A.d(A.an(a1,a3,a5)) +if(b>1)a3=B.a.bI(a3,a5,a5,b===2?"==":"=")}return a3}} +A.ky.prototype={ +Y(a){var s +t.L.a(a) +s=a.length +if(s===0)return"" +s=new A.jl(u.U).k0(a,0,s,!0) +s.toString +return A.c5(s,0,null)}, +bo(a){t.u.a(a) +return new A.mX(a,new A.n2(u.U))}} +A.jl.prototype={ +jX(a){return new Uint8Array(a)}, +k0(a,b,c,d){var s,r,q,p,o=this +t.L.a(a) +s=(o.a&3)+(c-b) +r=B.c.W(s,3) +q=r*4 +if(d&&s-r*3>0)q+=4 +p=o.jX(q) +o.a=A.Fq(o.b,a,b,c,d,p,0,o.a) +if(q>0)return p +return null}} +A.n2.prototype={ +jX(a){var s=this.c +if(s==null||s.length0)throw A.d(A.an("Invalid length, must be multiple of four",a,b)) +this.a=-1}} +A.n0.prototype={ +j(a,b){var s,r +A.r(b) +s=b.length +if(s===0)return +r=this.b.hv(b,0,s) +if(r!=null){s=this.a +s.a.aC(s.$ti.c.a(r))}}, +p(){this.b.bs(null,null) +this.a.a.aH()}, +aB(a,b,c,d){var s,r,q +A.aR(b,c,a.length) +if(b===c)return +s=this.b +r=s.hv(a,b,c) +if(r!=null){q=this.a +q.a.aC(q.$ti.c.a(r))}if(d){s.bs(a,c) +this.a.a.aH()}}} +A.c_.prototype={$ia3:1} +A.jo.prototype={ +j(a,b){var s=this.a +s.a.aC(s.$ti.c.a(t.L.a(b)))}, +p(){this.a.a.aH()}} +A.jp.prototype={ +j(a,b){var s,r,q,p,o,n=this +t.uI.a(b) +s=n.b +r=n.c +q=J.at(b) +if(q.gn(b)>s.length-r){s=n.b +p=q.gn(b)+s.length-1 +p|=B.c.aT(p,1) +p|=p>>>2 +p|=p>>>4 +p|=p>>>8 +o=new Uint8Array((((p|p>>>16)>>>0)+1)*2) +s=n.b +B.H.bK(o,0,s.length,s) +n.b=o}s=n.b +r=n.c +B.H.bK(s,r,r+q.gn(b),b) +n.c=n.c+q.gn(b)}, +p(){this.a.$1(B.H.aq(this.b,0,this.c))}} +A.io.prototype={$ia3:1} +A.fc.prototype={ +j(a,b){this.b.j(0,this.$ti.c.a(b))}, +aJ(a,b){A.dq(a,"error",t.K) +this.a.aJ(a,b)}, +p(){this.b.p()}, +$iaY:1, +$ia3:1} +A.bE.prototype={} +A.a7.prototype={ +bo(a){A.l(this).h("a3").a(a) +throw A.d(A.aw("This converter does not support chunked conversions: "+this.l(0)))}, +cW(a){var s=A.l(this) +return new A.jm(new A.ps(this),s.h("aa").a(a),t.f9.H(s.h("a7.T")).h("jm<1,2>"))}, +$ibr:1} +A.ps.prototype={ +$1(a){return new A.fc(a,this.a.bo(a),t.mP)}, +$S:137} +A.dz.prototype={ +pJ(a){t.xX.a(a) +return this.gdP().cW(a).hC(0,new A.T(""),new A.pN(),t.f0).aZ(new A.pO(),t.N)}} +A.pN.prototype={ +$2(a,b){t.f0.a(a) +a.a+=A.r(b) +return a}, +$S:140} +A.pO.prototype={ +$1(a){var s=t.f0.a(a).a +return s.charCodeAt(0)==0?s:s}, +$S:141} +A.iF.prototype={ +l(a){var s=A.l0(this.a) +return(this.b!=null?"Converting object to an encodable object failed:":"Converting object did not return an encodable object:")+" "+s}} +A.ln.prototype={ +l(a){return"Cyclic error in JSON stringify"}} +A.lm.prototype={ +bH(a,b){var s=A.Ax(a,this.gdP().a) +return s}, +cY(a,b){var s=A.Fy(a,this.ghy().b,null) +return s}, +ghy(){return B.ih}, +gdP(){return B.ig}} +A.lp.prototype={ +bo(a){t.u.a(a) +return new A.nl(null,this.b,new A.fo(a))}} +A.nl.prototype={ +j(a,b){var s,r,q,p=this +if(p.d)throw A.d(A.aC("Only one call to add allowed")) +p.d=!0 +s=p.c +r=new A.T("") +q=new A.nC(r,s) +A.zO(b,q,p.b,p.a) +if(r.a.length!==0)q.fS() +s.p()}, +p(){}} +A.lo.prototype={ +bo(a){return new A.nk(this.a,a,new A.T(""))}} +A.vP.prototype={ +kB(a){var s,r,q,p,o,n=this,m=a.length +for(s=0,r=0;r92){if(q>=55296){p=q&64512 +if(p===55296){o=r+1 +o=!(o=0&&(a.charCodeAt(p)&64512)===55296)}else p=!1 +else p=!0 +if(p){if(r>s)n.fC(a,s,r) +s=r+1 +n.aj(92) +n.aj(117) +n.aj(100) +p=q>>>8&15 +n.aj(p<10?48+p:87+p) +p=q>>>4&15 +n.aj(p<10?48+p:87+p) +p=q&15 +n.aj(p<10?48+p:87+p)}}continue}if(q<32){if(r>s)n.fC(a,s,r) +s=r+1 +n.aj(92) +switch(q){case 8:n.aj(98) +break +case 9:n.aj(116) +break +case 10:n.aj(110) +break +case 12:n.aj(102) +break +case 13:n.aj(114) +break +default:n.aj(117) +n.aj(48) +n.aj(48) +p=q>>>4&15 +n.aj(p<10?48+p:87+p) +p=q&15 +n.aj(p<10?48+p:87+p) +break}}else if(q===34||q===92){if(r>s)n.fC(a,s,r) +s=r+1 +n.aj(92) +n.aj(q)}}if(s===0)n.aO(a) +else if(s=q.length)return A.b(q,-1) +q.pop()}catch(p){r=A.R(p) +q=A.z1(a,r,o.gj6()) +throw A.d(q)}}, +kA(a){var s,r,q=this +if(typeof a=="number"){if(!isFinite(a))return!1 +q.ro(a) +return!0}else if(a===!0){q.aO("true") +return!0}else if(a===!1){q.aO("false") +return!0}else if(a==null){q.aO("null") +return!0}else if(typeof a=="string"){q.aO('"') +q.kB(a) +q.aO('"') +return!0}else if(t._.b(a)){q.fM(a) +q.rm(a) +s=q.a +if(0>=s.length)return A.b(s,-1) +s.pop() +return!0}else if(t.f.b(a)){q.fM(a) +r=q.rn(a) +s=q.a +if(0>=s.length)return A.b(s,-1) +s.pop() +return r}else return!1}, +rm(a){var s,r,q=this +q.aO("[") +s=J.at(a) +if(s.gZ(a)){q.fB(s.k(a,0)) +for(r=1;r255||q<0){if(r>b){p=this.a +p.toString +p=p.a +o=p.a +p=o.$ti.y[1].a(p.$ti.c.a(A.c5(a,b,r))) +if((o.e&2)!==0)A.K(A.aC(n)) +o.eh(p)}m.a(B.dd) +p=this.a +p.toString +p=p.a +o=p.a +p=o.$ti.y[1].a(p.$ti.c.a(A.c5(B.dd,0,1))) +if((o.e&2)!==0)A.K(A.aC(n)) +o.eh(p) +b=r+1}}if(b16)this.fS()}, +de(a){if(this.a.a.length!==0)this.fS() +this.b.j(0,a)}, +fS(){var s=this.a,r=s.a +s.a="" +this.b.j(0,r.charCodeAt(0)==0?r:r)}, +$ixU:1} +A.fp.prototype={ +p(){}, +aB(a,b,c,d){var s,r,q,p +if(b!==0||c!==a.length)for(s=this.a,r=a.length,q=b;q=0&&o>>18|240 +q=n.b=p+1 +if(!(p>>12&63|128 +p=n.b=q+1 +if(!(q>>6&63|128 +n.b=p+1 +if(!(p=0&&s=q)break +k.b=m+1 +r&2&&A.ai(s) +s[m]=n}else{m=n&64512 +if(m===55296){if(k.b+4>q)break +m=o+1 +if(!(mq)break +k.eZ()}else if(n<=2047){m=k.b +l=m+1 +if(l>=q)break +k.b=l +r&2&&A.ai(s) +if(!(m>>6|192 +k.b=l+1 +s[l]=n&63|128}else{m=k.b +if(m+2>=q)break +l=k.b=m+1 +r&2&&A.ai(s) +if(!(m>>12|224 +m=k.b=l+1 +if(!(l>>6&63|128 +k.b=m+1 +if(!(m=15){o=l.a +n=A.G5(o,q,b,s) +if(n!=null){if(!o)return n +if(n.indexOf("\ufffd")<0)return n}}n=l.fV(q,b,s,d) +o=l.b +if((o&1)!==0){m=A.Ae(o) +l.b=0 +throw A.d(A.an(m,a,p+l.c))}return n}, +fV(a,b,c,d){var s,r,q=this +if(c-b>1000){s=B.c.W(b+c,2) +r=q.fV(a,b,s,!1) +if((q.b&1)!==0)return r +return r+q.fV(a,s,c,d)}return q.pI(a,b,c,d)}, +q0(a){var s,r=this.b +this.b=0 +if(r<=32)return +if(this.a){s=A.ak(65533) +a.a+=s}else throw A.d(A.an(A.Ae(77),null,null))}, +pI(a,b,a0,a1){var s,r,q,p,o,n,m,l,k=this,j="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHJEEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKCCCCCCCCCCCCDCLONNNMEEEEEEEEEEE",i=" \x000:XECCCCCN:lDb \x000:XECCCCCNvlDb \x000:XECCCCCN:lDb AAAAA\x00\x00\x00\x00\x00AAAAA00000AAAAA:::::AAAAAGG000AAAAA00KKKAAAAAG::::AAAAA:IIIIAAAAA000\x800AAAAA\x00\x00\x00\x00 AAAAA",h=65533,g=k.b,f=k.c,e=new A.T(""),d=b+1,c=a.length +if(!(b>=0&&b=0&&s<256))return A.b(j,s) +q=j.charCodeAt(s)&31 +f=g<=32?s&61694>>>q:(s&63|f<<6)>>>0 +p=g+q +if(!(p>=0&&p<144))return A.b(i,p) +g=i.charCodeAt(p) +if(g===0){p=A.ak(f) +e.a+=p +if(d===a0)break A +break}else if((g&1)!==0){if(r)switch(g){case 69:case 67:p=A.ak(h) +e.a+=p +break +case 65:p=A.ak(h) +e.a+=p;--d +break +default:p=A.ak(h) +e.a=(e.a+=p)+p +break}else{k.b=g +k.c=d-1 +return""}g=0}if(d===a0)break A +o=d+1 +if(!(d>=0&&d=0&&d=0&&o=128){n=m-1 +o=m +break}o=m}if(n-d<20)for(l=d;l32)if(r){c=A.ak(h) +e.a+=c}else{k.b=77 +k.c=a0 +return""}k.b=g +k.c=f +c=e.a +return c.charCodeAt(0)==0?c:c}} +A.nU.prototype={} +A.bk.prototype={ +dR(a){return A.it(0,0,this.b-a.b,this.a-a.a,0,0)}, +L(a,b){if(b==null)return!1 +return b instanceof A.bk&&this.a===b.a&&this.b===b.b&&this.c===b.c}, +gE(a){return A.bo(this.a,this.b,B.f,B.f,B.f,B.f,B.f)}, +a3(a,b){var s +t.f7.a(b) +s=B.c.a3(this.a,b.a) +if(s!==0)return s +return B.c.a3(this.b,b.b)}, +ri(){var s=this +if(s.c)return new A.bk(s.a,s.b,!1) +return s}, +av(){var s=this +if(s.c)return s +return new A.bk(s.a,s.b,!0)}, +l(a){var s=this,r=A.yO(A.m4(s)),q=A.cZ(A.zj(s)),p=A.cZ(A.zf(s)),o=A.cZ(A.zg(s)),n=A.cZ(A.zi(s)),m=A.cZ(A.zk(s)),l=A.pz(A.zh(s)),k=s.b,j=k===0?"":A.pz(k) +k=r+"-"+q +if(s.c)return k+"-"+p+" "+o+":"+n+":"+m+"."+l+j+"Z" +else return k+"-"+p+" "+o+":"+n+":"+m+"."+l+j}, +b_(){var s=this,r=A.m4(s)>=-9999&&A.m4(s)<=9999?A.yO(A.m4(s)):A.D4(A.m4(s)),q=A.cZ(A.zj(s)),p=A.cZ(A.zf(s)),o=A.cZ(A.zg(s)),n=A.cZ(A.zi(s)),m=A.cZ(A.zk(s)),l=A.pz(A.zh(s)),k=s.b,j=k===0?"":A.pz(k) +k=r+"-"+q +if(s.c)return k+"-"+p+"T"+o+":"+n+":"+m+"."+l+j+"Z" +else return k+"-"+p+"T"+o+":"+n+":"+m+"."+l+j}, +$iaK:1} +A.pA.prototype={ +$1(a){if(a==null)return 0 +return A.fs(a)}, +$S:28} +A.pB.prototype={ +$1(a){var s,r,q +if(a==null)return 0 +for(s=a.length,r=0,q=0;q<6;++q){r*=10 +if(qr)s=": Not in inclusive range "+A.u(r)+".."+A.u(q) +else s=qe.length +else s=!1 +if(s)f=null +if(f==null){if(e.length>78)e=B.a.m(e,0,75)+"..." +return g+"\n"+e}for(r=e.length,q=1,p=0,o=!1,n=0;n1?g+(" (at line "+q+", character "+(f-p+1)+")\n"):g+(" (at character "+(f+1)+")\n") +for(n=f;n=0))return A.b(e,n) +m=e.charCodeAt(n) +if(m===10||m===13){r=n +break}}l="" +if(r-p>78){k="..." +if(f-p<75){j=p+75 +i=p}else{if(r-f<75){i=r-75 +j=r +k=""}else{i=f-36 +j=f+36}l="..."}}else{j=r +i=p +k=""}return g+l+B.a.m(e,i,j)+k+"\n"+B.a.aQ(" ",f-i+l.length)+"^\n"}else return f!=null?g+(" (at offset "+A.u(f)+")"):g}, +$iaf:1, +ghO(){return this.a}, +geg(){return this.b}, +gan(){return this.c}} +A.i.prototype={ +b8(a,b,c){var s=A.l(this) +return A.d6(this,s.H(c).h("1(i.E)").a(b),s.h("i.E"),c)}, +fz(a,b){var s=A.l(this) +return new A.ae(this,s.h("y(i.E)").a(b),s.h("ae"))}, +i9(a,b){return new A.bL(this,b.h("bL<0>"))}, +t(a,b){var s +for(s=this.gJ(this);s.q();)if(J.a0(s.gA(),b))return!0 +return!1}, +S(a,b){var s,r,q=this.gJ(this) +if(!q.q())return"" +s=J.b9(q.gA()) +if(!q.q())return s +if(b.length===0){r=s +do r+=J.b9(q.gA()) +while(q.q())}else{r=s +do r=r+b+J.b9(q.gA()) +while(q.q())}return r.charCodeAt(0)==0?r:r}, +c1(a,b){var s=A.l(this).h("i.E") +if(b)s=A.N(this,s) +else{s=A.N(this,s) +s.$flags=1 +s=s}return s}, +fu(a){return this.c1(0,!0)}, +gn(a){var s,r=this.gJ(this) +for(s=0;r.q();)++s +return s}, +gK(a){return!this.gJ(this).q()}, +gZ(a){return!this.gK(this)}, +bz(a,b){return A.zv(this,b,A.l(this).h("i.E"))}, +aS(a,b){return A.zt(this,b,A.l(this).h("i.E"))}, +gI(a){var s=this.gJ(this) +if(!s.q())throw A.d(A.ce()) +return s.gA()}, +bX(a,b,c){var s,r=A.l(this) +r.h("y(i.E)").a(b) +r.h("i.E()?").a(c) +for(r=this.gJ(this);r.q();){s=r.gA() +if(b.$1(s))return s}r=c.$0() +return r}, +ad(a,b){var s,r +A.bq(b,"index") +s=this.gJ(this) +for(r=b;s.q();){if(r===0)return s.gA();--r}throw A.d(A.le(b,b-r,this,null,"index"))}, +l(a){return A.DC(this,"(",")")}} +A.V.prototype={ +l(a){return"MapEntry("+A.u(this.a)+": "+A.u(this.b)+")"}} +A.ab.prototype={ +gE(a){return A.x.prototype.gE.call(this,0)}, +l(a){return"null"}} +A.x.prototype={$ix:1, +L(a,b){return this===b}, +gE(a){return A.dI(this)}, +l(a){return"Instance of '"+A.m5(this)+"'"}, +gai(a){return A.o1(this)}, +toString(){return this.l(this)}} +A.nD.prototype={ +l(a){return""}, +$ibW:1} +A.hu.prototype={ +gpR(){var s=this.gk_() +if($.i7()===1e6)return s +return s*1000}, +ghx(){var s=this.gk_() +if($.i7()===1000)return s +return B.c.W(s,1000)}, +b1(){var s=this,r=s.b +if(r!=null){s.a=s.a+($.hj.$0()-r) +s.b=null}}, +gk_(){var s=this.b +if(s==null)s=$.hj.$0() +return s-this.a}} +A.ch.prototype={ +gJ(a){return new A.ho(this.a)}} +A.ho.prototype={ +gA(){return this.d}, +q(){var s,r,q,p=this,o=p.b=p.c,n=p.a,m=n.length +if(o===m){p.d=-1 +return!1}if(!(o=r)return A.b(s,0) +r=s.charCodeAt(0)===47}else r=!1 +if(r)s=B.a.D(s,1) +q=s.length===0?B.G:A.cO(new A.a2(A.e(s.split("/"),t.s),t.cz.a(A.Im()),t.nf),t.N) +p.x!==$&&A.i6("pathSegments") +o=p.x=q}return o}, +gE(a){var s,r=this,q=r.y +if(q===$){s=B.a.gE(r.gjx()) +r.y!==$&&A.i6("hashCode") +r.y=s +q=s}return q}, +gi8(){return this.b}, +gbj(){var s=this.c +if(s==null)return"" +if(B.a.u(s,"[")&&!B.a.a6(s,"v",1))return B.a.m(s,1,s.length-1) +return s}, +ge4(){var s=this.d +return s==null?A.A2(this.a):s}, +ge5(){var s=this.f +return s==null?"":s}, +gfc(){var s=this.r +return s==null?"":s}, +fi(a){var s=this.a +if(a.length!==s.length)return!1 +return A.Al(a,s,0)>=0}, +hY(a){var s,r,q,p,o,n,m,l=this +a=A.y4(a,0,a.length) +s=a==="file" +r=l.b +q=l.d +if(a!==l.a)q=A.w6(q,a) +p=l.c +if(!(p!=null))p=r.length!==0||q!=null||s?"":null +o=l.e +if(!s)n=p!=null&&o.length!==0 +else n=!0 +if(n&&!B.a.u(o,"/"))o="/"+o +m=o +return A.k2(a,r,p,q,m,l.f,l.r)}, +iW(a,b){var s,r,q,p,o,n,m,l,k +for(s=0,r=0;B.a.a6(b,"../",r);){r+=3;++s}q=B.a.aY(a,"/") +p=a.length +for(;;){if(!(q>0&&s>0))break +o=B.a.fj(a,"/",q-1) +if(o<0)break +n=q-o +m=n!==2 +l=!1 +if(!m||n===3){k=o+1 +if(!(k0){k=B.a.m(n,0,l) +n=a.ghE()?k+A.fq(a.gb9()):k+A.fq(h.iW(B.a.D(n,k.length),a.gb9()))}else if(a.ghE())n=A.fq(a.gb9()) +else if(n.length===0)if(p==null)n=s.length===0?a.gb9():A.fq(a.gb9()) +else n=A.fq("/"+a.gb9()) +else{j=h.iW(n,a.gb9()) +r=s.length===0 +if(!r||p!=null||B.a.u(n,"/"))n=A.fq(j) +else n=A.y6(j,!r||p!=null)}m=a.gfe()?a.ge5():null}}}i=a.ghG()?a.gfc():null +return A.k2(s,q,p,o,n,m,i)}, +ghF(){return this.c!=null}, +gfe(){return this.f!=null}, +ghG(){return this.r!=null}, +gk9(){return this.e.length===0}, +ghE(){return B.a.u(this.e,"/")}, +i3(){var s,r=this,q=r.a +if(q!==""&&q!=="file")throw A.d(A.aw("Cannot extract a file path from a "+q+" URI")) +q=r.f +if((q==null?"":q)!=="")throw A.d(A.aw(u.z)) +q=r.r +if((q==null?"":q)!=="")throw A.d(A.aw(u.A)) +if(r.c!=null&&r.gbj()!=="")A.K(A.aw(u.Q)) +s=r.gqB() +A.G_(s,!1) +q=A.tY(B.a.u(r.e,"/")?"/":"",s,"/") +q=q.charCodeAt(0)==0?q:q +return q}, +l(a){return this.gjx()}, +L(a,b){var s,r,q,p=this +if(b==null)return!1 +if(p===b)return!0 +s=!1 +if(t.eP.b(b))if(p.a===b.gaG())if(p.c!=null===b.ghF())if(p.b===b.gi8())if(p.gbj()===b.gbj())if(p.ge4()===b.ge4())if(p.e===b.gb9()){r=p.f +q=r==null +if(!q===b.gfe()){if(q)r="" +if(r===b.ge5()){r=p.r +q=r==null +if(!q===b.ghG()){s=q?"":r +s=s===b.gfc()}}}}return s}, +$ihB:1, +gaG(){return this.a}, +gb9(){return this.e}} +A.uS.prototype={ +gkz(){var s,r,q,p,o=this,n=null,m=o.c +if(m==null){m=o.b +if(0>=m.length)return A.b(m,0) +s=o.a +m=m[0]+1 +r=B.a.a_(s,"?",m) +q=s.length +if(r>=0){p=A.k3(s,r+1,q,256,!1,!1) +q=r}else p=n +m=o.c=new A.n8("data","",n,n,A.k3(s,m,q,128,!1,!1),p,n)}return m}, +l(a){var s,r=this.b +if(0>=r.length)return A.b(r,0) +s=this.a +return r[0]===-1?"data:"+s:s}} +A.cm.prototype={ +ghF(){return this.c>0}, +ghH(){return this.c>0&&this.d+1=0}, +gaG(){var s=this.w +return s==null?this.w=this.lX():s}, +lX(){var s,r=this,q=r.b +if(q<=0)return"" +s=q===4 +if(s&&B.a.u(r.a,"http"))return"http" +if(q===5&&B.a.u(r.a,"https"))return"https" +if(s&&B.a.u(r.a,"file"))return"file" +if(q===7&&B.a.u(r.a,"package"))return"package" +return B.a.m(r.a,0,q)}, +gi8(){var s=this.c,r=this.b+3 +return s>r?B.a.m(this.a,r,s-1):""}, +gbj(){var s=this.c +return s>0?B.a.m(this.a,s,this.d):""}, +ge4(){var s,r=this +if(r.ghH())return A.fs(B.a.m(r.a,r.d+1,r.e)) +s=r.b +if(s===4&&B.a.u(r.a,"http"))return 80 +if(s===5&&B.a.u(r.a,"https"))return 443 +return 0}, +gb9(){return B.a.m(this.a,this.e,this.f)}, +ge5(){var s=this.f,r=this.r +return s=q.length)return s +return new A.cm(B.a.m(q,0,r),s.b,s.c,s.d,s.e,s.f,r,s.w)}, +hY(a){var s,r,q,p,o,n,m,l,k,j,i,h=this,g=null +a=A.y4(a,0,a.length) +s=!(h.b===a.length&&B.a.u(h.a,a)) +r=a==="file" +q=h.c +p=q>0?B.a.m(h.a,h.b+3,q):"" +o=h.ghH()?h.ge4():g +if(s)o=A.w6(o,a) +q=h.c +if(q>0)n=B.a.m(h.a,q,h.d) +else n=p.length!==0||o!=null||r?"":g +q=h.a +m=h.f +l=B.a.m(q,h.e,m) +if(!r)k=n!=null&&l.length!==0 +else k=!0 +if(k&&!B.a.u(l,"/"))l="/"+l +k=h.r +j=m0)return b +s=b.c +if(s>0){r=a.b +if(r<=0)return b +q=r===4 +if(q&&B.a.u(a.a,"file"))p=b.e!==b.f +else if(q&&B.a.u(a.a,"http"))p=!b.iR("80") +else p=!(r===5&&B.a.u(a.a,"https"))||!b.iR("443") +if(p){o=r+1 +return new A.cm(B.a.m(a.a,0,o)+B.a.D(b.a,c+1),r,s+o,b.d+o,b.e+o,b.f+o,b.r+o,a.w)}else return this.jz().eb(b)}n=b.e +c=b.f +if(n===c){s=b.r +if(c0?l:m +o=k-n +return new A.cm(B.a.m(a.a,0,k)+B.a.D(s,n),a.b,a.c,a.d,m,c+o,b.r+o,a.w)}j=a.e +i=a.f +if(j===i&&a.c>0){while(B.a.a6(s,"../",n))n+=3 +o=j-n+1 +return new A.cm(B.a.m(a.a,0,j)+"/"+B.a.D(s,n),a.b,a.c,a.d,j,c+o,b.r+o,a.w)}h=a.a +l=A.zW(this) +if(l>=0)g=l +else for(g=j;B.a.a6(h,"../",g);)g+=3 +f=0 +for(;;){e=n+3 +if(!(e<=c&&B.a.a6(s,"../",n)))break;++f +n=e}for(r=h.length,d="";i>g;){--i +if(!(i>=0&&i=0){s=!(q===4&&B.a.u(r.a,"file")) +q=s}else q=!1 +if(q)throw A.d(A.aw("Cannot extract a file path from a "+r.gaG()+" URI")) +q=r.f +s=r.a +if(q0?s.gbj():r,n=s.ghH()?s.ge4():r,m=s.a,l=s.f,k=B.a.m(m,s.e,l),j=s.r +l=l4294967296)throw A.d(A.b7("max must be in range 0 < max \u2264 2^32, was "+a)) +if(a>255)if(a>65535)s=a>16777215?4:3 +else s=2 +else s=1 +r=this.a +r.$flags&2&&A.ai(r,11) +r.setUint32(0,0,!1) +q=4-s +p=A.a4(Math.pow(256,s)) +for(o=a-1,n=(a&o)>>>0===0;;){crypto.getRandomValues(J.xt(B.lk.ghp(r),q,s)) +m=r.getUint32(0,!1) +if(n)return(m&o)>>>0 +l=m%a +if(m-l+a").a(a) +s=A.vl("subscription") +r=A.ci(new A.tI(s),null,!0,q.y[1]) +s.b=a.bv(new A.tJ(this,r),r.gdM(),r.gjN()) +return new A.ac(r,A.l(r).h("ac<1>"))}} +A.tI.prototype={ +$0(){return this.a.cb().U()}, +$S:3} +A.tJ.prototype={ +$1(a){var s,r,q,p=this.a.$ti +p.c.a(a) +try{this.b.j(0,p.y[1].a(a))}catch(q){p=A.R(q) +if(t.bs.b(p)){s=p +r=A.bt(q) +this.b.aJ(s,r)}else throw q}}, +$S(){return this.a.$ti.h("~(1)")}} +A.S.prototype={ +k(a,b){var s,r=this +if(!r.h3(b))return null +s=r.c.k(0,r.a.$1(r.$ti.h("S.K").a(b))) +return s==null?null:s.b}, +i(a,b,c){var s=this,r=s.$ti +r.h("S.K").a(b) +r.h("S.V").a(c) +if(!s.h3(b))return +s.c.i(0,s.a.$1(b),new A.V(b,c,r.h("V")))}, +C(a,b){this.$ti.h("h").a(b).aa(0,new A.oR(this))}, +ak(a,b,c){return this.c.ak(0,b,c)}, +ag(a){var s=this +if(!s.h3(a))return!1 +return s.c.ag(s.a.$1(s.$ti.h("S.K").a(a)))}, +gX(){var s=this.c,r=A.l(s).h("d4<1,2>"),q=this.$ti.h("V") +return A.d6(new A.d4(s,r),r.H(q).h("1(i.E)").a(new A.oS(this)),r.h("i.E"),q)}, +aa(a,b){this.c.aa(0,new A.oT(this,this.$ti.h("~(S.K,S.V)").a(b)))}, +gK(a){return this.c.a===0}, +gZ(a){return this.c.a!==0}, +gar(){var s=this.c,r=A.l(s).h("c2<2>"),q=this.$ti.h("S.K") +return A.d6(new A.c2(s,r),r.H(q).h("1(i.E)").a(new A.oU(this)),r.h("i.E"),q)}, +gn(a){return this.c.a}, +d4(a,b,c,d){return this.c.d4(0,new A.oV(this,this.$ti.H(c).H(d).h("V<1,2>(S.K,S.V)").a(b),c,d),c,d)}, +l(a){return A.rd(this)}, +h3(a){return this.$ti.h("S.K").b(a)}, +$ih:1} +A.oR.prototype={ +$2(a,b){var s=this.a,r=s.$ti +r.h("S.K").a(a) +r.h("S.V").a(b) +s.i(0,a,b) +return b}, +$S(){return this.a.$ti.h("~(S.K,S.V)")}} +A.oS.prototype={ +$1(a){var s=this.a.$ti,r=s.h("V>").a(a).b +return new A.V(r.a,r.b,s.h("V"))}, +$S(){return this.a.$ti.h("V(V>)")}} +A.oT.prototype={ +$2(a,b){var s=this.a.$ti +s.h("S.C").a(a) +s.h("V").a(b) +return this.b.$2(b.a,b.b)}, +$S(){return this.a.$ti.h("~(S.C,V)")}} +A.oU.prototype={ +$1(a){return this.a.$ti.h("V").a(a).a}, +$S(){return this.a.$ti.h("S.K(V)")}} +A.oV.prototype={ +$2(a,b){var s=this.a.$ti +s.h("S.C").a(a) +s.h("V").a(b) +return this.b.$2(b.a,b.b)}, +$S(){return this.a.$ti.H(this.c).H(this.d).h("V<1,2>(S.C,V)")}} +A.ow.prototype={ +cV(a2){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=this,c=a2.c,b=t.iX,a=J.kc(a2.gjR(),b),a0=a.$ti,a1=a0.h("bI") +a=A.N(new A.bI(new A.ae(a,a0.h("y(i.E)").a(new A.ox()),a0.h("ae")),a0.h("a(i.E)").a(new A.oy(d)),a1),a1.h("i.E")) +a.$flags=1 +a=c==null +s=a?A.cN(t.i):d.c.b6(c) +a0=t.iw +if(a)r=A.cN(a0) +else{t.cp.a(s) +r=A.cN(a0) +if(s.t(0,B.y))r.j(0,B.hi) +if(s.t(0,B.a8))r.j(0,B.hj) +if(s.t(0,B.Q))r.j(0,B.hk) +if(s.t(0,B.z)||s.t(0,B.A))r.j(0,B.hl) +if(s.t(0,B.B))r.j(0,B.hm) +if(s.t(0,B.aM))r.j(0,B.hn) +a=r.a +q=s.t(0,B.F)||s.t(0,B.aN)||s.t(0,B.bw) +if(a===0&&q)r.j(0,B.hh)}for(b=J.kc(a2.gjR(),b),a=J.aN(b.a),b=b.$ti,a1=new A.fa(a,b.h("fa<1>")),p=d.a,o=d.b,n=t.a,m=t.i,l=t.s,b=b.c,k=B.e;a1.q();){j=b.a(a.gA()) +i=j.a +if(i.length===0)continue +h=p.a4(i) +j=n.a(j.b) +g=new A.ez(A.cN(m),A.e([],l),B.e) +o.ek(h.toLowerCase(),j,g,0) +f=g.c +k=k.a>=f.a?k:f}b=a2.a +e=d.e.cV(new A.t8(b,c,p)) +return new A.ph(b,A.zr(s,m),A.zr(r,a0),e.a,e.b)}} +A.ox.prototype={ +$1(a){return t.iX.a(a).a.length!==0}, +$S:67} +A.oy.prototype={ +$1(a){return this.a.a.a4(t.iX.a(a).a)}, +$S:68} +A.ph.prototype={ +gkh(){var s=this.f.a,r=!1 +if(!(s.t(0,B.y)||s.t(0,B.B)))if(!s.t(0,B.a8))if(!s.t(0,B.Q))s=!(s.t(0,B.z)||s.t(0,B.A))&&!s.t(0,B.aM) +else s=r +else s=r +else s=r +return s}, +l(a){var s=this +return"CommandAnalysis(level: "+s.w.b+", capabilities: "+s.f.l(0)+", effects: "+s.r.l(0)+", findings: "+s.y.length+")"}} +A.im.prototype={ +R(){return"ChainOperator."+this.b}} +A.cx.prototype={ +R(){return"RedirectionType."+this.b}} +A.c0.prototype={ +cA(){return new A.dV(this.rl(),t.tM)}, +rl(){var s=this +return function(){var r=0,q=1,p=[],o,n,m +return function $async$cA(a,b,c){if(b===1){p.push(c) +r=q}for(;;)switch(r){case 0:r=2 +return a.b=s,1 +case 2:o=s.gbr(),n=o.length,m=0 +case 3:if(!(m")),r=r.c;s.q();){q=s.b +if(q==null)q=r.a(q) +if(q instanceof A.bc){this.m9(q,p) +continue}if(q instanceof A.bR){p.j(0,B.aN) +continue}if(q instanceof A.cK){p.j(0,B.Q) +continue}if(q instanceof A.bv){this.ma(q,p) +continue}if(q instanceof A.cQ||q instanceof A.bO||q instanceof A.el)continue}return p}, +m9(a,b){var s +t.iX.a(a) +t.cp.a(b) +s=a.a +if(s.length===0)return +b.C(0,this.b.pr(this.a.a4(s),t.a.a(a.b)).a)}, +ma(a,b){t.AX.a(a) +t.cp.a(b) +switch(a.a.a){case 0:case 1:case 4:case 5:case 7:case 8:if(!A.yI(a.b))b.j(0,B.y) +break +case 2:case 3:if(!A.yI(a.b))b.j(0,B.F) +break +case 6:break}}} +A.kJ.prototype={ +pr(a,b){var s,r,q,p +t.a.a(b) +s=A.cN(t.i) +r=A.e([],t.s) +q=new A.ez(s,r,B.e) +p=this.ek(a.toLowerCase(),b,q,0) +return new A.pm(s,q.c,p,r)}, +ek(a,b,c,d){var s,r,q,p,o,n,m=this +t.a.a(b) +s=m.a.k(0,a) +r=s==null +q=!r +if(q&&b.length!==0&&A.CV(s,b)){c.a.j(0,B.F) +c.cr('Informational invocation ("'+B.b.S(b," ")+'") prints metadata only.') +return d===0?s:null}if(q){c.a.C(0,t.gs.a(s.f)) +q=s.r +p=c.c +c.c=p.a>=q.a?p:q +m.o5(s,b,c)}if(B.b.ac(b,A.Hh()))c.a.j(0,B.aN) +if((r?null:s.z)!=null&&d<4){o=s.z +r=o.c +if(r.gZ(r)&&B.b.ac(b,r.gci(r)))c.a.j(0,B.F) +else{n=m.ph(o,b) +if(n!=null)m.ek(n.a,n.b,c,d+1)}}return d===0?s:null}, +o5(a,b,c){var s,r,q,p,o,n,m,l,k +t.a.a(b) +s=A.CU(b) +r=s==null?null:s.toLowerCase() +if(r!=null)for(s=a.x,q=s.length,p=t.gs,o=c.a,n=0;n=l.a?k:l +c.cr(m.d)}}for(s=a.y,q=s.length,p=t.gs,o=c.a,n=0;n=l.a?k:l +c.cr(m.d)}}s=a.Q +if(s!=null)s.$2(b,c)}, +ph(a,b){var s,r,q,p,o +t.a.a(b) +for(s=b.length,r=a.b,q=0;q=4?s:B.J +b.cr("Erases/reformats a disk or volume.")}}, +$S:17} +A.pI.prototype={ +$1(a){return!B.a.u(A.r(a),"-")}, +$S:1} +A.pJ.prototype={ +$0(){return""}, +$S:33} +A.kY.prototype={ +gX(){var s=A.N(A.ah(B.kJ,B.d9,B.K,B.d,B.n),t.Y) +B.b.C(s,A.ah(B.ju,B.d9,B.E,B.d,B.n)) +return s}, +$ia6:1} +A.l_.prototype={ +gX(){return A.ah(B.kp,B.iJ,B.dK,B.d,B.n)}, +$ia6:1} +A.l5.prototype={ +gX(){var s,r=A.N(A.ah(B.jV,B.ax,B.E,B.d,B.n),t.Y) +B.b.C(r,A.ah(B.k_,B.ax,B.az,B.d,B.n)) +B.b.C(r,A.ah(B.iM,B.ax,B.b2,B.d,B.n)) +r.push(new A.D("dd",B.K,B.e,B.d,B.j,B.i,null,new A.pU())) +for(s=0;s<2;++s)r.push(new A.D(B.ke[s],B.oj,B.e,B.d,B.j,B.i,null,null)) +r.push(B.hJ) +r.push(B.ho) +return r}, +$ia6:1} +A.pU.prototype={ +$2(a,b){var s +if(B.b.ac(t.a.a(a),new A.pT())){b.a.j(0,B.B) +s=b.c +b.c=s.a>=4?s:B.J +b.cr("Writes directly to a block device.")}}, +$S:17} +A.pT.prototype={ +$1(a){return B.a.u(A.r(a).toLowerCase(),"of=/dev/")}, +$S:1} +A.l7.prototype={ +gX(){return B.j1}, +$ia6:1} +A.wo.prototype={ +$1(a){A.Y(a) +return a!=null&&!B.a.u(a,"-")}, +$S:78} +A.wp.prototype={ +$0(){return null}, +$S:5} +A.wq.prototype={ +$1(a){A.r(a) +return a==="-f"||a==="--force"||B.a.u(a,"--force-with-lease")}, +$S:1} +A.l9.prototype={ +gX(){return A.ah(B.jd,B.iK,B.E,B.d,B.n)}, +$ia6:1} +A.lb.prototype={ +gX(){var s,r=null,q=A.e([],t.j) +for(s=0;s<3;++s)q.push(new A.D(B.kG[s],B.b3,B.e,B.d,B.ky,B.k7,r,r)) +q.push(B.ht) +q.push(B.hu) +for(s=0;s<6;++s)q.push(new A.D(B.jJ[s],B.dU,B.e,B.d,B.j,B.i,r,r)) +q.push(B.hG) +q.push(B.hI) +q.push(B.hL) +q.push(B.hV) +B.b.C(q,A.ah(B.jC,B.iI,B.T,B.d,B.n)) +return q}, +$ia6:1} +A.lE.prototype={ +gX(){var s,r=A.N(A.ah(B.jW,B.ax,B.E,B.d,B.n),t.Y) +for(s=0;s<3;++s)r.push(new A.D(B.k4[s],B.E,B.e,B.d,B.j,B.dh,null,null)) +r.push(B.hD) +return r}, +$ia6:1} +A.lL.prototype={ +gX(){var s,r=null,q=A.N(A.ah(B.jz,B.aT,B.S,B.d,B.n),t.Y) +for(s=0;s<2;++s)q.push(new A.D(B.jD[s],B.S,B.e,B.d,B.j,B.k1,r,r)) +for(s=0;s<2;++s)q.push(new A.D(B.kA[s],B.dR,B.e,B.d,B.j,B.i,r,r)) +for(s=0;s<2;++s)q.push(new A.D(B.kf[s],B.T,B.e,B.d,B.j,B.i,r,r)) +q.push(B.hY) +for(s=0;s<3;++s)q.push(new A.D(B.jy[s],B.T,B.e,B.d,B.j,B.iZ,r,r)) +for(s=0;s<21;++s)q.push(new A.D(B.kt[s],B.T,B.e,B.d,B.j,B.i,r,r)) +for(s=0;s<2;++s)q.push(new A.D(B.kv[s],B.dR,B.e,B.d,B.j,B.i,r,r)) +B.b.C(q,A.ah(B.jm,B.aT,B.S,B.d,B.n)) +for(s=0;s<2;++s)q.push(new A.D(B.kB[s],B.T,B.e,B.d,B.j,B.i,r,r)) +B.b.C(q,A.ah(B.kd,B.aT,B.T,B.d,B.n)) +q.push(B.hp) +q.push(B.hC) +B.b.C(q,A.ah(B.j3,B.aT,B.oc,B.d,B.n)) +q.push(B.hM) +for(s=0;s<4;++s)q.push(new A.D(B.k0[s],B.S,B.e,B.d,B.j,B.jv,r,r)) +return q}, +$ia6:1} +A.rl.prototype={ +$1(a){A.r(a) +return a==="-d"||a==="--data"||a==="-F"||a==="--form"||a==="-T"||a==="--upload-file"||a==="--data-binary"||a==="-X"||a==="--request"}, +$S:1} +A.rn.prototype={ +$1(a){return!B.a.u(A.r(a),"-")}, +$S:1} +A.rm.prototype={ +$1(a){A.r(a) +return a==="POST"||a==="PUT"||a==="PATCH"||a==="DELETE"||B.a.t(a,"=")||B.a.u(a,"@")}, +$S:1} +A.lV.prototype={ +gX(){var s,r=null,q=A.e([],t.j) +for(s=0;s<4;++s)q.push(new A.D(B.ki[s],B.X,B.e,B.d,B.jp,B.i,r,r)) +for(s=0;s<2;++s)q.push(new A.D(B.jY[s],B.X,B.e,B.d,B.aV,B.i,r,r)) +for(s=0;s<11;++s)q.push(new A.D(B.jl[s],B.X,B.e,B.d,B.aV,B.i,r,r)) +for(s=0;s<9;++s)q.push(new A.D(B.ku[s],B.X,B.e,B.d,B.kc,B.i,r,r)) +q.push(B.hX) +q.push(B.hz) +q.push(B.hv) +for(s=0;s<20;++s)q.push(new A.D(B.jq[s],B.X,B.e,B.d,B.je,B.i,r,r)) +return q}, +$ia6:1} +A.m9.prototype={ +gX(){var s,r=A.e([B.hR],t.j) +for(s=0;s<2;++s)r.push(new A.D(B.ko[s],B.ad,B.e,B.d,B.j,B.jX,null,null)) +B.b.C(r,A.ah(B.jb,B.bK,B.ad,B.d,B.n)) +B.b.C(r,A.ah(B.iO,B.bK,B.E,B.d,B.n)) +return r}, +$ia6:1} +A.mm.prototype={ +gX(){var s,r=A.N(A.ah(B.j9,B.a_,B.w,B.d,B.n),t.Y) +B.b.C(r,A.ah(B.kh,B.a_,B.w,B.dJ,B.n)) +B.b.C(r,A.ah(B.kx,B.a_,B.w,B.dJ,B.n)) +B.b.C(r,A.ah(B.kq,B.a_,B.w,B.bV,B.n)) +B.b.C(r,A.ah(B.kn,B.a_,B.w,B.dM,B.n)) +B.b.C(r,A.ah(B.jF,B.a_,B.w,B.bV,B.n)) +B.b.C(r,A.ah(B.k3,B.a_,B.w,B.nL,B.n)) +B.b.C(r,A.ah(B.jH,B.a_,B.w,B.nE,B.n)) +for(s=0;s<5;++s)r.push(new A.D(B.k2[s],B.ob,B.e,B.d,B.j,B.i,B.cc,null)) +for(s=0;s<8;++s)r.push(new A.D(B.k8[s],B.X,B.e,B.d,B.j,B.i,B.cc,null)) +r.push(B.hP) +r.push(B.hA) +r.push(B.hq) +return r}, +$ia6:1} +A.mw.prototype={ +gX(){var s,r=null,q=A.e([],t.j) +for(s=0;s<3;++s)q.push(new A.D(B.jB[s],B.a3,B.e,B.d,B.j,B.i,r,A.Jc())) +B.b.C(q,A.ah(B.jc,B.d6,B.a3,B.d,B.n)) +q.push(B.hH) +for(s=0;s<5;++s)q.push(new A.D(B.j4[s],B.oC,B.o,B.d,B.j,B.i,r,r)) +for(s=0;s<6;++s)q.push(new A.D(B.kw[s],B.bZ,B.o,B.d,B.j,B.i,r,r)) +q.push(B.hw) +q.push(B.hK) +q.push(B.hy) +q.push(new A.D("csrutil",B.a3,B.o,B.d,B.j,B.i,r,new A.u3())) +return q}, +$ia6:1} +A.u3.prototype={ +$2(a,b){var s +if(B.b.ac(t.a.a(a),new A.u2())){s=b.c +b.c=s.a>=4?s:B.J +b.cr("Disables System Integrity Protection.")}}, +$S:17} +A.u2.prototype={ +$1(a){return A.r(a).toLowerCase()==="disable"}, +$S:1} +A.wr.prototype={ +$1(a){A.r(a) +return a==="-R"||a==="-r"||a==="--recursive"}, +$S:1} +A.ws.prototype={ +$1(a){A.r(a) +return!B.a.u(a,"-")&&A.GH(a)}, +$S:1} +A.mL.prototype={ +gX(){var s,r=A.e([],t.j) +for(s=0;s<6;++s)r.push(new A.D(B.kK[s],B.E,B.e,B.d,B.kO,B.i,null,null)) +r.push(B.hF) +r.push(B.hS) +B.b.C(r,A.ah(B.kH,B.iH,B.K,B.d,B.n)) +return r}, +$ia6:1} +A.mO.prototype={ +gX(){var s=A.N(A.ah(B.kg,B.ax,B.E,B.d,B.bY),t.Y) +B.b.C(s,A.ah(B.kI,B.d6,B.a3,B.d,B.bY)) +B.b.C(s,A.ah(B.kL,B.bK,B.ad,B.d,B.bY)) +return s}, +$ia6:1} +A.cJ.prototype={ +R(){return"CommandEffect."+this.b}} +A.pM.prototype={} +A.po.prototype={ +fn(a,b){return A.El(b).fm(a)}} +A.xo.prototype={ +$1(a){var s,r,q +A.r(a) +s=B.a.aY(a,"/") +r=B.a.aY(a,"\\") +q=s>r?s:r +if(q<0||q===a.length-1)return a +return B.a.D(a,q+1)}, +$S:6} +A.xp.prototype={ +$1(a){var s +A.r(a) +s=A.O("\\.(exe|cmd|bat|com|ps1)$",!1).d0(a) +if(s==null)return a +return B.a.m(a,0,s.b.index)}, +$S:6} +A.xq.prototype={ +$1(a){var s,r,q +A.r(a) +s=A.O("^([A-Za-z]+?)[0-9][0-9.]*$",!0).d0(a) +if(s==null)return a +r=s.b +if(1>=r.length)return A.b(r,1) +q=r[1] +return B.oE.t(0,q.toLowerCase())?q:a}, +$S:6} +A.wy.prototype={ +$1(a){var s +A.r(a) +s=B.lb.k(0,a.toLowerCase()) +return s==null?a:s}, +$S:6} +A.iU.prototype={} +A.iV.prototype={ +a4(a){var s,r,q,p=B.a.G(a) +for(s=this.a,r=s.length,q=0;q=0))return A.b(b,o) +n=b[o] +if(n===" "||n==="\t"||n==="\n"||n==="\r"){p.$0();++o +continue}if(n==="\\"){f.a=!0 +m=o+1 +l=r.a +if(m=0))return A.b(r,s) +s=r[s]}else s=null +return s}, +bA(){var s,r,q,p,o,n,m,l=this,k=null,j=A.e([],t.qi) +A:for(s=l.a,r=s.length;q=l.c,q=0&&q":o=q+1 +n=o") +if(m!=null)B.b.j(j,m) +else{++l.c +B.b.j(j,new A.aW(B.aC,">&",q,B.m,B.k))}}else if((n?s[o]:k)===">"){B.b.j(j,new A.aW(B.bb,">>",q,B.m,B.k)) +l.c+=2}else{B.b.j(j,new A.aW(B.aC,">",q,B.m,B.k));++l.c}continue A +case"0":case"1":case"2":++q +if((q"){B.b.j(j,l.o4()) +continue A}B.b.j(j,l.jn()) +continue A +default:B.b.j(j,l.jn())}}return j}, +o4(){var s,r,q=this,p=q.c,o=q.a +if(!(p>=0&&p") +if(r!=null)return r;++q.c +return new A.aW(B.aC,s+">&",p,B.m,B.k)}if(q.cL(2)===">"){q.c+=3 +return new A.aW(B.bb,s+">>",p,B.m,B.k)}q.c+=2 +return new A.aW(B.aC,s+">",p,B.m,B.k)}, +jC(a,b){var s,r,q,p,o,n,m,l,k=this,j=null,i=k.cL(1) +if(i==="-"){s=k.cL(2) +if(s==null||A.zU(s)){k.c+=2 +return new A.aW(B.bc,b+"&-",a,B.m,B.k)}return j}if(!A.FK(i))return j +r=new A.T("") +s=k.a +q=s.length +p=1 +o="" +for(;;){n=k.c+p +m=n=0))return A.b(s,n) +l=s[n]}else l=j +if(l!=null){if(0>=l.length)return A.b(l,0) +l=l.charCodeAt(0)>=48&&l.charCodeAt(0)<=57}else l=!1 +if(!l)break +if(m){if(!(n>=0))return A.b(s,n) +n=s[n]}else n=j +n=o+A.u(n) +r.a=n;++p +o=n}s=k.cL(p) +if(!(s==null||A.zU(s)))return j +k.c+=p +return new A.aW(B.bc,b+"&"+r.l(0),a,B.m,B.k)}, +jn(){var s,r,q,p,o,n,m=this,l=m.c,k=new A.T(""),j=A.e([],t.yP),i=A.e([],t.r) +for(s=m.a,r=s.length;q=m.c,q=0&&q")break +if(p==="'"){++q +o=B.a.a_(s,"'",q) +if(o<0){k.a+=B.a.D(s,q) +B.b.j(m.b,new A.aV(B.u,"Unterminated quote",l)) +m.c=r +break}k.a+=B.a.m(s,q,o) +m.c=o+1 +continue}if(p==='"'){m.ot(k,j,i,l) +continue}if(p==="`"){n=q+1 +if(n=0&&q=0))return A.b(r,p) +n=r[p] +o=o.b.test(n)}else o=!1 +if(!o)break;++p}m=B.a.m(r,l.c+5,p) +if(m.length!==0)B.b.j(c,new A.bR(m)) +a.a+=B.a.m(r,l.c,p) +l.c=p +return}if(s!=null){q=$.BS() +q=q.b.test(s)}else q=!1 +if(q){p=l.c+1 +q=r.length +for(;;){if(p=0))return A.b(r,p) +n=r[p] +o=o.b.test(n)}else o=!1 +if(!o)break;++p}B.b.j(c,new A.bR(B.a.m(r,l.c+1,p))) +a.a+=B.a.m(r,l.c,p) +l.c=p +return}a.a+="$";++l.c}, +ov(a,b){var s,r,q,p,o,n,m=this +t.W.a(b) +s=m.c +r=s+1 +for(q=m.a,p=q.length,o=0;r=0))return A.b(q,r) +n=q[r] +if(n==="(")++o +else if(n===")"){--o +if(o===0)break}}if(o!==0){B.b.j(m.b,new A.aV(B.u,"Unterminated subexpression",s)) +m.is(B.a.D(q,m.c+2),b) +a.a+=B.a.D(q,m.c) +m.c=p +return}m.is(B.a.m(q,s+2,r),b) +p=r+1 +a.a+=B.a.m(q,m.c,p) +m.c=p}, +is(a,b){var s,r +t.W.a(b) +s=A.e([],t.C) +r=new A.jJ(new A.jK(a,s).bA(),s,0).d6() +B.b.j(b,new A.cK(r==null?B.cR:r))}} +A.jJ.prototype={ +d6(){var s,r,q,p,o,n,m,l=this,k=A.e([],t.J) +for(s=l.a,r=l.b;q=l.d,p=s.length,q=p +if(!o){if(!(q") +s=A.N(new A.a2(s,r.h("a(Q.E)").a(new A.vX()),q),q.h("Q.E")) +s.$flags=1 +m=s +return new A.bc(n,m,j,i,h,l.nV(n,m))}, +nV(a,b){var s,r,q,p +t.a.a(b) +s=this.c +if(s>=5)return null +r=A.yg(a,b) +if(r==null)return null +if(r>>>0!==r||r>=b.length)return A.b(b,r) +q=b[r] +if(q.length===0)return null +p=A.e([],t.C) +return new A.jJ(new A.jK(q,p).bA(),p,s+1).d6()}} +A.vX.prototype={ +$1(a){return t.a9.a(a).b}, +$S:61} +A.tH.prototype={ +fm(a){var s=A.e([],t.C),r=new A.jV(new A.jQ(a,s).bA(),s,0).hR() +if(r==null)B.b.j(s,B.aZ) +return new A.eH(a,this.gio(),r,s)}} +A.oL.prototype={ +gio(){return B.bz}} +A.rN.prototype={ +gio(){return B.i2}} +A.be.prototype={ +R(){return"_TokenType."+this.b}} +A.aJ.prototype={ +gbZ(){var s,r=this.a +A:{if(B.be===r){s=B.b0 +break A}if(B.bf===r){s=B.bS +break A}if(B.cr===r){s=B.dF +break A}if(B.cs===r){s=B.nb +break A}if(B.cm===r){s=B.nc +break A}if(B.cn===r){s=B.nd +break A}if(B.bd===r){s=B.ao +break A}if(B.aD===r){s=B.ne +break A}if(B.co===r){s=B.nf +break A}s=B.b0 +break A}return s}} +A.jQ.prototype={ +aL(a){var s=this.c+a,r=this.a,q=r.length +if(s=0))return A.b(r,s) +s=r[s]}else s=null +return s}, +bA(){var s,r,q,p,o,n=this,m=A.e([],t.mK) +for(s=n.a,r=s.length;q=n.c,q=0&&q=0&&p"){if(q.aL(2)===">"){q.c+=3 +return new A.aJ(B.co,"&>>",p,B.m,B.k)}q.c+=2 +return new A.aJ(B.aD,"&>",p,B.m,B.k)}++q.c +return new A.aJ(B.cp,"&",p,B.m,B.k) +case">":if(q.aL(1)==="&"){++q.c +r=q.js(p,">") +if(r!=null)return r;++q.c +return new A.aJ(B.aD,">&",p,B.m,B.k)}if(q.aL(1)===">"){q.c+=2 +return new A.aJ(B.bf,">>",p,B.m,B.k)}++q.c +return new A.aJ(B.be,">",p,B.m,B.k) +case"<":if(q.aL(1)==="<"){q.c+=2 +return new A.aJ(B.cs,"<<",p,B.m,B.k)}++q.c +return new A.aJ(B.cr,"<",p,B.m,B.k) +case"0":case"1":case"2":if(q.aL(1)===">")return q.oJ(p,s) +return null +default:return null}}, +oJ(a,b){var s,r,q,p=this +if(p.aL(2)==="&"){p.c+=2 +s=p.js(a,b+">") +if(s!=null)return s;++p.c +return new A.aJ(B.aD,b+">&",a,B.m,B.k)}r=b==="2" +if(p.aL(2)===">"){p.c+=3 +q=r?B.cn:B.bf +return new A.aJ(q,b+">>",a,B.m,B.k)}p.c+=2 +q=r?B.cm:B.be +return new A.aJ(q,b+">",a,B.m,B.k)}, +js(a,b){var s,r,q,p,o,n,m,l,k=this,j=null,i=k.aL(1) +if(i==null)return j +if(i==="-"){s=k.aL(2) +if(s==null||A.zV(s)){k.c+=2 +return new A.aJ(B.bd,b+"&-",a,B.m,B.k)}return j}if(!A.FM(i))return j +r=new A.T("") +s=k.a +q=s.length +p=1 +o="" +for(;;){n=k.c+p +m=n=0))return A.b(s,n) +l=s[n]}else l=j +if(l!=null){if(0>=l.length)return A.b(l,0) +l=l.charCodeAt(0)>=48&&l.charCodeAt(0)<=57}else l=!1 +if(!l)break +if(m){if(!(n>=0))return A.b(s,n) +n=s[n]}else n=j +n=o+A.u(n) +r.a=n;++p +o=n}s=k.aL(p) +if(!(s==null||A.zV(s)))return j +k.c+=p +return new A.aJ(B.bd,b+"&"+r.l(0),a,B.m,B.k)}, +oL(){var s,r,q,p,o,n,m=this,l=m.c,k=new A.T(""),j=A.e([],t.yP),i=A.e([],t.r) +for(s=m.a,r=s.length;q=m.c,q=0&&q")break +if(p==="'"){m.ou(k) +continue}if(p==='"'){m.oK(k,j,i) +continue}if(p==="\\"){o=q+1 +n=k.a +if(o=0&&p=0))return A.b(r,o) +n=r[o] +m=A.O("[A-Za-z0-9_]",!0) +n=m.b.test(n)}else n=!1 +if(!n)break;++o}B.b.j(c,new A.bR(B.a.m(r,q,o))) +a.a+=B.a.m(r,l.c,o) +l.c=o +return}a.a+="$";++l.c}, +or(a,b){var s,r,q,p,o,n,m=this +t.qL.a(b) +s=m.c +r=m.a +q=s+2 +p=B.a.a_(r,"}",q) +if(p<0){B.b.j(m.b,new A.aV(B.u,"Unterminated ${...} expansion",s)) +a.a+=B.a.D(r,m.c) +m.c=r.length +return}o=B.a.m(r,q,p) +n=A.O("^[A-Za-z_][A-Za-z0-9_]*",!0).l1(o) +if(n==null)n=o +if(n.length!==0)B.b.j(b,new A.bR(n)) +q=p+1 +a.a+=B.a.m(r,m.c,q) +m.c=q}, +os(a,b){var s,r,q,p,o,n,m=this +t.W.a(b) +s=m.c +r=s+1 +for(q=m.a,p=q.length,o=0;r=0))return A.b(q,r) +n=q[r] +if(n==="(")++o +else if(n===")"){--o +if(o===0)break}}if(o!==0){B.b.j(m.b,new A.aV(B.u,"Unterminated command substitution",s)) +m.ei(B.a.D(q,m.c+2),b) +a.a+=B.a.D(q,m.c) +m.c=p +return}m.ei(B.a.m(q,s+2,r),b) +p=r+1 +a.a+=B.a.m(q,m.c,p) +m.c=p}, +jk(a,b){var s,r,q,p,o=this +t.W.a(b) +s=o.c +r=o.a +q=s+1 +p=B.a.a_(r,"`",q) +if(p<0){B.b.j(o.b,new A.aV(B.u,"Unterminated back-tick substitution",s)) +o.ei(B.a.D(r,o.c+1),b) +a.a+=B.a.D(r,o.c) +o.c=r.length +return}o.ei(B.a.m(r,q,p),b) +q=p+1 +a.a+=B.a.m(r,o.c,q) +o.c=q}, +ei(a,b){var s,r +t.W.a(b) +s=A.e([],t.C) +r=new A.jV(new A.jQ(a,s).bA(),s,0).hR() +B.b.j(b,new A.cK(r==null?B.cR:r))}} +A.jV.prototype={ +hR(){var s,r,q,p,o,n,m,l=this,k=A.e([],t.J) +for(s=l.a,r=l.b;q=l.d,p=s.length,q=p +if(!o){if(!(q") +s=A.N(new A.a2(s,r.h("a(Q.E)").a(new A.w3()),q),q.h("Q.E")) +s.$flags=1 +l=s +return new A.bc(m,l,i,h,g,k.oI(m,l))}, +oI(a,b){var s,r,q,p +t.a.a(b) +s=this.c +if(s>=5)return null +r=A.yg(a,b) +if(r==null)return null +if(r>>>0!==r||r>=b.length)return A.b(b,r) +q=b[r] +if(q.length===0)return null +p=A.e([],t.C) +return new A.jV(new A.jQ(q,p).bA(),p,s+1).hR()}} +A.w3.prototype={ +$1(a){return t.to.a(a).b}, +$S:87} +A.v7.prototype={ +fm(a){var s=A.e([],t.C),r=new A.n6(new A.n7(a,s).bA(),s,0).d6() +if(r==null)B.b.j(s,B.aZ) +return new A.eH(a,B.bA,r,s)}} +A.cB.prototype={ +R(){return"_CmdTokenType."+this.b}} +A.b0.prototype={ +gbZ(){var s,r=this.a +A:{if(B.b8===r){s=B.bS +break A}if(B.ce===r){s=B.dF +break A}if(B.b9===r){s=B.ao +break A}s=B.b0 +break A}return s}} +A.n7.prototype={ +dJ(a){var s=this.c+a,r=this.a,q=r.length +if(s=0))return A.b(r,s) +s=r[s]}else s=null +return s}, +bA(){var s,r,q,p,o,n,m,l=this,k=null,j=A.e([],t.nT) +A:for(s=l.a,r=s.length;q=l.c,q=0&&q":o=q+1 +n=o") +if(m!=null)B.b.j(j,m) +else{++l.c +B.b.j(j,new A.b0(B.aB,">&",q,B.k))}}else if((n?s[o]:k)===">"){B.b.j(j,new A.b0(B.b8,">>",q,B.k)) +l.c+=2}else{B.b.j(j,new A.b0(B.aB,">",q,B.k));++l.c}continue A +case"<":B.b.j(j,new A.b0(B.ce,"<",q,B.k));++l.c +continue A +case"0":case"1":case"2":++q +if((q"){B.b.j(j,l.pg()) +continue A}B.b.j(j,l.jG()) +continue A +default:B.b.j(j,l.jG())}}return j}, +pg(){var s,r,q=this,p=q.c,o=q.a +if(!(p>=0&&p") +if(r!=null)return r;++q.c +return new A.b0(B.aB,s+">&",p,B.k)}if(q.dJ(2)===">"){q.c+=3 +return new A.b0(B.b8,s+">>",p,B.k)}q.c+=2 +return new A.b0(B.aB,s+">",p,B.k)}, +jH(a,b){var s,r,q,p,o,n,m,l,k=this,j=null,i=k.dJ(1) +if(i==="-"){s=k.dJ(2) +if(s==null||A.zI(s)){k.c+=2 +return new A.b0(B.b9,b+"&-",a,B.k)}return j}if(!A.Fr(i))return j +r=new A.T("") +s=k.a +q=s.length +p=1 +o="" +for(;;){n=k.c+p +m=n=0))return A.b(s,n) +l=s[n]}else l=j +if(l!=null){if(0>=l.length)return A.b(l,0) +l=l.charCodeAt(0)>=48&&l.charCodeAt(0)<=57}else l=!1 +if(!l)break +if(m){if(!(n>=0))return A.b(s,n) +n=s[n]}else n=j +n=o+A.u(n) +r.a=n;++p +o=n}s=k.dJ(p) +if(!(s==null||A.zI(s)))return j +k.c+=p +return new A.b0(B.b9,b+"&"+r.l(0),a,B.k)}, +jG(){var s,r,q,p,o,n=this,m=n.c,l=A.e([],t.r),k=n.a,j=k.length,i="" +for(;;){s=n.c +if(!(s=0&&s"||r==="<"){k=i +break}if(r==='"'){++s +q=B.a.a_(k,'"',s) +if(q<0){i+=B.a.D(k,s) +B.b.j(n.b,new A.aV(B.u,"Unterminated quote",m)) +n.c=j +k=i +break}i+=B.a.m(k,s,q) +n.c=q+1 +break A}if(r==="%"){p=s+1 +q=B.a.a_(k,"%",p) +if(q>s){o=B.a.m(k,p,q) +s=A.O("^[A-Za-z_][A-Za-z0-9_]*$",!0) +if(s.b.test(o)){B.b.j(l,new A.bR(o)) +s=q+1 +i+=B.a.m(k,n.c,s) +n.c=s +break A}}i+=r;++n.c +break A}i+=r +n.c=s+1}}return new A.b0(B.cd,k.charCodeAt(0)==0?k:k,m,l)}} +A.n6.prototype={ +d6(){var s,r,q,p,o,n,m,l=this,k=l.jF() +if(k==null)return null +for(s=l.a,r=t.J,q=t.U;p=l.d,o=s.length,p") +s=A.N(new A.a2(s,r.h("a(Q.E)").a(new A.vm()),q),q.h("Q.E")) +s.$flags=1 +l=s +return new A.bc(m,l,i,B.m,h,k.pf(m,l))}, +pf(a,b){var s,r,q,p +t.a.a(b) +s=this.c +if(s>=5)return null +r=A.yg(a,b) +if(r==null)return null +q=B.b.S(B.b.b2(b,r)," ") +if(q.length===0)return null +p=A.e([],t.C) +return new A.n6(new A.n7(q,p).bA(),p,s+1).d6()}} +A.vm.prototype={ +$1(a){return t.hb.a(a).b}, +$S:88} +A.dy.prototype={ +hZ(a,b,c){return new A.ek(a,b,A.e([new A.a9(b,c,this.gT(),null)],t.v))}} +A.m_.prototype={ +cZ(a){var s,r=new A.ek(B.as,a.w,B.aX) +for(s=0;s<3;++s)r=r.qk(B.jk[s].cZ(a)) +return r}, +gT(){return"default"}} +A.lx.prototype={ +gT(){return"length-limit"}, +cZ(a){var s=a.a.length +if(s<=8192)return B.cS +return this.hZ(B.by,B.q,"Command length ("+s+") exceeds the limit of 8192 characters.")}} +A.mg.prototype={ +gT(){return"risk-threshold"}, +cZ(a){var s,r=a.w,q=r.a +if(q>=4)s=B.aO +else s=q>=2?B.by:B.as +if(s===B.as)return new A.ek(B.as,r,B.aX) +q=s===B.aO?"meets the deny":"meets the review" +return this.hZ(s,r,'Overall risk level "'+r.b+'" '+q+" threshold.")}} +A.ml.prototype={ +gT(){return"shell-execution"}, +cZ(a){var s=a.y,r=A.U(s),q=r.h("ae<1>"),p=A.N(new A.ae(s,r.h("y(1)").a(new A.tF()),q),q.h("i.E")) +if(p.length===0)return B.cS +return this.hZ(B.by,B.b.hC(p,B.e,new A.tG(),t.lm),B.b.gI(p).b)}} +A.tF.prototype={ +$1(a){return t.V.a(a).c==="shell-execution"}, +$S:94} +A.tG.prototype={ +$2(a,b){var s +t.lm.a(a) +s=t.V.a(b).a +return a.a>=s.a?a:s}, +$S:95} +A.kA.prototype={ +b6(a){var s,r,q,p,o,n,m,l=A.e([],t.v) +for(s=a.gd3(),r=s.length,q=0;q=0)B.b.j(p,new A.a9(B.q,'Command substitution "$(...)" executes a nested command.',r,o)) +s=B.a.aW(q,"`") +if(s>=0)B.b.j(p,new A.a9(B.q,"Back-tick command substitution executes a nested command.",r,s)) +return p}} +A.kQ.prototype={ +b6(a){var s,r,q,p,o,n,m,l,k,j,i="Combined redirection",h=a.r +if(h===$){s=A.zq(a.a,!0) +a.r!==$&&A.i6("unquotedRaw") +a.r=s +h=s}r=A.e([],t.v) +q=new A.px(this,A.cN(t.N),r) +p=h.length +A:for(o=0;o"){m=o+2 +if(m"){q.$4("&>>",B.R,"Combined-append redirection",o) +o+=3}else{q.$4("&>",B.R,i,o) +o=m}continue A}break +case"|":if(l==="|"){q.$4("||",B.q,"Conditional-OR chaining",o) +o+=2 +continue A}q.$4("|",B.R,"Pipeline",o) +break +case";":q.$4(";",B.q,"Sequential chaining",o) +break +case">":if(l==="&"){m=o+2 +k=m=j)return A.b(k,0) +j=k.charCodeAt(0)>=48&&k.charCodeAt(0)<=57}else j=!1}else j=!0 +if(j){o=m +continue A}q.$4(">&",B.R,i,o) +o=m +continue A}if(l===">"){q.$4(">>",B.R,"Append redirection",o) +o+=2 +continue A}q.$4(">",B.R,"Output redirection",o) +break +case"<":if(l==="<"){q.$4("<<",B.R,"Here-document redirection",o) +o+=2 +continue A}q.$4("<",B.R,"Input redirection",o) +break}o=m}return r}} +A.px.prototype={ +$4(a,b,c,d){if(this.b.j(0,a))B.b.j(this.c,new A.a9(b,c+' operator "'+a+'" present.',"dangerous-operator",d))}, +$S:97} +A.kU.prototype={ +b6(a){var s,r,q,p,o,n,m,l,k,j=this,i="destructive-command",h=A.e([],t.v) +for(s=a.gd3(),r=s.length,q=t.s,p=0;p") +n=A.N(new A.ae(b,p.h("y(1)").a(new A.pC()),o),o.h("i.E")) +if(B.b.ac(n,A.It())){p=q?" with --no-preserve-root":"" +return new A.a9(B.J,l+a+'" targets a filesystem root or critical system path'+p+".",k,m)}if(s&&r)return new A.a9(B.o,'Recursive, forced deletion via "'+a+'" can remove entire directory trees.',k,m) +if(s)return new A.a9(B.o,'Recursive deletion via "'+a+'".',k,m) +return new A.a9(B.q,l+a+'" deletes files.',k,m)}} +A.pD.prototype={ +$1(a){return B.a.u(A.r(a).toLowerCase(),"of=/dev/")}, +$S:1} +A.pC.prototype={ +$1(a){return!B.a.u(A.r(a),"-")}, +$S:1} +A.vI.prototype={} +A.kZ.prototype={ +b6(a){var s,r,q,p,o,n=A.cN(t.N),m=a.c +if(m!=null)for(s=m.cA(),r=s.$ti,s=new A.dm(s.a(),r.h("dm<1>")),r=r.c;s.q();){q=s.b +if(q==null)q=r.a(q) +if(q instanceof A.bR)n.j(0,q.a)}if(n.a===0)for(s=$.Bt().dK(0,a.gfG()),s=new A.hF(s.a,s.b,s.c),r=t.he;s.q();){p=s.d +q=(p==null?r.a(p):p).b +if(0>=q.length)return A.b(q,0) +q=q[0] +q.toString +n.j(0,q)}if(n.a===0)return B.aX +o=A.N(n,n.$ti.c) +B.b.di(o) +return A.e([new A.a9(B.R,"Environment-variable expansion ("+B.b.S(o,", ")+").","env-expansion",null)],t.v)}} +A.lt.prototype={ +b6(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e=A.e([],t.v) +for(s=a.gd3(),r=s.length,q=a.d,p=this.a,o=t.a,n=t.i,m=t.s,l=0;l=1){f=h.length!==0?" ("+B.b.S(h,"; ")+")":"" +B.b.j(e,new A.a9(j,'Elevated-risk command "'+i+'"'+f+".","knowledge-risk",null))}}return e}} +A.lX.prototype={ +b6(a){var s,r,q,p,o,n,m,l,k,j,i="path-traversal",h=A.e([],t.v) +for(s=a.gd3(),r=s.length,q=!1,p=!1,o=0;o") +j=A.N(new A.a2(m,l.h("a(1)").a(new A.tC()),k),k.h("Q.E")) +if(B.b.ac(j,new A.tD()))B.b.j(g,new A.a9(B.J,'Obfuscated PowerShell via "-EncodedCommand" conceals the executed code.',h,i)) +else if(B.b.ac(j,new A.tE()))B.b.j(g,new A.a9(B.o,'Inline shell execution via "powershell -Command" runs an arbitrary command string.',h,i))}else{l=B.la.k(0,n) +l=l==null?i:l.ac(0,B.b.gci(m)) +if(l===!0)B.b.j(g,new A.a9(B.o,'Inline code execution via "'+n+'" runs an arbitrary code string.',h,i)) +else if(n==="deno"&&m.length!==0&&B.b.gI(m)==="eval")B.b.j(g,new A.a9(B.o,'Inline code execution via "deno eval".',h,i))}}return g}} +A.tA.prototype={ +$1(a){A.r(a) +return a==="-c"||a==="--command"}, +$S:1} +A.tB.prototype={ +$1(a){var s=A.r(a).toLowerCase() +return s==="/c"||s==="/k"}, +$S:1} +A.tC.prototype={ +$1(a){return A.r(a).toLowerCase()}, +$S:6} +A.tD.prototype={ +$1(a){A.r(a) +return B.dV.t(0,a)||B.a.u(a,"-encoded")}, +$S:1} +A.tE.prototype={ +$1(a){A.r(a) +return B.a.u(a,"-c")||a==="-command"}, +$S:1} +A.t9.prototype={} +A.mi.prototype={ +cV(a){var s,r,q,p,o,n=A.e([],t.v) +for(s=this.a,r=s.length,q=0;q=o.a?p:o}return new A.t9(p,A.cO(n,t.V))}} +A.t7.prototype={ +$2(a,b){var s,r,q,p=t.V +p.a(a) +p.a(b) +s=B.c.a3(b.a.a,a.a.a) +if(s!==0)return s +r=B.a.a3(a.c,b.c) +if(r!==0)return r +p=a.d +if(p==null)p=-1 +q=b.d +return B.c.a3(p,q==null?-1:q)}, +$S:99} +A.t8.prototype={ +gd3(){var s,r,q,p=this,o=p.e +if(o===$){s=p.c +if(s==null)r=null +else{q=t.tC +s=A.N(new A.bL(s.cA(),q),q.h("i.E")) +s.$flags=1 +s=s +r=s}if(r==null)r=B.jU +p.e!==$&&A.i6("invocations") +o=p.e=r}return o}, +gfG(){var s,r=this,q=r.w +if(q===$){s=A.zq(r.a,!1) +r.w!==$&&A.i6("singleUnquotedRaw") +r.w=s +q=s}return q}} +A.bK.prototype={} +A.a9.prototype={ +L(a,b){var s=this +if(b==null)return!1 +return b instanceof A.a9&&b.a===s.a&&b.b===s.b&&b.c===s.c&&b.d==s.d}, +gE(a){var s=this +return A.bo(s.a,s.b,s.c,s.d,B.f,B.f,B.f)}, +l(a){return"["+this.a.b+"] "+this.c+": "+this.b}} +A.bV.prototype={ +R(){return"SecurityLevel."+this.b}} +A.em.prototype={ +R(){return"CommandSyntax."+this.b}} +A.ip.prototype={ +R(){return"CommandDecision."+this.b}} +A.ek.prototype={ +qk(a){var s,r,q,p,o,n=t.V,m=A.N(this.c,n) +for(s=a.c,r=s.length,q=0;q=r.a?s:r +r=this.b +o=a.b +r=r.a>=o.a?r:o +return new A.ek(s,r,A.cO(m,n))}, +l(a){return"CommandResult("+this.a.b+", level: "+this.b.b+", findings: "+this.c.length+")"}} +A.kz.prototype={ +cR(a,b,c,d,e){return this.oy(a,b,t.km.a(c),d,e)}, +oy(a,b,c,d,e){var s=0,r=A.p(t.ey),q,p=this,o,n +var $async$cR=A.q(function(f,g){if(f===1)return A.m(g,r) +for(;;)switch(s){case 0:o=A.Ey(a,b) +o.r.C(0,c) +o.sdL(d) +n=A +s=3 +return A.f(p.af(o),$async$cR) +case 3:q=n.t3(g) +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$cR,r)}, +$iyJ:1} +A.ih.prototype={ +q_(){if(this.w)throw A.d(A.aC("Can't finalize a finalized Request.")) +this.w=!0 +return B.fb}, +l(a){return this.a+" "+this.b.l(0)}} +A.oI.prototype={ +$2(a,b){return A.r(a).toLowerCase()===A.r(b).toLowerCase()}, +$S:106} +A.oJ.prototype={ +$1(a){return B.a.gE(A.r(a).toLowerCase())}, +$S:108} +A.oK.prototype={ +ip(a,b,c,d,e,f,g){var s=this.b +if(s<100)throw A.d(A.as("Invalid status code "+s+".",null))}} +A.fG.prototype={ +rh(){var s=new A.v($.E,t.Dy),r=new A.W(s,t.sC),q=new A.jp(new A.oQ(r),new Uint8Array(1024)) +this.au(t.eU.a(q.gbh(q)),!0,q.gdM(),r.gpE()) +return s}} +A.oQ.prototype={ +$1(a){return this.a.V(new Uint8Array(A.c9(t.L.a(a))))}, +$S:9} +A.kD.prototype={ +l(a){var s=this.b.l(0) +return"ClientException: "+this.a+", uri="+s}, +$iaf:1} +A.me.prototype={ +ghz(){var s,r,q=this +if(q.gbN()==null||!q.gbN().c.a.ag("charset"))return q.x +s=q.gbN().c.a.k(0,"charset") +s.toString +r=A.yS(s) +return r==null?A.K(A.an('Unsupported encoding "'+s+'".',null,null)):r}, +sdL(a){var s,r,q=this,p=t.L.a(q.ghz().cX(a)) +q.lN() +q.y=A.Bi(p) +s=q.gbN() +if(s==null){p=t.N +q.sbN(A.rf("text","plain",A.G(["charset",q.ghz().gT()],p,p)))}else{p=q.gbN() +if(p!=null){r=p.a +if(r!=="text"){p=r+"/"+p.b +p=p==="application/xml"||p==="application/xml-external-parsed-entity"||p==="application/xml-dtd"||B.a.aA(p,"+xml")}else p=!0}else p=!1 +if(p&&!s.c.a.ag("charset")){p=t.N +q.sbN(s.pw(A.G(["charset",q.ghz().gT()],p,p)))}}}, +gbN(){var s=this.r.k(0,"content-type") +if(s==null)return null +return A.z7(s)}, +sbN(a){this.r.i(0,"content-type",a.l(0))}, +lN(){if(!this.w)return +throw A.d(A.aC("Can't modify a finalized Request."))}} +A.mf.prototype={ +gdL(){return A.wJ(A.wh(this.e)).b5(this.w)}} +A.mu.prototype={} +A.ij.prototype={} +A.fY.prototype={ +pw(a){var s,r +t.km.a(a) +s=t.N +r=A.z2(this.c,s,s) +r.C(0,a) +return A.rf(this.a,this.b,r)}, +l(a){var s=new A.T(""),r=this.a +s.a=r +r+="/" +s.a=r +s.a=r+this.b +r=this.c +r.a.aa(0,r.$ti.h("~(1,2)").a(new A.ri(s))) +r=s.a +return r.charCodeAt(0)==0?r:r}} +A.rg.prototype={ +$0(){var s,r,q,p,o,n,m,l,k,j=this.a,i=new A.tZ(null,j),h=$.Cb() +i.fE(h) +s=$.C9() +i.dU(s) +r=i.ghN().k(0,0) +r.toString +i.dU("/") +i.dU(s) +q=i.ghN().k(0,0) +q.toString +i.fE(h) +p=t.N +o=A.I(p,p) +for(;;){p=i.d=B.a.cq(";",j,i.c) +n=i.e=i.c +m=p!=null +p=m?i.e=i.c=p.gO():n +if(!m)break +p=i.d=h.cq(0,j,p) +i.e=i.c +if(p!=null)i.e=i.c=p.gO() +i.dU(s) +if(i.c!==i.e)i.d=null +p=i.d.k(0,0) +p.toString +i.dU("=") +n=i.d=s.cq(0,j,i.c) +l=i.e=i.c +m=n!=null +if(m){n=i.e=i.c=n.gO() +l=n}else n=l +if(m){if(n!==l)i.d=null +n=i.d.k(0,0) +n.toString +k=n}else k=A.Iy(i) +n=i.d=h.cq(0,j,i.c) +i.e=i.c +if(n!=null)i.e=i.c=n.gO() +o.i(0,p,k)}i.pX() +return A.rf(r,q,o)}, +$S:110} +A.ri.prototype={ +$2(a,b){var s,r,q +A.r(a) +A.r(b) +s=this.a +s.a+="; "+a+"=" +r=$.C4() +r=r.b.test(b) +q=s.a +if(r){s.a=q+'"' +r=A.Bf(b,$.BX(),t.tj.a(t.pj.a(new A.rh())),null) +s.a=(s.a+=r)+'"'}else s.a=q+b}, +$S:49} +A.rh.prototype={ +$1(a){return"\\"+A.u(a.k(0,0))}, +$S:34} +A.wK.prototype={ +$1(a){var s=a.k(0,1) +s.toString +return s}, +$S:34} +A.ke.prototype={ +fq(){if(this.a)return +this.a=!0 +var s=this.c +if((s.a.a&30)===0)s.bt()}} +A.e5.prototype={ +R(){return"AgentMode."+this.b}} +A.of.prototype={} +A.kg.prototype={} +A.fy.prototype={} +A.dx.prototype={ +R(){return"CommandConfirm."+this.b}} +A.cf.prototype={ +R(){return"PlanApproval."+this.b}} +A.og.prototype={} +A.ok.prototype={ +by(a,b,c){return this.qT(a,b,c)}, +qT(b3,b4,b5){var s=0,r=A.p(t.T),q,p=2,o=[],n=this,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2 +var $async$by=A.q(function(b6,b7){if(b6===1){o.push(b7) +s=p}for(;;)switch(s){case 0:a9={} +b0=b4 +b1=A.e([A.xz(n.oV(b5)),A.xA(b3)],t.wb) +a9.a=null +n.Q=n.z=n.y=!1 +n.as=B.cB +n.at=0 +g=n.ax +f=g.b +g.a=f==null?$.hj.$0():f +g.b1() +n.fZ() +g=$.bh() +m=g+"[31mai: aborted."+g+"[0m" +g=n.a,f=t.y,e=t.AW,d=n.d,c=n.w.a,b=0 +case 3:if(!(b<24)){s=5 +break}s=6 +return A.f(n.cD(b0),$async$by) +case 6:if(b7){q=n.cE(m) +s=1 +break}a=n.o_(b5,a9.a) +l=d.hP(a) +n.nd(a) +k=null +p=8 +j=g.aM(b1,l,$.Co) +s=11 +return A.f(A.Dq(A.e([j.aZ(new A.on(),f),b0.c.a.aZ(new A.oo(),f)],e),f),$async$by) +case 11:i=b7 +s=!i?12:13 +break +case 12:s=14 +return A.f(n.cD(b0),$async$by) +case 14:if(b7){g=n.cE(m) +q=g +s=1 +break}case 13:s=15 +return A.f(j,$async$by) +case 15:k=b7 +p=2 +s=10 +break +case 8:p=7 +b2=o.pop() +g=A.R(b2) +if(g instanceof A.dr){h=g +q=n.cE("ai: provider error: "+h.a) +s=1 +break}else throw b2 +s=10 +break +case 7:s=2 +break +case 10:k.toString +a1=n.as +a2=k.d +n.as=new A.e8(a1.a+a2.a,a1.b+a2.b,a1.c+a2.c,a1.d+a2.d);++n.at +a1=k.a +a3=a1==null?null:B.a.G(a1) +J.fw(b1,new A.ba(B.bj,k.a,k.b,null)) +if(a3==null||a3.length===0)a4=null +else if(a===B.aE){a1=$.bh() +a1=a1+"[32m"+a3+a1+"[0m" +a4=a1}else{a1=$.bh() +a1=a1+"[36m"+a3+a1+"[0m" +a4=a1}s=k.b.length===0?16:17 +break +case 16:c.$1("") +if(a4!=null)c.$1(a4) +n.jL() +s=18 +return A.f(n.eJ(),$async$by) +case 18:a5=b7 +if(a5==null){n.fZ() +q=a3 +s=1 +break}J.fw(b1,new A.ba(B.bi,a5,B.ab,null)) +a9.a=null +n.z=n.y=!1 +b=-1 +s=4 +break +case 17:if(a4!=null)c.$1(a4) +a1=k.b,a2=a1.length,a6=!1,a7=0 +case 19:if(!(a70?" \xb7 cached "+A.om(o):"" +n=A.e([q+" tokens (in "+s+" \xb7 out "+p+o+")"],t.s) +s=a.d +if(s>0)B.b.j(n,""+B.p.cv(r*1000/s)+" tok/s") +s=b===1?"request":"requests" +B.b.j(n,""+b+" "+s) +B.b.j(n,B.p.i5(B.c.W(c.a,1000)/1000,1)+"s") +return"ai: "+B.b.S(n," \xb7 ")}, +eJ(){var s=0,r=A.p(t.T),q,p=this,o,n,m +var $async$eJ=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:m=p.w.r +if(m==null){q=null +s=1 +break}s=3 +return A.f(m.$0(),$async$eJ) +case 3:o=b +n=o==null?null:J.e1(o) +q=n==null||n.length===0?null:n +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$eJ,r)}, +o0(){var s,r,q=this.w,p=q.f.$0() +if(p==null)return +q=q.a +q.$1("") +s=B.a.aQ("\u254c",p.length) +r=$.bh() +q.$1(r+"[35m"+s+r+"[0m")}, +cD(a){var s=0,r=A.p(t.y),q,p=this,o +var $async$cD=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:if(!a.a){q=!1 +s=1 +break}s=!a.b?3:4 +break +case 3:o=$.bh() +s=5 +return A.f(p.w.b.$1(o+"[35mAbort the AI agent? [y/N] "+o+"[0m"),$async$cD) +case 5:if(!c){a.a=!1 +a.c=new A.W(new A.v($.E,t.D),t.h) +q=!1 +s=1 +break}a.b=!0 +case 4:q=!0 +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$cD,r)}, +o_(a,b){if(a===B.a6&&b!=null&&b!==B.b_||this.y)return B.aE +return B.cv}, +nd(a){var s,r,q=this +if(a!==B.aE||q.Q)return +s=q.d +r=s.hP(B.aE) +if(r===s.hP(B.cv))return +q.Q=!0 +s=$.bh() +q.w.a.$1(s+"[32m"+("ai: switching to executor model ("+r+")")+s+"[0m")}, +h1(a,b,c,d){return this.mS(a,b,t.oM.a(c),d)}, +mS(a,b,c,d){var s=0,r=A.p(t.bc),q,p=this,o +var $async$h1=A.q(function(e,f){if(e===1)return A.m(f,r) +for(;;)A:switch(s){case 0:o=a.b +switch(o){case"present_plan":q=p.dw(a,b,c) +s=1 +break A +case"run_command":q=p.dz(a,b,d) +s=1 +break A +default:q=new A.cn(new A.bu(a.a,o,"Unknown tool: "+o,!0),!1) +s=1 +break A}case 1:return A.n(q,r)}}) +return A.o($async$h1,r)}, +dw(a,b,c){return this.mQ(a,b,t.oM.a(c))}, +mQ(a,b,c){var s=0,r=A.p(t.bc),q,p=this,o,n,m,l,k,j,i,h,g,f,e +var $async$dw=A.q(function(d,a0){if(d===1)return A.m(a0,r) +for(;;)switch(s){case 0:e=p.nW(a.c) +p.o0() +o=e.a +if(o!=null&&o.length!==0){n=$.bh() +p.w.a.$1(n+"[36m"+("Plan: "+o)+n+"[0m")}for(o=e.b,n=p.w,m=n.a,l=0;l") +return A.bx(new A.a2(q,s.h("a(1)").a(new A.ol()),r),0,A.dq(3,"count",t.S),r.h("Q.E")).S(0,"; ")}, +nW(a){var s,r,q,p,o,n,m +t.G.a(a) +s=a.k(0,"steps") +r=A.e([],t.us) +if(t._.b(s))for(q=J.aN(s),p=t.f;q.q();){o=q.gA() +if(p.b(o)){n=A.Y(o.k(0,"command")) +m=n==null?null:B.a.G(n) +if(m==null||m.length===0)continue +n=A.Y(o.k(0,"explanation")) +B.b.j(r,new A.kg(m,n==null?null:B.a.G(n)))}}q=A.Y(a.k(0,"summary")) +return new A.fy(q==null?null:B.a.G(q),r)}, +oV(a){var s,r=this.r,q=r.d,p=q==null?"":"\nWorking directory: "+q +switch(a.a){case 0:q="MODE: standard. Run one command at a time with run_command. The user confirms each command before it runs; if they decline, adapt." +break +case 1:q="MODE: plan. First investigate the node with read-only run_command probes (e.g. detect the OS/distro, package manager, and whether the target is already present). Then call present_plan with the full ordered list of commands. Only after the user approves do you run the mutating steps with run_command. If a step fails or behaves unexpectedly, stop, fix the plan, and call present_plan again for re-approval before resuming. A re-presented plan CONTINUES from the failed step: the steps already executed (and their results) are in the conversation above \u2014 do not repeat ones that already succeeded; present only the fix and the remaining steps." +break +case 2:q="MODE: auto. Investigate, then execute the necessary commands with run_command without asking for confirmation. Be careful and idempotent; dangerous commands are still auto-blocked." +break +default:q=null}s=this.e +s=s==null||B.a.G(s).length===0?"":"\n- Always write every user-facing message (prose, plans, explanations and the final summary) in "+B.a.G(s)+". Keep shell commands, flags, paths and command output unchanged." +return"You are an AI operator embedded in OmnyShell, controlling a remote node through a non-interactive shell. Accomplish the user's goal by running commands.\n\nNode:\n OS: "+r.a+"\n Arch: "+r.b+"\n Hostname: "+r.c+"\n Shell syntax: "+this.f.b+p+"\n\nRules:\n- Use the run_command tool to inspect the node and to make changes; never assume facts you can verify with a command.\n- No TTY is attached: always use non-interactive flags (e.g. apt-get -y, DEBIAN_FRONTEND=noninteractive) and never launch interactive editors or pagers.\n- A security layer (command_shield) auto-blocks destructive/critical commands; if a command is blocked, do not retry it \u2014 choose a safer approach.\n- Run one command per run_command call. Check exit codes; on failure, diagnose before continuing.\n- If a command fails (non-zero exit) or returns output you did not expect, do not push ahead with the original plan: investigate the cause, then ADJUST your approach. In plan mode, call present_plan again with the corrected plan and wait for the user to re-approve before running further changes. Treat the new plan as a CONTINUATION from the point of failure: the commands already run in this conversation, and their results, are your starting state \u2014 do not re-run steps that already succeeded (they are done and may not be idempotent); plan only the fix and the steps still remaining.\n- When the goal is achieved (or cannot be), reply with a brief plain-text summary and no tool call."+s+"\n\n"+q+"\n"}} +A.on.prototype={ +$1(a){t.mL.a(a) +return!0}, +$S:122} +A.oo.prototype={ +$1(a){return!1}, +$S:124} +A.op.prototype={ +$1(a){return this.a.a=a}, +$S:128} +A.ol.prototype={ +$1(a){return t.V.a(a).b}, +$S:30} +A.cn.prototype={} +A.kh.prototype={} +A.kl.prototype={} +A.kf.prototype={ +R(){return"AgentPhase."+this.b}} +A.ia.prototype={ +R(){return"AiProviderKind."+this.b}} +A.i8.prototype={ +hP(a){var s,r=this +switch(a.a){case 0:s=r.c +if(s==null)s=r.b +break +case 1:s=r.d +if(s==null)s=r.b +break +default:s=null}return s}} +A.iq.prototype={} +A.fP.prototype={ +af(a){var s=0,r=A.p(t.Cj),q,p=this,o,n,m,l,k,j,i +var $async$af=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:a.l4() +o=t.L +s=3 +return A.f(B.l.pJ(new A.fG(A.zu(a.y,o))),$async$af) +case 3:n=c +m=a.b +l=m.l(0) +k=t.N +s=4 +return A.f(p.a.qH(n,p.b,A.z2(a.r,k,k),a.a,p.c,l),$async$af) +case 4:j=c +l=j.e +if(l!=null)throw A.d(new A.kD(l,m)) +i=B.r.Y(j.d) +o=A.zu(i,o) +m=j.b +l=i.length +k=j.c +o=new A.mu(A.Jf(o),a,m,null,l,k,!1,!0) +o.ip(m,l,k,!1,!0,null,a) +q=o +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$af,r)}} +A.fA.prototype={ +R(){return"AiRole."+this.b}} +A.ba.prototype={} +A.cc.prototype={} +A.fC.prototype={} +A.bu.prototype={} +A.fB.prototype={ +R(){return"AiStopReason."+this.b}} +A.e8.prototype={} +A.ds.prototype={} +A.dr.prototype={ +l(a){var s=this.b,r=this.a +return s==null?"AiProviderException: "+r:"AiProviderException("+A.u(s)+"): "+r}, +$iaf:1} +A.kn.prototype={ +aM(a,b,c){return this.px(t.ei.a(a),b,t.hr.a(c))}, +px(b4,b5,b6){var s=0,r=A.p(t.mL),q,p=2,o=[],n=[],m=this,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3 +var $async$aM=A.q(function(b7,b8){if(b7===1){o.push(b8) +s=p}for(;;)switch(s){case 0:b0=A.U(b4) +b1=b0.h("bI<1,a>") +b2=new A.ae(new A.bI(new A.ae(b4,b0.h("y(1)").a(new A.oA()),b0.h("ae<1>")),b0.h("a(1)").a(new A.oB()),b1),b1.h("y(i.E)").a(new A.oC()),b1.h("ae")).S(0,"\n\n") +b1=t.N +b0=t.X +h=A.I(b1,b0) +h.i(0,"model",b5==null?m.a.b:b5) +h.i(0,"max_tokens",4096) +if(b2.length!==0)h.i(0,"system",b2) +if(b6.length!==0){g=A.e([],t.rq) +for(f=b6.length,e=t.K,d=0;d") +b3=new A.ae(new A.bI(new A.ae(b5,b1.h("y(1)").a(new A.q2()),b1.h("ae<1>")),b1.h("a(1)").a(new A.q3()),b2),b2.h("y(i.E)").a(new A.q4()),b2.h("ae")).S(0,"\n\n") +b2=t.N +b1=t.X +h=A.I(b2,b1) +if(b3.length!==0)h.i(0,"system_instruction",A.G(["parts",A.e([A.G(["text",b3],b2,b2)],t.A7)],b2,t.rW)) +h.i(0,"contents",m.p0(b5)) +if(b7.length!==0){g=A.e([],t.rq) +for(f=b7.length,e=t.K,d=0;d1?a5[1]:null) +if(c==null){a4.w.$1("ai: usage: :ai mode ") +s=1 +break}m.r=c +m.e.$1(c) +a4.w.$1("ai: mode set to "+c.b) +s=1 +break}if(g==="lang"||g==="language"){if(a5.length<2){f=m.w +if(f==null)f="(model default)" +a4.w.$1("ai: language is "+f) +s=1 +break}b=B.a.G(B.b.S(B.b.b2(a5,1)," ")) +a=A.Cs(b) +f=a?null:b +m.w=f +m.f.$1(f) +f=a?"ai: language reset to the model default":"ai: language set to "+A.u(m.w) +a4.w.$1(f) +s=1 +break}l=m.r +k=m.w +for(a0=a5;a0.length!==0;){a1=m.ne(B.b.gI(a0)) +if(a1!=null){l=a1 +a0=B.b.b2(a0,1) +continue}if((B.b.gI(a0)==="--lang"||B.b.gI(a0)==="--language")&&a0.length>=2){if(1>=a0.length){q=A.b(a0,1) +s=1 +break A}a2=a0[1] +a3=B.a.G(a2).toLowerCase() +k=a3==="off"||a3==="none"||a3==="default"?null:a2 +a0=B.b.b2(a0,2) +continue}break}j=B.a.G(B.b.S(a0," ")) +if(J.aE(j)===0){a4.w.$1("ai: no prompt given") +s=1 +break}i=new A.ke(new A.W(new A.v($.E,t.D),t.h)) +f=a4.at +f.$1(i.gqP()) +p=3 +h=m.lK(a4,l,i,k) +s=6 +return A.f(h.by(j,i,l),$async$B) +case 6:n.push(5) +s=4 +break +case 3:n=[2] +case 4:p=2 +f.$1(null) +s=n.pop() +break +case 5:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$B,r)}, +ne(a){var s +A:{if("--standard"===a){s=B.ct +break A}if("--plan"===a){s=B.a6 +break A}if("--auto"===a){s=B.cu +break A}s=null +break A}return s}, +lK(a,b,c,d){var s=this,r=a.b.d,q=s.oU(a.e),p=a.y.$0(),o=a.as,n=o!=null?new A.nw(o):new A.n5(a) +$.i7() +return new A.ok(s.b,n,s.c,s.a,d,q,new A.of(r.a,r.b,r.d,p),new A.og(a.z,new A.oq(a,c),new A.or(a,c),new A.os(s,a,c),new A.ot(s,a),a.ax,new A.ou(s,a)),s.d,B.cB,new A.hu())}, +oU(a){var s +switch(a.a){case 0:s=B.bz +break +case 1:s=B.bB +break +case 2:s=B.bA +break +default:s=null}return s}} +A.oq.prototype={ +$1(a){return this.kE(A.r(a))}, +kE(a){var s=0,r=A.p(t.y),q,p=this,o,n,m +var $async$$1=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:m=J +s=3 +return A.f(p.a.x.$1(a),$async$$1) +case 3:n=m.e1(c).toLowerCase() +if(n==="abort"||n==="q"){o=p.b +o.b=!0 +o.fq() +q=!1 +s=1 +break}q=n==="y"||n==="yes" +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$$1,r)}, +$S:152} +A.or.prototype={ +$1(a){var s=0,r=A.p(t.k4),q,p=this,o,n,m +var $async$$1=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:m=J +s=3 +return A.f(p.a.x.$1(a),$async$$1) +case 3:n=m.e1(c).toLowerCase() +if(n==="abort"||n==="q"){o=p.b +o.b=!0 +o.fq() +q=B.bx +s=1 +break}if(n==="?"||n==="explain"){q=B.cQ +s=1 +break}q=n==="y"||n==="yes"?B.cP:B.bx +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$$1,r)}, +$S:160} +A.os.prototype={ +$1(a){return this.kD(t.DT.a(a))}, +kD(a){var s=0,r=A.p(t.bT),q,p=this,o,n,m +var $async$$1=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:o=$.bh() +m=J +s=3 +return A.f(p.b.x.$1(o+"[35mApprove plan? [a]ll / [s]tep-by-step / [t]alk / [N]o / [q]=abort: "+o+"[0m"),$async$$1) +case 3:n=m.e1(c).toLowerCase() +if(n==="abort"||n==="q"){o=p.c +o.b=!0 +o.fq() +q=B.b_ +s=1 +break}A:{if("a"===n||"all"===n){o=B.du +break A}if("s"===n||"step"===n){o=B.dv +break A}if("t"===n||"talk"===n){o=B.dw +break A}o=B.b_ +break A}q=o +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$$1,r)}, +$S:161} +A.ot.prototype={ +$0(){var s=0,r=A.p(t.N),q,p=this,o,n +var $async$$0=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:o=$.bh() +n=J +s=3 +return A.f(p.b.x.$1(o+"[35mNotes for the agent: "+o+"[0m"),$async$$0) +case 3:q=n.e1(b) +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$$0,r)}, +$S:56} +A.ou.prototype={ +$0(){var s=0,r=A.p(t.N),q,p=this,o,n +var $async$$0=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:o=$.bh() +n=J +s=3 +return A.f(p.b.x.$1(o+"[35mChat to continue, or [Enter] to end the agent: "+o+"[0m"),$async$$0) +case 3:q=n.e1(b) +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$$0,r)}, +$S:56} +A.nw.prototype={ +gjZ(){return!0}, +c0(a){var s=0,r=A.p(t.pi),q,p=this,o,n +var $async$c0=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:s=3 +return A.f(p.a.$1(a),$async$c0) +case 3:o=c +n=o.a +if(n==null)n=0 +q=new A.iq(n,o.b,"") +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$c0,r)}, +$ixw:1} +A.n5.prototype={ +gjZ(){return!1}, +c0(a){var s=0,r=A.p(t.pi),q,p=this,o,n,m,l +var $async$c0=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:n=p.a +m=n.gc_() +l=n.d +l=l==null?null:l.y +s=3 +return A.f(m.k5(a,n.b.a.a,l),$async$c0) +case 3:o=c +q=new A.iq(o.a,B.l.aK(o.b,!0),B.l.aK(o.c,!0)) +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$c0,r)}, +$ixw:1} +A.l2.prototype={ +gdk(){return B.l.aK(this.c,!0)}} +A.d0.prototype={} +A.f1.prototype={ +gig(){var s=this.a +return s.length<=8?s:B.a.m(s,0,8)}} +A.f0.prototype={} +A.cd.prototype={} +A.kX.prototype={} +A.d9.prototype={} +A.cX.prototype={} +A.p0.prototype={} +A.kE.prototype={ +bG(){var s=0,r=A.p(t.H),q=1,p=[],o=this,n,m,l,k,j,i,h,g +var $async$bG=A.q(function(a,b){if(a===1){p.push(b) +s=q}for(;;)switch(s){case 0:h=new A.v($.E,t.D) +o.f=new A.W(h,t.h) +n=A.Jh() +m=null +q=3 +s=6 +return A.f(n.$1(o.a.a),$async$bG) +case 6:m=b +q=1 +s=5 +break +case 3:q=2 +g=p.pop() +l=A.R(g) +h=A.u(l) +throw A.d(new A.dN("transport_error","Failed to connect to Hub: "+h)) +s=5 +break +case 2:s=1 +break +case 5:o.b=m +j=A.CG(m,1) +o.c=j +i=j.c +o.d=new A.aA(i,A.l(i).h("aA<1>")).qh(o.gnt(),!1,o.gnv()) +m.d.a.aZ(new A.p3(o),t.H) +s=7 +return A.f(h,$async$bG) +case 7:return A.n(null,r) +case 1:return A.m(p.at(-1),r)}}) +return A.o($async$bG,r)}, +dA(a){return this.nu(t.An.a(a))}, +nu(a){var s=0,r=A.p(t.H),q=this,p,o,n,m,l,k,j,i,h,g,f,e,d,c +var $async$dA=A.q(function(b,a0){if(b===1)return A.m(a0,r) +for(;;)switch(s){case 0:p=a instanceof A.dA +o=p?a:null +s=p?3:4 +break +case 3:s=5 +return A.f(q.eC(o),$async$dA) +case 5:s=2 +break +case 4:p=a instanceof A.ec +n=p?a:null +if(p){m=B.a.G(n.a) +if(m.length===0)A.K(B.mQ) +p=n.b +l=n.c +q.e=new A.m6(new A.m7(m),p,A.DN(l,A.U(l).c)) +p=q.f +if(p!=null&&(p.a.a&30)===0)p.bt() +s=2 +break}p=a instanceof A.eb +k=p?a:null +if(p){p=q.f +if(p!=null&&(p.a.a&30)===0)p.a7(new A.ie("auth_failed",k.b)) +s=2 +break}p=a instanceof A.eC +j=p?a:null +if(p){p=q.r +if(!p.gK(0))p.qL().V(j.a) +s=2 +break}p=a instanceof A.eK +i=p?a:null +if(p){h=q.w.a5(0,i.a) +if(h!=null)h.V(new A.bk(Date.now(),0,!1).av().dR(i.b)) +s=2 +break}p=a instanceof A.er +g=p?a:null +if(p){p=q.x.a5(0,g.a) +if(p!=null)p.V(g.b) +s=2 +break}p=a instanceof A.eS +g=p?a:null +if(p){p=q.Q.a5(0,g.a) +if(p!=null){l=g.b +f=g.c +e=g.d +if(e.length===0)e=new Uint8Array(0) +else e=B.ff.Y(e) +p.V(new A.d9(l,f,e,g.e))}s=2 +break}p=a instanceof A.es +g=p?a:null +if(p){p=q.as.a5(0,g.a) +if(p!=null)p.V(new A.kX()) +s=2 +break}p=a instanceof A.ep +g=p?a:null +if(p){p=q.y.a5(0,g.a) +if(p!=null)p.V(new A.d0(g.b,g.c)) +s=2 +break}p=a instanceof A.e4 +g=p?a:null +if(p){p=q.z.a5(0,g.a) +if(p!=null)p.V(new A.cX(g.b,g.c,g.d)) +s=2 +break}p=a instanceof A.f5 +g=p?a:null +if(p){d=q.at.a5(0,g.a) +if(d!=null)d.a.V(new A.f1(g.b,g.c,g.d,d.c,g.e)) +s=2 +break}p=a instanceof A.f6 +g=p?a:null +if(p){p=q.at.a5(0,g.a) +if(p!=null){p=p.a +l=g.c +f=g.b +p.a7(new A.mD(f,l))}s=2 +break}p=a instanceof A.f3 +g=p?a:null +if(p){p=q.ax.a5(0,g.a) +if(p!=null)p.V(g.b) +s=2 +break}p=a instanceof A.f_ +g=p?a:null +if(p){p=q.ay.a5(0,g.a) +if(p!=null)p.V(new A.f0(g.b,g.c)) +s=2 +break}p=a instanceof A.e7 +g=p?a:null +if(p){p=q.ch.a5(0,g.a) +if(p!=null)p.V(new A.cd(g.b,g.c,g.d,g.e,g.f,g.r,g.w,g.x,g.y)) +s=2 +break}p=a instanceof A.cv +g=p?a:null +if(p){p=q.CW.a5(0,g.a) +if(p!=null)p.V(g) +s=2 +break}p=a instanceof A.eD +c=p?a:null +s=p?6:7 +break +case 6:s=8 +return A.f(q.dC(c),$async$dA) +case 8:s=2 +break +case 7:s=2 +break +case 2:return A.n(null,r)}}) +return A.o($async$dA,r)}, +eC(a){var s=0,r=A.p(t.H),q=this,p,o +var $async$eC=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:o=q.b +if(o!=null)o.af(new A.aL(new A.dA("client",1,1,null,A.G(["agent","omnyshell-client"],t.N,t.z)))) +o=a.d +if(o==null)o="" +s=2 +return A.f(q.a.b.hu(o),$async$eC) +case 2:p=c +o=q.b +if(o!=null)o.af(new A.aL(p)) +return A.n(null,r)}}) +return A.o($async$eC,r)}, +eO(a,b,c,d,e){return e.h("H<0>").a(a).kw(c,new A.p1(t.Q.a(b),d))}, +dF(a,b,c){return this.eO(a,b,B.cY,"the Hub",c)}, +eN(a,b,c,d){return this.eO(a,b,B.cY,c,d)}, +og(a,b,c,d){return this.eO(a,b,c,"the Hub",d)}, +qc(a){var s,r,q,p=this +t.yz.a(a) +p.b4() +s=new A.v($.E,t.b_) +r=new A.W(s,t.ls) +q=p.r +q.fP(q.$ti.c.a(r)) +p.b.af(new A.aL(new A.eB(a))) +return p.dF(s,new A.pa(p,r),t.oD)}, +km(){var s,r,q,p=this +p.b4() +s=B.P.bm() +r=new A.v($.E,t.pd) +p.w.i(0,s,new A.W(r,t.zJ)) +q=p.b +q.toString +q.af(new A.aL(new A.eJ(s,new A.bk(Date.now(),0,!1).av()))) +return p.dF(r,new A.pf(p,s),t.ya)}, +cs(a,b,c,d,e,f,g,h,i){return this.qw(t.a.a(a),b,c,t.yz.a(d),e,f,g,h,i)}, +qv(a,b,c,d,e,f,g){return this.cs(a,b,c,d,e,f,null,null,g)}, +qu(a,b,c,d){return this.cs(B.G,null,null,B.ac,a,b,c,d,null)}, +qt(a,b,c){var s=null +return this.cs(B.G,s,s,B.ac,a,b,c,s,s)}, +qw(a,b,c,d,e,f,a0,a1,a2){var s=0,r=A.p(t.dS),q,p=2,o=[],n=this,m,l,k,j,i,h,g +var $async$cs=A.q(function(a3,a4){if(a3===1){o.push(a4) +s=p}for(;;)switch(s){case 0:n.b4() +k=n.c +m=k.iG(k.e++) +k=m +j=$.E +i=new A.cg(e,k,new A.W(new A.v(j,t.D),t.h),new A.W(new A.v(j,t.AJ),t.kJ),new A.W(new A.v(j,t.oW),t.xe),B.c_) +k=k.f +k=t.go.a(new A.ac(k,A.l(k).h("ac<1>")).aE(i.go7())) +i.f!==$&&A.ax("_controlSub") +i.f=k +l=i +k=n.b +k.toString +k.af(new A.aL(new A.eO(m.a,f,e,b,a,d,c,a0,a1,a2))) +p=4 +s=7 +return A.f(l.c.a,$async$cs) +case 7:p=2 +s=6 +break +case 4:p=3 +g=o.pop() +k=n.c +k.toString +s=8 +return A.f(k.dN(m.a),$async$cs) +case 8:throw g +s=6 +break +case 3:s=2 +break +case 6:q=l +s=1 +break +case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$cs,r)}, +qe(a){var s,r,q=this +q.b4() +s=B.P.bm() +r=new A.v($.E,t.fb) +q.x.i(0,s,new A.W(r,t.BU)) +q.b.af(new A.aL(new A.eq(s,a))) +return q.eN(r,new A.pb(q,s),'node "'+a+'"',t.zA)}, +fb(){var s,r,q=this +q.b4() +s=B.P.bm() +r=new A.v($.E,t.er) +q.ch.i(0,s,new A.W(r,t.Df)) +q.b.af(new A.aL(new A.e6(s))) +return q.dF(r,new A.p8(q,s),t.Aa)}, +qH(a,b,c,d,e,f){var s,r,q=this +t.yz.a(c) +q.b4() +s=B.P.bm() +r=new A.v($.E,t.kC) +q.CW.i(0,s,new A.W(r,t.Fn)) +q.b.af(new A.aL(new A.ew(s,d,f,c,a,b,e))) +return q.og(r,new A.pg(q,s),B.i7,t.tf)}, +qE(a,b){var s,r,q=this +q.b4() +s=B.P.bm() +r=new A.v($.E,t.D1) +q.Q.i(0,s,new A.W(r,t.uf)) +q.b.af(new A.aL(new A.eR(s,a,b))) +return q.eN(r,new A.pe(q,s),'node "'+a+'"',t.aC)}, +pO(a,b){var s,r,q,p=this +p.b4() +s=B.P.bm() +r=new A.v($.E,t.a8) +p.z.i(0,s,new A.W(r,t.w6)) +q=p.b +q.af(new A.aL(new A.e3(s,a,b,null))) +return p.eN(r,new A.p4(p,s),'node "'+a+'"',t.tR)}, +q9(a,b){var s,r,q=this +q.b4() +s=B.P.bm() +r=new A.v($.E,t.w7) +q.y.i(0,s,new A.W(r,t.hs)) +q.b.af(new A.aL(new A.eo(s,a,b))) +return q.eN(r,new A.p9(q,s),'node "'+a+'"',t.v4)}, +ck(a,b,c,d){var s=0,r=A.p(t.eJ),q,p=this,o,n,m,l +var $async$ck=A.q(function(e,f){if(e===1)return A.m(f,r) +for(;;)switch(s){case 0:o=t.eE +n=new A.dQ(A.e([],o)) +m=new A.dQ(A.e([],o)) +l=A +s=3 +return A.f(p.cl(B.G,a,b,B.ac,c,m.gbh(m),n.gbh(n),d),$async$ck) +case 3:q=new l.l2(f,n.ft(),m.ft()) +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$ck,r)}, +k5(a,b,c){return this.ck(a,null,b,c)}, +pU(a,b){return this.ck(a,null,b,null)}, +cl(a,b,c,d,e,f,g,h){var s +t.a.a(a) +t.yz.a(d) +s=t.eU +s.a(g) +return this.pW(a,b,c,d,e,s.a(f),g,h)}, +pV(a,b,c,d,e,f){return this.cl(B.G,a,b,B.ac,c,d,e,f)}, +pW(a,b,c,d,e,f,g,h){var s=0,r=A.p(t.S),q,p=this,o,n,m,l,k,j +var $async$cl=A.q(function(i,a0){if(i===1)return A.m(a0,r) +for(;;)switch(s){case 0:s=3 +return A.f(p.qv(a,b,c,d,B.dH,e,h),$async$cl) +case 3:m=a0 +l=m.b +k=l.d +j=new A.ac(k,A.l(k).h("ac<1>")).aa(0,new A.p5(m,g)) +l=l.e +o=new A.ac(l,A.l(l).h("ac<1>")).aa(0,new A.p6(m,f)) +s=4 +return A.f(m.d.a,$async$cl) +case 4:n=a0 +s=5 +return A.f(A.Dr(A.e([j,o],t.iJ),t.H).bF(new A.p7()),$async$cl) +case 5:q=n +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$cl,r)}, +j_(){var s,r,q,p,o,n=this +n.e=null +s=n.f +if(s!=null&&(s.a.a&30)===0)s.a7(B.pz) +for(s=n.r,r=A.FD(s,s.$ti.c),q=r.$ti.c;r.q();){p=r.e +if(p==null)p=q.a(p) +if(!p.gaN())p.a7(B.M)}s.a0(0) +for(s=n.w,r=new A.aq(s,s.r,s.e,A.l(s).h("aq<2>"));r.q();){q=r.d +if(!q.gaN())q.a7(B.M)}s.a0(0) +for(s=n.x,r=new A.aq(s,s.r,s.e,A.l(s).h("aq<2>"));r.q();){q=r.d +if(!q.gaN())q.a7(B.M)}s.a0(0) +for(s=n.y,r=new A.aq(s,s.r,s.e,A.l(s).h("aq<2>"));r.q();){q=r.d +if(!q.gaN())q.a7(B.M)}s.a0(0) +for(s=n.z,r=new A.aq(s,s.r,s.e,A.l(s).h("aq<2>"));r.q();){q=r.d +if(!q.gaN())q.a7(B.M)}s.a0(0) +for(s=n.Q,r=new A.aq(s,s.r,s.e,A.l(s).h("aq<2>"));r.q();){q=r.d +if(!q.gaN())q.a7(B.M)}s.a0(0) +for(s=n.as,r=new A.aq(s,s.r,s.e,A.l(s).h("aq<2>"));r.q();){q=r.d +if(!q.gaN())q.a7(B.M)}s.a0(0) +for(s=n.at,r=new A.aq(s,s.r,s.e,A.l(s).h("aq<2>"));r.q();){q=r.d.a +if(!q.gaN())q.a7(B.M)}s.a0(0) +for(s=n.ax,r=new A.aq(s,s.r,s.e,A.l(s).h("aq<2>"));r.q();){q=r.d +if(!q.gaN())q.a7(B.M)}s.a0(0) +for(s=n.ay,r=new A.aq(s,s.r,s.e,A.l(s).h("aq<2>"));r.q();){q=r.d +if(!q.gaN())q.a7(B.M)}s.a0(0) +for(s=n.ch,r=new A.aq(s,s.r,s.e,A.l(s).h("aq<2>"));r.q();){q=r.d +if(!q.gaN())q.a7(B.M)}s.a0(0) +for(s=n.CW,r=new A.aq(s,s.r,s.e,A.l(s).h("aq<2>"));r.q();){q=r.d +if(!q.gaN())q.a7(B.M)}s.a0(0) +s=n.cx +r=A.l(s).h("c2<2>") +r=A.N(new A.c2(s,r),r.h("i.E")) +q=r.length +o=0 +for(;oq)B.b.e9(s,0,r-q)}} +A.qx.prototype={ +rk(a,b){var s,r,q,p=this,o=A.cO(p.a.a,t.N),n=p.b +if(n===0)return null +s=o.length +if(n===s){p.c=a +p.d=b}r=p.d +if(r==null)r="" +for(q=n-1;q>=0;--q){if(!(q=n)return null +s=q.d +if(s==null)s="" +for(r=o+1;r=0))return A.b(p,r) +o=p[r] +if(B.a.u(o,s)){q.b=r +return o}}q.b=n +return q.c}, +ct(){var s=this +s.b=s.a.a.length +s.c="" +s.d=null}} +A.pw.prototype={} +A.pu.prototype={ +gcz(){var s=this.a,r=B.c.W(s.length,2) +return new A.aD(B.a.m(s,0,r),B.a.D(s,r))}, +pY(a6){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4=null,a5=this.b +B.b.C(a5,a6) +s=new A.dQ(A.e([],t.eE)) +r=B.r.Y(this.a) +for(q=a5.$flags|0,p=t.L,o=r.length,n=t.s,m=a4,l=m,k=l,j=k,i=j,h=!1;g=a4,!0;h=!0){f=A.D_(a5,r) +if(f<0)break +e=f+o +d=B.b.a_(a5,10,e) +if(d<0){g=f +break}s.j(0,new Uint8Array(A.c9(B.b.aq(a5,0,f)))) +if(d>e){c=d-1 +if(!(c=a.length)return A.b(a,0) +i=a[0] +j=A.pv(a,1) +k=A.pv(a,2) +l=A.pv(a,3) +a0=A.pv(a,4) +if(a0!=null)m=A.bJ(a0,a4)}a1=d+1 +q&1&&A.ai(a5,18) +A.aR(0,a1,a5.length) +a5.splice(0,a1)}if(g!=null){if(g>0){s.j(0,new Uint8Array(A.c9(B.b.aq(a5,0,g)))) +B.b.e9(a5,0,g)}}else{a2=A.D0(a5,r) +p=a5.length +if(p>a2){a3=p-a2 +s.j(0,new Uint8Array(A.c9(B.b.aq(a5,0,a3)))) +B.b.e9(a5,0,a3)}}return new A.pw(s.ft(),i,j,k,l,h,m)}} +A.fx.prototype={} +A.fz.prototype={} +A.ma.prototype={ +gjT(){return!0}, +gky(){return""}, +bJ(a,b,c){return this.kT(a,t.dN.a(b),c)}, +kT(a2,a3,a4){var s=0,r=A.p(t.N),q,p=this,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1 +var $async$bJ=A.q(function(a5,a6){if(a5===1)return A.m(a6,r) +for(;;)switch(s){case 0:e=a2.b +d=t.wb +e=A.e([A.xz(e.length===0?"You are an AI code assistant embedded in the OmnyShell terminal IDE. You can read, write, and edit files, list directories, search, and run commands via the provided tools. Prefer replace_in_file for small edits and write_file for new or fully-rewritten files. Make the requested changes directly, then briefly summarise what you did. Keep prose concise and terminal-friendly.":"You are an AI code assistant embedded in the OmnyShell terminal IDE. You can read, write, and edit files, list directories, search, and run commands via the provided tools. Prefer replace_in_file for small edits and write_file for new or fully-rewritten files. Make the requested changes directly, then briefly summarise what you did. Keep prose concise and terminal-friendly.\n\n"+e)],d) +for(o=a3.length,n=0;n2000)B.b.e9(q,0,s-2000)}} +A.oi.prototype={ +$1(a){var s +A.r(a) +s=this.a +s.x=!1 +s.cF(a) +s.cF("") +B.b.j(s.f,new A.fz(this.b,a)) +s.b.$0()}, +$S:66} +A.oj.prototype={ +$1(a){var s +A.ap(a) +s=this.a +s.x=!1 +s.cF("[error: "+A.u(a)+"]") +s.b.$0()}, +$S:7} +A.l8.prototype={ +dV(){var s=0,r=A.p(t.kx),q,p=this,o +var $async$dV=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:s=3 +return A.f(p.cJ("git status --porcelain"),$async$dV) +case 3:o=b +if(o==null){q=B.dr +s=1 +break}q=A.J_(o) +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$dV,r)}, +dZ(a,b){var s=0,r=A.p(t.vl),q,p=this,o,n,m,l +var $async$dZ=A.q(function(c,d){if(c===1)return A.m(d,r) +for(;;)switch(s){case 0:m=$.b3().e8(a,p.b) +l=A.ad(m,"\\","/") +s=3 +return A.f(p.dV(),$async$dZ) +case 3:if(d.k(0,l)===B.aQ){m=A.I(t.S,t.wV) +for(o=1;o<=b;++o)m.i(0,o,B.bH) +q=new A.fW(m,B.dQ) +s=1 +break}s=4 +return A.f(p.cJ("git diff -U0 --no-color -- "+("'"+A.ad(l,"'","'\\''")+"'")),$async$dZ) +case 4:n=d +if(n==null||B.a.G(n).length===0){q=B.bL +s=1 +break}q=A.J0(n) +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$dZ,r)}, +f7(){var s=0,r=A.p(t.T),q,p=this,o,n +var $async$f7=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:s=3 +return A.f(p.cJ("git rev-parse --abbrev-ref HEAD"),$async$f7) +case 3:o=b +n=o==null?null:B.a.G(o) +if(n==null||n.length===0){q=null +s=1 +break}q=n==="HEAD"?"(detached)":n +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$f7,r)}, +cJ(a){return this.oh(a)}, +oh(a){var s=0,r=A.p(t.T),q,p=2,o=[],n=this,m,l,k,j +var $async$cJ=A.q(function(b,c){if(b===1){o.push(c) +s=p}for(;;)switch(s){case 0:p=4 +s=7 +return A.f(n.a.d_(a,n.b),$async$cJ) +case 7:m=c +if(m.a!==0){q=null +s=1 +break}l=m.b +q=l +s=1 +break +p=2 +s=6 +break +case 4:p=3 +j=o.pop() +q=null +s=1 +break +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$cJ,r)}} +A.bH.prototype={ +R(){return"GitFileStatus."+this.b}} +A.fO.prototype={ +R(){return"GutterMark."+this.b}} +A.fW.prototype={} +A.vJ.prototype={} +A.fN.prototype={ +R(){return"Focus."+this.b}} +A.jI.prototype={} +A.vn.prototype={} +A.lc.prototype={ +bl(){return this.qW()}, +qW(){var s=0,r=A.p(t.H),q=1,p=[],o=[],n=this,m,l,k,j,i,h,g +var $async$bl=A.q(function(a,b){if(a===1){p.push(b) +s=q}for(;;)switch(s){case 0:j={} +i=n.c +h=t.L +g=i.b.a +g.write(new Uint8Array(A.c9(h.a(B.r.Y("\x1b[?1049h\x1b[2J\x1b[H\x1b[?25l"))))) +i.a=null +m=new A.r4(A.e([],t.t)) +j.a=null +l=null +q=2 +s=5 +return A.f(A.q7(n.a,n.b),$async$bl) +case 5:n.e=b +k=n.f +s=6 +return A.f(k.bO(k.b),$async$bl) +case 6:s=7 +return A.f(n.bS(),$async$bl) +case 7:n.cK() +j.a=i.c.bv(new A.qT(j,n,m),n.gmu(),new A.qU(n)) +l=i.d.aE(new A.qV(n)) +s=8 +return A.f(n.ok.a,$async$bl) +case 8:o.push(4) +s=3 +break +case 2:o=[1] +case 3:q=1 +j=j.a +j=j==null?null:j.U() +k=t.H +s=9 +return A.f(j instanceof A.v?j:A.bs(j,k),$async$bl) +case 9:j=l +j=j==null?null:j.U() +s=10 +return A.f(j instanceof A.v?j:A.bs(j,k),$async$bl) +case 10:j=n.cx +j=j==null?null:j.ah() +s=11 +return A.f(j instanceof A.v?j:A.bs(j,k),$async$bl) +case 11:j=n.dy +if(j!=null&&(j.c.a.a&30)===0)j.c.V(!1) +j=n.x +if(j!=null)j.p() +s=12 +return A.f(n.a.p(),$async$bl) +case 12:g.write(new Uint8Array(A.c9(h.a(B.r.Y("\x1b[0m\x1b[?25h\x1b[?1049l"))))) +i.a=null +s=o.pop() +break +case 4:return A.n(null,r) +case 1:return A.m(p.at(-1),r)}}) +return A.o($async$bl,r)}, +mv(){var s=this.ok +if((s.a.a&30)===0)s.bt()}, +cK(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2=this,b3=null,b4=b2.c,b5=b4.b.gc4(),b6=b5.a,b7=b5.b,b8=b6<0?0:b6,b9=new A.t6(b6,b7,A.bU(b8*(b7<0?0:b7),B.cM,!1,t.gc)) +b9.pA(0,B.U) +s=new A.d8(0,0,b6,b7) +r=s.fH(1) +q=r.a +p=b7>=6 +o=p?q.fH(1):new A.aD(q,B.dE) +n=o.a +if((b2.cy||b2.dx)&&n.d>=8){b8=n.d +m=n.fH(B.c.M(B.p.cv(b8*0.4),5,b8-4)) +l=m.a +k=m.b}else{l=n +k=B.dE}j=b2.pc(b6) +i=l.ii(j) +h=i.a +b8=j>0?1:0 +g=i.b.ii(b8) +f=g.a +if(!f.gK(0))for(e=f.b,b8=e+f.d,d=f.a;e=d?b2.ch=d-1:b8)<0)b2.ch=0 +b2.mi(h.d) +if(!h.gK(0)){b8=b2.ch +d=b2.CW +A.Dn(b9,h,b2.ay===B.C,c,d,b8,new A.qM(b2))}b=g.b.ij(1) +a=b.b +b8=b2.at +A.EV(b9,b.a,b2.ax,b8) +d=b2.ax +if(d>=0){if(!(d=r)continue +g[n].$2(o,m)}}, +pc(a){if(a<40)return this.ay===B.C?a:0 +return B.c.M(B.p.cv(a*0.28),20,46)}, +mi(a){var s,r,q=this +if(a<=0)return +s=q.ch +r=q.CW +if(s=r+a?q.CW=s-a+1:r)<0)q.CW=0}, +bC(a){var s=0,r=A.p(t.H),q,p=this,o,n,m,l,k,j +var $async$bC=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:j=p.dy +if(j!=null){o=a.a +if(o!==B.d4)if(o===B.av){n=a.ga1()==="y"||a.ga1()==="Y" +m=n}else m=!1 +else m=!0 +if(o!==B.aw)if(o===B.av){o=a.ga1()==="n"||a.ga1()==="N" +l=o}else l=!1 +else l=!0 +if(m){p.dy=null +j.c.V(!0)}else if(l){p.dy=null +j.c.V(!1)}s=1 +break}k=p.k2 +s=k!=null?3:4 +break +case 3:s=5 +return A.f(p.es(a,k),$async$bC) +case 5:s=1 +break +case 4:o=!1 +if(p.fy!=null){n=a.a===B.bJ +if(!(n&&a.c==="q"))o=!(n&&a.c==="w")}if(o){p.fy=null +p.go=!1}o=a.a +n=o===B.bJ +if(n&&a.c==="q"){p.k1=!1 +p.pe() +s=1 +break}if(n&&a.c==="w"){p.id=!1 +p.lP() +s=1 +break}p.k1=p.id=!1 +s=n&&a.c==="s"?6:7 +break +case 6:s=8 +return A.f(p.cP(),$async$bC) +case 8:s=1 +break +case 7:if(n&&a.c==="b"){if(p.ay===B.C){if(p.at.length!==0)p.ay=B.I}else p.ay=B.C +s=1 +break}s=n&&a.c==="n"?9:10 +break +case 9:s=11 +return A.f(p.dI(1),$async$bC) +case 11:s=1 +break +case 10:s=n&&a.c==="p"?12:13 +break +case 12:s=14 +return A.f(p.dI(-1),$async$bC) +case 14:s=1 +break +case 13:if(n&&a.c==="l"){p.o3() +s=1 +break}if(n&&a.c==="f"){p.o2() +s=1 +break}if(n&&a.c==="t"){p.pa() +s=1 +break}s=n&&a.c==="a"?15:16 +break +case 15:s=17 +return A.f(p.eW(),$async$bC) +case 17:s=1 +break +case 16:n=p.ay +if(n===B.aa){if(o===B.aw)p.ay=p.at.length!==0?B.I:B.C +else{o=p.cx +if(o!=null)o.hD(a)}s=1 +break}if(n===B.am){if(o===B.aw)p.ay=p.at.length!==0?B.I:B.C +else{o=p.db +if(o!=null)o.hD(a)}s=1 +break}s=n===B.C?18:20 +break +case 18:s=21 +return A.f(p.bD(a),$async$bC) +case 21:s=19 +break +case 20:p.mL(a) +case 19:case 1:return A.n(q,r)}}) +return A.o($async$bC,r)}, +bD(a){var s=0,r=A.p(t.H),q,p=this,o,n,m,l +var $async$bD=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:m=p.f +l=m.dc() +case 3:switch(a.a.a){case 7:s=5 +break +case 8:s=6 +break +case 11:s=7 +break +case 12:s=8 +break +case 13:s=9 +break +case 14:s=10 +break +case 10:s=11 +break +case 9:s=12 +break +case 1:s=13 +break +case 2:s=14 +break +case 0:s=15 +break +default:s=16 +break}break +case 5:m=p.ch +if(m>0)p.ch=m-1 +s=4 +break +case 6:m=p.ch +if(m=0&&o=0&&o=0&&o=0){s=l.at +if(!(k0)k=q.r=k-1 +else{s=q.f +if(s>0){k=s-1 +q.f=k +s=q.b +if(!(k=0&&n=0&&s=0&&s=0&&s=o){q=A.b(m,0) +s=1 +break}o=m.charCodeAt(0)<48||m.charCodeAt(0)>57}else o=!1 +if(o){s=4 +break}b.e+=m +s=4 +break +case 9:s=4 +break +case 4:case 1:return A.n(q,r)}}) +return A.o($async$es,r)}, +o3(){var s,r,q=this,p=q.ax +if(p>=0){s=q.at +if(!(p=0){r=m.at +if(!(s=0){s=q.at +if(!(p=0){r=f.at +if(!(s=0){o.kk(i,g) +f.ay=B.I +f.fy='Found "'+p+'" at line '+(i+1)+"." +f.go=!1 +return}}f.fy='"'+p+'" not found.' +f.go=!0}, +pe(){var s,r=this +if(B.b.ac(r.at,new A.qR())&&!r.id){r.id=!0 +r.fy="Unsaved changes! Ctrl-S to save, or Ctrl-Q again to discard and quit." +r.go=!0 +return}s=r.ok +if((s.a.a&30)===0)s.bt()}, +pa(){var s,r=this,q=r.cy +if(q&&r.ay===B.aa){r.cy=!1 +r.ay=r.at.length!==0?B.I:B.C +return}if(q){r.ay=B.aa +return}if(r.cx==null){q=t.s +s=A.e([],q) +q=A.e([],q) +r.cx=new A.us(r.r,new A.qQ(r),$.b3().a4(r.b),s,q)}r.dx=!1 +r.cy=!0 +r.ay=B.aa}, +eW(){var s=0,r=A.p(t.H),q,p=this,o,n,m,l,k +var $async$eW=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:if(p.dx&&p.ay===B.am){p.dx=!1 +p.ay=p.at.length!==0?B.I:B.C +s=1 +break}o=p.db +if(o==null){n=p.y +m=p.x +if(m==null)m=p.x=n!=null?new A.ma(n,p.z,new A.ni(p)):B.h5 +o=p.db=new A.oh(m,new A.qP(p),new A.fx("workspace",""),A.e([],t.s),A.e([],t.z4))}l=o +k=t.bk +s=3 +return A.f(p.dq(),$async$eW) +case 3:l.d=k.a(b) +p.cy=!1 +p.dx=!0 +p.ay=B.am +case 1:return A.n(q,r)}}) +return A.o($async$eW,r)}, +dq(){var s=0,r=A.p(t.bk),q,p=this,o,n,m,l,k,j,i +var $async$dq=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:s=p.ay===B.C?3:4 +break +case 3:o=p.f.dc() +n=p.ch +s=n>=0&&n=0&&n=0){l=p.at +if(!(n=0){if(!(r=0?3:4 +break +case 3:p=6 +s=9 +return A.f(n.a.ba(a),$async$c9) +case 9:m=c +B.b.i(k,j,A.yR(a,m,n.d)) +p=2 +s=8 +break +case 6:p=5 +h=o.pop() +s=8 +break +case 5:s=2 +break +case 8:case 4:s=10 +return A.f(n.bS(),$async$c9) +case 10:s=11 +return A.f(n.bR(),$async$c9) +case 11:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$c9,r)}, +eS(a){var s=0,r=A.p(t.a),q,p=this,o,n,m,l,k,j +var $async$eS=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:if(a.length===0){q=B.G +s=1 +break}s=3 +return A.f(p.a.d_("grep -rInH --exclude-dir=.git -- "+("'"+A.ad(a,"'","'\\''")+"'")+" . 2>/dev/null | head -n 100; true",p.b),$async$eS) +case 3:o=c +n=A.e([],t.s) +for(m=B.bn.Y(o.b),l=m.length,k=0;k8000?B.a.m(n,0,8000)+"\n\u2026(truncated)\u2026":n)+"\n[exit "+A.u(j)+"]" +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$dt,r)}, +iL(a){var s,r,q=a.c +if(q.length===0)q="flagged "+a.b.b +else{s=A.U(q) +r=s.h("a2<1,a>") +r=A.bx(new A.a2(q,s.h("a(1)").a(new A.qA()),r),0,A.dq(2,"count",t.S),r.h("Q.E")).S(0,"; ") +q=r}return q}, +dI(a){var s=0,r=A.p(t.H),q,p=this,o +var $async$dI=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:o=p.at.length +if(o===0){s=1 +break}p.ax=B.c.bc(p.ax+a,o) +p.ay=B.I +s=3 +return A.f(p.bR(),$async$dI) +case 3:case 1:return A.n(q,r)}}) +return A.o($async$dI,r)}, +dD(){var s=0,r=A.p(t.H),q,p=this,o,n,m +var $async$dD=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:n=p.f.dc() +m=p.ch +if(m<0||m>=n.length){s=1 +break}if(!(m>=0&&m=0?3:4 +break +case 3:n.ax=h +n.ay=B.I +s=5 +return A.f(n.bR(),$async$ca) +case 5:s=1 +break +case 4:p=7 +s=10 +return A.f(n.a.ba(a),$async$ca) +case 10:m=c +l=A.yR(a,m,n.d) +B.b.j(i,l) +n.ax=i.length-1 +n.ay=B.I +s=11 +return A.f(n.bR(),$async$ca) +case 11:p=2 +s=9 +break +case 7:p=6 +g=o.pop() +k=A.R(g) +n.fy="Cannot open "+n.ds(a)+": "+A.u(k) +n.go=!0 +s=9 +break +case 6:s=2 +break +case 9:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$ca,r)}, +lP(){var s,r=this,q=r.ax +if(q<0)return +s=r.at +if(!(q=0&&s=0;--p){if(!(p=0&&q=0&&q=0&&k0?r.a4(s):r.a4(A.wW(this.a.b,s)),p=this.a.b +if(q!==p&&r.bq(p,q)!==B.aq)throw A.d(A.aC("path is outside the workspace: "+a)) +return q}, +bk(a){var s=0,r=A.p(t.a),q,p=this,o,n +var $async$bk=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:n=J +s=3 +return A.f(p.a.a.bk(p.eK(a)),$async$bk) +case 3:o=n.o8(c,new A.vK(),t.N) +o=A.N(o,o.$ti.h("Q.E")) +B.b.di(o) +q=o +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$bk,r)}, +ba(a){var s=0,r=A.p(t.N),q,p=this,o,n,m +var $async$ba=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:o=p.eK(a) +n=p.a +m=n.oW(o) +if(m!=null){q=m.a.i6() +s=1 +break}q=n.a.ba(o) +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$ba,r)}, +bb(a,b){var s=0,r=A.p(t.H),q=this,p,o +var $async$bb=A.q(function(c,d){if(c===1)return A.m(d,r) +for(;;)switch(s){case 0:p=q.eK(a) +o=q.a +s=2 +return A.f(o.a.bb(p,b),$async$bb) +case 2:s=3 +return A.f(o.c9(p),$async$bb) +case 3:return A.n(null,r)}}) +return A.o($async$bb,r)}, +d8(a,b,c){var s=0,r=A.p(t.H),q=this,p,o,n,m +var $async$d8=A.q(function(d,e){if(d===1)return A.m(e,r) +for(;;)switch(s){case 0:o=q.eK(a) +s=2 +return A.f(q.ba(a),$async$d8) +case 2:n=e +m=B.a.aW(n,b) +if(m<0)throw A.d(A.aC("old_string not found in "+a)) +if(B.a.a_(n,b,m+b.length)>=0)throw A.d(A.aC("old_string is not unique in "+a)) +p=q.a +s=3 +return A.f(p.a.bb(o,B.a.kr(n,b,c)),$async$d8) +case 3:s=4 +return A.f(p.c9(o),$async$d8) +case 4:return A.n(null,r)}}) +return A.o($async$d8,r)}, +$iCp:1} +A.vK.prototype={ +$1(a){var s +t.Ex.a(a) +s=a.b?"/":"" +return a.a+s}, +$S:27} +A.et.prototype={ +l0(a,b){var s=this.mh(b,a) +if(a<=0)return B.v +return ab)return k +s=A.e([B.v],t.pP) +r=l.a.b +q=r.length +for(p=l.b,o=B.v,n=0;n") +h=A.oX(new A.ae(k,j.h("y(1)").a(new A.pP(l)),i),i.h("i.E"),n).bX(0,new A.pQ(),new A.pR()) +if(h==null){q=null +s=1 +break}case 4:g.length===d||(0,A.M)(g),++m,e=h +s=3 +break +case 5:q=e +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$fs,r)}, +ao(){var s=0,r=A.p(t.H),q=this,p +var $async$ao=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:p=q.b +s=p.f!=null?2:3 +break +case 2:s=4 +return A.f(q.bT(p),$async$ao) +case 4:case 3:return A.n(null,r)}}) +return A.o($async$ao,r)}, +bO(a){return this.na(a)}, +na(a){var s=0,r=A.p(t.H),q,p=2,o=[],n=this,m,l,k,j,i,h,g,f,e,d,c +var $async$bO=A.q(function(b,a0){if(b===1){o.push(a0) +s=p}for(;;)switch(s){case 0:d=null +p=4 +s=7 +return A.f(n.a.$1(a.a),$async$bO) +case 7:d=a0 +p=2 +s=6 +break +case 4:p=3 +c=o.pop() +a.sbr(B.jP) +s=1 +break +s=6 +break +case 3:s=2 +break +case 6:l=J.yv(d,n.gn5()) +k=A.N(l,l.$ti.h("i.E")) +B.b.bn(k,A.Iz()) +l=A.e([],t.og) +for(j=k.length,i=a.a,h=a.d+1,g=0;g=0&&a=0&&a=0&&s=0&&p=o-1){if(!(q>=0&&q=0))return A.b(p,q) +r.r=B.c.M(s,0,p[q].length)}, +kb(a,b){var s,r,q,p,o=this +if(o.e||b.length===0)return +s=o.b +r=o.f +if(!(r>=0&&r=0&&r0){r=l.b +q=l.f +if(!(q>=0&&q0){r=l.b +q=s-1 +o=r.length +if(!(q=0&&r=0))return A.b(a,r) +p=a.charCodeAt(r) +q=p===47 +if(q&&r+1=65&&q<=90))o=q>=97&&q<=122||q===95||q===36 +else o=!0 +if(!o)q=q>=48&&q<=57 +else q=!0}else q=!1 +if(!q)break;++l}e.N(0,B.a.m(a,r,l),B.c8) +r=l +continue}o=!1 +if(p===114){k=r+1 +if(k=48&&p<=57)){o=!1 +if(p===46){k=r+1 +if(k=48&&o<=57}}}else o=!0 +if(o){if(p===48){q=r+1 +q=q=48&&q<=57)){q|=32 +q=q>=97&&q<=102}else q=!0}else q=!1 +if(!q)break;++l}}else{l=r +for(;;){if(l=48&&q<=57||a.charCodeAt(l)===46||(a.charCodeAt(l)|32)===101||a.charCodeAt(l)===95}else q=!1 +if(!q)break;++l}}e.N(0,B.a.m(a,r,l),B.b7) +r=l +continue}o=p>=65 +if(!(o&&p<=90))k=p>=97&&p<=122||p===95||p===36 +else k=!0 +if(k){l=r+1 +for(;;){if(l=65&&q<=90))k=q>=97&&q<=122||q===95||q===36 +else k=!0 +if(!k)q=q>=48&&q<=57 +else q=!0}else q=!1 +if(!q)break;++l}i=B.a.m(a,r,l) +h=l +for(;;){q=h=0&&b12?B.a.m(s,0,12)+"\u2026":s)+")"}} +A.cM.prototype={ +L(a,b){if(b==null)return!1 +return b instanceof A.cM&&b.a===this.a}, +gE(a){return this.a}} +A.aU.prototype={} +A.uL.prototype={ +ik(a){var s=B.lj.k(0,a) +if(s==null)s=B.e3 +return s}} +A.d2.prototype={} +A.qe.prototype={ +q1(a){var s,r=B.a.aY(a,A.O("[/\\\\]",!0)),q=r<0?a:B.a.D(a,r+1),p=q.toLowerCase(),o=B.l8.k(0,p) +if(o!=null)return o +s=B.a.aY(p,".") +if(s<=0||s===p.length-1)return B.bo +q=B.l6.k(0,B.a.D(p,s+1)) +return q==null?B.bo:q}} +A.lq.prototype={ +gdY(){return"JSON"}, +d2(a,b,c){var s,r,q,p,o,n,m,l,k,j=A.e([],t.pK),i=new A.hn(j,new A.T(""),c),h=a.length +for(s=0;s=0))return A.b(a,s) +r=a.charCodeAt(s) +if(r===34){q=s+1 +while(q=48&&r<=57)){n=!1 +if(r===45){m=s+1 +if(m=48&&n<=57}}}else n=!0 +if(n){q=s+1 +for(;;){if(q=48&&n<=57||a.charCodeAt(q)===46||(a.charCodeAt(q)|32)===101||a.charCodeAt(q)===43||a.charCodeAt(q)===45}else n=!1 +if(!n)break;++q}i.N(0,B.a.m(a,s,q),B.b7) +s=q +continue}if(!(r>=65&&r<=90))n=r>=97&&r<=122||r===95||r===36 +else n=!0 +if(n){q=s+1 +for(;;){if(q=65&&n<=90))m=n>=97&&n<=122||n===95||n===36 +else m=!0 +if(!m)n=n>=48&&n<=57 +else n=!0}else n=!1 +if(!n)break;++q}k=B.a.m(a,s,q) +i.N(0,k,k==="true"||k==="false"||k==="null"?B.c7:B.L) +s=q +continue}if(r===123||r===125||r===91||r===93||r===58||r===44)i.N(0,A.ak(r),B.af) +else i.N(0,A.ak(r),B.L);++s}i.aw() +return new A.aU(j,B.v)}} +A.lC.prototype={ +gdY(){return"Markdown"}, +d2(a,b,c){var s,r,q=A.e([],t.pK),p=new A.hn(q,new A.T(""),c),o=B.a.i7(a),n=B.a.u(o,"```")||B.a.u(o,"~~~") +if(b.a===1){p.N(0,a,n?B.af:B.c9) +p.aw() +return new A.aU(q,n?B.v:B.aR)}if(n){p.N(0,a,B.af) +p.aw() +return new A.aU(q,B.aR)}p.N(0,B.a.m(a,0,a.length-o.length),B.L) +if(this.n4(o)){p.N(0,o,B.aA) +p.aw() +return new A.aU(q,B.v)}if(B.a.u(o,"#")){p.N(0,o,B.ef) +p.aw() +return new A.aU(q,B.v)}if(B.a.u(o,">")){p.N(0,o,B.ek) +p.aw() +return new A.aU(q,B.v)}s=this.n9(o) +if(s>0){p.N(0,B.a.m(o,0,s),B.aA) +r=B.a.D(o,s)}else r=o +this.mX(p,r,c) +p.aw() +return new A.aU(q,B.v)}, +n4(a){var s,r,q,p,o=a.length +if(o<3)return!1 +s=a.charCodeAt(0) +if(s!==45&&s!==42&&s!==95)return!1 +for(r=0;r=2){s=a.charCodeAt(0) +if((s===45||s===42||s===43)&&a.charCodeAt(1)===32)return 2}r=0 +for(;;){if(r=48&&q<=57}else q=!1 +if(!q)break;++r}q=!1 +if(r>0){p=r+1 +if(p=0))return A.b(b,r) +q=b.charCodeAt(r) +if(q===96){p=B.a.a_(b,"`",r+1) +if(p>r){o=p+1 +a.N(0,B.a.m(b,r,o),B.c9) +r=o +continue}}n=q!==42 +if(!n||q===95){m=r+1 +m=mr){o=p+2 +a.N(0,B.a.m(b,r,o),B.eh) +r=o +continue}}if(!n||q===95){p=B.a.a_(b,A.ak(q),r+1) +if(p>r){o=p+1 +a.N(0,B.a.m(b,r,o),B.eg) +r=o +continue}}if(q===91){l=B.a.a_(b,"]",r+1) +if(l>r){n=l+1 +n=nl){o=k+1 +a.N(0,B.a.m(b,r,o),B.ei) +r=o +continue}}}a.N(0,A.ak(q),B.L);++r}}} +A.lY.prototype={ +d2(a,b,c){return new A.aU(A.e([new A.hw(a,c.ik(B.L))],t.pK),B.v)}, +gdY(){return"Text"}} +A.hn.prototype={ +N(a,b,c){var s=this +if(b.length===0)return +if(s.c===c){s.b.a+=b +return}s.aw() +s.c=c +s.b.a+=b}, +aw(){var s,r=this,q=r.b,p=q.a +if(p.length===0)return +s=r.c +s.toString +B.b.j(r.a,new A.hw(p.charCodeAt(0)==0?p:p,r.d.ik(s))) +q.a=""}} +A.mU.prototype={ +gdY(){return"YAML"}, +d2(a,b,c){var s,r,q,p,o,n=A.e([],t.pK),m=new A.hn(n,new A.T(""),c),l=a.length,k=0 +for(;;){s=k=0&&k=0))return A.b(a,s) +r=a.charCodeAt(s) +r=r===32||r===9}}if(!r)break +m.N(0,"-",B.aA) +p=this.oO(a,s) +m.N(0,B.a.m(a,s,p),B.L) +k=p}if(k===l-1){if(!(k>=0&&k=0){m.N(0,B.a.m(a,k,o),B.ca) +m.N(0,":",B.af) +k=o+1}this.mT(m,a,k) +m.aw() +return new A.aU(n,B.v)}, +oO(a,b){var s,r=a.length,q=b +for(;;){if(q=0))return A.b(b,s) +r=b.charCodeAt(s) +q=!1 +if(r===35)if(s>0){q=b.charCodeAt(s-1) +q=q===32||q===9}if(q){a.N(0,B.a.D(b,s),B.a5) +return}if(r===39||r===34){p=s+1 +for(;;){q=p=65&&q<=90))o=q>=97&&q<=122||q===95||q===36 +else o=!0 +if(!o)q=q>=48&&q<=57 +else q=!0}else q=!1 +if(!q)break;++p}a.N(0,B.a.m(b,s,p),B.c8) +s=p +continue}if(r===32||r===9){a.N(0,A.ak(r),B.L);++s +continue}p=s +for(;;){if(p=48&&q<=57)s=!0 +else if(q!==46&&q!==45&&q!==43&&(q|32)!==101)return!1}return s}} +A.pi.prototype={} +A.us.prototype={ +hD(a){var s,r,q,p=this +switch(a.a.a){case 1:p.oY() +break +case 4:s=p.f +r=s.length +if(r!==0)p.f=B.a.m(s,0,r-1) +break +case 0:p.f=p.f+a.ga1() +p.r=0 +break +case 7:p.mU() +break +case 8:s=p.z +r=p.y +q=r.length +if(s=0&&s0)s=r.z=s-1 +if(!(s>=0&&s2000)B.b.e9(q,0,s-2000)}, +ah(){var s=0,r=A.p(t.H),q=this,p +var $async$ah=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:p=q.x +p=p==null?null:p.U() +s=2 +return A.f(p instanceof A.v?p:A.bs(p,t.H),$async$ah) +case 2:q.x=null +p=q.w +if(p!=null)p.c.$0() +q.w=null +return A.n(null,r)}}) +return A.o($async$ah,r)}} +A.uE.prototype={ +$0(){var s,r=this,q=r.a +if(!q.a||q.b==null||r.b.w!==r.c)return +s=r.b +s.w=s.x=null +q=q.b +if(q!==0)s.bU("[exit "+A.u(q)+"]") +s.b.$0()}, +$S:0} +A.uz.prototype={ +$1(a){var s=this.a +s.bU(A.r(a)) +s.b.$0()}, +$S:4} +A.uB.prototype={ +$1(a){return this.a.bU("[error: "+A.u(A.ap(a))+"]")}, +$S:36} +A.uA.prototype={ +$0(){this.a.a=!0 +this.b.$0()}, +$S:0} +A.uC.prototype={ +$1(a){this.a.b=A.a4(a) +this.b.$0()}, +$S:24} +A.uD.prototype={ +$1(a){var s +this.b.bU("[error: "+A.u(A.ap(a))+"]") +s=this.a +s.a=!0 +s.b=-1 +this.c.$0()}, +$S:7} +A.uy.prototype={ +$0(){var s,r,q,p=this.a +if(!p.a||p.b==null)return +s=this.b +s.w=s.x=null +r=this.c.a +q=B.a.G(r.charCodeAt(0)==0?r:r) +if(p.b===0){if(q.length!==0)s.d=B.a.G(B.b.gaX(q.split("\n")))}else s.bU("cd: "+(q.length===0?"no such directory":q)) +s.b.$0()}, +$S:0} +A.ut.prototype={ +$1(a){this.a.a+=A.r(a)+"\n" +return null}, +$S:4} +A.uu.prototype={ +$0(){this.a.a=!0 +this.b.$0()}, +$S:0} +A.uv.prototype={ +$1(a){A.ap(a)}, +$S:7} +A.uw.prototype={ +$1(a){this.a.b=A.a4(a) +this.b.$0()}, +$S:24} +A.ux.prototype={ +$1(a){var s +A.ap(a) +s=this.a +s.a=!0 +s.b=-1 +this.b.bU("cd: "+A.u(a)) +this.c.$0()}, +$S:7} +A.km.prototype={ +kn(a,b,c){var s="\x1b[?25l"+a.qO(this.a) +if(b!=null&&c!=null)s+="\x1b["+(c+1)+";"+(b+1)+"H\x1b[?25h" +this.b.a.write(new Uint8Array(A.c9(t.L.a(B.r.Y(s.charCodeAt(0)==0?s:s))))) +this.a=a}, +qG(a){return this.kn(a,null,null)}, +$izw:1} +A.d8.prototype={ +gK(a){return this.c<=0||this.d<=0}, +ii(a){var s=this,r=s.c,q=B.c.M(a,0,r),p=s.a,o=s.b,n=s.d +return new A.aD(new A.d8(p,o,q,n),new A.d8(p+q,o,r-q,n))}, +ij(a){var s=this,r=s.d,q=B.c.M(A.a4(a),0,r),p=s.a,o=s.b,n=s.c +return new A.aD(new A.d8(p,o,n,q),new A.d8(p,o+q,n,r-q))}, +fH(a){var s=this.d +return this.ij(B.c.M(s-a,0,s))}, +L(a,b){var s=this +if(b==null)return!1 +return b instanceof A.d8&&b.a===s.a&&b.b===s.b&&b.c===s.c&&b.d===s.d}, +gE(a){var s=this +return A.bo(s.a,s.b,s.c,s.d,B.f,B.f,B.f)}, +l(a){var s=this +return"Rect("+s.a+","+s.b+","+s.c+","+s.d+")"}} +A.b6.prototype={ +R(){return"KeyType."+this.b}} +A.aP.prototype={ +ga1(){if(this.a===B.av&&this.b!=null){var s=this.b +s.toString +s=A.ak(s)}else s="" +return s}, +L(a,b){if(b==null)return!1 +return b instanceof A.aP&&b.a===this.a&&b.b==this.b&&b.c==this.c}, +gE(a){return A.bo(this.a,this.b,this.c,B.f,B.f,B.f,B.f)}, +l(a){var s=this,r=s.a +switch(r.a){case 0:return"KeyEvent.char("+A.u(s.ga1().length===0?s.b:s.ga1())+")" +case 15:return"KeyEvent.ctrl("+A.u(s.c)+")" +default:return"KeyEvent."+r.l(0)}}} +A.r4.prototype={ +b5(a){var s,r,q,p=this.a +B.b.C(p,t.L.a(a)) +s=A.e([],t.DG) +for(r=p.$flags|0;p.length!==0;){q=this.m5(s) +if(q===0)break +r&1&&A.ai(p,18) +A.aR(0,q,p.length) +p.splice(0,q)}return s}, +m5(a){var s,r,q,p,o,n,m +t.x0.a(a) +q=this.a +p=B.b.gI(q) +if(p===27)return this.m4(a) +switch(p){case 13:case 10:B.b.j(a,B.il) +return 1 +case 9:B.b.j(a,B.im) +return 1 +case 127:case 8:B.b.j(a,B.ip) +return 1}if(p>=1&&p<=26){B.b.j(a,new A.aP(B.bJ,null,A.ak(p+96))) +return 1}if(p>=32&&p<128){B.b.j(a,new A.aP(B.av,p,null)) +return 1}s=A.DG(p) +if(J.a0(s,0)){B.b.j(a,B.aS) +return 1}o=q.length +n=s +if(typeof n!=="number")return A.B_(n) +if(o=r)return A.b(s,1) +q=s[1] +if(q===79){if(r<3)return 0 +p=this.iK(s[2]) +B.b.j(a,p==null?B.aS:p) +return 3}if(q===91){for(o=2;o=64&&n<=126){this.mf(a,B.b.aq(s,2,o),n) +return o+1}++o}return 0}B.b.j(a,B.ir) +return 1}, +mf(a,b,c){var s +t.x0.a(a) +t.L.a(b) +s=this.iK(c) +if(s!=null){B.b.j(a,s) +return}if(c===90){B.b.j(a,B.io) +return}if(c===126)switch(A.bJ(B.b.gI(A.c5(b,0,null).split(";")),null)){case 1:case 7:B.b.j(a,B.d2) +return +case 4:case 8:B.b.j(a,B.d3) +return +case 3:B.b.j(a,B.iq) +return +case 5:B.b.j(a,B.ij) +return +case 6:B.b.j(a,B.ik) +return}B.b.j(a,B.aS)}, +iK(a){switch(a){case 65:return B.is +case 66:return B.it +case 67:return B.ii +case 68:return B.iu +case 72:return B.d2 +case 70:return B.d3}return null}} +A.du.prototype={ +L(a,b){if(b==null)return!1 +return b instanceof A.du&&b.a===this.a&&b.b.L(0,this.b)}, +gE(a){return A.bo(this.a,this.b,B.f,B.f,B.f,B.f,B.f)}} +A.t6.prototype={ +pA(a,b){var s,r,q,p=b.L(0,B.e2)?B.cM:new A.du(" ",b) +for(s=this.c,r=s.length,q=0;q=q.a||b<0||b>=q.b)return +s=new A.ch(c) +r=!s.gJ(0).q()?" ":A.ak(s.gI(0)) +B.b.i(q.c,b*q.a+a,new A.du(r,d))}, +aV(a,b,c,d,e,f){var s,r,q,p +for(s=b+d,r=a+c,q=b;q=this.b)return a +s=this.a +r=e==null?s:B.c.M(a+e,0,s) +for(q=new A.ho(c),p=this.c,o=b*s,n=a;q.q();){m=q.d +if(n>=r||n>=s)break +if(n>=0){l=m===9?" ":A.ak(m) +B.b.i(p,o+n,new A.du(l,d))}++n}return n}, +bW(a,b,c,d){return this.am(a,b,c,d,null)}, +qO(a2){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a=this,a0=a2!=null&&a2.a===a.a&&a2.b===a.b,a1=new A.T("") +for(s=a.b,r=a.a,q=a.c,p=q.length,o=t.s,n=null,m=0;m=0&&i=0&&g")),r,new A.t2())}, +$iCX:1} +A.t0.prototype={ +$1(a){var s,r=this +A.a4(a) +r.a.k8() +r.b.k8() +r.c.p() +s=r.d +if((s.a.a&30)===0)s.V(a)}, +$S:24} +A.t1.prototype={ +$1(a){var s +A.ap(a) +s=this.a +s.f2(a) +s.p() +s=this.b +if((s.a.a&30)===0)s.a7(a)}, +$S:7} +A.t2.prototype={ +$0(){}, +$S:0} +A.jB.prototype={ +j(a,b){var s,r,q,p=this.b,o=B.l.aK(t.L.a(b),!0) +o=p.a+=o +s=(o.charCodeAt(0)==0?o:o).split("\n") +for(o=this.a,r=0;r "+("'"+A.ad(a,"'","'\\''")+"'")),$async$bb) +case 2:p=d +if(p.a!==0)throw A.d(A.mR("cannot write "+a+": "+B.a.G(p.gdk()))) +return A.n(null,r)}}) +return A.o($async$bb,r)}, +fa(a){var s=0,r=A.p(t.y),q,p=this +var $async$fa=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:s=3 +return A.f(p.cN("test -e "+("'"+A.ad(a,"'","'\\''")+"'")),$async$fa) +case 3:q=c.a===0 +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$fa,r)}, +f6(a){var s=0,r=A.p(t.H),q=this,p,o +var $async$f6=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:p=A.ad(a,"'","'\\''") +s=2 +return A.f(q.cN('mkdir -p -- "$(dirname -- '+("'"+p+"'")+')" && touch -- '+("'"+A.ad(a,"'","'\\''")+"'")),$async$f6) +case 2:o=c +if(o.a!==0)throw A.d(A.mR("cannot create "+a+": "+B.a.G(o.gdk()))) +return A.n(null,r)}}) +return A.o($async$f6,r)}, +f5(a){var s=0,r=A.p(t.H),q=this,p +var $async$f5=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:s=2 +return A.f(q.cN("mkdir -p -- "+("'"+A.ad(a,"'","'\\''")+"'")),$async$f5) +case 2:p=c +if(p.a!==0)throw A.d(A.mR("cannot create "+a+": "+B.a.G(p.gdk()))) +return A.n(null,r)}}) +return A.o($async$f5,r)}, +d_(a,b){var s=0,r=A.p(t.vL),q,p=this,o,n,m +var $async$d_=A.q(function(c,d){if(c===1)return A.m(d,r) +for(;;)switch(s){case 0:s=3 +return A.f(p.a.ck(a,b,p.b,p.c),$async$d_) +case 3:o=d +n=o.a +m=B.l.aK(o.b,!0) +B.l.aK(o.c,!0) +q=new A.mS(n,m) +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$d_,r)}, +p(){var s=0,r=A.p(t.H) +var $async$p=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:return A.n(null,r)}}) +return A.o($async$p,r)}, +$iFh:1} +A.dO.prototype={} +A.mS.prototype={} +A.mQ.prototype={ +l(a){return this.a}, +$iaf:1} +A.hr.prototype={} +A.eT.prototype={} +A.lg.prototype={ +b1(){var s,r,q,p=this +if(p.as)return +p.as=!0 +s=p.a +r=s.b +q=r.d +p.z=new A.ac(q,A.l(q).h("ac<1>")).aE(p.gnM()) +q=r.e +p.Q=new A.ac(q,A.l(q).h("ac<1>")).aE(p.gnK()) +s.d.a.aZ(p.gnA(),t.H).bF(new A.qZ(p)) +if(p.d){p.at=!0 +p.x.$1(!0) +return}s=p.c +q=t.L +r.cG(B.a9,q.a(B.r.Y(s.ghI()+"\n")),null) +r.cG(B.a9,q.a(B.r.Y(s.d1(p.b)+"\n")),null)}, +nN(a){var s,r,q,p,o,n=this +t.p.a(a) +if(n.ax||n.a.w!=null||a.length===0)return +s=n.a +s.ee(a.length) +r=n.b +q=r.pY(a) +p=q.a +if(!B.H.gK(p)){n.f.$1(p) +o=n.CW +if(o!=null)o.j(0,p)}p=q.b +if(p!=null){n.cx=p +n.cy=q.c +n.db=q.d +n.dx=q.e}if(q.f){n.at=!1 +n.x.$1(!1) +if(n.ay&&n.cx==null){n.ay=!1 +s.b.cG(B.a9,t.L.a(B.r.Y(n.c.d1(r)+"\n")),null)}else n.w.$1(n.j9()) +n.oe(q.r)}}, +nL(a){var s,r=this +t.p.a(a) +if(r.ax||r.a.w!=null||a.length===0)return +r.a.ee(a.length) +r.f.$1(a) +s=r.CW +if(s!=null)s.j(0,a)}, +oe(a){var s,r,q=this,p=q.ch +if(p==null)return +q.ch=null +s=q.CW +r=s==null?null:s.ft() +if(r==null)r=new Uint8Array(0) +q.CW=null +if((p.a.a&30)===0)p.V(new A.eT(r,a))}, +j9(){var s=this +return new A.hr(s.cx,s.cy,s.db,s.dx)}, +l3(a){var s,r,q=this +if(q.ax)return +if(B.a.G(a).length===0){q.w.$1(q.j9()) +return}q.at=!0 +q.x.$1(!0) +s=q.c +r=q.b +q.a.b.cG(B.a9,t.L.a(B.r.Y(s.fA(a,!0,A.IV(a)?s.d1(r):s.hV(r))+"\n")),null)}, +re(a){var s,r,q=this +if(q.ax){s=A.nV(new A.bX("session has ended"),null) +r=new A.v($.E,t.AF) +r.c6(s) +return r}if(q.at||q.ch!=null){s=A.nV(new A.bX("a command is already running"),null) +r=new A.v($.E,t.AF) +r.c6(s) +return r}if(B.a.G(a).length===0)return A.xF(B.oH,t.x2) +s=new A.v($.E,t.AF) +q.ch=new A.W(s,t.kf) +r=A.e([],t.eE) +q.CW=new A.dQ(r) +q.at=!0 +q.x.$1(!0) +r=q.c +q.a.b.cG(B.a9,t.L.a(B.r.Y(r.fA(a,!0,r.jO(q.b))+"\n")),null) +return s}, +kV(a){t.L.a(a) +if(this.ax)return +this.a.b.cG(B.a9,a,null)}, +j0(a){var s,r=this +A.a4(a) +if(r.ax)return +r.ax=!0 +s=r.ch +if(s!=null&&(s.a.a&30)===0){r.CW=r.ch=null +s.a7(new A.bX("session ended during command"))}r.y.$1(a)}, +bu(){var s=0,r=A.p(t.H),q=this +var $async$bu=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:s=2 +return A.f(q.cf(),$async$bu) +case 2:s=3 +return A.f(q.a.bu(),$async$bu) +case 3:return A.n(null,r)}}) +return A.o($async$bu,r)}, +p(){var s=0,r=A.p(t.H),q=this +var $async$p=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:s=2 +return A.f(q.cf(),$async$p) +case 2:s=3 +return A.f(q.a.p(),$async$p) +case 3:return A.n(null,r)}}) +return A.o($async$p,r)}, +cf(){var s=0,r=A.p(t.H),q=this,p,o +var $async$cf=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:o=q.z +o=o==null?null:o.U() +p=t.H +s=2 +return A.f(o instanceof A.v?o:A.bs(o,p),$async$cf) +case 2:o=q.Q +o=o==null?null:o.U() +s=3 +return A.f(o instanceof A.v?o:A.bs(o,p),$async$cf) +case 3:q.Q=q.z=null +return A.n(null,r)}}) +return A.o($async$cf,r)}} +A.qZ.prototype={ +$1(a){this.a.j0(-1)}, +$S:13} +A.ly.prototype={ +f3(a){var s=0,r=A.p(t.H),q=this,p +var $async$f3=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:p=q.e +if(p.a.j(0,a))p.nZ() +p=A.bs(null,t.H) +s=2 +return A.f(p,$async$f3) +case 2:p=q.fx +p===$&&A.w("_histCursor") +p.ct() +return A.n(null,r)}}) +return A.o($async$f3,r)}, +c3(a){var s,r=this +r.CW=a +r.dx=A.DM(a) +s=r.at +if(!s)r.aI()}, +kX(a){var s,r=this +if(a===r.db)return +r.db=a +s=r.at +if(!s)r.aI()}, +ka(a){var s=this +if(s.ax===a)return +s.ax=a +if(!s.at&&s.ch==null)s.aI()}, +kW(a){var s=this +if(s.at===a)return +s.at=a +s.fy=B.ba +s.go="" +B.b.a0(s.id) +s.k1=0 +B.b.a0(s.cx) +s.cy=0 +if(a)s.fO()}, +kg(){var s=this +if(s.as!=null)return +if(s.at){s.r.$0() +return}s.iQ()}, +b1(){this.z=this.a.aE(this.gnp())}, +dl(a,b){return this.lh(b.h("H<0>(aa>)").a(a),b,b)}, +lh(a,b,c){var s=0,r=A.p(c),q,p=2,o=[],n=[],m=this,l,k +var $async$dl=A.q(function(d,e){if(d===1){o.push(e) +s=p}for(;;)switch(s){case 0:k=A.ci(null,null,!1,t.L) +m.as=t.eU.a(J.Ce(k)) +p=3 +l=k +s=6 +return A.f(a.$1(new A.ac(l,A.l(l).h("ac<1>"))),$async$dl) +case 6:l=e +q=l +n=[1] +s=4 +break +n.push(5) +s=4 +break +case 3:n=[2] +case 4:p=2 +m.as=null +s=7 +return A.f(k.p(),$async$dl) +case 7:m.fr=m.dy=0 +if(!m.Q)m.aI() +s=n.pop() +break +case 5:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$dl,r)}, +p(){var s=0,r=A.p(t.H),q,p=this,o +var $async$p=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:if(p.Q){s=1 +break}p.Q=!0 +o=p.z +o=o==null?null:o.U() +s=3 +return A.f(o instanceof A.v?o:A.bs(o,t.H),$async$p) +case 3:case 1:return A.n(q,r)}}) +return A.o($async$p,r)}, +nq(a){var s,r,q,p=this +t.L.a(a) +s=p.as +if(s!=null){s.$1(a) +return}if(p.at){p.x.$1(a) +return}if(p.ay&&p.ch==null)return +for(r=J.aN(a);r.q();){q=r.gA() +switch(p.fy.a){case 0:if(q===27)p.fy=B.pQ +else p.mP(q) +break +case 1:if(q===91||q===79){p.fy=B.pR +p.go=""}else p.fy=B.ba +break +case 2:if(q>=64&&q<=126){p.mE(A.ak(q),p.go) +p.fy=B.ba}else p.go=p.go+A.ak(q) +break}}}, +mP(a){var s=this,r=s.id +if(r.length!==0){B.b.j(r,a) +if(r.length>=s.k1){s.iP(B.l.aK(r,!0)) +B.b.a0(r) +s.k1=0}return}switch(a){case 13:case 10:s.lR() +break +case 127:case 8:s.lH() +break +case 3:s.iQ() +break +case 4:if(s.cx.length===0)s.w.$0() +break +case 1:s.h8() +break +case 5:s.h7() +break +case 9:s.ev() +break +default:if(a<32)return +if(a<128)s.iP(A.ak(a)) +else{B.b.a0(r) +B.b.j(r,a) +if((a&224)===192)r=2 +else r=(a&240)===224?3:4 +s.k1=r}}}, +mE(a,b){var s,r,q,p=this,o="_histCursor" +switch(a){case"A":s=p.fx +s===$&&A.w(o) +r=p.cx +q=s.rk(B.b.cp(r),B.b.cp(B.b.aq(r,0,p.cy))) +if(q!=null)p.ji(q) +break +case"B":s=p.fx +s===$&&A.w(o) +q=s.pQ() +if(q!=null)p.ji(q) +break +case"C":p.nh() +break +case"D":p.ng() +break +case"H":p.h8() +break +case"F":p.h7() +break +case"~":if(b==="1"||b==="7")p.h8() +else if(b==="4"||b==="8")p.h7() +else if(b==="3")p.m7() +break}}, +iP(a){var s,r=this +B.b.hJ(r.cx,r.cy,a);++r.cy +s=r.fx +s===$&&A.w("_histCursor") +s.ct() +r.aI()}, +lH(){var s=this,r=s.cy +if(r===0)return +B.b.bx(s.cx,r-1);--s.cy +r=s.fx +r===$&&A.w("_histCursor") +r.ct() +s.aI()}, +m7(){var s=this,r=s.cy,q=s.cx +if(r>=q.length)return +B.b.bx(q,r) +r=s.fx +r===$&&A.w("_histCursor") +r.ct() +s.aI()}, +ng(){var s=this,r=s.cy +if(r===0)return +s.cy=r-1 +if(s.db>0){s.aI() +return}s.b.$1("\x1b[D")}, +nh(){var s=this,r=s.cy +if(r>=s.cx.length)return +s.cy=r+1 +if(s.db>0){s.aI() +return}s.b.$1("\x1b[C")}, +h8(){var s=this,r=s.cy +if(r===0)return +if(s.db>0){s.cy=0 +s.aI() +return}s.b.$1("\x1b["+r+"D") +s.cy=0}, +h7(){var s=this,r=s.cx,q=r.length,p=q-s.cy +if(p===0)return +if(s.db>0){s.cy=q +s.aI() +return}s.b.$1("\x1b["+p+"C") +s.cy=r.length}, +ev(){var s=0,r=A.p(t.H),q,p=2,o=[],n=[],m=this,l,k,j,i,h,g,f,e,d,c,b +var $async$ev=A.q(function(a,a0){if(a===1){o.push(a0) +s=p}for(;;)A:switch(s){case 0:c=m.y +if(c==null||m.ch!=null){s=1 +break}h=m.cy +l=h +g=m.cx +f=g.length +for(;;){e=l +if(typeof e!=="number"){q=e.aP() +s=1 +break A}if(e>0){e=l +if(typeof e!=="number"){q=e.l2() +s=1 +break A}--e +if(e>>>0!==e||e>=f){q=A.b(g,e) +s=1 +break A}e=g[e]!==" "}else e=!1 +if(!e)break +e=l +if(typeof e!=="number"){q=e.l2() +s=1 +break A}l=e-1}k=B.b.cp(B.b.aq(g,l,h)) +j=B.b.hA(B.b.aq(g,0,l),new A.r5()) +g=m.z +if(g!=null)g.d7() +p=4 +s=7 +return A.f(c.$2(k,j),$async$ev) +case 7:i=a0 +m.lE(l,k,i) +n.push(6) +s=5 +break +case 4:p=3 +b=o.pop() +n.push(6) +s=5 +break +case 3:n=[2] +case 5:p=2 +g=m.z +if(g!=null)g.cu() +s=n.pop() +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$ev,r)}, +lE(a,b,c){var s,r,q,p=this +t.a.a(c) +s=J.at(c) +if(s.gK(c)){p.b.$1("\x07") +return}if(s.gn(c)===1){r=s.gI(c) +p.jj(a,r,!B.a.aA(r,"/")) +return}q=A.DL(c) +if(q.length>b.length)p.jj(a,q,!1) +else{p.b.$1("\r\n"+s.S(c," ")+"\r\n") +p.fr=p.dy=0 +p.aI()}}, +jj(a,b,c){var s,r=this,q=t.cS +q=A.d6(new A.ch(b),q.h("a(i.E)").a(A.nZ()),q.h("i.E"),t.N) +s=A.N(q,A.l(q).h("i.E")) +if(c)B.b.j(s," ") +B.b.bI(r.cx,a,r.cy,s) +r.cy=a+s.length +q=r.fx +q===$&&A.w("_histCursor") +q.ct() +r.aI()}, +lR(){var s,r=this,q=r.cx,p=B.b.cp(q) +r.b.$1("\r\n") +B.b.a0(q) +r.fr=r.dy=r.cy=0 +q=r.fx +q===$&&A.w("_histCursor") +q.ct() +s=r.ch +if(s!=null){r.ch=null +s.V(p) +return}r.eo(p)}, +iQ(){var s,r,q=this +q.b.$1("^C\r\n") +B.b.a0(q.cx) +q.fr=q.dy=q.cy=0 +s=q.fx +s===$&&A.w("_histCursor") +s.ct() +r=q.ch +if(r!=null){q.ch=null +r.V("") +return}q.r.$0()}, +eo(a){return this.m8(a)}, +m8(a){var s=0,r=A.p(t.H),q=1,p=[],o=[],n=this,m +var $async$eo=A.q(function(b,c){if(b===1){p.push(c) +s=q}for(;;)switch(s){case 0:n.ay=!0 +q=2 +m=n.c.$1(a) +s=5 +return A.f(m instanceof A.v?m:A.bs(m,t.H),$async$eo) +case 5:o.push(4) +s=3 +break +case 2:o=[1] +case 3:q=1 +n.ay=!1 +s=o.pop() +break +case 4:return A.n(null,r) +case 1:return A.m(p.at(-1),r)}}) +return A.o($async$eo,r)}, +ji(a){var s,r=this.cx +B.b.a0(r) +s=t.cS +s=A.d6(new A.ch(a),s.h("a(i.E)").a(A.nZ()),s.h("i.E"),t.N) +s=A.N(s,A.l(s).h("i.E")) +B.b.C(r,s) +this.cy=r.length +this.aI()}, +kp(a){var s +t.Q.a(a) +s=this.at +if(s){a.$0() +return}this.fO() +a.$0() +this.aI()}, +aI(){var s,r,q,p=this +if(p.ax&&p.ch==null){p.fO() +return}if(p.db>0){p.o6() +return}s=p.cx +r=p.b +r.$1("\r\x1b[K"+p.CW+B.b.cp(s)) +q=s.length-p.cy +if(q>0)r.$1("\x1b["+q+"D")}, +o6(){var s,r,q=this,p=q.db,o=q.dx,n=q.cx,m=n.length,l=q.cy,k=o+m,j=B.c.dm(k+p-1,p),i=B.c.dm(o+q.fr,p),h=q.dy +i=h-(i+1) +i=i>0?"\x1b["+i+"B":"" +for(--h,s=0;s0&&B.c.bc(k,p)===0){n+="\n\r";++j}}else{k=o+l +i=j-(B.c.dm(k,p)+1) +if(i>0)n+="\x1b["+i+"A" +r=B.c.bc(k,p) +n+=r>0?"\r\x1b["+r+"C":"\r"}q.fr=l +q.dy=j +q.b.$1(n.charCodeAt(0)==0?n:n)}, +fO(){var s,r,q=this,p=q.db +if(p<=0){q.b.$1("\r\x1b[K") +q.fr=q.dy=0 +return}p=B.c.dm(q.dx+q.fr,p) +s=q.dy +p=s-(p+1) +p=p>0?"\x1b["+p+"B":"" +for(--s,r=0;r")),t.kQ) +s=A.N(r,A.l(r).c) +B.b.bn(s,new A.ra()) +return s}, +fp(a){var s,r,q,p,o +for(s=A.e([a.gT()],t.s),B.b.C(s,a.ghl()),r=s.length,q=this.a,p=0;p1){f=B.b.e6(n,new A.vU()) +e=B.b.e6(n,new A.vV()) +m.$1("--- "+l+" pings \xb7 min "+f+"ms \xb7 avg "+B.p.cv(B.b.e6(n,new A.vW())/n.length)+"ms \xb7 max "+e+"ms")}case 1:return A.n(q,r)}}) +return A.o($async$B,r)}} +A.vU.prototype={ +$2(a,b){A.a4(a) +A.a4(b) +return ab?a:b}, +$S:23} +A.vW.prototype={ +$2(a,b){return A.a4(a)+A.a4(b)}, +$S:23} +A.nH.prototype={ +gT(){return"tunnel"}, +gaz(){return"Expose this node's TCP port through the Hub"}, +gda(){return":tunnel Forward a node TCP port through a public Hub port.\n\n :tunnel [--public-port N] [--secure] Expose this node's localhost:\n :tunnel ls List your active tunnels on this node\n :tunnel close Close a tunnel by id or prefix"}, +B(a,b){return this.rb(a,t.a.a(b))}, +rb(a,b){var s=0,r=A.p(t.H),q,p=this +var $async$B=A.q(function(c,d){if(c===1)return A.m(d,r) +for(;;)switch(s){case 0:if(b.length===0){a.w.$1("usage: :tunnel [--public-port N] [--secure] | :tunnel ls | :tunnel close ") +s=1 +break}case 3:switch(B.b.gI(b)){case"ls":s=5 +break +case"list":s=6 +break +case"close":s=7 +break +case"rm":s=8 +break +default:s=9 +break}break +case 5:case 6:s=10 +return A.f(p.ew(a),$async$B) +case 10:s=4 +break +case 7:case 8:s=11 +return A.f(p.ey(a,B.b.b2(b,1)),$async$B) +case 11:s=4 +break +case 9:s=12 +return A.f(p.eF(a,B.b.gI(b)==="open"?B.b.b2(b,1):b),$async$B) +case 12:case 4:case 1:return A.n(q,r)}}) +return A.o($async$B,r)}, +eF(a,b){return this.nO(a,t.a.a(b))}, +nO(a0,a1){var s=0,r=A.p(t.H),q,p=2,o=[],n,m,l,k,j,i,h,g,f,e,d,c,b,a +var $async$eF=A.q(function(a2,a3){if(a2===1){o.push(a3) +s=p}for(;;)A:switch(s){case 0:d=null +c=null +b=!1 +for(j=0;i=a1.length,j=i){a0.w.$1("usage: :tunnel [--public-port N] [--secure]") +s=1 +break A}c=A.bJ(a1[j],null) +if(c==null){a0.w.$1("tunnel: invalid --public-port value") +s=1 +break A}}else if(h==="--secure"||h==="-s")b=!0 +else if(d==null)d=A.bJ(h,null)}if(d==null||d<1||d>65535){a0.w.$1("usage: :tunnel [--public-port N] [--secure] (port 1-65535)") +s=1 +break}p=4 +i=a0.gc_() +g=a0.b.a.a +f=d +s=7 +return A.f(i.qy(g,c,b,f),$async$eF) +case 7:n=a3 +m=n.c.length===0?a0.gc_().a.a.gbj():n.c +l=n.f?"https://":"" +i=a0.w +i.$1("Tunnel "+n.gig()+" open: "+A.u(l)+A.u(m)+":"+n.d+" -> "+g+":"+n.e) +i.$1("Close with :tunnel close "+n.gig()) +p=2 +s=6 +break +case 4:p=3 +a=o.pop() +k=A.R(a) +i=A.ap(k) +i=i instanceof A.dH?i.b:J.b9(i) +a0.w.$1("tunnel: "+i) +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$eF,r)}, +ew(a){return this.n8(a)}, +n8(a1){var s=0,r=A.p(t.H),q,p=2,o=[],n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0 +var $async$ew=A.q(function(a2,a3){if(a2===1){o.push(a3) +s=p}for(;;)switch(s){case 0:p=4 +s=7 +return A.f(a1.gc_().qf(),$async$ew) +case 7:n=a3 +i=J.yv(n,new A.w4(a1)) +h=A.N(i,i.$ti.h("i.E")) +m=h +if(J.aE(m)===0){a1.w.$1("No tunnels on "+a1.b.a.a+".") +s=1 +break}for(i=m,g=i.length,f=a1.w,e=a1.a,d=0;d "+l.d+":"+l.e)}p=2 +s=6 +break +case 4:p=3 +a0=o.pop() +j=A.R(a0) +i=A.ap(j) +i=i instanceof A.dH?i.b:J.b9(i) +a1.w.$1("tunnel: "+i) +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$ew,r)}, +ey(a,b){return this.lO(a,t.a.a(b))}, +lO(a,b){var s=0,r=A.p(t.H),q,p=2,o=[],n,m,l,k,j +var $async$ey=A.q(function(c,d){if(c===1){o.push(d) +s=p}for(;;)switch(s){case 0:if(b.length===0){a.w.$1("usage: :tunnel close ") +s=1 +break}p=4 +s=7 +return A.f(a.gc_().pB(B.b.gI(b)),$async$ey) +case 7:n=d +l=n.a?"Tunnel closed.":"tunnel: "+n.b +a.w.$1(l) +p=2 +s=6 +break +case 4:p=3 +j=o.pop() +m=A.R(j) +l=A.ap(m) +l=l instanceof A.dH?l.b:J.b9(l) +a.w.$1("tunnel: "+l) +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$ey,r)}} +A.w4.prototype={ +$1(a){return t.r_.a(a).b===this.a.b.a.a}, +$S:89} +A.nG.prototype={ +gT(){return"tree"}, +gaz(){return"Print a sized directory tree of a remote path"}, +gda(){return":tree [path] [-L depth] [-a]\n Print a tree of a remote path (default: current dir) showing the\n size of every file and the aggregated size of every directory.\n -L depth limit display depth (default 3; 0 = unlimited)\n -a include hidden entries (dot-files)"}, +B(a,b){return this.ra(a,t.a.a(b))}, +ra(b1,b2){var s=0,r=A.p(t.H),q,p=2,o=[],n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0 +var $async$B=A.q(function(b3,b4){if(b3===1){o.push(b4) +s=p}for(;;)A:switch(s){case 0:for(k=3,j=!1,i=null,h=0;g=b2.length,h1&&B.a.aA(a,"/"))a=B.a.m(a,0,g-1) +g=b1.b +a0=g.d.a.toLowerCase() +a1=B.a.t(a0,"mac")||B.a.t(a0,"darwin")?"stat -f '%HT|%z|%N'":"stat -c '%F|%s|%n'" +a2=A.J3(a) +a3=B.a.u(a2,".")&&a2!=="."&&a2!==".." +if(!j&&!a3)a4="find "+("'"+A.ad(a,"'","'\\''")+"'")+" \\( -name '.?*' -prune \\) -o -exec "+a1+" {} +" +else a4="find "+("'"+A.ad(a,"'","'\\''")+"'")+" -exec "+a1+" {} +" +n=a4 +m=null +p=4 +s=7 +return A.f(b1.gc_().pU(n,g.a.a),$async$B) +case 7:m=b4 +p=2 +s=6 +break +case 4:p=3 +b0=o.pop() +l=A.R(b0) +b1.w.$1("tree failed: "+A.u(l)) +s=1 +break +s=6 +break +case 3:s=2 +break +case 6:if(m.a!==0){a6=B.a.G(B.l.aK(m.c,!0)) +g=a6.length===0?"tree: failed (exit "+m.a+")":"tree: "+a6 +b1.w.$1(g) +s=1 +break}a7=A.IZ(B.l.aK(m.b,!0)) +if(a7.length===0){b1.w.$1("No such remote file or directory: "+a) +s=1 +break}for(g=A.J4(a,a7,k),b=g.length,a8=b1.w,a9=0;a9j)return +j=a.f +s=A.l(j).h("c2<2>") +r=A.N(new A.c2(j,s),s.h("i.E")) +B.b.bn(r,new A.x8()) +for(j=k.a,s=k.c,q=c+1,p=0;o=r.length,p/dev/null)" "$(git status --porcelain 2>/dev/null | awk \'BEGIN{s=0;m=0;u=0}/^\\?\\?/{u++;next}{if(substr($0,1,1)!=" ")s++;if(substr($0,2,1)!=" ")m++}END{if(s+m+u>0)printf "+%d ~%d ?%d",s,m,u}\')" "$([ "$(id -u 2>/dev/null)" = 0 ] && echo root)"'}, +hV(a){var s=a.gcz() +return"printf '%s%s\\n' '"+s.a+"' '"+s.b+"'"}, +jO(a){var s=a.gcz() +return"__omny_ec=$?; printf '%s%s%s\\t%s\\t%s\\t%s\\t%s\\n' '"+s.a+"' '"+s.b+'\' "$PWD" "$(git rev-parse --abbrev-ref HEAD 2>/dev/null)" "$(git status --porcelain 2>/dev/null | awk \'BEGIN{s=0;m=0;u=0}/^\\?\\?/{u++;next}{if(substr($0,1,1)!=" ")s++;if(substr($0,2,1)!=" ")m++}END{if(s+m+u>0)printf "+%d ~%d ?%d",s,m,u}\')" "$([ "$(id -u 2>/dev/null)" = 0 ] && echo root)" "$__omny_ec"'}, +fA(a,b,c){var s=A.ad(a,"'","'\\''") +return"stty echo 2>/dev/null ; "+("eval '"+s+"' ; "+c)+" ; stty -echo 2>/dev/null"}, +hq(a,b){var s="'"+A.ad(a,"'","'\\''")+"'" +if(!b)return"w="+s+'; for p in "$w"*; do [ -e "$p" ] || continue; if [ -d "$p" ]; then printf "%s/\\n" "$p"; else printf "%s\\n" "$p"; fi; done' +return"w="+s+'; case "$w" in */*) for p in "$w"*; do [ -e "$p" ] || continue; if [ -d "$p" ]; then printf "%s/\\n" "$p"; else printf "%s\\n" "$p"; fi; done ;; *) IFS=:; for d in $PATH; do [ -d "$d" ] || continue; for p in "$d"/"$w"*; do [ -f "$p" ] && [ -x "$p" ] && printf "%s\\n" "${p##*/}"; done; done | sort -u ;; esac'}} +A.m2.prototype={ +ghI(){return"function prompt { '' }; $ErrorActionPreference='Continue'"}, +d1(a){var s=a.gcz() +return"$o=[Console]::Out;$br=(\"$(git rev-parse --abbrev-ref HEAD 2>$null)\").Trim();$st=@(git status --porcelain 2>$null);$s=0;$m=0;$u=0;foreach($l in $st){if($l -match '^\\?\\?'){$u++}else{if($l.Length -ge 1 -and $l[0] -ne ' '){$s++};if($l.Length -ge 2 -and $l[1] -ne ' '){$m++}}};$stat=if($s+$m+$u -gt 0){\"+$s ~$m ?$u\"}else{$null};$pv=if(([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)){'root'}else{$null};"+("$o.Write('"+s.a+"'+'"+s.b+"'+$PWD.Path+[char]9+$br+[char]9+$stat+[char]9+$pv+[char]10);$o.Flush()")}, +hV(a){var s=a.gcz() +return"[Console]::Out.Write('"+s.a+"'+'"+s.b+"'+[char]10);[Console]::Out.Flush()"}, +fA(a,b,c){return a+" ; "+c}, +hq(a,b){var s=A.ad(a,"'","''"),r=!b||B.a.t(a,"/")||B.a.t(a,"\\")?"$i=[Math]::Max($w.LastIndexOf('/'),$w.LastIndexOf('\\'));if($i -ge 0){$pre=$w.Substring(0,$i+1);$leaf=$w.Substring($i+1)}else{$pre='';$leaf=$w};$base=if($pre){$pre}else{'.'};Get-ChildItem -Force -LiteralPath $base -ErrorAction SilentlyContinue|Where-Object{$_.Name -like ($leaf+'*')}|ForEach-Object{$p=$pre+$_.Name;if($_.PSIsContainer){\"$p/\"}else{\"$p\"}}":"Get-Command -All -CommandType Application,Cmdlet,Function,Alias -Name ($w+'*') -ErrorAction SilentlyContinue|ForEach-Object{$_.Name}|Sort-Object -Unique" +return"$w="+("'"+s+"'")+";"+r}} +A.kH.prototype={ +ghI(){return"prompt $G"}, +d1(a){var s=a.gcz() +return'^]',!0),r=A.ad(a,s,"") +if(!b||B.a.t(a,"/")||B.a.t(a,"\\"))return"for /d %A in ("+r+"*) do @echo %A/ & for %A in ("+r+'*) do @if not exist "%A\\" @echo %A' +return'for /f "delims=" %A in (\'where "'+r+"*\" 2^>nul') do @echo %~nxA"}} +A.wM.prototype={ +$1(a){var s,r,q,p,o,n,m,l,k,j=this +if(!(a>=0&&a<5))return A.b(B.bN,a) +s=B.bN[a].a +r=s[0] +q=s[1] +p=s[2] +o=s[3] +n=r?"@"+j.a:"" +m=q?j.b:j.c +l=o&&j.d?" "+j.e:"" +s=j.f +k=s==null||!p?"":" git("+s+l+")" +return j.r+n+":"+m+k+j.w+" $ "}, +$S:41} +A.nP.prototype={ +bG(){var s=0,r=A.p(t.y),q +var $async$bG=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:q=!1 +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$bG,r)}, +p(){var s=0,r=A.p(t.H) +var $async$p=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:return A.n(null,r)}}) +return A.o($async$p,r)}, +$iz5:1} +A.m6.prototype={ +v(){var s=this.c +s=A.N(s,A.l(s).c) +B.b.di(s) +return A.G(["id",this.a.a,"displayName",this.b,"roles",s],t.N,t.z)}} +A.iZ.prototype={ +v(){return A.G(["term",this.a,"cols",this.b,"rows",this.c],t.N,t.z)}} +A.j6.prototype={ +R(){return"ShellFamily."+this.b}} +A.aB.prototype={ +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"sessionId",r.a) +q.i(0,"shortId",r.b) +q.i(0,"nodeId",r.c) +q.i(0,"ownerUserId",r.d) +q.i(0,"mode",r.e.b) +q.i(0,"createdAt",r.f.av().b_()) +s=r.r +if(s!=null)q.i(0,"detachedAt",s.av().b_()) +s=r.w +if(s!=null)q.i(0,"expiresAt",s.av().b_()) +q.i(0,"state",r.x.b) +s=r.y +if(s!=null)q.i(0,"currentCommand",s) +s=r.z +if(s!=null)q.i(0,"currentCwd",s) +return q}} +A.rp.prototype={ +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"shells",r.a) +q.i(0,"features",r.b) +q.i(0,"maxSessions",r.c) +s=r.d +if(s!=null)q.i(0,"directEndpoint",s) +return q}} +A.aZ.prototype={ +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"nodeId",r.a.a) +s=r.b +if(s!=null)q.i(0,"uid",s.a) +q.i(0,"displayName",r.c) +q.i(0,"platform",r.d.v()) +q.i(0,"labels",r.e) +q.i(0,"online",r.f) +s=r.r +if(s!=null)q.i(0,"capabilities",s.v()) +return q}} +A.rM.prototype={ +v(){var s=this +return A.G(["os",s.a,"arch",s.b,"agentVersion",s.c,"hostname",s.d],t.N,t.z)}} +A.eN.prototype={ +R(){return"SessionMode."+this.b}} +A.dL.prototype={ +R(){return"SessionState."+this.b}} +A.bz.prototype={ +v(){var s=this,r=A.I(t.N,t.z) +r.i(0,"tunnelId",s.a) +r.i(0,"nodeId",s.b) +r.i(0,"ownerUserId",s.c) +r.i(0,"targetHost",s.d) +r.i(0,"targetPort",s.e) +r.i(0,"publicHost",s.f) +r.i(0,"publicPort",s.r) +if(s.w)r.i(0,"secure",!0) +r.i(0,"createdAt",s.x.av().b_()) +return r}} +A.lM.prototype={ +L(a,b){if(b==null)return!1 +return b instanceof A.lM&&b.a===this.a}, +gE(a){return B.a.gE(this.a)}, +l(a){return this.a}} +A.lR.prototype={ +L(a,b){if(b==null)return!1 +return b instanceof A.lR&&b.a===this.a}, +gE(a){return B.a.gE(this.a)}, +l(a){return this.a}} +A.m7.prototype={ +L(a,b){if(b==null)return!1 +return b instanceof A.m7&&b.a===this.a}, +gE(a){return B.a.gE(this.a)}, +l(a){return this.a}} +A.mj.prototype={ +L(a,b){if(b==null)return!1 +return b instanceof A.mj&&b.a===this.a}, +gE(a){return B.a.gE(this.a)}, +l(a){return this.a}} +A.mC.prototype={ +hu(a){var s=0,r=A.p(t.E4),q,p=this +var $async$hu=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:q=new A.dt("token",p.a,p.b,null,null) +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$hu,r)}, +$iCZ:1} +A.ji.prototype={ +lv(a,b){var s=this,r=s.a.r.b +r===$&&A.w("_foreign") +r=r.b +r===$&&A.w("_streamController") +new A.ac(r,A.l(r).h("ac<1>")).au(new A.v8(s),!1,s.gmD(),new A.v9(s))}, +af(a){var s +if(!this.e)return +s=this.a.gih() +s.a.j(0,A.l(s).h("d_.T").a(this.b.cX(a)))}, +p(){var s=0,r=A.p(t.H),q,p=this +var $async$p=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:if(!p.e){s=1 +break}p.e=!1 +s=3 +return A.f(p.a.gih().bs(null,null),$async$p) +case 3:p.h0() +case 1:return A.n(q,r)}}) +return A.o($async$p,r)}, +h0(){var s,r=this +if(!r.e&&(r.d.a.a&30)!==0)return +r.e=!1 +s=r.c +if((s.b&4)===0)s.p() +s=r.d +if((s.a.a&30)===0)s.bt()}, +$irC:1} +A.v8.prototype={ +$1(a){var s,r,q +try{s=this.a +r=a==null?A.ap(a):a +s.c.j(0,s.b.b5(r))}catch(q){}}, +$S:10} +A.v9.prototype={ +$1(a){A.ap(a) +return this.a.h0()}, +$S:36} +A.kB.prototype={ +dh(a){if(this.x)return +this.b.$1(new A.aL(a))}, +cG(a,b,c){var s,r,q,p,o +t.L.a(b) +if(this.x||J.bZ(b))return +s=t.p.b(b)?b:new Uint8Array(A.c9(b)) +for(r=s.length,q=this.r,p=0;p=B.b.gI(o).b.length))break +s=B.b.bx(o,0) +r=s.b +q=r.length +p.w=p.w-q +m.$1(new A.en(1,s.a,n,r)) +r=s.c +if(r!=null){q=r.c+=q +r.b.$1(q)}}if(o.length===0)p.iD()}, +iD(){var s,r,q=this.y,p=q.length +if(p===0)return +for(s=0;s")).au(s.gmc(),!1,s.gnw(),new A.p_())) +s.d!==$&&A.ax("_sub") +s.d=r}, +iG(a){var s=null,r=t.p,q=new A.kB(a,this.a.gkS(),A.ci(s,s,!1,r),A.ci(s,s,!1,r),A.ci(s,s,!1,r),A.ci(s,s,!1,t.An),A.e([],t.BL),A.e([],t.Fz)) +this.b.i(0,a,q) +return q}, +dN(a){var s=0,r=A.p(t.H),q=this,p +var $async$dN=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:p=q.b.a5(0,a) +s=p!=null?2:3 +break +case 2:s=4 +return A.f(p.p(),$async$dN) +case 4:case 3:return A.n(null,r)}}) +return A.o($async$dN,r)}, +md(a){var s,r,q,p,o +t.nl.a(a) +s=a.ga9() +r=s!=null&&s!==0?this.b.k(0,s):null +if(r!=null){A:{q=a instanceof A.en +p=q?a:null +if(q){r.pM(p) +break A}q=a instanceof A.aL +o=q?a.a:null +if(q){if(o instanceof A.dw){q=o.c +r.w+=q +r.iM()}r.pL(o)}}return}if(a instanceof A.aL&&(this.c.c&4)===0)this.c.j(0,a.a)}, +nx(){var s=this.c +if((s.c&4)===0)s.p()}, +ah(){var s=0,r=A.p(t.H),q,p=this,o,n,m,l +var $async$ah=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:if(p.f){s=1 +break}p.f=!0 +o=p.d +o===$&&A.w("_sub") +s=3 +return A.f(o.U(),$async$ah) +case 3:o=p.b +n=A.l(o).h("c2<2>") +m=A.N(new A.c2(o,n),n.h("i.E")) +o.a0(0) +o=m.length,l=0 +case 4:if(!(l>") +s=A.N(new A.a2(s,r.h("h(1)").a(new A.rz()),q),q.h("Q.E")) +return A.G(["nodes",s],t.N,t.z)}} +A.rz.prototype={ +$1(a){return t.qn.a(a).v()}, +$S:96} +A.eO.prototype={ +gF(){return"session.open"}, +ga9(){return this.a}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"nodeId",r.b) +q.i(0,"mode",r.c.b) +s=r.d +if(s!=null)q.i(0,"command",s) +s=r.e +if(s.length!==0)q.i(0,"args",s) +s=r.f +if(s.gZ(s))q.i(0,"env",s) +s=r.r +if(s!=null)q.i(0,"cwd",s) +s=r.w +if(s!=null)q.i(0,"pty",s.v()) +s=r.x +if(s!=null)q.i(0,"resumeSessionId",s) +s=r.y +if(s!=null)q.i(0,"shellFamily",s.b) +return q}} +A.eP.prototype={ +gF(){return"session.opened"}, +ga9(){return this.a}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"sessionId",r.b) +q.i(0,"pty",r.c) +if(r.d)q.i(0,"altScreen",!0) +s=r.e +if(s!=="posix")q.i(0,"shell",s) +return q}} +A.eQ.prototype={ +gF(){return"session.rejected"}, +ga9(){return this.a}, +v(){return A.G(["reason",this.b,"message",this.c],t.N,t.z)}} +A.he.prototype={ +gF(){return"node.session.open"}, +ga9(){return this.a}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"sessionId",r.b) +q.i(0,"principal",r.c) +q.i(0,"mode",r.d.b) +s=r.e +if(s!=null)q.i(0,"command",s) +s=r.f +if(s.length!==0)q.i(0,"args",s) +s=r.r +if(s.gZ(s))q.i(0,"env",s) +s=r.w +if(s!=null)q.i(0,"cwd",s) +s=r.x +if(s!=null)q.i(0,"pty",s.v()) +s=r.y +if(s!=null)q.i(0,"resumeSessionId",s) +s=r.z +if(s!=null)q.i(0,"shellFamily",s.b) +return q}} +A.hf.prototype={ +gF(){return"node.session.opened"}, +ga9(){return this.a}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"sessionId",r.b) +s=r.c +if(s!=null)q.i(0,"pid",s) +if(r.d)q.i(0,"altScreen",!0) +s=r.e +if(s!=="posix")q.i(0,"shell",s) +return q}} +A.hg.prototype={ +gF(){return"node.session.rejected"}, +ga9(){return this.a}, +v(){return A.G(["sessionId",this.b,"reason",this.c,"message",this.d],t.N,t.z)}} +A.eh.prototype={ +gF(){return"channel.resize"}, +ga9(){return this.a}, +v(){return A.G(["cols",this.b,"rows",this.c],t.N,t.z)}} +A.ei.prototype={ +gF(){return"channel.signal"}, +ga9(){return this.a}, +v(){return A.G(["signal",this.b],t.N,t.z)}} +A.fH.prototype={ +gF(){return"channel.eof"}, +ga9(){return this.a}, +v(){return A.G(["stream",this.b],t.N,t.z)}} +A.eg.prototype={ +gF(){return"channel.exit"}, +ga9(){return this.a}, +v(){var s,r=A.I(t.N,t.z) +r.i(0,"exitCode",this.b) +s=this.c +if(s!=null)r.i(0,"signal",s) +r.i(0,"ts",this.d.av().b_()) +return r}} +A.dv.prototype={ +gF(){return"channel.close"}, +ga9(){return this.a}, +v(){var s,r=A.I(t.N,t.z) +r.i(0,"reason",this.b) +s=this.c +if(s!=null)r.i(0,"message",s) +return r}} +A.dw.prototype={ +gF(){return"channel.window"}, +ga9(){return this.a}, +v(){return A.G(["stream",this.b,"credit",this.c],t.N,t.z)}} +A.hk.prototype={ +gF(){return"error"}, +ga9(){return this.d}, +v(){return A.G(["code",this.a,"message",this.b,"fatal",this.c],t.N,t.z)}} +A.eL.prototype={ +gF(){return"session.detach.request"}, +ga9(){return this.a}, +v(){var s=A.I(t.N,t.z),r=this.b +if(r!=null)s.i(0,"timeoutSeconds",r) +return s}} +A.hc.prototype={ +gF(){return"node.session.detach"}, +ga9(){return this.a}, +v(){var s,r=A.I(t.N,t.z) +r.i(0,"sessionId",this.b) +r.i(0,"principal",this.c) +s=this.d +if(s!=null)r.i(0,"timeoutSeconds",s) +return r}} +A.hd.prototype={ +gF(){return"node.session.detached"}, +ga9(){return this.a}, +v(){var s,r=A.I(t.N,t.z) +r.i(0,"sessionId",this.b) +r.i(0,"shortId",this.c) +s=this.d +if(s!=null)r.i(0,"expiresAt",s.av().b_()) +return r}} +A.eM.prototype={ +gF(){return"session.detached"}, +ga9(){return this.a}, +v(){var s,r=A.I(t.N,t.z) +r.i(0,"sessionId",this.b) +r.i(0,"shortId",this.c) +s=this.d +if(s!=null)r.i(0,"expiresAt",s.av().b_()) +return r}} +A.eq.prototype={ +gF(){return"sessions.list.request"}, +v(){return A.G(["requestId",this.a,"nodeId",this.b],t.N,t.z)}} +A.h4.prototype={ +gF(){return"node.sessions.list.request"}, +v(){return A.G(["requestId",this.a,"principal",this.b],t.N,t.z)}} +A.h5.prototype={ +gF(){return"node.sessions.list.response"}, +v(){var s=this.b,r=A.U(s),q=r.h("a2<1,h>") +s=A.N(new A.a2(s,r.h("h(1)").a(new A.rq()),q),q.h("Q.E")) +return A.G(["requestId",this.a,"sessions",s],t.N,t.z)}} +A.rq.prototype={ +$1(a){return t.k.a(a).v()}, +$S:43} +A.er.prototype={ +gF(){return"sessions.list.response"}, +v(){var s=this.b,r=A.U(s),q=r.h("a2<1,h>") +s=A.N(new A.a2(s,r.h("h(1)").a(new A.pE()),q),q.h("Q.E")) +return A.G(["requestId",this.a,"sessions",s],t.N,t.z)}} +A.pE.prototype={ +$1(a){return t.k.a(a).v()}, +$S:43} +A.eo.prototype={ +gF(){return"sessions.kill.request"}, +v(){return A.G(["requestId",this.a,"nodeId",this.b,"sessionRef",this.c],t.N,t.z)}} +A.h2.prototype={ +gF(){return"node.sessions.kill.request"}, +v(){return A.G(["requestId",this.a,"principal",this.b,"sessionRef",this.c],t.N,t.z)}} +A.h3.prototype={ +gF(){return"node.sessions.kill.response"}, +v(){var s,r=A.I(t.N,t.z) +r.i(0,"requestId",this.a) +r.i(0,"ok",this.b) +s=this.c +if(s.length!==0)r.i(0,"message",s) +return r}} +A.ep.prototype={ +gF(){return"sessions.kill.response"}, +v(){var s,r=A.I(t.N,t.z) +r.i(0,"requestId",this.a) +r.i(0,"ok",this.b) +s=this.c +if(s.length!==0)r.i(0,"message",s) +return r}} +A.e3.prototype={ +gF(){return"sessions.detach.request"}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"nodeId",r.b) +s=r.c +if(s.length!==0)q.i(0,"sessionRef",s) +s=r.d +if(s!=null)q.i(0,"timeoutSeconds",s) +return q}} +A.h_.prototype={ +gF(){return"node.sessions.detach.request"}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"principal",r.b) +s=r.c +if(s.length!==0)q.i(0,"sessionRef",s) +s=r.d +if(s!=null)q.i(0,"timeoutSeconds",s) +return q}} +A.h0.prototype={ +gF(){return"node.sessions.detach.response"}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"ok",r.b) +s=r.c +if(s.length!==0)q.i(0,"shortId",s) +s=r.d +if(s.length!==0)q.i(0,"message",s) +return q}} +A.e4.prototype={ +gF(){return"sessions.detach.response"}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"ok",r.b) +s=r.c +if(s.length!==0)q.i(0,"shortId",s) +s=r.d +if(s.length!==0)q.i(0,"message",s) +return q}} +A.eR.prototype={ +gF(){return"sessions.screen.request"}, +v(){return A.G(["requestId",this.a,"nodeId",this.b,"sessionRef",this.c],t.N,t.z)}} +A.hh.prototype={ +gF(){return"node.sessions.screen.request"}, +v(){return A.G(["requestId",this.a,"principal",this.b,"sessionRef",this.c],t.N,t.z)}} +A.hi.prototype={ +gF(){return"node.sessions.screen.response"}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"ok",r.b) +s=r.c +if(s.length!==0)q.i(0,"message",s) +s=r.d +if(s.length!==0)q.i(0,"screen",s) +if(r.e)q.i(0,"altScreen",!0) +return q}} +A.eS.prototype={ +gF(){return"sessions.screen.response"}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"ok",r.b) +s=r.c +if(s.length!==0)q.i(0,"message",s) +s=r.d +if(s.length!==0)q.i(0,"screen",s) +if(r.e)q.i(0,"altScreen",!0) +return q}} +A.cL.prototype={ +v(){return A.G(["host",this.a,"description",this.b],t.N,t.z)}} +A.wk.prototype={ +$1(a){var s=t.f.a(a).ak(0,t.N,t.z) +return new A.cL(A.C(s,"host"),A.C(s,"description"))}, +$S:98} +A.fL.prototype={ +gF(){return"drive.credential.request"}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"nodeId",r.b) +q.i(0,"op",r.c) +s=r.d +if(s!=null)q.i(0,"host",s) +s=r.e +if(s!=null)q.i(0,"credential",s) +return q}} +A.h6.prototype={ +gF(){return"node.drive.credential.request"}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"principal",r.b) +q.i(0,"op",r.c) +s=r.d +if(s!=null)q.i(0,"host",s) +s=r.e +if(s!=null)q.i(0,"credential",s) +return q}} +A.h7.prototype={ +gF(){return"node.drive.credential.response"}, +v(){var s,r,q,p=this,o=A.I(t.N,t.z) +o.i(0,"requestId",p.a) +o.i(0,"ok",p.b) +s=p.c +if(s.length!==0)o.i(0,"message",s) +s=p.d +if(s.length!==0){r=A.U(s) +q=r.h("a2<1,h>") +s=A.N(new A.a2(s,r.h("h(1)").a(new A.ry()),q),q.h("Q.E")) +o.i(0,"entries",s)}return o}} +A.ry.prototype={ +$1(a){return t.ec.a(a).v()}, +$S:44} +A.es.prototype={ +gF(){return"drive.credential.response"}, +v(){var s,r,q,p=this,o=A.I(t.N,t.z) +o.i(0,"requestId",p.a) +o.i(0,"ok",p.b) +s=p.c +if(s.length!==0)o.i(0,"message",s) +s=p.d +if(s.length!==0){r=A.U(s) +q=r.h("a2<1,h>") +s=A.N(new A.a2(s,r.h("h(1)").a(new A.pL()),q),q.h("Q.E")) +o.i(0,"entries",s)}return o}} +A.pL.prototype={ +$1(a){return t.ec.a(a).v()}, +$S:44} +A.wl.prototype={ +$1(a){var s,r,q,p,o=t.f.a(a).ak(0,t.N,t.z),n=A.C(o,"sessionId"),m=A.C(o,"shortId"),l=A.C(o,"nodeId"),k=A.C(o,"ownerUserId"),j=A.A(o,"mode") +j=A.xQ(j==null?"shell":j) +s=A.ey(o,"createdAt") +r=A.ls(o,"detachedAt") +q=A.ls(o,"expiresAt") +p=A.A(o,"state") +return new A.aB(n,m,l,k,j,s,r,q,A.EH(p==null?"detached":p),A.A(o,"currentCommand"),A.A(o,"currentCwd"))}, +$S:100} +A.f4.prototype={ +gF(){return"tunnel.open.request"}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"nodeId",r.b) +q.i(0,"targetHost",r.c) +q.i(0,"targetPort",r.d) +s=r.e +if(s!=null)q.i(0,"publicPort",s) +if(r.f)q.i(0,"secure",!0) +return q}} +A.f5.prototype={ +gF(){return"tunnel.opened"}, +v(){var s=this,r=A.I(t.N,t.z) +r.i(0,"requestId",s.a) +r.i(0,"tunnelId",s.b) +r.i(0,"publicHost",s.c) +r.i(0,"publicPort",s.d) +if(s.e)r.i(0,"secure",!0) +return r}} +A.f6.prototype={ +gF(){return"tunnel.rejected"}, +v(){return A.G(["requestId",this.a,"reason",this.b,"message",this.c],t.N,t.z)}} +A.eZ.prototype={ +gF(){return"tunnel.close.request"}, +v(){return A.G(["requestId",this.a,"tunnelRef",this.b],t.N,t.z)}} +A.f_.prototype={ +gF(){return"tunnel.close.response"}, +v(){var s,r=A.I(t.N,t.z) +r.i(0,"requestId",this.a) +r.i(0,"ok",this.b) +s=this.c +if(s.length!==0)r.i(0,"message",s) +return r}} +A.f2.prototype={ +gF(){return"tunnel.list.request"}, +v(){return A.G(["requestId",this.a],t.N,t.z)}} +A.f3.prototype={ +gF(){return"tunnel.list.response"}, +v(){var s=this.b,r=A.U(s),q=r.h("a2<1,h>") +s=A.N(new A.a2(s,r.h("h(1)").a(new A.uM()),q),q.h("Q.E")) +return A.G(["requestId",this.a,"tunnels",s],t.N,t.z)}} +A.uM.prototype={ +$1(a){return t.r_.a(a).v()}, +$S:101} +A.eD.prototype={ +gF(){return"node.tunnel.connect"}, +ga9(){return this.a}, +v(){var s=this +return A.G(["tunnelId",s.b,"targetHost",s.c,"targetPort",s.d,"principal",s.e],t.N,t.z)}} +A.eF.prototype={ +gF(){return"node.tunnel.connected"}, +ga9(){return this.a}, +v(){return A.G(["tunnelId",this.b],t.N,t.z)}} +A.eE.prototype={ +gF(){return"node.tunnel.connect.failed"}, +ga9(){return this.a}, +v(){var s,r=A.I(t.N,t.z) +r.i(0,"tunnelId",this.b) +r.i(0,"reason",this.c) +s=this.d +if(s.length!==0)r.i(0,"message",s) +return r}} +A.wm.prototype={ +$1(a){var s,r,q,p=t.f.a(a).ak(0,t.N,t.z),o=A.C(p,"tunnelId"),n=A.C(p,"nodeId"),m=A.A(p,"ownerUserId") +if(m==null)m="" +s=A.A(p,"targetHost") +if(s==null)s="localhost" +r=A.dD(p,"targetPort") +q=A.A(p,"publicHost") +if(q==null)q="" +return new A.bz(o,n,m,s,r,q,A.dD(p,"publicPort"),A.b5(p,"secure"),A.ey(p,"createdAt"))}, +$S:102} +A.e6.prototype={ +gF(){return"ai.config.request"}, +v(){return A.G(["requestId",this.a],t.N,t.z)}} +A.e7.prototype={ +gF(){return"ai.config.response"}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"available",r.b) +s=r.c +if(s!=null)q.i(0,"provider",s) +s=r.d +if(s!=null)q.i(0,"model",s) +s=r.e +if(s!=null)q.i(0,"plannerModel",s) +s=r.f +if(s!=null)q.i(0,"executorModel",s) +s=r.r +if(s!=null)q.i(0,"explainerModel",s) +s=r.w +if(s!=null)q.i(0,"baseUrl",s) +s=r.x +if(s!=null)q.i(0,"mode",s) +s=r.y +if(s!=null)q.i(0,"language",s) +return q}} +A.la.prototype={ +R(){return"HttpProxyCredentialMode."+this.b}} +A.ew.prototype={ +gF(){return"http.proxy.request"}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"method",r.b) +q.i(0,"url",r.c) +s=r.d +if(s.gZ(s))q.i(0,"headers",s) +q.i(0,"body",r.e) +s=r.f +if(s!==B.bI)q.i(0,"credentialMode",s.b) +s=r.r +if(s!=null)q.i(0,"provider",s) +return q}} +A.cv.prototype={ +gF(){return"http.proxy.response"}, +v(){var s,r=this,q=A.I(t.N,t.z) +q.i(0,"requestId",r.a) +q.i(0,"statusCode",r.b) +s=r.c +if(s.gZ(s))q.i(0,"headers",s) +s=r.d +if(s.length!==0)q.i(0,"body",s) +s=r.e +if(s!=null)q.i(0,"error",s) +return q}} +A.ir.prototype={ +R(){return"DataOpcode."+this.b}} +A.pX.prototype={ +cX(a){var s,r,q,p,o,n,m +A:{if(a instanceof A.aL){s=a.a +r=s.ga9() +q=A.G(["t",s.gF(),"d",s.v()],t.N,t.z) +if(r!=null)q.i(0,"c",r) +p=B.x.cY(q,null) +break A}if(a instanceof A.en){o=a.d +p=o.length +if(p>65536)A.K(A.bp("Data payload "+p+" exceeds max 65536","malformed_frame")) +n=10+p +m=new Uint8Array(n) +m[0]=a.a&255 +m[1]=a.b.c&255 +A.yH(m,2,a.c) +A.yH(m,6,p) +B.H.bK(m,10,n,o) +p=m +break A}p=null}return p}, +b5(a){var s,r,q,p,o,n,m,l="malformed_frame" +if(typeof a=="string")return this.pH(a) +s=t.L +if(s.b(a)){s.a(a) +r=t.p.b(a)?a:new Uint8Array(A.c9(a)) +s=r.length +if(s<10)A.K(B.mN) +if(0>=s)return A.b(r,0) +q=r[0] +if(1>=s)return A.b(r,1) +p=A.D2(r[1]) +o=A.yG(r,2) +n=A.yG(r,6) +m=s-10 +if(n!==m)A.K(A.bp("Data frame length mismatch: declared "+n+", got "+m,l)) +if(m>65536)A.K(A.bp("Data payload "+m+" exceeds max 65536",l)) +return new A.en(q,p,o,A.zA(r,10,null))}throw A.d(B.mR)}, +pH(a){var s,r,q,p,o,n,m,l,k,j=null,i=null +try{i=B.x.bH(a,j)}catch(r){q=A.R(r) +if(t.Bj.b(q)){s=q +throw A.d(A.bp("Invalid control JSON: "+s.ghO(),j))}else throw r}q=t.f +if(!q.b(i))throw A.d(B.mL) +p=t.N +o=t.z +n=i.ak(0,p,o) +m=n.k(0,"t") +if(typeof m!="string")throw A.d(B.mM) +l=this.a.k(0,m) +if(l==null)throw A.d(A.bp("Unknown control message type: "+m,j)) +k=A.hT(n.k(0,"c"))?A.a4(n.k(0,"c")):j +return new A.aL(l.$2(k,q.b(n.k(0,"d"))?q.a(n.k(0,"d")).ak(0,p,o):A.I(p,o)))}} +A.d7.prototype={} +A.aL.prototype={ +ga9(){return this.a.ga9()}} +A.en.prototype={ +ga9(){return this.c}} +A.dH.prototype={ +l(a){return A.o1(this).l(0)+"("+this.a+"): "+this.b}, +$iaf:1} +A.cw.prototype={} +A.ie.prototype={} +A.j2.prototype={} +A.mD.prototype={} +A.dN.prototype={} +A.r3.prototype={ +$2(a,b){return new A.V(J.b9(a),J.b9(b),t.q)}, +$S:103} +A.r2.prototype={ +$1(a){return J.b9(a)}, +$S:104} +A.u1.prototype={} +A.ib.prototype={ +b1(){var s=this,r=s.r,q=s.a,p=q.r,o=p.c.b +B.b.j(r,new A.aA(o,A.l(o).h("aA<1>")).aE(new A.oF(s))) +o=q.b.c.b +B.b.j(r,new A.aA(o,A.l(o).h("aA<1>")).aE(new A.oG(s))) +q=q.d.d.b +B.b.j(r,new A.aA(q,A.l(q).h("aA<1>")).aE(new A.oH(s))) +p.b1() +s.hd()}, +hd(){var s,r,q=this.a,p=q.b.c.a.a===B.ai +q=q.r +s=q.c.a +if(!p&&s.a!=="/login"){q.kq("/login") +return}if(p){r=s.a +r=r==="/login"||r.length===0}else r=!1 +if(r){q.kq("/nodes") +return}this.jg() +this.nf(s,p)}, +nf(a,b){var s,r,q,p=this,o=""+b+":"+a.b +if(o===p.f&&p.e!=null)return +p.f=o +s=p.e +if(s!=null)s.ah() +s=p.ow(a,b) +p.e=s +r=p.d +r===$&&A.w("_main") +s=s.gdS() +A.cq(r) +A.j(r.appendChild(s)) +s=v.G +q=A.aS(A.j(s.document).documentElement) +if(q!=null)q.scrollTop=0 +s=A.aS(A.j(s.document).body) +if(s!=null)s.scrollTop=0 +r.scrollTop=0}, +ow(a,b){var s,r,q,p,o,n=this,m=null +if(!b)return A.DR(n.a) +switch(a.a){case"/nodes/:id/sessions/:sid":s=a.c +r=s.k(0,"id") +if(r==null)r="" +s=s.k(0,"sid") +if(s==null)s="" +return A.EI(n.a,r,s) +case"/nodes/:id/sessions":s=a.c.k(0,"id") +if(s==null)s="" +return A.EK(n.a,s) +case"/nodes/:id":s=a.c.k(0,"id") +if(s==null)s="" +return A.E2(n.a,s) +case"/nodes":default:s=n.a +r=new A.iT(s) +q=A.dY("list") +r.c=q +s=s.c +p=A.ar("Refresh",m,m,!1,s.ge7(),!1) +r.d=p +o=t.O +r.b=A.t("div",m,m,A.e([A.t("div",m,m,A.e([A.t("h1",m,m,B.h,m,m,m,m,"Nodes"),A.t("div",m,m,B.h,"grow",m,m,m,m),p],o),"toolbar",m,m,m,m),q],o),"stack",m,m,m,m) +o=s.c +q=o.b +r.e=new A.aA(q,A.l(q).h("aA<1>")).aE(r.gnl()) +r.iZ(o.a) +s.e_() +return r}}, +jg(){var s,r,q=this,p=null,o=q.a,n=o.b.c.a.a===B.ai,m=t.O,l=A.e([A.t("div",p,p,A.e([A.t("span",p,p,B.h,"dot",p,p,p,p),A.j(new v.G.Text("OmnyShell"))],m),"brand",p,p,p,p),A.t("div",p,p,B.h,"spacer",p,p,p,p)],m) +if(n){o=o.a +m=o.c +s=m==null?p:m.a.a +if(s==null)s="" +o=o.d +o=o==null?p:o.gbj() +B.b.j(l,A.t("span",p,p,B.h,"meta hide-sm",p,p,p,(o==null?"":o)+" \xb7 "+s))}B.b.j(l,A.ar("\u2699","Settings","icon ghost settings-icon",!1,new A.oE(q),!1)) +B.b.j(l,q.p_()) +if(n)B.b.j(l,A.ar("Sign out",p,"ghost btn-sm",!1,q.gnb(),!1)) +o=q.c +o===$&&A.w("_header") +A.cq(o) +for(m=l.length,r=0;r()").a(a),b,b)}, +mC(a,b,c){var s=0,r=A.p(c),q,p=2,o=[],n,m,l,k +var $async$be=A.q(function(d,e){if(d===1){o.push(e) +s=p}for(;;)switch(s){case 0:p=4 +s=7 +return A.f(a.$0(),$async$be) +case 7:m=e +q=m +s=1 +break +p=2 +s=6 +break +case 4:p=3 +k=o.pop() +n=A.R(k) +m=A.ko(n) +throw A.d(m) +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$be,r)}, +sqp(a){this.f=t.Z.a(a)}} +A.rG.prototype={ +$0(){return this.a.gbi().qc(this.b)}, +$S:111} +A.rE.prototype={ +$0(){return this.a.gbi().fb()}, +$S:112} +A.rH.prototype={ +$0(){return this.a.gbi().qe(this.b)}, +$S:113} +A.rF.prototype={ +$0(){return this.a.gbi().q9(this.b,this.c)}, +$S:114} +A.rJ.prototype={ +$0(){return this.a.gbi().qE(this.b,this.c)}, +$S:115} +A.rD.prototype={ +$0(){return this.a.gbi().pO(this.b,this.c)}, +$S:116} +A.rI.prototype={ +$0(){var s=this +return s.a.gbi().qt(B.bU,s.b,new A.iZ("xterm-256color",s.c,s.d))}, +$S:48} +A.rK.prototype={ +$0(){var s=this +return s.a.gbi().qu(B.bU,s.b,new A.iZ("xterm-256color",s.d,s.e),s.c)}, +$S:48} +A.dJ.prototype={} +A.wu.prototype={ +$1(a){return A.r(a).length!==0}, +$S:1} +A.t4.prototype={ +b1(){A.bC(this.b,"hashchange",new A.t5(this)) +this.eU()}, +aF(a){var s="#"+(B.a.u(a,"/")?a:"/"+a),r=this.b +if(A.r(A.j(r.location).hash)===s)this.eU() +else A.j(r.location).hash=s}, +kq(a){var s=B.a.u(a,"/")?a:"/"+a +A.j(this.b.location).replace("#"+s) +this.eU()}, +eU(){var s=A.B3(this.a,A.AZ(A.r(A.j(this.b.location).hash))) +this.c.sae(s) +return s}} +A.t5.prototype={ +$1(a){A.j(a) +return this.a.eU()}, +$S:2} +A.ov.prototype={ +ff(){var s=0,r=A.p(t.aF),q,p=2,o=[],n=this,m,l,k +var $async$ff=A.q(function(a,b){if(a===1){o.push(b) +s=p}for(;;)switch(s){case 0:p=4 +s=7 +return A.f(n.b.fb(),$async$ff) +case 7:m=b +q=m +s=1 +break +p=2 +s=6 +break +case 4:p=3 +k=o.pop() +q=null +s=1 +break +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$ff,r)}} +A.fX.prototype={ +R(){return"LoadStatus."+this.b}} +A.b4.prototype={} +A.fD.prototype={ +R(){return"AuthStatus."+this.b}} +A.ct.prototype={} +A.kw.prototype={ +ns(){var s=this.c,r=s.a +if(r.a!==B.ai)return +s.sae(new A.ct(B.bm,r.c,B.eM))}, +e0(a,b,c,d){return this.qi(a,b,c,d)}, +qi(a,b,c,d){var s=0,r=A.p(t.H),q=1,p=[],o=this,n,m,l,k,j,i,h,g,f +var $async$e0=A.q(function(e,a0){if(e===1){p.push(a0) +s=q}for(;;)switch(s){case 0:g=o.c +g.sae(B.f9) +q=3 +j=o.a +s=6 +return A.f(j.dO(a,b,d),$async$e0) +case 6:n=a0 +m=j.d.l(0) +j=o.b.b.a +j.setItem("omnyshell.hub",a) +j.setItem("omnyshell.principal",b) +i=c?"true":"false" +j.setItem("omnyshell.rememberToken",i) +if(c)j.setItem("omnyshell.token."+A.r(m),d) +else j.removeItem("omnyshell.token."+A.r(m)) +g.sae(new A.ct(B.ai,m,null)) +q=1 +s=5 +break +case 3:q=2 +f=p.pop() +l=A.R(f) +k=A.ko(l) +g.sae(new A.ct(B.bm,null,k)) +s=5 +break +case 2:s=1 +break +case 5:return A.n(null,r) +case 1:return A.m(p.at(-1),r)}}) +return A.o($async$e0,r)}, +fk(){var s=0,r=A.p(t.H),q=this,p,o,n +var $async$fk=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:p=q.a +o=p.d +n=o==null?null:o.l(0) +s=2 +return A.f(p.f9(),$async$fk) +case 2:if(n!=null)q.b.b.a.removeItem("omnyshell.token."+n) +q.b.b.a.setItem("omnyshell.rememberToken","false") +q.c.sae(B.cF) +return A.n(null,r)}}) +return A.o($async$fk,r)}, +fw(){var s=0,r=A.p(t.y),q,p=this,o,n,m,l,k,j +var $async$fw=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:j=p.b.b.a +if(A.Y(j.getItem("omnyshell.rememberToken"))!=="true"){q=!1 +s=1 +break}o=A.Y(j.getItem("omnyshell.hub")) +m=A.Y(j.getItem("omnyshell.principal")) +if(o==null||m==null){q=!1 +s=1 +break}n=null +try{n=A.xO(o).l(0)}catch(i){q=!1 +s=1 +break}k=A.Y(j.getItem("omnyshell.token."+A.r(n))) +if(k==null){q=!1 +s=1 +break}s=3 +return A.f(p.e0(o,m,!0,k),$async$fw) +case 3:q=p.c.a.a===B.ai +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$fw,r)}, +gqF(){var s,r,q,p=this.b.b.a,o=A.Y(p.getItem("omnyshell.hub")),n=o==null?"":o,m=A.Y(p.getItem("omnyshell.principal")) +if(m==null)m="" +s="" +if(A.Y(p.getItem("omnyshell.rememberToken"))==="true"&&J.aE(n)!==0)try{r=A.Y(p.getItem("omnyshell.token."+A.xO(n).l(0))) +s=r==null?"":r}catch(q){s=""}return new A.jN(n,m,s)}} +A.lN.prototype={ +e_(){var s=0,r=A.p(t.H),q=this,p,o +var $async$e_=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:o=q.c +if(o.a.b==null){p=q.b.qJ() +if(p!=null&&p.length!==0)o.sae(new A.b4(B.a0,p,null,!0,t.A))}s=2 +return A.f(q.ao(),$async$e_) +case 2:return A.n(null,r)}}) +return A.o($async$e_,r)}, +ao(){var s=0,r=A.p(t.H),q=1,p=[],o=this,n,m,l,k,j,i,h,g +var $async$ao=A.q(function(a,b){if(a===1){p.push(b) +s=q}for(;;)switch(s){case 0:j=o.c +i=j.a.b +h=t.A +j.sae(new A.b4(B.a0,i,null,i!=null,h)) +q=3 +s=6 +return A.f(o.a.kj(),$async$ao) +case 6:n=b +o.b.de(n) +j.sae(A.yA(n,t.oD)) +q=1 +s=5 +break +case 3:q=2 +g=p.pop() +k=A.R(g) +if(k instanceof A.bb){m=k +j.sae(new A.b4(B.an,i,m,!1,h))}else throw g +s=5 +break +case 2:s=1 +break +case 5:return A.n(null,r) +case 1:return A.m(p.at(-1),r)}}) +return A.o($async$ao,r)}, +jV(a){var s,r=this.c.a.b +r=J.aN(r==null?B.jS:r) +while(r.q()){s=r.gA() +if(s.a.a===a)return s}return null}} +A.e2.prototype={} +A.iY.prototype={} +A.j4.prototype={ +ao(){var s=0,r=A.p(t.H),q=1,p=[],o=this,n,m,l,k,j,i,h,g +var $async$ao=A.q(function(a,b){if(a===1){p.push(b) +s=q}for(;;)switch(s){case 0:j=o.c +i=j.a.b +h=t.o +j.sae(new A.b4(B.a0,i,null,i!=null,h)) +q=3 +s=6 +return A.f(o.a.qd(o.b),$async$ao) +case 6:n=b +j.sae(A.yA(n,t.zA)) +q=1 +s=5 +break +case 3:q=2 +g=p.pop() +k=A.R(g) +if(k instanceof A.bb){m=k +j.sae(new A.b4(B.an,i,m,!1,h))}else throw g +s=5 +break +case 2:s=1 +break +case 5:return A.n(null,r) +case 1:return A.m(p.at(-1),r)}}) +return A.o($async$ao,r)}, +dX(a){return this.q8(a)}, +q8(a){var s=0,r=A.p(t.BF),q,p=2,o=[],n=this,m,l,k,j,i,h +var $async$dX=A.q(function(b,c){if(b===1){o.push(c) +s=p}for(;;)switch(s){case 0:p=4 +s=7 +return A.f(n.a.ki(n.b,a),$async$dX) +case 7:m=c +s=8 +return A.f(n.ao(),$async$dX) +case 8:k=m.a +j=m.b.length===0?"Session terminated.":m.b +q=new A.e2(k,j) +s=1 +break +p=2 +s=6 +break +case 4:p=3 +h=o.pop() +k=A.R(h) +if(k instanceof A.bb){l=k +q=new A.e2(!1,l.b) +s=1 +break}else throw h +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$dX,r)}, +dQ(a){return this.pN(a)}, +pN(a){var s=0,r=A.p(t.BF),q,p=2,o=[],n=this,m,l,k,j,i,h,g +var $async$dQ=A.q(function(b,c){if(b===1){o.push(c) +s=p}for(;;)switch(s){case 0:p=4 +s=7 +return A.f(n.a.pP(n.b,a),$async$dQ) +case 7:m=c +s=8 +return A.f(n.ao(),$async$dQ) +case 8:if(m.c.length!==0)j=m.c +else j=m.a?"Detached "+m.b+".":"Detach failed." +l=j +i=m.a +q=new A.e2(i,l) +s=1 +break +p=2 +s=6 +break +case 4:p=3 +g=o.pop() +i=A.R(g) +if(i instanceof A.bb){k=i +q=new A.e2(!1,k.b) +s=1 +break}else throw g +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$dQ,r)}, +fo(a){return this.qC(a)}, +qC(a){var s=0,r=A.p(t.nU),q,p=2,o=[],n=this,m,l,k,j,i,h,g,f +var $async$fo=A.q(function(b,c){if(b===1){o.push(c) +s=p}for(;;)switch(s){case 0:p=4 +s=7 +return A.f(n.a.qD(n.b,a),$async$fo) +case 7:m=c +k=m.a +j=m.b +i=B.l.aK(m.c,!0) +h=m.d +q=new A.iY(k,j,i,h) +s=1 +break +p=2 +s=6 +break +case 4:p=3 +f=o.pop() +k=A.R(f) +if(k instanceof A.bb){l=k +q=new A.iY(!1,l.b,"",!1) +s=1 +break}else throw f +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$fo,r)}} +A.uk.prototype={ +qQ(a){var s=null +switch(this.b.a){case B.bC:break +case B.cW:s=B.n_ +break +case B.bD:s=new A.dT(this.c.a,this.d.a) +break +case B.cU:s=A.wE(a.b) +break +case B.cV:s=A.wE(a.a) +break}return s}} +A.bY.prototype={ +R(){return"ThemeMode."+this.b}} +A.uI.prototype={ +$1(a){return t.sm.a(a).b===this.a}, +$S:119} +A.uJ.prototype={ +$0(){return B.c6}, +$S:120} +A.hm.prototype={ +R(){return"ResolvedTheme."+this.b}} +A.mA.prototype={ +gqR(){switch(this.d.a){case B.ec:var s=B.dG +break +case B.ed:s=B.bT +break +case B.c6:s=this.b.$0()?B.bT:B.dG +break +default:s=null}return s}, +pG(){var s=this.d,r=B.df[(s.a.a+1)%3] +s.sae(r) +this.a.b.a.setItem("omnyshell.theme",r.b) +this.fJ()}, +fJ(){var s=this.c.$1(this.gqR()) +return s}} +A.lB.prototype={$iDH:1} +A.ro.prototype={ +qJ(){var s,r,q,p,o,n,m,l,k=null,j=A.Y(this.b.a.getItem(this.a)) +if(j==null)return k +try{s=B.x.bH(j,k) +if(!t._.b(s))return k +r=A.e([],t.yT) +for(p=J.aN(s),o=t.f,n=t.N,m=t.z;p.q();){q=p.gA() +J.fw(r,A.za(o.a(q).ak(0,n,m)))}return r}catch(l){return k}}, +de(a){var s,r +t.oD.a(a) +s=A.e([],t.cs) +for(r=J.aN(a);r.q();)s.push(r.gA().v()) +return this.b.a.setItem(this.a,B.x.cY(s,null))}} +A.tz.prototype={ +sjQ(a){this.b.a.setItem("omnyshell.ai.mode",a)}, +sjP(a){var s=a==null||a.length===0,r=this.b.a +if(s)r.removeItem("omnyshell.ai.language") +else r.setItem("omnyshell.ai.language",a)}} +A.x4.prototype={ +$1(a){var s=a.b +this.a.sjQ(s) +return s}, +$S:121} +A.x5.prototype={ +$1(a){this.a.sjP(a) +return a}, +$S:50} +A.kk.prototype={ +gT(){return"ai"}, +gaz(){return"AI agent (not configured \u2014 open Settings)"}, +B(a,b){return this.qV(a,t.a.a(b))}, +qV(a,b){var s=0,r=A.p(t.H),q=this,p +var $async$B=A.q(function(c,d){if(c===1)return A.m(d,r) +for(;;)switch(s){case 0:p=a.w +p.$1("ai: no provider configured.") +p.$1("Open Settings to use the Hub default or set your own API key.") +q.a.$0() +return A.n(null,r)}}) +return A.o($async$B,r)}} +A.kI.prototype={ +nZ(){var s,r,q=this.b +if(q==null)return +try{s=B.b.S(A.cO(this.a.a,t.N),"\n") +q.a.setItem(this.c,s)}catch(r){}}, +$iCR:1} +A.pk.prototype={ +$1(a){return B.a.G(A.r(a)).length!==0}, +$S:1} +A.mM.prototype={ +gT(){return"ide"}, +ghl(){return B.jL}, +gaz(){return"Open the terminal IDE on the connected node"}, +gda(){return":ide [path]"}, +B(a,b){return this.qX(a,t.a.a(b))}, +qX(a,b){var s=0,r=A.p(t.H),q,p=this,o,n,m,l,k,j,i,h,g +var $async$B=A.q(function(c,d){if(c===1)return A.m(d,r) +for(;;)switch(s){case 0:g=b.length +if(g>1){a.w.$1("usage: :ide [path]") +s=1 +break}o=g===0?null:B.b.gI(b) +g=a.y.$0() +n=A.J7(o,g) +if(n==null){a.w.$1(":ide: remote working directory unknown yet \u2014 run a command first, or pass an absolute path.") +s=1 +break}g=a.gc_() +m=a.b.a.a +l=a.e +s=3 +return A.f(A.o2(p.c,p.d),$async$B) +case 3:k=d +j=k==null?null:A.B9(k.a,k.b) +i=A.N(B.dn,t.n0) +h=A.yL() +i.push(new A.lt(h)) +s=4 +return A.f(a.ay.$1(new A.uV(p,new A.md(g,m,l,n,new A.mb(g,m,l)),j,k,A.yN(A.yy(null,new A.mi(i))),a)),$async$B) +case 4:case 1:return A.n(q,r)}}) +return A.o($async$B,r)}} +A.uV.prototype={ +$1(a){return this.kJ(t.xX.a(a))}, +kJ(a){var s=0,r=A.p(t.H),q=this,p,o +var $async$$1=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:p=q.a +o=q.d +o=o==null?null:o.a.b +s=2 +return A.f(A.DB(o,q.c,A.IG(q.f.e),q.e,new A.mT(p.a,a,p.b),q.b).bl(),$async$$1) +case 2:return A.n(null,r)}}) +return A.o($async$$1,r)}, +$S:123} +A.my.prototype={ +lt(a,b,c,d,e){var s,r,q=this,p=null,o=q.x +o=q.eu("Ctrl-"+o,new A.ui(q),"Control "+o) +q.w!==$&&A.ax("_lastCtrlButton") +q.w=o +s=q.eu("Ctrl",q.gp6(),"Control combinations") +q.r!==$&&A.ax("_ctrlButton") +q.r=s +A.j(s.classList).add("has-menu") +s.setAttribute("aria-haspopup","menu") +q.a.sqq(new A.uj(q)) +r=t.O +r=A.t("div","Terminal keys",p,A.e([q.cQ("Esc",B.iP),q.cQ("Tab",B.j6),A.t("div","Control",p,A.e([o,s],r),"term-ctrl-group",p,p,"group",p),q.dH("\u2191",B.iS,"Up"),q.dH("\u2193",B.iT,"Down"),q.dH("\u2190",B.iV,"Left"),q.dH("\u2192",B.iU,"Right"),q.eV("|"),q.eV("~"),q.eV("/"),q.eV("-"),q.h4("Copy",q.gm1()),q.h4("Paste",q.gnX()),q.cQ("Home",B.iX),q.cQ("End",B.iW),q.cQ("PgUp",B.iQ),q.cQ("PgDn",B.iR)],r),"term-accessory",p,p,"toolbar",p) +q.f!==$&&A.ax("element") +q.f=r}, +dH(a,b,c){return this.eu(a,new A.ug(this,t.L.a(b)),c)}, +cQ(a,b){return this.dH(a,b,null)}, +eV(a){return this.h4(a,new A.uh(this,a))}, +eu(a,b,c){var s=A.ar(a,c,"mono",!1,new A.u6(this,t.Q.a(b)),!1) +A.bC(s,"mousedown",new A.u7()) +return s}, +h4(a,b){return this.eu(a,b,null)}, +m3(a){var s,r=a.length +if(r===0)return null +if(0>=r)return A.b(a,0) +s=a.charCodeAt(0) +if(s>=64&&s<=95)return s&31 +if(s>=97&&s<=122)return s&31 +if(s===32)return 0 +if(s===63)return 127 +return null}, +he(a){var s,r,q=this,p=q.m3(a) +if(p==null){q.e.$1('"'+a+'" is not a valid Ctrl combination.') +return!1}q.a.du(t.L.a(A.e([p],t.t))) +s=q.x=B.a.m(a,0,1).toUpperCase() +r=q.w +r===$&&A.w("_lastCtrlButton") +r.textContent="Ctrl-"+s +r.setAttribute("aria-label","Control "+s) +return!0}, +p7(){if(this.y!=null)this.cH() +else this.nP()}, +nP(){var s,r,q,p,o,n,m,l,k,j,i,h=this,g="div",f=null,e="mousedown",d=t.O,c=A.e([],d) +for(s=0;s<12;++s)c.push(h.lQ(B.ji[s])) +r=A.t(g,f,f,c,"ctrl-menu-grid",f,f,"group",f) +q=A.e_("off",f,"ctrl-custom-char",f,"\xb7","text",f) +q.maxLength=1 +q.className="ctrl-custom-input mono" +c=new A.uf(h,q) +A.bC(q,"keydown",new A.u8(c)) +p=A.ar("Send",f,f,!1,c,!1) +A.bC(p,e,new A.u9()) +o=A.t(g,f,f,A.e([A.t("span",f,f,B.h,"ctrl-menu-label mono",f,f,f,"Ctrl-"),q,p],d),"ctrl-menu-custom",f,f,f,f) +n=A.ar("Ctrl + next key","Arm Control for the next key","ctrl-menu-arm",!1,new A.ua(h),!1) +A.bC(n,e,new A.ub()) +m=h.y=A.t(g,"Control combinations",f,A.e([r,o,A.t(g,f,f,B.h,"ctrl-menu-sep",f,f,f,f),n],d),"ctrl-menu",f,f,"menu",f) +d=v.G +A.j(A.aS(A.j(d.document).body).appendChild(m)) +c=h.r +c===$&&A.w("_ctrlButton") +l=A.j(c.getBoundingClientRect()) +A.j(m.style).position="fixed" +A.j(m.style).bottom=""+B.p.cv(A.a4(A.j(d.window).innerHeight)-A.cp(l.top)+6)+"px" +k=A.cp(A.j(m.getBoundingClientRect()).width) +j=A.cp(l.left) +i=A.a4(A.j(d.window).innerWidth)-k-8 +if(j>i)j=i +if(j<8)j=8 +A.j(m.style).left=""+B.p.cv(j)+"px" +h.z=new A.uc(A.bC(A.j(d.document),e,new A.ud(h,m)),A.bC(A.j(d.document),"keydown",new A.ue(h)))}, +lQ(a){var s=A.ar("^"+a,"Control "+a,"mono ctrl-menu-item",!1,new A.u4(this,a),!1) +A.bC(s,"mousedown",new A.u5()) +return s}, +cH(){var s=this,r=s.z +if(r!=null)r.$0() +s.z=null +r=s.y +if(r!=null)r.remove() +s.y=null}, +en(){var s=0,r=A.p(t.H),q,p=2,o=[],n=this,m,l,k,j +var $async$en=A.q(function(a,b){if(a===1){o.push(b) +s=p}for(;;)switch(s){case 0:l=n.b.a +k=A.r(l.getSelection()) +if(J.aE(k)===0){n.e.$1("Select text in the terminal first.") +s=1 +break}p=4 +s=7 +return A.f(n.d.$1(k),$async$en) +case 7:l.clearSelection() +n.e.$1("Copied to clipboard.") +p=2 +s=6 +break +case 4:p=3 +j=o.pop() +n.e.$1("Copy failed \u2014 clipboard unavailable.") +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$en,r)}, +eG(){var s=0,r=A.p(t.H),q=1,p=[],o=this,n,m,l +var $async$eG=A.q(function(a,b){if(a===1){p.push(b) +s=q}for(;;)switch(s){case 0:q=3 +s=6 +return A.f(o.c.$0(),$async$eG) +case 6:n=b +if(n!=null&&n.length!==0)o.a.du(t.L.a(B.r.Y(n))) +q=1 +s=5 +break +case 3:q=2 +l=p.pop() +o.e.$1("Paste blocked \u2014 allow clipboard access.") +s=5 +break +case 2:s=1 +break +case 5:o.b.a.focus() +return A.n(null,r) +case 1:return A.m(p.at(-1),r)}}) +return A.o($async$eG,r)}} +A.ui.prototype={ +$0(){var s=this.a +return s.he(s.x)}, +$S:0} +A.uj.prototype={ +$1(a){var s=this.a.r +s===$&&A.w("_ctrlButton") +return A.cH(A.j(s.classList).toggle("active",a))}, +$S:51} +A.ug.prototype={ +$0(){return this.a.a.du(t.L.a(this.b))}, +$S:0} +A.uh.prototype={ +$0(){return this.a.a.du(t.L.a(B.r.Y(this.b)))}, +$S:0} +A.u6.prototype={ +$0(){this.b.$0() +this.a.b.a.focus()}, +$S:0} +A.u7.prototype={ +$1(a){return A.j(a).preventDefault()}, +$S:2} +A.uf.prototype={ +$0(){var s,r=B.a.G(A.r(this.b.value)) +if(r.length===0)return +s=this.a +if(s.he(r)){s.cH() +s.b.a.focus()}}, +$S:0} +A.u8.prototype={ +$1(a){if(A.r(A.j(a).key)==="Enter")this.a.$0()}, +$S:2} +A.u9.prototype={ +$1(a){return A.j(a).preventDefault()}, +$S:2} +A.ua.prototype={ +$0(){var s=this.a,r=s.a,q=!r.CW +r.CW=q +r=r.fx +if(r!=null)r.$1(q) +s.cH() +s.b.a.focus()}, +$S:0} +A.ub.prototype={ +$1(a){return A.j(a).preventDefault()}, +$S:2} +A.ud.prototype={ +$1(a){var s,r=A.aS(A.j(a).target) +if(r!=null)if(!A.cH(this.b.contains(r))){s=this.a.r +s===$&&A.w("_ctrlButton") +s=A.cH(s.contains(r))}else s=!0 +else s=!1 +if(s)return +this.a.cH()}, +$S:2} +A.ue.prototype={ +$1(a){var s +if(A.r(A.j(a).key)==="Escape"){s=this.a +s.cH() +s.b.a.focus()}}, +$S:2} +A.uc.prototype={ +$0(){this.a.$0() +this.b.$0()}, +$S:0} +A.u4.prototype={ +$0(){var s=this.a +s.he(this.b) +s.cH() +s.b.a.focus()}, +$S:0} +A.u5.prototype={ +$1(a){return A.j(a).preventDefault()}, +$S:2} +A.bP.prototype={ +R(){return"DimensionPreset."+this.b}} +A.pG.prototype={ +$1(a){return t.cE.a(a).b===this.a}, +$S:125} +A.pH.prototype={ +$0(){return B.bC}, +$S:126} +A.by.prototype={ +R(){return"TerminalTextSize."+this.b}} +A.uF.prototype={ +$1(a){return t.aW.a(a).b===this.a}, +$S:127} +A.uG.prototype={ +$0(){return B.c5}, +$S:52} +A.lT.prototype={} +A.pF.prototype={} +A.mz.prototype={ +ps(a){var s,r,q,p,o,n=this +t.DN.a(a) +s=v.G +n.z=A.zx(A.j(s.window),"resize",n.gkO()) +r=A.aS(A.j(s.window).visualViewport) +if(r!=null)n.Q=A.zx(r,"resize",n.gkP()) +s=s.ResizeObserver +q=new A.un(n) +if(typeof q=="function")A.K(A.as("Attempting to rewrap a JS function.",null)) +p=function(b,c){return function(d,e){return b(c,d,e,arguments.length)}}(A.Gd,q) +p[$.o4()]=q +o=A.j(new s(p)) +o.observe(n.b) +n.as=o +s=a.aE(new A.uo(n)) +n.at=s}, +cm(){if(this.x)return +this.lF() +this.hn()}, +hn(){var s,r,q=this,p=q.a,o=q.e,n=o==null,m=n?13:q.mw(o.a,o.b) +switch(q.f.$0()){case B.c5:s=m +break +case B.e9:s=B.c.M(B.p.dW(m*0.8),6,40) +break +case B.ea:s=13 +break +case B.eb:s=B.c.M(B.p.pv(m*1.25),6,40) +break +default:s=null}A.j(p.a.options).fontSize=s +r=B.p.M(s/13,0.7,1.6) +A.j(q.d.style).setProperty("--term-key-scale",B.p.i5(r,3)) +if(n)p.cm() +else p.ks(o.a,o.b)}, +dg(){var s=this +if(s.w||s.x)return +s.w=!0 +A.a4(A.j(v.G.window).requestAnimationFrame(A.cW(new A.up(s))))}, +kQ(){var s,r=this +r.dg() +s=r.y +if(s!=null)s.U() +r.y=A.eY(B.i8,r.ghB())}, +ie(){var s,r=new A.uq(this) +this.dg() +A.a4(A.j(v.G.window).requestAnimationFrame(A.cW(new A.ur(r)))) +for(s=0;s<3;++s)A.eY(new A.aX(1000*B.iN[s]),r)}, +mw(a,b){var s,r,q=A.cp(A.j(this.b.getBoundingClientRect()).width),p=this.it() +if(q<=0||p<=0)return 13 +s=q/(a*0.6) +r=p/(b*1.2) +return B.c.M(B.p.dW(s0)A.j(p.style).height=""+B.p.cv(r)+"px"}, +it(){var s,r,q,p=v.G,o=A.aS(A.j(p.window).visualViewport),n=o==null?null:A.cp(o.height) +if(n==null)n=A.a4(A.j(p.window).innerHeight) +s=A.j(this.b.getBoundingClientRect()) +r=A.j(this.c.getBoundingClientRect()) +q=A.cp(r.top)-A.cp(s.bottom) +p=A.cp(r.height) +o=q>0?q:0 +return n-A.cp(s.top)-(p+o)}} +A.un.prototype={ +$2(a,b){t.Cf.a(a) +A.j(b) +this.a.dg()}, +$S:129} +A.uo.prototype={ +$1(a){t.aW.a(a) +return this.a.dg()}, +$S:130} +A.up.prototype={ +$1(a){var s +A.cp(a) +s=this.a +s.w=!1 +s.cm()}, +$S:131} +A.uq.prototype={ +$0(){var s=this.a +if(s.x)return +s.cm() +if(!s.r.$0())s.a.ao() +s.a.kR()}, +$S:0} +A.ur.prototype={ +$1(a){A.cp(a) +return this.a.$0()}, +$S:132} +A.ul.prototype={ +$1(a){A.j(a) +return this.a.$0()}, +$S:2} +A.um.prototype={ +$0(){return this.a.removeEventListener(this.b,this.c)}, +$S:0} +A.jg.prototype={ +lu(a,b,c,d,e,f,g,h,i,j,k,l,a0,a1,a2){var s,r=this,q=r.f,p=r.ax,o=r.a,n=o.gc4(),m=t.t +n=new A.ly(new A.ac(q,A.l(q).h("ac<1>")),new A.v1(r),r.gnB(),p,null,r.gmY(),new A.v2(r),r.gnG(),r.glS(),A.e([],t.s),n.a,B.ba,A.e([],m)) +p=p.a +n.fx=new A.qx(p,p.a.length) +r.e!==$&&A.ax("_editor") +r.e=n +p=r.ay +q=a0.r +q=q==null?null:q.a +m=A.e([],m) +q=new A.pu("__OMNYSHELL_CWD_"+(q==null?B.P.bm():q)+"__",m) +p=new A.lg(a0,q,A.zs(a0.y),p,new A.v3(r),r.gnE(),new A.v4(r),r.gny(),p) +r.d!==$&&A.ax("_controller") +r.d=p +o.qr(new A.v5(r)) +o.qs(r.gnI()) +s=o.gc4() +q=s.a +if(q>0&&s.b>0)a0.kt(q,s.b) +n.b1() +p.b1()}, +nJ(a,b){var s=this,r=s.d +r===$&&A.w("_controller") +r.a.kt(a,b) +r=s.e +r===$&&A.w("_editor") +r.kX(a) +r.c3(s.cM(s.fr)) +r=s.dx +if((r.c&4)===0)r.j(0,null)}, +du(a){var s,r,q=this +t.L.a(a) +if(q.cx||J.bZ(a))return +s=q.lD(a) +if(!q.cy&&!q.ch&&s.length===1&&J.kb(s)===3){q.mO() +return}r=q.f +if((r.b&4)===0)r.j(0,s)}, +mO(){var s,r=this,q=r.db +if(q!=null){s=r.d +s===$&&A.w("_controller") +s=!s.at}else s=!1 +if(s){q.$0() +q=r.e +q===$&&A.w("_editor") +if(q.ch!=null)q.kg() +return}q=r.e +q===$&&A.w("_editor") +q.kg()}, +mZ(){var s=this,r=s.d +r===$&&A.w("_controller") +r.a.ic("SIGINT") +if(!r.at){r=s.e +r===$&&A.w("_editor") +r.c3(s.cM(s.fr))}}, +nH(a){var s,r="_controller" +t.L.a(a) +s=J.at(a) +if(s.gn(a)===1&&J.a0(s.gI(a),3)){s=this.d +s===$&&A.w(r) +s.a.ic("SIGINT") +return}s=this.d +s===$&&A.w(r) +s.kV(a)}, +fR(a,b){var s=0,r=A.p(t.a),q,p=this,o +var $async$fR=A.q(function(c,d){if(c===1)return A.m(d,r) +for(;;)switch(s){case 0:o=p.d +o===$&&A.w("_controller") +if(o.at){q=B.G +s=1 +break}q=p.x.$3(a,b,p.fr.a) +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$fR,r)}, +nF(a){var s +this.fr=a +s=this.e +s===$&&A.w("_editor") +s.c3(this.cM(a))}, +cM(a){var s=a.a +if(s==null)s="~" +return A.IA(a.b,s,a.c,this.c,this.b,a.d,this.a.gc4().a)}, +nz(a){if(this.cx)return +this.cx=!0 +this.a.a.write("\r\n\x1b[90m[session ended \u2014 exit "+a+"]\x1b[0m\r\n")}, +dB(a){return this.nC(A.r(a))}, +nC(a){var s=0,r=A.p(t.H),q=this,p +var $async$dB=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:s=a.length!==0?2:3 +break +case 2:p=q.e +p===$&&A.w("_editor") +s=4 +return A.f(p.f3(a),$async$dB) +case 4:case 3:p=B.a.u(B.a.i7(a),":") +s=p?5:7 +break +case 5:s=8 +return A.f(q.dG(q.r,a),$async$dB) +case 8:s=6 +break +case 7:p=q.d +p===$&&A.w("_controller") +p.l3(a) +case 6:return A.n(null,r)}}) +return A.o($async$dB,r)}, +dG(a,b){return this.oo(a,b)}, +oo(a,b){var s=0,r=A.p(t.H),q,p=2,o=[],n=[],m=this,l,k,j,i,h,g,f,e +var $async$dG=A.q(function(c,d){if(c===1){o.push(d) +s=p}for(;;)switch(s){case 0:f=m.y.$0() +if(f==null){m.eX("Node information is still loading \u2014 retry.") +j=m.e +j===$&&A.w("_editor") +j.c3(m.cM(m.fr)) +s=1 +break}j=m.d +j===$&&A.w("_controller") +i=j.a.y +h=i===B.c_?m.gom():null +l=new A.r8(m.w,f,m.z,m.Q,i,m.dy,m.gpl(),new A.uY(m),new A.uZ(m),new A.v_(m),a,h,new A.v0(m),m.gmV(),m.goj()) +p=4 +s=7 +return A.f(a.fd(b,l),$async$dG) +case 7:n.push(6) +s=5 +break +case 4:p=3 +e=o.pop() +k=A.R(e) +m.eX(A.u(k)) +n.push(6) +s=5 +break +case 3:n=[2] +case 5:p=2 +m.db=null +i=m.e +i===$&&A.w("_editor") +i.ka(!1) +s=n.pop() +break +case 6:s=l.ch?8:9 +break +case 8:m.cx=!0 +s=l.CW?10:12 +break +case 10:m.at.$0() +s=11 +break +case 12:s=13 +return A.f(j.p(),$async$dG) +case 13:m.as.$0() +case 11:s=1 +break +case 9:j=m.e +j===$&&A.w("_editor") +j.c3(m.cM(m.fr)) +case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$dG,r)}, +eQ(a){return this.ol(t.qJ.a(a))}, +ol(a){var s=0,r=A.p(t.H),q=1,p=[],o=[],n=this,m +var $async$eQ=A.q(function(b,c){if(b===1){p.push(c) +s=q}for(;;)switch(s){case 0:n.cy=!0 +q=2 +m=n.e +m===$&&A.w("_editor") +s=5 +return A.f(m.dl(a,t.H),$async$eQ) +case 5:o.push(4) +s=3 +break +case 2:o=[1] +case 3:q=1 +n.cy=!1 +s=o.pop() +break +case 4:return A.n(null,r) +case 1:return A.m(p.at(-1),r)}}) +return A.o($async$eQ,r)}, +mW(){var s=this.a.gc4().a +return B.a.aQ("\u2500",s>0?s:80)}, +eR(a){return this.on(A.r(a))}, +on(a){var s=0,r=A.p(t.ij),q,p=this,o,n +var $async$eR=A.q(function(b,c){if(b===1)return A.m(c,r) +for(;;)switch(s){case 0:n=p.d +n===$&&A.w("_controller") +s=3 +return A.f(n.re(a),$async$eR) +case 3:o=c +q=new A.hp(o.b,B.l.aK(o.a,!0)) +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$eR,r)}, +eX(a){var s +A.r(a) +s=A.ad(a,"\r\n","\n") +return this.a.a.write(new Uint8Array(A.c9(t.L.a(B.r.Y(A.ad(s,"\n","\r\n")+"\r\n")))))}, +lD(a){var s,r,q +t.L.a(a) +if(!this.CW)return a +this.mb() +s=J.at(a) +if(s.gK(a))return a +r=s.gI(a) +if(!(r>=64&&r<=95))q=r>=97&&r<=122 +else q=!0 +if(q){q=A.e([r&31],t.t) +B.b.C(q,s.aS(a,1)) +return q}return a}, +mb(){if(!this.CW)return +this.CW=!1 +var s=this.fx +if(s!=null)s.$1(!1)}, +ah(){var s,r=this +r.f.p() +r.dx.p() +s=r.e +s===$&&A.w("_editor") +s.p() +s=r.d +s===$&&A.w("_controller") +return s.cf()}, +sqq(a){this.fx=t.xl.a(a)}, +$iEY:1} +A.v1.prototype={ +$1(a){return this.a.a.a.write(new Uint8Array(A.c9(t.L.a(B.r.Y(a)))))}, +$S:4} +A.v2.prototype={ +$0(){var s=this.a.d +s===$&&A.w("_controller") +s.p() +return null}, +$S:0} +A.v3.prototype={ +$1(a){var s,r +t.L.a(a) +s=this.a +r=s.e +r===$&&A.w("_editor") +return r.kp(new A.uW(s,a))}, +$S:9} +A.uW.prototype={ +$0(){return this.a.a.a.write(new Uint8Array(A.c9(t.L.a(this.b))))}, +$S:0} +A.v4.prototype={ +$1(a){var s=this.a +s.ch=a +s=s.e +s===$&&A.w("_editor") +s.kW(a)}, +$S:51} +A.v5.prototype={ +$1(a){return this.a.du(B.r.Y(a))}, +$S:4} +A.uZ.prototype={ +$0(){return this.a.fr.a}, +$S:53} +A.uY.prototype={ +$1(a){var s,r=this.a.e +r===$&&A.w("_editor") +s=new A.v($.E,t.iB) +r.ch=new A.W(s,t.o7) +B.b.a0(r.cx) +r.cy=0 +r.c3(a) +return s}, +$S:138} +A.v_.prototype={ +$1(a){var s=this.a,r=s.e +r===$&&A.w("_editor") +return r.kp(new A.uX(s,a))}, +$S:4} +A.uX.prototype={ +$0(){return this.a.eX(this.b)}, +$S:0} +A.v0.prototype={ +$1(a){var s,r,q +t.Z.a(a) +s=this.a +s.db=a +r=s.e +r===$&&A.w("_editor") +q=a==null +r.ka(!q) +if(q)r.c3(s.cM(s.fr))}, +$S:139} +A.mT.prototype={} +A.dh.prototype={ +cm(){var s +try{this.b.fit()}catch(s){}}, +ks(a,b){var s +try{this.a.resize(a,b)}catch(s){}}, +ao(){var s,r +try{s=this.a +s.refresh(0,A.a4(s.rows)-1)}catch(r){}}, +qr(a){this.c=A.j(this.a.onData(A.cW(new A.va(t.ma.a(a)))))}, +qs(a){this.d=A.j(this.a.onResize(A.cW(new A.vb(t.xx.a(a)))))}, +gc4(){var s=this.a +return new A.dT(A.a4(s.cols),A.a4(s.rows))}, +kR(){var s +try{this.a.scrollToBottom()}catch(s){}}, +ah(){var s=this,r=s.e +if(r!=null)r.U() +r=s.f +if(r!=null)r.U() +r=s.c +if(r!=null)r.dispose() +r=s.d +if(r!=null)r.dispose() +s.a.dispose()}, +$iEZ:1} +A.va.prototype={ +$1(a){return this.a.$1(A.r(a))}, +$S:4} +A.vb.prototype={ +$1(a){A.j(a) +return this.a.$2(A.a4(a.cols),A.a4(a.rows))}, +$S:2} +A.wI.prototype={ +$2(a,b){return this.a.setAttribute(A.r(a),A.r(b))}, +$S:49} +A.x_.prototype={ +$0(){return this.a.removeEventListener(this.b,this.c)}, +$S:0} +A.lD.prototype={ +lm(a,b,c){var s,r,q=this,p="div",o=null,n=t.N +n=A.G(["aria-modal","true","aria-label",c],n,n) +s=t.O +r=A.e([A.t(p,o,o,A.e([A.t("h2",o,o,B.h,o,o,o,o,c),A.ar("\u2715","Close","icon ghost",!1,q.gdM(),!1)],s),"modal-head",o,o,o,o),A.t(p,o,o,A.e([b],s),"modal-body",o,o,o,o)],s) +if(a.length!==0)r.push(A.t(p,o,o,a,"modal-foot",o,o,o,o)) +n=A.t(p,o,o,A.e([A.t(p,o,n,r,"modal",o,o,"dialog",o)],s),"modal-overlay",o,new A.rj(q),o,o) +q.a!==$&&A.ax("_overlay") +q.a=n}, +fF(){var s,r=v.G,q=A.aS(A.j(r.document).body) +q.toString +s=this.a +s===$&&A.w("_overlay") +A.j(q.appendChild(s)) +this.b=A.bC(A.j(r.document),"keydown",new A.rk(this))}, +p(){var s=this.b +if(s!=null)s.$0() +this.b=null +s=this.a +s===$&&A.w("_overlay") +if(A.aS(s.parentNode)!=null)s.remove()}} +A.rj.prototype={ +$1(a){var s=A.aS(A.j(a).target),r=this.a,q=r.a +q===$&&A.w("_overlay") +if(s===q)r.p()}, +$S:2} +A.rk.prototype={ +$1(a){if(A.r(A.j(a).key)==="Escape")this.a.p()}, +$S:2} +A.iK.prototype={ +gdS(){var s=this.b +s===$&&A.w("element") +return s}, +ll(a){var s,r,q,p,o=this,n=null,m=o.a,l=m.b,k=l.gqF(),j=o.giV(),i=A.e_("none","url","login-hub",j,"hub.example.com:8443","text",k.a) +o.c!==$&&A.ax("_hub") +o.c=i +s=A.e_("none","username","login-principal",j,"alice","text",k.b) +o.d!==$&&A.ax("_principal") +o.d=s +j=A.e_(n,"current-password","login-token",j,"bearer token","password",k.c) +o.e!==$&&A.ax("_token") +o.e=j +r=A.AP("Remember token on this device",A.Y(m.w.b.a.getItem("omnyshell.rememberToken"))==="true","login-remember") +o.f!==$&&A.ax("_remember") +o.f=r.a +m=A.dY(n) +o.r!==$&&A.ax("_messages") +o.r=m +q=A.dY("row") +o.w!==$&&A.ax("_actions") +o.w=q +o.jf(!1) +p=t.O +p=A.t("div",n,n,A.e([A.t("div",n,n,A.e([A.t("div",n,n,A.e([A.t("span",n,n,B.h,"dot",n,n,n,n),A.t("h1",n,n,B.h,n,n,n,n,"OmnyShell")],p),"brand",n,n,n,n),A.t("p",n,n,B.h,"muted",n,n,n,"Connect to a Hub to discover nodes and manage sessions."),m,A.dZ("Hub address",i,"Uses wss:// when no scheme given."),A.dZ("Principal",s,n),A.dZ("Token",j,n),r.b,q,A.t("p",n,n,B.h,"hint",n,n,n,"Self-signed / dev Hubs must have their certificate trusted by this browser or OS first \u2014 the browser controls TLS, so there is no in-app bypass."),A.t("p",n,n,B.h,"hint version-footer",n,n,n,"Web Client v1.15.0 \xb7 OmnyShell v1.56.1")],p),"card pad-lg narrow stack",n,n,n,n)],p),"center-host",n,n,n,n) +o.b!==$&&A.ax("element") +o.b=p +l=l.c +p=l.$ti.h("~(1)").a(o.gnn()) +p.$1(l.a) +l=l.b +o.x=new A.aA(l,A.l(l).h("aA<1>")).aE(p) +A.o3(new A.rb(o))}, +jf(a){var s,r=this.w +r===$&&A.w("_actions") +A.cq(r) +s=a?"Connecting\u2026":"Connect" +A.j(r.appendChild(A.ar(s,null,"grow",a,this.giV(),!0)))}, +no(a){var s,r +t.zX.a(a) +s=this.r +s===$&&A.w("_messages") +A.cq(s) +r=a.a +this.jf(r===B.bl) +if(r===B.bm&&a.d!=null){r=a.d +r.toString +A.j(s.appendChild(A.o0(r)))}}, +ez(){var s=0,r=A.p(t.H),q,p=this,o,n,m,l,k,j,i +var $async$ez=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:k=p.a +j=k.b +i=j.c +if(i.a.a===B.bl){s=1 +break}o=p.c +o===$&&A.w("_hub") +o=A.r(o.value) +n=p.d +n===$&&A.w("_principal") +n=A.r(n.value) +m=p.e +m===$&&A.w("_token") +m=A.r(m.value) +l=p.f +l===$&&A.w("_remember") +s=3 +return A.f(j.e0(o,n,A.cH(l.checked),m),$async$ez) +case 3:if(i.a.a===B.ai)k.r.aF("/nodes") +case 1:return A.n(q,r)}}) +return A.o($async$ez,r)}, +ah(){var s=this.x +return s==null?null:s.U()}, +$idK:1} +A.rb.prototype={ +$0(){var s=this.a,r=s.c +r===$&&A.w("_hub") +if(A.r(r.value).length===0)r.focus() +else{r=s.d +r===$&&A.w("_principal") +if(A.r(r.value).length===0)r.focus() +else{s=s.e +s===$&&A.w("_token") +s.focus()}}}, +$S:0} +A.iS.prototype={ +gdS(){var s=this.c +s===$&&A.w("element") +return s}, +ln(a,b){var s,r,q=this,p=null,o=q.a,n=q.b,m=A.cj(t.o),l=new A.j4(o.a,n,new A.aQ(B.cE,m,t.o5)) +q.f!==$&&A.ax("_sessions") +q.f=l +s=A.dY("stack") +q.d!==$&&A.ax("_body") +q.d=s +r=t.O +r=A.t("div",p,p,A.e([A.t("div",p,p,A.e([A.ar("\u2190 Nodes",p,"ghost",!1,new A.rv(q),!1),A.t("h1",p,p,B.h,"grow node-title",p,p,p,n),A.ar("New shell",p,p,!1,new A.rw(q),!0)],r),"toolbar",p,p,p,p),s],r),"stack",p,p,p,p) +q.c!==$&&A.ax("element") +q.c=r +o=o.c +r=o.c.b +q.e=new A.aA(r,A.l(r).h("aA<1>")).aE(new A.rx(q)) +q.r=new A.aA(m,A.l(m).h("aA<1>")).aE(q.gob()) +l.ao() +q.iY() +if(o.jV(n)==null)o.e_()}, +iY(){var s,r,q,p,o=this,n=null,m=o.d +m===$&&A.w("_body") +A.cq(m) +s=o.a.c +r=o.b +q=s.jV(r) +p=s.c.a +if(q==null){s=p.a +if(s===B.a0)A.j(m.appendChild(A.k9("Loading node\u2026"))) +else if(s===B.an){s=p.c +s.toString +A.j(m.appendChild(A.o0(s)))}else{A.j(m.appendChild(A.t("div",n,n,B.h,"empty",n,n,n,'Node "'+r+'" was not found on this Hub.'))) +A.j(m.appendChild(A.ar("Back to nodes",n,n,!1,new A.rs(o),!0)))}return}A.j(m.appendChild(o.nT(q))) +A.j(m.appendChild(o.oC())) +A.j(m.appendChild(o.lM(q.r)))}, +oC(){var s,r=this,q=null,p=A.dY("stack") +r.w=p +s=r.f +s===$&&A.w("_sessions") +r.jh(s.c.a) +s=t.O +return A.t("div",q,q,A.e([A.t("div",q,q,A.e([A.t("h2",q,q,B.h,"grow",q,q,q,"Sessions"),A.ar("View all",q,q,!1,new A.ru(r),!1)],s),"row",q,q,q,q),p],s),"card",q,q,q,q)}, +jh(a){var s,r,q,p,o,n,m,l=null,k="muted" +t.o.a(a) +s=this.w +if(s==null)return +A.cq(s) +r=a.b +if(r==null||J.bZ(r)){q=a.a +if(q===B.a0)A.j(s.appendChild(A.k9("Loading sessions\u2026"))) +else if(q===B.an)A.j(s.appendChild(A.t("p",l,l,B.h,k,l,l,l,"Couldn\u2019t load sessions."))) +else A.j(s.appendChild(A.t("p",l,l,B.h,k,l,l,l,"No active sessions."))) +return}q=J.at(r) +p=q.gn(r) +o=q.gn(r)===1?"":"s" +n=a.a===B.a0?" \xb7 refreshing\u2026":"" +A.j(s.appendChild(A.t("p",l,l,B.h,k,l,l,l,""+p+" session"+o+n))) +m=A.dY("list") +for(p=q.bz(r,5),o=p.$ti,p=new A.aI(p,p.gn(0),o.h("aI")),o=o.h("Q.E");p.q();){n=p.d +A.j(m.appendChild(this.oA(n==null?o.a(n):n)))}A.j(s.appendChild(m)) +if(q.gn(r)>5)A.j(s.appendChild(A.t("p",l,l,B.h,k,l,l,l,"+"+(q.gn(r)-5)+" more")))}, +oA(a){var s=null,r="div",q=a.e.b+" \xb7 created "+A.Bb(a.f,new A.bk(Date.now(),0,!1)),p=a.y +if(p!=null&&p.length!==0)q+=" \xb7 "+p +p=t.O +return A.t(r,s,s,A.e([A.t(r,s,s,A.e([A.t(r,s,s,A.e([A.t("span",s,s,B.h,"title mono",s,s,s,a.b),A.t("span",s,s,B.h,"badge",s,s,s,a.x.b)],p),"row",s,s,s,s),A.t(r,s,s,B.h,"sub",s,s,s,q.charCodeAt(0)==0?q:q)],p),"grow",s,s,s,s)],p),"list-item clickable",s,new A.rt(this,a),"button",s)}, +nT(a){var s=this,r=null,q=a.d,p=t.O,o=A.e([s.iT("Status",r,A.Be(a.f)),s.bf("Node id",a.a.a)],p),n=a.b +if(n!=null)o.push(s.bf("UID",n.a)) +n=a.c +o.push(s.bf("Display name",n.length===0?"\u2014":n)) +o.push(s.bf("Platform",q.a+" / "+q.b)) +o.push(s.bf("Hostname",q.d)) +o.push(s.bf("Agent",q.c)) +n=a.e +if(n.gZ(n))B.b.j(o,s.bf("Labels",n.gX().b8(0,new A.rr(),t.N).S(0,", "))) +return A.t("div",r,r,A.e([A.t("h2",r,r,B.h,r,r,r,r,"Overview"),A.t("dl",r,r,o,"kv",r,r,r,r)],p),"card",r,r,r,r)}, +lM(a){var s,r,q,p,o,n,m=this,l=null,k="Capabilities" +if(a==null)return A.t("div",l,l,A.e([A.t("h2",l,l,B.h,l,l,l,l,k),A.t("p",l,l,B.h,"muted",l,l,l,"This node did not advertise capabilities.")],t.O),"card",l,l,l,l) +s=A.t("h2",l,l,B.h,l,l,l,l,k) +r=a.a +r=m.bf("Shells",r.length===0?"\u2014":B.b.S(r,", ")) +q=a.b +q=m.bf("Features",q.length===0?"\u2014":B.b.S(q,", ")) +p=m.bf("Max sessions",""+a.c) +o=a.d +n=t.O +return A.t("div",l,l,A.e([s,A.t("dl",l,l,A.e([r,q,p,m.bf("Direct endpoint",o==null?"Hub tunnel only":o)],n),"kv",l,l,l,l)],n),"card",l,l,l,l)}, +iT(a,b,c){var s,r,q=null,p=A.j(new v.G.DocumentFragment()) +A.j(p.appendChild(A.t("dt",q,q,B.h,q,q,q,q,a))) +s=A.t("dd",q,q,B.h,q,q,q,q,q) +if(c!=null)A.j(s.appendChild(c)) +else{r=b==null?"\u2014":b +s.textContent=r}A.j(p.appendChild(s)) +return p}, +bf(a,b){return this.iT(a,b,null)}, +ah(){var s=this.e +if(s!=null)s.U() +s=this.r +if(s!=null)s.U()}, +$idK:1} +A.rv.prototype={ +$0(){return this.a.a.r.aF("/nodes")}, +$S:0} +A.rw.prototype={ +$0(){var s=this.a +return s.a.r.aF("/nodes/"+A.cG(2,s.b,B.l,!1)+"/sessions/new")}, +$S:0} +A.rx.prototype={ +$1(a){t.A.a(a) +return this.a.iY()}, +$S:55} +A.rs.prototype={ +$0(){return this.a.a.r.aF("/nodes")}, +$S:0} +A.ru.prototype={ +$0(){var s=this.a +return s.a.r.aF("/nodes/"+A.cG(2,s.b,B.l,!1)+"/sessions")}, +$S:0} +A.rt.prototype={ +$1(a){var s,r +A.j(a) +s=this.a +r=s.a +r.z.sae(this.b.b) +r.r.aF("/nodes/"+A.cG(2,s.b,B.l,!1)+"/sessions")}, +$S:2} +A.rr.prototype={ +$1(a){t.q.a(a) +return a.a+"="+a.b}, +$S:25} +A.iT.prototype={ +gdS(){var s=this.b +s===$&&A.w("element") +return s}, +iZ(a){var s,r,q,p,o,n=this,m=null +t.A.a(a) +s=n.d +s===$&&A.w("_refresh") +r=a.a +q=r===B.a0 +s.disabled=q +s=n.c +s===$&&A.w("_body") +A.cq(s) +p=a.b +r=r===B.an +if(r)o=p==null||J.bZ(p) +else o=!1 +if(o){r=a.c +r.toString +A.j(s.appendChild(A.o0(r))) +A.j(s.appendChild(A.ar("Retry",m,m,!1,n.a.c.ge7(),!1))) +return}if(q)o=p==null||J.bZ(p) +else o=!1 +if(o){A.j(s.appendChild(A.k9("Loading nodes\u2026"))) +return}if(p==null||J.bZ(p)){A.j(s.appendChild(A.t("div",m,m,B.h,"empty",m,m,m,"No nodes are registered with this Hub."))) +return}if(r)A.j(s.appendChild(A.t("div",m,m,B.h,"banner warning",m,m,"status","Showing last results \u2014 refresh failed: "+a.c.b))) +else if(a.d&&q)A.j(s.appendChild(A.k9("Refreshing\u2026"))) +for(r=J.aN(p);r.q();)A.j(s.appendChild(n.nk(r.gA())))}, +nk(a){var s=null,r=a.d,q=a.a.a,p=a.c,o=t.O +return A.t("button","Open node "+q,s,A.e([A.t("div",s,s,A.e([A.t("div",s,s,B.h,"title",s,s,s,p.length===0?q:p),A.t("div",s,s,B.h,"sub mono",s,s,s,q+" \xb7 "+(r.a+"/"+r.b))],o),"grow",s,s,s,s),A.Be(a.f)],o),"list-item",s,new A.rA(this,a),s,s)}, +ah(){var s=this.e +return s==null?null:s.U()}, +$idK:1} +A.rA.prototype={ +$1(a){A.j(a) +return this.a.a.r.aF("/nodes/"+A.cG(2,this.b.a.a,B.l,!1))}, +$S:2} +A.j3.prototype={ +gdS(){var s=this.w +s===$&&A.w("element") +return s}, +lo(a,b,c,d,e,f,g){var s,r,q,p,o,n=this,m="div",l=null,k=A.t(m,"Terminal",l,B.h,"terminal-host",l,l,"group",l) +n.x!==$&&A.ax("_host") +n.x=k +s=A.dY("row") +n.y!==$&&A.ax("_status") +n.y=s +r=A.dY(l) +n.z!==$&&A.ax("_accessory") +n.z=r +q=n.gp8() +p=A.ar("\u2922 Fullscreen","Enter fullscreen","ghost",!1,q,!1) +n.Q!==$&&A.ax("_fsToggle") +n.Q=p +o=t.O +o=A.t(m,l,l,A.e([A.t(m,l,l,A.e([A.ar("\u2190 Sessions",l,"ghost",!1,new A.tn(n),!1),A.t(m,l,l,B.h,"grow",l,l,l,l),s,p,A.ar("Detach",l,l,!1,n.goB(),!1),A.ar("Terminate",l,"danger",!1,n.goZ(),!1)],o),"toolbar",l,l,l,l),A.t(m,l,l,A.e([k],o),"card terminal-card",l,l,l,l),r,A.ar("\u2921","Exit fullscreen","icon ghost term-exit-fullscreen",!1,q,!1)],o),"stack terminal-screen",l,l,l,l) +n.w!==$&&A.ax("element") +n.w=o +A.j(s.appendChild(A.k9("Connecting\u2026"))) +s=A.aS(A.j(v.G.document).documentElement) +if(s!=null)A.j(s.classList).add("terminal-active") +A.o3(n.goP())}, +cS(){var s=0,r=A.p(t.H),q,p=2,o=[],n=this,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5 +var $async$cS=A.q(function(b7,b8){if(b7===1){o.push(b8) +s=p}for(;;)switch(s){case 0:b4=null +try{b=n.x +b===$&&A.w("_host") +b4=n.d.$1(b)}catch(b6){m=A.R(b6) +n.jt(new A.bb(B.bk,"Terminal failed to load: "+A.u(m),null)) +s=1 +break}n.as=b4 +b=n.c==="new"?n.a.e.qQ(A.AS()):null +n.dx=b +a0=b4 +a1=n.x +a1===$&&A.w("_host") +a2=n.z +a2===$&&A.w("_accessory") +a3=n.w +a3===$&&A.w("element") +l=A.EX(a2,b,a1,new A.te(n),a3,a0,new A.tf(n)) +n.db=l +k=null +j=null +s=b!=null?3:5 +break +case 3:if(b4 instanceof A.dh){a0=b4 +a1=a0.e +if(a1!=null)a1.U() +a0=a0.f +if(a0!=null)a0.U() +b4.ks(b.a,b.b) +l.hn()}k=b.a +j=b.b +s=4 +break +case 5:s=b4 instanceof A.dh?6:7 +break +case 6:l.hn() +s=8 +return A.f(A.Dp(B.i6,t.H),$async$cS) +case 8:b4.cm() +case 7:a4=b4.gc4() +a5=a4.a +k=a5>0?a5:80 +a6=a4.b +j=a6>0?a6:24 +case 4:p=10 +s=13 +return A.f(n.e.$2(k,j),$async$cS) +case 13:i=b8 +if(n.CW){i.bu() +s=1 +break}b=i.r +b=b==null?null:b.a +n.ay=b +if(b!=null)n.a.z.sae(b) +n.ex() +b=n.a +a0=b.a +h=a0.gbi() +g=A.zs(i.y) +f=A.DQ() +a1=b.w +s=14 +return A.f(A.x3(new A.tg(n),f,a0,a1),$async$cS) +case 14:if(n.CW){i.bu() +s=1 +break}a3=b4 +a7=a0.c +a8=a7==null +a9=a8?null:a7.a.a +if(a9==null)a9="user" +b0=n.b +b1=i instanceof A.cg?i:null +b2=i instanceof A.cg&&i.x +a8=a8?null:a7.a.a +b3=A.Fe(h,f,A.CS((a8==null?"user":a8)+"@"+b0,b.x),b0,new A.th(n),new A.ti(n,h,g,i),new A.tj(n),new A.tk(n),a9,a7,b1,b2,i,a3) +n.at=b3 +e=b3 +a3=b4 +a7=e.dx +f.fp(new A.mM(a3,new A.aA(a7,A.l(a7).h("aA<1>")),a0,a1)) +a1=n.y +a1===$&&A.w("_status") +A.cq(a1) +a1=A.EW(n.f,n.r,e,b.y.gkY(),b4).f +a1===$&&A.w("element") +A.cq(a2) +A.j(a2.appendChild(a1)) +b4.a.focus() +b=b.e.e.b +l.ps(new A.aA(b,A.l(b).h("aA<1>"))) +d=A.j(A.j(v.G.window).matchMedia("(orientation: portrait)")) +n.cy=A.bC(d,"change",new A.tl(n)) +l.ie() +p=2 +s=12 +break +case 10:p=9 +b5=o.pop() +c=A.R(b5) +b4.ah() +n.as=null +n.jt(A.ko(c)) +s=12 +break +case 9:s=2 +break +case 12:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$cS,r)}, +p9(){return this.jo(!this.cx)}, +jo(a){var s,r +this.cx=a +s=A.aS(A.j(v.G.document).documentElement) +if(s!=null)A.cH(A.j(s.classList).toggle("term-fullscreen",a)) +s=this.Q +s===$&&A.w("_fsToggle") +r=a?"\u2921 Exit":"\u2922 Fullscreen" +s.textContent=r +r=a?"Exit fullscreen":"Enter fullscreen" +s.setAttribute("aria-label",r) +r=this.db +if(r!=null)r.ie()}, +jt(a){var s=this.y +s===$&&A.w("_status") +A.cq(s) +s=this.x +s===$&&A.w("_host") +A.cq(s) +A.j(s.appendChild(A.o0(a)))}, +eT(){var s=0,r=A.p(t.H),q,p=this,o +var $async$eT=A.q(function(a,b){if(a===1)return A.m(b,r) +for(;;)switch(s){case 0:if(p.ch){s=1 +break}p.ch=!0 +o=p.at +if(o==null)o=null +else{o=o.d +o===$&&A.w("_controller") +o=o.bu()}s=3 +return A.f(o instanceof A.v?o:A.bs(o,t.H),$async$eT) +case 3:o=p.a +o.y.b0(u.b,"success") +o.r.aF("/nodes/"+A.cG(2,p.b,B.l,!1)+"/sessions") +case 1:return A.n(q,r)}}) +return A.o($async$eT,r)}, +cU(){var s=0,r=A.p(t.H),q,p=2,o=[],n=this,m,l,k,j,i,h,g,f,e +var $async$cU=A.q(function(a,b){if(a===1){o.push(b) +s=p}for(;;)switch(s){case 0:if(n.ch){s=1 +break}n.ch=!0 +m=n.ay +l=!0 +k="Session terminated." +p=4 +s=m!=null?7:9 +break +case 7:s=10 +return A.f(n.a.a.ki(n.b,m),$async$cU) +case 10:j=b +l=j.a +if(j.b.length!==0)k=j.b +s=8 +break +case 9:h=n.at +if(h==null)h=null +else{h=h.d +h===$&&A.w("_controller") +h=h.p()}s=11 +return A.f(h instanceof A.v?h:A.bs(h,t.H),$async$cU) +case 11:case 8:p=2 +s=6 +break +case 4:p=3 +e=o.pop() +i=A.R(e) +l=!1 +k=A.ko(i).b +s=6 +break +case 3:s=2 +break +case 6:h=n.at +h=h==null?null:h.ah() +s=12 +return A.f(h instanceof A.v?h:A.bs(h,t.H),$async$cU) +case 12:h=n.a +f=h.y +if(l)f.b0(A.r(k),"success") +else f.b0(A.r(k),"error") +h.r.aF("/nodes/"+A.cG(2,n.b,B.l,!1)+"/sessions") +case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$cU,r)}, +ex(){var s=0,r=A.p(t.H),q=1,p=[],o=this,n,m,l,k,j,i +var $async$ex=A.q(function(a,b){if(a===1){p.push(b) +s=q}for(;;)switch(s){case 0:q=3 +s=6 +return A.f(o.a.a.kj(),$async$ex) +case 6:n=b +for(l=J.aN(n),k=o.b;l.q();){m=l.gA() +if(m.a.a===k){o.ax=m +break}}q=1 +s=5 +break +case 3:q=2 +i=p.pop() +s=5 +break +case 2:s=1 +break +case 5:return A.n(null,r) +case 1:return A.m(p.at(-1),r)}}) +return A.o($async$ex,r)}, +iU(a){var s,r,q=this +if(q.ch)return +q.ch=!0 +s=q.a +r=a?u.b:"Session terminated." +s.y.b0(r,"success") +s.r.aF("/nodes/"+A.cG(2,q.b,B.l,!1)+"/sessions")}, +ah(){var s,r,q,p=this +p.CW=!0 +s=p.db +if(s!=null){s.x=!0 +r=s.y +if(r!=null)r.U() +r=s.z +if(r!=null)r.$0() +r=s.Q +if(r!=null)r.$0() +r=s.as +if(r!=null)r.disconnect() +s=s.at +if(s!=null)s.U()}p.db=null +s=p.cy +if(s!=null)s.$0() +s=v.G +r=A.aS(A.j(s.document).documentElement) +if(r!=null)A.j(r.classList).remove("terminal-active") +if(p.cx){s=A.aS(A.j(s.document).documentElement) +if(s!=null)A.j(s.classList).remove("term-fullscreen")}if(!p.ch){s=p.at +s=s!=null&&!s.cx}else s=!1 +if(s){p.ch=!0 +s=p.at.d +s===$&&A.w("_controller") +s.bu()}else{s=p.at +if(s!=null)s.ah()}q=p.as +p.as=null +if(q!=null)q.ah()}, +$idK:1} +A.tm.prototype={ +$1(a){var s,r,q=v.G,p=q.Terminal,o={} +o.cursorBlink=!0 +o.fontFamily="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" +o.fontSize=13 +o.scrollback=5000 +s={} +s.background="#0b0e12" +s.foreground="#e6e9ee" +s.cursor="#4f8bff" +o.theme=s +p=A.j(new p(o)) +q=A.j(new q.FitAddon.FitAddon()) +r=new A.dh(p,q) +p.loadAddon(q) +p.open(a) +p=r.ghB() +r.e=A.eY(B.cX,p) +r.f=A.eY(B.ia,p) +return r}, +$S:142} +A.tn.prototype={ +$0(){var s=this.a +return s.a.r.aF("/nodes/"+A.cG(2,s.b,B.l,!1)+"/sessions")}, +$S:0} +A.tb.prototype={ +$2(a,b){return this.kH(A.a4(a),A.a4(b))}, +kH(a,b){var s=0,r=A.p(t.dS),q,p=this,o,n,m +var $async$$2=A.q(function(c,d){if(c===1)return A.m(d,r) +for(;;)switch(s){case 0:o=p.a +n=p.c +m=p.b.a +s=o==="new"?3:5 +break +case 3:s=6 +return A.f(m.qx(a,n,b),$async$$2) +case 6:s=4 +break +case 5:s=7 +return A.f(m.qS(a,n,b,o),$async$$2) +case 7:case 4:q=d +s=1 +break +case 1:return A.n(q,r)}}) +return A.o($async$$2,r)}, +$S:143} +A.tf.prototype={ +$0(){return this.a.a.e.e.a}, +$S:52} +A.te.prototype={ +$0(){return this.a.cx}, +$S:59} +A.tg.prototype={ +$0(){return A.Bd(this.a.a)}, +$S:0} +A.ti.prototype={ +$3(a,b,c){return this.kI(a,b,c)}, +kI(a,b,c){var s=0,r=A.p(t.a),q,p=2,o=[],n=this,m,l,k,j,i,h +var $async$$3=A.q(function(d,e){if(d===1){o.push(e) +s=p}for(;;)switch(s){case 0:p=4 +s=7 +return A.f(n.b.ck(n.c.hq(a,b),c,n.a.b,n.d.y).kv(B.cZ),$async$$3) +case 7:m=e +k=t.zK +k=new A.a2(A.e(B.l.aK(m.b,!0).split("\n"),t.s),t.ff.a(new A.tc()),k).l6(0,k.h("y(Q.E)").a(new A.td())) +j=A.N(k,k.$ti.h("i.E")) +l=j +k=J.aE(l)>200?J.Cj(l,0,200):l +q=k +s=1 +break +p=2 +s=6 +break +case 4:p=3 +h=o.pop() +q=B.G +s=1 +break +s=6 +break +case 3:s=2 +break +case 6:case 1:return A.n(q,r) +case 2:return A.m(o.at(-1),r)}}) +return A.o($async$$3,r)}, +$S:144} +A.tc.prototype={ +$1(a){return B.a.c2(A.r(a))}, +$S:6} +A.td.prototype={ +$1(a){return A.r(a).length!==0}, +$S:1} +A.th.prototype={ +$0(){return this.a.ax}, +$S:145} +A.tk.prototype={ +$0(){return this.a.iU(!1)}, +$S:0} +A.tj.prototype={ +$0(){return this.a.iU(!0)}, +$S:0} +A.tl.prototype={ +$1(a){var s +A.j(a) +s=this.a +if(s.cx)s.jo(!1)}, +$S:2} +A.j5.prototype={ +gdS(){var s=this.d +s===$&&A.w("element") +return s}, +lp(a,b){var s,r,q,p,o=this,n=null,m=o.a,l=o.b,k=A.cj(t.o),j=new A.aQ(B.cE,k,t.o5) +o.c!==$&&A.ax("_controller") +s=o.c=new A.j4(m.a,l,j) +r=A.dY("list") +o.e!==$&&A.ax("_body") +o.e=r +q=A.ar("Refresh",n,"btn-sm",!1,s.ge7(),!1) +o.f!==$&&A.ax("_refresh") +o.f=q +p=t.O +p=A.t("div",n,n,A.e([A.t("div",n,n,A.e([A.ar("\u2190 Node",n,"ghost",!1,new A.tw(o),!1),A.t("h1",n,n,B.h,"sessions-title",n,n,n,"Sessions"),A.t("div",n,n,B.h,"grow",n,n,n,n),A.ar("New",n,"btn-sm",!1,new A.tx(o),!0),q],p),"toolbar",n,n,n,n),A.t("h1",n,n,B.h,"mono node-title",n,n,n,l),r],p),"stack",n,n,n,n) +o.d!==$&&A.ax("element") +o.d=p +o.r=new A.aA(k,A.l(k).h("aA<1>")).aE(o.goD()) +m=m.z.b +o.w=new A.aA(m,A.l(m).h("aA<1>")).aE(new A.ty(o)) +o.hf(j.a) +s.ao()}, +hf(a){var s,r,q,p,o,n=this,m=null +t.o.a(a) +s=n.f +s===$&&A.w("_refresh") +r=a.a +q=r===B.a0 +s.disabled=q +s=n.e +s===$&&A.w("_body") +A.cq(s) +p=a.b +if(r===B.an)r=p==null||J.bZ(p) +else r=!1 +if(r){r=a.c +r.toString +A.j(s.appendChild(A.o0(r))) +r=n.c +r===$&&A.w("_controller") +A.j(s.appendChild(A.ar("Retry",m,m,!1,r.ge7(),!1))) +return}if(q)r=p==null||J.bZ(p) +else r=!1 +if(r){A.j(s.appendChild(A.k9("Loading sessions\u2026"))) +return}if(p==null||J.bZ(p)){A.j(s.appendChild(A.t("div",m,m,B.h,"empty",m,m,m,"No sessions on this node."))) +return}for(r=n.nS(p),q=r.length,o=0;o0&&!s.b7(a) +if(s)return a +s=this.b +return this.hM(0,s==null?A.AQ():s,a,r,r,r,r,r,r,r,r,r,r,r,r,r,r)}, +f8(a){var s,r,q=A.eI(a,this.a) +q.ea() +s=q.d +r=s.length +if(r===0){s=q.b +return s==null?".":s}if(r===1){s=q.b +return s==null?".":s}B.b.hX(s) +s=q.e +if(0>=s.length)return A.b(s,-1) +s.pop() +q.ea() +return q.l(0)}, +hM(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){var s=A.e([b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q],t.yH) +A.AL("join",s) +return this.q7(new A.bL(s,t.Ai))}, +q6(a,b,c){var s=null +return this.hM(0,b,c,s,s,s,s,s,s,s,s,s,s,s,s,s,s)}, +q7(a){var s,r,q,p,o,n,m,l,k,j +t.Du.a(a) +for(s=a.$ti,r=s.h("y(i.E)").a(new A.pq()),q=a.gJ(0),s=new A.f9(q,r,s.h("f9")),r=this.a,p=!1,o=!1,n="";s.q();){m=q.gA() +if(r.b7(m)&&o){l=A.eI(m,r) +k=n.charCodeAt(0)==0?n:n +n=B.a.m(k,0,r.d9(k,!0)) +l.b=n +if(r.e1(n))B.b.i(l.e,0,r.gcB()) +n=l.l(0)}else if(r.ap(m)>0){o=!r.b7(m) +n=m}else{j=m.length +if(j!==0){if(0>=j)return A.b(m,0) +j=r.hr(m[0])}else j=!1 +if(!j)if(p)n+=r.gcB() +n+=m}p=r.e1(m)}return n.charCodeAt(0)==0?n:n}, +cC(a,b){var s=A.eI(b,this.a),r=s.d,q=A.U(r),p=q.h("ae<1>") +r=A.N(new A.ae(r,q.h("y(1)").a(new A.pr()),p),p.h("i.E")) +s.sqA(r) +r=s.b +if(r!=null)B.b.hJ(s.d,0,r) +return s.d}, +a4(a){var s +if(!this.nj(a))return a +s=A.eI(a,this.a) +s.hQ() +return s.l(0)}, +nj(a){var s,r,q,p,o,n,m,l=this.a,k=l.ap(a) +if(k!==0){if(l===$.o5())for(s=a.length,r=0;r=0))return A.b(a,r) +n=a.charCodeAt(r) +if(l.a8(n)){if(l===$.o5()&&n===47)return!0 +if(p!=null&&l.a8(p))return!0 +if(p===46)m=o==null||o===46||l.a8(o) +else m=!1 +if(m)return!0}}if(p==null)return!0 +if(l.a8(p))return!0 +if(p===46)l=o==null||l.a8(o)||o===46 +else l=!1 +if(l)return!0 +return!1}, +e8(a,b){var s,r,q,p,o,n,m,l=this,k='Unable to find a path to "',j=b==null +if(j&&l.a.ap(a)<=0)return l.a4(a) +if(j){j=l.b +b=j==null?A.AQ():j}else b=l.bV(b) +j=l.a +if(j.ap(b)<=0&&j.ap(a)>0)return l.a4(a) +if(j.ap(a)<=0||j.b7(a))a=l.bV(a) +if(j.ap(a)<=0&&j.ap(b)>0)throw A.d(A.zb(k+a+'" from "'+b+'".')) +s=A.eI(b,j) +s.hQ() +r=A.eI(a,j) +r.hQ() +q=s.d +p=q.length +if(p!==0){if(0>=p)return A.b(q,0) +q=q[0]==="."}else q=!1 +if(q)return r.l(0) +q=s.b +p=r.b +if(q!=p)q=q==null||p==null||!j.hT(q,p) +else q=!1 +if(q)return r.l(0) +for(;;){q=s.d +p=q.length +o=!1 +if(p!==0){n=r.d +m=n.length +if(m!==0){if(0>=p)return A.b(q,0) +q=q[0] +if(0>=m)return A.b(n,0) +n=j.hT(q,n[0]) +q=n}else q=o}else q=o +if(!q)break +B.b.bx(s.d,0) +B.b.bx(s.e,1) +B.b.bx(r.d,0) +B.b.bx(r.e,1)}q=s.d +p=q.length +if(p!==0){if(0>=p)return A.b(q,0) +q=q[0]===".."}else q=!1 +if(q)throw A.d(A.zb(k+a+'" from "'+b+'".')) +q=t.N +B.b.hK(r.d,0,A.bU(p,"..",!1,q)) +B.b.i(r.e,0,"") +B.b.hK(r.e,1,A.bU(s.d.length,j.gcB(),!1,q)) +j=r.d +q=j.length +if(q===0)return"." +if(q>1&&B.b.gaX(j)==="."){B.b.hX(r.d) +j=r.e +if(0>=j.length)return A.b(j,-1) +j.pop() +if(0>=j.length)return A.b(j,-1) +j.pop() +B.b.j(j,"")}r.b="" +r.ea() +return r.l(0)}, +qK(a){return this.e8(a,null)}, +bq(a,b){var s,r,q,p,o,n,m,l,k=this +a=A.r(a) +b=A.r(b) +r=k.a +q=r.ap(A.r(a))>0 +p=r.ap(A.r(b))>0 +if(q&&!p){b=k.bV(b) +if(r.b7(a))a=k.bV(a)}else if(p&&!q){a=k.bV(a) +if(r.b7(b))b=k.bV(b)}else if(p&&q){o=r.b7(b) +n=r.b7(a) +if(o&&!n)b=k.bV(b) +else if(n&&!o)a=k.bV(a)}m=k.n7(a,b) +if(m!==B.ag)return m +s=null +try{s=k.e8(b,a)}catch(l){if(A.R(l) instanceof A.iX)return B.Y +else throw l}if(r.ap(A.r(s))>0)return B.Y +if(J.a0(s,"."))return B.Z +if(J.a0(s,".."))return B.Y +return J.aE(s)>=3&&J.Ci(s,"..")&&r.a8(J.Cc(s,2))?B.Y:B.aq}, +n7(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=this +if(a===".")a="" +s=d.a +r=s.ap(a) +q=s.ap(b) +if(r!==q)return B.Y +for(p=a.length,o=b.length,n=0;n=0&&l=0&&m=0&&l=0&&m=0))return A.b(a,q) +n=r.a8(a.charCodeAt(q))}else n=!1 +if(!n)break;++q}if(q===s)break +m=q +for(;;){if(m=0))return A.b(a,m) +n=!r.a8(a.charCodeAt(m))}else n=!1 +if(!n)break;++m}n=m-q +if(n===1){if(!(q>=0&&q=0&&qq.cC(0,s).length?s:r}} +A.pq.prototype={ +$1(a){return A.r(a)!==""}, +$S:1} +A.pr.prototype={ +$1(a){return A.r(a).length!==0}, +$S:1} +A.ww.prototype={ +$1(a){A.Y(a) +return a==null?"null":'"'+a+'"'}, +$S:150} +A.hK.prototype={ +l(a){return this.a}} +A.hL.prototype={ +l(a){return this.a}} +A.fR.prototype={ +kM(a){var s,r=this.ap(a) +if(r>0)return B.a.m(a,0,r) +if(this.b7(a)){if(0>=a.length)return A.b(a,0) +s=a[0]}else s=null +return s}, +f4(a,b){return a===b}, +hT(a,b){return a===b}} +A.lW.prototype={ +gjU(){var s=this,r=t.N,q=new A.lW(s.a,s.b,s.c,A.xL(s.d,!0,r),A.xL(s.e,!0,r)) +q.ea() +r=q.d +if(r.length===0){r=s.b +return r==null?"":r}return B.b.gaX(r)}, +ea(){var s,r,q=this +for(;;){s=q.d +if(!(s.length!==0&&B.b.gaX(s)===""))break +B.b.hX(q.d) +s=q.e +if(0>=s.length)return A.b(s,-1) +s.pop()}s=q.e +r=s.length +if(r!==0)B.b.i(s,r-1,"")}, +hQ(){var s,r,q,p,o,n,m=this,l=A.e([],t.s) +for(s=m.d,r=s.length,q=0,p=0;p=n)return A.b(l,-1) +l.pop()}else ++q}else B.b.j(l,o)}if(m.b==null)B.b.hK(l,0,A.bU(q,"..",!1,t.N)) +if(l.length===0&&m.b==null)B.b.j(l,".") +m.d=l +s=m.a +m.e=A.bU(l.length+1,s.gcB(),!0,t.N) +r=m.b +if(r==null||l.length===0||!s.e1(r))B.b.i(m.e,0,"") +r=m.b +if(r!=null&&s===$.o5())m.b=A.ad(r,"/","\\") +m.ea()}, +l(a){var s,r,q,p,o,n=this.b +n=n!=null?n:"" +for(s=this.d,r=s.length,q=this.e,p=q.length,o=0;o=0))return A.b(a,s) +s=a.charCodeAt(s)!==47 +r=s}else r=!1 +return r}, +d9(a,b){var s=a.length +if(s!==0){if(0>=s)return A.b(a,0) +s=a.charCodeAt(0)===47}else s=!1 +if(s)return 1 +return 0}, +ap(a){return this.d9(a,!1)}, +b7(a){return!1}, +hS(a){var s +if(a.gaG()===""||a.gaG()==="file"){s=a.gb9() +return A.w7(s,0,s.length,B.l,!1)}throw A.d(A.as("Uri "+a.l(0)+" must have scheme 'file:'.",null))}, +gT(){return"posix"}, +gcB(){return"/"}} +A.mI.prototype={ +hr(a){return B.a.t(a,"/")}, +a8(a){return a===47}, +e1(a){var s,r=a.length +if(r===0)return!1 +s=r-1 +if(!(s>=0))return A.b(a,s) +if(a.charCodeAt(s)!==47)return!0 +return B.a.aA(a,"://")&&this.ap(a)===r}, +d9(a,b){var s,r,q,p=a.length +if(p===0)return 0 +if(0>=p)return A.b(a,0) +if(a.charCodeAt(0)===47)return 1 +for(s=0;s=s)return A.b(a,0) +s=a.charCodeAt(0)===47}else s=!1 +return s}, +hS(a){return a.l(0)}, +gT(){return"url"}, +gcB(){return"/"}} +A.mP.prototype={ +hr(a){return B.a.t(a,"/")}, +a8(a){return a===47||a===92}, +e1(a){var s,r=a.length +if(r===0)return!1 +s=r-1 +if(!(s>=0))return A.b(a,s) +s=a.charCodeAt(s) +return!(s===47||s===92)}, +d9(a,b){var s,r,q=a.length +if(q===0)return 0 +if(0>=q)return A.b(a,0) +if(a.charCodeAt(0)===47)return 1 +if(a.charCodeAt(0)===92){if(q>=2){if(1>=q)return A.b(a,1) +s=a.charCodeAt(1)!==92}else s=!0 +if(s)return 1 +r=B.a.a_(a,"\\",2) +if(r>0){r=B.a.a_(a,"\\",r+1) +if(r>0)return r}return q}if(q<3)return 0 +if(!A.B0(a.charCodeAt(0)))return 0 +if(a.charCodeAt(1)!==58)return 0 +q=a.charCodeAt(2) +if(!(q===47||q===92))return 0 +return 3}, +ap(a){return this.d9(a,!1)}, +b7(a){return this.ap(a)===1}, +hS(a){var s,r +if(a.gaG()!==""&&a.gaG()!=="file")throw A.d(A.as("Uri "+a.l(0)+" must have scheme 'file:'.",null)) +s=a.gb9() +if(a.gbj()===""){if(s.length>=3&&B.a.u(s,"/")&&A.AT(s,1)!=null)s=B.a.kr(s,"/","")}else s="\\\\"+a.gbj()+s +r=A.ad(s,"/","\\") +return A.w7(r,0,r.length,B.l,!1)}, +f4(a,b){var s +if(a===b)return!0 +if(a===47)return b===92 +if(a===92)return b===47 +if((a^b)!==32)return!1 +s=a|32 +return s>=97&&s<=122}, +hT(a,b){var s,r,q +if(a===b)return!0 +s=a.length +r=b.length +if(s!==r)return!1 +for(q=0;qr.c.length)throw A.d(A.b7("Offset "+a+u.D+r.gn(0)+".")) +s=r.b +if(a=B.b.gaX(s))return s.length-1 +if(r.n2(a)){s=r.d +s.toString +return s}return r.d=r.lJ(a)-1}, +n2(a){var s,r,q,p=this.d +if(p==null)return!1 +s=this.b +r=s.length +if(p>>>0!==p||p>=r)return A.b(s,p) +if(a=r-1)){q=p+1 +if(!(q=r-2)){q=p+2 +if(!(q=0&&ra)o=r +else s=r+1}return o}, +fD(a){var s,r,q,p=this +if(a<0)throw A.d(A.b7("Offset may not be negative, was "+a+".")) +else if(a>p.c.length)throw A.d(A.b7("Offset "+a+" must be not be greater than the number of characters in the file, "+p.gn(0)+".")) +s=p.df(a) +r=p.b +if(!(s>=0&&sa)throw A.d(A.b7("Line "+s+" comes after offset "+a+".")) +return a-q}, +ed(a){var s,r,q,p +if(a<0)throw A.d(A.b7("Line may not be negative, was "+a+".")) +else{s=this.b +r=s.length +if(a>=r)throw A.d(A.b7("Line "+a+" must be less than the number of lines in the file, "+this.gqb()+"."))}q=s[a] +if(q<=this.c.length){p=a+1 +s=p=s[p]}else s=!0 +if(s)throw A.d(A.b7("Line "+a+" doesn't have 0 columns.")) +return q}} +A.l3.prototype={ +ga2(){return this.a.a}, +gab(){return this.a.df(this.b)}, +gal(){return this.a.fD(this.b)}, +gan(){return this.b}} +A.hH.prototype={ +ga2(){return this.a.a}, +gn(a){return this.c-this.b}, +gP(){return A.xE(this.a,this.b)}, +gO(){return A.xE(this.a,this.c)}, +ga1(){return A.c5(B.bR.aq(this.a.c,this.b,this.c),0,null)}, +gaU(){var s=this,r=s.a,q=s.c,p=r.df(q) +if(r.fD(q)===0&&p!==0){if(q-s.b===0)return p===r.b.length-1?"":A.c5(B.bR.aq(r.c,r.ed(p),r.ed(p+1)),0,null)}else q=p===r.b.length-1?r.c.length:r.ed(p+1) +return A.c5(B.bR.aq(r.c,r.ed(r.df(s.b)),q),0,null)}, +a3(a,b){var s +t.gL.a(b) +if(!(b instanceof A.hH))return this.le(0,b) +s=B.c.a3(this.b,b.b) +return s===0?B.c.a3(this.c,b.c):s}, +L(a,b){var s=this +if(b==null)return!1 +if(!(b instanceof A.hH))return s.ld(0,b) +return s.b===b.b&&s.c===b.c&&J.a0(s.a.a,b.a.a)}, +gE(a){return A.bo(this.b,this.c,this.a.a,B.f,B.f,B.f,B.f)}, +$idc:1} +A.qa.prototype={ +q3(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a=this,a0=null,a1=a.a +a.jJ(B.b.gI(a1).c) +s=a.e +r=A.bU(s,a0,!1,t.lI) +for(q=a.r,s=s!==0,p=a.b,o=0;o0){m=a1[o-1] +l=n.c +if(!J.a0(m.c,l)){a.f_("\u2575") +q.a+="\n" +a.jJ(l)}else if(m.b+1!==n.b){a.po("...") +q.a+="\n"}}for(l=n.d,k=A.U(l).h("j0<1>"),j=new A.j0(l,k),j=new A.aI(j,j.gn(0),k.h("aI")),k=k.h("Q.E"),i=n.b,h=n.a;j.q();){g=j.d +if(g==null)g=k.a(g) +f=g.a +if(f.gP().gab()!==f.gO().gab()&&f.gP().gab()===i&&a.n3(B.a.m(h,0,f.gP().gal()))){e=B.b.aW(r,a0) +if(e<0)A.K(A.as(A.u(r)+" contains no null elements.",a0)) +B.b.i(r,e,g)}}a.pn(i) +q.a+=" " +a.pm(n,r) +if(s)q.a+=" " +d=B.b.fg(l,new A.qw()) +if(d===-1)c=a0 +else{if(!(d>=0&&d")),q=this.r,r=r.h("P.E");s.q();){p=s.d +if(p==null)p=r.a(p) +if(p===9)q.a+=B.a.aQ(" ",4) +else{p=A.ak(p) +q.a+=p}}}, +f0(a,b,c){var s={} +s.a=c +if(b!=null)s.a=B.c.l(b+1) +this.b3(new A.qu(s,this,a),"\x1b[34m",t.c)}, +f_(a){return this.f0(a,null,null)}, +po(a){return this.f0(null,null,a)}, +pn(a){return this.f0(null,a,null)}, +hk(){return this.f0(null,null,null)}, +fU(a){var s,r,q,p +for(s=new A.cu(a),r=t.I,s=new A.aI(s,s.gn(0),r.h("aI")),r=r.h("P.E"),q=0;s.q();){p=s.d +if((p==null?r.a(p):p)===9)++q}return q}, +n3(a){var s,r,q +for(s=new A.cu(a),r=t.I,s=new A.aI(s,s.gn(0),r.h("aI")),r=r.h("P.E");s.q();){q=s.d +if(q==null)q=r.a(q) +if(q!==32&&q!==9)return!1}return!0}, +b3(a,b,c){var s,r +c.h("0()").a(a) +s=this.b!=null +if(s&&b!=null)this.r.a+=b +r=a.$0() +if(s&&b!=null)this.r.a+="\x1b[0m" +return r}} +A.qv.prototype={ +$0(){return this.a}, +$S:53} +A.qc.prototype={ +$1(a){var s=t.Dd.a(a).d,r=A.U(s) +return new A.ae(s,r.h("y(1)").a(new A.qb()),r.h("ae<1>")).gn(0)}, +$S:151} +A.qb.prototype={ +$1(a){var s=t.E.a(a).a +return s.gP().gab()!==s.gO().gab()}, +$S:26} +A.qd.prototype={ +$1(a){return t.Dd.a(a).c}, +$S:153} +A.qg.prototype={ +$1(a){var s=t.E.a(a).a.ga2() +return s==null?new A.x():s}, +$S:232} +A.qh.prototype={ +$2(a,b){var s=t.E +return s.a(a).a.a3(0,s.a(b).a)}, +$S:155} +A.qi.prototype={ +$1(a0){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a +t.ho.a(a0) +s=a0.a +r=a0.b +q=A.e([],t.Ac) +for(p=J.bN(r),o=p.gJ(r),n=t.oi;o.q();){m=o.gA().a +l=m.gaU() +k=A.wL(l,m.ga1(),m.gP().gal()) +k.toString +j=B.a.dK("\n",B.a.m(l,0,k)).gn(0) +i=m.gP().gab()-j +for(m=l.split("\n"),k=m.length,h=0;hB.b.gaX(q).b)B.b.j(q,new A.c7(g,i,s,A.e([],n)));++i}}f=A.e([],n) +for(o=q.length,n=t.v1,e=f.$flags|0,d=0,h=0;h")),b=g.b,k=k.h("Q.E");m.q();){a=m.d +if(a==null)a=k.a(a) +if(a.a.gP().gab()>b)break +B.b.j(f,a)}d+=f.length-c +B.b.C(g.d,f)}return q}, +$S:156} +A.qf.prototype={ +$1(a){return t.E.a(a).a.gO().gab()" +return null}, +$S:0} +A.qq.prototype={ +$0(){var s=this.a.r,r=this.b===this.c.b?"\u250c":"\u2514" +s.a+=r}, +$S:5} +A.qr.prototype={ +$0(){var s=this.a.r,r=this.b==null?"\u2500":"\u253c" +s.a+=r}, +$S:5} +A.qs.prototype={ +$0(){this.a.r.a+="\u2500" +return null}, +$S:0} +A.qt.prototype={ +$0(){var s,r,q=this,p=q.a,o=p.a?"\u253c":"\u2502" +if(q.c!=null)q.b.r.a+=o +else{s=q.e +r=s.b +if(q.d===r){s=q.b +s.b3(new A.qo(p,s),p.b,t.c) +p.a=!0 +if(p.b==null)p.b=s.b}else{s=q.r===r&&q.f.a.gO().gal()===s.a.length +r=q.b +if(s)r.r.a+="\u2514" +else r.b3(new A.qp(r,o),p.b,t.c)}}}, +$S:5} +A.qo.prototype={ +$0(){var s=this.b.r,r=this.a.a?"\u252c":"\u250c" +s.a+=r}, +$S:5} +A.qp.prototype={ +$0(){this.a.r.a+=this.b}, +$S:5} +A.qk.prototype={ +$0(){var s=this +return s.a.f1(B.a.m(s.b,s.c,s.d))}, +$S:0} +A.ql.prototype={ +$0(){var s,r,q=this.a,p=q.r,o=p.a,n=this.c.a,m=n.gP().gal(),l=n.gO().gal() +n=this.b.a +s=q.fU(B.a.m(n,0,m)) +r=q.fU(B.a.m(n,m,l)) +m+=s*3 +n=(p.a+=B.a.aQ(" ",m))+B.a.aQ("^",Math.max(l+(s+r)*3-m,1)) +p.a=n +return n.length-o.length}, +$S:15} +A.qm.prototype={ +$0(){return this.a.pi(this.b,this.c.a.gP().gal())}, +$S:0} +A.qn.prototype={ +$0(){var s=this,r=s.a,q=r.r,p=q.a +if(s.b)q.a=p+B.a.aQ("\u2500",3) +else r.jI(s.c,Math.max(s.d.a.gO().gal()-1,0),!1) +return q.a.length-p.length}, +$S:15} +A.qu.prototype={ +$0(){var s=this.b,r=s.r,q=this.a.a +if(q==null)q="" +s=B.a.kl(q,s.d) +s=r.a+=s +q=this.c +r.a=s+(q==null?"\u2502":q)}, +$S:5} +A.b8.prototype={ +l(a){var s=this.a +s="primary "+(""+s.gP().gab()+":"+s.gP().gal()+"-"+s.gO().gab()+":"+s.gO().gal()) +return s.charCodeAt(0)==0?s:s}} +A.vH.prototype={ +$0(){var s,r,q,p,o=this.a +if(!(t.ER.b(o)&&A.wL(o.gaU(),o.ga1(),o.gP().gal())!=null)){s=A.mo(o.gP().gan(),0,0,o.ga2()) +r=o.gO().gan() +q=o.ga2() +p=A.Ip(o.ga1(),10) +o=A.tL(s,A.mo(r,A.zN(o.ga1()),p,q),o.ga1(),o.ga1())}return A.Fu(A.Fw(A.Fv(o)))}, +$S:157} +A.c7.prototype={ +l(a){return""+this.b+': "'+this.a+'" ('+B.b.S(this.d,", ")+")"}} +A.cz.prototype={ +hw(a){var s=this.a +if(!J.a0(s,a.ga2()))throw A.d(A.as('Source URLs "'+A.u(s)+'" and "'+A.u(a.ga2())+"\" don't match.",null)) +return Math.abs(this.b-a.gan())}, +a3(a,b){var s +t.wo.a(b) +s=this.a +if(!J.a0(s,b.ga2()))throw A.d(A.as('Source URLs "'+A.u(s)+'" and "'+A.u(b.ga2())+"\" don't match.",null)) +return this.b-b.gan()}, +L(a,b){if(b==null)return!1 +return t.wo.b(b)&&J.a0(this.a,b.ga2())&&this.b===b.gan()}, +gE(a){var s=this.a +s=s==null?null:s.gE(s) +if(s==null)s=0 +return s+this.b}, +l(a){var s=this,r=A.o1(s).l(0),q=s.a +return"<"+r+": "+s.b+" "+(A.u(q==null?"unknown source":q)+":"+(s.c+1)+":"+(s.d+1))+">"}, +$iaK:1, +ga2(){return this.a}, +gan(){return this.b}, +gab(){return this.c}, +gal(){return this.d}} +A.mp.prototype={ +hw(a){if(!J.a0(this.a.a,a.ga2()))throw A.d(A.as('Source URLs "'+A.u(this.ga2())+'" and "'+A.u(a.ga2())+"\" don't match.",null)) +return Math.abs(this.b-a.gan())}, +a3(a,b){t.wo.a(b) +if(!J.a0(this.a.a,b.ga2()))throw A.d(A.as('Source URLs "'+A.u(this.ga2())+'" and "'+A.u(b.ga2())+"\" don't match.",null)) +return this.b-b.gan()}, +L(a,b){if(b==null)return!1 +return t.wo.b(b)&&J.a0(this.a.a,b.ga2())&&this.b===b.gan()}, +gE(a){var s=this.a.a +s=s==null?null:s.gE(s) +if(s==null)s=0 +return s+this.b}, +l(a){var s=A.o1(this).l(0),r=this.b,q=this.a,p=q.a +return"<"+s+": "+r+" "+(A.u(p==null?"unknown source":p)+":"+(q.df(r)+1)+":"+(q.fD(r)+1))+">"}, +$iaK:1, +$icz:1} +A.mq.prototype={ +lr(a,b,c){var s,r=this.b,q=this.a +if(!J.a0(r.ga2(),q.ga2()))throw A.d(A.as('Source URLs "'+A.u(q.ga2())+'" and "'+A.u(r.ga2())+"\" don't match.",null)) +else if(r.gan()'}, +$iaK:1, +$icS:1} +A.dc.prototype={ +gaU(){return this.d}} +A.iA.prototype={ +lk(a,b,c,d){var s=this,r=s.$ti,q=r.h("hI<1>").a(new A.hI(a,s,new A.W(new A.v($.E,t.D),t.h),b,d.h("hI<0>"))) +s.a!==$&&A.ax("_sink") +s.a=q +if(c.a.gbY()){q=c.a +c.a=A.l(q).H(d).h("br").a(new A.j7(d.h("@<0>").H(d).h("j7<1,2>"))).cW(q)}r=r.h("eU<1>").a(A.ci(null,new A.q9(c,s,d),!0,d)) +s.b!==$&&A.ax("_streamController") +s.b=r}, +j2(){var s,r +this.d=!0 +s=this.c +if(s!=null)s.U() +r=this.b +r===$&&A.w("_streamController") +r.p()}} +A.q9.prototype={ +$0(){var s,r,q=this.b +if(q.d)return +s=this.a.a +r=q.b +r===$&&A.w("_streamController") +q.c=s.bv(this.c.h("~(0)").a(r.gbh(r)),new A.q8(q),r.gjN())}, +$S:0} +A.q8.prototype={ +$0(){var s=this.a,r=s.a +r===$&&A.w("_sink") +r.j3() +s=s.b +s===$&&A.w("_streamController") +s.p()}, +$S:0} +A.hI.prototype={ +j(a,b){var s,r=this +r.$ti.c.a(b) +if(r.e)throw A.d(A.aC("Cannot add event after closing.")) +if(r.d)return +s=r.a +s.a.j(0,s.$ti.c.a(b))}, +aJ(a,b){if(this.e)throw A.d(A.aC("Cannot add event after closing.")) +if(this.d)return +this.lz(a,b)}, +f2(a){return this.aJ(a,null)}, +lz(a,b){var s=this +if(s.w){s.a.a.aJ(a,b) +return}s.c.cg(a,b) +s.j3() +s.b.j2() +s.a.a.p().bF(new A.vG())}, +p(){var s=this +if(s.e)return s.c.a +s.e=!0 +if(!s.d){s.b.j2() +s.c.V(s.a.a.p())}return s.c.a}, +j3(){this.d=!0 +var s=this.c +if((s.a.a&30)===0)s.bt() +return}, +$iaY:1, +$ick:1, +$ia3:1} +A.vG.prototype={ +$1(a){}, +$S:13} +A.mt.prototype={} +A.ja.prototype={$ixT:1} +A.mv.prototype={ +geg(){return A.r(this.c)}} +A.tZ.prototype={ +ghN(){var s=this +if(s.c!==s.e)s.d=null +return s.d}, +fE(a){var s,r=this,q=r.d=J.Cg(a,r.b,r.c) +r.e=r.c +s=q!=null +if(s)r.e=r.c=q.gO() +return s}, +k6(a,b){var s +if(this.fE(a))return +if(b==null)if(a instanceof A.dC)b="/"+a.a+"/" +else{s=J.b9(a) +s=A.ad(s,"\\","\\\\") +b='"'+A.ad(s,'"','\\"')+'"'}this.iI(b)}, +dU(a){return this.k6(a,null)}, +pX(){if(this.c===this.b.length)return +this.iI("no more input")}, +pT(a,b,c){var s,r,q,p,o,n=this.b +if(c<0)A.K(A.b7("position must be greater than or equal to 0.")) +else if(c>n.length)A.K(A.b7("position must be less than or equal to the string length.")) +s=c+b>n.length +if(s)A.K(A.b7("position plus length must not go beyond the end of the string.")) +s=this.a +r=A.e([0],t.t) +q=n.length +p=new A.tK(s,r,new Uint32Array(q)) +p.lq(new A.cu(n),s) +o=c+b +if(o>q)A.K(A.b7("End "+o+u.D+p.gn(0)+".")) +else if(c<0)A.K(A.b7("Start may not be negative, was "+c+".")) +throw A.d(new A.mv(n,a,new A.hH(p,c,o)))}, +iI(a){this.pT("expected "+a+".",0,this.c)}} +A.rZ.prototype={ +kK(){var s=this.my() +if(s.length!==16)throw A.d(A.yT("The length of the Uint8list returned by the custom RNG must be 16.")) +else return s}} +A.pt.prototype={ +my(){var s,r,q,p,o=new Uint8Array(16) +for(s=0;s<16;s+=4){r=$.Bl().qn(B.p.kx(Math.pow(2,32))) +if(!(s<16))return A.b(o,s) +o[s]=r +q=s+1 +p=B.c.aT(r,8) +if(!(q<16))return A.b(o,q) +o[q]=p +p=s+2 +q=B.c.aT(r,16) +if(!(p<16))return A.b(o,p) +o[p]=q +q=s+3 +p=B.c.aT(r,24) +if(!(q<16))return A.b(o,q) +o[q]=p}return o}} +A.uU.prototype={ +bm(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b=null +if(null==null)s=b +else s=b +if(s==null)s=$.BP().kK() +b=s.length +if(6>=b)return A.b(s,6) +r=s[6] +s.$flags&2&&A.ai(s) +s[6]=r&15|64 +if(8>=b)return A.b(s,8) +s[8]=s[8]&63|128 +if(b<16)A.K(A.b7("buffer too small: need 16: length="+b)) +r=$.BO() +q=s[0] +if(!(q<256))return A.b(r,q) +q=r[q] +p=s[1] +if(!(p<256))return A.b(r,p) +p=r[p] +o=s[2] +if(!(o<256))return A.b(r,o) +o=r[o] +n=s[3] +if(!(n<256))return A.b(r,n) +n=r[n] +m=s[4] +if(!(m<256))return A.b(r,m) +m=r[m] +l=s[5] +if(!(l<256))return A.b(r,l) +l=r[l] +k=s[6] +if(!(k<256))return A.b(r,k) +k=r[k] +j=s[7] +if(!(j<256))return A.b(r,j) +j=r[j] +i=s[8] +if(!(i<256))return A.b(r,i) +i=r[i] +if(9>=b)return A.b(s,9) +h=s[9] +if(!(h<256))return A.b(r,h) +h=r[h] +if(10>=b)return A.b(s,10) +g=s[10] +if(!(g<256))return A.b(r,g) +g=r[g] +if(11>=b)return A.b(s,11) +f=s[11] +if(!(f<256))return A.b(r,f) +f=r[f] +if(12>=b)return A.b(s,12) +e=s[12] +if(!(e<256))return A.b(r,e) +e=r[e] +if(13>=b)return A.b(s,13) +d=s[13] +if(!(d<256))return A.b(r,d) +d=r[d] +if(14>=b)return A.b(s,14) +c=s[14] +if(!(c<256))return A.b(r,c) +c=r[c] +if(15>=b)return A.b(s,15) +b=s[15] +if(!(b<256))return A.b(r,b) +return q+p+o+n+"-"+m+l+"-"+k+j+"-"+i+h+"-"+g+f+e+d+c+r[b]}} +A.xD.prototype={} +A.fe.prototype={ +gbY(){return!0}, +au(a,b,c,d){var s=this.$ti +s.h("~(1)?").a(a) +t.Z.a(c) +return A.zL(this.a,this.b,a,!1,s.c)}, +bv(a,b,c){return this.au(a,null,b,c)}} +A.ju.prototype={ +U(){var s=this,r=A.xF(null,t.H) +if(s.b==null)return r +s.hi() +s.d=s.b=null +return r}, +e3(a){var s,r=this +r.$ti.h("~(1)?").a(a) +if(r.b==null)throw A.d(A.aC("Subscription has been canceled.")) +r.hi() +s=A.AM(new A.vq(a),t.m) +s=s==null?null:A.cW(s) +r.d=s +r.hh()}, +d7(){if(this.b==null)return;++this.a +this.hi()}, +cu(){var s=this +if(s.b==null||s.a<=0)return;--s.a +s.hh()}, +hh(){var s=this,r=s.d +if(r!=null&&s.a<=0)s.b.addEventListener(s.c,r,!1)}, +hi(){var s=this.d +if(s!=null)this.b.removeEventListener(this.c,s,!1)}, +$ibw:1} +A.vp.prototype={ +$1(a){return this.a.$1(A.j(a))}, +$S:2} +A.vq.prototype={ +$1(a){return this.a.$1(A.j(a))}, +$S:2} +A.ed.prototype={ +iz(a,b){var s=this.b +if((s.b&4)!==0)return +s.j(0,new A.fI(a,b)) +s.p()}, +ib(a){var s +if((this.b.b&4)!==0)throw A.d(A.xX()) +s=A.B2(a) +s.toString +this.a.send(s)}, +bs(a,b){var s=0,r=A.p(t.H),q=this,p +var $async$bs=A.q(function(c,d){if(c===1)return A.m(d,r) +for(;;)switch(s){case 0:p=q.b +if((p.b&4)!==0)throw A.d(A.xX()) +p.p() +q.a.close() +return A.n(null,r)}}) +return A.o($async$bs,r)}, +$iv6:1} +A.oM.prototype={ +$1(a){A.j(a) +this.a.V(this.b)}, +$S:12} +A.oN.prototype={ +$1(a){var s +A.j(a) +s=this.a +if((s.a.a&30)===0)s.a7(new A.hE("Failed to connect WebSocket")) +else this.b.iz(1006,"error")}, +$S:12} +A.oO.prototype={ +$1(a){var s,r,q=this.a.b +if((q.b&4)!==0)return +s=a.data +s.toString +r=A.vl("data") +if(typeof s==="string")r.b=new A.hy(A.r(s)) +else if(typeof s==="object"&&A.DD(A.j(s),"ArrayBuffer"))r.b=new A.fE(A.z8(t.rV.a(s),0,null)) +else throw A.d(A.aC("unexpected message type: "+J.xu(s).l(0))) +q.j(0,r.cb())}, +$S:2} +A.oP.prototype={ +$1(a){var s +A.j(a) +s=this.a +if((s.a.a&30)===0)s.V(this.b) +this.b.iz(A.a4(a.code),A.r(a.reason))}, +$S:12} +A.dg.prototype={} +A.hy.prototype={ +L(a,b){if(b==null)return!1 +return b instanceof A.hy&&b.a===this.a}, +gE(a){return B.a.gE(this.a)}} +A.fE.prototype={ +L(a,b){var s,r,q,p,o +if(b==null)return!1 +if(b instanceof A.fE&&b.a.length===this.a.length){for(s=this.a,r=s.length,q=b.a,p=q.length,o=0;o")).aE(new A.oa(r)) +s=r.r.a +s===$&&A.w("_local") +s=s.b +s===$&&A.w("_streamController") +new A.ac(s,A.l(s).h("ac<1>")).qg(new A.ob(a),new A.oc(r,a)) +A.r(a.a.protocol) +r.f.bt()}, +$S:158} +A.oa.prototype={ +$1(a){var s,r,q,p="_local",o="_sink" +t.uy.a(a) +A:{s=a instanceof A.hy +r=s?a.a:null +if(s){s=this.a.r.a +s===$&&A.w(p) +s=s.a +s===$&&A.w(o) +s.j(0,r) +break A}s=a instanceof A.fE +q=s?a.a:null +if(s){s=this.a.r.a +s===$&&A.w(p) +s=s.a +s===$&&A.w(o) +s.j(0,q) +break A}if(a instanceof A.fI){s=this.a.r.a +s===$&&A.w(p) +s=s.a +s===$&&A.w(o) +s.p()}}}, +$S:159} +A.ob.prototype={ +$1(a){var s,r,q,p,o,n,m +try{A:{s=a +r=null +o=typeof s=="string" +if(o)r=s +if(o){o=this.a +n=A.r(r) +if((o.b.b&4)!==0)A.K(A.xX()) +n=A.B2(n) +n.toString +o.a.send(n) +break A}q=null +o=t.p.b(s) +if(o)q=s +if(o){this.a.ib(q) +break A}p=null +o=t.L.b(s) +if(o)p=s +if(o){this.a.ib(new Uint8Array(A.c9(p))) +break A}o=A.aw("Cannot send "+J.xu(a).l(0)) +throw A.d(o)}}catch(m){if(!(A.R(m) instanceof A.hD))throw m}}, +$S:16} +A.oc.prototype={ +$0(){var s=0,r=A.p(t.H),q=1,p=[],o=this,n,m,l +var $async$$0=A.q(function(a,b){if(a===1){p.push(b) +s=q}for(;;)switch(s){case 0:q=3 +n=o.a +s=6 +return A.f(o.b.bs(n.d,n.e),$async$$0) +case 6:q=1 +s=5 +break +case 3:q=2 +l=p.pop() +if(!(A.R(l) instanceof A.hD))throw l +s=5 +break +case 2:s=1 +break +case 5:return A.n(null,r) +case 1:return A.m(p.at(-1),r)}}) +return A.o($async$$0,r)}, +$S:3} +A.oe.prototype={ +$1(a){var s,r,q +A.ap(a) +s=a instanceof A.hz?a:new A.mN(J.b9(a)) +r=this.a +r.f.a7(s) +r=r.r.a +r===$&&A.w("_local") +q=r.a +q===$&&A.w("_sink") +q.f2(s) +r=r.a +r===$&&A.w("_sink") +r.p()}, +$S:7} +A.nS.prototype={ +bs(a,b){var s=this.b +s.d=a +s.e=b +return this.l5()}, +p(){return this.bs(null,null)}, +$iFg:1} +A.mN.prototype={ +l(a){return"WebSocketChannelException: "+this.a}, +$iaf:1};(function aliases(){var s=J.dF.prototype +s.lb=s.l +s=A.bS.prototype +s.l7=s.kc +s.l8=s.kd +s.la=s.kf +s.l9=s.ke +s=A.b_.prototype +s.eh=s.aC +s.lf=s.bL +s.im=s.aH +s=A.P.prototype +s.lc=s.bd +s=A.a7.prototype +s.il=s.cW +s=A.fp.prototype +s.lg=s.p +s=A.i.prototype +s.l6=s.fz +s=A.d_.prototype +s.l5=s.p +s=A.ih.prototype +s.l4=s.q_ +s=A.ht.prototype +s.le=s.a3 +s.ld=s.L})();(function installTearOffs(){var s=hunkHelpers._static_2,r=hunkHelpers._instance_1i,q=hunkHelpers._static_0,p=hunkHelpers._static_1,o=hunkHelpers._instance_0u,n=hunkHelpers.installInstanceTearOff,m=hunkHelpers._instance_2u,l=hunkHelpers._instance_1u,k=hunkHelpers.installStaticTearOff +s(J,"Gv","DF",57) +r(J.z.prototype,"gci","t",20) +r(A.dQ.prototype,"gbh","j",9) +q(A,"GL","Ep",15) +r(A.B.prototype,"gci","t",20) +r(A.Z.prototype,"gci","t",20) +p(A,"H7","Fk",22) +p(A,"H8","Fl",22) +p(A,"H9","Fm",22) +q(A,"AO","H1",0) +p(A,"Ha","GP",10) +s(A,"Hb","GR",11) +q(A,"yc","GQ",0) +var j +o(j=A.cU.prototype,"geD","bP",0) +o(j,"geE","bQ",0) +n(A.fb.prototype,"gpE",0,1,function(){return[null]},["$2","$1"],["cg","a7"],60,0,0) +m(A.v.prototype,"gel","lT",11) +r(j=A.fm.prototype,"gbh","j",16) +n(j,"gjN",0,1,function(){return[null]},["$2","$1"],["aJ","f2"],60,0,0) +o(j,"gdM","p",83) +o(j=A.di.prototype,"geD","bP",0) +o(j,"geE","bQ",0) +o(j=A.b_.prototype,"geD","bP",0) +o(j,"geE","bQ",0) +o(A.hG.prototype,"gj1","nD",0) +o(j=A.hN.prototype,"geD","bP",0) +o(j,"geE","bQ",0) +l(j,"gmF","mG",16) +m(j,"gmM","mN",11) +o(j,"gmJ","mK",0) +s(A,"Hf","Gj",46) +p(A,"Hg","Gk",40) +s(A,"He","DO",57) +p(A,"Il","Gl",32) +r(j=A.jp.prototype,"gbh","j",16) +o(j,"gdM","p",0) +p(A,"Io","II",40) +p(A,"nZ","ER",41) +s(A,"In","IH",46) +p(A,"Im","Fd",6) +n(A.T.prototype,"grp",0,0,null,["$1","$0"],["kC","rq"],165,0,0) +k(A,"IU",2,null,["$1$2","$2"],["B4",function(a,b){return A.B4(a,b,t.fY)}],164,1) +p(A,"Hh","CW",1) +p(A,"Ir","D1",8) +p(A,"IE","Gx",8) +p(A,"IW","DT",8) +p(A,"IY","DV",8) +p(A,"IX","DU",8) +p(A,"J2","GN",8) +p(A,"J1","GM",8) +s(A,"Jc","GV",17) +p(A,"IM","GE",1) +p(A,"Iv","D8",1) +p(A,"Iu","D7",1) +p(A,"It","D6",1) +p(A,"Hc","CC",6) +o(A.ke.prototype,"gqP","fq",0) +l(j=A.kE.prototype,"gnt","dA",163) +o(j,"gnv","j_",0) +o(j=A.lc.prototype,"gmu","mv",0) +l(j,"gmA","mB",4) +l(j,"gmq","mr",4) +s(A,"Iz","Do",166) +l(A.l4.prototype,"gn5","n6",79) +r(A.jB.prototype,"gbh","j",9) +l(j=A.lg.prototype,"gnM","nN",18) +l(j,"gnK","nL",18) +l(j,"gnA","j0",38) +l(A.ly.prototype,"gnp","nq",9) +l(A.cg.prototype,"go7","o8",93) +l(j=A.ji.prototype,"gkS","af",42) +o(j,"gmD","h0",0) +l(j=A.kC.prototype,"gmc","md",42) +o(j,"gnw","nx",0) +s(A,"HC","Dt",167) +s(A,"Hp","Cx",168) +s(A,"Ho","Cw",169) +s(A,"Hn","Cv",170) +s(A,"HS","E9",171) +s(A,"HT","Ea",172) +s(A,"HH","DY",173) +s(A,"HP","E6",174) +s(A,"HO","E5",175) +s(A,"I3","Em",176) +s(A,"I4","En",177) +s(A,"HQ","E7",178) +s(A,"HR","E8",179) +s(A,"I8","EC",180) +s(A,"I9","ED",181) +s(A,"Ia","EE",182) +s(A,"HW","Ed",183) +s(A,"HX","Ee",184) +s(A,"HY","Ef",185) +s(A,"Ht","CH",186) +s(A,"Hu","CI",187) +s(A,"Hr","CE",188) +s(A,"Hs","CF",189) +s(A,"Hq","CD",190) +s(A,"Hv","CJ",191) +s(A,"I5","Ev",192) +s(A,"I6","EA",193) +s(A,"HU","Eb",194) +s(A,"HV","Ec",195) +s(A,"I7","EB",196) +s(A,"Hy","Dc",197) +s(A,"HK","E0",198) +s(A,"HL","E1",199) +s(A,"Hz","Dd",200) +s(A,"Hw","Da",201) +s(A,"HI","DZ",202) +s(A,"HJ","E_",203) +s(A,"Hx","Db",204) +s(A,"Hj","Cl",205) +s(A,"HG","DX",206) +s(A,"HF","DW",207) +s(A,"Hk","Cm",208) +s(A,"Ib","EF",209) +s(A,"HZ","Eg",210) +s(A,"I_","Eh",211) +s(A,"Ic","EG",212) +s(A,"HA","De",213) +s(A,"HM","E3",214) +s(A,"HN","E4",215) +s(A,"HB","Df",216) +s(A,"Ih","F7",217) +s(A,"Ii","F8",218) +s(A,"Ij","F9",219) +s(A,"Id","F3",220) +s(A,"Ie","F4",221) +s(A,"If","F5",222) +s(A,"Ig","F6",223) +s(A,"I1","Ej",224) +s(A,"I2","Ek",225) +s(A,"I0","Ei",226) +s(A,"Hl","Ct",227) +s(A,"Hm","Cu",228) +s(A,"HD","Dz",229) +s(A,"HE","DA",230) +o(A.ib.prototype,"gnb","eA",3) +o(A.lQ.prototype,"gmH","mI",0) +o(A.kw.prototype,"gnr","ns",0) +o(A.lN.prototype,"ge7","ao",3) +o(A.j4.prototype,"ge7","ao",3) +o(A.mA.prototype,"gpF","pG",0) +q(A,"Jd","wF",231) +p(A,"Je","wG",21) +o(j=A.my.prototype,"gp6","p7",0) +o(j,"gm1","en",3) +o(j,"gnX","eG",3) +o(j=A.mz.prototype,"ghB","cm",0) +o(j,"gkO","dg",0) +o(j,"gkP","kQ",0) +m(j=A.jg.prototype,"gnI","nJ",14) +o(j,"gmY","mZ",0) +l(j,"gnG","nH",9) +m(j,"glS","fR",133) +l(j,"gnE","nF",134) +l(j,"gny","nz",38) +l(j,"gnB","dB",21) +l(j,"goj","eQ",135) +o(j,"gmV","mW",33) +l(j,"gom","eR",136) +l(j,"gpl","eX",4) +o(A.dh.prototype,"ghB","cm",0) +o(A.lD.prototype,"gdM","p",0) +l(j=A.iK.prototype,"gnn","no",45) +o(j,"giV","ez",3) +l(A.iS.prototype,"gob","jh",54) +l(A.iT.prototype,"gnl","iZ",55) +o(j=A.j3.prototype,"goP","cS",3) +o(j,"gp8","p9",0) +o(j,"goB","eT",3) +o(j,"goZ","cU",3) +l(A.j5.prototype,"goD","hf",54) +n(A.mB.prototype,"gkY",0,1,null,["$2$kind","$1"],["b0","kZ"],149,0,0) +k(A,"Jh",1,null,["$2$headers","$1"],["o_",function(a){return A.o_(a,null)}],154,0)})();(function inheritance(){var s=hunkHelpers.mixin,r=hunkHelpers.inherit,q=hunkHelpers.inheritMany +r(A.x,null) +q(A.x,[A.xI,J.lh,A.j1,J.ea,A.dQ,A.i,A.ik,A.bD,A.a1,A.au,A.P,A.ta,A.aI,A.iM,A.f9,A.iy,A.jc,A.j8,A.iv,A.fa,A.aH,A.cT,A.u0,A.b1,A.fJ,A.dk,A.cR,A.uN,A.lP,A.iw,A.jR,A.r6,A.iI,A.aq,A.iH,A.dC,A.hJ,A.hF,A.hv,A.nB,A.vk,A.nN,A.cy,A.nf,A.nI,A.nF,A.jj,A.dm,A.aO,A.aa,A.b_,A.jn,A.hz,A.fb,A.cD,A.v,A.mY,A.jb,A.fm,A.nE,A.mZ,A.fn,A.dj,A.n9,A.cE,A.hG,A.nz,A.jt,A.k5,A.jx,A.nq,A.fh,A.nM,A.iL,A.fi,A.nO,A.cA,A.bE,A.a7,A.c_,A.jl,A.n_,A.io,A.fc,A.vP,A.nC,A.nQ,A.hS,A.bk,A.aX,A.vo,A.lU,A.j9,A.nd,A.bG,A.V,A.ab,A.nD,A.hu,A.ho,A.T,A.k1,A.uS,A.cm,A.lO,A.vM,A.d_,A.S,A.ow,A.ph,A.c0,A.oW,A.kJ,A.wb,A.ez,A.e9,A.ag,A.bi,A.jh,A.D,A.pm,A.kp,A.kL,A.kN,A.kP,A.kR,A.kT,A.kW,A.kY,A.l_,A.l5,A.l7,A.l9,A.lb,A.lE,A.lL,A.lV,A.m9,A.mm,A.mw,A.mL,A.mO,A.pM,A.po,A.iU,A.iV,A.pn,A.rX,A.aV,A.eH,A.aW,A.jK,A.jJ,A.aJ,A.jQ,A.jV,A.b0,A.n7,A.n6,A.dy,A.bK,A.vI,A.t9,A.mi,A.t8,A.a9,A.ek,A.kz,A.ih,A.oK,A.kD,A.fY,A.ke,A.of,A.kg,A.fy,A.og,A.ok,A.cn,A.kh,A.i8,A.iq,A.ba,A.cc,A.fC,A.bu,A.e8,A.ds,A.dr,A.kn,A.l6,A.lS,A.av,A.nw,A.n5,A.l2,A.d0,A.f1,A.f0,A.cd,A.kX,A.d9,A.cX,A.p0,A.kE,A.pj,A.qx,A.pw,A.pu,A.fx,A.fz,A.ma,A.mE,A.oh,A.l8,A.fW,A.vJ,A.jI,A.vn,A.lc,A.ni,A.et,A.bQ,A.bF,A.l4,A.uH,A.d2,A.hw,A.cM,A.aU,A.uL,A.qe,A.hn,A.pi,A.us,A.km,A.d8,A.aP,A.r4,A.du,A.t6,A.aF,A.a5,A.mb,A.jB,A.md,A.dO,A.mS,A.mQ,A.hr,A.eT,A.lg,A.ly,A.hp,A.r8,A.r9,A.c8,A.cg,A.is,A.hq,A.nP,A.m6,A.iZ,A.aB,A.rp,A.aZ,A.rM,A.bz,A.lM,A.lR,A.m7,A.mj,A.mC,A.ji,A.kB,A.nt,A.kC,A.F,A.cL,A.pX,A.d7,A.dH,A.u1,A.ib,A.oD,A.bb,A.aQ,A.lQ,A.dJ,A.t4,A.ov,A.b4,A.ct,A.kw,A.lN,A.e2,A.iY,A.j4,A.uk,A.mA,A.lB,A.ro,A.tz,A.kI,A.my,A.lT,A.pF,A.mz,A.jg,A.dh,A.lD,A.iK,A.iS,A.iT,A.j3,A.j5,A.mB,A.kO,A.hK,A.hL,A.u_,A.lW,A.iX,A.tK,A.mp,A.ht,A.qa,A.b8,A.c7,A.cz,A.mr,A.ja,A.hI,A.mt,A.tZ,A.rZ,A.uU,A.xD,A.ju,A.ed,A.dg,A.hE,A.mN]) +q(J.lh,[J.lj,J.iC,J.iD,J.fT,J.fU,J.fS,J.dB]) +q(J.iD,[J.dF,J.z,A.dG,A.iP]) +q(J.dF,[J.lZ,J.f7,J.d3]) +r(J.li,A.j1) +r(J.r0,J.z) +q(J.fS,[J.iB,J.lk]) +q(A.i,[A.dR,A.J,A.bI,A.ae,A.ix,A.eX,A.db,A.bL,A.jz,A.mV,A.nA,A.dV,A.ch]) +q(A.dR,[A.ee,A.k6]) +r(A.jr,A.ee) +r(A.jq,A.k6) +q(A.bD,[A.kG,A.oY,A.kF,A.lf,A.mx,A.wP,A.wR,A.vd,A.vc,A.wc,A.q0,A.q_,A.vA,A.vE,A.tR,A.tP,A.tV,A.tT,A.tW,A.tN,A.w_,A.vR,A.rc,A.ps,A.pO,A.pA,A.pB,A.wX,A.x0,A.x1,A.tJ,A.oS,A.oU,A.ox,A.oy,A.pl,A.rQ,A.rP,A.py,A.pI,A.pT,A.wo,A.wq,A.rl,A.rn,A.rm,A.u2,A.wr,A.ws,A.xo,A.xp,A.xq,A.wy,A.wS,A.wT,A.vX,A.w3,A.vm,A.tF,A.px,A.pD,A.pC,A.tA,A.tB,A.tC,A.tD,A.tE,A.oJ,A.oQ,A.rh,A.wK,A.on,A.oo,A.op,A.ol,A.oA,A.oB,A.oC,A.q2,A.q3,A.q4,A.oq,A.or,A.os,A.p3,A.p5,A.p6,A.p7,A.wv,A.rU,A.rW,A.rV,A.oi,A.oj,A.qS,A.qT,A.qU,A.qV,A.qM,A.qI,A.qK,A.qR,A.qN,A.qO,A.qB,A.qy,A.qz,A.qA,A.qC,A.qD,A.vK,A.pS,A.pP,A.pQ,A.uz,A.uB,A.uC,A.uD,A.ut,A.uv,A.uw,A.ux,A.t0,A.t1,A.qZ,A.r5,A.vL,A.vS,A.w4,A.x7,A.wM,A.v8,A.v9,A.p_,A.rz,A.rq,A.pE,A.wk,A.ry,A.pL,A.wl,A.uM,A.wm,A.r2,A.oF,A.oG,A.oH,A.wB,A.wC,A.wu,A.t5,A.uI,A.x4,A.x5,A.pk,A.uV,A.uj,A.u7,A.u8,A.u9,A.ub,A.ud,A.ue,A.u5,A.pG,A.uF,A.uo,A.up,A.ur,A.ul,A.v1,A.v3,A.v4,A.v5,A.uY,A.v_,A.v0,A.va,A.vb,A.rj,A.rk,A.rx,A.rt,A.rr,A.rA,A.tm,A.ti,A.tc,A.td,A.tl,A.ty,A.tr,A.x9,A.xa,A.xb,A.xd,A.xe,A.xf,A.xg,A.xh,A.xi,A.xj,A.xk,A.wD,A.wU,A.x2,A.pq,A.pr,A.ww,A.qc,A.qb,A.qd,A.qg,A.qi,A.qf,A.qw,A.vG,A.vp,A.vq,A.oM,A.oN,A.oO,A.oP,A.od,A.oa,A.ob,A.oe]) +q(A.kG,[A.vj,A.oZ,A.pp,A.r1,A.wQ,A.wd,A.wx,A.q1,A.pZ,A.vB,A.vF,A.we,A.r7,A.re,A.pN,A.vQ,A.uT,A.oR,A.oT,A.oV,A.pK,A.pU,A.u3,A.q6,A.tG,A.t7,A.oI,A.ri,A.qF,A.qG,A.qH,A.qJ,A.qL,A.ra,A.vU,A.vV,A.vW,A.x8,A.r3,A.un,A.wI,A.tb,A.tq,A.qh]) +r(A.il,A.jq) +q(A.a1,[A.ef,A.bS,A.jv,A.nm]) +q(A.au,[A.dE,A.dd,A.ll,A.mG,A.mh,A.nb,A.iF,A.ku,A.cs,A.je,A.mF,A.bX,A.kM]) +r(A.hA,A.P) +r(A.cu,A.hA) +q(A.kF,[A.wZ,A.rR,A.ve,A.vf,A.w2,A.pY,A.vr,A.vw,A.vv,A.vt,A.vs,A.vz,A.vy,A.vx,A.vC,A.vD,A.tQ,A.tO,A.tU,A.tS,A.tX,A.tM,A.w1,A.w0,A.vi,A.vh,A.vT,A.wf,A.wg,A.vZ,A.wt,A.w9,A.w8,A.tI,A.pJ,A.wp,A.rY,A.rg,A.oz,A.ot,A.ou,A.p1,A.pa,A.pf,A.pb,A.p8,A.pg,A.pe,A.p4,A.p9,A.pd,A.pc,A.p2,A.qE,A.qQ,A.qP,A.pR,A.uE,A.uA,A.uy,A.uu,A.t2,A.x6,A.oE,A.wA,A.rG,A.rE,A.rH,A.rF,A.rJ,A.rD,A.rI,A.rK,A.uJ,A.ui,A.ug,A.uh,A.u6,A.uf,A.ua,A.uc,A.u4,A.pH,A.uG,A.uq,A.um,A.v2,A.uW,A.uZ,A.uX,A.x_,A.rb,A.rv,A.rw,A.rs,A.ru,A.tn,A.tf,A.te,A.tg,A.th,A.tk,A.tj,A.tw,A.tx,A.ts,A.tt,A.tu,A.tv,A.to,A.tp,A.xl,A.xn,A.xm,A.xc,A.uK,A.qv,A.qj,A.qq,A.qr,A.qs,A.qt,A.qo,A.qp,A.qk,A.ql,A.qm,A.qn,A.qu,A.vH,A.q9,A.q8,A.oc]) +q(A.J,[A.Q,A.ev,A.d5,A.c2,A.d4,A.jw]) +q(A.Q,[A.eW,A.a2,A.j0,A.iJ,A.nn]) +r(A.eu,A.bI) +r(A.iu,A.eX) +r(A.fM,A.db) +q(A.b1,[A.cl,A.fk,A.fl]) +q(A.cl,[A.aD,A.jL,A.dS,A.dT,A.hM,A.bA,A.dU]) +q(A.fk,[A.jM,A.jN]) +q(A.fl,[A.dl,A.jO]) +q(A.fJ,[A.X,A.iz]) +q(A.cR,[A.fK,A.jP,A.k0]) +q(A.fK,[A.B,A.Z]) +r(A.fQ,A.lf) +r(A.iW,A.dd) +q(A.mx,[A.ms,A.fF]) +q(A.bS,[A.iE,A.ex,A.jC]) +r(A.fZ,A.dG) +q(A.iP,[A.iN,A.bn]) +q(A.bn,[A.jD,A.jF]) +r(A.jE,A.jD) +r(A.iO,A.jE) +r(A.jG,A.jF) +r(A.c3,A.jG) +q(A.iO,[A.lF,A.lG]) +q(A.c3,[A.lH,A.lI,A.lJ,A.lK,A.iQ,A.iR,A.eA]) +r(A.hQ,A.nb) +q(A.aa,[A.hO,A.eV,A.js,A.jm,A.fe]) +r(A.ac,A.hO) +r(A.aA,A.ac) +q(A.b_,[A.di,A.hN]) +r(A.cU,A.di) +r(A.jk,A.jn) +q(A.fb,[A.W,A.jU]) +q(A.fm,[A.dP,A.hP]) +q(A.dj,[A.cC,A.fd]) +r(A.nv,A.k5) +r(A.jy,A.jv) +r(A.fg,A.jP) +r(A.k_,A.iL) +r(A.f8,A.k_) +r(A.jd,A.k0) +q(A.cA,[A.fp,A.nL,A.n0,A.fo]) +r(A.nk,A.fp) +q(A.bE,[A.dz,A.ig,A.lm]) +q(A.dz,[A.kr,A.lu,A.mJ]) +q(A.a7,[A.nK,A.nJ,A.ky,A.kx,A.lp,A.lo,A.mK,A.jf]) +q(A.nK,[A.kt,A.lw]) +q(A.nJ,[A.ks,A.lv]) +q(A.c_,[A.nc,A.ny,A.n1,A.jo,A.jp,A.jA,A.k4]) +r(A.n2,A.jl) +r(A.mX,A.n1) +r(A.ln,A.iF) +r(A.nl,A.io) +r(A.vO,A.vP) +r(A.np,A.jA) +q(A.jb,[A.lz,A.j7]) +r(A.nU,A.nQ) +r(A.nR,A.nU) +q(A.cs,[A.hl,A.ld]) +r(A.n8,A.k1) +q(A.vo,[A.im,A.cx,A.bj,A.bm,A.ej,A.cJ,A.kV,A.cF,A.be,A.cB,A.bV,A.em,A.ip,A.e5,A.dx,A.cf,A.kf,A.ia,A.fA,A.fB,A.bH,A.fO,A.fN,A.aM,A.b6,A.jH,A.j6,A.eN,A.dL,A.la,A.ir,A.ic,A.fX,A.fD,A.bY,A.hm,A.bP,A.by]) +q(A.c0,[A.bc,A.cQ,A.bO,A.el,A.bv,A.cK,A.bR]) +q(A.e9,[A.l1,A.m3,A.dM,A.cI]) +q(A.pn,[A.q5,A.rO,A.tH,A.v7]) +q(A.tH,[A.oL,A.rN]) +q(A.dy,[A.m_,A.lx,A.mg,A.ml]) +q(A.bK,[A.kA,A.kK,A.kQ,A.kU,A.kZ,A.lt,A.lX,A.m8,A.mc,A.mk]) +r(A.fG,A.eV) +r(A.me,A.ih) +q(A.oK,[A.mf,A.mu]) +r(A.ij,A.S) +r(A.kl,A.kh) +r(A.fP,A.kz) +q(A.av,[A.ki,A.ng,A.nj,A.nT,A.ns,A.mW,A.nh,A.nr,A.n3,A.nx,A.no,A.nu,A.nH,A.nG,A.na,A.ne,A.n4,A.kk,A.mM]) +q(A.d2,[A.kS,A.lq,A.lC,A.lY,A.mU]) +q(A.hq,[A.m0,A.m2,A.kH]) +q(A.F,[A.dA,A.dt,A.ec,A.eb,A.ha,A.hb,A.h1,A.h8,A.h9,A.eJ,A.eK,A.eB,A.eC,A.eO,A.eP,A.eQ,A.he,A.hf,A.hg,A.eh,A.ei,A.fH,A.eg,A.dv,A.dw,A.hk,A.eL,A.hc,A.hd,A.eM,A.eq,A.h4,A.h5,A.er,A.eo,A.h2,A.h3,A.ep,A.e3,A.h_,A.h0,A.e4,A.eR,A.hh,A.hi,A.eS,A.fL,A.h6,A.h7,A.es,A.f4,A.f5,A.f6,A.eZ,A.f_,A.f2,A.f3,A.eD,A.eF,A.eE,A.e6,A.e7,A.ew,A.cv]) +q(A.d7,[A.aL,A.en]) +q(A.dH,[A.cw,A.ie,A.j2,A.mD,A.dN]) +r(A.mT,A.km) +r(A.fR,A.u_) +q(A.fR,[A.m1,A.mI,A.mP]) +r(A.l3,A.mp) +q(A.ht,[A.hH,A.mq]) +r(A.hs,A.mr) +r(A.dc,A.mq) +q(A.ja,[A.iA,A.kd]) +r(A.mv,A.hs) +r(A.pt,A.rZ) +q(A.dg,[A.hy,A.fE,A.fI]) +r(A.hD,A.hE) +r(A.nS,A.d_) +s(A.hA,A.cT) +s(A.k6,A.P) +s(A.jD,A.P) +s(A.jE,A.aH) +s(A.jF,A.P) +s(A.jG,A.aH) +s(A.dP,A.mZ) +s(A.hP,A.nE) +s(A.k_,A.nM) +s(A.k0,A.nO) +s(A.nU,A.cA)})() +var v={G:typeof self!="undefined"?self:globalThis,typeUniverse:{eC:new Map(),tR:{},eT:{},tPV:{},sEA:[]},mangledGlobalNames:{c:"int",a_:"double",bB:"num",a:"String",y:"bool",ab:"Null",k:"List",x:"Object",h:"Map",aj:"JSObject"},mangledNames:{},types:["~()","y(a)","~(aj)","H<~>()","~(a)","ab()","a(a)","ab(x)","y(k
)","~(k)","~(@)","~(x,bW)","ab(aj)","ab(@)","~(c,c)","c()","~(x?)","~(k,ez)","~(df)","y(et)","y(x?)","H<~>(a)","~(~())","c(c,c)","ab(c)","a(V)","y(b8)","a(dO)","c(a?)","bu(a)","a(a9)","ab(x,bW)","@(@)","a()","a(cP)","~(x?,x?)","~(x)","y(ba)","~(c)","a(ba)","c(x?)","a(c)","~(d7)","h(aB)","h(cL)","~(ct)","y(x?,x?)","@()","H()","~(a,a)","~(a?)","~(y)","by()","a?()","~(b4>)","~(b4>)","H()","c(@,@)","~(~)","y()","~(x[bW?])","a(aW)","0&()","0&(a,c?)","k<~>(@)","x?(x?)","ab(a)","y(bc)","a(bc)","H>(a)","H<~>(k)","bH?(a)","ab(~())","~(a,a5)","~(k<+(a,a)>)","ab(~)","ab(@,bW)","c(@)","y(a?)","y(bQ)","~(bF)","y(bF)","y(bF?)","H<@>()","~(a,c)","~(@,@)","c(av,av)","a(aJ)","a(b0)","y(bz)","c8()","~(c8,a,c)","c(c8,c8)","~(F)","y(a9)","bV(bV,a9)","h(aZ)","~(a,bV,a,c)","cL(h<@,@>)","c(a9,a9)","aB(h<@,@>)","h(bz)","bz(h<@,@>)","V(@,@)","a(@)","~(dJ)","y(a,a)","~(bY)","c(a)","~(hm)","fY()","H>()","H()","H>()","H()","H()","H()","~(c,@)","@(a)","y(bY)","bY()","~(e5)","y(ds)","H<~>(aa>)","y(~)","y(bP)","bP()","y(by)","~(cf)","ab(z,aj)","~(by)","ab(a_)","~(a_)","H>(a,y)","~(hr)","H<~>(H<~>(aa>))","H(a)","fc<@,@>(aY<@>)","H(a)","~(~()?)","T(T,a)","a(T)","dh(aj)","H(c,c)","H>(a,y,a?)","aZ?()","y(aB)","c(aB,aB)","ab(cd?)","~(a{kind:a})","a(a?)","c(c7)","H(a)","x(c7)","H(hB{headers:h?})","c(b8,b8)","k(V>)","dc()","ab(v6)","~(dg)","H(a)","H(fy)","@(@,a)","H<~>(F)","0^(0^,0^)","~([x?])","c(bQ,bQ)","dA(c?,h)","dt(c?,h)","ec(c?,h)","eb(c?,h)","ha(c?,h)","hb(c?,h)","h1(c?,h)","h8(c?,h)","h9(c?,h)","eJ(c?,h)","eK(c?,h)","eB(c?,h)","eC(c?,h)","eO(c?,h)","eP(c?,h)","eQ(c?,h)","he(c?,h)","hf(c?,h)","hg(c?,h)","eh(c?,h)","ei(c?,h)","fH(c?,h)","eg(c?,h)","dv(c?,h)","dw(c?,h)","hk(c?,h)","eL(c?,h)","hc(c?,h)","hd(c?,h)","eM(c?,h)","eq(c?,h)","h4(c?,h)","h5(c?,h)","er(c?,h)","eo(c?,h)","h2(c?,h)","h3(c?,h)","ep(c?,h)","e3(c?,h)","h_(c?,h)","h0(c?,h)","e4(c?,h)","eR(c?,h)","hh(c?,h)","hi(c?,h)","eS(c?,h)","fL(c?,h)","h6(c?,h)","h7(c?,h)","es(c?,h)","f4(c?,h)","f5(c?,h)","f6(c?,h)","eZ(c?,h)","f_(c?,h)","f2(c?,h)","f3(c?,h)","eD(c?,h)","eF(c?,h)","eE(c?,h)","e6(c?,h)","e7(c?,h)","ew(c?,h)","cv(c?,h)","H()","x(b8)"],interceptorsByTag:null,leafTags:null,arrayRti:Symbol("$ti"),rttc:{"2;":(a,b)=>c=>c instanceof A.aD&&a.b(c.a)&&b.b(c.b),"2;box,root":(a,b)=>c=>c instanceof A.jL&&a.b(c.a)&&b.b(c.b),"2;carry,end":(a,b)=>c=>c instanceof A.dS&&a.b(c.a)&&b.b(c.b),"2;cols,rows":(a,b)=>c=>c instanceof A.dT&&a.b(c.a)&&b.b(c.b),"2;config,httpClient":(a,b)=>c=>c instanceof A.hM&&a.b(c.a)&&b.b(c.b),"2;label,value":(a,b)=>c=>c instanceof A.bA&&a.b(c.a)&&b.b(c.b),"2;x,y":(a,b)=>c=>c instanceof A.dU&&a.b(c.a)&&b.b(c.b),"3;completer,nodeId,targetPort":(a,b,c)=>d=>d instanceof A.jM&&a.b(d.a)&&b.b(d.b)&&c.b(d.c),"3;hub,principal,token":(a,b,c)=>d=>d instanceof A.jN&&a.b(d.a)&&b.b(d.b)&&c.b(d.c),"4;":a=>b=>b instanceof A.dl&&A.B5(a,b.a),"4;isDir,isLink,path,size":a=>b=>b instanceof A.jO&&A.B5(a,b.a)}} +A.FV(v.typeUniverse,JSON.parse('{"lZ":"dF","f7":"dF","d3":"dF","Jz":"dG","z":{"k":["1"],"J":["1"],"aj":[],"i":["1"],"bl":["1"]},"lj":{"y":[],"ao":[]},"iC":{"ab":[],"ao":[]},"iD":{"aj":[]},"dF":{"aj":[]},"li":{"j1":[]},"r0":{"z":["1"],"k":["1"],"J":["1"],"aj":[],"i":["1"],"bl":["1"]},"ea":{"a8":["1"]},"fS":{"a_":[],"bB":[],"aK":["bB"]},"iB":{"a_":[],"c":[],"bB":[],"aK":["bB"],"ao":[]},"lk":{"a_":[],"bB":[],"aK":["bB"],"ao":[]},"dB":{"a":[],"aK":["a"],"rL":[],"bl":["@"],"ao":[]},"dQ":{"CB":[]},"dR":{"i":["2"]},"ik":{"a8":["2"]},"ee":{"dR":["1","2"],"i":["2"],"i.E":"2"},"jr":{"ee":["1","2"],"dR":["1","2"],"J":["2"],"i":["2"],"i.E":"2"},"jq":{"P":["2"],"k":["2"],"dR":["1","2"],"J":["2"],"i":["2"]},"il":{"jq":["1","2"],"P":["2"],"k":["2"],"dR":["1","2"],"J":["2"],"i":["2"],"P.E":"2","i.E":"2"},"ef":{"a1":["3","4"],"h":["3","4"],"a1.K":"3","a1.V":"4"},"dE":{"au":[]},"cu":{"P":["c"],"cT":["c"],"k":["c"],"J":["c"],"i":["c"],"P.E":"c","cT.E":"c"},"J":{"i":["1"]},"Q":{"J":["1"],"i":["1"]},"eW":{"Q":["1"],"J":["1"],"i":["1"],"Q.E":"1","i.E":"1"},"aI":{"a8":["1"]},"bI":{"i":["2"],"i.E":"2"},"eu":{"bI":["1","2"],"J":["2"],"i":["2"],"i.E":"2"},"iM":{"a8":["2"]},"a2":{"Q":["2"],"J":["2"],"i":["2"],"Q.E":"2","i.E":"2"},"ae":{"i":["1"],"i.E":"1"},"f9":{"a8":["1"]},"ix":{"i":["2"],"i.E":"2"},"iy":{"a8":["2"]},"eX":{"i":["1"],"i.E":"1"},"iu":{"eX":["1"],"J":["1"],"i":["1"],"i.E":"1"},"jc":{"a8":["1"]},"db":{"i":["1"],"i.E":"1"},"fM":{"db":["1"],"J":["1"],"i":["1"],"i.E":"1"},"j8":{"a8":["1"]},"ev":{"J":["1"],"i":["1"],"i.E":"1"},"iv":{"a8":["1"]},"bL":{"i":["1"],"i.E":"1"},"fa":{"a8":["1"]},"hA":{"P":["1"],"cT":["1"],"k":["1"],"J":["1"],"i":["1"]},"j0":{"Q":["1"],"J":["1"],"i":["1"],"Q.E":"1","i.E":"1"},"aD":{"cl":[],"b1":[]},"jL":{"cl":[],"b1":[]},"dS":{"cl":[],"b1":[]},"dT":{"cl":[],"b1":[]},"hM":{"cl":[],"b1":[]},"bA":{"cl":[],"b1":[]},"dU":{"cl":[],"b1":[]},"jM":{"fk":[],"b1":[]},"jN":{"fk":[],"b1":[]},"dl":{"fl":[],"b1":[]},"jO":{"fl":[],"b1":[]},"fJ":{"h":["1","2"]},"X":{"fJ":["1","2"],"h":["1","2"]},"jz":{"i":["1"],"i.E":"1"},"dk":{"a8":["1"]},"iz":{"fJ":["1","2"],"h":["1","2"]},"fK":{"cR":["1"],"da":["1"],"J":["1"],"i":["1"]},"B":{"fK":["1"],"cR":["1"],"da":["1"],"J":["1"],"i":["1"]},"Z":{"fK":["1"],"cR":["1"],"da":["1"],"J":["1"],"i":["1"]},"lf":{"bD":[],"d1":[]},"fQ":{"bD":[],"d1":[]},"iW":{"dd":[],"au":[]},"ll":{"au":[]},"mG":{"au":[]},"lP":{"af":[]},"jR":{"bW":[]},"bD":{"d1":[]},"kF":{"bD":[],"d1":[]},"kG":{"bD":[],"d1":[]},"mx":{"bD":[],"d1":[]},"ms":{"bD":[],"d1":[]},"fF":{"bD":[],"d1":[]},"mh":{"au":[]},"bS":{"a1":["1","2"],"lA":["1","2"],"h":["1","2"],"a1.K":"1","a1.V":"2"},"d5":{"J":["1"],"i":["1"],"i.E":"1"},"iI":{"a8":["1"]},"c2":{"J":["1"],"i":["1"],"i.E":"1"},"aq":{"a8":["1"]},"d4":{"J":["V<1,2>"],"i":["V<1,2>"],"i.E":"V<1,2>"},"iH":{"a8":["V<1,2>"]},"iE":{"bS":["1","2"],"a1":["1","2"],"lA":["1","2"],"h":["1","2"],"a1.K":"1","a1.V":"2"},"ex":{"bS":["1","2"],"a1":["1","2"],"lA":["1","2"],"h":["1","2"],"a1.K":"1","a1.V":"2"},"cl":{"b1":[]},"fk":{"b1":[]},"fl":{"b1":[]},"dC":{"Ex":[],"rL":[]},"hJ":{"j_":[],"cP":[]},"mV":{"i":["j_"],"i.E":"j_"},"hF":{"a8":["j_"]},"hv":{"cP":[]},"nA":{"i":["cP"],"i.E":"cP"},"nB":{"a8":["cP"]},"dG":{"aj":[],"ii":[],"ao":[]},"fZ":{"dG":[],"aj":[],"ii":[],"ao":[]},"iP":{"aj":[]},"nN":{"ii":[]},"iN":{"xC":[],"aj":[],"ao":[]},"bn":{"c1":["1"],"aj":[],"bl":["1"]},"iO":{"P":["a_"],"bn":["a_"],"k":["a_"],"c1":["a_"],"J":["a_"],"aj":[],"bl":["a_"],"i":["a_"],"aH":["a_"]},"c3":{"P":["c"],"bn":["c"],"k":["c"],"c1":["c"],"J":["c"],"aj":[],"bl":["c"],"i":["c"],"aH":["c"]},"lF":{"pV":[],"P":["a_"],"bn":["a_"],"k":["a_"],"c1":["a_"],"J":["a_"],"aj":[],"bl":["a_"],"i":["a_"],"aH":["a_"],"ao":[],"P.E":"a_","aH.E":"a_"},"lG":{"pW":[],"P":["a_"],"bn":["a_"],"k":["a_"],"c1":["a_"],"J":["a_"],"aj":[],"bl":["a_"],"i":["a_"],"aH":["a_"],"ao":[],"P.E":"a_","aH.E":"a_"},"lH":{"c3":[],"qW":[],"P":["c"],"bn":["c"],"k":["c"],"c1":["c"],"J":["c"],"aj":[],"bl":["c"],"i":["c"],"aH":["c"],"ao":[],"P.E":"c","aH.E":"c"},"lI":{"c3":[],"qX":[],"P":["c"],"bn":["c"],"k":["c"],"c1":["c"],"J":["c"],"aj":[],"bl":["c"],"i":["c"],"aH":["c"],"ao":[],"P.E":"c","aH.E":"c"},"lJ":{"c3":[],"qY":[],"P":["c"],"bn":["c"],"k":["c"],"c1":["c"],"J":["c"],"aj":[],"bl":["c"],"i":["c"],"aH":["c"],"ao":[],"P.E":"c","aH.E":"c"},"lK":{"c3":[],"uP":[],"P":["c"],"bn":["c"],"k":["c"],"c1":["c"],"J":["c"],"aj":[],"bl":["c"],"i":["c"],"aH":["c"],"ao":[],"P.E":"c","aH.E":"c"},"iQ":{"c3":[],"uQ":[],"P":["c"],"bn":["c"],"k":["c"],"c1":["c"],"J":["c"],"aj":[],"bl":["c"],"i":["c"],"aH":["c"],"ao":[],"P.E":"c","aH.E":"c"},"iR":{"c3":[],"uR":[],"P":["c"],"bn":["c"],"k":["c"],"c1":["c"],"J":["c"],"aj":[],"bl":["c"],"i":["c"],"aH":["c"],"ao":[],"P.E":"c","aH.E":"c"},"eA":{"c3":[],"df":[],"P":["c"],"bn":["c"],"k":["c"],"c1":["c"],"J":["c"],"aj":[],"bl":["c"],"i":["c"],"aH":["c"],"ao":[],"P.E":"c","aH.E":"c"},"nb":{"au":[]},"hQ":{"dd":[],"au":[]},"aY":{"a3":["1"]},"nF":{"F2":[]},"jj":{"bd":["1"]},"dm":{"a8":["1"]},"dV":{"i":["1"],"i.E":"1"},"aO":{"au":[]},"aA":{"ac":["1"],"hO":["1"],"aa":["1"],"aa.T":"1"},"cU":{"di":["1"],"b_":["1"],"bw":["1"],"cV":["1"],"c6":["1"],"b_.T":"1"},"jn":{"eU":["1"],"ck":["1"],"aY":["1"],"a3":["1"],"jT":["1"],"cV":["1"],"c6":["1"]},"jk":{"jn":["1"],"eU":["1"],"ck":["1"],"aY":["1"],"a3":["1"],"jT":["1"],"cV":["1"],"c6":["1"]},"hz":{"af":[]},"fb":{"bd":["1"]},"W":{"fb":["1"],"bd":["1"]},"jU":{"fb":["1"],"bd":["1"]},"v":{"H":["1"]},"eV":{"aa":["1"]},"jb":{"br":["1","2"]},"fm":{"eU":["1"],"ck":["1"],"aY":["1"],"a3":["1"],"jT":["1"],"cV":["1"],"c6":["1"]},"dP":{"mZ":["1"],"fm":["1"],"eU":["1"],"ck":["1"],"aY":["1"],"a3":["1"],"jT":["1"],"cV":["1"],"c6":["1"]},"hP":{"nE":["1"],"fm":["1"],"eU":["1"],"ck":["1"],"aY":["1"],"a3":["1"],"jT":["1"],"cV":["1"],"c6":["1"]},"ac":{"hO":["1"],"aa":["1"],"aa.T":"1"},"di":{"b_":["1"],"bw":["1"],"cV":["1"],"c6":["1"],"b_.T":"1"},"fn":{"ck":["1"],"aY":["1"],"a3":["1"]},"b_":{"bw":["1"],"cV":["1"],"c6":["1"],"b_.T":"1"},"hO":{"aa":["1"]},"cC":{"dj":["1"]},"fd":{"dj":["@"]},"n9":{"dj":["@"]},"hG":{"bw":["1"]},"js":{"aa":["1"],"aa.T":"1"},"jt":{"aY":["1"],"a3":["1"]},"hN":{"b_":["2"],"bw":["2"],"cV":["2"],"c6":["2"],"b_.T":"2"},"jm":{"aa":["2"],"aa.T":"2"},"k5":{"zG":[]},"nv":{"k5":[],"zG":[]},"jv":{"a1":["1","2"],"h":["1","2"]},"jy":{"jv":["1","2"],"a1":["1","2"],"h":["1","2"],"a1.K":"1","a1.V":"2"},"jw":{"J":["1"],"i":["1"],"i.E":"1"},"jx":{"a8":["1"]},"jC":{"bS":["1","2"],"a1":["1","2"],"lA":["1","2"],"h":["1","2"],"a1.K":"1","a1.V":"2"},"fg":{"jP":["1"],"cR":["1"],"da":["1"],"J":["1"],"i":["1"]},"fh":{"a8":["1"]},"P":{"k":["1"],"J":["1"],"i":["1"]},"a1":{"h":["1","2"]},"iL":{"h":["1","2"]},"f8":{"k_":["1","2"],"iL":["1","2"],"nM":["1","2"],"h":["1","2"]},"iJ":{"Ew":["1"],"Q":["1"],"J":["1"],"i":["1"],"Q.E":"1","i.E":"1"},"fi":{"a8":["1"]},"cR":{"da":["1"],"J":["1"],"i":["1"]},"jP":{"cR":["1"],"da":["1"],"J":["1"],"i":["1"]},"jd":{"cR":["1"],"nO":["1"],"da":["1"],"J":["1"],"i":["1"]},"fc":{"aY":["1"],"a3":["1"]},"dz":{"bE":["a","k"]},"nm":{"a1":["a","@"],"h":["a","@"],"a1.K":"a","a1.V":"@"},"nn":{"Q":["a"],"J":["a"],"i":["a"],"Q.E":"a","i.E":"a"},"nk":{"fp":["T"],"cA":[],"a3":["a"],"fp.0":"T"},"kr":{"dz":[],"bE":["a","k"],"bE.S":"a"},"nK":{"a7":["a","k"],"br":["a","k"]},"kt":{"a7":["a","k"],"br":["a","k"],"a7.S":"a","a7.T":"k"},"nL":{"cA":[],"a3":["a"]},"nJ":{"a7":["k","a"],"br":["k","a"]},"ks":{"a7":["k","a"],"br":["k","a"],"a7.S":"k","a7.T":"a"},"nc":{"c_":[],"a3":["k"]},"ny":{"c_":[],"a3":["k"]},"ig":{"bE":["k","a"],"bE.S":"k"},"ky":{"a7":["k","a"],"br":["k","a"],"a7.S":"k","a7.T":"a"},"n2":{"jl":[]},"n1":{"c_":[],"a3":["k"]},"mX":{"c_":[],"a3":["k"]},"kx":{"a7":["a","k"],"br":["a","k"],"a7.S":"a","a7.T":"k"},"n0":{"cA":[],"a3":["a"]},"c_":{"a3":["k"]},"jo":{"c_":[],"a3":["k"]},"jp":{"c_":[],"a3":["k"]},"io":{"a3":["1"]},"a7":{"br":["1","2"]},"iF":{"au":[]},"ln":{"au":[]},"lm":{"bE":["x?","a"],"bE.S":"x?"},"lp":{"a7":["x?","a"],"br":["x?","a"],"a7.S":"x?","a7.T":"a"},"nl":{"a3":["x?"]},"lo":{"a7":["a","x?"],"br":["a","x?"],"a7.S":"a","a7.T":"x?"},"lu":{"dz":[],"bE":["a","k"],"bE.S":"a"},"lw":{"a7":["a","k"],"br":["a","k"],"a7.S":"a","a7.T":"k"},"lv":{"a7":["k","a"],"br":["k","a"],"a7.S":"k","a7.T":"a"},"jA":{"c_":[],"a3":["k"]},"np":{"c_":[],"a3":["k"]},"lz":{"br":["a","a"]},"cA":{"a3":["a"]},"nC":{"xU":[]},"fp":{"cA":[],"a3":["a"]},"fo":{"cA":[],"a3":["a"]},"k4":{"c_":[],"a3":["k"]},"mJ":{"dz":[],"bE":["a","k"],"bE.S":"a"},"mK":{"a7":["a","k"],"br":["a","k"],"a7.S":"a","a7.T":"k"},"nR":{"cA":[],"a3":["a"]},"jf":{"a7":["k","a"],"br":["k","a"],"a7.S":"k","a7.T":"a"},"bk":{"aK":["bk"]},"a_":{"bB":[],"aK":["bB"]},"aX":{"aK":["aX"]},"c":{"bB":[],"aK":["bB"]},"k":{"J":["1"],"i":["1"]},"bB":{"aK":["bB"]},"j_":{"cP":[]},"da":{"J":["1"],"i":["1"]},"a":{"aK":["a"],"rL":[]},"T":{"xU":[]},"ku":{"au":[]},"dd":{"au":[]},"cs":{"au":[]},"hl":{"au":[]},"ld":{"au":[]},"je":{"au":[]},"mF":{"au":[]},"bX":{"au":[]},"kM":{"au":[]},"lU":{"au":[]},"j9":{"au":[]},"nd":{"af":[]},"bG":{"af":[]},"nD":{"bW":[]},"ch":{"i":["c"],"i.E":"c"},"ho":{"a8":["c"]},"k1":{"hB":[]},"cm":{"hB":[]},"n8":{"hB":[]},"lO":{"af":[]},"d_":{"ck":["1"],"aY":["1"],"a3":["1"]},"j7":{"br":["1","2"]},"S":{"h":["2","3"]},"bc":{"c0":[]},"cQ":{"c0":[]},"bv":{"c0":[]},"cK":{"c0":[]},"bR":{"c0":[]},"bO":{"c0":[]},"el":{"c0":[]},"l1":{"e9":[]},"m3":{"e9":[]},"dM":{"e9":[]},"cI":{"e9":[]},"kp":{"a6":[]},"kL":{"a6":[]},"kN":{"a6":[]},"kP":{"a6":[]},"kR":{"a6":[]},"kT":{"a6":[]},"kW":{"a6":[]},"kY":{"a6":[]},"l_":{"a6":[]},"l5":{"a6":[]},"l7":{"a6":[]},"l9":{"a6":[]},"lb":{"a6":[]},"lE":{"a6":[]},"lL":{"a6":[]},"lV":{"a6":[]},"m9":{"a6":[]},"mm":{"a6":[]},"mw":{"a6":[]},"mL":{"a6":[]},"mO":{"a6":[]},"m_":{"dy":[]},"lx":{"dy":[]},"mg":{"dy":[]},"ml":{"dy":[]},"kA":{"bK":[]},"kK":{"bK":[]},"kQ":{"bK":[]},"kU":{"bK":[]},"kZ":{"bK":[]},"lt":{"bK":[]},"lX":{"bK":[]},"m8":{"bK":[]},"mc":{"bK":[]},"mk":{"bK":[]},"kz":{"yJ":[]},"fG":{"eV":["k"],"aa":["k"],"aa.T":"k","eV.T":"k"},"kD":{"af":[]},"me":{"ih":[]},"ij":{"S":["a","a","1"],"h":["a","1"],"S.K":"a","S.V":"1","S.C":"a"},"kl":{"kh":[]},"fP":{"yJ":[]},"dr":{"af":[]},"kn":{"kj":[]},"l6":{"kj":[]},"lS":{"kj":[]},"ki":{"av":[]},"nw":{"xw":[]},"n5":{"xw":[]},"ma":{"xv":[]},"mE":{"xv":[]},"ni":{"Cp":[]},"kS":{"d2":[]},"lq":{"d2":[]},"lC":{"d2":[]},"lY":{"d2":[]},"mU":{"d2":[]},"km":{"zw":[]},"mb":{"CX":[]},"md":{"Fh":[]},"mQ":{"af":[]},"ng":{"av":[]},"nj":{"av":[]},"nT":{"av":[]},"ns":{"av":[]},"mW":{"av":[]},"nh":{"av":[]},"nr":{"av":[]},"n3":{"av":[]},"nx":{"av":[]},"no":{"av":[]},"nu":{"av":[]},"nH":{"av":[]},"nG":{"av":[]},"na":{"av":[]},"ne":{"av":[]},"n4":{"av":[]},"cg":{"EL":[]},"m0":{"hq":[]},"m2":{"hq":[]},"kH":{"hq":[]},"nP":{"z5":[]},"mC":{"CZ":[]},"ji":{"rC":[]},"dA":{"F":[]},"dt":{"F":[]},"ec":{"F":[]},"eb":{"F":[]},"ha":{"F":[]},"hb":{"F":[]},"h1":{"F":[]},"h8":{"F":[]},"h9":{"F":[]},"eJ":{"F":[]},"eK":{"F":[]},"eB":{"F":[]},"eC":{"F":[]},"eO":{"F":[]},"eP":{"F":[]},"eQ":{"F":[]},"he":{"F":[]},"hf":{"F":[]},"hg":{"F":[]},"eh":{"F":[]},"ei":{"F":[]},"fH":{"F":[]},"eg":{"F":[]},"dv":{"F":[]},"dw":{"F":[]},"hk":{"F":[]},"eL":{"F":[]},"hc":{"F":[]},"hd":{"F":[]},"eM":{"F":[]},"eq":{"F":[]},"h4":{"F":[]},"h5":{"F":[]},"er":{"F":[]},"eo":{"F":[]},"h2":{"F":[]},"h3":{"F":[]},"ep":{"F":[]},"e3":{"F":[]},"h_":{"F":[]},"h0":{"F":[]},"e4":{"F":[]},"eR":{"F":[]},"hh":{"F":[]},"hi":{"F":[]},"eS":{"F":[]},"fL":{"F":[]},"h6":{"F":[]},"h7":{"F":[]},"es":{"F":[]},"f4":{"F":[]},"f5":{"F":[]},"f6":{"F":[]},"eZ":{"F":[]},"f_":{"F":[]},"f2":{"F":[]},"f3":{"F":[]},"eD":{"F":[]},"eF":{"F":[]},"eE":{"F":[]},"e6":{"F":[]},"e7":{"F":[]},"ew":{"F":[]},"cv":{"F":[]},"aL":{"d7":[]},"en":{"d7":[]},"dH":{"af":[]},"cw":{"af":[]},"ie":{"af":[]},"j2":{"af":[]},"mD":{"af":[]},"dN":{"af":[]},"bb":{"af":[]},"lB":{"DH":[]},"kk":{"av":[]},"kI":{"CR":[]},"mM":{"av":[]},"jg":{"EY":[]},"mT":{"zw":[]},"dh":{"EZ":[]},"iK":{"dK":[]},"iS":{"dK":[]},"iT":{"dK":[]},"j3":{"dK":[]},"j5":{"dK":[]},"iX":{"af":[]},"m1":{"fR":[]},"mI":{"fR":[]},"mP":{"fR":[]},"l3":{"cz":[],"aK":["cz"]},"hH":{"dc":[],"cS":[],"aK":["cS"]},"cz":{"aK":["cz"]},"mp":{"cz":[],"aK":["cz"]},"cS":{"aK":["cS"]},"mq":{"cS":[],"aK":["cS"]},"mr":{"af":[]},"hs":{"bG":[],"af":[]},"ht":{"cS":[],"aK":["cS"]},"dc":{"cS":[],"aK":["cS"]},"iA":{"xT":["1"]},"hI":{"ck":["1"],"aY":["1"],"a3":["1"]},"ja":{"xT":["1"]},"mv":{"bG":[],"af":[]},"fe":{"aa":["1"],"aa.T":"1"},"ju":{"bw":["1"]},"ed":{"v6":[]},"hy":{"dg":[]},"fE":{"dg":[]},"fI":{"dg":[]},"hE":{"af":[]},"hD":{"af":[]},"kd":{"Ff":[],"xT":["@"]},"nS":{"Fg":[],"d_":["@"],"ck":["@"],"aY":["@"],"a3":["@"],"d_.T":"@"},"mN":{"af":[]},"qY":{"k":["c"],"J":["c"],"i":["c"]},"df":{"k":["c"],"J":["c"],"i":["c"]},"uR":{"k":["c"],"J":["c"],"i":["c"]},"qW":{"k":["c"],"J":["c"],"i":["c"]},"uP":{"k":["c"],"J":["c"],"i":["c"]},"qX":{"k":["c"],"J":["c"],"i":["c"]},"uQ":{"k":["c"],"J":["c"],"i":["c"]},"pV":{"k":["a_"],"J":["a_"],"i":["a_"]},"pW":{"k":["a_"],"J":["a_"],"i":["a_"]}}')) +A.FU(v.typeUniverse,JSON.parse('{"hA":1,"k6":2,"bn":1,"jb":2,"dj":1,"k0":1,"io":1,"ja":1}')) +var u={S:"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\u03f6\x00\u0404\u03f4 \u03f4\u03f6\u01f6\u01f6\u03f6\u03fc\u01f4\u03ff\u03ff\u0584\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u05d4\u01f4\x00\u01f4\x00\u0504\u05c4\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0400\x00\u0400\u0200\u03f7\u0200\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0200\u0200\u0200\u03f7\x00",q:" :ai run the agent (mode: ",D:" must not be greater than the number of characters in the file, ",Z:")\n :ai mode set the default mode\n :ai lang set the reply language\n :ai --standard|--plan|--auto one-shot mode override\n :ai --lang one-shot language override\n :ai status show provider, model, mode, language\n :ai -h | --help show this help",U:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",A:"Cannot extract a file path from a URI with a fragment component",z:"Cannot extract a file path from a URI with a query component",Q:"Cannot extract a non-Windows file path from a file URI with an authority",w:"Error handler must accept one Object or one Object and a StackTrace as arguments, and return a value of the returned future's type",n:"Provisions or changes real infrastructure.",b:"Session detached \u2014 resume it from the list.",l:"User declined to run this command. Propose an alternative or stop and explain.",x:"usage: :tree [path] [-L depth] [-a] (depth must be a non-negative integer)"} +var t=(function rtii(){var s=A.al +return{f9:s("@<@>"),j4:s("@<~>"),BF:s("e2"),tR:s("cX"),bk:s("fx"),DT:s("fy"),mI:s("fz"),pl:s("ba"),mL:s("ds"),xR:s("bu"),yu:s("ib"),n:s("aO"),o:s("b4>"),A:s("b4>"),E4:s("dt"),zX:s("ct"),Bd:s("ig"),Ej:s("ed"),l2:s("ii"),yp:s("xC"),z0:s("ij"),gc:s("du"),hW:s("kB"),I:s("cu"),i:s("bj"),k4:s("dx"),iw:s("cJ"),iX:s("bc"),Y:s("D"),U:s("c0"),pi:s("iq"),Dv:s("cK"),hO:s("aK<@>"),c3:s("bd"),wj:s("bd"),bd:s("bd"),nH:s("bd"),Cn:s("bd"),pI:s("bd"),v7:s("bd>"),bE:s("bd>"),DM:s("bd"),j_:s("bd"),at:s("X"),gU:s("X"),w:s("X"),e:s("X>"),x:s("X"),M:s("B"),An:s("F"),eR:s("F(c?,h)"),f7:s("bk"),k:s("aB"),v4:s("d0"),cE:s("bP"),cy:s("bQ"),ec:s("cL"),ya:s("aX"),cU:s("et"),g:s("J<@>"),u1:s("bR"),yt:s("au"),A2:s("af"),eJ:s("l2"),dt:s("bF"),D4:s("pV"),ni:s("pW"),Bj:s("bG"),BO:s("d1"),uo:s("H"),qJ:s("H<~>(aa>)"),b:s("Z"),xL:s("Z"),gH:s("bH"),wV:s("fO"),tf:s("cv"),Aa:s("cd"),EE:s("qW"),fO:s("qX"),kT:s("qY"),gs:s("i"),Du:s("i"),tY:s("i<@>"),uI:s("i"),us:s("z"),z4:s("z"),wb:s("z"),ti:s("z"),vn:s("z"),R:s("z"),j:s("z"),ES:s("z"),J:s("z"),yP:s("z"),Fz:s("z>"),uw:s("z"),AV:s("z"),r:s("z
"),og:s("z"),AW:s("z>"),iJ:s("z>"),pP:s("z"),O:s("z"),DG:s("z"),rq:s("z>"),A7:s("z>"),cs:s("z>"),ye:s("z>>>"),F4:s("z>>"),d:s("z>"),yT:s("z"),C:s("z"),kd:s("z<+(a,a)>"),f4:s("z<+label,value(a,a)>"),Cp:s("z<+isDir,isLink,path,size(y,y,a,c)>"),iq:s("z"),v:s("z"),we:s("z>"),s:s("z
"),pK:s("z"),B:s("z"),eE:s("z"),nG:s("z"),nT:s("z"),oi:s("z"),Ac:s("z"),BL:s("z"),qi:s("z"),mK:s("z"),zz:s("z<@>"),t:s("z"),Cf:s("z"),yH:s("z"),ga:s("z<~(c,c)>"),CP:s("bl<@>"),Be:s("iC"),m:s("aj"),ud:s("d3"),Eh:s("c1<@>"),vl:s("fW"),pe:s("iJ>>"),dN:s("k"),ei:s("k"),hr:s("k"),W:s("k"),zA:s("k"),rE:s("k"),qL:s("k
"),yv:s("k"),x0:s("k"),zY:s("k>"),rW:s("k>"),oD:s("k"),DX:s("k<+(a,a)>"),a:s("k
"),BV:s("k"),cR:s("k"),_:s("k<@>"),L:s("k"),cO:s("k"),kQ:s("av"),i8:s("z5"),q:s("V"),ho:s("V>"),kx:s("h"),of:s("h"),yz:s("h"),P:s("h"),f:s("h<@,@>"),G:s("h"),zK:s("a2"),nf:s("a2"),Bo:s("fY"),rV:s("fZ"),eK:s("c3"),iT:s("eA"),qn:s("aZ"),c:s("ab"),K:s("x"),o5:s("aQ>>"),wg:s("aQ>>"),dK:s("aQ"),pa:s("aQ"),pM:s("aQ"),qv:s("aQ"),Ef:s("aQ"),jF:s("aQ"),vS:s("aQ"),tN:s("rC"),nl:s("d7"),nU:s("iY"),bT:s("cf"),wy:s("m6"),op:s("JE"),ep:s("+()"),p_:s("+(a,a)"),aw:s("+completer,nodeId,targetPort(bd,a,c)"),AX:s("bv"),he:s("j_"),dS:s("cg"),ey:s("mf"),xf:s("dJ"),cS:s("ch"),n0:s("bK"),V:s("a9"),lm:s("bV"),ij:s("hp"),aC:s("d9"),cp:s("da"),x2:s("eT"),vK:s("a3>"),u:s("a3"),wo:s("cz"),gL:s("cS"),ER:s("dc"),l:s("bW"),hv:s("mt"),dF:s("eU"),go:s("bw"),iI:s("bw"),xX:s("aa>"),Cj:s("mu"),N:s("a"),f0:s("T"),pj:s("a(cP)"),ff:s("a(a)"),aW:s("by"),sm:s("bY"),sg:s("ao"),tr:s("f0"),tg:s("f1"),r_:s("bz"),bs:s("dd"),ys:s("uP"),tu:s("uQ"),gJ:s("uR"),p:s("df"),qF:s("f7"),hL:s("f8"),eP:s("hB"),mN:s("v6"),uy:s("dg"),vY:s("ae"),tC:s("bL"),cN:s("bL"),Ai:s("bL"),Ex:s("dO"),vL:s("mS"),w6:s("W"),vE:s("W"),xe:s("W"),hs:s("W"),zJ:s("W"),Fn:s("W"),Df:s("W"),BU:s("W>"),ls:s("W>"),jY:s("W>"),uf:s("W"),kf:s("W"),o7:s("W"),v6:s("W"),EM:s("W"),sC:s("W"),wY:s("W"),kJ:s("W"),h:s("W<~>"),hb:s("b0"),mP:s("fc<@,@>"),v5:s("fe"),a8:s("v"),g_:s("v"),oW:s("v"),w7:s("v"),pd:s("v"),kC:s("v"),er:s("v"),fb:s("v>"),b_:s("v>"),jT:s("v>"),D1:s("v"),AF:s("v"),iB:s("v"),bD:s("v"),h6:s("v"),Dy:s("v"),aO:s("v"),hR:s("v<@>"),AJ:s("v"),D:s("v<~>"),E:s("b8"),BT:s("jy"),Dd:s("c7"),a9:s("aW"),qs:s("jS"),tM:s("dV"),to:s("aJ"),bc:s("cn"),tW:s("c8"),y:s("y"),bl:s("y(x)"),Ag:s("y(a)"),v1:s("y(b8)"),pR:s("a_"),z:s("@"),pF:s("@()"),h_:s("@(x)"),nW:s("@(x,bW)"),cz:s("@(a)"),S:s("c"),lp:s("bd>?"),mi:s("bF?"),eZ:s("H?"),kh:s("l8?"),aF:s("cd?"),uh:s("aj?"),ag:s("k?"),jS:s("k<@>?"),km:s("h?"),yq:s("h<@,@>?"),c_:s("h?"),X:s("x?"),uD:s("+config,httpClient(i8,fP)?"),hF:s("bW?"),DN:s("aa?"),T:s("a?"),tj:s("a(cP)?"),Ed:s("dj<@>?"),F:s("cD<@,@>?"),lI:s("b8?"),Af:s("nq?"),k7:s("y?"),u6:s("a_?"),lo:s("c?"),s7:s("bB?"),Z:s("~()?"),xS:s("~(aj)?"),dv:s("~(a,c)?"),xl:s("~(y)?"),fY:s("bB"),H:s("~"),Q:s("~()"),eU:s("~(k)"),eC:s("~(x)"),sp:s("~(x,bW)"),oM:s("~(cf)"),ma:s("~(a)"),m1:s("~(a,@)"),xx:s("~(c,c)")}})();(function constants(){var s=hunkHelpers.makeConstList +B.ic=J.lh.prototype +B.b=J.z.prototype +B.c=J.iB.prototype +B.p=J.fS.prototype +B.a=J.dB.prototype +B.id=J.d3.prototype +B.ie=J.iD.prototype +B.lk=A.iN.prototype +B.bR=A.iQ.prototype +B.H=A.eA.prototype +B.dt=J.lZ.prototype +B.cb=J.f7.prototype +B.ct=new A.e5(0,"standard") +B.a6=new A.e5(1,"plan") +B.cu=new A.e5(2,"auto") +B.cv=new A.kf(0,"planning") +B.aE=new A.kf(1,"executing") +B.ey=new A.dr("no choices in response",null) +B.ez=new A.dr("no candidates in response",null) +B.bg=new A.ia(0,"anthropic") +B.eA=new A.ia(1,"openai") +B.eB=new A.ia(2,"gemini") +B.bh=new A.fA(0,"system") +B.bi=new A.fA(1,"user") +B.bj=new A.fA(2,"assistant") +B.cw=new A.fA(3,"tool") +B.cx=new A.fB(0,"endTurn") +B.cy=new A.fB(1,"toolUse") +B.cz=new A.fB(2,"maxTokens") +B.cA=new A.fB(3,"other") +B.a2={type:0,properties:1,required:2} +B.mB={summary:0,steps:1} +B.ay={type:0,description:1} +B.l3=new A.X(B.ay,["string","A one-line summary of what the plan accomplishes."],t.w) +B.lv={type:0,description:1,items:2} +B.ds={command:0,explanation:1} +B.l5=new A.X(B.ay,["string","The command for this step."],t.w) +B.l4=new A.X(B.ay,["string","What this step does and why."],t.w) +B.lh=new A.X(B.ds,[B.l5,B.l4],t.e) +B.bO=s(["command"],t.s) +B.kU=new A.X(B.a2,["object",B.lh,B.bO],t.gU) +B.l0=new A.X(B.lv,["array","The ordered steps to execute.",B.kU],t.gU) +B.lc=new A.X(B.mB,[B.l3,B.l0],A.al("X>")) +B.kE=s(["steps"],t.s) +B.kZ=new A.X(B.a2,["object",B.lc,B.kE],t.x) +B.eD=new A.cc("present_plan","Present an ordered, multi-step plan for the user to approve before making any changes. Required in plan mode after investigation and before running mutating commands.",B.kZ) +B.l1=new A.X(B.ay,["string","The exact command line to execute."],t.w) +B.l2=new A.X(B.ay,["string","A short, user-facing reason for running this command."],t.w) +B.li=new A.X(B.ds,[B.l1,B.l2],t.e) +B.kX=new A.X(B.a2,["object",B.li,B.bO],t.x) +B.eF=new A.cc("run_command","Run a single shell command on the node and return its stdout, stderr and exit code. Use it both to investigate the node (read-only probes) and to perform changes. Run exactly one command per call; do not chain unrelated commands. Prefer non-interactive flags (e.g. -y) because no TTY is attached.",B.kX) +B.cB=new A.e8(0,0,0,0) +B.eK=new A.ic(0,"auth") +B.ah=new A.ic(1,"transport") +B.bk=new A.ic(5,"unknown") +B.eL=new A.bb(B.ah,"Enter a Hub address.",null) +B.eM=new A.bb(B.ah,"Connection to the Hub was lost.","Reconnect to continue.") +B.eN=new A.bb(B.ah,"Not connected to a Hub.",null) +B.cC=new A.ks(!1,127) +B.f8=new A.kt(127) +B.dp=new A.fX(0,"idle") +B.cE=new A.b4(B.dp,null,null,!1,t.o) +B.cD=new A.b4(B.dp,null,null,!1,t.A) +B.fa=new A.fD(0,"signedOut") +B.cF=new A.ct(B.fa,null,null) +B.bl=new A.fD(1,"connecting") +B.f9=new A.ct(B.bl,null,null) +B.ai=new A.fD(2,"connected") +B.bm=new A.fD(3,"error") +B.h9=new A.js(A.al("js>")) +B.fb=new A.fG(B.h9) +B.fc=new A.fQ(A.IU(),A.al("fQ")) +B.fd=new A.kl() +B.fg=new A.ky() +B.cG=new A.ig() +B.ff=new A.kx() +B.fh=new A.oL() +B.fj=new A.kH() +B.fv=new A.pM() +B.cH=new A.iv(A.al("iv<0&>")) +B.fA=new A.q5() +B.cI=function getTagFallback(o) { + var s = Object.prototype.toString.call(o); + return s.substring(8, s.length - 1); +} +B.fE=function() { + var toStringFunction = Object.prototype.toString; + function getTag(o) { + var s = toStringFunction.call(o); + return s.substring(8, s.length - 1); + } + function getUnknownTag(object, tag) { + if (/^HTML[A-Z].*Element$/.test(tag)) { + var name = toStringFunction.call(object); + if (name == "[object Object]") return null; + return "HTMLElement"; + } + } + function getUnknownTagGenericBrowser(object, tag) { + if (object instanceof HTMLElement) return "HTMLElement"; + return getUnknownTag(object, tag); + } + function prototypeForTag(tag) { + if (typeof window == "undefined") return null; + if (typeof window[tag] == "undefined") return null; + var constructor = window[tag]; + if (typeof constructor != "function") return null; + return constructor.prototype; + } + function discriminator(tag) { return null; } + var isBrowser = typeof HTMLElement == "function"; + return { + getTag: getTag, + getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag, + prototypeForTag: prototypeForTag, + discriminator: discriminator }; +} +B.fJ=function(getTagFallback) { + return function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("DumpRenderTree") >= 0) return hooks; + if (userAgent.indexOf("Chrome") >= 0) { + function confirm(p) { + return typeof window == "object" && window[p] && window[p].name == p; + } + if (confirm("Window") && confirm("HTMLElement")) return hooks; + } + hooks.getTag = getTagFallback; + }; +} +B.fF=function(hooks) { + if (typeof dartExperimentalFixupGetTag != "function") return hooks; + hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag); +} +B.fI=function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("Firefox") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "GeoGeolocation": "Geolocation", + "Location": "!Location", + "WorkerMessageEvent": "MessageEvent", + "XMLDocument": "!Document"}; + function getTagFirefox(o) { + var tag = getTag(o); + return quickMap[tag] || tag; + } + hooks.getTag = getTagFirefox; +} +B.fH=function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("Trident/") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "HTMLDDElement": "HTMLElement", + "HTMLDTElement": "HTMLElement", + "HTMLPhraseElement": "HTMLElement", + "Position": "Geoposition" + }; + function getTagIE(o) { + var tag = getTag(o); + var newTag = quickMap[tag]; + if (newTag) return newTag; + if (tag == "Object") { + if (window.DataView && (o instanceof window.DataView)) return "DataView"; + } + return tag; + } + function prototypeForTagIE(tag) { + var constructor = window[tag]; + if (constructor == null) return null; + return constructor.prototype; + } + hooks.getTag = getTagIE; + hooks.prototypeForTag = prototypeForTagIE; +} +B.fG=function(hooks) { + var getTag = hooks.getTag; + var prototypeForTag = hooks.prototypeForTag; + function getTagFixed(o) { + var tag = getTag(o); + if (tag == "Document") { + if (!!o.xmlVersion) return "!Document"; + return "!HTMLDocument"; + } + return tag; + } + function prototypeForTagFixed(tag) { + if (tag == "Document") return null; + return prototypeForTag(tag); + } + hooks.getTag = getTagFixed; + hooks.prototypeForTag = prototypeForTagFixed; +} +B.cJ=function(hooks) { return hooks; } + +B.x=new A.lm() +B.O=new A.lu() +B.bn=new A.lz() +B.fN=new A.lU() +B.bo=new A.lY() +B.q=new A.bV(2,"mediumRisk") +B.J=new A.bV(4,"critical") +B.h_=new A.mg() +B.by=new A.ip(1,"review") +B.h1=new A.ml() +B.fK=new A.lx() +B.jk=s([B.h_,B.h1,B.fK],A.al("z")) +B.fQ=new A.m_() +B.fR=new A.rN() +B.fS=new A.m0() +B.fT=new A.m2() +B.fU=new A.rO() +B.fY=new A.rX() +B.f=new A.ta() +B.pT=new A.u1() +B.L=new A.aM(0,"plain") +B.ee=new A.aM(1,"keyword") +B.ej=new A.aM(2,"type") +B.ae=new A.aM(3,"string") +B.b7=new A.aM(4,"number") +B.a5=new A.aM(5,"comment") +B.el=new A.aM(6,"operatorTok") +B.af=new A.aM(7,"punctuation") +B.em=new A.aM(8,"function") +B.ca=new A.aM(9,"property") +B.c7=new A.aM(10,"constant") +B.c8=new A.aM(11,"attribute") +B.pw=new A.aM(12,"tag") +B.px=new A.aM(13,"escape") +B.ef=new A.aM(14,"heading") +B.eg=new A.aM(15,"emphasis") +B.eh=new A.aM(16,"strong") +B.ei=new A.aM(17,"link") +B.c9=new A.aM(18,"codeSpan") +B.aA=new A.aM(19,"listMarker") +B.ek=new A.aM(20,"blockquote") +B.a7=new A.aF(252) +B.e3=new A.a5(B.a7,null,!1,!1,!1,!1,!1) +B.ar=new A.aF(204) +B.oU=new A.a5(B.ar,null,!0,!1,!1,!1,!1) +B.al=new A.aF(81) +B.oR=new A.a5(B.al,null,!1,!1,!1,!1,!1) +B.bs=new A.aF(114) +B.e4=new A.a5(B.bs,null,!1,!1,!1,!1,!1) +B.aI=new A.aF(215) +B.e1=new A.a5(B.aI,null,!1,!1,!1,!1,!1) +B.ak=new A.aF(245) +B.e0=new A.a5(B.ak,null,!1,!0,!1,!1,!1) +B.dZ=new A.a5(B.ar,null,!1,!1,!1,!1,!1) +B.bv=new A.aF(250) +B.oX=new A.a5(B.bv,null,!1,!1,!1,!1,!1) +B.he=new A.aF(149) +B.oP=new A.a5(B.he,null,!1,!1,!1,!1,!1) +B.hc=new A.aF(117) +B.e5=new A.a5(B.hc,null,!1,!1,!1,!1,!1) +B.e6=new A.a5(B.aI,null,!0,!1,!1,!1,!1) +B.cO=new A.aF(39) +B.oW=new A.a5(B.cO,null,!0,!1,!1,!1,!1) +B.oS=new A.a5(B.a7,null,!1,!0,!1,!1,!1) +B.oK=new A.a5(B.a7,null,!0,!1,!1,!1,!1) +B.oQ=new A.a5(B.cO,null,!1,!1,!0,!1,!1) +B.lj=new A.iz([B.L,B.e3,B.ee,B.oU,B.ej,B.oR,B.ae,B.e4,B.b7,B.e1,B.a5,B.e0,B.el,B.dZ,B.af,B.oX,B.em,B.oP,B.ca,B.e5,B.c7,B.e1,B.c8,B.e5,B.pw,B.dZ,B.px,B.e6,B.ef,B.oW,B.eg,B.oS,B.eh,B.oK,B.ei,B.oQ,B.c9,B.e4,B.aA,B.e6,B.ek,B.e0],A.al("iz")) +B.h4=new A.uL() +B.h5=new A.mE() +B.l=new A.mJ() +B.r=new A.mK() +B.P=new A.uU() +B.h7=new A.v7() +B.aG=new A.n9() +B.t=new A.nv() +B.aH=new A.nD() +B.e2=new A.a5(null,null,!1,!1,!1,!1,!1) +B.cM=new A.du(" ",B.e2) +B.bp=new A.im(0,"sequential") +B.bq=new A.im(1,"and") +B.br=new A.im(2,"or") +B.ha=new A.aF(108) +B.hb=new A.aF(109) +B.aK=new A.aF(236) +B.bu=new A.aF(240) +B.F=new A.bj(0,"readFilesystem") +B.y=new A.bj(1,"writeFilesystem") +B.a8=new A.bj(2,"deleteFilesystem") +B.Q=new A.bj(3,"executePrograms") +B.z=new A.bj(4,"networkRead") +B.A=new A.bj(5,"networkWrite") +B.bw=new A.bj(6,"processManagement") +B.aM=new A.bj(7,"privilegeEscalation") +B.B=new A.bj(8,"systemConfiguration") +B.aN=new A.bj(9,"environmentAccess") +B.cP=new A.dx(0,"yes") +B.bx=new A.dx(1,"no") +B.cQ=new A.dx(2,"explain") +B.as=new A.ip(0,"allow") +B.aO=new A.ip(2,"deny") +B.hh=new A.cJ(0,"readOnly") +B.hi=new A.cJ(1,"modifyFiles") +B.hj=new A.cJ(2,"deleteFiles") +B.hk=new A.cJ(3,"executeCode") +B.hl=new A.cJ(4,"networkAccess") +B.hm=new A.cJ(5,"systemModification") +B.hn=new A.cJ(6,"privilegeEscalation") +B.G=s([],t.s) +B.di=s([],t.iq) +B.m=s([],t.yP) +B.k=s([],t.r) +B.cR=new A.bc("",B.G,B.di,B.m,B.k,null) +B.W={} +B.d=new A.B(B.W,0,t.M) +B.ax=new A.bm(1,"filesystem") +B.i1=new A.ej(3,"cross") +B.n=new A.Z([B.i1],t.xL) +B.E=new A.Z([B.F],t.b) +B.e=new A.bV(0,"safe") +B.j=s([],t.B) +B.lE={"-delete":0} +B.nH=new A.B(B.lE,1,t.M) +B.pt=new A.dM(B.nH) +B.b2=new A.Z([B.a8],t.b) +B.f6=new A.bi(B.pt,B.b2,B.e,"`-delete` removes matched entries.") +B.lW={"-exec":0,"-execdir":1} +B.nF=new A.B(B.lW,2,t.M) +B.ps=new A.dM(B.nF) +B.w=new A.Z([B.Q],t.b) +B.f2=new A.bi(B.ps,B.w,B.e,"`-exec` runs a program per match.") +B.k5=s([B.f6,B.f2],t.R) +B.ho=new A.D("find",B.E,B.e,B.d,B.j,B.k5,null,null) +B.aT=new A.bm(11,"network") +B.D=new A.Z([B.A],t.b) +B.i=s([],t.R) +B.hp=new A.D("ssh-copy-id",B.D,B.e,B.d,B.j,B.i,null,null) +B.iJ=new A.bm(16,"environment") +B.dK=new A.Z([B.aN],t.b) +B.pP=new A.jh(!0,B.d) +B.hq=new A.D("env",B.dK,B.e,B.d,B.j,B.i,B.pP,null) +B.d8=new A.bm(6,"database") +B.nV=new A.Z([B.F,B.y,B.A,B.Q],t.b) +B.hr=new A.D("prisma",B.nV,B.e,B.d,B.j,B.i,null,null) +B.d7=new A.bm(5,"crypto") +B.o8=new A.Z([B.F,B.y,B.z],t.b) +B.hs=new A.D("step",B.o8,B.e,B.d,B.j,B.i,null,null) +B.iI=new A.bm(10,"infrastructure") +B.b3=new A.Z([B.F,B.z],t.b) +B.mm={preview:0,stack:1,config:2,about:3,whoami:4,plugin:5,logs:6} +B.ou=new A.B(B.mm,7,t.M) +B.p0=new A.ag(B.ou,B.b3,B.e,"Reads or previews infrastructure.") +B.lt={up:0,import:1,refresh:2} +B.ns=new A.B(B.lt,3,t.M) +B.bW=new A.Z([B.A,B.y,B.Q],t.b) +B.p1=new A.ag(B.ns,B.bW,B.q,u.n) +B.m6={destroy:0} +B.nR=new A.B(B.m6,1,t.M) +B.o=new A.bV(3,"highRisk") +B.e8=new A.ag(B.nR,B.bW,B.o,"Destroys managed infrastructure.") +B.kz=s([B.p0,B.p1,B.e8],t.B) +B.ht=new A.D("pulumi",B.b3,B.e,B.d,B.kz,B.i,null,null) +B.o_=new A.Z([B.F,B.z,B.A,B.Q],t.b) +B.hu=new A.D("packer",B.o_,B.e,B.d,B.j,B.i,null,null) +B.pV=new A.bm(8,"packageManager") +B.mE={version:0,env:1} +B.nt=new A.B(B.mE,2,t.M) +B.mi={install:0,i:1,add:2,ci:3,update:4,upgrade:5,audit:6,download:7,wheel:8,get:9,restore:10,sync:11} +B.oD=new A.B(B.mi,12,t.M) +B.b5=new A.Z([B.z,B.y],t.b) +B.c4=new A.ag(B.oD,B.b5,B.q,"Downloads and installs packages (runs install scripts).") +B.mu={publish:0} +B.om=new A.B(B.mu,1,t.M) +B.e7=new A.ag(B.om,B.D,B.e,"Uploads a package to a registry.") +B.aV=s([B.c4,B.e7],t.B) +B.hv=new A.D("go",B.w,B.e,B.nt,B.aV,B.i,null,null) +B.d6=new A.bm(15,"system") +B.a3=new A.Z([B.B],t.b) +B.hw=new A.D("visudo",B.a3,B.o,B.d,B.j,B.i,null,null) +B.K=new A.Z([B.F,B.y],t.b) +B.lZ={s_client:0,s_server:1,ocsp:2} +B.nx=new A.B(B.lZ,3,t.M) +B.T=new A.Z([B.z,B.A],t.b) +B.p5=new A.ag(B.nx,B.T,B.e,"Opens a network connection to a TLS/OCSP endpoint.") +B.j5=s([B.p5],t.B) +B.hx=new A.D("openssl",B.K,B.e,B.d,B.j5,B.i,null,null) +B.i_=new A.ej(1,"macos") +B.pW=new A.Z([B.i_],t.xL) +B.hy=new A.D("spctl",B.a3,B.o,B.d,B.j,B.i,null,null) +B.mg={"-V":0} +B.bV=new A.B(B.mg,1,t.M) +B.hz=new A.D("cargo",B.w,B.e,B.bV,B.aV,B.i,null,null) +B.bK=new A.bm(14,"process") +B.ad=new A.Z([B.bw],t.b) +B.cc=new A.jh(!1,B.d) +B.hA=new A.D("nice",B.ad,B.e,B.d,B.j,B.i,B.cc,null) +B.S=new A.Z([B.z],t.b) +B.hC=new A.D("ssh-keyscan",B.S,B.e,B.d,B.j,B.i,null,null) +B.hD=new A.D("sd",B.K,B.e,B.d,B.j,B.i,null,null) +B.nM=new A.Z([B.F,B.y,B.B],t.b) +B.hE=new A.D("security",B.nM,B.o,B.d,B.j,B.i,null,null) +B.iH=new A.bm(0,"versionControl") +B.dL=new A.Z([B.F,B.z,B.A],t.b) +B.hF=new A.D("git-lfs",B.dL,B.e,B.d,B.j,B.i,null,null) +B.dU=new A.Z([B.z,B.A,B.Q,B.B],t.b) +B.lV={"--become":0,"-b":1,"--become-method":2} +B.nr=new A.B(B.lV,3,t.M) +B.pr=new A.dM(B.nr) +B.oq=new A.Z([B.aM,B.B],t.b) +B.eZ=new A.bi(B.pr,B.oq,B.q,"Escalates privileges on the managed hosts.") +B.kj=s([B.eZ],t.R) +B.hG=new A.D("ansible-playbook",B.dU,B.e,B.d,B.j,B.kj,null,null) +B.me={status:0,show:1,"list-units":2,"list-unit-files":3,"list-dependencies":4,"is-active":5,"is-enabled":6,"is-failed":7,cat:8,"get-default":9,"show-environment":10} +B.nB=new A.B(B.me,11,t.M) +B.pg=new A.ag(B.nB,B.E,B.e,"Queries unit/system state.") +B.lp={start:0,stop:1,restart:2,reload:3,"reload-or-restart":4,enable:5,disable:6,mask:7,unmask:8,"set-default":9,"daemon-reload":10,"daemon-reexec":11,isolate:12,kill:13,"set-property":14,edit:15,revert:16,preset:17} +B.nX=new A.B(B.lp,18,t.M) +B.bZ=new A.Z([B.B,B.bw],t.b) +B.R=new A.bV(1,"lowRisk") +B.pq=new A.ag(B.nX,B.bZ,B.R,"Changes service/unit state.") +B.lP={poweroff:0,reboot:1,halt:2,suspend:3,hibernate:4,kexec:5,emergency:6,rescue:7} +B.nT=new A.B(B.lP,8,t.M) +B.pm=new A.ag(B.nT,B.bZ,B.o,"Powers off or changes the running system target.") +B.j0=s([B.pg,B.pq,B.pm],t.B) +B.hH=new A.D("systemctl",B.E,B.e,B.d,B.j0,B.i,null,null) +B.hI=new A.D("ansible-galaxy",B.b5,B.e,B.d,B.j,B.i,null,null) +B.ll={"-i":0,"--in-place":1} +B.nA=new A.B(B.ll,2,t.M) +B.fV=new A.m3() +B.az=new A.Z([B.y],t.b) +B.f4=new A.bi(B.fV,B.az,B.e,"In-place edit writes to the input file.") +B.dh=s([B.f4],t.R) +B.hJ=new A.D("sed",B.E,B.e,B.d,B.j,B.dh,null,null) +B.hK=new A.D("nvram",B.a3,B.o,B.d,B.j,B.i,null,null) +B.hL=new A.D("ansible-vault",B.K,B.e,B.d,B.j,B.i,null,null) +B.hM=new A.D("wg",B.a3,B.e,B.d,B.j,B.i,null,null) +B.o7=new A.Z([B.z,B.A,B.y,B.B],t.b) +B.hN=new A.D("certbot",B.o7,B.e,B.d,B.j,B.i,null,null) +B.hZ=new A.ej(0,"linux") +B.pX=new A.Z([B.hZ],t.xL) +B.o1=new A.Z([B.a8,B.B],t.b) +B.hO=new A.D("blkdiscard",B.o1,B.J,B.d,B.j,B.i,null,null) +B.pU=new A.bm(12,"shell") +B.X=new A.B(B.W,0,A.al("B")) +B.lz={"-v":0,"-V":1} +B.dM=new A.B(B.lz,2,t.M) +B.pO=new A.jh(!1,B.dM) +B.hP=new A.D("command",B.X,B.e,B.d,B.j,B.i,B.pO,null) +B.eT=new A.cI(A.J2()) +B.f7=new A.bi(B.eT,B.ad,B.o,"Signals PID 1 (init) or every process (-1) / the process group (0), which can crash the system.") +B.jh=s([B.f7],t.R) +B.hR=new A.D("kill",B.ad,B.e,B.d,B.j,B.jh,null,null) +B.hS=new A.D("glab",B.T,B.e,B.d,B.j,B.i,null,null) +B.hT=new A.D("cosign",B.dL,B.e,B.d,B.j,B.i,null,null) +B.aU=new A.bm(9,"container") +B.b4=new A.Z([B.z,B.Q],t.b) +B.hU=new A.D("docker-compose",B.b4,B.e,B.d,B.j,B.i,null,null) +B.lQ={read:0,list:1,status:2,login:3,token:4,print:5,version:6} +B.od=new A.B(B.lQ,7,t.M) +B.ph=new A.ag(B.od,B.S,B.e,"Reads secrets or status.") +B.m0={write:0,delete:1,kv:2,put:3,patch:4,unwrap:5,destroy:6} +B.oe=new A.B(B.m0,7,t.M) +B.pc=new A.ag(B.oe,B.D,B.q,"Writes or deletes secrets/state.") +B.jt=s([B.ph,B.pc],t.B) +B.hV=new A.D("vault",B.S,B.e,B.d,B.jt,B.i,null,null) +B.hX=new A.D("twine",B.D,B.e,B.d,B.j,B.i,null,null) +B.eU=new A.cI(A.IY()) +B.f5=new A.bi(B.eU,B.w,B.e,"A trailing command runs a program on the remote host.") +B.jo=s([B.f5],t.R) +B.hY=new A.D("ssh",B.T,B.e,B.d,B.j,B.jo,null,null) +B.aX=s([],t.v) +B.cS=new A.ek(B.as,B.e,B.aX) +B.cT=new A.em(0,"generic") +B.i2=new A.em(1,"posixShell") +B.bz=new A.em(2,"bash") +B.bA=new A.em(3,"windowsCmd") +B.bB=new A.em(4,"powershell") +B.a9=new A.ir(1,0,"stdin") +B.i3=new A.ir(2,1,"stdout") +B.i4=new A.ir(3,2,"stderr") +B.u=new A.kV(1,"warning") +B.bC=new A.bP(0,"autoFit") +B.cU=new A.bP(1,"landscape") +B.cV=new A.bP(2,"portrait") +B.cW=new A.bP(3,"standard") +B.bD=new A.bP(4,"custom") +B.cX=new A.aX(0) +B.i6=new A.aX(1e5) +B.i7=new A.aX(12e7) +B.i8=new A.aX(2e5) +B.cY=new A.aX(2e7) +B.i9=new A.aX(3e7) +B.cZ=new A.aX(4e6) +B.ia=new A.aX(8e4) +B.ib=new A.aX(8e6) +B.C=new A.fN(0,"tree") +B.I=new A.fN(1,"editor") +B.aa=new A.fN(2,"terminal") +B.am=new A.fN(3,"ai") +B.d_=new A.bH(0,"clean") +B.at=new A.bH(1,"modified") +B.aP=new A.bH(2,"added") +B.bE=new A.bH(3,"deleted") +B.aQ=new A.bH(4,"untracked") +B.au=new A.bH(5,"renamed") +B.bF=new A.bH(6,"ignored") +B.bG=new A.bH(7,"conflicted") +B.bH=new A.fO(0,"added") +B.d0=new A.fO(1,"modified") +B.v=new A.cM(0) +B.aR=new A.cM(1) +B.bI=new A.la(0,"none") +B.d1=new A.la(1,"hubDefault") +B.ig=new A.lo(null) +B.ih=new A.lp(null) +B.iv=new A.b6(10,"right") +B.ii=new A.aP(B.iv,null,null) +B.iw=new A.b6(11,"home") +B.d2=new A.aP(B.iw,null,null) +B.ix=new A.b6(12,"end") +B.d3=new A.aP(B.ix,null,null) +B.iy=new A.b6(13,"pageUp") +B.ij=new A.aP(B.iy,null,null) +B.iz=new A.b6(14,"pageDown") +B.ik=new A.aP(B.iz,null,null) +B.iA=new A.b6(16,"unknown") +B.aS=new A.aP(B.iA,null,null) +B.d4=new A.b6(1,"enter") +B.il=new A.aP(B.d4,null,null) +B.d5=new A.b6(2,"tab") +B.im=new A.aP(B.d5,null,null) +B.iB=new A.b6(3,"backTab") +B.io=new A.aP(B.iB,null,null) +B.iC=new A.b6(4,"backspace") +B.ip=new A.aP(B.iC,null,null) +B.iD=new A.b6(5,"delete") +B.iq=new A.aP(B.iD,null,null) +B.aw=new A.b6(6,"escape") +B.ir=new A.aP(B.aw,null,null) +B.iE=new A.b6(7,"up") +B.is=new A.aP(B.iE,null,null) +B.iF=new A.b6(8,"down") +B.it=new A.aP(B.iF,null,null) +B.iG=new A.b6(9,"left") +B.iu=new A.aP(B.iG,null,null) +B.av=new A.b6(0,"char") +B.bJ=new A.b6(15,"ctrlChar") +B.a_=new A.bm(13,"interpreter") +B.iK=new A.bm(4,"hash") +B.d9=new A.bm(7,"editor") +B.da=new A.lv(!1,255) +B.iL=new A.lw(255) +B.le=new A.X(B.W,[],A.al("X")) +B.dQ=new A.B(B.W,0,A.al("B")) +B.bL=new A.fW(B.le,B.dQ) +B.iM=s(["rm","rmdir","del","erase","unlink","shred","remove-item","ri"],t.s) +B.iN=s([120,300,500],t.t) +B.iO=s(["dmesg","journalctl","last","who","w"],t.s) +B.bM=s([239,191,189],t.t) +B.iP=s([27],t.t) +B.iQ=s([27,91,53,126],t.t) +B.iR=s([27,91,54,126],t.t) +B.iS=s([27,91,65],t.t) +B.iT=s([27,91,66],t.t) +B.iU=s([27,91,67],t.t) +B.iV=s([27,91,68],t.t) +B.iW=s([27,91,70],t.t) +B.iX=s([27,91,72],t.t) +B.c5=new A.by(0,"auto") +B.e9=new A.by(1,"smaller") +B.ea=new A.by(2,"normal") +B.eb=new A.by(3,"larger") +B.iY=s([B.c5,B.e9,B.ea,B.eb],A.al("z")) +B.lT={rm:0,delete:1,rb:2,destroy:3,remove:4,"terminate-instances":5} +B.nS=new A.B(B.lT,6,t.M) +B.pu=new A.dM(B.nS) +B.f_=new A.bi(B.pu,B.D,B.q,"Deletes/terminates a cloud resource.") +B.iZ=s([B.f_],t.R) +B.db=s([""],t.s) +B.j_=s(["pg_dump","pg_dumpall","mysqldump","mongodump","mongoexport"],t.s) +B.dx=new A.aD("^Q","quit") +B.dz=new A.aD("^S","save") +B.dC=new A.aD("^F","find") +B.mS=new A.aD("^L","line") +B.n5=new A.aD("^T","term") +B.mZ=new A.aD("^A","AI") +B.mX=new A.aD("^W","close") +B.n0=new A.aD("^B/Tab","focus") +B.dD=new A.aD("^N/^P","tabs") +B.mU=new A.aD("Enter","open") +B.dc=s([B.dx,B.dz,B.dC,B.mS,B.n5,B.mZ,B.mX,B.n0,B.dD,B.mU],t.kd) +B.mv={push:0} +B.dN=new A.B(B.mv,1,t.M) +B.pp=new A.ag(B.dN,B.D,B.e,"Uploads commits to a remote.") +B.mG={"send-email":0} +B.nY=new A.B(B.mG,1,t.M) +B.pi=new A.ag(B.nY,B.D,B.e,"Sends patches over email.") +B.lX={pull:0,clone:1,fetch:2,remote:3,submodule:4} +B.nZ=new A.B(B.lX,5,t.M) +B.pj=new A.ag(B.nZ,B.S,B.e,"Downloads objects or refs from a remote.") +B.lL={commit:0,add:1,init:2,checkout:3,switch:4,merge:5,reset:6,rebase:7,stash:8,tag:9,apply:10,rm:11,mv:12,restore:13,clean:14,worktree:15,bisect:16,"cherry-pick":17,revert:18,gc:19,reflog:20,am:21,"format-patch":22} +B.ox=new A.B(B.lL,23,t.M) +B.pf=new A.ag(B.ox,B.az,B.e,"Modifies the working tree or repository.") +B.jA=s([B.pp,B.pi,B.pj,B.pf],t.B) +B.eQ=new A.cI(A.IE()) +B.eX=new A.bi(B.eQ,B.D,B.q,"A force push can overwrite remote history.") +B.kQ=s([B.eX],t.R) +B.hW=new A.D("git",B.E,B.e,B.d,B.jA,B.kQ,null,null) +B.j1=s([B.hW],t.j) +B.dd=s([65533],t.t) +B.j2=s(["buildah","skopeo","img","kaniko","crictl","ctr","earthly","singularity","apptainer"],t.s) +B.j3=s(["tailscale","zerotier-cli","wg-quick"],t.s) +B.j4=s(["modprobe","insmod","rmmod","kextload","kextunload"],t.s) +B.j6=s([9],t.t) +B.mq={path:0} +B.mC={type:0} +B.a1=new A.X(B.mC,["string"],t.w) +B.lg=new A.X(B.mq,[B.a1],t.e) +B.kk=s(["path"],t.s) +B.dq=new A.X(B.a2,["object",B.lg,B.kk],t.x) +B.eE=new A.cc("read_file","Read a UTF-8 text file in the workspace.",B.dq) +B.mr={path:0,content:1} +B.kT=new A.X(B.mr,[B.a1,B.a1],t.e) +B.kl=s(["path","content"],t.s) +B.kW=new A.X(B.a2,["object",B.kT,B.kl],t.x) +B.eC=new A.cc("write_file","Create or overwrite a file with the given content.",B.kW) +B.m4={path:0,old_string:1,new_string:2} +B.kS=new A.X(B.m4,[B.a1,B.a1,B.a1],t.e) +B.km=s(["path","old_string","new_string"],t.s) +B.kY=new A.X(B.a2,["object",B.kS,B.km],t.x) +B.eI=new A.cc("replace_in_file","Edit part of a file: replace an exact substring. old_string must occur exactly once in the file.",B.kY) +B.eH=new A.cc("list_directory","List the entries of a directory in the workspace.",B.dq) +B.mx={query:0} +B.l7=new A.X(B.mx,[B.a1],t.e) +B.kr=s(["query"],t.s) +B.l_=new A.X(B.a2,["object",B.l7,B.kr],t.x) +B.eG=new A.cc("search_text","Search workspace files for a text query (grep-like).",B.l_) +B.m3={command:0} +B.lf=new A.X(B.m3,[B.a1],t.e) +B.kV=new A.X(B.a2,["object",B.lf,B.bO],t.x) +B.eJ=new A.cc("run_command","Run a shell command in the workspace (e.g. build, tests, git) and read its output.",B.kV) +B.j7=s([B.eE,B.eC,B.eI,B.eH,B.eG,B.eJ],t.vn) +B.lO={"--recv-keys":0,"--send-keys":1,"--refresh-keys":2,"--keyserver":3} +B.dO=new A.B(B.lO,4,t.M) +B.fy=new A.l1() +B.eY=new A.bi(B.fy,B.T,B.e,"Keyserver operations transfer keys over the network.") +B.j8=s([B.eY],t.R) +B.de=s(["B","KB","MB","GB","TB"],t.s) +B.j9=s(["bash","sh","zsh","dash","ksh","fish","csh","tcsh","npx","make","gcc","clang","cc","eval","source","cmd","powershell","pwsh","mvn","gradle","rake","lua","osascript","rscript","swift","kotlin","scala","invoke-expression","iex","cmake","ninja","meson","bazel","buck2","just","task","ant","sbt","lein","clj","clojure","mix","cabal","stack","ghc","runghc","runhaskell","erl","elixir","groovy","jshell","tsc","ts-node","tsx","babel","webpack","vite","rollup","esbuild","parcel","gulp","grunt","bunx","uvx","pytest","tox","nox","jest","mocha","julia","expect","tclsh","wish","zig","nim","crystal","raku","busybox","entr","inotifywait","fswatch","screen","tmux"],t.s) +B.ja=s(["psql","mysql","mariadb","mongo","mongosh","redis-cli","cqlsh","influx","pgcli","mycli","litecli","usql","clickhouse-client","cockroach","etcdctl","sqlplus","sqlcmd","createdb","createuser"],t.s) +B.jb=s(["ps","top","htop","btop","atop","glances","iotop","renice","taskkill","tasklist","get-process","stop-process","pgrep","pidof","pstree","pidstat","jobs","bg","fg","wait","lsof","fuser","taskset","ionice","chrt","setsid","vmstat","iostat","mpstat","sar","free","uptime","nproc","lscpu","lsmem","lsusb","lspci","lshw","dmidecode"],t.s) +B.jc=s(["chattr","mount","umount","useradd","userdel","usermod","groupadd","groupdel","groupmod","gpasswd","passwd","chsh","chfn","service","launchctl","setfacl","setcap","getcap","semanage","restorecon","sysctl","reg","netsh","defaults","crontab","iptables","ip6tables","nft","ufw","firewall-cmd","set-itemproperty","new-service","set-acl","setx"],t.s) +B.jd=s(["md5","md5sum","sha1","sha1sum","sha224sum","sha256","sha256sum","sha384sum","sha512sum","shasum","b2sum","cksum","sum","get-filehash"],t.s) +B.na=new A.dl([!0,!1,!0,!0]) +B.n9=new A.dl([!0,!1,!0,!1]) +B.n6=new A.dl([!1,!1,!0,!1]) +B.n8=new A.dl([!1,!0,!0,!1]) +B.n7=new A.dl([!1,!0,!1,!1]) +B.bN=s([B.na,B.n9,B.n6,B.n8,B.n7],A.al("z<+(y,y,y,y)>")) +B.lG={install:0,update:1,upgrade:2,add:3,fetch:4,"-s":5,remove:6,erase:7,reinstall:8} +B.nv=new A.B(B.lG,9,t.M) +B.nP=new A.Z([B.z,B.y,B.B],t.b) +B.p3=new A.ag(B.nv,B.nP,B.q,"Installs/updates system packages.") +B.je=s([B.p3],t.B) +B.n3=new A.bA("Standard","standard") +B.n2=new A.bA("Plan","plan") +B.n1=new A.bA("Auto","auto") +B.jf=s([B.n3,B.n2,B.n1],t.f4) +B.jg=s(["minikube","kind","k3d","k3s","lima","colima","vagrant"],t.s) +B.ji=s(["A","B","C","D","F","L","Q","S","N","P","W","Z"],t.s) +B.jj=s(["fdisk","gdisk","sgdisk","cfdisk","parted"],t.s) +B.jl=s(["pip","pip3","pipx","poetry","conda","mamba","micromamba","uv","rye","pdm","hatch"],t.s) +B.ec=new A.bY(0,"light") +B.ed=new A.bY(1,"dark") +B.c6=new A.bY(2,"system") +B.df=s([B.ec,B.ed,B.c6],A.al("z")) +B.jm=s(["ip","ss","netstat","ifconfig","route","arp","arping","tcpdump","tshark","nmap","masscan","mtr","nmcli","resolvectl","getent","ethtool","iw","iwconfig"],t.s) +B.p9=new A.ag(B.dN,B.D,B.e,"Uploads an image to a registry.") +B.mI={pull:0,run:1,build:2,login:3,create:4,start:5,exec:6} +B.nq=new A.B(B.mI,7,t.M) +B.p4=new A.ag(B.nq,B.b4,B.e,"Pulls images and/or runs containers.") +B.lY={rm:0,rmi:1,prune:2,kill:3,stop:4} +B.nw=new A.B(B.lY,5,t.M) +B.pl=new A.ag(B.nw,B.b2,B.e,"Removes containers, images or volumes.") +B.jn=s([B.p9,B.p4,B.pl],t.B) +B.m2={run:0,"run-script":1,exec:2,start:3,test:4,dlx:5,x:6,create:7} +B.os=new A.B(B.m2,8,t.M) +B.p_=new A.ag(B.os,B.w,B.e,"Runs project scripts or fetched binaries (arbitrary code).") +B.jp=s([B.c4,B.e7,B.p_],t.B) +B.jq=s(["apt","apt-get","aptitude","dpkg","rpm","brew","port","dnf","yum","pacman","apk","zypper","emerge","nix","nix-env","snap","flatpak","choco","winget","scoop"],t.s) +B.mt={pub:0,packages:1} +B.ow=new A.B(B.mt,2,t.M) +B.po=new A.ag(B.ow,B.b5,B.e,"Resolves and downloads package dependencies.") +B.mb={format:0,fix:1} +B.nK=new A.B(B.mb,2,t.M) +B.p8=new A.ag(B.nK,B.az,B.e,"Rewrites source files.") +B.mo={run:0,test:1,compile:2,build:3,analyze:4,create:5} +B.oz=new A.B(B.mo,6,t.M) +B.pn=new A.ag(B.oz,B.w,B.e,"Runs or builds Dart/Flutter code.") +B.dk=s([B.po,B.p8,B.pn],t.B) +B.eR=new A.cI(A.Ir()) +B.f1=new A.bi(B.eR,B.D,B.e,"`pub publish` uploads a package to pub.dev.") +B.dl=s([B.f1],t.R) +B.hB=new A.D("dart",B.w,B.e,B.d,B.dk,B.dl,null,null) +B.hQ=new A.D("flutter",B.w,B.e,B.d,B.dk,B.dl,null,null) +B.jr=s([B.hB,B.hQ],t.j) +B.js=s(["pg_restore","mongorestore","mongoimport"],t.s) +B.ju=s(["man","info","apropos","whatis","cheat"],t.s) +B.eP=new A.cI(A.IX()) +B.f3=new A.bi(B.eP,B.D,B.e,"A request body or non-GET method sends data.") +B.jv=s([B.f3],t.R) +B.jw=s([B.bC,B.cU,B.cV,B.cW,B.bD],A.al("z")) +B.jx=s(["anthropic","openai","gemini"],t.s) +B.jy=s(["aws","gcloud","az"],t.s) +B.dg=s(["/nodes/:id/sessions/:sid","/nodes/:id/sessions","/nodes/:id","/nodes","/login"],t.s) +B.jz=s(["ftp","sftp","telnet","ping","dig","nslookup","host","whois","traceroute","aria2c","invoke-webrequest","iwr","invoke-restmethod","irm"],t.s) +B.jB=s(["chmod","chown","chgrp"],t.s) +B.jC=s(["consul","nomad"],t.s) +B.jD=s(["curl","wget"],t.s) +B.jE=s(["mkfs","mke2fs","mkfs.ext2","mkfs.ext3","mkfs.ext4","mkfs.xfs","mkfs.btrfs","mkfs.vfat","mkfs.fat","mkfs.exfat","mkfs.ntfs","mkswap","wipefs"],t.s) +B.jF=s(["deno"],t.s) +B.jG=s(["docker","podman","nerdctl"],t.s) +B.jH=s(["dotnet"],t.s) +B.jI=s(["dropdb","dropuser"],t.s) +B.jJ=s(["ansible","salt","salt-call","puppet","chef-client","knife"],t.s) +B.ly={get:0,describe:1,logs:2,top:3,explain:4,version:5,config:6,"cluster-info":7,"api-resources":8,"api-versions":9,wait:10,auth:11,diff:12} +B.oo=new A.B(B.ly,13,t.M) +B.pe=new A.ag(B.oo,B.S,B.e,"Read-only cluster query.") +B.lm={apply:0,create:1,patch:2,replace:3,edit:4,scale:5,label:6,annotate:7,rollout:8,set:9,expose:10,autoscale:11,cordon:12,uncordon:13,drain:14,taint:15} +B.op=new A.B(B.lm,16,t.M) +B.pd=new A.ag(B.op,B.D,B.q,"Mutates cluster state.") +B.m5={delete:0} +B.nD=new A.B(B.m5,1,t.M) +B.oB=new A.Z([B.A,B.a8],t.b) +B.pb=new A.ag(B.nD,B.oB,B.o,"Deletes cluster resources.") +B.mp={exec:0,attach:1,cp:2,"port-forward":3,proxy:4,run:5} +B.or=new A.B(B.mp,6,t.M) +B.o2=new A.Z([B.z,B.A,B.Q],t.b) +B.oZ=new A.ag(B.or,B.o2,B.q,"Runs a process in / streams to a pod.") +B.jK=s([B.pe,B.pd,B.pb,B.oZ],t.B) +B.jL=s(["edit"],t.s) +B.ab=s([],t.ti) +B.jQ=s([],t.vn) +B.jU=s([],A.al("z")) +B.bP=s([],t.J) +B.jR=s([],A.al("z")) +B.jN=s([],A.al("z")) +B.jP=s([],t.og) +B.h=s([],t.O) +B.jS=s([],t.yT) +B.jO=s([],A.al("z")) +B.jM=s([],A.al("z")) +B.dj=s([],t.t) +B.aW=s([],t.zz) +B.jT=s([],A.al("z<~>")) +B.jV=s(["ls","cat","head","tail","grep","egrep","fgrep","pwd","echo","stat","file","wc","less","more","which","whereis","whoami","hostname","date","tree","dir","type","sort","uniq","diff","cmp","dirname","basename","realpath","readlink","getconf","id","uname","df","du","lsblk","get-childitem","get-content","gci","cut","awk","column","fold","nl","tac","strings"],t.s) +B.jW=s(["fd","rg","ag","ack","bat","eza","exa","lsd","delta","fzf","gron","htmlq","hexyl","tokei","scc","glow","mdcat","zoxide","dust","duf","tldr"],t.s) +B.eS=new A.cI(A.J1()) +B.eW=new A.bi(B.eS,B.ad,B.o,"A match-all pattern or `-u root` signals a large set of processes, which can crash the system.") +B.jX=s([B.eW],t.R) +B.jY=s(["gem","composer"],t.s) +B.jZ=s(["gpg","gpg2"],t.s) +B.k_=s(["touch","mkdir","cp","copy","tee","truncate","ln","install","patch","xcopy","robocopy","set-content","add-content","split"],t.s) +B.k0=s(["http","https","httpie","xh"],t.s) +B.eO=new A.cI(A.IW()) +B.f0=new A.bi(B.eO,B.D,B.e,"Upload/POST flags send data to the server.") +B.k1=s([B.f0],t.R) +B.k2=s(["sudo","su","doas","pkexec","runas"],t.s) +B.k3=s(["java"],t.s) +B.k4=s(["jq","yq","dasel"],t.s) +B.k6=s(["k9s","dive","lazydocker"],t.s) +B.m9={"-auto-approve":0,"--auto-approve":1,"-auto-approve=true":2} +B.ov=new A.B(B.m9,3,t.M) +B.pv=new A.dM(B.ov) +B.eV=new A.bi(B.pv,B.X,B.o,"Applies/destroys without an interactive confirmation.") +B.k7=s([B.eV],t.R) +B.k8=s(["xargs","time","nohup","timeout","watch","exec","builtin","stdbuf"],t.s) +B.k9=s(["kubectl","oc"],t.s) +B.ka=s(["kubectx","kubens"],t.s) +B.kb=s(["age","rage","minisign","signify","sops","mkcert","keytool","ssh-keygen","pass","gopass","secret-tool","pinentry"],t.s) +B.kc=s([B.c4],t.B) +B.kd=s(["mosh","autossh","sshpass"],t.s) +B.ke=s(["mv","move"],t.s) +B.kf=s(["nc","ncat"],t.s) +B.fz=new A.l5() +B.fC=new A.l9() +B.fe=new A.kp() +B.fl=new A.kL() +B.fn=new A.kP() +B.fu=new A.kY() +B.fL=new A.lE() +B.h2=new A.mm() +B.fx=new A.l_() +B.fX=new A.m9() +B.h3=new A.mw() +B.ft=new A.kW() +B.fM=new A.lL() +B.fr=new A.kT() +B.fm=new A.kN() +B.fD=new A.lb() +B.fO=new A.lV() +B.fp=new A.kR() +B.fB=new A.l7() +B.h6=new A.mL() +B.h8=new A.mO() +B.dm=s([B.fz,B.fC,B.fe,B.fl,B.fn,B.fu,B.fL,B.h2,B.fx,B.fX,B.h3,B.ft,B.fM,B.fr,B.fm,B.fD,B.fO,B.fp,B.fB,B.h6,B.h8],t.ES) +B.kg=s(["where","findstr","systeminfo","ver","get-item","get-itemproperty","select-string"],t.s) +B.kh=s(["node","php"],t.s) +B.ki=s(["npm","pnpm","yarn","bun"],t.s) +B.kn=s(["perl"],t.s) +B.ko=s(["pkill","killall"],t.s) +B.kp=s(["printenv","export","set","setenv"],t.s) +B.kq=s(["python","python3"],t.s) +B.ks=s(["quit"],t.s) +B.kt=s(["gh","helm","doctl","flyctl","fly","heroku","vercel","netlify","wrangler","supabase","firebase","gsutil","bq","eksctl","s3cmd","linode-cli","ibmcloud","oci","scw","civo","railway"],t.s) +B.ku=s(["rustup","asdf","nvm","fnm","volta","sdkman","pkgx","bundle","bundler"],t.s) +B.kv=s(["rclone","mc"],t.s) +B.kw=s(["shutdown","reboot","halt","poweroff","init","telinit"],t.s) +B.kx=s(["ruby"],t.s) +B.mc={plan:0,validate:1,fmt:2,show:3,output:4,providers:5,version:6,graph:7,state:8,console:9,get:10,init:11,workspace:12} +B.ot=new A.B(B.mc,13,t.M) +B.pk=new A.ag(B.ot,B.b3,B.e,"Reads or plans infrastructure.") +B.m7={apply:0,import:1,taint:2,untaint:3,refresh:4} +B.nI=new A.B(B.m7,5,t.M) +B.p6=new A.ag(B.nI,B.bW,B.q,u.n) +B.ky=s([B.pk,B.p6,B.e8],t.B) +B.kA=s(["scp","rsync"],t.s) +B.kB=s(["socat","lftp"],t.s) +B.kC=s(["sqlite3","duckdb"],t.s) +B.kD=s(["srm","wipe"],t.s) +B.kF=s(["gzip","gunzip","zcat","zip","unzip","bzip2","bunzip2","bzcat","xz","unxz","xzcat","zstd","unzstd","zstdcat","lz4","lzma","unlzma","compress","uncompress","brotli","pigz","lzip","plzip","lrzip","lzop","lbzip2","pbzip2","pixz","zpaq","unlz4","unbrotli"],t.s) +B.kG=s(["terraform","tofu","terragrunt"],t.s) +B.kH=s(["tig","lazygit","gitk","gitui"],t.s) +B.kI=s(["sc","icacls","takeown","attrib","wmic","bcdedit","cacls","set-service","new-item","set-localuser"],t.s) +B.kJ=s(["vim","vi","nvim","neovim","vimdiff","gvim","view","nano","emacs","ed","ex","pico","joe","micro","code","code-insiders","codium","subl","sublime_text","atom","gedit","kate","kwrite","mousepad","notepad","notepad++","helix","hx","kak","kakoune"],t.s) +B.kK=s(["hg","svn","bzr","fossil","cvs","jj"],t.s) +B.kL=s(["wevtutil"],t.s) +B.kM=s(["tar","7z","7za","7zr","cpio","ar","pax","rar","unrar","unar","lha","arj","zoo","cabextract","rpm2cpio","dpkg-deb","jar","genisoimage","mkisofs","xorriso"],t.s) +B.fo=new A.kQ() +B.fk=new A.kK() +B.h0=new A.mk() +B.fW=new A.m8() +B.fs=new A.kU() +B.fZ=new A.mc() +B.fP=new A.lX() +B.fw=new A.kZ() +B.fi=new A.kA() +B.dn=s([B.fo,B.fk,B.h0,B.fW,B.fs,B.fZ,B.fP,B.fw,B.fi],A.al("z")) +B.dA=new A.aD("n","new file") +B.dy=new A.aD("N","new folder") +B.dB=new A.aD(".","hidden") +B.kN=s([B.dA,B.dy,B.dB],t.kd) +B.mw={push:0,dpush:1} +B.nN=new A.B(B.mw,2,t.M) +B.pa=new A.ag(B.nN,B.D,B.e,"Uploads commits/changes to a remote.") +B.my={pull:0,clone:1,fetch:2,incoming:3,outgoing:4,co:5,checkout:6} +B.nJ=new A.B(B.my,7,t.M) +B.p7=new A.ag(B.nJ,B.S,B.e,"Downloads changes from a remote.") +B.lN={commit:0,ci:1,add:2,update:3,up:4,merge:5,rebase:6,revert:7,backout:8,rm:9,remove:10,mv:11,rename:12,import:13,init:14,tag:15,branch:16,strip:17,rollback:18,amend:19,new:20,squash:21,split:22} +B.o4=new A.B(B.lN,23,t.M) +B.p2=new A.ag(B.o4,B.az,B.e,"Modifies the working tree or repository.") +B.kO=s([B.pa,B.p7,B.p2],t.B) +B.kP=s(["base64","base32","base58","uuencode","uudecode","xxd","qrencode","ssh-add"],t.s) +B.a0=new A.fX(1,"loading") +B.kR=new A.fX(2,"ready") +B.an=new A.fX(3,"error") +B.m_={dart:0,yaml:1,yml:2,json:3,jsonc:4,md:5,markdown:6} +B.fq=new A.kS() +B.aF=new A.mU() +B.cK=new A.lq() +B.cL=new A.lC() +B.l6=new A.X(B.m_,[B.fq,B.aF,B.aF,B.cK,B.cK,B.cL,B.cL],t.at) +B.lS={"pubspec.lock":0,"dart_test.yaml":1,".gitignore":2} +B.l8=new A.X(B.lS,[B.aF,B.aF,B.bo],t.at) +B.ml={"iso_8859-1:1987":0,"iso-ir-100":1,"iso_8859-1":2,"iso-8859-1":3,latin1:4,l1:5,ibm819:6,cp819:7,csisolatin1:8,"iso-ir-6":9,"ansi_x3.4-1968":10,"ansi_x3.4-1986":11,"iso_646.irv:1991":12,"iso646-us":13,"us-ascii":14,us:15,ibm367:16,cp367:17,csascii:18,ascii:19,csutf8:20,"utf-8":21} +B.N=new A.kr() +B.l9=new A.X(B.ml,[B.O,B.O,B.O,B.O,B.O,B.O,B.O,B.O,B.O,B.N,B.N,B.N,B.N,B.N,B.N,B.N,B.N,B.N,B.N,B.N,B.l,B.l],A.al("X")) +B.lR={python:0,node:1,bun:2,perl:3,ruby:4,php:5,lua:6,osascript:7,rscript:8,elixir:9,groovy:10} +B.mH={"-c":0} +B.ol=new A.B(B.mH,1,t.M) +B.lx={"-e":0,"--eval":1,"-p":2,"--print":3} +B.o5=new A.B(B.lx,4,t.M) +B.lI={"-e":0,"--eval":1} +B.ok=new A.B(B.lI,2,t.M) +B.lM={"-e":0,"-E":1} +B.nz=new A.B(B.lM,2,t.M) +B.m1={"-e":0} +B.ap=new A.B(B.m1,1,t.M) +B.mh={"-r":0} +B.ny=new A.B(B.mh,1,t.M) +B.la=new A.X(B.lR,[B.ol,B.o5,B.ok,B.nz,B.ap,B.ny,B.ap,B.ap,B.ap,B.ap,B.ap],A.al("X>")) +B.lD={pwsh:0,"g++":1,vi:2,fetch:3,batcat:4,fdfind:5,ripgrep:6} +B.lb=new A.X(B.lD,["powershell","gcc","vim","curl","bat","fd","rg"],t.w) +B.dr=new A.X(B.W,[],A.al("X")) +B.ac=new A.X(B.W,[],t.w) +B.ld=new A.X(B.W,[],A.al("X")) +B.aY=new A.X(B.W,[],t.x) +B.bQ=new A.X(B.W,[],A.al("X<@,@>")) +B.mJ=new A.aV(B.u,"Pipe with no following command",0) +B.i5=new A.kV(0,"info") +B.aZ=new A.aV(B.i5,"Empty command",0) +B.mK=new A.aV(B.u,"Chain operator with no command",0) +B.du=new A.cf(0,"all") +B.dv=new A.cf(1,"stepByStep") +B.dw=new A.cf(2,"talk") +B.b_=new A.cf(3,"cancel") +B.mL=new A.cw("protocol_error","Control frame must be a JSON object") +B.mM=new A.cw("protocol_error","Control frame missing 't'") +B.mN=new A.cw("malformed_frame","Data frame shorter than header") +B.mO=new A.cw("protocol_error","Node id cannot be empty") +B.mP=new A.cw("protocol_error","Session id cannot be empty") +B.mQ=new A.cw("protocol_error","Principal id cannot be empty") +B.mR=new A.cw("protocol_error","Unsupported WebSocket frame type") +B.mT=new A.aD("^A","AI agent") +B.mV=new A.aD("^W","close tab") +B.mW=new A.aD("^B","focus pane") +B.mY=new A.aD("^L","go to line") +B.n_=new A.dT(80,24) +B.n4=new A.aD("^T","terminal") +B.dE=new A.d8(0,0,0,0) +B.b0=new A.cx(0,"output") +B.bS=new A.cx(1,"appendOutput") +B.dF=new A.cx(2,"input") +B.nb=new A.cx(3,"hereDocument") +B.nc=new A.cx(4,"errorOutput") +B.nd=new A.cx(5,"appendErrorOutput") +B.ao=new A.cx(6,"mergeStreams") +B.ne=new A.cx(7,"combinedOutput") +B.nf=new A.cx(8,"combinedAppendOutput") +B.dG=new A.hm(0,"light") +B.bT=new A.hm(1,"dark") +B.dH=new A.eN(0,"exec") +B.bU=new A.eN(1,"shell") +B.ng=new A.eN(2,"transfer") +B.nh=new A.eN(3,"drive") +B.ni=new A.eN(4,"tunnel") +B.nj=new A.j2("session_rejected","Session closed before opening") +B.nk=new A.dL(0,"opening") +B.nl=new A.dL(1,"open") +B.nm=new A.dL(2,"closing") +B.nn=new A.dL(3,"closed") +B.b1=new A.dL(4,"detached") +B.no=new A.dL(5,"attached") +B.dI=new A.Z([B.y,B.B],t.b) +B.ln={sudo:0,env:1,command:2,exec:3,nohup:4,time:5,builtin:6} +B.np=new A.B(B.ln,7,t.M) +B.lr={true:0,false:1,null:2,yes:3,no:4,on:5,off:6,True:7,False:8,Null:9,TRUE:10,FALSE:11,NULL:12,"~":13} +B.nu=new A.B(B.lr,14,t.M) +B.lH={rm:0,rmdir:1,del:2,erase:3,unlink:4,shred:5,"remove-item":6,ri:7,srm:8,wipe:9,blkdiscard:10} +B.nC=new A.B(B.lH,11,t.M) +B.lC={"--info":0,"--list-sdks":1,"--list-runtimes":2} +B.nE=new A.B(B.lC,3,t.M) +B.lw={sh:0,bash:1,zsh:2,dash:3,ksh:4,fish:5,csh:6,tcsh:7} +B.nG=new A.B(B.lw,8,t.M) +B.mD={"-version":0} +B.nL=new A.B(B.mD,1,t.M) +B.lB={sudo:0,su:1,doas:2,pkexec:3,runas:4,gosu:5,run0:6,please:7} +B.nO=new A.B(B.lB,8,t.M) +B.lu={"-v":0} +B.dJ=new A.B(B.lu,1,t.M) +B.lA={"--version":0,"--help":1,"--usage":2} +B.bX=new A.B(B.lA,3,t.M) +B.lJ={bash:0,sh:1,zsh:2,dash:3,ksh:4,fish:5,csh:6,tcsh:7,cmd:8,powershell:9,python:10,node:11,ruby:12,perl:13,php:14,deno:15} +B.nQ=new A.B(B.lJ,16,t.M) +B.mj={bash:0,sh:1,zsh:2,dash:3,ksh:4,fish:5} +B.nU=new A.B(B.mj,6,t.M) +B.lo={"-u":0,"-g":1,"-p":2,"-h":3,"-C":4,"-D":5,"-R":6,"-T":7,"-U":8,"-r":9,"-t":10} +B.nW=new A.B(B.lo,11,t.M) +B.mz={ls:0,ll:1,la:2,l:3,cat:4,bat:5,echo:6,printf:7,pwd:8,whoami:9,id:10,date:11,uptime:12,df:13,du:14,free:15,ps:16,which:17,type:18,env:19,printenv:20,head:21,tail:22,wc:23,stat:24,file:25,hostname:26,uname:27,clear:28} +B.o0=new A.B(B.mz,29,t.M) +B.i0=new A.ej(2,"windows") +B.bY=new A.Z([B.i0],t.xL) +B.m8={int:0,double:1,num:2,bool:3,String:4,List:5,Map:6,Set:7,Object:8,Future:9,Stream:10,Iterable:11,void:12,dynamic:13,Null:14,Never:15} +B.o3=new A.B(B.m8,16,t.M) +B.be=new A.be(6,"redirOut") +B.bf=new A.be(7,"redirAppend") +B.cr=new A.be(8,"redirIn") +B.cs=new A.be(9,"redirHereDoc") +B.cm=new A.be(10,"redirErr") +B.cn=new A.be(11,"redirErrAppend") +B.aD=new A.be(13,"redirCombined") +B.co=new A.be(14,"redirCombinedAppend") +B.o6=new A.Z([B.be,B.bf,B.cr,B.cs,B.cm,B.cn,B.aD,B.co],A.al("Z")) +B.lq={"/":0,"/*":1,"/.":2,"~":3,"~/":4,"/~":5} +B.o9=new A.B(B.lq,6,t.M) +B.mk={status:0,log:1,diff:2,show:3,branch:4,remote:5,config:6} +B.oa=new A.B(B.mk,7,t.M) +B.ob=new A.Z([B.aM],t.b) +B.oc=new A.Z([B.A,B.B],t.b) +B.md={abstract:0,as:1,assert:2,async:3,await:4,base:5,break:6,case:7,"catch":8,class:9,const:10,continue:11,covariant:12,default:13,deferred:14,do:15,dynamic:16,else:17,enum:18,export:19,extends:20,extension:21,external:22,factory:23,false:24,final:25,finally:26,for:27,Function:28,get:29,hide:30,if:31,implements:32,import:33,in:34,interface:35,is:36,late:37,library:38,mixin:39,new:40,null:41,on:42,operator:43,part:44,required:45,rethrow:46,return:47,sealed:48,set:49,show:50,static:51,"super":52,switch:53,sync:54,this:55,throw:56,true:57,try:58,typedef:59,var:60,void:61,when:62,while:63,with:64,yield:65} +B.of=new A.B(B.md,66,t.M) +B.mf={mkfs:0,mke2fs:1,mkswap:2,wipefs:3} +B.og=new A.B(B.mf,4,t.M) +B.lK={curl:0,wget:1,aria2c:2,fetch:3,"invoke-webrequest":4,iwr:5,"invoke-restmethod":6,irm:7,lftp:8,"yt-dlp":9,"youtube-dl":10,certutil:11,bitsadmin:12} +B.oh=new A.B(B.lK,13,t.M) +B.oi=new A.Z([B.F,B.A],t.b) +B.oj=new A.Z([B.y,B.a8],t.b) +B.dP=new A.Z([B.y,B.a8,B.B],t.b) +B.dR=new A.Z([B.z,B.A,B.F],t.b) +B.mn={"/etc":0,"/bin":1,"/sbin":2,"/usr":3,"/var":4,"/boot":5,"/lib":6,"/lib64":7,"/sys":8,"/proc":9,"/dev":10,"/system":11,"/users":12,"/home":13,"/root":14,"/opt":15,"/library":16,"/applications":17} +B.dS=new A.B(B.mn,18,t.M) +B.mA={sudo:0,su:1,doas:2,pkexec:3,runas:4,gosu:5,run0:6,please:7,env:8,xargs:9,time:10,nice:11,nohup:12,timeout:13,watch:14,command:15,exec:16,stdbuf:17} +B.on=new A.B(B.mA,18,t.M) +B.lU={"/etc":0,"/bin":1,"/sbin":2,"/usr":3,"/var":4,"/boot":5,"/lib":6,"/lib64":7,"/sys":8,"/proc":9,"/dev":10,"/root":11,"/home":12,"/opt":13,"/library":14,"/system":15} +B.dT=new A.B(B.lU,16,t.M) +B.ls={".":0,".*":1,".+":2,".*?":3,"^.*$":4,"^.+$":5} +B.oy=new A.B(B.ls,6,t.M) +B.ms={powershell:0,pwsh:1} +B.oA=new A.B(B.ms,2,t.M) +B.lF={"-e":0,"-ec":1,"-enc":2,"-encodedcommand":3} +B.dV=new A.B(B.lF,4,t.M) +B.oC=new A.Z([B.B,B.Q],t.b) +B.mF={python:0,pip:1,ruby:2,node:3,php:4,perl:5} +B.oE=new A.B(B.mF,6,t.M) +B.ma={"-C":0,"-c":1,"--git-dir":2,"--work-tree":3,"--namespace":4,"--exec-path":5} +B.oF=new A.B(B.ma,6,t.M) +B.c_=new A.j6(0,"posix") +B.dW=new A.j6(1,"powershell") +B.dX=new A.j6(2,"cmd") +B.oG=new A.hr(null,null,null,null) +B.oH=new A.eT(B.dj,0) +B.c0=new A.a5(B.bv,B.aK,!0,!1,!1,!1,!1) +B.aj=new A.aF(231) +B.cN=new A.aF(24) +B.oI=new A.a5(B.aj,B.cN,!0,!1,!1,!1,!1) +B.dY=new A.a5(B.ak,B.aK,!1,!1,!1,!1,!1) +B.c1=new A.a5(B.aj,B.cN,!1,!1,!1,!1,!1) +B.oJ=new A.a5(B.al,B.aK,!0,!1,!1,!1,!1) +B.aJ=new A.aF(234) +B.e_=new A.a5(B.bv,B.aJ,!1,!1,!1,!1,!1) +B.hd=new A.aF(124) +B.oL=new A.a5(B.aj,B.hd,!0,!1,!1,!1,!1) +B.aL=new A.aF(238) +B.c2=new A.a5(B.a7,B.aL,!1,!1,!1,!1,!1) +B.bt=new A.aF(235) +B.U=new A.a5(B.a7,B.bt,!1,!1,!1,!1,!1) +B.oM=new A.a5(B.al,B.aJ,!0,!1,!1,!1,!1) +B.b6=new A.a5(B.bu,B.bt,!1,!1,!1,!1,!1) +B.oN=new A.a5(B.aj,B.aL,!0,!1,!1,!1,!1) +B.oO=new A.a5(B.a7,B.aJ,!1,!1,!1,!1,!1) +B.c3=new A.a5(B.aj,B.bt,!0,!1,!1,!1,!1) +B.hf=new A.aF(237) +B.V=new A.a5(B.ak,B.hf,!1,!1,!1,!1,!1) +B.a4=new A.a5(B.al,B.aL,!1,!1,!1,!1,!1) +B.oT=new A.a5(B.ak,B.aL,!1,!1,!1,!1,!1) +B.hg=new A.aF(28) +B.oV=new A.a5(B.aj,B.hg,!0,!1,!1,!1,!1) +B.oY=new A.a5(B.bu,B.aJ,!1,!1,!1,!1,!1) +B.py=new A.dN("transport_error","Client is not connected") +B.pz=new A.dN("transport_error","Disconnected from Hub") +B.M=new A.dN("transport_error","Disconnected") +B.pA=A.cr("ii") +B.pB=A.cr("xC") +B.pC=A.cr("pV") +B.pD=A.cr("pW") +B.pE=A.cr("qW") +B.pF=A.cr("qX") +B.pG=A.cr("qY") +B.pH=A.cr("aj") +B.pI=A.cr("x") +B.pJ=A.cr("uP") +B.pK=A.cr("uQ") +B.pL=A.cr("uR") +B.pM=A.cr("df") +B.en=new A.jf(!1) +B.pN=new A.jf(!0) +B.cd=new A.cB(0,"word") +B.eo=new A.cB(1,"pipe") +B.ep=new A.cB(2,"and") +B.eq=new A.cB(3,"or") +B.er=new A.cB(4,"amp") +B.aB=new A.cB(5,"redirOut") +B.b8=new A.cB(6,"redirAppend") +B.ce=new A.cB(7,"redirIn") +B.b9=new A.cB(8,"redirMerge") +B.ba=new A.jH(0,"normal") +B.pQ=new A.jH(1,"esc") +B.pR=new A.jH(2,"csi") +B.pS=new A.hK("reaches root") +B.cf=new A.hK("below root") +B.cg=new A.hK("at root") +B.ch=new A.hK("above root") +B.Y=new A.hL("different") +B.Z=new A.hL("equal") +B.ag=new A.hL("inconclusive") +B.aq=new A.hL("within") +B.ci=new A.cF(0,"word") +B.es=new A.cF(1,"pipe") +B.et=new A.cF(2,"and") +B.eu=new A.cF(3,"or") +B.cj=new A.cF(4,"semicolon") +B.ck=new A.cF(5,"newline") +B.aC=new A.cF(6,"redirOut") +B.bb=new A.cF(7,"redirAppend") +B.bc=new A.cF(8,"redirMerge") +B.cl=new A.be(0,"word") +B.ev=new A.be(1,"pipe") +B.bd=new A.be(12,"redirMerge") +B.ew=new A.be(2,"and") +B.ex=new A.be(3,"or") +B.cp=new A.be(4,"semicolon") +B.cq=new A.be(5,"newline")})();(function staticFields(){$.vN=null +$.ca=A.e([],A.al("z")) +$.ze=null +$.rS=0 +$.hj=A.GL() +$.yE=null +$.yD=null +$.AY=null +$.AN=null +$.B8=null +$.wH=null +$.wV=null +$.yf=null +$.vY=A.e([],A.al("z?>")) +$.hV=null +$.k7=null +$.k8=null +$.y9=!1 +$.E=B.t +$.zD="" +$.zE=null +$.Co=A.e([B.eF,B.eD],t.vn) +$.An=null +$.wj=null})();(function lazyInitializers(){var s=hunkHelpers.lazyFinal,r=hunkHelpers.lazy +s($,"Jp","Bn",()=>A.AX("_$dart_dartClosure")) +s($,"Jo","o4",()=>A.AX("_$dart_dartClosure_dartJSInterop")) +s($,"K3","BR",()=>A.xN(0)) +s($,"Kn","C5",()=>B.t.i_(new A.wZ(),A.al("H<~>"))) +s($,"Kg","C1",()=>A.e([new J.li()],A.al("z"))) +s($,"JP","BE",()=>A.de(A.uO({ +toString:function(){return"$receiver$"}}))) +s($,"JQ","BF",()=>A.de(A.uO({$method$:null, +toString:function(){return"$receiver$"}}))) +s($,"JR","BG",()=>A.de(A.uO(null))) +s($,"JS","BH",()=>A.de(function(){var $argumentsExpr$="$arguments$" +try{null.$method$($argumentsExpr$)}catch(q){return q.message}}())) +s($,"JV","BK",()=>A.de(A.uO(void 0))) +s($,"JW","BL",()=>A.de(function(){var $argumentsExpr$="$arguments$" +try{(void 0).$method$($argumentsExpr$)}catch(q){return q.message}}())) +s($,"JU","BJ",()=>A.de(A.zz(null))) +s($,"JT","BI",()=>A.de(function(){try{null.$method$}catch(q){return q.message}}())) +s($,"JY","BN",()=>A.de(A.zz(void 0))) +s($,"JX","BM",()=>A.de(function(){try{(void 0).$method$}catch(q){return q.message}}())) +s($,"K0","ym",()=>A.Fj()) +s($,"Jx","fu",()=>$.C5()) +s($,"K9","BW",()=>A.xN(4096)) +s($,"K7","BU",()=>new A.w9().$0()) +s($,"K8","BV",()=>new A.w8().$0()) +s($,"K2","yn",()=>A.DS(A.c9(A.e([-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-2,-2,-2,-2,-2,62,-2,62,-2,63,52,53,54,55,56,57,58,59,60,61,-2,-2,-2,-1,-2,-2,-2,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-2,-2,-2,-2,63,-2,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-2,-2,-2,-2,-2],t.t)))) +s($,"K1","BQ",()=>A.xN(0)) +s($,"K6","BT",()=>A.O("^[\\-\\.0-9A-Z_a-z~]*$",!0)) +s($,"Jq","Bo",()=>A.O("^([+-]?\\d{4,6})-?(\\d\\d)-?(\\d\\d)(?:[ T](\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d+))?)?)?( ?[zZ]| ?([-+])(\\d\\d)(?::?(\\d\\d))?)?)?$",!0)) +s($,"Kb","fv",()=>A.i5(B.pI)) +s($,"JG","i7",()=>{A.Er() +return $.rS}) +s($,"JD","Bz",()=>{var q=new A.vM(new DataView(new ArrayBuffer(A.Gg(8)))) +q.lw() +return q}) +s($,"Kp","C7",()=>A.rB(new A.xo(),"Removes a leading directory path, keeping only the basename.","strip-directory")) +s($,"Kq","C8",()=>A.rB(new A.xp(),"Removes a trailing .exe/.cmd/.bat/.com/.ps1 extension.","strip-windows-extension")) +s($,"Ks","Ca",()=>A.rB(new A.xq(),"Removes a trailing version suffix from known interpreters.","strip-version-suffix")) +s($,"Ki","C3",()=>A.rB(new A.wy(),"Maps known aliases to their canonical command.","alias")) +s($,"Kk","xr",()=>A.cO(A.e([$.C7(),$.C8(),$.Ca(),$.C3()],A.al("z")),A.al("iU"))) +s($,"K5","BS",()=>A.O("[A-Za-z_]",!0)) +s($,"K4","yo",()=>A.O("[A-Za-z0-9_]",!0)) +s($,"Js","Bq",()=>A.O("^\\$\\{?HOME\\}?[\\\\/]?\\*?$",!0)) +s($,"Ju","Bs",()=>A.O("^%(USERPROFILE|SYSTEMROOT|HOMEPATH|WINDIR|SYSTEMDRIVE)%[\\\\/]?\\*?$",!1)) +s($,"Jt","Br",()=>A.O("^[A-Za-z]:[\\\\/]?\\*?$",!0)) +s($,"Jr","Bp",()=>A.O("^/dev/(sd|hd|vd|xvd|nvme|mmcblk|disk|loop|md|dm-)",!0)) +s($,"Jv","Bt",()=>A.O("(\\$\\{?[A-Za-z_][A-Za-z0-9_]*\\}?)|(\\$env:[A-Za-z_][A-Za-z0-9_]*)|(%[A-Za-z_][A-Za-z0-9_]*%)",!0)) +s($,"JC","By",()=>A.O("\\.\\.[\\\\/]",!0)) +s($,"JF","BA",()=>A.O("\\b(curl|wget|aria2c|fetch|iwr|irm|invoke-webrequest|invoke-restmethod|lftp|yt-dlp|youtube-dl|certutil|bitsadmin)\\b[^|]*\\|[^|]*\\b(bash|sh|zsh|dash|ksh|fish|python|node|ruby|perl|php|deno|pwsh|powershell|cmd)\\b",!1)) +s($,"Jl","Bk",()=>A.O("^[\\w!#%&'*+\\-.^`|~]+$",!0)) +s($,"Ka","BX",()=>A.O('["\\x00-\\x1F\\x7F]',!0)) +s($,"Kr","C9",()=>A.O('[^()<>@,;:"\\\\/[\\]?={} \\t\\x00-\\x1F\\x7F]+',!0)) +s($,"Kd","BZ",()=>A.O("(?:\\r\\n)?[ \\t]+",!0)) +s($,"Kf","C0",()=>A.O('"(?:[^"\\x00-\\x1F\\x7F\\\\]|\\\\.)*"',!0)) +s($,"Ke","C_",()=>A.O("\\\\(.)",!0)) +s($,"Km","C4",()=>A.O('[()<>@,;:"\\\\/\\[\\]?={} \\t\\x00-\\x1F\\x7F]',!0)) +s($,"Kt","Cb",()=>A.O("(?:"+$.BZ().a+")*",!0)) +s($,"Jk","bh",()=>A.EQ(27)) +s($,"Kh","C2",()=>A.O("[|&;<>`]|\\$\\(",!0)) +s($,"Jn","Bm",()=>A.O("\\x1b\\[[0-?]*[ -/]*[@-~]|\\x1b\\][^\\x07\\x1b]*(?:\\x07|\\x1b\\\\)",!0)) +s($,"Kc","BY",()=>A.O("^@@ -\\d+(?:,\\d+)? \\+(\\d+)(?:,(\\d+))? @@",!0)) +s($,"JM","BB",()=>A.O("\\x1B\\[[0-9;?]*[ -/]*[@-~]",!0)) +s($,"JN","BC",()=>A.O("\\x1B\\][^\\x07\\x1B]*(?:\\x07|\\x1B\\\\)",!0)) +s($,"JO","BD",()=>A.O("[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F]",!0)) +s($,"Jy","Bv",()=>A.e([new A.ng(),new A.nj(),new A.nT(),new A.ns(),new A.mW(),new A.nh(),new A.nr(),new A.n3(),new A.nx(),new A.no(),new A.nu(),new A.nH(),new A.nG(),new A.na(),new A.n4(),new A.ne()],A.al("z"))) +s($,"JA","Bw",()=>A.O("^[A-Za-z0-9_.-]+$",!0)) +s($,"JB","Bx",()=>A.O("^[A-Za-z0-9_-]+$",!0)) +s($,"Jw","Bu",()=>A.G(["hello",A.HC(),"auth.request",A.Hp(),"auth.ok",A.Ho(),"auth.fail",A.Hn(),"node.register",A.HS(),"node.registered",A.HT(),"node.capabilities",A.HH(),"node.heartbeat",A.HP(),"node.heartbeat.ack",A.HO(),"ping",A.I3(),"pong",A.I4(),"node.list.request",A.HQ(),"node.list.response",A.HR(),"session.open",A.I8(),"session.opened",A.I9(),"session.rejected",A.Ia(),"node.session.open",A.HW(),"node.session.opened",A.HX(),"node.session.rejected",A.HY(),"channel.resize",A.Ht(),"channel.signal",A.Hu(),"channel.eof",A.Hr(),"channel.exit",A.Hs(),"channel.close",A.Hq(),"channel.window",A.Hv(),"error",A.I5(),"session.detach.request",A.I6(),"node.session.detach",A.HU(),"node.session.detached",A.HV(),"session.detached",A.I7(),"sessions.list.request",A.Hy(),"node.sessions.list.request",A.HK(),"node.sessions.list.response",A.HL(),"sessions.list.response",A.Hz(),"sessions.kill.request",A.Hw(),"node.sessions.kill.request",A.HI(),"node.sessions.kill.response",A.HJ(),"sessions.kill.response",A.Hx(),"sessions.detach.request",A.Hj(),"node.sessions.detach.request",A.HG(),"node.sessions.detach.response",A.HF(),"sessions.detach.response",A.Hk(),"sessions.screen.request",A.Ib(),"node.sessions.screen.request",A.HZ(),"node.sessions.screen.response",A.I_(),"sessions.screen.response",A.Ic(),"drive.credential.request",A.HA(),"node.drive.credential.request",A.HM(),"node.drive.credential.response",A.HN(),"drive.credential.response",A.HB(),"tunnel.open.request",A.Ih(),"tunnel.opened",A.Ii(),"tunnel.rejected",A.Ij(),"tunnel.close.request",A.Id(),"tunnel.close.response",A.Ie(),"tunnel.list.request",A.If(),"tunnel.list.response",A.Ig(),"node.tunnel.connect",A.I1(),"node.tunnel.connected",A.I2(),"node.tunnel.connect.failed",A.I0(),"ai.config.request",A.Hl(),"ai.config.response",A.Hm(),"http.proxy.request",A.HD(),"http.proxy.response",A.HE()],t.N,t.eR)) +s($,"Ko","C6",()=>{var q=$.yl() +return new A.kO(q,".")}) +s($,"Kj","b3",()=>new A.kO($.yk(),null)) +s($,"JJ","yl",()=>new A.m1(A.O("/",!0),A.O("[^/]$",!0),A.O("^/",!0))) +s($,"JL","o5",()=>new A.mP(A.O("[/\\\\]",!0),A.O("[^/\\\\]$",!0),A.O("^(\\\\\\\\[^\\\\]+\\\\[^\\\\/]+|[a-zA-Z]:[/\\\\])",!0),A.O("^[/\\\\](?![/\\\\])",!0))) +s($,"JK","ka",()=>new A.mI(A.O("/",!0),A.O("(^[a-zA-Z][-+.a-zA-Z\\d]*://|[^/])$",!0),A.O("[a-zA-Z][-+.a-zA-Z\\d]*://[^/]*",!0),A.O("^/",!0))) +s($,"JI","yk",()=>A.ET()) +r($,"K_","BP",()=>new A.pt()) +s($,"JZ","BO",()=>{var q,p=J.yX(256,t.N) +for(q=0;q<256;++q)p[q]=B.a.d5(B.c.i4(q,16),2,"0") +return p}) +s($,"Jm","Bl",()=>$.Bz())})();(function nativeSupport(){!function(){var s=function(a){var m={} +m[a]=1 +return Object.keys(hunkHelpers.convertToFastObject(m))[0]} +v.getIsolateTag=function(a){return s("___dart_"+a+v.isolateTag)} +var r="___dart_isolate_tags_" +var q=Object[r]||(Object[r]=Object.create(null)) +var p="_ZxYxX" +for(var o=0;;o++){var n=s(p+"_"+o+"_") +if(!(n in q)){q[n]=1 +v.isolateTag=n +break}}v.dispatchPropertyName=v.getIsolateTag("dispatch_record")}() +hunkHelpers.setOrUpdateInterceptorsByTag({SharedArrayBuffer:A.dG,ArrayBuffer:A.fZ,ArrayBufferView:A.iP,DataView:A.iN,Float32Array:A.lF,Float64Array:A.lG,Int16Array:A.lH,Int32Array:A.lI,Int8Array:A.lJ,Uint16Array:A.lK,Uint32Array:A.iQ,Uint8ClampedArray:A.iR,CanvasPixelArray:A.iR,Uint8Array:A.eA}) +hunkHelpers.setOrUpdateLeafTags({SharedArrayBuffer:true,ArrayBuffer:true,ArrayBufferView:false,DataView:true,Float32Array:true,Float64Array:true,Int16Array:true,Int32Array:true,Int8Array:true,Uint16Array:true,Uint32Array:true,Uint8ClampedArray:true,CanvasPixelArray:true,Uint8Array:false}) +A.bn.$nativeSuperclassTag="ArrayBufferView" +A.jD.$nativeSuperclassTag="ArrayBufferView" +A.jE.$nativeSuperclassTag="ArrayBufferView" +A.iO.$nativeSuperclassTag="ArrayBufferView" +A.jF.$nativeSuperclassTag="ArrayBufferView" +A.jG.$nativeSuperclassTag="ArrayBufferView" +A.c3.$nativeSuperclassTag="ArrayBufferView"})() +Function.prototype.$0=function(){return this()} +Function.prototype.$1=function(a){return this(a)} +Function.prototype.$2=function(a,b){return this(a,b)} +Function.prototype.$3=function(a,b,c){return this(a,b,c)} +Function.prototype.$4=function(a,b,c,d){return this(a,b,c,d)} +Function.prototype.$1$1=function(a){return this(a)} +Function.prototype.$2$0=function(){return this()} +Function.prototype.$2$1=function(a){return this(a)} +Function.prototype.$1$0=function(){return this()} +Function.prototype.$1$2=function(a,b){return this(a,b)} +convertAllToFastObject(w) +convertToFastObject($);(function(a){if(typeof document==="undefined"){a(null) +return}if(typeof document.currentScript!="undefined"){a(document.currentScript) +return}var s=document.scripts +function onLoad(b){for(var q=0;q { + event.waitUntil( + caches.open(CACHE_VERSION).then((cache) => + // Cache shell entries best-effort: a single missing file must not abort + // the whole install. + Promise.allSettled(SHELL.map((url) => cache.add(url))) + ).then(() => self.skipWaiting()) + ); +}); + +self.addEventListener('activate', (event) => { + event.waitUntil( + caches.keys().then((keys) => + Promise.all( + keys.filter((k) => k !== CACHE_VERSION).map((k) => caches.delete(k)) + ) + ).then(() => self.clients.claim()) + ); +}); + +async function networkFirst(request) { + const cache = await caches.open(CACHE_VERSION); + try { + const response = await fetch(request); + if (response && response.ok) cache.put(request, response.clone()); + return response; + } catch (err) { + const cached = await cache.match(request); + if (cached) return cached; + if (request.mode === 'navigate') { + const shell = await cache.match('./'); + if (shell) return shell; + } + throw err; + } +} + +async function cacheFirst(request) { + const cache = await caches.open(CACHE_VERSION); + const cached = await cache.match(request); + if (cached) return cached; + const response = await fetch(request); + // Cache successful or opaque (cross-origin no-cors) responses. + if (response && (response.ok || response.type === 'opaque')) { + cache.put(request, response.clone()); + } + return response; +} + +self.addEventListener('fetch', (event) => { + const request = event.request; + if (request.method !== 'GET') return; + + const url = new URL(request.url); + const sameOrigin = url.origin === self.location.origin; + + if (request.mode === 'navigate' || sameOrigin) { + event.respondWith(networkFirst(request)); + } else { + event.respondWith(cacheFirst(request)); + } +}); diff --git a/build/web/terminal.css b/build/web/terminal.css new file mode 100644 index 0000000..65f1c70 --- /dev/null +++ b/build/web/terminal.css @@ -0,0 +1,239 @@ +/* OmnyGrid web terminal — the chrome around an xterm.js surface: the card, the + * on-screen key bar, fullscreen, and the soft-keyboard insets. + * + * Shipped by `package:omnyshell_web` and installed with + * `dart run omnyshell_web:copy_assets`. Requires `kit.css` (design tokens) and + * xterm's own `vendor/xterm/xterm.min.css`. + * + * The `--vvh` / `--kb` custom properties and the `.keyboard-open` class this + * file keys off are set by `boot.js`. */ + +/* Tighten the terminal screen: no extra gap between the toolbar and the + terminal (the generic toolbar margin would otherwise stack with the column + gap and waste vertical space). */ +.terminal-screen { gap: 8px; } +.terminal-screen .toolbar { margin-bottom: 0; } + +/* The terminal screen's toolbar carries several controls (Sessions, Fullscreen, + Detach, Terminate); keep its buttons compact and let the title shrink so the + whole row fits a phone width. */ +.terminal-screen .toolbar { gap: 8px; } +.terminal-screen .toolbar h1 { + font-size: 1rem; + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.terminal-screen .toolbar button { padding: 6px 10px; font-size: 0.85rem; } + +/* Terminal */ +.terminal-card { padding: 8px; background: #0b0e12; } +.terminal-host { + width: 100%; + /* dvh so the terminal shrinks (rather than hiding under) the soft keyboard; + vh fallback for browsers without dvh, and a min-height floor so the fit + addon always has a measurable, non-zero container. */ + height: 60vh; + height: 60dvh; + min-height: 260px; + max-height: 600px; +} +.terminal-host .xterm { height: 100%; } +/* The terminal palette is dark; in the light theme invert it so it reads as a + light terminal instead of a dark box on a light page. The card frame is + painted to match the terminal background, so set it to the inverted+hue- + rotated colour (#eff2f6) — otherwise a dark border rings the inverted box. */ +[data-theme="light"] .terminal-host { filter: invert(1) hue-rotate(180deg); } +[data-theme="light"] .terminal-card { background: #eff2f6; } + +/* On-screen accessory key bar (touch devices lack Esc/Tab/Ctrl/arrows). */ +.term-accessory { + display: flex; + gap: 6px; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + padding: 8px; + padding-bottom: calc(8px + env(safe-area-inset-bottom)); + background: var(--bg-elevated); + border: 1px solid var(--border); + border-radius: var(--radius); +} +.term-accessory button { + flex: 0 0 auto; + /* Sized via --term-key-scale (set per session from the terminal font) so the + keys shrink/grow with the text; defaults to 1 = the original sizing. */ + min-width: calc(44px * var(--term-key-scale, 1)); + min-height: calc(40px * var(--term-key-scale, 1)); + padding: calc(8px * var(--term-key-scale, 1)) calc(12px * var(--term-key-scale, 1)); + font-size: calc(0.9rem * var(--term-key-scale, 1)); +} +.term-accessory button.active { + background: var(--accent); + color: var(--accent-fg); + border-color: var(--accent); +} +/* The last-used quick key and the `Ctrl ▾` trigger read as one segmented + control: joined edges, a single shared divider, only the outer corners + rounded. */ +.term-ctrl-group { display: inline-flex; flex: 0 0 auto; } +.term-ctrl-group > button { border-radius: 0; position: relative; } +.term-ctrl-group > button:first-child { + border-top-left-radius: var(--radius); + border-bottom-left-radius: var(--radius); +} +.term-ctrl-group > button:last-child { + border-top-right-radius: var(--radius); + border-bottom-right-radius: var(--radius); + margin-left: -1px; /* collapse the shared border into one divider */ +} +/* Raise the focused/hovered/armed edge so its border sits above the overlap. */ +.term-ctrl-group > button:hover, +.term-ctrl-group > button:focus, +.term-ctrl-group > button.active { z-index: 1; } + +/* The Ctrl button carries a caret to signal it opens a menu. */ +.term-accessory button.has-menu::after { + content: '▾'; + margin-left: 4px; + font-size: 0.8em; + opacity: 0.7; +} + +/* Ctrl combinations popup, anchored above the Ctrl button (positioned in JS). */ +.ctrl-menu { + z-index: 45; + display: flex; + flex-direction: column; + gap: 8px; + padding: 8px; + max-width: calc(100vw - 16px); + background: var(--bg-elevated); + border: 1px solid var(--border); + border-radius: var(--radius); + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4); +} +.ctrl-menu-grid { + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: 6px; +} +.ctrl-menu-item { min-width: 40px; min-height: 36px; padding: 6px 8px; } +.ctrl-menu-custom { display: flex; align-items: center; gap: 6px; } +.ctrl-menu-label { opacity: 0.8; } +.ctrl-custom-input { + width: 44px; + text-align: center; + text-transform: uppercase; +} +.ctrl-menu-sep { height: 1px; background: var(--border); margin: 2px 0; } +.ctrl-menu-arm { width: 100%; } + +/* Terminal screen: lock the page to the viewport so only the terminal's own + content scrolls — no body/page scroll or mobile rubber-banding. The terminal + card flexes to fill the space below the toolbar, and xterm's viewport handles + scrollback. Scoped to `.terminal-active` so other screens scroll normally. */ +html.terminal-active { height: 100%; overflow: hidden; overscroll-behavior: none; } +/* Anchor the app to the *visible* viewport, not the layout viewport: on iOS + `height: 100%` is the layout viewport, which is taller than the visible area + (Safari's bottom toolbar), so the key bar/last row would fall below the edge + with no scroll to reach them. --vvh (visualViewport) is exact; 100dvh is the + CSS fallback that already accounts for the dynamic toolbars. */ +html.terminal-active body { + height: var(--vvh, 100dvh); + overflow: hidden; + overscroll-behavior: none; +} +html.terminal-active #app { height: 100%; min-height: 0; } +html.terminal-active .app-main { + flex: 1; + min-height: 0; + overflow: hidden; +} +/* Fill the available height ONLY when the screen is in normal (in-flow) layout. + In fullscreen / keyboard-open it is `position: fixed` and sized by inset + + `bottom: var(--kb)`; setting `height: 100%` there would over-constrain the box + (top + height wins, so the keyboard `bottom` lift is ignored) and on iOS a + fixed `height: 100%` resolves taller than the visible viewport. */ +html.terminal-active:not(.term-fullscreen):not(.keyboard-open) .terminal-screen { + height: 100%; + min-height: 0; +} +html.terminal-active .terminal-card { flex: 1; min-height: 0; } +html.terminal-active .terminal-host { height: 100%; min-height: 0; max-height: none; } +/* The terminal's definite height (viewport − header/toolbar − key bar) is applied + inline by the screen controller (overriding the 100% above), and cleared in + fullscreen / while the keyboard is open so the fixed-layout CSS sizes it. The + 100% here is only the pre-script fallback. */ +/* Keep scroll chaining inside the terminal even at the scrollback ends. */ +.terminal-host .xterm-viewport { overscroll-behavior: contain; } + +/* Fullscreen terminal: fill the whole window, hide app chrome. */ +.term-fullscreen .app-header { display: none; } +.term-fullscreen .app-main { max-width: none; padding: 0; } + +/* Bind the terminal to the *visual* viewport — the area above the on-screen + keyboard — in fullscreen, and whenever the soft keyboard is open in any mode. + The keyboard overlays content (it doesn't shrink the layout viewport), so + without this the accessory key bar and the prompt sit hidden behind it. As a + fixed, --vvh-tall flex column [toolbar, terminal(flex:1), accessory], the key + bar lands just above the keyboard and the terminal (re-fit from Dart on + visualViewport resize) keeps its prompt row visible. --vvh is set by boot.js; + it falls back to the full dynamic viewport when there's no keyboard. */ +.term-fullscreen .terminal-screen, +.keyboard-open .terminal-screen { + position: fixed; + /* Pin to the layout viewport, then raise the bottom edge above the keyboard + by its measured inset (--kb, 0 when closed). On iOS `position: fixed` + resolves against the layout viewport — which the keyboard does NOT shrink — + so lifting `bottom` is far more reliable than sizing by visual height. */ + inset: 0; + bottom: var(--kb, 0px); + z-index: 40; + gap: 0; + background: #0b0e12; +} +/* Hide the screen toolbar (Sessions / Detach / Terminate / toggle) in + fullscreen. With just the keyboard open it stays, so its controls remain + reachable while typing. */ +.term-fullscreen .terminal-screen > .toolbar { display: none; } + +.term-fullscreen .terminal-card, +.keyboard-open .terminal-card { + flex: 1; + border: 0; + border-radius: 0; + padding: 4px; + padding-top: calc(4px + env(safe-area-inset-top)); +} +.term-fullscreen .terminal-host, +.keyboard-open .terminal-host { + height: 100%; + min-height: 0; + max-height: none; +} +.term-fullscreen .term-accessory, +.keyboard-open .term-accessory { border-radius: 0; } +/* The keyboard already covers the home-indicator inset, so drop the extra + bottom padding that would otherwise lift the key bar away from it. */ +.keyboard-open .term-accessory { padding-bottom: 8px; } + +/* Floating exit button — only shown in fullscreen. */ +.term-exit-fullscreen { display: none; } +.term-fullscreen .term-exit-fullscreen { + display: inline-flex; + position: fixed; + top: calc(8px + env(safe-area-inset-top)); + right: calc(8px + env(safe-area-inset-right)); + z-index: 41; + opacity: 0.85; +} + +@media (max-width: 640px) { + /* Terminal toolbar stays compact and wraps instead of overflowing; the + spacer is dropped so the controls pack tightly across the row. */ + .terminal-screen .toolbar { flex-wrap: wrap; gap: 6px; } + .terminal-screen .toolbar .grow { display: none; } + .terminal-screen .toolbar button { padding: 6px 9px; font-size: 0.8rem; } + .terminal-screen .toolbar h1 { font-size: 0.9rem; } +} diff --git a/build/web/vendor/xterm/addon-fit.min.js b/build/web/vendor/xterm/addon-fit.min.js new file mode 100644 index 0000000..9f4e48c --- /dev/null +++ b/build/web/vendor/xterm/addon-fit.min.js @@ -0,0 +1,8 @@ +/** + * Skipped minification because the original files appears to be already minified. + * Original file: /npm/@xterm/addon-fit@0.10.0/lib/addon-fit.js + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FitAddon=t():e.FitAddon=t()}(self,(()=>(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.FitAddon=void 0,t.FitAddon=class{activate(e){this._terminal=e}dispose(){}fit(){const e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;const t=this._terminal._core;this._terminal.rows===e.rows&&this._terminal.cols===e.cols||(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal)return;if(!this._terminal.element||!this._terminal.element.parentElement)return;const e=this._terminal._core,t=e._renderService.dimensions;if(0===t.css.cell.width||0===t.css.cell.height)return;const r=0===this._terminal.options.scrollback?0:e.viewport.scrollBarWidth,i=window.getComputedStyle(this._terminal.element.parentElement),o=parseInt(i.getPropertyValue("height")),s=Math.max(0,parseInt(i.getPropertyValue("width"))),n=window.getComputedStyle(this._terminal.element),l=o-(parseInt(n.getPropertyValue("padding-top"))+parseInt(n.getPropertyValue("padding-bottom"))),a=s-(parseInt(n.getPropertyValue("padding-right"))+parseInt(n.getPropertyValue("padding-left")))-r;return{cols:Math.max(2,Math.floor(a/t.css.cell.width)),rows:Math.max(1,Math.floor(l/t.css.cell.height))}}}})(),e})())); +//# sourceMappingURL=addon-fit.js.map \ No newline at end of file diff --git a/build/web/vendor/xterm/xterm.min.css b/build/web/vendor/xterm/xterm.min.css new file mode 100644 index 0000000..aced1fa --- /dev/null +++ b/build/web/vendor/xterm/xterm.min.css @@ -0,0 +1,8 @@ +/** + * Minified by jsDelivr using clean-css v5.3.3. + * Original file: /npm/@xterm/xterm@5.5.0/css/xterm.css + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:0}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm .xterm-cursor-pointer,.xterm.xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:transparent}.xterm .xterm-accessibility-tree{user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative} +/*# sourceMappingURL=/sm/97377c0c258e109358121823f5790146c714989366481f90e554c42277efb500.map */ \ No newline at end of file diff --git a/build/web/vendor/xterm/xterm.min.js b/build/web/vendor/xterm/xterm.min.js new file mode 100644 index 0000000..0a51bfb --- /dev/null +++ b/build/web/vendor/xterm/xterm.min.js @@ -0,0 +1,8 @@ +/** + * Skipped minification because the original files appears to be already minified. + * Original file: /npm/@xterm/xterm@5.5.0/lib/xterm.js + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i=t();for(var s in i)("object"==typeof exports?exports:e)[s]=i[s]}}(globalThis,(()=>(()=>{"use strict";var e={4567:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AccessibilityManager=void 0;const n=i(9042),o=i(9924),a=i(844),h=i(4725),c=i(2585),l=i(3656);let d=t.AccessibilityManager=class extends a.Disposable{constructor(e,t,i,s){super(),this._terminal=e,this._coreBrowserService=i,this._renderService=s,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="",this._accessibilityContainer=this._coreBrowserService.mainDocument.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=this._coreBrowserService.mainDocument.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let e=0;ethis._handleBoundaryFocus(e,0),this._bottomBoundaryFocusListener=e=>this._handleBoundaryFocus(e,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=this._coreBrowserService.mainDocument.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new o.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this.register(this._terminal.onResize((e=>this._handleResize(e.rows)))),this.register(this._terminal.onRender((e=>this._refreshRows(e.start,e.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((e=>this._handleChar(e)))),this.register(this._terminal.onLineFeed((()=>this._handleChar("\n")))),this.register(this._terminal.onA11yTab((e=>this._handleTab(e)))),this.register(this._terminal.onKey((e=>this._handleKey(e.key)))),this.register(this._terminal.onBlur((()=>this._clearLiveRegion()))),this.register(this._renderService.onDimensionsChange((()=>this._refreshRowsDimensions()))),this.register((0,l.addDisposableDomListener)(document,"selectionchange",(()=>this._handleSelectionChange()))),this.register(this._coreBrowserService.onDprChange((()=>this._refreshRowsDimensions()))),this._refreshRows(),this.register((0,a.toDisposable)((()=>{this._accessibilityContainer.remove(),this._rowElements.length=0})))}_handleTab(e){for(let t=0;t0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,"\n"===e&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=n.tooMuchOutput)))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0}_handleKey(e){this._clearLiveRegion(),/\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,t){this._liveRegionDebouncer.refresh(e,t,this._terminal.rows)}_renderRows(e,t){const i=this._terminal.buffer,s=i.lines.length.toString();for(let r=e;r<=t;r++){const e=i.lines.get(i.ydisp+r),t=[],n=e?.translateToString(!0,void 0,void 0,t)||"",o=(i.ydisp+r+1).toString(),a=this._rowElements[r];a&&(0===n.length?(a.innerText=" ",this._rowColumns.set(a,[0,1])):(a.textContent=n,this._rowColumns.set(a,t)),a.setAttribute("aria-posinset",o),a.setAttribute("aria-setsize",s))}this._announceCharacters()}_announceCharacters(){0!==this._charsToAnnounce.length&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(e,t){const i=e.target,s=this._rowElements[0===t?1:this._rowElements.length-2];if(i.getAttribute("aria-posinset")===(0===t?"1":`${this._terminal.buffer.lines.length}`))return;if(e.relatedTarget!==s)return;let r,n;if(0===t?(r=i,n=this._rowElements.pop(),this._rowContainer.removeChild(n)):(r=this._rowElements.shift(),n=i,this._rowContainer.removeChild(r)),r.removeEventListener("focus",this._topBoundaryFocusListener),n.removeEventListener("focus",this._bottomBoundaryFocusListener),0===t){const e=this._createAccessibilityTreeNode();this._rowElements.unshift(e),this._rowContainer.insertAdjacentElement("afterbegin",e)}else{const e=this._createAccessibilityTreeNode();this._rowElements.push(e),this._rowContainer.appendChild(e)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(0===t?-1:1),this._rowElements[0===t?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleSelectionChange(){if(0===this._rowElements.length)return;const e=document.getSelection();if(!e)return;if(e.isCollapsed)return void(this._rowContainer.contains(e.anchorNode)&&this._terminal.clearSelection());if(!e.anchorNode||!e.focusNode)return void console.error("anchorNode and/or focusNode are null");let t={node:e.anchorNode,offset:e.anchorOffset},i={node:e.focusNode,offset:e.focusOffset};if((t.node.compareDocumentPosition(i.node)&Node.DOCUMENT_POSITION_PRECEDING||t.node===i.node&&t.offset>i.offset)&&([t,i]=[i,t]),t.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(t={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(t.node))return;const s=this._rowElements.slice(-1)[0];if(i.node.compareDocumentPosition(s)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(i={node:s,offset:s.textContent?.length??0}),!this._rowContainer.contains(i.node))return;const r=({node:e,offset:t})=>{const i=e instanceof Text?e.parentNode:e;let s=parseInt(i?.getAttribute("aria-posinset"),10)-1;if(isNaN(s))return console.warn("row is invalid. Race condition?"),null;const r=this._rowColumns.get(i);if(!r)return console.warn("columns is null. Race condition?"),null;let n=t=this._terminal.cols&&(++s,n=0),{row:s,column:n}},n=r(t),o=r(i);if(n&&o){if(n.row>o.row||n.row===o.row&&n.column>=o.column)throw new Error("invalid range");this._terminal.select(n.column,n.row,(o.row-n.row)*this._terminal.cols-n.column+o.column)}}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let e=this._rowContainer.children.length;ee;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){const e=this._coreBrowserService.mainDocument.createElement("div");return e.setAttribute("role","listitem"),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){this._accessibilityContainer.style.width=`${this._renderService.dimensions.css.canvas.width}px`,this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e{function i(e){return e.replace(/\r?\n/g,"\r")}function s(e,t){return t?"[200~"+e+"[201~":e}function r(e,t,r,n){e=s(e=i(e),r.decPrivateModes.bracketedPasteMode&&!0!==n.rawOptions.ignoreBracketedPasteMode),r.triggerDataEvent(e,!0),t.value=""}function n(e,t,i){const s=i.getBoundingClientRect(),r=e.clientX-s.left-10,n=e.clientY-s.top-10;t.style.width="20px",t.style.height="20px",t.style.left=`${r}px`,t.style.top=`${n}px`,t.style.zIndex="1000",t.focus()}Object.defineProperty(t,"__esModule",{value:!0}),t.rightClickHandler=t.moveTextAreaUnderMouseCursor=t.paste=t.handlePasteEvent=t.copyHandler=t.bracketTextForPaste=t.prepareTextForTerminal=void 0,t.prepareTextForTerminal=i,t.bracketTextForPaste=s,t.copyHandler=function(e,t){e.clipboardData&&e.clipboardData.setData("text/plain",t.selectionText),e.preventDefault()},t.handlePasteEvent=function(e,t,i,s){e.stopPropagation(),e.clipboardData&&r(e.clipboardData.getData("text/plain"),t,i,s)},t.paste=r,t.moveTextAreaUnderMouseCursor=n,t.rightClickHandler=function(e,t,i,s,r){n(e,t,i),r&&s.rightClickSelect(e),t.value=s.selectionText,t.select()}},7239:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorContrastCache=void 0;const s=i(1505);t.ColorContrastCache=class{constructor(){this._color=new s.TwoKeyMap,this._css=new s.TwoKeyMap}setCss(e,t,i){this._css.set(e,t,i)}getCss(e,t){return this._css.get(e,t)}setColor(e,t,i){this._color.set(e,t,i)}getColor(e,t){return this._color.get(e,t)}clear(){this._color.clear(),this._css.clear()}}},3656:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(e,t,i,s){e.addEventListener(t,i,s);let r=!1;return{dispose:()=>{r||(r=!0,e.removeEventListener(t,i,s))}}}},3551:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Linkifier=void 0;const n=i(3656),o=i(8460),a=i(844),h=i(2585),c=i(4725);let l=t.Linkifier=class extends a.Disposable{get currentLink(){return this._currentLink}constructor(e,t,i,s,r){super(),this._element=e,this._mouseService=t,this._renderService=i,this._bufferService=s,this._linkProviderService=r,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new o.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new o.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,a.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,a.toDisposable)((()=>{this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()}))),this.register(this._bufferService.onResize((()=>{this._clearCurrentLink(),this._wasResized=!0}))),this.register((0,n.addDisposableDomListener)(this._element,"mouseleave",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this.register((0,n.addDisposableDomListener)(this._element,"mousemove",this._handleMouseMove.bind(this))),this.register((0,n.addDisposableDomListener)(this._element,"mousedown",this._handleMouseDown.bind(this))),this.register((0,n.addDisposableDomListener)(this._element,"mouseup",this._handleMouseUp.bind(this)))}_handleMouseMove(e){this._lastMouseEvent=e;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!t)return;this._isMouseOut=!1;const i=e.composedPath();for(let e=0;e{e?.forEach((e=>{e.link.dispose&&e.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=e.y);let i=!1;for(const[s,r]of this._linkProviderService.linkProviders.entries())if(t){const t=this._activeProviderReplies?.get(s);t&&(i=this._checkLinkProviderResult(s,e,i))}else r.provideLinks(e.y,(t=>{if(this._isMouseOut)return;const r=t?.map((e=>({link:e})));this._activeProviderReplies?.set(s,r),i=this._checkLinkProviderResult(s,e,i),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)}))}_removeIntersectingLinks(e,t){const i=new Set;for(let s=0;se?this._bufferService.cols:s.link.range.end.x;for(let e=n;e<=o;e++){if(i.has(e)){r.splice(t--,1);break}i.add(e)}}}}_checkLinkProviderResult(e,t,i){if(!this._activeProviderReplies)return i;const s=this._activeProviderReplies.get(e);let r=!1;for(let t=0;tthis._linkAtPosition(e.link,t)));e&&(i=!0,this._handleNewLink(e))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!i)for(let e=0;ethis._linkAtPosition(e.link,t)));if(s){i=!0,this._handleNewLink(s);break}}return i}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._currentLink)return;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);t&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,t)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,t){this._currentLink&&this._lastMouseEvent&&(!e||!t||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=t)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,a.disposeArray)(this._linkCacheDisposables))}_handleNewLink(e){if(!this._lastMouseEvent)return;const t=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);t&&this._linkAtPosition(e.link,t)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:void 0===e.link.decorations||e.link.decorations.underline,pointerCursor:void 0===e.link.decorations||e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:e=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==e&&(this._currentLink.state.decorations.pointerCursor=e,this._currentLink.state.isHovered&&this._element.classList.toggle("xterm-cursor-pointer",e))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:t=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==t&&(this._currentLink.state.decorations.underline=t,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,t))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((e=>{if(!this._currentLink)return;const t=0===e.start?0:e.start+1+this._bufferService.buffer.ydisp,i=this._bufferService.buffer.ydisp+1+e.end;if(this._currentLink.link.range.start.y>=t&&this._currentLink.link.range.end.y<=i&&(this._clearCurrentLink(t,i),this._lastMouseEvent)){const e=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);e&&this._askForLink(e,!1)}}))))}_linkHover(e,t,i){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add("xterm-cursor-pointer")),t.hover&&t.hover(i,t.text)}_fireUnderlineEvent(e,t){const i=e.range,s=this._bufferService.buffer.ydisp,r=this._createLinkUnderlineEvent(i.start.x-1,i.start.y-s-1,i.end.x,i.end.y-s-1,void 0);(t?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(r)}_linkLeave(e,t,i){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove("xterm-cursor-pointer")),t.leave&&t.leave(i,t.text)}_linkAtPosition(e,t){const i=e.range.start.y*this._bufferService.cols+e.range.start.x,s=e.range.end.y*this._bufferService.cols+e.range.end.x,r=t.y*this._bufferService.cols+t.x;return i<=r&&r<=s}_positionFromMouseEvent(e,t,i){const s=i.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(s)return{x:s[0],y:s[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,i,s,r){return{x1:e,y1:t,x2:i,y2:s,cols:this._bufferService.cols,fg:r}}};t.Linkifier=l=s([r(1,c.IMouseService),r(2,c.IRenderService),r(3,h.IBufferService),r(4,c.ILinkProviderService)],l)},9042:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tooMuchOutput=t.promptLabel=void 0,t.promptLabel="Terminal input",t.tooMuchOutput="Too much output to announce, navigate to rows manually to read"},3730:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OscLinkProvider=void 0;const n=i(511),o=i(2585);let a=t.OscLinkProvider=class{constructor(e,t,i){this._bufferService=e,this._optionsService=t,this._oscLinkService=i}provideLinks(e,t){const i=this._bufferService.buffer.lines.get(e-1);if(!i)return void t(void 0);const s=[],r=this._optionsService.rawOptions.linkHandler,o=new n.CellData,a=i.getTrimmedLength();let c=-1,l=-1,d=!1;for(let t=0;tr?r.activate(e,t,n):h(0,t),hover:(e,t)=>r?.hover?.(e,t,n),leave:(e,t)=>r?.leave?.(e,t,n)})}d=!1,o.hasExtendedAttrs()&&o.extended.urlId?(l=t,c=o.extended.urlId):(l=-1,c=-1)}}t(s)}};function h(e,t){if(confirm(`Do you want to navigate to ${t}?\n\nWARNING: This link could potentially be dangerous`)){const e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn("Opening link blocked as opener could not be cleared")}}t.OscLinkProvider=a=s([r(0,o.IBufferService),r(1,o.IOptionsService),r(2,o.IOscLinkService)],a)},6193:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RenderDebouncer=void 0,t.RenderDebouncer=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(e){return this._refreshCallbacks.push(e),this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh()))),this._animationFrame}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._animationFrame=void 0,void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return void this._runRefreshCallbacks();const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(const e of this._refreshCallbacks)e(0);this._refreshCallbacks=[]}}},3236:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Terminal=void 0;const s=i(3614),r=i(3656),n=i(3551),o=i(9042),a=i(3730),h=i(1680),c=i(3107),l=i(5744),d=i(2950),_=i(1296),u=i(428),f=i(4269),v=i(5114),p=i(8934),g=i(3230),m=i(9312),S=i(4725),C=i(6731),b=i(8055),w=i(8969),y=i(8460),E=i(844),k=i(6114),L=i(8437),D=i(2584),R=i(7399),x=i(5941),A=i(9074),B=i(2585),T=i(5435),M=i(4567),O=i(779);class P extends w.CoreTerminal{get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}constructor(e={}){super(e),this.browser=k,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this.register(new E.MutableDisposable),this._onCursorMove=this.register(new y.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this.register(new y.EventEmitter),this.onKey=this._onKey.event,this._onRender=this.register(new y.EventEmitter),this.onRender=this._onRender.event,this._onSelectionChange=this.register(new y.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this.register(new y.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this.register(new y.EventEmitter),this.onBell=this._onBell.event,this._onFocus=this.register(new y.EventEmitter),this._onBlur=this.register(new y.EventEmitter),this._onA11yCharEmitter=this.register(new y.EventEmitter),this._onA11yTabEmitter=this.register(new y.EventEmitter),this._onWillOpen=this.register(new y.EventEmitter),this._setup(),this._decorationService=this._instantiationService.createInstance(A.DecorationService),this._instantiationService.setService(B.IDecorationService,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(O.LinkProviderService),this._instantiationService.setService(S.ILinkProviderService,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(a.OscLinkProvider)),this.register(this._inputHandler.onRequestBell((()=>this._onBell.fire()))),this.register(this._inputHandler.onRequestRefreshRows(((e,t)=>this.refresh(e,t)))),this.register(this._inputHandler.onRequestSendFocus((()=>this._reportFocus()))),this.register(this._inputHandler.onRequestReset((()=>this.reset()))),this.register(this._inputHandler.onRequestWindowsOptionsReport((e=>this._reportWindowsOptions(e)))),this.register(this._inputHandler.onColor((e=>this._handleColorEvent(e)))),this.register((0,y.forwardEvent)(this._inputHandler.onCursorMove,this._onCursorMove)),this.register((0,y.forwardEvent)(this._inputHandler.onTitleChange,this._onTitleChange)),this.register((0,y.forwardEvent)(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this.register((0,y.forwardEvent)(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this.register(this._bufferService.onResize((e=>this._afterResize(e.cols,e.rows)))),this.register((0,E.toDisposable)((()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)})))}_handleColorEvent(e){if(this._themeService)for(const t of e){let e,i="";switch(t.index){case 256:e="foreground",i="10";break;case 257:e="background",i="11";break;case 258:e="cursor",i="12";break;default:e="ansi",i="4;"+t.index}switch(t.type){case 0:const s=b.color.toColorRGB("ansi"===e?this._themeService.colors.ansi[t.index]:this._themeService.colors[e]);this.coreService.triggerDataEvent(`${D.C0.ESC}]${i};${(0,x.toRgbString)(s)}${D.C1_ESCAPED.ST}`);break;case 1:if("ansi"===e)this._themeService.modifyColors((e=>e.ansi[t.index]=b.channels.toColor(...t.color)));else{const i=e;this._themeService.modifyColors((e=>e[i]=b.channels.toColor(...t.color)))}break;case 2:this._themeService.restoreColor(t.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(e){e?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(M.AccessibilityManager,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(D.C0.ESC+"[I"),this.element.classList.add("focus"),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(D.C0.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;const e=this.buffer.ybase+this.buffer.y,t=this.buffer.lines.get(e);if(!t)return;const i=Math.min(this.buffer.x,this.cols-1),s=this._renderService.dimensions.css.cell.height,r=t.getWidth(i),n=this._renderService.dimensions.css.cell.width*r,o=this.buffer.y*this._renderService.dimensions.css.cell.height,a=i*this._renderService.dimensions.css.cell.width;this.textarea.style.left=a+"px",this.textarea.style.top=o+"px",this.textarea.style.width=n+"px",this.textarea.style.height=s+"px",this.textarea.style.lineHeight=s+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this.register((0,r.addDisposableDomListener)(this.element,"copy",(e=>{this.hasSelection()&&(0,s.copyHandler)(e,this._selectionService)})));const e=e=>(0,s.handlePasteEvent)(e,this.textarea,this.coreService,this.optionsService);this.register((0,r.addDisposableDomListener)(this.textarea,"paste",e)),this.register((0,r.addDisposableDomListener)(this.element,"paste",e)),k.isFirefox?this.register((0,r.addDisposableDomListener)(this.element,"mousedown",(e=>{2===e.button&&(0,s.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))):this.register((0,r.addDisposableDomListener)(this.element,"contextmenu",(e=>{(0,s.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))),k.isLinux&&this.register((0,r.addDisposableDomListener)(this.element,"auxclick",(e=>{1===e.button&&(0,s.moveTextAreaUnderMouseCursor)(e,this.textarea,this.screenElement)})))}_bindKeys(){this.register((0,r.addDisposableDomListener)(this.textarea,"keyup",(e=>this._keyUp(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,"keydown",(e=>this._keyDown(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,"keypress",(e=>this._keyPress(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,"compositionstart",(()=>this._compositionHelper.compositionstart()))),this.register((0,r.addDisposableDomListener)(this.textarea,"compositionupdate",(e=>this._compositionHelper.compositionupdate(e)))),this.register((0,r.addDisposableDomListener)(this.textarea,"compositionend",(()=>this._compositionHelper.compositionend()))),this.register((0,r.addDisposableDomListener)(this.textarea,"input",(e=>this._inputEvent(e)),!0)),this.register(this.onRender((()=>this._compositionHelper.updateCompositionElements())))}open(e){if(!e)throw new Error("Terminal requires a parent element.");if(e.isConnected||this._logService.debug("Terminal.open was called on an element that was not attached to the DOM"),this.element?.ownerDocument.defaultView&&this._coreBrowserService)return void(this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView));this._document=e.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),e.appendChild(this.element);const t=this._document.createDocumentFragment();this._viewportElement=this._document.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),t.appendChild(this._viewportElement),this._viewportScrollArea=this._document.createElement("div"),this._viewportScrollArea.classList.add("xterm-scroll-area"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=this._document.createElement("div"),this.screenElement.classList.add("xterm-screen"),this.register((0,r.addDisposableDomListener)(this.screenElement,"mousemove",(e=>this.updateCursorStyle(e)))),this._helperContainer=this._document.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),t.appendChild(this.screenElement),this.textarea=this._document.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",o.promptLabel),k.isChromeOS||this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this._coreBrowserService=this.register(this._instantiationService.createInstance(v.CoreBrowserService,this.textarea,e.ownerDocument.defaultView??window,this._document??"undefined"!=typeof window?window.document:null)),this._instantiationService.setService(S.ICoreBrowserService,this._coreBrowserService),this.register((0,r.addDisposableDomListener)(this.textarea,"focus",(e=>this._handleTextAreaFocus(e)))),this.register((0,r.addDisposableDomListener)(this.textarea,"blur",(()=>this._handleTextAreaBlur()))),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(u.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(S.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(C.ThemeService),this._instantiationService.setService(S.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(f.CharacterJoinerService),this._instantiationService.setService(S.ICharacterJoinerService,this._characterJoinerService),this._renderService=this.register(this._instantiationService.createInstance(g.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(S.IRenderService,this._renderService),this.register(this._renderService.onRenderedViewportChange((e=>this._onRender.fire(e)))),this.onResize((e=>this._renderService.resize(e.cols,e.rows))),this._compositionView=this._document.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(d.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(p.MouseService),this._instantiationService.setService(S.IMouseService,this._mouseService),this.linkifier=this.register(this._instantiationService.createInstance(n.Linkifier,this.screenElement)),this.element.appendChild(t);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this.viewport=this._instantiationService.createInstance(h.Viewport,this._viewportElement,this._viewportScrollArea),this.viewport.onRequestScrollLines((e=>this.scrollLines(e.amount,e.suppressScrollEvent,1))),this.register(this._inputHandler.onRequestSyncScrollBar((()=>this.viewport.syncScrollArea()))),this.register(this.viewport),this.register(this.onCursorMove((()=>{this._renderService.handleCursorMove(),this._syncTextArea()}))),this.register(this.onResize((()=>this._renderService.handleResize(this.cols,this.rows)))),this.register(this.onBlur((()=>this._renderService.handleBlur()))),this.register(this.onFocus((()=>this._renderService.handleFocus()))),this.register(this._renderService.onDimensionsChange((()=>this.viewport.syncScrollArea()))),this._selectionService=this.register(this._instantiationService.createInstance(m.SelectionService,this.element,this.screenElement,this.linkifier)),this._instantiationService.setService(S.ISelectionService,this._selectionService),this.register(this._selectionService.onRequestScrollLines((e=>this.scrollLines(e.amount,e.suppressScrollEvent)))),this.register(this._selectionService.onSelectionChange((()=>this._onSelectionChange.fire()))),this.register(this._selectionService.onRequestRedraw((e=>this._renderService.handleSelectionChanged(e.start,e.end,e.columnSelectMode)))),this.register(this._selectionService.onLinuxMouseSelection((e=>{this.textarea.value=e,this.textarea.focus(),this.textarea.select()}))),this.register(this._onScroll.event((e=>{this.viewport.syncScrollArea(),this._selectionService.refresh()}))),this.register((0,r.addDisposableDomListener)(this._viewportElement,"scroll",(()=>this._selectionService.refresh()))),this.register(this._instantiationService.createInstance(c.BufferDecorationRenderer,this.screenElement)),this.register((0,r.addDisposableDomListener)(this.element,"mousedown",(e=>this._selectionService.handleMouseDown(e)))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(M.AccessibilityManager,this)),this.register(this.optionsService.onSpecificOptionChange("screenReaderMode",(e=>this._handleScreenReaderModeOptionChange(e)))),this.options.overviewRulerWidth&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(l.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRulerWidth",(e=>{!this._overviewRulerRenderer&&e&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(l.OverviewRulerRenderer,this._viewportElement,this.screenElement)))})),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(_.DomRenderer,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){const e=this,t=this.element;function i(t){const i=e._mouseService.getMouseReportCoords(t,e.screenElement);if(!i)return!1;let s,r;switch(t.overrideType||t.type){case"mousemove":r=32,void 0===t.buttons?(s=3,void 0!==t.button&&(s=t.button<3?t.button:3)):s=1&t.buttons?0:4&t.buttons?1:2&t.buttons?2:3;break;case"mouseup":r=0,s=t.button<3?t.button:3;break;case"mousedown":r=1,s=t.button<3?t.button:3;break;case"wheel":if(e._customWheelEventHandler&&!1===e._customWheelEventHandler(t))return!1;if(0===e.viewport.getLinesScrolled(t))return!1;r=t.deltaY<0?0:1,s=4;break;default:return!1}return!(void 0===r||void 0===s||s>4)&&e.coreMouseService.triggerMouseEvent({col:i.col,row:i.row,x:i.x,y:i.y,button:s,action:r,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey})}const s={mouseup:null,wheel:null,mousedrag:null,mousemove:null},n={mouseup:e=>(i(e),e.buttons||(this._document.removeEventListener("mouseup",s.mouseup),s.mousedrag&&this._document.removeEventListener("mousemove",s.mousedrag)),this.cancel(e)),wheel:e=>(i(e),this.cancel(e,!0)),mousedrag:e=>{e.buttons&&i(e)},mousemove:e=>{e.buttons||i(e)}};this.register(this.coreMouseService.onProtocolChange((e=>{e?("debug"===this.optionsService.rawOptions.logLevel&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(e)),this.element.classList.add("enable-mouse-events"),this._selectionService.disable()):(this._logService.debug("Unbinding from mouse events."),this.element.classList.remove("enable-mouse-events"),this._selectionService.enable()),8&e?s.mousemove||(t.addEventListener("mousemove",n.mousemove),s.mousemove=n.mousemove):(t.removeEventListener("mousemove",s.mousemove),s.mousemove=null),16&e?s.wheel||(t.addEventListener("wheel",n.wheel,{passive:!1}),s.wheel=n.wheel):(t.removeEventListener("wheel",s.wheel),s.wheel=null),2&e?s.mouseup||(s.mouseup=n.mouseup):(this._document.removeEventListener("mouseup",s.mouseup),s.mouseup=null),4&e?s.mousedrag||(s.mousedrag=n.mousedrag):(this._document.removeEventListener("mousemove",s.mousedrag),s.mousedrag=null)}))),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this.register((0,r.addDisposableDomListener)(t,"mousedown",(e=>{if(e.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(e))return i(e),s.mouseup&&this._document.addEventListener("mouseup",s.mouseup),s.mousedrag&&this._document.addEventListener("mousemove",s.mousedrag),this.cancel(e)}))),this.register((0,r.addDisposableDomListener)(t,"wheel",(e=>{if(!s.wheel){if(this._customWheelEventHandler&&!1===this._customWheelEventHandler(e))return!1;if(!this.buffer.hasScrollback){const t=this.viewport.getLinesScrolled(e);if(0===t)return;const i=D.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(e.deltaY<0?"A":"B");let s="";for(let e=0;e{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchStart(e),this.cancel(e)}),{passive:!0})),this.register((0,r.addDisposableDomListener)(t,"touchmove",(e=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchMove(e)?void 0:this.cancel(e)}),{passive:!1}))}refresh(e,t){this._renderService?.refreshRows(e,t)}updateCursorStyle(e){this._selectionService?.shouldColumnSelect(e)?this.element.classList.add("column-select"):this.element.classList.remove("column-select")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,t,i=0){1===i?(super.scrollLines(e,t,i),this.refresh(0,this.rows-1)):this.viewport?.scrollLines(e)}paste(e){(0,s.paste)(e,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}attachCustomWheelEventHandler(e){this._customWheelEventHandler=e}registerLinkProvider(e){return this._linkProviderService.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");const t=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),t}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(e,t,i){this._selectionService.setSelection(e,t,i)}getSelection(){return this._selectionService?this._selectionService.selectionText:""}getSelectionPosition(){if(this._selectionService&&this._selectionService.hasSelection)return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(e,t){this._selectionService?.selectLines(e,t)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;const t=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!t&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;t||"Dead"!==e.key&&"AltGraph"!==e.key||(this._unprocessedDeadKey=!0);const i=(0,R.evaluateKeyboardEvent)(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),3===i.type||2===i.type){const t=this.rows-1;return this.scrollLines(2===i.type?-t:t),this.cancel(e,!0)}return 1===i.type&&this.selectAll(),!!this._isThirdLevelShift(this.browser,e)||(i.cancel&&this.cancel(e,!0),!i.key||!!(e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&1===e.key.length&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):(i.key!==D.C0.ETX&&i.key!==D.C0.CR||(this.textarea.value=""),this._onKey.fire({key:i.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(i.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey?this.cancel(e,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(e,t){const i=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey||e.isWindows&&t.getModifierState("AltGraph");return"keypress"===t.type?i:i&&(!t.keyCode||t.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e)||(function(e){return 16===e.keyCode||17===e.keyCode||18===e.keyCode}(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let t;if(this._keyPressHandled=!1,this._keyDownHandled)return!1;if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(null===e.which||void 0===e.which)t=e.keyCode;else{if(0===e.which||0===e.charCode)return!1;t=e.which}return!(!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)||(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(t,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(e){if(e.data&&"insertText"===e.inputType&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;const t=e.data;return this.coreService.triggerDataEvent(t,!0),this.cancel(e),!0}return!1}resize(e,t){e!==this.cols||t!==this.rows?super.resize(e,t):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(e,t){this._charSizeService?.measure(),this.viewport?.syncScrollArea(!0)}clear(){if(0!==this.buffer.ybase||0!==this.buffer.y){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e{Object.defineProperty(t,"__esModule",{value:!0}),t.TimeBasedDebouncer=void 0,t.TimeBasedDebouncer=class{constructor(e,t=1e3){this._renderCallback=e,this._debounceThresholdMS=t,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t;const s=Date.now();if(s-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=s,this._innerRefresh();else if(!this._additionalRefreshRequested){const e=s-this._lastRefreshMs,t=this._debounceThresholdMS-e;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout((()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0}),t)}}_innerRefresh(){if(void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return;const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t)}}},1680:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Viewport=void 0;const n=i(3656),o=i(4725),a=i(8460),h=i(844),c=i(2585);let l=t.Viewport=class extends h.Disposable{constructor(e,t,i,s,r,o,h,c){super(),this._viewportElement=e,this._scrollArea=t,this._bufferService=i,this._optionsService=s,this._charSizeService=r,this._renderService=o,this._coreBrowserService=h,this.scrollBarWidth=0,this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._wheelPartialScroll=0,this._refreshAnimationFrame=null,this._ignoreNextScrollEvent=!1,this._smoothScrollState={startTime:0,origin:-1,target:-1},this._onRequestScrollLines=this.register(new a.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this.scrollBarWidth=this._viewportElement.offsetWidth-this._scrollArea.offsetWidth||15,this.register((0,n.addDisposableDomListener)(this._viewportElement,"scroll",this._handleScroll.bind(this))),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._renderDimensions=this._renderService.dimensions,this.register(this._renderService.onDimensionsChange((e=>this._renderDimensions=e))),this._handleThemeChange(c.colors),this.register(c.onChangeColors((e=>this._handleThemeChange(e)))),this.register(this._optionsService.onSpecificOptionChange("scrollback",(()=>this.syncScrollArea()))),setTimeout((()=>this.syncScrollArea()))}_handleThemeChange(e){this._viewportElement.style.backgroundColor=e.background.css}reset(){this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._coreBrowserService.window.requestAnimationFrame((()=>this.syncScrollArea()))}_refresh(e){if(e)return this._innerRefresh(),void(null!==this._refreshAnimationFrame&&this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame));null===this._refreshAnimationFrame&&(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderDimensions.device.cell.height/this._coreBrowserService.dpr,this._currentDeviceCellHeight=this._renderDimensions.device.cell.height,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;const e=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderDimensions.css.canvas.height);this._lastRecordedBufferHeight!==e&&(this._lastRecordedBufferHeight=e,this._scrollArea.style.height=this._lastRecordedBufferHeight+"px")}const e=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==e&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=e),this._refreshAnimationFrame=null}syncScrollArea(e=!1){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(e);this._lastRecordedViewportHeight===this._renderService.dimensions.css.canvas.height&&this._lastScrollTop===this._activeBuffer.ydisp*this._currentRowHeight&&this._renderDimensions.device.cell.height===this._currentDeviceCellHeight||this._refresh(e)}_handleScroll(e){if(this._lastScrollTop=this._viewportElement.scrollTop,!this._viewportElement.offsetParent)return;if(this._ignoreNextScrollEvent)return this._ignoreNextScrollEvent=!1,void this._onRequestScrollLines.fire({amount:0,suppressScrollEvent:!0});const t=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._onRequestScrollLines.fire({amount:t,suppressScrollEvent:!0})}_smoothScroll(){if(this._isDisposed||-1===this._smoothScrollState.origin||-1===this._smoothScrollState.target)return;const e=this._smoothScrollPercent();this._viewportElement.scrollTop=this._smoothScrollState.origin+Math.round(e*(this._smoothScrollState.target-this._smoothScrollState.origin)),e<1?this._coreBrowserService.window.requestAnimationFrame((()=>this._smoothScroll())):this._clearSmoothScrollState()}_smoothScrollPercent(){return this._optionsService.rawOptions.smoothScrollDuration&&this._smoothScrollState.startTime?Math.max(Math.min((Date.now()-this._smoothScrollState.startTime)/this._optionsService.rawOptions.smoothScrollDuration,1),0):1}_clearSmoothScrollState(){this._smoothScrollState.startTime=0,this._smoothScrollState.origin=-1,this._smoothScrollState.target=-1}_bubbleScroll(e,t){const i=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(t<0&&0!==this._viewportElement.scrollTop||t>0&&i0&&(i=e),s=""}}return{bufferElements:r,cursorElement:i}}getLinesScrolled(e){if(0===e.deltaY||e.shiftKey)return 0;let t=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(t/=this._currentRowHeight+0,this._wheelPartialScroll+=t,t=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._bufferService.rows),t}_applyScrollModifier(e,t){const i=this._optionsService.rawOptions.fastScrollModifier;return"alt"===i&&t.altKey||"ctrl"===i&&t.ctrlKey||"shift"===i&&t.shiftKey?e*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:e*this._optionsService.rawOptions.scrollSensitivity}handleTouchStart(e){this._lastTouchY=e.touches[0].pageY}handleTouchMove(e){const t=this._lastTouchY-e.touches[0].pageY;return this._lastTouchY=e.touches[0].pageY,0!==t&&(this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))}};t.Viewport=l=s([r(2,c.IBufferService),r(3,c.IOptionsService),r(4,o.ICharSizeService),r(5,o.IRenderService),r(6,o.ICoreBrowserService),r(7,o.IThemeService)],l)},3107:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BufferDecorationRenderer=void 0;const n=i(4725),o=i(844),a=i(2585);let h=t.BufferDecorationRenderer=class extends o.Disposable{constructor(e,t,i,s,r){super(),this._screenElement=e,this._bufferService=t,this._coreBrowserService=i,this._decorationService=s,this._renderService=r,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement("div"),this._container.classList.add("xterm-decoration-container"),this._screenElement.appendChild(this._container),this.register(this._renderService.onRenderedViewportChange((()=>this._doRefreshDecorations()))),this.register(this._renderService.onDimensionsChange((()=>{this._dimensionsChanged=!0,this._queueRefresh()}))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt}))),this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh()))),this.register(this._decorationService.onDecorationRemoved((e=>this._removeDecoration(e)))),this.register((0,o.toDisposable)((()=>{this._container.remove(),this._decorationElements.clear()})))}_queueRefresh(){void 0===this._animationFrame&&(this._animationFrame=this._renderService.addRefreshCallback((()=>{this._doRefreshDecorations(),this._animationFrame=void 0})))}_doRefreshDecorations(){for(const e of this._decorationService.decorations)this._renderDecoration(e);this._dimensionsChanged=!1}_renderDecoration(e){this._refreshStyle(e),this._dimensionsChanged&&this._refreshXPosition(e)}_createElement(e){const t=this._coreBrowserService.mainDocument.createElement("div");t.classList.add("xterm-decoration"),t.classList.toggle("xterm-decoration-top-layer","top"===e?.options?.layer),t.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,t.style.height=(e.options.height||1)*this._renderService.dimensions.css.cell.height+"px",t.style.top=(e.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height+"px",t.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;const i=e.options.x??0;return i&&i>this._bufferService.cols&&(t.style.display="none"),this._refreshXPosition(e,t),t}_refreshStyle(e){const t=e.marker.line-this._bufferService.buffers.active.ydisp;if(t<0||t>=this._bufferService.rows)e.element&&(e.element.style.display="none",e.onRenderEmitter.fire(e.element));else{let i=this._decorationElements.get(e);i||(i=this._createElement(e),e.element=i,this._decorationElements.set(e,i),this._container.appendChild(i),e.onDispose((()=>{this._decorationElements.delete(e),i.remove()}))),i.style.top=t*this._renderService.dimensions.css.cell.height+"px",i.style.display=this._altBufferIsActive?"none":"block",e.onRenderEmitter.fire(i)}}_refreshXPosition(e,t=e.element){if(!t)return;const i=e.options.x??0;"right"===(e.options.anchor||"left")?t.style.right=i?i*this._renderService.dimensions.css.cell.width+"px":"":t.style.left=i?i*this._renderService.dimensions.css.cell.width+"px":""}_removeDecoration(e){this._decorationElements.get(e)?.remove(),this._decorationElements.delete(e),e.dispose()}};t.BufferDecorationRenderer=h=s([r(1,a.IBufferService),r(2,n.ICoreBrowserService),r(3,a.IDecorationService),r(4,n.IRenderService)],h)},5871:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorZoneStore=void 0,t.ColorZoneStore=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(e){if(e.options.overviewRulerOptions){for(const t of this._zones)if(t.color===e.options.overviewRulerOptions.color&&t.position===e.options.overviewRulerOptions.position){if(this._lineIntersectsZone(t,e.marker.line))return;if(this._lineAdjacentToZone(t,e.marker.line,e.options.overviewRulerOptions.position))return void this._addLineToZone(t,e.marker.line)}if(this._zonePoolIndex=e.startBufferLine&&t<=e.endBufferLine}_lineAdjacentToZone(e,t,i){return t>=e.startBufferLine-this._linePadding[i||"full"]&&t<=e.endBufferLine+this._linePadding[i||"full"]}_addLineToZone(e,t){e.startBufferLine=Math.min(e.startBufferLine,t),e.endBufferLine=Math.max(e.endBufferLine,t)}}},5744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OverviewRulerRenderer=void 0;const n=i(5871),o=i(4725),a=i(844),h=i(2585),c={full:0,left:0,center:0,right:0},l={full:0,left:0,center:0,right:0},d={full:0,left:0,center:0,right:0};let _=t.OverviewRulerRenderer=class extends a.Disposable{get _width(){return this._optionsService.options.overviewRulerWidth||0}constructor(e,t,i,s,r,o,h){super(),this._viewportElement=e,this._screenElement=t,this._bufferService=i,this._decorationService=s,this._renderService=r,this._optionsService=o,this._coreBrowserService=h,this._colorZoneStore=new n.ColorZoneStore,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=this._coreBrowserService.mainDocument.createElement("canvas"),this._canvas.classList.add("xterm-decoration-overview-ruler"),this._refreshCanvasDimensions(),this._viewportElement.parentElement?.insertBefore(this._canvas,this._viewportElement);const c=this._canvas.getContext("2d");if(!c)throw new Error("Ctx cannot be null");this._ctx=c,this._registerDecorationListeners(),this._registerBufferChangeListeners(),this._registerDimensionChangeListeners(),this.register((0,a.toDisposable)((()=>{this._canvas?.remove()})))}_registerDecorationListeners(){this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh(void 0,!0)))),this.register(this._decorationService.onDecorationRemoved((()=>this._queueRefresh(void 0,!0))))}_registerBufferChangeListeners(){this.register(this._renderService.onRenderedViewportChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?"none":"block"}))),this.register(this._bufferService.onScroll((()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})))}_registerDimensionChangeListeners(){this.register(this._renderService.onRender((()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)}))),this.register(this._optionsService.onSpecificOptionChange("overviewRulerWidth",(()=>this._queueRefresh(!0)))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh(!0)))),this._queueRefresh(!0)}_refreshDrawConstants(){const e=Math.floor(this._canvas.width/3),t=Math.ceil(this._canvas.width/3);l.full=this._canvas.width,l.left=e,l.center=t,l.right=e,this._refreshDrawHeightConstants(),d.full=0,d.left=0,d.center=l.left,d.right=l.left+l.center}_refreshDrawHeightConstants(){c.full=Math.round(2*this._coreBrowserService.dpr);const e=this._canvas.height/this._bufferService.buffer.lines.length,t=Math.round(Math.max(Math.min(e,12),6)*this._coreBrowserService.dpr);c.left=t,c.center=t,c.right=t}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowserService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowserService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(const e of this._decorationService.decorations)this._colorZoneStore.addDecoration(e);this._ctx.lineWidth=1;const e=this._colorZoneStore.zones;for(const t of e)"full"!==t.position&&this._renderColorZone(t);for(const t of e)"full"===t.position&&this._renderColorZone(t);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderColorZone(e){this._ctx.fillStyle=e.color,this._ctx.fillRect(d[e.position||"full"],Math.round((this._canvas.height-1)*(e.startBufferLine/this._bufferService.buffers.active.lines.length)-c[e.position||"full"]/2),l[e.position||"full"],Math.round((this._canvas.height-1)*((e.endBufferLine-e.startBufferLine)/this._bufferService.buffers.active.lines.length)+c[e.position||"full"]))}_queueRefresh(e,t){this._shouldUpdateDimensions=e||this._shouldUpdateDimensions,this._shouldUpdateAnchor=t||this._shouldUpdateAnchor,void 0===this._animationFrame&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._refreshDecorations(),this._animationFrame=void 0})))}};t.OverviewRulerRenderer=_=s([r(2,h.IBufferService),r(3,h.IDecorationService),r(4,o.IRenderService),r(5,h.IOptionsService),r(6,o.ICoreBrowserService)],_)},2950:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CompositionHelper=void 0;const n=i(4725),o=i(2585),a=i(2584);let h=t.CompositionHelper=class{get isComposing(){return this._isComposing}constructor(e,t,i,s,r,n){this._textarea=e,this._compositionView=t,this._bufferService=i,this._optionsService=s,this._coreService=r,this._renderService=n,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=""}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent="",this._dataAlreadySent="",this._compositionView.classList.add("active")}compositionupdate(e){this._compositionView.textContent=e.data,this.updateCompositionElements(),setTimeout((()=>{this._compositionPosition.end=this._textarea.value.length}),0)}compositionend(){this._finalizeComposition(!0)}keydown(e){if(this._isComposing||this._isSendingComposition){if(229===e.keyCode)return!1;if(16===e.keyCode||17===e.keyCode||18===e.keyCode)return!1;this._finalizeComposition(!1)}return 229!==e.keyCode||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(e){if(this._compositionView.classList.remove("active"),this._isComposing=!1,e){const e={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout((()=>{if(this._isSendingComposition){let t;this._isSendingComposition=!1,e.start+=this._dataAlreadySent.length,t=this._isComposing?this._textarea.value.substring(e.start,e.end):this._textarea.value.substring(e.start),t.length>0&&this._coreService.triggerDataEvent(t,!0)}}),0)}else{this._isSendingComposition=!1;const e=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(e,!0)}}_handleAnyTextareaChanges(){const e=this._textarea.value;setTimeout((()=>{if(!this._isComposing){const t=this._textarea.value,i=t.replace(e,"");this._dataAlreadySent=i,t.length>e.length?this._coreService.triggerDataEvent(i,!0):t.lengththis.updateCompositionElements(!0)),0)}}};t.CompositionHelper=h=s([r(2,o.IBufferService),r(3,o.IOptionsService),r(4,o.ICoreService),r(5,n.IRenderService)],h)},9806:(e,t)=>{function i(e,t,i){const s=i.getBoundingClientRect(),r=e.getComputedStyle(i),n=parseInt(r.getPropertyValue("padding-left")),o=parseInt(r.getPropertyValue("padding-top"));return[t.clientX-s.left-n,t.clientY-s.top-o]}Object.defineProperty(t,"__esModule",{value:!0}),t.getCoords=t.getCoordsRelativeToElement=void 0,t.getCoordsRelativeToElement=i,t.getCoords=function(e,t,s,r,n,o,a,h,c){if(!o)return;const l=i(e,t,s);return l?(l[0]=Math.ceil((l[0]+(c?a/2:0))/a),l[1]=Math.ceil(l[1]/h),l[0]=Math.min(Math.max(l[0],1),r+(c?1:0)),l[1]=Math.min(Math.max(l[1],1),n),l):void 0}},9504:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.moveToCellSequence=void 0;const s=i(2584);function r(e,t,i,s){const r=e-n(e,i),a=t-n(t,i),l=Math.abs(r-a)-function(e,t,i){let s=0;const r=e-n(e,i),a=t-n(t,i);for(let n=0;n=0&&et?"A":"B"}function a(e,t,i,s,r,n){let o=e,a=t,h="";for(;o!==i||a!==s;)o+=r?1:-1,r&&o>n.cols-1?(h+=n.buffer.translateBufferLineToString(a,!1,e,o),o=0,e=0,a++):!r&&o<0&&(h+=n.buffer.translateBufferLineToString(a,!1,0,e+1),o=n.cols-1,e=o,a--);return h+n.buffer.translateBufferLineToString(a,!1,e,o)}function h(e,t){const i=t?"O":"[";return s.C0.ESC+i+e}function c(e,t){e=Math.floor(e);let i="";for(let s=0;s0?s-n(s,o):t;const _=s,u=function(e,t,i,s,o,a){let h;return h=r(i,s,o,a).length>0?s-n(s,o):t,e=i&&he?"D":"C",c(Math.abs(o-e),h(d,s));d=l>t?"D":"C";const _=Math.abs(l-t);return c(function(e,t){return t.cols-e}(l>t?e:o,i)+(_-1)*i.cols+1+((l>t?o:e)-1),h(d,s))}},1296:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomRenderer=void 0;const n=i(3787),o=i(2550),a=i(2223),h=i(6171),c=i(6052),l=i(4725),d=i(8055),_=i(8460),u=i(844),f=i(2585),v="xterm-dom-renderer-owner-",p="xterm-rows",g="xterm-fg-",m="xterm-bg-",S="xterm-focus",C="xterm-selection";let b=1,w=t.DomRenderer=class extends u.Disposable{constructor(e,t,i,s,r,a,l,d,f,g,m,S,w){super(),this._terminal=e,this._document=t,this._element=i,this._screenElement=s,this._viewportElement=r,this._helperContainer=a,this._linkifier2=l,this._charSizeService=f,this._optionsService=g,this._bufferService=m,this._coreBrowserService=S,this._themeService=w,this._terminalClass=b++,this._rowElements=[],this._selectionRenderModel=(0,c.createSelectionRenderModel)(),this.onRequestRedraw=this.register(new _.EventEmitter).event,this._rowContainer=this._document.createElement("div"),this._rowContainer.classList.add(p),this._rowContainer.style.lineHeight="normal",this._rowContainer.setAttribute("aria-hidden","true"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=this._document.createElement("div"),this._selectionContainer.classList.add(C),this._selectionContainer.setAttribute("aria-hidden","true"),this.dimensions=(0,h.createRenderDimensions)(),this._updateDimensions(),this.register(this._optionsService.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._themeService.onChangeColors((e=>this._injectCss(e)))),this._injectCss(this._themeService.colors),this._rowFactory=d.createInstance(n.DomRendererRowFactory,document),this._element.classList.add(v+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this.register(this._linkifier2.onShowLinkUnderline((e=>this._handleLinkHover(e)))),this.register(this._linkifier2.onHideLinkUnderline((e=>this._handleLinkLeave(e)))),this.register((0,u.toDisposable)((()=>{this._element.classList.remove(v+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()}))),this._widthCache=new o.WidthCache(this._document,this._helperContainer),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){const e=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*e,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*e),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/e),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/e),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(const e of this._rowElements)e.style.width=`${this.dimensions.css.canvas.width}px`,e.style.height=`${this.dimensions.css.cell.height}px`,e.style.lineHeight=`${this.dimensions.css.cell.height}px`,e.style.overflow="hidden";this._dimensionsStyleElement||(this._dimensionsStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._dimensionsStyleElement));const t=`${this._terminalSelector} .${p} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=t,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(e){this._themeStyleElement||(this._themeStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._themeStyleElement));let t=`${this._terminalSelector} .${p} { color: ${e.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;t+=`${this._terminalSelector} .${p} .xterm-dim { color: ${d.color.multiplyOpacity(e.foreground,.5).css};}`,t+=`${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`;const i=`blink_underline_${this._terminalClass}`,s=`blink_bar_${this._terminalClass}`,r=`blink_block_${this._terminalClass}`;t+=`@keyframes ${i} { 50% { border-bottom-style: hidden; }}`,t+=`@keyframes ${s} { 50% { box-shadow: none; }}`,t+=`@keyframes ${r} { 0% { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css}; } 50% { background-color: inherit; color: ${e.cursor.css}; }}`,t+=`${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${i} 1s step-end infinite;}${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${s} 1s step-end infinite;}${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${r} 1s step-end infinite;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-block { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css};}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${e.cursor.css} !important; color: ${e.cursorAccent.css} !important;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${e.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${e.cursor.css} inset;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${e.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,t+=`${this._terminalSelector} .${C} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${C} div { position: absolute; background-color: ${e.selectionBackgroundOpaque.css};}${this._terminalSelector} .${C} div { position: absolute; background-color: ${e.selectionInactiveBackgroundOpaque.css};}`;for(const[i,s]of e.ansi.entries())t+=`${this._terminalSelector} .${g}${i} { color: ${s.css}; }${this._terminalSelector} .${g}${i}.xterm-dim { color: ${d.color.multiplyOpacity(s,.5).css}; }${this._terminalSelector} .${m}${i} { background-color: ${s.css}; }`;t+=`${this._terminalSelector} .${g}${a.INVERTED_DEFAULT_COLOR} { color: ${d.color.opaque(e.background).css}; }${this._terminalSelector} .${g}${a.INVERTED_DEFAULT_COLOR}.xterm-dim { color: ${d.color.multiplyOpacity(d.color.opaque(e.background),.5).css}; }${this._terminalSelector} .${m}${a.INVERTED_DEFAULT_COLOR} { background-color: ${e.foreground.css}; }`,this._themeStyleElement.textContent=t}_setDefaultSpacing(){const e=this.dimensions.css.cell.width-this._widthCache.get("W",!1,!1);this._rowContainer.style.letterSpacing=`${e}px`,this._rowFactory.defaultSpacing=e}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(e,t){for(let e=this._rowElements.length;e<=t;e++){const e=this._document.createElement("div");this._rowContainer.appendChild(e),this._rowElements.push(e)}for(;this._rowElements.length>t;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(e,t){this._refreshRowElements(e,t),this._updateDimensions(),this.handleSelectionChanged(this._selectionRenderModel.selectionStart,this._selectionRenderModel.selectionEnd,this._selectionRenderModel.columnSelectMode)}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(S),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(S),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(e,t,i){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(e,t,i),this.renderRows(0,this._bufferService.rows-1),!e||!t)return;this._selectionRenderModel.update(this._terminal,e,t,i);const s=this._selectionRenderModel.viewportStartRow,r=this._selectionRenderModel.viewportEndRow,n=this._selectionRenderModel.viewportCappedStartRow,o=this._selectionRenderModel.viewportCappedEndRow;if(n>=this._bufferService.rows||o<0)return;const a=this._document.createDocumentFragment();if(i){const i=e[0]>t[0];a.appendChild(this._createSelectionElement(n,i?t[0]:e[0],i?e[0]:t[0],o-n+1))}else{const i=s===n?e[0]:0,h=n===r?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(n,i,h));const c=o-n-1;if(a.appendChild(this._createSelectionElement(n+1,0,this._bufferService.cols,c)),n!==o){const e=r===o?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(o,0,e))}}this._selectionContainer.appendChild(a)}_createSelectionElement(e,t,i,s=1){const r=this._document.createElement("div"),n=t*this.dimensions.css.cell.width;let o=this.dimensions.css.cell.width*(i-t);return n+o>this.dimensions.css.canvas.width&&(o=this.dimensions.css.canvas.width-n),r.style.height=s*this.dimensions.css.cell.height+"px",r.style.top=e*this.dimensions.css.cell.height+"px",r.style.left=`${n}px`,r.style.width=`${o}px`,r}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(const e of this._rowElements)e.replaceChildren()}renderRows(e,t){const i=this._bufferService.buffer,s=i.ybase+i.y,r=Math.min(i.x,this._bufferService.cols-1),n=this._optionsService.rawOptions.cursorBlink,o=this._optionsService.rawOptions.cursorStyle,a=this._optionsService.rawOptions.cursorInactiveStyle;for(let h=e;h<=t;h++){const e=h+i.ydisp,t=this._rowElements[h],c=i.lines.get(e);if(!t||!c)break;t.replaceChildren(...this._rowFactory.createRow(c,e,e===s,o,a,r,n,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${v}${this._terminalClass}`}_handleLinkHover(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!0)}_handleLinkLeave(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!1)}_setCellUnderline(e,t,i,s,r,n){i<0&&(e=0),s<0&&(t=0);const o=this._bufferService.rows-1;i=Math.max(Math.min(i,o),0),s=Math.max(Math.min(s,o),0),r=Math.min(r,this._bufferService.cols);const a=this._bufferService.buffer,h=a.ybase+a.y,c=Math.min(a.x,r-1),l=this._optionsService.rawOptions.cursorBlink,d=this._optionsService.rawOptions.cursorStyle,_=this._optionsService.rawOptions.cursorInactiveStyle;for(let o=i;o<=s;++o){const u=o+a.ydisp,f=this._rowElements[o],v=a.lines.get(u);if(!f||!v)break;f.replaceChildren(...this._rowFactory.createRow(v,u,u===h,d,_,c,l,this.dimensions.css.cell.width,this._widthCache,n?o===i?e:0:-1,n?(o===s?t:r)-1:-1))}}};t.DomRenderer=w=s([r(7,f.IInstantiationService),r(8,l.ICharSizeService),r(9,f.IOptionsService),r(10,f.IBufferService),r(11,l.ICoreBrowserService),r(12,l.IThemeService)],w)},3787:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomRendererRowFactory=void 0;const n=i(2223),o=i(643),a=i(511),h=i(2585),c=i(8055),l=i(4725),d=i(4269),_=i(6171),u=i(3734);let f=t.DomRendererRowFactory=class{constructor(e,t,i,s,r,n,o){this._document=e,this._characterJoinerService=t,this._optionsService=i,this._coreBrowserService=s,this._coreService=r,this._decorationService=n,this._themeService=o,this._workCell=new a.CellData,this._columnSelectMode=!1,this.defaultSpacing=0}handleSelectionChanged(e,t,i){this._selectionStart=e,this._selectionEnd=t,this._columnSelectMode=i}createRow(e,t,i,s,r,a,h,l,_,f,p){const g=[],m=this._characterJoinerService.getJoinedCharacters(t),S=this._themeService.colors;let C,b=e.getNoBgTrimmedLength();i&&b0&&M===m[0][0]){O=!0;const t=m.shift();I=new d.JoinedCellData(this._workCell,e.translateToString(!0,t[0],t[1]),t[1]-t[0]),P=t[1]-1,b=I.getWidth()}const H=this._isCellInSelection(M,t),F=i&&M===a,W=T&&M>=f&&M<=p;let U=!1;this._decorationService.forEachDecorationAtCell(M,t,void 0,(e=>{U=!0}));let N=I.getChars()||o.WHITESPACE_CELL_CHAR;if(" "===N&&(I.isUnderline()||I.isOverline())&&(N=" "),A=b*l-_.get(N,I.isBold(),I.isItalic()),C){if(w&&(H&&x||!H&&!x&&I.bg===E)&&(H&&x&&S.selectionForeground||I.fg===k)&&I.extended.ext===L&&W===D&&A===R&&!F&&!O&&!U){I.isInvisible()?y+=o.WHITESPACE_CELL_CHAR:y+=N,w++;continue}w&&(C.textContent=y),C=this._document.createElement("span"),w=0,y=""}else C=this._document.createElement("span");if(E=I.bg,k=I.fg,L=I.extended.ext,D=W,R=A,x=H,O&&a>=M&&a<=P&&(a=M),!this._coreService.isCursorHidden&&F&&this._coreService.isCursorInitialized)if(B.push("xterm-cursor"),this._coreBrowserService.isFocused)h&&B.push("xterm-cursor-blink"),B.push("bar"===s?"xterm-cursor-bar":"underline"===s?"xterm-cursor-underline":"xterm-cursor-block");else if(r)switch(r){case"outline":B.push("xterm-cursor-outline");break;case"block":B.push("xterm-cursor-block");break;case"bar":B.push("xterm-cursor-bar");break;case"underline":B.push("xterm-cursor-underline")}if(I.isBold()&&B.push("xterm-bold"),I.isItalic()&&B.push("xterm-italic"),I.isDim()&&B.push("xterm-dim"),y=I.isInvisible()?o.WHITESPACE_CELL_CHAR:I.getChars()||o.WHITESPACE_CELL_CHAR,I.isUnderline()&&(B.push(`xterm-underline-${I.extended.underlineStyle}`)," "===y&&(y=" "),!I.isUnderlineColorDefault()))if(I.isUnderlineColorRGB())C.style.textDecorationColor=`rgb(${u.AttributeData.toColorRGB(I.getUnderlineColor()).join(",")})`;else{let e=I.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&I.isBold()&&e<8&&(e+=8),C.style.textDecorationColor=S.ansi[e].css}I.isOverline()&&(B.push("xterm-overline")," "===y&&(y=" ")),I.isStrikethrough()&&B.push("xterm-strikethrough"),W&&(C.style.textDecoration="underline");let $=I.getFgColor(),j=I.getFgColorMode(),z=I.getBgColor(),K=I.getBgColorMode();const q=!!I.isInverse();if(q){const e=$;$=z,z=e;const t=j;j=K,K=t}let V,G,X,J=!1;switch(this._decorationService.forEachDecorationAtCell(M,t,void 0,(e=>{"top"!==e.options.layer&&J||(e.backgroundColorRGB&&(K=50331648,z=e.backgroundColorRGB.rgba>>8&16777215,V=e.backgroundColorRGB),e.foregroundColorRGB&&(j=50331648,$=e.foregroundColorRGB.rgba>>8&16777215,G=e.foregroundColorRGB),J="top"===e.options.layer)})),!J&&H&&(V=this._coreBrowserService.isFocused?S.selectionBackgroundOpaque:S.selectionInactiveBackgroundOpaque,z=V.rgba>>8&16777215,K=50331648,J=!0,S.selectionForeground&&(j=50331648,$=S.selectionForeground.rgba>>8&16777215,G=S.selectionForeground)),J&&B.push("xterm-decoration-top"),K){case 16777216:case 33554432:X=S.ansi[z],B.push(`xterm-bg-${z}`);break;case 50331648:X=c.channels.toColor(z>>16,z>>8&255,255&z),this._addStyle(C,`background-color:#${v((z>>>0).toString(16),"0",6)}`);break;default:q?(X=S.foreground,B.push(`xterm-bg-${n.INVERTED_DEFAULT_COLOR}`)):X=S.background}switch(V||I.isDim()&&(V=c.color.multiplyOpacity(X,.5)),j){case 16777216:case 33554432:I.isBold()&&$<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&($+=8),this._applyMinimumContrast(C,X,S.ansi[$],I,V,void 0)||B.push(`xterm-fg-${$}`);break;case 50331648:const e=c.channels.toColor($>>16&255,$>>8&255,255&$);this._applyMinimumContrast(C,X,e,I,V,G)||this._addStyle(C,`color:#${v($.toString(16),"0",6)}`);break;default:this._applyMinimumContrast(C,X,S.foreground,I,V,G)||q&&B.push(`xterm-fg-${n.INVERTED_DEFAULT_COLOR}`)}B.length&&(C.className=B.join(" "),B.length=0),F||O||U?C.textContent=y:w++,A!==this.defaultSpacing&&(C.style.letterSpacing=`${A}px`),g.push(C),M=P}return C&&w&&(C.textContent=y),g}_applyMinimumContrast(e,t,i,s,r,n){if(1===this._optionsService.rawOptions.minimumContrastRatio||(0,_.treatGlyphAsBackgroundColor)(s.getCode()))return!1;const o=this._getContrastCache(s);let a;if(r||n||(a=o.getColor(t.rgba,i.rgba)),void 0===a){const e=this._optionsService.rawOptions.minimumContrastRatio/(s.isDim()?2:1);a=c.color.ensureContrastRatio(r||t,n||i,e),o.setColor((r||t).rgba,(n||i).rgba,a??null)}return!!a&&(this._addStyle(e,`color:${a.css}`),!0)}_getContrastCache(e){return e.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(e,t){e.setAttribute("style",`${e.getAttribute("style")||""}${t};`)}_isCellInSelection(e,t){const i=this._selectionStart,s=this._selectionEnd;return!(!i||!s)&&(this._columnSelectMode?i[0]<=s[0]?e>=i[0]&&t>=i[1]&&e=i[1]&&e>=s[0]&&t<=s[1]:t>i[1]&&t=i[0]&&e=i[0])}};function v(e,t,i){for(;e.length{Object.defineProperty(t,"__esModule",{value:!0}),t.WidthCache=void 0,t.WidthCache=class{constructor(e,t){this._flat=new Float32Array(256),this._font="",this._fontSize=0,this._weight="normal",this._weightBold="bold",this._measureElements=[],this._container=e.createElement("div"),this._container.classList.add("xterm-width-cache-measure-container"),this._container.setAttribute("aria-hidden","true"),this._container.style.whiteSpace="pre",this._container.style.fontKerning="none";const i=e.createElement("span");i.classList.add("xterm-char-measure-element");const s=e.createElement("span");s.classList.add("xterm-char-measure-element"),s.style.fontWeight="bold";const r=e.createElement("span");r.classList.add("xterm-char-measure-element"),r.style.fontStyle="italic";const n=e.createElement("span");n.classList.add("xterm-char-measure-element"),n.style.fontWeight="bold",n.style.fontStyle="italic",this._measureElements=[i,s,r,n],this._container.appendChild(i),this._container.appendChild(s),this._container.appendChild(r),this._container.appendChild(n),t.appendChild(this._container),this.clear()}dispose(){this._container.remove(),this._measureElements.length=0,this._holey=void 0}clear(){this._flat.fill(-9999),this._holey=new Map}setFont(e,t,i,s){e===this._font&&t===this._fontSize&&i===this._weight&&s===this._weightBold||(this._font=e,this._fontSize=t,this._weight=i,this._weightBold=s,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${i}`,this._measureElements[1].style.fontWeight=`${s}`,this._measureElements[2].style.fontWeight=`${i}`,this._measureElements[3].style.fontWeight=`${s}`,this.clear())}get(e,t,i){let s=0;if(!t&&!i&&1===e.length&&(s=e.charCodeAt(0))<256){if(-9999!==this._flat[s])return this._flat[s];const t=this._measure(e,0);return t>0&&(this._flat[s]=t),t}let r=e;t&&(r+="B"),i&&(r+="I");let n=this._holey.get(r);if(void 0===n){let s=0;t&&(s|=1),i&&(s|=2),n=this._measure(e,s),n>0&&this._holey.set(r,n)}return n}_measure(e,t){const i=this._measureElements[t];return i.textContent=e.repeat(32),i.offsetWidth/32}}},2223:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;const s=i(6114);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=s.isFirefox||s.isLegacyEdge?"bottom":"ideographic"},6171:(e,t)=>{function i(e){return 57508<=e&&e<=57558}function s(e){return e>=128512&&e<=128591||e>=127744&&e<=128511||e>=128640&&e<=128767||e>=9728&&e<=9983||e>=9984&&e<=10175||e>=65024&&e<=65039||e>=129280&&e<=129535||e>=127462&&e<=127487}Object.defineProperty(t,"__esModule",{value:!0}),t.computeNextVariantOffset=t.createRenderDimensions=t.treatGlyphAsBackgroundColor=t.allowRescaling=t.isEmoji=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(e){if(!e)throw new Error("value must not be falsy");return e},t.isPowerlineGlyph=i,t.isRestrictedPowerlineGlyph=function(e){return 57520<=e&&e<=57527},t.isEmoji=s,t.allowRescaling=function(e,t,r,n){return 1===t&&r>Math.ceil(1.5*n)&&void 0!==e&&e>255&&!s(e)&&!i(e)&&!function(e){return 57344<=e&&e<=63743}(e)},t.treatGlyphAsBackgroundColor=function(e){return i(e)||function(e){return 9472<=e&&e<=9631}(e)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}},t.computeNextVariantOffset=function(e,t,i=0){return(e-(2*Math.round(t)-i))%(2*Math.round(t))}},6052:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createSelectionRenderModel=void 0;class i{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,i,s=!1){if(this.selectionStart=t,this.selectionEnd=i,!t||!i||t[0]===i[0]&&t[1]===i[1])return void this.clear();const r=e.buffers.active.ydisp,n=t[1]-r,o=i[1]-r,a=Math.max(n,0),h=Math.min(o,e.rows-1);a>=e.rows||h<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=s,this.viewportStartRow=n,this.viewportEndRow=o,this.viewportCappedStartRow=a,this.viewportCappedEndRow=h,this.startCol=t[0],this.endCol=i[0])}isCellSelected(e,t,i){return!!this.hasSelection&&(i-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&i>=this.viewportCappedStartRow&&t=this.viewportCappedStartRow&&t>=this.endCol&&i<=this.viewportCappedEndRow:i>this.viewportStartRow&&i=this.startCol&&t=this.startCol)}}t.createSelectionRenderModel=function(){return new i}},456:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionModel=void 0,t.SelectionModel=class{constructor(e){this._bufferService=e,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?e%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)-1]:[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[e,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[Math.max(e,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){const e=this.selectionStart,t=this.selectionEnd;return!(!e||!t)&&(e[1]>t[1]||e[1]===t[1]&&e[0]>t[0])}handleTrim(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}}},428:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CharSizeService=void 0;const n=i(2585),o=i(8460),a=i(844);let h=t.CharSizeService=class extends a.Disposable{get hasValidSize(){return this.width>0&&this.height>0}constructor(e,t,i){super(),this._optionsService=i,this.width=0,this.height=0,this._onCharSizeChange=this.register(new o.EventEmitter),this.onCharSizeChange=this._onCharSizeChange.event;try{this._measureStrategy=this.register(new d(this._optionsService))}catch{this._measureStrategy=this.register(new l(e,t,this._optionsService))}this.register(this._optionsService.onMultipleOptionChange(["fontFamily","fontSize"],(()=>this.measure())))}measure(){const e=this._measureStrategy.measure();e.width===this.width&&e.height===this.height||(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())}};t.CharSizeService=h=s([r(2,n.IOptionsService)],h);class c extends a.Disposable{constructor(){super(...arguments),this._result={width:0,height:0}}_validateAndSet(e,t){void 0!==e&&e>0&&void 0!==t&&t>0&&(this._result.width=e,this._result.height=t)}}class l extends c{constructor(e,t,i){super(),this._document=e,this._parentElement=t,this._optionsService=i,this._measureElement=this._document.createElement("span"),this._measureElement.classList.add("xterm-char-measure-element"),this._measureElement.textContent="W".repeat(32),this._measureElement.setAttribute("aria-hidden","true"),this._measureElement.style.whiteSpace="pre",this._measureElement.style.fontKerning="none",this._parentElement.appendChild(this._measureElement)}measure(){return this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`,this._validateAndSet(Number(this._measureElement.offsetWidth)/32,Number(this._measureElement.offsetHeight)),this._result}}class d extends c{constructor(e){super(),this._optionsService=e,this._canvas=new OffscreenCanvas(100,100),this._ctx=this._canvas.getContext("2d");const t=this._ctx.measureText("W");if(!("width"in t&&"fontBoundingBoxAscent"in t&&"fontBoundingBoxDescent"in t))throw new Error("Required font metrics not supported")}measure(){this._ctx.font=`${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;const e=this._ctx.measureText("W");return this._validateAndSet(e.width,e.fontBoundingBoxAscent+e.fontBoundingBoxDescent),this._result}}},4269:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CharacterJoinerService=t.JoinedCellData=void 0;const n=i(3734),o=i(643),a=i(511),h=i(2585);class c extends n.AttributeData{constructor(e,t,i){super(),this.content=0,this.combinedData="",this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=i}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.JoinedCellData=c;let l=t.CharacterJoinerService=class e{constructor(e){this._bufferService=e,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new a.CellData}register(e){const t={id:this._nextCharacterJoinerId++,handler:e};return this._characterJoiners.push(t),t.id}deregister(e){for(let t=0;t1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t{Object.defineProperty(t,"__esModule",{value:!0}),t.CoreBrowserService=void 0;const s=i(844),r=i(8460),n=i(3656);class o extends s.Disposable{constructor(e,t,i){super(),this._textarea=e,this._window=t,this.mainDocument=i,this._isFocused=!1,this._cachedIsFocused=void 0,this._screenDprMonitor=new a(this._window),this._onDprChange=this.register(new r.EventEmitter),this.onDprChange=this._onDprChange.event,this._onWindowChange=this.register(new r.EventEmitter),this.onWindowChange=this._onWindowChange.event,this.register(this.onWindowChange((e=>this._screenDprMonitor.setWindow(e)))),this.register((0,r.forwardEvent)(this._screenDprMonitor.onDprChange,this._onDprChange)),this._textarea.addEventListener("focus",(()=>this._isFocused=!0)),this._textarea.addEventListener("blur",(()=>this._isFocused=!1))}get window(){return this._window}set window(e){this._window!==e&&(this._window=e,this._onWindowChange.fire(this._window))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return void 0===this._cachedIsFocused&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask((()=>this._cachedIsFocused=void 0))),this._cachedIsFocused}}t.CoreBrowserService=o;class a extends s.Disposable{constructor(e){super(),this._parentWindow=e,this._windowResizeListener=this.register(new s.MutableDisposable),this._onDprChange=this.register(new r.EventEmitter),this.onDprChange=this._onDprChange.event,this._outerListener=()=>this._setDprAndFireIfDiffers(),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._updateDpr(),this._setWindowResizeListener(),this.register((0,s.toDisposable)((()=>this.clearListener())))}setWindow(e){this._parentWindow=e,this._setWindowResizeListener(),this._setDprAndFireIfDiffers()}_setWindowResizeListener(){this._windowResizeListener.value=(0,n.addDisposableDomListener)(this._parentWindow,"resize",(()=>this._setDprAndFireIfDiffers()))}_setDprAndFireIfDiffers(){this._parentWindow.devicePixelRatio!==this._currentDevicePixelRatio&&this._onDprChange.fire(this._parentWindow.devicePixelRatio),this._updateDpr()}_updateDpr(){this._outerListener&&(this._resolutionMediaMatchList?.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){this._resolutionMediaMatchList&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._outerListener=void 0)}}},779:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkProviderService=void 0;const s=i(844);class r extends s.Disposable{constructor(){super(),this.linkProviders=[],this.register((0,s.toDisposable)((()=>this.linkProviders.length=0)))}registerLinkProvider(e){return this.linkProviders.push(e),{dispose:()=>{const t=this.linkProviders.indexOf(e);-1!==t&&this.linkProviders.splice(t,1)}}}}t.LinkProviderService=r},8934:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MouseService=void 0;const n=i(4725),o=i(9806);let a=t.MouseService=class{constructor(e,t){this._renderService=e,this._charSizeService=t}getCoords(e,t,i,s,r){return(0,o.getCoords)(window,e,t,i,s,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,r)}getMouseReportCoords(e,t){const i=(0,o.getCoordsRelativeToElement)(window,e,t);if(this._charSizeService.hasValidSize)return i[0]=Math.min(Math.max(i[0],0),this._renderService.dimensions.css.canvas.width-1),i[1]=Math.min(Math.max(i[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(i[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(i[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(i[0]),y:Math.floor(i[1])}}};t.MouseService=a=s([r(0,n.IRenderService),r(1,n.ICharSizeService)],a)},3230:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenderService=void 0;const n=i(6193),o=i(4725),a=i(8460),h=i(844),c=i(7226),l=i(2585);let d=t.RenderService=class extends h.Disposable{get dimensions(){return this._renderer.value.dimensions}constructor(e,t,i,s,r,o,l,d){super(),this._rowCount=e,this._charSizeService=s,this._renderer=this.register(new h.MutableDisposable),this._pausedResizeTask=new c.DebouncedIdleTask,this._observerDisposable=this.register(new h.MutableDisposable),this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this.register(new a.EventEmitter),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this.register(new a.EventEmitter),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this.register(new a.EventEmitter),this.onRender=this._onRender.event,this._onRefreshRequest=this.register(new a.EventEmitter),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new n.RenderDebouncer(((e,t)=>this._renderRows(e,t)),l),this.register(this._renderDebouncer),this.register(l.onDprChange((()=>this.handleDevicePixelRatioChange()))),this.register(o.onResize((()=>this._fullRefresh()))),this.register(o.buffers.onBufferActivate((()=>this._renderer.value?.clear()))),this.register(i.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._charSizeService.onCharSizeChange((()=>this.handleCharSizeChanged()))),this.register(r.onDecorationRegistered((()=>this._fullRefresh()))),this.register(r.onDecorationRemoved((()=>this._fullRefresh()))),this.register(i.onMultipleOptionChange(["customGlyphs","drawBoldTextInBrightColors","letterSpacing","lineHeight","fontFamily","fontSize","fontWeight","fontWeightBold","minimumContrastRatio","rescaleOverlappingGlyphs"],(()=>{this.clear(),this.handleResize(o.cols,o.rows),this._fullRefresh()}))),this.register(i.onMultipleOptionChange(["cursorBlink","cursorStyle"],(()=>this.refreshRows(o.buffer.y,o.buffer.y,!0)))),this.register(d.onChangeColors((()=>this._fullRefresh()))),this._registerIntersectionObserver(l.window,t),this.register(l.onWindowChange((e=>this._registerIntersectionObserver(e,t))))}_registerIntersectionObserver(e,t){if("IntersectionObserver"in e){const i=new e.IntersectionObserver((e=>this._handleIntersectionChange(e[e.length-1])),{threshold:0});i.observe(t),this._observerDisposable.value=(0,h.toDisposable)((()=>i.disconnect()))}}_handleIntersectionChange(e){this._isPaused=void 0===e.isIntersecting?0===e.intersectionRatio:!e.isIntersecting,this._isPaused||this._charSizeService.hasValidSize||this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(e,t,i=!1){this._isPaused?this._needsFullRefresh=!0:(i||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(e,t,this._rowCount))}_renderRows(e,t){this._renderer.value&&(e=Math.min(e,this._rowCount-1),t=Math.min(t,this._rowCount-1),this._renderer.value.renderRows(e,t),this._needsSelectionRefresh&&(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:e,end:t}),this._onRender.fire({start:e,end:t}),this._isNextRenderRedrawOnly=!0)}resize(e,t){this._rowCount=t,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(e){this._renderer.value=e,this._renderer.value&&(this._renderer.value.onRequestRedraw((e=>this.refreshRows(e.start,e.end,!0))),this._needsSelectionRefresh=!0,this._fullRefresh())}addRefreshCallback(e){return this._renderDebouncer.addRefreshCallback(e)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){this._renderer.value&&(this._renderer.value.clearTextureAtlas?.(),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(e,t){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set((()=>this._renderer.value?.handleResize(e,t))):this._renderer.value.handleResize(e,t),this._fullRefresh())}handleCharSizeChanged(){this._renderer.value?.handleCharSizeChanged()}handleBlur(){this._renderer.value?.handleBlur()}handleFocus(){this._renderer.value?.handleFocus()}handleSelectionChanged(e,t,i){this._selectionState.start=e,this._selectionState.end=t,this._selectionState.columnSelectMode=i,this._renderer.value?.handleSelectionChanged(e,t,i)}handleCursorMove(){this._renderer.value?.handleCursorMove()}clear(){this._renderer.value?.clear()}};t.RenderService=d=s([r(2,l.IOptionsService),r(3,o.ICharSizeService),r(4,l.IDecorationService),r(5,l.IBufferService),r(6,o.ICoreBrowserService),r(7,o.IThemeService)],d)},9312:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionService=void 0;const n=i(9806),o=i(9504),a=i(456),h=i(4725),c=i(8460),l=i(844),d=i(6114),_=i(4841),u=i(511),f=i(2585),v=String.fromCharCode(160),p=new RegExp(v,"g");let g=t.SelectionService=class extends l.Disposable{constructor(e,t,i,s,r,n,o,h,d){super(),this._element=e,this._screenElement=t,this._linkifier=i,this._bufferService=s,this._coreService=r,this._mouseService=n,this._optionsService=o,this._renderService=h,this._coreBrowserService=d,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new u.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this.register(new c.EventEmitter),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this.register(new c.EventEmitter),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this.register(new c.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this.register(new c.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=e=>this._handleMouseMove(e),this._mouseUpListener=e=>this._handleMouseUp(e),this._coreService.onUserInput((()=>{this.hasSelection&&this.clearSelection()})),this._trimListener=this._bufferService.buffer.lines.onTrim((e=>this._handleTrim(e))),this.register(this._bufferService.buffers.onBufferActivate((e=>this._handleBufferActivate(e)))),this.enable(),this._model=new a.SelectionModel(this._bufferService),this._activeSelectionMode=0,this.register((0,l.toDisposable)((()=>{this._removeMouseDownListeners()})))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!(!e||!t||e[0]===t[0]&&e[1]===t[1])}get selectionText(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return"";const i=this._bufferService.buffer,s=[];if(3===this._activeSelectionMode){if(e[0]===t[0])return"";const r=e[0]e.replace(p," "))).join(d.isWindows?"\r\n":"\n")}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._refresh()))),d.isLinux&&e&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})}_isClickInSelection(e){const t=this._getMouseBufferCoords(e),i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!!(i&&s&&t)&&this._areCoordsInSelection(t,i,s)}isCellInSelection(e,t){const i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!(!i||!s)&&this._areCoordsInSelection([e,t],i,s)}_areCoordsInSelection(e,t,i){return e[1]>t[1]&&e[1]=t[0]&&e[0]=t[0]}_selectWordAtCursor(e,t){const i=this._linkifier.currentLink?.link?.range;if(i)return this._model.selectionStart=[i.start.x-1,i.start.y-1],this._model.selectionStartLength=(0,_.getRangeLength)(i,this._bufferService.cols),this._model.selectionEnd=void 0,!0;const s=this._getMouseBufferCoords(e);return!!s&&(this._selectWordAt(s,t),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()}_handleTrim(e){this._model.handleTrim(e)&&this.refresh()}_getMouseBufferCoords(e){const t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t}_getMouseEventScrollAmount(e){let t=(0,n.getCoordsRelativeToElement)(this._coreBrowserService.window,e,this._screenElement)[1];const i=this._renderService.dimensions.css.canvas.height;return t>=0&&t<=i?0:(t>i&&(t-=i),t=Math.min(Math.max(t,-50),50),t/=50,t/Math.abs(t)+Math.round(14*t))}shouldForceSelection(e){return d.isMac?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}handleMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,(2!==e.button||!this.hasSelection)&&0===e.button){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._handleIncrementalClick(e):1===e.detail?this._handleSingleClick(e):2===e.detail?this._handleDoubleClick(e):3===e.detail&&this._handleTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener("mouseup",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval((()=>this._dragScroll()),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))}_handleSingleClick(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;const t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&0===t.hasWidth(this._model.selectionStart[0])&&this._model.selectionStart[0]++}_handleDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(e){const t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))}shouldColumnSelect(e){return e.altKey&&!(d.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;const t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd)return void this.refresh(!0);2===this._activeSelectionMode?this._model.selectionEnd[1]0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));const i=this._bufferService.buffer;if(this._model.selectionEnd[1]0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_handleMouseUp(e){const t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&t<500&&e.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){const t=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(t&&void 0!==t[0]&&void 0!==t[1]){const e=(0,o.moveToCellSequence)(t[0]-1,t[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(e,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd,i=!(!e||!t||e[0]===t[0]&&e[1]===t[1]);i?e&&t&&(this._oldSelectionStart&&this._oldSelectionEnd&&e[0]===this._oldSelectionStart[0]&&e[1]===this._oldSelectionStart[1]&&t[0]===this._oldSelectionEnd[0]&&t[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(e,t,i)):this._oldHasSelection&&this._fireOnSelectionChange(e,t,i)}_fireOnSelectionChange(e,t,i){this._oldSelectionStart=e,this._oldSelectionEnd=t,this._oldHasSelection=i,this._onSelectionChange.fire()}_handleBufferActivate(e){this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim((e=>this._handleTrim(e)))}_convertViewportColToCharacterIndex(e,t){let i=t;for(let s=0;t>=s;s++){const r=e.loadCell(s,this._workCell).getChars().length;0===this._workCell.getWidth()?i--:r>1&&t!==s&&(i+=r-1)}return i}setSelection(e,t,i){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=i,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,t,i=!0,s=!0){if(e[0]>=this._bufferService.cols)return;const r=this._bufferService.buffer,n=r.lines.get(e[1]);if(!n)return;const o=r.translateBufferLineToString(e[1],!1);let a=this._convertViewportColToCharacterIndex(n,e[0]),h=a;const c=e[0]-a;let l=0,d=0,_=0,u=0;if(" "===o.charAt(a)){for(;a>0&&" "===o.charAt(a-1);)a--;for(;h1&&(u+=s-1,h+=s-1);t>0&&a>0&&!this._isCharWordSeparator(n.loadCell(t-1,this._workCell));){n.loadCell(t-1,this._workCell);const e=this._workCell.getChars().length;0===this._workCell.getWidth()?(l++,t--):e>1&&(_+=e-1,a-=e-1),a--,t--}for(;i1&&(u+=e-1,h+=e-1),h++,i++}}h++;let f=a+c-l+_,v=Math.min(this._bufferService.cols,h-a+l+d-_-u);if(t||""!==o.slice(a,h).trim()){if(i&&0===f&&32!==n.getCodePoint(0)){const t=r.lines.get(e[1]-1);if(t&&n.isWrapped&&32!==t.getCodePoint(this._bufferService.cols-1)){const t=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(t){const e=this._bufferService.cols-t.start;f-=e,v+=e}}}if(s&&f+v===this._bufferService.cols&&32!==n.getCodePoint(this._bufferService.cols-1)){const t=r.lines.get(e[1]+1);if(t?.isWrapped&&32!==t.getCodePoint(0)){const t=this._getWordAt([0,e[1]+1],!1,!1,!0);t&&(v+=t.length)}}return{start:f,length:v}}}_selectWordAt(e,t){const i=this._getWordAt(e,t);if(i){for(;i.start<0;)i.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[i.start,e[1]],this._model.selectionStartLength=i.length}}_selectToWordAt(e){const t=this._getWordAt(e,!0);if(t){let i=e[1];for(;t.start<0;)t.start+=this._bufferService.cols,i--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,i++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,i]}}_isCharWordSeparator(e){return 0!==e.getWidth()&&this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){const t=this._bufferService.buffer.getWrappedRangeForLine(e),i={start:{x:0,y:t.first},end:{x:this._bufferService.cols-1,y:t.last}};this._model.selectionStart=[0,t.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,_.getRangeLength)(i,this._bufferService.cols)}};t.SelectionService=g=s([r(3,f.IBufferService),r(4,f.ICoreService),r(5,h.IMouseService),r(6,f.IOptionsService),r(7,h.IRenderService),r(8,h.ICoreBrowserService)],g)},4725:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ILinkProviderService=t.IThemeService=t.ICharacterJoinerService=t.ISelectionService=t.IRenderService=t.IMouseService=t.ICoreBrowserService=t.ICharSizeService=void 0;const s=i(8343);t.ICharSizeService=(0,s.createDecorator)("CharSizeService"),t.ICoreBrowserService=(0,s.createDecorator)("CoreBrowserService"),t.IMouseService=(0,s.createDecorator)("MouseService"),t.IRenderService=(0,s.createDecorator)("RenderService"),t.ISelectionService=(0,s.createDecorator)("SelectionService"),t.ICharacterJoinerService=(0,s.createDecorator)("CharacterJoinerService"),t.IThemeService=(0,s.createDecorator)("ThemeService"),t.ILinkProviderService=(0,s.createDecorator)("LinkProviderService")},6731:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeService=t.DEFAULT_ANSI_COLORS=void 0;const n=i(7239),o=i(8055),a=i(8460),h=i(844),c=i(2585),l=o.css.toColor("#ffffff"),d=o.css.toColor("#000000"),_=o.css.toColor("#ffffff"),u=o.css.toColor("#000000"),f={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117};t.DEFAULT_ANSI_COLORS=Object.freeze((()=>{const e=[o.css.toColor("#2e3436"),o.css.toColor("#cc0000"),o.css.toColor("#4e9a06"),o.css.toColor("#c4a000"),o.css.toColor("#3465a4"),o.css.toColor("#75507b"),o.css.toColor("#06989a"),o.css.toColor("#d3d7cf"),o.css.toColor("#555753"),o.css.toColor("#ef2929"),o.css.toColor("#8ae234"),o.css.toColor("#fce94f"),o.css.toColor("#729fcf"),o.css.toColor("#ad7fa8"),o.css.toColor("#34e2e2"),o.css.toColor("#eeeeec")],t=[0,95,135,175,215,255];for(let i=0;i<216;i++){const s=t[i/36%6|0],r=t[i/6%6|0],n=t[i%6];e.push({css:o.channels.toCss(s,r,n),rgba:o.channels.toRgba(s,r,n)})}for(let t=0;t<24;t++){const i=8+10*t;e.push({css:o.channels.toCss(i,i,i),rgba:o.channels.toRgba(i,i,i)})}return e})());let v=t.ThemeService=class extends h.Disposable{get colors(){return this._colors}constructor(e){super(),this._optionsService=e,this._contrastCache=new n.ColorContrastCache,this._halfContrastCache=new n.ColorContrastCache,this._onChangeColors=this.register(new a.EventEmitter),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:l,background:d,cursor:_,cursorAccent:u,selectionForeground:void 0,selectionBackgroundTransparent:f,selectionBackgroundOpaque:o.color.blend(d,f),selectionInactiveBackgroundTransparent:f,selectionInactiveBackgroundOpaque:o.color.blend(d,f),ansi:t.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this.register(this._optionsService.onSpecificOptionChange("minimumContrastRatio",(()=>this._contrastCache.clear()))),this.register(this._optionsService.onSpecificOptionChange("theme",(()=>this._setTheme(this._optionsService.rawOptions.theme))))}_setTheme(e={}){const i=this._colors;if(i.foreground=p(e.foreground,l),i.background=p(e.background,d),i.cursor=p(e.cursor,_),i.cursorAccent=p(e.cursorAccent,u),i.selectionBackgroundTransparent=p(e.selectionBackground,f),i.selectionBackgroundOpaque=o.color.blend(i.background,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundTransparent=p(e.selectionInactiveBackground,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundOpaque=o.color.blend(i.background,i.selectionInactiveBackgroundTransparent),i.selectionForeground=e.selectionForeground?p(e.selectionForeground,o.NULL_COLOR):void 0,i.selectionForeground===o.NULL_COLOR&&(i.selectionForeground=void 0),o.color.isOpaque(i.selectionBackgroundTransparent)){const e=.3;i.selectionBackgroundTransparent=o.color.opacity(i.selectionBackgroundTransparent,e)}if(o.color.isOpaque(i.selectionInactiveBackgroundTransparent)){const e=.3;i.selectionInactiveBackgroundTransparent=o.color.opacity(i.selectionInactiveBackgroundTransparent,e)}if(i.ansi=t.DEFAULT_ANSI_COLORS.slice(),i.ansi[0]=p(e.black,t.DEFAULT_ANSI_COLORS[0]),i.ansi[1]=p(e.red,t.DEFAULT_ANSI_COLORS[1]),i.ansi[2]=p(e.green,t.DEFAULT_ANSI_COLORS[2]),i.ansi[3]=p(e.yellow,t.DEFAULT_ANSI_COLORS[3]),i.ansi[4]=p(e.blue,t.DEFAULT_ANSI_COLORS[4]),i.ansi[5]=p(e.magenta,t.DEFAULT_ANSI_COLORS[5]),i.ansi[6]=p(e.cyan,t.DEFAULT_ANSI_COLORS[6]),i.ansi[7]=p(e.white,t.DEFAULT_ANSI_COLORS[7]),i.ansi[8]=p(e.brightBlack,t.DEFAULT_ANSI_COLORS[8]),i.ansi[9]=p(e.brightRed,t.DEFAULT_ANSI_COLORS[9]),i.ansi[10]=p(e.brightGreen,t.DEFAULT_ANSI_COLORS[10]),i.ansi[11]=p(e.brightYellow,t.DEFAULT_ANSI_COLORS[11]),i.ansi[12]=p(e.brightBlue,t.DEFAULT_ANSI_COLORS[12]),i.ansi[13]=p(e.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),i.ansi[14]=p(e.brightCyan,t.DEFAULT_ANSI_COLORS[14]),i.ansi[15]=p(e.brightWhite,t.DEFAULT_ANSI_COLORS[15]),e.extendedAnsi){const s=Math.min(i.ansi.length-16,e.extendedAnsi.length);for(let r=0;r{Object.defineProperty(t,"__esModule",{value:!0}),t.CircularList=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._maxLength=e,this.onDeleteEmitter=this.register(new s.EventEmitter),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this.register(new s.EventEmitter),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this.register(new s.EventEmitter),this.onTrim=this.onTrimEmitter.event,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(e){if(this._maxLength===e)return;const t=new Array(e);for(let i=0;ithis._length)for(let t=this._length;t=e;t--)this._array[this._getCyclicIndex(t+i.length)]=this._array[this._getCyclicIndex(t)];for(let t=0;tthis._maxLength){const e=this._length+i.length-this._maxLength;this._startIndex+=e,this._length=this._maxLength,this.onTrimEmitter.fire(e)}else this._length+=i.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,t,i){if(!(t<=0)){if(e<0||e>=this._length)throw new Error("start argument out of range");if(e+i<0)throw new Error("Cannot shift elements in list beyond index 0");if(i>0){for(let s=t-1;s>=0;s--)this.set(e+s+i,this.get(e+s));const s=e+t+i-this._length;if(s>0)for(this._length+=s;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let s=0;s{Object.defineProperty(t,"__esModule",{value:!0}),t.clone=void 0,t.clone=function e(t,i=5){if("object"!=typeof t)return t;const s=Array.isArray(t)?[]:{};for(const r in t)s[r]=i<=1?t[r]:t[r]&&e(t[r],i-1);return s}},8055:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;let i=0,s=0,r=0,n=0;var o,a,h,c,l;function d(e){const t=e.toString(16);return t.length<2?"0"+t:t}function _(e,t){return e>>0},e.toColor=function(t,i,s,r){return{css:e.toCss(t,i,s,r),rgba:e.toRgba(t,i,s,r)}}}(o||(t.channels=o={})),function(e){function t(e,t){return n=Math.round(255*t),[i,s,r]=l.toChannels(e.rgba),{css:o.toCss(i,s,r,n),rgba:o.toRgba(i,s,r,n)}}e.blend=function(e,t){if(n=(255&t.rgba)/255,1===n)return{css:t.css,rgba:t.rgba};const a=t.rgba>>24&255,h=t.rgba>>16&255,c=t.rgba>>8&255,l=e.rgba>>24&255,d=e.rgba>>16&255,_=e.rgba>>8&255;return i=l+Math.round((a-l)*n),s=d+Math.round((h-d)*n),r=_+Math.round((c-_)*n),{css:o.toCss(i,s,r),rgba:o.toRgba(i,s,r)}},e.isOpaque=function(e){return 255==(255&e.rgba)},e.ensureContrastRatio=function(e,t,i){const s=l.ensureContrastRatio(e.rgba,t.rgba,i);if(s)return o.toColor(s>>24&255,s>>16&255,s>>8&255)},e.opaque=function(e){const t=(255|e.rgba)>>>0;return[i,s,r]=l.toChannels(t),{css:o.toCss(i,s,r),rgba:t}},e.opacity=t,e.multiplyOpacity=function(e,i){return n=255&e.rgba,t(e,n*i/255)},e.toColorRGB=function(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}}(a||(t.color=a={})),function(e){let t,a;try{const e=document.createElement("canvas");e.width=1,e.height=1;const i=e.getContext("2d",{willReadFrequently:!0});i&&(t=i,t.globalCompositeOperation="copy",a=t.createLinearGradient(0,0,1,1))}catch{}e.toColor=function(e){if(e.match(/#[\da-f]{3,8}/i))switch(e.length){case 4:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),o.toColor(i,s,r);case 5:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),n=parseInt(e.slice(4,5).repeat(2),16),o.toColor(i,s,r,n);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}const h=e.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(h)return i=parseInt(h[1]),s=parseInt(h[2]),r=parseInt(h[3]),n=Math.round(255*(void 0===h[5]?1:parseFloat(h[5]))),o.toColor(i,s,r,n);if(!t||!a)throw new Error("css.toColor: Unsupported css format");if(t.fillStyle=a,t.fillStyle=e,"string"!=typeof t.fillStyle)throw new Error("css.toColor: Unsupported css format");if(t.fillRect(0,0,1,1),[i,s,r,n]=t.getImageData(0,0,1,1).data,255!==n)throw new Error("css.toColor: Unsupported css format");return{rgba:o.toRgba(i,s,r,n),css:e}}}(h||(t.css=h={})),function(e){function t(e,t,i){const s=e/255,r=t/255,n=i/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))}e.relativeLuminance=function(e){return t(e>>16&255,e>>8&255,255&e)},e.relativeLuminance2=t}(c||(t.rgb=c={})),function(e){function t(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));for(;l0||a>0||h>0);)o-=Math.max(0,Math.ceil(.1*o)),a-=Math.max(0,Math.ceil(.1*a)),h-=Math.max(0,Math.ceil(.1*h)),l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));return(o<<24|a<<16|h<<8|255)>>>0}function a(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));for(;l>>0}e.blend=function(e,t){if(n=(255&t)/255,1===n)return t;const a=t>>24&255,h=t>>16&255,c=t>>8&255,l=e>>24&255,d=e>>16&255,_=e>>8&255;return i=l+Math.round((a-l)*n),s=d+Math.round((h-d)*n),r=_+Math.round((c-_)*n),o.toRgba(i,s,r)},e.ensureContrastRatio=function(e,i,s){const r=c.relativeLuminance(e>>8),n=c.relativeLuminance(i>>8);if(_(r,n)>8));if(o_(r,c.relativeLuminance(t>>8))?n:t}return n}const o=a(e,i,s),h=_(r,c.relativeLuminance(o>>8));if(h_(r,c.relativeLuminance(n>>8))?o:n}return o}},e.reduceLuminance=t,e.increaseLuminance=a,e.toChannels=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]}}(l||(t.rgba=l={})),t.toPaddedHex=d,t.contrastRatio=_},8969:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CoreTerminal=void 0;const s=i(844),r=i(2585),n=i(4348),o=i(7866),a=i(744),h=i(7302),c=i(6975),l=i(8460),d=i(1753),_=i(1480),u=i(7994),f=i(9282),v=i(5435),p=i(5981),g=i(2660);let m=!1;class S extends s.Disposable{get onScroll(){return this._onScrollApi||(this._onScrollApi=this.register(new l.EventEmitter),this._onScroll.event((e=>{this._onScrollApi?.fire(e.position)}))),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(e){for(const t in e)this.optionsService.options[t]=e[t]}constructor(e){super(),this._windowsWrappingHeuristics=this.register(new s.MutableDisposable),this._onBinary=this.register(new l.EventEmitter),this.onBinary=this._onBinary.event,this._onData=this.register(new l.EventEmitter),this.onData=this._onData.event,this._onLineFeed=this.register(new l.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onResize=this.register(new l.EventEmitter),this.onResize=this._onResize.event,this._onWriteParsed=this.register(new l.EventEmitter),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this.register(new l.EventEmitter),this._instantiationService=new n.InstantiationService,this.optionsService=this.register(new h.OptionsService(e)),this._instantiationService.setService(r.IOptionsService,this.optionsService),this._bufferService=this.register(this._instantiationService.createInstance(a.BufferService)),this._instantiationService.setService(r.IBufferService,this._bufferService),this._logService=this.register(this._instantiationService.createInstance(o.LogService)),this._instantiationService.setService(r.ILogService,this._logService),this.coreService=this.register(this._instantiationService.createInstance(c.CoreService)),this._instantiationService.setService(r.ICoreService,this.coreService),this.coreMouseService=this.register(this._instantiationService.createInstance(d.CoreMouseService)),this._instantiationService.setService(r.ICoreMouseService,this.coreMouseService),this.unicodeService=this.register(this._instantiationService.createInstance(_.UnicodeService)),this._instantiationService.setService(r.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(u.CharsetService),this._instantiationService.setService(r.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(g.OscLinkService),this._instantiationService.setService(r.IOscLinkService,this._oscLinkService),this._inputHandler=this.register(new v.InputHandler(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this.register((0,l.forwardEvent)(this._inputHandler.onLineFeed,this._onLineFeed)),this.register(this._inputHandler),this.register((0,l.forwardEvent)(this._bufferService.onResize,this._onResize)),this.register((0,l.forwardEvent)(this.coreService.onData,this._onData)),this.register((0,l.forwardEvent)(this.coreService.onBinary,this._onBinary)),this.register(this.coreService.onRequestScrollToBottom((()=>this.scrollToBottom()))),this.register(this.coreService.onUserInput((()=>this._writeBuffer.handleUserInput()))),this.register(this.optionsService.onMultipleOptionChange(["windowsMode","windowsPty"],(()=>this._handleWindowsPtyOptionChange()))),this.register(this._bufferService.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this.register(this._inputHandler.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this._writeBuffer=this.register(new p.WriteBuffer(((e,t)=>this._inputHandler.parse(e,t)))),this.register((0,l.forwardEvent)(this._writeBuffer.onWriteParsed,this._onWriteParsed))}write(e,t){this._writeBuffer.write(e,t)}writeSync(e,t){this._logService.logLevel<=r.LogLevelEnum.WARN&&!m&&(this._logService.warn("writeSync is unreliable and will be removed soon."),m=!0),this._writeBuffer.writeSync(e,t)}input(e,t=!0){this.coreService.triggerDataEvent(e,t)}resize(e,t){isNaN(e)||isNaN(t)||(e=Math.max(e,a.MINIMUM_COLS),t=Math.max(t,a.MINIMUM_ROWS),this._bufferService.resize(e,t))}scroll(e,t=!1){this._bufferService.scroll(e,t)}scrollLines(e,t,i){this._bufferService.scrollLines(e,t,i)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){const t=e-this._bufferService.buffer.ydisp;0!==t&&this.scrollLines(t)}registerEscHandler(e,t){return this._inputHandler.registerEscHandler(e,t)}registerDcsHandler(e,t){return this._inputHandler.registerDcsHandler(e,t)}registerCsiHandler(e,t){return this._inputHandler.registerCsiHandler(e,t)}registerOscHandler(e,t){return this._inputHandler.registerOscHandler(e,t)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let e=!1;const t=this.optionsService.rawOptions.windowsPty;t&&void 0!==t.buildNumber&&void 0!==t.buildNumber?e=!!("conpty"===t.backend&&t.buildNumber<21376):this.optionsService.rawOptions.windowsMode&&(e=!0),e?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){const e=[];e.push(this.onLineFeed(f.updateWindowsModeWrappedState.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:"H"},(()=>((0,f.updateWindowsModeWrappedState)(this._bufferService),!1)))),this._windowsWrappingHeuristics.value=(0,s.toDisposable)((()=>{for(const t of e)t.dispose()}))}}}t.CoreTerminal=S},8460:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;tt.fire(e)))},t.runAndSubscribe=function(e,t){return t(void 0),e((e=>t(e)))}},5435:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.InputHandler=t.WindowsOptionsReportType=void 0;const n=i(2584),o=i(7116),a=i(2015),h=i(844),c=i(482),l=i(8437),d=i(8460),_=i(643),u=i(511),f=i(3734),v=i(2585),p=i(1480),g=i(6242),m=i(6351),S=i(5941),C={"(":0,")":1,"*":2,"+":3,"-":1,".":2},b=131072;function w(e,t){if(e>24)return t.setWinLines||!1;switch(e){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}var y;!function(e){e[e.GET_WIN_SIZE_PIXELS=0]="GET_WIN_SIZE_PIXELS",e[e.GET_CELL_SIZE_PIXELS=1]="GET_CELL_SIZE_PIXELS"}(y||(t.WindowsOptionsReportType=y={}));let E=0;class k extends h.Disposable{getAttrData(){return this._curAttrData}constructor(e,t,i,s,r,h,_,f,v=new a.EscapeSequenceParser){super(),this._bufferService=e,this._charsetService=t,this._coreService=i,this._logService=s,this._optionsService=r,this._oscLinkService=h,this._coreMouseService=_,this._unicodeService=f,this._parser=v,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new c.StringToUtf32,this._utf8Decoder=new c.Utf8ToUtf32,this._workCell=new u.CellData,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=l.DEFAULT_ATTR_DATA.clone(),this._onRequestBell=this.register(new d.EventEmitter),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this.register(new d.EventEmitter),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this.register(new d.EventEmitter),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this.register(new d.EventEmitter),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this.register(new d.EventEmitter),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this.register(new d.EventEmitter),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this.register(new d.EventEmitter),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this.register(new d.EventEmitter),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this.register(new d.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this.register(new d.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onScroll=this.register(new d.EventEmitter),this.onScroll=this._onScroll.event,this._onTitleChange=this.register(new d.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onColor=this.register(new d.EventEmitter),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this.register(this._parser),this._dirtyRowTracker=new L(this._bufferService),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._parser.setCsiHandlerFallback(((e,t)=>{this._logService.debug("Unknown CSI code: ",{identifier:this._parser.identToString(e),params:t.toArray()})})),this._parser.setEscHandlerFallback((e=>{this._logService.debug("Unknown ESC code: ",{identifier:this._parser.identToString(e)})})),this._parser.setExecuteHandlerFallback((e=>{this._logService.debug("Unknown EXECUTE code: ",{code:e})})),this._parser.setOscHandlerFallback(((e,t,i)=>{this._logService.debug("Unknown OSC code: ",{identifier:e,action:t,data:i})})),this._parser.setDcsHandlerFallback(((e,t,i)=>{"HOOK"===t&&(i=i.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(e),action:t,payload:i})})),this._parser.setPrintHandler(((e,t,i)=>this.print(e,t,i))),this._parser.registerCsiHandler({final:"@"},(e=>this.insertChars(e))),this._parser.registerCsiHandler({intermediates:" ",final:"@"},(e=>this.scrollLeft(e))),this._parser.registerCsiHandler({final:"A"},(e=>this.cursorUp(e))),this._parser.registerCsiHandler({intermediates:" ",final:"A"},(e=>this.scrollRight(e))),this._parser.registerCsiHandler({final:"B"},(e=>this.cursorDown(e))),this._parser.registerCsiHandler({final:"C"},(e=>this.cursorForward(e))),this._parser.registerCsiHandler({final:"D"},(e=>this.cursorBackward(e))),this._parser.registerCsiHandler({final:"E"},(e=>this.cursorNextLine(e))),this._parser.registerCsiHandler({final:"F"},(e=>this.cursorPrecedingLine(e))),this._parser.registerCsiHandler({final:"G"},(e=>this.cursorCharAbsolute(e))),this._parser.registerCsiHandler({final:"H"},(e=>this.cursorPosition(e))),this._parser.registerCsiHandler({final:"I"},(e=>this.cursorForwardTab(e))),this._parser.registerCsiHandler({final:"J"},(e=>this.eraseInDisplay(e,!1))),this._parser.registerCsiHandler({prefix:"?",final:"J"},(e=>this.eraseInDisplay(e,!0))),this._parser.registerCsiHandler({final:"K"},(e=>this.eraseInLine(e,!1))),this._parser.registerCsiHandler({prefix:"?",final:"K"},(e=>this.eraseInLine(e,!0))),this._parser.registerCsiHandler({final:"L"},(e=>this.insertLines(e))),this._parser.registerCsiHandler({final:"M"},(e=>this.deleteLines(e))),this._parser.registerCsiHandler({final:"P"},(e=>this.deleteChars(e))),this._parser.registerCsiHandler({final:"S"},(e=>this.scrollUp(e))),this._parser.registerCsiHandler({final:"T"},(e=>this.scrollDown(e))),this._parser.registerCsiHandler({final:"X"},(e=>this.eraseChars(e))),this._parser.registerCsiHandler({final:"Z"},(e=>this.cursorBackwardTab(e))),this._parser.registerCsiHandler({final:"`"},(e=>this.charPosAbsolute(e))),this._parser.registerCsiHandler({final:"a"},(e=>this.hPositionRelative(e))),this._parser.registerCsiHandler({final:"b"},(e=>this.repeatPrecedingCharacter(e))),this._parser.registerCsiHandler({final:"c"},(e=>this.sendDeviceAttributesPrimary(e))),this._parser.registerCsiHandler({prefix:">",final:"c"},(e=>this.sendDeviceAttributesSecondary(e))),this._parser.registerCsiHandler({final:"d"},(e=>this.linePosAbsolute(e))),this._parser.registerCsiHandler({final:"e"},(e=>this.vPositionRelative(e))),this._parser.registerCsiHandler({final:"f"},(e=>this.hVPosition(e))),this._parser.registerCsiHandler({final:"g"},(e=>this.tabClear(e))),this._parser.registerCsiHandler({final:"h"},(e=>this.setMode(e))),this._parser.registerCsiHandler({prefix:"?",final:"h"},(e=>this.setModePrivate(e))),this._parser.registerCsiHandler({final:"l"},(e=>this.resetMode(e))),this._parser.registerCsiHandler({prefix:"?",final:"l"},(e=>this.resetModePrivate(e))),this._parser.registerCsiHandler({final:"m"},(e=>this.charAttributes(e))),this._parser.registerCsiHandler({final:"n"},(e=>this.deviceStatus(e))),this._parser.registerCsiHandler({prefix:"?",final:"n"},(e=>this.deviceStatusPrivate(e))),this._parser.registerCsiHandler({intermediates:"!",final:"p"},(e=>this.softReset(e))),this._parser.registerCsiHandler({intermediates:" ",final:"q"},(e=>this.setCursorStyle(e))),this._parser.registerCsiHandler({final:"r"},(e=>this.setScrollRegion(e))),this._parser.registerCsiHandler({final:"s"},(e=>this.saveCursor(e))),this._parser.registerCsiHandler({final:"t"},(e=>this.windowOptions(e))),this._parser.registerCsiHandler({final:"u"},(e=>this.restoreCursor(e))),this._parser.registerCsiHandler({intermediates:"'",final:"}"},(e=>this.insertColumns(e))),this._parser.registerCsiHandler({intermediates:"'",final:"~"},(e=>this.deleteColumns(e))),this._parser.registerCsiHandler({intermediates:'"',final:"q"},(e=>this.selectProtected(e))),this._parser.registerCsiHandler({intermediates:"$",final:"p"},(e=>this.requestMode(e,!0))),this._parser.registerCsiHandler({prefix:"?",intermediates:"$",final:"p"},(e=>this.requestMode(e,!1))),this._parser.setExecuteHandler(n.C0.BEL,(()=>this.bell())),this._parser.setExecuteHandler(n.C0.LF,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.VT,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.FF,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.CR,(()=>this.carriageReturn())),this._parser.setExecuteHandler(n.C0.BS,(()=>this.backspace())),this._parser.setExecuteHandler(n.C0.HT,(()=>this.tab())),this._parser.setExecuteHandler(n.C0.SO,(()=>this.shiftOut())),this._parser.setExecuteHandler(n.C0.SI,(()=>this.shiftIn())),this._parser.setExecuteHandler(n.C1.IND,(()=>this.index())),this._parser.setExecuteHandler(n.C1.NEL,(()=>this.nextLine())),this._parser.setExecuteHandler(n.C1.HTS,(()=>this.tabSet())),this._parser.registerOscHandler(0,new g.OscHandler((e=>(this.setTitle(e),this.setIconName(e),!0)))),this._parser.registerOscHandler(1,new g.OscHandler((e=>this.setIconName(e)))),this._parser.registerOscHandler(2,new g.OscHandler((e=>this.setTitle(e)))),this._parser.registerOscHandler(4,new g.OscHandler((e=>this.setOrReportIndexedColor(e)))),this._parser.registerOscHandler(8,new g.OscHandler((e=>this.setHyperlink(e)))),this._parser.registerOscHandler(10,new g.OscHandler((e=>this.setOrReportFgColor(e)))),this._parser.registerOscHandler(11,new g.OscHandler((e=>this.setOrReportBgColor(e)))),this._parser.registerOscHandler(12,new g.OscHandler((e=>this.setOrReportCursorColor(e)))),this._parser.registerOscHandler(104,new g.OscHandler((e=>this.restoreIndexedColor(e)))),this._parser.registerOscHandler(110,new g.OscHandler((e=>this.restoreFgColor(e)))),this._parser.registerOscHandler(111,new g.OscHandler((e=>this.restoreBgColor(e)))),this._parser.registerOscHandler(112,new g.OscHandler((e=>this.restoreCursorColor(e)))),this._parser.registerEscHandler({final:"7"},(()=>this.saveCursor())),this._parser.registerEscHandler({final:"8"},(()=>this.restoreCursor())),this._parser.registerEscHandler({final:"D"},(()=>this.index())),this._parser.registerEscHandler({final:"E"},(()=>this.nextLine())),this._parser.registerEscHandler({final:"H"},(()=>this.tabSet())),this._parser.registerEscHandler({final:"M"},(()=>this.reverseIndex())),this._parser.registerEscHandler({final:"="},(()=>this.keypadApplicationMode())),this._parser.registerEscHandler({final:">"},(()=>this.keypadNumericMode())),this._parser.registerEscHandler({final:"c"},(()=>this.fullReset())),this._parser.registerEscHandler({final:"n"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:"o"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:"|"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:"}"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:"~"},(()=>this.setgLevel(1))),this._parser.registerEscHandler({intermediates:"%",final:"@"},(()=>this.selectDefaultCharset())),this._parser.registerEscHandler({intermediates:"%",final:"G"},(()=>this.selectDefaultCharset()));for(const e in o.CHARSETS)this._parser.registerEscHandler({intermediates:"(",final:e},(()=>this.selectCharset("("+e))),this._parser.registerEscHandler({intermediates:")",final:e},(()=>this.selectCharset(")"+e))),this._parser.registerEscHandler({intermediates:"*",final:e},(()=>this.selectCharset("*"+e))),this._parser.registerEscHandler({intermediates:"+",final:e},(()=>this.selectCharset("+"+e))),this._parser.registerEscHandler({intermediates:"-",final:e},(()=>this.selectCharset("-"+e))),this._parser.registerEscHandler({intermediates:".",final:e},(()=>this.selectCharset("."+e))),this._parser.registerEscHandler({intermediates:"/",final:e},(()=>this.selectCharset("/"+e)));this._parser.registerEscHandler({intermediates:"#",final:"8"},(()=>this.screenAlignmentPattern())),this._parser.setErrorHandler((e=>(this._logService.error("Parsing error: ",e),e))),this._parser.registerDcsHandler({intermediates:"$",final:"q"},new m.DcsHandler(((e,t)=>this.requestStatusString(e,t))))}_preserveStack(e,t,i,s){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=t,this._parseStack.decodedLength=i,this._parseStack.position=s}_logSlowResolvingAsync(e){this._logService.logLevel<=v.LogLevelEnum.WARN&&Promise.race([e,new Promise(((e,t)=>setTimeout((()=>t("#SLOW_TIMEOUT")),5e3)))]).catch((e=>{if("#SLOW_TIMEOUT"!==e)throw e;console.warn("async parser handler taking longer than 5000 ms")}))}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,t){let i,s=this._activeBuffer.x,r=this._activeBuffer.y,n=0;const o=this._parseStack.paused;if(o){if(i=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,t))return this._logSlowResolvingAsync(i),i;s=this._parseStack.cursorStartX,r=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>b&&(n=this._parseStack.position+b)}if(this._logService.logLevel<=v.LogLevelEnum.DEBUG&&this._logService.debug("parsing data"+("string"==typeof e?` "${e}"`:` "${Array.prototype.map.call(e,(e=>String.fromCharCode(e))).join("")}"`),"string"==typeof e?e.split("").map((e=>e.charCodeAt(0))):e),this._parseBuffer.lengthb)for(let t=n;t0&&2===f.getWidth(this._activeBuffer.x-1)&&f.setCellFromCodepoint(this._activeBuffer.x-1,0,1,u);let v=this._parser.precedingJoinState;for(let g=t;ga)if(h){const e=f;let t=this._activeBuffer.x-m;for(this._activeBuffer.x=m,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),f=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),m>0&&f instanceof l.BufferLine&&f.copyCellsFrom(e,t,0,m,!1);t=0;)f.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}else if(d&&(f.insertCells(this._activeBuffer.x,r-m,this._activeBuffer.getNullCell(u)),2===f.getWidth(a-1)&&f.setCellFromCodepoint(a-1,_.NULL_CELL_CODE,_.NULL_CELL_WIDTH,u)),f.setCellFromCodepoint(this._activeBuffer.x++,s,r,u),r>0)for(;--r;)f.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}this._parser.precedingJoinState=v,this._activeBuffer.x0&&0===f.getWidth(this._activeBuffer.x)&&!f.hasContent(this._activeBuffer.x)&&f.setCellFromCodepoint(this._activeBuffer.x,0,1,u),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,t){return"t"!==e.final||e.prefix||e.intermediates?this._parser.registerCsiHandler(e,t):this._parser.registerCsiHandler(e,(e=>!w(e.params[0],this._optionsService.rawOptions.windowOptions)||t(e)))}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new m.DcsHandler(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new g.OscHandler(t))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(0===this._activeBuffer.x&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)?.isWrapped){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;const e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);e.hasWidth(this._activeBuffer.x)&&!e.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;const e=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-e),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(e=this._bufferService.cols-1){this._activeBuffer.x=Math.min(e,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(e,t){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+t):(this._activeBuffer.x=e,this._activeBuffer.y=t),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(e,t){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+t)}cursorUp(e){const t=this._activeBuffer.y-this._activeBuffer.scrollTop;return t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){const t=this._activeBuffer.scrollBottom-this._activeBuffer.y;return t>=0?this._moveCursor(0,Math.min(t,e.params[0]||1)):this._moveCursor(0,e.params[0]||1),!0}cursorForward(e){return this._moveCursor(e.params[0]||1,0),!0}cursorBackward(e){return this._moveCursor(-(e.params[0]||1),0),!0}cursorNextLine(e){return this.cursorDown(e),this._activeBuffer.x=0,!0}cursorPrecedingLine(e){return this.cursorUp(e),this._activeBuffer.x=0,!0}cursorCharAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(e){return this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1),!0}charPosAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(e){return this._moveCursor(e.params[0]||1,0),!0}linePosAbsolute(e){return this._setCursor(this._activeBuffer.x,(e.params[0]||1)-1),!0}vPositionRelative(e){return this._moveCursor(0,e.params[0]||1),!0}hVPosition(e){return this.cursorPosition(e),!0}tabClear(e){const t=e.params[0];return 0===t?delete this._activeBuffer.tabs[this._activeBuffer.x]:3===t&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){const t=e.params[0];return 1===t&&(this._curAttrData.bg|=536870912),2!==t&&0!==t||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(e,t,i,s=!1,r=!1){const n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.replaceCells(t,i,this._activeBuffer.getNullCell(this._eraseAttrData()),r),s&&(n.isWrapped=!1)}_resetBufferLine(e,t=!1){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i&&(i.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),t),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),i.isWrapped=!1)}eraseInDisplay(e,t=!1){let i;switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:for(i=this._activeBuffer.y,this._dirtyRowTracker.markDirty(i),this._eraseInBufferLine(i++,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);i=this._bufferService.cols&&(this._activeBuffer.lines.get(i+1).isWrapped=!1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 2:for(i=this._bufferService.rows,this._dirtyRowTracker.markDirty(i-1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 3:const e=this._activeBuffer.lines.length-this._bufferService.rows;e>0&&(this._activeBuffer.lines.trimStart(e),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-e,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-e,0),this._onScroll.fire(0))}return!0}eraseInLine(e,t=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,t);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,t)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.y65535?2:1}let h=a;for(let e=1;e0||(this._is("xterm")||this._is("rxvt-unicode")||this._is("screen")?this._coreService.triggerDataEvent(n.C0.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(n.C0.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(n.C0.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(n.C0.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(e.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(n.C0.ESC+"[>83;40003;0c")),!0}_is(e){return 0===(this._optionsService.rawOptions.termName+"").indexOf(e)}setMode(e){for(let t=0;te?1:2,u=e.params[0];return f=u,v=t?2===u?4:4===u?_(o.modes.insertMode):12===u?3:20===u?_(d.convertEol):0:1===u?_(i.applicationCursorKeys):3===u?d.windowOptions.setWinLines?80===h?2:132===h?1:0:0:6===u?_(i.origin):7===u?_(i.wraparound):8===u?3:9===u?_("X10"===s):12===u?_(d.cursorBlink):25===u?_(!o.isCursorHidden):45===u?_(i.reverseWraparound):66===u?_(i.applicationKeypad):67===u?4:1e3===u?_("VT200"===s):1002===u?_("DRAG"===s):1003===u?_("ANY"===s):1004===u?_(i.sendFocus):1005===u?4:1006===u?_("SGR"===r):1015===u?4:1016===u?_("SGR_PIXELS"===r):1048===u?1:47===u||1047===u||1049===u?_(c===l):2004===u?_(i.bracketedPasteMode):0,o.triggerDataEvent(`${n.C0.ESC}[${t?"":"?"}${f};${v}$y`),!0;var f,v}_updateAttrColor(e,t,i,s,r){return 2===t?(e|=50331648,e&=-16777216,e|=f.AttributeData.fromColorRGB([i,s,r])):5===t&&(e&=-50331904,e|=33554432|255&i),e}_extractColor(e,t,i){const s=[0,0,-1,0,0,0];let r=0,n=0;do{if(s[n+r]=e.params[t+n],e.hasSubParams(t+n)){const i=e.getSubParams(t+n);let o=0;do{5===s[1]&&(r=1),s[n+o+1+r]=i[o]}while(++o=2||2===s[1]&&n+r>=5)break;s[1]&&(r=1)}while(++n+t5)&&(e=1),t.extended.underlineStyle=e,t.fg|=268435456,0===e&&(t.fg&=-268435457),t.updateExtended()}_processSGR0(e){e.fg=l.DEFAULT_ATTR_DATA.fg,e.bg=l.DEFAULT_ATTR_DATA.bg,e.extended=e.extended.clone(),e.extended.underlineStyle=0,e.extended.underlineColor&=-67108864,e.updateExtended()}charAttributes(e){if(1===e.length&&0===e.params[0])return this._processSGR0(this._curAttrData),!0;const t=e.length;let i;const s=this._curAttrData;for(let r=0;r=30&&i<=37?(s.fg&=-50331904,s.fg|=16777216|i-30):i>=40&&i<=47?(s.bg&=-50331904,s.bg|=16777216|i-40):i>=90&&i<=97?(s.fg&=-50331904,s.fg|=16777224|i-90):i>=100&&i<=107?(s.bg&=-50331904,s.bg|=16777224|i-100):0===i?this._processSGR0(s):1===i?s.fg|=134217728:3===i?s.bg|=67108864:4===i?(s.fg|=268435456,this._processUnderline(e.hasSubParams(r)?e.getSubParams(r)[0]:1,s)):5===i?s.fg|=536870912:7===i?s.fg|=67108864:8===i?s.fg|=1073741824:9===i?s.fg|=2147483648:2===i?s.bg|=134217728:21===i?this._processUnderline(2,s):22===i?(s.fg&=-134217729,s.bg&=-134217729):23===i?s.bg&=-67108865:24===i?(s.fg&=-268435457,this._processUnderline(0,s)):25===i?s.fg&=-536870913:27===i?s.fg&=-67108865:28===i?s.fg&=-1073741825:29===i?s.fg&=2147483647:39===i?(s.fg&=-67108864,s.fg|=16777215&l.DEFAULT_ATTR_DATA.fg):49===i?(s.bg&=-67108864,s.bg|=16777215&l.DEFAULT_ATTR_DATA.bg):38===i||48===i||58===i?r+=this._extractColor(e,r,s):53===i?s.bg|=1073741824:55===i?s.bg&=-1073741825:59===i?(s.extended=s.extended.clone(),s.extended.underlineColor=-1,s.updateExtended()):100===i?(s.fg&=-67108864,s.fg|=16777215&l.DEFAULT_ATTR_DATA.fg,s.bg&=-67108864,s.bg|=16777215&l.DEFAULT_ATTR_DATA.bg):this._logService.debug("Unknown SGR attribute: %d.",i);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${n.C0.ESC}[0n`);break;case 6:const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${n.C0.ESC}[${e};${t}R`)}return!0}deviceStatusPrivate(e){if(6===e.params[0]){const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${n.C0.ESC}[?${e};${t}R`)}return!0}softReset(e){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(e){const t=e.params[0]||1;switch(t){case 1:case 2:this._optionsService.options.cursorStyle="block";break;case 3:case 4:this._optionsService.options.cursorStyle="underline";break;case 5:case 6:this._optionsService.options.cursorStyle="bar"}const i=t%2==1;return this._optionsService.options.cursorBlink=i,!0}setScrollRegion(e){const t=e.params[0]||1;let i;return(e.length<2||(i=e.params[1])>this._bufferService.rows||0===i)&&(i=this._bufferService.rows),i>t&&(this._activeBuffer.scrollTop=t-1,this._activeBuffer.scrollBottom=i-1,this._setCursor(0,0)),!0}windowOptions(e){if(!w(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;const t=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:2!==t&&this._onRequestWindowsOptionsReport.fire(y.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(y.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${n.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:0!==t&&2!==t||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),0!==t&&1!==t||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:0!==t&&2!==t||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),0!==t&&1!==t||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(e){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(e){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(e){return this._windowTitle=e,this._onTitleChange.fire(e),!0}setIconName(e){return this._iconName=e,!0}setOrReportIndexedColor(e){const t=[],i=e.split(";");for(;i.length>1;){const e=i.shift(),s=i.shift();if(/^\d+$/.exec(e)){const i=parseInt(e);if(D(i))if("?"===s)t.push({type:0,index:i});else{const e=(0,S.parseColor)(s);e&&t.push({type:1,index:i,color:e})}}}return t.length&&this._onColor.fire(t),!0}setHyperlink(e){const t=e.split(";");return!(t.length<2)&&(t[1]?this._createHyperlink(t[0],t[1]):!t[0]&&this._finishHyperlink())}_createHyperlink(e,t){this._getCurrentLinkId()&&this._finishHyperlink();const i=e.split(":");let s;const r=i.findIndex((e=>e.startsWith("id=")));return-1!==r&&(s=i[r].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:s,uri:t}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(e,t){const i=e.split(";");for(let e=0;e=this._specialColors.length);++e,++t)if("?"===i[e])this._onColor.fire([{type:0,index:this._specialColors[t]}]);else{const s=(0,S.parseColor)(i[e]);s&&this._onColor.fire([{type:1,index:this._specialColors[t],color:s}])}return!0}setOrReportFgColor(e){return this._setOrReportSpecialColor(e,0)}setOrReportBgColor(e){return this._setOrReportSpecialColor(e,1)}setOrReportCursorColor(e){return this._setOrReportSpecialColor(e,2)}restoreIndexedColor(e){if(!e)return this._onColor.fire([{type:2}]),!0;const t=[],i=e.split(";");for(let e=0;e=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){const e=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,e,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=l.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){const e=new u.CellData;e.content=1<<22|"E".charCodeAt(0),e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let t=0;t(this._coreService.triggerDataEvent(`${n.C0.ESC}${e}${n.C0.ESC}\\`),!0))('"q'===e?`P1$r${this._curAttrData.isProtected()?1:0}"q`:'"p'===e?'P1$r61;1"p':"r"===e?`P1$r${i.scrollTop+1};${i.scrollBottom+1}r`:"m"===e?"P1$r0m":" q"===e?`P1$r${{block:2,underline:4,bar:6}[s.cursorStyle]-(s.cursorBlink?1:0)} q`:"P0$r")}markRangeDirty(e,t){this._dirtyRowTracker.markRangeDirty(e,t)}}t.InputHandler=k;let L=class{constructor(e){this._bufferService=e,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(e){ethis.end&&(this.end=e)}markRangeDirty(e,t){e>t&&(E=e,e=t,t=E),ethis.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};function D(e){return 0<=e&&e<256}L=s([r(0,v.IBufferService)],L)},844:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}},1505:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class i{constructor(){this._data={}}set(e,t,i){this._data[e]||(this._data[e]={}),this._data[e][t]=i}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}}t.TwoKeyMap=i,t.FourKeyMap=class{constructor(){this._data=new i}set(e,t,s,r,n){this._data.get(e,t)||this._data.set(e,t,new i),this._data.get(e,t).set(s,r,n)}get(e,t,i,s){return this._data.get(e,t)?.get(i,s)}clear(){this._data.clear()}}},6114:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode="undefined"!=typeof process&&"title"in process;const i=t.isNode?"node":navigator.userAgent,s=t.isNode?"node":navigator.platform;t.isFirefox=i.includes("Firefox"),t.isLegacyEdge=i.includes("Edge"),t.isSafari=/^((?!chrome|android).)*safari/i.test(i),t.getSafariVersion=function(){if(!t.isSafari)return 0;const e=i.match(/Version\/(\d+)/);return null===e||e.length<2?0:parseInt(e[1])},t.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(s),t.isIpad="iPad"===s,t.isIphone="iPhone"===s,t.isWindows=["Windows","Win16","Win32","WinCE"].includes(s),t.isLinux=s.indexOf("Linux")>=0,t.isChromeOS=/\bCrOS\b/.test(i)},6106:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SortedList=void 0;let i=0;t.SortedList=class{constructor(e){this._getKey=e,this._array=[]}clear(){this._array.length=0}insert(e){0!==this._array.length?(i=this._search(this._getKey(e)),this._array.splice(i,0,e)):this._array.push(e)}delete(e){if(0===this._array.length)return!1;const t=this._getKey(e);if(void 0===t)return!1;if(i=this._search(t),-1===i)return!1;if(this._getKey(this._array[i])!==t)return!1;do{if(this._array[i]===e)return this._array.splice(i,1),!0}while(++i=this._array.length)&&this._getKey(this._array[i])===e))do{yield this._array[i]}while(++i=this._array.length)&&this._getKey(this._array[i])===e))do{t(this._array[i])}while(++i=t;){let s=t+i>>1;const r=this._getKey(this._array[s]);if(r>e)i=s-1;else{if(!(r0&&this._getKey(this._array[s-1])===e;)s--;return s}t=s+1}}return t}}},7226:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;const s=i(6114);class r{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._ir)return s-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(s-t))}ms`),void this._start();s=r}this.clear()}}class n extends r{_requestCallback(e){return setTimeout((()=>e(this._createDeadline(16))))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){const t=Date.now()+e;return{timeRemaining:()=>Math.max(0,t-Date.now())}}}t.PriorityTaskQueue=n,t.IdleTaskQueue=!s.isNode&&"requestIdleCallback"in window?class extends r{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}}:n,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}}},9282:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.updateWindowsModeWrappedState=void 0;const s=i(643);t.updateWindowsModeWrappedState=function(e){const t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1),i=t?.get(e.cols-1),r=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);r&&i&&(r.isWrapped=i[s.CHAR_DATA_CODE_INDEX]!==s.NULL_CELL_CODE&&i[s.CHAR_DATA_CODE_INDEX]!==s.WHITESPACE_CELL_CODE)}},3734:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class i{constructor(){this.fg=0,this.bg=0,this.extended=new s}static toColorRGB(e){return[e>>>16&255,e>>>8&255,255&e]}static fromColorRGB(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]}clone(){const e=new i;return e.fg=this.fg,e.bg=this.bg,e.extended=this.extended.clone(),e}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return 50331648==(50331648&this.fg)}isBgRGB(){return 50331648==(50331648&this.bg)}isFgPalette(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)}isBgPalette(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)}isFgDefault(){return 0==(50331648&this.fg)}isBgDefault(){return 0==(50331648&this.bg)}isAttributeDefault(){return 0===this.fg&&0===this.bg}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?50331648==(50331648&this.extended.underlineColor):this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?16777216==(50331648&this.extended.underlineColor)||33554432==(50331648&this.extended.underlineColor):this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?0==(50331648&this.extended.underlineColor):this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}}t.AttributeData=i;class s{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(e){this._ext&=-67108864,this._ext|=67108863&e}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){const e=(3758096384&this._ext)>>29;return e<0?4294967288^e:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}clone(){return new s(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}}t.ExtendedAttrs=s},9092:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Buffer=t.MAX_BUFFER_SIZE=void 0;const s=i(6349),r=i(7226),n=i(3734),o=i(8437),a=i(4634),h=i(511),c=i(643),l=i(4863),d=i(7116);t.MAX_BUFFER_SIZE=4294967295,t.Buffer=class{constructor(e,t,i){this._hasScrollback=e,this._optionsService=t,this._bufferService=i,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=o.DEFAULT_ATTR_DATA.clone(),this.savedCharset=d.DEFAULT_CHARSET,this.markers=[],this._nullCell=h.CellData.fromCharData([0,c.NULL_CELL_CHAR,c.NULL_CELL_WIDTH,c.NULL_CELL_CODE]),this._whitespaceCell=h.CellData.fromCharData([0,c.WHITESPACE_CELL_CHAR,c.WHITESPACE_CELL_WIDTH,c.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._memoryCleanupQueue=new r.IdleTaskQueue,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg,this._nullCell.extended=e.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new n.ExtendedAttrs),this._nullCell}getWhitespaceCell(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg,this._whitespaceCell.extended=e.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new n.ExtendedAttrs),this._whitespaceCell}getBlankLine(e,t){return new o.BufferLine(this._bufferService.cols,this.getNullCell(e),t)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){const e=this.ybase+this.y-this.ydisp;return e>=0&&et.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:i}fillViewportRows(e){if(0===this.lines.length){void 0===e&&(e=o.DEFAULT_ATTR_DATA);let t=this._rows;for(;t--;)this.lines.push(this.getBlankLine(e))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){const i=this.getNullCell(o.DEFAULT_ATTR_DATA);let s=0;const r=this._getCorrectBufferLength(t);if(r>this.lines.maxLength&&(this.lines.maxLength=r),this.lines.length>0){if(this._cols0&&this.lines.length<=this.ybase+this.y+n+1?(this.ybase--,n++,this.ydisp>0&&this.ydisp--):this.lines.push(new o.BufferLine(e,i)));else for(let e=this._rows;e>t;e--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(r0&&(this.lines.trimStart(e),this.ybase=Math.max(this.ybase-e,0),this.ydisp=Math.max(this.ydisp-e,0),this.savedY=Math.max(this.savedY-e,0)),this.lines.maxLength=r}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),n&&(this.y+=n),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(let t=0;t.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue((()=>this._batchedMemoryCleanup())))}_batchedMemoryCleanup(){let e=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,e=!1);let t=0;for(;this._memoryCleanupPosition100)return!0;return e}get _isReflowEnabled(){const e=this._optionsService.rawOptions.windowsPty;return e&&e.buildNumber?this._hasScrollback&&"conpty"===e.backend&&e.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(e,t){this._cols!==e&&(e>this._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))}_reflowLarger(e,t){const i=(0,a.reflowLargerGetLinesToRemove)(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(o.DEFAULT_ATTR_DATA));if(i.length>0){const s=(0,a.reflowLargerCreateNewLayout)(this.lines,i);(0,a.reflowLargerApplyNewLayout)(this.lines,s.layout),this._reflowLargerAdjustViewport(e,t,s.countRemoved)}}_reflowLargerAdjustViewport(e,t,i){const s=this.getNullCell(o.DEFAULT_ATTR_DATA);let r=i;for(;r-- >0;)0===this.ybase?(this.y>0&&this.y--,this.lines.length=0;n--){let h=this.lines.get(n);if(!h||!h.isWrapped&&h.getTrimmedLength()<=e)continue;const c=[h];for(;h.isWrapped&&n>0;)h=this.lines.get(--n),c.unshift(h);const l=this.ybase+this.y;if(l>=n&&l0&&(s.push({start:n+c.length+r,newLines:v}),r+=v.length),c.push(...v);let p=_.length-1,g=_[p];0===g&&(p--,g=_[p]);let m=c.length-u-1,S=d;for(;m>=0;){const e=Math.min(S,g);if(void 0===c[p])break;if(c[p].copyCellsFrom(c[m],S-e,g-e,e,!0),g-=e,0===g&&(p--,g=_[p]),S-=e,0===S){m--;const e=Math.max(m,0);S=(0,a.getWrappedLineTrimmedLength)(c,e,this._cols)}}for(let t=0;t0;)0===this.ybase?this.y0){const e=[],t=[];for(let e=0;e=0;c--)if(a&&a.start>n+h){for(let e=a.newLines.length-1;e>=0;e--)this.lines.set(c--,a.newLines[e]);c++,e.push({index:n+1,amount:a.newLines.length}),h+=a.newLines.length,a=s[++o]}else this.lines.set(c,t[n--]);let c=0;for(let t=e.length-1;t>=0;t--)e[t].index+=c,this.lines.onInsertEmitter.fire(e[t]),c+=e[t].amount;const l=Math.max(0,i+r-this.lines.maxLength);l>0&&this.lines.onTrimEmitter.fire(l)}}translateBufferLineToString(e,t,i=0,s){const r=this.lines.get(e);return r?r.translateToString(t,i,s):""}getWrappedRangeForLine(e){let t=e,i=e;for(;t>0&&this.lines.get(t).isWrapped;)t--;for(;i+10;);return e>=this._cols?this._cols-1:e<0?0:e}nextStop(e){for(null==e&&(e=this.x);!this.tabs[++e]&&e=this._cols?this._cols-1:e<0?0:e}clearMarkers(e){this._isClearing=!0;for(let t=0;t{t.line-=e,t.line<0&&t.dispose()}))),t.register(this.lines.onInsert((e=>{t.line>=e.index&&(t.line+=e.amount)}))),t.register(this.lines.onDelete((e=>{t.line>=e.index&&t.linee.index&&(t.line-=e.amount)}))),t.register(t.onDispose((()=>this._removeMarker(t)))),t}_removeMarker(e){this._isClearing||this.markers.splice(this.markers.indexOf(e),1)}}},8437:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferLine=t.DEFAULT_ATTR_DATA=void 0;const s=i(3734),r=i(511),n=i(643),o=i(482);t.DEFAULT_ATTR_DATA=Object.freeze(new s.AttributeData);let a=0;class h{constructor(e,t,i=!1){this.isWrapped=i,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*e);const s=t||r.CellData.fromCharData([0,n.NULL_CELL_CHAR,n.NULL_CELL_WIDTH,n.NULL_CELL_CODE]);for(let t=0;t>22,2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):i]}set(e,t){this._data[3*e+1]=t[n.CHAR_DATA_ATTR_INDEX],t[n.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[e]=t[1],this._data[3*e+0]=2097152|e|t[n.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*e+0]=t[n.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|t[n.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(e){return this._data[3*e+0]>>22}hasWidth(e){return 12582912&this._data[3*e+0]}getFg(e){return this._data[3*e+1]}getBg(e){return this._data[3*e+2]}hasContent(e){return 4194303&this._data[3*e+0]}getCodePoint(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):2097151&t}isCombined(e){return 2097152&this._data[3*e+0]}getString(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e]:2097151&t?(0,o.stringFromCodePoint)(2097151&t):""}isProtected(e){return 536870912&this._data[3*e+2]}loadCell(e,t){return a=3*e,t.content=this._data[a+0],t.fg=this._data[a+1],t.bg=this._data[a+2],2097152&t.content&&(t.combinedData=this._combined[e]),268435456&t.bg&&(t.extended=this._extendedAttrs[e]),t}setCell(e,t){2097152&t.content&&(this._combined[e]=t.combinedData),268435456&t.bg&&(this._extendedAttrs[e]=t.extended),this._data[3*e+0]=t.content,this._data[3*e+1]=t.fg,this._data[3*e+2]=t.bg}setCellFromCodepoint(e,t,i,s){268435456&s.bg&&(this._extendedAttrs[e]=s.extended),this._data[3*e+0]=t|i<<22,this._data[3*e+1]=s.fg,this._data[3*e+2]=s.bg}addCodepointToCell(e,t,i){let s=this._data[3*e+0];2097152&s?this._combined[e]+=(0,o.stringFromCodePoint)(t):2097151&s?(this._combined[e]=(0,o.stringFromCodePoint)(2097151&s)+(0,o.stringFromCodePoint)(t),s&=-2097152,s|=2097152):s=t|1<<22,i&&(s&=-12582913,s|=i<<22),this._data[3*e+0]=s}insertCells(e,t,i){if((e%=this.length)&&2===this.getWidth(e-1)&&this.setCellFromCodepoint(e-1,0,1,i),t=0;--i)this.setCell(e+t+i,this.loadCell(e+i,s));for(let s=0;sthis.length){if(this._data.buffer.byteLength>=4*i)this._data=new Uint32Array(this._data.buffer,0,i);else{const e=new Uint32Array(i);e.set(this._data),this._data=e}for(let i=this.length;i=e&&delete this._combined[s]}const s=Object.keys(this._extendedAttrs);for(let t=0;t=e&&delete this._extendedAttrs[i]}}return this.length=e,4*i*2=0;--e)if(4194303&this._data[3*e+0])return e+(this._data[3*e+0]>>22);return 0}getNoBgTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(4194303&this._data[3*e+0]||50331648&this._data[3*e+2])return e+(this._data[3*e+0]>>22);return 0}copyCellsFrom(e,t,i,s,r){const n=e._data;if(r)for(let r=s-1;r>=0;r--){for(let e=0;e<3;e++)this._data[3*(i+r)+e]=n[3*(t+r)+e];268435456&n[3*(t+r)+2]&&(this._extendedAttrs[i+r]=e._extendedAttrs[t+r])}else for(let r=0;r=t&&(this._combined[r-t+i]=e._combined[r])}}translateToString(e,t,i,s){t=t??0,i=i??this.length,e&&(i=Math.min(i,this.getTrimmedLength())),s&&(s.length=0);let r="";for(;t>22||1}return s&&s.push(t),r}}t.BufferLine=h},4841:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRangeLength=void 0,t.getRangeLength=function(e,t){if(e.start.y>e.end.y)throw new Error(`Buffer range end (${e.end.x}, ${e.end.y}) cannot be before start (${e.start.x}, ${e.start.y})`);return t*(e.end.y-e.start.y)+(e.end.x-e.start.x+1)}},4634:(e,t)=>{function i(e,t,i){if(t===e.length-1)return e[t].getTrimmedLength();const s=!e[t].hasContent(i-1)&&1===e[t].getWidth(i-1),r=2===e[t+1].getWidth(0);return s&&r?i-1:i}Object.defineProperty(t,"__esModule",{value:!0}),t.getWrappedLineTrimmedLength=t.reflowSmallerGetNewLineLengths=t.reflowLargerApplyNewLayout=t.reflowLargerCreateNewLayout=t.reflowLargerGetLinesToRemove=void 0,t.reflowLargerGetLinesToRemove=function(e,t,s,r,n){const o=[];for(let a=0;a=a&&r0&&(e>d||0===l[e].getTrimmedLength());e--)v++;v>0&&(o.push(a+l.length-v),o.push(v)),a+=l.length-1}return o},t.reflowLargerCreateNewLayout=function(e,t){const i=[];let s=0,r=t[s],n=0;for(let o=0;oi(e,r,t))).reduce(((e,t)=>e+t));let o=0,a=0,h=0;for(;hc&&(o-=c,a++);const l=2===e[a].getWidth(o-1);l&&o--;const d=l?s-1:s;r.push(d),h+=d}return r},t.getWrappedLineTrimmedLength=i},5295:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferSet=void 0;const s=i(8460),r=i(844),n=i(9092);class o extends r.Disposable{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this.register(new s.EventEmitter),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this.register(this._optionsService.onSpecificOptionChange("scrollback",(()=>this.resize(this._bufferService.cols,this._bufferService.rows)))),this.register(this._optionsService.onSpecificOptionChange("tabStopWidth",(()=>this.setupTabStops())))}reset(){this._normal=new n.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new n.Buffer(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(e,t){this._normal.resize(e,t),this._alt.resize(e,t),this.setupTabStops(e)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}}t.BufferSet=o},511:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellData=void 0;const s=i(482),r=i(643),n=i(3734);class o extends n.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new n.ExtendedAttrs,this.combinedData=""}static fromCharData(e){const t=new o;return t.setFromCharData(e),t}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,s.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(e){this.fg=e[r.CHAR_DATA_ATTR_INDEX],this.bg=0;let t=!1;if(e[r.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[r.CHAR_DATA_CHAR_INDEX].length){const i=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=i&&i<=56319){const s=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=s&&s<=57343?this.content=1024*(i-55296)+s-56320+65536|e[r.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[r.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[r.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[r.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=o},643:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR="",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=" ",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},4863:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Marker=void 0;const s=i(8460),r=i(844);class n{get id(){return this._id}constructor(e){this.line=e,this.isDisposed=!1,this._disposables=[],this._id=n._nextId++,this._onDispose=this.register(new s.EventEmitter),this.onDispose=this._onDispose.event}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),(0,r.disposeArray)(this._disposables),this._disposables.length=0)}register(e){return this._disposables.push(e),e}}t.Marker=n,n._nextId=1},7116:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_CHARSET=t.CHARSETS=void 0,t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={"`":"◆",a:"▒",b:"␉",c:"␌",d:"␍",e:"␊",f:"°",g:"±",h:"␤",i:"␋",j:"┘",k:"┐",l:"┌",m:"└",n:"┼",o:"⎺",p:"⎻",q:"─",r:"⎼",s:"⎽",t:"├",u:"┤",v:"┴",w:"┬",x:"│",y:"≤",z:"≥","{":"π","|":"≠","}":"£","~":"·"},t.CHARSETS.A={"#":"£"},t.CHARSETS.B=void 0,t.CHARSETS[4]={"#":"£","@":"¾","[":"ij","\\":"½","]":"|","{":"¨","|":"f","}":"¼","~":"´"},t.CHARSETS.C=t.CHARSETS[5]={"[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS.R={"#":"£","@":"à","[":"°","\\":"ç","]":"§","{":"é","|":"ù","}":"è","~":"¨"},t.CHARSETS.Q={"@":"à","[":"â","\\":"ç","]":"ê","^":"î","`":"ô","{":"é","|":"ù","}":"è","~":"û"},t.CHARSETS.K={"@":"§","[":"Ä","\\":"Ö","]":"Ü","{":"ä","|":"ö","}":"ü","~":"ß"},t.CHARSETS.Y={"#":"£","@":"§","[":"°","\\":"ç","]":"é","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},t.CHARSETS.E=t.CHARSETS[6]={"@":"Ä","[":"Æ","\\":"Ø","]":"Å","^":"Ü","`":"ä","{":"æ","|":"ø","}":"å","~":"ü"},t.CHARSETS.Z={"#":"£","@":"§","[":"¡","\\":"Ñ","]":"¿","{":"°","|":"ñ","}":"ç"},t.CHARSETS.H=t.CHARSETS[7]={"@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS["="]={"#":"ù","@":"à","[":"é","\\":"ç","]":"ê","^":"î",_:"è","`":"ô","{":"ä","|":"ö","}":"ü","~":"û"}},2584:(e,t)=>{var i,s,r;Object.defineProperty(t,"__esModule",{value:!0}),t.C1_ESCAPED=t.C1=t.C0=void 0,function(e){e.NUL="\0",e.SOH="",e.STX="",e.ETX="",e.EOT="",e.ENQ="",e.ACK="",e.BEL="",e.BS="\b",e.HT="\t",e.LF="\n",e.VT="\v",e.FF="\f",e.CR="\r",e.SO="",e.SI="",e.DLE="",e.DC1="",e.DC2="",e.DC3="",e.DC4="",e.NAK="",e.SYN="",e.ETB="",e.CAN="",e.EM="",e.SUB="",e.ESC="",e.FS="",e.GS="",e.RS="",e.US="",e.SP=" ",e.DEL=""}(i||(t.C0=i={})),function(e){e.PAD="€",e.HOP="",e.BPH="‚",e.NBH="ƒ",e.IND="„",e.NEL="…",e.SSA="†",e.ESA="‡",e.HTS="ˆ",e.HTJ="‰",e.VTS="Š",e.PLD="‹",e.PLU="Œ",e.RI="",e.SS2="Ž",e.SS3="",e.DCS="",e.PU1="‘",e.PU2="’",e.STS="“",e.CCH="”",e.MW="•",e.SPA="–",e.EPA="—",e.SOS="˜",e.SGCI="™",e.SCI="š",e.CSI="›",e.ST="œ",e.OSC="",e.PM="ž",e.APC="Ÿ"}(s||(t.C1=s={})),function(e){e.ST=`${i.ESC}\\`}(r||(t.C1_ESCAPED=r={}))},7399:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.evaluateKeyboardEvent=void 0;const s=i(2584),r={48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"']};t.evaluateKeyboardEvent=function(e,t,i,n){const o={type:0,cancel:!1,key:void 0},a=(e.shiftKey?1:0)|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:"UIKeyInputUpArrow"===e.key?o.key=t?s.C0.ESC+"OA":s.C0.ESC+"[A":"UIKeyInputLeftArrow"===e.key?o.key=t?s.C0.ESC+"OD":s.C0.ESC+"[D":"UIKeyInputRightArrow"===e.key?o.key=t?s.C0.ESC+"OC":s.C0.ESC+"[C":"UIKeyInputDownArrow"===e.key&&(o.key=t?s.C0.ESC+"OB":s.C0.ESC+"[B");break;case 8:o.key=e.ctrlKey?"\b":s.C0.DEL,e.altKey&&(o.key=s.C0.ESC+o.key);break;case 9:if(e.shiftKey){o.key=s.C0.ESC+"[Z";break}o.key=s.C0.HT,o.cancel=!0;break;case 13:o.key=e.altKey?s.C0.ESC+s.C0.CR:s.C0.CR,o.cancel=!0;break;case 27:o.key=s.C0.ESC,e.altKey&&(o.key=s.C0.ESC+s.C0.ESC),o.cancel=!0;break;case 37:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"D",o.key===s.C0.ESC+"[1;3D"&&(o.key=s.C0.ESC+(i?"b":"[1;5D"))):o.key=t?s.C0.ESC+"OD":s.C0.ESC+"[D";break;case 39:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"C",o.key===s.C0.ESC+"[1;3C"&&(o.key=s.C0.ESC+(i?"f":"[1;5C"))):o.key=t?s.C0.ESC+"OC":s.C0.ESC+"[C";break;case 38:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"A",i||o.key!==s.C0.ESC+"[1;3A"||(o.key=s.C0.ESC+"[1;5A")):o.key=t?s.C0.ESC+"OA":s.C0.ESC+"[A";break;case 40:if(e.metaKey)break;a?(o.key=s.C0.ESC+"[1;"+(a+1)+"B",i||o.key!==s.C0.ESC+"[1;3B"||(o.key=s.C0.ESC+"[1;5B")):o.key=t?s.C0.ESC+"OB":s.C0.ESC+"[B";break;case 45:e.shiftKey||e.ctrlKey||(o.key=s.C0.ESC+"[2~");break;case 46:o.key=a?s.C0.ESC+"[3;"+(a+1)+"~":s.C0.ESC+"[3~";break;case 36:o.key=a?s.C0.ESC+"[1;"+(a+1)+"H":t?s.C0.ESC+"OH":s.C0.ESC+"[H";break;case 35:o.key=a?s.C0.ESC+"[1;"+(a+1)+"F":t?s.C0.ESC+"OF":s.C0.ESC+"[F";break;case 33:e.shiftKey?o.type=2:e.ctrlKey?o.key=s.C0.ESC+"[5;"+(a+1)+"~":o.key=s.C0.ESC+"[5~";break;case 34:e.shiftKey?o.type=3:e.ctrlKey?o.key=s.C0.ESC+"[6;"+(a+1)+"~":o.key=s.C0.ESC+"[6~";break;case 112:o.key=a?s.C0.ESC+"[1;"+(a+1)+"P":s.C0.ESC+"OP";break;case 113:o.key=a?s.C0.ESC+"[1;"+(a+1)+"Q":s.C0.ESC+"OQ";break;case 114:o.key=a?s.C0.ESC+"[1;"+(a+1)+"R":s.C0.ESC+"OR";break;case 115:o.key=a?s.C0.ESC+"[1;"+(a+1)+"S":s.C0.ESC+"OS";break;case 116:o.key=a?s.C0.ESC+"[15;"+(a+1)+"~":s.C0.ESC+"[15~";break;case 117:o.key=a?s.C0.ESC+"[17;"+(a+1)+"~":s.C0.ESC+"[17~";break;case 118:o.key=a?s.C0.ESC+"[18;"+(a+1)+"~":s.C0.ESC+"[18~";break;case 119:o.key=a?s.C0.ESC+"[19;"+(a+1)+"~":s.C0.ESC+"[19~";break;case 120:o.key=a?s.C0.ESC+"[20;"+(a+1)+"~":s.C0.ESC+"[20~";break;case 121:o.key=a?s.C0.ESC+"[21;"+(a+1)+"~":s.C0.ESC+"[21~";break;case 122:o.key=a?s.C0.ESC+"[23;"+(a+1)+"~":s.C0.ESC+"[23~";break;case 123:o.key=a?s.C0.ESC+"[24;"+(a+1)+"~":s.C0.ESC+"[24~";break;default:if(!e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)if(i&&!n||!e.altKey||e.metaKey)!i||e.altKey||e.ctrlKey||e.shiftKey||!e.metaKey?e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&1===e.key.length?o.key=e.key:e.key&&e.ctrlKey&&("_"===e.key&&(o.key=s.C0.US),"@"===e.key&&(o.key=s.C0.NUL)):65===e.keyCode&&(o.type=1);else{const t=r[e.keyCode],i=t?.[e.shiftKey?1:0];if(i)o.key=s.C0.ESC+i;else if(e.keyCode>=65&&e.keyCode<=90){const t=e.ctrlKey?e.keyCode-64:e.keyCode+32;let i=String.fromCharCode(t);e.shiftKey&&(i=i.toUpperCase()),o.key=s.C0.ESC+i}else if(32===e.keyCode)o.key=s.C0.ESC+(e.ctrlKey?s.C0.NUL:" ");else if("Dead"===e.key&&e.code.startsWith("Key")){let t=e.code.slice(3,4);e.shiftKey||(t=t.toLowerCase()),o.key=s.C0.ESC+t,o.cancel=!0}}else e.keyCode>=65&&e.keyCode<=90?o.key=String.fromCharCode(e.keyCode-64):32===e.keyCode?o.key=s.C0.NUL:e.keyCode>=51&&e.keyCode<=55?o.key=String.fromCharCode(e.keyCode-51+27):56===e.keyCode?o.key=s.C0.DEL:219===e.keyCode?o.key=s.C0.ESC:220===e.keyCode?o.key=s.C0.FS:221===e.keyCode&&(o.key=s.C0.GS)}return o}},482:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t=0,i=e.length){let s="";for(let r=t;r65535?(t-=65536,s+=String.fromCharCode(55296+(t>>10))+String.fromCharCode(t%1024+56320)):s+=String.fromCharCode(t)}return s},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){const i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){const i=e.charCodeAt(r++);56320<=i&&i<=57343?t[s++]=1024*(this._interim-55296)+i-56320+65536:(t[s++]=this._interim,t[s++]=i),this._interim=0}for(let n=r;n=i)return this._interim=r,s;const o=e.charCodeAt(n);56320<=o&&o<=57343?t[s++]=1024*(r-55296)+o-56320+65536:(t[s++]=r,t[s++]=o)}else 65279!==r&&(t[s++]=r)}return s}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){const i=e.length;if(!i)return 0;let s,r,n,o,a=0,h=0,c=0;if(this.interim[0]){let s=!1,r=this.interim[0];r&=192==(224&r)?31:224==(240&r)?15:7;let n,o=0;for(;(n=63&this.interim[++o])&&o<4;)r<<=6,r|=n;const h=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,l=h-o;for(;c=i)return 0;if(n=e[c++],128!=(192&n)){c--,s=!0;break}this.interim[o++]=n,r<<=6,r|=63&n}s||(2===h?r<128?c--:t[a++]=r:3===h?r<2048||r>=55296&&r<=57343||65279===r||(t[a++]=r):r<65536||r>1114111||(t[a++]=r)),this.interim.fill(0)}const l=i-4;let d=c;for(;d=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(h=(31&s)<<6|63&r,h<128){d--;continue}t[a++]=h}else if(224==(240&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(h=(15&s)<<12|(63&r)<<6|63&n,h<2048||h>=55296&&h<=57343||65279===h)continue;t[a++]=h}else if(240==(248&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,this.interim[2]=n,a;if(o=e[d++],128!=(192&o)){d--;continue}if(h=(7&s)<<18|(63&r)<<12|(63&n)<<6|63&o,h<65536||h>1114111)continue;t[a++]=h}}return a}}},225:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeV6=void 0;const s=i(1480),r=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],n=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];let o;t.UnicodeV6=class{constructor(){if(this.version="6",!o){o=new Uint8Array(65536),o.fill(1),o[0]=0,o.fill(0,1,32),o.fill(0,127,160),o.fill(2,4352,4448),o[9001]=2,o[9002]=2,o.fill(2,11904,42192),o[12351]=1,o.fill(2,44032,55204),o.fill(2,63744,64256),o.fill(2,65040,65050),o.fill(2,65072,65136),o.fill(2,65280,65377),o.fill(2,65504,65511);for(let e=0;et[r][1])return!1;for(;r>=s;)if(i=s+r>>1,e>t[i][1])s=i+1;else{if(!(e=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let i=this.wcwidth(e),r=0===i&&0!==t;if(r){const e=s.UnicodeService.extractWidth(t);0===e?r=!1:e>i&&(i=e)}return s.UnicodeService.createPropertyValue(0,i,r)}}},5981:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WriteBuffer=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._action=e,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this.register(new s.EventEmitter),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(e,t){if(void 0!==t&&this._syncCalls>t)return void(this._syncCalls=0);if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let i;for(this._isSyncWriting=!0;i=this._writeBuffer.shift();){this._action(i);const e=this._callbacks.shift();e&&e()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,t){if(this._pendingData>5e7)throw new Error("write data discarded, use flow control to avoid losing data");if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput)return this._didUserInput=!1,this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t),void this._innerWrite();setTimeout((()=>this._innerWrite()))}this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t)}_innerWrite(e=0,t=!0){const i=e||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){const e=this._writeBuffer[this._bufferOffset],s=this._action(e,t);if(s){const e=e=>Date.now()-i>=12?setTimeout((()=>this._innerWrite(0,e))):this._innerWrite(i,e);return void s.catch((e=>(queueMicrotask((()=>{throw e})),Promise.resolve(!1)))).then(e)}const r=this._callbacks[this._bufferOffset];if(r&&r(),this._bufferOffset++,this._pendingData-=e.length,Date.now()-i>=12)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>50&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout((()=>this._innerWrite()))):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}}t.WriteBuffer=n},5941:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.toRgbString=t.parseColor=void 0;const i=/^([\da-f])\/([\da-f])\/([\da-f])$|^([\da-f]{2})\/([\da-f]{2})\/([\da-f]{2})$|^([\da-f]{3})\/([\da-f]{3})\/([\da-f]{3})$|^([\da-f]{4})\/([\da-f]{4})\/([\da-f]{4})$/,s=/^[\da-f]+$/;function r(e,t){const i=e.toString(16),s=i.length<2?"0"+i:i;switch(t){case 4:return i[0];case 8:return s;case 12:return(s+s).slice(0,3);default:return s+s}}t.parseColor=function(e){if(!e)return;let t=e.toLowerCase();if(0===t.indexOf("rgb:")){t=t.slice(4);const e=i.exec(t);if(e){const t=e[1]?15:e[4]?255:e[7]?4095:65535;return[Math.round(parseInt(e[1]||e[4]||e[7]||e[10],16)/t*255),Math.round(parseInt(e[2]||e[5]||e[8]||e[11],16)/t*255),Math.round(parseInt(e[3]||e[6]||e[9]||e[12],16)/t*255)]}}else if(0===t.indexOf("#")&&(t=t.slice(1),s.exec(t)&&[3,6,9,12].includes(t.length))){const e=t.length/3,i=[0,0,0];for(let s=0;s<3;++s){const r=parseInt(t.slice(e*s,e*s+e),16);i[s]=1===e?r<<4:2===e?r:3===e?r>>4:r>>8}return i}},t.toRgbString=function(e,t=16){const[i,s,n]=e;return`rgb:${r(i,t)}/${r(s,t)}/${r(n,t)}`}},5770:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PAYLOAD_LIMIT=void 0,t.PAYLOAD_LIMIT=1e7},6351:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DcsHandler=t.DcsParser=void 0;const s=i(482),r=i(8742),n=i(5770),o=[];t.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=o,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=o}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}reset(){if(this._active.length)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].unhook(!1);this._stack.paused=!1,this._active=o,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||o,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].hook(t);else this._handlerFb(this._ident,"HOOK",t)}put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._ident,"PUT",(0,s.utf32ToString)(e,t,i))}unhook(e,t=!0){if(this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].unhook(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].unhook(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._ident,"UNHOOK",e);this._active=o,this._ident=0}};const a=new r.Params;a.addParam(0),t.DcsHandler=class{constructor(e){this._handler=e,this._data="",this._params=a,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():a,this._data="",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,s.utf32ToString)(e,t,i),this._data.length>n.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}unhook(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data,this._params),t instanceof Promise))return t.then((e=>(this._params=a,this._data="",this._hitLimit=!1,e)));return this._params=a,this._data="",this._hitLimit=!1,t}}},2015:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceParser=t.VT500_TRANSITION_TABLE=t.TransitionTable=void 0;const s=i(844),r=i(8742),n=i(6242),o=i(6351);class a{constructor(e){this.table=new Uint8Array(e)}setDefault(e,t){this.table.fill(e<<4|t)}add(e,t,i,s){this.table[t<<8|e]=i<<4|s}addMany(e,t,i,s){for(let r=0;rt)),i=(e,i)=>t.slice(e,i),s=i(32,127),r=i(0,24);r.push(25),r.push.apply(r,i(28,32));const n=i(0,14);let o;for(o in e.setDefault(1,0),e.addMany(s,0,2,0),n)e.addMany([24,26,153,154],o,3,0),e.addMany(i(128,144),o,3,0),e.addMany(i(144,152),o,3,0),e.add(156,o,0,0),e.add(27,o,11,1),e.add(157,o,4,8),e.addMany([152,158,159],o,0,7),e.add(155,o,11,3),e.add(144,o,11,9);return e.addMany(r,0,3,0),e.addMany(r,1,3,1),e.add(127,1,0,1),e.addMany(r,8,0,8),e.addMany(r,3,3,3),e.add(127,3,0,3),e.addMany(r,4,3,4),e.add(127,4,0,4),e.addMany(r,6,3,6),e.addMany(r,5,3,5),e.add(127,5,0,5),e.addMany(r,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(s,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(i(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(s,7,0,7),e.addMany(r,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(i(64,127),3,7,0),e.addMany(i(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(i(48,60),4,8,4),e.addMany(i(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(i(32,64),6,0,6),e.add(127,6,0,6),e.addMany(i(64,127),6,0,0),e.addMany(i(32,48),3,9,5),e.addMany(i(32,48),5,9,5),e.addMany(i(48,64),5,0,6),e.addMany(i(64,127),5,7,0),e.addMany(i(32,48),4,9,5),e.addMany(i(32,48),1,9,2),e.addMany(i(32,48),2,9,2),e.addMany(i(48,127),2,10,0),e.addMany(i(48,80),1,10,0),e.addMany(i(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(i(96,127),1,10,0),e.add(80,1,11,9),e.addMany(r,9,0,9),e.add(127,9,0,9),e.addMany(i(28,32),9,0,9),e.addMany(i(32,48),9,9,12),e.addMany(i(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(r,11,0,11),e.addMany(i(32,128),11,0,11),e.addMany(i(28,32),11,0,11),e.addMany(r,10,0,10),e.add(127,10,0,10),e.addMany(i(28,32),10,0,10),e.addMany(i(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(i(32,48),10,9,12),e.addMany(r,12,0,12),e.add(127,12,0,12),e.addMany(i(28,32),12,0,12),e.addMany(i(32,48),12,9,12),e.addMany(i(48,64),12,0,11),e.addMany(i(64,127),12,12,13),e.addMany(i(64,127),10,12,13),e.addMany(i(64,127),9,12,13),e.addMany(r,13,13,13),e.addMany(s,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(h,0,2,0),e.add(h,8,5,8),e.add(h,6,0,6),e.add(h,11,0,11),e.add(h,13,13,13),e}();class c extends s.Disposable{constructor(e=t.VT500_TRANSITION_TABLE){super(),this._transitions=e,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new r.Params,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(e,t,i)=>{},this._executeHandlerFb=e=>{},this._csiHandlerFb=(e,t)=>{},this._escHandlerFb=e=>{},this._errorHandlerFb=e=>e,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this.register((0,s.toDisposable)((()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)}))),this._oscParser=this.register(new n.OscParser),this._dcsParser=this.register(new o.DcsParser),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:"\\"},(()=>!0))}_identifier(e,t=[64,126]){let i=0;if(e.prefix){if(e.prefix.length>1)throw new Error("only one byte as prefix supported");if(i=e.prefix.charCodeAt(0),i&&60>i||i>63)throw new Error("prefix must be in range 0x3c .. 0x3f")}if(e.intermediates){if(e.intermediates.length>2)throw new Error("only two bytes as intermediates are supported");for(let t=0;ts||s>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");i<<=8,i|=s}}if(1!==e.final.length)throw new Error("final must be a single byte");const s=e.final.charCodeAt(0);if(t[0]>s||s>t[1])throw new Error(`final must be in range ${t[0]} .. ${t[1]}`);return i<<=8,i|=s,i}identToString(e){const t=[];for(;e;)t.push(String.fromCharCode(255&e)),e>>=8;return t.reverse().join("")}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,t){const i=this._identifier(e,[48,126]);void 0===this._escHandlers[i]&&(this._escHandlers[i]=[]);const s=this._escHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearEscHandler(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]}setEscHandlerFallback(e){this._escHandlerFb=e}setExecuteHandler(e,t){this._executeHandlers[e.charCodeAt(0)]=t}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,t){const i=this._identifier(e);void 0===this._csiHandlers[i]&&(this._csiHandlers[i]=[]);const s=this._csiHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,t){return this._dcsParser.registerHandler(this._identifier(e),t)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,t){return this._oscParser.registerHandler(e,t)}clearOscHandler(e){this._oscParser.clearHandler(e)}setOscHandlerFallback(e){this._oscParser.setHandlerFallback(e)}setErrorHandler(e){this._errorHandler=e}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0,0!==this._parseStack.state&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,t,i,s,r){this._parseStack.state=e,this._parseStack.handlers=t,this._parseStack.handlerPos=i,this._parseStack.transition=s,this._parseStack.chunkPos=r}parse(e,t,i){let s,r=0,n=0,o=0;if(this._parseStack.state)if(2===this._parseStack.state)this._parseStack.state=0,o=this._parseStack.chunkPos+1;else{if(void 0===i||1===this._parseStack.state)throw this._parseStack.state=1,new Error("improper continuation due to previous async handler, giving up parsing");const t=this._parseStack.handlers;let n=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](this._params),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 4:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 6:if(r=e[this._parseStack.chunkPos],s=this._dcsParser.unhook(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(r=e[this._parseStack.chunkPos],s=this._oscParser.end(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,o=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=15&this._parseStack.transition}for(let i=o;i>4){case 2:for(let s=i+1;;++s){if(s>=t||(r=e[s])<32||r>126&&r=t||(r=e[s])<32||r>126&&r=t||(r=e[s])<32||r>126&&r=t||(r=e[s])<32||r>126&&r=0&&(s=o[a](this._params),!0!==s);a--)if(s instanceof Promise)return this._preserveStack(3,o,a,n,i),s;a<0&&this._csiHandlerFb(this._collect<<8|r,this._params),this.precedingJoinState=0;break;case 8:do{switch(r){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(r-48)}}while(++i47&&r<60);i--;break;case 9:this._collect<<=8,this._collect|=r;break;case 10:const c=this._escHandlers[this._collect<<8|r];let l=c?c.length-1:-1;for(;l>=0&&(s=c[l](),!0!==s);l--)if(s instanceof Promise)return this._preserveStack(4,c,l,n,i),s;l<0&&this._escHandlerFb(this._collect<<8|r),this.precedingJoinState=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|r,this._params);break;case 13:for(let s=i+1;;++s)if(s>=t||24===(r=e[s])||26===r||27===r||r>127&&r=t||(r=e[s])<32||r>127&&r{Object.defineProperty(t,"__esModule",{value:!0}),t.OscHandler=t.OscParser=void 0;const s=i(5770),r=i(482),n=[];t.OscParser=class{constructor(){this._state=0,this._active=n,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=n}reset(){if(2===this._state)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].end(!1);this._stack.paused=!1,this._active=n,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||n,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].start();else this._handlerFb(this._id,"START")}_put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._id,"PUT",(0,r.utf32ToString)(e,t,i))}start(){this.reset(),this._state=1}put(e,t,i){if(3!==this._state){if(1===this._state)for(;t0&&this._put(e,t,i)}}end(e,t=!0){if(0!==this._state){if(3!==this._state)if(1===this._state&&this._start(),this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].end(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].end(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._id,"END",e);this._active=n,this._id=-1,this._state=0}}},t.OscHandler=class{constructor(e){this._handler=e,this._data="",this._hitLimit=!1}start(){this._data="",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,r.utf32ToString)(e,t,i),this._data.length>s.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}end(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data),t instanceof Promise))return t.then((e=>(this._data="",this._hitLimit=!1,e)));return this._data="",this._hitLimit=!1,t}}},8742:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Params=void 0;const i=2147483647;class s{static fromArray(e){const t=new s;if(!e.length)return t;for(let i=Array.isArray(e[0])?1:0;i256)throw new Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(t),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}clone(){const e=new s(this.maxLength,this.maxSubParamsLength);return e.params.set(this.params),e.length=this.length,e._subParams.set(this._subParams),e._subParamsLength=this._subParamsLength,e._subParamsIdx.set(this._subParamsIdx),e._rejectDigits=this._rejectDigits,e._rejectSubDigits=this._rejectSubDigits,e._digitIsSub=this._digitIsSub,e}toArray(){const e=[];for(let t=0;t>8,s=255&this._subParamsIdx[t];s-i>0&&e.push(Array.prototype.slice.call(this._subParams,i,s))}return e}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(e){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(e<-1)throw new Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>i?i:e}}addSubParam(e){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(e<-1)throw new Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=e>i?i:e,this._subParamsIdx[this.length-1]++}}hasSubParams(e){return(255&this._subParamsIdx[e])-(this._subParamsIdx[e]>>8)>0}getSubParams(e){const t=this._subParamsIdx[e]>>8,i=255&this._subParamsIdx[e];return i-t>0?this._subParams.subarray(t,i):null}getSubParamsAll(){const e={};for(let t=0;t>8,s=255&this._subParamsIdx[t];s-i>0&&(e[t]=this._subParams.slice(i,s))}return e}addDigit(e){let t;if(this._rejectDigits||!(t=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;const s=this._digitIsSub?this._subParams:this.params,r=s[t-1];s[t-1]=~r?Math.min(10*r+e,i):e}}t.Params=s},5741:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AddonManager=void 0,t.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()}loadAddon(e,t){const i={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(i),t.dispose=()=>this._wrappedAddonDispose(i),t.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let t=-1;for(let i=0;i{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferApiView=void 0;const s=i(3785),r=i(511);t.BufferApiView=class{constructor(e,t){this._buffer=e,this.type=t}init(e){return this._buffer=e,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(e){const t=this._buffer.lines.get(e);if(t)return new s.BufferLineApiView(t)}getNullCell(){return new r.CellData}}},3785:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferLineApiView=void 0;const s=i(511);t.BufferLineApiView=class{constructor(e){this._line=e}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(e,t){if(!(e<0||e>=this._line.length))return t?(this._line.loadCell(e,t),t):this._line.loadCell(e,new s.CellData)}translateToString(e,t,i){return this._line.translateToString(e,t,i)}}},8285:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferNamespaceApi=void 0;const s=i(8771),r=i(8460),n=i(844);class o extends n.Disposable{constructor(e){super(),this._core=e,this._onBufferChange=this.register(new r.EventEmitter),this.onBufferChange=this._onBufferChange.event,this._normal=new s.BufferApiView(this._core.buffers.normal,"normal"),this._alternate=new s.BufferApiView(this._core.buffers.alt,"alternate"),this._core.buffers.onBufferActivate((()=>this._onBufferChange.fire(this.active)))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error("Active buffer is neither normal nor alternate")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}}t.BufferNamespaceApi=o},7975:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ParserApi=void 0,t.ParserApi=class{constructor(e){this._core=e}registerCsiHandler(e,t){return this._core.registerCsiHandler(e,(e=>t(e.toArray())))}addCsiHandler(e,t){return this.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._core.registerDcsHandler(e,((e,i)=>t(e,i.toArray())))}addDcsHandler(e,t){return this.registerDcsHandler(e,t)}registerEscHandler(e,t){return this._core.registerEscHandler(e,t)}addEscHandler(e,t){return this.registerEscHandler(e,t)}registerOscHandler(e,t){return this._core.registerOscHandler(e,t)}addOscHandler(e,t){return this.registerOscHandler(e,t)}}},7090:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeApi=void 0,t.UnicodeApi=class{constructor(e){this._core=e}register(e){this._core.unicodeService.register(e)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(e){this._core.unicodeService.activeVersion=e}}},744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BufferService=t.MINIMUM_ROWS=t.MINIMUM_COLS=void 0;const n=i(8460),o=i(844),a=i(5295),h=i(2585);t.MINIMUM_COLS=2,t.MINIMUM_ROWS=1;let c=t.BufferService=class extends o.Disposable{get buffer(){return this.buffers.active}constructor(e){super(),this.isUserScrolling=!1,this._onResize=this.register(new n.EventEmitter),this.onResize=this._onResize.event,this._onScroll=this.register(new n.EventEmitter),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,t.MINIMUM_COLS),this.rows=Math.max(e.rawOptions.rows||0,t.MINIMUM_ROWS),this.buffers=this.register(new a.BufferSet(e,this))}resize(e,t){this.cols=e,this.rows=t,this.buffers.resize(e,t),this._onResize.fire({cols:e,rows:t})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,t=!1){const i=this.buffer;let s;s=this._cachedBlankLine,s&&s.length===this.cols&&s.getFg(0)===e.fg&&s.getBg(0)===e.bg||(s=i.getBlankLine(e,t),this._cachedBlankLine=s),s.isWrapped=t;const r=i.ybase+i.scrollTop,n=i.ybase+i.scrollBottom;if(0===i.scrollTop){const e=i.lines.isFull;n===i.lines.length-1?e?i.lines.recycle().copyFrom(s):i.lines.push(s.clone()):i.lines.splice(n+1,0,s.clone()),e?this.isUserScrolling&&(i.ydisp=Math.max(i.ydisp-1,0)):(i.ybase++,this.isUserScrolling||i.ydisp++)}else{const e=n-r+1;i.lines.shiftElements(r+1,e-1,-1),i.lines.set(n,s.clone())}this.isUserScrolling||(i.ydisp=i.ybase),this._onScroll.fire(i.ydisp)}scrollLines(e,t,i){const s=this.buffer;if(e<0){if(0===s.ydisp)return;this.isUserScrolling=!0}else e+s.ydisp>=s.ybase&&(this.isUserScrolling=!1);const r=s.ydisp;s.ydisp=Math.max(Math.min(s.ydisp+e,s.ybase),0),r!==s.ydisp&&(t||this._onScroll.fire(s.ydisp))}};t.BufferService=c=s([r(0,h.IOptionsService)],c)},7994:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CharsetService=void 0,t.CharsetService=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(e){this.glevel=e,this.charset=this._charsets[e]}setgCharset(e,t){this._charsets[e]=t,this.glevel===e&&(this.charset=t)}}},1753:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreMouseService=void 0;const n=i(2585),o=i(8460),a=i(844),h={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:e=>4!==e.button&&1===e.action&&(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)},VT200:{events:19,restrict:e=>32!==e.action},DRAG:{events:23,restrict:e=>32!==e.action||3!==e.button},ANY:{events:31,restrict:e=>!0}};function c(e,t){let i=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return 4===e.button?(i|=64,i|=e.action):(i|=3&e.button,4&e.button&&(i|=64),8&e.button&&(i|=128),32===e.action?i|=32:0!==e.action||t||(i|=3)),i}const l=String.fromCharCode,d={DEFAULT:e=>{const t=[c(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?"":`${l(t[0])}${l(t[1])}${l(t[2])}`},SGR:e=>{const t=0===e.action&&4!==e.button?"m":"M";return`[<${c(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{const t=0===e.action&&4!==e.button?"m":"M";return`[<${c(e,!0)};${e.x};${e.y}${t}`}};let _=t.CoreMouseService=class extends a.Disposable{constructor(e,t){super(),this._bufferService=e,this._coreService=t,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._lastEvent=null,this._onProtocolChange=this.register(new o.EventEmitter),this.onProtocolChange=this._onProtocolChange.event;for(const e of Object.keys(h))this.addProtocol(e,h[e]);for(const e of Object.keys(d))this.addEncoding(e,d[e]);this.reset()}addProtocol(e,t){this._protocols[e]=t}addEncoding(e,t){this._encodings[e]=t}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return 0!==this._protocols[this._activeProtocol].events}set activeProtocol(e){if(!this._protocols[e])throw new Error(`unknown protocol "${e}"`);this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(e){if(!this._encodings[e])throw new Error(`unknown encoding "${e}"`);this._activeEncoding=e}reset(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null}triggerMouseEvent(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows)return!1;if(4===e.button&&32===e.action)return!1;if(3===e.button&&32!==e.action)return!1;if(4!==e.button&&(2===e.action||3===e.action))return!1;if(e.col++,e.row++,32===e.action&&this._lastEvent&&this._equalEvents(this._lastEvent,e,"SGR_PIXELS"===this._activeEncoding))return!1;if(!this._protocols[this._activeProtocol].restrict(e))return!1;const t=this._encodings[this._activeEncoding](e);return t&&("DEFAULT"===this._activeEncoding?this._coreService.triggerBinaryEvent(t):this._coreService.triggerDataEvent(t,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(1&e),up:!!(2&e),drag:!!(4&e),move:!!(8&e),wheel:!!(16&e)}}_equalEvents(e,t,i){if(i){if(e.x!==t.x)return!1;if(e.y!==t.y)return!1}else{if(e.col!==t.col)return!1;if(e.row!==t.row)return!1}return e.button===t.button&&e.action===t.action&&e.ctrl===t.ctrl&&e.alt===t.alt&&e.shift===t.shift}};t.CoreMouseService=_=s([r(0,n.IBufferService),r(1,n.ICoreService)],_)},6975:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreService=void 0;const n=i(1439),o=i(8460),a=i(844),h=i(2585),c=Object.freeze({insertMode:!1}),l=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0});let d=t.CoreService=class extends a.Disposable{constructor(e,t,i){super(),this._bufferService=e,this._logService=t,this._optionsService=i,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this.register(new o.EventEmitter),this.onData=this._onData.event,this._onUserInput=this.register(new o.EventEmitter),this.onUserInput=this._onUserInput.event,this._onBinary=this.register(new o.EventEmitter),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this.register(new o.EventEmitter),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=(0,n.clone)(c),this.decPrivateModes=(0,n.clone)(l)}reset(){this.modes=(0,n.clone)(c),this.decPrivateModes=(0,n.clone)(l)}triggerDataEvent(e,t=!1){if(this._optionsService.rawOptions.disableStdin)return;const i=this._bufferService.buffer;t&&this._optionsService.rawOptions.scrollOnUserInput&&i.ybase!==i.ydisp&&this._onRequestScrollToBottom.fire(),t&&this._onUserInput.fire(),this._logService.debug(`sending data "${e}"`,(()=>e.split("").map((e=>e.charCodeAt(0))))),this._onData.fire(e)}triggerBinaryEvent(e){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${e}"`,(()=>e.split("").map((e=>e.charCodeAt(0))))),this._onBinary.fire(e))}};t.CoreService=d=s([r(0,h.IBufferService),r(1,h.ILogService),r(2,h.IOptionsService)],d)},9074:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DecorationService=void 0;const s=i(8055),r=i(8460),n=i(844),o=i(6106);let a=0,h=0;class c extends n.Disposable{get decorations(){return this._decorations.values()}constructor(){super(),this._decorations=new o.SortedList((e=>e?.marker.line)),this._onDecorationRegistered=this.register(new r.EventEmitter),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this.register(new r.EventEmitter),this.onDecorationRemoved=this._onDecorationRemoved.event,this.register((0,n.toDisposable)((()=>this.reset())))}registerDecoration(e){if(e.marker.isDisposed)return;const t=new l(e);if(t){const e=t.marker.onDispose((()=>t.dispose()));t.onDispose((()=>{t&&(this._decorations.delete(t)&&this._onDecorationRemoved.fire(t),e.dispose())})),this._decorations.insert(t),this._onDecorationRegistered.fire(t)}return t}reset(){for(const e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,t,i){let s=0,r=0;for(const n of this._decorations.getKeyIterator(t))s=n.options.x??0,r=s+(n.options.width??1),e>=s&&e{a=t.options.x??0,h=a+(t.options.width??1),e>=a&&e{Object.defineProperty(t,"__esModule",{value:!0}),t.InstantiationService=t.ServiceCollection=void 0;const s=i(2585),r=i(8343);class n{constructor(...e){this._entries=new Map;for(const[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}forEach(e){for(const[t,i]of this._entries.entries())e(t,i)}has(e){return this._entries.has(e)}get(e){return this._entries.get(e)}}t.ServiceCollection=n,t.InstantiationService=class{constructor(){this._services=new n,this._services.set(s.IInstantiationService,this)}setService(e,t){this._services.set(e,t)}getService(e){return this._services.get(e)}createInstance(e,...t){const i=(0,r.getServiceDependencies)(e).sort(((e,t)=>e.index-t.index)),s=[];for(const t of i){const i=this._services.get(t.id);if(!i)throw new Error(`[createInstance] ${e.name} depends on UNKNOWN service ${t.id}.`);s.push(i)}const n=i.length>0?i[0].index:t.length;if(t.length!==n)throw new Error(`[createInstance] First service dependency of ${e.name} at position ${n+1} conflicts with ${t.length} static arguments`);return new e(...[...t,...s])}}},7866:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.traceCall=t.setTraceLogger=t.LogService=void 0;const n=i(844),o=i(2585),a={trace:o.LogLevelEnum.TRACE,debug:o.LogLevelEnum.DEBUG,info:o.LogLevelEnum.INFO,warn:o.LogLevelEnum.WARN,error:o.LogLevelEnum.ERROR,off:o.LogLevelEnum.OFF};let h,c=t.LogService=class extends n.Disposable{get logLevel(){return this._logLevel}constructor(e){super(),this._optionsService=e,this._logLevel=o.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange("logLevel",(()=>this._updateLogLevel()))),h=this}_updateLogLevel(){this._logLevel=a[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;tJSON.stringify(e))).join(", ")})`);const t=s.apply(this,e);return h.trace(`GlyphRenderer#${s.name} return`,t),t}}},7302:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsService=t.DEFAULT_OPTIONS=void 0;const s=i(8460),r=i(844),n=i(6114);t.DEFAULT_OPTIONS={cols:80,rows:24,cursorBlink:!1,cursorStyle:"block",cursorWidth:1,cursorInactiveStyle:"outline",customGlyphs:!0,drawBoldTextInBrightColors:!0,documentOverride:null,fastScrollModifier:"alt",fastScrollSensitivity:5,fontFamily:"courier-new, courier, monospace",fontSize:15,fontWeight:"normal",fontWeightBold:"bold",ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:"info",logger:null,scrollback:1e3,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rescaleOverlappingGlyphs:!1,rightClickSelectsWord:n.isMac,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRulerWidth:0};const o=["normal","bold","100","200","300","400","500","600","700","800","900"];class a extends r.Disposable{constructor(e){super(),this._onOptionChange=this.register(new s.EventEmitter),this.onOptionChange=this._onOptionChange.event;const i={...t.DEFAULT_OPTIONS};for(const t in e)if(t in i)try{const s=e[t];i[t]=this._sanitizeAndValidateOption(t,s)}catch(e){console.error(e)}this.rawOptions=i,this.options={...i},this._setupOptions(),this.register((0,r.toDisposable)((()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null})))}onSpecificOptionChange(e,t){return this.onOptionChange((i=>{i===e&&t(this.rawOptions[e])}))}onMultipleOptionChange(e,t){return this.onOptionChange((i=>{-1!==e.indexOf(i)&&t()}))}_setupOptions(){const e=e=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key "${e}"`);return this.rawOptions[e]},i=(e,i)=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key "${e}"`);i=this._sanitizeAndValidateOption(e,i),this.rawOptions[e]!==i&&(this.rawOptions[e]=i,this._onOptionChange.fire(e))};for(const t in this.rawOptions){const s={get:e.bind(this,t),set:i.bind(this,t)};Object.defineProperty(this.options,t,s)}}_sanitizeAndValidateOption(e,i){switch(e){case"cursorStyle":if(i||(i=t.DEFAULT_OPTIONS[e]),!function(e){return"block"===e||"underline"===e||"bar"===e}(i))throw new Error(`"${i}" is not a valid value for ${e}`);break;case"wordSeparator":i||(i=t.DEFAULT_OPTIONS[e]);break;case"fontWeight":case"fontWeightBold":if("number"==typeof i&&1<=i&&i<=1e3)break;i=o.includes(i)?i:t.DEFAULT_OPTIONS[e];break;case"cursorWidth":i=Math.floor(i);case"lineHeight":case"tabStopWidth":if(i<1)throw new Error(`${e} cannot be less than 1, value: ${i}`);break;case"minimumContrastRatio":i=Math.max(1,Math.min(21,Math.round(10*i)/10));break;case"scrollback":if((i=Math.min(i,4294967295))<0)throw new Error(`${e} cannot be less than 0, value: ${i}`);break;case"fastScrollSensitivity":case"scrollSensitivity":if(i<=0)throw new Error(`${e} cannot be less than or equal to 0, value: ${i}`);break;case"rows":case"cols":if(!i&&0!==i)throw new Error(`${e} must be numeric, value: ${i}`);break;case"windowsPty":i=i??{}}return i}}t.OptionsService=a},2660:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OscLinkService=void 0;const n=i(2585);let o=t.OscLinkService=class{constructor(e){this._bufferService=e,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(e){const t=this._bufferService.buffer;if(void 0===e.id){const i=t.addMarker(t.ybase+t.y),s={data:e,id:this._nextId++,lines:[i]};return i.onDispose((()=>this._removeMarkerFromLink(s,i))),this._dataByLinkId.set(s.id,s),s.id}const i=e,s=this._getEntryIdKey(i),r=this._entriesWithId.get(s);if(r)return this.addLineToLink(r.id,t.ybase+t.y),r.id;const n=t.addMarker(t.ybase+t.y),o={id:this._nextId++,key:this._getEntryIdKey(i),data:i,lines:[n]};return n.onDispose((()=>this._removeMarkerFromLink(o,n))),this._entriesWithId.set(o.key,o),this._dataByLinkId.set(o.id,o),o.id}addLineToLink(e,t){const i=this._dataByLinkId.get(e);if(i&&i.lines.every((e=>e.line!==t))){const e=this._bufferService.buffer.addMarker(t);i.lines.push(e),e.onDispose((()=>this._removeMarkerFromLink(i,e)))}}getLinkData(e){return this._dataByLinkId.get(e)?.data}_getEntryIdKey(e){return`${e.id};;${e.uri}`}_removeMarkerFromLink(e,t){const i=e.lines.indexOf(t);-1!==i&&(e.lines.splice(i,1),0===e.lines.length&&(void 0!==e.data.id&&this._entriesWithId.delete(e.key),this._dataByLinkId.delete(e.id)))}};t.OscLinkService=o=s([r(0,n.IBufferService)],o)},8343:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0;const i="di$target",s="di$dependencies";t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e[s]||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);const r=function(e,t,n){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");!function(e,t,r){t[i]===t?t[s].push({id:e,index:r}):(t[s]=[{id:e,index:r}],t[i]=t)}(r,e,n)};return r.toString=()=>e,t.serviceRegistry.set(e,r),r}},2585:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;const s=i(8343);var r;t.IBufferService=(0,s.createDecorator)("BufferService"),t.ICoreMouseService=(0,s.createDecorator)("CoreMouseService"),t.ICoreService=(0,s.createDecorator)("CoreService"),t.ICharsetService=(0,s.createDecorator)("CharsetService"),t.IInstantiationService=(0,s.createDecorator)("InstantiationService"),function(e){e[e.TRACE=0]="TRACE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.OFF=5]="OFF"}(r||(t.LogLevelEnum=r={})),t.ILogService=(0,s.createDecorator)("LogService"),t.IOptionsService=(0,s.createDecorator)("OptionsService"),t.IOscLinkService=(0,s.createDecorator)("OscLinkService"),t.IUnicodeService=(0,s.createDecorator)("UnicodeService"),t.IDecorationService=(0,s.createDecorator)("DecorationService")},1480:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeService=void 0;const s=i(8460),r=i(225);class n{static extractShouldJoin(e){return 0!=(1&e)}static extractWidth(e){return e>>1&3}static extractCharKind(e){return e>>3}static createPropertyValue(e,t,i=!1){return(16777215&e)<<3|(3&t)<<1|(i?1:0)}constructor(){this._providers=Object.create(null),this._active="",this._onChange=new s.EventEmitter,this.onChange=this._onChange.event;const e=new r.UnicodeV6;this.register(e),this._active=e.version,this._activeProvider=e}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw new Error(`unknown Unicode version "${e}"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(e){let t=0,i=0;const s=e.length;for(let r=0;r=s)return t+this.wcwidth(o);const i=e.charCodeAt(r);56320<=i&&i<=57343?o=1024*(o-55296)+i-56320+65536:t+=this.wcwidth(i)}const a=this.charProperties(o,i);let h=n.extractWidth(a);n.extractShouldJoin(a)&&(h-=n.extractWidth(i)),t+=h,i=a}return t}charProperties(e,t){return this._activeProvider.charProperties(e,t)}}t.UnicodeService=n}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,i),n.exports}var s={};return(()=>{var e=s;Object.defineProperty(e,"__esModule",{value:!0}),e.Terminal=void 0;const t=i(9042),r=i(3236),n=i(844),o=i(5741),a=i(8285),h=i(7975),c=i(7090),l=["cols","rows"];class d extends n.Disposable{constructor(e){super(),this._core=this.register(new r.Terminal(e)),this._addonManager=this.register(new o.AddonManager),this._publicOptions={...this._core.options};const t=e=>this._core.options[e],i=(e,t)=>{this._checkReadonlyOptions(e),this._core.options[e]=t};for(const e in this._core.options){const s={get:t.bind(this,e),set:i.bind(this,e)};Object.defineProperty(this._publicOptions,e,s)}}_checkReadonlyOptions(e){if(l.includes(e))throw new Error(`Option "${e}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error("You must set the allowProposedApi option to true to use proposed API")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new h.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new c.UnicodeApi(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||(this._buffer=this.register(new a.BufferNamespaceApi(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){const e=this._core.coreService.decPrivateModes;let t="none";switch(this._core.coreMouseService.activeProtocol){case"X10":t="x10";break;case"VT200":t="vt200";break;case"DRAG":t="drag";break;case"ANY":t="any"}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:t,originMode:e.origin,reverseWraparoundMode:e.reverseWraparound,sendFocusMode:e.sendFocus,wraparoundMode:e.wraparound}}get options(){return this._publicOptions}set options(e){for(const t in e)this._publicOptions[t]=e[t]}blur(){this._core.blur()}focus(){this._core.focus()}input(e,t=!0){this._core.input(e,t)}resize(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)}open(e){this._core.open(e)}attachCustomKeyEventHandler(e){this._core.attachCustomKeyEventHandler(e)}attachCustomWheelEventHandler(e){this._core.attachCustomWheelEventHandler(e)}registerLinkProvider(e){return this._core.registerLinkProvider(e)}registerCharacterJoiner(e){return this._checkProposedApi(),this._core.registerCharacterJoiner(e)}deregisterCharacterJoiner(e){this._checkProposedApi(),this._core.deregisterCharacterJoiner(e)}registerMarker(e=0){return this._verifyIntegers(e),this._core.registerMarker(e)}registerDecoration(e){return this._checkProposedApi(),this._verifyPositiveIntegers(e.x??0,e.width??0,e.height??0),this._core.registerDecoration(e)}hasSelection(){return this._core.hasSelection()}select(e,t,i){this._verifyIntegers(e,t,i),this._core.select(e,t,i)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)}dispose(){super.dispose()}scrollLines(e){this._verifyIntegers(e),this._core.scrollLines(e)}scrollPages(e){this._verifyIntegers(e),this._core.scrollPages(e)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(e){this._verifyIntegers(e),this._core.scrollToLine(e)}clear(){this._core.clear()}write(e,t){this._core.write(e,t)}writeln(e,t){this._core.write(e),this._core.write("\r\n",t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return t}_verifyIntegers(...e){for(const t of e)if(t===1/0||isNaN(t)||t%1!=0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...e){for(const t of e)if(t&&(t===1/0||isNaN(t)||t%1!=0||t<0))throw new Error("This API only accepts positive integers")}}e.Terminal=d})(),s})())); +//# sourceMappingURL=xterm.js.map \ No newline at end of file diff --git a/example/README.md b/example/README.md new file mode 100644 index 0000000..9503cef --- /dev/null +++ b/example/README.md @@ -0,0 +1,36 @@ +# Embedding an OmnyShell terminal + +A minimal web app that connects to a Hub and opens a live shell on a node — +everything `package:omnyshell_web` gives you, and nothing else. + +`main.dart` is the whole app. It uses only the three public barrels +(`client.dart`, `terminal.dart`, `ui_kit.dart`), so it also serves as a check +that they are sufficient on their own: if this compiles without reaching into +`package:omnyshell_web/src/...`-style deep paths, the public surface is complete. + +## Run it + +```sh +dart pub get +dart run omnyshell_web:copy_assets # xterm bundle + kit.css + terminal.css → web/ +dart pub global activate webdev +webdev serve +``` + +You need a Hub and a node to connect to: + +```sh +cd ../../omnyshell +./run-hub.sh # prints a grant token +dart run bin/omnyshell.dart node start --id web-01 +``` + +## What to look at + +- `WebShellHost` drives the session: prompt, echo, line editing, history, + Ctrl-C routing, PTY resize. Passing `commands: null` gives a plain remote + shell with no `:ai` and no `:ide`. +- `TerminalFitter` keeps the terminal correctly sized against window resizes, a + soft keyboard and fullscreen. It is the part you really don't want to rewrite. +- `TerminalAccessoryBar` supplies Esc/Tab/Ctrl/arrows and copy-paste, which a + touch device has no keys for. diff --git a/example/main.dart b/example/main.dart new file mode 100644 index 0000000..7bac43d --- /dev/null +++ b/example/main.dart @@ -0,0 +1,138 @@ +// A minimal app that embeds an OmnyShell terminal. +// +// Uses only the public barrels — if this compiles, the shared surface is +// self-sufficient and no consumer needs a deep import. +import 'package:omnyshell_web/client.dart'; +import 'package:omnyshell_web/terminal.dart'; +import 'package:omnyshell_web/ui_kit.dart'; +import 'package:web/web.dart' as web; + +void main() { + final root = web.document.getElementById('app') as web.HTMLElement; + final toasts = Toasts(web.document.getElementById('toasts')!); + ExampleApp(root, toasts).start(); +} + +/// Login → open a shell on a node → drive it in an xterm terminal. +class ExampleApp { + /// Where the app renders. + final web.HTMLElement root; + + /// Where transient messages go. + final Toasts toasts; + + /// The only thing that talks to omnyshell's `ClientRuntime`. + final OmnyShellService service = OmnyShellService(); + + /// Creates the app. + ExampleApp(this.root, this.toasts); + + /// Renders the login form. + void start() { + final hub = input(id: 'hub', placeholder: 'hub.example.com'); + final principal = input(id: 'principal', placeholder: 'alice'); + final token = input(id: 'token', type: 'password'); + final node = input(id: 'node', placeholder: 'worker-01'); + + clearChildren(root); + mount( + root, + el( + 'div', + classes: 'card pad-lg', + children: [ + el('h1', text: 'Terminal'), + field('Hub', hub), + field('Principal', principal), + field('Token', token), + field('Node', node), + button( + 'Connect', + primary: true, + onClick: () => _connect( + hub: hub.value, + principal: principal.value, + token: token.value, + nodeId: node.value, + ), + ), + ], + ), + ); + } + + Future _connect({ + required String hub, + required String principal, + required String token, + required String nodeId, + }) async { + try { + await service.connect(hubUri: hub, principal: principal, token: token); + await _openShell(principal: principal, nodeId: nodeId); + } on AppError catch (e) { + // Every omnyshell failure arrives already translated into an AppError with + // a message worth showing a human. + toasts.error(e.message); + } + } + + Future _openShell({ + required String principal, + required String nodeId, + }) async { + final host = el('div', classes: 'terminal-host'); + final accessory = el('div'); + final screen = el( + 'div', + classes: 'terminal-screen stack', + children: [ + el('div', classes: 'card terminal-card', children: [host]), + accessory, + ], + ); + clearChildren(root); + mount(root, screen); + + final term = XtermTerminalView(host); + final session = await service.openShell( + nodeId: nodeId, + cols: term.size.cols, + rows: term.size.rows, + ); + + // The shell driver: prompt, local echo, line editing, history, Ctrl-C + // routing, PTY resize. `commands: null` keeps it a plain remote shell — no + // `:ai`, no `:ide`, and so no command_shield in the graph. + final shell = WebShellHost( + term: term, + session: session, + principal: principal, + nodeId: nodeId, + commands: null, + ); + + // Touch devices have no Esc/Tab/Ctrl/arrow keys, and no easy copy-paste. + mount( + accessory, + TerminalAccessoryBar( + keys: shell, + term: term, + clipboardRead: defaultClipboardRead, + clipboardWrite: defaultClipboardWrite, + onToast: toasts.show, + ).element, + ); + + // Keeps the terminal sized against window resizes, a soft keyboard and + // rotation. Auto-fit mode: no fixedDims, so xterm derives cols/rows. + TerminalFitter( + term: term, + host: host, + accessory: accessory, + scaleTarget: screen, + ).attach(); + + term.focus(); + } +} diff --git a/lib/client.dart b/lib/client.dart new file mode 100644 index 0000000..5e99fc5 --- /dev/null +++ b/lib/client.dart @@ -0,0 +1,41 @@ +/// The app foundation: the OmnyShell service facade, state primitives, storage +/// and routing. +/// +/// Everything a browser app needs *around* the terminal, with no DOM framework +/// and no app-specific coupling: +/// +/// * [OmnyShellService] — the only thing that touches omnyshell's `ClientRuntime`. +/// It normalizes Hub URLs, translates exceptions into [AppError]s, and exposes +/// connect / nodes / sessions / shell operations. A `ConnectionFactory` can be +/// injected to drive it against a fake Hub in tests. +/// * [Observable] and [AsyncState] — the state model. Controllers own observables +/// of immutable snapshots; screens subscribe and re-render their own subtree. +/// `AsyncState` deliberately keeps `data` while `loading` or in `error`, so the +/// UI can show last-known content under a spinner or a banner. +/// * [KeyValueStore] / [SettingsStore] / [NodeCache] — persistence, behind an +/// interface so the logic is testable on the VM. **Pass your own `prefix`**: +/// `localStorage` is per-origin and one Hub can serve two apps, which would +/// otherwise clobber each other's theme, Hub and token. +/// * [Router] — hash-based (`#/path`), so the app deploys as static files with no +/// server rewrites. `matchRoute` is pure and VM-testable. +/// * [ThemeController] — light/dark/system, DOM-free (application is injected), +/// so the pre-paint theme script can drive it without a flash. +/// +/// The domain types themselves (`NodeDescriptor`, `RemoteSession`, `Principal`, …) +/// come from `package:omnyshell/omnyshell_client_web.dart`. +/// Note the split: the DOM-free half of this lives in `foundation.dart`, which +/// this re-exports. A consuming app's service and controller layers should +/// import **that** — it runs on the VM, so they stay unit-testable with +/// `dart test` instead of needing headless Chrome. Only what actually touches +/// the page (`LocalStorageStore`, `Router`) needs this library. +library; + +export 'core/omnyshell_service.dart'; +export 'foundation.dart'; +export 'router/router.dart'; +export 'state/auth_controller.dart'; +export 'state/nodes_controller.dart'; +export 'state/sessions_controller.dart'; +export 'state/terminal_display_controller.dart'; +export 'state/theme_controller.dart'; +export 'storage/local_storage_store.dart'; diff --git a/lib/core/version.dart b/lib/core/version.dart index 2e4c834..6787740 100644 --- a/lib/core/version.dart +++ b/lib/core/version.dart @@ -6,4 +6,4 @@ library; /// This web client's version (matches `pubspec.yaml`). -const String webClientVersion = '1.14.12'; +const String webClientVersion = '1.15.0'; diff --git a/lib/foundation.dart b/lib/foundation.dart new file mode 100644 index 0000000..1b9e62f --- /dev/null +++ b/lib/foundation.dart @@ -0,0 +1,21 @@ +/// The DOM-free foundation: state primitives, error mapping, storage contracts. +/// +/// Everything here runs on the **Dart VM** as well as in a browser, because none +/// of it imports `package:web`. That is the whole point of the split: a consuming +/// app's service and controller layers can be unit-tested with `dart test` — no +/// headless Chrome, no DOM — while only the parts that genuinely touch the page +/// need a browser. +/// +/// Import [client.dart] instead when you also need the browser-bound pieces +/// (`LocalStorageStore`, `Router`, `OmnyShellService` and the controllers built +/// on them); it re-exports everything here. +library; + +export 'core/app_error.dart'; +export 'core/observable.dart'; +export 'core/time_format.dart'; +export 'router/route_match.dart'; +export 'state/async_state.dart'; +export 'storage/key_value_store.dart'; +export 'storage/node_cache.dart'; +export 'storage/settings_store.dart'; diff --git a/lib/storage/node_cache.dart b/lib/storage/node_cache.dart index 23f06b8..f01a816 100644 --- a/lib/storage/node_cache.dart +++ b/lib/storage/node_cache.dart @@ -8,11 +8,16 @@ import 'key_value_store.dart'; /// reload while a fresh fetch runs. Backed by [KeyValueStore]; the cache is /// best-effort — any decode error yields `null` (treated as a cold cache). class NodeCache { - static const String _key = 'omnyshell.cache.nodes'; + /// The default key namespace, matching [SettingsStore.defaultPrefix]. + static const String defaultPrefix = 'omnyshell.'; + + final String _key; final KeyValueStore _kv; - /// Creates a cache over [kv]. - NodeCache(this._kv); + /// Creates a cache over [kv], namespaced under [prefix] so two apps on one + /// origin do not share a node list. + NodeCache(this._kv, {String prefix = defaultPrefix}) + : _key = '${prefix}cache.nodes'; /// Returns the cached nodes, or `null` if absent/unreadable. List? read() { diff --git a/lib/storage/settings_store.dart b/lib/storage/settings_store.dart index 5445c19..67280b4 100644 --- a/lib/storage/settings_store.dart +++ b/lib/storage/settings_store.dart @@ -8,27 +8,38 @@ import 'key_value_store.dart'; /// page — see the README security note; [rememberToken] lets the user keep the /// token in memory only. class SettingsStore { - static const String _prefix = 'omnyshell.'; - static const String _themeKey = '${_prefix}theme'; - static const String _hubKey = '${_prefix}hub'; - static const String _principalKey = '${_prefix}principal'; - static const String _rememberKey = '${_prefix}rememberToken'; - static const String _tokenPrefix = '${_prefix}token.'; - static const String _termDimKey = '${_prefix}terminal.dimPreset'; - static const String _termColsKey = '${_prefix}terminal.customCols'; - static const String _termRowsKey = '${_prefix}terminal.customRows'; - static const String _termTextKey = '${_prefix}terminal.textSize'; - static const String _aiUseHubKey = '${_prefix}ai.useHubDefault'; - static const String _aiProviderKey = '${_prefix}ai.provider'; - static const String _aiModelKey = '${_prefix}ai.model'; - static const String _aiApiKeyKey = '${_prefix}ai.apiKey'; - static const String _aiModeKey = '${_prefix}ai.mode'; - static const String _aiLanguageKey = '${_prefix}ai.language'; + /// The default key namespace. + static const String defaultPrefix = 'omnyshell.'; + + /// The namespace every key of this store is written under. + /// + /// Another app embedding this package — the OmnyServer dashboard, say — is + /// very likely served from the *same origin* as this one (one Hub can host + /// both), and `localStorage` is per-origin. Sharing the namespace would mean + /// sharing, and clobbering, each other's theme, Hub, token and terminal + /// preferences. Give each app its own prefix. + final String prefix; final KeyValueStore _kv; - /// Creates a settings store over [kv]. - SettingsStore(this._kv); + /// Creates a settings store over [kv], namespacing keys under [prefix]. + SettingsStore(this._kv, {this.prefix = defaultPrefix}); + + String get _themeKey => '${prefix}theme'; + String get _hubKey => '${prefix}hub'; + String get _principalKey => '${prefix}principal'; + String get _rememberKey => '${prefix}rememberToken'; + String get _tokenPrefix => '${prefix}token.'; + String get _termDimKey => '${prefix}terminal.dimPreset'; + String get _termColsKey => '${prefix}terminal.customCols'; + String get _termRowsKey => '${prefix}terminal.customRows'; + String get _termTextKey => '${prefix}terminal.textSize'; + String get _aiUseHubKey => '${prefix}ai.useHubDefault'; + String get _aiProviderKey => '${prefix}ai.provider'; + String get _aiModelKey => '${prefix}ai.model'; + String get _aiApiKeyKey => '${prefix}ai.apiKey'; + String get _aiModeKey => '${prefix}ai.mode'; + String get _aiLanguageKey => '${prefix}ai.language'; /// The persisted theme preference (`light`, `dark`, or `system`), or `null`. String? get theme => _kv.read(_themeKey); diff --git a/lib/terminal.dart b/lib/terminal.dart new file mode 100644 index 0000000..dedbc90 --- /dev/null +++ b/lib/terminal.dart @@ -0,0 +1,54 @@ +/// The browser terminal: an xterm.js surface wired to a live OmnyShell session. +/// +/// This is the reusable heart of OmnyShell Web. Any web app that can reach an +/// OmnyShell broker — including the OmnyServer dashboard, whose Hub hosts one on +/// the same port — can embed a real remote shell with it, rather than +/// re-implementing the parts that are genuinely hard: PTY sizing, soft-keyboard +/// insets, line editing, history and flow control. +/// +/// The wiring, end to end: +/// +/// ```dart +/// final term = XtermTerminalView(hostElement); +/// final session = await service.openShell(nodeId: id, cols: 80, rows: 24); +/// final shell = WebShellHost( +/// term: term, +/// session: session, +/// principal: 'alice', +/// nodeId: id, +/// commands: null, // a plain remote shell: no :ai, no :ide +/// ); +/// mount(accessorySlot, TerminalAccessoryBar( +/// keys: shell, +/// term: term, +/// clipboardRead: defaultClipboardRead, +/// clipboardWrite: defaultClipboardWrite, +/// onToast: showToast, +/// ).element); +/// TerminalFitter( +/// term: term, +/// host: hostElement, +/// accessory: accessorySlot, +/// scaleTarget: screenRoot, +/// ).attach(); +/// ``` +/// +/// The session type itself ([ShellSessionPort], `RemoteSession`) comes from +/// `package:omnyshell/omnyshell_client_web.dart`, not from here. +/// +/// The xterm.js bundle and stylesheet are **assets**, and pub does not serve a +/// dependency's `web/` directory to a consuming app. Install them with: +/// +/// ```sh +/// dart run omnyshell_web:copy_assets +/// ``` +library; + +export 'terminal/command_history.dart'; +export 'terminal/device_metrics.dart'; +export 'terminal/terminal_accessory.dart'; +export 'terminal/terminal_dimensions.dart'; +export 'terminal/terminal_fitter.dart'; +export 'terminal/terminal_view.dart'; +export 'terminal/web_shell_host.dart'; +export 'terminal/xterm_terminal_view.dart'; diff --git a/lib/terminal/command_history.dart b/lib/terminal/command_history.dart index 881095f..97bd95c 100644 --- a/lib/terminal/command_history.dart +++ b/lib/terminal/command_history.dart @@ -15,6 +15,10 @@ import '../storage/key_value_store.dart'; /// persisted as newline-joined lines. class CommandHistory implements CommandHistoryStore { /// Namespace for stored histories, kept distinct from settings/cache keys. + /// + /// An app embedding this package passes its own `prefix` to + /// [CommandHistory.load] so its histories do not collide with another app's + /// on the same origin. static const String storagePrefix = 'omnyshell.history.'; /// The shared, storage-agnostic entry buffer (add rules + cap + navigation). @@ -35,8 +39,9 @@ class CommandHistory implements CommandHistoryStore { required KeyValueStore kv, required String key, int maxEntries = 1000, + String prefix = storagePrefix, }) { - final storageKey = '$storagePrefix${CommandHistoryBuffer.sanitizeKey(key)}'; + final storageKey = '$prefix${CommandHistoryBuffer.sanitizeKey(key)}'; final buffer = CommandHistoryBuffer(maxEntries: maxEntries); try { final raw = kv.read(storageKey); diff --git a/lib/terminal/device_metrics.dart b/lib/terminal/device_metrics.dart new file mode 100644 index 0000000..35a2314 --- /dev/null +++ b/lib/terminal/device_metrics.dart @@ -0,0 +1,24 @@ +import 'package:web/web.dart' as web; + +import 'terminal_dimensions.dart'; + +/// Reads this device's screen boxes in both orientations from the browser. +/// +/// `screen.width/height` are orientation-stable enough to derive both boxes, so +/// the dimension presets stay correct regardless of how the device is currently +/// held. +/// +/// Kept apart from `terminal_dimensions.dart`, which is deliberately pure +/// (and so unit-testable on the VM): this is the one function that has to touch +/// the DOM. +DeviceMetrics deviceMetrics() { + final s = web.window.screen; + final w = s.width.toDouble(); + final h = s.height.toDouble(); + final short = w < h ? w : h; + final long = w < h ? h : w; + return DeviceMetrics( + portrait: OrientationBox(short, long), + landscape: OrientationBox(long, short), + ); +} diff --git a/lib/terminal/terminal_fitter.dart b/lib/terminal/terminal_fitter.dart new file mode 100644 index 0000000..675d83e --- /dev/null +++ b/lib/terminal/terminal_fitter.dart @@ -0,0 +1,280 @@ +import 'dart:async'; +import 'dart:js_interop'; + +import 'package:web/web.dart' as web; + +import 'terminal_dimensions.dart'; +import 'terminal_view.dart'; +import 'xterm_terminal_view.dart'; + +/// Keeps a terminal correctly sized as the page around it changes. +/// +/// This is the fiddliest part of hosting xterm.js in a browser, and it is why it +/// lives here rather than inside a screen: any app embedding the terminal needs +/// all of it, and getting a *piece* of it wrong is what produces a terminal that +/// grows but never shrinks, renders 0×0, or hides its last line behind a soft +/// keyboard. +/// +/// It handles two modes: +/// +/// * **Fixed** ([fixedDims] set) — the grid is pinned to chosen cols×rows for the +/// session's lifetime, because the backend PTY cannot be resized. Only the +/// *font* rescales, to the largest size at which that grid still fits. +/// * **Auto-fit** ([fixedDims] null) — the font is fixed and xterm re-derives +/// cols/rows from the container. +/// +/// Call [attach] once the terminal is mounted and the accessory bar exists, and +/// [dispose] when the screen goes away. +class TerminalFitter { + /// The terminal being fitted. Only an [XtermTerminalView] can actually be + /// resized; any other implementation makes every operation a no-op, which is + /// what keeps tests with a fake terminal working. + final TerminalView term; + + /// The element the terminal is rendered into. + final web.HTMLElement host; + + /// The on-screen key bar below the terminal, whose box is reserved. + final web.HTMLElement accessory; + + /// The element carrying the `--term-key-scale` custom property (typically the + /// screen root), so the key bar scales with the terminal font. + final web.HTMLElement scaleTarget; + + /// The pinned grid, or `null` for auto-fit. + final ({int cols, int rows})? fixedDims; + + /// The current text-size preference. Defaults to [TerminalTextSize.auto]. + final TerminalTextSize Function() textSize; + + /// Whether the terminal is currently full-screen (its container then fills the + /// window and must not be pinned to a measured height). + final bool Function() isFullscreen; + + bool _fitScheduled = false; + bool _disposed = false; + Timer? _settleTimer; + void Function()? _detachResize; + void Function()? _detachViewport; + web.ResizeObserver? _resizeObserver; + StreamSubscription? _textSizeSub; + + /// Creates a fitter for [term] inside [host]. + TerminalFitter({ + required this.term, + required this.host, + required this.accessory, + required this.scaleTarget, + this.fixedDims, + TerminalTextSize Function()? textSize, + bool Function()? isFullscreen, + }) : textSize = textSize ?? (() => TerminalTextSize.auto), + isFullscreen = isFullscreen ?? (() => false); + + /// Starts watching everything that can change the terminal's geometry. + /// + /// [textSizeChanges] re-applies the font live when the preference changes. + void attach({Stream? textSizeChanges}) { + _detachResize = _on(web.window, 'resize', scheduleFit); + // The soft keyboard resizes the *visual* viewport, not the window, so refit + // on its changes too. + final vv = web.window.visualViewport; + if (vv != null) { + _detachViewport = _on(vv, 'resize', scheduleSettle); + } + // The robust trigger: refit whenever the host actually changes size + // (fullscreen toggle, keyboard, rotation, …). A ResizeObserver fires *after* + // layout, so xterm measures the settled box rather than the previous one. + final ro = web.ResizeObserver( + ((JSArray entries, web.ResizeObserver observer) { + scheduleFit(); + }).toJS, + ); + ro.observe(host); + _resizeObserver = ro; + _textSizeSub = textSizeChanges?.listen((_) => scheduleFit()); + } + + /// Refits the terminal to its container. + void fit() { + if (_disposed) return; + _applyHostHeight(); + applyFont(); + } + + /// Applies the resolved font size and scales the key bar to match. + /// + /// In fixed mode the baseline is the largest font at which the whole grid fits + /// the container in *both* dimensions, so the terminal scales with the window + /// (a pinned grid never reflows). In auto-fit mode the baseline is xterm's + /// default. The text-size preference then adjusts that baseline. + void applyFont() { + final t = term; + if (t is! XtermTerminalView) return; + final fixed = fixedDims; + final base = fixed == null ? 13 : _fitFontPx(fixed.cols, fixed.rows); + final px = switch (textSize()) { + TerminalTextSize.auto => base, + TerminalTextSize.smaller => (base * 0.8).floor().clamp( + kMinFontPx, + kMaxFontPx, + ), + TerminalTextSize.normal => 13, + TerminalTextSize.larger => (base * 1.25).ceil().clamp( + kMinFontPx, + kMaxFontPx, + ), + }; + t.setFontSize(px); + _applyKeyScale(px); + // Re-derive cols (auto-fit) or re-pin them (fixed) after the font change. + if (fixed == null) { + t.fit(); + } else { + t.resize(fixed.cols, fixed.rows); + } + } + + /// Coalesces refit requests to once per frame, running the fit in a + /// `requestAnimationFrame` callback — after style and layout for any pending + /// change (class toggle, keyboard inset, …) have been computed, so xterm + /// measures the settled box. + void scheduleFit() { + if (_fitScheduled || _disposed) return; + _fitScheduled = true; + web.window.requestAnimationFrame( + (double _) { + _fitScheduled = false; + fit(); + }.toJS, + ); + } + + /// Refits next frame, and once more after the viewport stops changing. + /// + /// Opening or closing the soft keyboard animates the visual viewport over many + /// events; the trailing timer, reset on each call, fires only once it settles, + /// so the final fit measures the right height. + void scheduleSettle() { + scheduleFit(); + _settleTimer?.cancel(); + _settleTimer = Timer(const Duration(milliseconds: 200), fit); + } + + /// Refits across several frames and pins the view to the bottom. Use after a + /// fullscreen toggle and once after the initial mount. + /// + /// The flex/`dvh` layout — and, on mobile, browser chrome animating in or out — + /// settles over a few hundred milliseconds, so a single immediate fit measures + /// a stale box and leaves the terminal mis-sized. + void settle() { + void apply() { + if (_disposed) return; + fit(); + // A layout change can leave the xterm canvas stale, so force a redraw of + // the visible rows in normal mode. + if (!isFullscreen()) { + final t = term; + if (t is XtermTerminalView) t.refresh(); + } + term.scrollToBottom(); + } + + scheduleFit(); + web.window.requestAnimationFrame(((double _) => apply()).toJS); + // Catch the post-animation / post-settle box size. + for (final ms in const [120, 300, 500]) { + Timer(Duration(milliseconds: ms), apply); + } + } + + /// Stops watching and releases every listener and timer. + void dispose() { + _disposed = true; + _settleTimer?.cancel(); + _detachResize?.call(); + _detachViewport?.call(); + _resizeObserver?.disconnect(); + unawaited(_textSizeSub?.cancel()); + } + + /// The largest font (px) at which a [cols]×[rows] grid still fits the host in + /// both width and height, clamped to a sane range. Falls back to the default + /// before the host has a measurable size. + int _fitFontPx(int cols, int rows) { + // Width from the host (a block at width:100%, not inflated by content); + // height from the viewport-available space, NOT the host's own height — + // which the terminal canvas inflates. See [_availableHeight]. + final width = host.getBoundingClientRect().width; + final height = _availableHeight(); + if (width <= 0 || height <= 0) return 13; + final fitWidth = width / (cols * kCellWidthRatio); + final fitHeight = height / (rows * kCellHeightRatio); + final fit = fitWidth < fitHeight ? fitWidth : fitHeight; + return fit.floor().clamp(kMinFontPx, kMaxFontPx); + } + + /// Scales the on-screen key bar with the terminal font via a CSS variable, so + /// smaller text yields smaller keys (more keys visible on a phone). + void _applyKeyScale(int px) { + final scale = (px / 13).clamp(0.7, 1.6); + scaleTarget.style.setProperty('--term-key-scale', scale.toStringAsFixed(3)); + } + + /// Pins the host to a *definite* pixel height: the space available between the + /// chrome above it and the key bar below it. + /// + /// A definite height, not merely a `min-height` floor, is essential. The xterm + /// canvas can be taller than the viewport (right after exiting fullscreen, for + /// instance) and when the CSS `height: 100%` resolves to `auto`, that content + /// height wins — a `min-height` could never pull the host back down, so the + /// terminal would grow with the window but never shrink. An explicit `height` + /// is both floor and ceiling. + /// + /// Skipped in fullscreen (the fixed container already fills the screen) and + /// while the keyboard is open (the fixed layout sizes the terminal); the inline + /// height is removed so the CSS rules take over. + void _applyHostHeight() { + final kbOpen = + web.document.documentElement?.classList.contains('keyboard-open') ?? + false; + if (isFullscreen() || kbOpen) { + host.style.removeProperty('height'); + return; + } + // Clear our prior height first, so the measurement isn't skewed by it. + host.style.removeProperty('height'); + final available = _availableHeight(); + if (available > 0) { + host.style.height = '${available.round()}px'; + } + } + + /// The height available to the terminal: the viewport, minus the chrome above + /// the host, minus the key bar (and its gap) reserved below it. + /// + /// Derived from the host's *top* offset (stable) and the bar's box — never the + /// host's own height — so it cannot feed back on the terminal's current, + /// content-inflated height. That feedback is what let a fixed-grid terminal + /// grow but never shrink. + double _availableHeight() { + final viewport = + web.window.visualViewport?.height ?? web.window.innerHeight.toDouble(); + final hostRect = host.getBoundingClientRect(); + final barRect = accessory.getBoundingClientRect(); + final gapBelow = barRect.top - hostRect.bottom; + final reserveBelow = barRect.height + (gapBelow > 0 ? gapBelow : 0); + return viewport - hostRect.top - reserveBelow; + } + + /// Adds a DOM listener and returns its remover. + static void Function() _on( + web.EventTarget target, + String type, + void Function() handler, + ) { + final callback = ((web.Event _) => handler()).toJS; + target.addEventListener(type, callback); + return () => target.removeEventListener(type, callback); + } +} diff --git a/lib/terminal/xterm_terminal_view.dart b/lib/terminal/xterm_terminal_view.dart index c1b6fd5..42e2f18 100644 --- a/lib/terminal/xterm_terminal_view.dart +++ b/lib/terminal/xterm_terminal_view.dart @@ -8,9 +8,43 @@ import 'package:web/web.dart' as web; import 'terminal_view.dart'; import 'xterm_interop.dart'; +/// The colours xterm renders with. +/// +/// Separate from the app's CSS theme: xterm paints to a canvas, so it cannot +/// inherit CSS custom properties and must be told its colours explicitly. +class XtermTheme { + /// The terminal background. + final String background; + + /// The default foreground (text) colour. + final String foreground; + + /// The cursor colour. + final String cursor; + + /// Creates a theme. + const XtermTheme({ + required this.background, + required this.foreground, + required this.cursor, + }); + + /// OmnyShell's palette — the default, and what `styles.css` is tuned against. + static const XtermTheme omnyShell = XtermTheme( + background: '#0b0e12', + foreground: '#e6e9ee', + cursor: '#4f8bff', + ); +} + /// A [TerminalView] backed by xterm.js. Requires the xterm UMD bundle + fit -/// addon to be loaded on the page (see `web/index.html`). +/// addon to be loaded on the page (see `web/index.html`; `tool/copy_assets.dart` +/// installs them into a consuming app). class XtermTerminalView implements TerminalView { + /// The default monospace stack — the system's own, so no font is shipped. + static const String defaultFontFamily = + 'ui-monospace, SFMono-Regular, Menlo, Consolas, monospace'; + final XTerminal _term; final XFitAddon _fit; XDisposable? _dataSub; @@ -25,9 +59,24 @@ class XtermTerminalView implements TerminalView { /// available in the same tick the element is attached — fitting too early /// leaves the terminal 0×0 and nothing renders. We fit on the next macrotask /// and again shortly after so it picks up the real geometry. - XtermTerminalView(web.HTMLElement parent) - : _term = XTerminal(_options()), - _fit = XFitAddon() { + /// + /// [theme], [fontSize] and [fontFamily] let an embedding app match its own + /// look; the defaults are OmnyShell's. + XtermTerminalView( + web.HTMLElement parent, { + XtermTheme theme = XtermTheme.omnyShell, + int fontSize = 13, + String fontFamily = defaultFontFamily, + int scrollback = 5000, + }) : _term = XTerminal( + _options( + theme: theme, + fontSize: fontSize, + fontFamily: fontFamily, + scrollback: scrollback, + ), + ), + _fit = XFitAddon() { _term.loadAddon(_fit); _term.open(parent); _autoFit0 = Timer(Duration.zero, fit); @@ -42,18 +91,22 @@ class XtermTerminalView implements TerminalView { _autoFit80?.cancel(); } - static JSObject _options() { + static JSObject _options({ + required XtermTheme theme, + required int fontSize, + required String fontFamily, + required int scrollback, + }) { final o = JSObject(); o['cursorBlink'] = true.toJS; - o['fontFamily'] = - 'ui-monospace, SFMono-Regular, Menlo, Consolas, monospace'.toJS; - o['fontSize'] = 13.toJS; - o['scrollback'] = 5000.toJS; - final theme = JSObject(); - theme['background'] = '#0b0e12'.toJS; - theme['foreground'] = '#e6e9ee'.toJS; - theme['cursor'] = '#4f8bff'.toJS; - o['theme'] = theme; + o['fontFamily'] = fontFamily.toJS; + o['fontSize'] = fontSize.toJS; + o['scrollback'] = scrollback.toJS; + final t = JSObject(); + t['background'] = theme.background.toJS; + t['foreground'] = theme.foreground.toJS; + t['cursor'] = theme.cursor.toJS; + o['theme'] = t; return o; } diff --git a/lib/ui/screens/session_view_screen.dart b/lib/ui/screens/session_view_screen.dart index 8ec7684..65c2c52 100644 --- a/lib/ui/screens/session_view_screen.dart +++ b/lib/ui/screens/session_view_screen.dart @@ -1,5 +1,4 @@ import 'dart:async'; -import 'dart:js_interop'; import 'package:omnyshell/omnyshell_client_web.dart' show @@ -16,7 +15,7 @@ import '../../terminal/ai_command_factory.dart'; import '../../terminal/command_history.dart'; import '../../terminal/ide_command_factory.dart'; import '../../terminal/terminal_accessory.dart'; -import '../../terminal/terminal_dimensions.dart'; +import '../../terminal/terminal_fitter.dart'; import '../../terminal/terminal_view.dart'; import '../../terminal/web_shell_host.dart'; import '../../terminal/xterm_terminal_view.dart'; @@ -69,13 +68,10 @@ class SessionViewScreen implements Screen { bool _finished = false; bool _disposed = false; bool _fullscreen = false; - void Function()? _detachResize; void Function()? _detachOrientation; - void Function()? _detachViewport; - web.ResizeObserver? _resizeObserver; - bool _fitScheduled = false; - Timer? _settleTimer; - StreamSubscription? _textSizeSub; + + /// Keeps the terminal sized to the page (see [TerminalFitter]). + TerminalFitter? _fitter; /// The fixed PTY dimensions chosen for this session, or `null` in auto-fit /// mode. When set, the terminal keeps these cols/rows for its lifetime and only @@ -183,17 +179,28 @@ class SessionViewScreen implements Screen { ? ctx.display.resolveDimensions(deviceMetrics()) : null; + final fitter = TerminalFitter( + term: term, + host: _host, + accessory: _accessory, + scaleTarget: element, + fixedDims: _fixedDims, + textSize: () => ctx.display.textSize.value, + isFullscreen: () => _fullscreen, + ); + _fitter = fitter; + final int cols; final int rows; final fixed = _fixedDims; if (fixed != null) { // Pin the terminal to the chosen size and scale the font so those columns // fit the container; suppress the addon's deferred auto-fit (it would - // override the pinned cols/rows). `_applyFont` re-pins after the font. + // override the pinned cols/rows). `applyFont` re-pins after the font. if (term is XtermTerminalView) { term.cancelAutoFit(); term.resize(fixed.cols, fixed.rows); - _applyFont(); + fitter.applyFont(); } cols = fixed.cols; rows = fixed.rows; @@ -203,7 +210,7 @@ class SessionViewScreen implements Screen { // xterm view defers its first fit to later frames (the container isn't // laid out in the tick it's attached), so settle a frame and re-fit here. if (term is XtermTerminalView) { - _applyFont(); + fitter.applyFont(); await Future.delayed(const Duration(milliseconds: 100)); term.fit(); } @@ -321,43 +328,22 @@ class SessionViewScreen implements Screen { ).element, ); term.focus(); - _detachResize = on(web.window, 'resize', (_) => _scheduleFit()); - // The soft keyboard resizes the *visual* viewport (not window), so refit - // on its changes too. boot.js does the CSS layout binding. - final vv = web.window.visualViewport; - if (vv != null) { - _detachViewport = on(vv, 'resize', (_) => _scheduleSettle()); - } - // The robust trigger: refit whenever the terminal host actually changes - // size (fullscreen toggle, keyboard, rotation, …). A ResizeObserver fires - // *after* layout, so xterm measures the settled box — unlike the ad-hoc - // fits that ran before the new layout applied on fullscreen exit. - final ro = web.ResizeObserver( - ( - JSArray entries, - web.ResizeObserver observer, - ) { - _scheduleFit(); - } - .toJS, - ); - ro.observe(_host); - _resizeObserver = ro; + // Watch everything that can change the terminal's geometry: window and + // visual-viewport resizes (the soft keyboard moves the latter, not the + // former), the host's own box, and the text-size preference. Subscribing to + // `.stream` rather than `Observable.listen` avoids an immediate replay — + // the font is already applied above. + fitter.attach(textSizeChanges: ctx.display.textSize.stream); // A rotation in fullscreen leaves the terminal mis-sized and awkward, so // drop back to the normal layout when the orientation actually flips. final orientation = web.window.matchMedia('(orientation: portrait)'); _detachOrientation = on(orientation, 'change', (_) { if (_fullscreen) _setFullscreen(false); }); - // Re-apply the font live when the text-size preference changes (the - // dimension preset only affects the *next* session, so it isn't watched). - // Subscribe to `.stream` (not `Observable.listen`) so there's no immediate - // replay — the font is already applied above. - _textSizeSub = ctx.display.textSize.stream.listen((_) => _scheduleFit()); // The flex/dvh layout settles over a few frames after mount; re-fit across // them so xterm measures the final container height (rather than a stale // box that previously needed a manual reflow to correct). - _settle(); + fitter.settle(); } on Object catch (e) { term.dispose(); _term = null; @@ -365,149 +351,6 @@ class SessionViewScreen implements Screen { } } - /// Refits the xterm terminal to its container (after a window resize or a - /// fullscreen toggle changes the available geometry). - /// - /// `_applyFont` handles both modes: in auto-fit it sets the (text-size-adjusted) - /// font and lets the addon re-derive cols/rows; in fixed mode it rescales the - /// font and re-pins the cols/rows. Routing both through it keeps the live - /// text-size change working in auto-fit too. - void _fit() { - if (_disposed) return; - _applyHostHeight(); - _applyFont(); - } - - /// Applies the resolved terminal font size and scales the key bar to match. - /// - /// In fixed mode the baseline font is the largest that makes the whole chosen - /// grid fit the container in *both* dimensions, so the terminal scales with the - /// window (a fixed grid never reflows its cols/rows). In auto-fit mode the - /// baseline is the terminal default (13). The text-size preference then adjusts - /// that baseline. - void _applyFont() { - final t = _term; - if (t is! XtermTerminalView) return; - final fixed = _fixedDims; - final base = fixed == null ? 13 : _fitFontPx(fixed.cols, fixed.rows); - final px = switch (ctx.display.textSize.value) { - TerminalTextSize.auto => base, - TerminalTextSize.smaller => (base * 0.8).floor().clamp( - kMinFontPx, - kMaxFontPx, - ), - TerminalTextSize.normal => 13, - TerminalTextSize.larger => (base * 1.25).ceil().clamp( - kMinFontPx, - kMaxFontPx, - ), - }; - t.setFontSize(px); - _applyKeyScale(px); - // Re-derive cols (auto-fit) or re-pin them (fixed) after the font change. - if (fixed == null) { - t.fit(); - } else { - t.resize(fixed.cols, fixed.rows); - } - } - - /// The largest font (px) at which a [cols]×[rows] grid still fits the host in - /// both width and height, clamped to the sane range. Falls back to the default - /// before the host has a measurable size. - int _fitFontPx(int cols, int rows) { - // Width from the host (a block at width:100%, not inflated by content); - // height from the viewport-available space (NOT the host's own height, which - // the terminal canvas inflates — see [_availableHeight]). - final width = _host.getBoundingClientRect().width; - final height = _availableHeight(); - if (width <= 0 || height <= 0) return 13; - final fitWidth = width / (cols * kCellWidthRatio); - final fitHeight = height / (rows * kCellHeightRatio); - final fit = fitWidth < fitHeight ? fitWidth : fitHeight; - return fit.floor().clamp(kMinFontPx, kMaxFontPx); - } - - /// Scales the on-screen key bar with the terminal font via a CSS variable so - /// smaller text yields smaller keys (more keys visible on a phone). - void _applyKeyScale(int px) { - final scale = (px / 13).clamp(0.7, 1.6); - element.style.setProperty('--term-key-scale', scale.toStringAsFixed(3)); - } - - /// Pins the terminal host to a *definite* pixel height equal to the space - /// available between the chrome above it and the key bar below it. - /// - /// A definite height (not just a `min-height` floor) is essential: the xterm - /// canvas can be taller than the viewport (e.g. right after exiting fullscreen) - /// and, when the CSS `height: 100%` resolves to `auto`, that content height - /// would win and a `min-height` could never pull the host back down — so the - /// terminal grew with the window but never shrank. An explicit `height` is both - /// a floor and a ceiling, so the host always tracks the available space. - /// - /// Skipped in fullscreen (the fixed container already fills the screen) and - /// while the keyboard is open (the terminal is sized by the fixed layout); the - /// inline height is removed so the CSS rules take over. - void _applyHostHeight() { - final kbOpen = - web.document.documentElement?.classList.contains('keyboard-open') ?? - false; - if (_fullscreen || kbOpen) { - _host.style.removeProperty('height'); - return; - } - // Clear our prior height so the available-space measurement isn't skewed by - // it, then pin the host to the measured available height. - _host.style.removeProperty('height'); - final available = _availableHeight(); - if (available > 0) { - _host.style.height = '${available.round()}px'; - } - } - - /// The height available to the terminal: the viewport minus the chrome above - /// the host and the key bar (plus its gap) reserved below it. - /// - /// Derived from the host's *top* offset (stable) and the bar's box — never the - /// host's own height — so it can't feed back on the terminal's current, - /// content-inflated height. That feedback is what previously let a fixed-grid - /// terminal grow but never shrink (e.g. after exiting fullscreen). - double _availableHeight() { - final viewport = - web.window.visualViewport?.height ?? web.window.innerHeight.toDouble(); - final hostRect = _host.getBoundingClientRect(); - final barRect = _accessory.getBoundingClientRect(); - final gapBelow = barRect.top - hostRect.bottom; - final reserveBelow = barRect.height + (gapBelow > 0 ? gapBelow : 0); - return viewport - hostRect.top - reserveBelow; - } - - /// Coalesces refit requests to once per frame and runs the fit in a - /// `requestAnimationFrame` callback — after style/layout for any pending - /// change (class toggle, keyboard inset, …) has been computed, so xterm - /// measures the settled box rather than the previous one. - void _scheduleFit() { - if (_fitScheduled) return; - _fitScheduled = true; - web.window.requestAnimationFrame( - (double _) { - _fitScheduled = false; - _fit(); - }.toJS, - ); - } - - /// Refits now (next frame) and once more after the viewport stops changing. - /// The keyboard open/close animates the visual viewport over many events; the - /// trailing timer (reset on each call) fires only after it settles, so the - /// final fit measures the correct height (e.g. restoring it when the keyboard - /// closes in normal mode). - void _scheduleSettle() { - _scheduleFit(); - _settleTimer?.cancel(); - _settleTimer = Timer(const Duration(milliseconds: 200), _fit); - } - void _toggleFullscreen() => _setFullscreen(!_fullscreen); /// Expands the terminal to fill the whole window (hiding the app header and @@ -521,38 +364,7 @@ class SessionViewScreen implements Screen { 'aria-label', on ? 'Exit fullscreen' : 'Enter fullscreen', ); - _settle(); - } - - /// Re-fits the terminal across several frames and pins it to the bottom - /// (latest output / prompt). Used after a fullscreen toggle and once after the - /// initial mount. - /// - /// The flex + `dvh` layout — and, on mobile, the browser chrome animating in - /// or out of fullscreen — settles over a few hundred ms, so a single immediate - /// fit measures a stale box and leaves the terminal mis-sized (the height bug - /// that otherwise only a manual reflow fixed). Forcing a recompute now and - /// again after the layout settles makes xterm measure the final container. - void _settle() { - void apply() { - if (_disposed) return; - _fit(); - // A layout change (fullscreen exit, late flex/dvh settle) can leave the - // xterm canvas stale, so force a redraw of the visible rows in normal mode. - if (!_fullscreen) { - final t = _term; - if (t is XtermTerminalView) t.refresh(); - } - _term?.scrollToBottom(); - } - - // Nudge a layout recompute, then refit on the next frame. - _scheduleFit(); - web.window.requestAnimationFrame(((double _) => apply()).toJS); - // Catch the post-animation / post-settle box size. - for (final ms in const [120, 300, 500]) { - Timer(Duration(milliseconds: ms), apply); - } + _fitter?.settle(); } void _showError(AppError error) { @@ -630,12 +442,9 @@ class SessionViewScreen implements Screen { @override void dispose() { _disposed = true; - _detachResize?.call(); + _fitter?.dispose(); + _fitter = null; _detachOrientation?.call(); - _detachViewport?.call(); - _resizeObserver?.disconnect(); - _settleTimer?.cancel(); - _textSizeSub?.cancel(); // Release the page scroll lock and any fullscreen state on the way out. web.document.documentElement?.classList.remove('terminal-active'); if (_fullscreen) { diff --git a/lib/ui/settings_panel.dart b/lib/ui/settings_panel.dart index d979256..203574e 100644 --- a/lib/ui/settings_panel.dart +++ b/lib/ui/settings_panel.dart @@ -3,11 +3,17 @@ import 'dart:async'; import 'package:web/web.dart' as web; import '../app/app_context.dart'; +import '../terminal/device_metrics.dart'; import '../terminal/terminal_dimensions.dart'; import 'dom.dart'; import 'modal.dart'; import 'widgets.dart'; +// `deviceMetrics` moved to `terminal/device_metrics.dart` so the terminal stack +// can be embedded without dragging this AppContext-coupled panel along. Kept +// exported here so existing importers are unaffected. +export '../terminal/device_metrics.dart' show deviceMetrics; + /// Opens the global settings panel — a modal where the user picks the terminal /// dimensions for new sessions and the terminal text size. Both choices persist /// immediately (via [TerminalDisplayController]); dimension changes take effect @@ -228,18 +234,3 @@ void showSettingsPanel(AppContext ctx) { ); modal.show(); } - -/// Reads this device's screen boxes in both orientations from the browser. -/// `screen.width/height` are orientation-stable enough to derive both boxes, so -/// the presets stay correct regardless of how the device is currently held. -DeviceMetrics deviceMetrics() { - final s = web.window.screen; - final w = s.width.toDouble(); - final h = s.height.toDouble(); - final short = w < h ? w : h; - final long = w < h ? h : w; - return DeviceMetrics( - portrait: OrientationBox(short, long), - landscape: OrientationBox(long, short), - ); -} diff --git a/lib/ui_kit.dart b/lib/ui_kit.dart new file mode 100644 index 0000000..ab1b6fe --- /dev/null +++ b/lib/ui_kit.dart @@ -0,0 +1,23 @@ +/// The UI kit: DOM helpers, form widgets, toasts and modals. +/// +/// Small, framework-free primitives over `package:web` — enough to build a real +/// app without a framework, and shared so that two OmnyGrid web apps look and +/// behave like one product. +/// +/// **These widgets are styled by CSS classes**, not inline styles, so a +/// consuming app must ship the stylesheet that defines them (`.primary`, +/// `.field`, `.banner`, `.badge`, `.modal`, `.toast`, …). Install it with: +/// +/// ```sh +/// dart run omnyshell_web:copy_assets +/// ``` +/// +/// which copies `kit.css` (tokens, base, widgets, modal, toasts) and +/// `terminal.css` (terminal chrome, key bar, fullscreen, keyboard insets) into +/// your `web/`. Without them the widgets render unstyled. +library; + +export 'ui/dom.dart'; +export 'ui/modal.dart'; +export 'ui/toasts.dart'; +export 'ui/widgets.dart'; diff --git a/pubspec.yaml b/pubspec.yaml index d546ce5..50303c5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,9 +1,15 @@ name: omnyshell_web description: >- - Browser-only client for the OmnyShell ecosystem — connect to a Hub, discover - nodes, and manage interactive sessions. Installable PWA. -version: 1.14.12 -# repository: https://github.com/my_org/my_repo + A browser client for OmnyShell — connect to a Hub, discover nodes, run + interactive sessions — and the reusable library behind it: embed a real remote + shell terminal, or its UI kit, in any Dart web app. +version: 1.15.0 +repository: https://github.com/OmnyGrid/omnyshell_web +topics: + - terminal + - ssh + - web + - pwa environment: sdk: ^3.12.2 diff --git a/web/boot.js b/web/boot.js index 750ca56..841f77b 100644 --- a/web/boot.js +++ b/web/boot.js @@ -6,7 +6,7 @@ // 2. Register the service worker for installability + an offline app shell. // 3. Block pinch-to-zoom on iOS Safari, which ignores the viewport's // user-scalable=no. (Android/others are handled by the viewport meta and -// `touch-action` in styles.css.) +// `touch-action` in kit.css.) (function () { // Safari-only gesture events fire for pinch; preventing them stops page zoom. // Passive:false is required so preventDefault is honoured. @@ -45,7 +45,7 @@ // keyboard. The soft keyboard overlays content rather than resizing the layout // viewport, so we expose the visible height (--vvh) and keyboard inset (--kb) // as CSS custom properties and flag `.keyboard-open` once the keyboard is up. -// (styles.css binds the terminal screen to --vvh; the Dart side re-fits xterm +// (terminal.css binds the terminal screen to --vvh; the Dart side re-fits xterm // on the same visualViewport resize.) (function () { var vv = window.visualViewport; diff --git a/web/icons/icon-omnygrid-bg.png b/web/icons/icon-omnygrid-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..f0af34972f2a8d630aa3d2072cc910cf9a37f49d GIT binary patch literal 478547 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

utpWu)&JwaBR$D{nU+OmSC!PW6cJ_$Pw?@l7uYA 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

-1^RV>w{p+MOq*xh{B-V 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∨1vqjipu(7=@7BB%23#r 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 z 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 g*bKMDCJr!4axSWB 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

jVM#Y);-Z{8Upg2t{Epdt4O%2Z$2S6eQ>Ua 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 literal 0 HcmV?d00001 diff --git a/web/icons/icon-omnygrid.png b/web/icons/icon-omnygrid.png new file mode 100644 index 0000000000000000000000000000000000000000..afd611820857bf39aabf536c2a807352d11f4f9f GIT binary patch literal 37100 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

0Zam@-P*jjdZV9FL6ZT`zmrrWJdw6VOs?ca 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 literal 0 HcmV?d00001 diff --git a/web/icons/logo-omnygrid.png b/web/icons/logo-omnygrid.png new file mode 100644 index 0000000000000000000000000000000000000000..36058cd3d89de2fce3acc7f3845927d1f953052f GIT binary patch literal 28487 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

9j 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 JQLBat{~ro70IC20 literal 0 HcmV?d00001 diff --git a/web/index.html b/web/index.html index cbb09d1..126abc5 100644 --- a/web/index.html +++ b/web/index.html @@ -21,7 +21,8 @@ - + + diff --git a/web/kit.css b/web/kit.css new file mode 100644 index 0000000..ba95e0c --- /dev/null +++ b/web/kit.css @@ -0,0 +1,397 @@ +/* OmnyGrid web UI kit — design tokens, base, layout, components, modal, toasts. + * + * Shipped by `package:omnyshell_web` and installed into a consuming app with + * `dart run omnyshell_web:copy_assets`. The widgets in `ui_kit.dart` are styled + * by the class names defined here, so an app that imports them must ship this + * file or they render unstyled. + * + * Terminal chrome lives in `terminal.css`. */ + +/* ── Design tokens ─────────────────────────────────────────────────────── */ +:root { + --font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, + Helvetica, Arial, sans-serif; + --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, + "Liberation Mono", monospace; + + --radius: 10px; + --radius-sm: 6px; + --space: 16px; + --maxw: 1100px; + + /* Light palette (default). */ + --bg: #f6f7f9; + --bg-elevated: #ffffff; + --bg-sunken: #eceef1; + --fg: #1b1f24; + --fg-muted: #5c6670; + --border: #d8dce1; + --border-strong: #c2c8cf; + --accent: #2563eb; + --accent-fg: #ffffff; + --accent-weak: #e8f0fe; + --success: #15803d; + --success-weak: #e6f4ea; + --danger: #b91c1c; + --danger-weak: #fdecec; + --warning: #b45309; + --shadow: 0 1px 2px rgba(16, 24, 40, 0.06), 0 4px 12px rgba(16, 24, 40, 0.08); + --focus: 0 0 0 3px rgba(37, 99, 235, 0.4); +} + +[data-theme="dark"] { + --bg: #0f1318; + --bg-elevated: #171c23; + --bg-sunken: #0b0e12; + --fg: #e6e9ee; + --fg-muted: #9aa4b0; + --border: #2a313b; + --border-strong: #3a434f; + --accent: #4f8bff; + --accent-fg: #0a0d11; + --accent-weak: #16263f; + --success: #4ade80; + --success-weak: #11261a; + --danger: #f87171; + --danger-weak: #2a1414; + --warning: #fbbf24; + --shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 6px 18px rgba(0, 0, 0, 0.45); + --focus: 0 0 0 3px rgba(79, 139, 255, 0.45); +} + +/* ── Base ──────────────────────────────────────────────────────────────── */ +* { box-sizing: border-box; } + +html, body { height: 100%; } +/* Allow panning/scrolling but disable pinch-zoom and double-tap zoom on touch + devices (the terminal owns its own layout). */ +html { touch-action: pan-x pan-y; } + +body { + margin: 0; + font-family: var(--font-sans); + font-size: 15px; + line-height: 1.5; + color: var(--fg); + background: var(--bg); + -webkit-font-smoothing: antialiased; +} + +a { color: var(--accent); text-decoration: none; } +a:hover { text-decoration: underline; } + +:focus-visible { outline: none; box-shadow: var(--focus); border-radius: var(--radius-sm); } + +h1, h2, h3 { margin: 0 0 0.4em; line-height: 1.25; } +h1 { font-size: 1.5rem; } +h2 { font-size: 1.2rem; } +p { margin: 0 0 0.8em; } + +code, kbd, .mono { font-family: var(--font-mono); font-size: 0.92em; } + +/* ── Layout ────────────────────────────────────────────────────────────── */ +#app { min-height: 100%; display: flex; flex-direction: column; } + +.app-header { + position: sticky; + top: 0; + z-index: 10; + display: flex; + align-items: center; + gap: var(--space); + padding: calc(10px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) + 10px calc(20px + env(safe-area-inset-left)); + background: var(--bg-elevated); + border-bottom: 1px solid var(--border); +} +.app-header .brand { + font-weight: 700; + letter-spacing: 0.2px; + display: flex; + align-items: center; + gap: 8px; +} +.app-header .brand .dot { + width: 9px; height: 9px; border-radius: 50%; + background: var(--accent); +} +.app-header .spacer { flex: 1; } +.app-header .meta { color: var(--fg-muted); font-size: 0.9rem; } + +.app-main { + flex: 1; + width: 100%; + max-width: var(--maxw); + margin: 0 auto; + padding: 24px calc(20px + env(safe-area-inset-right)) + calc(48px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left)); +} + +.center-host { + flex: 1; + display: grid; + place-items: center; + padding: 24px; +} + +/* ── Components ─────────────────────────────────────────────────────────── */ +.card { + background: var(--bg-elevated); + border: 1px solid var(--border); + border-radius: var(--radius); + box-shadow: var(--shadow); + padding: 24px; +} +.card.pad-lg { padding: 32px; } +.card.narrow { width: 100%; max-width: 420px; } + +.stack { display: flex; flex-direction: column; gap: 14px; } +.row { display: flex; align-items: center; gap: 10px; } +.row.wrap { flex-wrap: wrap; } +.grow { flex: 1; } + +.field { display: flex; flex-direction: column; gap: 6px; } +.field label { font-size: 0.85rem; color: var(--fg-muted); font-weight: 600; } +.field .hint { font-size: 0.8rem; color: var(--fg-muted); } + +input[type="text"], input[type="password"], input[type="url"], input[type="number"], select { + width: 100%; + padding: 10px 12px; + font: inherit; + color: var(--fg); + background: var(--bg); + border: 1px solid var(--border-strong); + border-radius: var(--radius-sm); +} +input:focus-visible { box-shadow: var(--focus); border-color: var(--accent); } + +.check { display: flex; align-items: center; gap: 8px; font-size: 0.9rem; } +.check input { width: auto; } + +/* Radio group (settings panel: dimension preset + text size). */ +.radio-group { display: flex; flex-direction: column; gap: 8px; } +.radio-group.inline { flex-direction: row; flex-wrap: wrap; gap: 12px; } +.radio { display: flex; align-items: center; gap: 8px; font-size: 0.9rem; } +.radio input { width: auto; } +.settings-panel h3 { font-size: 1rem; margin: 0; } +/* In the flex column, hr's default margin-inline:auto collapses it to 0 width; + reset it to a full-width divider. */ +.settings-panel hr { width: 100%; margin: 0; border: 0; border-top: 1px solid var(--border); } +.settings-panel .custom-dims { gap: 12px; flex-wrap: wrap; } +.settings-panel .custom-dims .field { flex: 1; min-width: 90px; } +.settings-panel .custom-dims.disabled { opacity: 0.5; } + +button { + font: inherit; + font-weight: 600; + cursor: pointer; + padding: 10px 16px; + border-radius: var(--radius-sm); + border: 1px solid var(--border-strong); + background: var(--bg-elevated); + color: var(--fg); + transition: background 0.12s ease, border-color 0.12s ease; +} +button:hover { background: var(--bg-sunken); } +button:disabled { opacity: 0.55; cursor: not-allowed; } +button.primary { + background: var(--accent); + border-color: var(--accent); + color: var(--accent-fg); +} +button.primary:hover { filter: brightness(1.06); background: var(--accent); } +button.ghost { background: transparent; border-color: transparent; } +button.ghost:hover { background: var(--bg-sunken); } +button.icon { padding: 8px; line-height: 1; } +/* The settings gear reads a touch small at the base size; nudge the glyph up. */ +button.settings-icon { font-size: 1.2rem; } +button.danger { color: var(--danger); border-color: var(--border-strong); } +button.danger:hover { background: var(--danger-weak); } +/* Compact button (e.g. the sessions toolbar's New Session / Refresh); the + `button.` prefix keeps it winning over the larger mobile touch padding. */ +button.btn-sm { padding: 6px 10px; font-size: 0.82rem; } + +.badge { + display: inline-flex; align-items: center; gap: 6px; + font-size: 0.78rem; font-weight: 600; + padding: 3px 9px; border-radius: 999px; + background: var(--bg-sunken); color: var(--fg-muted); + border: 1px solid var(--border); +} +.badge.online { background: var(--success-weak); color: var(--success); border-color: transparent; } +.badge.offline { background: var(--bg-sunken); color: var(--fg-muted); } +.badge .dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; } + +.banner { + display: flex; gap: 10px; align-items: flex-start; + padding: 12px 14px; border-radius: var(--radius-sm); + border: 1px solid transparent; +} +.banner.error { background: var(--danger-weak); color: var(--danger); border-color: var(--danger); } +.banner.warning { background: var(--danger-weak); color: var(--warning); } +.banner .hint { color: var(--fg-muted); font-size: 0.85rem; margin-top: 2px; } + +.muted { color: var(--fg-muted); } +.version-footer { text-align: center; margin: 4px 0 0; opacity: 0.8; } +.empty { + text-align: center; color: var(--fg-muted); + padding: 48px 16px; +} + +.spinner { + width: 18px; height: 18px; + border: 2px solid var(--border-strong); + border-top-color: var(--accent); + border-radius: 50%; + animation: spin 0.7s linear infinite; + display: inline-block; +} +@keyframes spin { to { transform: rotate(360deg); } } +@media (prefers-reduced-motion: reduce) { + .spinner { animation-duration: 1.6s; } + button, input { transition: none; } +} + +.list { display: flex; flex-direction: column; gap: 10px; } +.list-item { + display: flex; align-items: center; gap: 14px; + padding: 14px 16px; + background: var(--bg-elevated); + border: 1px solid var(--border); + border-radius: var(--radius); + text-align: left; + width: 100%; + cursor: pointer; + color: inherit; +} +.list-item:hover { border-color: var(--border-strong); background: var(--bg-elevated); } +/* The last-interacted session in the list gets an accent ring so it's easy to + spot after arriving from a node's session preview. */ +.list-item.highlight { + border-color: var(--accent); + box-shadow: inset 0 0 0 1px var(--accent); +} +.list-item .title { font-weight: 600; } +.list-item .sub { color: var(--fg-muted); font-size: 0.85rem; } + +/* Session action buttons stay compact and on one line. */ +.session-actions { flex-wrap: nowrap; gap: 6px; flex: 0 0 auto; } +.session-actions button { padding: 6px 10px; font-size: 0.82rem; } + +/* The running-program badge sits beside the state badge, accented and + truncated so a long command doesn't blow out the row. */ +.badge.cmd { + background: var(--success-weak); + color: var(--success); + border-color: transparent; + max-width: 16ch; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + display: inline-block; +} + +.kv { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; } +.kv dt { color: var(--fg-muted); } +/* Truncate long values (e.g. a UID) with an ellipsis so they don't widen the + page on a phone. min-width:0 lets the grid cell shrink below its content. */ +.kv dd { + margin: 0; + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; } +.toolbar h1 { margin: 0; } +/* The sessions toolbar heading sits above the big node-id title, so keep it a + touch smaller. */ +.toolbar h1.sessions-title { font-size: 1.15rem; } +/* The node id title grows to push the action buttons right, truncating rather + than overflowing the toolbar on narrow screens. */ +.node-title { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +/* Modal */ +.modal-overlay { + position: fixed; inset: 0; z-index: 50; + background: rgba(8, 11, 15, 0.55); + display: grid; place-items: center; padding: 20px; +} +.modal { + background: var(--bg-elevated); + border: 1px solid var(--border); + border-radius: var(--radius); + box-shadow: var(--shadow); + width: 100%; max-width: 720px; + max-height: 85vh; display: flex; flex-direction: column; +} +.modal-head { + display: flex; align-items: center; gap: 10px; + padding: 14px 18px; border-bottom: 1px solid var(--border); +} +.modal-head h2 { margin: 0; flex: 1; font-size: 1.05rem; } +.modal-body { padding: 18px; overflow: auto; } +.modal-foot { + display: flex; justify-content: flex-end; gap: 10px; + padding: 14px 18px; border-top: 1px solid var(--border); +} +.screen-capture { + margin: 0; padding: 14px; + background: var(--bg-sunken); color: var(--fg); + border-radius: var(--radius-sm); + font-family: var(--font-mono); font-size: 0.85rem; + white-space: pre-wrap; word-break: break-word; + max-height: 60vh; overflow: auto; +} + +/* Toast container */ +#toasts { + position: fixed; + right: calc(16px + env(safe-area-inset-right)); + bottom: calc(16px + env(safe-area-inset-bottom)); + z-index: 100; + display: flex; flex-direction: column; gap: 8px; +} +.toast { + background: var(--bg-elevated); color: var(--fg); + border: 1px solid var(--border); border-left: 3px solid var(--accent); + border-radius: var(--radius-sm); box-shadow: var(--shadow); + padding: 10px 14px; max-width: 360px; +} +.toast.error { border-left-color: var(--danger); } +.toast.success { border-left-color: var(--success); } + +@media (max-width: 640px) { + .app-header { + padding: calc(10px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) + 10px calc(14px + env(safe-area-inset-left)); + } + .app-main { + padding: 18px calc(14px + env(safe-area-inset-right)) + calc(40px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left)); + } + .app-header .meta.hide-sm { display: none; } + /* Buttons get comfortable touch targets on small screens. */ + button { padding: 11px 16px; } + .list-item { padding: 16px; } + /* Sessions: stack the info over a full-width action row so the (smaller) + buttons fit on a single line on a phone / vertical screen. */ + .session-item { flex-direction: column; align-items: stretch; gap: 10px; } + .session-actions { justify-content: flex-start; } + .session-actions button { flex: 1 1 auto; padding: 8px 6px; font-size: 0.82rem; } + /* Login card uses more of the screen on phones: trim the outer gutter + (respecting safe-area insets) and the card's inner padding so the form + fields get extra width instead of being boxed in. The 420px cap still + keeps it from sprawling on larger phones/tablets. */ + .center-host { + padding: 16px calc(12px + env(safe-area-inset-right)) + 16px calc(12px + env(safe-area-inset-left)); + } + .card.pad-lg { padding: 24px; } +} diff --git a/web/service_worker.js b/web/service_worker.js index 5352682..0f01fc4 100644 --- a/web/service_worker.js +++ b/web/service_worker.js @@ -9,11 +9,12 @@ // app needs is now same-origin, so this only matters for incidental requests. // // Bump CACHE_VERSION to invalidate old caches when the shell changes. -const CACHE_VERSION = 'omnyshell-v2'; +const CACHE_VERSION = 'omnyshell-v3'; const SHELL = [ './', - './styles.css', + './kit.css', + './terminal.css', './boot.js', './manifest.json', './vendor/xterm/xterm.min.css', diff --git a/web/terminal.css b/web/terminal.css new file mode 100644 index 0000000..65f1c70 --- /dev/null +++ b/web/terminal.css @@ -0,0 +1,239 @@ +/* OmnyGrid web terminal — the chrome around an xterm.js surface: the card, the + * on-screen key bar, fullscreen, and the soft-keyboard insets. + * + * Shipped by `package:omnyshell_web` and installed with + * `dart run omnyshell_web:copy_assets`. Requires `kit.css` (design tokens) and + * xterm's own `vendor/xterm/xterm.min.css`. + * + * The `--vvh` / `--kb` custom properties and the `.keyboard-open` class this + * file keys off are set by `boot.js`. */ + +/* Tighten the terminal screen: no extra gap between the toolbar and the + terminal (the generic toolbar margin would otherwise stack with the column + gap and waste vertical space). */ +.terminal-screen { gap: 8px; } +.terminal-screen .toolbar { margin-bottom: 0; } + +/* The terminal screen's toolbar carries several controls (Sessions, Fullscreen, + Detach, Terminate); keep its buttons compact and let the title shrink so the + whole row fits a phone width. */ +.terminal-screen .toolbar { gap: 8px; } +.terminal-screen .toolbar h1 { + font-size: 1rem; + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.terminal-screen .toolbar button { padding: 6px 10px; font-size: 0.85rem; } + +/* Terminal */ +.terminal-card { padding: 8px; background: #0b0e12; } +.terminal-host { + width: 100%; + /* dvh so the terminal shrinks (rather than hiding under) the soft keyboard; + vh fallback for browsers without dvh, and a min-height floor so the fit + addon always has a measurable, non-zero container. */ + height: 60vh; + height: 60dvh; + min-height: 260px; + max-height: 600px; +} +.terminal-host .xterm { height: 100%; } +/* The terminal palette is dark; in the light theme invert it so it reads as a + light terminal instead of a dark box on a light page. The card frame is + painted to match the terminal background, so set it to the inverted+hue- + rotated colour (#eff2f6) — otherwise a dark border rings the inverted box. */ +[data-theme="light"] .terminal-host { filter: invert(1) hue-rotate(180deg); } +[data-theme="light"] .terminal-card { background: #eff2f6; } + +/* On-screen accessory key bar (touch devices lack Esc/Tab/Ctrl/arrows). */ +.term-accessory { + display: flex; + gap: 6px; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + padding: 8px; + padding-bottom: calc(8px + env(safe-area-inset-bottom)); + background: var(--bg-elevated); + border: 1px solid var(--border); + border-radius: var(--radius); +} +.term-accessory button { + flex: 0 0 auto; + /* Sized via --term-key-scale (set per session from the terminal font) so the + keys shrink/grow with the text; defaults to 1 = the original sizing. */ + min-width: calc(44px * var(--term-key-scale, 1)); + min-height: calc(40px * var(--term-key-scale, 1)); + padding: calc(8px * var(--term-key-scale, 1)) calc(12px * var(--term-key-scale, 1)); + font-size: calc(0.9rem * var(--term-key-scale, 1)); +} +.term-accessory button.active { + background: var(--accent); + color: var(--accent-fg); + border-color: var(--accent); +} +/* The last-used quick key and the `Ctrl ▾` trigger read as one segmented + control: joined edges, a single shared divider, only the outer corners + rounded. */ +.term-ctrl-group { display: inline-flex; flex: 0 0 auto; } +.term-ctrl-group > button { border-radius: 0; position: relative; } +.term-ctrl-group > button:first-child { + border-top-left-radius: var(--radius); + border-bottom-left-radius: var(--radius); +} +.term-ctrl-group > button:last-child { + border-top-right-radius: var(--radius); + border-bottom-right-radius: var(--radius); + margin-left: -1px; /* collapse the shared border into one divider */ +} +/* Raise the focused/hovered/armed edge so its border sits above the overlap. */ +.term-ctrl-group > button:hover, +.term-ctrl-group > button:focus, +.term-ctrl-group > button.active { z-index: 1; } + +/* The Ctrl button carries a caret to signal it opens a menu. */ +.term-accessory button.has-menu::after { + content: '▾'; + margin-left: 4px; + font-size: 0.8em; + opacity: 0.7; +} + +/* Ctrl combinations popup, anchored above the Ctrl button (positioned in JS). */ +.ctrl-menu { + z-index: 45; + display: flex; + flex-direction: column; + gap: 8px; + padding: 8px; + max-width: calc(100vw - 16px); + background: var(--bg-elevated); + border: 1px solid var(--border); + border-radius: var(--radius); + box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4); +} +.ctrl-menu-grid { + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: 6px; +} +.ctrl-menu-item { min-width: 40px; min-height: 36px; padding: 6px 8px; } +.ctrl-menu-custom { display: flex; align-items: center; gap: 6px; } +.ctrl-menu-label { opacity: 0.8; } +.ctrl-custom-input { + width: 44px; + text-align: center; + text-transform: uppercase; +} +.ctrl-menu-sep { height: 1px; background: var(--border); margin: 2px 0; } +.ctrl-menu-arm { width: 100%; } + +/* Terminal screen: lock the page to the viewport so only the terminal's own + content scrolls — no body/page scroll or mobile rubber-banding. The terminal + card flexes to fill the space below the toolbar, and xterm's viewport handles + scrollback. Scoped to `.terminal-active` so other screens scroll normally. */ +html.terminal-active { height: 100%; overflow: hidden; overscroll-behavior: none; } +/* Anchor the app to the *visible* viewport, not the layout viewport: on iOS + `height: 100%` is the layout viewport, which is taller than the visible area + (Safari's bottom toolbar), so the key bar/last row would fall below the edge + with no scroll to reach them. --vvh (visualViewport) is exact; 100dvh is the + CSS fallback that already accounts for the dynamic toolbars. */ +html.terminal-active body { + height: var(--vvh, 100dvh); + overflow: hidden; + overscroll-behavior: none; +} +html.terminal-active #app { height: 100%; min-height: 0; } +html.terminal-active .app-main { + flex: 1; + min-height: 0; + overflow: hidden; +} +/* Fill the available height ONLY when the screen is in normal (in-flow) layout. + In fullscreen / keyboard-open it is `position: fixed` and sized by inset + + `bottom: var(--kb)`; setting `height: 100%` there would over-constrain the box + (top + height wins, so the keyboard `bottom` lift is ignored) and on iOS a + fixed `height: 100%` resolves taller than the visible viewport. */ +html.terminal-active:not(.term-fullscreen):not(.keyboard-open) .terminal-screen { + height: 100%; + min-height: 0; +} +html.terminal-active .terminal-card { flex: 1; min-height: 0; } +html.terminal-active .terminal-host { height: 100%; min-height: 0; max-height: none; } +/* The terminal's definite height (viewport − header/toolbar − key bar) is applied + inline by the screen controller (overriding the 100% above), and cleared in + fullscreen / while the keyboard is open so the fixed-layout CSS sizes it. The + 100% here is only the pre-script fallback. */ +/* Keep scroll chaining inside the terminal even at the scrollback ends. */ +.terminal-host .xterm-viewport { overscroll-behavior: contain; } + +/* Fullscreen terminal: fill the whole window, hide app chrome. */ +.term-fullscreen .app-header { display: none; } +.term-fullscreen .app-main { max-width: none; padding: 0; } + +/* Bind the terminal to the *visual* viewport — the area above the on-screen + keyboard — in fullscreen, and whenever the soft keyboard is open in any mode. + The keyboard overlays content (it doesn't shrink the layout viewport), so + without this the accessory key bar and the prompt sit hidden behind it. As a + fixed, --vvh-tall flex column [toolbar, terminal(flex:1), accessory], the key + bar lands just above the keyboard and the terminal (re-fit from Dart on + visualViewport resize) keeps its prompt row visible. --vvh is set by boot.js; + it falls back to the full dynamic viewport when there's no keyboard. */ +.term-fullscreen .terminal-screen, +.keyboard-open .terminal-screen { + position: fixed; + /* Pin to the layout viewport, then raise the bottom edge above the keyboard + by its measured inset (--kb, 0 when closed). On iOS `position: fixed` + resolves against the layout viewport — which the keyboard does NOT shrink — + so lifting `bottom` is far more reliable than sizing by visual height. */ + inset: 0; + bottom: var(--kb, 0px); + z-index: 40; + gap: 0; + background: #0b0e12; +} +/* Hide the screen toolbar (Sessions / Detach / Terminate / toggle) in + fullscreen. With just the keyboard open it stays, so its controls remain + reachable while typing. */ +.term-fullscreen .terminal-screen > .toolbar { display: none; } + +.term-fullscreen .terminal-card, +.keyboard-open .terminal-card { + flex: 1; + border: 0; + border-radius: 0; + padding: 4px; + padding-top: calc(4px + env(safe-area-inset-top)); +} +.term-fullscreen .terminal-host, +.keyboard-open .terminal-host { + height: 100%; + min-height: 0; + max-height: none; +} +.term-fullscreen .term-accessory, +.keyboard-open .term-accessory { border-radius: 0; } +/* The keyboard already covers the home-indicator inset, so drop the extra + bottom padding that would otherwise lift the key bar away from it. */ +.keyboard-open .term-accessory { padding-bottom: 8px; } + +/* Floating exit button — only shown in fullscreen. */ +.term-exit-fullscreen { display: none; } +.term-fullscreen .term-exit-fullscreen { + display: inline-flex; + position: fixed; + top: calc(8px + env(safe-area-inset-top)); + right: calc(8px + env(safe-area-inset-right)); + z-index: 41; + opacity: 0.85; +} + +@media (max-width: 640px) { + /* Terminal toolbar stays compact and wraps instead of overflowing; the + spacer is dropped so the controls pack tightly across the row. */ + .terminal-screen .toolbar { flex-wrap: wrap; gap: 6px; } + .terminal-screen .toolbar .grow { display: none; } + .terminal-screen .toolbar button { padding: 6px 9px; font-size: 0.8rem; } + .terminal-screen .toolbar h1 { font-size: 0.9rem; } +}