@angular-devkit/build-angular 15.2.0-rc.0 → 16.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/package.json +17 -17
  2. package/src/babel/plugins/adjust-static-class-members.js +5 -6
  3. package/src/babel/plugins/adjust-typescript-enums.js +2 -2
  4. package/src/babel/plugins/elide-angular-metadata.js +2 -3
  5. package/src/babel/presets/application.js +7 -8
  6. package/src/babel/webpack-loader.js +4 -6
  7. package/src/builders/app-shell/index.js +4 -5
  8. package/src/builders/browser/index.js +22 -30
  9. package/src/builders/browser-esbuild/angular/jit-compilation.js +3 -6
  10. package/src/builders/browser-esbuild/angular/jit-plugin-callbacks.js +3 -5
  11. package/src/builders/browser-esbuild/angular/jit-resource-transformer.js +2 -3
  12. package/src/builders/browser-esbuild/angular-compilation.js +6 -8
  13. package/src/builders/browser-esbuild/angular-host.js +3 -5
  14. package/src/builders/browser-esbuild/compiler-plugin.js +22 -30
  15. package/src/builders/browser-esbuild/css-resource-plugin.js +4 -6
  16. package/src/builders/browser-esbuild/esbuild.js +5 -7
  17. package/src/builders/browser-esbuild/index.js +15 -18
  18. package/src/builders/browser-esbuild/javascript-transformer-worker.js +6 -7
  19. package/src/builders/browser-esbuild/less-plugin.js +3 -4
  20. package/src/builders/browser-esbuild/license-extractor.js +4 -4
  21. package/src/builders/browser-esbuild/options.js +10 -11
  22. package/src/builders/browser-esbuild/profiling.js +5 -6
  23. package/src/builders/browser-esbuild/sass-plugin.js +5 -6
  24. package/src/builders/browser-esbuild/stylesheets.js +4 -5
  25. package/src/builders/browser-esbuild/watcher.js +5 -5
  26. package/src/builders/dev-server/index.js +14 -19
  27. package/src/builders/extract-i18n/index.js +7 -8
  28. package/src/builders/extract-i18n/ivy-extract-loader.js +4 -4
  29. package/src/builders/karma/find-tests-plugin.js +4 -4
  30. package/src/builders/karma/index.js +13 -17
  31. package/src/builders/ng-packagr/index.js +3 -5
  32. package/src/builders/protractor/index.js +3 -3
  33. package/src/builders/server/index.js +7 -11
  34. package/src/sass/rebasing-importer.js +6 -8
  35. package/src/sass/sass-service-legacy.js +3 -3
  36. package/src/sass/sass-service.js +7 -10
  37. package/src/sass/worker-legacy.js +4 -5
  38. package/src/sass/worker.js +6 -8
  39. package/src/utils/action-executor.js +2 -3
  40. package/src/utils/bundle-calculator.js +2 -2
  41. package/src/utils/i18n-options.js +5 -5
  42. package/src/utils/index-file/augment-index-html.js +2 -2
  43. package/src/utils/index-file/index-html-generator.js +5 -8
  44. package/src/utils/index-file/inline-fonts.js +3 -5
  45. package/src/utils/load-translations.js +2 -2
  46. package/src/utils/normalize-asset-patterns.js +2 -2
  47. package/src/utils/normalize-cache.js +2 -3
  48. package/src/utils/process-bundle.js +2 -3
  49. package/src/utils/purge-cache.js +2 -3
  50. package/src/utils/version.js +3 -3
  51. package/src/utils/webpack-browser-config.js +3 -5
  52. package/src/webpack/configs/common.js +6 -7
  53. package/src/webpack/configs/dev-server.js +2 -3
  54. package/src/webpack/configs/styles.js +4 -5
  55. package/src/webpack/plugins/builder-watch-plugin.js +4 -5
  56. package/src/webpack/plugins/common-js-usage-warn-plugin.js +3 -4
  57. package/src/webpack/plugins/css-optimizer-plugin.js +4 -4
  58. package/src/webpack/plugins/dedupe-module-resolve-plugin.js +4 -5
  59. package/src/webpack/plugins/esbuild-executor.js +3 -3
  60. package/src/webpack/plugins/hmr/hmr-accept.js +3 -3
  61. package/src/webpack/plugins/index-html-webpack-plugin.js +2 -3
  62. package/src/webpack/plugins/javascript-optimizer-plugin.js +3 -3
  63. package/src/webpack/plugins/javascript-optimizer-worker.js +2 -2
  64. package/src/webpack/plugins/karma/karma.js +4 -4
  65. package/src/webpack/plugins/postcss-cli-resources.js +2 -2
  66. package/src/webpack/plugins/remove-hash-plugin.js +3 -4
  67. package/src/webpack/plugins/scripts-webpack-plugin.js +2 -3
  68. package/src/webpack/plugins/styles-webpack-plugin.js +4 -5
  69. package/src/webpack/plugins/typescript.js +4 -5
  70. package/src/webpack/plugins/watch-files-logs-plugin.js +3 -3
  71. package/src/webpack/utils/async-chunks.js +2 -2
  72. package/src/webpack/utils/helpers.js +3 -4
  73. package/src/webpack/utils/stats.js +15 -18
@@ -9,7 +9,7 @@
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  // eslint-disable-next-line import/no-extraneous-dependencies
11
11
  const core_1 = require("@angular/core");
