obsidian-integration-testing 14.1.0 → 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +2 -0
  2. package/dist/lib/cjs/appium-dependencies.cjs +2 -5
  3. package/dist/lib/cjs/appium-server-marker.cjs +3 -9
  4. package/dist/lib/cjs/asar-fallback-detection.cjs +2 -5
  5. package/dist/lib/cjs/avd-probe-verdict.cjs +3 -9
  6. package/dist/lib/cjs/capture-obsidian-screenshot.cjs +9 -1
  7. package/dist/lib/cjs/capture-obsidian-screenshot.d.cts +21 -0
  8. package/dist/lib/cjs/capture-screenshot.cjs +2 -5
  9. package/dist/lib/cjs/cli.cjs +2 -5
  10. package/dist/lib/cjs/demo-vault-populate.cjs +7 -9
  11. package/dist/lib/cjs/device-setting-restore.cjs +2 -5
  12. package/dist/lib/cjs/electron-compatibility.cjs +8 -11
  13. package/dist/lib/cjs/emulator-arguments.cjs +14 -14
  14. package/dist/lib/cjs/emulator-marker.cjs +4 -13
  15. package/dist/lib/cjs/emulator-reaper.cjs +2 -5
  16. package/dist/lib/cjs/emulator-snapshot.cjs +3 -9
  17. package/dist/lib/cjs/eval-cap-exceeded-error.cjs +2 -5
  18. package/dist/lib/cjs/exec.cjs +12 -24
  19. package/dist/lib/cjs/function-expression.cjs +2 -5
  20. package/dist/lib/cjs/global-setup-core.cjs +53 -18
  21. package/dist/lib/cjs/hide-vault-name.cjs +45 -0
  22. package/dist/lib/cjs/hide-vault-name.d.cts +67 -0
  23. package/dist/lib/cjs/index.cjs +9 -1
  24. package/dist/lib/cjs/index.d.cts +6 -2
  25. package/dist/lib/cjs/installer-asset.cjs +3 -9
  26. package/dist/lib/cjs/installer-compatibility.cjs +9 -12
  27. package/dist/lib/cjs/label-screenshot.cjs +63 -4
  28. package/dist/lib/cjs/label-screenshot.d.cts +66 -2
  29. package/dist/lib/cjs/leftover-cleanup.cjs +2 -5
  30. package/dist/lib/cjs/library.cjs +1 -1
  31. package/dist/lib/cjs/mobile-input.cjs +17 -31
  32. package/dist/lib/cjs/namespace-bootstrap.cjs +3 -9
  33. package/dist/lib/cjs/obsidian-executable.cjs +2 -5
  34. package/dist/lib/cjs/obsidian-installer.cjs +3 -9
  35. package/dist/lib/cjs/obsidian-instance.cjs +1 -1
  36. package/dist/lib/cjs/obsidian-instance.d.cts +8 -0
  37. package/dist/lib/cjs/owned-instance-exit-marker.cjs +2 -5
  38. package/dist/lib/cjs/owned-instance-exited-error.cjs +13 -17
  39. package/dist/lib/cjs/process-exit-message.cjs +3 -9
  40. package/dist/lib/cjs/renderer-boot-detection.cjs +3 -9
  41. package/dist/lib/cjs/setup-lock.cjs +3 -9
  42. package/dist/lib/cjs/sharp-loader.cjs +1 -1
  43. package/dist/lib/cjs/sharp-loader.d.cts +11 -0
  44. package/dist/lib/cjs/soft-keyboard-geometry.cjs +4 -9
  45. package/dist/lib/cjs/stale-build-detection.cjs +115 -0
  46. package/dist/lib/cjs/stale-build-detection.d.cts +108 -0
  47. package/dist/lib/cjs/stale-build-error.cjs +74 -0
  48. package/dist/lib/cjs/stale-build-error.d.cts +81 -0
  49. package/dist/lib/cjs/strict-proxy.cjs +3 -9
  50. package/dist/lib/cjs/transport-appium.cjs +3 -9
  51. package/dist/lib/cjs/transport-desktop-cdp.cjs +18 -32
  52. package/dist/lib/cjs/transport-factory.cjs +20 -25
  53. package/dist/lib/cjs/transport-options.cjs +2 -5
  54. package/dist/lib/cjs/transport-options.d.cts +36 -0
  55. package/dist/lib/cjs/vault-teardown-verdict.cjs +2 -5
  56. package/dist/lib/cjs/version-matrix.cjs +4 -13
  57. package/dist/lib/cjs/wedged-appium-server.cjs +3 -9
  58. package/dist/lib/esm/appium-dependencies.mjs +2 -5
  59. package/dist/lib/esm/appium-server-marker.mjs +3 -9
  60. package/dist/lib/esm/asar-fallback-detection.mjs +2 -5
  61. package/dist/lib/esm/avd-probe-verdict.mjs +3 -9
  62. package/dist/lib/esm/capture-obsidian-screenshot.d.mts +21 -0
  63. package/dist/lib/esm/capture-obsidian-screenshot.mjs +9 -1
  64. package/dist/lib/esm/capture-screenshot.mjs +2 -5
  65. package/dist/lib/esm/cli.mjs +2 -5
  66. package/dist/lib/esm/demo-vault-populate.mjs +7 -9
  67. package/dist/lib/esm/device-setting-restore.mjs +2 -5
  68. package/dist/lib/esm/electron-compatibility.mjs +8 -11
  69. package/dist/lib/esm/emulator-arguments.mjs +14 -14
  70. package/dist/lib/esm/emulator-marker.mjs +4 -13
  71. package/dist/lib/esm/emulator-reaper.mjs +2 -5
  72. package/dist/lib/esm/emulator-snapshot.mjs +3 -9
  73. package/dist/lib/esm/eval-cap-exceeded-error.mjs +2 -5
  74. package/dist/lib/esm/exec.mjs +12 -24
  75. package/dist/lib/esm/function-expression.mjs +2 -5
  76. package/dist/lib/esm/global-setup-core.mjs +60 -19
  77. package/dist/lib/esm/hide-vault-name.d.mts +67 -0
  78. package/dist/lib/esm/hide-vault-name.mjs +21 -0
  79. package/dist/lib/esm/index.d.mts +6 -2
  80. package/dist/lib/esm/index.mjs +8 -2
  81. package/dist/lib/esm/installer-asset.mjs +3 -9
  82. package/dist/lib/esm/installer-compatibility.mjs +9 -12
  83. package/dist/lib/esm/label-screenshot.d.mts +66 -2
  84. package/dist/lib/esm/label-screenshot.mjs +61 -3
  85. package/dist/lib/esm/leftover-cleanup.mjs +2 -5
  86. package/dist/lib/esm/library.mjs +1 -1
  87. package/dist/lib/esm/mobile-input.mjs +17 -31
  88. package/dist/lib/esm/namespace-bootstrap.mjs +3 -9
  89. package/dist/lib/esm/obsidian-executable.mjs +2 -5
  90. package/dist/lib/esm/obsidian-installer.mjs +3 -9
  91. package/dist/lib/esm/obsidian-instance.d.mts +8 -0
  92. package/dist/lib/esm/obsidian-instance.mjs +1 -1
  93. package/dist/lib/esm/owned-instance-exit-marker.mjs +2 -5
  94. package/dist/lib/esm/owned-instance-exited-error.mjs +13 -17
  95. package/dist/lib/esm/process-exit-message.mjs +3 -9
  96. package/dist/lib/esm/renderer-boot-detection.mjs +3 -9
  97. package/dist/lib/esm/setup-lock.mjs +3 -9
  98. package/dist/lib/esm/sharp-loader.d.mts +11 -0
  99. package/dist/lib/esm/sharp-loader.mjs +1 -1
  100. package/dist/lib/esm/soft-keyboard-geometry.mjs +4 -9
  101. package/dist/lib/esm/stale-build-detection.d.mts +108 -0
  102. package/dist/lib/esm/stale-build-detection.mjs +84 -0
  103. package/dist/lib/esm/stale-build-error.d.mts +81 -0
  104. package/dist/lib/esm/stale-build-error.mjs +50 -0
  105. package/dist/lib/esm/strict-proxy.mjs +3 -9
  106. package/dist/lib/esm/transport-appium.mjs +3 -9
  107. package/dist/lib/esm/transport-desktop-cdp.mjs +18 -32
  108. package/dist/lib/esm/transport-factory.mjs +20 -25
  109. package/dist/lib/esm/transport-options.d.mts +36 -0
  110. package/dist/lib/esm/transport-options.mjs +2 -5
  111. package/dist/lib/esm/vault-teardown-verdict.mjs +2 -5
  112. package/dist/lib/esm/version-matrix.mjs +4 -13
  113. package/dist/lib/esm/wedged-appium-server.mjs +3 -9
  114. package/package.json +20 -19
