@angular-devkit/build-angular 17.0.0-next.3 → 17.0.0-next.4

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 (73) hide show
  1. package/package.json +10 -11
  2. package/src/babel-bazel.d.ts +0 -6
  3. package/src/builders/app-shell/render-worker.js +4 -3
  4. package/src/builders/application/index.js +1 -2
  5. package/src/builders/application/options.js +2 -2
  6. package/src/builders/application/schema.d.ts +2 -2
  7. package/src/builders/application/schema.js +1 -1
  8. package/src/builders/application/schema.json +1 -1
  9. package/src/builders/browser/index.js +4 -3
  10. package/src/builders/browser-esbuild/builder-status-warnings.js +1 -4
  11. package/src/builders/dev-server/load-proxy-config.js +24 -1
  12. package/src/builders/dev-server/vite-server.d.ts +2 -1
  13. package/src/builders/dev-server/vite-server.js +35 -22
  14. package/src/builders/dev-server/webpack-server.js +2 -2
  15. package/src/builders/karma/find-tests-plugin.js +4 -2
  16. package/src/builders/karma/index.js +6 -7
  17. package/src/builders/prerender/render-worker.js +11 -8
  18. package/src/builders/prerender/utils.js +1 -1
  19. package/src/builders/server/index.js +2 -3
  20. package/src/tools/babel/plugins/adjust-static-class-members.js +5 -4
  21. package/src/tools/babel/plugins/adjust-typescript-enums.js +2 -2
  22. package/src/tools/babel/presets/application.js +5 -7
  23. package/src/tools/babel/webpack-loader.js +6 -5
  24. package/src/tools/esbuild/angular/compilation/angular-compilation.js +6 -20
  25. package/src/tools/esbuild/angular/compilation/aot-compilation.js +15 -25
  26. package/src/tools/esbuild/angular/compilation/jit-compilation.js +12 -24
  27. package/src/tools/esbuild/angular/compiler-plugin.js +14 -13
  28. package/src/tools/esbuild/angular/jit-resource-transformer.js +33 -31
  29. package/src/tools/esbuild/application-code-bundle.js +3 -3
  30. package/src/tools/esbuild/bundler-context.js +18 -28
  31. package/src/tools/esbuild/bundler-execution-result.js +5 -3
  32. package/src/tools/esbuild/javascript-transformer-worker.js +3 -3
  33. package/src/tools/esbuild/javascript-transformer.js +15 -28
  34. package/src/tools/esbuild/load-result-cache.js +11 -20
  35. package/src/tools/esbuild/profiling.js +2 -2
  36. package/src/tools/esbuild/stylesheets/less-language.js +2 -2
  37. package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js +8 -5
  38. package/src/tools/esbuild/watcher.js +7 -9
  39. package/src/tools/sass/rebasing-importer.js +9 -4
  40. package/src/tools/sass/sass-service-legacy.js +7 -9
  41. package/src/tools/sass/sass-service.js +9 -8
  42. package/src/tools/sass/worker.js +3 -3
  43. package/src/tools/webpack/plugins/any-component-style-budget-checker.js +2 -1
  44. package/src/tools/webpack/plugins/builder-watch-plugin.js +4 -1
  45. package/src/tools/webpack/plugins/common-js-usage-warn-plugin.js +4 -2
  46. package/src/tools/webpack/plugins/css-optimizer-plugin.js +3 -2
  47. package/src/tools/webpack/plugins/dedupe-module-resolve-plugin.js +3 -2
  48. package/src/tools/webpack/plugins/esbuild-executor.js +5 -2
  49. package/src/tools/webpack/plugins/index-html-webpack-plugin.js +3 -1
  50. package/src/tools/webpack/plugins/javascript-optimizer-plugin.js +3 -1
  51. package/src/tools/webpack/plugins/json-stats-plugin.js +2 -1
  52. package/src/tools/webpack/plugins/occurrences-plugin.js +2 -1
  53. package/src/tools/webpack/plugins/remove-hash-plugin.js +2 -1
  54. package/src/tools/webpack/plugins/scripts-webpack-plugin.js +4 -1
  55. package/src/tools/webpack/plugins/service-worker-plugin.js +2 -1
  56. package/src/tools/webpack/plugins/styles-webpack-plugin.js +5 -4
  57. package/src/tools/webpack/plugins/typescript.js +2 -2
  58. package/src/tools/webpack/utils/helpers.js +2 -3
  59. package/src/typings.d.ts +1 -1
  60. package/src/utils/action-executor.js +3 -1
  61. package/src/utils/bundle-calculator.js +4 -1
  62. package/src/utils/i18n-options.js +2 -2
  63. package/src/utils/index-file/augment-index-html.d.ts +1 -0
  64. package/src/utils/index-file/augment-index-html.js +22 -2
  65. package/src/utils/index-file/index-html-generator.d.ts +1 -0
  66. package/src/utils/index-file/index-html-generator.js +5 -2
  67. package/src/utils/index-file/inline-critical-css.js +48 -45
  68. package/src/utils/index-file/inline-fonts.js +5 -6
  69. package/src/utils/process-bundle.js +2 -3
  70. package/src/utils/server-rendering/prerender.js +11 -4
  71. package/src/utils/service-worker.js +4 -2
  72. package/src/utils/spinner.js +7 -13
  73. package/src/utils/webpack-browser-config.js +2 -2