12
- const operators_1 = require("rxjs/operators");
12
+ const rxjs_1 = require("rxjs");
13
13
  function default_1(mod) {
14
14
  if (!mod['hot']) {
15
15
  return;
@@ -72,7 +72,7 @@ function default_1(mod) {
72
72
  }
73
73
  // Wait until the application isStable to restore the form values
74
74
  newAppRef.isStable
75
- .pipe((0, operators_1.filter)((isStable) => !!isStable), (0, operators_1.take)(1))
75
+ .pipe((0, rxjs_1.filter)((isStable) => !!isStable), (0, rxjs_1.take)(1))
76
76
  .subscribe(() => restoreFormValues(oldInputs, oldOptions));
77
77
  }).observe(bodyElement, {
78
78
  attributes: true,
@@ -182,4 +182,4 @@ function restoreFormValues(oldInputs, oldOptions) {
182
182
  console.warn('[NG HMR] Cannot restore selected options.');
183
183
  }
184
184
  }
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1yLWFjY2VwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL3dlYnBhY2svcGx1Z2lucy9obXIvaG1yLWFjY2VwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILDZEQUE2RDtBQUM3RCx3Q0FNdUI7QUFDdkIsOENBQThDO0FBYzlDLG1CQUF5QixHQUFRO0lBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDZixPQUFPO0tBQ1I7SUFFRCxJQUFJLENBQUMsSUFBQSxnQkFBUyxHQUFFLEVBQUU7UUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FDWCxpSUFBaUksQ0FDbEksQ0FBQztRQUVGLE9BQU87S0FDUjtJQUVELEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwQixHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUN0QixJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRTtZQUM3QixPQUFPLENBQUMsSUFBSSxDQUNWLGtHQUFrRyxDQUNuRyxDQUFDO1lBRUYsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDbkIsY0FBYztZQUNkLE9BQU87U0FDUjtRQUVELHNDQUFzQztRQUN0QyxJQUFBLCtCQUF3QixHQUFFLENBQUM7UUFDM0IsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU87U0FDUjtRQUVELE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPO1NBQ1I7UUFFRCwyQ0FBMkM7UUFDM0MsTUFBTSxT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NUI7S0FDRjtTQUFNLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRTtRQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLGdEQUFnRCxDQUFDLENBQUM7S0FDaEU7SUFFRCxpQkFBaUI7SUFDakIsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxNQUFNLEVBQUU7UUFDaEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQ3BELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3RELE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxVQUFVLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFFakQsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzVCO0tBQ0Y7U0FBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7UUFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0tBQzNEO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgUGxhdGZvcm1SZWYsXG4gIFR5cGUsXG4gIGlzRGV2TW9kZSxcbiAgybVyZXNldENvbXBpbGVkQ29tcG9uZW50cyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIEZvciB0aGUgdGltZSBiZWluZyB3ZSBjYW5ub3QgdXNlIHRoZSBET00gbGliIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGggQHR5cGVzL25vZGUsXG4vLyBJbiBmdXR1cmUgd2hlbiB3ZSByZW1vdmUgYHlhcm4gYWRtaW4gYnVpbGRgIHdlIHNob3VsZCBoYXZlIHRoaXMgYXMgYSBzZXBlcmF0ZSBjb21waWxhdGlvbiB1bml0XG4vLyB3aGljaCBpbmNsdWRlcyBET00gbGliLlxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5kZWNsYXJlIGNvbnN0IG5nOiBhbnk7XG5kZWNsYXJlIGNvbnN0IGRvY3VtZW50OiBhbnk7XG5kZWNsYXJlIGNvbnN0IE11dGF0aW9uT2JzZXJ2ZXI6IGFueTtcbmRlY2xhcmUgY29uc3QgS2V5Ym9hcmRFdmVudDogYW55O1xuZGVjbGFyZSBjb25zdCBFdmVudDogYW55O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAobW9kOiBhbnkpOiB2b2lkIHtcbiAgaWYgKCFtb2RbJ2hvdCddKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFpc0Rldk1vZGUoKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgW05HIEhNUl0gQ2Fubm90IHVzZSBITVIgd2hlbiBBbmd1bGFyIGlzIHJ1bm5pbmcgaW4gcHJvZHVjdGlvbiBtb2RlLiBUbyBwcmV2ZW50IHByb2R1Y3Rpb24gbW9kZSwgZG8gbm90IGNhbGwgJ2VuYWJsZVByb2RNb2RlKCknLmAsXG4gICAgKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIG1vZFsnaG90J10uYWNjZXB0KCk7XG4gIG1vZFsnaG90J10uZGlzcG9zZSgoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBuZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFtORyBITVJdIENhbm5vdCBmaW5kIGdsb2JhbCAnbmcnLiBMaWtlbHkgdGhpcyBpcyBjYXVzZWQgYmVjYXVzZSBzY3JpcHRzIG9wdGltaXphdGlvbiBpcyBlbmFibGVkLmAsXG4gICAgICApO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFuZy5nZXRJbmplY3Rvcikge1xuICAgICAgLy8gVmlldyBFbmdpbmVcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZXNldCBKSVQgY29tcGlsZWQgY29tcG9uZW50cyBjYWNoZVxuICAgIMm1cmVzZXRDb21waWxlZENvbXBvbmVudHMoKTtcbiAgICBjb25zdCBhcHBSb290ID0gZ2V0QXBwUm9vdCgpO1xuICAgIGlmICghYXBwUm9vdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFwcFJlZiA9IGdldEFwcGxpY2F0aW9uUmVmKGFwcFJvb3QpO1xuICAgIGlmICghYXBwUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSW5wdXRzIHRoYXQgYXJlIGhpZGRlbiBzaG91bGQgYmUgaWdub3JlZFxuICAgIGNvbnN0IG9sZElucHV0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0Om5vdChbdHlwZT1cImhpZGRlblwiXSksIHRleHRhcmVhJyk7XG4gICAgY29uc3Qgb2xkT3B0aW9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ29wdGlvbicpO1xuXG4gICAgLy8gQ3JlYXRlIG5ldyBhcHBsaWNhdGlvblxuICAgIGFwcFJlZi5jb21wb25lbnRzLmZvckVhY2goKGNwKSA9PiB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gY3AubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBlbGVtZW50LnBhcmVudE5vZGU7XG4gICAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQudGFnTmFtZSksIGVsZW1lbnQpO1xuXG4gICAgICBwYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgIH0pO1xuXG4gICAgLy8gRGVzdHJveSBvbGQgYXBwbGljYXRpb24sIGluamVjdG9ycywgPHN0eWxlLi4uLCBldGMuLlxuICAgIGNvbnN0IHBsYXRmb3JtUmVmID0gZ2V0UGxhdGZvcm1SZWYoYXBwUm9vdCk7XG4gICAgaWYgKHBsYXRmb3JtUmVmKSB7XG4gICAgICBwbGF0Zm9ybVJlZi5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLy8gUmVzdG9yZSBhbGwgaW5wdXRzIGFuZCBvcHRpb25zXG4gICAgY29uc3QgYm9keUVsZW1lbnQgPSBkb2N1bWVudC5ib2R5O1xuICAgIGlmIChvbGRJbnB1dHMubGVuZ3RoICsgb2xkT3B0aW9ucy5sZW5ndGggPT09IDAgfHwgIWJvZHlFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVXNlIGEgYE11dGF0aW9uT2JzZXJ2ZXJgIHRvIHdhaXQgdW50aWwgdGhlIGFwcC1yb290IGVsZW1lbnQgaGFzIGJlZW4gYm9vdHN0cmFwcGVkLlxuICAgIC8vIGllOiB3aGVuIHRoZSBuZy12ZXJzaW9uIGF0dHJpYnV0ZSBpcyBhZGRlZC5cbiAgICBuZXcgTXV0YXRpb25PYnNlcnZlcigoX211dGF0aW9uc0xpc3Q6IGFueSwgb2JzZXJ2ZXI6IGFueSkgPT4ge1xuICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgICBjb25zdCBuZXdBcHBSb290ID0gZ2V0QXBwUm9vdCgpO1xuICAgICAgaWYgKCFuZXdBcHBSb290KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3QXBwUmVmID0gZ2V0QXBwbGljYXRpb25SZWYobmV3QXBwUm9vdCk7XG4gICAgICBpZiAoIW5ld0FwcFJlZikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIFdhaXQgdW50aWwgdGhlIGFwcGxpY2F0aW9uIGlzU3RhYmxlIHRvIHJlc3RvcmUgdGhlIGZvcm0gdmFsdWVzXG4gICAgICBuZXdBcHBSZWYuaXNTdGFibGVcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChpc1N0YWJsZSkgPT4gISFpc1N0YWJsZSksXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHJlc3RvcmVGb3JtVmFsdWVzKG9sZElucHV0cywgb2xkT3B0aW9ucykpO1xuICAgIH0pLm9ic2VydmUoYm9keUVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ25nLXZlcnNpb24nXSxcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldEFwcFJvb3QoKTogYW55IHtcbiAgY29uc3QgYXBwUm9vdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tuZy12ZXJzaW9uXScpO1xuICBpZiAoIWFwcFJvb3QpIHtcbiAgICBjb25zb2xlLndhcm4oJ1tORyBITVJdIENhbm5vdCBmaW5kIHRoZSBhcHBsaWNhdGlvbiByb290IGNvbXBvbmVudC4nKTtcblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gYXBwUm9vdDtcbn1cblxuZnVuY3Rpb24gZ2V0VG9rZW48VD4oYXBwUm9vdDogYW55LCB0b2tlbjogVHlwZTxUPik6IFQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gKHR5cGVvZiBuZyA9PT0gJ29iamVjdCcgJiYgbmcuZ2V0SW5qZWN0b3IoYXBwUm9vdCkuZ2V0KHRva2VuKSkgfHwgdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBnZXRBcHBsaWNhdGlvblJlZihhcHBSb290OiBhbnkpOiBBcHBsaWNhdGlvblJlZiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGFwcFJlZiA9IGdldFRva2VuKGFwcFJvb3QsIEFwcGxpY2F0aW9uUmVmKTtcbiAgaWYgKCFhcHBSZWYpIHtcbiAgICBjb25zb2xlLndhcm4oYFtORyBITVJdIENhbm5vdCBnZXQgJ0FwcGxpY2F0aW9uUmVmJy5gKTtcblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gYXBwUmVmO1xufVxuXG5mdW5jdGlvbiBnZXRQbGF0Zm9ybVJlZihhcHBSb290OiBhbnkpOiBQbGF0Zm9ybVJlZiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHBsYXRmb3JtUmVmID0gZ2V0VG9rZW4oYXBwUm9vdCwgUGxhdGZvcm1SZWYpO1xuICBpZiAoIXBsYXRmb3JtUmVmKSB7XG4gICAgY29uc29sZS53YXJuKGBbTkcgSE1SXSBDYW5ub3QgZ2V0ICdQbGF0Zm9ybVJlZicuYCk7XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHBsYXRmb3JtUmVmO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaEV2ZW50cyhlbGVtZW50OiBhbnkpOiB2b2lkIHtcbiAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KFxuICAgIG5ldyBFdmVudCgnaW5wdXQnLCB7XG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICB9KSxcbiAgKTtcblxuICBlbGVtZW50LmJsdXIoKTtcblxuICBlbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleXVwJywgeyBrZXk6ICdFbnRlcicgfSkpO1xufVxuXG5mdW5jdGlvbiByZXN0b3JlRm9ybVZhbHVlcyhvbGRJbnB1dHM6IGFueVtdLCBvbGRPcHRpb25zOiBhbnlbXSk6IHZvaWQge1xuICAvLyBSZXN0b3JlIGlucHV0IHRoYXQgYXJlIG5vdCBoaWRkZW5cbiAgY29uc3QgbmV3SW5wdXRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQ6bm90KFt0eXBlPVwiaGlkZGVuXCJdKSwgdGV4dGFyZWEnKTtcbiAgaWYgKG5ld0lucHV0cy5sZW5ndGggJiYgbmV3SW5wdXRzLmxlbmd0aCA9PT0gb2xkSW5wdXRzLmxlbmd0aCkge1xuICAgIGNvbnNvbGUubG9nKCdbTkcgSE1SXSBSZXN0b3JpbmcgaW5wdXQvdGV4dGFyZWEgdmFsdWVzLicpO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBuZXdJbnB1dHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBuZXdFbGVtZW50ID0gbmV3SW5wdXRzW2luZGV4XTtcbiAgICAgIGNvbnN0IG9sZEVsZW1lbnQgPSBvbGRJbnB1dHNbaW5kZXhdO1xuXG4gICAgICBzd2l0Y2ggKG9sZEVsZW1lbnQudHlwZSkge1xuICAgICAgICBjYXNlICdidXR0b24nOlxuICAgICAgICBjYXNlICdpbWFnZSc6XG4gICAgICAgIGNhc2UgJ3N1Ym1pdCc6XG4gICAgICAgIGNhc2UgJ3Jlc2V0JzpcbiAgICAgICAgICAvLyBUaGVzZSB0eXBlcyBkb24ndCBuZWVkIGFueSB2YWx1ZSBjaGFuZ2UuXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgICAgY2FzZSAnY2hlY2tib3gnOlxuICAgICAgICAgIG5ld0VsZW1lbnQuY2hlY2tlZCA9IG9sZEVsZW1lbnQuY2hlY2tlZDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnY29sb3InOlxuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgY2FzZSAnZGF0ZXRpbWUtbG9jYWwnOlxuICAgICAgICBjYXNlICdlbWFpbCc6XG4gICAgICAgIGNhc2UgJ2hpZGRlbic6XG4gICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgY2FzZSAncGFzc3dvcmQnOlxuICAgICAgICBjYXNlICdyYW5nZSc6XG4gICAgICAgIGNhc2UgJ3NlYXJjaCc6XG4gICAgICAgIGNhc2UgJ3RlbCc6XG4gICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICAgIGNhc2UgJ3RpbWUnOlxuICAgICAgICBjYXNlICd1cmwnOlxuICAgICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgICBuZXdFbGVtZW50LnZhbHVlID0gb2xkRWxlbWVudC52YWx1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZmlsZSc6XG4gICAgICAgICAgLy8gSWdub3JlZCBkdWU6IFVuY2F1Z2h0IERPTUV4Y2VwdGlvbjogRmFpbGVkIHRvIHNldCB0aGUgJ3ZhbHVlJyBwcm9wZXJ0eSBvbiAnSFRNTElucHV0RWxlbWVudCc6XG4gICAgICAgICAgLy8gVGhpcyBpbnB1dCBlbGVtZW50IGFjY2VwdHMgYSBmaWxlbmFtZSwgd2hpY2ggbWF5IG9ubHkgYmUgcHJvZ3JhbW1hdGljYWxseSBzZXQgdG8gdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ1tORyBITVJdIFVua25vd24gaW5wdXQgdHlwZSAnICsgb2xkRWxlbWVudC50eXBlICsgJy4nKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgZGlzcGF0Y2hFdmVudHMobmV3RWxlbWVudCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKG9sZElucHV0cy5sZW5ndGgpIHtcbiAgICBjb25zb2xlLndhcm4oJ1tORyBITVJdIENhbm5vdCByZXN0b3JlIGlucHV0L3RleHRhcmVhIHZhbHVlcy4nKTtcbiAgfVxuXG4gIC8vIFJlc3RvcmUgb3B0aW9uXG4gIGNvbnN0IG5ld09wdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdvcHRpb24nKTtcbiAgaWYgKG5ld09wdGlvbnMubGVuZ3RoICYmIG5ld09wdGlvbnMubGVuZ3RoID09PSBvbGRPcHRpb25zLmxlbmd0aCkge1xuICAgIGNvbnNvbGUubG9nKCdbTkcgSE1SXSBSZXN0b3Jpbmcgc2VsZWN0ZWQgb3B0aW9ucy4nKTtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbmV3T3B0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBuZXdPcHRpb25zW2luZGV4XTtcbiAgICAgIG5ld0VsZW1lbnQuc2VsZWN0ZWQgPSBvbGRPcHRpb25zW2luZGV4XS5zZWxlY3RlZDtcblxuICAgICAgZGlzcGF0Y2hFdmVudHMobmV3RWxlbWVudCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKG9sZE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgY29uc29sZS53YXJuKCdbTkcgSE1SXSBDYW5ub3QgcmVzdG9yZSBzZWxlY3RlZCBvcHRpb25zLicpO1xuICB9XG59XG4iXX0=
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1yLWFjY2VwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL3dlYnBhY2svcGx1Z2lucy9obXIvaG1yLWFjY2VwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILDZEQUE2RDtBQUM3RCx3Q0FNdUI7QUFDdkIsK0JBQW9DO0FBY3BDLG1CQUF5QixHQUFRO0lBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDZixPQUFPO0tBQ1I7SUFFRCxJQUFJLENBQUMsSUFBQSxnQkFBUyxHQUFFLEVBQUU7UUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FDWCxpSUFBaUksQ0FDbEksQ0FBQztRQUVGLE9BQU87S0FDUjtJQUVELEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwQixHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUN0QixJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRTtZQUM3QixPQUFPLENBQUMsSUFBSSxDQUNWLGtHQUFrRyxDQUNuRyxDQUFDO1lBRUYsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDbkIsY0FBYztZQUNkLE9BQU87U0FDUjtRQUVELHNDQUFzQztRQUN0QyxJQUFBLCtCQUF3QixHQUFFLENBQUM7UUFDM0IsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU87U0FDUjtRQUVELE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPO1NBQ1I7UUFFRCwyQ0FBMkM7UUFDM0MsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDcEYsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZELHlCQUF5QjtRQUN6QixNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQy9CLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQzFDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFDdEMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUUxRSxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBRUgsdURBQXVEO1FBQ3ZELE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QyxJQUFJLFdBQVcsRUFBRTtZQUNmLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN2QjtRQUVELGlDQUFpQztRQUNqQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM5RCxPQUFPO1NBQ1I7UUFFRCxxRkFBcUY7UUFDckYsOENBQThDO1FBQzlDLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxjQUFtQixFQUFFLFFBQWEsRUFBRSxFQUFFO1lBQzFELFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUV0QixNQUFNLFVBQVUsR0FBRyxVQUFVLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLE9BQU87YUFDUjtZQUVELE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2QsT0FBTzthQUNSO1lBRUQsaUVBQWlFO1lBQ2pFLFNBQVMsQ0FBQyxRQUFRO2lCQUNmLElBQUksQ0FDSCxJQUFBLGFBQU0sRUFBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUNoQyxJQUFBLFdBQUksRUFBQyxDQUFDLENBQUMsQ0FDUjtpQkFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUN0QixVQUFVLEVBQUUsSUFBSTtZQUNoQixPQUFPLEVBQUUsSUFBSTtZQUNiLGVBQWUsRUFBRSxDQUFDLFlBQVksQ0FBQztTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUE3RkQsNEJBNkZDO0FBRUQsU0FBUyxVQUFVO0lBQ2pCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0RBQXNELENBQUMsQ0FBQztRQUVyRSxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBSSxPQUFZLEVBQUUsS0FBYztJQUMvQyxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO0FBQ3JGLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLE9BQVk7SUFDckMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxxQkFBYyxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUV0RCxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxPQUFZO0lBQ2xDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsa0JBQVcsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBRW5ELE9BQU8sU0FBUyxDQUFDO0tBQ2xCO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLE9BQVk7SUFDbEMsT0FBTyxDQUFDLGFBQWEsQ0FDbkIsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1FBQ2pCLE9BQU8sRUFBRSxJQUFJO1FBQ2IsVUFBVSxFQUFFLElBQUk7S0FDakIsQ0FBQyxDQUNILENBQUM7SUFFRixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFZixPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksYUFBYSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsU0FBZ0IsRUFBRSxVQUFpQjtJQUM1RCxvQ0FBb0M7SUFDcEMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDcEYsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLE1BQU0sRUFBRTtRQUM3RCxPQUFPLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDekQsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDckQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwQyxRQUFRLFVBQVUsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3ZCLEtBQUssUUFBUSxDQUFDO2dCQUNkLEtBQUssT0FBTyxDQUFDO2dCQUNiLEtBQUssUUFBUSxDQUFDO2dCQUNkLEtBQUssT0FBTztvQkFDViwyQ0FBMkM7b0JBQzNDLFNBQVM7Z0JBQ1gsS0FBSyxPQUFPLENBQUM7Z0JBQ2IsS0FBSyxVQUFVO29CQUNiLFVBQVUsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztvQkFDeEMsTUFBTTtnQkFDUixLQUFLLE9BQU8sQ0FBQztnQkFDYixLQUFLLE1BQU0sQ0FBQztnQkFDWixLQUFLLGdCQUFnQixDQUFDO2dCQUN0QixLQUFLLE9BQU8sQ0FBQztnQkFDYixLQUFLLFFBQVEsQ0FBQztnQkFDZCxLQUFLLE9BQU8sQ0FBQztnQkFDYixLQUFLLFFBQVEsQ0FBQztnQkFDZCxLQUFLLFVBQVUsQ0FBQztnQkFDaEIsS0FBSyxPQUFPLENBQUM7Z0JBQ2IsS0FBSyxRQUFRLENBQUM7Z0JBQ2QsS0FBSyxLQUFLLENBQUM7Z0JBQ1gsS0FBSyxNQUFNLENBQUM7Z0JBQ1osS0FBSyxVQUFVLENBQUM7Z0JBQ2hCLEtBQUssTUFBTSxDQUFDO2dCQUNaLEtBQUssS0FBSyxDQUFDO2dCQUNYLEtBQUssTUFBTTtvQkFDVCxVQUFVLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7b0JBQ3BDLE1BQU07Z0JBQ1IsS0FBSyxNQUFNO29CQUNULGdHQUFnRztvQkFDaEcscUdBQXFHO29CQUNyRyxNQUFNO2dCQUNSO29CQUNFLE9BQU8sQ0FBQyxJQUFJLENBQUMsOEJBQThCLEdBQUcsVUFBVSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztvQkFDckUsU0FBUzthQUNaO1lBRUQsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzVCO0tBQ0Y7U0FBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUU7UUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0tBQ2hFO0lBRUQsaUJBQWlCO0lBQ2pCLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RCxJQUFJLFVBQVUsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFFO1FBQ2hFLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUNwRCxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN0RCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsVUFBVSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBRWpELGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM1QjtLQUNGO1NBQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO1FBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkNBQTJDLENBQUMsQ0FBQztLQUMzRDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIFBsYXRmb3JtUmVmLFxuICBUeXBlLFxuICBpc0Rldk1vZGUsXG4gIMm1cmVzZXRDb21waWxlZENvbXBvbmVudHMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5cbi8vIEZvciB0aGUgdGltZSBiZWluZyB3ZSBjYW5ub3QgdXNlIHRoZSBET00gbGliIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGggQHR5cGVzL25vZGUsXG4vLyBJbiBmdXR1cmUgd2hlbiB3ZSByZW1vdmUgYHlhcm4gYWRtaW4gYnVpbGRgIHdlIHNob3VsZCBoYXZlIHRoaXMgYXMgYSBzZXBlcmF0ZSBjb21waWxhdGlvbiB1bml0XG4vLyB3aGljaCBpbmNsdWRlcyBET00gbGliLlxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5kZWNsYXJlIGNvbnN0IG5nOiBhbnk7XG5kZWNsYXJlIGNvbnN0IGRvY3VtZW50OiBhbnk7XG5kZWNsYXJlIGNvbnN0IE11dGF0aW9uT2JzZXJ2ZXI6IGFueTtcbmRlY2xhcmUgY29uc3QgS2V5Ym9hcmRFdmVudDogYW55O1xuZGVjbGFyZSBjb25zdCBFdmVudDogYW55O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAobW9kOiBhbnkpOiB2b2lkIHtcbiAgaWYgKCFtb2RbJ2hvdCddKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFpc0Rldk1vZGUoKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgW05HIEhNUl0gQ2Fubm90IHVzZSBITVIgd2hlbiBBbmd1bGFyIGlzIHJ1bm5pbmcgaW4gcHJvZHVjdGlvbiBtb2RlLiBUbyBwcmV2ZW50IHByb2R1Y3Rpb24gbW9kZSwgZG8gbm90IGNhbGwgJ2VuYWJsZVByb2RNb2RlKCknLmAsXG4gICAgKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIG1vZFsnaG90J10uYWNjZXB0KCk7XG4gIG1vZFsnaG90J10uZGlzcG9zZSgoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBuZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFtORyBITVJdIENhbm5vdCBmaW5kIGdsb2JhbCAnbmcnLiBMaWtlbHkgdGhpcyBpcyBjYXVzZWQgYmVjYXVzZSBzY3JpcHRzIG9wdGltaXphdGlvbiBpcyBlbmFibGVkLmAsXG4gICAgICApO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFuZy5nZXRJbmplY3Rvcikge1xuICAgICAgLy8gVmlldyBFbmdpbmVcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZXNldCBKSVQgY29tcGlsZWQgY29tcG9uZW50cyBjYWNoZVxuICAgIMm1cmVzZXRDb21waWxlZENvbXBvbmVudHMoKTtcbiAgICBjb25zdCBhcHBSb290ID0gZ2V0QXBwUm9vdCgpO1xuICAgIGlmICghYXBwUm9vdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFwcFJlZiA9IGdldEFwcGxpY2F0aW9uUmVmKGFwcFJvb3QpO1xuICAgIGlmICghYXBwUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSW5wdXRzIHRoYXQgYXJlIGhpZGRlbiBzaG91bGQgYmUgaWdub3JlZFxuICAgIGNvbnN0IG9sZElucHV0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0Om5vdChbdHlwZT1cImhpZGRlblwiXSksIHRleHRhcmVhJyk7XG4gICAgY29uc3Qgb2xkT3B0aW9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ29wdGlvbicpO1xuXG4gICAgLy8gQ3JlYXRlIG5ldyBhcHBsaWNhdGlvblxuICAgIGFwcFJlZi5jb21wb25lbnRzLmZvckVhY2goKGNwKSA9PiB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gY3AubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBlbGVtZW50LnBhcmVudE5vZGU7XG4gICAgICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQudGFnTmFtZSksIGVsZW1lbnQpO1xuXG4gICAgICBwYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgIH0pO1xuXG4gICAgLy8gRGVzdHJveSBvbGQgYXBwbGljYXRpb24sIGluamVjdG9ycywgPHN0eWxlLi4uLCBldGMuLlxuICAgIGNvbnN0IHBsYXRmb3JtUmVmID0gZ2V0UGxhdGZvcm1SZWYoYXBwUm9vdCk7XG4gICAgaWYgKHBsYXRmb3JtUmVmKSB7XG4gICAgICBwbGF0Zm9ybVJlZi5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLy8gUmVzdG9yZSBhbGwgaW5wdXRzIGFuZCBvcHRpb25zXG4gICAgY29uc3QgYm9keUVsZW1lbnQgPSBkb2N1bWVudC5ib2R5O1xuICAgIGlmIChvbGRJbnB1dHMubGVuZ3RoICsgb2xkT3B0aW9ucy5sZW5ndGggPT09IDAgfHwgIWJvZHlFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVXNlIGEgYE11dGF0aW9uT2JzZXJ2ZXJgIHRvIHdhaXQgdW50aWwgdGhlIGFwcC1yb290IGVsZW1lbnQgaGFzIGJlZW4gYm9vdHN0cmFwcGVkLlxuICAgIC8vIGllOiB3aGVuIHRoZSBuZy12ZXJzaW9uIGF0dHJpYnV0ZSBpcyBhZGRlZC5cbiAgICBuZXcgTXV0YXRpb25PYnNlcnZlcigoX211dGF0aW9uc0xpc3Q6IGFueSwgb2JzZXJ2ZXI6IGFueSkgPT4ge1xuICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgICBjb25zdCBuZXdBcHBSb290ID0gZ2V0QXBwUm9vdCgpO1xuICAgICAgaWYgKCFuZXdBcHBSb290KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3QXBwUmVmID0gZ2V0QXBwbGljYXRpb25SZWYobmV3QXBwUm9vdCk7XG4gICAgICBpZiAoIW5ld0FwcFJlZikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIFdhaXQgdW50aWwgdGhlIGFwcGxpY2F0aW9uIGlzU3RhYmxlIHRvIHJlc3RvcmUgdGhlIGZvcm0gdmFsdWVzXG4gICAgICBuZXdBcHBSZWYuaXNTdGFibGVcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChpc1N0YWJsZSkgPT4gISFpc1N0YWJsZSksXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHJlc3RvcmVGb3JtVmFsdWVzKG9sZElucHV0cywgb2xkT3B0aW9ucykpO1xuICAgIH0pLm9ic2VydmUoYm9keUVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ25nLXZlcnNpb24nXSxcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldEFwcFJvb3QoKTogYW55IHtcbiAgY29uc3QgYXBwUm9vdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tuZy12ZXJzaW9uXScpO1xuICBpZiAoIWFwcFJvb3QpIHtcbiAgICBjb25zb2xlLndhcm4oJ1tORyBITVJdIENhbm5vdCBmaW5kIHRoZSBhcHBsaWNhdGlvbiByb290IGNvbXBvbmVudC4nKTtcblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gYXBwUm9vdDtcbn1cblxuZnVuY3Rpb24gZ2V0VG9rZW48VD4oYXBwUm9vdDogYW55LCB0b2tlbjogVHlwZTxUPik6IFQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gKHR5cGVvZiBuZyA9PT0gJ29iamVjdCcgJiYgbmcuZ2V0SW5qZWN0b3IoYXBwUm9vdCkuZ2V0KHRva2VuKSkgfHwgdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBnZXRBcHBsaWNhdGlvblJlZihhcHBSb290OiBhbnkpOiBBcHBsaWNhdGlvblJlZiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGFwcFJlZiA9IGdldFRva2VuKGFwcFJvb3QsIEFwcGxpY2F0aW9uUmVmKTtcbiAgaWYgKCFhcHBSZWYpIHtcbiAgICBjb25zb2xlLndhcm4oYFtORyBITVJdIENhbm5vdCBnZXQgJ0FwcGxpY2F0aW9uUmVmJy5gKTtcblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gYXBwUmVmO1xufVxuXG5mdW5jdGlvbiBnZXRQbGF0Zm9ybVJlZihhcHBSb290OiBhbnkpOiBQbGF0Zm9ybVJlZiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHBsYXRmb3JtUmVmID0gZ2V0VG9rZW4oYXBwUm9vdCwgUGxhdGZvcm1SZWYpO1xuICBpZiAoIXBsYXRmb3JtUmVmKSB7XG4gICAgY29uc29sZS53YXJuKGBbTkcgSE1SXSBDYW5ub3QgZ2V0ICdQbGF0Zm9ybVJlZicuYCk7XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHBsYXRmb3JtUmVmO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaEV2ZW50cyhlbGVtZW50OiBhbnkpOiB2b2lkIHtcbiAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KFxuICAgIG5ldyBFdmVudCgnaW5wdXQnLCB7XG4gICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICB9KSxcbiAgKTtcblxuICBlbGVtZW50LmJsdXIoKTtcblxuICBlbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleXVwJywgeyBrZXk6ICdFbnRlcicgfSkpO1xufVxuXG5mdW5jdGlvbiByZXN0b3JlRm9ybVZhbHVlcyhvbGRJbnB1dHM6IGFueVtdLCBvbGRPcHRpb25zOiBhbnlbXSk6IHZvaWQge1xuICAvLyBSZXN0b3JlIGlucHV0IHRoYXQgYXJlIG5vdCBoaWRkZW5cbiAgY29uc3QgbmV3SW5wdXRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQ6bm90KFt0eXBlPVwiaGlkZGVuXCJdKSwgdGV4dGFyZWEnKTtcbiAgaWYgKG5ld0lucHV0cy5sZW5ndGggJiYgbmV3SW5wdXRzLmxlbmd0aCA9PT0gb2xkSW5wdXRzLmxlbmd0aCkge1xuICAgIGNvbnNvbGUubG9nKCdbTkcgSE1SXSBSZXN0b3JpbmcgaW5wdXQvdGV4dGFyZWEgdmFsdWVzLicpO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBuZXdJbnB1dHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBuZXdFbGVtZW50ID0gbmV3SW5wdXRzW2luZGV4XTtcbiAgICAgIGNvbnN0IG9sZEVsZW1lbnQgPSBvbGRJbnB1dHNbaW5kZXhdO1xuXG4gICAgICBzd2l0Y2ggKG9sZEVsZW1lbnQudHlwZSkge1xuICAgICAgICBjYXNlICdidXR0b24nOlxuICAgICAgICBjYXNlICdpbWFnZSc6XG4gICAgICAgIGNhc2UgJ3N1Ym1pdCc6XG4gICAgICAgIGNhc2UgJ3Jlc2V0JzpcbiAgICAgICAgICAvLyBUaGVzZSB0eXBlcyBkb24ndCBuZWVkIGFueSB2YWx1ZSBjaGFuZ2UuXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgICAgY2FzZSAnY2hlY2tib3gnOlxuICAgICAgICAgIG5ld0VsZW1lbnQuY2hlY2tlZCA9IG9sZEVsZW1lbnQuY2hlY2tlZDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnY29sb3InOlxuICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgY2FzZSAnZGF0ZXRpbWUtbG9jYWwnOlxuICAgICAgICBjYXNlICdlbWFpbCc6XG4gICAgICAgIGNhc2UgJ2hpZGRlbic6XG4gICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgY2FzZSAncGFzc3dvcmQnOlxuICAgICAgICBjYXNlICdyYW5nZSc6XG4gICAgICAgIGNhc2UgJ3NlYXJjaCc6XG4gICAgICAgIGNhc2UgJ3RlbCc6XG4gICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICAgIGNhc2UgJ3RpbWUnOlxuICAgICAgICBjYXNlICd1cmwnOlxuICAgICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgICBuZXdFbGVtZW50LnZhbHVlID0gb2xkRWxlbWVudC52YWx1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZmlsZSc6XG4gICAgICAgICAgLy8gSWdub3JlZCBkdWU6IFVuY2F1Z2h0IERPTUV4Y2VwdGlvbjogRmFpbGVkIHRvIHNldCB0aGUgJ3ZhbHVlJyBwcm9wZXJ0eSBvbiAnSFRNTElucHV0RWxlbWVudCc6XG4gICAgICAgICAgLy8gVGhpcyBpbnB1dCBlbGVtZW50IGFjY2VwdHMgYSBmaWxlbmFtZSwgd2hpY2ggbWF5IG9ubHkgYmUgcHJvZ3JhbW1hdGljYWxseSBzZXQgdG8gdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ1tORyBITVJdIFVua25vd24gaW5wdXQgdHlwZSAnICsgb2xkRWxlbWVudC50eXBlICsgJy4nKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgZGlzcGF0Y2hFdmVudHMobmV3RWxlbWVudCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKG9sZElucHV0cy5sZW5ndGgpIHtcbiAgICBjb25zb2xlLndhcm4oJ1tORyBITVJdIENhbm5vdCByZXN0b3JlIGlucHV0L3RleHRhcmVhIHZhbHVlcy4nKTtcbiAgfVxuXG4gIC8vIFJlc3RvcmUgb3B0aW9uXG4gIGNvbnN0IG5ld09wdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdvcHRpb24nKTtcbiAgaWYgKG5ld09wdGlvbnMubGVuZ3RoICYmIG5ld09wdGlvbnMubGVuZ3RoID09PSBvbGRPcHRpb25zLmxlbmd0aCkge1xuICAgIGNvbnNvbGUubG9nKCdbTkcgSE1SXSBSZXN0b3Jpbmcgc2VsZWN0ZWQgb3B0aW9ucy4nKTtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbmV3T3B0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBuZXdPcHRpb25zW2luZGV4XTtcbiAgICAgIG5ld0VsZW1lbnQuc2VsZWN0ZWQgPSBvbGRPcHRpb25zW2luZGV4XS5zZWxlY3RlZDtcblxuICAgICAgZGlzcGF0Y2hFdmVudHMobmV3RWxlbWVudCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKG9sZE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgY29uc29sZS53YXJuKCdbTkcgSE1SXSBDYW5ub3QgcmVzdG9yZSBzZWxlY3RlZCBvcHRpb25zLicpO1xuICB9XG59XG4iXX0=
@@ -71,16 +71,15 @@ class IndexHtmlWebpackPlugin extends index_html_generator_1.IndexHtmlGenerator {
71
71
  async readIndex(path) {
72
72
  return new Promise((resolve, reject) => {
73
73
  this.compilation.inputFileSystem.readFile(path, (err, data) => {
74
- var _a;
75
74
  if (err) {
76
75
  reject(err);
77
76
  return;
78
77
  }
79
78
  this.compilation.fileDependencies.add(path);
80
- resolve((_a = data === null || data === void 0 ? void 0 : data.toString()) !== null && _a !== void 0 ? _a : '');
79
+ resolve(data?.toString() ?? '');
81
80
  });
82
81
  });
83
82
  }
84
83
  }
85
84
  exports.IndexHtmlWebpackPlugin = IndexHtmlWebpackPlugin;
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtaHRtbC13ZWJwYWNrLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL3dlYnBhY2svcGx1Z2lucy9pbmRleC1odG1sLXdlYnBhY2stcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILCtCQUFrRDtBQUNsRCxxQ0FBeUQ7QUFDekQsNkNBQWtEO0FBRWxELHNGQUlxRDtBQUNyRCx5RUFBdUU7QUFNdkUsTUFBTSxXQUFXLEdBQUcsMkJBQTJCLENBQUM7QUFDaEQsTUFBYSxzQkFBdUIsU0FBUSx5Q0FBa0I7SUFFNUQsSUFBSSxXQUFXO1FBQ2IsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztTQUMxQjtRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsWUFBOEIsT0FBc0M7UUFDbEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRGEsWUFBTyxHQUFQLE9BQU8sQ0FBK0I7SUFFcEUsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFrQjtRQUN0QixRQUFRLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7WUFDaEMsV0FBVyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUN4QztnQkFDRSxJQUFJLEVBQUUsV0FBVztnQkFDakIsS0FBSyxFQUFFLHFCQUFXLENBQUMsNkJBQTZCLEdBQUcsQ0FBQzthQUNyRCxFQUNELFFBQVEsQ0FDVCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxLQUFL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bnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IGJhc2VuYW1lLCBkaXJuYW1lLCBleHRuYW1lIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDb21waWxhdGlvbiwgQ29tcGlsZXIsIHNvdXJjZXMgfSBmcm9tICd3ZWJwYWNrJztcbmltcG9ydCB7IGFzc2VydElzRXJyb3IgfSBmcm9tICcuLi8uLi91dGlscy9lcnJvcic7XG5pbXBvcnQgeyBGaWxlSW5mbyB9IGZyb20gJy4uLy4uL3V0aWxzL2luZGV4LWZpbGUvYXVnbWVudC1pbmRleC1odG1sJztcbmltcG9ydCB7XG4gIEluZGV4SHRtbEdlbmVyYXRvcixcbiAgSW5kZXhIdG1sR2VuZXJhdG9yT3B0aW9ucyxcbiAgSW5kZXhIdG1sR2VuZXJhdG9yUHJvY2Vzc09wdGlvbnMsXG59IGZyb20gJy4uLy4uL3V0aWxzL2luZGV4LWZpbGUvaW5kZXgtaHRtbC1nZW5lcmF0b3InO1xuaW1wb3J0IHsgYWRkRXJyb3IsIGFkZFdhcm5pbmcgfSBmcm9tICcuLi8uLi91dGlscy93ZWJwYWNrLWRpYWdub3N0aWNzJztcblxuZXhwb3J0IGludGVyZmFjZSBJbmRleEh0bWxXZWJwYWNrUGx1Z2luT3B0aW9uc1xuICBleHRlbmRzIEluZGV4SHRtbEdlbmVyYXRvck9wdGlvbnMsXG4gICAgT21pdDxJbmRleEh0bWxHZW5lcmF0b3JQcm9jZXNzT3B0aW9ucywgJ2ZpbGVzJz4ge31cblxuY29uc3QgUExVR0lOX05BTUUgPSAnaW5kZXgtaHRtbC13ZWJwYWNrLXBsdWdpbic7XG5leHBvcnQgY2xhc3MgSW5kZXhIdG1sV2VicGFja1BsdWdpbiBleHRlbmRzIEluZGV4SHRtbEdlbmVyYXRvciB7XG4gIHByaXZhdGUgX2NvbXBpbGF0aW9uOiBDb21waWxhdGlvbiB8IHVuZGVmaW5lZDtcbiAgZ2V0IGNvbXBpbGF0aW9uKCk6IENvbXBpbGF0aW9uIHtcbiAgICBpZiAodGhpcy5fY29tcGlsYXRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLl9jb21waWxhdGlvbjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvbXBpbGF0aW9uIGlzIHVuZGVmaW5lZC4nKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IEluZGV4SHRtbFdlYnBhY2tQbHVnaW5PcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG4gIH1cblxuICBhcHBseShjb21waWxlcjogQ29tcGlsZXIpIHtcbiAgICBjb21waWxlci5ob29rcy50aGlzQ29tcGlsYXRpb24udGFwKFBMVUdJTl9OQU1FLCAoY29tcGlsYXRpb24pID0+IHtcbiAgICAgIHRoaXMuX2NvbXBpbGF0aW9uID0gY29tcGlsYXRpb247XG4gICAgICBjb21waWxhdGlvbi5ob29rcy5wcm9jZXNzQXNzZXRzLnRhcFByb21pc2UoXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBQTFVHSU5fTkFNRSxcbiAgICAgICAgICBzdGFnZTogQ29tcGlsYXRpb24uUFJPQ0VTU19BU1NFVFNfU1RBR0VfT1BUSU1JWkUgKyAxLFxuICAgICAgICB9LFxuICAgICAgICBjYWxsYmFjayxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBjYWxsYmFjayA9IGFzeW5jIChhc3NldHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICBjb25zdCBmaWxlczogRmlsZUluZm9bXSA9IFtdO1xuXG4gICAgICB0cnkge1xuICAgICAgICBmb3IgKGNvbnN0IGNodW5rIG9mIHRoaXMuY29tcGlsYXRpb24uY2h1bmtzKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGNodW5rLmZpbGVzKSB7XG4gICAgICAgICAgICBpZiAoZmlsZS5lbmRzV2l0aCgnLmhvdC11cGRhdGUuanMnKSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZmlsZXMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IGNodW5rLm5hbWUsXG4gICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgIGV4dGVuc2lvbjogZXh0bmFtZShmaWxlKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgY29udGVudCwgd2FybmluZ3MsIGVycm9ycyB9ID0gYXdhaXQgdGhpcy5wcm9jZXNzKHtcbiAgICAgICAgICBmaWxlcyxcbiAgICAgICAgICBvdXRwdXRQYXRoOiBkaXJuYW1lKHRoaXMub3B0aW9ucy5vdXRwdXRQYXRoKSxcbiAgICAgICAgICBiYXNlSHJlZjogdGhpcy5vcHRpb25zLmJhc2VIcmVmLFxuICAgICAgICAgIGxhbmc6IHRoaXMub3B0aW9ucy5sYW5nLFxuICAgICAgICB9KTtcblxuICAgICAgICBhc3NldHNbdGhpcy5vcHRpb25zLm91dHB1dFBhdGhdID0gbmV3IHNvdXJjZXMuUmF3U291cmNlKGNvbnRlbnQpO1xuXG4gICAgICAgIHdhcm5pbmdzLmZvckVhY2goKG1zZykgPT4gYWRkV2FybmluZyh0aGlzLmNvbXBpbGF0aW9uLCBtc2cpKTtcbiAgICAgICAgZXJyb3JzLmZvckVhY2goKG1zZykgPT4gYWRkRXJyb3IodGhpcy5jb21waWxhdGlvbiwgbXNnKSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBhc3NlcnRJc0Vycm9yKGVycm9yKTtcbiAgICAgICAgYWRkRXJyb3IodGhpcy5jb21waWxhdGlvbiwgZXJyb3IubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJlYWRBc3NldChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmNvbXBpbGF0aW9uLmFzc2V0c1tiYXNlbmFtZShwYXRoKV0uc291cmNlKCk7XG5cbiAgICByZXR1cm4gdHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnID8gZGF0YSA6IGRhdGEudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyByZWFkSW5kZXgocGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmNvbXBpbGF0aW9uLmlucHV0RmlsZVN5c3RlbS5yZWFkRmlsZShcbiAgICAgICAgcGF0aCxcbiAgICAgICAgKGVycj86IEVycm9yIHwgbnVsbCwgZGF0YT86IHN0cmluZyB8IEJ1ZmZlcikgPT4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5jb21waWxhdGlvbi5maWxlRGVwZW5kZW5jaWVzLmFkZChwYXRoKTtcbiAgICAgICAgICByZXNvbHZlKGRhdGE/LnRvU3RyaW5nKCkgPz8gJycpO1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtaHRtbC13ZWJwYWNrLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL3dlYnBhY2svcGx1Z2lucy9pbmRleC1odG1sLXdlYnBhY2stcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILCtCQUFrRDtBQUNsRCxxQ0FBeUQ7QUFDekQsNkNBQWtEO0FBRWxELHNGQUlxRDtBQUNyRCx5RUFBdUU7QUFNdkUsTUFBTSxXQUFXLEdBQUcsMkJBQTJCLENBQUM7QUFDaEQsTUFBYSxzQkFBdUIsU0FBUSx5Q0FBa0I7SUFFNUQsSUFBSSxXQUFXO1FBQ2IsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztTQUMxQjtRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsWUFBOEIsT0FBc0M7UUFDbEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRGEsWUFBTyxHQUFQLE9BQU8sQ0FBK0I7SUFFcEUsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFrQjtRQUN0QixRQUFRLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7WUFDaEMsV0FBVyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUN4QztnQkFDRSxJQUFJLEVBQUUsV0FBVztnQkFDakIsS0FBSyxFQUFFLHFCQUFXLENBQUMsNkJBQTZCLEdBQUcsQ0FBQzthQUNyRCxFQUNELFFBQVEsQ0FDVCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxLQUFL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KiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgYmFzZW5hbWUsIGRpcm5hbWUsIGV4dG5hbWUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvbXBpbGF0aW9uLCBDb21waWxlciwgc291cmNlcyB9IGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IHsgYXNzZXJ0SXNFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL2Vycm9yJztcbmltcG9ydCB7IEZpbGVJbmZvIH0gZnJvbSAnLi4vLi4vdXRpbHMvaW5kZXgtZmlsZS9hdWdtZW50LWluZGV4LWh0bWwnO1xuaW1wb3J0IHtcbiAgSW5kZXhIdG1sR2VuZXJhdG9yLFxuICBJbmRleEh0bWxHZW5lcmF0b3JPcHRpb25zLFxuICBJbmRleEh0bWxHZW5lcmF0b3JQcm9jZXNzT3B0aW9ucyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMvaW5kZXgtZmlsZS9pbmRleC1odG1sLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBhZGRFcnJvciwgYWRkV2FybmluZyB9IGZyb20gJy4uLy4uL3V0aWxzL3dlYnBhY2stZGlhZ25vc3RpY3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4SHRtbFdlYnBhY2tQbHVnaW5PcHRpb25zXG4gIGV4dGVuZHMgSW5kZXhIdG1sR2VuZXJhdG9yT3B0aW9ucyxcbiAgICBPbWl0PEluZGV4SHRtbEdlbmVyYXRvclByb2Nlc3NPcHRpb25zLCAnZmlsZXMnPiB7fVxuXG5jb25zdCBQTFVHSU5fTkFNRSA9ICdpbmRleC1odG1sLXdlYnBhY2stcGx1Z2luJztcbmV4cG9ydCBjbGFzcyBJbmRleEh0bWxXZWJwYWNrUGx1Z2luIGV4dGVuZHMgSW5kZXhIdG1sR2VuZXJhdG9yIHtcbiAgcHJpdmF0ZSBfY29tcGlsYXRpb246IENvbXBpbGF0aW9uIHwgdW5kZWZpbmVkO1xuICBnZXQgY29tcGlsYXRpb24oKTogQ29tcGlsYXRpb24ge1xuICAgIGlmICh0aGlzLl9jb21waWxhdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuX2NvbXBpbGF0aW9uO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignY29tcGlsYXRpb24gaXMgdW5kZWZpbmVkLicpO1xuICB9XG5cbiAgY29uc3RydWN0b3Iob3ZlcnJpZGUgcmVhZG9ubHkgb3B0aW9uczogSW5kZXhIdG1sV2VicGFja1BsdWdpbk9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcbiAgfVxuXG4gIGFwcGx5KGNvbXBpbGVyOiBDb21waWxlcikge1xuICAgIGNvbXBpbGVyLmhvb2tzLnRoaXNDb21waWxhdGlvbi50YXAoUExVR0lOX05BTUUsIChjb21waWxhdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY29tcGlsYXRpb24gPSBjb21waWxhdGlvbjtcbiAgICAgIGNvbXBpbGF0aW9uLmhvb2tzLnByb2Nlc3NBc3NldHMudGFwUHJvbWlzZShcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFBMVUdJTl9OQU1FLFxuICAgICAgICAgIHN0YWdlOiBDb21waWxhdGlvbi5QUk9DRVNTX0FTU0VUU19TVEFHRV9PUFRJTUlaRSArIDEsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGxiYWNrLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGNhbGxiYWNrID0gYXN5bmMgKGFzc2V0czogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIGNvbnN0IGZpbGVzOiBGaWxlSW5mb1tdID0gW107XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAoY29uc3QgY2h1bmsgb2YgdGhpcy5jb21waWxhdGlvbi5jaHVua3MpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgY2h1bmsuZmlsZXMpIHtcbiAgICAgICAgICAgIGlmIChmaWxlLmVuZHNXaXRoKCcuaG90LXVwZGF0ZS5qcycpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWxlcy5wdXNoKHtcbiAgICAgICAgICAgICAgbmFtZTogY2h1bmsubmFtZSxcbiAgICAgICAgICAgICAgZmlsZSxcbiAgICAgICAgICAgICAgZXh0ZW5zaW9uOiBleHRuYW1lKGZpbGUpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBjb250ZW50LCB3YXJuaW5ncywgZXJyb3JzIH0gPSBhd2FpdCB0aGlzLnByb2Nlc3Moe1xuICAgICAgICAgIGZpbGVzLFxuICAgICAgICAgIG91dHB1dFBhdGg6IGRpcm5hbWUodGhpcy5vcHRpb25zLm91dHB1dFBhdGgpLFxuICAgICAgICAgIGJhc2VIcmVmOiB0aGlzLm9wdGlvbnMuYmFzZUhyZWYsXG4gICAgICAgICAgbGFuZzogdGhpcy5vcHRpb25zLmxhbmcsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFzc2V0c1t0aGlzLm9wdGlvbnMub3V0cHV0UGF0aF0gPSBuZXcgc291cmNlcy5SYXdTb3VyY2UoY29udGVudCk7XG5cbiAgICAgICAgd2FybmluZ3MuZm9yRWFjaCgobXNnKSA9PiBhZGRXYXJuaW5nKHRoaXMuY29tcGlsYXRpb24sIG1zZykpO1xuICAgICAgICBlcnJvcnMuZm9yRWFjaCgobXNnKSA9PiBhZGRFcnJvcih0aGlzLmNvbXBpbGF0aW9uLCBtc2cpKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGFzc2VydElzRXJyb3IoZXJyb3IpO1xuICAgICAgICBhZGRFcnJvcih0aGlzLmNvbXBpbGF0aW9uLCBlcnJvci5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcmVhZEFzc2V0KHBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuY29tcGlsYXRpb24uYXNzZXRzW2Jhc2VuYW1lKHBhdGgpXS5zb3VyY2UoKTtcblxuICAgIHJldHVybiB0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycgPyBkYXRhIDogZGF0YS50b1N0cmluZygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIHJlYWRJbmRleChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY29tcGlsYXRpb24uaW5wdXRGaWxlU3lzdGVtLnJlYWRGaWxlKFxuICAgICAgICBwYXRoLFxuICAgICAgICAoZXJyPzogRXJyb3IgfCBudWxsLCBkYXRhPzogc3RyaW5nIHwgQnVmZmVyKSA9PiB7XG4gICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgcmVqZWN0KGVycik7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmNvbXBpbGF0aW9uLmZpbGVEZXBlbmRlbmNpZXMuYWRkKHBhdGgpO1xuICAgICAgICAgIHJlc29sdmUoZGF0YT8udG9TdHJpbmcoKSA/PyAnJyk7XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -131,7 +131,7 @@ class JavaScriptOptimizerPlugin {
131
131
  options: optimizeOptions,
132
132
  })