package/README.md CHANGED
@@ -34,6 +34,8 @@ You also need [Obsidian](https://obsidian.md/download) (the desktop app) install
34
34
 
35
35
  The global setup expects your built plugin in `dist/dev` or `dist/build` (whichever has a newer `main.js`), with a `manifest.json` at the root of the chosen folder. The setup creates a temporary vault, copies the build into it, and enables the plugin.
36
36
 
37
+ That build has to be current: if `main.js` is older than anything under `src/` (tests aside), `manifest.json` or `styles.css`, the setup throws `StaleBuildError` before it launches anything, because a suite run against yesterday's plugin either fails for a reason that looks like your code or — worse — passes while proving nothing. Rebuild, or, to test a shipped artifact deliberately, set `shouldFailOnStaleBuild: false` in the transport options (or `OBSIDIAN_TEST_ALLOW_STALE_BUILD=1` for a single run), which logs a warning and continues.
38
+
37
39
  ### Vitest
38
40
 
39
41
  ```ts
@@ -31,10 +31,7 @@ function checkIsAppiumDriverInstalled(params) {
31
31
  } catch {
32
32
  return false;
33
33
  }
34
- if (typeof parsed !== "object" || parsed === null) {
35
- return false;
36
- }
37
- return Object.hasOwn(parsed, params.driverName);
34
+ return typeof parsed === "object" && parsed !== null && Object.hasOwn(parsed, params.driverName);
38
35
  }
39
36
  function willAutoInstallAppiumDependencies(options) {
40
37
  return options.shouldAutoInstallAppiumDependencies ?? true;
@@ -45,4 +42,4 @@ function willAutoInstallAppiumDependencies(options) {
45
42
  checkIsAppiumDriverInstalled,
46
43
  willAutoInstallAppiumDependencies
47
44
  });
48
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FwcGl1bS1kZXBlbmRlbmNpZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBQdXJlIGhlbHBlcnMgZm9yIGRlY2lkaW5nIHdoZXRoZXIgdGhlIGhhcm5lc3MgbXVzdCBhdXRvLWluc3RhbGwgdGhlIEFwcGl1bVxuICogZGVwZW5kZW5jaWVzICh0aGUgYHVpYXV0b21hdG9yMmAgZHJpdmVyKSBiZWZvcmUgaXQgYXV0by1zdGFydHMgdGhlIEFwcGl1bVxuICogc2VydmVyLCBwbHVzIHJlc29sdmluZyB0aGUgYXV0by1pbnN0YWxsIG9wdC1vdXQgZnJvbSB0aGUgdHJhbnNwb3J0IG9wdGlvbnMuXG4gKiBLZXB0IHNlcGFyYXRlIGZyb20gdGhlIGludGVncmF0aW9uLW9ubHkgYHRyYW5zcG9ydC1mYWN0b3J5YCBzbyB0aGUgcGFyc2luZyBhbmRcbiAqIGRlZmF1bHQgcmVzb2x1dGlvbiBzdGF5IHVuaXQtdGVzdGFibGUgKHRoZSBmYWN0b3J5IGl0c2VsZiBzaGVsbHMgb3V0IHRvIGBucG1gXG4gKiAvIGBucHhgIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpLlxuICovXG5cbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9ucyB9IGZyb20gJy4vdHJhbnNwb3J0LW9wdGlvbnMuY2pzJztcblxuLyoqXG4gKiBUaGUgQXBwaXVtIGRyaXZlciBuYW1lIHJlcXVpcmVkIHRvIGF1dG9tYXRlIE9ic2lkaWFuIE1vYmlsZSBvbiBBbmRyb2lkLlxuICovXG5leHBvcnQgY29uc3QgVUlBVVRPTUFUT1IyX0RSSVZFUl9OQU1FID0gJ3VpYXV0b21hdG9yMic7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNoZWNrSXNBcHBpdW1Ecml2ZXJJbnN0YWxsZWR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrSXNBcHBpdW1Ecml2ZXJJbnN0YWxsZWRQYXJhbXMge1xuICAvKipcbiAgICogUmF3IHN0ZG91dCBvZiBgYXBwaXVtIGRyaXZlciBsaXN0IC0taW5zdGFsbGVkIC0tanNvbmAgXHUyMDE0IGEgSlNPTiBvYmplY3Qga2V5ZWRcbiAgICogYnkgaW5zdGFsbGVkIGRyaXZlciBuYW1lIChge31gIHdoZW4gbm9uZSBhcmUgaW5zdGFsbGVkKS5cbiAgICovXG4gIHJlYWRvbmx5IGRyaXZlckxpc3RKc29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBkcml2ZXIgbmFtZSB0byBsb29rIGZvciAoZS5nLiB7QGxpbmsgVUlBVVRPTUFUT1IyX0RSSVZFUl9OQU1FfSkuXG4gICAqL1xuICByZWFkb25seSBkcml2ZXJOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVjaWRlcyB3aGV0aGVyIGEgZ2l2ZW4gQXBwaXVtIGRyaXZlciBpcyBpbnN0YWxsZWQsIGZyb20gdGhlIHJhdyBKU09OIG91dHB1dFxuICogb2YgYGFwcGl1bSBkcml2ZXIgbGlzdCAtLWluc3RhbGxlZCAtLWpzb25gLlxuICpcbiAqIGAtLWluc3RhbGxlZGAgcmVzdHJpY3RzIHRoZSBsaXN0aW5nIHRvIGluc3RhbGxlZCBkcml2ZXJzLCBzbyBhIGRyaXZlciBpc1xuICogcHJlc2VudCBleGFjdGx5IHdoZW4gaXRzIG5hbWUgaXMgYSBrZXkgb2YgdGhlIHBhcnNlZCBvYmplY3QuIE1hbGZvcm1lZCBvclxuICogbm9uLW9iamVjdCBvdXRwdXQgKGFuIGVtcHR5IHN0cmluZywgYSBsb2cgbGluZSB0aGF0IGxlYWtlZCBvbnRvIHN0ZG91dCwgYVxuICogSlNPTiBwcmltaXRpdmUsIGBudWxsYCkgaXMgdHJlYXRlZCBhcyBcIm5vdCBpbnN0YWxsZWRcIiBzbyB0aGUgY2FsbGVyIHByb2NlZWRzXG4gKiB0byBpbnN0YWxsIFx1MjAxNCB0aGUgaW5zdGFsbCBjb21tYW5kIGlzIG9ubHkgaXNzdWVkIHdoZW4gdGhpcyByZXR1cm5zIGBmYWxzZWAuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBzYW1wbGVkIGRyaXZlci1saXN0IG91dHB1dCBhbmQgdGhlIGRyaXZlciBuYW1lIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGRyaXZlciBpcyBsaXN0ZWQgYXMgaW5zdGFsbGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJc0FwcGl1bURyaXZlckluc3RhbGxlZChwYXJhbXM6IENoZWNrSXNBcHBpdW1Ecml2ZXJJbnN0YWxsZWRQYXJhbXMpOiBib29sZWFuIHtcbiAgbGV0IHBhcnNlZDogdW5rbm93bjtcbiAgdHJ5IHtcbiAgICBwYXJzZWQgPSBKU09OLnBhcnNlKHBhcmFtcy5kcml2ZXJMaXN0SnNvbik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcGFyc2VkICE9PSAnb2JqZWN0JyB8fCBwYXJzZWQgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0Lmhhc093bihwYXJzZWQsIHBhcmFtcy5kcml2ZXJOYW1lKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB3aGV0aGVyIHRoZSBoYXJuZXNzIG1heSBhdXRvLWluc3RhbGwgbWlzc2luZyBBcHBpdW0gZGVwZW5kZW5jaWVzLFxuICogYXBwbHlpbmcgdGhlIGRlZmF1bHQgd2hlbiB0aGUgb3B0aW9uIGlzIG9taXR0ZWQuXG4gKlxuICogVGhpcyBvbmx5IGdvdmVybnMgdGhlIG1hY2hpbmUtbXV0YXRpbmcgaW5zdGFsbCBzdGVwIChhIGdsb2JhbCBgbnBtIGluc3RhbGwgLWdcbiAqIGFwcGl1bWAgYW5kIGFuIGBhcHBpdW0gZHJpdmVyIGluc3RhbGxgKTsgaXQgaXMgYSBuby1vcCB1bmxlc3MgdGhlIGhhcm5lc3MgaXNcbiAqIGFsc28gYXV0by1zdGFydGluZyB0aGUgQXBwaXVtIHNlcnZlciAoe0BsaW5rXG4gKiBPYnNpZGlhbkFuZHJvaWRBcHBpdW1UcmFuc3BvcnRPcHRpb25zLnNob3VsZEF1dG9TdGFydEFwcGl1bX0pLiBTZXQgaXQgdG9cbiAqIGBmYWxzZWAgdG8gbWFuYWdlIHRoZSBBcHBpdW0gdG9vbGNoYWluIHlvdXJzZWxmLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIEFuZHJvaWQgQXBwaXVtIHRyYW5zcG9ydCBvcHRpb25zLlxuICogQHJldHVybnMgV2hldGhlciBtaXNzaW5nIEFwcGl1bSBkZXBlbmRlbmNpZXMgbWF5IGJlIGF1dG8taW5zdGFsbGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2lsbEF1dG9JbnN0YWxsQXBwaXVtRGVwZW5kZW5jaWVzKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2ggLS0gUGVybWFuZW50OiBgT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9uc2AgaXMgb25lIHRyYW5zcG9ydCBvcHRpb25zIGJhZyByZWFkIGJ5IHNpeCBoZWxwZXJzLCBzbyBubyBwZXItb3duZXIgbmFtZSBjYW4gc2F0aXNmeSB0aGVtIGFsbC5cbiAgb3B0aW9uczogT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9uc1xuKTogYm9vbGVhbiB7XG4gIHJldHVybiBvcHRpb25zLnNob3VsZEF1dG9JbnN0YWxsQXBwaXVtRGVwZW5kZW5jaWVzID8/IHRydWU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCTyxNQUFNLDJCQUEyQjtBQStCakMsU0FBUyw2QkFBNkIsUUFBcUQ7QUFDaEcsTUFBSTtBQUNKLE1BQUk7QUFDRixhQUFTLEtBQUssTUFBTSxPQUFPLGNBQWM7QUFBQSxFQUMzQyxRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLE9BQU8sV0FBVyxZQUFZLFdBQVcsTUFBTTtBQUNqRCxXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sT0FBTyxPQUFPLFFBQVEsT0FBTyxVQUFVO0FBQ2hEO0FBZU8sU0FBUyxrQ0FFZCxTQUNTO0FBQ1QsU0FBTyxRQUFRLHVDQUF1QztBQUN4RDsiLAogICJuYW1lcyI6IFtdCn0K
45
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FwcGl1bS1kZXBlbmRlbmNpZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBQdXJlIGhlbHBlcnMgZm9yIGRlY2lkaW5nIHdoZXRoZXIgdGhlIGhhcm5lc3MgbXVzdCBhdXRvLWluc3RhbGwgdGhlIEFwcGl1bVxuICogZGVwZW5kZW5jaWVzICh0aGUgYHVpYXV0b21hdG9yMmAgZHJpdmVyKSBiZWZvcmUgaXQgYXV0by1zdGFydHMgdGhlIEFwcGl1bVxuICogc2VydmVyLCBwbHVzIHJlc29sdmluZyB0aGUgYXV0by1pbnN0YWxsIG9wdC1vdXQgZnJvbSB0aGUgdHJhbnNwb3J0IG9wdGlvbnMuXG4gKiBLZXB0IHNlcGFyYXRlIGZyb20gdGhlIGludGVncmF0aW9uLW9ubHkgYHRyYW5zcG9ydC1mYWN0b3J5YCBzbyB0aGUgcGFyc2luZyBhbmRcbiAqIGRlZmF1bHQgcmVzb2x1dGlvbiBzdGF5IHVuaXQtdGVzdGFibGUgKHRoZSBmYWN0b3J5IGl0c2VsZiBzaGVsbHMgb3V0IHRvIGBucG1gXG4gKiAvIGBucHhgIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpLlxuICovXG5cbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9ucyB9IGZyb20gJy4vdHJhbnNwb3J0LW9wdGlvbnMuY2pzJztcblxuLyoqXG4gKiBUaGUgQXBwaXVtIGRyaXZlciBuYW1lIHJlcXVpcmVkIHRvIGF1dG9tYXRlIE9ic2lkaWFuIE1vYmlsZSBvbiBBbmRyb2lkLlxuICovXG5leHBvcnQgY29uc3QgVUlBVVRPTUFUT1IyX0RSSVZFUl9OQU1FID0gJ3VpYXV0b21hdG9yMic7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNoZWNrSXNBcHBpdW1Ecml2ZXJJbnN0YWxsZWR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrSXNBcHBpdW1Ecml2ZXJJbnN0YWxsZWRQYXJhbXMge1xuICAvKipcbiAgICogUmF3IHN0ZG91dCBvZiBgYXBwaXVtIGRyaXZlciBsaXN0IC0taW5zdGFsbGVkIC0tanNvbmAgXHUyMDE0IGEgSlNPTiBvYmplY3Qga2V5ZWRcbiAgICogYnkgaW5zdGFsbGVkIGRyaXZlciBuYW1lIChge31gIHdoZW4gbm9uZSBhcmUgaW5zdGFsbGVkKS5cbiAgICovXG4gIHJlYWRvbmx5IGRyaXZlckxpc3RKc29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBkcml2ZXIgbmFtZSB0byBsb29rIGZvciAoZS5nLiB7QGxpbmsgVUlBVVRPTUFUT1IyX0RSSVZFUl9OQU1FfSkuXG4gICAqL1xuICByZWFkb25seSBkcml2ZXJOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVjaWRlcyB3aGV0aGVyIGEgZ2l2ZW4gQXBwaXVtIGRyaXZlciBpcyBpbnN0YWxsZWQsIGZyb20gdGhlIHJhdyBKU09OIG91dHB1dFxuICogb2YgYGFwcGl1bSBkcml2ZXIgbGlzdCAtLWluc3RhbGxlZCAtLWpzb25gLlxuICpcbiAqIGAtLWluc3RhbGxlZGAgcmVzdHJpY3RzIHRoZSBsaXN0aW5nIHRvIGluc3RhbGxlZCBkcml2ZXJzLCBzbyBhIGRyaXZlciBpc1xuICogcHJlc2VudCBleGFjdGx5IHdoZW4gaXRzIG5hbWUgaXMgYSBrZXkgb2YgdGhlIHBhcnNlZCBvYmplY3QuIE1hbGZvcm1lZCBvclxuICogbm9uLW9iamVjdCBvdXRwdXQgKGFuIGVtcHR5IHN0cmluZywgYSBsb2cgbGluZSB0aGF0IGxlYWtlZCBvbnRvIHN0ZG91dCwgYVxuICogSlNPTiBwcmltaXRpdmUsIGBudWxsYCkgaXMgdHJlYXRlZCBhcyBcIm5vdCBpbnN0YWxsZWRcIiBzbyB0aGUgY2FsbGVyIHByb2NlZWRzXG4gKiB0byBpbnN0YWxsIFx1MjAxNCB0aGUgaW5zdGFsbCBjb21tYW5kIGlzIG9ubHkgaXNzdWVkIHdoZW4gdGhpcyByZXR1cm5zIGBmYWxzZWAuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBzYW1wbGVkIGRyaXZlci1saXN0IG91dHB1dCBhbmQgdGhlIGRyaXZlciBuYW1lIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGRyaXZlciBpcyBsaXN0ZWQgYXMgaW5zdGFsbGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJc0FwcGl1bURyaXZlckluc3RhbGxlZChwYXJhbXM6IENoZWNrSXNBcHBpdW1Ecml2ZXJJbnN0YWxsZWRQYXJhbXMpOiBib29sZWFuIHtcbiAgbGV0IHBhcnNlZDogdW5rbm93bjtcbiAgdHJ5IHtcbiAgICBwYXJzZWQgPSBKU09OLnBhcnNlKHBhcmFtcy5kcml2ZXJMaXN0SnNvbik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0eXBlb2YgcGFyc2VkID09PSAnb2JqZWN0JyAmJiBwYXJzZWQgIT09IG51bGwgJiYgT2JqZWN0Lmhhc093bihwYXJzZWQsIHBhcmFtcy5kcml2ZXJOYW1lKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB3aGV0aGVyIHRoZSBoYXJuZXNzIG1heSBhdXRvLWluc3RhbGwgbWlzc2luZyBBcHBpdW0gZGVwZW5kZW5jaWVzLFxuICogYXBwbHlpbmcgdGhlIGRlZmF1bHQgd2hlbiB0aGUgb3B0aW9uIGlzIG9taXR0ZWQuXG4gKlxuICogVGhpcyBvbmx5IGdvdmVybnMgdGhlIG1hY2hpbmUtbXV0YXRpbmcgaW5zdGFsbCBzdGVwIChhIGdsb2JhbCBgbnBtIGluc3RhbGwgLWdcbiAqIGFwcGl1bWAgYW5kIGFuIGBhcHBpdW0gZHJpdmVyIGluc3RhbGxgKTsgaXQgaXMgYSBuby1vcCB1bmxlc3MgdGhlIGhhcm5lc3MgaXNcbiAqIGFsc28gYXV0by1zdGFydGluZyB0aGUgQXBwaXVtIHNlcnZlciAoe0BsaW5rXG4gKiBPYnNpZGlhbkFuZHJvaWRBcHBpdW1UcmFuc3BvcnRPcHRpb25zLnNob3VsZEF1dG9TdGFydEFwcGl1bX0pLiBTZXQgaXQgdG9cbiAqIGBmYWxzZWAgdG8gbWFuYWdlIHRoZSBBcHBpdW0gdG9vbGNoYWluIHlvdXJzZWxmLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIEFuZHJvaWQgQXBwaXVtIHRyYW5zcG9ydCBvcHRpb25zLlxuICogQHJldHVybnMgV2hldGhlciBtaXNzaW5nIEFwcGl1bSBkZXBlbmRlbmNpZXMgbWF5IGJlIGF1dG8taW5zdGFsbGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2lsbEF1dG9JbnN0YWxsQXBwaXVtRGVwZW5kZW5jaWVzKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3BhcmFtcy1vcHRpb25zLW5hbWUtbWF0Y2ggLS0gUGVybWFuZW50OiBgT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9uc2AgaXMgb25lIHRyYW5zcG9ydCBvcHRpb25zIGJhZyByZWFkIGJ5IHNpeCBoZWxwZXJzLCBzbyBubyBwZXItb3duZXIgbmFtZSBjYW4gc2F0aXNmeSB0aGVtIGFsbC5cbiAgb3B0aW9uczogT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9uc1xuKTogYm9vbGVhbiB7XG4gIHJldHVybiBvcHRpb25zLnNob3VsZEF1dG9JbnN0YWxsQXBwaXVtRGVwZW5kZW5jaWVzID8/IHRydWU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCTyxNQUFNLDJCQUEyQjtBQStCakMsU0FBUyw2QkFBNkIsUUFBcUQ7QUFDaEcsTUFBSTtBQUNKLE1BQUk7QUFDRixhQUFTLEtBQUssTUFBTSxPQUFPLGNBQWM7QUFBQSxFQUMzQyxRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLE9BQU8sV0FBVyxZQUFZLFdBQVcsUUFBUSxPQUFPLE9BQU8sUUFBUSxPQUFPLFVBQVU7QUFDakc7QUFlTyxTQUFTLGtDQUVkLFNBQ1M7QUFDVCxTQUFPLFFBQVEsdUNBQXVDO0FBQ3hEOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -33,10 +33,7 @@ var import_process_liveness = require("./process-liveness.cjs");
33
33
  const MARKER_DIR_NAME = "obsidian-integration-testing";
34
34
  const MARKER_FILE_SUFFIX = ".appium-server.json";
35
35
  function checkIsHarnessOwnedAppiumServer(marker) {
36
- if (!marker) {
37
- return false;
38
- }
39
- return (0, import_process_liveness.checkIsProcessAlive)(marker.pid);
36
+ return marker !== void 0 && (0, import_process_liveness.checkIsProcessAlive)(marker.pid);
40
37
  }
41
38
  function clearAppiumServerMarker(port) {
42
39
  try {
@@ -83,10 +80,7 @@ function parseMarker(parsed, port) {
83
80
  }
84
81
  const record = parsed;
85
82
  const { pid, port: markedPort, startedAtInMilliseconds, stopAttemptedAtInMilliseconds } = record;
86
- if (typeof pid !== "number" || typeof startedAtInMilliseconds !== "number" || markedPort !== port) {
87
- return void 0;
88
- }
89
- return {
83
+ return typeof pid !== "number" || typeof startedAtInMilliseconds !== "number" || markedPort !== port ? void 0 : {
90
84
  pid,
91
85
  port,
92
86
  startedAtInMilliseconds,
@@ -109,4 +103,4 @@ function writeMarker(marker) {
109
103
  recordAppiumServerStopAttempt,
110
104
  writeAppiumServerMarker
111
105
  });
112
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FwcGl1bS1zZXJ2ZXItbWFya2VyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUmVjb3JkcyB3aGljaCBBcHBpdW0gc2VydmVyIG9uIGEgcG9ydCB0aGlzIGhhcm5lc3Mgc3RhcnRlZCwgc28gYSBsYXRlciBydW5cbiAqIHRoYXQgZmluZHMgYSBzZXJ2ZXIgYWxyZWFkeSBsaXN0ZW5pbmcgY2FuIHRlbGwgKipwcm92ZW5hbmNlKio6IG9uZSBvZiBvdXIgb3duXG4gKiBzZXJ2ZXJzIGxlZnQgb3ZlciBmcm9tIGFuIGVhcmxpZXIgcnVuLCBvciBhIGZvcmVpZ24gb25lIHRoZSB1c2VyIG1hbmFnZXMuXG4gKlxuICogVGhlIHByZWZsaWdodCBhZG9wdHMgYW55IHNlcnZlciB0aGF0IGFuc3dlcnMgYC9zdGF0dXNgLCBhbmQgYWRvcHRpb24gaXMgdGhlXG4gKiByaWdodCBkZWZhdWx0IFx1MjAxNCBzdGFydGluZyBhIHNlY29uZCBzZXJ2ZXIgb24gYW4gb2NjdXBpZWQgcG9ydCBjYW5ub3Qgd29yay4gQnV0XG4gKiBhZG9wdGluZyBzaWxlbnRseSBtZWFucyBhIHdlZGdlZCBsZWZ0b3ZlciAoc2VlIGB3ZWRnZWQtYXBwaXVtLXNlcnZlci50c2ApIGlzXG4gKiBpbmRpc3Rpbmd1aXNoYWJsZSBmcm9tIGEgaGVhbHRoeSBzZXJ2ZXIsIGFuZCB0aGUgaGFybmVzcyBoYXMgbm8gYmFzaXMgb24gd2hpY2hcbiAqIHRvIGRlY2lkZSB3aGV0aGVyIHJlc3RhcnRpbmcgaXQgaXMgaXRzIGNhbGwgdG8gbWFrZS4gVGhlIG1hcmtlciBzdXBwbGllcyB0aGF0XG4gKiBiYXNpczogYSBzZXJ2ZXIgd2Ugc3RhcnRlZCBtYXkgYmUgcmVzdGFydGVkLCBhIGZvcmVpZ24gb25lIGlzIG9ubHkgZXZlclxuICogcmVwb3J0ZWQuXG4gKlxuICogVGhlIG1hcmtlciBpcyBhIHNtYWxsIEpTT04gc2VudGluZWwgbmV4dCB0byB0aGUgc2V0dXAgbG9jayAoYHNldHVwLWxvY2sudHNgKSxcbiAqIGtleWVkIGJ5IHBvcnQsIGFuZCBpcyBkZWxpYmVyYXRlbHkgdG9sZXJhbnQgXHUyMDE0IGEgbWlzc2luZywgdW5yZWFkYWJsZSwgb3JcbiAqIG1pc21hdGNoZWQgbWFya2VyIHNpbXBseSByZWFkcyBhcyBcIm5vdCBvdXJzXCIuXG4gKi9cblxuaW1wb3J0IHtcbiAgbWtkaXJTeW5jLFxuICByZWFkRmlsZVN5bmMsXG4gIHJtU3luYyxcbiAgd3JpdGVGaWxlU3luY1xufSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IHRtcGRpciB9IGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB7IGxvZyB9IGZyb20gJy4vbG9nLmNqcyc7XG5pbXBvcnQgeyBjaGVja0lzUHJvY2Vzc0FsaXZlIH0gZnJvbSAnLi9wcm9jZXNzLWxpdmVuZXNzLmNqcyc7XG5cbmNvbnN0IE1BUktFUl9ESVJfTkFNRSA9ICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJztcbmNvbnN0IE1BUktFUl9GSUxFX1NVRkZJWCA9ICcuYXBwaXVtLXNlcnZlci5qc29uJztcblxuLyoqXG4gKiBJZGVudGlmaWVzIHRoZSBBcHBpdW0gc2VydmVyIHRoaXMgaGFybmVzcyBzdGFydGVkIG9uIGEgcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBpdW1TZXJ2ZXJNYXJrZXIge1xuICAvKipcbiAgUElEIG9mIHRoZSBzcGF3bmVkIHNlcnZlciBwcm9jZXNzICh0aGUgc2hlbGwgd3JhcHBlciB0aGF0IG93bnMgdGhlIHNlcnZlcidzIHByb2Nlc3MgdHJlZSkuXG4gICAqL1xuICByZWFkb25seSBwaWQ6IG51bWJlcjtcblxuICAvKipcbiAgVGhlIHBvcnQgdGhlIHNlcnZlciB3YXMgc3RhcnRlZCBvbi5cbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IG51bWJlcjtcblxuICAvKipcbiAgV2hlbiB0aGUgc2VydmVyIHdhcyBzdGFydGVkIChgRGF0ZS5ub3coKWAgZXBvY2ggbWlsbGlzZWNvbmRzKS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXJ0ZWRBdEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZW4gYSBydW4gdHJpZWQgdG8gc3RvcCB0aGlzIHNlcnZlciBhbmQgY291bGQgbm90IHZlcmlmeSBpdCBleGl0ZWRcbiAgICogKGBEYXRlLm5vdygpYCBlcG9jaCBtaWxsaXNlY29uZHMpLCBvciBgdW5kZWZpbmVkYCB3aGVuIG5vIHN0b3AgaGFzIGZhaWxlZC5cbiAgICpcbiAgICogSXRzIHByZXNlbmNlIG1lYW5zIHRoZSBzZXJ2ZXIgaXMgYSAqKmtub3duLWRvb21lZCBsZWZ0b3ZlcioqOiBpdCB3YXMgb3VycyxcbiAgICogd2UgYXNrZWQgaXQgdG8gZGllLCBhbmQgaXQgZGlkIG5vdC4gU2VlIHtAbGluayByZWNvcmRBcHBpdW1TZXJ2ZXJTdG9wQXR0ZW1wdH0uXG4gICAqL1xuICByZWFkb25seSBzdG9wQXR0ZW1wdGVkQXRJbk1pbGxpc2Vjb25kcz86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgd3JpdGVBcHBpdW1TZXJ2ZXJNYXJrZXJ9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdyaXRlQXBwaXVtU2VydmVyTWFya2VyUGFyYW1zIHtcbiAgLyoqXG4gIFBJRCBvZiB0aGUgc3Bhd25lZCBzZXJ2ZXIgcHJvY2Vzcy5cbiAgICovXG4gIHJlYWRvbmx5IHBpZDogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgcG9ydCB0aGUgc2VydmVyIHdhcyBzdGFydGVkIG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBtYXJrZWQgc2VydmVyIGlzIHN0aWxsIHJ1bm5pbmcsIHdoaWNoIGlzIHdoYXQgbWFrZXMgYW5cbiAqIGFkb3B0ZWQgc2VydmVyIG91cnMgdG8gcmVzdGFydC5cbiAqXG4gKiBBIGRlYWQgUElEIG1lYW5zIHRoZSBtYXJrZXIgb3V0bGl2ZWQgaXRzIHNlcnZlciwgc28gd2hhdGV2ZXIgYW5zd2VycyBvbiB0aGF0XG4gKiBwb3J0IG5vdyBpcyBzb21lYm9keSBlbHNlJ3MgXHUyMDE0IHRoZSBtYXJrZXIgcHJvdmVzIG5vdGhpbmcgYWJvdXQgaXQuXG4gKlxuICogQHBhcmFtIG1hcmtlciAtIFRoZSBtYXJrZXIgcmVhZCBmb3IgdGhlIHBvcnQsIG9yIGB1bmRlZmluZWRgIHdoZW4gdGhlcmUgaXMgbm9uZS5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIGFuIGVhcmxpZXIgcnVuIG9mIHRoaXMgaGFybmVzcyBzdGFydGVkIHRoZSBzZXJ2ZXIgbm93IGxpc3RlbmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrSXNIYXJuZXNzT3duZWRBcHBpdW1TZXJ2ZXIobWFya2VyOiBBcHBpdW1TZXJ2ZXJNYXJrZXIgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgaWYgKCFtYXJrZXIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gY2hlY2tJc1Byb2Nlc3NBbGl2ZShtYXJrZXIucGlkKTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBtYXJrZXIgZm9yIGEgcG9ydC4gQ2FsbGVkIG9uY2UgdGhlIG1hcmtlZCBzZXJ2ZXIgaGFzIGJlZW4gc3RvcHBlZCxcbiAqIHNvIGEgbGF0ZXIgcnVuIGRvZXMgbm90IG1pc3Rha2UgYSByZWN5Y2xlZCBQSUQgZm9yIG91ciBzZXJ2ZXIuXG4gKlxuICogQHBhcmFtIHBvcnQgLSBUaGUgQXBwaXVtIHNlcnZlciBwb3J0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJBcHBpdW1TZXJ2ZXJNYXJrZXIocG9ydDogbnVtYmVyKTogdm9pZCB7XG4gIHRyeSB7XG4gICAgcm1TeW5jKGdldE1hcmtlckZpbGVQYXRoKHBvcnQpLCB7IGZvcmNlOiB0cnVlIH0pO1xuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGxvZyhgW2FwcGl1bS1zZXJ2ZXItbWFya2VyXSBDb3VsZCBub3QgcmVtb3ZlIHRoZSBtYXJrZXIgZm9yIHBvcnQgJHtTdHJpbmcocG9ydCl9OiAke2dldEVycm9yTWVzc2FnZShlcnJvcil9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgbWFya2VyIGZvciBhIHBvcnQuXG4gKlxuICogQHBhcmFtIHBvcnQgLSBUaGUgQXBwaXVtIHNlcnZlciBwb3J0LlxuICogQHJldHVybnMgVGhlIG1hcmtlciwgb3IgYHVuZGVmaW5lZGAgd2hlbiB0aGVyZSBpcyBub25lLCBpdCBpcyB1bnJlYWRhYmxlLCBvciBpdCBkb2VzIG5vdCBkZXNjcmliZSB0aGlzIHBvcnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWFkQXBwaXVtU2VydmVyTWFya2VyKHBvcnQ6IG51bWJlcik6IEFwcGl1bVNlcnZlck1hcmtlciB8IHVuZGVmaW5lZCB7XG4gIGxldCBwYXJzZWQ6IHVua25vd247XG4gIHRyeSB7XG4gICAgcGFyc2VkID0gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMoZ2V0TWFya2VyRmlsZVBhdGgocG9ydCksICd1dGYtOCcpKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBwYXJzZU1hcmtlcihwYXJzZWQsIHBvcnQpO1xufVxuXG4vKipcbiAqIFJlY29yZHMgdGhhdCBhIHJ1biB0cmllZCB0byBzdG9wIHRoZSBtYXJrZWQgc2VydmVyIGFuZCBjb3VsZCBub3QgdmVyaWZ5IGl0XG4gKiBleGl0ZWQgXHUyMDE0ICoqaW5zdGVhZCBvZioqIGNsZWFyaW5nIHRoZSBtYXJrZXIuXG4gKlxuICogQ2xlYXJpbmcgaXQgd291bGQgYmUgdGhlIHdvcnN0IG9mIGJvdGggd29ybGRzOiB0aGUgbGVmdG92ZXIga2VlcHMgc2VydmluZywgYW5kXG4gKiB0aGUgbmV4dCBydW4gcmVhZHMgaXQgYXMgYSBmb3JlaWduLCB1c2VyLW1hbmFnZWQgc2VydmVyIGl0IG11c3QgbmV2ZXIgdG91Y2hcbiAqIChgY2hlY2tJc0hhcm5lc3NPd25lZEFwcGl1bVNlcnZlcmAgbmVlZHMgdGhlIG1hcmtlciB0byBjb252aWN0IGl0KS4gS2VlcGluZ1xuICogdGhlIG1hcmtlciwgc3RhbXBlZCwgc2F5cyBleGFjdGx5IHdoYXQgaXMgdHJ1ZSBcdTIwMTQgdGhpcyBpcyBvdXJzLCBhbmQgaXQgb3V0bGl2ZWRcbiAqIG91ciB0ZWFyZG93biBcdTIwMTQgd2hpY2ggaXMgd2hhdCBsZXRzIHRoZSBuZXh0IHJ1biByZWZ1c2UgdG8gYWRvcHQgaXQgYW5kIHJlcGxhY2VcbiAqIGl0IGluc3RlYWQuXG4gKlxuICogQHBhcmFtIHBvcnQgLSBUaGUgQXBwaXVtIHNlcnZlciBwb3J0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVjb3JkQXBwaXVtU2VydmVyU3RvcEF0dGVtcHQocG9ydDogbnVtYmVyKTogdm9pZCB7XG4gIGNvbnN0IG1hcmtlciA9IHJlYWRBcHBpdW1TZXJ2ZXJNYXJrZXIocG9ydCk7XG4gIGlmICghbWFya2VyKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgd3JpdGVNYXJrZXIoeyAuLi5tYXJrZXIsIHN0b3BBdHRlbXB0ZWRBdEluTWlsbGlzZWNvbmRzOiBEYXRlLm5vdygpIH0pO1xufVxuXG4vKipcbiAqIFJlY29yZHMgdGhlIHNlcnZlciB0aGlzIHJ1biBqdXN0IHN0YXJ0ZWQsIHN0YW1waW5nIGl0IHdpdGggdGhlIGN1cnJlbnQgdGltZSBzb1xuICogYSBsYXRlciBydW4gY2FuIHJlcG9ydCBob3cgbG9uZyBpdCBoYXMgYmVlbiB1cC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHN0YXJ0ZWQgc2VydmVyJ3MgUElEIGFuZCBwb3J0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVBcHBpdW1TZXJ2ZXJNYXJrZXIocGFyYW1zOiBXcml0ZUFwcGl1bVNlcnZlck1hcmtlclBhcmFtcyk6IHZvaWQge1xuICB3cml0ZU1hcmtlcih7XG4gICAgcGlkOiBwYXJhbXMucGlkLFxuICAgIHBvcnQ6IHBhcmFtcy5wb3J0LFxuICAgIHN0YXJ0ZWRBdEluTWlsbGlzZWNvbmRzOiBEYXRlLm5vdygpXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRFcnJvck1lc3NhZ2UoZXJyb3I6IHVua25vd24pOiBzdHJpbmcge1xuICByZXR1cm4gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpO1xufVxuXG5mdW5jdGlvbiBnZXRNYXJrZXJEaXJlY3RvcnkoKTogc3RyaW5nIHtcbiAgcmV0dXJuIGpvaW4odG1wZGlyKCksIE1BUktFUl9ESVJfTkFNRSk7XG59XG5cbmZ1bmN0aW9uIGdldE1hcmtlckZpbGVQYXRoKHBvcnQ6IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBqb2luKGdldE1hcmtlckRpcmVjdG9yeSgpLCBgJHtTdHJpbmcocG9ydCl9JHtNQVJLRVJfRklMRV9TVUZGSVh9YCk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlTWFya2VyKHBhcnNlZDogdW5rbm93biwgcG9ydDogbnVtYmVyKTogQXBwaXVtU2VydmVyTWFya2VyIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiBwYXJzZWQgIT09ICdvYmplY3QnIHx8IHBhcnNlZCA9PT0gbnVsbCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCByZWNvcmQgPSBwYXJzZWQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IHsgcGlkLCBwb3J0OiBtYXJrZWRQb3J0LCBzdGFydGVkQXRJbk1pbGxpc2Vjb25kcywgc3RvcEF0dGVtcHRlZEF0SW5NaWxsaXNlY29uZHMgfSA9IHJlY29yZDtcblxuICBpZiAodHlwZW9mIHBpZCAhPT0gJ251bWJlcicgfHwgdHlwZW9mIHN0YXJ0ZWRBdEluTWlsbGlzZWNvbmRzICE9PSAnbnVtYmVyJyB8fCBtYXJrZWRQb3J0ICE9PSBwb3J0KSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcGlkLFxuICAgIHBvcnQsXG4gICAgc3RhcnRlZEF0SW5NaWxsaXNlY29uZHMsXG4gICAgLi4uKHR5cGVvZiBzdG9wQXR0ZW1wdGVkQXRJbk1pbGxpc2Vjb25kcyA9PT0gJ251bWJlcicgJiYgeyBzdG9wQXR0ZW1wdGVkQXRJbk1pbGxpc2Vjb25kcyB9KVxuICB9O1xufVxuXG5mdW5jdGlvbiB3cml0ZU1hcmtlcihtYXJrZXI6IEFwcGl1bVNlcnZlck1hcmtlcik6IHZvaWQge1xuICB0cnkge1xuICAgIG1rZGlyU3luYyhnZXRNYXJrZXJEaXJlY3RvcnkoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgd3JpdGVGaWxlU3luYyhnZXRNYXJrZXJGaWxlUGF0aChtYXJrZXIucG9ydCksIEpTT04uc3RyaW5naWZ5KG1hcmtlcikpO1xuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGxvZyhgW2FwcGl1bS1zZXJ2ZXItbWFya2VyXSBDb3VsZCBub3QgcmVjb3JkIHRoZSBzZXJ2ZXIgb24gcG9ydCAke1N0cmluZyhtYXJrZXIucG9ydCl9OiAke2dldEVycm9yTWVzc2FnZShlcnJvcil9YCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW9CQSxxQkFLTztBQUNQLHFCQUF1QjtBQUN2Qix1QkFBcUI7QUFFckIsaUJBQW9CO0FBQ3BCLDhCQUFvQztBQUVwQyxNQUFNLGtCQUFrQjtBQUN4QixNQUFNLHFCQUFxQjtBQXdEcEIsU0FBUyxnQ0FBZ0MsUUFBaUQ7QUFDL0YsTUFBSSxDQUFDLFFBQVE7QUFDWCxXQUFPO0FBQUEsRUFDVDtBQUVBLGFBQU8sNkNBQW9CLE9BQU8sR0FBRztBQUN2QztBQVFPLFNBQVMsd0JBQXdCLE1BQW9CO0FBQzFELE1BQUk7QUFDRiwrQkFBTyxrQkFBa0IsSUFBSSxHQUFHLEVBQUUsT0FBTyxLQUFLLENBQUM7QUFBQSxFQUNqRCxTQUFTLE9BQWdCO0FBQ3ZCLHdCQUFJLCtEQUErRCxPQUFPLElBQUksQ0FBQyxLQUFLLGdCQUFnQixLQUFLLENBQUMsRUFBRTtBQUFBLEVBQzlHO0FBQ0Y7QUFRTyxTQUFTLHVCQUF1QixNQUE4QztBQUNuRixNQUFJO0FBQ0osTUFBSTtBQUNGLGFBQVMsS0FBSyxVQUFNLDZCQUFhLGtCQUFrQixJQUFJLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDcEUsUUFBUTtBQUNOLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxZQUFZLFFBQVEsSUFBSTtBQUNqQztBQWVPLFNBQVMsOEJBQThCLE1BQW9CO0FBQ2hFLFFBQU0sU0FBUyx1QkFBdUIsSUFBSTtBQUMxQyxNQUFJLENBQUMsUUFBUTtBQUNYO0FBQUEsRUFDRjtBQUVBLGNBQVksRUFBRSxHQUFHLFFBQVEsK0JBQStCLEtBQUssSUFBSSxFQUFFLENBQUM7QUFDdEU7QUFRTyxTQUFTLHdCQUF3QixRQUE2QztBQUNuRixjQUFZO0FBQUEsSUFDVixLQUFLLE9BQU87QUFBQSxJQUNaLE1BQU0sT0FBTztBQUFBLElBQ2IseUJBQXlCLEtBQUssSUFBSTtBQUFBLEVBQ3BDLENBQUM7QUFDSDtBQUVBLFNBQVMsZ0JBQWdCLE9BQXdCO0FBQy9DLFNBQU8saUJBQWlCLFFBQVEsTUFBTSxVQUFVLE9BQU8sS0FBSztBQUM5RDtBQUVBLFNBQVMscUJBQTZCO0FBQ3BDLGFBQU8sMkJBQUssdUJBQU8sR0FBRyxlQUFlO0FBQ3ZDO0FBRUEsU0FBUyxrQkFBa0IsTUFBc0I7QUFDL0MsYUFBTyx1QkFBSyxtQkFBbUIsR0FBRyxHQUFHLE9BQU8sSUFBSSxDQUFDLEdBQUcsa0JBQWtCLEVBQUU7QUFDMUU7QUFFQSxTQUFTLFlBQVksUUFBaUIsTUFBOEM7QUFDbEYsTUFBSSxPQUFPLFdBQVcsWUFBWSxXQUFXLE1BQU07QUFDakQsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLFNBQVM7QUFDZixRQUFNLEVBQUUsS0FBSyxNQUFNLFlBQVkseUJBQXlCLDhCQUE4QixJQUFJO0FBRTFGLE1BQUksT0FBTyxRQUFRLFlBQVksT0FBTyw0QkFBNEIsWUFBWSxlQUFlLE1BQU07QUFDakcsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPO0FBQUEsSUFDTDtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFJLE9BQU8sa0NBQWtDLFlBQVksRUFBRSw4QkFBOEI7QUFBQSxFQUMzRjtBQUNGO0FBRUEsU0FBUyxZQUFZLFFBQWtDO0FBQ3JELE1BQUk7QUFDRixrQ0FBVSxtQkFBbUIsR0FBRyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBQ25ELHNDQUFjLGtCQUFrQixPQUFPLElBQUksR0FBRyxLQUFLLFVBQVUsTUFBTSxDQUFDO0FBQUEsRUFDdEUsU0FBUyxPQUFnQjtBQUN2Qix3QkFBSSw4REFBOEQsT0FBTyxPQUFPLElBQUksQ0FBQyxLQUFLLGdCQUFnQixLQUFLLENBQUMsRUFBRTtBQUFBLEVBQ3BIO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
106
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FwcGl1bS1zZXJ2ZXItbWFya2VyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUmVjb3JkcyB3aGljaCBBcHBpdW0gc2VydmVyIG9uIGEgcG9ydCB0aGlzIGhhcm5lc3Mgc3RhcnRlZCwgc28gYSBsYXRlciBydW5cbiAqIHRoYXQgZmluZHMgYSBzZXJ2ZXIgYWxyZWFkeSBsaXN0ZW5pbmcgY2FuIHRlbGwgKipwcm92ZW5hbmNlKio6IG9uZSBvZiBvdXIgb3duXG4gKiBzZXJ2ZXJzIGxlZnQgb3ZlciBmcm9tIGFuIGVhcmxpZXIgcnVuLCBvciBhIGZvcmVpZ24gb25lIHRoZSB1c2VyIG1hbmFnZXMuXG4gKlxuICogVGhlIHByZWZsaWdodCBhZG9wdHMgYW55IHNlcnZlciB0aGF0IGFuc3dlcnMgYC9zdGF0dXNgLCBhbmQgYWRvcHRpb24gaXMgdGhlXG4gKiByaWdodCBkZWZhdWx0IFx1MjAxNCBzdGFydGluZyBhIHNlY29uZCBzZXJ2ZXIgb24gYW4gb2NjdXBpZWQgcG9ydCBjYW5ub3Qgd29yay4gQnV0XG4gKiBhZG9wdGluZyBzaWxlbnRseSBtZWFucyBhIHdlZGdlZCBsZWZ0b3ZlciAoc2VlIGB3ZWRnZWQtYXBwaXVtLXNlcnZlci50c2ApIGlzXG4gKiBpbmRpc3Rpbmd1aXNoYWJsZSBmcm9tIGEgaGVhbHRoeSBzZXJ2ZXIsIGFuZCB0aGUgaGFybmVzcyBoYXMgbm8gYmFzaXMgb24gd2hpY2hcbiAqIHRvIGRlY2lkZSB3aGV0aGVyIHJlc3RhcnRpbmcgaXQgaXMgaXRzIGNhbGwgdG8gbWFrZS4gVGhlIG1hcmtlciBzdXBwbGllcyB0aGF0XG4gKiBiYXNpczogYSBzZXJ2ZXIgd2Ugc3RhcnRlZCBtYXkgYmUgcmVzdGFydGVkLCBhIGZvcmVpZ24gb25lIGlzIG9ubHkgZXZlclxuICogcmVwb3J0ZWQuXG4gKlxuICogVGhlIG1hcmtlciBpcyBhIHNtYWxsIEpTT04gc2VudGluZWwgbmV4dCB0byB0aGUgc2V0dXAgbG9jayAoYHNldHVwLWxvY2sudHNgKSxcbiAqIGtleWVkIGJ5IHBvcnQsIGFuZCBpcyBkZWxpYmVyYXRlbHkgdG9sZXJhbnQgXHUyMDE0IGEgbWlzc2luZywgdW5yZWFkYWJsZSwgb3JcbiAqIG1pc21hdGNoZWQgbWFya2VyIHNpbXBseSByZWFkcyBhcyBcIm5vdCBvdXJzXCIuXG4gKi9cblxuaW1wb3J0IHtcbiAgbWtkaXJTeW5jLFxuICByZWFkRmlsZVN5bmMsXG4gIHJtU3luYyxcbiAgd3JpdGVGaWxlU3luY1xufSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IHRtcGRpciB9IGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB7IGxvZyB9IGZyb20gJy4vbG9nLmNqcyc7XG5pbXBvcnQgeyBjaGVja0lzUHJvY2Vzc0FsaXZlIH0gZnJvbSAnLi9wcm9jZXNzLWxpdmVuZXNzLmNqcyc7XG5cbmNvbnN0IE1BUktFUl9ESVJfTkFNRSA9ICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJztcbmNvbnN0IE1BUktFUl9GSUxFX1NVRkZJWCA9ICcuYXBwaXVtLXNlcnZlci5qc29uJztcblxuLyoqXG4gKiBJZGVudGlmaWVzIHRoZSBBcHBpdW0gc2VydmVyIHRoaXMgaGFybmVzcyBzdGFydGVkIG9uIGEgcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBpdW1TZXJ2ZXJNYXJrZXIge1xuICAvKipcbiAgUElEIG9mIHRoZSBzcGF3bmVkIHNlcnZlciBwcm9jZXNzICh0aGUgc2hlbGwgd3JhcHBlciB0aGF0IG93bnMgdGhlIHNlcnZlcidzIHByb2Nlc3MgdHJlZSkuXG4gICAqL1xuICByZWFkb25seSBwaWQ6IG51bWJlcjtcblxuICAvKipcbiAgVGhlIHBvcnQgdGhlIHNlcnZlciB3YXMgc3RhcnRlZCBvbi5cbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IG51bWJlcjtcblxuICAvKipcbiAgV2hlbiB0aGUgc2VydmVyIHdhcyBzdGFydGVkIChgRGF0ZS5ub3coKWAgZXBvY2ggbWlsbGlzZWNvbmRzKS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXJ0ZWRBdEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZW4gYSBydW4gdHJpZWQgdG8gc3RvcCB0aGlzIHNlcnZlciBhbmQgY291bGQgbm90IHZlcmlmeSBpdCBleGl0ZWRcbiAgICogKGBEYXRlLm5vdygpYCBlcG9jaCBtaWxsaXNlY29uZHMpLCBvciBgdW5kZWZpbmVkYCB3aGVuIG5vIHN0b3AgaGFzIGZhaWxlZC5cbiAgICpcbiAgICogSXRzIHByZXNlbmNlIG1lYW5zIHRoZSBzZXJ2ZXIgaXMgYSAqKmtub3duLWRvb21lZCBsZWZ0b3ZlcioqOiBpdCB3YXMgb3VycyxcbiAgICogd2UgYXNrZWQgaXQgdG8gZGllLCBhbmQgaXQgZGlkIG5vdC4gU2VlIHtAbGluayByZWNvcmRBcHBpdW1TZXJ2ZXJTdG9wQXR0ZW1wdH0uXG4gICAqL1xuICByZWFkb25seSBzdG9wQXR0ZW1wdGVkQXRJbk1pbGxpc2Vjb25kcz86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgd3JpdGVBcHBpdW1TZXJ2ZXJNYXJrZXJ9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdyaXRlQXBwaXVtU2VydmVyTWFya2VyUGFyYW1zIHtcbiAgLyoqXG4gIFBJRCBvZiB0aGUgc3Bhd25lZCBzZXJ2ZXIgcHJvY2Vzcy5cbiAgICovXG4gIHJlYWRvbmx5IHBpZDogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgcG9ydCB0aGUgc2VydmVyIHdhcyBzdGFydGVkIG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBtYXJrZWQgc2VydmVyIGlzIHN0aWxsIHJ1bm5pbmcsIHdoaWNoIGlzIHdoYXQgbWFrZXMgYW5cbiAqIGFkb3B0ZWQgc2VydmVyIG91cnMgdG8gcmVzdGFydC5cbiAqXG4gKiBBIGRlYWQgUElEIG1lYW5zIHRoZSBtYXJrZXIgb3V0bGl2ZWQgaXRzIHNlcnZlciwgc28gd2hhdGV2ZXIgYW5zd2VycyBvbiB0aGF0XG4gKiBwb3J0IG5vdyBpcyBzb21lYm9keSBlbHNlJ3MgXHUyMDE0IHRoZSBtYXJrZXIgcHJvdmVzIG5vdGhpbmcgYWJvdXQgaXQuXG4gKlxuICogQHBhcmFtIG1hcmtlciAtIFRoZSBtYXJrZXIgcmVhZCBmb3IgdGhlIHBvcnQsIG9yIGB1bmRlZmluZWRgIHdoZW4gdGhlcmUgaXMgbm9uZS5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIGFuIGVhcmxpZXIgcnVuIG9mIHRoaXMgaGFybmVzcyBzdGFydGVkIHRoZSBzZXJ2ZXIgbm93IGxpc3RlbmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrSXNIYXJuZXNzT3duZWRBcHBpdW1TZXJ2ZXIobWFya2VyOiBBcHBpdW1TZXJ2ZXJNYXJrZXIgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIG1hcmtlciAhPT0gdW5kZWZpbmVkICYmIGNoZWNrSXNQcm9jZXNzQWxpdmUobWFya2VyLnBpZCk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgbWFya2VyIGZvciBhIHBvcnQuIENhbGxlZCBvbmNlIHRoZSBtYXJrZWQgc2VydmVyIGhhcyBiZWVuIHN0b3BwZWQsXG4gKiBzbyBhIGxhdGVyIHJ1biBkb2VzIG5vdCBtaXN0YWtlIGEgcmVjeWNsZWQgUElEIGZvciBvdXIgc2VydmVyLlxuICpcbiAqIEBwYXJhbSBwb3J0IC0gVGhlIEFwcGl1bSBzZXJ2ZXIgcG9ydC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQXBwaXVtU2VydmVyTWFya2VyKHBvcnQ6IG51bWJlcik6IHZvaWQge1xuICB0cnkge1xuICAgIHJtU3luYyhnZXRNYXJrZXJGaWxlUGF0aChwb3J0KSwgeyBmb3JjZTogdHJ1ZSB9KTtcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICBsb2coYFthcHBpdW0tc2VydmVyLW1hcmtlcl0gQ291bGQgbm90IHJlbW92ZSB0aGUgbWFya2VyIGZvciBwb3J0ICR7U3RyaW5nKHBvcnQpfTogJHtnZXRFcnJvck1lc3NhZ2UoZXJyb3IpfWApO1xuICB9XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIG1hcmtlciBmb3IgYSBwb3J0LlxuICpcbiAqIEBwYXJhbSBwb3J0IC0gVGhlIEFwcGl1bSBzZXJ2ZXIgcG9ydC5cbiAqIEByZXR1cm5zIFRoZSBtYXJrZXIsIG9yIGB1bmRlZmluZWRgIHdoZW4gdGhlcmUgaXMgbm9uZSwgaXQgaXMgdW5yZWFkYWJsZSwgb3IgaXQgZG9lcyBub3QgZGVzY3JpYmUgdGhpcyBwb3J0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZEFwcGl1bVNlcnZlck1hcmtlcihwb3J0OiBudW1iZXIpOiBBcHBpdW1TZXJ2ZXJNYXJrZXIgfCB1bmRlZmluZWQge1xuICBsZXQgcGFyc2VkOiB1bmtub3duO1xuICB0cnkge1xuICAgIHBhcnNlZCA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKGdldE1hcmtlckZpbGVQYXRoKHBvcnQpLCAndXRmLTgnKSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gcGFyc2VNYXJrZXIocGFyc2VkLCBwb3J0KTtcbn1cblxuLyoqXG4gKiBSZWNvcmRzIHRoYXQgYSBydW4gdHJpZWQgdG8gc3RvcCB0aGUgbWFya2VkIHNlcnZlciBhbmQgY291bGQgbm90IHZlcmlmeSBpdFxuICogZXhpdGVkIFx1MjAxNCAqKmluc3RlYWQgb2YqKiBjbGVhcmluZyB0aGUgbWFya2VyLlxuICpcbiAqIENsZWFyaW5nIGl0IHdvdWxkIGJlIHRoZSB3b3JzdCBvZiBib3RoIHdvcmxkczogdGhlIGxlZnRvdmVyIGtlZXBzIHNlcnZpbmcsIGFuZFxuICogdGhlIG5leHQgcnVuIHJlYWRzIGl0IGFzIGEgZm9yZWlnbiwgdXNlci1tYW5hZ2VkIHNlcnZlciBpdCBtdXN0IG5ldmVyIHRvdWNoXG4gKiAoYGNoZWNrSXNIYXJuZXNzT3duZWRBcHBpdW1TZXJ2ZXJgIG5lZWRzIHRoZSBtYXJrZXIgdG8gY29udmljdCBpdCkuIEtlZXBpbmdcbiAqIHRoZSBtYXJrZXIsIHN0YW1wZWQsIHNheXMgZXhhY3RseSB3aGF0IGlzIHRydWUgXHUyMDE0IHRoaXMgaXMgb3VycywgYW5kIGl0IG91dGxpdmVkXG4gKiBvdXIgdGVhcmRvd24gXHUyMDE0IHdoaWNoIGlzIHdoYXQgbGV0cyB0aGUgbmV4dCBydW4gcmVmdXNlIHRvIGFkb3B0IGl0IGFuZCByZXBsYWNlXG4gKiBpdCBpbnN0ZWFkLlxuICpcbiAqIEBwYXJhbSBwb3J0IC0gVGhlIEFwcGl1bSBzZXJ2ZXIgcG9ydC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlY29yZEFwcGl1bVNlcnZlclN0b3BBdHRlbXB0KHBvcnQ6IG51bWJlcik6IHZvaWQge1xuICBjb25zdCBtYXJrZXIgPSByZWFkQXBwaXVtU2VydmVyTWFya2VyKHBvcnQpO1xuICBpZiAoIW1hcmtlcikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHdyaXRlTWFya2VyKHsgLi4ubWFya2VyLCBzdG9wQXR0ZW1wdGVkQXRJbk1pbGxpc2Vjb25kczogRGF0ZS5ub3coKSB9KTtcbn1cblxuLyoqXG4gKiBSZWNvcmRzIHRoZSBzZXJ2ZXIgdGhpcyBydW4ganVzdCBzdGFydGVkLCBzdGFtcGluZyBpdCB3aXRoIHRoZSBjdXJyZW50IHRpbWUgc29cbiAqIGEgbGF0ZXIgcnVuIGNhbiByZXBvcnQgaG93IGxvbmcgaXQgaGFzIGJlZW4gdXAuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBzdGFydGVkIHNlcnZlcidzIFBJRCBhbmQgcG9ydC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlQXBwaXVtU2VydmVyTWFya2VyKHBhcmFtczogV3JpdGVBcHBpdW1TZXJ2ZXJNYXJrZXJQYXJhbXMpOiB2b2lkIHtcbiAgd3JpdGVNYXJrZXIoe1xuICAgIHBpZDogcGFyYW1zLnBpZCxcbiAgICBwb3J0OiBwYXJhbXMucG9ydCxcbiAgICBzdGFydGVkQXRJbk1pbGxpc2Vjb25kczogRGF0ZS5ub3coKVxuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0RXJyb3JNZXNzYWdlKGVycm9yOiB1bmtub3duKTogc3RyaW5nIHtcbiAgcmV0dXJuIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFya2VyRGlyZWN0b3J5KCk6IHN0cmluZyB7XG4gIHJldHVybiBqb2luKHRtcGRpcigpLCBNQVJLRVJfRElSX05BTUUpO1xufVxuXG5mdW5jdGlvbiBnZXRNYXJrZXJGaWxlUGF0aChwb3J0OiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gam9pbihnZXRNYXJrZXJEaXJlY3RvcnkoKSwgYCR7U3RyaW5nKHBvcnQpfSR7TUFSS0VSX0ZJTEVfU1VGRklYfWApO1xufVxuXG5mdW5jdGlvbiBwYXJzZU1hcmtlcihwYXJzZWQ6IHVua25vd24sIHBvcnQ6IG51bWJlcik6IEFwcGl1bVNlcnZlck1hcmtlciB8IHVuZGVmaW5lZCB7XG4gIGlmICh0eXBlb2YgcGFyc2VkICE9PSAnb2JqZWN0JyB8fCBwYXJzZWQgPT09IG51bGwpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcmVjb3JkID0gcGFyc2VkIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjb25zdCB7IHBpZCwgcG9ydDogbWFya2VkUG9ydCwgc3RhcnRlZEF0SW5NaWxsaXNlY29uZHMsIHN0b3BBdHRlbXB0ZWRBdEluTWlsbGlzZWNvbmRzIH0gPSByZWNvcmQ7XG5cbiAgcmV0dXJuIHR5cGVvZiBwaWQgIT09ICdudW1iZXInIHx8IHR5cGVvZiBzdGFydGVkQXRJbk1pbGxpc2Vjb25kcyAhPT0gJ251bWJlcicgfHwgbWFya2VkUG9ydCAhPT0gcG9ydFxuICAgID8gdW5kZWZpbmVkXG4gICAgOiB7XG4gICAgICBwaWQsXG4gICAgICBwb3J0LFxuICAgICAgc3RhcnRlZEF0SW5NaWxsaXNlY29uZHMsXG4gICAgICAuLi4odHlwZW9mIHN0b3BBdHRlbXB0ZWRBdEluTWlsbGlzZWNvbmRzID09PSAnbnVtYmVyJyAmJiB7IHN0b3BBdHRlbXB0ZWRBdEluTWlsbGlzZWNvbmRzIH0pXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gd3JpdGVNYXJrZXIobWFya2VyOiBBcHBpdW1TZXJ2ZXJNYXJrZXIpOiB2b2lkIHtcbiAgdHJ5IHtcbiAgICBta2RpclN5bmMoZ2V0TWFya2VyRGlyZWN0b3J5KCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIHdyaXRlRmlsZVN5bmMoZ2V0TWFya2VyRmlsZVBhdGgobWFya2VyLnBvcnQpLCBKU09OLnN0cmluZ2lmeShtYXJrZXIpKTtcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICBsb2coYFthcHBpdW0tc2VydmVyLW1hcmtlcl0gQ291bGQgbm90IHJlY29yZCB0aGUgc2VydmVyIG9uIHBvcnQgJHtTdHJpbmcobWFya2VyLnBvcnQpfTogJHtnZXRFcnJvck1lc3NhZ2UoZXJyb3IpfWApO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQkEscUJBS087QUFDUCxxQkFBdUI7QUFDdkIsdUJBQXFCO0FBRXJCLGlCQUFvQjtBQUNwQiw4QkFBb0M7QUFFcEMsTUFBTSxrQkFBa0I7QUFDeEIsTUFBTSxxQkFBcUI7QUF3RHBCLFNBQVMsZ0NBQWdDLFFBQWlEO0FBQy9GLFNBQU8sV0FBVyxjQUFhLDZDQUFvQixPQUFPLEdBQUc7QUFDL0Q7QUFRTyxTQUFTLHdCQUF3QixNQUFvQjtBQUMxRCxNQUFJO0FBQ0YsK0JBQU8sa0JBQWtCLElBQUksR0FBRyxFQUFFLE9BQU8sS0FBSyxDQUFDO0FBQUEsRUFDakQsU0FBUyxPQUFnQjtBQUN2Qix3QkFBSSwrREFBK0QsT0FBTyxJQUFJLENBQUMsS0FBSyxnQkFBZ0IsS0FBSyxDQUFDLEVBQUU7QUFBQSxFQUM5RztBQUNGO0FBUU8sU0FBUyx1QkFBdUIsTUFBOEM7QUFDbkYsTUFBSTtBQUNKLE1BQUk7QUFDRixhQUFTLEtBQUssVUFBTSw2QkFBYSxrQkFBa0IsSUFBSSxHQUFHLE9BQU8sQ0FBQztBQUFBLEVBQ3BFLFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sWUFBWSxRQUFRLElBQUk7QUFDakM7QUFlTyxTQUFTLDhCQUE4QixNQUFvQjtBQUNoRSxRQUFNLFNBQVMsdUJBQXVCLElBQUk7QUFDMUMsTUFBSSxDQUFDLFFBQVE7QUFDWDtBQUFBLEVBQ0Y7QUFFQSxjQUFZLEVBQUUsR0FBRyxRQUFRLCtCQUErQixLQUFLLElBQUksRUFBRSxDQUFDO0FBQ3RFO0FBUU8sU0FBUyx3QkFBd0IsUUFBNkM7QUFDbkYsY0FBWTtBQUFBLElBQ1YsS0FBSyxPQUFPO0FBQUEsSUFDWixNQUFNLE9BQU87QUFBQSxJQUNiLHlCQUF5QixLQUFLLElBQUk7QUFBQSxFQUNwQyxDQUFDO0FBQ0g7QUFFQSxTQUFTLGdCQUFnQixPQUF3QjtBQUMvQyxTQUFPLGlCQUFpQixRQUFRLE1BQU0sVUFBVSxPQUFPLEtBQUs7QUFDOUQ7QUFFQSxTQUFTLHFCQUE2QjtBQUNwQyxhQUFPLDJCQUFLLHVCQUFPLEdBQUcsZUFBZTtBQUN2QztBQUVBLFNBQVMsa0JBQWtCLE1BQXNCO0FBQy9DLGFBQU8sdUJBQUssbUJBQW1CLEdBQUcsR0FBRyxPQUFPLElBQUksQ0FBQyxHQUFHLGtCQUFrQixFQUFFO0FBQzFFO0FBRUEsU0FBUyxZQUFZLFFBQWlCLE1BQThDO0FBQ2xGLE1BQUksT0FBTyxXQUFXLFlBQVksV0FBVyxNQUFNO0FBQ2pELFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxTQUFTO0FBQ2YsUUFBTSxFQUFFLEtBQUssTUFBTSxZQUFZLHlCQUF5Qiw4QkFBOEIsSUFBSTtBQUUxRixTQUFPLE9BQU8sUUFBUSxZQUFZLE9BQU8sNEJBQTRCLFlBQVksZUFBZSxPQUM1RixTQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFJLE9BQU8sa0NBQWtDLFlBQVksRUFBRSw4QkFBOEI7QUFBQSxFQUMzRjtBQUNKO0FBRUEsU0FBUyxZQUFZLFFBQWtDO0FBQ3JELE1BQUk7QUFDRixrQ0FBVSxtQkFBbUIsR0FBRyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBQ25ELHNDQUFjLGtCQUFrQixPQUFPLElBQUksR0FBRyxLQUFLLFVBQVUsTUFBTSxDQUFDO0FBQUEsRUFDdEUsU0FBUyxPQUFnQjtBQUN2Qix3QkFBSSw4REFBOEQsT0FBTyxPQUFPLElBQUksQ0FBQyxLQUFLLGdCQUFnQixLQUFLLENBQUMsRUFBRTtBQUFBLEVBQ3BIO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -31,10 +31,7 @@ function resolveAsarFallback(params) {
31
31
  tier: "unknown"
32
32
  };
33
33
  }
34
- if ((0, import_obsidian_version.compareVersions)(runningApiVersion, requestedVersion) === 0) {
35
- return { requestedVersion, runningApiVersion, tier: "match" };
36
- }
37
- return {
34
+ return (0, import_obsidian_version.compareVersions)(runningApiVersion, requestedVersion) === 0 ? { requestedVersion, runningApiVersion, tier: "match" } : {
38
35
  message: `Obsidian was pinned to app version ${requestedVersion} but is actually running ${runningApiVersion} \u2014 the installer silently fell back to its own bundled asar instead of running the pinned version. Pin an obsidianInstallerVersion at or above ${requestedVersion}'s run floor so the pin actually runs.`,
39
36
  requestedVersion,
40
37
  runningApiVersion,
@@ -45,4 +42,4 @@ function resolveAsarFallback(params) {
45
42
  0 && (module.exports = {
46
43
  resolveAsarFallback
47
44
  });
48
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FzYXItZmFsbGJhY2stZGV0ZWN0aW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSB2ZXJkaWN0IG9uIHdoZXRoZXIgYSBib290ZWQgb3duZWQgT2JzaWRpYW4gaW5zdGFuY2UgaXMgYWN0dWFsbHkgcnVubmluZ1xuICogdGhlIHBpbm5lZCBhcHAgKGFzYXIpIHZlcnNpb24sIG9yICoqc2lsZW50bHkgZmVsbCBiYWNrKiogdG8gdGhlIGluc3RhbGxlcidzIG93blxuICogYnVuZGxlZCBhc2FyLiBLZXB0IHNlcGFyYXRlIGZyb20gdGhlIGludGVncmF0aW9uLW9ubHkgYHRyYW5zcG9ydC1kZXNrdG9wLWNkcGBcbiAqICh3aGljaCByZWFkcyB0aGUgbGl2ZSB2ZXJzaW9uIG92ZXIgQ0RQIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZVxuICogdGllciBsb2dpYyBzdGF5cyB1bml0LXRlc3RhYmxlIFx1MjAxNCBtaXJyb3JpbmcgdGhlIGBpbnN0YWxsZXItY29tcGF0aWJpbGl0eWAgL1xuICogYGVsZWN0cm9uLWNvbXBhdGliaWxpdHlgIC8gYHJlbmRlcmVyLWJvb3QtZGV0ZWN0aW9uYCBzcGxpdC5cbiAqXG4gKiBXaGVuIGFuIGFzYXIgaXMgc3dhcHBlZCBvbnRvIGFuIGluc3RhbGxlciBzaGVsbCBiZWxvdyBpdHMgcmVhbCBib290IGZsb29yLCB0aGVcbiAqIHJlbmRlcmVyIGRvZXMgbm90IGFsd2F5cyBkZWFkLWJvb3QgKHRoZSBibGFjayBzY3JlZW4gYHJlbmRlcmVyLWJvb3QtZGV0ZWN0aW9uYFxuICogY2F0Y2hlcykuIFNvbWUgYXBwIHZlcnNpb25zIGluc3RlYWQgKipzaWxlbnRseSByZXZlcnQgdG8gdGhlIGluc3RhbGxlcidzIG93blxuICogYnVuZGxlZCBhc2FyKiogYW5kIHJlbmRlciBhIHBlcmZlY3RseSBoZWFsdGh5IFVJIG9mIHRoZSAqd3JvbmcgKG9sZGVyKSogdmVyc2lvbi5cbiAqIFRoZSBkZWFkLWJvb3QgZGV0ZWN0b3IgcmVhZHMgdGhhdCBoZWFsdGh5IFVJIGFzIGEgZmFsc2UtcG9zaXRpdmUgXCJydW5uYWJsZVwiIFx1MjAxNFxuICogZXhhY3RseSBob3cgT2JzaWRpYW4gYDEuMTMuMGAgb24gaW5zdGFsbGVyIGAxLjEuOWAgd2FzIGZpcnN0IG1pcy1tZWFzdXJlZCAoaXRcbiAqIHJlcG9ydHMgYGFwaVZlcnNpb25gIGAxLjEuOWAsIG5vdCBgMS4xMy4wYCkuXG4gKlxuICogVGhlIGRpc2NyaW1pbmF0b3IgaXMgdGhlICoqcnVubmluZyoqIGFwcCB2ZXJzaW9uLCByZWFkIGxpdmUgcG9zdC1ib290XG4gKiAoYGlwY1JlbmRlcmVyLnNlbmRTeW5jKCd2ZXJzaW9uJylgIC8gYG9ic2lkaWFuTW9kdWxlLmFwaVZlcnNpb25gLCB3aGljaCBib3RoXG4gKiB0cmFjayB0aGUgYXNhciBhY3R1YWxseSBydW5uaW5nKS4gVGhpcyB2ZXJkaWN0IGNvbXBhcmVzIGl0IHRvIHRoZSBwaW5uZWRcbiAqIHZlcnNpb246IGVxdWFsIFx1MjFEMiBgJ21hdGNoJ2AsIGRpZmZlcmVudCBcdTIxRDIgYCdmYWxsYmFjaydgICh0aGUgcGluIHdhcyBub3QgaG9ub3JlZCksXG4gKiBhbmQgYCd1bmtub3duJ2Agd2hlbiBlaXRoZXIgdmVyc2lvbiBpcyB1bmF2YWlsYWJsZSAobm8gYXNhciB3YXMgc3dhcHBlZCwgb3IgdGhlXG4gKiBsaXZlIHZlcnNpb24gY291bGQgbm90IGJlIHJlYWQpIFx1MjAxNCBpbiB3aGljaCBjYXNlIG5vdGhpbmcgaXMgdGhyb3duIG9yIHdhcm5lZC5cbiAqL1xuXG5pbXBvcnQgeyBjb21wYXJlVmVyc2lvbnMgfSBmcm9tICcuL29ic2lkaWFuLXZlcnNpb24uY2pzJztcblxuLyoqXG4gKiBUaGUgc2lsZW50LWFzYXItZmFsbGJhY2sgdmVyZGljdCBmb3IgYSBib290ZWQgb3duZWQgaW5zdGFuY2UsIGNhcnJpZWQgYXMgZGF0YVxuICogb24gdGhlIHRyYW5zcG9ydCAvIGNvbm5lY3Rpb24gcmVzdWx0IHNvIGNvbnN1bWVycyBjYW4gYXNzZXJ0IG9uIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzYXJGYWxsYmFjayB7XG4gIC8qKlxuICBBIGh1bWFuLXJlYWRhYmxlIGV4cGxhbmF0aW9uLCBwcmVzZW50IGZvciB0aGUgYCdmYWxsYmFjaydgIHRpZXIuXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgcGlubmVkIGFwcCAoYXNhcikgdmVyc2lvbiB0aGF0IHdhcyByZXF1ZXN0ZWQsIG9yIGBudWxsYCB3aGVuIG5vbmUuXG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0ZWRWZXJzaW9uOiBudWxsIHwgc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgYXBwIChhc2FyKSB2ZXJzaW9uIGFjdHVhbGx5IHJ1bm5pbmcsIG9yIGBudWxsYCB3aGVuIHVucmVhZGFibGUuXG4gICAqL1xuICByZWFkb25seSBydW5uaW5nQXBpVmVyc2lvbjogbnVsbCB8IHN0cmluZztcblxuICAvKipcbiAgVGhlIHJlc29sdmVkIGZhbGxiYWNrIHRpZXIuXG4gICAqL1xuICByZWFkb25seSB0aWVyOiBBc2FyRmFsbGJhY2tUaWVyO1xufVxuXG4vKipcbiAqIFRoZSBzaWxlbnQtYXNhci1mYWxsYmFjayB0aWVyIGZvciBhIGJvb3RlZCBvd25lZCBpbnN0YW5jZS5cbiAqXG4gKiAtIGAnbWF0Y2gnYCBcdTIwMTQgdGhlIHJ1bm5pbmcgYXBwIHZlcnNpb24gZXF1YWxzIHRoZSBwaW5uZWQgdmVyc2lvbjsgdGhlIHBpbiB3YXNcbiAqICAgaG9ub3JlZC5cbiAqIC0gYCdmYWxsYmFjaydgIFx1MjAxNCB0aGUgcnVubmluZyBhcHAgdmVyc2lvbiBkaWZmZXJzIGZyb20gdGhlIHBpbm5lZCB2ZXJzaW9uOyB0aGVcbiAqICAgaW5zdGFsbGVyIHNpbGVudGx5IHJhbiBhIGRpZmZlcmVudCAoaXRzIG93biBidW5kbGVkKSBhc2FyIGluc3RlYWQgb2YgdGhlIHBpbi5cbiAqIC0gYCd1bmtub3duJ2AgXHUyMDE0IGNhbm5vdCBiZSBkZXRlcm1pbmVkIChubyBhc2FyIHdhcyBzd2FwcGVkLCBzbyB0aGVyZSBpcyBubyBwaW4gdG9cbiAqICAgdmVyaWZ5LCBvciB0aGUgbGl2ZSBydW5uaW5nIHZlcnNpb24gY291bGQgbm90IGJlIHJlYWQpLlxuICovXG5leHBvcnQgdHlwZSBBc2FyRmFsbGJhY2tUaWVyID0gJ2ZhbGxiYWNrJyB8ICdtYXRjaCcgfCAndW5rbm93bic7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlc29sdmVBc2FyRmFsbGJhY2t9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVBc2FyRmFsbGJhY2tQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHBpbm5lZCBPYnNpZGlhbiBhcHAgKGFzYXIpIHZlcnNpb24gdGhlIG93bmVkIGluc3RhbmNlIHdhcyBhc2tlZCB0byBydW4sXG4gICAqIG9yIGB1bmRlZmluZWRgIHdoZW4gbm8gYXNhciB3YXMgc3dhcHBlZCAoc28gdGhlcmUgaXMgbm90aGluZyB0byB2ZXJpZnkpLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdGVkVmVyc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIChhc2FyKSB2ZXJzaW9uIHRoZSBpbnN0YW5jZSBpcyBhY3R1YWxseSBydW5uaW5nLCByZWFkIGxpdmVcbiAgICogcG9zdC1ib290LCBvciBgdW5kZWZpbmVkYCB3aGVuIGl0IGNvdWxkIG5vdCBiZSByZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgcnVubmluZ0FwaVZlcnNpb246IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgc2lsZW50LWFzYXItZmFsbGJhY2sgdmVyZGljdCBmb3IgYSBib290ZWQgb3duZWQgaW5zdGFuY2UuXG4gKlxuICogT25seSBgJ2ZhbGxiYWNrJ2Agd2FycmFudHMgYWN0aW9uIChhIHRocm93IC8gd2FybmluZyk7IGAnbWF0Y2gnYCBhbmQgYCd1bmtub3duJ2BcbiAqIGFyZSBzaWxlbnQuIENvbXBhcmlzb24gaXMgYSBwdXJlIGB4LnkuemAgdmVyc2lvbiBjb21wYXJlIFx1MjAxNCBubyBJL08uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwaW5uZWQgdmVyc2lvbiBhbmQgdGhlIGxpdmUgcnVubmluZyB2ZXJzaW9uLlxuICogQHJldHVybnMgVGhlIGZhbGxiYWNrIHZlcmRpY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQXNhckZhbGxiYWNrKHBhcmFtczogUmVzb2x2ZUFzYXJGYWxsYmFja1BhcmFtcyk6IEFzYXJGYWxsYmFjayB7XG4gIGNvbnN0IHsgcmVxdWVzdGVkVmVyc2lvbiwgcnVubmluZ0FwaVZlcnNpb24gfSA9IHBhcmFtcztcblxuICBpZiAocmVxdWVzdGVkVmVyc2lvbiA9PT0gdW5kZWZpbmVkIHx8IHJ1bm5pbmdBcGlWZXJzaW9uID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVxdWVzdGVkVmVyc2lvbjogcmVxdWVzdGVkVmVyc2lvbiA/PyBudWxsLFxuICAgICAgcnVubmluZ0FwaVZlcnNpb246IHJ1bm5pbmdBcGlWZXJzaW9uID8/IG51bGwsXG4gICAgICB0aWVyOiAndW5rbm93bidcbiAgICB9O1xuICB9XG5cbiAgaWYgKGNvbXBhcmVWZXJzaW9ucyhydW5uaW5nQXBpVmVyc2lvbiwgcmVxdWVzdGVkVmVyc2lvbikgPT09IDApIHtcbiAgICByZXR1cm4geyByZXF1ZXN0ZWRWZXJzaW9uLCBydW5uaW5nQXBpVmVyc2lvbiwgdGllcjogJ21hdGNoJyB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBtZXNzYWdlOiBgT2JzaWRpYW4gd2FzIHBpbm5lZCB0byBhcHAgdmVyc2lvbiAke3JlcXVlc3RlZFZlcnNpb259IGJ1dCBpcyBhY3R1YWxseSBydW5uaW5nICR7cnVubmluZ0FwaVZlcnNpb259IFx1MjAxNCBgXG4gICAgICArICd0aGUgaW5zdGFsbGVyIHNpbGVudGx5IGZlbGwgYmFjayB0byBpdHMgb3duIGJ1bmRsZWQgYXNhciBpbnN0ZWFkIG9mIHJ1bm5pbmcgdGhlIHBpbm5lZCB2ZXJzaW9uLiAnXG4gICAgICArIGBQaW4gYW4gb2JzaWRpYW5JbnN0YWxsZXJWZXJzaW9uIGF0IG9yIGFib3ZlICR7cmVxdWVzdGVkVmVyc2lvbn0ncyBydW4gZmxvb3Igc28gdGhlIHBpbiBhY3R1YWxseSBydW5zLmAsXG4gICAgcmVxdWVzdGVkVmVyc2lvbixcbiAgICBydW5uaW5nQXBpVmVyc2lvbixcbiAgICB0aWVyOiAnZmFsbGJhY2snXG4gIH07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBMEJBLDhCQUFnQztBQWtFekIsU0FBUyxvQkFBb0IsUUFBaUQ7QUFDbkYsUUFBTSxFQUFFLGtCQUFrQixrQkFBa0IsSUFBSTtBQUVoRCxNQUFJLHFCQUFxQixVQUFhLHNCQUFzQixRQUFXO0FBQ3JFLFdBQU87QUFBQSxNQUNMLGtCQUFrQixvQkFBb0I7QUFBQSxNQUN0QyxtQkFBbUIscUJBQXFCO0FBQUEsTUFDeEMsTUFBTTtBQUFBLElBQ1I7QUFBQSxFQUNGO0FBRUEsVUFBSSx5Q0FBZ0IsbUJBQW1CLGdCQUFnQixNQUFNLEdBQUc7QUFDOUQsV0FBTyxFQUFFLGtCQUFrQixtQkFBbUIsTUFBTSxRQUFRO0FBQUEsRUFDOUQ7QUFFQSxTQUFPO0FBQUEsSUFDTCxTQUFTLHNDQUFzQyxnQkFBZ0IsNEJBQTRCLGlCQUFpQix1SkFFekQsZ0JBQWdCO0FBQUEsSUFDbkU7QUFBQSxJQUNBO0FBQUEsSUFDQSxNQUFNO0FBQUEsRUFDUjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
45
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FzYXItZmFsbGJhY2stZGV0ZWN0aW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSB2ZXJkaWN0IG9uIHdoZXRoZXIgYSBib290ZWQgb3duZWQgT2JzaWRpYW4gaW5zdGFuY2UgaXMgYWN0dWFsbHkgcnVubmluZ1xuICogdGhlIHBpbm5lZCBhcHAgKGFzYXIpIHZlcnNpb24sIG9yICoqc2lsZW50bHkgZmVsbCBiYWNrKiogdG8gdGhlIGluc3RhbGxlcidzIG93blxuICogYnVuZGxlZCBhc2FyLiBLZXB0IHNlcGFyYXRlIGZyb20gdGhlIGludGVncmF0aW9uLW9ubHkgYHRyYW5zcG9ydC1kZXNrdG9wLWNkcGBcbiAqICh3aGljaCByZWFkcyB0aGUgbGl2ZSB2ZXJzaW9uIG92ZXIgQ0RQIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZVxuICogdGllciBsb2dpYyBzdGF5cyB1bml0LXRlc3RhYmxlIFx1MjAxNCBtaXJyb3JpbmcgdGhlIGBpbnN0YWxsZXItY29tcGF0aWJpbGl0eWAgL1xuICogYGVsZWN0cm9uLWNvbXBhdGliaWxpdHlgIC8gYHJlbmRlcmVyLWJvb3QtZGV0ZWN0aW9uYCBzcGxpdC5cbiAqXG4gKiBXaGVuIGFuIGFzYXIgaXMgc3dhcHBlZCBvbnRvIGFuIGluc3RhbGxlciBzaGVsbCBiZWxvdyBpdHMgcmVhbCBib290IGZsb29yLCB0aGVcbiAqIHJlbmRlcmVyIGRvZXMgbm90IGFsd2F5cyBkZWFkLWJvb3QgKHRoZSBibGFjayBzY3JlZW4gYHJlbmRlcmVyLWJvb3QtZGV0ZWN0aW9uYFxuICogY2F0Y2hlcykuIFNvbWUgYXBwIHZlcnNpb25zIGluc3RlYWQgKipzaWxlbnRseSByZXZlcnQgdG8gdGhlIGluc3RhbGxlcidzIG93blxuICogYnVuZGxlZCBhc2FyKiogYW5kIHJlbmRlciBhIHBlcmZlY3RseSBoZWFsdGh5IFVJIG9mIHRoZSAqd3JvbmcgKG9sZGVyKSogdmVyc2lvbi5cbiAqIFRoZSBkZWFkLWJvb3QgZGV0ZWN0b3IgcmVhZHMgdGhhdCBoZWFsdGh5IFVJIGFzIGEgZmFsc2UtcG9zaXRpdmUgXCJydW5uYWJsZVwiIFx1MjAxNFxuICogZXhhY3RseSBob3cgT2JzaWRpYW4gYDEuMTMuMGAgb24gaW5zdGFsbGVyIGAxLjEuOWAgd2FzIGZpcnN0IG1pcy1tZWFzdXJlZCAoaXRcbiAqIHJlcG9ydHMgYGFwaVZlcnNpb25gIGAxLjEuOWAsIG5vdCBgMS4xMy4wYCkuXG4gKlxuICogVGhlIGRpc2NyaW1pbmF0b3IgaXMgdGhlICoqcnVubmluZyoqIGFwcCB2ZXJzaW9uLCByZWFkIGxpdmUgcG9zdC1ib290XG4gKiAoYGlwY1JlbmRlcmVyLnNlbmRTeW5jKCd2ZXJzaW9uJylgIC8gYG9ic2lkaWFuTW9kdWxlLmFwaVZlcnNpb25gLCB3aGljaCBib3RoXG4gKiB0cmFjayB0aGUgYXNhciBhY3R1YWxseSBydW5uaW5nKS4gVGhpcyB2ZXJkaWN0IGNvbXBhcmVzIGl0IHRvIHRoZSBwaW5uZWRcbiAqIHZlcnNpb246IGVxdWFsIFx1MjFEMiBgJ21hdGNoJ2AsIGRpZmZlcmVudCBcdTIxRDIgYCdmYWxsYmFjaydgICh0aGUgcGluIHdhcyBub3QgaG9ub3JlZCksXG4gKiBhbmQgYCd1bmtub3duJ2Agd2hlbiBlaXRoZXIgdmVyc2lvbiBpcyB1bmF2YWlsYWJsZSAobm8gYXNhciB3YXMgc3dhcHBlZCwgb3IgdGhlXG4gKiBsaXZlIHZlcnNpb24gY291bGQgbm90IGJlIHJlYWQpIFx1MjAxNCBpbiB3aGljaCBjYXNlIG5vdGhpbmcgaXMgdGhyb3duIG9yIHdhcm5lZC5cbiAqL1xuXG5pbXBvcnQgeyBjb21wYXJlVmVyc2lvbnMgfSBmcm9tICcuL29ic2lkaWFuLXZlcnNpb24uY2pzJztcblxuLyoqXG4gKiBUaGUgc2lsZW50LWFzYXItZmFsbGJhY2sgdmVyZGljdCBmb3IgYSBib290ZWQgb3duZWQgaW5zdGFuY2UsIGNhcnJpZWQgYXMgZGF0YVxuICogb24gdGhlIHRyYW5zcG9ydCAvIGNvbm5lY3Rpb24gcmVzdWx0IHNvIGNvbnN1bWVycyBjYW4gYXNzZXJ0IG9uIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzYXJGYWxsYmFjayB7XG4gIC8qKlxuICBBIGh1bWFuLXJlYWRhYmxlIGV4cGxhbmF0aW9uLCBwcmVzZW50IGZvciB0aGUgYCdmYWxsYmFjaydgIHRpZXIuXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgcGlubmVkIGFwcCAoYXNhcikgdmVyc2lvbiB0aGF0IHdhcyByZXF1ZXN0ZWQsIG9yIGBudWxsYCB3aGVuIG5vbmUuXG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0ZWRWZXJzaW9uOiBudWxsIHwgc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgYXBwIChhc2FyKSB2ZXJzaW9uIGFjdHVhbGx5IHJ1bm5pbmcsIG9yIGBudWxsYCB3aGVuIHVucmVhZGFibGUuXG4gICAqL1xuICByZWFkb25seSBydW5uaW5nQXBpVmVyc2lvbjogbnVsbCB8IHN0cmluZztcblxuICAvKipcbiAgVGhlIHJlc29sdmVkIGZhbGxiYWNrIHRpZXIuXG4gICAqL1xuICByZWFkb25seSB0aWVyOiBBc2FyRmFsbGJhY2tUaWVyO1xufVxuXG4vKipcbiAqIFRoZSBzaWxlbnQtYXNhci1mYWxsYmFjayB0aWVyIGZvciBhIGJvb3RlZCBvd25lZCBpbnN0YW5jZS5cbiAqXG4gKiAtIGAnbWF0Y2gnYCBcdTIwMTQgdGhlIHJ1bm5pbmcgYXBwIHZlcnNpb24gZXF1YWxzIHRoZSBwaW5uZWQgdmVyc2lvbjsgdGhlIHBpbiB3YXNcbiAqICAgaG9ub3JlZC5cbiAqIC0gYCdmYWxsYmFjaydgIFx1MjAxNCB0aGUgcnVubmluZyBhcHAgdmVyc2lvbiBkaWZmZXJzIGZyb20gdGhlIHBpbm5lZCB2ZXJzaW9uOyB0aGVcbiAqICAgaW5zdGFsbGVyIHNpbGVudGx5IHJhbiBhIGRpZmZlcmVudCAoaXRzIG93biBidW5kbGVkKSBhc2FyIGluc3RlYWQgb2YgdGhlIHBpbi5cbiAqIC0gYCd1bmtub3duJ2AgXHUyMDE0IGNhbm5vdCBiZSBkZXRlcm1pbmVkIChubyBhc2FyIHdhcyBzd2FwcGVkLCBzbyB0aGVyZSBpcyBubyBwaW4gdG9cbiAqICAgdmVyaWZ5LCBvciB0aGUgbGl2ZSBydW5uaW5nIHZlcnNpb24gY291bGQgbm90IGJlIHJlYWQpLlxuICovXG5leHBvcnQgdHlwZSBBc2FyRmFsbGJhY2tUaWVyID0gJ2ZhbGxiYWNrJyB8ICdtYXRjaCcgfCAndW5rbm93bic7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlc29sdmVBc2FyRmFsbGJhY2t9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVBc2FyRmFsbGJhY2tQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHBpbm5lZCBPYnNpZGlhbiBhcHAgKGFzYXIpIHZlcnNpb24gdGhlIG93bmVkIGluc3RhbmNlIHdhcyBhc2tlZCB0byBydW4sXG4gICAqIG9yIGB1bmRlZmluZWRgIHdoZW4gbm8gYXNhciB3YXMgc3dhcHBlZCAoc28gdGhlcmUgaXMgbm90aGluZyB0byB2ZXJpZnkpLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdGVkVmVyc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIChhc2FyKSB2ZXJzaW9uIHRoZSBpbnN0YW5jZSBpcyBhY3R1YWxseSBydW5uaW5nLCByZWFkIGxpdmVcbiAgICogcG9zdC1ib290LCBvciBgdW5kZWZpbmVkYCB3aGVuIGl0IGNvdWxkIG5vdCBiZSByZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgcnVubmluZ0FwaVZlcnNpb246IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgc2lsZW50LWFzYXItZmFsbGJhY2sgdmVyZGljdCBmb3IgYSBib290ZWQgb3duZWQgaW5zdGFuY2UuXG4gKlxuICogT25seSBgJ2ZhbGxiYWNrJ2Agd2FycmFudHMgYWN0aW9uIChhIHRocm93IC8gd2FybmluZyk7IGAnbWF0Y2gnYCBhbmQgYCd1bmtub3duJ2BcbiAqIGFyZSBzaWxlbnQuIENvbXBhcmlzb24gaXMgYSBwdXJlIGB4LnkuemAgdmVyc2lvbiBjb21wYXJlIFx1MjAxNCBubyBJL08uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwaW5uZWQgdmVyc2lvbiBhbmQgdGhlIGxpdmUgcnVubmluZyB2ZXJzaW9uLlxuICogQHJldHVybnMgVGhlIGZhbGxiYWNrIHZlcmRpY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQXNhckZhbGxiYWNrKHBhcmFtczogUmVzb2x2ZUFzYXJGYWxsYmFja1BhcmFtcyk6IEFzYXJGYWxsYmFjayB7XG4gIGNvbnN0IHsgcmVxdWVzdGVkVmVyc2lvbiwgcnVubmluZ0FwaVZlcnNpb24gfSA9IHBhcmFtcztcblxuICBpZiAocmVxdWVzdGVkVmVyc2lvbiA9PT0gdW5kZWZpbmVkIHx8IHJ1bm5pbmdBcGlWZXJzaW9uID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmVxdWVzdGVkVmVyc2lvbjogcmVxdWVzdGVkVmVyc2lvbiA/PyBudWxsLFxuICAgICAgcnVubmluZ0FwaVZlcnNpb246IHJ1bm5pbmdBcGlWZXJzaW9uID8/IG51bGwsXG4gICAgICB0aWVyOiAndW5rbm93bidcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGNvbXBhcmVWZXJzaW9ucyhydW5uaW5nQXBpVmVyc2lvbiwgcmVxdWVzdGVkVmVyc2lvbikgPT09IDBcbiAgICA/IHsgcmVxdWVzdGVkVmVyc2lvbiwgcnVubmluZ0FwaVZlcnNpb24sIHRpZXI6ICdtYXRjaCcgfVxuICAgIDoge1xuICAgICAgbWVzc2FnZTogYE9ic2lkaWFuIHdhcyBwaW5uZWQgdG8gYXBwIHZlcnNpb24gJHtyZXF1ZXN0ZWRWZXJzaW9ufSBidXQgaXMgYWN0dWFsbHkgcnVubmluZyAke3J1bm5pbmdBcGlWZXJzaW9ufSBcdTIwMTQgYFxuICAgICAgICArICd0aGUgaW5zdGFsbGVyIHNpbGVudGx5IGZlbGwgYmFjayB0byBpdHMgb3duIGJ1bmRsZWQgYXNhciBpbnN0ZWFkIG9mIHJ1bm5pbmcgdGhlIHBpbm5lZCB2ZXJzaW9uLiAnXG4gICAgICAgICsgYFBpbiBhbiBvYnNpZGlhbkluc3RhbGxlclZlcnNpb24gYXQgb3IgYWJvdmUgJHtyZXF1ZXN0ZWRWZXJzaW9ufSdzIHJ1biBmbG9vciBzbyB0aGUgcGluIGFjdHVhbGx5IHJ1bnMuYCxcbiAgICAgIHJlcXVlc3RlZFZlcnNpb24sXG4gICAgICBydW5uaW5nQXBpVmVyc2lvbixcbiAgICAgIHRpZXI6ICdmYWxsYmFjaydcbiAgICB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTBCQSw4QkFBZ0M7QUFrRXpCLFNBQVMsb0JBQW9CLFFBQWlEO0FBQ25GLFFBQU0sRUFBRSxrQkFBa0Isa0JBQWtCLElBQUk7QUFFaEQsTUFBSSxxQkFBcUIsVUFBYSxzQkFBc0IsUUFBVztBQUNyRSxXQUFPO0FBQUEsTUFDTCxrQkFBa0Isb0JBQW9CO0FBQUEsTUFDdEMsbUJBQW1CLHFCQUFxQjtBQUFBLE1BQ3hDLE1BQU07QUFBQSxJQUNSO0FBQUEsRUFDRjtBQUVBLGFBQU8seUNBQWdCLG1CQUFtQixnQkFBZ0IsTUFBTSxJQUM1RCxFQUFFLGtCQUFrQixtQkFBbUIsTUFBTSxRQUFRLElBQ3JEO0FBQUEsSUFDQSxTQUFTLHNDQUFzQyxnQkFBZ0IsNEJBQTRCLGlCQUFpQix1SkFFekQsZ0JBQWdCO0FBQUEsSUFDbkU7QUFBQSxJQUNBO0FBQUEsSUFDQSxNQUFNO0FBQUEsRUFDUjtBQUNKOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -28,10 +28,7 @@ module.exports = __toCommonJS(avd_probe_verdict_exports);
28
28
  var import_type_guards = require("./type-guards.cjs");
29
29
  const EMULATOR_DEVICE_ID_PATTERN = /^emulator-\d+$/;
30
30
  function buildAvdProbeSummary(results) {
31
- if (results.length === 0) {
32
- return "no devices";
33
- }
34
- return results.map((result) => `${result.deviceId}=${result.outcome}`).join(", ");
31
+ return results.length === 0 ? "no devices" : results.map((result) => `${result.deviceId}=${result.outcome}`).join(", ");
35
32
  }
36
33
  function buildUnreadableDevicesMessage(params) {
37
34
  const deviceList = params.unreadableDeviceIds.join(", ");
@@ -74,10 +71,7 @@ function resolveAvdProbeVerdict(results) {
74
71
  }
75
72
  }
76
73
  }
77
- if (unreadableDeviceIds.length > 0) {
78
- return { unreadableDeviceIds, verdict: "refuse" };
79
- }
80
- return { verdict: "start-new" };
74
+ return unreadableDeviceIds.length > 0 ? { unreadableDeviceIds, verdict: "refuse" } : { verdict: "start-new" };
81
75
  }