package/package.json CHANGED
@@ -1,27 +1,26 @@
1
1
  {
2
2
  "name": "@angular-devkit/build-angular",
3
- "version": "17.0.0-next.3",
3
+ "version": "17.0.0-next.4",
4
4
  "description": "Angular Webpack Build Facade",
5
5
  "main": "src/index.js",
6
6
  "typings": "src/index.d.ts",
7
7
  "builders": "builders.json",
8
8
  "dependencies": {
9
9
  "@ampproject/remapping": "2.2.1",
10
- "@angular-devkit/architect": "0.1700.0-next.3",
11
- "@angular-devkit/build-webpack": "0.1700.0-next.3",
12
- "@angular-devkit/core": "17.0.0-next.3",
13
- "@babel/core": "7.22.15",
10
+ "@angular-devkit/architect": "0.1700.0-next.4",
11
+ "@angular-devkit/build-webpack": "0.1700.0-next.4",
12
+ "@angular-devkit/core": "17.0.0-next.4",
13
+ "@babel/core": "7.22.17",
14
14
  "@babel/generator": "7.22.15",
15
15
  "@babel/helper-annotate-as-pure": "7.22.5",
16
16
  "@babel/helper-split-export-declaration": "7.22.6",
17
- "@babel/plugin-proposal-async-generator-functions": "7.20.7",
17
+ "@babel/plugin-transform-async-generator-functions": "7.22.15",
18
18
  "@babel/plugin-transform-async-to-generator": "7.22.5",
19
19
  "@babel/plugin-transform-runtime": "7.22.15",
20
20
  "@babel/preset-env": "7.22.15",
21
21
  "@babel/runtime": "7.22.15",
22
- "@babel/template": "7.22.15",
23
22
  "@discoveryjs/json-ext": "0.5.7",
24
- "@ngtools/webpack": "17.0.0-next.3",
23
+ "@ngtools/webpack": "17.0.0-next.4",
25
24
  "@vitejs/plugin-basic-ssl": "1.0.1",
26
25
  "ansi-colors": "4.1.3",
27
26
  "autoprefixer": "10.4.15",
@@ -36,7 +35,7 @@
36
35
  "esbuild-wasm": "0.19.2",
37
36
  "fast-glob": "3.3.1",
38
37
  "guess-parser": "0.4.22",
39
- "https-proxy-agent": "5.0.1",
38
+ "https-proxy-agent": "7.0.2",
40
39
  "http-proxy-middleware": "2.0.6",
41
40
  "inquirer": "8.2.6",
42
41
  "jsonc-parser": "3.2.0",
@@ -84,10 +83,10 @@
84
83
  "jest": "^29.5.0",
85
84
  "jest-environment-jsdom": "^29.5.0",
86
85
  "karma": "^6.3.0",
87
- "ng-packagr": "^17.0.0 || ^17.0.0-next.0",
86
+ "ng-packagr": "^17.0.0 || ^17.0.0-next.1",
88
87
  "protractor": "^7.0.0",
89
88
  "tailwindcss": "^2.0.0 || ^3.0.0",
90
- "typescript": ">=4.9.3 <5.2"
89
+ "typescript": ">=4.9.3 <5.3"
91
90
  },
92
91
  "peerDependenciesMeta": {
93
92
  "@angular/localize": {
@@ -15,9 +15,3 @@ declare module '@babel/core' {
15
15
  declare module '@babel/generator' {
16
16
  export { default } from '@types/babel__generator';
17
17
  }
18
- declare module '@babel/traverse' {
19
- export { default } from '@types/babel__traverse';
20
- }
21
- declare module '@babel/template' {
22
- export { default } from '@types/babel__template';
23
- }
@@ -63,9 +63,10 @@ async function render({ serverBundlePath, document, url }) {
63
63
  platformProviders,
64
64
  });
65
65
  }
66
- (0, node_assert_1.default)(AppServerModule, `Neither an AppServerModule nor a bootstrapping function was exported from: ${serverBundlePath}.`);
67
66
  (0, node_assert_1.default)(renderModule, `renderModule was not exported from: ${serverBundlePath}.`);
68
- return renderModule(AppServerModule, {
67
+ const moduleClass = bootstrapAppFn || AppServerModule;
68
+ (0, node_assert_1.default)(moduleClass, `Neither an AppServerModule nor a bootstrapping function was exported from: ${serverBundlePath}.`);
69
+ return renderModule(moduleClass, {
69
70
  document,
70
71
  url,
71
72
  extraProviders: platformProviders,
@@ -92,4 +93,4 @@ async function initialize() {
92
93
  * This is awaited by piscina prior to using the Worker.
93
94
  */
94
95
  exports.default = initialize();
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLXdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcC1zaGVsbC9yZW5kZXItd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJSCw4REFBaUM7QUFDakMsNkRBQWlEO0FBRWpEOzs7R0FHRztBQUNILE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxnQ0FFdkIsQ0FBQztBQXFDRjs7OztHQUlHO0FBQ0gsS0FBSyxVQUFVLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQWlCO0lBQ3RFLE1BQU0sRUFDSixlQUFlLEVBQ2YsZUFBZSxFQUNmLFlBQVksRUFDWixpQkFBaUIsRUFDakIsT0FBTyxFQUFFLGNBQWMsR0FDeEIsR0FBRyxDQUFDLHlCQUFhLGdCQUFnQix1Q0FBQyxDQUF3QixDQUFDO0lBRTVELElBQUEscUJBQU0sRUFBQyxlQUFlLEVBQUUsMENBQTBDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUV2RixNQUFNLGlCQUFpQixHQUFxQjtRQUMxQztZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFFBQVEsRUFBRSxXQUFXO1NBQ3RCO0tBQ0YsQ0FBQztJQUVGLGdDQUFnQztJQUNoQyxJQUFJLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUNqQyxJQUFBLHFCQUFNLEVBQUMsaUJBQWlCLEVBQUUsNENBQTRDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztRQUUzRixPQUFPLGlCQUFpQixDQUFDLGNBQWMsRUFBRTtZQUN2QyxRQUFRO1lBQ1IsR0FBRztZQUNILGlCQUFpQjtTQUNsQixDQUFDLENBQUM7S0FDSjtJQUVELElBQUEscUJBQU0sRUFDSixlQUFlLEVBQ2YsOEVBQThFLGdCQUFnQixHQUFHLENBQ2xHLENBQUM7SUFDRixJQUFBLHFCQUFNLEVBQUMsWUFBWSxFQUFFLHVDQUF1QyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFFakYsT0FBTyxZQUFZLENBQUMsZUFBZSxFQUFFO1FBQ25DLFFBQVE7UUFDUixHQUFHO1FBQ0gsY0FBYyxFQUFFLGlCQUFpQjtLQUNsQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsS0FBYztJQUNuQyxtRkFBbUY7SUFDbkYsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxLQUFLLFVBQVUsVUFBVTtJQUN2QixnQkFBZ0I7SUFDaEIseUJBQWEsV0FBVyx1Q0FBQyxDQUFDO0lBRTFCLHFDQUFxQztJQUNyQyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsa0JBQWUsVUFBVSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHBsaWNhdGlvblJlZiwgU3RhdGljUHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgcmVuZGVyQXBwbGljYXRpb24sIHJlbmRlck1vZHVsZSwgybVTRVJWRVJfQ09OVEVYVCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLXNlcnZlcic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ25vZGU6YXNzZXJ0JztcbmltcG9ydCB7IHdvcmtlckRhdGEgfSBmcm9tICdub2RlOndvcmtlcl90aHJlYWRzJztcblxuLyoqXG4gKiBUaGUgZnVsbHkgcmVzb2x2ZWQgcGF0aCB0byB0aGUgem9uZS5qcyBwYWNrYWdlIHRoYXQgd2lsbCBiZSBsb2FkZWQgZHVyaW5nIHdvcmtlciBpbml0aWFsaXphdGlvbi5cbiAqIFRoaXMgaXMgcGFzc2VkIGFzIHdvcmtlckRhdGEgd2hlbiBzZXR0aW5nIHVwIHRoZSB3b3JrZXIgdmlhIHRoZSBgcGlzY2luYWAgcGFja2FnZS5cbiAqL1xuY29uc3QgeyB6b25lUGFja2FnZSB9ID0gd29ya2VyRGF0YSBhcyB7XG4gIHpvbmVQYWNrYWdlOiBzdHJpbmc7XG59O1xuXG5pbnRlcmZhY2UgU2VydmVyQnVuZGxlRXhwb3J0cyB7XG4gIC8qKiBBbiBpbnRlcm5hbCB0b2tlbiB0aGF0IGFsbG93cyBwcm92aWRpbmcgZXh0cmEgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNlcnZlciBjb250ZXh0LiAqL1xuICDJtVNFUlZFUl9DT05URVhUPzogdHlwZW9mIMm1U0VSVkVSX0NPTlRFWFQ7XG5cbiAgLyoqIFJlbmRlciBhbiBOZ01vZHVsZSBhcHBsaWNhdGlvbi4gKi9cbiAgcmVuZGVyTW9kdWxlPzogdHlwZW9mIHJlbmRlck1vZHVsZTtcblxuICAvKiogTmdNb2R1bGUgdG8gcmVuZGVyLiAqL1xuICBBcHBTZXJ2ZXJNb2R1bGU/OiBUeXBlPHVua25vd24+O1xuXG4gIC8qKiBNZXRob2QgdG8gcmVuZGVyIGEgc3RhbmRhbG9uZSBhcHBsaWNhdGlvbi4gKi9cbiAgcmVuZGVyQXBwbGljYXRpb24/OiB0eXBlb2YgcmVuZGVyQXBwbGljYXRpb247XG5cbiAgLyoqIFN0YW5kYWxvbmUgYXBwbGljYXRpb24gYm9vdHN0cmFwcGluZyBmdW5jdGlvbi4gKi9cbiAgZGVmYXVsdD86ICgpID0+IFByb21pc2U8QXBwbGljYXRpb25SZWY+O1xufVxuXG4vKipcbiAqIEEgcmVxdWVzdCB0byByZW5kZXIgYSBTZXJ2ZXIgYnVuZGxlIGdlbmVyYXRlIGJ5IHRoZSB1bml2ZXJzYWwgc2VydmVyIGJ1aWxkZXIuXG4gKi9cbmludGVyZmFjZSBSZW5kZXJSZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRvIHRoZSBzZXJ2ZXIgYnVuZGxlIHRoYXQgc2hvdWxkIGJlIGxvYWRlZCBhbmQgcmVuZGVyZWQuXG4gICAqL1xuICBzZXJ2ZXJCdW5kbGVQYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZXhpc3RpbmcgSFRNTCBkb2N1bWVudCBhcyBhIHN0cmluZyB0aGF0IHdpbGwgYmUgYXVnbWVudGVkIHdpdGggdGhlIHJlbmRlcmVkIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgZG9jdW1lbnQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIFVSTCBwYXRoIHRoYXQgcmVwcmVzZW50cyB0aGUgQW5ndWxhciByb3V0ZSB0aGF0IHNob3VsZCBiZSByZW5kZXJlZC5cbiAgICovXG4gIHVybDogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYW4gYXBwbGljYXRpb24gYmFzZWQgb24gYSBwcm92aWRlZCBzZXJ2ZXIgYnVuZGxlIHBhdGgsIGluaXRpYWwgZG9jdW1lbnQsIGFuZCBvcHRpb25hbCBVUkwgcm91dGUuXG4gKiBAcGFyYW0gcGFyYW0wIEEgcmVxdWVzdCB0byByZW5kZXIgYSBzZXJ2ZXIgYnVuZGxlLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlbmRlciBIVE1MIGRvY3VtZW50IGZvciB0aGUgYXBwbGljYXRpb24uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlcih7IHNlcnZlckJ1bmRsZVBhdGgsIGRvY3VtZW50LCB1cmwgfTogUmVuZGVyUmVxdWVzdCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHtcbiAgICDJtVNFUlZFUl9DT05URVhULFxuICAgIEFwcFNlcnZlck1vZHVsZSxcbiAgICByZW5kZXJNb2R1bGUsXG4gICAgcmVuZGVyQXBwbGljYXRpb24sXG4gICAgZGVmYXVsdDogYm9vdHN0cmFwQXBwRm4sXG4gIH0gPSAoYXdhaXQgaW1wb3J0KHNlcnZlckJ1bmRsZVBhdGgpKSBhcyBTZXJ2ZXJCdW5kbGVFeHBvcnRzO1xuXG4gIGFzc2VydCjJtVNFUlZFUl9DT05URVhULCBgybVTRVJWRVJfQ09OVEVYVCB3YXMgbm90IGV4cG9ydGVkIGZyb206ICR7c2VydmVyQnVuZGxlUGF0aH0uYCk7XG5cbiAgY29uc3QgcGxhdGZvcm1Qcm92aWRlcnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXG4gICAge1xuICAgICAgcHJvdmlkZTogybVTRVJWRVJfQ09OVEVYVCxcbiAgICAgIHVzZVZhbHVlOiAnYXBwLXNoZWxsJyxcbiAgICB9LFxuICBdO1xuXG4gIC8vIFJlbmRlciBwbGF0Zm9ybSBzZXJ2ZXIgbW9kdWxlXG4gIGlmIChpc0Jvb3RzdHJhcEZuKGJvb3RzdHJhcEFwcEZuKSkge1xuICAgIGFzc2VydChyZW5kZXJBcHBsaWNhdGlvbiwgYHJlbmRlckFwcGxpY2F0aW9uIHdhcyBub3QgZXhwb3J0ZWQgZnJvbTogJHtzZXJ2ZXJCdW5kbGVQYXRofS5gKTtcblxuICAgIHJldHVybiByZW5kZXJBcHBsaWNhdGlvbihib290c3RyYXBBcHBGbiwge1xuICAgICAgZG9jdW1lbnQsXG4gICAgICB1cmwsXG4gICAgICBwbGF0Zm9ybVByb3ZpZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIGFzc2VydChcbiAgICBBcHBTZXJ2ZXJNb2R1bGUsXG4gICAgYE5laXRoZXIgYW4gQXBwU2VydmVyTW9kdWxlIG5vciBhIGJvb3RzdHJhcHBpbmcgZnVuY3Rpb24gd2FzIGV4cG9ydGVkIGZyb206ICR7c2VydmVyQnVuZGxlUGF0aH0uYCxcbiAgKTtcbiAgYXNzZXJ0KHJlbmRlck1vZHVsZSwgYHJlbmRlck1vZHVsZSB3YXMgbm90IGV4cG9ydGVkIGZyb206ICR7c2VydmVyQnVuZGxlUGF0aH0uYCk7XG5cbiAgcmV0dXJuIHJlbmRlck1vZHVsZShBcHBTZXJ2ZXJNb2R1bGUsIHtcbiAgICBkb2N1bWVudCxcbiAgICB1cmwsXG4gICAgZXh0cmFQcm92aWRlcnM6IHBsYXRmb3JtUHJvdmlkZXJzLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gaXNCb290c3RyYXBGbih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzICgpID0+IFByb21pc2U8QXBwbGljYXRpb25SZWY+IHtcbiAgLy8gV2UgY2FuIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBhIG1vZHVsZSBhbmQgYSBib290c3RyYXAgZnVuY3Rpb24gYnkgcmVhZGluZyBgY21wYDpcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJiAhKCfJtW1vZCcgaW4gdmFsdWUpO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIHRoZSB3b3JrZXIgd2hlbiBpdCBpcyBmaXJzdCBjcmVhdGVkIGJ5IGxvYWRpbmcgdGhlIFpvbmUuanMgcGFja2FnZVxuICogaW50byB0aGUgd29ya2VyIGluc3RhbmNlLlxuICpcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJlbmRlciBmdW5jdGlvbiBvZiB0aGUgd29ya2VyLlxuICovXG5hc3luYyBmdW5jdGlvbiBpbml0aWFsaXplKCkge1xuICAvLyBTZXR1cCBab25lLmpzXG4gIGF3YWl0IGltcG9ydCh6b25lUGFja2FnZSk7XG5cbiAgLy8gUmV0dXJuIHRoZSByZW5kZXIgZnVuY3Rpb24gZm9yIHVzZVxuICByZXR1cm4gcmVuZGVyO1xufVxuXG4vKipcbiAqIFRoZSBkZWZhdWx0IGV4cG9ydCB3aWxsIGJlIHRoZSBwcm9taXNlIHJldHVybmVkIGJ5IHRoZSBpbml0aWFsaXplIGZ1bmN0aW9uLlxuICogVGhpcyBpcyBhd2FpdGVkIGJ5IHBpc2NpbmEgcHJpb3IgdG8gdXNpbmcgdGhlIFdvcmtlci5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgaW5pdGlhbGl6ZSgpO1xuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLXdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcC1zaGVsbC9yZW5kZXItd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJSCw4REFBaUM7QUFDakMsNkRBQWlEO0FBRWpEOzs7R0FHRztBQUNILE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxnQ0FFdkIsQ0FBQztBQXFDRjs7OztHQUlHO0FBQ0gsS0FBSyxVQUFVLE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQWlCO0lBQ3RFLE1BQU0sRUFDSixlQUFlLEVBQ2YsZUFBZSxFQUNmLFlBQVksRUFDWixpQkFBaUIsRUFDakIsT0FBTyxFQUFFLGNBQWMsR0FDeEIsR0FBRyxDQUFDLHlCQUFhLGdCQUFnQix1Q0FBQyxDQUF3QixDQUFDO0lBRTVELElBQUEscUJBQU0sRUFBQyxlQUFlLEVBQUUsMENBQTBDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUV2RixNQUFNLGlCQUFpQixHQUFxQjtRQUMxQztZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFFBQVEsRUFBRSxXQUFXO1NBQ3RCO0tBQ0YsQ0FBQztJQUVGLGdDQUFnQztJQUNoQyxJQUFJLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUNqQyxJQUFBLHFCQUFNLEVBQUMsaUJBQWlCLEVBQUUsNENBQTRDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztRQUUzRixPQUFPLGlCQUFpQixDQUFDLGNBQWMsRUFBRTtZQUN2QyxRQUFRO1lBQ1IsR0FBRztZQUNILGlCQUFpQjtTQUNsQixDQUFDLENBQUM7S0FDSjtJQUNELElBQUEscUJBQU0sRUFBQyxZQUFZLEVBQUUsdUNBQXVDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUNqRixNQUFNLFdBQVcsR0FBRyxjQUFjLElBQUksZUFBZSxDQUFDO0lBQ3RELElBQUEscUJBQU0sRUFDSixXQUFXLEVBQ1gsOEVBQThFLGdCQUFnQixHQUFHLENBQ2xHLENBQUM7SUFFRixPQUFPLFlBQVksQ0FBQyxXQUFXLEVBQUU7UUFDL0IsUUFBUTtRQUNSLEdBQUc7UUFDSCxjQUFjLEVBQUUsaUJBQWlCO0tBQ2xDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxLQUFjO0lBQ25DLG1GQUFtRjtJQUNuRixPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILEtBQUssVUFBVSxVQUFVO0lBQ3ZCLGdCQUFnQjtJQUNoQix5QkFBYSxXQUFXLHVDQUFDLENBQUM7SUFFMUIscUNBQXFDO0lBQ3JDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxrQkFBZSxVQUFVLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uUmVmLCBTdGF0aWNQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyByZW5kZXJBcHBsaWNhdGlvbiwgcmVuZGVyTW9kdWxlLCDJtVNFUlZFUl9DT05URVhUIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tc2VydmVyJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnbm9kZTphc3NlcnQnO1xuaW1wb3J0IHsgd29ya2VyRGF0YSB9IGZyb20gJ25vZGU6d29ya2VyX3RocmVhZHMnO1xuXG4vKipcbiAqIFRoZSBmdWxseSByZXNvbHZlZCBwYXRoIHRvIHRoZSB6b25lLmpzIHBhY2thZ2UgdGhhdCB3aWxsIGJlIGxvYWRlZCBkdXJpbmcgd29ya2VyIGluaXRpYWxpemF0aW9uLlxuICogVGhpcyBpcyBwYXNzZWQgYXMgd29ya2VyRGF0YSB3aGVuIHNldHRpbmcgdXAgdGhlIHdvcmtlciB2aWEgdGhlIGBwaXNjaW5hYCBwYWNrYWdlLlxuICovXG5jb25zdCB7IHpvbmVQYWNrYWdlIH0gPSB3b3JrZXJEYXRhIGFzIHtcbiAgem9uZVBhY2thZ2U6IHN0cmluZztcbn07XG5cbmludGVyZmFjZSBTZXJ2ZXJCdW5kbGVFeHBvcnRzIHtcbiAgLyoqIEFuIGludGVybmFsIHRva2VuIHRoYXQgYWxsb3dzIHByb3ZpZGluZyBleHRyYSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2VydmVyIGNvbnRleHQuICovXG4gIMm1U0VSVkVSX0NPTlRFWFQ/OiB0eXBlb2YgybVTRVJWRVJfQ09OVEVYVDtcblxuICAvKiogUmVuZGVyIGFuIE5nTW9kdWxlIGFwcGxpY2F0aW9uLiAqL1xuICByZW5kZXJNb2R1bGU/OiB0eXBlb2YgcmVuZGVyTW9kdWxlO1xuXG4gIC8qKiBOZ01vZHVsZSB0byByZW5kZXIuICovXG4gIEFwcFNlcnZlck1vZHVsZT86IFR5cGU8dW5rbm93bj47XG5cbiAgLyoqIE1ldGhvZCB0byByZW5kZXIgYSBzdGFuZGFsb25lIGFwcGxpY2F0aW9uLiAqL1xuICByZW5kZXJBcHBsaWNhdGlvbj86IHR5cGVvZiByZW5kZXJBcHBsaWNhdGlvbjtcblxuICAvKiogU3RhbmRhbG9uZSBhcHBsaWNhdGlvbiBib290c3RyYXBwaW5nIGZ1bmN0aW9uLiAqL1xuICBkZWZhdWx0PzogKCkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvblJlZj47XG59XG5cbi8qKlxuICogQSByZXF1ZXN0IHRvIHJlbmRlciBhIFNlcnZlciBidW5kbGUgZ2VuZXJhdGUgYnkgdGhlIHVuaXZlcnNhbCBzZXJ2ZXIgYnVpbGRlci5cbiAqL1xuaW50ZXJmYWNlIFJlbmRlclJlcXVlc3Qge1xuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIHNlcnZlciBidW5kbGUgdGhhdCBzaG91bGQgYmUgbG9hZGVkIGFuZCByZW5kZXJlZC5cbiAgICovXG4gIHNlcnZlckJ1bmRsZVBhdGg6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBleGlzdGluZyBIVE1MIGRvY3VtZW50IGFzIGEgc3RyaW5nIHRoYXQgd2lsbCBiZSBhdWdtZW50ZWQgd2l0aCB0aGUgcmVuZGVyZWQgYXBwbGljYXRpb24uXG4gICAqL1xuICBkb2N1bWVudDogc3RyaW5nO1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgVVJMIHBhdGggdGhhdCByZXByZXNlbnRzIHRoZSBBbmd1bGFyIHJvdXRlIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkLlxuICAgKi9cbiAgdXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmVuZGVycyBhbiBhcHBsaWNhdGlvbiBiYXNlZCBvbiBhIHByb3ZpZGVkIHNlcnZlciBidW5kbGUgcGF0aCwgaW5pdGlhbCBkb2N1bWVudCwgYW5kIG9wdGlvbmFsIFVSTCByb3V0ZS5cbiAqIEBwYXJhbSBwYXJhbTAgQSByZXF1ZXN0IHRvIHJlbmRlciBhIHNlcnZlciBidW5kbGUuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmVuZGVyIEhUTUwgZG9jdW1lbnQgZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVuZGVyKHsgc2VydmVyQnVuZGxlUGF0aCwgZG9jdW1lbnQsIHVybCB9OiBSZW5kZXJSZXF1ZXN0KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qge1xuICAgIMm1U0VSVkVSX0NPTlRFWFQsXG4gICAgQXBwU2VydmVyTW9kdWxlLFxuICAgIHJlbmRlck1vZHVsZSxcbiAgICByZW5kZXJBcHBsaWNhdGlvbixcbiAgICBkZWZhdWx0OiBib290c3RyYXBBcHBGbixcbiAgfSA9IChhd2FpdCBpbXBvcnQoc2VydmVyQnVuZGxlUGF0aCkpIGFzIFNlcnZlckJ1bmRsZUV4cG9ydHM7XG5cbiAgYXNzZXJ0KMm1U0VSVkVSX0NPTlRFWFQsIGDJtVNFUlZFUl9DT05URVhUIHdhcyBub3QgZXhwb3J0ZWQgZnJvbTogJHtzZXJ2ZXJCdW5kbGVQYXRofS5gKTtcblxuICBjb25zdCBwbGF0Zm9ybVByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSA9IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiDJtVNFUlZFUl9DT05URVhULFxuICAgICAgdXNlVmFsdWU6ICdhcHAtc2hlbGwnLFxuICAgIH0sXG4gIF07XG5cbiAgLy8gUmVuZGVyIHBsYXRmb3JtIHNlcnZlciBtb2R1bGVcbiAgaWYgKGlzQm9vdHN0cmFwRm4oYm9vdHN0cmFwQXBwRm4pKSB7XG4gICAgYXNzZXJ0KHJlbmRlckFwcGxpY2F0aW9uLCBgcmVuZGVyQXBwbGljYXRpb24gd2FzIG5vdCBleHBvcnRlZCBmcm9tOiAke3NlcnZlckJ1bmRsZVBhdGh9LmApO1xuXG4gICAgcmV0dXJuIHJlbmRlckFwcGxpY2F0aW9uKGJvb3RzdHJhcEFwcEZuLCB7XG4gICAgICBkb2N1bWVudCxcbiAgICAgIHVybCxcbiAgICAgIHBsYXRmb3JtUHJvdmlkZXJzLFxuICAgIH0pO1xuICB9XG4gIGFzc2VydChyZW5kZXJNb2R1bGUsIGByZW5kZXJNb2R1bGUgd2FzIG5vdCBleHBvcnRlZCBmcm9tOiAke3NlcnZlckJ1bmRsZVBhdGh9LmApO1xuICBjb25zdCBtb2R1bGVDbGFzcyA9IGJvb3RzdHJhcEFwcEZuIHx8IEFwcFNlcnZlck1vZHVsZTtcbiAgYXNzZXJ0KFxuICAgIG1vZHVsZUNsYXNzLFxuICAgIGBOZWl0aGVyIGFuIEFwcFNlcnZlck1vZHVsZSBub3IgYSBib290c3RyYXBwaW5nIGZ1bmN0aW9uIHdhcyBleHBvcnRlZCBmcm9tOiAke3NlcnZlckJ1bmRsZVBhdGh9LmAsXG4gICk7XG5cbiAgcmV0dXJuIHJlbmRlck1vZHVsZShtb2R1bGVDbGFzcywge1xuICAgIGRvY3VtZW50LFxuICAgIHVybCxcbiAgICBleHRyYVByb3ZpZGVyczogcGxhdGZvcm1Qcm92aWRlcnMsXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpc0Jvb3RzdHJhcEZuKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgKCkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvblJlZj4ge1xuICAvLyBXZSBjYW4gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGEgbW9kdWxlIGFuZCBhIGJvb3RzdHJhcCBmdW5jdGlvbiBieSByZWFkaW5nIGBjbXBgOlxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nICYmICEoJ8m1bW9kJyBpbiB2YWx1ZSk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIHdvcmtlciB3aGVuIGl0IGlzIGZpcnN0IGNyZWF0ZWQgYnkgbG9hZGluZyB0aGUgWm9uZS5qcyBwYWNrYWdlXG4gKiBpbnRvIHRoZSB3b3JrZXIgaW5zdGFuY2UuXG4gKlxuICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgcmVuZGVyIGZ1bmN0aW9uIG9mIHRoZSB3b3JrZXIuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGluaXRpYWxpemUoKSB7XG4gIC8vIFNldHVwIFpvbmUuanNcbiAgYXdhaXQgaW1wb3J0KHpvbmVQYWNrYWdlKTtcblxuICAvLyBSZXR1cm4gdGhlIHJlbmRlciBmdW5jdGlvbiBmb3IgdXNlXG4gIHJldHVybiByZW5kZXI7XG59XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgZXhwb3J0IHdpbGwgYmUgdGhlIHByb21pc2UgcmV0dXJuZWQgYnkgdGhlIGluaXRpYWxpemUgZnVuY3Rpb24uXG4gKiBUaGlzIGlzIGF3YWl0ZWQgYnkgcGlzY2luYSBwcmlvciB0byB1c2luZyB0aGUgV29ya2VyLlxuICovXG5leHBvcnQgZGVmYXVsdCBpbml0aWFsaXplKCk7XG4iXX0=
@@ -42,9 +42,8 @@ async function* buildApplicationInternal(options, context, infrastructureSetting
42
42
  }
43
43
  exports.buildApplicationInternal = buildApplicationInternal;
44
44
  function buildApplication(options, context) {
45
- context.logger.warn('The application builder is currently in developer preview and is not yet recommended for production use.');
46
45
  return buildApplicationInternal(options, context);
47
46
  }
48
47
  exports.buildApplication = buildApplication;
49
48
  exports.default = (0, architect_1.createBuilder)(buildApplication);
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy9idWlsZGVycy9hcHBsaWNhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCx5REFBeUY7QUFFekYseURBQStEO0FBQy9ELGlEQUFxRTtBQUNyRSxpREFBdUQ7QUFDdkQsbURBQStDO0FBQy9DLHVDQUFnRjtBQUd6RSxLQUFLLFNBQVMsQ0FBQyxDQUFDLHdCQUF3QixDQUM3QyxPQUEwQyxFQUMxQyxPQUF1QixFQUN2QixzQkFFQztJQU9ELHlCQUF5QjtJQUN6QixJQUFBLHdDQUE4QixFQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUV0RCw4QkFBOEI7SUFDOUIsTUFBTSxJQUFBLGtDQUFvQixFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXBDLHFEQUFxRDtJQUNyRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztJQUM1QyxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFFckYsT0FBTztLQUNSO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsMEJBQWdCLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRixLQUFLLENBQUMsQ0FBQyxJQUFBLG9DQUFxQixFQUMxQixDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsSUFBQSw0QkFBWSxFQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsRUFDeEU7UUFDRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsS0FBSztRQUM5QixJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtRQUM1QixnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxnQkFBZ0I7UUFDcEQsWUFBWSxFQUFFLGlCQUFpQixDQUFDLFlBQVk7UUFDNUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLFVBQVU7UUFDeEMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLE9BQU87UUFDbEMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLFdBQVc7UUFDMUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLGFBQWE7UUFDOUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLFFBQVE7UUFDcEMsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsS0FBSztRQUNoRCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDdkIsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQTNDRCw0REEyQ0M7QUFFRCxTQUFnQixnQkFBZ0IsQ0FDOUIsT0FBa0MsRUFDbEMsT0FBdUI7SUFPdkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2pCLDBHQUEwRyxDQUMzRyxDQUFDO0lBRUYsT0FBTyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQWRELDRDQWNDO0FBRUQsa0JBQWUsSUFBQSx5QkFBYSxFQUFDLGdCQUFnQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgQnVpbGRlckNvbnRleHQsIEJ1aWxkZXJPdXRwdXQsIGNyZWF0ZUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcbmltcG9ydCB0eXBlIHsgT3V0cHV0RmlsZSB9IGZyb20gJ2VzYnVpbGQnO1xuaW1wb3J0IHsgcHVyZ2VTdGFsZUJ1aWxkQ2FjaGUgfSBmcm9tICcuLi8uLi91dGlscy9wdXJnZS1jYWNoZSc7XG5pbXBvcnQgeyBhc3NlcnRDb21wYXRpYmxlQW5ndWxhclZlcnNpb24gfSBmcm9tICcuLi8uLi91dGlscy92ZXJzaW9uJztcbmltcG9ydCB7IHJ1bkVzQnVpbGRCdWlsZEFjdGlvbiB9IGZyb20gJy4vYnVpbGQtYWN0aW9uJztcbmltcG9ydCB7IGV4ZWN1dGVCdWlsZCB9IGZyb20gJy4vZXhlY3V0ZS1idWlsZCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkJ1aWxkZXJJbnRlcm5hbE9wdGlvbnMsIG5vcm1hbGl6ZU9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgU2NoZW1hIGFzIEFwcGxpY2F0aW9uQnVpbGRlck9wdGlvbnMgfSBmcm9tICcuL3NjaGVtYSc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogYnVpbGRBcHBsaWNhdGlvbkludGVybmFsKFxuICBvcHRpb25zOiBBcHBsaWNhdGlvbkJ1aWxkZXJJbnRlcm5hbE9wdGlvbnMsXG4gIGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0LFxuICBpbmZyYXN0cnVjdHVyZVNldHRpbmdzPzoge1xuICAgIHdyaXRlPzogYm9vbGVhbjtcbiAgfSxcbik6IEFzeW5jSXRlcmFibGU8XG4gIEJ1aWxkZXJPdXRwdXQgJiB7XG4gICAgb3V0cHV0RmlsZXM/OiBPdXRwdXRGaWxlW107XG4gICAgYXNzZXRGaWxlcz86IHsgc291cmNlOiBzdHJpbmc7IGRlc3RpbmF0aW9uOiBzdHJpbmcgfVtdO1xuICB9XG4+IHtcbiAgLy8gQ2hlY2sgQW5ndWxhciB2ZXJzaW9uLlxuICBhc3NlcnRDb21wYXRpYmxlQW5ndWxhclZlcnNpb24oY29udGV4dC53b3Jrc3BhY2VSb290KTtcblxuICAvLyBQdXJnZSBvbGQgYnVpbGQgZGlzayBjYWNoZS5cbiAgYXdhaXQgcHVyZ2VTdGFsZUJ1aWxkQ2FjaGUoY29udGV4dCk7XG5cbiAgLy8gRGV0ZXJtaW5lIHByb2plY3QgbmFtZSBmcm9tIGJ1aWxkZXIgY29udGV4dCB0YXJnZXRcbiAgY29uc3QgcHJvamVjdE5hbWUgPSBjb250ZXh0LnRhcmdldD8ucHJvamVjdDtcbiAgaWYgKCFwcm9qZWN0TmFtZSkge1xuICAgIGNvbnRleHQubG9nZ2VyLmVycm9yKGBUaGUgJ2FwcGxpY2F0aW9uJyBidWlsZGVyIHJlcXVpcmVzIGEgdGFyZ2V0IHRvIGJlIHNwZWNpZmllZC5gKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbGl6ZWRPcHRpb25zID0gYXdhaXQgbm9ybWFsaXplT3B0aW9ucyhjb250ZXh0LCBwcm9qZWN0TmFtZSwgb3B0aW9ucyk7XG4gIHlpZWxkKiBydW5Fc0J1aWxkQnVpbGRBY3Rpb24oXG4gICAgKHJlYnVpbGRTdGF0ZSkgPT4gZXhlY3V0ZUJ1aWxkKG5vcm1hbGl6ZWRPcHRpb25zLCBjb250ZXh0LCByZWJ1aWxkU3RhdGUpLFxuICAgIHtcbiAgICAgIHdhdGNoOiBub3JtYWxpemVkT3B0aW9ucy53YXRjaCxcbiAgICAgIHBvbGw6IG5vcm1hbGl6ZWRPcHRpb25zLnBvbGwsXG4gICAgICBkZWxldGVPdXRwdXRQYXRoOiBub3JtYWxpemVkT3B0aW9ucy5kZWxldGVPdXRwdXRQYXRoLFxuICAgICAgY2FjaGVPcHRpb25zOiBub3JtYWxpemVkT3B0aW9ucy5jYWNoZU9wdGlvbnMsXG4gICAgICBvdXRwdXRQYXRoOiBub3JtYWxpemVkT3B0aW9ucy5vdXRwdXRQYXRoLFxuICAgICAgdmVyYm9zZTogbm9ybWFsaXplZE9wdGlvbnMudmVyYm9zZSxcbiAgICAgIHByb2plY3RSb290OiBub3JtYWxpemVkT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgIHdvcmtzcGFjZVJvb3Q6IG5vcm1hbGl6ZWRPcHRpb25zLndvcmtzcGFjZVJvb3QsXG4gICAgICBwcm9ncmVzczogbm9ybWFsaXplZE9wdGlvbnMucHJvZ3Jlc3MsXG4gICAgICB3cml0ZVRvRmlsZVN5c3RlbTogaW5mcmFzdHJ1Y3R1cmVTZXR0aW5ncz8ud3JpdGUsXG4gICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0sXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEFwcGxpY2F0aW9uKFxuICBvcHRpb25zOiBBcHBsaWNhdGlvbkJ1aWxkZXJPcHRpb25zLFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbik6IEFzeW5jSXRlcmFibGU8XG4gIEJ1aWxkZXJPdXRwdXQgJiB7XG4gICAgb3V0cHV0RmlsZXM/OiBPdXRwdXRGaWxlW107XG4gICAgYXNzZXRGaWxlcz86IHsgc291cmNlOiBzdHJpbmc7IGRlc3RpbmF0aW9uOiBzdHJpbmcgfVtdO1xuICB9XG4+IHtcbiAgY29udGV4dC5sb2dnZXIud2FybihcbiAgICAnVGhlIGFwcGxpY2F0aW9uIGJ1aWxkZXIgaXMgY3VycmVudGx5IGluIGRldmVsb3BlciBwcmV2aWV3IGFuZCBpcyBub3QgeWV0IHJlY29tbWVuZGVkIGZvciBwcm9kdWN0aW9uIHVzZS4nLFxuICApO1xuXG4gIHJldHVybiBidWlsZEFwcGxpY2F0aW9uSW50ZXJuYWwob3B0aW9ucywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZUJ1aWxkZXIoYnVpbGRBcHBsaWNhdGlvbik7XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy9idWlsZGVycy9hcHBsaWNhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCx5REFBeUY7QUFFekYseURBQStEO0FBQy9ELGlEQUFxRTtBQUNyRSxpREFBdUQ7QUFDdkQsbURBQStDO0FBQy9DLHVDQUFnRjtBQUd6RSxLQUFLLFNBQVMsQ0FBQyxDQUFDLHdCQUF3QixDQUM3QyxPQUEwQyxFQUMxQyxPQUF1QixFQUN2QixzQkFFQztJQU9ELHlCQUF5QjtJQUN6QixJQUFBLHdDQUE4QixFQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUV0RCw4QkFBOEI7SUFDOUIsTUFBTSxJQUFBLGtDQUFvQixFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXBDLHFEQUFxRDtJQUNyRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztJQUM1QyxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQ2hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFFckYsT0FBTztLQUNSO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsMEJBQWdCLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRixLQUFLLENBQUMsQ0FBQyxJQUFBLG9DQUFxQixFQUMxQixDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsSUFBQSw0QkFBWSxFQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsRUFDeEU7UUFDRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsS0FBSztRQUM5QixJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtRQUM1QixnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxnQkFBZ0I7UUFDcEQsWUFBWSxFQUFFLGlCQUFpQixDQUFDLFlBQVk7UUFDNUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLFVBQVU7UUFDeEMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLE9BQU87UUFDbEMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLFdBQVc7UUFDMUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLGFBQWE7UUFDOUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLFFBQVE7UUFDcEMsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsS0FBSztRQUNoRCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDdkIsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQTNDRCw0REEyQ0M7QUFFRCxTQUFnQixnQkFBZ0IsQ0FDOUIsT0FBa0MsRUFDbEMsT0FBdUI7SUFPdkIsT0FBTyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQVZELDRDQVVDO0FBRUQsa0JBQWUsSUFBQSx5QkFBYSxFQUFDLGdCQUFnQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgQnVpbGRlckNvbnRleHQsIEJ1aWxkZXJPdXRwdXQsIGNyZWF0ZUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcbmltcG9ydCB0eXBlIHsgT3V0cHV0RmlsZSB9IGZyb20gJ2VzYnVpbGQnO1xuaW1wb3J0IHsgcHVyZ2VTdGFsZUJ1aWxkQ2FjaGUgfSBmcm9tICcuLi8uLi91dGlscy9wdXJnZS1jYWNoZSc7XG5pbXBvcnQgeyBhc3NlcnRDb21wYXRpYmxlQW5ndWxhclZlcnNpb24gfSBmcm9tICcuLi8uLi91dGlscy92ZXJzaW9uJztcbmltcG9ydCB7IHJ1bkVzQnVpbGRCdWlsZEFjdGlvbiB9IGZyb20gJy4vYnVpbGQtYWN0aW9uJztcbmltcG9ydCB7IGV4ZWN1dGVCdWlsZCB9IGZyb20gJy4vZXhlY3V0ZS1idWlsZCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkJ1aWxkZXJJbnRlcm5hbE9wdGlvbnMsIG5vcm1hbGl6ZU9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgU2NoZW1hIGFzIEFwcGxpY2F0aW9uQnVpbGRlck9wdGlvbnMgfSBmcm9tICcuL3NjaGVtYSc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogYnVpbGRBcHBsaWNhdGlvbkludGVybmFsKFxuICBvcHRpb25zOiBBcHBsaWNhdGlvbkJ1aWxkZXJJbnRlcm5hbE9wdGlvbnMsXG4gIGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0LFxuICBpbmZyYXN0cnVjdHVyZVNldHRpbmdzPzoge1xuICAgIHdyaXRlPzogYm9vbGVhbjtcbiAgfSxcbik6IEFzeW5jSXRlcmFibGU8XG4gIEJ1aWxkZXJPdXRwdXQgJiB7XG4gICAgb3V0cHV0RmlsZXM/OiBPdXRwdXRGaWxlW107XG4gICAgYXNzZXRGaWxlcz86IHsgc291cmNlOiBzdHJpbmc7IGRlc3RpbmF0aW9uOiBzdHJpbmcgfVtdO1xuICB9XG4+IHtcbiAgLy8gQ2hlY2sgQW5ndWxhciB2ZXJzaW9uLlxuICBhc3NlcnRDb21wYXRpYmxlQW5ndWxhclZlcnNpb24oY29udGV4dC53b3Jrc3BhY2VSb290KTtcblxuICAvLyBQdXJnZSBvbGQgYnVpbGQgZGlzayBjYWNoZS5cbiAgYXdhaXQgcHVyZ2VTdGFsZUJ1aWxkQ2FjaGUoY29udGV4dCk7XG5cbiAgLy8gRGV0ZXJtaW5lIHByb2plY3QgbmFtZSBmcm9tIGJ1aWxkZXIgY29udGV4dCB0YXJnZXRcbiAgY29uc3QgcHJvamVjdE5hbWUgPSBjb250ZXh0LnRhcmdldD8ucHJvamVjdDtcbiAgaWYgKCFwcm9qZWN0TmFtZSkge1xuICAgIGNvbnRleHQubG9nZ2VyLmVycm9yKGBUaGUgJ2FwcGxpY2F0aW9uJyBidWlsZGVyIHJlcXVpcmVzIGEgdGFyZ2V0IHRvIGJlIHNwZWNpZmllZC5gKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbGl6ZWRPcHRpb25zID0gYXdhaXQgbm9ybWFsaXplT3B0aW9ucyhjb250ZXh0LCBwcm9qZWN0TmFtZSwgb3B0aW9ucyk7XG4gIHlpZWxkKiBydW5Fc0J1aWxkQnVpbGRBY3Rpb24oXG4gICAgKHJlYnVpbGRTdGF0ZSkgPT4gZXhlY3V0ZUJ1aWxkKG5vcm1hbGl6ZWRPcHRpb25zLCBjb250ZXh0LCByZWJ1aWxkU3RhdGUpLFxuICAgIHtcbiAgICAgIHdhdGNoOiBub3JtYWxpemVkT3B0aW9ucy53YXRjaCxcbiAgICAgIHBvbGw6IG5vcm1hbGl6ZWRPcHRpb25zLnBvbGwsXG4gICAgICBkZWxldGVPdXRwdXRQYXRoOiBub3JtYWxpemVkT3B0aW9ucy5kZWxldGVPdXRwdXRQYXRoLFxuICAgICAgY2FjaGVPcHRpb25zOiBub3JtYWxpemVkT3B0aW9ucy5jYWNoZU9wdGlvbnMsXG4gICAgICBvdXRwdXRQYXRoOiBub3JtYWxpemVkT3B0aW9ucy5vdXRwdXRQYXRoLFxuICAgICAgdmVyYm9zZTogbm9ybWFsaXplZE9wdGlvbnMudmVyYm9zZSxcbiAgICAgIHByb2plY3RSb290OiBub3JtYWxpemVkT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgIHdvcmtzcGFjZVJvb3Q6IG5vcm1hbGl6ZWRPcHRpb25zLndvcmtzcGFjZVJvb3QsXG4gICAgICBwcm9ncmVzczogbm9ybWFsaXplZE9wdGlvbnMucHJvZ3Jlc3MsXG4gICAgICB3cml0ZVRvRmlsZVN5c3RlbTogaW5mcmFzdHJ1Y3R1cmVTZXR0aW5ncz8ud3JpdGUsXG4gICAgICBsb2dnZXI6IGNvbnRleHQubG9nZ2VyLFxuICAgIH0sXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEFwcGxpY2F0aW9uKFxuICBvcHRpb25zOiBBcHBsaWNhdGlvbkJ1aWxkZXJPcHRpb25zLFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbik6IEFzeW5jSXRlcmFibGU8XG4gIEJ1aWxkZXJPdXRwdXQgJiB7XG4gICAgb3V0cHV0RmlsZXM/OiBPdXRwdXRGaWxlW107XG4gICAgYXNzZXRGaWxlcz86IHsgc291cmNlOiBzdHJpbmc7IGRlc3RpbmF0aW9uOiBzdHJpbmcgfVtdO1xuICB9XG4+IHtcbiAgcmV0dXJuIGJ1aWxkQXBwbGljYXRpb25JbnRlcm5hbChvcHRpb25zLCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlQnVpbGRlcihidWlsZEFwcGxpY2F0aW9uKTtcbiJdfQ==
@@ -63,7 +63,7 @@ async function normalizeOptions(context, projectName, options) {
63
63
  let fileReplacements;
64
64
  if (options.fileReplacements) {
65
65
  for (const replacement of options.fileReplacements) {
66
- fileReplacements ?? (fileReplacements = {});
66
+ fileReplacements ??= {};
67
67
  fileReplacements[node_path_1.default.join(workspaceRoot, replacement.replace)] = node_path_1.default.join(workspaceRoot, replacement.with);
68
68
  }
69
69
  }
@@ -262,4 +262,4 @@ function normalizeDirectoryPath(path) {
262
262
  }
263
263
  return path;
264
264
  }
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7O0FBR0gsNkNBQTRDO0FBQzVDLDBEQUE2QjtBQUM3QiwrREFHMkM7QUFDM0MsdUNBQWlHO0FBQ2pHLDJEQUEwRTtBQUMxRSxpRUFBb0U7QUFDcEUsdUVBQXFFO0FBQ3JFLG1EQUFxRTtBQUNyRSwrRUFBMkY7QUFDM0YscUNBQStGO0FBaUMvRjs7Ozs7Ozs7O0dBU0c7QUFDSCxrREFBa0Q7QUFDM0MsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxPQUF1QixFQUN2QixXQUFtQixFQUNuQixPQUEwQztJQUUxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQzVDLE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUN4QyxtQkFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUcsZUFBZSxDQUFDLElBQTJCLElBQUksRUFBRSxDQUFDLENBQzdFLENBQUM7SUFDRixNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUM5QyxtQkFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUcsZUFBZSxDQUFDLFVBQWlDLElBQUksS0FBSyxDQUFDLENBQ3RGLENBQUM7SUFFRixpRkFBaUY7SUFDakYsTUFBTSxZQUFZLEdBQUcsSUFBQSx1Q0FBcUIsRUFBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDM0UsWUFBWSxDQUFDLElBQUksR0FBRyxtQkFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxD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O0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLHNCQUFzQixDQUFDLElBQVk7SUFDMUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkMsSUFBSSxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7UUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzFCO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IEJ1aWxkZXJDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2FyY2hpdGVjdCc7XG5pbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSAnbm9kZTptb2R1bGUnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7XG4gIGdsb2JhbFNjcmlwdHNCeUJ1bmRsZU5hbWUsXG4gIG5vcm1hbGl6ZUdsb2JhbFN0eWxlcyxcbn0gZnJvbSAnLi4vLi4vdG9vbHMvd2VicGFjay91dGlscy9oZWxwZXJzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUFzc2V0UGF0dGVybnMsIG5vcm1hbGl6ZU9wdGltaXphdGlvbiwgbm9ybWFsaXplU291cmNlTWFwcyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEkxOG5PcHRpb25zLCBjcmVhdGVJMThuT3B0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4tb3B0aW9ucyc7XG5pbXBvcnQgeyBub3JtYWxpemVDYWNoZU9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9ub3JtYWxpemUtY2FjaGUnO1xuaW1wb3J0IHsgZ2VuZXJhdGVFbnRyeVBvaW50cyB9IGZyb20gJy4uLy4uL3V0aWxzL3BhY2thZ2UtY2h1bmstc29ydCc7XG5pbXBvcnQgeyBmaW5kVGFpbHdpbmRDb25maWd1cmF0aW9uRmlsZSB9IGZyb20gJy4uLy4uL3V0aWxzL3RhaWx3aW5kJztcbmltcG9ydCB7IGdldEluZGV4SW5wdXRGaWxlLCBnZXRJbmRleE91dHB1dEZpbGUgfSBmcm9tICcuLi8uLi91dGlscy93ZWJwYWNrLWJyb3dzZXItY29uZmlnJztcbmltcG9ydCB7IFNjaGVtYSBhcyBBcHBsaWNhdGlvbkJ1aWxkZXJPcHRpb25zLCBJMThOVHJhbnNsYXRpb24sIE91dHB1dEhhc2hpbmcgfSBmcm9tICcuL3NjaGVtYSc7XG5cbmV4cG9ydCB0eXBlIE5vcm1hbGl6ZWRBcHBsaWNhdGlvbkJ1aWxkT3B0aW9ucyA9IEF3YWl0ZWQ8UmV0dXJuVHlwZTx0eXBlb2Ygbm9ybWFsaXplT3B0aW9ucz4+O1xuXG4vKiogSW50ZXJuYWwgb3B0aW9ucyBoaWRkZW4gZnJvbSBidWlsZGVyIHNjaGVtYSBidXQgYXZhaWxhYmxlIHdoZW4gaW52b2tlZCBwcm9ncmFtbWF0aWNhbGx5LiAqL1xuaW50ZXJmYWNlIEludGVybmFsT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBFbnRyeSBwb2ludHMgdG8gdXNlIGZvciB0aGUgY29tcGlsYXRpb24uIEluY29tcGF0aWJsZSB3aXRoIGBicm93c2VyYCwgd2hpY2ggbXVzdCBub3QgYmUgcHJvdmlkZWQuIE1heSBiZSByZWxhdGl2ZSBvciBhYnNvbHV0ZSBwYXRocy5cbiAgICogSWYgZ2l2ZW4gYSByZWxhdGl2ZSBwYXRoLCBpdCBpcyByZXNvbHZlZCByZWxhdGl2ZSB0byB0aGUgY3VycmVudCB3b3Jrc3BhY2UgYW5kIHdpbGwgZ2VuZXJhdGUgYW4gb3V0cHV0IGF0IHRoZSBzYW1lIHJlbGF0aXZlIGxvY2F0aW9uXG4gICAqIGluIHRoZSBvdXRwdXQgZGlyZWN0b3J5LiBJZiBnaXZlbiBhbiBhYnNvbHV0ZSBwYXRoLCB0aGUgb3V0cHV0IHdpbGwgYmUgZ2VuZXJhdGVkIGluIHRoZSByb290IG9mIHRoZSBvdXRwdXQgZGlyZWN0b3J5IHdpdGggdGhlIHNhbWUgYmFzZVxuICAgKiBuYW1lLlxuICAgKi9cbiAgZW50cnlQb2ludHM/OiBTZXQ8c3RyaW5nPjtcblxuICAvKiogRmlsZSBleHRlbnNpb24gdG8gdXNlIGZvciB0aGUgZ2VuZXJhdGVkIG91dHB1dCBmaWxlcy4gKi9cbiAgb3V0RXh0ZW5zaW9uPzogJ2pzJyB8ICdtanMnO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBhbGwgbm9kZSBwYWNrYWdlcyBzaG91bGQgYmUgbWFya2VkIGFzIGV4dGVybmFsLlxuICAgKiBDdXJyZW50bHkgdXNlZCBieSB0aGUgZGV2LXNlcnZlciB0byBzdXBwb3J0IHByZWJ1bmRsaW5nLlxuICAgKi9cbiAgZXh0ZXJuYWxQYWNrYWdlcz86IGJvb2xlYW47XG59XG5cbi8qKiBGdWxsIHNldCBvZiBvcHRpb25zIGZvciBgYXBwbGljYXRpb25gIGJ1aWxkZXIuICovXG5leHBvcnQgdHlwZSBBcHBsaWNhdGlvbkJ1aWxkZXJJbnRlcm5hbE9wdGlvbnMgPSBPbWl0PFxuICBBcHBsaWNhdGlvbkJ1aWxkZXJPcHRpb25zICYgSW50ZXJuYWxPcHRpb25zLFxuICAnYnJvd3Nlcidcbj4gJiB7XG4gIC8vIGBicm93c2VyYCBjYW4gYmUgYHVuZGVmaW5lZGAgaWYgYGVudHJ5UG9pbnRzYCBpcyB1c2VkLlxuICBicm93c2VyPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBOb3JtYWxpemUgdGhlIHVzZXIgcHJvdmlkZWQgb3B0aW9ucyBieSBjcmVhdGluZyBmdWxsIHBhdGhzIGZvciBhbGwgcGF0aCBiYXNlZCBvcHRpb25zXG4gKiBhbmQgY29udmVydGluZyBtdWx0aS1mb3JtIG9wdGlvbnMgaW50byBhIHNpbmdsZSBmb3JtIHRoYXQgY2FuIGJlIGRpcmVjdGx5IHVzZWRcbiAqIGJ5IHRoZSBidWlsZCBwcm9jZXNzLlxuICpcbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IGZvciBjdXJyZW50IGJ1aWxkZXIgZXhlY3V0aW9uLlxuICogQHBhcmFtIHByb2plY3ROYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9qZWN0IGZvciB0aGUgY3VycmVudCBleGVjdXRpb24uXG4gKiBAcGFyYW0gb3B0aW9ucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgb3B0aW9ucyB0byB1c2UgZm9yIHRoZSBidWlsZC5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nIG5vcm1hbGl6ZWQgb3B0aW9ucyByZXF1aXJlZCB0byBwZXJmb3JtIHRoZSBidWlsZC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lcy1wZXItZnVuY3Rpb25cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBub3JtYWxpemVPcHRpb25zKFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbiAgcHJvamVjdE5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogQXBwbGljYXRpb25CdWlsZGVySW50ZXJuYWxPcHRpb25zLFxuKSB7XG4gIGNvbnN0IHdvcmtzcGFjZVJvb3QgPSBjb250ZXh0LndvcmtzcGFjZVJvb3Q7XG4gIGNvbnN0IHByb2plY3RNZXRhZGF0YSA9IGF3YWl0IGNvbnRleHQuZ2V0UHJvamVjdE1ldGFkYXRhKHByb2plY3ROYW1lKTtcbiAgY29uc3QgcHJvamVjdFJvb3QgPSBub3JtYWxpemVEaXJlY3RvcnlQYXRoKFxuICAgIHBhdGguam9pbih3b3Jrc3BhY2VSb290LCAocHJvamVjdE1ldGFkYXRhLnJvb3QgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSA/PyAnJyksXG4gICk7XG4gIGNvbnN0IHByb2plY3RTb3VyY2VSb290ID0gbm9ybWFsaXplRGlyZWN0b3J5UGF0aChcbiAgICBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgKHByb2plY3RNZXRhZGF0YS5zb3VyY2VSb290IGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgPz8gJ3NyYycpLFxuICApO1xuXG4gIC8vIEdhdGhlciBwZXJzaXN0ZW50IGNhY2hpbmcgb3B0aW9uIGFuZCBwcm92aWRlIGEgcHJvamVjdCBzcGVjaWZpYyBjYWNoZSBsb2NhdGlvblxuICBjb25zdCBjYWNoZU9wdGlvbnMgPSBub3JtYWxpemVDYWNoZU9wdGlvbnMocHJvamVjdE1ldGFkYXRhLCB3b3Jrc3BhY2VSb290KTtcbiAgY2FjaGVPcHRpb25zLnBhdGggPSBwYXRoLmpvaW4oY2FjaGVPcHRpb25zLnBhdGgsIHByb2plY3ROYW1lKTtcblxuICBjb25zdCBpMThuT3B0aW9uczogSTE4bk9wdGlvbnMgJiB7XG4gICAgZHVwbGljYXRlVHJhbnNsYXRpb25CZWhhdmlvcj86IEkxOE5UcmFuc2xhdGlvbjtcbiAgICBtaXNzaW5nVHJhbnNsYXRpb25CZWhhdmlvcj86IEkxOE5UcmFuc2xhdGlvbjtcbiAgfSA9IGNyZWF0ZUkxOG5PcHRpb25zKHByb2plY3RNZXRhZGF0YSwgb3B0aW9ucy5sb2NhbGl6ZSk7XG4gIGkxOG5PcHRpb25zLmR1cGxpY2F0ZVRyYW5zbGF0aW9uQmVoYXZpb3IgPSBvcHRpb25zLmkxOG5EdXBsaWNhdGVUcmFuc2xhdGlvbjtcbiAgaTE4bk9wdGlvbnMubWlzc2luZ1RyYW5zbGF0aW9uQmVoYXZpb3IgPSBvcHRpb25zLmkxOG5NaXNzaW5nVHJhbnNsYXRpb247XG5cbiAgY29uc3QgZW50cnlQb2ludHMgPSBub3JtYWxpemVFbnRyeVBvaW50cyh3b3Jrc3BhY2VSb290LCBvcHRpb25zLmJyb3dzZXIsIG9wdGlvbnMuZW50cnlQb2ludHMpO1xuICBjb25zdCB0c2NvbmZpZyA9IHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBvcHRpb25zLnRzQ29uZmlnKTtcbiAgY29uc3Qgb3V0cHV0UGF0aCA9IG5vcm1hbGl6ZURpcmVjdG9yeVBhdGgocGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIG9wdGlvbnMub3V0cHV0UGF0aCkpO1xuICBjb25zdCBvcHRpbWl6YXRpb25PcHRpb25zID0gbm9ybWFsaXplT3B0aW1pemF0aW9uKG9wdGlvbnMub3B0aW1pemF0aW9uKTtcbiAgY29uc3Qgc291cmNlbWFwT3B0aW9ucyA9IG5vcm1hbGl6ZVNvdXJjZU1hcHMob3B0aW9ucy5zb3VyY2VNYXAgPz8gZmFsc2UpO1xuICBjb25zdCBhc3NldHMgPSBvcHRpb25zLmFzc2V0cz8ubGVuZ3RoXG4gICAgPyBub3JtYWxpemVBc3NldFBhdHRlcm5zKG9wdGlvbnMuYXNzZXRzLCB3b3Jrc3BhY2VSb290LCBwcm9qZWN0Um9vdCwgcHJvamVjdFNvdXJjZVJvb3QpXG4gICAgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3Qgb3V0cHV0TmFtZXMgPSB7XG4gICAgYnVuZGxlczpcbiAgICAgIG9wdGlvbnMub3V0cHV0SGFzaGluZyA9PT0gT3V0cHV0SGFzaGluZy5BbGwgfHwgb3B0aW9ucy5vdXRwdXRIYXNoaW5nID09PSBPdXRwdXRIYXNoaW5nLkJ1bmRsZXNcbiAgICAgICAgPyAnW25hbWVdLltoYXNoXSdcbiAgICAgICAgOiAnW25hbWVdJyxcbiAgICBtZWRpYTpcbiAgICAgICdtZWRpYS8nICtcbiAgICAgIChvcHRpb25zLm91dHB1dEhhc2hpbmcgPT09IE91dHB1dEhhc2hpbmcuQWxsIHx8IG9wdGlvbnMub3V0cHV0SGFzaGluZyA9PT0gT3V0cHV0SGFzaGluZy5NZWRpYVxuICAgICAgICA/ICdbbmFtZV0uW2hhc2hdJ1xuICAgICAgICA6ICdbbmFtZV0nKSxcbiAgfTtcblxuICBsZXQgZmlsZVJlcGxhY2VtZW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgaWYgKG9wdGlvbnMuZmlsZVJlcGxhY2VtZW50cykge1xuICAgIGZvciAoY29uc3QgcmVwbGFjZW1lbnQgb2Ygb3B0aW9ucy5maWxlUmVwbGFjZW1lbnRzKSB7XG4gICAgICBmaWxlUmVwbGFjZW1lbnRzID8/PSB7fTtcbiAgICAgIGZpbGVSZXBsYWNlbWVudHNbcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIHJlcGxhY2VtZW50LnJlcGxhY2UpXSA9IHBhdGguam9pbihcbiAgICAgICAgd29ya3NwYWNlUm9vdCxcbiAgICAgICAgcmVwbGFjZW1lbnQud2l0aCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZ2xvYmFsU3R5bGVzOiB7IG5hbWU6IHN0cmluZzsgZmlsZXM6IHN0cmluZ1tdOyBpbml0aWFsOiBib29sZWFuIH1bXSA9IFtdO1xuICBpZiAob3B0aW9ucy5zdHlsZXM/Lmxlbmd0aCkge1xuICAgIGNvbnN0IHsgZW50cnlQb2ludHM6IHN0eWxlc2hlZXRFbnRyeXBvaW50cywgbm9JbmplY3ROYW1lcyB9ID0gbm9ybWFsaXplR2xvYmFsU3R5bGVzKFxuICAgICAgb3B0aW9ucy5zdHlsZXMgfHwgW10sXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBmaWxlc10gb2YgT2JqZWN0LmVudHJpZXMoc3R5bGVzaGVldEVudHJ5cG9pbnRzKSkge1xuICAgICAgZ2xvYmFsU3R5bGVzLnB1c2goeyBuYW1lLCBmaWxlcywgaW5pdGlhbDogIW5vSW5qZWN0TmFtZXMuaW5jbHVkZXMobmFtZSkgfSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZ2xvYmFsU2NyaXB0czogeyBuYW1lOiBzdHJpbmc7IGZpbGVzOiBzdHJpbmdbXTsgaW5pdGlhbDogYm9vbGVhbiB9W10gPSBbXTtcbiAgaWYgKG9wdGlvbnMuc2NyaXB0cz8ubGVuZ3RoKSB7XG4gICAgZm9yIChjb25zdCB7IGJ1bmRsZU5hbWUsIHBhdGhzLCBpbmplY3QgfSBvZiBnbG9iYWxTY3JpcHRzQnlCdW5kbGVOYW1lKG9wdGlvbnMuc2NyaXB0cykpIHtcbiAgICAgIGdsb2JhbFNjcmlwdHMucHVzaCh7IG5hbWU6IGJ1bmRsZU5hbWUsIGZpbGVzOiBwYXRocywgaW5pdGlhbDogaW5qZWN0IH0pO1xuICAgIH1cbiAgfVxuXG4gIGxldCB0YWlsd2luZENvbmZpZ3VyYXRpb246IHsgZmlsZTogc3RyaW5nOyBwYWNrYWdlOiBzdHJpbmcgfSB8IHVuZGVmaW5lZDtcbiAgY29uc3QgdGFpbHdpbmRDb25maWd1cmF0aW9uUGF0aCA9IGF3YWl0IGZpbmRUYWlsd2luZENvbmZpZ3VyYXRpb25GaWxlKHdvcmtzcGFjZVJvb3QsIHByb2plY3RSb290KTtcbiAgaWYgKHRhaWx3aW5kQ29uZmlndXJhdGlvblBhdGgpIHtcbiAgICAvLyBDcmVhdGUgYSBub2RlIHJlc29sdmVyIGF0IHRoZSBwcm9qZWN0IHJvb3QgYXMgYSBkaXJlY3RvcnlcbiAgICBjb25zdCByZXNvbHZlciA9IGNyZWF0ZVJlcXVpcmUocHJvamVjdFJvb3QgKyAnLycpO1xuICAgIHRyeSB7XG4gICAgICB0YWlsd2luZENvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIGZpbGU6IHRhaWx3aW5kQ29uZmlndXJhdGlvblBhdGgsXG4gICAgICAgIHBhY2thZ2U6IHJlc29sdmVyLnJlc29sdmUoJ3RhaWx3aW5kY3NzJyksXG4gICAgICB9O1xuICAgIH0gY2F0Y2gge1xuICAgICAgY29uc3QgcmVsYXRpdmVUYWlsd2luZENvbmZpZ1BhdGggPSBwYXRoLnJlbGF0aXZlKHdvcmtzcGFjZVJvb3QsIHRhaWx3aW5kQ29uZmlndXJhdGlvblBhdGgpO1xuICAgICAgY29udGV4dC5sb2dnZXIud2FybihcbiAgICAgICAgYFRhaWx3aW5kIENTUyBjb25maWd1cmF0aW9uIGZpbGUgZm91bmQgKCR7cmVsYXRpdmVUYWlsd2luZENvbmZpZ1BhdGh9KWAgK1xuICAgICAgICAgIGAgYnV0IHRoZSAndGFpbHdpbmRjc3MnIHBhY2thZ2UgaXMgbm90IGluc3RhbGxlZC5gICtcbiAgICAgICAgICBgIFRvIGVuYWJsZSBUYWlsd2luZCBDU1MsIHBsZWFzZSBpbnN0YWxsIHRoZSAndGFpbHdpbmRjc3MnIHBhY2thZ2UuYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbGV0IGluZGV4SHRtbE9wdGlvbnM7XG4gIC8vIGluZGV4IGNhbiBuZXZlciBoYXZlIGEgdmFsdWUgb2YgYHRydWVgIGJ1dCBpbiB0aGUgc2NoZW1hIGl0J3Mgb2YgdHlwZSBgYm9vbGVhbmAuXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5pbmRleCAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgaW5kZXhIdG1sT3B0aW9ucyA9IHtcbiAgICAgIGlucHV0OiBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgZ2V0SW5kZXhJbnB1dEZpbGUob3B0aW9ucy5pbmRleCkpLFxuICAgICAgLy8gVGhlIG91dHB1dCBmaWxlIHdpbGwgYmUgY3JlYXRlZCB3aXRoaW4gdGhlIGNvbmZpZ3VyZWQgb3V0cHV0IHBhdGhcbiAgICAgIG91dHB1dDogZ2V0SW5kZXhPdXRwdXRGaWxlKG9wdGlvbnMuaW5kZXgpLFxuICAgICAgLy8gVE9ETzogVXNlIGV4aXN0aW5nIGluZm9ybWF0aW9uIGZyb20gYWJvdmUgdG8gY3JlYXRlIHRoZSBpbnNlcnRpb24gb3JkZXJcbiAgICAgIGluc2VydGlvbk9yZGVyOiBnZW5lcmF0ZUVudHJ5UG9pbnRzKHtcbiAgICAgICAgc2NyaXB0czogb3B0aW9ucy5zY3JpcHRzID8/IFtdLFxuICAgICAgICBzdHlsZXM6IG9wdGlvbnMuc3R5bGVzID8/IFtdLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuXG4gIGxldCBzZXJ2ZXJFbnRyeVBvaW50OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGlmIChvcHRpb25zLnNlcnZlcikge1xuICAgIHNlcnZlckVudHJ5UG9pbnQgPSBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgb3B0aW9ucy5zZXJ2ZXIpO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMuc2VydmVyID09PSAnJykge1xuICAgIHRocm93IG5ldyBFcnJvcignYHNlcnZlcmAgb3B0aW9uIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmcuJyk7XG4gIH1cblxuICBsZXQgcHJlcmVuZGVyT3B0aW9ucztcbiAgaWYgKG9wdGlvbnMucHJlcmVuZGVyKSB7XG4gICAgY29uc3Qge1xuICAgICAgZGlzY292ZXJSb3V0ZXMgPSB0cnVlLFxuICAgICAgcm91dGVzID0gW10sXG4gICAgICByb3V0ZXNGaWxlID0gdW5kZWZpbmVkLFxuICAgIH0gPSBvcHRpb25zLnByZXJlbmRlciA9PT0gdHJ1ZSA/IHt9IDogb3B0aW9ucy5wcmVyZW5kZXI7XG5cbiAgICBwcmVyZW5kZXJPcHRpb25zID0ge1xuICAgICAgZGlzY292ZXJSb3V0ZXMsXG4gICAgICByb3V0ZXMsXG4gICAgICByb3V0ZXNGaWxlOiByb3V0ZXNGaWxlICYmIHBhdGguam9pbih3b3Jrc3BhY2VSb290LCByb3V0ZXNGaWxlKSxcbiAgICB9O1xuICB9XG5cbiAgbGV0IHNzck9wdGlvbnM7XG4gIGlmIChvcHRpb25zLnNzciA9PT0gdHJ1ZSkge1xuICAgIHNzck9wdGlvbnMgPSB7fTtcbiAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucy5zc3IgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgeyBlbnRyeSB9ID0gb3B0aW9ucy5zc3I7XG5cbiAgICBzc3JPcHRpb25zID0ge1xuICAgICAgZW50cnk6IGVudHJ5ICYmIHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBlbnRyeSksXG4gICAgfTtcbiAgfVxuXG4gIGxldCBhcHBTaGVsbE9wdGlvbnM7XG4gIGlmIChvcHRpb25zLmFwcFNoZWxsKSB7XG4gICAgYXBwU2hlbGxPcHRpb25zID0ge1xuICAgICAgcm91dGU6ICdzaGVsbCcsXG4gICAgfTtcbiAgfVxuXG4gIC8vIEluaXRpYWwgb3B0aW9ucyB0byBrZWVwXG4gIGNvbnN0IHtcbiAgICBhbGxvd2VkQ29tbW9uSnNEZXBlbmRlbmNpZXMsXG4gICAgYW90LFxuICAgIGJhc2VIcmVmLFxuICAgIGNyb3NzT3JpZ2luLFxuICAgIGV4dGVybmFsRGVwZW5kZW5jaWVzLFxuICAgIGV4dHJhY3RMaWNlbnNlcyxcbiAgICBpbmxpbmVTdHlsZUxhbmd1YWdlID0gJ2NzcycsXG4gICAgb3V0RXh0ZW5zaW9uLFxuICAgIHNlcnZpY2VXb3JrZXIsXG4gICAgcG9sbCxcbiAgICBwb2x5ZmlsbHMsXG4gICAgcHJlc2VydmVTeW1saW5rcyxcbiAgICBzdGF0c0pzb24sXG4gICAgc3R5bGVQcmVwcm9jZXNzb3JPcHRpb25zLFxuICAgIHN1YnJlc291cmNlSW50ZWdyaXR5LFxuICAgIHZlcmJvc2UsXG4gICAgd2F0Y2gsXG4gICAgcHJvZ3Jlc3MgPSB0cnVlLFxuICAgIGV4dGVybmFsUGFja2FnZXMsXG4gICAgZGVsZXRlT3V0cHV0UGF0aCxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgLy8gUmV0dXJuIGFsbCB0aGUgbm9ybWFsaXplZCBvcHRpb25zXG4gIHJldHVybiB7XG4gICAgYWR2YW5jZWRPcHRpbWl6YXRpb25zOiAhIWFvdCxcbiAgICBhbGxvd2VkQ29tbW9uSnNEZXBlbmRlbmNpZXMsXG4gICAgYmFzZUhyZWYsXG4gICAgY2FjaGVPcHRpb25zLFxuICAgIGNyb3NzT3JpZ2luLFxuICAgIGRlbGV0ZU91dHB1dFBhdGgsXG4gICAgZXh0ZXJuYWxEZXBlbmRlbmNpZXMsXG4gICAgZXh0cmFjdExpY2Vuc2VzLFxuICAgIGlubGluZVN0eWxlTGFuZ3VhZ2UsXG4gICAgaml0OiAhYW90LFxuICAgIHN0YXRzOiAhIXN0YXRzSnNvbixcbiAgICBwb2x5ZmlsbHM6IHBvbHlmaWxscyA9PT0gdW5kZWZpbmVkIHx8IEFycmF5LmlzQXJyYXkocG9seWZpbGxzKSA/IHBvbHlmaWxscyA6IFtwb2x5ZmlsbHNdLFxuICAgIHBvbGwsXG4gICAgcHJvZ3Jlc3MsXG4gICAgZXh0ZXJuYWxQYWNrYWdlcyxcbiAgICAvLyBJZiBub3QgZXhwbGljaXRseSBzZXQsIGRlZmF1bHQgdG8gdGhlIE5vZGUuanMgcHJvY2VzcyBhcmd1bWVudFxuICAgIHByZXNlcnZlU3ltbGlua3M6IHByZXNlcnZlU3ltbGlua3MgPz8gcHJvY2Vzcy5leGVjQXJndi5pbmNsdWRlcygnLS1wcmVzZXJ2ZS1zeW1saW5rcycpLFxuICAgIHN0eWxlUHJlcHJvY2Vzc29yT3B0aW9ucyxcbiAgICBzdWJyZXNvdXJjZUludGVncml0eSxcbiAgICBzZXJ2ZXJFbnRyeVBvaW50LFxuICAgIHByZXJlbmRlck9wdGlvbnMsXG4gICAgYXBwU2hlbGxPcHRpb25zLFxuICAgIHNzck9wdGlvbnMsXG4gICAgdmVyYm9zZSxcbiAgICB3YXRjaCxcbiAgICB3b3Jrc3BhY2VSb290LFxuICAgIGVudHJ5UG9pbnRzLFxuICAgIG9wdGltaXphdGlvbk9wdGlvbnMsXG4gICAgb3V0cHV0UGF0aCxcbiAgICBvdXRFeHRlbnNpb24sXG4gICAgc291cmNlbWFwT3B0aW9ucyxcbiAgICB0c2NvbmZpZyxcbiAgICBwcm9qZWN0Um9vdCxcbiAgICBhc3NldHMsXG4gICAgb3V0cHV0TmFtZXMsXG4gICAgZmlsZVJlcGxhY2VtZW50cyxcbiAgICBnbG9iYWxTdHlsZXMsXG4gICAgZ2xvYmFsU2NyaXB0cyxcbiAgICBzZXJ2aWNlV29ya2VyOlxuICAgICAgdHlwZW9mIHNlcnZpY2VXb3JrZXIgPT09ICdzdHJpbmcnID8gcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIHNlcnZpY2VXb3JrZXIpIDogdW5kZWZpbmVkLFxuICAgIGluZGV4SHRtbE9wdGlvbnMsXG4gICAgdGFpbHdpbmRDb25maWd1cmF0aW9uLFxuICAgIGkxOG5PcHRpb25zLFxuICB9O1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBlbnRyeSBwb2ludCBvcHRpb25zLiBUbyBtYWludGFpbiBjb21wYXRpYmlsaXR5IHdpdGggdGhlIGxlZ2FjeSBicm93c2VyIGJ1aWxkZXIsIHdlIG5lZWQgYSBzaW5nbGUgYGJyb3dzZXJgXG4gKiBvcHRpb24gd2hpY2ggZGVmaW5lcyBhIHNpbmdsZSBlbnRyeSBwb2ludC4gSG93ZXZlciwgd2UgYWxzbyB3YW50IHRvIHN1cHBvcnQgbXVsdGlwbGUgZW50cnkgcG9pbnRzIGFzIGFuIGludGVybmFsIG9wdGlvbi5cbiAqIFRoZSB0d28gb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIGFuZCBpZiBgYnJvd3NlcmAgaXMgcHJvdmlkZWQgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZSBzb2xlIGVudHJ5IHBvaW50LlxuICogSWYgYGVudHJ5UG9pbnRzYCBhcmUgcHJvdmlkZWQsIHRoZXkgd2lsbCBiZSB1c2VkIGFzIHRoZSBzZXQgb2YgZW50cnkgcG9pbnRzLlxuICpcbiAqIEBwYXJhbSB3b3Jrc3BhY2VSb290IFBhdGggdG8gdGhlIHJvb3Qgb2YgdGhlIEFuZ3VsYXIgd29ya3NwYWNlLlxuICogQHBhcmFtIGJyb3dzZXIgVGhlIGBicm93c2VyYCBvcHRpb24gcG9pbnRpbmcgYXQgdGhlIGFwcGxpY2F0aW9uIGVudHJ5IHBvaW50LiBXaGlsZSByZXF1aXJlZCBwZXIgdGhlIHNjaGVtYSBmaWxlLCBpdCBtYXkgYmUgb21pdHRlZCBieVxuICogICAgIHByb2dyYW1tYXRpYyB1c2FnZXMgb2YgYGJyb3dzZXItZXNidWlsZGAuXG4gKiBAcGFyYW0gZW50cnlQb2ludHMgU2V0IG9mIGVudHJ5IHBvaW50cyB0byB1c2UgaWYgcHJvdmlkZWQuXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgbWFwcGluZyBlbnRyeSBwb2ludCBuYW1lcyB0byB0aGVpciBmaWxlIHBhdGhzLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVFbnRyeVBvaW50cyhcbiAgd29ya3NwYWNlUm9vdDogc3RyaW5nLFxuICBicm93c2VyOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGVudHJ5UG9pbnRzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKSxcbik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBpZiAoYnJvd3NlciA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2Bicm93c2VyYCBvcHRpb24gY2Fubm90IGJlIGFuIGVtcHR5IHN0cmluZy4nKTtcbiAgfVxuXG4gIC8vIGBicm93c2VyYCBhbmQgYGVudHJ5UG9pbnRzYCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLlxuICBpZiAoYnJvd3NlciAmJiBlbnRyeVBvaW50cy5zaXplID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignT25seSBvbmUgb2YgYGJyb3dzZXJgIG9yIGBlbnRyeVBvaW50c2AgbWF5IGJlIHByb3ZpZGVkLicpO1xuICB9XG4gIGlmICghYnJvd3NlciAmJiBlbnRyeVBvaW50cy5zaXplID09PSAwKSB7XG4gICAgLy8gU2NoZW1hIHNob3VsZCBub3JtYWxseSByZWplY3QgdGhpcyBjYXNlLCBidXQgcHJvZ3JhbW1hdGljIHVzYWdlcyBvZiB0aGUgYnVpbGRlciBtaWdodCBtYWtlIHRoaXMgbWlzdGFrZS5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0VpdGhlciBgYnJvd3NlcmAgb3IgYXQgbGVhc3Qgb25lIGBlbnRyeVBvaW50c2AgdmFsdWUgbXVzdCBiZSBwcm92aWRlZC4nKTtcbiAgfVxuXG4gIC8vIFNjaGVtYSB0eXBlcyBmb3JjZSBgYnJvd3NlcmAgdG8gYWx3YXlzIGJlIHByb3ZpZGVkLCBidXQgaXQgbWF5IGJlIG9taXR0ZWQgd2hlbiB0aGUgYnVpbGRlciBpcyBpbnZva2VkIHByb2dyYW1tYXRpY2FsbHkuXG4gIGlmIChicm93c2VyKSB7XG4gICAgLy8gVXNlIGBicm93c2VyYCBhbG9uZS5cbiAgICByZXR1cm4geyAnbWFpbic6IHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBicm93c2VyKSB9O1xuICB9IGVsc2Uge1xuICAgIC8vIFVzZSBgZW50cnlQb2ludHNgIGFsb25lLlxuICAgIGNvbnN0IGVudHJ5UG9pbnRQYXRoczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGZvciAoY29uc3QgZW50cnlQb2ludCBvZiBlbnRyeVBvaW50cykge1xuICAgICAgY29uc3QgcGFyc2VkRW50cnlQb2ludCA9IHBhdGgucGFyc2UoZW50cnlQb2ludCk7XG5cbiAgICAgIC8vIFVzZSB0aGUgaW5wdXQgZmlsZSBwYXRoIHdpdGhvdXQgYW4gZXh0ZW5zaW9uIGFzIHRoZSBcIm5hbWVcIiBvZiB0aGUgZW50cnkgcG9pbnQgZGljdGF0aW5nIGl0cyBvdXRwdXQgbG9jYXRpb24uXG4gICAgICAvLyBSZWxhdGl2ZSBlbnRyeSBwb2ludHMgYXJlIGdlbmVyYXRlZCBhdCB0aGUgc2FtZSByZWxhdGl2ZSBwYXRoIGluIHRoZSBvdXRwdXQgZGlyZWN0b3J5LlxuICAgICAgLy8gQWJzb2x1dGUgZW50cnkgcG9pbnRzIGFyZSBhbHdheXMgZ2VuZXJhdGVkIHdpdGggdGhlIHNhbWUgZmlsZSBuYW1lIGluIHRoZSByb290IG9mIHRoZSBvdXRwdXQgZGlyZWN0b3J5LiBUaGlzIGluY2x1ZGVzIGFic29sdXRlXG4gICAgICAvLyBwYXRocyBwb2ludGluZyBhdCBmaWxlcyBhY3R1YWxseSB3aXRoaW4gdGhlIHdvcmtzcGFjZSByb290LlxuICAgICAgY29uc3QgZW50cnlQb2ludE5hbWUgPSBwYXRoLmlzQWJzb2x1dGUoZW50cnlQb2ludClcbiAgICAgICAgPyBwYXJzZWRFbnRyeVBvaW50Lm5hbWVcbiAgICAgICAgOiBwYXRoLmpvaW4ocGFyc2VkRW50cnlQb2ludC5kaXIsIHBhcnNlZEVudHJ5UG9pbnQubmFtZSk7XG5cbiAgICAgIC8vIEdldCB0aGUgZnVsbCBmaWxlIHBhdGggdG8gdGhlIGVudHJ5IHBvaW50IGlucHV0LlxuICAgICAgY29uc3QgZW50cnlQb2ludFBhdGggPSBwYXRoLmlzQWJzb2x1dGUoZW50cnlQb2ludClcbiAgICAgICAgPyBlbnRyeVBvaW50XG4gICAgICAgIDogcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIGVudHJ5UG9pbnQpO1xuXG4gICAgICAvLyBDaGVjayBmb3IgY29uZmxpY3RzIHdpdGggcHJldmlvdXMgZW50cnkgcG9pbnRzLlxuICAgICAgY29uc3QgZXhpc3RpbmdFbnRyeVBvaW50UGF0aCA9IGVudHJ5UG9pbnRQYXRoc1tlbnRyeVBvaW50TmFtZV07XG4gICAgICBpZiAoZXhpc3RpbmdFbnRyeVBvaW50UGF0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFxcYCR7ZXhpc3RpbmdFbnRyeVBvaW50UGF0aH1cXGAgYW5kIFxcYCR7ZW50cnlQb2ludFBhdGh9XFxgIGJvdGggb3V0cHV0IHRvIHRoZSBzYW1lIGxvY2F0aW9uIFxcYCR7ZW50cnlQb2ludE5hbWV9XFxgLmAgK1xuICAgICAgICAgICAgJyBSZW5hbWUgb3IgbW92ZSBvbmUgb2YgdGhlIGZpbGVzIHRvIGZpeCB0aGUgY29uZmxpY3QuJyxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgZW50cnlQb2ludFBhdGhzW2VudHJ5UG9pbnROYW1lXSA9IGVudHJ5UG9pbnRQYXRoO1xuICAgIH1cblxuICAgIHJldHVybiBlbnRyeVBvaW50UGF0aHM7XG4gIH1cbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgYSBkaXJlY3RvcnkgcGF0aCBzdHJpbmcuXG4gKiBDdXJyZW50bHkgb25seSByZW1vdmVzIGEgdHJhaWxpbmcgc2xhc2ggaWYgcHJlc2VudC5cbiAqIEBwYXJhbSBwYXRoIEEgcGF0aCBzdHJpbmcuXG4gKiBAcmV0dXJucyBBIG5vcm1hbGl6ZWQgcGF0aCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZURpcmVjdG9yeVBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbGFzdCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcbiAgaWYgKGxhc3QgPT09ICcvJyB8fCBsYXN0ID09PSAnXFxcXCcpIHtcbiAgICByZXR1cm4gcGF0aC5zbGljZSgwLCAtMSk7XG4gIH1cblxuICByZXR1cm4gcGF0aDtcbn1cbiJdfQ==
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7O0FBR0gsNkNBQTRDO0FBQzVDLDBEQUE2QjtBQUM3QiwrREFHMkM7QUFDM0MsdUNBQWlHO0FBQ2pHLDJEQUEwRTtBQUMxRSxpRUFBb0U7QUFDcEUsdUVBQXFFO0FBQ3JFLG1EQUFxRTtBQUNyRSwrRUFBMkY7QUFDM0YscUNBQStGO0FBaUMvRjs7Ozs7Ozs7O0dBU0c7QUFDSCxrREFBa0Q7QUFDM0MsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxPQUF1QixFQUN2QixXQUFtQixFQUNuQixPQUEwQztJQUUxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQzVDLE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUN4QyxtQkFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUcsZUFBZSxDQUFDLElBQTJCLElBQUksRUFBRSxDQUFDLENBQzdFLENBQUM7SUFDRixNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUM5QyxtQkFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUcsZUFBZSxDQUFDLFVBQWlDLElBQUksS0FBSyxDQUFDLENBQ3RGLENBQUM7SUFFRixpRkFBaUY7SUFDakYsTUFBTSxZQUFZLEdBQUcsSUFBQSx1Q0FBcUIsRUFBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDM0UsWUFBWSxDQUFDLElBQUksR0FBRyxtQkFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxD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RztBQUNILFNBQVMsc0JBQXNCLENBQUMsSUFBWTtJQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuQyxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtRQUNqQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDMUI7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgQnVpbGRlckNvbnRleHQgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvYXJjaGl0ZWN0JztcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdub2RlOm1vZHVsZSc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtcbiAgZ2xvYmFsU2NyaXB0c0J5QnVuZGxlTmFtZSxcbiAgbm9ybWFsaXplR2xvYmFsU3R5bGVzLFxufSBmcm9tICcuLi8uLi90b29scy93ZWJwYWNrL3V0aWxzL2hlbHBlcnMnO1xuaW1wb3J0IHsgbm9ybWFsaXplQXNzZXRQYXR0ZXJucywgbm9ybWFsaXplT3B0aW1pemF0aW9uLCBub3JtYWxpemVTb3VyY2VNYXBzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgSTE4bk9wdGlvbnMsIGNyZWF0ZUkxOG5PcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvaTE4bi1vcHRpb25zJztcbmltcG9ydCB7IG5vcm1hbGl6ZUNhY2hlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL25vcm1hbGl6ZS1jYWNoZSc7XG5pbXBvcnQgeyBnZW5lcmF0ZUVudHJ5UG9pbnRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvcGFja2FnZS1jaHVuay1zb3J0JztcbmltcG9ydCB7IGZpbmRUYWlsd2luZENvbmZpZ3VyYXRpb25GaWxlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdGFpbHdpbmQnO1xuaW1wb3J0IHsgZ2V0SW5kZXhJbnB1dEZpbGUsIGdldEluZGV4T3V0cHV0RmlsZSB9IGZyb20gJy4uLy4uL3V0aWxzL3dlYnBhY2stYnJvd3Nlci1jb25maWcnO1xuaW1wb3J0IHsgU2NoZW1hIGFzIEFwcGxpY2F0aW9uQnVpbGRlck9wdGlvbnMsIEkxOE5UcmFuc2xhdGlvbiwgT3V0cHV0SGFzaGluZyB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zID0gQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiBub3JtYWxpemVPcHRpb25zPj47XG5cbi8qKiBJbnRlcm5hbCBvcHRpb25zIGhpZGRlbiBmcm9tIGJ1aWxkZXIgc2NoZW1hIGJ1dCBhdmFpbGFibGUgd2hlbiBpbnZva2VkIHByb2dyYW1tYXRpY2FsbHkuICovXG5pbnRlcmZhY2UgSW50ZXJuYWxPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVudHJ5IHBvaW50cyB0byB1c2UgZm9yIHRoZSBjb21waWxhdGlvbi4gSW5jb21wYXRpYmxlIHdpdGggYGJyb3dzZXJgLCB3aGljaCBtdXN0IG5vdCBiZSBwcm92aWRlZC4gTWF5IGJlIHJlbGF0aXZlIG9yIGFic29sdXRlIHBhdGhzLlxuICAgKiBJZiBnaXZlbiBhIHJlbGF0aXZlIHBhdGgsIGl0IGlzIHJlc29sdmVkIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBhbmQgd2lsbCBnZW5lcmF0ZSBhbiBvdXRwdXQgYXQgdGhlIHNhbWUgcmVsYXRpdmUgbG9jYXRpb25cbiAgICogaW4gdGhlIG91dHB1dCBkaXJlY3RvcnkuIElmIGdpdmVuIGFuIGFic29sdXRlIHBhdGgsIHRoZSBvdXRwdXQgd2lsbCBiZSBnZW5lcmF0ZWQgaW4gdGhlIHJvb3Qgb2YgdGhlIG91dHB1dCBkaXJlY3Rvcnkgd2l0aCB0aGUgc2FtZSBiYXNlXG4gICAqIG5hbWUuXG4gICAqL1xuICBlbnRyeVBvaW50cz86IFNldDxzdHJpbmc+O1xuXG4gIC8qKiBGaWxlIGV4dGVuc2lvbiB0byB1c2UgZm9yIHRoZSBnZW5lcmF0ZWQgb3V0cHV0IGZpbGVzLiAqL1xuICBvdXRFeHRlbnNpb24/OiAnanMnIHwgJ21qcyc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIGFsbCBub2RlIHBhY2thZ2VzIHNob3VsZCBiZSBtYXJrZWQgYXMgZXh0ZXJuYWwuXG4gICAqIEN1cnJlbnRseSB1c2VkIGJ5IHRoZSBkZXYtc2VydmVyIHRvIHN1cHBvcnQgcHJlYnVuZGxpbmcuXG4gICAqL1xuICBleHRlcm5hbFBhY2thZ2VzPzogYm9vbGVhbjtcbn1cblxuLyoqIEZ1bGwgc2V0IG9mIG9wdGlvbnMgZm9yIGBhcHBsaWNhdGlvbmAgYnVpbGRlci4gKi9cbmV4cG9ydCB0eXBlIEFwcGxpY2F0aW9uQnVpbGRlckludGVybmFsT3B0aW9ucyA9IE9taXQ8XG4gIEFwcGxpY2F0aW9uQnVpbGRlck9wdGlvbnMgJiBJbnRlcm5hbE9wdGlvbnMsXG4gICdicm93c2VyJ1xuPiAmIHtcbiAgLy8gYGJyb3dzZXJgIGNhbiBiZSBgdW5kZWZpbmVkYCBpZiBgZW50cnlQb2ludHNgIGlzIHVzZWQuXG4gIGJyb3dzZXI/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIE5vcm1hbGl6ZSB0aGUgdXNlciBwcm92aWRlZCBvcHRpb25zIGJ5IGNyZWF0aW5nIGZ1bGwgcGF0aHMgZm9yIGFsbCBwYXRoIGJhc2VkIG9wdGlvbnNcbiAqIGFuZCBjb252ZXJ0aW5nIG11bHRpLWZvcm0gb3B0aW9ucyBpbnRvIGEgc2luZ2xlIGZvcm0gdGhhdCBjYW4gYmUgZGlyZWN0bHkgdXNlZFxuICogYnkgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gKlxuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgZm9yIGN1cnJlbnQgYnVpbGRlciBleGVjdXRpb24uXG4gKiBAcGFyYW0gcHJvamVjdE5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb2plY3QgZm9yIHRoZSBjdXJyZW50IGV4ZWN1dGlvbi5cbiAqIEBwYXJhbSBvcHRpb25zIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBvcHRpb25zIHRvIHVzZSBmb3IgdGhlIGJ1aWxkLlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgbm9ybWFsaXplZCBvcHRpb25zIHJlcXVpcmVkIHRvIHBlcmZvcm0gdGhlIGJ1aWxkLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxpbmVzLXBlci1mdW5jdGlvblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5vcm1hbGl6ZU9wdGlvbnMoXG4gIGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0LFxuICBwcm9qZWN0TmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBBcHBsaWNhdGlvbkJ1aWxkZXJJbnRlcm5hbE9wdGlvbnMsXG4pIHtcbiAgY29uc3Qgd29ya3NwYWNlUm9vdCA9IGNvbnRleHQud29ya3NwYWNlUm9vdDtcbiAgY29uc3QgcHJvamVjdE1ldGFkYXRhID0gYXdhaXQgY29udGV4dC5nZXRQcm9qZWN0TWV0YWRhdGEocHJvamVjdE5hbWUpO1xuICBjb25zdCBwcm9qZWN0Um9vdCA9IG5vcm1hbGl6ZURpcmVjdG9yeVBhdGgoXG4gICAgcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIChwcm9qZWN0TWV0YWRhdGEucm9vdCBhcyBzdHJpbmcgfCB1bmRlZmluZWQpID8/ICcnKSxcbiAgKTtcbiAgY29uc3QgcHJvamVjdFNvdXJjZVJvb3QgPSBub3JtYWxpemVEaXJlY3RvcnlQYXRoKFxuICAgIHBhdGguam9pbih3b3Jrc3BhY2VSb290LCAocHJvamVjdE1ldGFkYXRhLnNvdXJjZVJvb3QgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSA/PyAnc3JjJyksXG4gICk7XG5cbiAgLy8gR2F0aGVyIHBlcnNpc3RlbnQgY2FjaGluZyBvcHRpb24gYW5kIHByb3ZpZGUgYSBwcm9qZWN0IHNwZWNpZmljIGNhY2hlIGxvY2F0aW9uXG4gIGNvbnN0IGNhY2hlT3B0aW9ucyA9IG5vcm1hbGl6ZUNhY2hlT3B0aW9ucyhwcm9qZWN0TWV0YWRhdGEsIHdvcmtzcGFjZVJvb3QpO1xuICBjYWNoZU9wdGlvbnMucGF0aCA9IHBhdGguam9pbihjYWNoZU9wdGlvbnMucGF0aCwgcHJvamVjdE5hbWUpO1xuXG4gIGNvbnN0IGkxOG5PcHRpb25zOiBJMThuT3B0aW9ucyAmIHtcbiAgICBkdXBsaWNhdGVUcmFuc2xhdGlvbkJlaGF2aW9yPzogSTE4TlRyYW5zbGF0aW9uO1xuICAgIG1pc3NpbmdUcmFuc2xhdGlvbkJlaGF2aW9yPzogSTE4TlRyYW5zbGF0aW9uO1xuICB9ID0gY3JlYXRlSTE4bk9wdGlvbnMocHJvamVjdE1ldGFkYXRhLCBvcHRpb25zLmxvY2FsaXplKTtcbiAgaTE4bk9wdGlvbnMuZHVwbGljYXRlVHJhbnNsYXRpb25CZWhhdmlvciA9IG9wdGlvbnMuaTE4bkR1cGxpY2F0ZVRyYW5zbGF0aW9uO1xuICBpMThuT3B0aW9ucy5taXNzaW5nVHJhbnNsYXRpb25CZWhhdmlvciA9IG9wdGlvbnMuaTE4bk1pc3NpbmdUcmFuc2xhdGlvbjtcblxuICBjb25zdCBlbnRyeVBvaW50cyA9IG5vcm1hbGl6ZUVudHJ5UG9pbnRzKHdvcmtzcGFjZVJvb3QsIG9wdGlvbnMuYnJvd3Nlciwgb3B0aW9ucy5lbnRyeVBvaW50cyk7XG4gIGNvbnN0IHRzY29uZmlnID0gcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIG9wdGlvbnMudHNDb25maWcpO1xuICBjb25zdCBvdXRwdXRQYXRoID0gbm9ybWFsaXplRGlyZWN0b3J5UGF0aChwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgb3B0aW9ucy5vdXRwdXRQYXRoKSk7XG4gIGNvbnN0IG9wdGltaXphdGlvbk9wdGlvbnMgPSBub3JtYWxpemVPcHRpbWl6YXRpb24ob3B0aW9ucy5vcHRpbWl6YXRpb24pO1xuICBjb25zdCBzb3VyY2VtYXBPcHRpb25zID0gbm9ybWFsaXplU291cmNlTWFwcyhvcHRpb25zLnNvdXJjZU1hcCA/PyBmYWxzZSk7XG4gIGNvbnN0IGFzc2V0cyA9IG9wdGlvbnMuYXNzZXRzPy5sZW5ndGhcbiAgICA/IG5vcm1hbGl6ZUFzc2V0UGF0dGVybnMob3B0aW9ucy5hc3NldHMsIHdvcmtzcGFjZVJvb3QsIHByb2plY3RSb290LCBwcm9qZWN0U291cmNlUm9vdClcbiAgICA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBvdXRwdXROYW1lcyA9IHtcbiAgICBidW5kbGVzOlxuICAgICAgb3B0aW9ucy5vdXRwdXRIYXNoaW5nID09PSBPdXRwdXRIYXNoaW5nLkFsbCB8fCBvcHRpb25zLm91dHB1dEhhc2hpbmcgPT09IE91dHB1dEhhc2hpbmcuQnVuZGxlc1xuICAgICAgICA/ICdbbmFtZV0uW2hhc2hdJ1xuICAgICAgICA6ICdbbmFtZV0nLFxuICAgIG1lZGlhOlxuICAgICAgJ21lZGlhLycgK1xuICAgICAgKG9wdGlvbnMub3V0cHV0SGFzaGluZyA9PT0gT3V0cHV0SGFzaGluZy5BbGwgfHwgb3B0aW9ucy5vdXRwdXRIYXNoaW5nID09PSBPdXRwdXRIYXNoaW5nLk1lZGlhXG4gICAgICAgID8gJ1tuYW1lXS5baGFzaF0nXG4gICAgICAgIDogJ1tuYW1lXScpLFxuICB9O1xuXG4gIGxldCBmaWxlUmVwbGFjZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkO1xuICBpZiAob3B0aW9ucy5maWxlUmVwbGFjZW1lbnRzKSB7XG4gICAgZm9yIChjb25zdCByZXBsYWNlbWVudCBvZiBvcHRpb25zLmZpbGVSZXBsYWNlbWVudHMpIHtcbiAgICAgIGZpbGVSZXBsYWNlbWVudHMgPz89IHt9O1xuICAgICAgZmlsZVJlcGxhY2VtZW50c1twYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgcmVwbGFjZW1lbnQucmVwbGFjZSldID0gcGF0aC5qb2luKFxuICAgICAgICB3b3Jrc3BhY2VSb290LFxuICAgICAgICByZXBsYWNlbWVudC53aXRoLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBnbG9iYWxTdHlsZXM6IHsgbmFtZTogc3RyaW5nOyBmaWxlczogc3RyaW5nW107IGluaXRpYWw6IGJvb2xlYW4gfVtdID0gW107XG4gIGlmIChvcHRpb25zLnN0eWxlcz8ubGVuZ3RoKSB7XG4gICAgY29uc3QgeyBlbnRyeVBvaW50czogc3R5bGVzaGVldEVudHJ5cG9pbnRzLCBub0luamVjdE5hbWVzIH0gPSBub3JtYWxpemVHbG9iYWxTdHlsZXMoXG4gICAgICBvcHRpb25zLnN0eWxlcyB8fCBbXSxcbiAgICApO1xuICAgIGZvciAoY29uc3QgW25hbWUsIGZpbGVzXSBvZiBPYmplY3QuZW50cmllcyhzdHlsZXNoZWV0RW50cnlwb2ludHMpKSB7XG4gICAgICBnbG9iYWxTdHlsZXMucHVzaCh7IG5hbWUsIGZpbGVzLCBpbml0aWFsOiAhbm9JbmplY3ROYW1lcy5pbmNsdWRlcyhuYW1lKSB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBnbG9iYWxTY3JpcHRzOiB7IG5hbWU6IHN0cmluZzsgZmlsZXM6IHN0cmluZ1tdOyBpbml0aWFsOiBib29sZWFuIH1bXSA9IFtdO1xuICBpZiAob3B0aW9ucy5zY3JpcHRzPy5sZW5ndGgpIHtcbiAgICBmb3IgKGNvbnN0IHsgYnVuZGxlTmFtZSwgcGF0aHMsIGluamVjdCB9IG9mIGdsb2JhbFNjcmlwdHNCeUJ1bmRsZU5hbWUob3B0aW9ucy5zY3JpcHRzKSkge1xuICAgICAgZ2xvYmFsU2NyaXB0cy5wdXNoKHsgbmFtZTogYnVuZGxlTmFtZSwgZmlsZXM6IHBhdGhzLCBpbml0aWFsOiBpbmplY3QgfSk7XG4gICAgfVxuICB9XG5cbiAgbGV0IHRhaWx3aW5kQ29uZmlndXJhdGlvbjogeyBmaWxlOiBzdHJpbmc7IHBhY2thZ2U6IHN0cmluZyB9IHwgdW5kZWZpbmVkO1xuICBjb25zdCB0YWlsd2luZENvbmZpZ3VyYXRpb25QYXRoID0gYXdhaXQgZmluZFRhaWx3aW5kQ29uZmlndXJhdGlvbkZpbGUod29ya3NwYWNlUm9vdCwgcHJvamVjdFJvb3QpO1xuICBpZiAodGFpbHdpbmRDb25maWd1cmF0aW9uUGF0aCkge1xuICAgIC8vIENyZWF0ZSBhIG5vZGUgcmVzb2x2ZXIgYXQgdGhlIHByb2plY3Qgcm9vdCBhcyBhIGRpcmVjdG9yeVxuICAgIGNvbnN0IHJlc29sdmVyID0gY3JlYXRlUmVxdWlyZShwcm9qZWN0Um9vdCArICcvJyk7XG4gICAgdHJ5IHtcbiAgICAgIHRhaWx3aW5kQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgZmlsZTogdGFpbHdpbmRDb25maWd1cmF0aW9uUGF0aCxcbiAgICAgICAgcGFja2FnZTogcmVzb2x2ZXIucmVzb2x2ZSgndGFpbHdpbmRjc3MnKSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCB7XG4gICAgICBjb25zdCByZWxhdGl2ZVRhaWx3aW5kQ29uZmlnUGF0aCA9IHBhdGgucmVsYXRpdmUod29ya3NwYWNlUm9vdCwgdGFpbHdpbmRDb25maWd1cmF0aW9uUGF0aCk7XG4gICAgICBjb250ZXh0LmxvZ2dlci53YXJuKFxuICAgICAgICBgVGFpbHdpbmQgQ1NTIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3VuZCAoJHtyZWxhdGl2ZVRhaWx3aW5kQ29uZmlnUGF0aH0pYCArXG4gICAgICAgICAgYCBidXQgdGhlICd0YWlsd2luZGNzcycgcGFja2FnZSBpcyBub3QgaW5zdGFsbGVkLmAgK1xuICAgICAgICAgIGAgVG8gZW5hYmxlIFRhaWx3aW5kIENTUywgcGxlYXNlIGluc3RhbGwgdGhlICd0YWlsd2luZGNzcycgcGFja2FnZS5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBsZXQgaW5kZXhIdG1sT3B0aW9ucztcbiAgLy8gaW5kZXggY2FuIG5ldmVyIGhhdmUgYSB2YWx1ZSBvZiBgdHJ1ZWAgYnV0IGluIHRoZSBzY2hlbWEgaXQncyBvZiB0eXBlIGBib29sZWFuYC5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLmluZGV4ICE9PSAnYm9vbGVhbicpIHtcbiAgICBpbmRleEh0bWxPcHRpb25zID0ge1xuICAgICAgaW5wdXQ6IHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBnZXRJbmRleElucHV0RmlsZShvcHRpb25zLmluZGV4KSksXG4gICAgICAvLyBUaGUgb3V0cHV0IGZpbGUgd2lsbCBiZSBjcmVhdGVkIHdpdGhpbiB0aGUgY29uZmlndXJlZCBvdXRwdXQgcGF0aFxuICAgICAgb3V0cHV0OiBnZXRJbmRleE91dHB1dEZpbGUob3B0aW9ucy5pbmRleCksXG4gICAgICAvLyBUT0RPOiBVc2UgZXhpc3RpbmcgaW5mb3JtYXRpb24gZnJvbSBhYm92ZSB0byBjcmVhdGUgdGhlIGluc2VydGlvbiBvcmRlclxuICAgICAgaW5zZXJ0aW9uT3JkZXI6IGdlbmVyYXRlRW50cnlQb2ludHMoe1xuICAgICAgICBzY3JpcHRzOiBvcHRpb25zLnNjcmlwdHMgPz8gW10sXG4gICAgICAgIHN0eWxlczogb3B0aW9ucy5zdHlsZXMgPz8gW10sXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG5cbiAgbGV0IHNlcnZlckVudHJ5UG9pbnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaWYgKG9wdGlvbnMuc2VydmVyKSB7XG4gICAgc2VydmVyRW50cnlQb2ludCA9IHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBvcHRpb25zLnNlcnZlcik7XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5zZXJ2ZXIgPT09ICcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdgc2VydmVyYCBvcHRpb24gY2Fubm90IGJlIGFuIGVtcHR5IHN0cmluZy4nKTtcbiAgfVxuXG4gIGxldCBwcmVyZW5kZXJPcHRpb25zO1xuICBpZiAob3B0aW9ucy5wcmVyZW5kZXIpIHtcbiAgICBjb25zdCB7XG4gICAgICBkaXNjb3ZlclJvdXRlcyA9IHRydWUsXG4gICAgICByb3V0ZXMgPSBbXSxcbiAgICAgIHJvdXRlc0ZpbGUgPSB1bmRlZmluZWQsXG4gICAgfSA9IG9wdGlvbnMucHJlcmVuZGVyID09PSB0cnVlID8ge30gOiBvcHRpb25zLnByZXJlbmRlcjtcblxuICAgIHByZXJlbmRlck9wdGlvbnMgPSB7XG4gICAgICBkaXNjb3ZlclJvdXRlcyxcbiAgICAgIHJvdXRlcyxcbiAgICAgIHJvdXRlc0ZpbGU6IHJvdXRlc0ZpbGUgJiYgcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIHJvdXRlc0ZpbGUpLFxuICAgIH07XG4gIH1cblxuICBsZXQgc3NyT3B0aW9ucztcbiAgaWYgKG9wdGlvbnMuc3NyID09PSB0cnVlKSB7XG4gICAgc3NyT3B0aW9ucyA9IHt9O1xuICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zLnNzciA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCB7IGVudHJ5IH0gPSBvcHRpb25zLnNzcjtcblxuICAgIHNzck9wdGlvbnMgPSB7XG4gICAgICBlbnRyeTogZW50cnkgJiYgcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIGVudHJ5KSxcbiAgICB9O1xuICB9XG5cbiAgbGV0IGFwcFNoZWxsT3B0aW9ucztcbiAgaWYgKG9wdGlvbnMuYXBwU2hlbGwpIHtcbiAgICBhcHBTaGVsbE9wdGlvbnMgPSB7XG4gICAgICByb3V0ZTogJ3NoZWxsJyxcbiAgICB9O1xuICB9XG5cbiAgLy8gSW5pdGlhbCBvcHRpb25zIHRvIGtlZXBcbiAgY29uc3Qge1xuICAgIGFsbG93ZWRDb21tb25Kc0RlcGVuZGVuY2llcyxcbiAgICBhb3QsXG4gICAgYmFzZUhyZWYsXG4gICAgY3Jvc3NPcmlnaW4sXG4gICAgZXh0ZXJuYWxEZXBlbmRlbmNpZXMsXG4gICAgZXh0cmFjdExpY2Vuc2VzLFxuICAgIGlubGluZVN0eWxlTGFuZ3VhZ2UgPSAnY3NzJyxcbiAgICBvdXRFeHRlbnNpb24sXG4gICAgc2VydmljZVdvcmtlcixcbiAgICBwb2xsLFxuICAgIHBvbHlmaWxscyxcbiAgICBwcmVzZXJ2ZVN5bWxpbmtzLFxuICAgIHN0YXRzSnNvbixcbiAgICBzdHlsZVByZXByb2Nlc3Nvck9wdGlvbnMsXG4gICAgc3VicmVzb3VyY2VJbnRlZ3JpdHksXG4gICAgdmVyYm9zZSxcbiAgICB3YXRjaCxcbiAgICBwcm9ncmVzcyA9IHRydWUsXG4gICAgZXh0ZXJuYWxQYWNrYWdlcyxcbiAgICBkZWxldGVPdXRwdXRQYXRoLFxuICB9ID0gb3B0aW9ucztcblxuICAvLyBSZXR1cm4gYWxsIHRoZSBub3JtYWxpemVkIG9wdGlvbnNcbiAgcmV0dXJuIHtcbiAgICBhZHZhbmNlZE9wdGltaXphdGlvbnM6ICEhYW90LFxuICAgIGFsbG93ZWRDb21tb25Kc0RlcGVuZGVuY2llcyxcbiAgICBiYXNlSHJlZixcbiAgICBjYWNoZU9wdGlvbnMsXG4gICAgY3Jvc3NPcmlnaW4sXG4gICAgZGVsZXRlT3V0cHV0UGF0aCxcbiAgICBleHRlcm5hbERlcGVuZGVuY2llcyxcbiAgICBleHRyYWN0TGljZW5zZXMsXG4gICAgaW5saW5lU3R5bGVMYW5ndWFnZSxcbiAgICBqaXQ6ICFhb3QsXG4gICAgc3RhdHM6ICEhc3RhdHNKc29uLFxuICAgIHBvbHlmaWxsczogcG9seWZpbGxzID09PSB1bmRlZmluZWQgfHwgQXJyYXkuaXNBcnJheShwb2x5ZmlsbHMpID8gcG9seWZpbGxzIDogW3BvbHlmaWxsc10sXG4gICAgcG9sbCxcbiAgICBwcm9ncmVzcyxcbiAgICBleHRlcm5hbFBhY2thZ2VzLFxuICAgIC8vIElmIG5vdCBleHBsaWNpdGx5IHNldCwgZGVmYXVsdCB0byB0aGUgTm9kZS5qcyBwcm9jZXNzIGFyZ3VtZW50XG4gICAgcHJlc2VydmVTeW1saW5rczogcHJlc2VydmVTeW1saW5rcyA/PyBwcm9jZXNzLmV4ZWNBcmd2LmluY2x1ZGVzKCctLXByZXNlcnZlLXN5bWxpbmtzJyksXG4gICAgc3R5bGVQcmVwcm9jZXNzb3JPcHRpb25zLFxuICAgIHN1YnJlc291cmNlSW50ZWdyaXR5LFxuICAgIHNlcnZlckVudHJ5UG9pbnQsXG4gICAgcHJlcmVuZGVyT3B0aW9ucyxcbiAgICBhcHBTaGVsbE9wdGlvbnMsXG4gICAgc3NyT3B0aW9ucyxcbiAgICB2ZXJib3NlLFxuICAgIHdhdGNoLFxuICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgZW50cnlQb2ludHMsXG4gICAgb3B0aW1pemF0aW9uT3B0aW9ucyxcbiAgICBvdXRwdXRQYXRoLFxuICAgIG91dEV4dGVuc2lvbixcbiAgICBzb3VyY2VtYXBPcHRpb25zLFxuICAgIHRzY29uZmlnLFxuICAgIHByb2plY3RSb290LFxuICAgIGFzc2V0cyxcbiAgICBvdXRwdXROYW1lcyxcbiAgICBmaWxlUmVwbGFjZW1lbnRzLFxuICAgIGdsb2JhbFN0eWxlcyxcbiAgICBnbG9iYWxTY3JpcHRzLFxuICAgIHNlcnZpY2VXb3JrZXI6XG4gICAgICB0eXBlb2Ygc2VydmljZVdvcmtlciA9PT0gJ3N0cmluZycgPyBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgc2VydmljZVdvcmtlcikgOiB1bmRlZmluZWQsXG4gICAgaW5kZXhIdG1sT3B0aW9ucyxcbiAgICB0YWlsd2luZENvbmZpZ3VyYXRpb24sXG4gICAgaTE4bk9wdGlvbnMsXG4gIH07XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGVudHJ5IHBvaW50IG9wdGlvbnMuIFRvIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgbGVnYWN5IGJyb3dzZXIgYnVpbGRlciwgd2UgbmVlZCBhIHNpbmdsZSBgYnJvd3NlcmBcbiAqIG9wdGlvbiB3aGljaCBkZWZpbmVzIGEgc2luZ2xlIGVudHJ5IHBvaW50LiBIb3dldmVyLCB3ZSBhbHNvIHdhbnQgdG8gc3VwcG9ydCBtdWx0aXBsZSBlbnRyeSBwb2ludHMgYXMgYW4gaW50ZXJuYWwgb3B0aW9uLlxuICogVGhlIHR3byBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgYW5kIGlmIGBicm93c2VyYCBpcyBwcm92aWRlZCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHNvbGUgZW50cnkgcG9pbnQuXG4gKiBJZiBgZW50cnlQb2ludHNgIGFyZSBwcm92aWRlZCwgdGhleSB3aWxsIGJlIHVzZWQgYXMgdGhlIHNldCBvZiBlbnRyeSBwb2ludHMuXG4gKlxuICogQHBhcmFtIHdvcmtzcGFjZVJvb3QgUGF0aCB0byB0aGUgcm9vdCBvZiB0aGUgQW5ndWxhciB3b3Jrc3BhY2UuXG4gKiBAcGFyYW0gYnJvd3NlciBUaGUgYGJyb3dzZXJgIG9wdGlvbiBwb2ludGluZyBhdCB0aGUgYXBwbGljYXRpb24gZW50cnkgcG9pbnQuIFdoaWxlIHJlcXVpcmVkIHBlciB0aGUgc2NoZW1hIGZpbGUsIGl0IG1heSBiZSBvbWl0dGVkIGJ5XG4gKiAgICAgcHJvZ3JhbW1hdGljIHVzYWdlcyBvZiBgYnJvd3Nlci1lc2J1aWxkYC5cbiAqIEBwYXJhbSBlbnRyeVBvaW50cyBTZXQgb2YgZW50cnkgcG9pbnRzIHRvIHVzZSBpZiBwcm92aWRlZC5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCBtYXBwaW5nIGVudHJ5IHBvaW50IG5hbWVzIHRvIHRoZWlyIGZpbGUgcGF0aHMuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUVudHJ5UG9pbnRzKFxuICB3b3Jrc3BhY2VSb290OiBzdHJpbmcsXG4gIGJyb3dzZXI6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZW50cnlQb2ludHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpLFxuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGlmIChicm93c2VyID09PSAnJykge1xuICAgIHRocm93IG5ldyBFcnJvcignYGJyb3dzZXJgIG9wdGlvbiBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nLicpO1xuICB9XG5cbiAgLy8gYGJyb3dzZXJgIGFuZCBgZW50cnlQb2ludHNgIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuXG4gIGlmIChicm93c2VyICYmIGVudHJ5UG9pbnRzLnNpemUgPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IG9uZSBvZiBgYnJvd3NlcmAgb3IgYGVudHJ5UG9pbnRzYCBtYXkgYmUgcHJvdmlkZWQuJyk7XG4gIH1cbiAgaWYgKCFicm93c2VyICYmIGVudHJ5UG9pbnRzLnNpemUgPT09IDApIHtcbiAgICAvLyBTY2hlbWEgc2hvdWxkIG5vcm1hbGx5IHJlamVjdCB0aGlzIGNhc2UsIGJ1dCBwcm9ncmFtbWF0aWMgdXNhZ2VzIG9mIHRoZSBidWlsZGVyIG1pZ2h0IG1ha2UgdGhpcyBtaXN0YWtlLlxuICAgIHRocm93IG5ldyBFcnJvcignRWl0aGVyIGBicm93c2VyYCBvciBhdCBsZWFzdCBvbmUgYGVudHJ5UG9pbnRzYCB2YWx1ZSBtdXN0IGJlIHByb3ZpZGVkLicpO1xuICB9XG5cbiAgLy8gU2NoZW1hIHR5cGVzIGZvcmNlIGBicm93c2VyYCB0byBhbHdheXMgYmUgcHJvdmlkZWQsIGJ1dCBpdCBtYXkgYmUgb21pdHRlZCB3aGVuIHRoZSBidWlsZGVyIGlzIGludm9rZWQgcHJvZ3JhbW1hdGljYWxseS5cbiAgaWYgKGJyb3dzZXIpIHtcbiAgICAvLyBVc2UgYGJyb3dzZXJgIGFsb25lLlxuICAgIHJldHVybiB7ICdtYWluJzogcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIGJyb3dzZXIpIH07XG4gIH0gZWxzZSB7XG4gICAgLy8gVXNlIGBlbnRyeVBvaW50c2AgYWxvbmUuXG4gICAgY29uc3QgZW50cnlQb2ludFBhdGhzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgZm9yIChjb25zdCBlbnRyeVBvaW50IG9mIGVudHJ5UG9pbnRzKSB7XG4gICAgICBjb25zdCBwYXJzZWRFbnRyeVBvaW50ID0gcGF0aC5wYXJzZShlbnRyeVBvaW50KTtcblxuICAgICAgLy8gVXNlIHRoZSBpbnB1dCBmaWxlIHBhdGggd2l0aG91dCBhbiBleHRlbnNpb24gYXMgdGhlIFwibmFtZVwiIG9mIHRoZSBlbnRyeSBwb2ludCBkaWN0YXRpbmcgaXRzIG91dHB1dCBsb2NhdGlvbi5cbiAgICAgIC8vIFJlbGF0aXZlIGVudHJ5IHBvaW50cyBhcmUgZ2VuZXJhdGVkIGF0IHRoZSBzYW1lIHJlbGF0aXZlIHBhdGggaW4gdGhlIG91dHB1dCBkaXJlY3RvcnkuXG4gICAgICAvLyBBYnNvbHV0ZSBlbnRyeSBwb2ludHMgYXJlIGFsd2F5cyBnZW5lcmF0ZWQgd2l0aCB0aGUgc2FtZSBmaWxlIG5hbWUgaW4gdGhlIHJvb3Qgb2YgdGhlIG91dHB1dCBkaXJlY3RvcnkuIFRoaXMgaW5jbHVkZXMgYWJzb2x1dGVcbiAgICAgIC8vIHBhdGhzIHBvaW50aW5nIGF0IGZpbGVzIGFjdHVhbGx5IHdpdGhpbiB0aGUgd29ya3NwYWNlIHJvb3QuXG4gICAgICBjb25zdCBlbnRyeVBvaW50TmFtZSA9IHBhdGguaXNBYnNvbHV0ZShlbnRyeVBvaW50KVxuICAgICAgICA/IHBhcnNlZEVudHJ5UG9pbnQubmFtZVxuICAgICAgICA6IHBhdGguam9pbihwYXJzZWRFbnRyeVBvaW50LmRpciwgcGFyc2VkRW50cnlQb2ludC5uYW1lKTtcblxuICAgICAgLy8gR2V0IHRoZSBmdWxsIGZpbGUgcGF0aCB0byB0aGUgZW50cnkgcG9pbnQgaW5wdXQuXG4gICAgICBjb25zdCBlbnRyeVBvaW50UGF0aCA9IHBhdGguaXNBYnNvbHV0ZShlbnRyeVBvaW50KVxuICAgICAgICA/IGVudHJ5UG9pbnRcbiAgICAgICAgOiBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgZW50cnlQb2ludCk7XG5cbiAgICAgIC8vIENoZWNrIGZvciBjb25mbGljdHMgd2l0aCBwcmV2aW91cyBlbnRyeSBwb2ludHMuXG4gICAgICBjb25zdCBleGlzdGluZ0VudHJ5UG9pbnRQYXRoID0gZW50cnlQb2ludFBhdGhzW2VudHJ5UG9pbnROYW1lXTtcbiAgICAgIGlmIChleGlzdGluZ0VudHJ5UG9pbnRQYXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgXFxgJHtleGlzdGluZ0VudHJ5UG9pbnRQYXRofVxcYCBhbmQgXFxgJHtlbnRyeVBvaW50UGF0aH1cXGAgYm90aCBvdXRwdXQgdG8gdGhlIHNhbWUgbG9jYXRpb24gXFxgJHtlbnRyeVBvaW50TmFtZX1cXGAuYCArXG4gICAgICAgICAgICAnIFJlbmFtZSBvciBtb3ZlIG9uZSBvZiB0aGUgZmlsZXMgdG8gZml4IHRoZSBjb25mbGljdC4nLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBlbnRyeVBvaW50UGF0aHNbZW50cnlQb2ludE5hbWVdID0gZW50cnlQb2ludFBhdGg7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVudHJ5UG9pbnRQYXRocztcbiAgfVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBhIGRpcmVjdG9yeSBwYXRoIHN0cmluZy5cbiAqIEN1cnJlbnRseSBvbmx5IHJlbW92ZXMgYSB0cmFpbGluZyBzbGFzaCBpZiBwcmVzZW50LlxuICogQHBhcmFtIHBhdGggQSBwYXRoIHN0cmluZy5cbiAqIEByZXR1cm5zIEEgbm9ybWFsaXplZCBwYXRoIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplRGlyZWN0b3J5UGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBsYXN0ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuICBpZiAobGFzdCA9PT0gJy8nIHx8IGxhc3QgPT09ICdcXFxcJykge1xuICAgIHJldHVybiBwYXRoLnNsaWNlKDAsIC0xKTtcbiAgfVxuXG4gIHJldHVybiBwYXRoO1xufVxuIl19
@@ -134,8 +134,8 @@ export interface Schema {
134
134
  */
135
135
  ssr?: SsrUnion;
136
136
  /**
137
- * Generates a 'stats.json' file which can be analyzed using tools such as
138
- * 'webpack-bundle-analyzer'.
137
+ * Generates a 'stats.json' file which can be analyzed with
138
+ * https://esbuild.github.io/analyze/.
139
139
  */
140
140
  statsJson?: boolean;
141
141
  /**
@@ -56,4 +56,4 @@ var OutputHashing;
56
56
  OutputHashing["Media"] = "media";
57
57
  OutputHashing["None"] = "none";
58
58
  })(OutputHashing || (exports.OutputHashing = OutputHashing = {}));
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvYnVpbGRlcnMvYXBwbGljYXRpb24vc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxtRkFBbUY7QUFDbkYsb0ZBQW9GOzs7QUE2T3BGOztHQUVHO0FBQ0gsSUFBWSxJQVFYO0FBUkQsV0FBWSxJQUFJO0lBQ1osbUJBQVcsQ0FBQTtJQUNYLCtCQUF1QixDQUFBO0lBQ3ZCLG1CQUFXLENBQUE7SUFDWCwrQ0FBdUMsQ0FBQTtJQUN2QywrQkFBdUIsQ0FBQTtJQUN2Qix5QkFBaUIsQ0FBQTtJQUNqQiwyQkFBbUIsQ0FBQTtBQUN2QixDQUFDLEVBUlcsSUFBSSxvQkFBSixJQUFJLFFBUWY7QUFFRDs7R0FFRztBQUNILElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNuQixzQ0FBdUIsQ0FBQTtJQUN2Qiw0QkFBYSxDQUFBO0lBQ2IsaURBQWtDLENBQUE7QUFDdEMsQ0FBQyxFQUpXLFdBQVcsMkJBQVgsV0FBVyxRQUl0QjtBQU9EOzs7O0dBSUc7QUFDSCxJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsa0NBQWUsQ0FBQTtJQUNmLG9DQUFpQixDQUFBO0lBQ2pCLHNDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxlQUFlLCtCQUFmLGVBQWUsUUFJMUI7QUFvQkQ7O0dBRUc7QUFDSCxJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDM0Isa0NBQVcsQ0FBQTtJQUNYLG9DQUFhLENBQUE7SUFDYixvQ0FBYSxDQUFBO0lBQ2Isb0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBTFcsbUJBQW1CLG1DQUFuQixtQkFBbUIsUUFLOUI7QUErREQ7O0dBRUc7QUFDSCxJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDckIsNEJBQVcsQ0FBQTtJQUNYLG9DQUFtQixDQUFBO0lBQ25CLGdDQUFlLENBQUE7SUFDZiw4QkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxhQUFhLDZCQUFiLGFBQWEsUUFLeEIiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRC4gVE8gVVBEQVRFIFRISVMgRklMRSBZT1UgTkVFRCBUTyBDSEFOR0UgVEhFXG4vLyBDT1JSRVNQT05ESU5HIEpTT04gU0NIRU1BIEZJTEUsIFRIRU4gUlVOIGRldmtpdC1hZG1pbiBidWlsZCAob3IgYmF6ZWwgYnVpbGQgLi4uKS5cblxuLyoqXG4gKiBBcHBsaWNhdGlvbiBidWlsZGVyIHRhcmdldCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hIHtcbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgQ29tbW9uSlMgcGFja2FnZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSB1c2VkIHdpdGhvdXQgYSBidWlsZCB0aW1lIHdhcm5pbmcuXG4gICAgICovXG4gICAgYWxsb3dlZENvbW1vbkpzRGVwZW5kZW5jaWVzPzogc3RyaW5nW107XG4gICAgLyoqXG4gICAgICogQnVpbGQgdXNpbmcgQWhlYWQgb2YgVGltZSBjb21waWxhdGlvbi5cbiAgICAgKi9cbiAgICBhb3Q/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyBhbiBhcHBsaWNhdGlvbiBzaGVsbCBkdXJpbmcgYnVpbGQgdGltZS5cbiAgICAgKi9cbiAgICBhcHBTaGVsbD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdGF0aWMgYXBwbGljYXRpb24gYXNzZXRzLlxuICAgICAqL1xuICAgIGFzc2V0cz86IEFzc2V0UGF0dGVybltdO1xuICAgIC8qKlxuICAgICAqIEJhc2UgdXJsIGZvciB0aGUgYXBwbGljYXRpb24gYmVpbmcgYnVpbHQuXG4gICAgICovXG4gICAgYmFzZUhyZWY/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgcGF0aCBmb3IgdGhlIGJyb3dzZXIgZW50cnkgcG9pbnQgdG8gdGhlIGFwcGxpY2F0aW9uLCByZWxhdGl2ZSB0byB0aGUgY3VycmVudFxuICAgICAqIHdvcmtzcGFjZS5cbiAgICAgKi9cbiAgICBicm93c2VyOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQnVkZ2V0IHRocmVzaG9sZHMgdG8gZW5zdXJlIHBhcnRzIG9mIHlvdXIgYXBwbGljYXRpb24gc3RheSB3aXRoaW4gYm91bmRhcmllcyB3aGljaCB5b3VcbiAgICAgKiBzZXQuXG4gICAgICovXG4gICAgYnVkZ2V0cz86IEJ1ZGdldFtdO1xuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgY3Jvc3NvcmlnaW4gYXR0cmlidXRlIHNldHRpbmcgb2YgZWxlbWVudHMgdGhhdCBwcm92aWRlIENPUlMgc3VwcG9ydC5cbiAgICAgKi9cbiAgICBjcm9zc09yaWdpbj86IENyb3NzT3JpZ2luO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSB0aGUgb3V0cHV0IHBhdGggYmVmb3JlIGJ1aWxkaW5nLlxuICAgICAqL1xuICAgIGRlbGV0ZU91dHB1dFBhdGg/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEV4Y2x1ZGUgdGhlIGxpc3RlZCBleHRlcm5hbCBkZXBlbmRlbmNpZXMgZnJvbSBiZWluZyBidW5kbGVkIGludG8gdGhlIGJ1bmRsZS4gSW5zdGVhZCwgdGhlXG4gICAgICogY3JlYXRlZCBidW5kbGUgcmVsaWVzIG9uIHRoZXNlIGRlcGVuZGVuY2llcyB0byBiZSBhdmFpbGFibGUgZHVyaW5nIHJ1bnRpbWUuXG4gICAgICovXG4gICAgZXh0ZXJuYWxEZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBFeHRyYWN0IGFsbCBsaWNlbnNlcyBpbiBhIHNlcGFyYXRlIGZpbGUuXG4gICAgICovXG4gICAgZXh0cmFjdExpY2Vuc2VzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBSZXBsYWNlIGNvbXBpbGF0aW9uIHNvdXJjZSBmaWxlcyB3aXRoIG90aGVyIGNvbXBpbGF0aW9uIHNvdXJjZSBmaWxlcyBpbiB0aGUgYnVpbGQuXG4gICAgICovXG4gICAgZmlsZVJlcGxhY2VtZW50cz86IEZpbGVSZXBsYWNlbWVudFtdO1xuICAgIC8qKlxuICAgICAqIEhvdyB0byBoYW5kbGUgZHVwbGljYXRlIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAgICAgKi9cbiAgICBpMThuRHVwbGljYXRlVHJhbnNsYXRpb24/OiBJMThOVHJhbnNsYXRpb247XG4gICAgLyoqXG4gICAgICogSG93IHRvIGhhbmRsZSBtaXNzaW5nIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAgICAgKi9cbiAgICBpMThuTWlzc2luZ1RyYW5zbGF0aW9uPzogSTE4TlRyYW5zbGF0aW9uO1xuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uJ3MgSFRNTCBpbmRleC5cbiAgICAgKi9cbiAgICBpbmRleDogSW5kZXhVbmlvbjtcbiAgICAvKipcbiAgICAgKiBUaGUgc3R5bGVzaGVldCBsYW5ndWFnZSB0byB1c2UgZm9yIHRoZSBhcHBsaWNhdGlvbidzIGlubGluZSBjb21wb25lbnQgc3R5bGVzLlxuICAgICAqL1xuICAgIGlubGluZVN0eWxlTGFuZ3VhZ2U/OiBJbmxpbmVTdHlsZUxhbmd1YWdlO1xuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0ZSB0aGUgYnVuZGxlcyBpbiBvbmUgb3IgbW9yZSBsb2NhbGVzLlxuICAgICAqL1xuICAgIGxvY2FsaXplPzogTG9jYWxpemU7XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBvcHRpbWl6YXRpb24gb2YgdGhlIGJ1aWxkIG91dHB1dC4gSW5jbHVkaW5nIG1pbmlmaWNhdGlvbiBvZiBzY3JpcHRzIGFuZCBzdHlsZXMsXG4gICAgICogdHJlZS1zaGFraW5nLCBkZWFkLWNvZGUgZWxpbWluYXRpb24sIGlubGluaW5nIG9mIGNyaXRpY2FsIENTUyBhbmQgZm9udHMgaW5saW5pbmcuIEZvclxuICAgICAqIG1vcmUgaW5mb3JtYXRpb24sIHNlZVxuICAgICAqIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS93b3Jrc3BhY2UtY29uZmlnI29wdGltaXphdGlvbi1jb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIG9wdGltaXphdGlvbj86IE9wdGltaXphdGlvblVuaW9uO1xuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgb3V0cHV0IGZpbGVuYW1lIGNhY2hlLWJ1c3RpbmcgaGFzaGluZyBtb2RlLlxuICAgICAqL1xuICAgIG91dHB1dEhhc2hpbmc/OiBPdXRwdXRIYXNoaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBmdWxsIHBhdGggZm9yIHRoZSBuZXcgb3V0cHV0IGRpcmVjdG9yeSwgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya3NwYWNlLlxuICAgICAqIEJ5IGRlZmF1bHQsIHdyaXRlcyBvdXRwdXQgdG8gYSBmb2xkZXIgbmFtZWQgZGlzdC8gaW4gdGhlIGN1cnJlbnQgcHJvamVjdC5cbiAgICAgKi9cbiAgICBvdXRwdXRQYXRoOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogRW5hYmxlIGFuZCBkZWZpbmUgdGhlIGZpbGUgd2F0Y2hpbmcgcG9sbCB0aW1lIHBlcmlvZCBpbiBtaWxsaXNlY29uZHMuXG4gICAgICovXG4gICAgcG9sbD86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgcG9seWZpbGxzIHRvIGluY2x1ZGUgaW4gdGhlIGJ1aWxkLiBDYW4gYmUgYSBmdWxsIHBhdGggZm9yIGEgZmlsZSwgcmVsYXRpdmUgdG9cbiAgICAgKiB0aGUgY3VycmVudCB3b3Jrc3BhY2Ugb3IgbW9kdWxlIHNwZWNpZmllci4gRXhhbXBsZTogJ3pvbmUuanMnLlxuICAgICAqL1xuICAgIHBvbHlmaWxscz86IHN0cmluZ1tdO1xuICAgIC8qKlxuICAgICAqIFByZXJlbmRlciAoU1NHKSBwYWdlcyBvZiB5b3VyIGFwcGxpY2F0aW9uIGR1cmluZyBidWlsZCB0aW1lLlxuICAgICAqL1xuICAgIHByZXJlbmRlcj86IFByZXJlbmRlclVuaW9uO1xuICAgIC8qKlxuICAgICAqIERvIG5vdCB1c2UgdGhlIHJlYWwgcGF0aCB3aGVuIHJlc29sdmluZyBtb2R1bGVzLiBJZiB1bnNldCB0aGVuIHdpbGwgZGVmYXVsdCB0byBgdHJ1ZWAgaWZcbiAgICAgKiBOb2RlSlMgb3B0aW9uIC0tcHJlc2VydmUtc3ltbGlua3MgaXMgc2V0LlxuICAgICAqL1xuICAgIHByZXNlcnZlU3ltbGlua3M/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIExvZyBwcm9ncmVzcyB0byB0aGUgY29uc29sZSB3aGlsZSBidWlsZGluZy5cbiAgICAgKi9cbiAgICBwcm9ncmVzcz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogR2xvYmFsIHNjcmlwdHMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGJ1aWxkLlxuICAgICAqL1xuICAgIHNjcmlwdHM/OiBTY3JpcHRFbGVtZW50W107XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgcGF0aCBmb3IgdGhlIHNlcnZlciBlbnRyeSBwb2ludCB0byB0aGUgYXBwbGljYXRpb24sIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50XG4gICAgICogd29ya3NwYWNlLlxuICAgICAqL1xuICAgIHNlcnZlcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSBzZXJ2aWNlIHdvcmtlciBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHNlcnZpY2VXb3JrZXI/OiBTZXJ2aWNlV29ya2VyO1xuICAgIC8qKlxuICAgICAqIE91dHB1dCBzb3VyY2UgbWFwcyBmb3Igc2NyaXB0cyBhbmQgc3R5bGVzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4gICAgICogaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3dvcmtzcGFjZS1jb25maWcjc291cmNlLW1hcC1jb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHNvdXJjZU1hcD86IFNvdXJjZU1hcFVuaW9uO1xuICAgIC8qKlxuICAgICAqIFNlcnZlciBzaWRlIHJlbmRlciAoU1NSKSBwYWdlcyBvZiB5b3VyIGFwcGxpY2F0aW9uIGR1cmluZyBydW50aW1lLlxuICAgICAqL1xuICAgIHNzcj86IFNzclVuaW9uO1xuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyBhICdzdGF0cy5qc29uJyBmaWxlIHdoaWNoIGNhbiBiZSBhbmFseXplZCB1c2luZyB0b29scyBzdWNoIGFzXG4gICAgICogJ3dlYnBhY2stYnVuZGxlLWFuYWx5emVyJy5cbiAgICAgKi9cbiAgICBzdGF0c0pzb24/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbnMgdG8gcGFzcyB0byBzdHlsZSBwcmVwcm9jZXNzb3JzLlxuICAgICAqL1xuICAgIHN0eWxlUHJlcHJvY2Vzc29yT3B0aW9ucz86IFN0eWxlUHJlcHJvY2Vzc29yT3B0aW9ucztcbiAgICAvKipcbiAgICAgKiBHbG9iYWwgc3R5bGVzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBidWlsZC5cbiAgICAgKi9cbiAgICBzdHlsZXM/OiBTdHlsZUVsZW1lbnRbXTtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzIHRoZSB1c2Ugb2Ygc3VicmVzb3VyY2UgaW50ZWdyaXR5IHZhbGlkYXRpb24uXG4gICAgICovXG4gICAgc3VicmVzb3VyY2VJbnRlZ3JpdHk/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBmdWxsIHBhdGggZm9yIHRoZSBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZSwgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya3NwYWNlLlxuICAgICAqL1xuICAgIHRzQ29uZmlnOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQWRkcyBtb3JlIGRldGFpbHMgdG8gb3V0cHV0IGxvZ2dpbmcuXG4gICAgICovXG4gICAgdmVyYm9zZT86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogUnVuIGJ1aWxkIHdoZW4gZmlsZXMgY2hhbmdlLlxuICAgICAqL1xuICAgIHdhdGNoPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZm9yIFdlYiBXb3JrZXIgbW9kdWxlcy5cbiAgICAgKi9cbiAgICB3ZWJXb3JrZXJUc0NvbmZpZz86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQXNzZXRQYXR0ZXJuID0gQXNzZXRQYXR0ZXJuQ2xhc3MgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRQYXR0ZXJuQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIEFsbG93IGdsb2IgcGF0dGVybnMgdG8gZm9sbG93IHN5bWxpbmsgZGlyZWN0b3JpZXMuIFRoaXMgYWxsb3dzIHN1YmRpcmVjdG9yaWVzIG9mIHRoZVxuICAgICAqIHN5bWxpbmsgdG8gYmUgc2VhcmNoZWQuXG4gICAgICovXG4gICAgZm9sbG93U3ltbGlua3M/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBwYXR0ZXJuIHRvIG1hdGNoLlxuICAgICAqL1xuICAgIGdsb2I6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBvZiBnbG9icyB0byBpZ25vcmUuXG4gICAgICovXG4gICAgaWdub3JlPzogc3RyaW5nW107XG4gICAgLyoqXG4gICAgICogVGhlIGlucHV0IGRpcmVjdG9yeSBwYXRoIGluIHdoaWNoIHRvIGFwcGx5ICdnbG9iJy4gRGVmYXVsdHMgdG8gdGhlIHByb2plY3Qgcm9vdC5cbiAgICAgKi9cbiAgICBpbnB1dDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEFic29sdXRlIHBhdGggd2l0aGluIHRoZSBvdXRwdXQuXG4gICAgICovXG4gICAgb3V0cHV0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVkZ2V0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZWxpbmUgc2l6ZSBmb3IgY29tcGFyaXNvbi5cbiAgICAgKi9cbiAgICBiYXNlbGluZT86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdGhyZXNob2xkIGZvciBlcnJvciByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUgKG1pbiAmIG1heCkuXG4gICAgICovXG4gICAgZXJyb3I/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gdGhyZXNob2xkIGZvciBlcnJvciByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUuXG4gICAgICovXG4gICAgbWF4aW11bUVycm9yPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIHRocmVzaG9sZCBmb3Igd2FybmluZyByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUuXG4gICAgICovXG4gICAgbWF4aW11bVdhcm5pbmc/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIG1pbmltdW0gdGhyZXNob2xkIGZvciBlcnJvciByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUuXG4gICAgICovXG4gICAgbWluaW11bUVycm9yPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBtaW5pbXVtIHRocmVzaG9sZCBmb3Igd2FybmluZyByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUuXG4gICAgICovXG4gICAgbWluaW11bVdhcm5pbmc/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGJ1bmRsZS5cbiAgICAgKi9cbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSB0eXBlIG9mIGJ1ZGdldC5cbiAgICAgKi9cbiAgICB0eXBlOiBUeXBlO1xuICAgIC8qKlxuICAgICAqIFRoZSB0aHJlc2hvbGQgZm9yIHdhcm5pbmcgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lIChtaW4gJiBtYXgpLlxuICAgICAqL1xuICAgIHdhcm5pbmc/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgYnVkZ2V0LlxuICovXG5leHBvcnQgZW51bSBUeXBlIHtcbiAgICBBbGwgPSBcImFsbFwiLFxuICAgIEFsbFNjcmlwdCA9IFwiYWxsU2NyaXB0XCIsXG4gICAgQW55ID0gXCJhbnlcIixcbiAgICBBbnlDb21wb25lbnRTdHlsZSA9IFwiYW55Q29tcG9uZW50U3R5bGVcIixcbiAgICBBbnlTY3JpcHQgPSBcImFueVNjcmlwdFwiLFxuICAgIEJ1bmRsZSA9IFwiYnVuZGxlXCIsXG4gICAgSW5pdGlhbCA9IFwiaW5pdGlhbFwiLFxufVxuXG4vKipcbiAqIERlZmluZSB0aGUgY3Jvc3NvcmlnaW4gYXR0cmlidXRlIHNldHRpbmcgb2YgZWxlbWVudHMgdGhhdCBwcm92aWRlIENPUlMgc3VwcG9ydC5cbiAqL1xuZXhwb3J0IGVudW0gQ3Jvc3NPcmlnaW4ge1xuICAgIEFub255bW91cyA9IFwiYW5vbnltb3VzXCIsXG4gICAgTm9uZSA9IFwibm9uZVwiLFxuICAgIFVzZUNyZWRlbnRpYWxzID0gXCJ1c2UtY3JlZGVudGlhbHNcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlUmVwbGFjZW1lbnQge1xuICAgIHJlcGxhY2U6IHN0cmluZztcbiAgICB3aXRoOiAgICBzdHJpbmc7XG59XG5cbi8qKlxuICogSG93IHRvIGhhbmRsZSBkdXBsaWNhdGUgdHJhbnNsYXRpb25zIGZvciBpMThuLlxuICpcbiAqIEhvdyB0byBoYW5kbGUgbWlzc2luZyB0cmFuc2xhdGlvbnMgZm9yIGkxOG4uXG4gKi9cbmV4cG9ydCBlbnVtIEkxOE5UcmFuc2xhdGlvbiB7XG4gICAgRXJyb3IgPSBcImVycm9yXCIsXG4gICAgSWdub3JlID0gXCJpZ25vcmVcIixcbiAgICBXYXJuaW5nID0gXCJ3YXJuaW5nXCIsXG59XG5cbi8qKlxuICogQ29uZmlndXJlcyB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgYXBwbGljYXRpb24ncyBIVE1MIGluZGV4LlxuICovXG5leHBvcnQgdHlwZSBJbmRleFVuaW9uID0gYm9vbGVhbiB8IEluZGV4T2JqZWN0IHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4T2JqZWN0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgcGF0aCBvZiBhIGZpbGUgdG8gdXNlIGZvciB0aGUgYXBwbGljYXRpb24ncyBnZW5lcmF0ZWQgSFRNTCBpbmRleC5cbiAgICAgKi9cbiAgICBpbnB1dDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBvdXRwdXQgcGF0aCBvZiB0aGUgYXBwbGljYXRpb24ncyBnZW5lcmF0ZWQgSFRNTCBpbmRleCBmaWxlLiBUaGUgZnVsbCBwcm92aWRlZCBwYXRoXG4gICAgICogd2lsbCBiZSB1c2VkIGFuZCB3aWxsIGJlIGNvbnNpZGVyZWQgcmVsYXRpdmUgdG8gdGhlIGFwcGxpY2F0aW9uJ3MgY29uZmlndXJlZCBvdXRwdXQgcGF0aC5cbiAgICAgKi9cbiAgICBvdXRwdXQ/OiBzdHJpbmc7XG4gICAgW3Byb3BlcnR5OiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogVGhlIHN0eWxlc2hlZXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciB0aGUgYXBwbGljYXRpb24ncyBpbmxpbmUgY29tcG9uZW50IHN0eWxlcy5cbiAqL1xuZXhwb3J0IGVudW0gSW5saW5lU3R5bGVMYW5ndWFnZSB7XG4gICAgQ3NzID0gXCJjc3NcIixcbiAgICBMZXNzID0gXCJsZXNzXCIsXG4gICAgU2FzcyA9IFwic2Fzc1wiLFxuICAgIFNjc3MgPSBcInNjc3NcIixcbn1cblxuLyoqXG4gKiBUcmFuc2xhdGUgdGhlIGJ1bmRsZXMgaW4gb25lIG9yIG1vcmUgbG9jYWxlcy5cbiAqL1xuZXhwb3J0IHR5cGUgTG9jYWxpemUgPSBzdHJpbmdbXSB8IGJvb2xlYW47XG5cbi8qKlxuICogRW5hYmxlcyBvcHRpbWl6YXRpb24gb2YgdGhlIGJ1aWxkIG91dHB1dC4gSW5jbHVkaW5nIG1pbmlmaWNhdGlvbiBvZiBzY3JpcHRzIGFuZCBzdHlsZXMsXG4gKiB0cmVlLXNoYWtpbmcsIGRlYWQtY29kZSBlbGltaW5hdGlvbiwgaW5saW5pbmcgb2YgY3JpdGljYWwgQ1NTIGFuZCBmb250cyBpbmxpbmluZy4gRm9yXG4gKiBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAqIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS93b3Jrc3BhY2UtY29uZmlnI29wdGltaXphdGlvbi1jb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBPcHRpbWl6YXRpb25VbmlvbiA9IGJvb2xlYW4gfCBPcHRpbWl6YXRpb25DbGFzcztcblxuZXhwb3J0IGludGVyZmFjZSBPcHRpbWl6YXRpb25DbGFzcyB7XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBvcHRpbWl6YXRpb24gZm9yIGZvbnRzLiBUaGlzIG9wdGlvbiByZXF1aXJlcyBpbnRlcm5ldCBhY2Nlc3MuIGBIVFRQU19QUk9YWWBcbiAgICAgKiBlbnZpcm9ubWVudCB2YXJpYWJsZSBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJveHkgc2VydmVyLlxuICAgICAqL1xuICAgIGZvbnRzPzogRm9udHNVbmlvbjtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzIG9wdGltaXphdGlvbiBvZiB0aGUgc2NyaXB0cyBvdXRwdXQuXG4gICAgICovXG4gICAgc2NyaXB0cz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBvcHRpbWl6YXRpb24gb2YgdGhlIHN0eWxlcyBvdXRwdXQuXG4gICAgICovXG4gICAgc3R5bGVzPzogU3R5bGVzVW5pb247XG59XG5cbi8qKlxuICogRW5hYmxlcyBvcHRpbWl6YXRpb24gZm9yIGZvbnRzLiBUaGlzIG9wdGlvbiByZXF1aXJlcyBpbnRlcm5ldCBhY2Nlc3MuIGBIVFRQU19QUk9YWWBcbiAqIGVudmlyb25tZW50IHZhcmlhYmxlIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwcm94eSBzZXJ2ZXIuXG4gKi9cbmV4cG9ydCB0eXBlIEZvbnRzVW5pb24gPSBib29sZWFuIHwgRm9udHNDbGFzcztcblxuZXhwb3J0IGludGVyZmFjZSBGb250c0NsYXNzIHtcbiAgICAvKipcbiAgICAgKiBSZWR1Y2UgcmVuZGVyIGJsb2NraW5nIHJlcXVlc3RzIGJ5IGlubGluaW5nIGV4dGVybmFsIEdvb2dsZSBGb250cyBhbmQgQWRvYmUgRm9udHMgQ1NTXG4gICAgICogZGVmaW5pdGlvbnMgaW4gdGhlIGFwcGxpY2F0aW9uJ3MgSFRNTCBpbmRleCBmaWxlLiBUaGlzIG9wdGlvbiByZXF1aXJlcyBpbnRlcm5ldCBhY2Nlc3MuXG4gICAgICogYEhUVFBTX1BST1hZYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJveHkgc2VydmVyLlxuICAgICAqL1xuICAgIGlubGluZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5hYmxlcyBvcHRpbWl6YXRpb24gb2YgdGhlIHN0eWxlcyBvdXRwdXQuXG4gKi9cbmV4cG9ydCB0eXBlIFN0eWxlc1VuaW9uID0gYm9vbGVhbiB8IFN0eWxlc0NsYXNzO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlc0NsYXNzIHtcbiAgICAvKipcbiAgICAgKiBFeHRyYWN0IGFuZCBpbmxpbmUgY3JpdGljYWwgQ1NTIGRlZmluaXRpb25zIHRvIGltcHJvdmUgZmlyc3QgcGFpbnQgdGltZS5cbiAgICAgKi9cbiAgICBpbmxpbmVDcml0aWNhbD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogTWluaWZ5IENTUyBkZWZpbml0aW9ucyBieSByZW1vdmluZyBleHRyYW5lb3VzIHdoaXRlc3BhY2UgYW5kIGNvbW1lbnRzLCBtZXJnaW5nXG4gICAgICogaWRlbnRpZmllcnMgYW5kIG1pbmltaXppbmcgdmFsdWVzLlxuICAgICAqL1xuICAgIG1pbmlmeT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRGVmaW5lIHRoZSBvdXRwdXQgZmlsZW5hbWUgY2FjaGUtYnVzdGluZyBoYXNoaW5nIG1vZGUuXG4gKi9cbmV4cG9ydCBlbnVtIE91dHB1dEhhc2hpbmcge1xuICAgIEFsbCA9IFwiYWxsXCIsXG4gICAgQnVuZGxlcyA9IFwiYnVuZGxlc1wiLFxuICAgIE1lZGlhID0gXCJtZWRpYVwiLFxuICAgIE5vbmUgPSBcIm5vbmVcIixcbn1cblxuLyoqXG4gKiBQcmVyZW5kZXIgKFNTRykgcGFnZXMgb2YgeW91ciBhcHBsaWNhdGlvbiBkdXJpbmcgYnVpbGQgdGltZS5cbiAqL1xuZXhwb3J0IHR5cGUgUHJlcmVuZGVyVW5pb24gPSBib29sZWFuIHwgUHJlcmVuZGVyQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlcmVuZGVyQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGJ1aWxkZXIgc2hvdWxkIHN0YXRpY2FsbHkgZGlzY292ZXIgcm91dGVzLlxuICAgICAqL1xuICAgIGRpc2NvdmVyUm91dGVzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgcm91dGVzIHRvIHJlbmRlci5cbiAgICAgKi9cbiAgICByb3V0ZXM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBUaGUgcGF0aCB0byBhIGZpbGUgY29udGFpbmluZyByb3V0ZXMgc2VwYXJhdGVkIGJ5IG5ld2xpbmVzLlxuICAgICAqL1xuICAgIHJvdXRlc0ZpbGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFNjcmlwdEVsZW1lbnQgPSBTY3JpcHRDbGFzcyB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHRDbGFzcyB7XG4gICAgLyoqXG4gICAgICogVGhlIGJ1bmRsZSBuYW1lIGZvciB0aGlzIGV4dHJhIGVudHJ5IHBvaW50LlxuICAgICAqL1xuICAgIGJ1bmRsZU5hbWU/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogSWYgdGhlIGJ1bmRsZSB3aWxsIGJlIHJlZmVyZW5jZWQgaW4gdGhlIEhUTUwgZmlsZS5cbiAgICAgKi9cbiAgICBpbmplY3Q/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBmaWxlIHRvIGluY2x1ZGUuXG4gICAgICovXG4gICAgaW5wdXQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBzZXJ2aWNlIHdvcmtlciBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBTZXJ2aWNlV29ya2VyID0gYm9vbGVhbiB8IHN0cmluZztcblxuLyoqXG4gKiBPdXRwdXQgc291cmNlIG1hcHMgZm9yIHNjcmlwdHMgYW5kIHN0eWxlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZVxuICogaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3dvcmtzcGFjZS1jb25maWcjc291cmNlLW1hcC1jb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBTb3VyY2VNYXBVbmlvbiA9IGJvb2xlYW4gfCBTb3VyY2VNYXBDbGFzcztcblxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VNYXBDbGFzcyB7XG4gICAgLyoqXG4gICAgICogT3V0cHV0IHNvdXJjZSBtYXBzIHVzZWQgZm9yIGVycm9yIHJlcG9ydGluZyB0b29scy5cbiAgICAgKi9cbiAgICBoaWRkZW4/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE91dHB1dCBzb3VyY2UgbWFwcyBmb3IgYWxsIHNjcmlwdHMuXG4gICAgICovXG4gICAgc2NyaXB0cz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3V0cHV0IHNvdXJjZSBtYXBzIGZvciBhbGwgc3R5bGVzLlxuICAgICAqL1xuICAgIHN0eWxlcz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogUmVzb2x2ZSB2ZW5kb3IgcGFja2FnZXMgc291cmNlIG1hcHMuXG4gICAgICovXG4gICAgdmVuZG9yPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTZXJ2ZXIgc2lkZSByZW5kZXIgKFNTUikgcGFnZXMgb2YgeW91ciBhcHBsaWNhdGlvbiBkdXJpbmcgcnVudGltZS5cbiAqL1xuZXhwb3J0IHR5cGUgU3NyVW5pb24gPSBib29sZWFuIHwgU3NyQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3NyQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIFRoZSBzZXJ2ZXIgZW50cnktcG9pbnQgdGhhdCB3aGVuIGV4ZWN1dGVkIHdpbGwgc3Bhd24gdGhlIHdlYiBzZXJ2ZXIuXG4gICAgICovXG4gICAgZW50cnk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBwYXNzIHRvIHN0eWxlIHByZXByb2Nlc3NvcnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3R5bGVQcmVwcm9jZXNzb3JPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBQYXRocyB0byBpbmNsdWRlLiBQYXRocyB3aWxsIGJlIHJlc29sdmVkIHRvIHdvcmtzcGFjZSByb290LlxuICAgICAqL1xuICAgIGluY2x1ZGVQYXRocz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgdHlwZSBTdHlsZUVsZW1lbnQgPSBTdHlsZUNsYXNzIHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIFRoZSBidW5kbGUgbmFtZSBmb3IgdGhpcyBleHRyYSBlbnRyeSBwb2ludC5cbiAgICAgKi9cbiAgICBidW5kbGVOYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIElmIHRoZSBidW5kbGUgd2lsbCBiZSByZWZlcmVuY2VkIGluIHRoZSBIVE1MIGZpbGUuXG4gICAgICovXG4gICAgaW5qZWN0PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZmlsZSB0byBpbmNsdWRlLlxuICAgICAqL1xuICAgIGlucHV0OiBzdHJpbmc7XG59XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvYnVpbGRlcnMvYXBwbGljYXRpb24vc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxtRkFBbUY7QUFDbkYsb0ZBQW9GOzs7QUE2T3BGOztHQUVHO0FBQ0gsSUFBWSxJQVFYO0FBUkQsV0FBWSxJQUFJO0lBQ1osbUJBQVcsQ0FBQTtJQUNYLCtCQUF1QixDQUFBO0lBQ3ZCLG1CQUFXLENBQUE7SUFDWCwrQ0FBdUMsQ0FBQTtJQUN2QywrQkFBdUIsQ0FBQTtJQUN2Qix5QkFBaUIsQ0FBQTtJQUNqQiwyQkFBbUIsQ0FBQTtBQUN2QixDQUFDLEVBUlcsSUFBSSxvQkFBSixJQUFJLFFBUWY7QUFFRDs7R0FFRztBQUNILElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNuQixzQ0FBdUIsQ0FBQTtJQUN2Qiw0QkFBYSxDQUFBO0lBQ2IsaURBQWtDLENBQUE7QUFDdEMsQ0FBQyxFQUpXLFdBQVcsMkJBQVgsV0FBVyxRQUl0QjtBQU9EOzs7O0dBSUc7QUFDSCxJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsa0NBQWUsQ0FBQTtJQUNmLG9DQUFpQixDQUFBO0lBQ2pCLHNDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxlQUFlLCtCQUFmLGVBQWUsUUFJMUI7QUFvQkQ7O0dBRUc7QUFDSCxJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDM0Isa0NBQVcsQ0FBQTtJQUNYLG9DQUFhLENBQUE7SUFDYixvQ0FBYSxDQUFBO0lBQ2Isb0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBTFcsbUJBQW1CLG1DQUFuQixtQkFBbUIsUUFLOUI7QUErREQ7O0dBRUc7QUFDSCxJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDckIsNEJBQVcsQ0FBQTtJQUNYLG9DQUFtQixDQUFBO0lBQ25CLGdDQUFlLENBQUE7SUFDZiw4QkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxhQUFhLDZCQUFiLGFBQWEsUUFLeEIiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRC4gVE8gVVBEQVRFIFRISVMgRklMRSBZT1UgTkVFRCBUTyBDSEFOR0UgVEhFXG4vLyBDT1JSRVNQT05ESU5HIEpTT04gU0NIRU1BIEZJTEUsIFRIRU4gUlVOIGRldmtpdC1hZG1pbiBidWlsZCAob3IgYmF6ZWwgYnVpbGQgLi4uKS5cblxuLyoqXG4gKiBBcHBsaWNhdGlvbiBidWlsZGVyIHRhcmdldCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hIHtcbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgQ29tbW9uSlMgcGFja2FnZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSB1c2VkIHdpdGhvdXQgYSBidWlsZCB0aW1lIHdhcm5pbmcuXG4gICAgICovXG4gICAgYWxsb3dlZENvbW1vbkpzRGVwZW5kZW5jaWVzPzogc3RyaW5nW107XG4gICAgLyoqXG4gICAgICogQnVpbGQgdXNpbmcgQWhlYWQgb2YgVGltZSBjb21waWxhdGlvbi5cbiAgICAgKi9cbiAgICBhb3Q/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyBhbiBhcHBsaWNhdGlvbiBzaGVsbCBkdXJpbmcgYnVpbGQgdGltZS5cbiAgICAgKi9cbiAgICBhcHBTaGVsbD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdGF0aWMgYXBwbGljYXRpb24gYXNzZXRzLlxuICAgICAqL1xuICAgIGFzc2V0cz86IEFzc2V0UGF0dGVybltdO1xuICAgIC8qKlxuICAgICAqIEJhc2UgdXJsIGZvciB0aGUgYXBwbGljYXRpb24gYmVpbmcgYnVpbHQuXG4gICAgICovXG4gICAgYmFzZUhyZWY/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgcGF0aCBmb3IgdGhlIGJyb3dzZXIgZW50cnkgcG9pbnQgdG8gdGhlIGFwcGxpY2F0aW9uLCByZWxhdGl2ZSB0byB0aGUgY3VycmVudFxuICAgICAqIHdvcmtzcGFjZS5cbiAgICAgKi9cbiAgICBicm93c2VyOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQnVkZ2V0IHRocmVzaG9sZHMgdG8gZW5zdXJlIHBhcnRzIG9mIHlvdXIgYXBwbGljYXRpb24gc3RheSB3aXRoaW4gYm91bmRhcmllcyB3aGljaCB5b3VcbiAgICAgKiBzZXQuXG4gICAgICovXG4gICAgYnVkZ2V0cz86IEJ1ZGdldFtdO1xuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgY3Jvc3NvcmlnaW4gYXR0cmlidXRlIHNldHRpbmcgb2YgZWxlbWVudHMgdGhhdCBwcm92aWRlIENPUlMgc3VwcG9ydC5cbiAgICAgKi9cbiAgICBjcm9zc09yaWdpbj86IENyb3NzT3JpZ2luO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSB0aGUgb3V0cHV0IHBhdGggYmVmb3JlIGJ1aWxkaW5nLlxuICAgICAqL1xuICAgIGRlbGV0ZU91dHB1dFBhdGg/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEV4Y2x1ZGUgdGhlIGxpc3RlZCBleHRlcm5hbCBkZXBlbmRlbmNpZXMgZnJvbSBiZWluZyBidW5kbGVkIGludG8gdGhlIGJ1bmRsZS4gSW5zdGVhZCwgdGhlXG4gICAgICogY3JlYXRlZCBidW5kbGUgcmVsaWVzIG9uIHRoZXNlIGRlcGVuZGVuY2llcyB0byBiZSBhdmFpbGFibGUgZHVyaW5nIHJ1bnRpbWUuXG4gICAgICovXG4gICAgZXh0ZXJuYWxEZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBFeHRyYWN0IGFsbCBsaWNlbnNlcyBpbiBhIHNlcGFyYXRlIGZpbGUuXG4gICAgICovXG4gICAgZXh0cmFjdExpY2Vuc2VzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBSZXBsYWNlIGNvbXBpbGF0aW9uIHNvdXJjZSBmaWxlcyB3aXRoIG90aGVyIGNvbXBpbGF0aW9uIHNvdXJjZSBmaWxlcyBpbiB0aGUgYnVpbGQuXG4gICAgICovXG4gICAgZmlsZVJlcGxhY2VtZW50cz86IEZpbGVSZXBsYWNlbWVudFtdO1xuICAgIC8qKlxuICAgICAqIEhvdyB0byBoYW5kbGUgZHVwbGljYXRlIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAgICAgKi9cbiAgICBpMThuRHVwbGljYXRlVHJhbnNsYXRpb24/OiBJMThOVHJhbnNsYXRpb247XG4gICAgLyoqXG4gICAgICogSG93IHRvIGhhbmRsZSBtaXNzaW5nIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAgICAgKi9cbiAgICBpMThuTWlzc2luZ1RyYW5zbGF0aW9uPzogSTE4TlRyYW5zbGF0aW9uO1xuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uJ3MgSFRNTCBpbmRleC5cbiAgICAgKi9cbiAgICBpbmRleDogSW5kZXhVbmlvbjtcbiAgICAvKipcbiAgICAgKiBUaGUgc3R5bGVzaGVldCBsYW5ndWFnZSB0byB1c2UgZm9yIHRoZSBhcHBsaWNhdGlvbidzIGlubGluZSBjb21wb25lbnQgc3R5bGVzLlxuICAgICAqL1xuICAgIGlubGluZVN0eWxlTGFuZ3VhZ2U/OiBJbmxpbmVTdHlsZUxhbmd1YWdlO1xuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0ZSB0aGUgYnVuZGxlcyBpbiBvbmUgb3IgbW9yZSBsb2NhbGVzLlxuICAgICAqL1xuICAgIGxvY2FsaXplPzogTG9jYWxpemU7XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBvcHRpbWl6YXRpb24gb2YgdGhlIGJ1aWxkIG91dHB1dC4gSW5jbHVkaW5nIG1pbmlmaWNhdGlvbiBvZiBzY3JpcHRzIGFuZCBzdHlsZXMsXG4gICAgICogdHJlZS1zaGFraW5nLCBkZWFkLWNvZGUgZWxpbWluYXRpb24sIGlubGluaW5nIG9mIGNyaXRpY2FsIENTUyBhbmQgZm9udHMgaW5saW5pbmcuIEZvclxuICAgICAqIG1vcmUgaW5mb3JtYXRpb24sIHNlZVxuICAgICAqIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS93b3Jrc3BhY2UtY29uZmlnI29wdGltaXphdGlvbi1jb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIG9wdGltaXphdGlvbj86IE9wdGltaXphdGlvblVuaW9uO1xuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgb3V0cHV0IGZpbGVuYW1lIGNhY2hlLWJ1c3RpbmcgaGFzaGluZyBtb2RlLlxuICAgICAqL1xuICAgIG91dHB1dEhhc2hpbmc/OiBPdXRwdXRIYXNoaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBmdWxsIHBhdGggZm9yIHRoZSBuZXcgb3V0cHV0IGRpcmVjdG9yeSwgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya3NwYWNlLlxuICAgICAqIEJ5IGRlZmF1bHQsIHdyaXRlcyBvdXRwdXQgdG8gYSBmb2xkZXIgbmFtZWQgZGlzdC8gaW4gdGhlIGN1cnJlbnQgcHJvamVjdC5cbiAgICAgKi9cbiAgICBvdXRwdXRQYXRoOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogRW5hYmxlIGFuZCBkZWZpbmUgdGhlIGZpbGUgd2F0Y2hpbmcgcG9sbCB0aW1lIHBlcmlvZCBpbiBtaWxsaXNlY29uZHMuXG4gICAgICovXG4gICAgcG9sbD86IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgcG9seWZpbGxzIHRvIGluY2x1ZGUgaW4gdGhlIGJ1aWxkLiBDYW4gYmUgYSBmdWxsIHBhdGggZm9yIGEgZmlsZSwgcmVsYXRpdmUgdG9cbiAgICAgKiB0aGUgY3VycmVudCB3b3Jrc3BhY2Ugb3IgbW9kdWxlIHNwZWNpZmllci4gRXhhbXBsZTogJ3pvbmUuanMnLlxuICAgICAqL1xuICAgIHBvbHlmaWxscz86IHN0cmluZ1tdO1xuICAgIC8qKlxuICAgICAqIFByZXJlbmRlciAoU1NHKSBwYWdlcyBvZiB5b3VyIGFwcGxpY2F0aW9uIGR1cmluZyBidWlsZCB0aW1lLlxuICAgICAqL1xuICAgIHByZXJlbmRlcj86IFByZXJlbmRlclVuaW9uO1xuICAgIC8qKlxuICAgICAqIERvIG5vdCB1c2UgdGhlIHJlYWwgcGF0aCB3aGVuIHJlc29sdmluZyBtb2R1bGVzLiBJZiB1bnNldCB0aGVuIHdpbGwgZGVmYXVsdCB0byBgdHJ1ZWAgaWZcbiAgICAgKiBOb2RlSlMgb3B0aW9uIC0tcHJlc2VydmUtc3ltbGlua3MgaXMgc2V0LlxuICAgICAqL1xuICAgIHByZXNlcnZlU3ltbGlua3M/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIExvZyBwcm9ncmVzcyB0byB0aGUgY29uc29sZSB3aGlsZSBidWlsZGluZy5cbiAgICAgKi9cbiAgICBwcm9ncmVzcz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogR2xvYmFsIHNjcmlwdHMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGJ1aWxkLlxuICAgICAqL1xuICAgIHNjcmlwdHM/OiBTY3JpcHRFbGVtZW50W107XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgcGF0aCBmb3IgdGhlIHNlcnZlciBlbnRyeSBwb2ludCB0byB0aGUgYXBwbGljYXRpb24sIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50XG4gICAgICogd29ya3NwYWNlLlxuICAgICAqL1xuICAgIHNlcnZlcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSBzZXJ2aWNlIHdvcmtlciBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHNlcnZpY2VXb3JrZXI/OiBTZXJ2aWNlV29ya2VyO1xuICAgIC8qKlxuICAgICAqIE91dHB1dCBzb3VyY2UgbWFwcyBmb3Igc2NyaXB0cyBhbmQgc3R5bGVzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4gICAgICogaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3dvcmtzcGFjZS1jb25maWcjc291cmNlLW1hcC1jb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHNvdXJjZU1hcD86IFNvdXJjZU1hcFVuaW9uO1xuICAgIC8qKlxuICAgICAqIFNlcnZlciBzaWRlIHJlbmRlciAoU1NSKSBwYWdlcyBvZiB5b3VyIGFwcGxpY2F0aW9uIGR1cmluZyBydW50aW1lLlxuICAgICAqL1xuICAgIHNzcj86IFNzclVuaW9uO1xuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyBhICdzdGF0cy5qc29uJyBmaWxlIHdoaWNoIGNhbiBiZSBhbmFseXplZCB3aXRoXG4gICAgICogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hbmFseXplLy5cbiAgICAgKi9cbiAgICBzdGF0c0pzb24/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbnMgdG8gcGFzcyB0byBzdHlsZSBwcmVwcm9jZXNzb3JzLlxuICAgICAqL1xuICAgIHN0eWxlUHJlcHJvY2Vzc29yT3B0aW9ucz86IFN0eWxlUHJlcHJvY2Vzc29yT3B0aW9ucztcbiAgICAvKipcbiAgICAgKiBHbG9iYWwgc3R5bGVzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBidWlsZC5cbiAgICAgKi9cbiAgICBzdHlsZXM/OiBTdHlsZUVsZW1lbnRbXTtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzIHRoZSB1c2Ugb2Ygc3VicmVzb3VyY2UgaW50ZWdyaXR5IHZhbGlkYXRpb24uXG4gICAgICovXG4gICAgc3VicmVzb3VyY2VJbnRlZ3JpdHk/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBmdWxsIHBhdGggZm9yIHRoZSBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZSwgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya3NwYWNlLlxuICAgICAqL1xuICAgIHRzQ29uZmlnOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQWRkcyBtb3JlIGRldGFpbHMgdG8gb3V0cHV0IGxvZ2dpbmcuXG4gICAgICovXG4gICAgdmVyYm9zZT86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogUnVuIGJ1aWxkIHdoZW4gZmlsZXMgY2hhbmdlLlxuICAgICAqL1xuICAgIHdhdGNoPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZm9yIFdlYiBXb3JrZXIgbW9kdWxlcy5cbiAgICAgKi9cbiAgICB3ZWJXb3JrZXJUc0NvbmZpZz86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQXNzZXRQYXR0ZXJuID0gQXNzZXRQYXR0ZXJuQ2xhc3MgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRQYXR0ZXJuQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIEFsbG93IGdsb2IgcGF0dGVybnMgdG8gZm9sbG93IHN5bWxpbmsgZGlyZWN0b3JpZXMuIFRoaXMgYWxsb3dzIHN1YmRpcmVjdG9yaWVzIG9mIHRoZVxuICAgICAqIHN5bWxpbmsgdG8gYmUgc2VhcmNoZWQuXG4gICAgICovXG4gICAgZm9sbG93U3ltbGlua3M/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBwYXR0ZXJuIHRvIG1hdGNoLlxuICAgICAqL1xuICAgIGdsb2I6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBvZiBnbG9icyB0byBpZ25vcmUuXG4gICAgICovXG4gICAgaWdub3JlPzogc3RyaW5nW107XG4gICAgLyoqXG4gICAgICogVGhlIGlucHV0IGRpcmVjdG9yeSBwYXRoIGluIHdoaWNoIHRvIGFwcGx5ICdnbG9iJy4gRGVmYXVsdHMgdG8gdGhlIHByb2plY3Qgcm9vdC5cbiAgICAgKi9cbiAgICBpbnB1dDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEFic29sdXRlIHBhdGggd2l0aGluIHRoZSBvdXRwdXQuXG4gICAgICovXG4gICAgb3V0cHV0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVkZ2V0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZWxpbmUgc2l6ZSBmb3IgY29tcGFyaXNvbi5cbiAgICAgKi9cbiAgICBiYXNlbGluZT86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdGhyZXNob2xkIGZvciBlcnJvciByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUgKG1pbiAmIG1heCkuXG4gICAgICovXG4gICAgZXJyb3I/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIG1heGltdW0gdGhyZXNob2xkIGZvciBlcnJvciByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUuXG4gICAgICovXG4gICAgbWF4aW11bUVycm9yPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIHRocmVzaG9sZCBmb3Igd2FybmluZyByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUuXG4gICAgICovXG4gICAgbWF4aW11bVdhcm5pbmc/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIG1pbmltdW0gdGhyZXNob2xkIGZvciBlcnJvciByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUuXG4gICAgICovXG4gICAgbWluaW11bUVycm9yPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBtaW5pbXVtIHRocmVzaG9sZCBmb3Igd2FybmluZyByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUuXG4gICAgICovXG4gICAgbWluaW11bVdhcm5pbmc/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGJ1bmRsZS5cbiAgICAgKi9cbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSB0eXBlIG9mIGJ1ZGdldC5cbiAgICAgKi9cbiAgICB0eXBlOiBUeXBlO1xuICAgIC8qKlxuICAgICAqIFRoZSB0aHJlc2hvbGQgZm9yIHdhcm5pbmcgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lIChtaW4gJiBtYXgpLlxuICAgICAqL1xuICAgIHdhcm5pbmc/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgYnVkZ2V0LlxuICovXG5leHBvcnQgZW51bSBUeXBlIHtcbiAgICBBbGwgPSBcImFsbFwiLFxuICAgIEFsbFNjcmlwdCA9IFwiYWxsU2NyaXB0XCIsXG4gICAgQW55ID0gXCJhbnlcIixcbiAgICBBbnlDb21wb25lbnRTdHlsZSA9IFwiYW55Q29tcG9uZW50U3R5bGVcIixcbiAgICBBbnlTY3JpcHQgPSBcImFueVNjcmlwdFwiLFxuICAgIEJ1bmRsZSA9IFwiYnVuZGxlXCIsXG4gICAgSW5pdGlhbCA9IFwiaW5pdGlhbFwiLFxufVxuXG4vKipcbiAqIERlZmluZSB0aGUgY3Jvc3NvcmlnaW4gYXR0cmlidXRlIHNldHRpbmcgb2YgZWxlbWVudHMgdGhhdCBwcm92aWRlIENPUlMgc3VwcG9ydC5cbiAqL1xuZXhwb3J0IGVudW0gQ3Jvc3NPcmlnaW4ge1xuICAgIEFub255bW91cyA9IFwiYW5vbnltb3VzXCIsXG4gICAgTm9uZSA9IFwibm9uZVwiLFxuICAgIFVzZUNyZWRlbnRpYWxzID0gXCJ1c2UtY3JlZGVudGlhbHNcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlUmVwbGFjZW1lbnQge1xuICAgIHJlcGxhY2U6IHN0cmluZztcbiAgICB3aXRoOiAgICBzdHJpbmc7XG59XG5cbi8qKlxuICogSG93IHRvIGhhbmRsZSBkdXBsaWNhdGUgdHJhbnNsYXRpb25zIGZvciBpMThuLlxuICpcbiAqIEhvdyB0byBoYW5kbGUgbWlzc2luZyB0cmFuc2xhdGlvbnMgZm9yIGkxOG4uXG4gKi9cbmV4cG9ydCBlbnVtIEkxOE5UcmFuc2xhdGlvbiB7XG4gICAgRXJyb3IgPSBcImVycm9yXCIsXG4gICAgSWdub3JlID0gXCJpZ25vcmVcIixcbiAgICBXYXJuaW5nID0gXCJ3YXJuaW5nXCIsXG59XG5cbi8qKlxuICogQ29uZmlndXJlcyB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgYXBwbGljYXRpb24ncyBIVE1MIGluZGV4LlxuICovXG5leHBvcnQgdHlwZSBJbmRleFVuaW9uID0gYm9vbGVhbiB8IEluZGV4T2JqZWN0IHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4T2JqZWN0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgcGF0aCBvZiBhIGZpbGUgdG8gdXNlIGZvciB0aGUgYXBwbGljYXRpb24ncyBnZW5lcmF0ZWQgSFRNTCBpbmRleC5cbiAgICAgKi9cbiAgICBpbnB1dDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBvdXRwdXQgcGF0aCBvZiB0aGUgYXBwbGljYXRpb24ncyBnZW5lcmF0ZWQgSFRNTCBpbmRleCBmaWxlLiBUaGUgZnVsbCBwcm92aWRlZCBwYXRoXG4gICAgICogd2lsbCBiZSB1c2VkIGFuZCB3aWxsIGJlIGNvbnNpZGVyZWQgcmVsYXRpdmUgdG8gdGhlIGFwcGxpY2F0aW9uJ3MgY29uZmlndXJlZCBvdXRwdXQgcGF0aC5cbiAgICAgKi9cbiAgICBvdXRwdXQ/OiBzdHJpbmc7XG4gICAgW3Byb3BlcnR5OiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogVGhlIHN0eWxlc2hlZXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciB0aGUgYXBwbGljYXRpb24ncyBpbmxpbmUgY29tcG9uZW50IHN0eWxlcy5cbiAqL1xuZXhwb3J0IGVudW0gSW5saW5lU3R5bGVMYW5ndWFnZSB7XG4gICAgQ3NzID0gXCJjc3NcIixcbiAgICBMZXNzID0gXCJsZXNzXCIsXG4gICAgU2FzcyA9IFwic2Fzc1wiLFxuICAgIFNjc3MgPSBcInNjc3NcIixcbn1cblxuLyoqXG4gKiBUcmFuc2xhdGUgdGhlIGJ1bmRsZXMgaW4gb25lIG9yIG1vcmUgbG9jYWxlcy5cbiAqL1xuZXhwb3J0IHR5cGUgTG9jYWxpemUgPSBzdHJpbmdbXSB8IGJvb2xlYW47XG5cbi8qKlxuICogRW5hYmxlcyBvcHRpbWl6YXRpb24gb2YgdGhlIGJ1aWxkIG91dHB1dC4gSW5jbHVkaW5nIG1pbmlmaWNhdGlvbiBvZiBzY3JpcHRzIGFuZCBzdHlsZXMsXG4gKiB0cmVlLXNoYWtpbmcsIGRlYWQtY29kZSBlbGltaW5hdGlvbiwgaW5saW5pbmcgb2YgY3JpdGljYWwgQ1NTIGFuZCBmb250cyBpbmxpbmluZy4gRm9yXG4gKiBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAqIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS93b3Jrc3BhY2UtY29uZmlnI29wdGltaXphdGlvbi1jb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBPcHRpbWl6YXRpb25VbmlvbiA9IGJvb2xlYW4gfCBPcHRpbWl6YXRpb25DbGFzcztcblxuZXhwb3J0IGludGVyZmFjZSBPcHRpbWl6YXRpb25DbGFzcyB7XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBvcHRpbWl6YXRpb24gZm9yIGZvbnRzLiBUaGlzIG9wdGlvbiByZXF1aXJlcyBpbnRlcm5ldCBhY2Nlc3MuIGBIVFRQU19QUk9YWWBcbiAgICAgKiBlbnZpcm9ubWVudCB2YXJpYWJsZSBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJveHkgc2VydmVyLlxuICAgICAqL1xuICAgIGZvbnRzPzogRm9udHNVbmlvbjtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzIG9wdGltaXphdGlvbiBvZiB0aGUgc2NyaXB0cyBvdXRwdXQuXG4gICAgICovXG4gICAgc2NyaXB0cz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBvcHRpbWl6YXRpb24gb2YgdGhlIHN0eWxlcyBvdXRwdXQuXG4gICAgICovXG4gICAgc3R5bGVzPzogU3R5bGVzVW5pb247XG59XG5cbi8qKlxuICogRW5hYmxlcyBvcHRpbWl6YXRpb24gZm9yIGZvbnRzLiBUaGlzIG9wdGlvbiByZXF1aXJlcyBpbnRlcm5ldCBhY2Nlc3MuIGBIVFRQU19QUk9YWWBcbiAqIGVudmlyb25tZW50IHZhcmlhYmxlIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwcm94eSBzZXJ2ZXIuXG4gKi9cbmV4cG9ydCB0eXBlIEZvbnRzVW5pb24gPSBib29sZWFuIHwgRm9udHNDbGFzcztcblxuZXhwb3J0IGludGVyZmFjZSBGb250c0NsYXNzIHtcbiAgICAvKipcbiAgICAgKiBSZWR1Y2UgcmVuZGVyIGJsb2NraW5nIHJlcXVlc3RzIGJ5IGlubGluaW5nIGV4dGVybmFsIEdvb2dsZSBGb250cyBhbmQgQWRvYmUgRm9udHMgQ1NTXG4gICAgICogZGVmaW5pdGlvbnMgaW4gdGhlIGFwcGxpY2F0aW9uJ3MgSFRNTCBpbmRleCBmaWxlLiBUaGlzIG9wdGlvbiByZXF1aXJlcyBpbnRlcm5ldCBhY2Nlc3MuXG4gICAgICogYEhUVFBTX1BST1hZYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJveHkgc2VydmVyLlxuICAgICAqL1xuICAgIGlubGluZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5hYmxlcyBvcHRpbWl6YXRpb24gb2YgdGhlIHN0eWxlcyBvdXRwdXQuXG4gKi9cbmV4cG9ydCB0eXBlIFN0eWxlc1VuaW9uID0gYm9vbGVhbiB8IFN0eWxlc0NsYXNzO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlc0NsYXNzIHtcbiAgICAvKipcbiAgICAgKiBFeHRyYWN0IGFuZCBpbmxpbmUgY3JpdGljYWwgQ1NTIGRlZmluaXRpb25zIHRvIGltcHJvdmUgZmlyc3QgcGFpbnQgdGltZS5cbiAgICAgKi9cbiAgICBpbmxpbmVDcml0aWNhbD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogTWluaWZ5IENTUyBkZWZpbml0aW9ucyBieSByZW1vdmluZyBleHRyYW5lb3VzIHdoaXRlc3BhY2UgYW5kIGNvbW1lbnRzLCBtZXJnaW5nXG4gICAgICogaWRlbnRpZmllcnMgYW5kIG1pbmltaXppbmcgdmFsdWVzLlxuICAgICAqL1xuICAgIG1pbmlmeT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRGVmaW5lIHRoZSBvdXRwdXQgZmlsZW5hbWUgY2FjaGUtYnVzdGluZyBoYXNoaW5nIG1vZGUuXG4gKi9cbmV4cG9ydCBlbnVtIE91dHB1dEhhc2hpbmcge1xuICAgIEFsbCA9IFwiYWxsXCIsXG4gICAgQnVuZGxlcyA9IFwiYnVuZGxlc1wiLFxuICAgIE1lZGlhID0gXCJtZWRpYVwiLFxuICAgIE5vbmUgPSBcIm5vbmVcIixcbn1cblxuLyoqXG4gKiBQcmVyZW5kZXIgKFNTRykgcGFnZXMgb2YgeW91ciBhcHBsaWNhdGlvbiBkdXJpbmcgYnVpbGQgdGltZS5cbiAqL1xuZXhwb3J0IHR5cGUgUHJlcmVuZGVyVW5pb24gPSBib29sZWFuIHwgUHJlcmVuZGVyQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlcmVuZGVyQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGJ1aWxkZXIgc2hvdWxkIHN0YXRpY2FsbHkgZGlzY292ZXIgcm91dGVzLlxuICAgICAqL1xuICAgIGRpc2NvdmVyUm91dGVzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgcm91dGVzIHRvIHJlbmRlci5cbiAgICAgKi9cbiAgICByb3V0ZXM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBUaGUgcGF0aCB0byBhIGZpbGUgY29udGFpbmluZyByb3V0ZXMgc2VwYXJhdGVkIGJ5IG5ld2xpbmVzLlxuICAgICAqL1xuICAgIHJvdXRlc0ZpbGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFNjcmlwdEVsZW1lbnQgPSBTY3JpcHRDbGFzcyB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHRDbGFzcyB7XG4gICAgLyoqXG4gICAgICogVGhlIGJ1bmRsZSBuYW1lIGZvciB0aGlzIGV4dHJhIGVudHJ5IHBvaW50LlxuICAgICAqL1xuICAgIGJ1bmRsZU5hbWU/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogSWYgdGhlIGJ1bmRsZSB3aWxsIGJlIHJlZmVyZW5jZWQgaW4gdGhlIEhUTUwgZmlsZS5cbiAgICAgKi9cbiAgICBpbmplY3Q/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBmaWxlIHRvIGluY2x1ZGUuXG4gICAgICovXG4gICAgaW5wdXQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBzZXJ2aWNlIHdvcmtlciBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBTZXJ2aWNlV29ya2VyID0gYm9vbGVhbiB8IHN0cmluZztcblxuLyoqXG4gKiBPdXRwdXQgc291cmNlIG1hcHMgZm9yIHNjcmlwdHMgYW5kIHN0eWxlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZVxuICogaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3dvcmtzcGFjZS1jb25maWcjc291cmNlLW1hcC1jb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBTb3VyY2VNYXBVbmlvbiA9IGJvb2xlYW4gfCBTb3VyY2VNYXBDbGFzcztcblxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VNYXBDbGFzcyB7XG4gICAgLyoqXG4gICAgICogT3V0cHV0IHNvdXJjZSBtYXBzIHVzZWQgZm9yIGVycm9yIHJlcG9ydGluZyB0b29scy5cbiAgICAgKi9cbiAgICBoaWRkZW4/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE91dHB1dCBzb3VyY2UgbWFwcyBmb3IgYWxsIHNjcmlwdHMuXG4gICAgICovXG4gICAgc2NyaXB0cz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3V0cHV0IHNvdXJjZSBtYXBzIGZvciBhbGwgc3R5bGVzLlxuICAgICAqL1xuICAgIHN0eWxlcz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogUmVzb2x2ZSB2ZW5kb3IgcGFja2FnZXMgc291cmNlIG1hcHMuXG4gICAgICovXG4gICAgdmVuZG9yPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTZXJ2ZXIgc2lkZSByZW5kZXIgKFNTUikgcGFnZXMgb2YgeW91ciBhcHBsaWNhdGlvbiBkdXJpbmcgcnVudGltZS5cbiAqL1xuZXhwb3J0IHR5cGUgU3NyVW5pb24gPSBib29sZWFuIHwgU3NyQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3NyQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIFRoZSBzZXJ2ZXIgZW50cnktcG9pbnQgdGhhdCB3aGVuIGV4ZWN1dGVkIHdpbGwgc3Bhd24gdGhlIHdlYiBzZXJ2ZXIuXG4gICAgICovXG4gICAgZW50cnk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBwYXNzIHRvIHN0eWxlIHByZXByb2Nlc3NvcnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3R5bGVQcmVwcm9jZXNzb3JPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBQYXRocyB0byBpbmNsdWRlLiBQYXRocyB3aWxsIGJlIHJlc29sdmVkIHRvIHdvcmtzcGFjZSByb290LlxuICAgICAqL1xuICAgIGluY2x1ZGVQYXRocz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgdHlwZSBTdHlsZUVsZW1lbnQgPSBTdHlsZUNsYXNzIHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIFRoZSBidW5kbGUgbmFtZSBmb3IgdGhpcyBleHRyYSBlbnRyeSBwb2ludC5cbiAgICAgKi9cbiAgICBidW5kbGVOYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIElmIHRoZSBidW5kbGUgd2lsbCBiZSByZWZlcmVuY2VkIGluIHRoZSBIVE1MIGZpbGUuXG4gICAgICovXG4gICAgaW5qZWN0PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZmlsZSB0byBpbmNsdWRlLlxuICAgICAqL1xuICAgIGlucHV0OiBzdHJpbmc7XG59XG4iXX0=
@@ -379,7 +379,7 @@
379
379
  },
380
380
  "statsJson": {
381
381
  "type": "boolean",
382
- "description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'.",
382
+ "description": "Generates a 'stats.json' file which can be analyzed with https://esbuild.github.io/analyze/.",
383
383
  "default": false
384
384
  },
385
385
  "budgets": {