133
133
  .then(async ({ code, name, map, errors }) => {
134
- if (errors === null || errors === void 0 ? void 0 : errors.length) {
134
+ if (errors?.length) {
135
135
  for (const error of errors) {
136
136
  (0, webpack_diagnostics_1.addError)(compilation, `Optimization error [${name}]: ${error}`);
137
137
  }
@@ -145,7 +145,7 @@ class JavaScriptOptimizerPlugin {
145
145
  minimized: true,
146
146
  }));
147
147
  logger.timeEnd(`optimize asset: ${name}`);
148
- return cacheItem === null || cacheItem === void 0 ? void 0 : cacheItem.storePromise({
148
+ return cacheItem?.storePromise({
149
149
  source: optimizedAsset,
150
150
  });
151
151
  }, (error) => {
@@ -163,4 +163,4 @@ class JavaScriptOptimizerPlugin {
163
163
  }
164
164
  }
165
165
  exports.JavaScriptOptimizerPlugin = JavaScriptOptimizerPlugin;
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC1vcHRpbWl6ZXItcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvd2VicGFjay9wbHVnaW5zL2phdmFzY3JpcHQtb3B0aW1pemVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7QUFFSCxzREFBOEI7QUFFOUIseUVBQTZEO0FBQzdELGlFQUFrRjtBQUNsRix5RUFBMkQ7QUFDM0QseURBQXFEO0FBR3JEOztHQUVHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxnQ0FBVSxDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxXQUFXLEdBQUcsOEJBQThCLENBQUM7QUFvRG5EOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLHlCQUF5QjtJQUdwQyxZQUFvQixPQUFtQztRQUFuQyxZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUNyRCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUEscURBQW1DLEVBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDL0U7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWtCO1FBQ3RCLE1BQU0sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFFckUsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzFELE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMseUNBQXlDLENBQUMsQ0FBQztZQUVoRixXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQ3hDO2dCQUNFLElBQUksRUFBRSxXQUFXO2dCQUNqQixLQUFL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QztxQkFDSDtvQkFFRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzFCO3dCQUFTO29CQUNSLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUMzQjtnQkFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXJLRCw4REFxS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IFBpc2NpbmEgZnJvbSAncGlzY2luYSc7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVyLCBzb3VyY2VzIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgeyBtYXhXb3JrZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZW52aXJvbm1lbnQtb3B0aW9ucyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1TdXBwb3J0ZWRCcm93c2Vyc1RvVGFyZ2V0cyB9IGZyb20gJy4uLy4uL3V0aWxzL2VzYnVpbGQtdGFyZ2V0cyc7XG5pbXBvcnQgeyBhZGRFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL3dlYnBhY2stZGlhZ25vc3RpY3MnO1xuaW1wb3J0IHsgRXNidWlsZEV4ZWN1dG9yIH0gZnJvbSAnLi9lc2J1aWxkLWV4ZWN1dG9yJztcbmltcG9ydCB0eXBlIHsgT3B0aW1pemVSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJy4vamF2YXNjcmlwdC1vcHRpbWl6ZXItd29ya2VyJztcblxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgV29ya2VycyB0aGF0IHdpbGwgYmUgY3JlYXRlZCB0byBleGVjdXRlIG9wdGltaXplIHRhc2tzLlxuICovXG5jb25zdCBNQVhfT1BUSU1JWkVfV09SS0VSUyA9IG1heFdvcmtlcnM7XG5cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIHBsdWdpbiBwcm92aWRlZCB0byBXZWJwYWNrIHdoZW4gdGFwcGluZyBXZWJwYWNrIGNvbXBpbGVyIGhvb2tzLlxuICovXG5jb25zdCBQTFVHSU5fTkFNRSA9ICdhbmd1bGFyLWphdmFzY3JpcHQtb3B0aW1pemVyJztcblxuLyoqXG4gKiBUaGUgb3B0aW9ucyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUge0BsaW5rIEphdmFTY3JpcHRPcHRpbWl6ZXJQbHVnaW59LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEphdmFTY3JpcHRPcHRpbWl6ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZXMgYWR2YW5jZWQgb3B0aW1pemF0aW9ucyBpbiB0aGUgdW5kZXJseWluZyBKYXZhU2NyaXB0IG9wdGltaXplcnMuXG4gICAqIFRoaXMgY3VycmVudGx5IGluY3JlYXNlcyB0aGUgYHRlcnNlcmAgcGFzc2VzIHRvIDIgYW5kIGVuYWJsZXMgdGhlIGBwdXJlX2dldHRlcnNgXG4gICAqIG9wdGlvbiBmb3IgYHRlcnNlcmAuXG4gICAqL1xuICBhZHZhbmNlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFuIG9iamVjdCByZWNvcmQgb2Ygc3RyaW5nIGtleXMgdGhhdCB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSB2YWx1ZXMgd2hlbiBmb3VuZFxuICAgKiB3aXRoaW4gdGhlIGNvZGUgZHVyaW5nIG9wdGltaXphdGlvbi5cbiAgICovXG4gIGRlZmluZTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj47XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIGdlbmVyYXRpb24gb2YgYSBzb3VyY2VtYXAgZHVyaW5nIG9wdGltaXphdGlvbi5cbiAgICogVGhlIG91dHB1dCBzb3VyY2VtYXAgd2lsbCBiZSBhIGZ1bGwgc291cmNlbWFwIGNvbnRhaW5pbmcgdGhlIG1lcmdlIG9mIHRoZSBpbnB1dCBzb3VyY2VtYXAgYW5kXG4gICAqIGFsbCBpbnRlcm1lZGlhdGUgc291cmNlbWFwcy5cbiAgICovXG4gIHNvdXJjZW1hcD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBzdXBwb3J0ZWQgYnJvd3NlcnMgdGhhdCBpcyB1c2VkIGZvciBvdXRwdXQgY29kZS5cbiAgICovXG4gIHN1cHBvcnRlZEJyb3dzZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHJldGVudGlvbiBvZiBpZGVudGlmaWVyIG5hbWVzIGFuZCBlbnN1cmVzIHRoYXQgZnVuY3Rpb24gYW5kIGNsYXNzIG5hbWVzIGFyZVxuICAgKiBwcmVzZW50IGluIHRoZSBvdXRwdXQgY29kZS5cbiAgICpcbiAgICogKipOb3RlKio6IGluIHNvbWUgY2FzZXMgc3ltYm9scyBhcmUgc3RpbGwgcmVuYW1lZCB0byBhdm9pZCBjb2xsaXNpb25zLlxuICAgKi9cbiAga2VlcElkZW50aWZpZXJOYW1lczogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgcmV0ZW50aW9uIG9mIG9yaWdpbmFsIG5hbWUgb2YgY2xhc3NlcyBhbmQgZnVuY3Rpb25zLlxuICAgKlxuICAgKiAqKk5vdGUqKjogdGhpcyBjYXVzZXMgaW5jcmVhc2Ugb2YgYnVuZGxlIHNpemUgYXMgaXQgY2F1c2VzIGRlYWQtY29kZSBlbGltaW5hdGlvbiB0byBub3Qgd29yayBmdWxseS5cbiAgICovXG4gIGtlZXBOYW1lczogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgcmVtb3ZhbCBvZiBhbGwgbGljZW5zZSBjb21tZW50cyBmcm9tIHRoZSBvdXRwdXQgY29kZS5cbiAgICovXG4gIHJlbW92ZUxpY2Vuc2VzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIFdlYnBhY2sgcGx1Z2luIHRoYXQgcHJvdmlkZXMgSmF2YVNjcmlwdCBvcHRpbWl6YXRpb24gY2FwYWJpbGl0aWVzLlxuICpcbiAqIFRoZSBwbHVnaW4gdXNlcyBib3RoIGBlc2J1aWxkYCBhbmQgYHRlcnNlcmAgdG8gcHJvdmlkZSBib3RoIGZhc3QgYW5kIGhpZ2hseS1vcHRpbWl6ZWRcbiAqIGNvZGUgb3V0cHV0LiBgZXNidWlsZGAgaXMgdXNlZCBhcyBhbiBpbml0aWFsIHBhc3MgdG8gcmVtb3ZlIHRoZSBtYWpvcml0eSBvZiB1bnVzZWQgY29kZVxuICogYXMgd2VsbCBhcyBzaG9ydGVuIGlkZW50aWZpZXJzLiBgdGVyc2VyYCBpcyB0aGVuIHVzZWQgYXMgYSBzZWNvbmRhcnkgcGFzcyB0byBhcHBseVxuICogb3B0aW1pemF0aW9ucyBub3QgeWV0IGltcGxlbWVudGVkIGJ5IGBlc2J1aWxkYC5cbiAqL1xuZXhwb3J0IGNsYXNzIEphdmFTY3JpcHRPcHRpbWl6ZXJQbHVnaW4ge1xuICBwcml2YXRlIHRhcmdldHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9uczogSmF2YVNjcmlwdE9wdGltaXplck9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5zdXBwb3J0ZWRCcm93c2Vycykge1xuICAgICAgdGhpcy50YXJnZXRzID0gdHJhbnNmb3JtU3VwcG9ydGVkQnJvd3NlcnNUb1RhcmdldHMob3B0aW9ucy5zdXBwb3J0ZWRCcm93c2Vycyk7XG4gICAgfVxuICB9XG5cbiAgYXBwbHkoY29tcGlsZXI6IENvbXBpbGVyKSB7XG4gICAgY29uc3QgeyBPcmlnaW5hbFNvdXJjZSwgU291cmNlTWFwU291cmNlIH0gPSBjb21waWxlci53ZWJwYWNrLnNvdXJjZXM7XG5cbiAgICBjb21waWxlci5ob29rcy5jb21waWxhdGlvbi50YXAoUExVR0lOX05BTUUsIChjb21waWxhdGlvbikgPT4ge1xuICAgICAgY29uc3QgbG9nZ2VyID0gY29tcGlsYXRpb24uZ2V0TG9nZ2VyKCdidWlsZC1hbmd1bGFyLkphdmFTY3JpcHRPcHRpbWl6ZXJQbHVnaW4nKTtcblxuICAgICAgY29tcGlsYXRpb24uaG9va3MucHJvY2Vzc0Fzc2V0cy50YXBQcm9taXNlKFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogUExVR0lOX05BTUUsXG4gICAgICAgICAgc3RhZ2U6IGNvbXBpbGVyLndlYnBhY2suQ29tcGlsYXRpb24uUFJPQ0VTU19BU1NFVFNfU1RBR0VfT1BUSU1JWkVfU0laRSxcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgKGNvbXBpbGF0aW9uQXNzZXRzKSA9PiB7XG4gICAgICAgICAgbG9nZ2VyLnRpbWUoJ29wdGltaXplIGpzIGFzc2V0cycpO1xuICAgICAgICAgIGNvbnN0IHNjcmlwdHNUb09wdGltaXplID0gW107XG4gICAgICAgICAgY29uc3QgY2FjaGUgPVxuICAgICAgICAgICAgY29tcGlsYXRpb24ub3B0aW9ucy5jYWNoZSAmJiBjb21waWxhdGlvbi5nZXRDYWNoZSgnSmF2YVNjcmlwdE9wdGltaXplclBsdWdpbicpO1xuXG4gICAgICAgICAgLy8gQW5hbHl6ZSB0aGUgY29tcGlsYXRpb24gYXNzZXRzIGZvciBzY3JpcHRzIHRoYXQgcmVxdWlyZSBvcHRpbWl6YXRpb25cbiAgICAgICAgICBmb3IgKGNvbnN0IGFzc2V0TmFtZSBvZiBPYmplY3Qua2V5cyhjb21waWxhdGlvbkFzc2V0cykpIHtcbiAgICAgICAgICAgIGlmICghYXNzZXROYW1lLmVuZHNXaXRoKCcuanMnKSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2NyaXB0QXNzZXQgPSBjb21waWxhdGlvbi5nZXRBc3NldChhc3NldE5hbWUpO1xuICAgICAgICAgICAgLy8gU2tpcCBhc3NldHMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBvcHRpbWl6ZWQgb3IgYXJlIHZlcmJhdGltIGNvcGllcyAocHJvamVjdCBhc3NldHMpXG4gICAgICAgICAgICBpZiAoIXNjcmlwdEFzc2V0IHx8IHNjcmlwdEFzc2V0LmluZm8ubWluaW1pemVkIHx8IHNjcmlwdEFzc2V0LmluZm8uY29waWVkKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB7IHNvdXJjZTogc2NyaXB0QXNzZXRTb3VyY2UsIG5hbWUgfSA9IHNjcmlwdEFzc2V0O1xuICAgICAgICAgICAgbGV0IGNhY2hlSXRlbTtcblxuICAgICAgICAgICAgaWYgKGNhY2hlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVUYWcgPSBjYWNoZS5nZXRMYXp5SGFzaGVkRXRhZyhzY3JpcHRBc3NldFNvdXJjZSk7XG4gICAgICAgICAgICAgIGNhY2hlSXRlbSA9IGNhY2hlLmdldEl0ZW1DYWNoZShuYW1lLCBlVGFnKTtcbiAgICAgICAgICAgICAgY29uc3QgY2FjaGVkT3V0cHV0ID0gYXdhaXQgY2FjaGVJdGVtLmdldFByb21pc2U8XG4gICAgICAgICAgICAgICAgeyBzb3VyY2U6IHNvdXJjZXMuU291cmNlIH0gfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPigpO1xuXG4gICAgICAgICAgICAgIGlmIChjYWNoZWRPdXRwdXQpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYCR7bmFtZX0gcmVzdG9yZWQgZnJvbSBjYWNoZWApO1xuICAgICAgICAgICAgICAgIGNvbXBpbGF0aW9uLnVwZGF0ZUFzc2V0KG5hbWUsIGNhY2hlZE91dHB1dC5zb3VyY2UsIChhc3NldEluZm8pID0+ICh7XG4gICAgICAgICAgICAgICAgICAuLi5hc3NldEluZm8sXG4gICAgICAgICAgICAgICAgICBtaW5pbWl6ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc291cmNlLCBtYXAgfSA9IHNjcmlwdEFzc2V0U291cmNlLnNvdXJjZUFuZE1hcCgpO1xuICAgICAgICAgICAgc2NyaXB0c1RvT3B0aW1pemUucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IHNjcmlwdEFzc2V0Lm5hbWUsXG4gICAgICAgICAgICAgIGNvZGU6IHR5cGVvZiBzb3VyY2UgPT09ICdzdHJpbmcnID8gc291cmNlIDogc291cmNlLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgY2FjaGVJdGVtLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNjcmlwdHNUb09wdGltaXplLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEVuc3VyZSBhbGwgcmVwbGFjZW1lbnQgdmFsdWVzIGFyZSBzdHJpbmdzIHdoaWNoIGlzIHRoZSBleHBlY3RlZCB0eXBlIGZvciBlc2J1aWxkXG4gICAgICAgICAgbGV0IGRlZmluZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmRlZmluZSkge1xuICAgICAgICAgICAgZGVmaW5lID0ge307XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLm9wdGlvbnMuZGVmaW5lKSkge1xuICAgICAgICAgICAgICBkZWZpbmVba2V5XSA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gU2V0dXAgdGhlIG9wdGlvbnMgdXNlZCBieSBhbGwgd29ya2VyIHRhc2tzXG4gICAgICAgICAgY29uc3Qgb3B0aW1pemVPcHRpb25zOiBPcHRpbWl6ZVJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICAgICAgc291cmNlbWFwOiB0aGlzLm9wdGlvbnMuc291cmNlbWFwLFxuICAgICAgICAgICAgZGVmaW5lLFxuICAgICAgICAgICAga2VlcE5hbWVzOiB0aGlzLm9wdGlvbnMua2VlcE5hbWVzLFxuICAgICAgICAgICAga2VlcElkZW50aWZpZXJOYW1lczogdGhpcy5vcHRpb25zLmtlZXBJZGVudGlmaWVyTmFtZXMsXG4gICAgICAgICAgICB0YXJnZXQ6IHRoaXMudGFyZ2V0cyxcbiAgICAgICAgICAgIHJlbW92ZUxpY2Vuc2VzOiB0aGlzLm9wdGlvbnMucmVtb3ZlTGljZW5zZXMsXG4gICAgICAgICAgICBhZHZhbmNlZDogdGhpcy5vcHRpb25zLmFkdmFuY2VkLFxuICAgICAgICAgICAgLy8gUGVyZm9ybSBhIHNpbmdsZSBuYXRpdmUgZXNidWlsZCBzdXBwb3J0IGNoZWNrLlxuICAgICAgICAgICAgLy8gVGhpcyByZW1vdmVzIHRoZSBuZWVkIGZvciBlYWNoIHdvcmtlciB0byBwZXJmb3JtIHRoZSBjaGVjayB3aGljaCB3b3VsZFxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHJlcXVpcmUgc3Bhd25pbmcgYSBzZXBhcmF0ZSBwcm9jZXNzIHBlciB3b3JrZXIuXG4gICAgICAgICAgICBhbHdheXNVc2VXYXNtOiAhKGF3YWl0IEVzYnVpbGRFeGVjdXRvci5oYXNOYXRpdmVTdXBwb3J0KCkpLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICAvLyBTb3J0IHNjcmlwdHMgc28gbGFyZ2VyIHNjcmlwdHMgc3RhcnQgZmlyc3QgLSB3b3JrZXIgcG9vbCB1c2VzIGEgRklGTyBxdWV1ZVxuICAgICAgICAgIHNjcmlwdHNUb09wdGltaXplLnNvcnQoKGEsIGIpID0+IGEuY29kZS5sZW5ndGggLSBiLmNvZGUubGVuZ3RoKTtcblxuICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRhc2sgd29ya2VyIHBvb2xcbiAgICAgICAgICBjb25zdCB3b3JrZXJQYXRoID0gcmVxdWlyZS5yZXNvbHZlKCcuL2phdmFzY3JpcHQtb3B0aW1pemVyLXdvcmtlcicpO1xuICAgICAgICAgIGNvbnN0IHdvcmtlclBvb2wgPSBuZXcgUGlzY2luYSh7XG4gICAgICAgICAgICBmaWxlbmFtZTogd29ya2VyUGF0aCxcbiAgICAgICAgICAgIG1heFRocmVhZHM6IE1BWF9PUFRJTUlaRV9XT1JLRVJTLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gRW5xdWV1ZSBzY3JpcHQgb3B0aW1pemF0aW9uIHRhc2tzIGFuZCB1cGRhdGUgY29tcGlsYXRpb24gYXNzZXRzIGFzIHRoZSB0YXNrcyBjb21wbGV0ZVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB0YXNrcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCB7IG5hbWUsIGNvZGUsIG1hcCwgY2FjaGVJdGVtIH0gb2Ygc2NyaXB0c1RvT3B0aW1pemUpIHtcbiAgICAgICAgICAgICAgbG9nZ2VyLnRpbWUoYG9wdGltaXplIGFzc2V0OiAke25hbWV9YCk7XG5cbiAgICAgICAgICAgICAgdGFza3MucHVzaChcbiAgICAgICAgICAgICAgICB3b3JrZXJQb29sXG4gICAgICAgICAgICAgICAgICAucnVuKHtcbiAgICAgICAgICAgICAgICAgICAgYXNzZXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICAgICAgICAgICAgbWFwLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBvcHRpbWl6ZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jICh7IGNvZGUsIG5hbWUsIG1hcCwgZXJyb3JzIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFkZEVycm9yKGNvbXBpbGF0aW9uLCBgT3B0aW1pemF0aW9uIGVycm9yIFske25hbWV9XTogJHtlcnJvcn1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGltaXplZEFzc2V0ID0gbWFwXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG5ldyBTb3VyY2VNYXBTb3VyY2UoY29kZSwgbmFtZSwgbWFwKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXcgT3JpZ2luYWxTb3VyY2UoY29kZSwgbmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgY29tcGlsYXRpb24udXBkYXRlQXNzZXQobmFtZSwgb3B0aW1pemVkQXNzZXQsIChhc3NldEluZm8pID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5hc3NldEluZm8sXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5pbWl6ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLnRpbWVFbmQoYG9wdGltaXplIGFzc2V0OiAke25hbWV9YCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGVJdGVtPy5zdG9yZVByb21pc2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiBvcHRpbWl6ZWRBc3NldCxcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgYWRkRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21waWxhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGBPcHRpbWl6YXRpb24gZXJyb3IgWyR7bmFtZX1dOiAke2Vycm9yLnN0YWNrIHx8IGVycm9yLm1lc3NhZ2V9YCxcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGFza3MpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB2b2lkIHdvcmtlclBvb2wuZGVzdHJveSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxvZ2dlci50aW1lRW5kKCdvcHRpbWl6ZSBqcyBhc3NldHMnKTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC1vcHRpbWl6ZXItcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvd2VicGFjay9wbHVnaW5zL2phdmFzY3JpcHQtb3B0aW1pemVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7QUFFSCxzREFBOEI7QUFFOUIseUVBQTZEO0FBQzdELGlFQUFrRjtBQUNsRix5RUFBMkQ7QUFDM0QseURBQXFEO0FBR3JEOztHQUVHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxnQ0FBVSxDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxXQUFXLEdBQUcsOEJBQThCLENBQUM7QUFvRG5EOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLHlCQUF5QjtJQUdwQyxZQUFvQixPQUFtQztRQUFuQyxZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUNyRCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUEscURBQW1DLEVBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDL0U7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWtCO1FBQ3RCLE1BQU0sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFFckUsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzFELE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMseUNBQXlDLENBQUMsQ0FBQztZQUVoRixXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQ3hDO2dCQUNFLElBQUksRUFBRSxXQUFXO2dCQUNqQixLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsa0NBQWtDO2FBQ3ZFLEVBQ0QsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEVBQUU7Z0JBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDbEMsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sS0FBSyxHQUNULFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsMkJBQTJCLENBQUMsQ0FBQztnQkFFakYsdUVBQXVFO2dCQUN2RSxLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtvQkFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQzlCLFNBQVM7cUJBQ1Y7b0JBRUQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDcEQsdUZBQXVGO29CQUN2RixJQUFJLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO3dCQUN6RSxTQUFTO3FCQUNWO29CQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLEdBQUcsV0FBVyxDQUFDO29CQUN4RCxJQUFJLFNBQVMsQ0FBQztvQkFFZCxJQUFJLEtBQUssRUFBRTt3QkFDVCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQzt3QkFDeEQsU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUMzQyxNQUFNLFlBQVksR0FBRyxNQUFNLFNBQVMsQ0FBQyxVQUFVLEVBRTVDLENBQUM7d0JBRUosSUFBSSxZQUFZLEVBQUU7NEJBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLHNCQUFzQixDQUFDLENBQUM7NEJBQzVDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0NBQ2pFLEdBQUcsU0FBUztnQ0FDWixTQUFTLEVBQUUsSUFBSTs2QkFDaEIsQ0FBQyxDQUFDLENBQUM7NEJBQ0osU0FBUzt5QkFDVjtxQkFDRjtvQkFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO29CQUN6RCxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7d0JBQ3JCLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTt3QkFDdEIsSUFBSSxFQUFFLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO3dCQUM3RCxHQUFHO3dCQUNILFNBQVM7cUJBQ1YsQ0FBQyxDQUFDO2lCQUNKO2dCQUVELElBQUksaUJBQWlCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDbEMsT0FBTztpQkFDUjtnQkFFRCxtRkFBbUY7Z0JBQ25GLElBQUksTUFBMEMsQ0FBQztnQkFDL0MsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtvQkFDdkIsTUFBTSxHQUFHLEVBQUUsQ0FBQztvQkFDWixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO3dCQUM5RCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUM3QjtpQkFDRjtnQkFFRCw2Q0FBNkM7Z0JBQzdDLE1BQU0sZUFBZSxHQUEyQjtvQkFDOUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUztvQkFDakMsTUFBTTtvQkFDTixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTO29CQUNqQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtvQkFDckQsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNwQixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjO29CQUMzQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO29CQUMvQixpREFBaUQ7b0JBQ2pELHlFQUF5RTtvQkFDekUsNERBQTREO29CQUM1RCxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU0sa0NBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2lCQUMzRCxDQUFDO2dCQUVGLDZFQUE2RTtnQkFDN0UsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFaEUsa0NBQWtDO2dCQUNsQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUM7Z0JBQ3BFLE1BQU0sVUFBVSxHQUFHLElBQUksaUJBQU8sQ0FBQztvQkFDN0IsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFVBQVUsRUFBRSxvQkFBb0I7aUJBQ2pDLENBQUMsQ0FBQztnQkFFSCx3RkFBd0Y7Z0JBQ3hGLElBQUk7b0JBQ0YsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUNqQixLQUFLLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxpQkFBaUIsRUFBRTt3QkFDOUQsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFFdkMsS0FBSyxDQUFDLElBQUksQ0FDUixVQUFVOzZCQUNQLEdBQUcsQ0FBQzs0QkFDSCxLQUFLLEVBQUU7Z0NBQ0wsSUFBSTtnQ0FDSixJQUFJO2dDQUNKLEdBQUc7NkJBQ0o7NEJBQ0QsT0FBTyxFQUFFLGVBQWU7eUJBQ3pCLENBQUM7NkJBQ0QsSUFBSSxDQUNILEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7NEJBQ3BDLElBQUksTUFBTSxFQUFFLE1BQU0sRUFBRTtnQ0FDbEIsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7b0NBQzFCLElBQUEsOEJBQVEsRUFBQyxXQUFXLEVBQUUsdUJBQXVCLElBQUksTUFBTSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lDQUNqRTtnQ0FFRCxPQUFPOzZCQUNSOzRCQUVELE1BQU0sY0FBYyxHQUFHLEdBQUc7Z0NBQ3hCLENBQUMsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztnQ0FDdEMsQ0FBQyxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzs0QkFDbkMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dDQUM1RCxHQUFHLFNBQVM7Z0NBQ1osU0FBUyxFQUFFLElBQUk7NkJBQ2hCLENBQUMsQ0FBQyxDQUFDOzRCQUVKLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUM7NEJBRTFDLE9BQU8sU0FBUyxFQUFFLFlBQVksQ0FBQztnQ0FDN0IsTUFBTSxFQUFFLGNBQWM7NkJBQ3ZCLENBQUMsQ0FBQzt3QkFDTCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTs0QkFDUixJQUFBLDhCQUFRLEVBQ04sV0FBVyxFQUNYLHVCQUF1QixJQUFJLE1BQU0sS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ2hFLENBQUM7d0JBQ0osQ0FBQyxDQUNGLENBQ0osQ0FBQztxQkFDSDtvQkFFRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzFCO3dCQUFTO29CQUNSLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUMzQjtnQkFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXJLRCw4REFxS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IFBpc2NpbmEgZnJvbSAncGlzY2luYSc7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVyLCBzb3VyY2VzIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgeyBtYXhXb3JrZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZW52aXJvbm1lbnQtb3B0aW9ucyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1TdXBwb3J0ZWRCcm93c2Vyc1RvVGFyZ2V0cyB9IGZyb20gJy4uLy4uL3V0aWxzL2VzYnVpbGQtdGFyZ2V0cyc7XG5pbXBvcnQgeyBhZGRFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL3dlYnBhY2stZGlhZ25vc3RpY3MnO1xuaW1wb3J0IHsgRXNidWlsZEV4ZWN1dG9yIH0gZnJvbSAnLi9lc2J1aWxkLWV4ZWN1dG9yJztcbmltcG9ydCB0eXBlIHsgT3B0aW1pemVSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJy4vamF2YXNjcmlwdC1vcHRpbWl6ZXItd29ya2VyJztcblxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgV29ya2VycyB0aGF0IHdpbGwgYmUgY3JlYXRlZCB0byBleGVjdXRlIG9wdGltaXplIHRhc2tzLlxuICovXG5jb25zdCBNQVhfT1BUSU1JWkVfV09SS0VSUyA9IG1heFdvcmtlcnM7XG5cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIHBsdWdpbiBwcm92aWRlZCB0byBXZWJwYWNrIHdoZW4gdGFwcGluZyBXZWJwYWNrIGNvbXBpbGVyIGhvb2tzLlxuICovXG5jb25zdCBQTFVHSU5fTkFNRSA9ICdhbmd1bGFyLWphdmFzY3JpcHQtb3B0aW1pemVyJztcblxuLyoqXG4gKiBUaGUgb3B0aW9ucyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUge0BsaW5rIEphdmFTY3JpcHRPcHRpbWl6ZXJQbHVnaW59LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEphdmFTY3JpcHRPcHRpbWl6ZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZXMgYWR2YW5jZWQgb3B0aW1pemF0aW9ucyBpbiB0aGUgdW5kZXJseWluZyBKYXZhU2NyaXB0IG9wdGltaXplcnMuXG4gICAqIFRoaXMgY3VycmVudGx5IGluY3JlYXNlcyB0aGUgYHRlcnNlcmAgcGFzc2VzIHRvIDIgYW5kIGVuYWJsZXMgdGhlIGBwdXJlX2dldHRlcnNgXG4gICAqIG9wdGlvbiBmb3IgYHRlcnNlcmAuXG4gICAqL1xuICBhZHZhbmNlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFuIG9iamVjdCByZWNvcmQgb2Ygc3RyaW5nIGtleXMgdGhhdCB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSB2YWx1ZXMgd2hlbiBmb3VuZFxuICAgKiB3aXRoaW4gdGhlIGNvZGUgZHVyaW5nIG9wdGltaXphdGlvbi5cbiAgICovXG4gIGRlZmluZTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj47XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIGdlbmVyYXRpb24gb2YgYSBzb3VyY2VtYXAgZHVyaW5nIG9wdGltaXphdGlvbi5cbiAgICogVGhlIG91dHB1dCBzb3VyY2VtYXAgd2lsbCBiZSBhIGZ1bGwgc291cmNlbWFwIGNvbnRhaW5pbmcgdGhlIG1lcmdlIG9mIHRoZSBpbnB1dCBzb3VyY2VtYXAgYW5kXG4gICAqIGFsbCBpbnRlcm1lZGlhdGUgc291cmNlbWFwcy5cbiAgICovXG4gIHNvdXJjZW1hcD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBzdXBwb3J0ZWQgYnJvd3NlcnMgdGhhdCBpcyB1c2VkIGZvciBvdXRwdXQgY29kZS5cbiAgICovXG4gIHN1cHBvcnRlZEJyb3dzZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIHJldGVudGlvbiBvZiBpZGVudGlmaWVyIG5hbWVzIGFuZCBlbnN1cmVzIHRoYXQgZnVuY3Rpb24gYW5kIGNsYXNzIG5hbWVzIGFyZVxuICAgKiBwcmVzZW50IGluIHRoZSBvdXRwdXQgY29kZS5cbiAgICpcbiAgICogKipOb3RlKio6IGluIHNvbWUgY2FzZXMgc3ltYm9scyBhcmUgc3RpbGwgcmVuYW1lZCB0byBhdm9pZCBjb2xsaXNpb25zLlxuICAgKi9cbiAga2VlcElkZW50aWZpZXJOYW1lczogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgcmV0ZW50aW9uIG9mIG9yaWdpbmFsIG5hbWUgb2YgY2xhc3NlcyBhbmQgZnVuY3Rpb25zLlxuICAgKlxuICAgKiAqKk5vdGUqKjogdGhpcyBjYXVzZXMgaW5jcmVhc2Ugb2YgYnVuZGxlIHNpemUgYXMgaXQgY2F1c2VzIGRlYWQtY29kZSBlbGltaW5hdGlvbiB0byBub3Qgd29yayBmdWxseS5cbiAgICovXG4gIGtlZXBOYW1lczogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgcmVtb3ZhbCBvZiBhbGwgbGljZW5zZSBjb21tZW50cyBmcm9tIHRoZSBvdXRwdXQgY29kZS5cbiAgICovXG4gIHJlbW92ZUxpY2Vuc2VzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIFdlYnBhY2sgcGx1Z2luIHRoYXQgcHJvdmlkZXMgSmF2YVNjcmlwdCBvcHRpbWl6YXRpb24gY2FwYWJpbGl0aWVzLlxuICpcbiAqIFRoZSBwbHVnaW4gdXNlcyBib3RoIGBlc2J1aWxkYCBhbmQgYHRlcnNlcmAgdG8gcHJvdmlkZSBib3RoIGZhc3QgYW5kIGhpZ2hseS1vcHRpbWl6ZWRcbiAqIGNvZGUgb3V0cHV0LiBgZXNidWlsZGAgaXMgdXNlZCBhcyBhbiBpbml0aWFsIHBhc3MgdG8gcmVtb3ZlIHRoZSBtYWpvcml0eSBvZiB1bnVzZWQgY29kZVxuICogYXMgd2VsbCBhcyBzaG9ydGVuIGlkZW50aWZpZXJzLiBgdGVyc2VyYCBpcyB0aGVuIHVzZWQgYXMgYSBzZWNvbmRhcnkgcGFzcyB0byBhcHBseVxuICogb3B0aW1pemF0aW9ucyBub3QgeWV0IGltcGxlbWVudGVkIGJ5IGBlc2J1aWxkYC5cbiAqL1xuZXhwb3J0IGNsYXNzIEphdmFTY3JpcHRPcHRpbWl6ZXJQbHVnaW4ge1xuICBwcml2YXRlIHRhcmdldHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9uczogSmF2YVNjcmlwdE9wdGltaXplck9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5zdXBwb3J0ZWRCcm93c2Vycykge1xuICAgICAgdGhpcy50YXJnZXRzID0gdHJhbnNmb3JtU3VwcG9ydGVkQnJvd3NlcnNUb1RhcmdldHMob3B0aW9ucy5zdXBwb3J0ZWRCcm93c2Vycyk7XG4gICAgfVxuICB9XG5cbiAgYXBwbHkoY29tcGlsZXI6IENvbXBpbGVyKSB7XG4gICAgY29uc3QgeyBPcmlnaW5hbFNvdXJjZSwgU291cmNlTWFwU291cmNlIH0gPSBjb21waWxlci53ZWJwYWNrLnNvdXJjZXM7XG5cbiAgICBjb21waWxlci5ob29rcy5jb21waWxhdGlvbi50YXAoUExVR0lOX05BTUUsIChjb21waWxhdGlvbikgPT4ge1xuICAgICAgY29uc3QgbG9nZ2VyID0gY29tcGlsYXRpb24uZ2V0TG9nZ2VyKCdidWlsZC1hbmd1bGFyLkphdmFTY3JpcHRPcHRpbWl6ZXJQbHVnaW4nKTtcblxuICAgICAgY29tcGlsYXRpb24uaG9va3MucHJvY2Vzc0Fzc2V0cy50YXBQcm9taXNlKFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogUExVR0lOX05BTUUsXG4gICAgICAgICAgc3RhZ2U6IGNvbXBpbGVyLndlYnBhY2suQ29tcGlsYXRpb24uUFJPQ0VTU19BU1NFVFNfU1RBR0VfT1BUSU1JWkVfU0laRSxcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgKGNvbXBpbGF0aW9uQXNzZXRzKSA9PiB7XG4gICAgICAgICAgbG9nZ2VyLnRpbWUoJ29wdGltaXplIGpzIGFzc2V0cycpO1xuICAgICAgICAgIGNvbnN0IHNjcmlwdHNUb09wdGltaXplID0gW107XG4gICAgICAgICAgY29uc3QgY2FjaGUgPVxuICAgICAgICAgICAgY29tcGlsYXRpb24ub3B0aW9ucy5jYWNoZSAmJiBjb21waWxhdGlvbi5nZXRDYWNoZSgnSmF2YVNjcmlwdE9wdGltaXplclBsdWdpbicpO1xuXG4gICAgICAgICAgLy8gQW5hbHl6ZSB0aGUgY29tcGlsYXRpb24gYXNzZXRzIGZvciBzY3JpcHRzIHRoYXQgcmVxdWlyZSBvcHRpbWl6YXRpb25cbiAgICAgICAgICBmb3IgKGNvbnN0IGFzc2V0TmFtZSBvZiBPYmplY3Qua2V5cyhjb21waWxhdGlvbkFzc2V0cykpIHtcbiAgICAgICAgICAgIGlmICghYXNzZXROYW1lLmVuZHNXaXRoKCcuanMnKSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2NyaXB0QXNzZXQgPSBjb21waWxhdGlvbi5nZXRBc3NldChhc3NldE5hbWUpO1xuICAgICAgICAgICAgLy8gU2tpcCBhc3NldHMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBvcHRpbWl6ZWQgb3IgYXJlIHZlcmJhdGltIGNvcGllcyAocHJvamVjdCBhc3NldHMpXG4gICAgICAgICAgICBpZiAoIXNjcmlwdEFzc2V0IHx8IHNjcmlwdEFzc2V0LmluZm8ubWluaW1pemVkIHx8IHNjcmlwdEFzc2V0LmluZm8uY29waWVkKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB7IHNvdXJjZTogc2NyaXB0QXNzZXRTb3VyY2UsIG5hbWUgfSA9IHNjcmlwdEFzc2V0O1xuICAgICAgICAgICAgbGV0IGNhY2hlSXRlbTtcblxuICAgICAgICAgICAgaWYgKGNhY2hlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVUYWcgPSBjYWNoZS5nZXRMYXp5SGFzaGVkRXRhZyhzY3JpcHRBc3NldFNvdXJjZSk7XG4gICAgICAgICAgICAgIGNhY2hlSXRlbSA9IGNhY2hlLmdldEl0ZW1DYWNoZShuYW1lLCBlVGFnKTtcbiAgICAgICAgICAgICAgY29uc3QgY2FjaGVkT3V0cHV0ID0gYXdhaXQgY2FjaGVJdGVtLmdldFByb21pc2U8XG4gICAgICAgICAgICAgICAgeyBzb3VyY2U6IHNvdXJjZXMuU291cmNlIH0gfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPigpO1xuXG4gICAgICAgICAgICAgIGlmIChjYWNoZWRPdXRwdXQpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYCR7bmFtZX0gcmVzdG9yZWQgZnJvbSBjYWNoZWApO1xuICAgICAgICAgICAgICAgIGNvbXBpbGF0aW9uLnVwZGF0ZUFzc2V0KG5hbWUsIGNhY2hlZE91dHB1dC5zb3VyY2UsIChhc3NldEluZm8pID0+ICh7XG4gICAgICAgICAgICAgICAgICAuLi5hc3NldEluZm8sXG4gICAgICAgICAgICAgICAgICBtaW5pbWl6ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc291cmNlLCBtYXAgfSA9IHNjcmlwdEFzc2V0U291cmNlLnNvdXJjZUFuZE1hcCgpO1xuICAgICAgICAgICAgc2NyaXB0c1RvT3B0aW1pemUucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IHNjcmlwdEFzc2V0Lm5hbWUsXG4gICAgICAgICAgICAgIGNvZGU6IHR5cGVvZiBzb3VyY2UgPT09ICdzdHJpbmcnID8gc291cmNlIDogc291cmNlLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIG1hcCxcbiAgICAgICAgICAgICAgY2FjaGVJdGVtLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNjcmlwdHNUb09wdGltaXplLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEVuc3VyZSBhbGwgcmVwbGFjZW1lbnQgdmFsdWVzIGFyZSBzdHJpbmdzIHdoaWNoIGlzIHRoZSBleHBlY3RlZCB0eXBlIGZvciBlc2J1aWxkXG4gICAgICAgICAgbGV0IGRlZmluZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmRlZmluZSkge1xuICAgICAgICAgICAgZGVmaW5lID0ge307XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLm9wdGlvbnMuZGVmaW5lKSkge1xuICAgICAgICAgICAgICBkZWZpbmVba2V5XSA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gU2V0dXAgdGhlIG9wdGlvbnMgdXNlZCBieSBhbGwgd29ya2VyIHRhc2tzXG4gICAgICAgICAgY29uc3Qgb3B0aW1pemVPcHRpb25zOiBPcHRpbWl6ZVJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICAgICAgc291cmNlbWFwOiB0aGlzLm9wdGlvbnMuc291cmNlbWFwLFxuICAgICAgICAgICAgZGVmaW5lLFxuICAgICAgICAgICAga2VlcE5hbWVzOiB0aGlzLm9wdGlvbnMua2VlcE5hbWVzLFxuICAgICAgICAgICAga2VlcElkZW50aWZpZXJOYW1lczogdGhpcy5vcHRpb25zLmtlZXBJZGVudGlmaWVyTmFtZXMsXG4gICAgICAgICAgICB0YXJnZXQ6IHRoaXMudGFyZ2V0cyxcbiAgICAgICAgICAgIHJlbW92ZUxpY2Vuc2VzOiB0aGlzLm9wdGlvbnMucmVtb3ZlTGljZW5zZXMsXG4gICAgICAgICAgICBhZHZhbmNlZDogdGhpcy5vcHRpb25zLmFkdmFuY2VkLFxuICAgICAgICAgICAgLy8gUGVyZm9ybSBhIHNpbmdsZSBuYXRpdmUgZXNidWlsZCBzdXBwb3J0IGNoZWNrLlxuICAgICAgICAgICAgLy8gVGhpcyByZW1vdmVzIHRoZSBuZWVkIGZvciBlYWNoIHdvcmtlciB0byBwZXJmb3JtIHRoZSBjaGVjayB3aGljaCB3b3VsZFxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHJlcXVpcmUgc3Bhd25pbmcgYSBzZXBhcmF0ZSBwcm9jZXNzIHBlciB3b3JrZXIuXG4gICAgICAgICAgICBhbHdheXNVc2VXYXNtOiAhKGF3YWl0IEVzYnVpbGRFeGVjdXRvci5oYXNOYXRpdmVTdXBwb3J0KCkpLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICAvLyBTb3J0IHNjcmlwdHMgc28gbGFyZ2VyIHNjcmlwdHMgc3RhcnQgZmlyc3QgLSB3b3JrZXIgcG9vbCB1c2VzIGEgRklGTyBxdWV1ZVxuICAgICAgICAgIHNjcmlwdHNUb09wdGltaXplLnNvcnQoKGEsIGIpID0+IGEuY29kZS5sZW5ndGggLSBiLmNvZGUubGVuZ3RoKTtcblxuICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHRhc2sgd29ya2VyIHBvb2xcbiAgICAgICAgICBjb25zdCB3b3JrZXJQYXRoID0gcmVxdWlyZS5yZXNvbHZlKCcuL2phdmFzY3JpcHQtb3B0aW1pemVyLXdvcmtlcicpO1xuICAgICAgICAgIGNvbnN0IHdvcmtlclBvb2wgPSBuZXcgUGlzY2luYSh7XG4gICAgICAgICAgICBmaWxlbmFtZTogd29ya2VyUGF0aCxcbiAgICAgICAgICAgIG1heFRocmVhZHM6IE1BWF9PUFRJTUlaRV9XT1JLRVJTLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgLy8gRW5xdWV1ZSBzY3JpcHQgb3B0aW1pemF0aW9uIHRhc2tzIGFuZCB1cGRhdGUgY29tcGlsYXRpb24gYXNzZXRzIGFzIHRoZSB0YXNrcyBjb21wbGV0ZVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB0YXNrcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCB7IG5hbWUsIGNvZGUsIG1hcCwgY2FjaGVJdGVtIH0gb2Ygc2NyaXB0c1RvT3B0aW1pemUpIHtcbiAgICAgICAgICAgICAgbG9nZ2VyLnRpbWUoYG9wdGltaXplIGFzc2V0OiAke25hbWV9YCk7XG5cbiAgICAgICAgICAgICAgdGFza3MucHVzaChcbiAgICAgICAgICAgICAgICB3b3JrZXJQb29sXG4gICAgICAgICAgICAgICAgICAucnVuKHtcbiAgICAgICAgICAgICAgICAgICAgYXNzZXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICAgICAgICAgICAgbWFwLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBvcHRpbWl6ZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jICh7IGNvZGUsIG5hbWUsIG1hcCwgZXJyb3JzIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFkZEVycm9yKGNvbXBpbGF0aW9uLCBgT3B0aW1pemF0aW9uIGVycm9yIFske25hbWV9XTogJHtlcnJvcn1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGltaXplZEFzc2V0ID0gbWFwXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG5ldyBTb3VyY2VNYXBTb3VyY2UoY29kZSwgbmFtZSwgbWFwKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXcgT3JpZ2luYWxTb3VyY2UoY29kZSwgbmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgY29tcGlsYXRpb24udXBkYXRlQXNzZXQobmFtZSwgb3B0aW1pemVkQXNzZXQsIChhc3NldEluZm8pID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5hc3NldEluZm8sXG4gICAgICAgICAgICAgICAgICAgICAgICBtaW5pbWl6ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLnRpbWVFbmQoYG9wdGltaXplIGFzc2V0OiAke25hbWV9YCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGVJdGVtPy5zdG9yZVByb21pc2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiBvcHRpbWl6ZWRBc3NldCxcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgYWRkRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21waWxhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGBPcHRpbWl6YXRpb24gZXJyb3IgWyR7bmFtZX1dOiAke2Vycm9yLnN0YWNrIHx8IGVycm9yLm1lc3NhZ2V9YCxcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGFza3MpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB2b2lkIHdvcmtlclBvb2wuZGVzdHJveSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxvZ2dlci50aW1lRW5kKCdvcHRpbWl6ZSBqcyBhc3NldHMnKTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -124,7 +124,7 @@ async function optimizeWithTerser(name, code, sourcemaps, advanced) {
124
124
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
125
125
  },
126
126
  });
127
- if (!result.code) {
127
+ if (typeof result.code !== 'string') {
128
128
  throw new Error('Terser failed for unknown reason.');
129
129
  }
130
130
  return { code: result.code, map: result.map };
@@ -137,4 +137,4 @@ async function optimizeWithTerser(name, code, sourcemaps, advanced) {
137
137
  function isEsBuildFailure(value) {
138
138
  return !!value && typeof value === 'object' && 'errors' in value && 'warnings' in value;
139
139
  }
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC1vcHRpbWl6ZXItd29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvd2VicGFjay9wbHVnaW5zL2phdmFzY3JpcHQtb3B0aW1pemVyLXdvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7OztBQUVILHNFQUE4QztBQUU5QyxtQ0FBZ0M7QUFDaEMseURBQXFEO0FBOEVyRDs7OztHQUlHO0FBQ0gsSUFBSSxPQUFvQyxDQUFDO0FBRXpDOztHQUVHO0FBQ1ksS0FBSyxvQkFBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQW1CO0lBQ2hFLGtDQUFrQztJQUNsQyxNQUFNLGFBQWEsR0FBRyxNQUFNLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRixJQUFJLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQ25DLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsb0VBQW9FO1lBQ3BFLE1BQU0sRUFBRSxNQUFNLE9BQVEsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztTQUMvRSxDQUFDO0tBQ0g7SUFFRCxrQ0FBa0M7SUFDbEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxrQkFBa0IsQ0FDM0MsS0FBSyxDQUFDLElBQUksRUFDVixhQUFhLENBQUMsSUFBSSxFQUNsQixPQUFPLENBQUMsU0FBUyxFQUNqQixPQUFPLENBQUMsUUFBUSxDQUNqQixDQUFDO0lBRUYsZ0VBQWdFO0lBQ2hFLElBQUksYUFBYSxDQUFDO0lBQ2xCLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtRQUNyQixNQUFNLGlCQUFpQixHQUFH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QUNaLENBQ0YsQ0FBQztJQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztLQUN0RDtJQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQWEsRUFBRSxDQUFDO0FBQzFELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFjO0lBQ3RDLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksUUFBUSxJQUFJLEtBQUssSUFBSSxVQUFVLElBQUksS0FBSyxDQUFDO0FBQzFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHJlbWFwcGluZyBmcm9tICdAYW1wcHJvamVjdC9yZW1hcHBpbmcnO1xuaW1wb3J0IHR5cGUgeyBCdWlsZEZhaWx1cmUsIFRyYW5zZm9ybVJlc3VsdCB9IGZyb20gJ2VzYnVpbGQnO1xuaW1wb3J0IHsgbWluaWZ5IH0gZnJvbSAndGVyc2VyJztcbmltcG9ydCB7IEVzYnVpbGRFeGVjdXRvciB9IGZyb20gJy4vZXNidWlsZC1leGVjdXRvcic7XG5cbi8qKlxuICogVGhlIG9wdGlvbnMgdG8gdXNlIHdoZW4gb3B0aW1pemluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpbWl6ZVJlcXVlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIENvbnRyb2xzIGFkdmFuY2VkIG9wdGltaXphdGlvbnMuXG4gICAqIEN1cnJlbnRseSB0aGVzZSBhcmUgb25seSB0ZXJzZXIgcmVsYXRlZDpcbiAgICogKiB0ZXJzZXIgY29tcHJlc3MgcGFzc2VzIGFyZSBzZXQgdG8gMlxuICAgKiAqIHRlcnNlciBwdXJlX2dldHRlcnMgb3B0aW9uIGlzIGVuYWJsZWRcbiAgICovXG4gIGFkdmFuY2VkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgc3RyaW5nIHRva2VucyB0aGF0IHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIGEgZGVmaW5lZCB2YWx1ZS5cbiAgICovXG4gIGRlZmluZT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIGNsYXNzLCBmdW5jdGlvbiwgYW5kIHZhcmlhYmxlIG5hbWVzIHNob3VsZCBiZSBsZWZ0IGludGFjdFxuICAgKiB0aHJvdWdob3V0IHRoZSBvdXRwdXQgY29kZS5cbiAgICovXG4gIGtlZXBJZGVudGlmaWVyTmFtZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdG8gcmV0YWluIHRoZSBvcmlnaW5hbCBuYW1lIG9mIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucy5cbiAgICovXG4gIGtlZXBOYW1lczogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgbGljZW5zZSB0ZXh0IGlzIHJlbW92ZWQgZnJvbSB0aGUgb3V0cHV0IGNvZGUuXG4gICAqIFdpdGhpbiB0aGUgQ0xJLCB0aGlzIG9wdGlvbiBpcyBsaW5rZWQgdG8gdGhlIGxpY2Vuc2UgZXh0cmFjdGlvbiBmdW5jdGlvbmFsaXR5LlxuICAgKi9cbiAgcmVtb3ZlTGljZW5zZXM/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29udHJvbHMgd2hldGhlciBzb3VyY2UgbWFwcyBzaG91bGQgYmUgZ2VuZXJhdGVkLlxuICAgKi9cbiAgc291cmNlbWFwPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgZXNidWlsZCB0YXJnZXRzLlxuICAgKiBAc2VlOiBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdGFyZ2V0XG4gICAqL1xuICB0YXJnZXQ/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgZXNidWlsZCBzaG91bGQgb25seSB1c2UgdGhlIFdBU00tdmFyaWFudCBpbnN0ZWFkIG9mIHRyeWluZyB0b1xuICAgKiB1c2UgdGhlIG5hdGl2ZSB2YXJpYW50LiBTb21lIHBsYXRmb3JtcyBtYXkgbm90IHN1cHBvcnQgdGhlIG5hdGl2ZS12YXJpYW50IGFuZFxuICAgKiB0aGlzIG9wdGlvbiBhbGxvd3Mgb25lIHN1cHBvcnQgdGVzdCB0byBiZSBjb25kdWN0ZWQgcHJpb3IgdG8gYWxsIHRoZSB3b3JrZXJzIHN0YXJ0aW5nLlxuICAgKi9cbiAgYWx3YXlzVXNlV2FzbTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIHJlcXVlc3QgdG8gb3B0aW1pemUgSmF2YVNjcmlwdCB1c2luZyB0aGUgc3VwcGxpZWQgb3B0aW9ucy5cbiAqL1xuaW50ZXJmYWNlIE9wdGltaXplUmVxdWVzdCB7XG4gIC8qKlxuICAgKiBUaGUgb3B0aW9ucyB0byB1c2Ugd2hlbiBvcHRpbWl6aW5nLlxuICAgKi9cbiAgb3B0aW9uczogT3B0aW1pemVSZXF1ZXN0T3B0aW9ucztcblxuICAvKipcbiAgICogVGhlIEphdmFTY3JpcHQgYXNzZXQgdG8gb3B0aW1pemUuXG4gICAqL1xuICBhc3NldDoge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBKYXZhU2NyaXB0IGFzc2V0ICh0eXBpY2FsbHkgdGhlIGZpbGVuYW1lKS5cbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIHNvdXJjZSBjb250ZW50IG9mIHRoZSBKYXZhU2NyaXB0IGFzc2V0LlxuICAgICAqL1xuICAgIGNvZGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgc291cmNlIG1hcCBvZiB0aGUgSmF2YVNjcmlwdCBhc3NldCwgaWYgYXZhaWxhYmxlLlxuICAgICAqIFRoaXMgbWFwIGlzIG1lcmdlZCB3aXRoIGFsbCBpbnRlcm1lZGlhdGUgc291cmNlIG1hcHMgZHVyaW5nIG9wdGltaXphdGlvbi5cbiAgICAgKi9cbiAgICBtYXA6IG9iamVjdDtcbiAgfTtcbn1cblxuLyoqXG4gKiBUaGUgY2FjaGVkIGVzYnVpbGQgZXhlY3V0b3IuXG4gKiBUaGlzIHdpbGwgYXV0b21hdGljYWxseSB1c2UgdGhlIG5hdGl2ZSBvciBXQVNNIHZlcnNpb24gYmFzZWQgb24gcGxhdGZvcm0gYW5kIGF2YWlsYWJpbGl0eVxuICogd2l0aCB0aGUgbmF0aXZlIHZlcnNpb24gZ2l2ZW4gcHJpb3JpdHkgZHVlIHRvIGl0cyBzdXBlcmlvciBwZXJmb3JtYW5jZS5cbiAqL1xubGV0IGVzYnVpbGQ6IEVzYnVpbGRFeGVjdXRvciB8IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBIYW5kbGVzIG9wdGltaXphdGlvbiByZXF1ZXN0cyBzZW50IGZyb20gdGhlIG1haW4gdGhyZWFkIHZpYSB0aGUgYEphdmFTY3JpcHRPcHRpbWl6ZXJQbHVnaW5gLlxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiAoeyBhc3NldCwgb3B0aW9ucyB9OiBPcHRpbWl6ZVJlcXVlc3QpIHtcbiAgLy8gZXNidWlsZCBpcyB1c2VkIGFzIGEgZmlyc3QgcGFzc1xuICBjb25zdCBlc2J1aWxkUmVzdWx0ID0gYXdhaXQgb3B0aW1pemVXaXRoRXNidWlsZChhc3NldC5jb2RlLCBhc3NldC5uYW1lLCBvcHRpb25zKTtcbiAgaWYgKGlzRXNCdWlsZEZhaWx1cmUoZXNidWlsZFJlc3VsdCkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogYXNzZXQubmFtZSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICBlcnJvcnM6IGF3YWl0IGVzYnVpbGQhLmZvcm1hdE1lc3NhZ2VzKGVzYnVpbGRSZXN1bHQuZXJyb3JzLCB7IGtpbmQ6ICdlcnJvcicgfSksXG4gICAgfTtcbiAgfVxuXG4gIC8vIHRlcnNlciBpcyB1c2VkIGFzIGEgc2Vjb25kIHBhc3NcbiAgY29uc3QgdGVyc2VyUmVzdWx0ID0gYXdhaXQgb3B0aW1pemVXaXRoVGVyc2VyKFxuICAgIGFzc2V0Lm5hbWUsXG4gICAgZXNidWlsZFJlc3VsdC5jb2RlLFxuICAgIG9wdGlvbnMuc291cmNlbWFwLFxuICAgIG9wdGlvbnMuYWR2YW5jZWQsXG4gICk7XG5cbiAgLy8gTWVyZ2UgaW50ZXJtZWRpYXRlIHNvdXJjZW1hcHMgd2l0aCBpbnB1dCBzb3VyY2VtYXAgaWYgZW5hYmxlZFxuICBsZXQgZnVsbFNvdXJjZW1hcDtcbiAgaWYgKG9wdGlvbnMuc291cmNlbWFwKSB7XG4gICAgY29uc3QgcGFydGlhbFNvdXJjZW1hcHMgPSBbXTtcblxuICAgIGlmIChlc2J1aWxkUmVzdWx0Lm1hcCkge1xuICAgICAgcGFydGlhbFNvdXJjZW1hcHMudW5zaGlmdChKU09OLnBhcnNlKGVzYnVpbGRSZXN1bHQubWFwKSk7XG4gICAgfVxuXG4gICAgaWYgKHRlcnNlclJlc3VsdC5tYXApIHtcbiAgICAgIHBhcnRpYWxTb3VyY2VtYXBzLnVuc2hpZnQodGVyc2VyUmVzdWx0Lm1hcCk7XG4gICAgfVxuXG4gICAgaWYgKGFzc2V0Lm1hcCkge1xuICAgICAgcGFydGlhbFNvdXJjZW1hcHMucHVzaChhc3NldC5tYXApO1xuICAgIH1cblxuICAgIGZ1bGxTb3VyY2VtYXAgPSByZW1hcHBpbmcocGFydGlhbFNvdXJjZW1hcHMsICgpID0+IG51bGwpO1xuICB9XG5cbiAgcmV0dXJuIHsgbmFtZTogYXNzZXQubmFtZSwgY29kZTogdGVyc2VyUmVzdWx0LmNvZGUsIG1hcDogZnVsbFNvdXJjZW1hcCB9O1xufVxuXG4vKipcbiAqIE9wdGltaXplcyBhIEphdmFTY3JpcHQgYXNzZXQgdXNpbmcgZXNidWlsZC5cbiAqXG4gKiBAcGFyYW0gY29udGVudCBUaGUgSmF2YVNjcmlwdCBhc3NldCBzb3VyY2UgY29udGVudCB0byBvcHRpbWl6ZS5cbiAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBKYXZhU2NyaXB0IGFzc2V0LiBVc2VkIHRvIGdlbmVyYXRlIHNvdXJjZSBtYXBzLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGltaXphdGlvbiByZXF1ZXN0IG9wdGlvbnMgdG8gYXBwbHkgdG8gdGhlIGNvbnRlbnQuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBvcHRpbWl6ZWQgY29kZSwgc291cmNlIG1hcCwgYW5kIGFueSB3YXJuaW5ncy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gb3B0aW1pemVXaXRoRXNidWlsZChcbiAgY29udGVudDogc3RyaW5nLFxuICBuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IE9wdGltaXplUmVxdWVzdFsnb3B0aW9ucyddLFxuKTogUHJvbWlzZTxUcmFuc2Zvcm1SZXN1bHQgfCBCdWlsZEZhaWx1cmU+IHtcbiAgaWYgKCFlc2J1aWxkKSB7XG4gICAgZXNidWlsZCA9IG5ldyBFc2J1aWxkRXhlY3V0b3Iob3B0aW9ucy5hbHdheXNVc2VXYXNtKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGVzYnVpbGQudHJhbnNmb3JtKGNvbnRlbnQsIHtcbiAgICAgIG1pbmlmeUlkZW50aWZpZXJzOiAhb3B0aW9ucy5rZWVwSWRlbnRpZmllck5hbWVzLFxuICAgICAgbWluaWZ5U3ludGF4OiB0cnVlLFxuICAgICAgLy8gTk9URTogRGlzYWJsaW5nIHdoaXRlc3BhY2UgZW5zdXJlcyB1bnVzZWQgcHVyZSBhbm5vdGF0aW9ucyBhcmUga2VwdFxuICAgICAgbWluaWZ5V2hpdGVzcGFjZTogZmFsc2UsXG4gICAgICBwdXJlOiBbJ2ZvcndhcmRSZWYnXSxcbiAgICAgIGxlZ2FsQ29tbWVudHM6IG9wdGlvbnMucmVtb3ZlTGljZW5zZXMgPyAnbm9uZScgOiAnaW5saW5lJyxcbiAgICAgIHNvdXJjZWZpbGU6IG5hbWUsXG4gICAgICBzb3VyY2VtYXA6IG9wdGlvbnMuc291cmNlbWFwICYmICdleHRlcm5hbCcsXG4gICAgICBkZWZpbmU6IG9wdGlvbnMuZGVmaW5lLFxuICAgICAgLy8gVGhpcyBvcHRpb24gc2hvdWxkIGFsd2F5cyBiZSBkaXNhYmxlZCBmb3IgYnJvd3NlciBidWlsZHMgYXMgd2UgZG9uJ3QgcmVseSBvbiBgLm5hbWVgXG4gICAgICAvLyBhbmQgY2F1c2VzIGRlYWRjb2RlIHRvIGJlIHJldGFpbmVkIHdoaWNoIG1ha2VzIGBOR19CVUlMRF9NQU5HTEVgIHVudXNhYmxlIHRvIGludmVzdGlnYXRlIHRyZWUtc2hha2luZyBpc3N1ZXMuXG4gICAgICAvLyBXZSBlbmFibGUgYGtlZXBOYW1lc2Agb25seSBmb3Igc2VydmVyIGJ1aWxkcyBhcyBEb21pbm8gcmVsaWVzIG9uIGAubmFtZWAuXG4gICAgICAvLyBPbmNlIHdlIG5vIGxvbmdlciByZWx5IG9uIERvbWlubyBmb3IgU1NSIHdlIHNob3VsZCBiZSBhYmxlIHRvIHJlbW92ZSB0aGlzLlxuICAgICAga2VlcE5hbWVzOiBvcHRpb25zLmtlZXBOYW1lcyxcbiAgICAgIHRhcmdldDogb3B0aW9ucy50YXJnZXQsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaWYgKGlzRXNCdWlsZEZhaWx1cmUoZXJyb3IpKSB7XG4gICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpbWl6ZXMgYSBKYXZhU2NyaXB0IGFzc2V0IHVzaW5nIHRlcnNlci5cbiAqXG4gKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgSmF2YVNjcmlwdCBhc3NldC4gVXNlZCB0byBnZW5lcmF0ZSBzb3VyY2UgbWFwcy5cbiAqIEBwYXJhbSBjb2RlIFRoZSBKYXZhU2NyaXB0IGFzc2V0IHNvdXJjZSBjb250ZW50IHRvIG9wdGltaXplLlxuICogQHBhcmFtIHNvdXJjZW1hcHMgSWYgdHJ1ZSwgZ2VuZXJhdGUgYW4gb3V0cHV0IHNvdXJjZSBtYXAgZm9yIHRoZSBvcHRpbWl6ZWQgY29kZS5cbiAqIEBwYXJhbSBhZHZhbmNlZCBDb250cm9scyBhZHZhbmNlZCBvcHRpbWl6YXRpb25zLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgb3B0aW1pemVkIGNvZGUgYW5kIHNvdXJjZSBtYXAuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIG9wdGltaXplV2l0aFRlcnNlcihcbiAgbmFtZTogc3RyaW5nLFxuICBjb2RlOiBzdHJpbmcsXG4gIHNvdXJjZW1hcHM6IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIGFkdmFuY2VkOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuKTogUHJvbWlzZTx7IGNvZGU6IHN0cmluZzsgbWFwPzogb2JqZWN0IH0+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbWluaWZ5KFxuICAgIHsgW25hbWVdOiBjb2RlIH0sXG4gICAge1xuICAgICAgY29tcHJlc3M6IHtcbiAgICAgICAgcGFzc2VzOiBhZHZhbmNlZCA/IDIgOiAxLFxuICAgICAgICBwdXJlX2dldHRlcnM6IGFkdmFuY2VkLFxuICAgICAgfSxcbiAgICAgIC8vIFNldCB0byBFUzIwMTUgdG8gcHJldmVudCBoaWdoZXIgbGV2ZWwgZmVhdHVyZXMgZnJvbSBiZWluZyBpbnRyb2R1Y2VkIHdoZW4gYnJvd3NlcnNsaXN0XG4gICAgICAvLyBjb250YWlucyBvbGRlciBicm93c2Vycy4gVGhlIGJ1aWxkIHN5c3RlbSByZXF1aXJlcyBicm93c2VycyB0byBzdXBwb3J0IEVTMjAxNSBhdCBhIG1pbmltdW0uXG4gICAgICBlY21hOiAyMDE1LFxuICAgICAgLy8gZXNidWlsZCBpbiB0aGUgZmlyc3QgcGFzcyBpcyB1c2VkIHRvIG1pbmlmeSBpZGVudGlmaWVycyBpbnN0ZWFkIG9mIG1hbmdsZSBoZXJlXG4gICAgICBtYW5nbGU6IGZhbHNlLFxuICAgICAgLy8gZXNidWlsZCBpbiB0aGUgZmlyc3QgcGFzcyBpcyB1c2VkIHRvIG1pbmlmeSBmdW5jdGlvbiBuYW1lc1xuICAgICAga2VlcF9mbmFtZXM6IHRydWUsXG4gICAgICBmb3JtYXQ6IHtcbiAgICAgICAgLy8gQVNDSUkgb3V0cHV0IGlzIGVuYWJsZWQgaGVyZSBhcyB3ZWxsIHRvIHByZXZlbnQgdGVyc2VyIGZyb20gY29udmVydGluZyBiYWNrIHRvIFVURi04XG4gICAgICAgIGFzY2lpX29ubHk6IHRydWUsXG4gICAgICAgIHdyYXBfZnVuY19hcmdzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBzb3VyY2VNYXA6XG4gICAgICAgIHNvdXJjZW1hcHMgJiZcbiAgICAgICAgKHtcbiAgICAgICAgICBhc09iamVjdDogdHJ1ZSxcbiAgICAgICAgICAvLyB0eXBpbmdzIGRvbid0IGluY2x1ZGUgYXNPYmplY3Qgb3B0aW9uXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgfSBhcyBhbnkpLFxuICAgIH0sXG4gICk7XG5cbiAgaWYgKCFyZXN1bHQuY29kZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGVyc2VyIGZhaWxlZCBmb3IgdW5rbm93biByZWFzb24uJyk7XG4gIH1cblxuICByZXR1cm4geyBjb2RlOiByZXN1bHQuY29kZSwgbWFwOiByZXN1bHQubWFwIGFzIG9iamVjdCB9O1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgYW4gdW5rbm93biB2YWx1ZSBpcyBhbiBlc2J1aWxkIEJ1aWxkRmFpbHVyZSBlcnJvciBvYmplY3QgdGhyb3duIGJ5IGVzYnVpbGQuXG4gKiBAcGFyYW0gdmFsdWUgQSBwb3RlbnRpYWwgZXNidWlsZCBCdWlsZEZhaWx1cmUgZXJyb3Igb2JqZWN0LlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3QgaXMgZGV0ZXJtaW5lZCB0byBiZSBhIEJ1aWxkRmFpbHVyZSBvYmplY3Q7IG90aGVyd2lzZSwgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNFc0J1aWxkRmFpbHVyZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEJ1aWxkRmFpbHVyZSB7XG4gIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgJ2Vycm9ycycgaW4gdmFsdWUgJiYgJ3dhcm5pbmdzJyBpbiB2YWx1ZTtcbn1cbiJdfQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC1vcHRpbWl6ZXItd29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvd2VicGFjay9wbHVnaW5zL2phdmFzY3JpcHQtb3B0aW1pemVyLXdvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7OztBQUVILHNFQUE4QztBQUU5QyxtQ0FBZ0M7QUFDaEMseURBQXFEO0FBOEVyRDs7OztHQUlHO0FBQ0gsSUFBSSxPQUFvQyxDQUFDO0FBRXpDOztHQUVHO0FBQ1ksS0FBSyxvQkFBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQW1CO0lBQ2hFLGtDQUFrQztJQUNsQyxNQUFNLGFBQWEsR0FBRyxNQUFNLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRixJQUFJLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQ25DLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsb0VBQW9FO1lBQ3BFLE1BQU0sRUFBRSxNQUFNLE9BQVEsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztTQUMvRSxDQUFDO0tBQ0g7SUFFRCxrQ0FBa0M7SUFDbEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxrQkFBa0IsQ0FDM0MsS0FBSyxDQUFDLElBQUksRUFDVixhQUFhLENBQUMsSUFBSSxFQUNsQixPQUFPLENBQUMsU0FBUyxFQUNqQixPQUFPLENBQUMsUUFBUSxDQUNqQixDQUFDO0lBRUYsZ0VBQWdFO0lBQ2hFLElBQUksYUFBYSxDQUFDO0lBQ2xCLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtRQUNyQixNQUFNLGlCQUFpQixHQUFH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QUNaLENBQ0YsQ0FBQztJQUVGLElBQUksT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7S0FDdEQ7SUFFRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFhLEVBQUUsQ0FBQztBQUMxRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsS0FBYztJQUN0QyxPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFFBQVEsSUFBSSxLQUFLLElBQUksVUFBVSxJQUFJLEtBQUssQ0FBQztBQUMxRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCByZW1hcHBpbmcgZnJvbSAnQGFtcHByb2plY3QvcmVtYXBwaW5nJztcbmltcG9ydCB0eXBlIHsgQnVpbGRGYWlsdXJlLCBUcmFuc2Zvcm1SZXN1bHQgfSBmcm9tICdlc2J1aWxkJztcbmltcG9ydCB7IG1pbmlmeSB9IGZyb20gJ3RlcnNlcic7XG5pbXBvcnQgeyBFc2J1aWxkRXhlY3V0b3IgfSBmcm9tICcuL2VzYnVpbGQtZXhlY3V0b3InO1xuXG4vKipcbiAqIFRoZSBvcHRpb25zIHRvIHVzZSB3aGVuIG9wdGltaXppbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW1pemVSZXF1ZXN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDb250cm9scyBhZHZhbmNlZCBvcHRpbWl6YXRpb25zLlxuICAgKiBDdXJyZW50bHkgdGhlc2UgYXJlIG9ubHkgdGVyc2VyIHJlbGF0ZWQ6XG4gICAqICogdGVyc2VyIGNvbXByZXNzIHBhc3NlcyBhcmUgc2V0IHRvIDJcbiAgICogKiB0ZXJzZXIgcHVyZV9nZXR0ZXJzIG9wdGlvbiBpcyBlbmFibGVkXG4gICAqL1xuICBhZHZhbmNlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHN0cmluZyB0b2tlbnMgdGhhdCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCBhIGRlZmluZWQgdmFsdWUuXG4gICAqL1xuICBkZWZpbmU/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogQ29udHJvbHMgd2hldGhlciBjbGFzcywgZnVuY3Rpb24sIGFuZCB2YXJpYWJsZSBuYW1lcyBzaG91bGQgYmUgbGVmdCBpbnRhY3RcbiAgICogdGhyb3VnaG91dCB0aGUgb3V0cHV0IGNvZGUuXG4gICAqL1xuICBrZWVwSWRlbnRpZmllck5hbWVzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIHRvIHJldGFpbiB0aGUgb3JpZ2luYWwgbmFtZSBvZiBjbGFzc2VzIGFuZCBmdW5jdGlvbnMuXG4gICAqL1xuICBrZWVwTmFtZXM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIGxpY2Vuc2UgdGV4dCBpcyByZW1vdmVkIGZyb20gdGhlIG91dHB1dCBjb2RlLlxuICAgKiBXaXRoaW4gdGhlIENMSSwgdGhpcyBvcHRpb24gaXMgbGlua2VkIHRvIHRoZSBsaWNlbnNlIGV4dHJhY3Rpb24gZnVuY3Rpb25hbGl0eS5cbiAgICovXG4gIHJlbW92ZUxpY2Vuc2VzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgc291cmNlIG1hcHMgc2hvdWxkIGJlIGdlbmVyYXRlZC5cbiAgICovXG4gIHNvdXJjZW1hcD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGVzYnVpbGQgdGFyZ2V0cy5cbiAgICogQHNlZTogaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3RhcmdldFxuICAgKi9cbiAgdGFyZ2V0Pzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIGVzYnVpbGQgc2hvdWxkIG9ubHkgdXNlIHRoZSBXQVNNLXZhcmlhbnQgaW5zdGVhZCBvZiB0cnlpbmcgdG9cbiAgICogdXNlIHRoZSBuYXRpdmUgdmFyaWFudC4gU29tZSBwbGF0Zm9ybXMgbWF5IG5vdCBzdXBwb3J0IHRoZSBuYXRpdmUtdmFyaWFudCBhbmRcbiAgICogdGhpcyBvcHRpb24gYWxsb3dzIG9uZSBzdXBwb3J0IHRlc3QgdG8gYmUgY29uZHVjdGVkIHByaW9yIHRvIGFsbCB0aGUgd29ya2VycyBzdGFydGluZy5cbiAgICovXG4gIGFsd2F5c1VzZVdhc206IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSByZXF1ZXN0IHRvIG9wdGltaXplIEphdmFTY3JpcHQgdXNpbmcgdGhlIHN1cHBsaWVkIG9wdGlvbnMuXG4gKi9cbmludGVyZmFjZSBPcHRpbWl6ZVJlcXVlc3Qge1xuICAvKipcbiAgICogVGhlIG9wdGlvbnMgdG8gdXNlIHdoZW4gb3B0aW1pemluZy5cbiAgICovXG4gIG9wdGlvbnM6IE9wdGltaXplUmVxdWVzdE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSBKYXZhU2NyaXB0IGFzc2V0IHRvIG9wdGltaXplLlxuICAgKi9cbiAgYXNzZXQ6IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgSmF2YVNjcmlwdCBhc3NldCAodHlwaWNhbGx5IHRoZSBmaWxlbmFtZSkuXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBzb3VyY2UgY29udGVudCBvZiB0aGUgSmF2YVNjcmlwdCBhc3NldC5cbiAgICAgKi9cbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIHNvdXJjZSBtYXAgb2YgdGhlIEphdmFTY3JpcHQgYXNzZXQsIGlmIGF2YWlsYWJsZS5cbiAgICAgKiBUaGlzIG1hcCBpcyBtZXJnZWQgd2l0aCBhbGwgaW50ZXJtZWRpYXRlIHNvdXJjZSBtYXBzIGR1cmluZyBvcHRpbWl6YXRpb24uXG4gICAgICovXG4gICAgbWFwOiBvYmplY3Q7XG4gIH07XG59XG5cbi8qKlxuICogVGhlIGNhY2hlZCBlc2J1aWxkIGV4ZWN1dG9yLlxuICogVGhpcyB3aWxsIGF1dG9tYXRpY2FsbHkgdXNlIHRoZSBuYXRpdmUgb3IgV0FTTSB2ZXJzaW9uIGJhc2VkIG9uIHBsYXRmb3JtIGFuZCBhdmFpbGFiaWxpdHlcbiAqIHdpdGggdGhlIG5hdGl2ZSB2ZXJzaW9uIGdpdmVuIHByaW9yaXR5IGR1ZSB0byBpdHMgc3VwZXJpb3IgcGVyZm9ybWFuY2UuXG4gKi9cbmxldCBlc2J1aWxkOiBFc2J1aWxkRXhlY3V0b3IgfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogSGFuZGxlcyBvcHRpbWl6YXRpb24gcmVxdWVzdHMgc2VudCBmcm9tIHRoZSBtYWluIHRocmVhZCB2aWEgdGhlIGBKYXZhU2NyaXB0T3B0aW1pemVyUGx1Z2luYC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gKHsgYXNzZXQsIG9wdGlvbnMgfTogT3B0aW1pemVSZXF1ZXN0KSB7XG4gIC8vIGVzYnVpbGQgaXMgdXNlZCBhcyBhIGZpcnN0IHBhc3NcbiAgY29uc3QgZXNidWlsZFJlc3VsdCA9IGF3YWl0IG9wdGltaXplV2l0aEVzYnVpbGQoYXNzZXQuY29kZSwgYXNzZXQubmFtZSwgb3B0aW9ucyk7XG4gIGlmIChpc0VzQnVpbGRGYWlsdXJlKGVzYnVpbGRSZXN1bHQpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGFzc2V0Lm5hbWUsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgZXJyb3JzOiBhd2FpdCBlc2J1aWxkIS5mb3JtYXRNZXNzYWdlcyhlc2J1aWxkUmVzdWx0LmVycm9ycywgeyBraW5kOiAnZXJyb3InIH0pLFxuICAgIH07XG4gIH1cblxuICAvLyB0ZXJzZXIgaXMgdXNlZCBhcyBhIHNlY29uZCBwYXNzXG4gIGNvbnN0IHRlcnNlclJlc3VsdCA9IGF3YWl0IG9wdGltaXplV2l0aFRlcnNlcihcbiAgICBhc3NldC5uYW1lLFxuICAgIGVzYnVpbGRSZXN1bHQuY29kZSxcbiAgICBvcHRpb25zLnNvdXJjZW1hcCxcbiAgICBvcHRpb25zLmFkdmFuY2VkLFxuICApO1xuXG4gIC8vIE1lcmdlIGludGVybWVkaWF0ZSBzb3VyY2VtYXBzIHdpdGggaW5wdXQgc291cmNlbWFwIGlmIGVuYWJsZWRcbiAgbGV0IGZ1bGxTb3VyY2VtYXA7XG4gIGlmIChvcHRpb25zLnNvdXJjZW1hcCkge1xuICAgIGNvbnN0IHBhcnRpYWxTb3VyY2VtYXBzID0gW107XG5cbiAgICBpZiAoZXNidWlsZFJlc3VsdC5tYXApIHtcbiAgICAgIHBhcnRpYWxTb3VyY2VtYXBzLnVuc2hpZnQoSlNPTi5wYXJzZShlc2J1aWxkUmVzdWx0Lm1hcCkpO1xuICAgIH1cblxuICAgIGlmICh0ZXJzZXJSZXN1bHQubWFwKSB7XG4gICAgICBwYXJ0aWFsU291cmNlbWFwcy51bnNoaWZ0KHRlcnNlclJlc3VsdC5tYXApO1xuICAgIH1cblxuICAgIGlmIChhc3NldC5tYXApIHtcbiAgICAgIHBhcnRpYWxTb3VyY2VtYXBzLnB1c2goYXNzZXQubWFwKTtcbiAgICB9XG5cbiAgICBmdWxsU291cmNlbWFwID0gcmVtYXBwaW5nKHBhcnRpYWxTb3VyY2VtYXBzLCAoKSA9PiBudWxsKTtcbiAgfVxuXG4gIHJldHVybiB7IG5hbWU6IGFzc2V0Lm5hbWUsIGNvZGU6IHRlcnNlclJlc3VsdC5jb2RlLCBtYXA6IGZ1bGxTb3VyY2VtYXAgfTtcbn1cblxuLyoqXG4gKiBPcHRpbWl6ZXMgYSBKYXZhU2NyaXB0IGFzc2V0IHVzaW5nIGVzYnVpbGQuXG4gKlxuICogQHBhcmFtIGNvbnRlbnQgVGhlIEphdmFTY3JpcHQgYXNzZXQgc291cmNlIGNvbnRlbnQgdG8gb3B0aW1pemUuXG4gKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgSmF2YVNjcmlwdCBhc3NldC4gVXNlZCB0byBnZW5lcmF0ZSBzb3VyY2UgbWFwcy5cbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpbWl6YXRpb24gcmVxdWVzdCBvcHRpb25zIHRvIGFwcGx5IHRvIHRoZSBjb250ZW50LlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgb3B0aW1pemVkIGNvZGUsIHNvdXJjZSBtYXAsIGFuZCBhbnkgd2FybmluZ3MuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIG9wdGltaXplV2l0aEVzYnVpbGQoXG4gIGNvbnRlbnQ6IHN0cmluZyxcbiAgbmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBPcHRpbWl6ZVJlcXVlc3RbJ29wdGlvbnMnXSxcbik6IFByb21pc2U8VHJhbnNmb3JtUmVzdWx0IHwgQnVpbGRGYWlsdXJlPiB7XG4gIGlmICghZXNidWlsZCkge1xuICAgIGVzYnVpbGQgPSBuZXcgRXNidWlsZEV4ZWN1dG9yKG9wdGlvbnMuYWx3YXlzVXNlV2FzbSk7XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBlc2J1aWxkLnRyYW5zZm9ybShjb250ZW50LCB7XG4gICAgICBtaW5pZnlJZGVudGlmaWVyczogIW9wdGlvbnMua2VlcElkZW50aWZpZXJOYW1lcyxcbiAgICAgIG1pbmlmeVN5bnRheDogdHJ1ZSxcbiAgICAgIC8vIE5PVEU6IERpc2FibGluZyB3aGl0ZXNwYWNlIGVuc3VyZXMgdW51c2VkIHB1cmUgYW5ub3RhdGlvbnMgYXJlIGtlcHRcbiAgICAgIG1pbmlmeVdoaXRlc3BhY2U6IGZhbHNlLFxuICAgICAgcHVyZTogWydmb3J3YXJkUmVmJ10sXG4gICAgICBsZWdhbENvbW1lbnRzOiBvcHRpb25zLnJlbW92ZUxpY2Vuc2VzID8gJ25vbmUnIDogJ2lubGluZScsXG4gICAgICBzb3VyY2VmaWxlOiBuYW1lLFxuICAgICAgc291cmNlbWFwOiBvcHRpb25zLnNvdXJjZW1hcCAmJiAnZXh0ZXJuYWwnLFxuICAgICAgZGVmaW5lOiBvcHRpb25zLmRlZmluZSxcbiAgICAgIC8vIFRoaXMgb3B0aW9uIHNob3VsZCBhbHdheXMgYmUgZGlzYWJsZWQgZm9yIGJyb3dzZXIgYnVpbGRzIGFzIHdlIGRvbid0IHJlbHkgb24gYC5uYW1lYFxuICAgICAgLy8gYW5kIGNhdXNlcyBkZWFkY29kZSB0byBiZSByZXRhaW5lZCB3aGljaCBtYWtlcyBgTkdfQlVJTERfTUFOR0xFYCB1bnVzYWJsZSB0byBpbnZlc3RpZ2F0ZSB0cmVlLXNoYWtpbmcgaXNzdWVzLlxuICAgICAgLy8gV2UgZW5hYmxlIGBrZWVwTmFtZXNgIG9ubHkgZm9yIHNlcnZlciBidWlsZHMgYXMgRG9taW5vIHJlbGllcyBvbiBgLm5hbWVgLlxuICAgICAgLy8gT25jZSB3ZSBubyBsb25nZXIgcmVseSBvbiBEb21pbm8gZm9yIFNTUiB3ZSBzaG91bGQgYmUgYWJsZSB0byByZW1vdmUgdGhpcy5cbiAgICAgIGtlZXBOYW1lczogb3B0aW9ucy5rZWVwTmFtZXMsXG4gICAgICB0YXJnZXQ6IG9wdGlvbnMudGFyZ2V0LFxuICAgIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChpc0VzQnVpbGRGYWlsdXJlKGVycm9yKSkge1xuICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cbi8qKlxuICogT3B0aW1pemVzIGEgSmF2YVNjcmlwdCBhc3NldCB1c2luZyB0ZXJzZXIuXG4gKlxuICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIEphdmFTY3JpcHQgYXNzZXQuIFVzZWQgdG8gZ2VuZXJhdGUgc291cmNlIG1hcHMuXG4gKiBAcGFyYW0gY29kZSBUaGUgSmF2YVNjcmlwdCBhc3NldCBzb3VyY2UgY29udGVudCB0byBvcHRpbWl6ZS5cbiAqIEBwYXJhbSBzb3VyY2VtYXBzIElmIHRydWUsIGdlbmVyYXRlIGFuIG91dHB1dCBzb3VyY2UgbWFwIGZvciB0aGUgb3B0aW1pemVkIGNvZGUuXG4gKiBAcGFyYW0gYWR2YW5jZWQgQ29udHJvbHMgYWR2YW5jZWQgb3B0aW1pemF0aW9ucy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIG9wdGltaXplZCBjb2RlIGFuZCBzb3VyY2UgbWFwLlxuICovXG5hc3luYyBmdW5jdGlvbiBvcHRpbWl6ZVdpdGhUZXJzZXIoXG4gIG5hbWU6IHN0cmluZyxcbiAgY29kZTogc3RyaW5nLFxuICBzb3VyY2VtYXBzOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBhZHZhbmNlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCxcbik6IFByb21pc2U8eyBjb2RlOiBzdHJpbmc7IG1hcD86IG9iamVjdCB9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1pbmlmeShcbiAgICB7IFtuYW1lXTogY29kZSB9LFxuICAgIHtcbiAgICAgIGNvbXByZXNzOiB7XG4gICAgICAgIHBhc3NlczogYWR2YW5jZWQgPyAyIDogMSxcbiAgICAgICAgcHVyZV9nZXR0ZXJzOiBhZHZhbmNlZCxcbiAgICAgIH0sXG4gICAgICAvLyBTZXQgdG8gRVMyMDE1IHRvIHByZXZlbnQgaGlnaGVyIGxldmVsIGZlYXR1cmVzIGZyb20gYmVpbmcgaW50cm9kdWNlZCB3aGVuIGJyb3dzZXJzbGlzdFxuICAgICAgLy8gY29udGFpbnMgb2xkZXIgYnJvd3NlcnMuIFRoZSBidWlsZCBzeXN0ZW0gcmVxdWlyZXMgYnJvd3NlcnMgdG8gc3VwcG9ydCBFUzIwMTUgYXQgYSBtaW5pbXVtLlxuICAgICAgZWNtYTogMjAxNSxcbiAgICAgIC8vIGVzYnVpbGQgaW4gdGhlIGZpcnN0IHBhc3MgaXMgdXNlZCB0byBtaW5pZnkgaWRlbnRpZmllcnMgaW5zdGVhZCBvZiBtYW5nbGUgaGVyZVxuICAgICAgbWFuZ2xlOiBmYWxzZSxcbiAgICAgIC8vIGVzYnVpbGQgaW4gdGhlIGZpcnN0IHBhc3MgaXMgdXNlZCB0byBtaW5pZnkgZnVuY3Rpb24gbmFtZXNcbiAgICAgIGtlZXBfZm5hbWVzOiB0cnVlLFxuICAgICAgZm9ybWF0OiB7XG4gICAgICAgIC8vIEFTQ0lJIG91dHB1dCBpcyBlbmFibGVkIGhlcmUgYXMgd2VsbCB0byBwcmV2ZW50IHRlcnNlciBmcm9tIGNvbnZlcnRpbmcgYmFjayB0byBVVEYtOFxuICAgICAgICBhc2NpaV9vbmx5OiB0cnVlLFxuICAgICAgICB3cmFwX2Z1bmNfYXJnczogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc291cmNlTWFwOlxuICAgICAgICBzb3VyY2VtYXBzICYmXG4gICAgICAgICh7XG4gICAgICAgICAgYXNPYmplY3Q6IHRydWUsXG4gICAgICAgICAgLy8gdHlwaW5ncyBkb24ndCBpbmNsdWRlIGFzT2JqZWN0IG9wdGlvblxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIH0gYXMgYW55KSxcbiAgICB9LFxuICApO1xuXG4gIGlmICh0eXBlb2YgcmVzdWx0LmNvZGUgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUZXJzZXIgZmFpbGVkIGZvciB1bmtub3duIHJlYXNvbi4nKTtcbiAgfVxuXG4gIHJldHVybiB7IGNvZGU6IHJlc3VsdC5jb2RlLCBtYXA6IHJlc3VsdC5tYXAgYXMgb2JqZWN0IH07XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhbiB1bmtub3duIHZhbHVlIGlzIGFuIGVzYnVpbGQgQnVpbGRGYWlsdXJlIGVycm9yIG9iamVjdCB0aHJvd24gYnkgZXNidWlsZC5cbiAqIEBwYXJhbSB2YWx1ZSBBIHBvdGVudGlhbCBlc2J1aWxkIEJ1aWxkRmFpbHVyZSBlcnJvciBvYmplY3QuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG9iamVjdCBpcyBkZXRlcm1pbmVkIHRvIGJlIGEgQnVpbGRGYWlsdXJlIG9iamVjdDsgb3RoZXJ3aXNlLCBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0VzQnVpbGRGYWlsdXJlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgQnVpbGRGYWlsdXJlIHtcbiAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAnZXJyb3JzJyBpbiB2YWx1ZSAmJiAnd2FybmluZ3MnIGluIHZhbHVlO1xufVxuIl19
@@ -112,9 +112,9 @@ const init = (config, emitter) => {
112
112
  if (error) {
113
113
  throw error;
114
114
  }
115
- if (stats === null || stats === void 0 ? void 0 : stats.hasErrors()) {
115
+ if (stats?.hasErrors()) {
116
116
  // Only generate needed JSON stats and when needed.
117
- const statsJson = stats === null || stats === void 0 ? void 0 : stats.toJson({
117
+ const statsJson = stats?.toJson({
118
118
  all: false,
119
119
  children: true,
120
120
  errors: true,
@@ -133,7 +133,7 @@ const init = (config, emitter) => {
133
133
  });
134
134
  function handler(callback) {
135
135
  isBlocked = true;
136
- callback === null || callback === void 0 ? void 0 : callback();
136
+ callback?.();
137
137
  }
138
138
  compiler.hooks.invalid.tap('karma', () => handler());
139
139
  compiler.hooks.watchRun.tapAsync('karma', (_, callback) => handler(callback));
@@ -267,4 +267,4 @@ module.exports = {
267
267
  'middleware:@angular-devkit/build-angular--blocker': ['factory', requestBlocker],
268
268
  'middleware:@angular-devkit/build-angular--fallback': ['factory', fallbackMiddleware],
269
269
  };
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FybWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy93ZWJwYWNrL3BsdWdpbnMva2FybWEva2FybWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtILDJDQUE2QjtBQUM3QixzREFBOEI7QUFDOUIsb0ZBQTBEO0FBRTFELDZDQUF3RDtBQUN4RCxvREFBZ0U7QUFHaEUsZ0RBQTJEO0FBRTNELE1BQU0sc0JBQXNCLEdBQUcsaUJBQWlCLENBQUM7QUFFakQsSUFBSSxPQUFPLEdBQVUsRUFBRSxDQUFDO0FBQ3hCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztBQUN0QixJQUFJLGlCQUFzQixDQUFDO0FBQzNCLElBQUksU0FBcUIsQ0FBQztBQUMxQixJQUFJLFNBQXFCLENBQUM7QUFFMUIsTUFBTSxJQUFJLEdBQVEsQ0FBQyxNQUFXLEVBQUUsT0FBWSxFQUFFLEVBQUU7SUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUU7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FDYiw0RUFBNEU7WUFDMUUsNkVBQTZFLENBQ2hGLENBQUM7S0FDSDtJQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBdUIsQ0FBQztJQUM1RCxNQUFNLE1BQU0sR0FBbUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksSUFBQSwwQkFBbUIsR0FBRSxDQUFDO0lBQ25GLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztJQUMxQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7SUFFMUMsNENBQTRDO0lBQzVDLElBQUksSUFBQSwyQkFBbUIsRUFBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENB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QUFDLEVBQUU7b0JBQ3BELFFBQVEsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO29CQUMxQixRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7aUJBQ2hCO3FCQUFNO29CQUNMLElBQUksRUFBRSxDQUFDO2lCQUNSO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxFQUFFLENBQUM7U0FDUjtJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHO0lBQ2YseUNBQXlDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDO0lBQzVELDREQUE0RCxFQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDO0lBQ3pGLHdEQUF3RCxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQztJQUNqRixtREFBbUQsRUFBRSxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUM7SUFDaEYsb0RBQW9ELEVBQUUsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUM7Q0FDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gVE9ETzogY2xlYW51cCB0aGlzIGZpbGUsIGl0J3MgY29waWVkIGFzIGlzIGZyb20gQW5ndWxhciBDTEkuXG5pbXBvcnQgKiBhcyBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB3ZWJwYWNrIGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IHdlYnBhY2tEZXZNaWRkbGV3YXJlIGZyb20gJ3dlYnBhY2stZGV2LW1pZGRsZXdhcmUnO1xuXG5pbXBvcnQgeyBzdGF0c0Vycm9yc1RvU3RyaW5nIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3RhdHMnO1xuaW1wb3J0IHsgY3JlYXRlQ29uc29sZUxvZ2dlciB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUnO1xuaW1wb3J0IHsgbG9nZ2luZyB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7IEJ1aWxkT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2J1aWxkLW9wdGlvbnMnO1xuaW1wb3J0IHsgbm9ybWFsaXplU291cmNlTWFwcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2luZGV4JztcblxuY29uc3QgS0FSTUFfQVBQTElDQVRJT05fUEFUSCA9ICdfa2FybWFfd2VicGFja18nO1xuXG5sZXQgYmxvY2tlZDogYW55W10gPSBbXTtcbmxldCBpc0Jsb2NrZWQgPSBmYWxzZTtcbmxldCB3ZWJwYWNrTWlkZGxld2FyZTogYW55O1xubGV0IHN1Y2Nlc3NDYjogKCkgPT4gdm9pZDtcbmxldCBmYWlsdXJlQ2I6ICgpID0+IHZvaWQ7XG5cbmNvbnN0IGluaXQ6IGFueSA9IChjb25maWc6IGFueSwgZW1pdHRlcjogYW55KSA9PiB7XG4gIGlmICghY29uZmlnLmJ1aWxkV2VicGFjaykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUaGUgJ0Bhbmd1bGFyLWRldmtpdC9idWlsZC1hbmd1bGFyL3BsdWdpbnMva2FybWEnIGthcm1hIHBsdWdpbiBpcyBtZWFudCB0b2AgK1xuICAgICAgICBgIGJlIHVzZWQgZnJvbSB3aXRoaW4gQW5ndWxhciBDTEkgYW5kIHdpbGwgbm90IHdvcmsgY29ycmVjdGx5IG91dHNpZGUgb2YgaXQuYCxcbiAgICApO1xuICB9XG4gIGNvbnN0IG9wdGlvbnMgPSBjb25maWcuYnVpbGRXZWJwYWNrLm9wdGlvbnMgYXMgQnVpbGRPcHRpb25zO1xuICBjb25zdCBsb2dnZXI6IGxvZ2dpbmcuTG9nZ2VyID0gY29uZmlnLmJ1aWxkV2VicGFjay5sb2dnZXIgfHwgY3JlYXRlQ29uc29sZUxvZ2dlcigpO1xuICBzdWNjZXNzQ2IgPSBjb25maWcuYnVpbGRXZWJwYWNrLnN1Y2Nlc3NDYjtcbiAgZmFpbHVyZUNiID0gY29uZmlnLmJ1aWxkV2VicGFjay5mYWlsdXJlQ2I7XG5cbiAgLy8gQWRkIGEgcmVwb3J0ZXIgdGhhdCBmaXhlcyBzb3VyY2VtYXAgdXJscy5cbiAgaWYgKG5vcm1hbGl6ZVNvdXJjZU1hcHMob3B0aW9ucy5zb3VyY2VNYXApLnNjcmlwdHMpIHtcbiAgICBjb25maWcucmVwb3J0ZXJzLnVuc2hpZnQoJ0Bhbmd1bGFyLWRldmtpdC9idWlsZC1hbmd1bGFyLS1zb3VyY2VtYXAtcmVwb3J0ZXInKTtcblxuICAgIC8vIENvZGUgdGFrZW4gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdHNjaGF1Yi9rYXJtYS1zb3VyY2UtbWFwLXN1cHBvcnQuXG4gICAgLy8gV2UgY2FuJ3QgdXNlIGl0IGRpcmVjdGx5IGJlY2F1c2Ugd2UgbmVlZCB0byBhZGQgaXQgY29uZGl0aW9uYWxseSBpbiB0aGlzIGZpbGUsIGFuZCBrYXJtYVxuICAgIC8vIGZyYW1ld29ya3MgY2Fubm90IGJlIGFkZGVkIGR5bmFtaWNhbGx5LlxuICAgIGNvbnN0IHNtc1BhdGggPSBwYXRoLmRpcm5hbWUocmVxdWlyZS5yZXNvbHZlKCdzb3VyY2UtbWFwLXN1cHBvcnQnKSk7XG4gICAgY29uc3Qga3Ntc1BhdGggPSBwYXRoLmRpcm5hbWUocmVxdWlyZS5yZXNvbHZlKCdrYXJtYS1zb3VyY2UtbWFwLXN1cHBvcnQnKSk7XG5cbiAgICBjb25maWcuZmlsZXMudW5zaGlmdChcbiAgICAgIHtcbiAgICAgICAgcGF0dGVybjogcGF0aC5qb2luKHNtc1BhdGgsICdicm93c2VyLXNvdXJjZS1tYXAtc3VwcG9ydC5qcycpLFxuICAgICAgICBpbmNsdWRlZDogdHJ1ZSxcbiAgICAgICAgc2VydmVkOiB0cnVlLFxuICAgICAgICB3YXRjaGVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7IHBhdHRlcm46IHBhdGguam9pbihrc21zUGF0aCwgJ2NsaWVudC5qcycpLCBpbmNsdWRlZDogdHJ1ZSwgc2VydmVkOiB0cnVlLCB3YXRjaGVkOiBmYWxzZSB9LFxuICAgICk7XG4gIH1cblxuICBjb25maWcucmVwb3J0ZXJzLnVuc2hpZnQoJ0Bhbmd1bGFyLWRldmtpdC9idWlsZC1hbmd1bGFyLS1ldmVudC1yZXBvcnRlcicpO1xuXG4gIC8vIFdoZW4gdXNpbmcgY29kZS1jb3ZlcmFnZSwgYXV0by1hZGQga2FybWEtY292ZXJhZ2UuXG4gIGlmIChcbiAgICBvcHRpb25zLmNvZGVDb3ZlcmFnZSAmJlxuICAgICFjb25maWcucmVwb3J0ZXJzLnNvbWUoKHI6IHN0cmluZykgPT4gciA9PT0gJ2NvdmVyYWdlJyB8fCByID09PSAnY292ZXJhZ2UtaXN0YW5idWwnKVxuICApIHtcbiAgICBjb25maWcucmVwb3J0ZXJzLnB1c2goJ2NvdmVyYWdlJyk7XG4gIH1cblxuICAvLyBBZGQgd2VicGFjayBjb25maWcuXG4gIGNvbnN0IHdlYnBhY2tDb25maWcgPSBjb25maWcuYnVpbGRXZWJwYWNrLndlYnBhY2tDb25maWc7XG4gIGNvbnN0IHdlYnBhY2tNaWRkbGV3YXJlQ29uZmlnID0ge1xuICAgIC8vIEhpZGUgd2VicGFjayBvdXRwdXQgYmVjYXVzZSBpdHMgbm9pc3kuXG4gICAgc3RhdHM6IGZhbHNlLFxuICAgIHB1YmxpY1BhdGg6IGAvJHtLQVJNQV9BUFBMSUNBVElPTl9QQVRIfS9gLFxuICB9O1xuXG4gIC8vIFVzZSBleGlzdGluZyBjb25maWcgaWYgYW55LlxuICBjb25maWcud2VicGFjayA9IHsgLi4ud2VicGFja0NvbmZpZywgLi4uY29uZmlnLndlYnBhY2sgfTtcbiAgY29uZmlnLndlYnBhY2tNaWRkbGV3YXJlID0geyAuLi53ZWJwYWNrTWlkZGxld2FyZUNvbmZpZywgLi4uY29uZmlnLndlYnBhY2tNaWRkbGV3YXJlIH07XG5cbiAgLy8gT3VyIGN1c3RvbSBjb250ZXh0IGFuZCBkZWJ1ZyBmaWxlcyBsaXN0IHRoZSB3ZWJwYWNrIGJ1bmRsZXMgZGlyZWN0bHkgaW5zdGVhZCBvZiB1c2luZ1xuICAvLyB0aGUga2FybWEgZmlsZXMgYXJyYXkuXG4gIGNvbmZpZy5jdXN0b21Db250ZXh0RmlsZSA9IGAke19fZGlybmFtZX0va2FybWEtY29udGV4dC5odG1sYDtcbiAgY29uZmlnLmN1c3RvbURlYnVnRmlsZSA9IGAke19fZGlybmFtZX0va2FybWEtZGVidWcuaHRtbGA7XG5cbiAgLy8gQWRkIHRoZSByZXF1ZXN0IGJsb2NrZXIgYW5kIHRoZSB3ZWJwYWNrIHNlcnZlciBmYWxsYmFjay5cbiAgY29uZmlnLmJlZm9yZU1pZGRsZXdhcmUgPSBjb25maWcuYmVmb3JlTWlkZGxld2FyZSB8fCBbXTtcbiAgY29uZmlnLmJlZm9yZU1pZGRsZXdhcmUucHVzaCgnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXItLWJsb2NrZXInKTtcbiAgY29uZmlnLm1pZGRsZXdhcmUgPSBjb25maWcubWlkZGxld2FyZSB8fCBbXTtcbiAgY29uZmlnLm1pZGRsZXdhcmUucHVzaCgnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXItLWZhbGxiYWNrJyk7XG5cbiAgaWYgKGNvbmZpZy5zaW5nbGVSdW4pIHtcbiAgICAvLyBUaGVyZSdzIG5vIG9wdGlvbiB0byB0dXJuIG9mZiBmaWxlIHdhdGNoaW5nIGluIHdlYnBhY2stZGV2LXNlcnZlciwgYnV0XG4gICAgLy8gd2UgY2FuIG92ZXJyaWRlIHRoZSBmaWxlIHdhdGNoZXIgaW5zdGVhZC5cbiAgICB3ZWJwYWNrQ29uZmlnLnBsdWdpbnMudW5zaGlmdCh7XG4gICAgICBhcHBseTogKGNvbXBpbGVyOiBhbnkpID0+IHtcbiAgICAgICAgY29tcGlsZXIuaG9va3MuYWZ0ZXJFbnZpcm9ubWVudC50YXAoJ2thcm1hJywgKCkgPT4ge1xuICAgICAgICAgIGNvbXBpbGVyLndhdGNoRmlsZVN5c3RlbSA9IHsgd2F0Y2g6ICgpID0+IHt9IH07XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICAvLyBGaWxlcyBuZWVkIHRvIGJlIHNlcnZlZCBmcm9tIGEgY3VzdG9tIHBhdGggZm9yIEthcm1hLlxuICB3ZWJwYWNrQ29uZmlnLm91dHB1dC5wYXRoID0gYC8ke0tBUk1BX0FQUExJQ0FUSU9OX1BBVEh9L2A7XG4gIHdlYnBhY2tDb25maWcub3V0cHV0LnB1YmxpY1BhdGggPSBgLyR7S0FSTUFfQVBQTElDQVRJT05fUEFUSH0vYDtcblxuICBjb25zdCBjb21waWxlciA9IHdlYnBhY2sod2VicGFja0NvbmZpZywgKGVycm9yLCBzdGF0cykgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRzPy5oYXNFcnJvcnMoKSkge1xuICAgICAgLy8gT25seSBnZW5lcmF0ZSBuZWVkZWQgSlNPTiBzdGF0cyBhbmQgd2hlbiBuZWVkZWQuXG4gICAgICBjb25zdCBzdGF0c0pzb24gPSBzdGF0cz8udG9Kc29uKHtcbiAgICAgICAgYWxsOiBmYWxzZSxcbiAgICAgICAgY2hpbGRyZW46IHRydWUsXG4gICAgICAgIGVycm9yczogdHJ1ZSxcbiAgICAgICAgd2FybmluZ3M6IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgbG9nZ2VyLmVycm9yKHN0YXRzRXJyb3JzVG9TdHJpbmcoc3RhdHNKc29uLCB7IGNvbG9yczogdHJ1ZSB9KSk7XG5cbiAgICAgIGlmIChjb25maWcuc2luZ2xlUnVuKSB7XG4gICAgICAgIC8vIE5vdGlmeSBwb3RlbnRpYWwgbGlzdGVuZXJzIG9mIHRoZSBjb21waWxlIGVycm9yLlxuICAgICAgICBlbWl0dGVyLmVtaXQoJ2xvYWRfZXJyb3InKTtcbiAgICAgIH1cblxuICAgICAgLy8gRmluaXNoIEthcm1hIHJ1biBlYXJseSBpbiBjYXNlIG9mIGNvbXBpbGF0aW9uIGVycm9yLlxuICAgICAgZW1pdHRlci5lbWl0KCdydW5fY29tcGxldGUnLCBbXSwgeyBleGl0Q29kZTogMSB9KTtcblxuICAgICAgLy8gRW1pdCBhIGZhaWx1cmUgYnVpbGQgZXZlbnQgaWYgdGhlcmUgYXJlIGNvbXBpbGF0aW9uIGVycm9ycy5cbiAgICAgIGZhaWx1cmVDYigpO1xuICAgIH1cbiAgfSk7XG5cbiAgZnVuY3Rpb24gaGFuZGxlcihjYWxsYmFjaz86ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBpc0Jsb2NrZWQgPSB0cnVlO1xuICAgIGNhbGxiYWNrPy4oKTtcbiAgfVxuXG4gIGNvbXBpbGVyLmhvb2tzLmludmFsaWQudGFwKCdrYXJtYScsICgpID0+IGhhbmRsZXIoKSk7XG4gIGNvbXBpbGVyLmhvb2tzLndhdGNoUnVuLnRhcEFzeW5jKCdrYXJtYScsIChfOiBhbnksIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSA9PiBoYW5kbGVyKGNhbGxiYWNrKSk7XG4gIGNvbXBpbGVyLmhvb2tzLnJ1bi50YXBBc3luYygna2FybWEnLCAoXzogYW55LCBjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4gaGFuZGxlcihjYWxsYmFjaykpO1xuXG4gIHdlYnBhY2tNaWRkbGV3YXJlID0gd2VicGFja0Rldk1pZGRsZXdhcmUoY29tcGlsZXIsIHdlYnBhY2tNaWRkbGV3YXJlQ29uZmlnKTtcbiAgZW1pdHRlci5vbignZXhpdCcsIChkb25lOiBhbnkpID0+IHtcbiAgICB3ZWJwYWNrTWlkZGxld2FyZS5jbG9zZSgpO1xuICAgIGNvbXBpbGVyLmNsb3NlKCgpID0+IGRvbmUoKSk7XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIHVuYmxvY2soKSB7XG4gICAgaXNCbG9ja2VkID0gZmFsc2U7XG4gICAgYmxvY2tlZC5mb3JFYWNoKChjYikgPT4gY2IoKSk7XG4gICAgYmxvY2tlZCA9IFtdO1xuICB9XG5cbiAgbGV0IGxhc3RDb21waWxhdGlvbkhhc2g6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGV0IGlzRmlyc3RSdW4gPSB0cnVlO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgIGNvbXBpbGVyLmhvb2tzLmRvbmUudGFwKCdrYXJtYScsIChzdGF0cykgPT4ge1xuICAgICAgaWYgKGlzRmlyc3RSdW4pIHtcbiAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gYmxvY2sgS2FybWEgZnJvbSBsYXVuY2hpbmcgYnJvd3NlcnMgYmVmb3JlIFdlYnBhY2sgd3JpdGVzIHRoZSBhc3NldHMgaW4gbWVtb3J5LlxuICAgICAgICAvLyBTZWUgdGhlIGJlbG93OlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20va2FybWEtcnVubmVyL2thcm1hLWNocm9tZS1sYXVuY2hlci9pc3N1ZXMvMTU0I2lzc3VlY29tbWVudC05ODY2NjE5MzdcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci1jbGkvaXNzdWVzLzIyNDk1XG4gICAgICAgIGlzRmlyc3RSdW4gPSBmYWxzZTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdHMuaGFzRXJyb3JzKCkpIHtcbiAgICAgICAgbGFzdENvbXBpbGF0aW9uSGFzaCA9IHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdHMuaGFzaCAhPSBsYXN0Q29tcGlsYXRpb25IYXNoKSB7XG4gICAgICAgIC8vIFJlZnJlc2gga2FybWEgb25seSB3aGVuIHRoZXJlIGFyZSBubyB3ZWJwYWNrIGVycm9ycywgYW5kIGlmIHRoZSBjb21waWxhdGlvbiBjaGFuZ2VkLlxuICAgICAgICBsYXN0Q29tcGlsYXRpb25IYXNoID0gc3RhdHMuaGFzaDtcbiAgICAgICAgZW1pdHRlci5yZWZyZXNoRmlsZXMoKTtcbiAgICAgIH1cblxuICAgICAgdW5ibG9jaygpO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmluaXQuJGluamVjdCA9IFsnY29uZmlnJywgJ2VtaXR0ZXInXTtcblxuLy8gQmxvY2sgcmVxdWVzdHMgdW50aWwgdGhlIFdlYnBhY2sgY29tcGlsYXRpb24gaXMgZG9uZS5cbmZ1bmN0aW9uIHJlcXVlc3RCbG9ja2VyKCkge1xuICByZXR1cm4gZnVuY3Rpb24gKF9yZXF1ZXN0OiBhbnksIF9yZXNwb25zZTogYW55LCBuZXh0OiAoKSA9PiB2b2lkKSB7XG4gICAgaWYgKGlzQmxvY2tlZCkge1xuICAgICAgYmxvY2tlZC5wdXNoKG5leHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0KCk7XG4gICAgfVxuICB9O1xufVxuXG4vLyBDb3BpZWQgZnJvbSBcImthcm1hLWphc21pbmUtZGlmZi1yZXBvcnRlclwiIHNvdXJjZSBjb2RlOlxuLy8gSW4gY2FzZSwgd2hlbiBtdWx0aXBsZSByZXBvcnRlcnMgYXJlIHVzZWQgaW4gY29uanVuY3Rpb25cbi8vIHdpdGggaW5pdFNvdXJjZW1hcFJlcG9ydGVyLCB0aGV5IGJvdGggd2lsbCBzaG93IHJlcGV0aXRpdmUgbG9nXG4vLyBtZXNzYWdlcyB3aGVuIGRpc3BsYXlpbmcgZXZlcnl0aGluZyB0aGF0IHN1cHBvc2VkIHRvIHdyaXRlIHRvIHRlcm1pbmFsLlxuLy8gU28ganVzdCBzdXBwcmVzcyBhbnkgbG9ncyBmcm9tIGluaXRTb3VyY2VtYXBSZXBvcnRlciBieSBkb2luZyBub3RoaW5nIG9uXG4vLyBicm93c2VyIGxvZywgYmVjYXVzZSBpdCBpcyBhbiB1dGlsaXR5IHJlcG9ydGVyLFxuLy8gdW5sZXNzIGl0J3MgYWxvbmUgaW4gdGhlIFwicmVwb3J0ZXJzXCIgb3B0aW9uIGFuZCBiYXNlIHJlcG9ydGVyIGlzIHVzZWQuXG5mdW5jdGlvbiBtdXRlRHVwbGljYXRlUmVwb3J0ZXJMb2dnaW5nKGNvbnRleHQ6IGFueSwgY29uZmlnOiBhbnkpIHtcbiAgY29udGV4dC53cml0ZUNvbW1vbk1zZyA9ICgpID0+IHt9O1xuICBjb25zdCByZXBvcnRlck5hbWUgPSAnQGFuZ3VsYXIvY2xpJztcbiAgY29uc3QgaGFzVHJhaWxpbmdSZXBvcnRlcnMgPSBjb25maWcucmVwb3J0ZXJzLnNsaWNlKC0xKS5wb3AoKSAhPT0gcmVwb3J0ZXJOYW1lO1xuXG4gIGlmIChoYXNUcmFpbGluZ1JlcG9ydGVycykge1xuICAgIGNvbnRleHQud3JpdGVDb21tb25Nc2cgPSAoKSA9PiB7fTtcbiAgfVxufVxuXG4vLyBFbWl0cyBidWlsZGVyIGV2ZW50cy5cbmNvbnN0IGV2ZW50UmVwb3J0ZXI6IGFueSA9IGZ1bmN0aW9uICh0aGlzOiBhbnksIGJhc2VSZXBvcnRlckRlY29yYXRvcjogYW55LCBjb25maWc6IGFueSkge1xuICBiYXNlUmVwb3J0ZXJEZWNvcmF0b3IodGhpcyk7XG5cbiAgbXV0ZUR1cGxpY2F0ZVJlcG9ydGVyTG9nZ2luZyh0aGlzLCBjb25maWcpO1xuXG4gIHRoaXMub25SdW5Db21wbGV0ZSA9IGZ1bmN0aW9uIChfYnJvd3NlcnM6IGFueSwgcmVzdWx0czogYW55KSB7XG4gICAgaWYgKHJlc3VsdHMuZXhpdENvZGUgPT09IDApIHtcbiAgICAgIHN1Y2Nlc3NDYigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmYWlsdXJlQ2IoKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gYXZvaWQgZHVwbGljYXRlIGZhaWx1cmUgbWVzc2FnZVxuICB0aGlzLnNwZWNGYWlsdXJlID0gKCkgPT4ge307XG59O1xuXG5ldmVudFJlcG9ydGVyLiRpbmplY3QgPSBbJ2Jhc2VSZXBvcnRlckRlY29yYXRvcicsICdjb25maWcnXTtcblxuLy8gU3RyaXAgdGhlIHNlcnZlciBhZGRyZXNzIGFuZCB3ZWJwYWNrIHNjaGVtZSAod2VicGFjazovLykgZnJvbSBlcnJvciBsb2cuXG5jb25zdCBzb3VyY2VNYXBSZXBvcnRlcjogYW55ID0gZnVuY3Rpb24gKHRoaXM6IGFueSwgYmFzZVJlcG9ydGVyRGVjb3JhdG9yOiBhbnksIGNvbmZpZzogYW55KSB7XG4gIGJhc2VSZXBvcnRlckRlY29yYXRvcih0aGlzKTtcbiAgbXV0ZUR1cGxpY2F0ZVJlcG9ydGVyTG9nZ2luZyh0aGlzLCBjb25maWcpO1xuXG4gIGNvbnN0IHVybFJlZ2V4cCA9IC9odHRwOlxcL1xcL2xvY2FsaG9zdDpcXGQrXFwvX2thcm1hX3dlYnBhY2tfXFwvKHdlYnBhY2s6XFwvKT8vZ2k7XG5cbiAgdGhpcy5vblNwZWNDb21wbGV0ZSA9IGZ1bmN0aW9uIChfYnJvd3NlcjogYW55LCByZXN1bHQ6IGFueSkge1xuICAgIGlmICghcmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgIHJlc3VsdC5sb2cgPSByZXN1bHQubG9nLm1hcCgobDogc3RyaW5nKSA9PiBsLnJlcGxhY2UodXJsUmVnZXhwLCAnJykpO1xuICAgIH1cbiAgfTtcblxuICAvLyBhdm9pZCBkdXBsaWNhdGUgY29tcGxldGUgbWVzc2FnZVxuICB0aGlzLm9uUnVuQ29tcGxldGUgPSAoKSA9PiB7fTtcblxuICAvLyBhdm9pZCBkdXBsaWNhdGUgZmFpbHVyZSBtZXNzYWdlXG4gIHRoaXMuc3BlY0ZhaWx1cmUgPSAoKSA9PiB7fTtcbn07XG5cbnNvdXJjZU1hcFJlcG9ydGVyLiRpbmplY3QgPSBbJ2Jhc2VSZXBvcnRlckRlY29yYXRvcicsICdjb25maWcnXTtcblxuLy8gV2hlbiBhIHJlcXVlc3QgaXMgbm90IGZvdW5kIGluIHRoZSBrYXJtYSBzZXJ2ZXIsIHRyeSBsb29raW5nIGZvciBpdCBmcm9tIHRoZSB3ZWJwYWNrIHNlcnZlciByb290LlxuZnVuY3Rpb24gZmFsbGJhY2tNaWRkbGV3YXJlKCkge1xuICByZXR1cm4gZnVuY3Rpb24gKHJlcXVlc3Q6IGh0dHAuSW5jb21pbmdNZXNzYWdlLCByZXNwb25zZTogaHR0cC5TZXJ2ZXJSZXNwb25zZSwgbmV4dDogKCkgPT4gdm9pZCkge1xuICAgIGlmICh3ZWJwYWNrTWlkZGxld2FyZSkge1xuICAgICAgaWYgKHJlcXVlc3QudXJsICYmICFuZXcgUmVnRXhwKGBcXFxcLyR7S0FSTUFfQVBQTElDQVRJT05fUEFUSH1cXFxcLy4qYCkudGVzdChyZXF1ZXN0LnVybCkpIHtcbiAgICAgICAgcmVxdWVzdC51cmwgPSAnLycgKyBLQVJNQV9BUFBMSUNBVElPTl9QQVRIICsgcmVxdWVzdC51cmw7XG4gICAgICB9XG4gICAgICB3ZWJwYWNrTWlkZGxld2FyZShyZXF1ZXN0LCByZXNwb25zZSwgKCkgPT4ge1xuICAgICAgICBjb25zdCBhbHdheXNTZXJ2ZSA9IFtcbiAgICAgICAgICBgLyR7S0FSTUFfQVBQTElDQVRJT05fUEFUSH0vcnVudGltZS5qc2AsXG4gICAgICAgICAgYC8ke0tBUk1BX0FQUExJQ0FUSU9OX1BBVEh9L3BvbHlmaWxscy5qc2AsXG4gICAgICAgICAgYC8ke0tBUk1BX0FQUExJQ0FUSU9OX1BBVEh9L3NjcmlwdHMuanNgLFxuICAgICAgICAgIGAvJHtLQVJNQV9BUFBMSUNBVElPTl9QQVRIfS9zdHlsZXMuY3NzYCxcbiAgICAgICAgICBgLyR7S0FSTUFfQVBQTElDQVRJT05fUEFUSH0vdmVuZG9yLmpzYCxcbiAgICAgICAgXTtcbiAgICAgICAgaWYgKHJlcXVlc3QudXJsICYmIGFsd2F5c1NlcnZlLmluY2x1ZGVzKHJlcXVlc3QudXJsKSkge1xuICAgICAgICAgIHJlc3BvbnNlLnN0YXR1c0NvZGUgPSAyMDA7XG4gICAgICAgICAgcmVzcG9uc2UuZW5kKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dCgpO1xuICAgIH1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICdmcmFtZXdvcms6QGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXInOiBbJ2ZhY3RvcnknLCBpbml0XSxcbiAgJ3JlcG9ydGVyOkBhbmd1bGFyLWRldmtpdC9idWlsZC1hbmd1bGFyLS1zb3VyY2VtYXAtcmVwb3J0ZXInOiBbJ3R5cGUnLCBzb3VyY2VNYXBSZXBvcnRlcl0sXG4gICdyZXBvcnRlcjpAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhci0tZXZlbnQtcmVwb3J0ZXInOiBbJ3R5cGUnLCBldmVudFJlcG9ydGVyXSxcbiAgJ21pZGRsZXdhcmU6QGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXItLWJsb2NrZXInOiBbJ2ZhY3RvcnknLCByZXF1ZXN0QmxvY2tlcl0sXG4gICdtaWRkbGV3YXJlOkBhbmd1bGFyLWRldmtpdC9idWlsZC1hbmd1bGFyLS1mYWxsYmFjayc6IFsnZmFjdG9yeScsIGZhbGxiYWNrTWlkZGxld2FyZV0sXG59O1xuIl19
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FybWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy93ZWJwYWNrL3BsdWdpbnMva2FybWEva2FybWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtILDJDQUE2QjtBQUM3QixzREFBOEI7QUFDOUIsb0ZBQTBEO0FBRTFELDZDQUF3RDtBQUN4RCxvREFBZ0U7QUFHaEUsZ0RBQTJEO0FBRTNELE1BQU0sc0JBQXNCLEdBQUcsaUJBQWlCLENBQUM7QUFFakQsSUFBSSxPQUFPLEdBQVUsRUFBRSxDQUFDO0FBQ3hCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztBQUN0QixJQUFJLGlCQUFzQixDQUFDO0FBQzNCLElBQUksU0FBcUIsQ0FBQztBQUMxQixJQUFJLFNBQXFCLENBQUM7QUFFMUIsTUFBTSxJQUFJLEdBQVEsQ0FBQyxNQUFXLEVBQUUsT0FBWSxFQUFFLEVBQUU7SUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUU7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FDYiw0RUFBNEU7WUFDMUUsNkVBQTZFLENBQ2hGLENBQUM7S0FDSDtJQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBdUIsQ0FBQztJQUM1RCxNQUFNLE1BQU0sR0FBbUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksSUFBQSwwQkFBbUIsR0FBRSxDQUFDO0lBQ25GLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztJQUMxQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7SUFFMUMsNENBQTRDO0lBQzVDLElBQUksSUFBQSwyQkFBbUIsRUFBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENB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Q0FBQyxHQUFHLEVBQUUsQ0FBQztpQkFDaEI7cUJBQU07b0JBQ0wsSUFBSSxFQUFFLENBQUM7aUJBQ1I7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLEVBQUUsQ0FBQztTQUNSO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUc7SUFDZix5Q0FBeUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUM7SUFDNUQsNERBQTRELEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUM7SUFDekYsd0RBQXdELEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDO0lBQ2pGLG1EQUFtRCxFQUFFLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQztJQUNoRixvREFBb0QsRUFBRSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQztDQUN0RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBUT0RPOiBjbGVhbnVwIHRoaXMgZmlsZSwgaXQncyBjb3BpZWQgYXMgaXMgZnJvbSBBbmd1bGFyIENMSS5cbmltcG9ydCAqIGFzIGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHdlYnBhY2sgZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgd2VicGFja0Rldk1pZGRsZXdhcmUgZnJvbSAnd2VicGFjay1kZXYtbWlkZGxld2FyZSc7XG5cbmltcG9ydCB7IHN0YXRzRXJyb3JzVG9TdHJpbmcgfSBmcm9tICcuLi8uLi91dGlscy9zdGF0cyc7XG5pbXBvcnQgeyBjcmVhdGVDb25zb2xlTG9nZ2VyIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZSc7XG5pbXBvcnQgeyBsb2dnaW5nIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHsgQnVpbGRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYnVpbGQtb3B0aW9ucyc7XG5pbXBvcnQgeyBub3JtYWxpemVTb3VyY2VNYXBzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaW5kZXgnO1xuXG5jb25zdCBLQVJNQV9BUFBMSUNBVElPTl9QQVRIID0gJ19rYXJtYV93ZWJwYWNrXyc7XG5cbmxldCBibG9ja2VkOiBhbnlbXSA9IFtdO1xubGV0IGlzQmxvY2tlZCA9IGZhbHNlO1xubGV0IHdlYnBhY2tNaWRkbGV3YXJlOiBhbnk7XG5sZXQgc3VjY2Vzc0NiOiAoKSA9PiB2b2lkO1xubGV0IGZhaWx1cmVDYjogKCkgPT4gdm9pZDtcblxuY29uc3QgaW5pdDogYW55ID0gKGNvbmZpZzogYW55LCBlbWl0dGVyOiBhbnkpID0+IHtcbiAgaWYgKCFjb25maWcuYnVpbGRXZWJwYWNrKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRoZSAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXIvcGx1Z2lucy9rYXJtYScga2FybWEgcGx1Z2luIGlzIG1lYW50IHRvYCArXG4gICAgICAgIGAgYmUgdXNlZCBmcm9tIHdpdGhpbiBBbmd1bGFyIENMSSBhbmQgd2lsbCBub3Qgd29yayBjb3JyZWN0bHkgb3V0c2lkZSBvZiBpdC5gLFxuICAgICk7XG4gIH1cbiAgY29uc3Qgb3B0aW9ucyA9IGNvbmZpZy5idWlsZFdlYnBhY2sub3B0aW9ucyBhcyBCdWlsZE9wdGlvbnM7XG4gIGNvbnN0IGxvZ2dlcjogbG9nZ2luZy5Mb2dnZXIgPSBjb25maWcuYnVpbGRXZWJwYWNrLmxvZ2dlciB8fCBjcmVhdGVDb25zb2xlTG9nZ2VyKCk7XG4gIHN1Y2Nlc3NDYiA9IGNvbmZpZy5idWlsZFdlYnBhY2suc3VjY2Vzc0NiO1xuICBmYWlsdXJlQ2IgPSBjb25maWcuYnVpbGRXZWJwYWNrLmZhaWx1cmVDYjtcblxuICAvLyBBZGQgYSByZXBvcnRlciB0aGF0IGZpeGVzIHNvdXJjZW1hcCB1cmxzLlxuICBpZiAobm9ybWFsaXplU291cmNlTWFwcyhvcHRpb25zLnNvdXJjZU1hcCkuc2NyaXB0cykge1xuICAgIGNvbmZpZy5yZXBvcnRlcnMudW5zaGlmdCgnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXItLXNvdXJjZW1hcC1yZXBvcnRlcicpO1xuXG4gICAgLy8gQ29kZSB0YWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS90c2NoYXViL2thcm1hLXNvdXJjZS1tYXAtc3VwcG9ydC5cbiAgICAvLyBXZSBjYW4ndCB1c2UgaXQgZGlyZWN0bHkgYmVjYXVzZSB3ZSBuZWVkIHRvIGFkZCBpdCBjb25kaXRpb25hbGx5IGluIHRoaXMgZmlsZSwgYW5kIGthcm1hXG4gICAgLy8gZnJhbWV3b3JrcyBjYW5ub3QgYmUgYWRkZWQgZHluYW1pY2FsbHkuXG4gICAgY29uc3Qgc21zUGF0aCA9IHBhdGguZGlybmFtZShyZXF1aXJlLnJlc29sdmUoJ3NvdXJjZS1tYXAtc3VwcG9ydCcpKTtcbiAgICBjb25zdCBrc21zUGF0aCA9IHBhdGguZGlybmFtZShyZXF1aXJlLnJlc29sdmUoJ2thcm1hLXNvdXJjZS1tYXAtc3VwcG9ydCcpKTtcblxuICAgIGNvbmZpZy5maWxlcy51bnNoaWZ0KFxuICAgICAge1xuICAgICAgICBwYXR0ZXJuOiBwYXRoLmpvaW4oc21zUGF0aCwgJ2Jyb3dzZXItc291cmNlLW1hcC1zdXBwb3J0LmpzJyksXG4gICAgICAgIGluY2x1ZGVkOiB0cnVlLFxuICAgICAgICBzZXJ2ZWQ6IHRydWUsXG4gICAgICAgIHdhdGNoZWQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHsgcGF0dGVybjogcGF0aC5qb2luKGtzbXNQYXRoLCAnY2xpZW50LmpzJyksIGluY2x1ZGVkOiB0cnVlLCBzZXJ2ZWQ6IHRydWUsIHdhdGNoZWQ6IGZhbHNlIH0sXG4gICAgKTtcbiAgfVxuXG4gIGNvbmZpZy5yZXBvcnRlcnMudW5zaGlmdCgnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXItLWV2ZW50LXJlcG9ydGVyJyk7XG5cbiAgLy8gV2hlbiB1c2luZyBjb2RlLWNvdmVyYWdlLCBhdXRvLWFkZCBrYXJtYS1jb3ZlcmFnZS5cbiAgaWYgKFxuICAgIG9wdGlvbnMuY29kZUNvdmVyYWdlICYmXG4gICAgIWNvbmZpZy5yZXBvcnRlcnMuc29tZSgocjogc3RyaW5nKSA9PiByID09PSAnY292ZXJhZ2UnIHx8IHIgPT09ICdjb3ZlcmFnZS1pc3RhbmJ1bCcpXG4gICkge1xuICAgIGNvbmZpZy5yZXBvcnRlcnMucHVzaCgnY292ZXJhZ2UnKTtcbiAgfVxuXG4gIC8vIEFkZCB3ZWJwYWNrIGNvbmZpZy5cbiAgY29uc3Qgd2VicGFja0NvbmZpZyA9IGNvbmZpZy5idWlsZFdlYnBhY2sud2VicGFja0NvbmZpZztcbiAgY29uc3Qgd2VicGFja01pZGRsZXdhcmVDb25maWcgPSB7XG4gICAgLy8gSGlkZSB3ZWJwYWNrIG91dHB1dCBiZWNhdXNlIGl0cyBub2lzeS5cbiAgICBzdGF0czogZmFsc2UsXG4gICAgcHVibGljUGF0aDogYC8ke0tBUk1BX0FQUExJQ0FUSU9OX1BBVEh9L2AsXG4gIH07XG5cbiAgLy8gVXNlIGV4aXN0aW5nIGNvbmZpZyBpZiBhbnkuXG4gIGNvbmZpZy53ZWJwYWNrID0geyAuLi53ZWJwYWNrQ29uZmlnLCAuLi5jb25maWcud2VicGFjayB9O1xuICBjb25maWcud2VicGFja01pZGRsZXdhcmUgPSB7IC4uLndlYnBhY2tNaWRkbGV3YXJlQ29uZmlnLCAuLi5jb25maWcud2VicGFja01pZGRsZXdhcmUgfTtcblxuICAvLyBPdXIgY3VzdG9tIGNvbnRleHQgYW5kIGRlYnVnIGZpbGVzIGxpc3QgdGhlIHdlYnBhY2sgYnVuZGxlcyBkaXJlY3RseSBpbnN0ZWFkIG9mIHVzaW5nXG4gIC8vIHRoZSBrYXJtYSBmaWxlcyBhcnJheS5cbiAgY29uZmlnLmN1c3RvbUNvbnRleHRGaWxlID0gYCR7X19kaXJuYW1lfS9rYXJtYS1jb250ZXh0Lmh0bWxgO1xuICBjb25maWcuY3VzdG9tRGVidWdGaWxlID0gYCR7X19kaXJuYW1lfS9rYXJtYS1kZWJ1Zy5odG1sYDtcblxuICAvLyBBZGQgdGhlIHJlcXVlc3QgYmxvY2tlciBhbmQgdGhlIHdlYnBhY2sgc2VydmVyIGZhbGxiYWNrLlxuICBjb25maWcuYmVmb3JlTWlkZGxld2FyZSA9IGNvbmZpZy5iZWZvcmVNaWRkbGV3YXJlIHx8IFtdO1xuICBjb25maWcuYmVmb3JlTWlkZGxld2FyZS5wdXNoKCdAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhci0tYmxvY2tlcicpO1xuICBjb25maWcubWlkZGxld2FyZSA9IGNvbmZpZy5taWRkbGV3YXJlIHx8IFtdO1xuICBjb25maWcubWlkZGxld2FyZS5wdXNoKCdAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhci0tZmFsbGJhY2snKTtcblxuICBpZiAoY29uZmlnLnNpbmdsZVJ1bikge1xuICAgIC8vIFRoZXJlJ3Mgbm8gb3B0aW9uIHRvIHR1cm4gb2ZmIGZpbGUgd2F0Y2hpbmcgaW4gd2VicGFjay1kZXYtc2VydmVyLCBidXRcbiAgICAvLyB3ZSBjYW4gb3ZlcnJpZGUgdGhlIGZpbGUgd2F0Y2hlciBpbnN0ZWFkLlxuICAgIHdlYnBhY2tDb25maWcucGx1Z2lucy51bnNoaWZ0KHtcbiAgICAgIGFwcGx5OiAoY29tcGlsZXI6IGFueSkgPT4ge1xuICAgICAgICBjb21waWxlci5ob29rcy5hZnRlckVudmlyb25tZW50LnRhcCgna2FybWEnLCAoKSA9PiB7XG4gICAgICAgICAgY29tcGlsZXIud2F0Y2hGaWxlU3lzdGVtID0geyB3YXRjaDogKCkgPT4ge30gfTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIC8vIEZpbGVzIG5lZWQgdG8gYmUgc2VydmVkIGZyb20gYSBjdXN0b20gcGF0aCBmb3IgS2FybWEuXG4gIHdlYnBhY2tDb25maWcub3V0cHV0LnBhdGggPSBgLyR7S0FSTUFfQVBQTElDQVRJT05fUEFUSH0vYDtcbiAgd2VicGFja0NvbmZpZy5vdXRwdXQucHVibGljUGF0aCA9IGAvJHtLQVJNQV9BUFBMSUNBVElPTl9QQVRIfS9gO1xuXG4gIGNvbnN0IGNvbXBpbGVyID0gd2VicGFjayh3ZWJwYWNrQ29uZmlnLCAoZXJyb3IsIHN0YXRzKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBpZiAoc3RhdHM/Lmhhc0Vycm9ycygpKSB7XG4gICAgICAvLyBPbmx5IGdlbmVyYXRlIG5lZWRlZCBKU09OIHN0YXRzIGFuZCB3aGVuIG5lZWRlZC5cbiAgICAgIGNvbnN0IHN0YXRzSnNvbiA9IHN0YXRzPy50b0pzb24oe1xuICAgICAgICBhbGw6IGZhbHNlLFxuICAgICAgICBjaGlsZHJlbjogdHJ1ZSxcbiAgICAgICAgZXJyb3JzOiB0cnVlLFxuICAgICAgICB3YXJuaW5nczogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBsb2dnZXIuZXJyb3Ioc3RhdHNFcnJvcnNUb1N0cmluZyhzdGF0c0pzb24sIHsgY29sb3JzOiB0cnVlIH0pKTtcblxuICAgICAgaWYgKGNvbmZpZy5zaW5nbGVSdW4pIHtcbiAgICAgICAgLy8gTm90aWZ5IHBvdGVudGlhbCBsaXN0ZW5lcnMgb2YgdGhlIGNvbXBpbGUgZXJyb3IuXG4gICAgICAgIGVtaXR0ZXIuZW1pdCgnbG9hZF9lcnJvcicpO1xuICAgICAgfVxuXG4gICAgICAvLyBGaW5pc2ggS2FybWEgcnVuIGVhcmx5IGluIGNhc2Ugb2YgY29tcGlsYXRpb24gZXJyb3IuXG4gICAgICBlbWl0dGVyLmVtaXQoJ3J1bl9jb21wbGV0ZScsIFtdLCB7IGV4aXRDb2RlOiAxIH0pO1xuXG4gICAgICAvLyBFbWl0IGEgZmFpbHVyZSBidWlsZCBldmVudCBpZiB0aGVyZSBhcmUgY29tcGlsYXRpb24gZXJyb3JzLlxuICAgICAgZmFpbHVyZUNiKCk7XG4gICAgfVxuICB9KTtcblxuICBmdW5jdGlvbiBoYW5kbGVyKGNhbGxiYWNrPzogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIGlzQmxvY2tlZCA9IHRydWU7XG4gICAgY2FsbGJhY2s/LigpO1xuICB9XG5cbiAgY29tcGlsZXIuaG9va3MuaW52YWxpZC50YXAoJ2thcm1hJywgKCkgPT4gaGFuZGxlcigpKTtcbiAgY29tcGlsZXIuaG9va3Mud2F0Y2hSdW4udGFwQXN5bmMoJ2thcm1hJywgKF86IGFueSwgY2FsbGJhY2s6ICgpID0+IHZvaWQpID0+IGhhbmRsZXIoY2FsbGJhY2spKTtcbiAgY29tcGlsZXIuaG9va3MucnVuLnRhcEFzeW5jKCdrYXJtYScsIChfOiBhbnksIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSA9PiBoYW5kbGVyKGNhbGxiYWNrKSk7XG5cbiAgd2VicGFja01pZGRsZXdhcmUgPSB3ZWJwYWNrRGV2TWlkZGxld2FyZShjb21waWxlciwgd2VicGFja01pZGRsZXdhcmVDb25maWcpO1xuICBlbWl0dGVyLm9uKCdleGl0JywgKGRvbmU6IGFueSkgPT4ge1xuICAgIHdlYnBhY2tNaWRkbGV3YXJlLmNsb3NlKCk7XG4gICAgY29tcGlsZXIuY2xvc2UoKCkgPT4gZG9uZSgpKTtcbiAgfSk7XG5cbiAgZnVuY3Rpb24gdW5ibG9jaygpIHtcbiAgICBpc0Jsb2NrZWQgPSBmYWxzZTtcbiAgICBibG9ja2VkLmZvckVhY2goKGNiKSA9PiBjYigpKTtcbiAgICBibG9ja2VkID0gW107XG4gIH1cblxuICBsZXQgbGFzdENvbXBpbGF0aW9uSGFzaDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBsZXQgaXNGaXJzdFJ1biA9IHRydWU7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgY29tcGlsZXIuaG9va3MuZG9uZS50YXAoJ2thcm1hJywgKHN0YXRzKSA9PiB7XG4gICAgICBpZiAoaXNGaXJzdFJ1bikge1xuICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBibG9jayBLYXJtYSBmcm9tIGxhdW5jaGluZyBicm93c2VycyBiZWZvcmUgV2VicGFjayB3cml0ZXMgdGhlIGFzc2V0cyBpbiBtZW1vcnkuXG4gICAgICAgIC8vIFNlZSB0aGUgYmVsb3c6XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9rYXJtYS1ydW5uZXIva2FybWEtY2hyb21lLWxhdW5jaGVyL2lzc3Vlcy8xNTQjaXNzdWVjb21tZW50LTk4NjY2MTkzN1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyLWNsaS9pc3N1ZXMvMjI0OTVcbiAgICAgICAgaXNGaXJzdFJ1biA9IGZhbHNlO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0cy5oYXNFcnJvcnMoKSkge1xuICAgICAgICBsYXN0Q29tcGlsYXRpb25IYXNoID0gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIGlmIChzdGF0cy5oYXNoICE9IGxhc3RDb21waWxhdGlvbkhhc2gpIHtcbiAgICAgICAgLy8gUmVmcmVzaCBrYXJtYSBvbmx5IHdoZW4gdGhlcmUgYXJlIG5vIHdlYnBhY2sgZXJyb3JzLCBhbmQgaWYgdGhlIGNvbXBpbGF0aW9uIGNoYW5nZWQuXG4gICAgICAgIGxhc3RDb21waWxhdGlvbkhhc2ggPSBzdGF0cy5oYXNoO1xuICAgICAgICBlbWl0dGVyLnJlZnJlc2hGaWxlcygpO1xuICAgICAgfVxuXG4gICAgICB1bmJsb2NrKCk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuaW5pdC4kaW5qZWN0ID0gWydjb25maWcnLCAnZW1pdHRlciddO1xuXG4vLyBCbG9jayByZXF1ZXN0cyB1bnRpbCB0aGUgV2VicGFjayBjb21waWxhdGlvbiBpcyBkb25lLlxuZnVuY3Rpb24gcmVxdWVzdEJsb2NrZXIoKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoX3JlcXVlc3Q6IGFueSwgX3Jlc3BvbnNlOiBhbnksIG5leHQ6ICgpID0+IHZvaWQpIHtcbiAgICBpZiAoaXNCbG9ja2VkKSB7XG4gICAgICBibG9ja2VkLnB1c2gobmV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHQoKTtcbiAgICB9XG4gIH07XG59XG5cbi8vIENvcGllZCBmcm9tIFwia2FybWEtamFzbWluZS1kaWZmLXJlcG9ydGVyXCIgc291cmNlIGNvZGU6XG4vLyBJbiBjYXNlLCB3aGVuIG11bHRpcGxlIHJlcG9ydGVycyBhcmUgdXNlZCBpbiBjb25qdW5jdGlvblxuLy8gd2l0aCBpbml0U291cmNlbWFwUmVwb3J0ZXIsIHRoZXkgYm90aCB3aWxsIHNob3cgcmVwZXRpdGl2ZSBsb2dcbi8vIG1lc3NhZ2VzIHdoZW4gZGlzcGxheWluZyBldmVyeXRoaW5nIHRoYXQgc3VwcG9zZWQgdG8gd3JpdGUgdG8gdGVybWluYWwuXG4vLyBTbyBqdXN0IHN1cHByZXNzIGFueSBsb2dzIGZyb20gaW5pdFNvdXJjZW1hcFJlcG9ydGVyIGJ5IGRvaW5nIG5vdGhpbmcgb25cbi8vIGJyb3dzZXIgbG9nLCBiZWNhdXNlIGl0IGlzIGFuIHV0aWxpdHkgcmVwb3J0ZXIsXG4vLyB1bmxlc3MgaXQncyBhbG9uZSBpbiB0aGUgXCJyZXBvcnRlcnNcIiBvcHRpb24gYW5kIGJhc2UgcmVwb3J0ZXIgaXMgdXNlZC5cbmZ1bmN0aW9uIG11dGVEdXBsaWNhdGVSZXBvcnRlckxvZ2dpbmcoY29udGV4dDogYW55LCBjb25maWc6IGFueSkge1xuICBjb250ZXh0LndyaXRlQ29tbW9uTXNnID0gKCkgPT4ge307XG4gIGNvbnN0IHJlcG9ydGVyTmFtZSA9ICdAYW5ndWxhci9jbGknO1xuICBjb25zdCBoYXNUcmFpbGluZ1JlcG9ydGVycyA9IGNvbmZpZy5yZXBvcnRlcnMuc2xpY2UoLTEpLnBvcCgpICE9PSByZXBvcnRlck5hbWU7XG5cbiAgaWYgKGhhc1RyYWlsaW5nUmVwb3J0ZXJzKSB7XG4gICAgY29udGV4dC53cml0ZUNvbW1vbk1zZyA9ICgpID0+IHt9O1xuICB9XG59XG5cbi8vIEVtaXRzIGJ1aWxkZXIgZXZlbnRzLlxuY29uc3QgZXZlbnRSZXBvcnRlcjogYW55ID0gZnVuY3Rpb24gKHRoaXM6IGFueSwgYmFzZVJlcG9ydGVyRGVjb3JhdG9yOiBhbnksIGNvbmZpZzogYW55KSB7XG4gIGJhc2VSZXBvcnRlckRlY29yYXRvcih0aGlzKTtcblxuICBtdXRlRHVwbGljYXRlUmVwb3J0ZXJMb2dnaW5nKHRoaXMsIGNvbmZpZyk7XG5cbiAgdGhpcy5vblJ1bkNvbXBsZXRlID0gZnVuY3Rpb24gKF9icm93c2VyczogYW55LCByZXN1bHRzOiBhbnkpIHtcbiAgICBpZiAocmVzdWx0cy5leGl0Q29kZSA9PT0gMCkge1xuICAgICAgc3VjY2Vzc0NiKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZhaWx1cmVDYigpO1xuICAgIH1cbiAgfTtcblxuICAvLyBhdm9pZCBkdXBsaWNhdGUgZmFpbHVyZSBtZXNzYWdlXG4gIHRoaXMuc3BlY0ZhaWx1cmUgPSAoKSA9PiB7fTtcbn07XG5cbmV2ZW50UmVwb3J0ZXIuJGluamVjdCA9IFsnYmFzZVJlcG9ydGVyRGVjb3JhdG9yJywgJ2NvbmZpZyddO1xuXG4vLyBTdHJpcCB0aGUgc2VydmVyIGFkZHJlc3MgYW5kIHdlYnBhY2sgc2NoZW1lICh3ZWJwYWNrOi8vKSBmcm9tIGVycm9yIGxvZy5cbmNvbnN0IHNvdXJjZU1hcFJlcG9ydGVyOiBhbnkgPSBmdW5jdGlvbiAodGhpczogYW55LCBiYXNlUmVwb3J0ZXJEZWNvcmF0b3I6IGFueSwgY29uZmlnOiBhbnkpIHtcbiAgYmFzZVJlcG9ydGVyRGVjb3JhdG9yKHRoaXMpO1xuICBtdXRlRHVwbGljYXRlUmVwb3J0ZXJMb2dnaW5nKHRoaXMsIGNvbmZpZyk7XG5cbiAgY29uc3QgdXJsUmVnZXhwID0gL2h0dHA6XFwvXFwvbG9jYWxob3N0OlxcZCtcXC9fa2FybWFfd2VicGFja19cXC8od2VicGFjazpcXC8pPy9naTtcblxuICB0aGlzLm9uU3BlY0NvbXBsZXRlID0gZnVuY3Rpb24gKF9icm93c2VyOiBhbnksIHJlc3VsdDogYW55KSB7XG4gICAgaWYgKCFyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgcmVzdWx0LmxvZyA9IHJlc3VsdC5sb2cubWFwKChsOiBzdHJpbmcpID0+IGwucmVwbGFjZSh1cmxSZWdleHAsICcnKSk7XG4gICAgfVxuICB9O1xuXG4gIC8vIGF2b2lkIGR1cGxpY2F0ZSBjb21wbGV0ZSBtZXNzYWdlXG4gIHRoaXMub25SdW5Db21wbGV0ZSA9ICgpID0+IHt9O1xuXG4gIC8vIGF2b2lkIGR1cGxpY2F0ZSBmYWlsdXJlIG1lc3NhZ2VcbiAgdGhpcy5zcGVjRmFpbHVyZSA9ICgpID0+IHt9O1xufTtcblxuc291cmNlTWFwUmVwb3J0ZXIuJGluamVjdCA9IFsnYmFzZVJlcG9ydGVyRGVjb3JhdG9yJywgJ2NvbmZpZyddO1xuXG4vLyBXaGVuIGEgcmVxdWVzdCBpcyBub3QgZm91bmQgaW4gdGhlIGthcm1hIHNlcnZlciwgdHJ5IGxvb2tpbmcgZm9yIGl0IGZyb20gdGhlIHdlYnBhY2sgc2VydmVyIHJvb3QuXG5mdW5jdGlvbiBmYWxsYmFja01pZGRsZXdhcmUoKSB7XG4gIHJldHVybiBmdW5jdGlvbiAocmVxdWVzdDogaHR0cC5JbmNvbWluZ01lc3NhZ2UsIHJlc3BvbnNlOiBodHRwLlNlcnZlclJlc3BvbnNlLCBuZXh0OiAoKSA9PiB2b2lkKSB7XG4gICAgaWYgKHdlYnBhY2tNaWRkbGV3YXJlKSB7XG4gICAgICBpZiAocmVxdWVzdC51cmwgJiYgIW5ldyBSZWdFeHAoYFxcXFwvJHtLQVJNQV9BUFBMSUNBVElPTl9QQVRIfVxcXFwvLipgKS50ZXN0KHJlcXVlc3QudXJsKSkge1xuICAgICAgICByZXF1ZXN0LnVybCA9ICcvJyArIEtBUk1BX0FQUExJQ0FUSU9OX1BBVEggKyByZXF1ZXN0LnVybDtcbiAgICAgIH1cbiAgICAgIHdlYnBhY2tNaWRkbGV3YXJlKHJlcXVlc3QsIHJlc3BvbnNlLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFsd2F5c1NlcnZlID0gW1xuICAgICAgICAgIGAvJHtLQVJNQV9BUFBMSUNBVElPTl9QQVRIfS9ydW50aW1lLmpzYCxcbiAgICAgICAgICBgLyR7S0FSTUFfQVBQTElDQVRJT05fUEFUSH0vcG9seWZpbGxzLmpzYCxcbiAgICAgICAgICBgLyR7S0FSTUFfQVBQTElDQVRJT05fUEFUSH0vc2NyaXB0cy5qc2AsXG4gICAgICAgICAgYC8ke0tBUk1BX0FQUExJQ0FUSU9OX1BBVEh9L3N0eWxlcy5jc3NgLFxuICAgICAgICAgIGAvJHtLQVJNQV9BUFBMSUNBVElPTl9QQVRIfS92ZW5kb3IuanNgLFxuICAgICAgICBdO1xuICAgICAgICBpZiAocmVxdWVzdC51cmwgJiYgYWx3YXlzU2VydmUuaW5jbHVkZXMocmVxdWVzdC51cmwpKSB7XG4gICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9IDIwMDtcbiAgICAgICAgICByZXNwb25zZS5lbmQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0KCk7XG4gICAgfVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgJ2ZyYW1ld29yazpAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhcic6IFsnZmFjdG9yeScsIGluaXRdLFxuICAncmVwb3J0ZXI6QGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXItLXNvdXJjZW1hcC1yZXBvcnRlcic6IFsndHlwZScsIHNvdXJjZU1hcFJlcG9ydGVyXSxcbiAgJ3JlcG9ydGVyOkBhbmd1bGFyLWRldmtpdC9idWlsZC1hbmd1bGFyLS1ldmVudC1yZXBvcnRlcic6IFsndHlwZScsIGV2ZW50UmVwb3J0ZXJdLFxuICAnbWlkZGxld2FyZTpAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhci0tYmxvY2tlcic6IFsnZmFjdG9yeScsIHJlcXVlc3RCbG9ja2VyXSxcbiAgJ21pZGRsZXdhcmU6QGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXItLWZhbGxiYWNrJzogWydmYWN0b3J5JywgZmFsbGJhY2tNaWRkbGV3YXJlXSxcbn07XG4iXX0=
@@ -50,7 +50,7 @@ async function resolve(file, base, resolver) {
50
50
  try {
51
51
  return await resolver('./' + file, base);
52
52
  }
53
- catch (_a) {
53
+ catch {
54
54
  return resolver(file, base);
55
55
  }
56
56
  }
@@ -173,4 +173,4 @@ function default_1(options) {
173
173
  };
174
174
  }
175
175
  exports.default = default_1;
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdGNzcy1jbGktcmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvd2VicGFjay9wbHVnaW5zL3Bvc3Rjc3MtY2xpLXJlc291cmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILCtDQUErQztBQUMvQywyQ0FBNkI7QUFFN0IseUNBQTJCO0FBQzNCLDZDQUFrRDtBQUVsRCxTQUFTLE9BQU8sQ0FBQyxHQUFXO0lBQzFCLElBQUksVUFBVSxDQUFDO0lBQ2YsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFOUMsSUFBSSxlQUFlLEVBQUU7UUFDbkIsVUFBVSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUM7S0FDekI7U0FBTTtRQUNMLFVBQVUsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDO0tBQ3pCO0lBRUQsT0FBTyxPQUFPLFVBQVUsR0FBRyxDQUFDO0FBQzlCLENBQUM7QUFjRCxLQUFLLFVBQVUsT0FBTyxDQUNwQixJQUFZLEVBQ1osSUFBWSxFQUNaLFFBQXlEO0lBRXpELElBQUk7UUFDRixPQUFPLE1BQU0sUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDMUM7SUFBQyxXQUFNO1FBQ04sT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzdCO0FBQ0gsQ0FBQztBQUVZLFFBQUEsT0FBTyxHQUFHLElBQUksQ0FBQztBQUU1QixtQkFBeUIsT0FBb0M7SUFDM0QsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztLQUMxRTtJQUVELE1BQU0sRUFD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Q0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3pCO3FCQUFNO29CQUNMLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7b0JBQ3JDLFFBQVEsR0FBRyxJQUFJLENBQUM7aUJBQ2pCO2dCQUVELFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7YUFDM0M7WUFFRCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUM1QixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUN2QztZQUVELElBQUksUUFBUSxFQUFFO2dCQUNaLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNoQztZQUVBLElBQStDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3JFLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQXZKRCw0QkF1SkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgaW50ZXJwb2xhdGVOYW1lIH0gZnJvbSAnbG9hZGVyLXV0aWxzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBEZWNsYXJhdGlvbiwgUGx1Z2luIH0gZnJvbSAncG9zdGNzcyc7XG5pbXBvcnQgKiBhcyB1cmwgZnJvbSAndXJsJztcbmltcG9ydCB7IGFzc2VydElzRXJyb3IgfSBmcm9tICcuLi8uLi91dGlscy9lcnJvcic7XG5cbmZ1bmN0aW9uIHdyYXBVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgd3JhcHBlZFVybDtcbiAgY29uc3QgaGFzU2luZ2xlUXVvdGVzID0gdXJsLmluZGV4T2YoXCInXCIpID49IDA7XG5cbiAgaWYgKGhhc1NpbmdsZVF1b3Rlcykge1xuICAgIHdyYXBwZWRVcmwgPSBgXCIke3VybH1cImA7XG4gIH0gZWxzZSB7XG4gICAgd3JhcHBlZFVybCA9IGAnJHt1cmx9J2A7XG4gIH1cblxuICByZXR1cm4gYHVybCgke3dyYXBwZWRVcmx9KWA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9zdGNzc0NsaVJlc291cmNlc09wdGlvbnMge1xuICBiYXNlSHJlZj86IHN0cmluZztcbiAgZGVwbG95VXJsPzogc3RyaW5nO1xuICByZXNvdXJjZXNPdXRwdXRQYXRoPzogc3RyaW5nO1xuICByZWJhc2VSb290UmVsYXRpdmU/OiBib29sZWFuO1xuICAvKiogQ1NTIGlzIGV4dHJhY3RlZCB0byBhIGAuY3NzYCBvciBpcyBlbWJlZGRlZCBpbiBhIGAuanNgIGZpbGUuICovXG4gIGV4dHJhY3RlZD86IGJvb2xlYW47XG4gIGZpbGVuYW1lOiAocmVzb3VyY2VQYXRoOiBzdHJpbmcpID0+IHN0cmluZztcbiAgbG9hZGVyOiBpbXBvcnQoJ3dlYnBhY2snKS5Mb2FkZXJDb250ZXh0PHVua25vd24+O1xuICBlbWl0RmlsZTogYm9vbGVhbjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZShcbiAgZmlsZTogc3RyaW5nLFxuICBiYXNlOiBzdHJpbmcsXG4gIHJlc29sdmVyOiAoZmlsZTogc3RyaW5nLCBiYXNlOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPixcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHJlc29sdmVyKCcuLycgKyBmaWxlLCBiYXNlKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHJlc29sdmVyKGZpbGUsIGJhc2UpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBwb3N0Y3NzID0gdHJ1ZTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKG9wdGlvbnM/OiBQb3N0Y3NzQ2xpUmVzb3VyY2VzT3B0aW9ucyk6IFBsdWdpbiB7XG4gIGlmICghb3B0aW9ucykge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gb3B0aW9ucyB3ZXJlIHNwZWNpZmllZCB0byBcInBvc3Rjc3MtY2xpLXJlc291cmNlc1wiLicpO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGRlcGxveVVybCA9ICcnLFxuICAgIHJlc291cmNlc091dHB1dFBhdGggPSAnJyxcbiAgICBmaWxlbmFtZSxcbiAgICBsb2FkZXIsXG4gICAgZW1pdEZpbGUsXG4gICAgZXh0cmFjdGVkLFxuICB9ID0gb3B0aW9ucztcblxuICBjb25zdCBwcm9jZXNzID0gYXN5bmMgKGlucHV0VXJsOiBzdHJpbmcsIGNvbnRleHQ6IHN0cmluZywgcmVzb3VyY2VDYWNoZTogTWFwPHN0cmluZywgc3RyaW5nPikgPT4ge1xuICAgIC8vIElmIHJvb3QtcmVsYXRpdmUsIGFic29sdXRlIG9yIHByb3RvY29sIHJlbGF0aXZlIHVybCwgbGVhdmUgYXMgaXNcbiAgICBpZiAoL14oKD86XFx3KzopP1xcL1xcL3xkYXRhOnxjaHJvbWU6fCMpLy50ZXN0KGlucHV0VXJsKSkge1xuICAgICAgcmV0dXJuIGlucHV0VXJsO1xuICAgIH1cblxuICAgIGlmICgvXlxcLy8udGVzdChpbnB1dFVybCkpIHtcbiAgICAgIHJldHVybiBpbnB1dFVybDtcbiAgICB9XG5cbiAgICAvLyBJZiBzdGFydHMgd2l0aCBhIGNhcmV0LCByZW1vdmUgYW5kIHJldHVybiByZW1haW5kZXJcbiAgICAvLyB0aGlzIHN1cHBvcnRzIGJ5cGFzc2luZyBhc3NldCBwcm9jZXNzaW5nXG4gICAgaWYgKGlucHV0VXJsLnN0YXJ0c1dpdGgoJ14nKSkge1xuICAgICAgcmV0dXJuIGlucHV0VXJsLnNsaWNlKDEpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhY2hlS2V5ID0gcGF0aC5yZXNvbHZlKGNvbnRleHQsIGlucHV0VXJsKTtcbiAgICBjb25zdCBjYWNoZWRVcmwgPSByZXNvdXJjZUNhY2hlLmdldChjYWNoZUtleSk7XG4gICAgaWYgKGNhY2hlZFVybCkge1xuICAgICAgcmV0dXJuIGNhY2hlZFVybDtcbiAgICB9XG5cbiAgICBpZiAoaW5wdXRVcmwuc3RhcnRzV2l0aCgnficpKSB7XG4gICAgICBpbnB1dFVybCA9IGlucHV0VXJsLnNsaWNlKDEpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcGF0aG5hbWUsIGhhc2gsIHNlYXJjaCB9ID0gdXJsLnBhcnNlKGlucHV0VXJsLnJlcGxhY2UoL1xcXFwvZywgJy8nKSk7XG4gICAgY29uc3QgcmVzb2x2ZXIgPSAoZmlsZTogc3RyaW5nLCBiYXNlOiBzdHJpbmcpID0+XG4gICAgICBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbG9hZGVyLnJlc29sdmUoYmFzZSwgZGVjb2RlVVJJKGZpbGUpLCAoZXJyLCByZXN1bHQpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCBhcyBzdHJpbmcpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzb2x2ZShwYXRobmFtZSBhcyBzdHJpbmcsIGNvbnRleHQsIHJlc29sdmVyKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGxvYWRlci5mcy5yZWFkRmlsZShyZXN1bHQsIChlcnIsIGNvbnRlbnQpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG91dHB1dFBhdGggPSBpbnRlcnBvbGF0ZU5hbWUoeyByZXNvdXJjZVBhdGg6IHJlc3VsdCB9LCBmaWxlbmFtZShyZXN1bHQpLCB7XG4gICAgICAgICAgY29udGVudCxcbiAgICAgICAgICBjb250ZXh0OiBsb2FkZXIuY29udGV4dCB8fCBsb2FkZXIucm9vdENvbnRleHQsXG4gICAgICAgIH0pLnJlcGxhY2UoL1xcXFx8XFwvL2csICctJyk7XG5cbiAgICAgICAgaWYgKHJlc291cmNlc091dHB1dFBhdGgpIHtcbiAgICAgICAgICBvdXRwdXRQYXRoID0gcGF0aC5wb3NpeC5qb2luKHJlc291cmNlc091dHB1dFBhdGgsIG91dHB1dFBhdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgbG9hZGVyLmFkZERlcGVuZGVuY3kocmVzdWx0KTtcbiAgICAgICAgaWYgKGVtaXRGaWxlKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgICBsb2FkZXIuZW1pdEZpbGUob3V0cHV0UGF0aCwgY29udGVudCEsIHVuZGVmaW5lZCwgeyBzb3VyY2VGaWxlbmFtZTogcmVzdWx0IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG91dHB1dFVybCA9IG91dHB1dFBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICAgICAgICBpZiAoaGFzaCB8fCBzZWFyY2gpIHtcbiAgICAgICAgICBvdXRwdXRVcmwgPSB1cmwuZm9ybWF0KHsgcGF0aG5hbWU6IG91dHB1dFVybCwgaGFzaCwgc2VhcmNoIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRlcGxveVVybCAmJiAhZXh0cmFjdGVkKSB7XG4gICAgICAgICAgb3V0cHV0VXJsID0gdXJsLnJlc29sdmUoZGVwbG95VXJsLCBvdXRwdXRVcmwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzb3VyY2VDYWNoZS5zZXQoY2FjaGVLZXksIG91dHB1dFVybCk7XG4gICAgICAgIHJlc29sdmUob3V0cHV0VXJsKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHJlc291cmNlQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBjb25zdCBwcm9jZXNzZWQgPSBTeW1ib2woJ3Bvc3Rjc3MtY2xpLXJlc291cmNlcycpO1xuXG4gIHJldHVybiB7XG4gICAgcG9zdGNzc1BsdWdpbjogJ3Bvc3Rjc3MtY2xpLXJlc291cmNlcycsXG4gICAgYXN5bmMgRGVjbGFyYXRpb24oZGVjbCkge1xuICAgICAgaWYgKCFkZWNsLnZhbHVlLmluY2x1ZGVzKCd1cmwnKSB8fCBwcm9jZXNzZWQgaW4gZGVjbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gZGVjbC52YWx1ZTtcbiAgICAgIGNvbnN0IHVybFJlZ2V4ID0gL3VybCg/OlxcKFxccyooWydcIl0/KSkoLio/KSg/OlxcMVxccypcXCkpL2c7XG4gICAgICBjb25zdCBzZWdtZW50czogc3RyaW5nW10gPSBbXTtcblxuICAgICAgbGV0IG1hdGNoO1xuICAgICAgbGV0IGxhc3RJbmRleCA9IDA7XG4gICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgLy8gV2Ugd2FudCB0byBsb2FkIGl0IHJlbGF0aXZlIHRvIHRoZSBmaWxlIHRoYXQgaW1wb3J0c1xuICAgICAgY29uc3QgaW5wdXRGaWxlID0gZGVjbC5zb3VyY2UgJiYgZGVjbC5zb3VyY2UuaW5wdXQuZmlsZTtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSAoaW5wdXRGaWxlICYmIHBhdGguZGlybmFtZShpbnB1dEZpbGUpKSB8fCBsb2FkZXIuY29udGV4dDtcblxuICAgICAgd2hpbGUgKChtYXRjaCA9IHVybFJlZ2V4LmV4ZWModmFsdWUpKSkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFVybCA9IG1hdGNoWzJdO1xuICAgICAgICBsZXQgcHJvY2Vzc2VkVXJsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHByb2Nlc3NlZFVybCA9IGF3YWl0IHByb2Nlc3Mob3JpZ2luYWxVcmwsIGNvbnRleHQsIHJlc291cmNlQ2FjaGUpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBhc3NlcnRJc0Vycm9yKGVycik7XG4gICAgICAgICAgbG9hZGVyLmVtaXRFcnJvcihkZWNsLmVycm9yKGVyci5tZXNzYWdlLCB7IHdvcmQ6IG9yaWdpbmFsVXJsIH0pKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsYXN0SW5kZXggPCBtYXRjaC5pbmRleCkge1xuICAgICAgICAgIHNlZ21lbnRzLnB1c2godmFsdWUuc2xpY2UobGFzdEluZGV4LCBtYXRjaC5pbmRleCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFwcm9jZXNzZWRVcmwgfHwgb3JpZ2luYWxVcmwgPT09IHByb2Nlc3NlZFVybCkge1xuICAgICAgICAgIHNlZ21lbnRzLnB1c2gobWF0Y2hbMF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlZ21lbnRzLnB1c2god3JhcFVybChwcm9jZXNzZWRVcmwpKTtcbiAgICAgICAgICBtb2RpZmllZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBsYXN0SW5kZXggPSBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgaWYgKGxhc3RJbmRleCA8IHZhbHVlLmxlbmd0aCkge1xuICAgICAgICBzZWdtZW50cy5wdXNoKHZhbHVlLnNsaWNlKGxhc3RJbmRleCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAobW9kaWZpZWQpIHtcbiAgICAgICAgZGVjbC52YWx1ZSA9IHNlZ21lbnRzLmpvaW4oJycpO1xuICAgICAgfVxuXG4gICAgICAoZGVjbCBhcyBEZWNsYXJhdGlvbiAmIHsgW3Byb2Nlc3NlZF06IGJvb2xlYW4gfSlbcHJvY2Vzc2VkXSA9IHRydWU7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdGNzcy1jbGktcmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvd2VicGFjay9wbHVnaW5zL3Bvc3Rjc3MtY2xpLXJlc291cmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILCtDQUErQztBQUMvQywyQ0FBNkI7QUFFN0IseUNBQTJCO0FBQzNCLDZDQUFrRDtBQUVsRCxTQUFTLE9BQU8sQ0FBQyxHQUFXO0lBQzFCLElBQUksVUFBVSxDQUFDO0lBQ2YsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFOUMsSUFBSSxlQUFlLEVBQUU7UUFDbkIsVUFBVSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUM7S0FDekI7U0FBTTtRQUNMLFVBQVUsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDO0tBQ3pCO0lBRUQsT0FBTyxPQUFPLFVBQVUsR0FBRyxDQUFDO0FBQzlCLENBQUM7QUFjRCxLQUFLLFVBQVUsT0FBTyxDQUNwQixJQUFZLEVBQ1osSUFBWSxFQUNaLFFBQXlEO0lBRXpELElBQUk7UUFDRixPQUFPLE1BQU0sUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDMUM7SUFBQyxNQUFNO1FBQ04sT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzdCO0FBQ0gsQ0FBQztBQUVZLFFBQUEsT0FBTyxHQUFHLElBQUksQ0FBQztBQUU1QixtQkFBeUIsT0FBb0M7SUFDM0QsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztLQUMxRTtJQUVELE1BQU0sRUFD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Q0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3pCO3FCQUFNO29CQUNMLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7b0JBQ3JDLFFBQVEsR0FBRyxJQUFJLENBQUM7aUJBQ2pCO2dCQUVELFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7YUFDM0M7WUFFRCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUM1QixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUN2QztZQUVELElBQUksUUFBUSxFQUFFO2dCQUNaLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNoQztZQUVBLElBQStDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3JFLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQXZKRCw0QkF1SkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHsgaW50ZXJwb2xhdGVOYW1lIH0gZnJvbSAnbG9hZGVyLXV0aWxzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBEZWNsYXJhdGlvbiwgUGx1Z2luIH0gZnJvbSAncG9zdGNzcyc7XG5pbXBvcnQgKiBhcyB1cmwgZnJvbSAndXJsJztcbmltcG9ydCB7IGFzc2VydElzRXJyb3IgfSBmcm9tICcuLi8uLi91dGlscy9lcnJvcic7XG5cbmZ1bmN0aW9uIHdyYXBVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgd3JhcHBlZFVybDtcbiAgY29uc3QgaGFzU2luZ2xlUXVvdGVzID0gdXJsLmluZGV4T2YoXCInXCIpID49IDA7XG5cbiAgaWYgKGhhc1NpbmdsZVF1b3Rlcykge1xuICAgIHdyYXBwZWRVcmwgPSBgXCIke3VybH1cImA7XG4gIH0gZWxzZSB7XG4gICAgd3JhcHBlZFVybCA9IGAnJHt1cmx9J2A7XG4gIH1cblxuICByZXR1cm4gYHVybCgke3dyYXBwZWRVcmx9KWA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9zdGNzc0NsaVJlc291cmNlc09wdGlvbnMge1xuICBiYXNlSHJlZj86IHN0cmluZztcbiAgZGVwbG95VXJsPzogc3RyaW5nO1xuICByZXNvdXJjZXNPdXRwdXRQYXRoPzogc3RyaW5nO1xuICByZWJhc2VSb290UmVsYXRpdmU/OiBib29sZWFuO1xuICAvKiogQ1NTIGlzIGV4dHJhY3RlZCB0byBhIGAuY3NzYCBvciBpcyBlbWJlZGRlZCBpbiBhIGAuanNgIGZpbGUuICovXG4gIGV4dHJhY3RlZD86IGJvb2xlYW47XG4gIGZpbGVuYW1lOiAocmVzb3VyY2VQYXRoOiBzdHJpbmcpID0+IHN0cmluZztcbiAgbG9hZGVyOiBpbXBvcnQoJ3dlYnBhY2snKS5Mb2FkZXJDb250ZXh0PHVua25vd24+O1xuICBlbWl0RmlsZTogYm9vbGVhbjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZShcbiAgZmlsZTogc3RyaW5nLFxuICBiYXNlOiBzdHJpbmcsXG4gIHJlc29sdmVyOiAoZmlsZTogc3RyaW5nLCBiYXNlOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPixcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHJlc29sdmVyKCcuLycgKyBmaWxlLCBiYXNlKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHJlc29sdmVyKGZpbGUsIGJhc2UpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBwb3N0Y3NzID0gdHJ1ZTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKG9wdGlvbnM/OiBQb3N0Y3NzQ2xpUmVzb3VyY2VzT3B0aW9ucyk6IFBsdWdpbiB7XG4gIGlmICghb3B0aW9ucykge1xuICAgIHRocm93IG5ldyBFcnJvcignTm8gb3B0aW9ucyB3ZXJlIHNwZWNpZmllZCB0byBcInBvc3Rjc3MtY2xpLXJlc291cmNlc1wiLicpO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGRlcGxveVVybCA9ICcnLFxuICAgIHJlc291cmNlc091dHB1dFBhdGggPSAnJyxcbiAgICBmaWxlbmFtZSxcbiAgICBsb2FkZXIsXG4gICAgZW1pdEZpbGUsXG4gICAgZXh0cmFjdGVkLFxuICB9ID0gb3B0aW9ucztcblxuICBjb25zdCBwcm9jZXNzID0gYXN5bmMgKGlucHV0VXJsOiBzdHJpbmcsIGNvbnRleHQ6IHN0cmluZywgcmVzb3VyY2VDYWNoZTogTWFwPHN0cmluZywgc3RyaW5nPikgPT4ge1xuICAgIC8vIElmIHJvb3QtcmVsYXRpdmUsIGFic29sdXRlIG9yIHByb3RvY29sIHJlbGF0aXZlIHVybCwgbGVhdmUgYXMgaXNcbiAgICBpZiAoL14oKD86XFx3KzopP1xcL1xcL3xkYXRhOnxjaHJvbWU6fCMpLy50ZXN0KGlucHV0VXJsKSkge1xuICAgICAgcmV0dXJuIGlucHV0VXJsO1xuICAgIH1cblxuICAgIGlmICgvXlxcLy8udGVzdChpbnB1dFVybCkpIHtcbiAgICAgIHJldHVybiBpbnB1dFVybDtcbiAgICB9XG5cbiAgICAvLyBJZiBzdGFydHMgd2l0aCBhIGNhcmV0LCByZW1vdmUgYW5kIHJldHVybiByZW1haW5kZXJcbiAgICAvLyB0aGlzIHN1cHBvcnRzIGJ5cGFzc2luZyBhc3NldCBwcm9jZXNzaW5nXG4gICAgaWYgKGlucHV0VXJsLnN0YXJ0c1dpdGgoJ14nKSkge1xuICAgICAgcmV0dXJuIGlucHV0VXJsLnNsaWNlKDEpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhY2hlS2V5ID0gcGF0aC5yZXNvbHZlKGNvbnRleHQsIGlucHV0VXJsKTtcbiAgICBjb25zdCBjYWNoZWRVcmwgPSByZXNvdXJjZUNhY2hlLmdldChjYWNoZUtleSk7XG4gICAgaWYgKGNhY2hlZFVybCkge1xuICAgICAgcmV0dXJuIGNhY2hlZFVybDtcbiAgICB9XG5cbiAgICBpZiAoaW5wdXRVcmwuc3RhcnRzV2l0aCgnficpKSB7XG4gICAgICBpbnB1dFVybCA9IGlucHV0VXJsLnNsaWNlKDEpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcGF0aG5hbWUsIGhhc2gsIHNlYXJjaCB9ID0gdXJsLnBhcnNlKGlucHV0VXJsLnJlcGxhY2UoL1xcXFwvZywgJy8nKSk7XG4gICAgY29uc3QgcmVzb2x2ZXIgPSAoZmlsZTogc3RyaW5nLCBiYXNlOiBzdHJpbmcpID0+XG4gICAgICBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbG9hZGVyLnJlc29sdmUoYmFzZSwgZGVjb2RlVVJJKGZpbGUpLCAoZXJyLCByZXN1bHQpID0+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCBhcyBzdHJpbmcpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVzb2x2ZShwYXRobmFtZSBhcyBzdHJpbmcsIGNvbnRleHQsIHJlc29sdmVyKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGxvYWRlci5mcy5yZWFkRmlsZShyZXN1bHQsIChlcnIsIGNvbnRlbnQpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJlamVjdChlcnIpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG91dHB1dFBhdGggPSBpbnRlcnBvbGF0ZU5hbWUoeyByZXNvdXJjZVBhdGg6IHJlc3VsdCB9LCBmaWxlbmFtZShyZXN1bHQpLCB7XG4gICAgICAgICAgY29udGVudCxcbiAgICAgICAgICBjb250ZXh0OiBsb2FkZXIuY29udGV4dCB8fCBsb2FkZXIucm9vdENvbnRleHQsXG4gICAgICAgIH0pLnJlcGxhY2UoL1xcXFx8XFwvL2csICctJyk7XG5cbiAgICAgICAgaWYgKHJlc291cmNlc091dHB1dFBhdGgpIHtcbiAgICAgICAgICBvdXRwdXRQYXRoID0gcGF0aC5wb3NpeC5qb2luKHJlc291cmNlc091dHB1dFBhdGgsIG91dHB1dFBhdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgbG9hZGVyLmFkZERlcGVuZGVuY3kocmVzdWx0KTtcbiAgICAgICAgaWYgKGVtaXRGaWxlKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgICBsb2FkZXIuZW1pdEZpbGUob3V0cHV0UGF0aCwgY29udGVudCEsIHVuZGVmaW5lZCwgeyBzb3VyY2VGaWxlbmFtZTogcmVzdWx0IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG91dHB1dFVybCA9IG91dHB1dFBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICAgICAgICBpZiAoaGFzaCB8fCBzZWFyY2gpIHtcbiAgICAgICAgICBvdXRwdXRVcmwgPSB1cmwuZm9ybWF0KHsgcGF0aG5hbWU6IG91dHB1dFVybCwgaGFzaCwgc2VhcmNoIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGRlcGxveVVybCAmJiAhZXh0cmFjdGVkKSB7XG4gICAgICAgICAgb3V0cHV0VXJsID0gdXJsLnJlc29sdmUoZGVwbG95VXJsLCBvdXRwdXRVcmwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzb3VyY2VDYWNoZS5zZXQoY2FjaGVLZXksIG91dHB1dFVybCk7XG4gICAgICAgIHJlc29sdmUob3V0cHV0VXJsKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHJlc291cmNlQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBjb25zdCBwcm9jZXNzZWQgPSBTeW1ib2woJ3Bvc3Rjc3MtY2xpLXJlc291cmNlcycpO1xuXG4gIHJldHVybiB7XG4gICAgcG9zdGNzc1BsdWdpbjogJ3Bvc3Rjc3MtY2xpLXJlc291cmNlcycsXG4gICAgYXN5bmMgRGVjbGFyYXRpb24oZGVjbCkge1xuICAgICAgaWYgKCFkZWNsLnZhbHVlLmluY2x1ZGVzKCd1cmwnKSB8fCBwcm9jZXNzZWQgaW4gZGVjbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gZGVjbC52YWx1ZTtcbiAgICAgIGNvbnN0IHVybFJlZ2V4ID0gL3VybCg/OlxcKFxccyooWydcIl0/KSkoLio/KSg/OlxcMVxccypcXCkpL2c7XG4gICAgICBjb25zdCBzZWdtZW50czogc3RyaW5nW10gPSBbXTtcblxuICAgICAgbGV0IG1hdGNoO1xuICAgICAgbGV0IGxhc3RJbmRleCA9IDA7XG4gICAgICBsZXQgbW9kaWZpZWQgPSBmYWxzZTtcblxuICAgICAgLy8gV2Ugd2FudCB0byBsb2FkIGl0IHJlbGF0aXZlIHRvIHRoZSBmaWxlIHRoYXQgaW1wb3J0c1xuICAgICAgY29uc3QgaW5wdXRGaWxlID0gZGVjbC5zb3VyY2UgJiYgZGVjbC5zb3VyY2UuaW5wdXQuZmlsZTtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSAoaW5wdXRGaWxlICYmIHBhdGguZGlybmFtZShpbnB1dEZpbGUpKSB8fCBsb2FkZXIuY29udGV4dDtcblxuICAgICAgd2hpbGUgKChtYXRjaCA9IHVybFJlZ2V4LmV4ZWModmFsdWUpKSkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFVybCA9IG1hdGNoWzJdO1xuICAgICAgICBsZXQgcHJvY2Vzc2VkVXJsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHByb2Nlc3NlZFVybCA9IGF3YWl0IHByb2Nlc3Mob3JpZ2luYWxVcmwsIGNvbnRleHQsIHJlc291cmNlQ2FjaGUpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBhc3NlcnRJc0Vycm9yKGVycik7XG4gICAgICAgICAgbG9hZGVyLmVtaXRFcnJvcihkZWNsLmVycm9yKGVyci5tZXNzYWdlLCB7IHdvcmQ6IG9yaWdpbmFsVXJsIH0pKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsYXN0SW5kZXggPCBtYXRjaC5pbmRleCkge1xuICAgICAgICAgIHNlZ21lbnRzLnB1c2godmFsdWUuc2xpY2UobGFzdEluZGV4LCBtYXRjaC5pbmRleCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFwcm9jZXNzZWRVcmwgfHwgb3JpZ2luYWxVcmwgPT09IHByb2Nlc3NlZFVybCkge1xuICAgICAgICAgIHNlZ21lbnRzLnB1c2gobWF0Y2hbMF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlZ21lbnRzLnB1c2god3JhcFVybChwcm9jZXNzZWRVcmwpKTtcbiAgICAgICAgICBtb2RpZmllZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBsYXN0SW5kZXggPSBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgaWYgKGxhc3RJbmRleCA8IHZhbHVlLmxlbmd0aCkge1xuICAgICAgICBzZWdtZW50cy5wdXNoKHZhbHVlLnNsaWNlKGxhc3RJbmRleCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAobW9kaWZpZWQpIHtcbiAgICAgICAgZGVjbC52YWx1ZSA9IHNlZ21lbnRzLmpvaW4oJycpO1xuICAgICAgfVxuXG4gICAgICAoZGVjbCBhcyBEZWNsYXJhdGlvbiAmIHsgW3Byb2Nlc3NlZF06IGJvb2xlYW4gfSlbcHJvY2Vzc2VkXSA9IHRydWU7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
@@ -15,10 +15,9 @@ class RemoveHashPlugin {
15
15
  apply(compiler) {
16
16
  compiler.hooks.compilation.tap('remove-hash-plugin', (compilation) => {
17
17
  const assetPath = (path, data) => {
18
- var _a;
19
- const chunkName = (_a = data.chunk) === null || _a === void 0 ? void 0 : _a.name;
18
+ const chunkName = data.chunk?.name;
20
19
  const { chunkNames, hashFormat } = this.options;
21
- if (chunkName && (chunkNames === null || chunkNames === void 0 ? void 0 : chunkNames.includes(chunkName))) {
20
+ if (chunkName && chunkNames?.includes(chunkName)) {
22
21
  // Replace hash formats with empty strings.
23
22
  return path.replace(hashFormat.chunk, '').replace(hashFormat.extract, '');
24
23
  }
@@ -29,4 +28,4 @@ class RemoveHashPlugin {
29
28
  }
30
29
  }
31
30
  exports.RemoveHashPlugin = RemoveHashPlugin;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWhhc2gtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvd2VicGFjay9wbHVnaW5zL3JlbW92ZS1oYXNoLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFVSCxNQUFhLGdCQUFnQjtJQUMzQixZQUFvQixPQUFnQztRQUFoQyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtJQUFHLENBQUM7SUFFeEQsS0FBSyxDQUFDLFFBQWtCO1FBQ3RCLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ25FLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBWSxFQUFFLElBQWtDLEVBQUUsRUFBRTs7Z0JBQ3JFLE1BQU0sU0FBUyxHQUFHLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsSUFBSSxDQUFDO2dCQUNuQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBRWhELElBQUksU0FBUyxLQUFJLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUEsRUFBRTtvQkFDaEQsMkNBQTJDO29CQUMzQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztpQkFDM0U7Z0JBRUQsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDLENBQUM7WUFFRixXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFwQkQsNENBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IENvbXBpbGVyIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgeyBIYXNoRm9ybWF0IH0gZnJvbSAnLi4vdXRpbHMvaGVscGVycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3ZlSGFzaFBsdWdpbk9wdGlvbnMge1xuICBjaHVua05hbWVzOiBzdHJpbmdbXTtcbiAgaGFzaEZvcm1hdDogSGFzaEZvcm1hdDtcbn1cblxuZXhwb3J0IGNsYXNzIFJlbW92ZUhhc2hQbHVnaW4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IFJlbW92ZUhhc2hQbHVnaW5PcHRpb25zKSB7fVxuXG4gIGFwcGx5KGNvbXBpbGVyOiBDb21waWxlcik6IHZvaWQge1xuICAgIGNvbXBpbGVyLmhvb2tzLmNvbXBpbGF0aW9uLnRhcCgncmVtb3ZlLWhhc2gtcGx1Z2luJywgKGNvbXBpbGF0aW9uKSA9PiB7XG4gICAgICBjb25zdCBhc3NldFBhdGggPSAocGF0aDogc3RyaW5nLCBkYXRhOiB7IGNodW5rPzogeyBuYW1lOiBzdHJpbmcgfSB9KSA9PiB7XG4gICAgICAgIGNvbnN0IGNodW5rTmFtZSA9IGRhdGEuY2h1bms/Lm5hbWU7XG4gICAgICAgIGNvbnN0IHsgY2h1bmtOYW1lcywgaGFzaEZvcm1hdCB9ID0gdGhpcy5vcHRpb25zO1xuXG4gICAgICAgIGlmIChjaHVua05hbWUgJiYgY2h1bmtOYW1lcz8uaW5jbHVkZXMoY2h1bmtOYW1lKSkge1xuICAgICAgICAgIC8vIFJlcGxhY2UgaGFzaCBmb3JtYXRzIHdpdGggZW1wdHkgc3RyaW5ncy5cbiAgICAgICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKGhhc2hGb3JtYXQuY2h1bmssICcnKS5yZXBsYWNlKGhhc2hGb3JtYXQuZXh0cmFjdCwgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICB9O1xuXG4gICAgICBjb21waWxhdGlvbi5ob29rcy5hc3NldFBhdGgudGFwKCdyZW1vdmUtaGFzaC1wbHVnaW4nLCBhc3NldFBhdGgpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWhhc2gtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvd2VicGFjay9wbHVnaW5zL3JlbW92ZS1oYXNoLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFVSCxNQUFhLGdCQUFnQjtJQUMzQixZQUFvQixPQUFnQztRQUFoQyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtJQUFHLENBQUM7SUFFeEQsS0FBSyxDQUFDLFFBQWtCO1FBQ3RCLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ25FLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBWSxFQUFFLElBQWtDLEVBQUUsRUFBRTtnQkFDckUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7Z0JBQ25DLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFFaEQsSUFBSSxTQUFTLElBQUksVUFBVSxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDaEQsMkNBQTJDO29CQUMzQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztpQkFDM0U7Z0JBRUQsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDLENBQUM7WUFFRixXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFwQkQsNENBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IENvbXBpbGVyIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgeyBIYXNoRm9ybWF0IH0gZnJvbSAnLi4vdXRpbHMvaGVscGVycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3ZlSGFzaFBsdWdpbk9wdGlvbnMge1xuICBjaHVua05hbWVzOiBzdHJpbmdbXTtcbiAgaGFzaEZvcm1hdDogSGFzaEZvcm1hdDtcbn1cblxuZXhwb3J0IGNsYXNzIFJlbW92ZUhhc2hQbHVnaW4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IFJlbW92ZUhhc2hQbHVnaW5PcHRpb25zKSB7fVxuXG4gIGFwcGx5KGNvbXBpbGVyOiBDb21waWxlcik6IHZvaWQge1xuICAgIGNvbXBpbGVyLmhvb2tzLmNvbXBpbGF0aW9uLnRhcCgncmVtb3ZlLWhhc2gtcGx1Z2luJywgKGNvbXBpbGF0aW9uKSA9PiB7XG4gICAgICBjb25zdCBhc3NldFBhdGggPSAocGF0aDogc3RyaW5nLCBkYXRhOiB7IGNodW5rPzogeyBuYW1lOiBzdHJpbmcgfSB9KSA9PiB7XG4gICAgICAgIGNvbnN0IGNodW5rTmFtZSA9IGRhdGEuY2h1bms/Lm5hbWU7XG4gICAgICAgIGNvbnN0IHsgY2h1bmtOYW1lcywgaGFzaEZvcm1hdCB9ID0gdGhpcy5vcHRpb25zO1xuXG4gICAgICAgIGlmIChjaHVua05hbWUgJiYgY2h1bmtOYW1lcz8uaW5jbHVkZXMoY2h1bmtOYW1lKSkge1xuICAgICAgICAgIC8vIFJlcGxhY2UgaGFzaCBmb3JtYXRzIHdpdGggZW1wdHkgc3RyaW5ncy5cbiAgICAgICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKGhhc2hGb3JtYXQuY2h1bmssICcnKS5yZXBsYWNlKGhhc2hGb3JtYXQuZXh0cmFjdCwgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICB9O1xuXG4gICAgICBjb21waWxhdGlvbi5ob29rcy5hc3NldFBhdGgudGFwKCdyZW1vdmUtaGFzaC1wbHVnaW4nLCBhc3NldFBhdGgpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=