82
76
  // Annotate the CommonJS export names for ESM import in node:
83
77
  0 && (module.exports = {
@@ -87,4 +81,4 @@ function resolveAvdProbeVerdict(results) {
87
81
  classifyAvdProbe,
88
82
  resolveAvdProbeVerdict
89
83
  });
90
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2F2ZC1wcm9iZS12ZXJkaWN0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSBjbGFzc2lmaWNhdGlvbiBvZiB0aGUgQVZEIGFkb3B0aW9uIHByb2JlIFx1MjAxNCBkZWNpZGluZywgZnJvbSB3aGF0IGVhY2hcbiAqIGNvbm5lY3RlZCBkZXZpY2UgYW5zd2VyZWQsIHdoZXRoZXIgdGhpcyBydW4gbWF5IHJldXNlIG9uZSwgbXVzdCBzdGFydCBpdHNcbiAqIG93biBlbXVsYXRvciwgb3IgY2Fubm90IHNhZmVseSBkbyBlaXRoZXIuXG4gKlxuICogVGhlIHByb2JlIChgYWRiIC1zIDxkZXZpY2U+IGVtdSBhdmQgbmFtZWApIHVzZWQgdG8gZGlzY2FyZCBpdHMgZXJyb3IgYW5kXG4gKiByZXNvbHZlIGAnJ2AsIHNvIGEgY2FsbCB0aGF0ICoqbmV2ZXIgYW5zd2VyZWQqKiB3YXMgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBvbmVcbiAqIHRoYXQgYW5zd2VyZWQgKlwiYSBkaWZmZXJlbnQgQVZEXCIqLiBCb3RoIGZlbGwgdGhyb3VnaCB0byBcInN0YXJ0IGEgbmV3XG4gKiBlbXVsYXRvclwiLCB3aGljaCBjb2xsaWRlcyB3aXRoIHRoZSBlbXVsYXRvciBhbHJlYWR5IHNlcnZpbmcgdGhhdCBBVkQ6XG4gKlxuICogYGBgdGV4dFxuICogMTQ6Mjc6NTIuMTE0ICBDaGVja2luZyBleGlzdGluZyBkZXZpY2VzIGZvciBBVkQgXCJvYnNpZGlhbl90ZXN0XCIuLi4gKGNvbm5lY3RlZDogW2VtdWxhdG9yLTU1NTRdKVxuICogMTQ6Mjc6NTcuMTcwICBBVkQgXCJvYnNpZGlhbl90ZXN0XCIgbm90IGZvdW5kIG9uIGFueSBleGlzdGluZyBkZXZpY2UsIHN0YXJ0aW5nIGEgbmV3IGVtdWxhdG9yLi4uXG4gKiBgYGBcbiAqXG4gKiA1LjA1NnMgYXBhcnQgXHUyMDE0IGV4YWN0bHkgdGhlIHByb2JlJ3Mgb3duIHRpbWVvdXQuIFRoZSBsYXVuY2ggdGhhdCBmb2xsb3dlZCBoaXRcbiAqIGBGQVRBTCB8IFJ1bm5pbmcgbXVsdGlwbGUgZW11bGF0b3JzIHdpdGggdGhlIHNhbWUgQVZEIGlzIGFuIGV4cGVyaW1lbnRhbFxuICogZmVhdHVyZWAsIHdoaWNoIHRoZSBlbXVsYXRvciB3cml0ZXMgdG8gaXRzIG93biBzdGRvdXQuICoqQSBwcm9iZSB0aGF0IG5ldmVyXG4gKiBhbnN3ZXJlZCBpcyBub3QgZXZpZGVuY2UgdGhhdCB0aGUgYW5zd2VyIGlzIG5vKiogXHUyMDE0IHRoZSBzYW1lIGRpc3RpbmN0aW9uXG4gKiBgYWRiLWRldmljZS1saXN0LnRzYCBkcmF3cyBiZXR3ZWVuIGBvZmZsaW5lYCBhbmQgYWJzZW50LCBhbmQgdGhlIHNhbWUgb25lXG4gKiB0aGUgY29ubmVjdGl2aXR5IHByb2JlIGRyYXdzIGJldHdlZW4gYSBmYWlsZWQgZHVtcCBhbmQgYSBtaXNzaW5nIG5ldHdvcmsuXG4gKlxuICogV29yc2UsIHRoZSBwcm9iZSBpcyBhc2tlZCBpdHMgcXVlc3Rpb24gcHJlY2lzZWx5IHdoZW4gdGhlIGd1ZXN0IGlzIGxlYXN0IGFibGVcbiAqIHRvIGFuc3dlciBpdCBcdTIwMTQgYSB3ZWRnZWQgZW11bGF0b3IgdGltZXMgb3V0IGV2ZXJ5IGBhZGJgIGNhbGwgXHUyMDE0IHdoaWNoIGlzIHRoZVxuICogY29uZGl0aW9uIHVuZGVyIHdoaWNoIGEgY29sbGlkaW5nIGxhdW5jaCBkb2VzIHRoZSBtb3N0IGRhbWFnZS5cbiAqXG4gKiBLZXB0IHNlcGFyYXRlIGZyb20gdGhlIGludGVncmF0aW9uLW9ubHkgYHRyYW5zcG9ydC1mYWN0b3J5YCAoZXhjbHVkZWQgZnJvbVxuICogdW5pdCB0ZXN0cykgc28gdGhlIGNsYXNzaWZpY2F0aW9uIHN0YXlzIHVuaXQtdGVzdGFibGUgXHUyMDE0IHRoZSBmYWN0b3J5IGl0c2VsZlxuICogc2hlbGxzIG91dCB0byBgYWRiYC5cbiAqL1xuXG5pbXBvcnQgeyBhc3NlcnROZXZlciB9IGZyb20gJy4vdHlwZS1ndWFyZHMuY2pzJztcblxuLyoqXG4gKiBXaGF0IG9uZSBkZXZpY2UgYW5zd2VyZWQgd2hlbiBhc2tlZCB3aGljaCBBVkQgaXQgaXMgc2VydmluZy5cbiAqXG4gKiBgbm90LWFuLWVtdWxhdG9yYCBhbmQgYG90aGVyLWF2ZGAgYXJlIGJvdGggbGVnaXRpbWF0ZSBza2lwczsgb25seVxuICogYG5vLWFuc3dlcmAgaXMgdGhlIHNpbGVuY2UgdGhhdCBtdXN0IG5ldmVyIGJlIHJlYWQgYXMgb25lLlxuICovXG5leHBvcnQgdHlwZSBBdmRQcm9iZU91dGNvbWUgPSAnbWF0Y2gnIHwgJ25vLWFuc3dlcicgfCAnbm90LWFuLWVtdWxhdG9yJyB8ICdvdGhlci1hdmQnO1xuXG4vKipcbiAqIFRoZSBydW4gY2Fubm90IHRlbGwgd2hldGhlciB0aGUgQVZEIGlzIGFscmVhZHkgcnVubmluZywgc28gaXQgbXVzdCBub3QgbGF1bmNoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2ZFByb2JlUmVmdXNlVmVyZGljdCB7XG4gIC8qKlxuICBUaGUgZGV2aWNlcyB0aGF0IGNvdWxkIG5vdCBiZSByZWFkLCBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBydWxlZCBvdXQgYXMgdGhlIEFWRCdzIGhvbGRlci5cbiAgICovXG4gIHJlYWRvbmx5IHVucmVhZGFibGVEZXZpY2VJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICBEaXNjcmltaW5hbnQuXG4gICAqL1xuICByZWFkb25seSB2ZXJkaWN0OiAncmVmdXNlJztcbn1cblxuLyoqXG4gKiBPbmUgZGV2aWNlJ3MgcHJvYmUgb3V0Y29tZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdmRQcm9iZVJlc3VsdCB7XG4gIC8qKlxuICBUaGUgZGV2aWNlIFVESUQsIGUuZy4gYGVtdWxhdG9yLTU1NTRgLlxuICAgKi9cbiAgcmVhZG9ubHkgZGV2aWNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgV2hhdCB0aGUgZGV2aWNlIGFuc3dlcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0Y29tZTogQXZkUHJvYmVPdXRjb21lO1xufVxuXG4vKipcbiAqIFRoZSBBVkQgaXMgYWxyZWFkeSBydW5uaW5nLCBvbiBhIGRldmljZSB0aGlzIHJ1biBtYXkgYWRvcHQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXZkUHJvYmVSZXVzZVZlcmRpY3Qge1xuICAvKipcbiAgVGhlIGRldmljZSBhbHJlYWR5IHNlcnZpbmcgdGhlIHJlcXVlc3RlZCBBVkQuXG4gICAqL1xuICByZWFkb25seSBkZXZpY2VJZDogc3RyaW5nO1xuXG4gIC8qKlxuICBEaXNjcmltaW5hbnQuXG4gICAqL1xuICByZWFkb25seSB2ZXJkaWN0OiAncmV1c2UnO1xufVxuXG4vKipcbiAqIEV2ZXJ5IGRldmljZSBhbnN3ZXJlZCwgbm9uZSBpcyBzZXJ2aW5nIHRoZSBBVkQsIHNvIGxhdW5jaGluZyBjYW5ub3QgY29sbGlkZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdmRQcm9iZVN0YXJ0TmV3VmVyZGljdCB7XG4gIC8qKlxuICBEaXNjcmltaW5hbnQuXG4gICAqL1xuICByZWFkb25seSB2ZXJkaWN0OiAnc3RhcnQtbmV3Jztcbn1cblxuLyoqXG4gKiBXaGF0IHRoZSBydW4gbWF5IGRvLCBnaXZlbiBldmVyeSBkZXZpY2UncyBwcm9iZSBvdXRjb21lLlxuICovXG5leHBvcnQgdHlwZSBBdmRQcm9iZVZlcmRpY3QgPSBBdmRQcm9iZVJlZnVzZVZlcmRpY3QgfCBBdmRQcm9iZVJldXNlVmVyZGljdCB8IEF2ZFByb2JlU3RhcnROZXdWZXJkaWN0O1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBidWlsZFVucmVhZGFibGVEZXZpY2VzTWVzc2FnZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRVbnJlYWRhYmxlRGV2aWNlc01lc3NhZ2VQYXJhbXMge1xuICAvKipcbiAgVGhlIEFWRCB0aGUgcnVuIHdhbnRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGF2ZE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgVGhlIGJ1ZGdldCBlYWNoIHByb2JlIGF0dGVtcHQgd2FzIGdpdmVuLCBpbiBtaWxsaXNlY29uZHMuXG4gICAqL1xuICByZWFkb25seSBwcm9iZVRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgZGV2aWNlcyB0aGF0IGRpZCBub3QgYW5zd2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgdW5yZWFkYWJsZURldmljZUlkczogcmVhZG9ubHkgc3RyaW5nW107XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNsYXNzaWZ5QXZkUHJvYmV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsYXNzaWZ5QXZkUHJvYmVQYXJhbXMge1xuICAvKipcbiAgVGhlIEFWRCB0aGUgcnVuIHdhbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgYXZkTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgZGV2aWNlIHRoYXQgd2FzIHByb2JlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRldmljZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBBVkQgbmFtZSB0aGUgZGV2aWNlIGFuc3dlcmVkLCBvciBgdW5kZWZpbmVkYCB3aGVuIGl0IGRpZCBub3QgYW5zd2VyIGF0IGFsbC5cbiAgICovXG4gIHJlYWRvbmx5IHByb2JlZEF2ZE5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTWF0Y2hlcyB0aGUgZGV2aWNlIElEcyBhZGIgZ2l2ZXMgZW11bGF0b3JzIHN0YXJ0ZWQgdGhlIHdheSB0aGlzIGhhcm5lc3NcbiAqIHN0YXJ0cyB0aGVtOiBgZW11bGF0b3IgLWF2ZCA8bmFtZT5gLCB3aG9zZSBjb25zb2xlIGxhbmRzIG9uIGEgbG9jYWwgcG9ydC5cbiAqXG4gKiBPbmx5IHN1Y2ggYSBkZXZpY2UgY2FuIGNvbGxpZGUgd2l0aCB0aGlzIHJ1bidzIGxhdW5jaCwgc28gb25seSBzdWNoIGEgZGV2aWNlJ3NcbiAqIHNpbGVuY2UgaXMgd29ydGggcmVmdXNpbmcgb3Zlci4gQSBwaHlzaWNhbCBoYW5kc2V0IChhbiBhcmJpdHJhcnkgc2VyaWFsKSBvciBhXG4gKiBUQ1AtYXR0YWNoZWQgZGV2aWNlIGFuc3dlcnMgYGFkYiBcdTIwMjYgZW11IGF2ZCBuYW1lYCB3aXRoIGFuIGVycm9yIGhvd2V2ZXIgaGVhbHRoeVxuICogaXQgaXM7IHJlYWRpbmcgdGhhdCBhcyBcImRpZCBub3QgYW5zd2VyXCIgd291bGQgYmxvY2sgZXZlcnkgcnVuIG9uIGEgaG9zdCB3aXRoIGFcbiAqIHBob25lIHBsdWdnZWQgaW4sIHdoaWNoIGlzIGEgd29yc2UgZGVmZWN0IHRoYW4gdGhlIG9uZSB0aGlzIG1vZHVsZSBmaXhlcy5cbiAqL1xuY29uc3QgRU1VTEFUT1JfREVWSUNFX0lEX1BBVFRFUk4gPSAvXmVtdWxhdG9yLVxcZCskLztcblxuLyoqXG4gKiBCdWlsZHMgdGhlIHN1bW1hcnkgbGluZSBuYW1pbmcgd2hhdCBlYWNoIGRldmljZSBhbnN3ZXJlZC5cbiAqXG4gKiBUaGUgb2xkIGxvZyBwcmludGVkIG9ubHkgdGhlIGNvbmNsdXNpb24gKGBub3QgZm91bmQgb24gYW55IGV4aXN0aW5nIGRldmljZWApLFxuICogd2hpY2ggaXMgZXhhY3RseSB0aGUgbGluZSB0aGF0IHdhcyB3cm9uZzsgcHJpbnRpbmcgdGhlIGV2aWRlbmNlIG5leHQgdG8gaXQgaXNcbiAqIHdoYXQgbWFrZXMgYSBiYWQgY29uY2x1c2lvbiB2aXNpYmxlIHdpdGhvdXQgYSBzZWNvbmQgcnVuLlxuICpcbiAqIEBwYXJhbSByZXN1bHRzIC0gRXZlcnkgZGV2aWNlJ3MgcHJvYmUgb3V0Y29tZS5cbiAqIEByZXR1cm5zIFRoZSBzdW1tYXJ5LCBvciBgbm8gZGV2aWNlc2Agd2hlbiBub3RoaW5nIHdhcyBjb25uZWN0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEF2ZFByb2JlU3VtbWFyeShyZXN1bHRzOiByZWFkb25seSBBdmRQcm9iZVJlc3VsdFtdKTogc3RyaW5nIHtcbiAgaWYgKHJlc3VsdHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICdubyBkZXZpY2VzJztcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzLm1hcCgocmVzdWx0KSA9PiBgJHtyZXN1bHQuZGV2aWNlSWR9PSR7cmVzdWx0Lm91dGNvbWV9YCkuam9pbignLCAnKTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIHJlZnVzYWwgbWVzc2FnZSBmb3IgZGV2aWNlcyB0aGF0IGNvdWxkIG5vdCBiZSByZWFkLlxuICpcbiAqIE5hbWVzIHRoZSBkZXZpY2UsIHRoZSBBVkQsIHRoZSBidWRnZXQsIHRoZSBjb25zZXF1ZW5jZSBhbmQgdGhlIHJlY292ZXJ5IFx1MjAxNCB0aGVcbiAqIHNoYXBlIGB0ZWFyZG93bi12ZXJkaWN0LnRzYCB1c2VzIGZvciBpdHMgb3duIHdhcm5pbmcsIGJlY2F1c2UgYSBtZXNzYWdlIHRoYXRcbiAqIHN0b3BzIGEgcnVuIGhhcyB0byBsZWF2ZSB0aGUgcmVhZGVyIGFibGUgdG8gdW5ibG9jayBpdC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIEFWRCwgdGhlIHByb2JlIGJ1ZGdldCwgYW5kIHRoZSBkZXZpY2VzIHRoYXQgZGlkIG5vdCBhbnN3ZXIuXG4gKiBAcmV0dXJucyBUaGUgcmVmdXNhbCBtZXNzYWdlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRVbnJlYWRhYmxlRGV2aWNlc01lc3NhZ2UocGFyYW1zOiBCdWlsZFVucmVhZGFibGVEZXZpY2VzTWVzc2FnZVBhcmFtcyk6IHN0cmluZyB7XG4gIC8qXG4gICAqIFdoZW4gdGhlcmUgaXMgZXhhY3RseSBvbmUgZGV2aWNlIHRoZSBqb2luZWQgbGlzdCBJUyBpdHMgSUQsIHNvIHRoZSBzaW5ndWxhclxuICAgKiB3b3JkaW5nIG5lZWRzIG5vIGluZGV4IGFjY2VzcyBcdTIwMTQgYW5kIG5vIHVucmVhY2hhYmxlIGZhbGxiYWNrIGZvciBvbmUuXG4gICAqL1xuICBjb25zdCBkZXZpY2VMaXN0ID0gcGFyYW1zLnVucmVhZGFibGVEZXZpY2VJZHMuam9pbignLCAnKTtcbiAgY29uc3QgaXNTaW5nbGUgPSBwYXJhbXMudW5yZWFkYWJsZURldmljZUlkcy5sZW5ndGggPT09IDE7XG5cbiAgY29uc3Qgc3ViamVjdCA9IGlzU2luZ2xlID8gYGRldmljZSAke2RldmljZUxpc3R9YCA6IGBkZXZpY2VzICR7ZGV2aWNlTGlzdH1gO1xuICBjb25zdCBjb21tYW5kID0gaXNTaW5nbGUgPyBgYWRiIC1zICR7ZGV2aWNlTGlzdH0gZW11IGF2ZCBuYW1lYCA6ICdhZGIgLXMgPGRldmljZT4gZW11IGF2ZCBuYW1lJztcbiAgY29uc3QgaG9sZGVyID0gaXNTaW5nbGUgPyAnaXQgaXMnIDogJ29uZSBvZiB0aGVtIGlzJztcbiAgY29uc3QgcmVtZWR5ID0gaXNTaW5nbGUgPyAnS2lsbCB0aGUgdW5yZXNwb25zaXZlIGRldmljZScgOiAnS2lsbCB0aGUgdW5yZXNwb25zaXZlIGRldmljZXMnO1xuXG4gIHJldHVybiBgQVZEIFwiJHtwYXJhbXMuYXZkTmFtZX1cIjogJHtzdWJqZWN0fSBkaWQgbm90IGFuc3dlciBcXGAke2NvbW1hbmR9XFxgIHdpdGhpbiAke1N0cmluZyhwYXJhbXMucHJvYmVUaW1lb3V0SW5NaWxsaXNlY29uZHMpfW1zIChyZXRyaWVkIG9uY2UpLCBgXG4gICAgKyBgc28gdGhpcyBydW4gY2Fubm90IHRlbGwgd2hldGhlciAke2hvbGRlcn0gYWxyZWFkeSBzZXJ2aW5nIHRoYXQgQVZELiBTdGFydGluZyBhbiBlbXVsYXRvciBhbnl3YXkgd291bGQgY29sbGlkZSBgXG4gICAgKyAnKGBGQVRBTCB8IFJ1bm5pbmcgbXVsdGlwbGUgZW11bGF0b3JzIHdpdGggdGhlIHNhbWUgQVZEIGlzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlYCksIHdoaWNoIHRoZSBlbXVsYXRvciByZXBvcnRzIG9ubHkgdG8gaXRzIG93biBzdGRvdXQuICdcbiAgICArIGAke3JlbWVkeX0sIG9yIHJ1biBcXGBhZGIga2lsbC1zZXJ2ZXJcXGAsIHRoZW4gcmV0cnkuYDtcbn1cblxuLyoqXG4gKiBEZWNpZGVzIHdoZXRoZXIgYSBkZXZpY2UgY2FuIGhvbGQgYW4gQVZEIHRoaXMgcnVuIGNvdWxkIGNvbGxpZGUgd2l0aC5cbiAqXG4gKiBAcGFyYW0gZGV2aWNlSWQgLSBUaGUgZGV2aWNlIFVESUQgdG8ganVkZ2UuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgZm9yIGEgbG9jYWxseSBzdGFydGVkIGVtdWxhdG9yLCB3aG9zZSBjb25zb2xlIHRoaXMgcnVuIGNhbiBhc2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0lzRW11bGF0b3JEZXZpY2VJZChkZXZpY2VJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBFTVVMQVRPUl9ERVZJQ0VfSURfUEFUVEVSTi50ZXN0KGRldmljZUlkKTtcbn1cblxuLyoqXG4gKiBDbGFzc2lmaWVzIG9uZSBkZXZpY2UncyBwcm9iZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIEFWRCB3YW50ZWQsIHRoZSBkZXZpY2UgcHJvYmVkLCBhbmQgd2hhdCBpdCBhbnN3ZXJlZC5cbiAqIEByZXR1cm5zIFRoZSBvdXRjb21lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xhc3NpZnlBdmRQcm9iZShwYXJhbXM6IENsYXNzaWZ5QXZkUHJvYmVQYXJhbXMpOiBBdmRQcm9iZU91dGNvbWUge1xuICBpZiAoIWNoZWNrSXNFbXVsYXRvckRldmljZUlkKHBhcmFtcy5kZXZpY2VJZCkpIHtcbiAgICByZXR1cm4gJ25vdC1hbi1lbXVsYXRvcic7XG4gIH1cblxuICBpZiAocGFyYW1zLnByb2JlZEF2ZE5hbWUgPT09IHVuZGVmaW5lZCB8fCBwYXJhbXMucHJvYmVkQXZkTmFtZS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJ25vLWFuc3dlcic7XG4gIH1cblxuICByZXR1cm4gcGFyYW1zLnByb2JlZEF2ZE5hbWUgPT09IHBhcmFtcy5hdmROYW1lID8gJ21hdGNoJyA6ICdvdGhlci1hdmQnO1xufVxuXG4vKipcbiAqIERlY2lkZXMgd2hhdCB0aGUgcnVuIG1heSBkbywgZnJvbSBldmVyeSBkZXZpY2UncyBwcm9iZSBvdXRjb21lLlxuICpcbiAqICoqQSBtYXRjaCB3aW5zIG92ZXIgYW4gdW5yZWFkYWJsZSBzaWJsaW5nLioqIE9uY2UgdGhlIHJlcXVlc3RlZCBBVkQgaXMgZm91bmRcbiAqIGFuZCByZXVzYWJsZSwgYW4gdW5yZWxhdGVkIHdlZGdlZCBkZXZpY2UgaXMgc29tZWJvZHkgZWxzZSdzIHByb2JsZW0gYW5kIG11c3RcbiAqIG5vdCBibG9jayBhIHJ1biB0aGF0IGhhcyBldmVyeXRoaW5nIGl0IG5lZWRzIFx1MjAxNCB0aGUgc2FtZSByZXN0cmFpbnRcbiAqIGBlbXVsYXRvci1iYWNrZW5kLnRzYCBzaG93cyBpbiBuZXZlciBzd2VlcGluZyBhIGBxZW11KmAgaXQgZG9lcyBub3Qgb3duLiBPbmx5XG4gKiB3aGVuIG5vdGhpbmcgbWF0Y2hlZCBkb2VzIHNpbGVuY2UgYmVjb21lIGRlY2lzaXZlLCBiZWNhdXNlIG9ubHkgdGhlbiB3b3VsZCB0aGVcbiAqIHJ1biBnbyBvbiB0byBsYXVuY2guXG4gKlxuICogQHBhcmFtIHJlc3VsdHMgLSBFdmVyeSBkZXZpY2UncyBwcm9iZSBvdXRjb21lLlxuICogQHJldHVybnMgVGhlIHZlcmRpY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQXZkUHJvYmVWZXJkaWN0KHJlc3VsdHM6IHJlYWRvbmx5IEF2ZFByb2JlUmVzdWx0W10pOiBBdmRQcm9iZVZlcmRpY3Qge1xuICBjb25zdCB1bnJlYWRhYmxlRGV2aWNlSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgcmVzdWx0IG9mIHJlc3VsdHMpIHtcbiAgICBzd2l0Y2ggKHJlc3VsdC5vdXRjb21lKSB7XG4gICAgICBjYXNlICdtYXRjaCc6IHtcbiAgICAgICAgcmV0dXJuIHsgZGV2aWNlSWQ6IHJlc3VsdC5kZXZpY2VJZCwgdmVyZGljdDogJ3JldXNlJyB9O1xuICAgICAgfVxuICAgICAgY2FzZSAnbm8tYW5zd2VyJzoge1xuICAgICAgICB1bnJlYWRhYmxlRGV2aWNlSWRzLnB1c2gocmVzdWx0LmRldmljZUlkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdub3QtYW4tZW11bGF0b3InOlxuICAgICAgY2FzZSAnb3RoZXItYXZkJzoge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIGFzc2VydE5ldmVyKHJlc3VsdC5vdXRjb21lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAodW5yZWFkYWJsZURldmljZUlkcy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHsgdW5yZWFkYWJsZURldmljZUlkcywgdmVyZGljdDogJ3JlZnVzZScgfTtcbiAgfVxuXG4gIHJldHVybiB7IHZlcmRpY3Q6ICdzdGFydC1uZXcnIH07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQ0EseUJBQTRCO0FBd0g1QixNQUFNLDZCQUE2QjtBQVk1QixTQUFTLHFCQUFxQixTQUE0QztBQUMvRSxNQUFJLFFBQVEsV0FBVyxHQUFHO0FBQ3hCLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxRQUFRLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxRQUFRLElBQUksT0FBTyxPQUFPLEVBQUUsRUFBRSxLQUFLLElBQUk7QUFDbEY7QUFZTyxTQUFTLDhCQUE4QixRQUFxRDtBQUtqRyxRQUFNLGFBQWEsT0FBTyxvQkFBb0IsS0FBSyxJQUFJO0FBQ3ZELFFBQU0sV0FBVyxPQUFPLG9CQUFvQixXQUFXO0FBRXZELFFBQU0sVUFBVSxXQUFXLFVBQVUsVUFBVSxLQUFLLFdBQVcsVUFBVTtBQUN6RSxRQUFNLFVBQVUsV0FBVyxVQUFVLFVBQVUsa0JBQWtCO0FBQ2pFLFFBQU0sU0FBUyxXQUFXLFVBQVU7QUFDcEMsUUFBTSxTQUFTLFdBQVcsaUNBQWlDO0FBRTNELFNBQU8sUUFBUSxPQUFPLE9BQU8sTUFBTSxPQUFPLHFCQUFxQixPQUFPLGFBQWEsT0FBTyxPQUFPLDBCQUEwQixDQUFDLHNEQUNyRixNQUFNLGtOQUV0QyxNQUFNO0FBQ2Y7QUFRTyxTQUFTLHdCQUF3QixVQUEyQjtBQUNqRSxTQUFPLDJCQUEyQixLQUFLLFFBQVE7QUFDakQ7QUFRTyxTQUFTLGlCQUFpQixRQUFpRDtBQUNoRixNQUFJLENBQUMsd0JBQXdCLE9BQU8sUUFBUSxHQUFHO0FBQzdDLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxPQUFPLGtCQUFrQixVQUFhLE9BQU8sY0FBYyxXQUFXLEdBQUc7QUFDM0UsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLE9BQU8sa0JBQWtCLE9BQU8sVUFBVSxVQUFVO0FBQzdEO0FBZU8sU0FBUyx1QkFBdUIsU0FBcUQ7QUFDMUYsUUFBTSxzQkFBZ0MsQ0FBQztBQUV2QyxhQUFXLFVBQVUsU0FBUztBQUM1QixZQUFRLE9BQU8sU0FBUztBQUFBLE1BQ3RCLEtBQUssU0FBUztBQUNaLGVBQU8sRUFBRSxVQUFVLE9BQU8sVUFBVSxTQUFTLFFBQVE7QUFBQSxNQUN2RDtBQUFBLE1BQ0EsS0FBSyxhQUFhO0FBQ2hCLDRCQUFvQixLQUFLLE9BQU8sUUFBUTtBQUN4QztBQUFBLE1BQ0Y7QUFBQSxNQUNBLEtBQUs7QUFBQSxNQUNMLEtBQUssYUFBYTtBQUNoQjtBQUFBLE1BQ0Y7QUFBQSxNQUNBLFNBQVM7QUFDUCxtQkFBTyxnQ0FBWSxPQUFPLE9BQU87QUFBQSxNQUNuQztBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBRUEsTUFBSSxvQkFBb0IsU0FBUyxHQUFHO0FBQ2xDLFdBQU8sRUFBRSxxQkFBcUIsU0FBUyxTQUFTO0FBQUEsRUFDbEQ7QUFFQSxTQUFPLEVBQUUsU0FBUyxZQUFZO0FBQ2hDOyIsCiAgIm5hbWVzIjogW10KfQo=
84
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2F2ZC1wcm9iZS12ZXJkaWN0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSBjbGFzc2lmaWNhdGlvbiBvZiB0aGUgQVZEIGFkb3B0aW9uIHByb2JlIFx1MjAxNCBkZWNpZGluZywgZnJvbSB3aGF0IGVhY2hcbiAqIGNvbm5lY3RlZCBkZXZpY2UgYW5zd2VyZWQsIHdoZXRoZXIgdGhpcyBydW4gbWF5IHJldXNlIG9uZSwgbXVzdCBzdGFydCBpdHNcbiAqIG93biBlbXVsYXRvciwgb3IgY2Fubm90IHNhZmVseSBkbyBlaXRoZXIuXG4gKlxuICogVGhlIHByb2JlIChgYWRiIC1zIDxkZXZpY2U+IGVtdSBhdmQgbmFtZWApIHVzZWQgdG8gZGlzY2FyZCBpdHMgZXJyb3IgYW5kXG4gKiByZXNvbHZlIGAnJ2AsIHNvIGEgY2FsbCB0aGF0ICoqbmV2ZXIgYW5zd2VyZWQqKiB3YXMgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBvbmVcbiAqIHRoYXQgYW5zd2VyZWQgKlwiYSBkaWZmZXJlbnQgQVZEXCIqLiBCb3RoIGZlbGwgdGhyb3VnaCB0byBcInN0YXJ0IGEgbmV3XG4gKiBlbXVsYXRvclwiLCB3aGljaCBjb2xsaWRlcyB3aXRoIHRoZSBlbXVsYXRvciBhbHJlYWR5IHNlcnZpbmcgdGhhdCBBVkQ6XG4gKlxuICogYGBgdGV4dFxuICogMTQ6Mjc6NTIuMTE0ICBDaGVja2luZyBleGlzdGluZyBkZXZpY2VzIGZvciBBVkQgXCJvYnNpZGlhbl90ZXN0XCIuLi4gKGNvbm5lY3RlZDogW2VtdWxhdG9yLTU1NTRdKVxuICogMTQ6Mjc6NTcuMTcwICBBVkQgXCJvYnNpZGlhbl90ZXN0XCIgbm90IGZvdW5kIG9uIGFueSBleGlzdGluZyBkZXZpY2UsIHN0YXJ0aW5nIGEgbmV3IGVtdWxhdG9yLi4uXG4gKiBgYGBcbiAqXG4gKiA1LjA1NnMgYXBhcnQgXHUyMDE0IGV4YWN0bHkgdGhlIHByb2JlJ3Mgb3duIHRpbWVvdXQuIFRoZSBsYXVuY2ggdGhhdCBmb2xsb3dlZCBoaXRcbiAqIGBGQVRBTCB8IFJ1bm5pbmcgbXVsdGlwbGUgZW11bGF0b3JzIHdpdGggdGhlIHNhbWUgQVZEIGlzIGFuIGV4cGVyaW1lbnRhbFxuICogZmVhdHVyZWAsIHdoaWNoIHRoZSBlbXVsYXRvciB3cml0ZXMgdG8gaXRzIG93biBzdGRvdXQuICoqQSBwcm9iZSB0aGF0IG5ldmVyXG4gKiBhbnN3ZXJlZCBpcyBub3QgZXZpZGVuY2UgdGhhdCB0aGUgYW5zd2VyIGlzIG5vKiogXHUyMDE0IHRoZSBzYW1lIGRpc3RpbmN0aW9uXG4gKiBgYWRiLWRldmljZS1saXN0LnRzYCBkcmF3cyBiZXR3ZWVuIGBvZmZsaW5lYCBhbmQgYWJzZW50LCBhbmQgdGhlIHNhbWUgb25lXG4gKiB0aGUgY29ubmVjdGl2aXR5IHByb2JlIGRyYXdzIGJldHdlZW4gYSBmYWlsZWQgZHVtcCBhbmQgYSBtaXNzaW5nIG5ldHdvcmsuXG4gKlxuICogV29yc2UsIHRoZSBwcm9iZSBpcyBhc2tlZCBpdHMgcXVlc3Rpb24gcHJlY2lzZWx5IHdoZW4gdGhlIGd1ZXN0IGlzIGxlYXN0IGFibGVcbiAqIHRvIGFuc3dlciBpdCBcdTIwMTQgYSB3ZWRnZWQgZW11bGF0b3IgdGltZXMgb3V0IGV2ZXJ5IGBhZGJgIGNhbGwgXHUyMDE0IHdoaWNoIGlzIHRoZVxuICogY29uZGl0aW9uIHVuZGVyIHdoaWNoIGEgY29sbGlkaW5nIGxhdW5jaCBkb2VzIHRoZSBtb3N0IGRhbWFnZS5cbiAqXG4gKiBLZXB0IHNlcGFyYXRlIGZyb20gdGhlIGludGVncmF0aW9uLW9ubHkgYHRyYW5zcG9ydC1mYWN0b3J5YCAoZXhjbHVkZWQgZnJvbVxuICogdW5pdCB0ZXN0cykgc28gdGhlIGNsYXNzaWZpY2F0aW9uIHN0YXlzIHVuaXQtdGVzdGFibGUgXHUyMDE0IHRoZSBmYWN0b3J5IGl0c2VsZlxuICogc2hlbGxzIG91dCB0byBgYWRiYC5cbiAqL1xuXG5pbXBvcnQgeyBhc3NlcnROZXZlciB9IGZyb20gJy4vdHlwZS1ndWFyZHMuY2pzJztcblxuLyoqXG4gKiBXaGF0IG9uZSBkZXZpY2UgYW5zd2VyZWQgd2hlbiBhc2tlZCB3aGljaCBBVkQgaXQgaXMgc2VydmluZy5cbiAqXG4gKiBgbm90LWFuLWVtdWxhdG9yYCBhbmQgYG90aGVyLWF2ZGAgYXJlIGJvdGggbGVnaXRpbWF0ZSBza2lwczsgb25seVxuICogYG5vLWFuc3dlcmAgaXMgdGhlIHNpbGVuY2UgdGhhdCBtdXN0IG5ldmVyIGJlIHJlYWQgYXMgb25lLlxuICovXG5leHBvcnQgdHlwZSBBdmRQcm9iZU91dGNvbWUgPSAnbWF0Y2gnIHwgJ25vLWFuc3dlcicgfCAnbm90LWFuLWVtdWxhdG9yJyB8ICdvdGhlci1hdmQnO1xuXG4vKipcbiAqIFRoZSBydW4gY2Fubm90IHRlbGwgd2hldGhlciB0aGUgQVZEIGlzIGFscmVhZHkgcnVubmluZywgc28gaXQgbXVzdCBub3QgbGF1bmNoLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2ZFByb2JlUmVmdXNlVmVyZGljdCB7XG4gIC8qKlxuICBUaGUgZGV2aWNlcyB0aGF0IGNvdWxkIG5vdCBiZSByZWFkLCBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBydWxlZCBvdXQgYXMgdGhlIEFWRCdzIGhvbGRlci5cbiAgICovXG4gIHJlYWRvbmx5IHVucmVhZGFibGVEZXZpY2VJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICBEaXNjcmltaW5hbnQuXG4gICAqL1xuICByZWFkb25seSB2ZXJkaWN0OiAncmVmdXNlJztcbn1cblxuLyoqXG4gKiBPbmUgZGV2aWNlJ3MgcHJvYmUgb3V0Y29tZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdmRQcm9iZVJlc3VsdCB7XG4gIC8qKlxuICBUaGUgZGV2aWNlIFVESUQsIGUuZy4gYGVtdWxhdG9yLTU1NTRgLlxuICAgKi9cbiAgcmVhZG9ubHkgZGV2aWNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgV2hhdCB0aGUgZGV2aWNlIGFuc3dlcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0Y29tZTogQXZkUHJvYmVPdXRjb21lO1xufVxuXG4vKipcbiAqIFRoZSBBVkQgaXMgYWxyZWFkeSBydW5uaW5nLCBvbiBhIGRldmljZSB0aGlzIHJ1biBtYXkgYWRvcHQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXZkUHJvYmVSZXVzZVZlcmRpY3Qge1xuICAvKipcbiAgVGhlIGRldmljZSBhbHJlYWR5IHNlcnZpbmcgdGhlIHJlcXVlc3RlZCBBVkQuXG4gICAqL1xuICByZWFkb25seSBkZXZpY2VJZDogc3RyaW5nO1xuXG4gIC8qKlxuICBEaXNjcmltaW5hbnQuXG4gICAqL1xuICByZWFkb25seSB2ZXJkaWN0OiAncmV1c2UnO1xufVxuXG4vKipcbiAqIEV2ZXJ5IGRldmljZSBhbnN3ZXJlZCwgbm9uZSBpcyBzZXJ2aW5nIHRoZSBBVkQsIHNvIGxhdW5jaGluZyBjYW5ub3QgY29sbGlkZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdmRQcm9iZVN0YXJ0TmV3VmVyZGljdCB7XG4gIC8qKlxuICBEaXNjcmltaW5hbnQuXG4gICAqL1xuICByZWFkb25seSB2ZXJkaWN0OiAnc3RhcnQtbmV3Jztcbn1cblxuLyoqXG4gKiBXaGF0IHRoZSBydW4gbWF5IGRvLCBnaXZlbiBldmVyeSBkZXZpY2UncyBwcm9iZSBvdXRjb21lLlxuICovXG5leHBvcnQgdHlwZSBBdmRQcm9iZVZlcmRpY3QgPSBBdmRQcm9iZVJlZnVzZVZlcmRpY3QgfCBBdmRQcm9iZVJldXNlVmVyZGljdCB8IEF2ZFByb2JlU3RhcnROZXdWZXJkaWN0O1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBidWlsZFVucmVhZGFibGVEZXZpY2VzTWVzc2FnZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRVbnJlYWRhYmxlRGV2aWNlc01lc3NhZ2VQYXJhbXMge1xuICAvKipcbiAgVGhlIEFWRCB0aGUgcnVuIHdhbnRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGF2ZE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgVGhlIGJ1ZGdldCBlYWNoIHByb2JlIGF0dGVtcHQgd2FzIGdpdmVuLCBpbiBtaWxsaXNlY29uZHMuXG4gICAqL1xuICByZWFkb25seSBwcm9iZVRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgZGV2aWNlcyB0aGF0IGRpZCBub3QgYW5zd2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgdW5yZWFkYWJsZURldmljZUlkczogcmVhZG9ubHkgc3RyaW5nW107XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNsYXNzaWZ5QXZkUHJvYmV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsYXNzaWZ5QXZkUHJvYmVQYXJhbXMge1xuICAvKipcbiAgVGhlIEFWRCB0aGUgcnVuIHdhbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgYXZkTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgZGV2aWNlIHRoYXQgd2FzIHByb2JlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRldmljZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBBVkQgbmFtZSB0aGUgZGV2aWNlIGFuc3dlcmVkLCBvciBgdW5kZWZpbmVkYCB3aGVuIGl0IGRpZCBub3QgYW5zd2VyIGF0IGFsbC5cbiAgICovXG4gIHJlYWRvbmx5IHByb2JlZEF2ZE5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTWF0Y2hlcyB0aGUgZGV2aWNlIElEcyBhZGIgZ2l2ZXMgZW11bGF0b3JzIHN0YXJ0ZWQgdGhlIHdheSB0aGlzIGhhcm5lc3NcbiAqIHN0YXJ0cyB0aGVtOiBgZW11bGF0b3IgLWF2ZCA8bmFtZT5gLCB3aG9zZSBjb25zb2xlIGxhbmRzIG9uIGEgbG9jYWwgcG9ydC5cbiAqXG4gKiBPbmx5IHN1Y2ggYSBkZXZpY2UgY2FuIGNvbGxpZGUgd2l0aCB0aGlzIHJ1bidzIGxhdW5jaCwgc28gb25seSBzdWNoIGEgZGV2aWNlJ3NcbiAqIHNpbGVuY2UgaXMgd29ydGggcmVmdXNpbmcgb3Zlci4gQSBwaHlzaWNhbCBoYW5kc2V0IChhbiBhcmJpdHJhcnkgc2VyaWFsKSBvciBhXG4gKiBUQ1AtYXR0YWNoZWQgZGV2aWNlIGFuc3dlcnMgYGFkYiBcdTIwMjYgZW11IGF2ZCBuYW1lYCB3aXRoIGFuIGVycm9yIGhvd2V2ZXIgaGVhbHRoeVxuICogaXQgaXM7IHJlYWRpbmcgdGhhdCBhcyBcImRpZCBub3QgYW5zd2VyXCIgd291bGQgYmxvY2sgZXZlcnkgcnVuIG9uIGEgaG9zdCB3aXRoIGFcbiAqIHBob25lIHBsdWdnZWQgaW4sIHdoaWNoIGlzIGEgd29yc2UgZGVmZWN0IHRoYW4gdGhlIG9uZSB0aGlzIG1vZHVsZSBmaXhlcy5cbiAqL1xuY29uc3QgRU1VTEFUT1JfREVWSUNFX0lEX1BBVFRFUk4gPSAvXmVtdWxhdG9yLVxcZCskLztcblxuLyoqXG4gKiBCdWlsZHMgdGhlIHN1bW1hcnkgbGluZSBuYW1pbmcgd2hhdCBlYWNoIGRldmljZSBhbnN3ZXJlZC5cbiAqXG4gKiBUaGUgb2xkIGxvZyBwcmludGVkIG9ubHkgdGhlIGNvbmNsdXNpb24gKGBub3QgZm91bmQgb24gYW55IGV4aXN0aW5nIGRldmljZWApLFxuICogd2hpY2ggaXMgZXhhY3RseSB0aGUgbGluZSB0aGF0IHdhcyB3cm9uZzsgcHJpbnRpbmcgdGhlIGV2aWRlbmNlIG5leHQgdG8gaXQgaXNcbiAqIHdoYXQgbWFrZXMgYSBiYWQgY29uY2x1c2lvbiB2aXNpYmxlIHdpdGhvdXQgYSBzZWNvbmQgcnVuLlxuICpcbiAqIEBwYXJhbSByZXN1bHRzIC0gRXZlcnkgZGV2aWNlJ3MgcHJvYmUgb3V0Y29tZS5cbiAqIEByZXR1cm5zIFRoZSBzdW1tYXJ5LCBvciBgbm8gZGV2aWNlc2Agd2hlbiBub3RoaW5nIHdhcyBjb25uZWN0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEF2ZFByb2JlU3VtbWFyeShyZXN1bHRzOiByZWFkb25seSBBdmRQcm9iZVJlc3VsdFtdKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJlc3VsdHMubGVuZ3RoID09PSAwID8gJ25vIGRldmljZXMnIDogcmVzdWx0cy5tYXAoKHJlc3VsdCkgPT4gYCR7cmVzdWx0LmRldmljZUlkfT0ke3Jlc3VsdC5vdXRjb21lfWApLmpvaW4oJywgJyk7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSByZWZ1c2FsIG1lc3NhZ2UgZm9yIGRldmljZXMgdGhhdCBjb3VsZCBub3QgYmUgcmVhZC5cbiAqXG4gKiBOYW1lcyB0aGUgZGV2aWNlLCB0aGUgQVZELCB0aGUgYnVkZ2V0LCB0aGUgY29uc2VxdWVuY2UgYW5kIHRoZSByZWNvdmVyeSBcdTIwMTQgdGhlXG4gKiBzaGFwZSBgdGVhcmRvd24tdmVyZGljdC50c2AgdXNlcyBmb3IgaXRzIG93biB3YXJuaW5nLCBiZWNhdXNlIGEgbWVzc2FnZSB0aGF0XG4gKiBzdG9wcyBhIHJ1biBoYXMgdG8gbGVhdmUgdGhlIHJlYWRlciBhYmxlIHRvIHVuYmxvY2sgaXQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBBVkQsIHRoZSBwcm9iZSBidWRnZXQsIGFuZCB0aGUgZGV2aWNlcyB0aGF0IGRpZCBub3QgYW5zd2VyLlxuICogQHJldHVybnMgVGhlIHJlZnVzYWwgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVW5yZWFkYWJsZURldmljZXNNZXNzYWdlKHBhcmFtczogQnVpbGRVbnJlYWRhYmxlRGV2aWNlc01lc3NhZ2VQYXJhbXMpOiBzdHJpbmcge1xuICAvKlxuICAgKiBXaGVuIHRoZXJlIGlzIGV4YWN0bHkgb25lIGRldmljZSB0aGUgam9pbmVkIGxpc3QgSVMgaXRzIElELCBzbyB0aGUgc2luZ3VsYXJcbiAgICogd29yZGluZyBuZWVkcyBubyBpbmRleCBhY2Nlc3MgXHUyMDE0IGFuZCBubyB1bnJlYWNoYWJsZSBmYWxsYmFjayBmb3Igb25lLlxuICAgKi9cbiAgY29uc3QgZGV2aWNlTGlzdCA9IHBhcmFtcy51bnJlYWRhYmxlRGV2aWNlSWRzLmpvaW4oJywgJyk7XG4gIGNvbnN0IGlzU2luZ2xlID0gcGFyYW1zLnVucmVhZGFibGVEZXZpY2VJZHMubGVuZ3RoID09PSAxO1xuXG4gIGNvbnN0IHN1YmplY3QgPSBpc1NpbmdsZSA/IGBkZXZpY2UgJHtkZXZpY2VMaXN0fWAgOiBgZGV2aWNlcyAke2RldmljZUxpc3R9YDtcbiAgY29uc3QgY29tbWFuZCA9IGlzU2luZ2xlID8gYGFkYiAtcyAke2RldmljZUxpc3R9IGVtdSBhdmQgbmFtZWAgOiAnYWRiIC1zIDxkZXZpY2U+IGVtdSBhdmQgbmFtZSc7XG4gIGNvbnN0IGhvbGRlciA9IGlzU2luZ2xlID8gJ2l0IGlzJyA6ICdvbmUgb2YgdGhlbSBpcyc7XG4gIGNvbnN0IHJlbWVkeSA9IGlzU2luZ2xlID8gJ0tpbGwgdGhlIHVucmVzcG9uc2l2ZSBkZXZpY2UnIDogJ0tpbGwgdGhlIHVucmVzcG9uc2l2ZSBkZXZpY2VzJztcblxuICByZXR1cm4gYEFWRCBcIiR7cGFyYW1zLmF2ZE5hbWV9XCI6ICR7c3ViamVjdH0gZGlkIG5vdCBhbnN3ZXIgXFxgJHtjb21tYW5kfVxcYCB3aXRoaW4gJHtTdHJpbmcocGFyYW1zLnByb2JlVGltZW91dEluTWlsbGlzZWNvbmRzKX1tcyAocmV0cmllZCBvbmNlKSwgYFxuICAgICsgYHNvIHRoaXMgcnVuIGNhbm5vdCB0ZWxsIHdoZXRoZXIgJHtob2xkZXJ9IGFscmVhZHkgc2VydmluZyB0aGF0IEFWRC4gU3RhcnRpbmcgYW4gZW11bGF0b3IgYW55d2F5IHdvdWxkIGNvbGxpZGUgYFxuICAgICsgJyhgRkFUQUwgfCBSdW5uaW5nIG11bHRpcGxlIGVtdWxhdG9ycyB3aXRoIHRoZSBzYW1lIEFWRCBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZWApLCB3aGljaCB0aGUgZW11bGF0b3IgcmVwb3J0cyBvbmx5IHRvIGl0cyBvd24gc3Rkb3V0LiAnXG4gICAgKyBgJHtyZW1lZHl9LCBvciBydW4gXFxgYWRiIGtpbGwtc2VydmVyXFxgLCB0aGVuIHJldHJ5LmA7XG59XG5cbi8qKlxuICogRGVjaWRlcyB3aGV0aGVyIGEgZGV2aWNlIGNhbiBob2xkIGFuIEFWRCB0aGlzIHJ1biBjb3VsZCBjb2xsaWRlIHdpdGguXG4gKlxuICogQHBhcmFtIGRldmljZUlkIC0gVGhlIGRldmljZSBVRElEIHRvIGp1ZGdlLlxuICogQHJldHVybnMgYHRydWVgIGZvciBhIGxvY2FsbHkgc3RhcnRlZCBlbXVsYXRvciwgd2hvc2UgY29uc29sZSB0aGlzIHJ1biBjYW4gYXNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJc0VtdWxhdG9yRGV2aWNlSWQoZGV2aWNlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gRU1VTEFUT1JfREVWSUNFX0lEX1BBVFRFUk4udGVzdChkZXZpY2VJZCk7XG59XG5cbi8qKlxuICogQ2xhc3NpZmllcyBvbmUgZGV2aWNlJ3MgcHJvYmUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBBVkQgd2FudGVkLCB0aGUgZGV2aWNlIHByb2JlZCwgYW5kIHdoYXQgaXQgYW5zd2VyZWQuXG4gKiBAcmV0dXJucyBUaGUgb3V0Y29tZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsYXNzaWZ5QXZkUHJvYmUocGFyYW1zOiBDbGFzc2lmeUF2ZFByb2JlUGFyYW1zKTogQXZkUHJvYmVPdXRjb21lIHtcbiAgaWYgKCFjaGVja0lzRW11bGF0b3JEZXZpY2VJZChwYXJhbXMuZGV2aWNlSWQpKSB7XG4gICAgcmV0dXJuICdub3QtYW4tZW11bGF0b3InO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5wcm9iZWRBdmROYW1lID09PSB1bmRlZmluZWQgfHwgcGFyYW1zLnByb2JlZEF2ZE5hbWUubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICduby1hbnN3ZXInO1xuICB9XG5cbiAgcmV0dXJuIHBhcmFtcy5wcm9iZWRBdmROYW1lID09PSBwYXJhbXMuYXZkTmFtZSA/ICdtYXRjaCcgOiAnb3RoZXItYXZkJztcbn1cblxuLyoqXG4gKiBEZWNpZGVzIHdoYXQgdGhlIHJ1biBtYXkgZG8sIGZyb20gZXZlcnkgZGV2aWNlJ3MgcHJvYmUgb3V0Y29tZS5cbiAqXG4gKiAqKkEgbWF0Y2ggd2lucyBvdmVyIGFuIHVucmVhZGFibGUgc2libGluZy4qKiBPbmNlIHRoZSByZXF1ZXN0ZWQgQVZEIGlzIGZvdW5kXG4gKiBhbmQgcmV1c2FibGUsIGFuIHVucmVsYXRlZCB3ZWRnZWQgZGV2aWNlIGlzIHNvbWVib2R5IGVsc2UncyBwcm9ibGVtIGFuZCBtdXN0XG4gKiBub3QgYmxvY2sgYSBydW4gdGhhdCBoYXMgZXZlcnl0aGluZyBpdCBuZWVkcyBcdTIwMTQgdGhlIHNhbWUgcmVzdHJhaW50XG4gKiBgZW11bGF0b3ItYmFja2VuZC50c2Agc2hvd3MgaW4gbmV2ZXIgc3dlZXBpbmcgYSBgcWVtdSpgIGl0IGRvZXMgbm90IG93bi4gT25seVxuICogd2hlbiBub3RoaW5nIG1hdGNoZWQgZG9lcyBzaWxlbmNlIGJlY29tZSBkZWNpc2l2ZSwgYmVjYXVzZSBvbmx5IHRoZW4gd291bGQgdGhlXG4gKiBydW4gZ28gb24gdG8gbGF1bmNoLlxuICpcbiAqIEBwYXJhbSByZXN1bHRzIC0gRXZlcnkgZGV2aWNlJ3MgcHJvYmUgb3V0Y29tZS5cbiAqIEByZXR1cm5zIFRoZSB2ZXJkaWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUF2ZFByb2JlVmVyZGljdChyZXN1bHRzOiByZWFkb25seSBBdmRQcm9iZVJlc3VsdFtdKTogQXZkUHJvYmVWZXJkaWN0IHtcbiAgY29uc3QgdW5yZWFkYWJsZURldmljZUlkczogc3RyaW5nW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHJlc3VsdCBvZiByZXN1bHRzKSB7XG4gICAgc3dpdGNoIChyZXN1bHQub3V0Y29tZSkge1xuICAgICAgY2FzZSAnbWF0Y2gnOiB7XG4gICAgICAgIHJldHVybiB7IGRldmljZUlkOiByZXN1bHQuZGV2aWNlSWQsIHZlcmRpY3Q6ICdyZXVzZScgfTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ25vLWFuc3dlcic6IHtcbiAgICAgICAgdW5yZWFkYWJsZURldmljZUlkcy5wdXNoKHJlc3VsdC5kZXZpY2VJZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnbm90LWFuLWVtdWxhdG9yJzpcbiAgICAgIGNhc2UgJ290aGVyLWF2ZCc6IHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHJldHVybiBhc3NlcnROZXZlcihyZXN1bHQub3V0Y29tZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVucmVhZGFibGVEZXZpY2VJZHMubGVuZ3RoID4gMCA/IHsgdW5yZWFkYWJsZURldmljZUlkcywgdmVyZGljdDogJ3JlZnVzZScgfSA6IHsgdmVyZGljdDogJ3N0YXJ0LW5ldycgfTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWlDQSx5QkFBNEI7QUF3SDVCLE1BQU0sNkJBQTZCO0FBWTVCLFNBQVMscUJBQXFCLFNBQTRDO0FBQy9FLFNBQU8sUUFBUSxXQUFXLElBQUksZUFBZSxRQUFRLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxRQUFRLElBQUksT0FBTyxPQUFPLEVBQUUsRUFBRSxLQUFLLElBQUk7QUFDeEg7QUFZTyxTQUFTLDhCQUE4QixRQUFxRDtBQUtqRyxRQUFNLGFBQWEsT0FBTyxvQkFBb0IsS0FBSyxJQUFJO0FBQ3ZELFFBQU0sV0FBVyxPQUFPLG9CQUFvQixXQUFXO0FBRXZELFFBQU0sVUFBVSxXQUFXLFVBQVUsVUFBVSxLQUFLLFdBQVcsVUFBVTtBQUN6RSxRQUFNLFVBQVUsV0FBVyxVQUFVLFVBQVUsa0JBQWtCO0FBQ2pFLFFBQU0sU0FBUyxXQUFXLFVBQVU7QUFDcEMsUUFBTSxTQUFTLFdBQVcsaUNBQWlDO0FBRTNELFNBQU8sUUFBUSxPQUFPLE9BQU8sTUFBTSxPQUFPLHFCQUFxQixPQUFPLGFBQWEsT0FBTyxPQUFPLDBCQUEwQixDQUFDLHNEQUNyRixNQUFNLGtOQUV0QyxNQUFNO0FBQ2Y7QUFRTyxTQUFTLHdCQUF3QixVQUEyQjtBQUNqRSxTQUFPLDJCQUEyQixLQUFLLFFBQVE7QUFDakQ7QUFRTyxTQUFTLGlCQUFpQixRQUFpRDtBQUNoRixNQUFJLENBQUMsd0JBQXdCLE9BQU8sUUFBUSxHQUFHO0FBQzdDLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxPQUFPLGtCQUFrQixVQUFhLE9BQU8sY0FBYyxXQUFXLEdBQUc7QUFDM0UsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLE9BQU8sa0JBQWtCLE9BQU8sVUFBVSxVQUFVO0FBQzdEO0FBZU8sU0FBUyx1QkFBdUIsU0FBcUQ7QUFDMUYsUUFBTSxzQkFBZ0MsQ0FBQztBQUV2QyxhQUFXLFVBQVUsU0FBUztBQUM1QixZQUFRLE9BQU8sU0FBUztBQUFBLE1BQ3RCLEtBQUssU0FBUztBQUNaLGVBQU8sRUFBRSxVQUFVLE9BQU8sVUFBVSxTQUFTLFFBQVE7QUFBQSxNQUN2RDtBQUFBLE1BQ0EsS0FBSyxhQUFhO0FBQ2hCLDRCQUFvQixLQUFLLE9BQU8sUUFBUTtBQUN4QztBQUFBLE1BQ0Y7QUFBQSxNQUNBLEtBQUs7QUFBQSxNQUNMLEtBQUssYUFBYTtBQUNoQjtBQUFBLE1BQ0Y7QUFBQSxNQUNBLFNBQVM7QUFDUCxtQkFBTyxnQ0FBWSxPQUFPLE9BQU87QUFBQSxNQUNuQztBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBRUEsU0FBTyxvQkFBb0IsU0FBUyxJQUFJLEVBQUUscUJBQXFCLFNBQVMsU0FBUyxJQUFJLEVBQUUsU0FBUyxZQUFZO0FBQzlHOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -33,11 +33,13 @@ __export(capture_obsidian_screenshot_exports, {
33
33
  module.exports = __toCommonJS(capture_obsidian_screenshot_exports);
34
34
  var import_node_process = __toESM(require("node:process"), 1);
35
35
  var import_context_provider = require("./context-provider.cjs");
36
+ var import_hide_vault_name = require("./hide-vault-name.cjs");
36
37
  var import_normalize_optional_properties = require("./normalize-optional-properties.cjs");
37
38
  var import_transport_factory = require("./transport-factory.cjs");
38
39
  async function captureObsidianScreenshot(options) {
39
40
  const {
40
41
  heightInPixels,
42
+ shouldHideVaultName = true,
41
43
  transport: transportOverride,
42
44
  vaultPath,
43
45
  widthInPixels
@@ -47,6 +49,12 @@ async function captureObsidianScreenshot(options) {
47
49
  if (!transport.captureScreenshot) {
48
50
  throw new Error("captureObsidianScreenshot: the active transport cannot capture screenshots.");
49
51
  }
52
+ if (shouldHideVaultName) {
53
+ await (0, import_hide_vault_name.hideVaultName)({
54
+ transport,
55
+ vaultPath: cwd
56
+ });
57
+ }
50
58
  return transport.captureScreenshot((0, import_normalize_optional_properties.normalizeOptionalProperties)({
51
59
  cwd,
52
60
  heightInPixels,
@@ -57,4 +65,4 @@ async function captureObsidianScreenshot(options) {
57
65
  0 && (module.exports = {
58
66
  captureObsidianScreenshot
59
67
  });
60
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NhcHR1cmUtb2JzaWRpYW4tc2NyZWVuc2hvdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENhcHR1cmVzIGEgc2NyZWVuc2hvdCBvZiB0aGUgT2JzaWRpYW4gaW5zdGFuY2UgdGhlIGN1cnJlbnQgdGVzdCBjb250ZXh0IGlzXG4gKiBhbHJlYWR5IGRyaXZpbmcuXG4gKlxuICogVGhlIHRyYW5zcG9ydC1sZXZlbCBgY2FwdHVyZVNjcmVlbnNob3RgIG5lZWRzIGEgdHJhbnNwb3J0IGluIGhhbmQsIHdoaWNoIGFcbiAqIHRlc3QgcnVubmluZyB1bmRlciB0aGUgaGFybmVzcydzIGdsb2JhbCBzZXR1cCBuZXZlciBoYXMgXHUyMDE0IHRoZSBpbnN0YW5jZSBpc1xuICogb3duZWQgYnkgdGhhdCBzZXR1cCBhbmQgcmVhY2hlZCB0aHJvdWdoIHRoZSBjb250ZXh0IHByb3ZpZGVyLiBUaGlzIGlzIHRoZVxuICogY29udGV4dC1yZXNvbHZpbmcgZW50cnkgcG9pbnQsIHRoZSBzY3JlZW5zaG90IGNvdW50ZXJwYXJ0IG9mXG4gKiBgZXZhbEluT2JzaWRpYW5gIC8gYHBvbGxJbk9ic2lkaWFuYDogd2l0aCBubyBhcmd1bWVudHMgYXQgYWxsIGl0IGNhcHR1cmVzXG4gKiB3aGF0ZXZlciBpbnN0YW5jZSB0aGUgYWN0aXZlIHByb2plY3QgaXMgZHJpdmluZywgZGVza3RvcCBvciBtb2JpbGUuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgY29kZSAoZHJpdmVzIGEgbGl2ZSBPYnNpZGlhbikgY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB0eXBlIHsgQ2FwdHVyZVNjcmVlbnNob3RQYXJhbXMgfSBmcm9tICcuL2NhcHR1cmUtc2NyZWVuc2hvdC5janMnO1xuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LmNqcyc7XG5cbmltcG9ydCB7XG4gIGdldFRyYW5zcG9ydE9wdGlvbnMsXG4gIGdldFZhdWx0UGF0aFxufSBmcm9tICcuL2NvbnRleHQtcHJvdmlkZXIuY2pzJztcbmltcG9ydCB7IG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyB9IGZyb20gJy4vbm9ybWFsaXplLW9wdGlvbmFsLXByb3BlcnRpZXMuY2pzJztcbmltcG9ydCB7IGdldE9yQ3JlYXRlVHJhbnNwb3J0IH0gZnJvbSAnLi90cmFuc3BvcnQtZmFjdG9yeS5janMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBjYXB0dXJlT2JzaWRpYW5TY3JlZW5zaG90fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXB0dXJlT2JzaWRpYW5TY3JlZW5zaG90T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZXhhY3QgaGVpZ2h0IGluIHBpeGVscyB0aGUgY2FwdHVyZWQgaW1hZ2Ugc2hvdWxkIGhhdmUuXG4gICAqXG4gICAqIERlc2t0b3Agb25seSwgYW5kIG9ubHkgbWVhbmluZ2Z1bCB0b2dldGhlciB3aXRoIHtAbGluayB3aWR0aEluUGl4ZWxzfS5cbiAgICogSWdub3JlZCBvbiBtb2JpbGUsIHdoZXJlIHRoZSBpbWFnZSBpcyBhbHdheXMgdGhlIGRldmljZSdzIG5hdGl2ZVxuICAgKiBmcmFtZWJ1ZmZlciBcdTIwMTQgc2l6ZSB0aG9zZSBieSBjaG9vc2luZyBhbiBBVkQgd2l0aCB0aGUgd2FudGVkIHNjcmVlblxuICAgKiBnZW9tZXRyeS5cbiAgICovXG4gIHJlYWRvbmx5IGhlaWdodEluUGl4ZWxzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0aGUgdHJhbnNwb3J0LiBXaGVuIG9taXR0ZWQsIHRoZSB0cmFuc3BvcnQgdGhlIGN1cnJlbnQgdGVzdFxuICAgKiBjb250ZXh0IGlzIGRyaXZpbmcgaXMgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zcG9ydD86IE9ic2lkaWFuVHJhbnNwb3J0O1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQgcGF0aCB0byBjYXB0dXJlLiBXaGVuIG9taXR0ZWQsIHRoZSBjdXJyZW50IHRlc3QgY29udGV4dCdzIHZhdWx0XG4gICAqIGlzIHVzZWQuXG4gICAqL1xuICByZWFkb25seSB2YXVsdFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBleGFjdCB3aWR0aCBpbiBwaXhlbHMgdGhlIGNhcHR1cmVkIGltYWdlIHNob3VsZCBoYXZlLlxuICAgKlxuICAgKiBTZWUge0BsaW5rIGhlaWdodEluUGl4ZWxzfSBcdTIwMTQgdGhlIHR3byBhcmUgc2V0IHRvZ2V0aGVyIG9yIG5vdCBhdCBhbGwuXG4gICAqL1xuICByZWFkb25seSB3aWR0aEluUGl4ZWxzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENhcHR1cmVzIGEgUE5HIHNjcmVlbnNob3Qgb2YgdGhlIHJ1bm5pbmcgT2JzaWRpYW4gaW5zdGFuY2UsIHJlc29sdmluZyB0aGVcbiAqIHRyYW5zcG9ydCBhbmQgdmF1bHQgZnJvbSB0aGUgY3VycmVudCB0ZXN0IGNvbnRleHQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBzaXplLCB0cmFuc3BvcnQgYW5kIHZhdWx0IG92ZXJyaWRlcy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJhdyBQTkcgYnl0ZXMuXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBhY3RpdmUgdHJhbnNwb3J0IGNhbm5vdCBjYXB0dXJlIHNjcmVlbnNob3RzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2FwdHVyZU9ic2lkaWFuU2NyZWVuc2hvdChvcHRpb25zPzogQ2FwdHVyZU9ic2lkaWFuU2NyZWVuc2hvdE9wdGlvbnMpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgY29uc3Qge1xuICAgIGhlaWdodEluUGl4ZWxzLFxuICAgIHRyYW5zcG9ydDogdHJhbnNwb3J0T3ZlcnJpZGUsXG4gICAgdmF1bHRQYXRoLFxuICAgIHdpZHRoSW5QaXhlbHNcbiAgfSA9IG9wdGlvbnMgPz8ge307XG5cbiAgY29uc3QgY3dkID0gdmF1bHRQYXRoID8/IGdldFZhdWx0UGF0aCgpID8/IHByb2Nlc3MuY3dkKCk7XG4gIGNvbnN0IHRyYW5zcG9ydCA9IHRyYW5zcG9ydE92ZXJyaWRlID8/IGF3YWl0IGdldE9yQ3JlYXRlVHJhbnNwb3J0KGdldFRyYW5zcG9ydE9wdGlvbnMoKSk7XG5cbiAgaWYgKCF0cmFuc3BvcnQuY2FwdHVyZVNjcmVlbnNob3QpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhcHR1cmVPYnNpZGlhblNjcmVlbnNob3Q6IHRoZSBhY3RpdmUgdHJhbnNwb3J0IGNhbm5vdCBjYXB0dXJlIHNjcmVlbnNob3RzLicpO1xuICB9XG5cbiAgcmV0dXJuIHRyYW5zcG9ydC5jYXB0dXJlU2NyZWVuc2hvdChub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8Q2FwdHVyZVNjcmVlbnNob3RQYXJhbXM+KHtcbiAgICBjd2QsXG4gICAgaGVpZ2h0SW5QaXhlbHMsXG4gICAgd2lkdGhJblBpeGVsc1xuICB9KSk7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQSwwQkFBb0I7QUFLcEIsOEJBR087QUFDUCwyQ0FBNEM7QUFDNUMsK0JBQXFDO0FBNENyQyxlQUFzQiwwQkFBMEIsU0FBaUU7QUFDL0csUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBLFdBQVc7QUFBQSxJQUNYO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSSxXQUFXLENBQUM7QUFFaEIsUUFBTSxNQUFNLGlCQUFhLHNDQUFhLEtBQUssb0JBQUFBLFFBQVEsSUFBSTtBQUN2RCxRQUFNLFlBQVkscUJBQXFCLFVBQU0sbURBQXFCLDZDQUFvQixDQUFDO0FBRXZGLE1BQUksQ0FBQyxVQUFVLG1CQUFtQjtBQUNoQyxVQUFNLElBQUksTUFBTSw2RUFBNkU7QUFBQSxFQUMvRjtBQUVBLFNBQU8sVUFBVSxzQkFBa0Isa0VBQXFEO0FBQUEsSUFDdEY7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsQ0FBQyxDQUFDO0FBQ0o7IiwKICAibmFtZXMiOiBbInByb2Nlc3MiXQp9Cg==
68
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NhcHR1cmUtb2JzaWRpYW4tc2NyZWVuc2hvdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENhcHR1cmVzIGEgc2NyZWVuc2hvdCBvZiB0aGUgT2JzaWRpYW4gaW5zdGFuY2UgdGhlIGN1cnJlbnQgdGVzdCBjb250ZXh0IGlzXG4gKiBhbHJlYWR5IGRyaXZpbmcuXG4gKlxuICogVGhlIHRyYW5zcG9ydC1sZXZlbCBgY2FwdHVyZVNjcmVlbnNob3RgIG5lZWRzIGEgdHJhbnNwb3J0IGluIGhhbmQsIHdoaWNoIGFcbiAqIHRlc3QgcnVubmluZyB1bmRlciB0aGUgaGFybmVzcydzIGdsb2JhbCBzZXR1cCBuZXZlciBoYXMgXHUyMDE0IHRoZSBpbnN0YW5jZSBpc1xuICogb3duZWQgYnkgdGhhdCBzZXR1cCBhbmQgcmVhY2hlZCB0aHJvdWdoIHRoZSBjb250ZXh0IHByb3ZpZGVyLiBUaGlzIGlzIHRoZVxuICogY29udGV4dC1yZXNvbHZpbmcgZW50cnkgcG9pbnQsIHRoZSBzY3JlZW5zaG90IGNvdW50ZXJwYXJ0IG9mXG4gKiBgZXZhbEluT2JzaWRpYW5gIC8gYHBvbGxJbk9ic2lkaWFuYDogd2l0aCBubyBhcmd1bWVudHMgYXQgYWxsIGl0IGNhcHR1cmVzXG4gKiB3aGF0ZXZlciBpbnN0YW5jZSB0aGUgYWN0aXZlIHByb2plY3QgaXMgZHJpdmluZywgZGVza3RvcCBvciBtb2JpbGUuXG4gKlxuICogSXQgYWxzbyBtYWtlcyB0aGUgZnJhbWUgUkVQUk9EVUNJQkxFIGJlZm9yZSB0YWtpbmcgaXQsIGJ5IGhpZGluZyB0aGUgdmF1bHQnc1xuICogbmFtZSBcdTIwMTQgc2VlIGBoaWRlLXZhdWx0LW5hbWUudHNgIGZvciB3aHkgYSBgdGVtcC12YXVsdC08cmFuZG9tPmAgYmxlZWRzXG4gKiB0aHJvdWdoIHRoZSBjYXB0aW9uIGJhbmQgYW5kIHJld3JpdGVzIGEgY2hlY2tlZC1pbiBQTkcgb24gZXZlcnkgcnVuLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIGNvZGUgKGRyaXZlcyBhIGxpdmUgT2JzaWRpYW4pIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgdHlwZSB7IENhcHR1cmVTY3JlZW5zaG90UGFyYW1zIH0gZnJvbSAnLi9jYXB0dXJlLXNjcmVlbnNob3QuY2pzJztcbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC5janMnO1xuXG5pbXBvcnQge1xuICBnZXRUcmFuc3BvcnRPcHRpb25zLFxuICBnZXRWYXVsdFBhdGhcbn0gZnJvbSAnLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5pbXBvcnQgeyBoaWRlVmF1bHROYW1lIH0gZnJvbSAnLi9oaWRlLXZhdWx0LW5hbWUuY2pzJztcbmltcG9ydCB7IG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyB9IGZyb20gJy4vbm9ybWFsaXplLW9wdGlvbmFsLXByb3BlcnRpZXMuY2pzJztcbmltcG9ydCB7IGdldE9yQ3JlYXRlVHJhbnNwb3J0IH0gZnJvbSAnLi90cmFuc3BvcnQtZmFjdG9yeS5janMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBjYXB0dXJlT2JzaWRpYW5TY3JlZW5zaG90fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXB0dXJlT2JzaWRpYW5TY3JlZW5zaG90T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZXhhY3QgaGVpZ2h0IGluIHBpeGVscyB0aGUgY2FwdHVyZWQgaW1hZ2Ugc2hvdWxkIGhhdmUuXG4gICAqXG4gICAqIERlc2t0b3Agb25seSwgYW5kIG9ubHkgbWVhbmluZ2Z1bCB0b2dldGhlciB3aXRoIHtAbGluayB3aWR0aEluUGl4ZWxzfS5cbiAgICogSWdub3JlZCBvbiBtb2JpbGUsIHdoZXJlIHRoZSBpbWFnZSBpcyBhbHdheXMgdGhlIGRldmljZSdzIG5hdGl2ZVxuICAgKiBmcmFtZWJ1ZmZlciBcdTIwMTQgc2l6ZSB0aG9zZSBieSBjaG9vc2luZyBhbiBBVkQgd2l0aCB0aGUgd2FudGVkIHNjcmVlblxuICAgKiBnZW9tZXRyeS5cbiAgICovXG4gIHJlYWRvbmx5IGhlaWdodEluUGl4ZWxzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGhpZGUgdGhlIHZhdWx0J3MgbmFtZSBiZWZvcmUgY2FwdHVyaW5nLCBzbyB0aGUgZnJhbWUgZG9lcyBub3RcbiAgICogZGVwZW5kIG9uIHRoZSByYW5kb20gc3VmZml4IG9mIHRoZSBoYXJuZXNzJ3MgdGVtcG9yYXJ5IHZhdWx0LlxuICAgKlxuICAgKiBBIGRlZmF1bHQgcmF0aGVyIHRoYW4gYSBrbm9iOiByZXByb2R1Y2liaWxpdHkgaXMgd2hhdCBhIGNoZWNrZWQtaW5cbiAgICogc2NyZWVuc2hvdCBpcyBmb3IsIGFuZCB0aGUgcm93IGl0IGNvbGxhcHNlcyBzaXRzIHVuZGVyIHRoZSBjYXB0aW9uIGJhbmQsXG4gICAqIHNvIG5vdGhpbmcgYSByZWFkZXIgc2VlcyBtb3Zlcy4gVHVybiBpdCBvZmYgb25seSB0byBwaG90b2dyYXBoIHRoZSB2YXVsdFxuICAgKiBzd2l0Y2hlciBpdHNlbGYuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkSGlkZVZhdWx0TmFtZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSB0cmFuc3BvcnQuIFdoZW4gb21pdHRlZCwgdGhlIHRyYW5zcG9ydCB0aGUgY3VycmVudCB0ZXN0XG4gICAqIGNvbnRleHQgaXMgZHJpdmluZyBpcyB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNwb3J0PzogT2JzaWRpYW5UcmFuc3BvcnQ7XG5cbiAgLyoqXG4gICAqIFRoZSB2YXVsdCBwYXRoIHRvIGNhcHR1cmUuIFdoZW4gb21pdHRlZCwgdGhlIGN1cnJlbnQgdGVzdCBjb250ZXh0J3MgdmF1bHRcbiAgICogaXMgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHZhdWx0UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGV4YWN0IHdpZHRoIGluIHBpeGVscyB0aGUgY2FwdHVyZWQgaW1hZ2Ugc2hvdWxkIGhhdmUuXG4gICAqXG4gICAqIFNlZSB7QGxpbmsgaGVpZ2h0SW5QaXhlbHN9IFx1MjAxNCB0aGUgdHdvIGFyZSBzZXQgdG9nZXRoZXIgb3Igbm90IGF0IGFsbC5cbiAgICovXG4gIHJlYWRvbmx5IHdpZHRoSW5QaXhlbHM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ2FwdHVyZXMgYSBQTkcgc2NyZWVuc2hvdCBvZiB0aGUgcnVubmluZyBPYnNpZGlhbiBpbnN0YW5jZSwgcmVzb2x2aW5nIHRoZVxuICogdHJhbnNwb3J0IGFuZCB2YXVsdCBmcm9tIHRoZSBjdXJyZW50IHRlc3QgY29udGV4dC5cbiAqXG4gKiBUaGUgdmF1bHQncyBuYW1lIGlzIGhpZGRlbiBmaXJzdCwgc28gdHdvIHJ1bnMgb2YgdGhlIHNhbWUgc3VpdGUgYWdhaW5zdCB0d29cbiAqIGRpZmZlcmVudGx5LW5hbWVkIHRlbXBvcmFyeSB2YXVsdHMgcHJvZHVjZSBieXRlLWlkZW50aWNhbCBQTkdzLiBQYXNzXG4gKiB7QGxpbmsgQ2FwdHVyZU9ic2lkaWFuU2NyZWVuc2hvdE9wdGlvbnMuc2hvdWxkSGlkZVZhdWx0TmFtZX0gYXMgYGZhbHNlYCB0b1xuICogcGhvdG9ncmFwaCBpdC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIHNpemUsIHRyYW5zcG9ydCBhbmQgdmF1bHQgb3ZlcnJpZGVzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgcmF3IFBORyBieXRlcy5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIGFjdGl2ZSB0cmFuc3BvcnQgY2Fubm90IGNhcHR1cmUgc2NyZWVuc2hvdHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjYXB0dXJlT2JzaWRpYW5TY3JlZW5zaG90KG9wdGlvbnM/OiBDYXB0dXJlT2JzaWRpYW5TY3JlZW5zaG90T3B0aW9ucyk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCB7XG4gICAgaGVpZ2h0SW5QaXhlbHMsXG4gICAgc2hvdWxkSGlkZVZhdWx0TmFtZSA9IHRydWUsXG4gICAgdHJhbnNwb3J0OiB0cmFuc3BvcnRPdmVycmlkZSxcbiAgICB2YXVsdFBhdGgsXG4gICAgd2lkdGhJblBpeGVsc1xuICB9ID0gb3B0aW9ucyA/PyB7fTtcblxuICBjb25zdCBjd2QgPSB2YXVsdFBhdGggPz8gZ2V0VmF1bHRQYXRoKCkgPz8gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgdHJhbnNwb3J0ID0gdHJhbnNwb3J0T3ZlcnJpZGUgPz8gYXdhaXQgZ2V0T3JDcmVhdGVUcmFuc3BvcnQoZ2V0VHJhbnNwb3J0T3B0aW9ucygpKTtcblxuICBpZiAoIXRyYW5zcG9ydC5jYXB0dXJlU2NyZWVuc2hvdCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2FwdHVyZU9ic2lkaWFuU2NyZWVuc2hvdDogdGhlIGFjdGl2ZSB0cmFuc3BvcnQgY2Fubm90IGNhcHR1cmUgc2NyZWVuc2hvdHMuJyk7XG4gIH1cblxuICBpZiAoc2hvdWxkSGlkZVZhdWx0TmFtZSkge1xuICAgIGF3YWl0IGhpZGVWYXVsdE5hbWUoe1xuICAgICAgdHJhbnNwb3J0LFxuICAgICAgdmF1bHRQYXRoOiBjd2RcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0cmFuc3BvcnQuY2FwdHVyZVNjcmVlbnNob3Qobm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPENhcHR1cmVTY3JlZW5zaG90UGFyYW1zPih7XG4gICAgY3dkLFxuICAgIGhlaWdodEluUGl4ZWxzLFxuICAgIHdpZHRoSW5QaXhlbHNcbiAgfSkpO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQkEsMEJBQW9CO0FBS3BCLDhCQUdPO0FBQ1AsNkJBQThCO0FBQzlCLDJDQUE0QztBQUM1QywrQkFBcUM7QUE4RHJDLGVBQXNCLDBCQUEwQixTQUFpRTtBQUMvRyxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0Esc0JBQXNCO0FBQUEsSUFDdEIsV0FBVztBQUFBLElBQ1g7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJLFdBQVcsQ0FBQztBQUVoQixRQUFNLE1BQU0saUJBQWEsc0NBQWEsS0FBSyxvQkFBQUEsUUFBUSxJQUFJO0FBQ3ZELFFBQU0sWUFBWSxxQkFBcUIsVUFBTSxtREFBcUIsNkNBQW9CLENBQUM7QUFFdkYsTUFBSSxDQUFDLFVBQVUsbUJBQW1CO0FBQ2hDLFVBQU0sSUFBSSxNQUFNLDZFQUE2RTtBQUFBLEVBQy9GO0FBRUEsTUFBSSxxQkFBcUI7QUFDdkIsY0FBTSxzQ0FBYztBQUFBLE1BQ2xCO0FBQUEsTUFDQSxXQUFXO0FBQUEsSUFDYixDQUFDO0FBQUEsRUFDSDtBQUVBLFNBQU8sVUFBVSxzQkFBa0Isa0VBQXFEO0FBQUEsSUFDdEY7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsQ0FBQyxDQUFDO0FBQ0o7IiwKICAibmFtZXMiOiBbInByb2Nlc3MiXQp9Cg==
@@ -10,6 +10,10 @@
10
10
  * context-resolving entry point, the screenshot counterpart of
11
11
  * `evalInObsidian` / `pollInObsidian`: with no arguments at all it captures
12
12
  * whatever instance the active project is driving, desktop or mobile.
13
+ *
14
+ * It also makes the frame REPRODUCIBLE before taking it, by hiding the vault's
15
+ * name — see `hide-vault-name.ts` for why a `temp-vault-<random>` bleeds
16
+ * through the caption band and rewrites a checked-in PNG on every run.
13
17
  */
14
18
  import type { ObsidianTransport } from './transport.cjs';
15
19
  /**
@@ -25,6 +29,18 @@ export interface CaptureObsidianScreenshotOptions {
25
29
  * geometry.
26
30
  */
27
31
  readonly heightInPixels?: number;
32
+ /**
33
+ * Whether to hide the vault's name before capturing, so the frame does not
34
+ * depend on the random suffix of the harness's temporary vault.
35
+ *
36
+ * A default rather than a knob: reproducibility is what a checked-in
37
+ * screenshot is for, and the row it collapses sits under the caption band,
38
+ * so nothing a reader sees moves. Turn it off only to photograph the vault
39
+ * switcher itself.
40
+ *
41
+ * @default `true`
42
+ */
43
+ readonly shouldHideVaultName?: boolean;
28
44
  /**
29
45
  * Override the transport. When omitted, the transport the current test
30
46
  * context is driving is used.
@@ -46,6 +62,11 @@ export interface CaptureObsidianScreenshotOptions {
46
62
  * Captures a PNG screenshot of the running Obsidian instance, resolving the
47
63
  * transport and vault from the current test context.
48
64
  *
65
+ * The vault's name is hidden first, so two runs of the same suite against two
66
+ * differently-named temporary vaults produce byte-identical PNGs. Pass
67
+ * {@link CaptureObsidianScreenshotOptions.shouldHideVaultName} as `false` to
68
+ * photograph it.
69
+ *
49
70
  * @param options - Optional size, transport and vault overrides.
50
71
  * @returns A {@link Promise} that resolves to the raw PNG bytes.
51
72
  * @throws Error if the active transport cannot capture screenshots.
@@ -67,10 +67,7 @@ function readPngDimensions(bytes) {
67
67
  };
68
68
  }
69
69
  function readAscii(bytes, offset, length) {
70
- if (bytes.length < offset + length) {
71
- return "";
72
- }
73
- return Buffer.from(bytes.subarray(offset, offset + length)).toString("ascii");
70
+ return bytes.length < offset + length ? "" : Buffer.from(bytes.subarray(offset, offset + length)).toString("ascii");
74
71
  }
75
72
  // Annotate the CommonJS export names for ESM import in node:
76
73
  0 && (module.exports = {
@@ -79,4 +76,4 @@ function readAscii(bytes, offset, length) {
79
76
  isPng,
80
77
  readPngDimensions
81
78
  });
82
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NhcHR1cmUtc2NyZWVuc2hvdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFB1cmUgaGVscGVycyBmb3Igc2NyZWVuc2hvdCBjYXB0dXJlOiBidWlsZGluZyB0aGUgQ0RQIGRldmljZS1tZXRyaWNzIG92ZXJyaWRlXG4gKiBwYXlsb2FkLCBkZWNvZGluZyBhIGJhc2U2NC1lbmNvZGVkIFBORywgYW5kIHJlYWRpbmcgYSBQTkcncyBwaXhlbCBkaW1lbnNpb25zXG4gKiBvdXQgb2YgaXRzIElIRFIgaGVhZGVyLlxuICpcbiAqIEtlcHQgc2VwYXJhdGUgZnJvbSB0aGUgdHJhbnNwb3J0cyAod2hpY2ggYXJlIGludGVncmF0aW9uLW9ubHkgYW5kIGV4Y2x1ZGVkXG4gKiBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZSBwYXlsb2FkIHNoYXBlIGFuZCB0aGUgUE5HIHBhcnNpbmcgc3RheSB1bml0LXRlc3RhYmxlIFx1MjAxNFxuICogdGhlIHRyYW5zcG9ydHMgdGhlbXNlbHZlcyBvbmx5IHRhbGsgdG8gQ0RQIC8gQXBwaXVtLlxuICovXG5cbmltcG9ydCB0eXBlIHsgRXhjZXB0IH0gZnJvbSAndHlwZS1mZXN0JztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBjYXB0dXJpbmcgYSBzY3JlZW5zaG90IG9mIGEgcnVubmluZyBPYnNpZGlhbiBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXB0dXJlU2NyZWVuc2hvdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgd29ya2luZyBkaXJlY3RvcnkgKHZhdWx0IHBhdGgpIGlkZW50aWZ5aW5nIHdoaWNoIE9ic2lkaWFuIHdpbmRvdyB0b1xuICAgKiBjYXB0dXJlLlxuICAgKlxuICAgKiBNaXJyb3JzIHRoZSBgY3dkYCBvZiBhbiBldmFsdWF0aW9uOiBhIGRlc2t0b3AgaW5zdGFuY2UgY2FuIGhvbGQgc2V2ZXJhbFxuICAgKiB2YXVsdCB3aW5kb3dzLCBhbmQgdGhlIGNhcHR1cmUgaGFzIHRvIGJlIHJvdXRlZCB0byB0aGUgcmlnaHQgb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgY3dkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBleGFjdCBoZWlnaHQgaW4gcGl4ZWxzIHRoZSBjYXB0dXJlZCBpbWFnZSBzaG91bGQgaGF2ZS5cbiAgICpcbiAgICogRGVza3RvcCBvbmx5LCBhbmQgb25seSBtZWFuaW5nZnVsIHRvZ2V0aGVyIHdpdGgge0BsaW5rIHdpZHRoSW5QaXhlbHN9OiB0aGVcbiAgICogdmlld3BvcnQgaXMgcGlubmVkIHRvIHRoZXNlIG1ldHJpY3MgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY2FwdHVyZSwgc28gdGhlXG4gICAqIHJlc3VsdGluZyBQTkcgaXMgZXhhY3RseSB0aGlzIHNpemUgd2hhdGV2ZXIgc2l6ZSB0aGUgd2luZG93IGhhcHBlbnMgdG8gYmUuXG4gICAqIE9taXQgYm90aCB0byBjYXB0dXJlIHRoZSB3aW5kb3cgYXQgaXRzIG5hdHVyYWwgc2l6ZS5cbiAgICpcbiAgICogSWdub3JlZCBieSB0aGUgQXBwaXVtIHRyYW5zcG9ydCwgd2hpY2ggY2FuIG9ubHkgcmV0dXJuIHRoZSBkZXZpY2UncyBuYXRpdmVcbiAgICogZnJhbWVidWZmZXIgXHUyMDE0IHNpemUgYSBtb2JpbGUgY2FwdHVyZSBieSBjaG9vc2luZyBhbiBBVkQgd2l0aCB0aGUgd2FudGVkXG4gICAqIHNjcmVlbiBnZW9tZXRyeSBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVpZ2h0SW5QaXhlbHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBleGFjdCB3aWR0aCBpbiBwaXhlbHMgdGhlIGNhcHR1cmVkIGltYWdlIHNob3VsZCBoYXZlLlxuICAgKlxuICAgKiBTZWUge0BsaW5rIGhlaWdodEluUGl4ZWxzfSBcdTIwMTQgdGhlIHR3byBhcmUgc2V0IHRvZ2V0aGVyIG9yIG5vdCBhdCBhbGwuXG4gICAqL1xuICByZWFkb25seSB3aWR0aEluUGl4ZWxzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBwaXhlbCBkaW1lbnNpb25zIHJlYWQgb3V0IG9mIGEgUE5HJ3MgSUhEUiBoZWFkZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG5nRGltZW5zaW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgaW1hZ2UgaGVpZ2h0IGluIHBpeGVscy5cbiAgICovXG4gIHJlYWRvbmx5IGhlaWdodEluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBpbWFnZSB3aWR0aCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSB3aWR0aEluUGl4ZWxzOiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIEFTQ0lJIG1hcmtlciBpbnNpZGUgYSBQTkcncyA4LWJ5dGUgc2lnbmF0dXJlLlxuICpcbiAqIE1hdGNoZWQgYXMgdGV4dCByYXRoZXIgdGhhbiBhcyB0aGUgcmF3IHNpZ25hdHVyZSBieXRlcyBzbyB0aGlzIGZpbGUgc3RheXNcbiAqIHB1cmUgQVNDSUkgXHUyMDE0IHR3byBvZiB0aG9zZSBlaWdodCBieXRlcyBhcmUgdW5wcmludGFibGUsIGFuZCBhIGxpdGVyYWwgYDB4MUFgXG4gKiBpbiBhIHNvdXJjZSBmaWxlIGlzIHJlYWQgYXMgZW5kLW9mLWZpbGUgYnkgc29tZSBXaW5kb3dzIHRvb2xpbmcuXG4gKi9cbmNvbnN0IFBOR19NQVJLRVIgPSAnUE5HJztcblxuLyoqXG4gKiBCeXRlIG9mZnNldCBvZiB7QGxpbmsgUE5HX01BUktFUn0sIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBzaWduYXR1cmUncyBsZWFkaW5nXG4gKiB1bnByaW50YWJsZSBieXRlLlxuICovXG5jb25zdCBQTkdfTUFSS0VSX09GRlNFVCA9IDE7XG5cbi8qKlxuICogVGhlIElIRFIgY2h1bmsncyB0eXBlIG1hcmtlci5cbiAqXG4gKiBSZXF1aXJlZCBhbG9uZ3NpZGUge0BsaW5rIFBOR19NQVJLRVJ9IGJlY2F1c2UgdGhlIGRpbWVuc2lvbnMgYXJlIHJlYWQgb3V0IG9mXG4gKiBleGFjdGx5IHRoYXQgY2h1bmssIHNvIGl0cyBwcmVzZW5jZSBpcyB3aGF0IGFjdHVhbGx5IGhhcyB0byBob2xkIGhlcmUuXG4gKi9cbmNvbnN0IFBOR19JSERSX01BUktFUiA9ICdJSERSJztcblxuLyoqXG4gKiBCeXRlIG9mZnNldCBvZiB7QGxpbmsgUE5HX0lIRFJfTUFSS0VSfTogdGhlIDgtYnl0ZSBzaWduYXR1cmUgcGx1cyB0aGUgY2h1bmsnc1xuICogNC1ieXRlIGxlbmd0aCBmaWVsZC5cbiAqL1xuY29uc3QgUE5HX0lIRFJfTUFSS0VSX09GRlNFVCA9IDEyO1xuXG4vKipcbiAqIEJ5dGUgb2Zmc2V0IG9mIHRoZSBiaWctZW5kaWFuIGB3aWR0aGAgZmllbGQsIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBJSERSIHR5cGUuXG4gKi9cbmNvbnN0IFBOR19XSURUSF9PRkZTRVQgPSAxNjtcblxuLyoqXG4gKiBCeXRlIG9mZnNldCBvZiB0aGUgYmlnLWVuZGlhbiBgaGVpZ2h0YCBmaWVsZCwgaW1tZWRpYXRlbHkgYWZ0ZXIgYHdpZHRoYC5cbiAqL1xuY29uc3QgUE5HX0hFSUdIVF9PRkZTRVQgPSAyMDtcblxuLyoqXG4gKiBUaGUgc2hvcnRlc3QgcHJlZml4IGZyb20gd2hpY2gge0BsaW5rIHJlYWRQbmdEaW1lbnNpb25zfSBjYW4gcmVhZDogZXZlcnl0aGluZ1xuICogdXAgdG8gYW5kIGluY2x1ZGluZyB0aGUgSUhEUiBgaGVpZ2h0YCBmaWVsZC5cbiAqL1xuY29uc3QgUE5HX0hFQURFUl9NSU5fTEVOR1RIID0gMjQ7XG5cbi8qKlxuICogRGV2aWNlIHNjYWxlIGZhY3RvciBmb3IgYSBjYXB0dXJlLlxuICpcbiAqIEFsd2F5cyBgMWAsIHNvIHRoZSBlbWl0dGVkIFBORyBpcyBleGFjdGx5IHRoZSByZXF1ZXN0ZWQgQ1NTIHBpeGVsIHNpemUgcmF0aGVyXG4gKiB0aGFuIGEgbXVsdGlwbGUgb2YgaXQuXG4gKi9cbmNvbnN0IENBUFRVUkVfREVWSUNFX1NDQUxFX0ZBQ1RPUiA9IDE7XG5cbi8qKlxuICogQnVpbGRzIHRoZSBgRW11bGF0aW9uLnNldERldmljZU1ldHJpY3NPdmVycmlkZWAgcGF5bG9hZCB0aGF0IHBpbnMgYSBkZXNrdG9wXG4gKiBjYXB0dXJlIHRvIGFuIGV4YWN0IHBpeGVsIHNpemUuXG4gKlxuICogVGFrZXMgb25seSB0aGUgc2l6ZSBoYWxmIG9mIHtAbGluayBDYXB0dXJlU2NyZWVuc2hvdFBhcmFtc30gXHUyMDE0IHJvdXRpbmcgdGhlXG4gKiBjYXB0dXJlIHRvIGEgd2luZG93IGlzIHRoZSB0cmFuc3BvcnQncyBqb2IsIG5vdCB0aGUgcGF5bG9hZCdzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcmVxdWVzdGVkIGNhcHR1cmUgc2l6ZS5cbiAqIEByZXR1cm5zIFRoZSBDRFAgcGF5bG9hZCwgb3IgYHVuZGVmaW5lZGAgd2hlbiBubyBzaXplIHdhcyByZXF1ZXN0ZWQgKGNhcHR1cmUgdGhlIHdpbmRvdyBhcyBpdCBpcykuXG4gKiBAdGhyb3dzIEVycm9yIGlmIGV4YWN0bHkgb25lIG9mIHRoZSB0d28gZGltZW5zaW9ucyBpcyBnaXZlbiBcdTIwMTQgYSBoYWxmLXNwZWNpZmllZCBzaXplIGNhbm5vdCBiZSBob25vdXJlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRGV2aWNlTWV0cmljc092ZXJyaWRlKHBhcmFtczogRXhjZXB0PENhcHR1cmVTY3JlZW5zaG90UGFyYW1zLCAnY3dkJz4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHsgaGVpZ2h0SW5QaXhlbHMsIHdpZHRoSW5QaXhlbHMgfSA9IHBhcmFtcztcbiAgaWYgKGhlaWdodEluUGl4ZWxzID09PSB1bmRlZmluZWQgJiYgd2lkdGhJblBpeGVscyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChoZWlnaHRJblBpeGVscyA9PT0gdW5kZWZpbmVkIHx8IHdpZHRoSW5QaXhlbHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2FwdHVyZVNjcmVlbnNob3Q6IHdpZHRoSW5QaXhlbHMgYW5kIGhlaWdodEluUGl4ZWxzIG11c3QgYmUgZ2l2ZW4gdG9nZXRoZXIuJyk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRldmljZVNjYWxlRmFjdG9yOiBDQVBUVVJFX0RFVklDRV9TQ0FMRV9GQUNUT1IsXG4gICAgaGVpZ2h0OiBoZWlnaHRJblBpeGVscyxcbiAgICBtb2JpbGU6IGZhbHNlLFxuICAgIHdpZHRoOiB3aWR0aEluUGl4ZWxzXG4gIH07XG59XG5cbi8qKlxuICogRGVjb2RlcyB0aGUgYmFzZTY0IHBheWxvYWQgYm90aCBDRFAgKGBQYWdlLmNhcHR1cmVTY3JlZW5zaG90YCkgYW5kIEFwcGl1bVxuICogKGB0YWtlU2NyZWVuc2hvdGApIHJldHVybiBpbnRvIHJhdyBQTkcgYnl0ZXMuXG4gKlxuICogQHBhcmFtIGJhc2U2NCAtIFRoZSBiYXNlNjQtZW5jb2RlZCBpbWFnZSBkYXRhLlxuICogQHJldHVybnMgVGhlIGRlY29kZWQgYnl0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVCYXNlNjRQbmcoYmFzZTY0OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKGJhc2U2NCwgJ2Jhc2U2NCcpKTtcbn1cblxuLyoqXG4gKiBEZWNpZGVzIHdoZXRoZXIgdGhlIGdpdmVuIGJ5dGVzIGFyZSBhIFBORyBjYXJyeWluZyBhbiBJSERSIGNodW5rLlxuICpcbiAqIFVzZWQgdG8gZmFpbCBhIGNhcHR1cmUgbG91ZGx5IHdoZW4gYSB0cmFuc3BvcnQgaGFuZHMgYmFjayBzb21ldGhpbmcgdGhhdCBpc1xuICogbm90IGFuIGltYWdlLCByYXRoZXIgdGhhbiB3cml0aW5nIGEgY29ycnVwdCBmaWxlIHRvIGRpc2suXG4gKlxuICogQHBhcmFtIGJ5dGVzIC0gVGhlIGJ5dGVzIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGJ5dGVzIGFyZSBhIFBORy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUG5nKGJ5dGVzOiBVaW50OEFycmF5KTogYm9vbGVhbiB7XG4gIHJldHVybiByZWFkQXNjaWkoYnl0ZXMsIFBOR19NQVJLRVJfT0ZGU0VULCBQTkdfTUFSS0VSLmxlbmd0aCkgPT09IFBOR19NQVJLRVJcbiAgICAmJiByZWFkQXNjaWkoYnl0ZXMsIFBOR19JSERSX01BUktFUl9PRkZTRVQsIFBOR19JSERSX01BUktFUi5sZW5ndGgpID09PSBQTkdfSUhEUl9NQVJLRVI7XG59XG5cbi8qKlxuICogUmVhZHMgYSBQTkcncyBwaXhlbCBkaW1lbnNpb25zIGZyb20gaXRzIElIRFIgaGVhZGVyLlxuICpcbiAqIFRoZSB3aG9sZSBwb2ludCBpcyB2ZXJpZmljYXRpb246IGEgY2FwdHVyZSB0aGF0IHNpbGVudGx5IGNvbWVzIGJhY2sgYXQgdGhlXG4gKiB3cm9uZyBzaXplIGlzIHRoZSBmYWlsdXJlIG1vZGUgdGhhdCBwcm9kdWNlcyBhbiBvZmYtc3BlYyBzY3JlZW5zaG90IHNldCwgc29cbiAqIHRoZSBzaXplIGlzIHJlYWQgYmFjayBmcm9tIHRoZSBieXRlcyByYXRoZXIgdGhhbiBhc3N1bWVkIGZyb20gdGhlIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIGJ5dGVzIC0gVGhlIFBORyBieXRlcy5cbiAqIEByZXR1cm5zIFRoZSBpbWFnZSdzIHdpZHRoIGFuZCBoZWlnaHQgaW4gcGl4ZWxzLlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgYnl0ZXMgYXJlIG5vdCBhIFBORywgb3IgYXJlIHRvbyBzaG9ydCB0byBjYXJyeSBhbiBJSERSIGhlYWRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRQbmdEaW1lbnNpb25zKGJ5dGVzOiBVaW50OEFycmF5KTogUG5nRGltZW5zaW9ucyB7XG4gIGlmICghaXNQbmcoYnl0ZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdyZWFkUG5nRGltZW5zaW9uczogdGhlIGdpdmVuIGJ5dGVzIGFyZSBub3QgYSBQTkcuJyk7XG4gIH1cblxuICBpZiAoYnl0ZXMubGVuZ3RoIDwgUE5HX0hFQURFUl9NSU5fTEVOR1RIKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGByZWFkUG5nRGltZW5zaW9uczogYSBQTkcgaGVhZGVyIG5lZWRzIGF0IGxlYXN0ICR7U3RyaW5nKFBOR19IRUFERVJfTUlOX0xFTkdUSCl9IGJ5dGVzLCBnb3QgJHtTdHJpbmcoYnl0ZXMubGVuZ3RoKX0uYCk7XG4gIH1cblxuICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KGJ5dGVzLmJ1ZmZlciwgYnl0ZXMuYnl0ZU9mZnNldCwgYnl0ZXMuYnl0ZUxlbmd0aCk7XG4gIHJldHVybiB7XG4gICAgaGVpZ2h0SW5QaXhlbHM6IHZpZXcuZ2V0VWludDMyKFBOR19IRUlHSFRfT0ZGU0VUKSxcbiAgICB3aWR0aEluUGl4ZWxzOiB2aWV3LmdldFVpbnQzMihQTkdfV0lEVEhfT0ZGU0VUKVxuICB9O1xufVxuXG4vKipcbiAqIFJlYWRzIGEgZml4ZWQtbGVuZ3RoIEFTQ0lJIG1hcmtlciBvdXQgb2YgYSBieXRlIGJ1ZmZlci5cbiAqXG4gKiBAcGFyYW0gYnl0ZXMgLSBUaGUgYnl0ZXMgdG8gcmVhZCBmcm9tLlxuICogQHBhcmFtIG9mZnNldCAtIEJ5dGUgb2Zmc2V0IHRoZSBtYXJrZXIgc3RhcnRzIGF0LlxuICogQHBhcmFtIGxlbmd0aCAtIE1hcmtlciBsZW5ndGggaW4gYnl0ZXMuXG4gKiBAcmV0dXJucyBUaGUgZGVjb2RlZCBtYXJrZXIsIG9yIGFuIGVtcHR5IHN0cmluZyB3aGVuIHRoZSBidWZmZXIgaXMgdG9vIHNob3J0IHRvIGhvbGQgaXQuXG4gKi9cbmZ1bmN0aW9uIHJlYWRBc2NpaShieXRlczogVWludDhBcnJheSwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgaWYgKGJ5dGVzLmxlbmd0aCA8IG9mZnNldCArIGxlbmd0aCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHJldHVybiBCdWZmZXIuZnJvbShieXRlcy5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIGxlbmd0aCkpLnRvU3RyaW5nKCdhc2NpaScpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXVFQSxNQUFNLGFBQWE7QUFNbkIsTUFBTSxvQkFBb0I7QUFRMUIsTUFBTSxrQkFBa0I7QUFNeEIsTUFBTSx5QkFBeUI7QUFLL0IsTUFBTSxtQkFBbUI7QUFLekIsTUFBTSxvQkFBb0I7QUFNMUIsTUFBTSx3QkFBd0I7QUFROUIsTUFBTSw4QkFBOEI7QUFhN0IsU0FBUywyQkFBMkIsUUFBcUY7QUFDOUgsUUFBTSxFQUFFLGdCQUFnQixjQUFjLElBQUk7QUFDMUMsTUFBSSxtQkFBbUIsVUFBYSxrQkFBa0IsUUFBVztBQUMvRCxXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksbUJBQW1CLFVBQWEsa0JBQWtCLFFBQVc7QUFDL0QsVUFBTSxJQUFJLE1BQU0sNkVBQTZFO0FBQUEsRUFDL0Y7QUFFQSxTQUFPO0FBQUEsSUFDTCxtQkFBbUI7QUFBQSxJQUNuQixRQUFRO0FBQUEsSUFDUixRQUFRO0FBQUEsSUFDUixPQUFPO0FBQUEsRUFDVDtBQUNGO0FBU08sU0FBUyxnQkFBZ0IsUUFBNEI7QUFDMUQsU0FBTyxJQUFJLFdBQVcsT0FBTyxLQUFLLFFBQVEsUUFBUSxDQUFDO0FBQ3JEO0FBV08sU0FBUyxNQUFNLE9BQTRCO0FBQ2hELFNBQU8sVUFBVSxPQUFPLG1CQUFtQixXQUFXLE1BQU0sTUFBTSxjQUM3RCxVQUFVLE9BQU8sd0JBQXdCLGdCQUFnQixNQUFNLE1BQU07QUFDNUU7QUFhTyxTQUFTLGtCQUFrQixPQUFrQztBQUNsRSxNQUFJLENBQUMsTUFBTSxLQUFLLEdBQUc7QUFDakIsVUFBTSxJQUFJLE1BQU0sbURBQW1EO0FBQUEsRUFDckU7QUFFQSxNQUFJLE1BQU0sU0FBUyx1QkFBdUI7QUFDeEMsVUFBTSxJQUFJLE1BQU0sa0RBQWtELE9BQU8scUJBQXFCLENBQUMsZUFBZSxPQUFPLE1BQU0sTUFBTSxDQUFDLEdBQUc7QUFBQSxFQUN2STtBQUVBLFFBQU0sT0FBTyxJQUFJLFNBQVMsTUFBTSxRQUFRLE1BQU0sWUFBWSxNQUFNLFVBQVU7QUFDMUUsU0FBTztBQUFBLElBQ0wsZ0JBQWdCLEtBQUssVUFBVSxpQkFBaUI7QUFBQSxJQUNoRCxlQUFlLEtBQUssVUFBVSxnQkFBZ0I7QUFBQSxFQUNoRDtBQUNGO0FBVUEsU0FBUyxVQUFVLE9BQW1CLFFBQWdCLFFBQXdCO0FBQzVFLE1BQUksTUFBTSxTQUFTLFNBQVMsUUFBUTtBQUNsQyxXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sT0FBTyxLQUFLLE1BQU0sU0FBUyxRQUFRLFNBQVMsTUFBTSxDQUFDLEVBQUUsU0FBUyxPQUFPO0FBQzlFOyIsCiAgIm5hbWVzIjogW10KfQo=
79
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NhcHR1cmUtc2NyZWVuc2hvdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFB1cmUgaGVscGVycyBmb3Igc2NyZWVuc2hvdCBjYXB0dXJlOiBidWlsZGluZyB0aGUgQ0RQIGRldmljZS1tZXRyaWNzIG92ZXJyaWRlXG4gKiBwYXlsb2FkLCBkZWNvZGluZyBhIGJhc2U2NC1lbmNvZGVkIFBORywgYW5kIHJlYWRpbmcgYSBQTkcncyBwaXhlbCBkaW1lbnNpb25zXG4gKiBvdXQgb2YgaXRzIElIRFIgaGVhZGVyLlxuICpcbiAqIEtlcHQgc2VwYXJhdGUgZnJvbSB0aGUgdHJhbnNwb3J0cyAod2hpY2ggYXJlIGludGVncmF0aW9uLW9ubHkgYW5kIGV4Y2x1ZGVkXG4gKiBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZSBwYXlsb2FkIHNoYXBlIGFuZCB0aGUgUE5HIHBhcnNpbmcgc3RheSB1bml0LXRlc3RhYmxlIFx1MjAxNFxuICogdGhlIHRyYW5zcG9ydHMgdGhlbXNlbHZlcyBvbmx5IHRhbGsgdG8gQ0RQIC8gQXBwaXVtLlxuICovXG5cbmltcG9ydCB0eXBlIHsgRXhjZXB0IH0gZnJvbSAndHlwZS1mZXN0JztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBjYXB0dXJpbmcgYSBzY3JlZW5zaG90IG9mIGEgcnVubmluZyBPYnNpZGlhbiBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXB0dXJlU2NyZWVuc2hvdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgd29ya2luZyBkaXJlY3RvcnkgKHZhdWx0IHBhdGgpIGlkZW50aWZ5aW5nIHdoaWNoIE9ic2lkaWFuIHdpbmRvdyB0b1xuICAgKiBjYXB0dXJlLlxuICAgKlxuICAgKiBNaXJyb3JzIHRoZSBgY3dkYCBvZiBhbiBldmFsdWF0aW9uOiBhIGRlc2t0b3AgaW5zdGFuY2UgY2FuIGhvbGQgc2V2ZXJhbFxuICAgKiB2YXVsdCB3aW5kb3dzLCBhbmQgdGhlIGNhcHR1cmUgaGFzIHRvIGJlIHJvdXRlZCB0byB0aGUgcmlnaHQgb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgY3dkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBleGFjdCBoZWlnaHQgaW4gcGl4ZWxzIHRoZSBjYXB0dXJlZCBpbWFnZSBzaG91bGQgaGF2ZS5cbiAgICpcbiAgICogRGVza3RvcCBvbmx5LCBhbmQgb25seSBtZWFuaW5nZnVsIHRvZ2V0aGVyIHdpdGgge0BsaW5rIHdpZHRoSW5QaXhlbHN9OiB0aGVcbiAgICogdmlld3BvcnQgaXMgcGlubmVkIHRvIHRoZXNlIG1ldHJpY3MgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY2FwdHVyZSwgc28gdGhlXG4gICAqIHJlc3VsdGluZyBQTkcgaXMgZXhhY3RseSB0aGlzIHNpemUgd2hhdGV2ZXIgc2l6ZSB0aGUgd2luZG93IGhhcHBlbnMgdG8gYmUuXG4gICAqIE9taXQgYm90aCB0byBjYXB0dXJlIHRoZSB3aW5kb3cgYXQgaXRzIG5hdHVyYWwgc2l6ZS5cbiAgICpcbiAgICogSWdub3JlZCBieSB0aGUgQXBwaXVtIHRyYW5zcG9ydCwgd2hpY2ggY2FuIG9ubHkgcmV0dXJuIHRoZSBkZXZpY2UncyBuYXRpdmVcbiAgICogZnJhbWVidWZmZXIgXHUyMDE0IHNpemUgYSBtb2JpbGUgY2FwdHVyZSBieSBjaG9vc2luZyBhbiBBVkQgd2l0aCB0aGUgd2FudGVkXG4gICAqIHNjcmVlbiBnZW9tZXRyeSBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVpZ2h0SW5QaXhlbHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBleGFjdCB3aWR0aCBpbiBwaXhlbHMgdGhlIGNhcHR1cmVkIGltYWdlIHNob3VsZCBoYXZlLlxuICAgKlxuICAgKiBTZWUge0BsaW5rIGhlaWdodEluUGl4ZWxzfSBcdTIwMTQgdGhlIHR3byBhcmUgc2V0IHRvZ2V0aGVyIG9yIG5vdCBhdCBhbGwuXG4gICAqL1xuICByZWFkb25seSB3aWR0aEluUGl4ZWxzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBwaXhlbCBkaW1lbnNpb25zIHJlYWQgb3V0IG9mIGEgUE5HJ3MgSUhEUiBoZWFkZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG5nRGltZW5zaW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgaW1hZ2UgaGVpZ2h0IGluIHBpeGVscy5cbiAgICovXG4gIHJlYWRvbmx5IGhlaWdodEluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBpbWFnZSB3aWR0aCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSB3aWR0aEluUGl4ZWxzOiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIEFTQ0lJIG1hcmtlciBpbnNpZGUgYSBQTkcncyA4LWJ5dGUgc2lnbmF0dXJlLlxuICpcbiAqIE1hdGNoZWQgYXMgdGV4dCByYXRoZXIgdGhhbiBhcyB0aGUgcmF3IHNpZ25hdHVyZSBieXRlcyBzbyB0aGlzIGZpbGUgc3RheXNcbiAqIHB1cmUgQVNDSUkgXHUyMDE0IHR3byBvZiB0aG9zZSBlaWdodCBieXRlcyBhcmUgdW5wcmludGFibGUsIGFuZCBhIGxpdGVyYWwgYDB4MUFgXG4gKiBpbiBhIHNvdXJjZSBmaWxlIGlzIHJlYWQgYXMgZW5kLW9mLWZpbGUgYnkgc29tZSBXaW5kb3dzIHRvb2xpbmcuXG4gKi9cbmNvbnN0IFBOR19NQVJLRVIgPSAnUE5HJztcblxuLyoqXG4gKiBCeXRlIG9mZnNldCBvZiB7QGxpbmsgUE5HX01BUktFUn0sIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBzaWduYXR1cmUncyBsZWFkaW5nXG4gKiB1bnByaW50YWJsZSBieXRlLlxuICovXG5jb25zdCBQTkdfTUFSS0VSX09GRlNFVCA9IDE7XG5cbi8qKlxuICogVGhlIElIRFIgY2h1bmsncyB0eXBlIG1hcmtlci5cbiAqXG4gKiBSZXF1aXJlZCBhbG9uZ3NpZGUge0BsaW5rIFBOR19NQVJLRVJ9IGJlY2F1c2UgdGhlIGRpbWVuc2lvbnMgYXJlIHJlYWQgb3V0IG9mXG4gKiBleGFjdGx5IHRoYXQgY2h1bmssIHNvIGl0cyBwcmVzZW5jZSBpcyB3aGF0IGFjdHVhbGx5IGhhcyB0byBob2xkIGhlcmUuXG4gKi9cbmNvbnN0IFBOR19JSERSX01BUktFUiA9ICdJSERSJztcblxuLyoqXG4gKiBCeXRlIG9mZnNldCBvZiB7QGxpbmsgUE5HX0lIRFJfTUFSS0VSfTogdGhlIDgtYnl0ZSBzaWduYXR1cmUgcGx1cyB0aGUgY2h1bmsnc1xuICogNC1ieXRlIGxlbmd0aCBmaWVsZC5cbiAqL1xuY29uc3QgUE5HX0lIRFJfTUFSS0VSX09GRlNFVCA9IDEyO1xuXG4vKipcbiAqIEJ5dGUgb2Zmc2V0IG9mIHRoZSBiaWctZW5kaWFuIGB3aWR0aGAgZmllbGQsIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBJSERSIHR5cGUuXG4gKi9cbmNvbnN0IFBOR19XSURUSF9PRkZTRVQgPSAxNjtcblxuLyoqXG4gKiBCeXRlIG9mZnNldCBvZiB0aGUgYmlnLWVuZGlhbiBgaGVpZ2h0YCBmaWVsZCwgaW1tZWRpYXRlbHkgYWZ0ZXIgYHdpZHRoYC5cbiAqL1xuY29uc3QgUE5HX0hFSUdIVF9PRkZTRVQgPSAyMDtcblxuLyoqXG4gKiBUaGUgc2hvcnRlc3QgcHJlZml4IGZyb20gd2hpY2gge0BsaW5rIHJlYWRQbmdEaW1lbnNpb25zfSBjYW4gcmVhZDogZXZlcnl0aGluZ1xuICogdXAgdG8gYW5kIGluY2x1ZGluZyB0aGUgSUhEUiBgaGVpZ2h0YCBmaWVsZC5cbiAqL1xuY29uc3QgUE5HX0hFQURFUl9NSU5fTEVOR1RIID0gMjQ7XG5cbi8qKlxuICogRGV2aWNlIHNjYWxlIGZhY3RvciBmb3IgYSBjYXB0dXJlLlxuICpcbiAqIEFsd2F5cyBgMWAsIHNvIHRoZSBlbWl0dGVkIFBORyBpcyBleGFjdGx5IHRoZSByZXF1ZXN0ZWQgQ1NTIHBpeGVsIHNpemUgcmF0aGVyXG4gKiB0aGFuIGEgbXVsdGlwbGUgb2YgaXQuXG4gKi9cbmNvbnN0IENBUFRVUkVfREVWSUNFX1NDQUxFX0ZBQ1RPUiA9IDE7XG5cbi8qKlxuICogQnVpbGRzIHRoZSBgRW11bGF0aW9uLnNldERldmljZU1ldHJpY3NPdmVycmlkZWAgcGF5bG9hZCB0aGF0IHBpbnMgYSBkZXNrdG9wXG4gKiBjYXB0dXJlIHRvIGFuIGV4YWN0IHBpeGVsIHNpemUuXG4gKlxuICogVGFrZXMgb25seSB0aGUgc2l6ZSBoYWxmIG9mIHtAbGluayBDYXB0dXJlU2NyZWVuc2hvdFBhcmFtc30gXHUyMDE0IHJvdXRpbmcgdGhlXG4gKiBjYXB0dXJlIHRvIGEgd2luZG93IGlzIHRoZSB0cmFuc3BvcnQncyBqb2IsIG5vdCB0aGUgcGF5bG9hZCdzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcmVxdWVzdGVkIGNhcHR1cmUgc2l6ZS5cbiAqIEByZXR1cm5zIFRoZSBDRFAgcGF5bG9hZCwgb3IgYHVuZGVmaW5lZGAgd2hlbiBubyBzaXplIHdhcyByZXF1ZXN0ZWQgKGNhcHR1cmUgdGhlIHdpbmRvdyBhcyBpdCBpcykuXG4gKiBAdGhyb3dzIEVycm9yIGlmIGV4YWN0bHkgb25lIG9mIHRoZSB0d28gZGltZW5zaW9ucyBpcyBnaXZlbiBcdTIwMTQgYSBoYWxmLXNwZWNpZmllZCBzaXplIGNhbm5vdCBiZSBob25vdXJlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRGV2aWNlTWV0cmljc092ZXJyaWRlKHBhcmFtczogRXhjZXB0PENhcHR1cmVTY3JlZW5zaG90UGFyYW1zLCAnY3dkJz4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHsgaGVpZ2h0SW5QaXhlbHMsIHdpZHRoSW5QaXhlbHMgfSA9IHBhcmFtcztcbiAgaWYgKGhlaWdodEluUGl4ZWxzID09PSB1bmRlZmluZWQgJiYgd2lkdGhJblBpeGVscyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChoZWlnaHRJblBpeGVscyA9PT0gdW5kZWZpbmVkIHx8IHdpZHRoSW5QaXhlbHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2FwdHVyZVNjcmVlbnNob3Q6IHdpZHRoSW5QaXhlbHMgYW5kIGhlaWdodEluUGl4ZWxzIG11c3QgYmUgZ2l2ZW4gdG9nZXRoZXIuJyk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRldmljZVNjYWxlRmFjdG9yOiBDQVBUVVJFX0RFVklDRV9TQ0FMRV9GQUNUT1IsXG4gICAgaGVpZ2h0OiBoZWlnaHRJblBpeGVscyxcbiAgICBtb2JpbGU6IGZhbHNlLFxuICAgIHdpZHRoOiB3aWR0aEluUGl4ZWxzXG4gIH07XG59XG5cbi8qKlxuICogRGVjb2RlcyB0aGUgYmFzZTY0IHBheWxvYWQgYm90aCBDRFAgKGBQYWdlLmNhcHR1cmVTY3JlZW5zaG90YCkgYW5kIEFwcGl1bVxuICogKGB0YWtlU2NyZWVuc2hvdGApIHJldHVybiBpbnRvIHJhdyBQTkcgYnl0ZXMuXG4gKlxuICogQHBhcmFtIGJhc2U2NCAtIFRoZSBiYXNlNjQtZW5jb2RlZCBpbWFnZSBkYXRhLlxuICogQHJldHVybnMgVGhlIGRlY29kZWQgYnl0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVCYXNlNjRQbmcoYmFzZTY0OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKGJhc2U2NCwgJ2Jhc2U2NCcpKTtcbn1cblxuLyoqXG4gKiBEZWNpZGVzIHdoZXRoZXIgdGhlIGdpdmVuIGJ5dGVzIGFyZSBhIFBORyBjYXJyeWluZyBhbiBJSERSIGNodW5rLlxuICpcbiAqIFVzZWQgdG8gZmFpbCBhIGNhcHR1cmUgbG91ZGx5IHdoZW4gYSB0cmFuc3BvcnQgaGFuZHMgYmFjayBzb21ldGhpbmcgdGhhdCBpc1xuICogbm90IGFuIGltYWdlLCByYXRoZXIgdGhhbiB3cml0aW5nIGEgY29ycnVwdCBmaWxlIHRvIGRpc2suXG4gKlxuICogQHBhcmFtIGJ5dGVzIC0gVGhlIGJ5dGVzIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIGJ5dGVzIGFyZSBhIFBORy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUG5nKGJ5dGVzOiBVaW50OEFycmF5KTogYm9vbGVhbiB7XG4gIHJldHVybiByZWFkQXNjaWkoYnl0ZXMsIFBOR19NQVJLRVJfT0ZGU0VULCBQTkdfTUFSS0VSLmxlbmd0aCkgPT09IFBOR19NQVJLRVJcbiAgICAmJiByZWFkQXNjaWkoYnl0ZXMsIFBOR19JSERSX01BUktFUl9PRkZTRVQsIFBOR19JSERSX01BUktFUi5sZW5ndGgpID09PSBQTkdfSUhEUl9NQVJLRVI7XG59XG5cbi8qKlxuICogUmVhZHMgYSBQTkcncyBwaXhlbCBkaW1lbnNpb25zIGZyb20gaXRzIElIRFIgaGVhZGVyLlxuICpcbiAqIFRoZSB3aG9sZSBwb2ludCBpcyB2ZXJpZmljYXRpb246IGEgY2FwdHVyZSB0aGF0IHNpbGVudGx5IGNvbWVzIGJhY2sgYXQgdGhlXG4gKiB3cm9uZyBzaXplIGlzIHRoZSBmYWlsdXJlIG1vZGUgdGhhdCBwcm9kdWNlcyBhbiBvZmYtc3BlYyBzY3JlZW5zaG90IHNldCwgc29cbiAqIHRoZSBzaXplIGlzIHJlYWQgYmFjayBmcm9tIHRoZSBieXRlcyByYXRoZXIgdGhhbiBhc3N1bWVkIGZyb20gdGhlIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIGJ5dGVzIC0gVGhlIFBORyBieXRlcy5cbiAqIEByZXR1cm5zIFRoZSBpbWFnZSdzIHdpZHRoIGFuZCBoZWlnaHQgaW4gcGl4ZWxzLlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgYnl0ZXMgYXJlIG5vdCBhIFBORywgb3IgYXJlIHRvbyBzaG9ydCB0byBjYXJyeSBhbiBJSERSIGhlYWRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRQbmdEaW1lbnNpb25zKGJ5dGVzOiBVaW50OEFycmF5KTogUG5nRGltZW5zaW9ucyB7XG4gIGlmICghaXNQbmcoYnl0ZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdyZWFkUG5nRGltZW5zaW9uczogdGhlIGdpdmVuIGJ5dGVzIGFyZSBub3QgYSBQTkcuJyk7XG4gIH1cblxuICBpZiAoYnl0ZXMubGVuZ3RoIDwgUE5HX0hFQURFUl9NSU5fTEVOR1RIKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGByZWFkUG5nRGltZW5zaW9uczogYSBQTkcgaGVhZGVyIG5lZWRzIGF0IGxlYXN0ICR7U3RyaW5nKFBOR19IRUFERVJfTUlOX0xFTkdUSCl9IGJ5dGVzLCBnb3QgJHtTdHJpbmcoYnl0ZXMubGVuZ3RoKX0uYCk7XG4gIH1cblxuICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KGJ5dGVzLmJ1ZmZlciwgYnl0ZXMuYnl0ZU9mZnNldCwgYnl0ZXMuYnl0ZUxlbmd0aCk7XG4gIHJldHVybiB7XG4gICAgaGVpZ2h0SW5QaXhlbHM6IHZpZXcuZ2V0VWludDMyKFBOR19IRUlHSFRfT0ZGU0VUKSxcbiAgICB3aWR0aEluUGl4ZWxzOiB2aWV3LmdldFVpbnQzMihQTkdfV0lEVEhfT0ZGU0VUKVxuICB9O1xufVxuXG4vKipcbiAqIFJlYWRzIGEgZml4ZWQtbGVuZ3RoIEFTQ0lJIG1hcmtlciBvdXQgb2YgYSBieXRlIGJ1ZmZlci5cbiAqXG4gKiBAcGFyYW0gYnl0ZXMgLSBUaGUgYnl0ZXMgdG8gcmVhZCBmcm9tLlxuICogQHBhcmFtIG9mZnNldCAtIEJ5dGUgb2Zmc2V0IHRoZSBtYXJrZXIgc3RhcnRzIGF0LlxuICogQHBhcmFtIGxlbmd0aCAtIE1hcmtlciBsZW5ndGggaW4gYnl0ZXMuXG4gKiBAcmV0dXJucyBUaGUgZGVjb2RlZCBtYXJrZXIsIG9yIGFuIGVtcHR5IHN0cmluZyB3aGVuIHRoZSBidWZmZXIgaXMgdG9vIHNob3J0IHRvIGhvbGQgaXQuXG4gKi9cbmZ1bmN0aW9uIHJlYWRBc2NpaShieXRlczogVWludDhBcnJheSwgb2Zmc2V0OiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIGJ5dGVzLmxlbmd0aCA8IG9mZnNldCArIGxlbmd0aCA/ICcnIDogQnVmZmVyLmZyb20oYnl0ZXMuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyBsZW5ndGgpKS50b1N0cmluZygnYXNjaWknKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF1RUEsTUFBTSxhQUFhO0FBTW5CLE1BQU0sb0JBQW9CO0FBUTFCLE1BQU0sa0JBQWtCO0FBTXhCLE1BQU0seUJBQXlCO0FBSy9CLE1BQU0sbUJBQW1CO0FBS3pCLE1BQU0sb0JBQW9CO0FBTTFCLE1BQU0sd0JBQXdCO0FBUTlCLE1BQU0sOEJBQThCO0FBYTdCLFNBQVMsMkJBQTJCLFFBQXFGO0FBQzlILFFBQU0sRUFBRSxnQkFBZ0IsY0FBYyxJQUFJO0FBQzFDLE1BQUksbUJBQW1CLFVBQWEsa0JBQWtCLFFBQVc7QUFDL0QsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLG1CQUFtQixVQUFhLGtCQUFrQixRQUFXO0FBQy9ELFVBQU0sSUFBSSxNQUFNLDZFQUE2RTtBQUFBLEVBQy9GO0FBRUEsU0FBTztBQUFBLElBQ0wsbUJBQW1CO0FBQUEsSUFDbkIsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsT0FBTztBQUFBLEVBQ1Q7QUFDRjtBQVNPLFNBQVMsZ0JBQWdCLFFBQTRCO0FBQzFELFNBQU8sSUFBSSxXQUFXLE9BQU8sS0FBSyxRQUFRLFFBQVEsQ0FBQztBQUNyRDtBQVdPLFNBQVMsTUFBTSxPQUE0QjtBQUNoRCxTQUFPLFVBQVUsT0FBTyxtQkFBbUIsV0FBVyxNQUFNLE1BQU0sY0FDN0QsVUFBVSxPQUFPLHdCQUF3QixnQkFBZ0IsTUFBTSxNQUFNO0FBQzVFO0FBYU8sU0FBUyxrQkFBa0IsT0FBa0M7QUFDbEUsTUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHO0FBQ2pCLFVBQU0sSUFBSSxNQUFNLG1EQUFtRDtBQUFBLEVBQ3JFO0FBRUEsTUFBSSxNQUFNLFNBQVMsdUJBQXVCO0FBQ3hDLFVBQU0sSUFBSSxNQUFNLGtEQUFrRCxPQUFPLHFCQUFxQixDQUFDLGVBQWUsT0FBTyxNQUFNLE1BQU0sQ0FBQyxHQUFHO0FBQUEsRUFDdkk7QUFFQSxRQUFNLE9BQU8sSUFBSSxTQUFTLE1BQU0sUUFBUSxNQUFNLFlBQVksTUFBTSxVQUFVO0FBQzFFLFNBQU87QUFBQSxJQUNMLGdCQUFnQixLQUFLLFVBQVUsaUJBQWlCO0FBQUEsSUFDaEQsZUFBZSxLQUFLLFVBQVUsZ0JBQWdCO0FBQUEsRUFDaEQ7QUFDRjtBQVVBLFNBQVMsVUFBVSxPQUFtQixRQUFnQixRQUF3QjtBQUM1RSxTQUFPLE1BQU0sU0FBUyxTQUFTLFNBQVMsS0FBSyxPQUFPLEtBQUssTUFBTSxTQUFTLFFBQVEsU0FBUyxNQUFNLENBQUMsRUFBRSxTQUFTLE9BQU87QUFDcEg7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -81,10 +81,7 @@ function buildOptions(values) {
81
81
  }
82
82
  function discoverDemoVaultPluginIds(demoVaultPath) {
83
83
  const pluginsDirectory = (0, import_node_path.join)(demoVaultPath, ".obsidian", "plugins");
84
- if (!(0, import_node_fs.existsSync)(pluginsDirectory)) {
85
- return [];
86
- }
87
- return (0, import_node_fs.readdirSync)(pluginsDirectory, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => entry.name);
84
+ return (0, import_node_fs.existsSync)(pluginsDirectory) ? (0, import_node_fs.readdirSync)(pluginsDirectory, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => entry.name) : [];
88
85
  }
89
86
  function parseNumber(flag, raw) {
90
87
  const value = Number(raw);
@@ -198,4 +195,4 @@ function waitForShutdownOrInstanceClose(cdpUrl) {
198
195
  0 && (module.exports = {
199
196
  main
200
197
  });
201
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NsaS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBwYWNrYWdlJ3MgQ0xJLiBUd28gY29tbWFuZHM6XG4gKlxuICogLSBUaGUgKipkZWZhdWx0KiogKG5vIHN1YmNvbW1hbmQpIFx1MjAxNCBhIHRoaW4gQ0xJIG92ZXIge0BsaW5rIGNvbm5lY3RUb0NkcH06IGxhdW5jaGVzXG4gKiAgIChvciBhdHRhY2hlcyB0bykgYSBDRFAtZW5hYmxlZCBPYnNpZGlhbiBpbnN0YW5jZSB3aXRoIHRoZSBydW50aW1lIGhlbHBlclxuICogICBuYW1lc3BhY2UgYm9vdHN0cmFwcGVkLCBwcmludHMgdGhlIGNob3NlbiBDRFAgcG9ydC9VUkwsIGFuZCBzdGF5cyBhbGl2ZSB1bnRpbFxuICogICBpbnRlcnJ1cHRlZCBzbyBhbiBleHRlcm5hbCB0b29sIChyYXcgQ0RQIGB3c2AsIERldlRvb2xzLCBcdTIwMjYpIGNhbiBhdHRhY2guXG4gKiAtICoqYGJvb3RzdHJhcC1kZW1vLXZhdWx0YCoqIFx1MjAxNCBpbnN0YWxscyBhIGRlbW8gdmF1bHQncyBpbmplY3RlZCBjb21tdW5pdHkgcGx1Z2luc1xuICogICBoZWFkbGVzc2x5IChzZWUgYGRlbW8tdmF1bHQtYm9vdHN0cmFwLnRzYCkuIFRoaXMgaXMgdGhlIGNvcHktcGFzdGVhYmxlIHJlbWVkeVxuICogICBgYnVpbGREZW1vVmF1bHRQb3B1bGF0ZWAncyB0aHJvdyBuYW1lcywgcmVwbGFjaW5nIHRoZSBHVUktb25seSBcIm9wZW5cbiAqICAgYGRlbW8tdmF1bHQvYCBpbiBPYnNpZGlhbiBvbmNlXCIgc3RlcCB0aGF0IGEgZnJlc2ggY2xvbmUgb3IgQ0kgY2Fubm90IHBlcmZvcm0uXG4gKlxuICogQW55dGhpbmcgdGhhdCBpcyBub3QgYSByZWNvZ25pemVkIHN1YmNvbW1hbmQgZmFsbHMgdGhyb3VnaCB0byB0aGUgZGVmYXVsdFxuICogY29tbWFuZCwgc28gYG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcgLS12YXVsdCBcdTIwMjZgIGtlZXBzIHdvcmtpbmcgdW5jaGFuZ2VkLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIENMSSAobGF1bmNoZXMgT2JzaWRpYW4gLyBDRFAsIGRvd25sb2FkcyByZWxlYXNlcykgY292ZXJlZCBtYW51YWxseSwgbm90IGJ5IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB7XG4gIGV4aXN0c1N5bmMsXG4gIHJlYWRkaXJTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgam9pbixcbiAgcmVzb2x2ZSBhcyByZXNvbHZlUGF0aFxufSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCB7IHBhcnNlQXJncyB9IGZyb20gJ25vZGU6dXRpbCc7XG5cbmltcG9ydCB0eXBlIHsgQ29ubmVjdFRvQ2RwT3B0aW9ucyB9IGZyb20gJy4vY29ubmVjdC10by1jZHAuY2pzJztcbmltcG9ydCB0eXBlIHsgSW5qZWN0UGx1Z2luUGFyYW1zIH0gZnJvbSAnLi9kZW1vLXZhdWx0LXBvcHVsYXRlLmNqcyc7XG5cbmltcG9ydCB7IGNvbm5lY3RUb0NkcCB9IGZyb20gJy4vY29ubmVjdC10by1jZHAuY2pzJztcbmltcG9ydCB7IGJvb3RzdHJhcERlbW9WYXVsdFBsdWdpbnMgfSBmcm9tICcuL2RlbW8tdmF1bHQtYm9vdHN0cmFwLmNqcyc7XG5cbmNvbnN0IEJPT1RTVFJBUF9ERU1PX1ZBVUxUX0NPTU1BTkQgPSAnYm9vdHN0cmFwLWRlbW8tdmF1bHQnO1xuY29uc3QgSEVMUF9GTEFHUyA9IG5ldyBTZXQoWyctLWhlbHAnLCAnLWgnXSk7XG5cbi8qKlxuSW5kZXggb2YgYSBzdWJjb21tYW5kJ3MgZmlyc3QgYXJndW1lbnQgaW4gYHByb2Nlc3MuYXJndmAgKGBbbm9kZSwgc2NyaXB0LCBzdWJjb21tYW5kLCBcdTIwMjZdYCkuXG4gKi9cbmNvbnN0IFNVQkNPTU1BTkRfQVJHVU1FTlRTX1NUQVJUX0lOREVYID0gMztcblxuY29uc3QgVVNBR0UgPSBgVXNhZ2U6XG4gIG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcgW29wdGlvbnNdXG4gICAgICBMYXVuY2ggKG9yIGF0dGFjaCB0bykgYSBDRFAtZW5hYmxlZCBPYnNpZGlhbiBpbnN0YW5jZSBhbmQgcHJpbnQgaXRzIGVuZHBvaW50LlxuICAgICAgT3B0aW9uczogLS12YXVsdCwgLS1wb3J0LCAtLWhvc3QsIC0tb2JzaWRpYW4tdmVyc2lvbiwgLS1vYnNpZGlhbi1pbnN0YWxsZXItdmVyc2lvbixcbiAgICAgICAgICAgICAgIC0tY29tbWFuZC10aW1lb3V0LCAtLW5vLXJlbW92ZS12YXVsdFxuXG4gIG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcgJHtCT09UU1RSQVBfREVNT19WQVVMVF9DT01NQU5EfSBbb3B0aW9uc11cbiAgICAgIEluc3RhbGwgYSBkZW1vIHZhdWx0J3MgaW5qZWN0ZWQgY29tbXVuaXR5IHBsdWdpbnMgZnJvbSB0aGVpciBwdWJsaXNoZWQgR2l0SHViXG4gICAgICByZWxlYXNlcywgc28gaW50ZWdyYXRpb24gdGVzdHMgcnVuIHdpdGhvdXQgb3BlbmluZyBPYnNpZGlhbiBieSBoYW5kLlxuICAgICAgT3B0aW9uczogLS1kZW1vLXZhdWx0IDxwYXRoPiAgIGRlbW8gdmF1bHQgZGlyZWN0b3J5IChkZWZhdWx0OiAuL2RlbW8tdmF1bHQpXG4gICAgICAgICAgICAgICAtLXBsdWdpbiA8aWQ+ICAgICAgICAgcGx1Z2luIGlkIHRvIGluc3RhbGwgKHJlcGVhdGFibGU7IGRlZmF1bHQ6IGV2ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgYWxyZWFkeSBwcmVzZW50IHVuZGVyIC5vYnNpZGlhbi9wbHVnaW5zLylcbiAgICAgICAgICAgICAgIC0tcmVwbyA8b3duZXIvbmFtZT4gICBvdmVycmlkZSB0aGUgcmVnaXN0cnkgbG9va3VwIChzaW5nbGUgLS1wbHVnaW4gb25seSlcbiAgICAgICAgICAgICAgIC0tdmVyc2lvbiA8dGFnPiAgICAgICBwaW4gYSByZWxlYXNlIHRhZyAoc2luZ2xlIC0tcGx1Z2luIG9ubHkpXG4gICAgICAgICAgICAgICAtLWZvcmNlICAgICAgICAgICAgICAgcmUtZG93bmxvYWQgcGx1Z2lucyB0aGF0IGFyZSBhbHJlYWR5IGluc3RhbGxlZFxuYDtcblxuLyoqXG4gKiBUaGUgc2hhcGUgb2YgdGhlIHBhcnNlZCBDTEkgZmxhZyB2YWx1ZXMuXG4gKi9cbmludGVyZmFjZSBQYXJzZWRDbGlWYWx1ZXMge1xuICAnY29tbWFuZC10aW1lb3V0Jz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgJ2hvc3QnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAnbm8tcmVtb3ZlLXZhdWx0Jz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICdvYnNpZGlhbi1pbnN0YWxsZXItdmVyc2lvbic/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICdvYnNpZGlhbi12ZXJzaW9uJz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgJ3BvcnQnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAndmF1bHQnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIERpc3BhdGNoZXMgdG8gdGhlIHJlcXVlc3RlZCBzdWJjb21tYW5kLCBmYWxsaW5nIHRocm91Z2ggdG8gdGhlIGRlZmF1bHQgQ0RQXG4gKiBjb21tYW5kIGZvciBhbnl0aGluZyB0aGF0IGlzIG5vdCBvbmUuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBjaG9zZW4gY29tbWFuZCBoYXMgZmluaXNoZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWluKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBbLCAsIGZpcnN0QXJndW1lbnRdID0gcHJvY2Vzcy5hcmd2O1xuXG4gIGlmIChmaXJzdEFyZ3VtZW50ICE9PSB1bmRlZmluZWQgJiYgSEVMUF9GTEFHUy5oYXMoZmlyc3RBcmd1bWVudCkpIHtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShVU0FHRSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGZpcnN0QXJndW1lbnQgPT09IEJPT1RTVFJBUF9ERU1PX1ZBVUxUX0NPTU1BTkQpIHtcbiAgICBhd2FpdCBydW5Cb290c3RyYXBEZW1vVmF1bHRDb21tYW5kKHByb2Nlc3MuYXJndi5zbGljZShTVUJDT01NQU5EX0FSR1VNRU5UU19TVEFSVF9JTkRFWCkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGF3YWl0IHJ1bkNvbm5lY3RDb21tYW5kKCk7XG59XG5cbi8qKlxuICogQnVpbGRzIHtAbGluayBDb25uZWN0VG9DZHBPcHRpb25zfSBmcm9tIHBhcnNlZCBDTEkgZmxhZyB2YWx1ZXMuXG4gKlxuICogQHBhcmFtIHZhbHVlcyAtIFRoZSBwYXJzZWQgYHBhcnNlQXJnc2AgdmFsdWVzLlxuICogQHJldHVybnMgVGhlIGNvbm5lY3Rpb24gb3B0aW9ucy5cbiAqL1xuZnVuY3Rpb24gYnVpbGRPcHRpb25zKHZhbHVlczogUGFyc2VkQ2xpVmFsdWVzKTogQ29ubmVjdFRvQ2RwT3B0aW9ucyB7XG4gIHJldHVybiB7XG4gICAgLi4uKHZhbHVlc1snY29tbWFuZC10aW1lb3V0J10gIT09IHVuZGVmaW5lZCAmJiB7IGNvbW1hbmRUaW1lb3V0SW5NaWxsaXNlY29uZHM6IHBhcnNlTnVtYmVyKCdjb21tYW5kLXRpbWVvdXQnLCB2YWx1ZXNbJ2NvbW1hbmQtdGltZW91dCddKSB9KSxcbiAgICAuLi4odmFsdWVzLmhvc3QgIT09IHVuZGVmaW5lZCAmJiB7IGhvc3Q6IHZhbHVlcy5ob3N0IH0pLFxuICAgIC4uLih2YWx1ZXNbJ25vLXJlbW92ZS12YXVsdCddID09PSB0cnVlICYmIHsgc2hvdWxkUmVtb3ZlVmF1bHRPbkRpc3Bvc2U6IGZhbHNlIH0pLFxuICAgIC4uLih2YWx1ZXNbJ29ic2lkaWFuLWluc3RhbGxlci12ZXJzaW9uJ10gIT09IHVuZGVmaW5lZCAmJiB7IG9ic2lkaWFuSW5zdGFsbGVyVmVyc2lvbjogdmFsdWVzWydvYnNpZGlhbi1pbnN0YWxsZXItdmVyc2lvbiddIH0pLFxuICAgIC4uLih2YWx1ZXNbJ29ic2lkaWFuLXZlcnNpb24nXSAhPT0gdW5kZWZpbmVkICYmIHsgb2JzaWRpYW5WZXJzaW9uOiB2YWx1ZXNbJ29ic2lkaWFuLXZlcnNpb24nXSB9KSxcbiAgICAuLi4odmFsdWVzLnBvcnQgIT09IHVuZGVmaW5lZCAmJiB7IHBvcnQ6IHBhcnNlTnVtYmVyKCdwb3J0JywgdmFsdWVzLnBvcnQpIH0pLFxuICAgIC4uLih2YWx1ZXMudmF1bHQgIT09IHVuZGVmaW5lZCAmJiB7IHZhdWx0OiB2YWx1ZXMudmF1bHQgfSlcbiAgfTtcbn1cblxuLyoqXG4gKiBMaXN0cyB0aGUgcGx1Z2luIGlkcyBhbHJlYWR5IHByZXNlbnQgdW5kZXIgYSBkZW1vIHZhdWx0J3MgYC5vYnNpZGlhbi9wbHVnaW5zL2AsIHVzZWQgYXMgdGhlIGRlZmF1bHRcbiAqIGluc3RhbGwgc2V0IHdoZW4gYC0tcGx1Z2luYCBpcyBvbWl0dGVkLiBBIGZvbGRlciB0aGF0IGV4aXN0cyBidXQgbGFja3MgYG1haW4uanNgIGlzIGV4YWN0bHkgdGhlIHN0YXRlXG4gKiB0aGlzIGNvbW1hbmQgcmVwYWlycywgc28gcHJlc2VuY2UgXHUyMDE0IG5vdCBjb21wbGV0ZW5lc3MgXHUyMDE0IGlzIHRoZSBjcml0ZXJpb24uXG4gKlxuICogQHBhcmFtIGRlbW9WYXVsdFBhdGggLSBUaGUgZGVtbyB2YXVsdCByb290LlxuICogQHJldHVybnMgVGhlIHBsdWdpbiBpZHMsIG9yIGFuIGVtcHR5IGFycmF5IHdoZW4gdGhlIHZhdWx0IGhhcyBubyBwbHVnaW5zIGZvbGRlci5cbiAqL1xuZnVuY3Rpb24gZGlzY292ZXJEZW1vVmF1bHRQbHVnaW5JZHMoZGVtb1ZhdWx0UGF0aDogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCBwbHVnaW5zRGlyZWN0b3J5ID0gam9pbihkZW1vVmF1bHRQYXRoLCAnLm9ic2lkaWFuJywgJ3BsdWdpbnMnKTtcbiAgaWYgKCFleGlzdHNTeW5jKHBsdWdpbnNEaXJlY3RvcnkpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiByZWFkZGlyU3luYyhwbHVnaW5zRGlyZWN0b3J5LCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSkuZmlsdGVyKChlbnRyeSkgPT4gZW50cnkuaXNEaXJlY3RvcnkoKSkubWFwKChlbnRyeSkgPT4gZW50cnkubmFtZSk7XG59XG5cbi8qKlxuICogUGFyc2VzIGEgbnVtZXJpYyBDTEkgZmxhZyB2YWx1ZSwgdGhyb3dpbmcgb24gYSBub24tZmluaXRlIHJlc3VsdC5cbiAqXG4gKiBAcGFyYW0gZmxhZyAtIFRoZSBmbGFnIG5hbWUgKGZvciB0aGUgZXJyb3IgbWVzc2FnZSkuXG4gKiBAcGFyYW0gcmF3IC0gVGhlIHJhdyBzdHJpbmcgdmFsdWUuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIG51bWJlci5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgYHJhd2AgaXMgbm90IGEgZmluaXRlIG51bWJlci5cbiAqL1xuZnVuY3Rpb24gcGFyc2VOdW1iZXIoZmxhZzogc3RyaW5nLCByYXc6IHN0cmluZyk6IG51bWJlciB7XG4gIGNvbnN0IHZhbHVlID0gTnVtYmVyKHJhdyk7XG4gIGlmICghTnVtYmVyLmlzRmluaXRlKHZhbHVlKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYC0tJHtmbGFnfSBtdXN0IGJlIGEgbnVtYmVyLCBnb3Q6ICR7cmF3fWApO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSBgYm9vdHN0cmFwLWRlbW8tdmF1bHRgIHN1YmNvbW1hbmQuXG4gKlxuICogQHBhcmFtIGNvbW1hbmRBcmd1bWVudHMgLSBUaGUgc3ViY29tbWFuZCdzIGFyZ3VtZW50cyAoZXZlcnl0aGluZyBhZnRlciB0aGUgc3ViY29tbWFuZCBuYW1lKS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgaW5zdGFsbCBoYXMgZmluaXNoZWQuXG4gKiBAdGhyb3dzIEVycm9yIGlmIG5vIHBsdWdpbiBpZHMgY2FuIGJlIGRldGVybWluZWQsIG9yIGAtLXJlcG9gIC8gYC0tdmVyc2lvbmAgYXJlIHVzZWQgd2l0aCBzZXZlcmFsIHBsdWdpbnMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJ1bkJvb3RzdHJhcERlbW9WYXVsdENvbW1hbmQoY29tbWFuZEFyZ3VtZW50czogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyB2YWx1ZXMgfSA9IHBhcnNlQXJncyh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbmFtZS1yZXBsYWNlbWVudHMgLS0gYGFyZ3NgIGlzIE5vZGUncyBvd24gYHBhcnNlQXJnc2Agb3B0aW9uIG5hbWUuXG4gICAgYXJnczogY29tbWFuZEFyZ3VtZW50cyxcbiAgICBvcHRpb25zOiB7XG4gICAgICAnZGVtby12YXVsdCc6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICdmb3JjZSc6IHsgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gICAgICAncGx1Z2luJzogeyBtdWx0aXBsZTogdHJ1ZSwgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICdyZXBvJzogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgJ3ZlcnNpb24nOiB7IHR5cGU6ICdzdHJpbmcnIH1cbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGRlbW9WYXVsdFBhdGggPSByZXNvbHZlUGF0aCh2YWx1ZXNbJ2RlbW8tdmF1bHQnXSA/PyBqb2luKHByb2Nlc3MuY3dkKCksICdkZW1vLXZhdWx0JykpO1xuICBjb25zdCBwbHVnaW5JZHMgPSB2YWx1ZXMucGx1Z2luID8/IGRpc2NvdmVyRGVtb1ZhdWx0UGx1Z2luSWRzKGRlbW9WYXVsdFBhdGgpO1xuXG4gIGlmIChwbHVnaW5JZHMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYE5vIGNvbW11bml0eSBwbHVnaW5zIHRvIGluc3RhbGw6ICR7ZGVtb1ZhdWx0UGF0aH0gaGFzIG5vIC5vYnNpZGlhbi9wbHVnaW5zLyBlbnRyaWVzLiBgXG4gICAgICAgICsgJ05hbWUgdGhlbSBleHBsaWNpdGx5LCBlLmcuIC0tcGx1Z2luIGZpeC1yZXF1aXJlLW1vZHVsZXMuJ1xuICAgICk7XG4gIH1cblxuICBpZiAocGx1Z2luSWRzLmxlbmd0aCA+IDEgJiYgKHZhbHVlcy5yZXBvICE9PSB1bmRlZmluZWQgfHwgdmFsdWVzLnZlcnNpb24gIT09IHVuZGVmaW5lZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJy0tcmVwbyBhbmQgLS12ZXJzaW9uIGFwcGx5IHRvIGEgc2luZ2xlIHBsdWdpbjsgcGFzcyBleGFjdGx5IG9uZSAtLXBsdWdpbiwgb3IgcnVuIHRoZSBjb21tYW5kIG9uY2UgcGVyIHBsdWdpbi4nKTtcbiAgfVxuXG4gIGNvbnN0IGluamVjdFBsdWdpbnM6IEluamVjdFBsdWdpblBhcmFtc1tdID0gcGx1Z2luSWRzLm1hcCgocGx1Z2luSWQpID0+ICh7XG4gICAgcGx1Z2luSWQsXG4gICAgLi4uKHZhbHVlcy5yZXBvICE9PSB1bmRlZmluZWQgJiYgeyByZXBvOiB2YWx1ZXMucmVwbyB9KSxcbiAgICAuLi4odmFsdWVzLnZlcnNpb24gIT09IHVuZGVmaW5lZCAmJiB7IHZlcnNpb246IHZhbHVlcy52ZXJzaW9uIH0pXG4gIH0pKTtcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBib290c3RyYXBEZW1vVmF1bHRQbHVnaW5zKHtcbiAgICBkZW1vVmF1bHRQYXRoLFxuICAgIGluamVjdFBsdWdpbnMsXG4gICAgc2hvdWxkRm9yY2U6IHZhbHVlcy5mb3JjZSA9PT0gdHJ1ZVxuICB9KTtcblxuICBmb3IgKGNvbnN0IGluZm8gb2YgcmVzdWx0Lmluc3RhbGxlZCkge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBJbnN0YWxsZWQgJHtpbmZvLnBsdWdpbklkfSBmcm9tICR7aW5mby5yZXBvfUAke2luZm8udmVyc2lvbiA/PyAnbGF0ZXN0J306ICR7aW5mby5hc3NldE5hbWVzLmpvaW4oJywgJyl9XFxuYCk7XG4gIH1cblxuICBpZiAocmVzdWx0LnNraXBwZWRQbHVnaW5JZHMubGVuZ3RoID4gMCkge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBBbHJlYWR5IGluc3RhbGxlZCAodXNlIC0tZm9yY2UgdG8gcmUtZG93bmxvYWQpOiAke3Jlc3VsdC5za2lwcGVkUGx1Z2luSWRzLmpvaW4oJywgJyl9XFxuYCk7XG4gIH1cblxuICBpZiAocmVzdWx0Lmluc3RhbGxlZC5sZW5ndGggPT09IDApIHtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZSgnTm90aGluZyB0byBpbnN0YWxsLlxcbicpO1xuICB9XG59XG5cbi8qKlxuICogUnVucyB0aGUgZGVmYXVsdCBjb21tYW5kOiBwYXJzZXMgQ0xJIGFyZ3VtZW50cywgb3BlbnMgdGhlIGNvbm5lY3Rpb24sIHByaW50cyBpdHNcbiAqIGVuZHBvaW50LCBhbmQgYmxvY2tzIHVudGlsIGBTSUdJTlRgL2BTSUdURVJNYCBvciB0aGUgb3duZWQgT2JzaWRpYW4gd2luZG93IGlzXG4gKiBjbG9zZWQsIGRpc3Bvc2luZyB0aGUgY29ubmVjdGlvbiBvbiBzaHV0ZG93bi5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIGNvbm5lY3Rpb24gaGFzIGJlZW4gZGlzcG9zZWQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJ1bkNvbm5lY3RDb21tYW5kKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHZhbHVlcyB9ID0gcGFyc2VBcmdzKHtcbiAgICBvcHRpb25zOiB7XG4gICAgICAnY29tbWFuZC10aW1lb3V0JzogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgJ2hvc3QnOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAnbm8tcmVtb3ZlLXZhdWx0JzogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgICdvYnNpZGlhbi1pbnN0YWxsZXItdmVyc2lvbic6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICdvYnNpZGlhbi12ZXJzaW9uJzogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgJ3BvcnQnOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAndmF1bHQnOiB7IHR5cGU6ICdzdHJpbmcnIH1cbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGNvbm5lY3Rpb24gPSBhd2FpdCBjb25uZWN0VG9DZHAoYnVpbGRPcHRpb25zKHZhbHVlcykpO1xuXG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKFxuICAgICdPYnNpZGlhbiBDRFAgcmVhZHkuXFxuJ1xuICAgICAgKyBgICBwb3J0OiAgICR7U3RyaW5nKGNvbm5lY3Rpb24ucG9ydCl9XFxuYFxuICAgICAgKyBgICBjZHBVcmw6ICR7Y29ubmVjdGlvbi5jZHBVcmx9XFxuYFxuICAgICAgKyBgICB2YXVsdDogICR7Y29ubmVjdGlvbi52YXVsdC5wYXRofVxcbmBcbiAgICAgICsgJ1J1bnRpbWUgaGVscGVycyBib290c3RyYXBwZWQgYXMgd2luZG93Ll9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmcuXFxuJ1xuICAgICAgKyAnUHJlc3MgQ3RybCtDIHRvIHN0b3AuXFxuJ1xuICApO1xuXG4gIGF3YWl0IHdhaXRGb3JTaHV0ZG93bk9ySW5zdGFuY2VDbG9zZShjb25uZWN0aW9uLmNkcFVybCk7XG5cbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoJ1xcblNodXR0aW5nIGRvd25cdTIwMjZcXG4nKTtcbiAgYXdhaXQgY29ubmVjdGlvbi5kaXNwb3NlKCk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgb25jZSB0aGUgcHJvY2VzcyByZWNlaXZlcyBgU0lHSU5UYC9gU0lHVEVSTWAsIG9yIHRoZSBDRFAgZW5kcG9pbnRcbiAqIHN0b3BzIGFuc3dlcmluZyAodGhlIG93bmVkIE9ic2lkaWFuIHdpbmRvdyB3YXMgY2xvc2VkKS5cbiAqXG4gKiBAcGFyYW0gY2RwVXJsIC0gVGhlIGNvbm5lY3Rpb24ncyBDRFAgYmFzZSBVUkwgdG8gcG9sbC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb24gdGhlIGZpcnN0IHNodXRkb3duIHRyaWdnZXIuXG4gKi9cbmZ1bmN0aW9uIHdhaXRGb3JTaHV0ZG93bk9ySW5zdGFuY2VDbG9zZShjZHBVcmw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBQT0xMX0lOVEVSVkFMX0lOX01JTExJU0VDT05EUyA9IDEwMDA7XG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IHZlcnNpb25VcmwgPSBgJHtjZHBVcmx9L2pzb24vdmVyc2lvbmA7XG4gICAgbGV0IGlzU2V0dGxlZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgdGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBwcm9iZUFsaXZlKCkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAvLyBJZ25vcmUgcG9sbCBlcnJvcnMuXG4gICAgICB9KTtcbiAgICB9LCBQT0xMX0lOVEVSVkFMX0lOX01JTExJU0VDT05EUyk7XG5cbiAgICBwcm9jZXNzLm9uY2UoJ1NJR0lOVCcsIHNldHRsZSk7XG4gICAgcHJvY2Vzcy5vbmNlKCdTSUdURVJNJywgc2V0dGxlKTtcblxuICAgIGFzeW5jIGZ1bmN0aW9uIHByb2JlQWxpdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHZlcnNpb25VcmwpO1xuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgc2V0dGxlKCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBUaGUgQ0RQIHBvcnQgc3RvcHBlZCBhbnN3ZXJpbmc6IHRoZSBPYnNpZGlhbiB3aW5kb3cgd2FzIGNsb3NlZC5cbiAgICAgICAgc2V0dGxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0dGxlKCk6IHZvaWQge1xuICAgICAgaWYgKGlzU2V0dGxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpc1NldHRsZWQgPSB0cnVlO1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aW1lcik7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfVxuICB9KTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBb0JBLHFCQUdPO0FBQ1AsdUJBR087QUFDUCwwQkFBb0I7QUFDcEIsdUJBQTBCO0FBSzFCLDRCQUE2QjtBQUM3QixrQ0FBMEM7QUFFMUMsTUFBTSwrQkFBK0I7QUFDckMsTUFBTSxhQUFhLG9CQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQztBQUszQyxNQUFNLG1DQUFtQztBQUV6QyxNQUFNLFFBQVE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsaUNBTW1CLDRCQUE0QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQThCN0QsZUFBc0IsT0FBc0I7QUFDMUMsUUFBTSxDQUFDLEVBQUUsRUFBRSxhQUFhLElBQUksb0JBQUFBLFFBQVE7QUFFcEMsTUFBSSxrQkFBa0IsVUFBYSxXQUFXLElBQUksYUFBYSxHQUFHO0FBQ2hFLHdCQUFBQSxRQUFRLE9BQU8sTUFBTSxLQUFLO0FBQzFCO0FBQUEsRUFDRjtBQUVBLE1BQUksa0JBQWtCLDhCQUE4QjtBQUNsRCxVQUFNLDZCQUE2QixvQkFBQUEsUUFBUSxLQUFLLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkY7QUFBQSxFQUNGO0FBRUEsUUFBTSxrQkFBa0I7QUFDMUI7QUFRQSxTQUFTLGFBQWEsUUFBOEM7QUFDbEUsU0FBTztBQUFBLElBQ0wsR0FBSSxPQUFPLGlCQUFpQixNQUFNLFVBQWEsRUFBRSw4QkFBOEIsWUFBWSxtQkFBbUIsT0FBTyxpQkFBaUIsQ0FBQyxFQUFFO0FBQUEsSUFDekksR0FBSSxPQUFPLFNBQVMsVUFBYSxFQUFFLE1BQU0sT0FBTyxLQUFLO0FBQUEsSUFDckQsR0FBSSxPQUFPLGlCQUFpQixNQUFNLFFBQVEsRUFBRSw0QkFBNEIsTUFBTTtBQUFBLElBQzlFLEdBQUksT0FBTyw0QkFBNEIsTUFBTSxVQUFhLEVBQUUsMEJBQTBCLE9BQU8sNEJBQTRCLEVBQUU7QUFBQSxJQUMzSCxHQUFJLE9BQU8sa0JBQWtCLE1BQU0sVUFBYSxFQUFFLGlCQUFpQixPQUFPLGtCQUFrQixFQUFFO0FBQUEsSUFDOUYsR0FBSSxPQUFPLFNBQVMsVUFBYSxFQUFFLE1BQU0sWUFBWSxRQUFRLE9BQU8sSUFBSSxFQUFFO0FBQUEsSUFDMUUsR0FBSSxPQUFPLFVBQVUsVUFBYSxFQUFFLE9BQU8sT0FBTyxNQUFNO0FBQUEsRUFDMUQ7QUFDRjtBQVVBLFNBQVMsMkJBQTJCLGVBQWlDO0FBQ25FLFFBQU0sdUJBQW1CLHVCQUFLLGVBQWUsYUFBYSxTQUFTO0FBQ25FLE1BQUksS0FBQywyQkFBVyxnQkFBZ0IsR0FBRztBQUNqQyxXQUFPLENBQUM7QUFBQSxFQUNWO0FBQ0EsYUFBTyw0QkFBWSxrQkFBa0IsRUFBRSxlQUFlLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLE1BQU0sWUFBWSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsTUFBTSxJQUFJO0FBQ2hJO0FBVUEsU0FBUyxZQUFZLE1BQWMsS0FBcUI7QUFDdEQsUUFBTSxRQUFRLE9BQU8sR0FBRztBQUN4QixNQUFJLENBQUMsT0FBTyxTQUFTLEtBQUssR0FBRztBQUMzQixVQUFNLElBQUksVUFBVSxLQUFLLElBQUksMkJBQTJCLEdBQUcsRUFBRTtBQUFBLEVBQy9EO0FBQ0EsU0FBTztBQUNUO0FBU0EsZUFBZSw2QkFBNkIsa0JBQTJDO0FBQ3JGLFFBQU0sRUFBRSxPQUFPLFFBQUksNEJBQVU7QUFBQTtBQUFBLElBRTNCLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxNQUNQLGNBQWMsRUFBRSxNQUFNLFNBQVM7QUFBQSxNQUMvQixTQUFTLEVBQUUsTUFBTSxVQUFVO0FBQUEsTUFDM0IsVUFBVSxFQUFFLFVBQVUsTUFBTSxNQUFNLFNBQVM7QUFBQSxNQUMzQyxRQUFRLEVBQUUsTUFBTSxTQUFTO0FBQUEsTUFDekIsV0FBVyxFQUFFLE1BQU0sU0FBUztBQUFBLElBQzlCO0FBQUEsRUFDRixDQUFDO0FBRUQsUUFBTSxvQkFBZ0IsaUJBQUFDLFNBQVksT0FBTyxZQUFZLFNBQUssdUJBQUssb0JBQUFELFFBQVEsSUFBSSxHQUFHLFlBQVksQ0FBQztBQUMzRixRQUFNLFlBQVksT0FBTyxVQUFVLDJCQUEyQixhQUFhO0FBRTNFLE1BQUksVUFBVSxXQUFXLEdBQUc7QUFDMUIsVUFBTSxJQUFJO0FBQUEsTUFDUixvQ0FBb0MsYUFBYTtBQUFBLElBRW5EO0FBQUEsRUFDRjtBQUVBLE1BQUksVUFBVSxTQUFTLE1BQU0sT0FBTyxTQUFTLFVBQWEsT0FBTyxZQUFZLFNBQVk7QUFDdkYsVUFBTSxJQUFJLE1BQU0sK0dBQStHO0FBQUEsRUFDakk7QUFFQSxRQUFNLGdCQUFzQyxVQUFVLElBQUksQ0FBQyxjQUFjO0FBQUEsSUFDdkU7QUFBQSxJQUNBLEdBQUksT0FBTyxTQUFTLFVBQWEsRUFBRSxNQUFNLE9BQU8sS0FBSztBQUFBLElBQ3JELEdBQUksT0FBTyxZQUFZLFVBQWEsRUFBRSxTQUFTLE9BQU8sUUFBUTtBQUFBLEVBQ2hFLEVBQUU7QUFFRixRQUFNLFNBQVMsVUFBTSx1REFBMEI7QUFBQSxJQUM3QztBQUFBLElBQ0E7QUFBQSxJQUNBLGFBQWEsT0FBTyxVQUFVO0FBQUEsRUFDaEMsQ0FBQztBQUVELGFBQVcsUUFBUSxPQUFPLFdBQVc7QUFDbkMsd0JBQUFBLFFBQVEsT0FBTyxNQUFNLGFBQWEsS0FBSyxRQUFRLFNBQVMsS0FBSyxJQUFJLElBQUksS0FBSyxXQUFXLFFBQVEsS0FBSyxLQUFLLFdBQVcsS0FBSyxJQUFJLENBQUM7QUFBQSxDQUFJO0FBQUEsRUFDbEk7QUFFQSxNQUFJLE9BQU8saUJBQWlCLFNBQVMsR0FBRztBQUN0Qyx3QkFBQUEsUUFBUSxPQUFPLE1BQU0sbURBQW1ELE9BQU8saUJBQWlCLEtBQUssSUFBSSxDQUFDO0FBQUEsQ0FBSTtBQUFBLEVBQ2hIO0FBRUEsTUFBSSxPQUFPLFVBQVUsV0FBVyxHQUFHO0FBQ2pDLHdCQUFBQSxRQUFRLE9BQU8sTUFBTSx1QkFBdUI7QUFBQSxFQUM5QztBQUNGO0FBU0EsZUFBZSxvQkFBbUM7QUFDaEQsUUFBTSxFQUFFLE9BQU8sUUFBSSw0QkFBVTtBQUFBLElBQzNCLFNBQVM7QUFBQSxNQUNQLG1CQUFtQixFQUFFLE1BQU0sU0FBUztBQUFBLE1BQ3BDLFFBQVEsRUFBRSxNQUFNLFNBQVM7QUFBQSxNQUN6QixtQkFBbUIsRUFBRSxNQUFNLFVBQVU7QUFBQSxNQUNyQyw4QkFBOEIsRUFBRSxNQUFNLFNBQVM7QUFBQSxNQUMvQyxvQkFBb0IsRUFBRSxNQUFNLFNBQVM7QUFBQSxNQUNyQyxRQUFRLEVBQUUsTUFBTSxTQUFTO0FBQUEsTUFDekIsU0FBUyxFQUFFLE1BQU0sU0FBUztBQUFBLElBQzVCO0FBQUEsRUFDRixDQUFDO0FBRUQsUUFBTSxhQUFhLFVBQU0sb0NBQWEsYUFBYSxNQUFNLENBQUM7QUFFMUQsc0JBQUFBLFFBQVEsT0FBTztBQUFBLElBQ2I7QUFBQSxZQUNpQixPQUFPLFdBQVcsSUFBSSxDQUFDO0FBQUEsWUFDdkIsV0FBVyxNQUFNO0FBQUEsWUFDakIsV0FBVyxNQUFNLElBQUk7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUd4QztBQUVBLFFBQU0sK0JBQStCLFdBQVcsTUFBTTtBQUV0RCxzQkFBQUEsUUFBUSxPQUFPLE1BQU0seUJBQW9CO0FBQ3pDLFFBQU0sV0FBVyxRQUFRO0FBQzNCO0FBU0EsU0FBUywrQkFBK0IsUUFBK0I7QUFDckUsUUFBTSxnQ0FBZ0M7QUFDdEMsU0FBTyxJQUFJLFFBQWMsQ0FBQyxZQUFZO0FBQ3BDLFVBQU0sYUFBYSxHQUFHLE1BQU07QUFDNUIsUUFBSSxZQUFZO0FBRWhCLFVBQU0sUUFBUSxZQUFZLE1BQU07QUFDOUIsaUJBQVcsRUFBRSxNQUFNLE1BQU07QUFBQSxNQUV6QixDQUFDO0FBQUEsSUFDSCxHQUFHLDZCQUE2QjtBQUVoQyx3QkFBQUEsUUFBUSxLQUFLLFVBQVUsTUFBTTtBQUM3Qix3QkFBQUEsUUFBUSxLQUFLLFdBQVcsTUFBTTtBQUU5QixtQkFBZSxhQUE0QjtBQUN6QyxVQUFJO0FBQ0YsY0FBTSxXQUFXLE1BQU0sTUFBTSxVQUFVO0FBQ3ZDLFlBQUksQ0FBQyxTQUFTLElBQUk7QUFDaEIsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRixRQUFRO0FBRU4sZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBRUEsYUFBUyxTQUFlO0FBQ3RCLFVBQUksV0FBVztBQUNiO0FBQUEsTUFDRjtBQUNBLGtCQUFZO0FBQ1osb0JBQWMsS0FBSztBQUNuQixjQUFRO0FBQUEsSUFDVjtBQUFBLEVBQ0YsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogWyJwcm9jZXNzIiwgInJlc29sdmVQYXRoIl0KfQo=
198
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NsaS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBwYWNrYWdlJ3MgQ0xJLiBUd28gY29tbWFuZHM6XG4gKlxuICogLSBUaGUgKipkZWZhdWx0KiogKG5vIHN1YmNvbW1hbmQpIFx1MjAxNCBhIHRoaW4gQ0xJIG92ZXIge0BsaW5rIGNvbm5lY3RUb0NkcH06IGxhdW5jaGVzXG4gKiAgIChvciBhdHRhY2hlcyB0bykgYSBDRFAtZW5hYmxlZCBPYnNpZGlhbiBpbnN0YW5jZSB3aXRoIHRoZSBydW50aW1lIGhlbHBlclxuICogICBuYW1lc3BhY2UgYm9vdHN0cmFwcGVkLCBwcmludHMgdGhlIGNob3NlbiBDRFAgcG9ydC9VUkwsIGFuZCBzdGF5cyBhbGl2ZSB1bnRpbFxuICogICBpbnRlcnJ1cHRlZCBzbyBhbiBleHRlcm5hbCB0b29sIChyYXcgQ0RQIGB3c2AsIERldlRvb2xzLCBcdTIwMjYpIGNhbiBhdHRhY2guXG4gKiAtICoqYGJvb3RzdHJhcC1kZW1vLXZhdWx0YCoqIFx1MjAxNCBpbnN0YWxscyBhIGRlbW8gdmF1bHQncyBpbmplY3RlZCBjb21tdW5pdHkgcGx1Z2luc1xuICogICBoZWFkbGVzc2x5IChzZWUgYGRlbW8tdmF1bHQtYm9vdHN0cmFwLnRzYCkuIFRoaXMgaXMgdGhlIGNvcHktcGFzdGVhYmxlIHJlbWVkeVxuICogICBgYnVpbGREZW1vVmF1bHRQb3B1bGF0ZWAncyB0aHJvdyBuYW1lcywgcmVwbGFjaW5nIHRoZSBHVUktb25seSBcIm9wZW5cbiAqICAgYGRlbW8tdmF1bHQvYCBpbiBPYnNpZGlhbiBvbmNlXCIgc3RlcCB0aGF0IGEgZnJlc2ggY2xvbmUgb3IgQ0kgY2Fubm90IHBlcmZvcm0uXG4gKlxuICogQW55dGhpbmcgdGhhdCBpcyBub3QgYSByZWNvZ25pemVkIHN1YmNvbW1hbmQgZmFsbHMgdGhyb3VnaCB0byB0aGUgZGVmYXVsdFxuICogY29tbWFuZCwgc28gYG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcgLS12YXVsdCBcdTIwMjZgIGtlZXBzIHdvcmtpbmcgdW5jaGFuZ2VkLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIENMSSAobGF1bmNoZXMgT2JzaWRpYW4gLyBDRFAsIGRvd25sb2FkcyByZWxlYXNlcykgY292ZXJlZCBtYW51YWxseSwgbm90IGJ5IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB7XG4gIGV4aXN0c1N5bmMsXG4gIHJlYWRkaXJTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgam9pbixcbiAgcmVzb2x2ZSBhcyByZXNvbHZlUGF0aFxufSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCB7IHBhcnNlQXJncyB9IGZyb20gJ25vZGU6dXRpbCc7XG5cbmltcG9ydCB0eXBlIHsgQ29ubmVjdFRvQ2RwT3B0aW9ucyB9IGZyb20gJy4vY29ubmVjdC10by1jZHAuY2pzJztcbmltcG9ydCB0eXBlIHsgSW5qZWN0UGx1Z2luUGFyYW1zIH0gZnJvbSAnLi9kZW1vLXZhdWx0LXBvcHVsYXRlLmNqcyc7XG5cbmltcG9ydCB7IGNvbm5lY3RUb0NkcCB9IGZyb20gJy4vY29ubmVjdC10by1jZHAuY2pzJztcbmltcG9ydCB7IGJvb3RzdHJhcERlbW9WYXVsdFBsdWdpbnMgfSBmcm9tICcuL2RlbW8tdmF1bHQtYm9vdHN0cmFwLmNqcyc7XG5cbmNvbnN0IEJPT1RTVFJBUF9ERU1PX1ZBVUxUX0NPTU1BTkQgPSAnYm9vdHN0cmFwLWRlbW8tdmF1bHQnO1xuY29uc3QgSEVMUF9GTEFHUyA9IG5ldyBTZXQoWyctLWhlbHAnLCAnLWgnXSk7XG5cbi8qKlxuSW5kZXggb2YgYSBzdWJjb21tYW5kJ3MgZmlyc3QgYXJndW1lbnQgaW4gYHByb2Nlc3MuYXJndmAgKGBbbm9kZSwgc2NyaXB0LCBzdWJjb21tYW5kLCBcdTIwMjZdYCkuXG4gKi9cbmNvbnN0IFNVQkNPTU1BTkRfQVJHVU1FTlRTX1NUQVJUX0lOREVYID0gMztcblxuY29uc3QgVVNBR0UgPSBgVXNhZ2U6XG4gIG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcgW29wdGlvbnNdXG4gICAgICBMYXVuY2ggKG9yIGF0dGFjaCB0bykgYSBDRFAtZW5hYmxlZCBPYnNpZGlhbiBpbnN0YW5jZSBhbmQgcHJpbnQgaXRzIGVuZHBvaW50LlxuICAgICAgT3B0aW9uczogLS12YXVsdCwgLS1wb3J0LCAtLWhvc3QsIC0tb2JzaWRpYW4tdmVyc2lvbiwgLS1vYnNpZGlhbi1pbnN0YWxsZXItdmVyc2lvbixcbiAgICAgICAgICAgICAgIC0tY29tbWFuZC10aW1lb3V0LCAtLW5vLXJlbW92ZS12YXVsdFxuXG4gIG9ic2lkaWFuLWludGVncmF0aW9uLXRlc3RpbmcgJHtCT09UU1RSQVBfREVNT19WQVVMVF9DT01NQU5EfSBbb3B0aW9uc11cbiAgICAgIEluc3RhbGwgYSBkZW1vIHZhdWx0J3MgaW5qZWN0ZWQgY29tbXVuaXR5IHBsdWdpbnMgZnJvbSB0aGVpciBwdWJsaXNoZWQgR2l0SHViXG4gICAgICByZWxlYXNlcywgc28gaW50ZWdyYXRpb24gdGVzdHMgcnVuIHdpdGhvdXQgb3BlbmluZyBPYnNpZGlhbiBieSBoYW5kLlxuICAgICAgT3B0aW9uczogLS1kZW1vLXZhdWx0IDxwYXRoPiAgIGRlbW8gdmF1bHQgZGlyZWN0b3J5IChkZWZhdWx0OiAuL2RlbW8tdmF1bHQpXG4gICAgICAgICAgICAgICAtLXBsdWdpbiA8aWQ+ICAgICAgICAgcGx1Z2luIGlkIHRvIGluc3RhbGwgKHJlcGVhdGFibGU7IGRlZmF1bHQ6IGV2ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgYWxyZWFkeSBwcmVzZW50IHVuZGVyIC5vYnNpZGlhbi9wbHVnaW5zLylcbiAgICAgICAgICAgICAgIC0tcmVwbyA8b3duZXIvbmFtZT4gICBvdmVycmlkZSB0aGUgcmVnaXN0cnkgbG9va3VwIChzaW5nbGUgLS1wbHVnaW4gb25seSlcbiAgICAgICAgICAgICAgIC0tdmVyc2lvbiA8dGFnPiAgICAgICBwaW4gYSByZWxlYXNlIHRhZyAoc2luZ2xlIC0tcGx1Z2luIG9ubHkpXG4gICAgICAgICAgICAgICAtLWZvcmNlICAgICAgICAgICAgICAgcmUtZG93bmxvYWQgcGx1Z2lucyB0aGF0IGFyZSBhbHJlYWR5IGluc3RhbGxlZFxuYDtcblxuLyoqXG4gKiBUaGUgc2hhcGUgb2YgdGhlIHBhcnNlZCBDTEkgZmxhZyB2YWx1ZXMuXG4gKi9cbmludGVyZmFjZSBQYXJzZWRDbGlWYWx1ZXMge1xuICAnY29tbWFuZC10aW1lb3V0Jz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgJ2hvc3QnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAnbm8tcmVtb3ZlLXZhdWx0Jz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICdvYnNpZGlhbi1pbnN0YWxsZXItdmVyc2lvbic/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICdvYnNpZGlhbi12ZXJzaW9uJz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgJ3BvcnQnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAndmF1bHQnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIERpc3BhdGNoZXMgdG8gdGhlIHJlcXVlc3RlZCBzdWJjb21tYW5kLCBmYWxsaW5nIHRocm91Z2ggdG8gdGhlIGRlZmF1bHQgQ0RQXG4gKiBjb21tYW5kIGZvciBhbnl0aGluZyB0aGF0IGlzIG5vdCBvbmUuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBjaG9zZW4gY29tbWFuZCBoYXMgZmluaXNoZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWluKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBbLCAsIGZpcnN0QXJndW1lbnRdID0gcHJvY2Vzcy5hcmd2O1xuXG4gIGlmIChmaXJzdEFyZ3VtZW50ICE9PSB1bmRlZmluZWQgJiYgSEVMUF9GTEFHUy5oYXMoZmlyc3RBcmd1bWVudCkpIHtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShVU0FHRSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGZpcnN0QXJndW1lbnQgPT09IEJPT1RTVFJBUF9ERU1PX1ZBVUxUX0NPTU1BTkQpIHtcbiAgICBhd2FpdCBydW5Cb290c3RyYXBEZW1vVmF1bHRDb21tYW5kKHByb2Nlc3MuYXJndi5zbGljZShTVUJDT01NQU5EX0FSR1VNRU5UU19TVEFSVF9JTkRFWCkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGF3YWl0IHJ1bkNvbm5lY3RDb21tYW5kKCk7XG59XG5cbi8qKlxuICogQnVpbGRzIHtAbGluayBDb25uZWN0VG9DZHBPcHRpb25zfSBmcm9tIHBhcnNlZCBDTEkgZmxhZyB2YWx1ZXMuXG4gKlxuICogQHBhcmFtIHZhbHVlcyAtIFRoZSBwYXJzZWQgYHBhcnNlQXJnc2AgdmFsdWVzLlxuICogQHJldHVybnMgVGhlIGNvbm5lY3Rpb24gb3B0aW9ucy5cbiAqL1xuZnVuY3Rpb24gYnVpbGRPcHRpb25zKHZhbHVlczogUGFyc2VkQ2xpVmFsdWVzKTogQ29ubmVjdFRvQ2RwT3B0aW9ucyB7XG4gIHJldHVybiB7XG4gICAgLi4uKHZhbHVlc1snY29tbWFuZC10aW1lb3V0J10gIT09IHVuZGVmaW5lZCAmJiB7IGNvbW1hbmRUaW1lb3V0SW5NaWxsaXNlY29uZHM6IHBhcnNlTnVtYmVyKCdjb21tYW5kLXRpbWVvdXQnLCB2YWx1ZXNbJ2NvbW1hbmQtdGltZW91dCddKSB9KSxcbiAgICAuLi4odmFsdWVzLmhvc3QgIT09IHVuZGVmaW5lZCAmJiB7IGhvc3Q6IHZhbHVlcy5ob3N0IH0pLFxuICAgIC4uLih2YWx1ZXNbJ25vLXJlbW92ZS12YXVsdCddID09PSB0cnVlICYmIHsgc2hvdWxkUmVtb3ZlVmF1bHRPbkRpc3Bvc2U6IGZhbHNlIH0pLFxuICAgIC4uLih2YWx1ZXNbJ29ic2lkaWFuLWluc3RhbGxlci12ZXJzaW9uJ10gIT09IHVuZGVmaW5lZCAmJiB7IG9ic2lkaWFuSW5zdGFsbGVyVmVyc2lvbjogdmFsdWVzWydvYnNpZGlhbi1pbnN0YWxsZXItdmVyc2lvbiddIH0pLFxuICAgIC4uLih2YWx1ZXNbJ29ic2lkaWFuLXZlcnNpb24nXSAhPT0gdW5kZWZpbmVkICYmIHsgb2JzaWRpYW5WZXJzaW9uOiB2YWx1ZXNbJ29ic2lkaWFuLXZlcnNpb24nXSB9KSxcbiAgICAuLi4odmFsdWVzLnBvcnQgIT09IHVuZGVmaW5lZCAmJiB7IHBvcnQ6IHBhcnNlTnVtYmVyKCdwb3J0JywgdmFsdWVzLnBvcnQpIH0pLFxuICAgIC4uLih2YWx1ZXMudmF1bHQgIT09IHVuZGVmaW5lZCAmJiB7IHZhdWx0OiB2YWx1ZXMudmF1bHQgfSlcbiAgfTtcbn1cblxuLyoqXG4gKiBMaXN0cyB0aGUgcGx1Z2luIGlkcyBhbHJlYWR5IHByZXNlbnQgdW5kZXIgYSBkZW1vIHZhdWx0J3MgYC5vYnNpZGlhbi9wbHVnaW5zL2AsIHVzZWQgYXMgdGhlIGRlZmF1bHRcbiAqIGluc3RhbGwgc2V0IHdoZW4gYC0tcGx1Z2luYCBpcyBvbWl0dGVkLiBBIGZvbGRlciB0aGF0IGV4aXN0cyBidXQgbGFja3MgYG1haW4uanNgIGlzIGV4YWN0bHkgdGhlIHN0YXRlXG4gKiB0aGlzIGNvbW1hbmQgcmVwYWlycywgc28gcHJlc2VuY2UgXHUyMDE0IG5vdCBjb21wbGV0ZW5lc3MgXHUyMDE0IGlzIHRoZSBjcml0ZXJpb24uXG4gKlxuICogQHBhcmFtIGRlbW9WYXVsdFBhdGggLSBUaGUgZGVtbyB2YXVsdCByb290LlxuICogQHJldHVybnMgVGhlIHBsdWdpbiBpZHMsIG9yIGFuIGVtcHR5IGFycmF5IHdoZW4gdGhlIHZhdWx0IGhhcyBubyBwbHVnaW5zIGZvbGRlci5cbiAqL1xuZnVuY3Rpb24gZGlzY292ZXJEZW1vVmF1bHRQbHVnaW5JZHMoZGVtb1ZhdWx0UGF0aDogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCBwbHVnaW5zRGlyZWN0b3J5ID0gam9pbihkZW1vVmF1bHRQYXRoLCAnLm9ic2lkaWFuJywgJ3BsdWdpbnMnKTtcbiAgcmV0dXJuIGV4aXN0c1N5bmMocGx1Z2luc0RpcmVjdG9yeSkgPyByZWFkZGlyU3luYyhwbHVnaW5zRGlyZWN0b3J5LCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSkuZmlsdGVyKChlbnRyeSkgPT4gZW50cnkuaXNEaXJlY3RvcnkoKSkubWFwKChlbnRyeSkgPT4gZW50cnkubmFtZSkgOiBbXTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBudW1lcmljIENMSSBmbGFnIHZhbHVlLCB0aHJvd2luZyBvbiBhIG5vbi1maW5pdGUgcmVzdWx0LlxuICpcbiAqIEBwYXJhbSBmbGFnIC0gVGhlIGZsYWcgbmFtZSAoZm9yIHRoZSBlcnJvciBtZXNzYWdlKS5cbiAqIEBwYXJhbSByYXcgLSBUaGUgcmF3IHN0cmluZyB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgbnVtYmVyLlxuICogQHRocm93cyBFcnJvciBpZiBgcmF3YCBpcyBub3QgYSBmaW5pdGUgbnVtYmVyLlxuICovXG5mdW5jdGlvbiBwYXJzZU51bWJlcihmbGFnOiBzdHJpbmcsIHJhdzogc3RyaW5nKTogbnVtYmVyIHtcbiAgY29uc3QgdmFsdWUgPSBOdW1iZXIocmF3KTtcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgLS0ke2ZsYWd9IG11c3QgYmUgYSBudW1iZXIsIGdvdDogJHtyYXd9YCk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vKipcbiAqIFJ1bnMgdGhlIGBib290c3RyYXAtZGVtby12YXVsdGAgc3ViY29tbWFuZC5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZEFyZ3VtZW50cyAtIFRoZSBzdWJjb21tYW5kJ3MgYXJndW1lbnRzIChldmVyeXRoaW5nIGFmdGVyIHRoZSBzdWJjb21tYW5kIG5hbWUpLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBpbnN0YWxsIGhhcyBmaW5pc2hlZC5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgbm8gcGx1Z2luIGlkcyBjYW4gYmUgZGV0ZXJtaW5lZCwgb3IgYC0tcmVwb2AgLyBgLS12ZXJzaW9uYCBhcmUgdXNlZCB3aXRoIHNldmVyYWwgcGx1Z2lucy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcnVuQm9vdHN0cmFwRGVtb1ZhdWx0Q29tbWFuZChjb21tYW5kQXJndW1lbnRzOiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHZhbHVlcyB9ID0gcGFyc2VBcmdzKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uYW1lLXJlcGxhY2VtZW50cyAtLSBgYXJnc2AgaXMgTm9kZSdzIG93biBgcGFyc2VBcmdzYCBvcHRpb24gbmFtZS5cbiAgICBhcmdzOiBjb21tYW5kQXJndW1lbnRzLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgICdkZW1vLXZhdWx0JzogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgJ2ZvcmNlJzogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgICdwbHVnaW4nOiB7IG11bHRpcGxlOiB0cnVlLCB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgJ3JlcG8nOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAndmVyc2lvbic6IHsgdHlwZTogJ3N0cmluZycgfVxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgZGVtb1ZhdWx0UGF0aCA9IHJlc29sdmVQYXRoKHZhbHVlc1snZGVtby12YXVsdCddID8/IGpvaW4ocHJvY2Vzcy5jd2QoKSwgJ2RlbW8tdmF1bHQnKSk7XG4gIGNvbnN0IHBsdWdpbklkcyA9IHZhbHVlcy5wbHVnaW4gPz8gZGlzY292ZXJEZW1vVmF1bHRQbHVnaW5JZHMoZGVtb1ZhdWx0UGF0aCk7XG5cbiAgaWYgKHBsdWdpbklkcy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgTm8gY29tbXVuaXR5IHBsdWdpbnMgdG8gaW5zdGFsbDogJHtkZW1vVmF1bHRQYXRofSBoYXMgbm8gLm9ic2lkaWFuL3BsdWdpbnMvIGVudHJpZXMuIGBcbiAgICAgICAgKyAnTmFtZSB0aGVtIGV4cGxpY2l0bHksIGUuZy4gLS1wbHVnaW4gZml4LXJlcXVpcmUtbW9kdWxlcy4nXG4gICAgKTtcbiAgfVxuXG4gIGlmIChwbHVnaW5JZHMubGVuZ3RoID4gMSAmJiAodmFsdWVzLnJlcG8gIT09IHVuZGVmaW5lZCB8fCB2YWx1ZXMudmVyc2lvbiAhPT0gdW5kZWZpbmVkKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignLS1yZXBvIGFuZCAtLXZlcnNpb24gYXBwbHkgdG8gYSBzaW5nbGUgcGx1Z2luOyBwYXNzIGV4YWN0bHkgb25lIC0tcGx1Z2luLCBvciBydW4gdGhlIGNvbW1hbmQgb25jZSBwZXIgcGx1Z2luLicpO1xuICB9XG5cbiAgY29uc3QgaW5qZWN0UGx1Z2luczogSW5qZWN0UGx1Z2luUGFyYW1zW10gPSBwbHVnaW5JZHMubWFwKChwbHVnaW5JZCkgPT4gKHtcbiAgICBwbHVnaW5JZCxcbiAgICAuLi4odmFsdWVzLnJlcG8gIT09IHVuZGVmaW5lZCAmJiB7IHJlcG86IHZhbHVlcy5yZXBvIH0pLFxuICAgIC4uLih2YWx1ZXMudmVyc2lvbiAhPT0gdW5kZWZpbmVkICYmIHsgdmVyc2lvbjogdmFsdWVzLnZlcnNpb24gfSlcbiAgfSkpO1xuXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJvb3RzdHJhcERlbW9WYXVsdFBsdWdpbnMoe1xuICAgIGRlbW9WYXVsdFBhdGgsXG4gICAgaW5qZWN0UGx1Z2lucyxcbiAgICBzaG91bGRGb3JjZTogdmFsdWVzLmZvcmNlID09PSB0cnVlXG4gIH0pO1xuXG4gIGZvciAoY29uc3QgaW5mbyBvZiByZXN1bHQuaW5zdGFsbGVkKSB7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYEluc3RhbGxlZCAke2luZm8ucGx1Z2luSWR9IGZyb20gJHtpbmZvLnJlcG99QCR7aW5mby52ZXJzaW9uID8/ICdsYXRlc3QnfTogJHtpbmZvLmFzc2V0TmFtZXMuam9pbignLCAnKX1cXG5gKTtcbiAgfVxuXG4gIGlmIChyZXN1bHQuc2tpcHBlZFBsdWdpbklkcy5sZW5ndGggPiAwKSB7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYEFscmVhZHkgaW5zdGFsbGVkICh1c2UgLS1mb3JjZSB0byByZS1kb3dubG9hZCk6ICR7cmVzdWx0LnNraXBwZWRQbHVnaW5JZHMuam9pbignLCAnKX1cXG5gKTtcbiAgfVxuXG4gIGlmIChyZXN1bHQuaW5zdGFsbGVkLmxlbmd0aCA9PT0gMCkge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKCdOb3RoaW5nIHRvIGluc3RhbGwuXFxuJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBSdW5zIHRoZSBkZWZhdWx0IGNvbW1hbmQ6IHBhcnNlcyBDTEkgYXJndW1lbnRzLCBvcGVucyB0aGUgY29ubmVjdGlvbiwgcHJpbnRzIGl0c1xuICogZW5kcG9pbnQsIGFuZCBibG9ja3MgdW50aWwgYFNJR0lOVGAvYFNJR1RFUk1gIG9yIHRoZSBvd25lZCBPYnNpZGlhbiB3aW5kb3cgaXNcbiAqIGNsb3NlZCwgZGlzcG9zaW5nIHRoZSBjb25uZWN0aW9uIG9uIHNodXRkb3duLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgY29ubmVjdGlvbiBoYXMgYmVlbiBkaXNwb3NlZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcnVuQ29ubmVjdENvbW1hbmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgdmFsdWVzIH0gPSBwYXJzZUFyZ3Moe1xuICAgIG9wdGlvbnM6IHtcbiAgICAgICdjb21tYW5kLXRpbWVvdXQnOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAnaG9zdCc6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICduby1yZW1vdmUtdmF1bHQnOiB7IHR5cGU6ICdib29sZWFuJyB9LFxuICAgICAgJ29ic2lkaWFuLWluc3RhbGxlci12ZXJzaW9uJzogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgJ29ic2lkaWFuLXZlcnNpb24nOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAncG9ydCc6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICd2YXVsdCc6IHsgdHlwZTogJ3N0cmluZycgfVxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgY29ubmVjdGlvbiA9IGF3YWl0IGNvbm5lY3RUb0NkcChidWlsZE9wdGlvbnModmFsdWVzKSk7XG5cbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoXG4gICAgJ09ic2lkaWFuIENEUCByZWFkeS5cXG4nXG4gICAgICArIGAgIHBvcnQ6ICAgJHtTdHJpbmcoY29ubmVjdGlvbi5wb3J0KX1cXG5gXG4gICAgICArIGAgIGNkcFVybDogJHtjb25uZWN0aW9uLmNkcFVybH1cXG5gXG4gICAgICArIGAgIHZhdWx0OiAgJHtjb25uZWN0aW9uLnZhdWx0LnBhdGh9XFxuYFxuICAgICAgKyAnUnVudGltZSBoZWxwZXJzIGJvb3RzdHJhcHBlZCBhcyB3aW5kb3cuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZy5cXG4nXG4gICAgICArICdQcmVzcyBDdHJsK0MgdG8gc3RvcC5cXG4nXG4gICk7XG5cbiAgYXdhaXQgd2FpdEZvclNodXRkb3duT3JJbnN0YW5jZUNsb3NlKGNvbm5lY3Rpb24uY2RwVXJsKTtcblxuICBwcm9jZXNzLnN0ZG91dC53cml0ZSgnXFxuU2h1dHRpbmcgZG93blx1MjAyNlxcbicpO1xuICBhd2FpdCBjb25uZWN0aW9uLmRpc3Bvc2UoKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBvbmNlIHRoZSBwcm9jZXNzIHJlY2VpdmVzIGBTSUdJTlRgL2BTSUdURVJNYCwgb3IgdGhlIENEUCBlbmRwb2ludFxuICogc3RvcHMgYW5zd2VyaW5nICh0aGUgb3duZWQgT2JzaWRpYW4gd2luZG93IHdhcyBjbG9zZWQpLlxuICpcbiAqIEBwYXJhbSBjZHBVcmwgLSBUaGUgY29ubmVjdGlvbidzIENEUCBiYXNlIFVSTCB0byBwb2xsLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbiB0aGUgZmlyc3Qgc2h1dGRvd24gdHJpZ2dlci5cbiAqL1xuZnVuY3Rpb24gd2FpdEZvclNodXRkb3duT3JJbnN0YW5jZUNsb3NlKGNkcFVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IFBPTExfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTID0gMTAwMDtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgdmVyc2lvblVybCA9IGAke2NkcFVybH0vanNvbi92ZXJzaW9uYDtcbiAgICBsZXQgaXNTZXR0bGVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB0aW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHByb2JlQWxpdmUoKS5jYXRjaCgoKSA9PiB7XG4gICAgICAgIC8vIElnbm9yZSBwb2xsIGVycm9ycy5cbiAgICAgIH0pO1xuICAgIH0sIFBPTExfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTKTtcblxuICAgIHByb2Nlc3Mub25jZSgnU0lHSU5UJywgc2V0dGxlKTtcbiAgICBwcm9jZXNzLm9uY2UoJ1NJR1RFUk0nLCBzZXR0bGUpO1xuXG4gICAgYXN5bmMgZnVuY3Rpb24gcHJvYmVBbGl2ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godmVyc2lvblVybCk7XG4gICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICBzZXR0bGUoKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIFRoZSBDRFAgcG9ydCBzdG9wcGVkIGFuc3dlcmluZzogdGhlIE9ic2lkaWFuIHdpbmRvdyB3YXMgY2xvc2VkLlxuICAgICAgICBzZXR0bGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXR0bGUoKTogdm9pZCB7XG4gICAgICBpZiAoaXNTZXR0bGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlzU2V0dGxlZCA9IHRydWU7XG4gICAgICBjbGVhckludGVydmFsKHRpbWVyKTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQkEscUJBR087QUFDUCx1QkFHTztBQUNQLDBCQUFvQjtBQUNwQix1QkFBMEI7QUFLMUIsNEJBQTZCO0FBQzdCLGtDQUEwQztBQUUxQyxNQUFNLCtCQUErQjtBQUNyQyxNQUFNLGFBQWEsb0JBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDO0FBSzNDLE1BQU0sbUNBQW1DO0FBRXpDLE1BQU0sUUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQ0FNbUIsNEJBQTRCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBOEI3RCxlQUFzQixPQUFzQjtBQUMxQyxRQUFNLENBQUMsRUFBRSxFQUFFLGFBQWEsSUFBSSxvQkFBQUEsUUFBUTtBQUVwQyxNQUFJLGtCQUFrQixVQUFhLFdBQVcsSUFBSSxhQUFhLEdBQUc7QUFDaEUsd0JBQUFBLFFBQVEsT0FBTyxNQUFNLEtBQUs7QUFDMUI7QUFBQSxFQUNGO0FBRUEsTUFBSSxrQkFBa0IsOEJBQThCO0FBQ2xELFVBQU0sNkJBQTZCLG9CQUFBQSxRQUFRLEtBQUssTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLGtCQUFrQjtBQUMxQjtBQVFBLFNBQVMsYUFBYSxRQUE4QztBQUNsRSxTQUFPO0FBQUEsSUFDTCxHQUFJLE9BQU8saUJBQWlCLE1BQU0sVUFBYSxFQUFFLDhCQUE4QixZQUFZLG1CQUFtQixPQUFPLGlCQUFpQixDQUFDLEVBQUU7QUFBQSxJQUN6SSxHQUFJLE9BQU8sU0FBUyxVQUFhLEVBQUUsTUFBTSxPQUFPLEtBQUs7QUFBQSxJQUNyRCxHQUFJLE9BQU8saUJBQWlCLE1BQU0sUUFBUSxFQUFFLDRCQUE0QixNQUFNO0FBQUEsSUFDOUUsR0FBSSxPQUFPLDRCQUE0QixNQUFNLFVBQWEsRUFBRSwwQkFBMEIsT0FBTyw0QkFBNEIsRUFBRTtBQUFBLElBQzNILEdBQUksT0FBTyxrQkFBa0IsTUFBTSxVQUFhLEVBQUUsaUJBQWlCLE9BQU8sa0JBQWtCLEVBQUU7QUFBQSxJQUM5RixHQUFJLE9BQU8sU0FBUyxVQUFhLEVBQUUsTUFBTSxZQUFZLFFBQVEsT0FBTyxJQUFJLEVBQUU7QUFBQSxJQUMxRSxHQUFJLE9BQU8sVUFBVSxVQUFhLEVBQUUsT0FBTyxPQUFPLE1BQU07QUFBQSxFQUMxRDtBQUNGO0FBVUEsU0FBUywyQkFBMkIsZUFBaUM7QUFDbkUsUUFBTSx1QkFBbUIsdUJBQUssZUFBZSxhQUFhLFNBQVM7QUFDbkUsYUFBTywyQkFBVyxnQkFBZ0IsUUFBSSw0QkFBWSxrQkFBa0IsRUFBRSxlQUFlLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLE1BQU0sWUFBWSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsTUFBTSxJQUFJLElBQUksQ0FBQztBQUNwSztBQVVBLFNBQVMsWUFBWSxNQUFjLEtBQXFCO0FBQ3RELFFBQU0sUUFBUSxPQUFPLEdBQUc7QUFDeEIsTUFBSSxDQUFDLE9BQU8sU0FBUyxLQUFLLEdBQUc7QUFDM0IsVUFBTSxJQUFJLFVBQVUsS0FBSyxJQUFJLDJCQUEyQixHQUFHLEVBQUU7QUFBQSxFQUMvRDtBQUNBLFNBQU87QUFDVDtBQVNBLGVBQWUsNkJBQTZCLGtCQUEyQztBQUNyRixRQUFNLEVBQUUsT0FBTyxRQUFJLDRCQUFVO0FBQUE7QUFBQSxJQUUzQixNQUFNO0FBQUEsSUFDTixTQUFTO0FBQUEsTUFDUCxjQUFjLEVBQUUsTUFBTSxTQUFTO0FBQUEsTUFDL0IsU0FBUyxFQUFFLE1BQU0sVUFBVTtBQUFBLE1BQzNCLFVBQVUsRUFBRSxVQUFVLE1BQU0sTUFBTSxTQUFTO0FBQUEsTUFDM0MsUUFBUSxFQUFFLE1BQU0sU0FBUztBQUFBLE1BQ3pCLFdBQVcsRUFBRSxNQUFNLFNBQVM7QUFBQSxJQUM5QjtBQUFBLEVBQ0YsQ0FBQztBQUVELFFBQU0sb0JBQWdCLGlCQUFBQyxTQUFZLE9BQU8sWUFBWSxTQUFLLHVCQUFLLG9CQUFBRCxRQUFRLElBQUksR0FBRyxZQUFZLENBQUM7QUFDM0YsUUFBTSxZQUFZLE9BQU8sVUFBVSwyQkFBMkIsYUFBYTtBQUUzRSxNQUFJLFVBQVUsV0FBVyxHQUFHO0FBQzFCLFVBQU0sSUFBSTtBQUFBLE1BQ1Isb0NBQW9DLGFBQWE7QUFBQSxJQUVuRDtBQUFBLEVBQ0Y7QUFFQSxNQUFJLFVBQVUsU0FBUyxNQUFNLE9BQU8sU0FBUyxVQUFhLE9BQU8sWUFBWSxTQUFZO0FBQ3ZGLFVBQU0sSUFBSSxNQUFNLCtHQUErRztBQUFBLEVBQ2pJO0FBRUEsUUFBTSxnQkFBc0MsVUFBVSxJQUFJLENBQUMsY0FBYztBQUFBLElBQ3ZFO0FBQUEsSUFDQSxHQUFJLE9BQU8sU0FBUyxVQUFhLEVBQUUsTUFBTSxPQUFPLEtBQUs7QUFBQSxJQUNyRCxHQUFJLE9BQU8sWUFBWSxVQUFhLEVBQUUsU0FBUyxPQUFPLFFBQVE7QUFBQSxFQUNoRSxFQUFFO0FBRUYsUUFBTSxTQUFTLFVBQU0sdURBQTBCO0FBQUEsSUFDN0M7QUFBQSxJQUNBO0FBQUEsSUFDQSxhQUFhLE9BQU8sVUFBVTtBQUFBLEVBQ2hDLENBQUM7QUFFRCxhQUFXLFFBQVEsT0FBTyxXQUFXO0FBQ25DLHdCQUFBQSxRQUFRLE9BQU8sTUFBTSxhQUFhLEtBQUssUUFBUSxTQUFTLEtBQUssSUFBSSxJQUFJLEtBQUssV0FBVyxRQUFRLEtBQUssS0FBSyxXQUFXLEtBQUssSUFBSSxDQUFDO0FBQUEsQ0FBSTtBQUFBLEVBQ2xJO0FBRUEsTUFBSSxPQUFPLGlCQUFpQixTQUFTLEdBQUc7QUFDdEMsd0JBQUFBLFFBQVEsT0FBTyxNQUFNLG1EQUFtRCxPQUFPLGlCQUFpQixLQUFLLElBQUksQ0FBQztBQUFBLENBQUk7QUFBQSxFQUNoSDtBQUVBLE1BQUksT0FBTyxVQUFVLFdBQVcsR0FBRztBQUNqQyx3QkFBQUEsUUFBUSxPQUFPLE1BQU0sdUJBQXVCO0FBQUEsRUFDOUM7QUFDRjtBQVNBLGVBQWUsb0JBQW1DO0FBQ2hELFFBQU0sRUFBRSxPQUFPLFFBQUksNEJBQVU7QUFBQSxJQUMzQixTQUFTO0FBQUEsTUFDUCxtQkFBbUIsRUFBRSxNQUFNLFNBQVM7QUFBQSxNQUNwQyxRQUFRLEVBQUUsTUFBTSxTQUFTO0FBQUEsTUFDekIsbUJBQW1CLEVBQUUsTUFBTSxVQUFVO0FBQUEsTUFDckMsOEJBQThCLEVBQUUsTUFBTSxTQUFTO0FBQUEsTUFDL0Msb0JBQW9CLEVBQUUsTUFBTSxTQUFTO0FBQUEsTUFDckMsUUFBUSxFQUFFLE1BQU0sU0FBUztBQUFBLE1BQ3pCLFNBQVMsRUFBRSxNQUFNLFNBQVM7QUFBQSxJQUM1QjtBQUFBLEVBQ0YsQ0FBQztBQUVELFFBQU0sYUFBYSxVQUFNLG9DQUFhLGFBQWEsTUFBTSxDQUFDO0FBRTFELHNCQUFBQSxRQUFRLE9BQU87QUFBQSxJQUNiO0FBQUEsWUFDaUIsT0FBTyxXQUFXLElBQUksQ0FBQztBQUFBLFlBQ3ZCLFdBQVcsTUFBTTtBQUFBLFlBQ2pCLFdBQVcsTUFBTSxJQUFJO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFHeEM7QUFFQSxRQUFNLCtCQUErQixXQUFXLE1BQU07QUFFdEQsc0JBQUFBLFFBQVEsT0FBTyxNQUFNLHlCQUFvQjtBQUN6QyxRQUFNLFdBQVcsUUFBUTtBQUMzQjtBQVNBLFNBQVMsK0JBQStCLFFBQStCO0FBQ3JFLFFBQU0sZ0NBQWdDO0FBQ3RDLFNBQU8sSUFBSSxRQUFjLENBQUMsWUFBWTtBQUNwQyxVQUFNLGFBQWEsR0FBRyxNQUFNO0FBQzVCLFFBQUksWUFBWTtBQUVoQixVQUFNLFFBQVEsWUFBWSxNQUFNO0FBQzlCLGlCQUFXLEVBQUUsTUFBTSxNQUFNO0FBQUEsTUFFekIsQ0FBQztBQUFBLElBQ0gsR0FBRyw2QkFBNkI7QUFFaEMsd0JBQUFBLFFBQVEsS0FBSyxVQUFVLE1BQU07QUFDN0Isd0JBQUFBLFFBQVEsS0FBSyxXQUFXLE1BQU07QUFFOUIsbUJBQWUsYUFBNEI7QUFDekMsVUFBSTtBQUNGLGNBQU0sV0FBVyxNQUFNLE1BQU0sVUFBVTtBQUN2QyxZQUFJLENBQUMsU0FBUyxJQUFJO0FBQ2hCLGlCQUFPO0FBQUEsUUFDVDtBQUFBLE1BQ0YsUUFBUTtBQUVOLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRjtBQUVBLGFBQVMsU0FBZTtBQUN0QixVQUFJLFdBQVc7QUFDYjtBQUFBLE1BQ0Y7QUFDQSxrQkFBWTtBQUNaLG9CQUFjLEtBQUs7QUFDbkIsY0FBUTtBQUFBLElBQ1Y7QUFBQSxFQUNGLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFsicHJvY2VzcyIsICJyZXNvbHZlUGF0aCJdCn0K