@angular-devkit/build-angular 17.0.0-next.8 → 17.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +17 -17
- package/src/builders/app-shell/index.js +7 -6
- package/src/builders/application/execute-build.js +36 -64
- package/src/builders/application/execute-post-bundle.d.ts +25 -0
- package/src/builders/application/execute-post-bundle.js +91 -0
- package/src/builders/application/i18n.d.ts +1 -0
- package/src/builders/application/i18n.js +16 -36
- package/src/builders/application/index.d.ts +18 -2
- package/src/builders/application/index.js +19 -5
- package/src/builders/application/options.d.ts +5 -2
- package/src/builders/application/options.js +7 -4
- package/src/builders/application/schema.d.ts +11 -4
- package/src/builders/application/schema.js +1 -1
- package/src/builders/application/schema.json +9 -3
- package/src/builders/browser/schema.d.ts +0 -1
- package/src/builders/browser/schema.js +1 -1
- package/src/builders/browser/schema.json +1 -1
- package/src/builders/browser-esbuild/builder-status-warnings.d.ts +1 -1
- package/src/builders/browser-esbuild/builder-status-warnings.js +6 -4
- package/src/builders/browser-esbuild/index.d.ts +2 -1
- package/src/builders/browser-esbuild/index.js +17 -15
- package/src/builders/browser-esbuild/schema.d.ts +0 -1
- package/src/builders/browser-esbuild/schema.js +1 -1
- package/src/builders/browser-esbuild/schema.json +1 -1
- package/src/builders/dev-server/builder.d.ts +2 -1
- package/src/builders/dev-server/builder.js +9 -3
- package/src/builders/dev-server/vite-server.d.ts +2 -1
- package/src/builders/dev-server/vite-server.js +35 -13
- package/src/builders/prerender/render-worker.js +3 -3
- package/src/index.d.ts +1 -0
- package/src/index.js +4 -2
- package/src/tools/esbuild/angular/compilation/angular-compilation.d.ts +4 -2
- package/src/tools/esbuild/angular/compilation/angular-compilation.js +5 -4
- package/src/tools/esbuild/angular/compilation/aot-compilation.js +3 -1
- package/src/tools/esbuild/angular/compilation/factory.d.ts +16 -0
- package/src/tools/esbuild/angular/compilation/factory.js +57 -0
- package/src/tools/esbuild/angular/compilation/index.d.ts +1 -2
- package/src/tools/esbuild/angular/compilation/index.js +4 -6
- package/src/tools/esbuild/angular/compilation/parallel-compilation.d.ts +42 -0
- package/src/tools/esbuild/angular/compilation/parallel-compilation.js +122 -0
- package/src/tools/esbuild/angular/compilation/parallel-worker.d.ts +32 -0
- package/src/tools/esbuild/angular/compilation/parallel-worker.js +91 -0
- package/src/tools/esbuild/angular/compiler-plugin.d.ts +1 -0
- package/src/tools/esbuild/angular/compiler-plugin.js +100 -48
- package/src/tools/esbuild/angular/component-stylesheets.d.ts +2 -1
- package/src/tools/esbuild/angular/component-stylesheets.js +8 -6
- package/src/tools/esbuild/angular/diagnostics.js +2 -6
- package/src/tools/esbuild/angular/file-reference-tracker.d.ts +17 -0
- package/src/tools/esbuild/angular/file-reference-tracker.js +54 -0
- package/src/tools/esbuild/angular/jit-plugin-callbacks.d.ts +6 -3
- package/src/tools/esbuild/angular/jit-plugin-callbacks.js +5 -5
- package/src/tools/esbuild/angular/source-file-cache.js +4 -2
- package/src/tools/esbuild/application-code-bundle.d.ts +1 -0
- package/src/tools/esbuild/application-code-bundle.js +103 -51
- package/src/tools/esbuild/bundler-execution-result.d.ts +11 -12
- package/src/tools/esbuild/bundler-execution-result.js +8 -3
- package/src/tools/esbuild/compiler-plugin-options.js +2 -1
- package/src/tools/esbuild/index-html-generator.js +26 -3
- package/src/tools/esbuild/stylesheets/bundle-options.js +2 -2
- package/src/tools/esbuild/stylesheets/less-language.js +37 -10
- package/src/tools/esbuild/stylesheets/stylesheet-plugin-factory.js +26 -11
- package/src/tools/esbuild/utils.d.ts +4 -5
- package/src/tools/esbuild/utils.js +28 -14
- package/src/utils/environment-options.d.ts +1 -0
- package/src/utils/environment-options.js +4 -2
- package/src/utils/index-file/inline-critical-css.js +6 -3
- package/src/utils/routes-extractor/extractor.js +20 -7
- package/src/utils/server-rendering/main-bundle-exports.d.ts +3 -1
- package/src/utils/server-rendering/main-bundle-exports.js +1 -1
- package/src/utils/server-rendering/prerender.d.ts +2 -1
- package/src/utils/server-rendering/prerender.js +43 -11
- package/src/utils/server-rendering/render-page.js +42 -4
- package/src/utils/service-worker.d.ts +3 -8
- package/src/utils/service-worker.js +1 -1
|
@@ -9,16 +9,12 @@
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.loadActiveTranslations = exports.inlineI18n = void 0;
|
|
11
11
|
const node_path_1 = require("node:path");
|
|
12
|
-
const bundler_context_1 = require("../../tools/esbuild/bundler-context");
|
|
13
12
|
const i18n_inliner_1 = require("../../tools/esbuild/i18n-inliner");
|
|
14
|
-
const index_html_generator_1 = require("../../tools/esbuild/index-html-generator");
|
|
15
|
-
const utils_1 = require("../../tools/esbuild/utils");
|
|
16
13
|
const environment_options_1 = require("../../utils/environment-options");
|
|
17
14
|
const i18n_options_1 = require("../../utils/i18n-options");
|
|
18
15
|
const load_translations_1 = require("../../utils/load-translations");
|
|
19
|
-
const prerender_1 = require("../../utils/server-rendering/prerender");
|
|
20
|
-
const service_worker_1 = require("../../utils/service-worker");
|
|
21
16
|
const url_1 = require("../../utils/url");
|
|
17
|
+
const execute_post_bundle_1 = require("./execute-post-bundle");
|
|
22
18
|
/**
|
|
23
19
|
* Inlines all active locales as specified by the application build options into all
|
|
24
20
|
* application JavaScript files created during the build.
|
|
@@ -36,6 +32,7 @@ async function inlineI18n(options, executionResult, initialFiles) {
|
|
|
36
32
|
const inlineResult = {
|
|
37
33
|
errors: [],
|
|
38
34
|
warnings: [],
|
|
35
|
+
prerenderedRoutes: [],
|
|
39
36
|
};
|
|
40
37
|
// For each active locale, use the inliner to process the output files of the build.
|
|
41
38
|
const updatedOutputFiles = [];
|
|
@@ -45,46 +42,29 @@ async function inlineI18n(options, executionResult, initialFiles) {
|
|
|
45
42
|
// A locale specific set of files is returned from the inliner.
|
|
46
43
|
const localeOutputFiles = await inliner.inlineForLocale(locale, options.i18nOptions.locales[locale].translation);
|
|
47
44
|
const baseHref = getLocaleBaseHref(options.baseHref, options.i18nOptions, locale) ?? options.baseHref;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
inlineResult.errors.push(...errors);
|
|
56
|
-
inlineResult.warnings.push(...warnings);
|
|
57
|
-
// Pre-render (SSG) and App-shell
|
|
58
|
-
if (options.prerenderOptions || options.appShellOptions) {
|
|
59
|
-
const { output, warnings, errors } = await (0, prerender_1.prerenderPages)(options.workspaceRoot, options.appShellOptions, options.prerenderOptions, localeOutputFiles, contentWithoutCriticalCssInlined, options.optimizationOptions.styles.inlineCritical, environment_options_1.maxWorkers, options.verbose);
|
|
60
|
-
inlineResult.errors.push(...errors);
|
|
61
|
-
inlineResult.warnings.push(...warnings);
|
|
62
|
-
for (const [path, content] of Object.entries(output)) {
|
|
63
|
-
localeOutputFiles.push((0, utils_1.createOutputFileFromText)(path, content, bundler_context_1.BuildOutputFileType.Browser));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (options.serviceWorker) {
|
|
68
|
-
try {
|
|
69
|
-
const serviceWorkerResult = await (0, service_worker_1.augmentAppWithServiceWorkerEsbuild)(options.workspaceRoot, options.serviceWorker, baseHref || '/', localeOutputFiles, executionResult.assetFiles);
|
|
70
|
-
localeOutputFiles.push((0, utils_1.createOutputFileFromText)('ngsw.json', serviceWorkerResult.manifest, bundler_context_1.BuildOutputFileType.Browser));
|
|
71
|
-
executionResult.assetFiles.push(...serviceWorkerResult.assetFiles);
|
|
72
|
-
}
|
|
73
|
-
catch (error) {
|
|
74
|
-
inlineResult.errors.push(error instanceof Error ? error.message : `${error}`);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
45
|
+
const { errors, warnings, additionalAssets, additionalOutputFiles, prerenderedRoutes: generatedRoutes, } = await (0, execute_post_bundle_1.executePostBundleSteps)({
|
|
46
|
+
...options,
|
|
47
|
+
baseHref,
|
|
48
|
+
}, localeOutputFiles, executionResult.assetFiles, initialFiles, locale);
|
|
49
|
+
localeOutputFiles.push(...additionalOutputFiles);
|
|
50
|
+
inlineResult.errors.push(...errors);
|
|
51
|
+
inlineResult.warnings.push(...warnings);
|
|
77
52
|
// Update directory with locale base
|
|
78
53
|
if (options.i18nOptions.flatOutput !== true) {
|
|
79
54
|
localeOutputFiles.forEach((file) => {
|
|
80
55
|
file.path = (0, node_path_1.join)(locale, file.path);
|
|
81
56
|
});
|
|
82
|
-
for (const assetFile of executionResult.assetFiles) {
|
|
57
|
+
for (const assetFile of [...executionResult.assetFiles, ...additionalAssets]) {
|
|
83
58
|
updatedAssetFiles.push({
|
|
84
59
|
source: assetFile.source,
|
|
85
60
|
destination: (0, node_path_1.join)(locale, assetFile.destination),
|
|
86
61
|
});
|
|
87
62
|
}
|
|
63
|
+
inlineResult.prerenderedRoutes.push(...generatedRoutes.map((route) => node_path_1.posix.join('/', locale, route)));
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
inlineResult.prerenderedRoutes.push(...generatedRoutes);
|
|
67
|
+
executionResult.assetFiles.push(...additionalAssets);
|
|
88
68
|
}
|
|
89
69
|
updatedOutputFiles.push(...localeOutputFiles);
|
|
90
70
|
}
|
|
@@ -137,4 +117,4 @@ async function loadActiveTranslations(context, i18n) {
|
|
|
137
117
|
}
|
|
138
118
|
}
|
|
139
119
|
exports.loadActiveTranslations = loadActiveTranslations;
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gseUNBQWlDO0FBQ2pDLHlFQUE2RjtBQUU3RixtRUFBK0Q7QUFDL0QsbUZBQTZFO0FBQzdFLHFEQUFxRTtBQUNyRSx5RUFBNkQ7QUFDN0QsMkRBQTREO0FBQzVELHFFQUF3RTtBQUN4RSxzRUFBd0U7QUFDeEUsK0RBQWdGO0FBQ2hGLHlDQUEwQztBQUcxQzs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsVUFBVSxDQUM5QixPQUEwQyxFQUMxQyxlQUFnQyxFQUNoQyxZQUE0QztJQUU1QyxnR0FBZ0c7SUFDaEcsTUFBTSxPQUFPLEdBQUcsSUFBSSwwQkFBVyxDQUM3QjtRQUNFLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsMEJBQTBCLElBQUksU0FBUztRQUMvRSxXQUFXLEVBQUUsZUFBZSxDQUFDLFdBQVc7UUFDeEMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPO0tBQ3BELEVBQ0QsZ0NBQVUsQ0FDWCxDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQTZDO1FBQzdELE1BQU0sRUFBRSxFQUFFO1FBQ1YsUUFBUSxFQUFFLEVBQUU7S0FDYixDQUFDO0lBRUYsb0ZBQW9GO0lBQ3BGLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzdCLElBQUk7UUFDRixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFO1lBQ3RELCtEQUErRDtZQUMvRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sT0FBTyxDQUFDLGVBQWUsQ0FDckQsTUFBTSxFQUNOLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FDaEQsQ0FBQztZQUVGLE1BQU0sUUFBUSxHQUNaLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDO1lBRXZGLDRDQUE0QztZQUM1QyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDNUIsTUFBTSxFQUFFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQ25FLE1BQU0sSUFBQSx3Q0FBaUIsRUFDckIsWUFBWSxFQUNaLGlCQUFpQixFQUNqQjtvQkFDRSxHQUFHLE9BQU87b0JBQ1YsUUFBUTtpQkFDVCxFQUNELE1BQU0sQ0FDUCxDQUFDO2dCQUVKLGlCQUFpQixDQUFDLElBQUksQ0FDcEIsSUFBQSxnQ0FBd0IsRUFDdEIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFDL0IsT0FBTyxFQUNQLHFDQUFtQixDQUFDLE9BQU8sQ0FDNUIsQ0FDRixDQUFDO2dCQUNGLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7Z0JBQ3BDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7Z0JBRXhDLGlDQUFpQztnQkFDakMsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLElBQUksT0FBTyxDQUFDLGVBQWUsRUFBRTtvQkFDdkQsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLDBCQUFjLEVBQ3ZELE9BQU8sQ0FBQyxhQUFhLEVBQ3JCLE9BQU8sQ0FBQyxlQUFlLEVBQ3ZCLE9BQU8sQ0FBQyxnQkFBZ0IsRUFDeEIsaUJBQWlCLEVBQ2pCLGdDQUFnQyxFQUNoQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFDakQsZ0NBQVUsRUFDVixPQUFPLENBQUMsT0FBTyxDQUNoQixDQUFDO29CQUVGLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7b0JBQ3BDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7b0JBRXhDLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO3dCQUNwRCxpQkFBaUIsQ0FBQyxJQUFJLENBQ3BCLElBQUEsZ0NBQXdCLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxxQ0FBbUIsQ0FBQyxPQUFPLENBQUMsQ0FDckUsQ0FBQztxQkFDSDtpQkFDRjthQUNGO1lBRUQsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFO2dCQUN6QixJQUFJO29CQUNGLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxJQUFBLG1EQUFrQyxFQUNsRSxPQUFPLENBQUMsYUFBYSxFQUNyQixPQUFPLENBQUMsYUFBYSxFQUNyQixRQUFRLElBQUksR0FBRyxFQUNmLGlCQUFpQixFQUNqQixlQUFlLENBQUMsVUFBVSxDQUMzQixDQUFDO29CQUNGLGlCQUFpQixDQUFDLElBQUksQ0FDcEIsSUFBQSxnQ0FBd0IsRUFDdEIsV0FBVyxFQUNYLG1CQUFtQixDQUFDLFFBQVEsRUFDNUIscUNBQW1CLENBQUMsT0FBTyxDQUM1QixDQUNGLENBQUM7b0JBQ0YsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDcEU7Z0JBQUMsT0FBTyxLQUFLLEVBQUU7b0JBQ2QsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUMvRTthQUNGO1lBRUQsb0NBQW9DO1lBQ3BDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO2dCQUMzQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFBLGdCQUFJLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdEMsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsS0FBSyxNQUFNLFNBQVMsSUFBSSxlQUFlLENBQUMsVUFBVSxFQUFFO29CQUNsRCxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7d0JBQ3JCLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTt3QkFDeEIsV0FBVyxFQUFFLElBQUEsZ0JBQUksRUFBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQztxQkFDakQsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7WUFFRCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1NBQy9DO0tBQ0Y7WUFBUztRQUNSLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0tBQ3ZCO0lBRUQsNkNBQTZDO0lBQzdDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUM7SUFFakQsOERBQThEO0lBQzlELElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO1FBQzNDLGVBQWUsQ0FBQyxVQUFVLEdBQUcsaUJBQWlCLENBQUM7S0FDaEQ7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBcElELGdDQW9JQztBQUVELFNBQVMsaUJBQWlCLENBQ3hCLFFBQTRCLEVBQzVCLElBQXNELEVBQ3RELE1BQWM7SUFFZCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDbkIsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEtBQUssRUFBRSxFQUFFO1FBQ2hFLE9BQU8sSUFBQSxhQUFPLEVBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsSUFBSSxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7S0FDaEY7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsT0FBdUIsRUFDdkIsSUFBc0Q7SUFFdEQsaURBQWlEO0lBQ2pELElBQUksTUFBTSxDQUFDO0lBQ1gsS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuRSxTQUFTO1NBQ1Y7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDdEIsU0FBUztTQUNWO1FBRUQsTUFBTSxLQUFLLE1BQU0sSUFBQSwyQ0FBdUIsR0FBRSxDQUFDO1FBRTNDLElBQUEsK0JBQWdCLEVBQ2QsTUFBTSxFQUNOLElBQUksRUFDSixPQUFPLENBQUMsYUFBYSxFQUNyQixNQUFNLEVBQ047WUFDRSxJQUFJLENBQUMsT0FBTztnQkFDVixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQixDQUFDO1lBQ0QsS0FBSyxDQUFDLE9BQU87Z0JBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzQixDQUFDO1NBQ0YsRUFDRCxTQUFTLEVBQ1QsSUFBSSxDQUFDLDRCQUE0QixDQUNsQyxDQUFDO0tBQ0g7QUFDSCxDQUFDO0FBbENELHdEQWtDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBCdWlsZGVyQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9hcmNoaXRlY3QnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBCdWlsZE91dHB1dEZpbGVUeXBlLCBJbml0aWFsRmlsZVJlY29yZCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1jb250ZXh0JztcbmltcG9ydCB7IEV4ZWN1dGlvblJlc3VsdCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1leGVjdXRpb24tcmVzdWx0JztcbmltcG9ydCB7IEkxOG5JbmxpbmVyIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9pMThuLWlubGluZXInO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbmRleEh0bWwgfSBmcm9tICcuLi8uLi90b29scy9lc2J1aWxkL2luZGV4LWh0bWwtZ2VuZXJhdG9yJztcbmltcG9ydCB7IGNyZWF0ZU91dHB1dEZpbGVGcm9tVGV4dCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvdXRpbHMnO1xuaW1wb3J0IHsgbWF4V29ya2VycyB9IGZyb20gJy4uLy4uL3V0aWxzL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuaW1wb3J0IHsgbG9hZFRyYW5zbGF0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4tb3B0aW9ucyc7XG5pbXBvcnQgeyBjcmVhdGVUcmFuc2xhdGlvbkxvYWRlciB9IGZyb20gJy4uLy4uL3V0aWxzL2xvYWQtdHJhbnNsYXRpb25zJztcbmltcG9ydCB7IHByZXJlbmRlclBhZ2VzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2VydmVyLXJlbmRlcmluZy9wcmVyZW5kZXInO1xuaW1wb3J0IHsgYXVnbWVudEFwcFdpdGhTZXJ2aWNlV29ya2VyRXNidWlsZCB9IGZyb20gJy4uLy4uL3V0aWxzL3NlcnZpY2Utd29ya2VyJztcbmltcG9ydCB7IHVybEpvaW4gfSBmcm9tICcuLi8uLi91dGlscy91cmwnO1xuaW1wb3J0IHsgTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuLyoqXG4gKiBJbmxpbmVzIGFsbCBhY3RpdmUgbG9jYWxlcyBhcyBzcGVjaWZpZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGJ1aWxkIG9wdGlvbnMgaW50byBhbGxcbiAqIGFwcGxpY2F0aW9uIEphdmFTY3JpcHQgZmlsZXMgY3JlYXRlZCBkdXJpbmcgdGhlIGJ1aWxkLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6ZWQgYXBwbGljYXRpb24gYnVpbGRlciBvcHRpb25zIHVzZWQgdG8gY3JlYXRlIHRoZSBidWlsZC5cbiAqIEBwYXJhbSBleGVjdXRpb25SZXN1bHQgVGhlIHJlc3VsdCBvZiBhbiBleGVjdXRlZCBidWlsZC5cbiAqIEBwYXJhbSBpbml0aWFsRmlsZXMgQSBtYXAgY29udGFpbmluZyBpbml0aWFsIGZpbGUgaW5mb3JtYXRpb24gZm9yIHRoZSBleGVjdXRlZCBidWlsZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlubGluZUkxOG4oXG4gIG9wdGlvbnM6IE5vcm1hbGl6ZWRBcHBsaWNhdGlvbkJ1aWxkT3B0aW9ucyxcbiAgZXhlY3V0aW9uUmVzdWx0OiBFeGVjdXRpb25SZXN1bHQsXG4gIGluaXRpYWxGaWxlczogTWFwPHN0cmluZywgSW5pdGlhbEZpbGVSZWNvcmQ+LFxuKTogUHJvbWlzZTx7IGVycm9yczogc3RyaW5nW107IHdhcm5pbmdzOiBzdHJpbmdbXSB9PiB7XG4gIC8vIENyZWF0ZSB0aGUgbXVsdGktdGhyZWFkZWQgaW5saW5lciB3aXRoIGNvbW1vbiBvcHRpb25zIGFuZCB0aGUgZmlsZXMgZ2VuZXJhdGVkIGZyb20gdGhlIGJ1aWxkLlxuICBjb25zdCBpbmxpbmVyID0gbmV3IEkxOG5JbmxpbmVyKFxuICAgIHtcbiAgICAgIG1pc3NpbmdUcmFuc2xhdGlvbjogb3B0aW9ucy5pMThuT3B0aW9ucy5taXNzaW5nVHJhbnNsYXRpb25CZWhhdmlvciA/PyAnd2FybmluZycsXG4gICAgICBvdXRwdXRGaWxlczogZXhlY3V0aW9uUmVzdWx0Lm91dHB1dEZpbGVzLFxuICAgICAgc2hvdWxkT3B0aW1pemU6IG9wdGlvbnMub3B0aW1pemF0aW9uT3B0aW9ucy5zY3JpcHRzLFxuICAgIH0sXG4gICAgbWF4V29ya2VycyxcbiAgKTtcblxuICBjb25zdCBpbmxpbmVSZXN1bHQ6IHsgZXJyb3JzOiBzdHJpbmdbXTsgd2FybmluZ3M6IHN0cmluZ1tdIH0gPSB7XG4gICAgZXJyb3JzOiBbXSxcbiAgICB3YXJuaW5nczogW10sXG4gIH07XG5cbiAgLy8gRm9yIGVhY2ggYWN0aXZlIGxvY2FsZSwgdXNlIHRoZSBpbmxpbmVyIHRvIHByb2Nlc3MgdGhlIG91dHB1dCBmaWxlcyBvZiB0aGUgYnVpbGQuXG4gIGNvbnN0IHVwZGF0ZWRPdXRwdXRGaWxlcyA9IFtdO1xuICBjb25zdCB1cGRhdGVkQXNzZXRGaWxlcyA9IFtdO1xuICB0cnkge1xuICAgIGZvciAoY29uc3QgbG9jYWxlIG9mIG9wdGlvbnMuaTE4bk9wdGlvbnMuaW5saW5lTG9jYWxlcykge1xuICAgICAgLy8gQSBsb2NhbGUgc3BlY2lmaWMgc2V0IG9mIGZpbGVzIGlzIHJldHVybmVkIGZyb20gdGhlIGlubGluZXIuXG4gICAgICBjb25zdCBsb2NhbGVPdXRwdXRGaWxlcyA9IGF3YWl0IGlubGluZXIuaW5saW5lRm9yTG9jYWxlKFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIG9wdGlvbnMuaTE4bk9wdGlvbnMubG9jYWxlc1tsb2NhbGVdLnRyYW5zbGF0aW9uLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgYmFzZUhyZWYgPVxuICAgICAgICBnZXRMb2NhbGVCYXNlSHJlZihvcHRpb25zLmJhc2VIcmVmLCBvcHRpb25zLmkxOG5PcHRpb25zLCBsb2NhbGUpID8/IG9wdGlvbnMuYmFzZUhyZWY7XG5cbiAgICAgIC8vIEdlbmVyYXRlIGxvY2FsZSBzcGVjaWZpYyBpbmRleCBIVE1MIGZpbGVzXG4gICAgICBpZiAob3B0aW9ucy5pbmRleEh0bWxPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgY29udGVudCwgY29udGVudFdpdGhvdXRDcml0aWNhbENzc0lubGluZWQsIGVycm9ycywgd2FybmluZ3MgfSA9XG4gICAgICAgICAgYXdhaXQgZ2VuZXJhdGVJbmRleEh0bWwoXG4gICAgICAgICAgICBpbml0aWFsRmlsZXMsXG4gICAgICAgICAgICBsb2NhbGVPdXRwdXRGaWxlcyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgYmFzZUhyZWYsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgbG9jYWxlT3V0cHV0RmlsZXMucHVzaChcbiAgICAgICAgICBjcmVhdGVPdXRwdXRGaWxlRnJvbVRleHQoXG4gICAgICAgICAgICBvcHRpb25zLmluZGV4SHRtbE9wdGlvbnMub3V0cHV0LFxuICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgIEJ1aWxkT3V0cHV0RmlsZVR5cGUuQnJvd3NlcixcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBpbmxpbmVSZXN1bHQuZXJyb3JzLnB1c2goLi4uZXJyb3JzKTtcbiAgICAgICAgaW5saW5lUmVzdWx0Lndhcm5pbmdzLnB1c2goLi4ud2FybmluZ3MpO1xuXG4gICAgICAgIC8vIFByZS1yZW5kZXIgKFNTRykgYW5kIEFwcC1zaGVsbFxuICAgICAgICBpZiAob3B0aW9ucy5wcmVyZW5kZXJPcHRpb25zIHx8IG9wdGlvbnMuYXBwU2hlbGxPcHRpb25zKSB7XG4gICAgICAgICAgY29uc3QgeyBvdXRwdXQsIHdhcm5pbmdzLCBlcnJvcnMgfSA9IGF3YWl0IHByZXJlbmRlclBhZ2VzKFxuICAgICAgICAgICAgb3B0aW9ucy53b3Jrc3BhY2VSb290LFxuICAgICAgICAgICAgb3B0aW9ucy5hcHBTaGVsbE9wdGlvbnMsXG4gICAgICAgICAgICBvcHRpb25zLnByZXJlbmRlck9wdGlvbnMsXG4gICAgICAgICAgICBsb2NhbGVPdXRwdXRGaWxlcyxcbiAgICAgICAgICAgIGNvbnRlbnRXaXRob3V0Q3JpdGljYWxDc3NJbmxpbmVkLFxuICAgICAgICAgICAgb3B0aW9ucy5vcHRpbWl6YXRpb25PcHRpb25zLnN0eWxlcy5pbmxpbmVDcml0aWNhbCxcbiAgICAgICAgICAgIG1heFdvcmtlcnMsXG4gICAgICAgICAgICBvcHRpb25zLnZlcmJvc2UsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlubGluZVJlc3VsdC5lcnJvcnMucHVzaCguLi5lcnJvcnMpO1xuICAgICAgICAgIGlubGluZVJlc3VsdC53YXJuaW5ncy5wdXNoKC4uLndhcm5pbmdzKTtcblxuICAgICAgICAgIGZvciAoY29uc3QgW3BhdGgsIGNvbnRlbnRdIG9mIE9iamVjdC5lbnRyaWVzKG91dHB1dCkpIHtcbiAgICAgICAgICAgIGxvY2FsZU91dHB1dEZpbGVzLnB1c2goXG4gICAgICAgICAgICAgIGNyZWF0ZU91dHB1dEZpbGVGcm9tVGV4dChwYXRoLCBjb250ZW50LCBCdWlsZE91dHB1dEZpbGVUeXBlLkJyb3dzZXIpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMuc2VydmljZVdvcmtlcikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHNlcnZpY2VXb3JrZXJSZXN1bHQgPSBhd2FpdCBhdWdtZW50QXBwV2l0aFNlcnZpY2VXb3JrZXJFc2J1aWxkKFxuICAgICAgICAgICAgb3B0aW9ucy53b3Jrc3BhY2VSb290LFxuICAgICAgICAgICAgb3B0aW9ucy5zZXJ2aWNlV29ya2VyLFxuICAgICAgICAgICAgYmFzZUhyZWYgfHwgJy8nLFxuICAgICAgICAgICAgbG9jYWxlT3V0cHV0RmlsZXMsXG4gICAgICAgICAgICBleGVjdXRpb25SZXN1bHQuYXNzZXRGaWxlcyxcbiAgICAgICAgICApO1xuICAgICAgICAgIGxvY2FsZU91dHB1dEZpbGVzLnB1c2goXG4gICAgICAgICAgICBjcmVhdGVPdXRwdXRGaWxlRnJvbVRleHQoXG4gICAgICAgICAgICAgICduZ3N3Lmpzb24nLFxuICAgICAgICAgICAgICBzZXJ2aWNlV29ya2VyUmVzdWx0Lm1hbmlmZXN0LFxuICAgICAgICAgICAgICBCdWlsZE91dHB1dEZpbGVUeXBlLkJyb3dzZXIsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG4gICAgICAgICAgZXhlY3V0aW9uUmVzdWx0LmFzc2V0RmlsZXMucHVzaCguLi5zZXJ2aWNlV29ya2VyUmVzdWx0LmFzc2V0RmlsZXMpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGlubGluZVJlc3VsdC5lcnJvcnMucHVzaChlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IGAke2Vycm9yfWApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFVwZGF0ZSBkaXJlY3Rvcnkgd2l0aCBsb2NhbGUgYmFzZVxuICAgICAgaWYgKG9wdGlvbnMuaTE4bk9wdGlvbnMuZmxhdE91dHB1dCAhPT0gdHJ1ZSkge1xuICAgICAgICBsb2NhbGVPdXRwdXRGaWxlcy5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICAgICAgZmlsZS5wYXRoID0gam9pbihsb2NhbGUsIGZpbGUucGF0aCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAoY29uc3QgYXNzZXRGaWxlIG9mIGV4ZWN1dGlvblJlc3VsdC5hc3NldEZpbGVzKSB7XG4gICAgICAgICAgdXBkYXRlZEFzc2V0RmlsZXMucHVzaCh7XG4gICAgICAgICAgICBzb3VyY2U6IGFzc2V0RmlsZS5zb3VyY2UsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogam9pbihsb2NhbGUsIGFzc2V0RmlsZS5kZXN0aW5hdGlvbiksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdXBkYXRlZE91dHB1dEZpbGVzLnB1c2goLi4ubG9jYWxlT3V0cHV0RmlsZXMpO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBpbmxpbmVyLmNsb3NlKCk7XG4gIH1cblxuICAvLyBVcGRhdGUgdGhlIHJlc3VsdCB3aXRoIGFsbCBsb2NhbGl6ZWQgZmlsZXNcbiAgZXhlY3V0aW9uUmVzdWx0Lm91dHB1dEZpbGVzID0gdXBkYXRlZE91dHB1dEZpbGVzO1xuXG4gIC8vIEFzc2V0cyBhcmUgb25seSBjaGFuZ2VkIGlmIG5vdCB1c2luZyB0aGUgZmxhdCBvdXRwdXQgb3B0aW9uXG4gIGlmIChvcHRpb25zLmkxOG5PcHRpb25zLmZsYXRPdXRwdXQgIT09IHRydWUpIHtcbiAgICBleGVjdXRpb25SZXN1bHQuYXNzZXRGaWxlcyA9IHVwZGF0ZWRBc3NldEZpbGVzO1xuICB9XG5cbiAgcmV0dXJuIGlubGluZVJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZ2V0TG9jYWxlQmFzZUhyZWYoXG4gIGJhc2VIcmVmOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGkxOG46IE5vcm1hbGl6ZWRBcHBsaWNhdGlvbkJ1aWxkT3B0aW9uc1snaTE4bk9wdGlvbnMnXSxcbiAgbG9jYWxlOiBzdHJpbmcsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoaTE4bi5mbGF0T3V0cHV0KSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChpMThuLmxvY2FsZXNbbG9jYWxlXSAmJiBpMThuLmxvY2FsZXNbbG9jYWxlXS5iYXNlSHJlZiAhPT0gJycpIHtcbiAgICByZXR1cm4gdXJsSm9pbihiYXNlSHJlZiB8fCAnJywgaTE4bi5sb2NhbGVzW2xvY2FsZV0uYmFzZUhyZWYgPz8gYC8ke2xvY2FsZX0vYCk7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIExvYWRzIGFsbCBhY3RpdmUgdHJhbnNsYXRpb25zIHVzaW5nIHRoZSB0cmFuc2xhdGlvbiBsb2FkZXJzIGZyb20gdGhlIGBAYW5ndWxhci9sb2NhbGl6ZWAgcGFja2FnZS5cbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBhcmNoaXRlY3QgYnVpbGRlciBjb250ZXh0IGZvciB0aGUgY3VycmVudCBidWlsZC5cbiAqIEBwYXJhbSBpMThuIFRoZSBub3JtYWxpemVkIGkxOG4gb3B0aW9ucyB0byB1c2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkQWN0aXZlVHJhbnNsYXRpb25zKFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbiAgaTE4bjogTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zWydpMThuT3B0aW9ucyddLFxuKSB7XG4gIC8vIExvYWQgbG9jYWxlIGRhdGEgYW5kIHRyYW5zbGF0aW9ucyAoaWYgcHJlc2VudClcbiAgbGV0IGxvYWRlcjtcbiAgZm9yIChjb25zdCBbbG9jYWxlLCBkZXNjXSBvZiBPYmplY3QuZW50cmllcyhpMThuLmxvY2FsZXMpKSB7XG4gICAgaWYgKCFpMThuLmlubGluZUxvY2FsZXMuaGFzKGxvY2FsZSkgJiYgbG9jYWxlICE9PSBpMThuLnNvdXJjZUxvY2FsZSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKCFkZXNjLmZpbGVzLmxlbmd0aCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgbG9hZGVyID8/PSBhd2FpdCBjcmVhdGVUcmFuc2xhdGlvbkxvYWRlcigpO1xuXG4gICAgbG9hZFRyYW5zbGF0aW9ucyhcbiAgICAgIGxvY2FsZSxcbiAgICAgIGRlc2MsXG4gICAgICBjb250ZXh0LndvcmtzcGFjZVJvb3QsXG4gICAgICBsb2FkZXIsXG4gICAgICB7XG4gICAgICAgIHdhcm4obWVzc2FnZSkge1xuICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndhcm4obWVzc2FnZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yKG1lc3NhZ2UpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgaTE4bi5kdXBsaWNhdGVUcmFuc2xhdGlvbkJlaGF2aW9yLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gseUNBQXdDO0FBR3hDLG1FQUErRDtBQUMvRCx5RUFBNkQ7QUFDN0QsMkRBQTREO0FBQzVELHFFQUF3RTtBQUN4RSx5Q0FBMEM7QUFDMUMsK0RBQStEO0FBRy9EOzs7Ozs7R0FNRztBQUNJLEtBQUssVUFBVSxVQUFVLENBQzlCLE9BQTBDLEVBQzFDLGVBQWdDLEVBQ2hDLFlBQTRDO0lBRTVDLGdHQUFnRztJQUNoRyxNQUFNLE9BQU8sR0FBRyxJQUFJLDBCQUFXLENBQzdCO1FBQ0Usa0JBQWtCLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsSUFBSSxTQUFTO1FBQy9FLFdBQVcsRUFBRSxlQUFlLENBQUMsV0FBVztRQUN4QyxjQUFjLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLE9BQU87S0FDcEQsRUFDRCxnQ0FBVSxDQUNYLENBQUM7SUFFRixNQUFNLFlBQVksR0FBMEU7UUFDMUYsTUFBTSxFQUFFLEVBQUU7UUFDVixRQUFRLEVBQUUsRUFBRTtRQUNaLGlCQUFpQixFQUFFLEVBQUU7S0FDdEIsQ0FBQztJQUVGLG9GQUFvRjtJQUNwRixNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUM5QixNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM3QixJQUFJO1FBQ0YsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRTtZQUN0RCwrREFBK0Q7WUFDL0QsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxlQUFlLENBQ3JELE1BQU0sRUFDTixPQUFPLENBQUMsV0FBVyxDQUFDLE9B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RSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxJQUFJLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztLQUNoRjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxPQUF1QixFQUN2QixJQUFzRDtJQUV0RCxpREFBaUQ7SUFDakQsSUFBSSxNQUFNLENBQUM7SUFDWCxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25FLFNBQVM7U0FDVjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN0QixTQUFTO1NBQ1Y7UUFFRCxNQUFNLEtBQUssTUFBTSxJQUFBLDJDQUF1QixHQUFFLENBQUM7UUFFM0MsSUFBQSwrQkFBZ0IsRUFDZCxNQUFNLEVBQ04sSUFBSSxFQUNKLE9BQU8sQ0FBQyxhQUFhLEVBQ3JCLE1BQU0sRUFDTjtZQUNFLElBQUksQ0FBQyxPQUFPO2dCQUNWLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFDRCxLQUFLLENBQUMsT0FBTztnQkFDWCxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNCLENBQUM7U0FDRixFQUNELFNBQVMsRUFDVCxJQUFJLENBQUMsNEJBQTRCLENBQ2xDLENBQUM7S0FDSDtBQUNILENBQUM7QUFsQ0Qsd0RBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IEJ1aWxkZXJDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2FyY2hpdGVjdCc7XG5pbXBvcnQgeyBqb2luLCBwb3NpeCB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBJbml0aWFsRmlsZVJlY29yZCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1jb250ZXh0JztcbmltcG9ydCB7IEV4ZWN1dGlvblJlc3VsdCB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1leGVjdXRpb24tcmVzdWx0JztcbmltcG9ydCB7IEkxOG5JbmxpbmVyIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXNidWlsZC9pMThuLWlubGluZXInO1xuaW1wb3J0IHsgbWF4V29ya2VycyB9IGZyb20gJy4uLy4uL3V0aWxzL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuaW1wb3J0IHsgbG9hZFRyYW5zbGF0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL2kxOG4tb3B0aW9ucyc7XG5pbXBvcnQgeyBjcmVhdGVUcmFuc2xhdGlvbkxvYWRlciB9IGZyb20gJy4uLy4uL3V0aWxzL2xvYWQtdHJhbnNsYXRpb25zJztcbmltcG9ydCB7IHVybEpvaW4gfSBmcm9tICcuLi8uLi91dGlscy91cmwnO1xuaW1wb3J0IHsgZXhlY3V0ZVBvc3RCdW5kbGVTdGVwcyB9IGZyb20gJy4vZXhlY3V0ZS1wb3N0LWJ1bmRsZSc7XG5pbXBvcnQgeyBOb3JtYWxpemVkQXBwbGljYXRpb25CdWlsZE9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuXG4vKipcbiAqIElubGluZXMgYWxsIGFjdGl2ZSBsb2NhbGVzIGFzIHNwZWNpZmllZCBieSB0aGUgYXBwbGljYXRpb24gYnVpbGQgb3B0aW9ucyBpbnRvIGFsbFxuICogYXBwbGljYXRpb24gSmF2YVNjcmlwdCBmaWxlcyBjcmVhdGVkIGR1cmluZyB0aGUgYnVpbGQuXG4gKiBAcGFyYW0gb3B0aW9ucyBUaGUgbm9ybWFsaXplZCBhcHBsaWNhdGlvbiBidWlsZGVyIG9wdGlvbnMgdXNlZCB0byBjcmVhdGUgdGhlIGJ1aWxkLlxuICogQHBhcmFtIGV4ZWN1dGlvblJlc3VsdCBUaGUgcmVzdWx0IG9mIGFuIGV4ZWN1dGVkIGJ1aWxkLlxuICogQHBhcmFtIGluaXRpYWxGaWxlcyBBIG1hcCBjb250YWluaW5nIGluaXRpYWwgZmlsZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGV4ZWN1dGVkIGJ1aWxkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5saW5lSTE4bihcbiAgb3B0aW9uczogTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zLFxuICBleGVjdXRpb25SZXN1bHQ6IEV4ZWN1dGlvblJlc3VsdCxcbiAgaW5pdGlhbEZpbGVzOiBNYXA8c3RyaW5nLCBJbml0aWFsRmlsZVJlY29yZD4sXG4pOiBQcm9taXNlPHsgZXJyb3JzOiBzdHJpbmdbXTsgd2FybmluZ3M6IHN0cmluZ1tdOyBwcmVyZW5kZXJlZFJvdXRlczogc3RyaW5nW10gfT4ge1xuICAvLyBDcmVhdGUgdGhlIG11bHRpLXRocmVhZGVkIGlubGluZXIgd2l0aCBjb21tb24gb3B0aW9ucyBhbmQgdGhlIGZpbGVzIGdlbmVyYXRlZCBmcm9tIHRoZSBidWlsZC5cbiAgY29uc3QgaW5saW5lciA9IG5ldyBJMThuSW5saW5lcihcbiAgICB7XG4gICAgICBtaXNzaW5nVHJhbnNsYXRpb246IG9wdGlvbnMuaTE4bk9wdGlvbnMubWlzc2luZ1RyYW5zbGF0aW9uQmVoYXZpb3IgPz8gJ3dhcm5pbmcnLFxuICAgICAgb3V0cHV0RmlsZXM6IGV4ZWN1dGlvblJlc3VsdC5vdXRwdXRGaWxlcyxcbiAgICAgIHNob3VsZE9wdGltaXplOiBvcHRpb25zLm9wdGltaXphdGlvbk9wdGlvbnMuc2NyaXB0cyxcbiAgICB9LFxuICAgIG1heFdvcmtlcnMsXG4gICk7XG5cbiAgY29uc3QgaW5saW5lUmVzdWx0OiB7IGVycm9yczogc3RyaW5nW107IHdhcm5pbmdzOiBzdHJpbmdbXTsgcHJlcmVuZGVyZWRSb3V0ZXM6IHN0cmluZ1tdIH0gPSB7XG4gICAgZXJyb3JzOiBbXSxcbiAgICB3YXJuaW5nczogW10sXG4gICAgcHJlcmVuZGVyZWRSb3V0ZXM6IFtdLFxuICB9O1xuXG4gIC8vIEZvciBlYWNoIGFjdGl2ZSBsb2NhbGUsIHVzZSB0aGUgaW5saW5lciB0byBwcm9jZXNzIHRoZSBvdXRwdXQgZmlsZXMgb2YgdGhlIGJ1aWxkLlxuICBjb25zdCB1cGRhdGVkT3V0cHV0RmlsZXMgPSBbXTtcbiAgY29uc3QgdXBkYXRlZEFzc2V0RmlsZXMgPSBbXTtcbiAgdHJ5IHtcbiAgICBmb3IgKGNvbnN0IGxvY2FsZSBvZiBvcHRpb25zLmkxOG5PcHRpb25zLmlubGluZUxvY2FsZXMpIHtcbiAgICAgIC8vIEEgbG9jYWxlIHNwZWNpZmljIHNldCBvZiBmaWxlcyBpcyByZXR1cm5lZCBmcm9tIHRoZSBpbmxpbmVyLlxuICAgICAgY29uc3QgbG9jYWxlT3V0cHV0RmlsZXMgPSBhd2FpdCBpbmxpbmVyLmlubGluZUZvckxvY2FsZShcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBvcHRpb25zLmkxOG5PcHRpb25zLmxvY2FsZXNbbG9jYWxlXS50cmFuc2xhdGlvbixcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGJhc2VIcmVmID1cbiAgICAgICAgZ2V0TG9jYWxlQmFzZUhyZWYob3B0aW9ucy5iYXNlSHJlZiwgb3B0aW9ucy5pMThuT3B0aW9ucywgbG9jYWxlKSA/PyBvcHRpb25zLmJhc2VIcmVmO1xuXG4gICAgICBjb25zdCB7XG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgd2FybmluZ3MsXG4gICAgICAgIGFkZGl0aW9uYWxBc3NldHMsXG4gICAgICAgIGFkZGl0aW9uYWxPdXRwdXRGaWxlcyxcbiAgICAgICAgcHJlcmVuZGVyZWRSb3V0ZXM6IGdlbmVyYXRlZFJvdXRlcyxcbiAgICAgIH0gPSBhd2FpdCBleGVjdXRlUG9zdEJ1bmRsZVN0ZXBzKFxuICAgICAgICB7XG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICBiYXNlSHJlZixcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYWxlT3V0cHV0RmlsZXMsXG4gICAgICAgIGV4ZWN1dGlvblJlc3VsdC5hc3NldEZpbGVzLFxuICAgICAgICBpbml0aWFsRmlsZXMsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICk7XG5cbiAgICAgIGxvY2FsZU91dHB1dEZpbGVzLnB1c2goLi4uYWRkaXRpb25hbE91dHB1dEZpbGVzKTtcbiAgICAgIGlubGluZVJlc3VsdC5lcnJvcnMucHVzaCguLi5lcnJvcnMpO1xuICAgICAgaW5saW5lUmVzdWx0Lndhcm5pbmdzLnB1c2goLi4ud2FybmluZ3MpO1xuXG4gICAgICAvLyBVcGRhdGUgZGlyZWN0b3J5IHdpdGggbG9jYWxlIGJhc2VcbiAgICAgIGlmIChvcHRpb25zLmkxOG5PcHRpb25zLmZsYXRPdXRwdXQgIT09IHRydWUpIHtcbiAgICAgICAgbG9jYWxlT3V0cHV0RmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgICAgIGZpbGUucGF0aCA9IGpvaW4obG9jYWxlLCBmaWxlLnBhdGgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmb3IgKGNvbnN0IGFzc2V0RmlsZSBvZiBbLi4uZXhlY3V0aW9uUmVzdWx0LmFzc2V0RmlsZXMsIC4uLmFkZGl0aW9uYWxBc3NldHNdKSB7XG4gICAgICAgICAgdXBkYXRlZEFzc2V0RmlsZXMucHVzaCh7XG4gICAgICAgICAgICBzb3VyY2U6IGFzc2V0RmlsZS5zb3VyY2UsXG4gICAgICAgICAgICBkZXN0aW5hdGlvbjogam9pbihsb2NhbGUsIGFzc2V0RmlsZS5kZXN0aW5hdGlvbiksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpbmxpbmVSZXN1bHQucHJlcmVuZGVyZWRSb3V0ZXMucHVzaChcbiAgICAgICAgICAuLi5nZW5lcmF0ZWRSb3V0ZXMubWFwKChyb3V0ZSkgPT4gcG9zaXguam9pbignLycsIGxvY2FsZSwgcm91dGUpKSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlubGluZVJlc3VsdC5wcmVyZW5kZXJlZFJvdXRlcy5wdXNoKC4uLmdlbmVyYXRlZFJvdXRlcyk7XG4gICAgICAgIGV4ZWN1dGlvblJlc3VsdC5hc3NldEZpbGVzLnB1c2goLi4uYWRkaXRpb25hbEFzc2V0cyk7XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZWRPdXRwdXRGaWxlcy5wdXNoKC4uLmxvY2FsZU91dHB1dEZpbGVzKTtcbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgaW5saW5lci5jbG9zZSgpO1xuICB9XG5cbiAgLy8gVXBkYXRlIHRoZSByZXN1bHQgd2l0aCBhbGwgbG9jYWxpemVkIGZpbGVzXG4gIGV4ZWN1dGlvblJlc3VsdC5vdXRwdXRGaWxlcyA9IHVwZGF0ZWRPdXRwdXRGaWxlcztcblxuICAvLyBBc3NldHMgYXJlIG9ubHkgY2hhbmdlZCBpZiBub3QgdXNpbmcgdGhlIGZsYXQgb3V0cHV0IG9wdGlvblxuICBpZiAob3B0aW9ucy5pMThuT3B0aW9ucy5mbGF0T3V0cHV0ICE9PSB0cnVlKSB7XG4gICAgZXhlY3V0aW9uUmVzdWx0LmFzc2V0RmlsZXMgPSB1cGRhdGVkQXNzZXRGaWxlcztcbiAgfVxuXG4gIHJldHVybiBpbmxpbmVSZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGdldExvY2FsZUJhc2VIcmVmKFxuICBiYXNlSHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBpMThuOiBOb3JtYWxpemVkQXBwbGljYXRpb25CdWlsZE9wdGlvbnNbJ2kxOG5PcHRpb25zJ10sXG4gIGxvY2FsZTogc3RyaW5nLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGkxOG4uZmxhdE91dHB1dCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAoaTE4bi5sb2NhbGVzW2xvY2FsZV0gJiYgaTE4bi5sb2NhbGVzW2xvY2FsZV0uYmFzZUhyZWYgIT09ICcnKSB7XG4gICAgcmV0dXJuIHVybEpvaW4oYmFzZUhyZWYgfHwgJycsIGkxOG4ubG9jYWxlc1tsb2NhbGVdLmJhc2VIcmVmID8/IGAvJHtsb2NhbGV9L2ApO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBMb2FkcyBhbGwgYWN0aXZlIHRyYW5zbGF0aW9ucyB1c2luZyB0aGUgdHJhbnNsYXRpb24gbG9hZGVycyBmcm9tIHRoZSBgQGFuZ3VsYXIvbG9jYWxpemVgIHBhY2thZ2UuXG4gKiBAcGFyYW0gY29udGV4dCBUaGUgYXJjaGl0ZWN0IGJ1aWxkZXIgY29udGV4dCBmb3IgdGhlIGN1cnJlbnQgYnVpbGQuXG4gKiBAcGFyYW0gaTE4biBUaGUgbm9ybWFsaXplZCBpMThuIG9wdGlvbnMgdG8gdXNlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEFjdGl2ZVRyYW5zbGF0aW9ucyhcbiAgY29udGV4dDogQnVpbGRlckNvbnRleHQsXG4gIGkxOG46IE5vcm1hbGl6ZWRBcHBsaWNhdGlvbkJ1aWxkT3B0aW9uc1snaTE4bk9wdGlvbnMnXSxcbikge1xuICAvLyBMb2FkIGxvY2FsZSBkYXRhIGFuZCB0cmFuc2xhdGlvbnMgKGlmIHByZXNlbnQpXG4gIGxldCBsb2FkZXI7XG4gIGZvciAoY29uc3QgW2xvY2FsZSwgZGVzY10gb2YgT2JqZWN0LmVudHJpZXMoaTE4bi5sb2NhbGVzKSkge1xuICAgIGlmICghaTE4bi5pbmxpbmVMb2NhbGVzLmhhcyhsb2NhbGUpICYmIGxvY2FsZSAhPT0gaTE4bi5zb3VyY2VMb2NhbGUpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmICghZGVzYy5maWxlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGxvYWRlciA/Pz0gYXdhaXQgY3JlYXRlVHJhbnNsYXRpb25Mb2FkZXIoKTtcblxuICAgIGxvYWRUcmFuc2xhdGlvbnMoXG4gICAgICBsb2NhbGUsXG4gICAgICBkZXNjLFxuICAgICAgY29udGV4dC53b3Jrc3BhY2VSb290LFxuICAgICAgbG9hZGVyLFxuICAgICAge1xuICAgICAgICB3YXJuKG1lc3NhZ2UpIHtcbiAgICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuKG1lc3NhZ2UpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcihtZXNzYWdlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGkxOG4uZHVwbGljYXRlVHJhbnNsYXRpb25CZWhhdmlvcixcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -6,21 +6,37 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
8
|
import { BuilderContext, BuilderOutput } from '@angular-devkit/architect';
|
|
9
|
+
import type { Plugin } from 'esbuild';
|
|
9
10
|
import { BuildOutputFile } from '../../tools/esbuild/bundler-context';
|
|
10
11
|
import { ApplicationBuilderInternalOptions } from './options';
|
|
11
12
|
import { Schema as ApplicationBuilderOptions } from './schema';
|
|
13
|
+
export { ApplicationBuilderOptions };
|
|
12
14
|
export declare function buildApplicationInternal(options: ApplicationBuilderInternalOptions, context: BuilderContext & {
|
|
13
15
|
signal?: AbortSignal;
|
|
14
16
|
}, infrastructureSettings?: {
|
|
15
17
|
write?: boolean;
|
|
16
|
-
}): AsyncIterable<BuilderOutput & {
|
|
18
|
+
}, plugins?: Plugin[]): AsyncIterable<BuilderOutput & {
|
|
17
19
|
outputFiles?: BuildOutputFile[];
|
|
18
20
|
assetFiles?: {
|
|
19
21
|
source: string;
|
|
20
22
|
destination: string;
|
|
21
23
|
}[];
|
|
22
24
|
}>;
|
|
23
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Builds an application using the `application` builder with the provided
|
|
27
|
+
* options.
|
|
28
|
+
*
|
|
29
|
+
* Usage of the `plugins` parameter is NOT supported and may cause unexpected
|
|
30
|
+
* build output or build failures.
|
|
31
|
+
*
|
|
32
|
+
* @experimental Direct usage of this function is considered experimental.
|
|
33
|
+
*
|
|
34
|
+
* @param options The options defined by the builder's schema to use.
|
|
35
|
+
* @param context An Architect builder context instance.
|
|
36
|
+
* @param plugins An array of plugins to apply to the main code bundling.
|
|
37
|
+
* @returns The build output results of the build.
|
|
38
|
+
*/
|
|
39
|
+
export declare function buildApplication(options: ApplicationBuilderOptions, context: BuilderContext, plugins?: Plugin[]): AsyncIterable<BuilderOutput & {
|
|
24
40
|
outputFiles?: BuildOutputFile[];
|
|
25
41
|
assetFiles?: {
|
|
26
42
|
source: string;
|
|
@@ -17,7 +17,7 @@ const execute_build_1 = require("./execute-build");
|
|
|
17
17
|
const options_1 = require("./options");
|
|
18
18
|
async function* buildApplicationInternal(options,
|
|
19
19
|
// TODO: Integrate abort signal support into builder system
|
|
20
|
-
context, infrastructureSettings) {
|
|
20
|
+
context, infrastructureSettings, plugins) {
|
|
21
21
|
// Check Angular version.
|
|
22
22
|
(0, version_1.assertCompatibleAngularVersion)(context.workspaceRoot);
|
|
23
23
|
// Purge old build disk cache.
|
|
@@ -28,7 +28,7 @@ context, infrastructureSettings) {
|
|
|
28
28
|
context.logger.error(`The 'application' builder requires a target to be specified.`);
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
-
const normalizedOptions = await (0, options_1.normalizeOptions)(context, projectName, options);
|
|
31
|
+
const normalizedOptions = await (0, options_1.normalizeOptions)(context, projectName, options, plugins);
|
|
32
32
|
yield* (0, build_action_1.runEsBuildBuildAction)((rebuildState) => (0, execute_build_1.executeBuild)(normalizedOptions, context, rebuildState), {
|
|
33
33
|
watch: normalizedOptions.watch,
|
|
34
34
|
poll: normalizedOptions.poll,
|
|
@@ -50,9 +50,23 @@ context, infrastructureSettings) {
|
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
exports.buildApplicationInternal = buildApplicationInternal;
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Builds an application using the `application` builder with the provided
|
|
55
|
+
* options.
|
|
56
|
+
*
|
|
57
|
+
* Usage of the `plugins` parameter is NOT supported and may cause unexpected
|
|
58
|
+
* build output or build failures.
|
|
59
|
+
*
|
|
60
|
+
* @experimental Direct usage of this function is considered experimental.
|
|
61
|
+
*
|
|
62
|
+
* @param options The options defined by the builder's schema to use.
|
|
63
|
+
* @param context An Architect builder context instance.
|
|
64
|
+
* @param plugins An array of plugins to apply to the main code bundling.
|
|
65
|
+
* @returns The build output results of the build.
|
|
66
|
+
*/
|
|
67
|
+
function buildApplication(options, context, plugins) {
|
|
68
|
+
return buildApplicationInternal(options, context, undefined, plugins);
|
|
55
69
|
}
|
|
56
70
|
exports.buildApplication = buildApplication;
|
|
57
71
|
exports.default = (0, architect_1.createBuilder)(buildApplication);
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9idWlsZF9hbmd1bGFyL3NyYy9idWlsZGVycy9hcHBsaWNhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCx5REFBeUY7QUFFekYseUVBQTJGO0FBQzNGLHlEQUErRDtBQUMvRCxpREFBcUU7QUFDckUsaURBQXVEO0FBQ3ZELG1EQUErQztBQUMvQyx1Q0FBZ0Y7QUFLekUsS0FBSyxTQUFTLENBQUMsQ0FBQyx3QkFBd0IsQ0FDN0MsT0FBMEM7QUFDMUMsMkRBQTJEO0FBQzNELE9BQWtELEVBQ2xELHNCQUVDLEVBQ0QsT0FBa0I7SUFPbEIseUJBQXlCO0lBQ3pCLElBQUEsd0NBQThCLEVBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXRELDhCQUE4QjtJQUM5QixNQUFNLElBQUEsa0NBQW9CLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFFcEMscURBQXFEO0lBQ3JELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO0lBQzVDLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztRQUVyRixPQUFPO0tBQ1I7SUFFRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBQSwwQkFBZ0IsRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUV6RixLQUFLLENBQUMsQ0FBQyxJQUFBLG9DQUFxQixFQUMxQixDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsSUFBQSw0QkFBWSxFQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsRUFDeEU7UUFDRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsS0FBSztRQUM5QixJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtRQUM1QixnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxnQkFBZ0I7UUFDcEQsWUFBWSxFQUFFLGlCQUFpQixDQUFDLFlBQVk7UUFDNUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLFVBQVU7UUFDeEMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLE9BQU87UUFDbEMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLFdBQVc7UUFDMUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLGFBQWE7UUFDOUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLFFBQVE7UUFDcEMsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsS0FBSztRQUNoRCxnRUFBZ0U7UUFDaEUsc0NBQXNDO1FBQ3RDLHVCQUF1QixFQUNyQixpQkFBaUIsQ0FBQyxVQUFVLElBQUksaUJBQWlCLENBQUMsZ0JBQWdCO1lBQ2hFLENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLHFDQUFtQixDQUFDLE1BQU07UUFDeEQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ3RCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUN2QixDQUNGLENBQUM7QUFDSixDQUFDO0FBckRELDREQXFEQztBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FDOUIsT0FBa0MsRUFDbEMsT0FBdUIsRUFDdkIsT0FBa0I7SUFPbEIsT0FBTyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBWEQsNENBV0M7QUFFRCxrQkFBZSxJQUFBLHlCQUFhLEVBQUMsZ0JBQWdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBCdWlsZGVyQ29udGV4dCwgQnVpbGRlck91dHB1dCwgY3JlYXRlQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9hcmNoaXRlY3QnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdlc2J1aWxkJztcbmltcG9ydCB7IEJ1aWxkT3V0cHV0RmlsZSwgQnVpbGRPdXRwdXRGaWxlVHlwZSB9IGZyb20gJy4uLy4uL3Rvb2xzL2VzYnVpbGQvYnVuZGxlci1jb250ZXh0JztcbmltcG9ydCB7IHB1cmdlU3RhbGVCdWlsZENhY2hlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcHVyZ2UtY2FjaGUnO1xuaW1wb3J0IHsgYXNzZXJ0Q29tcGF0aWJsZUFuZ3VsYXJWZXJzaW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmVyc2lvbic7XG5pbXBvcnQgeyBydW5Fc0J1aWxkQnVpbGRBY3Rpb24gfSBmcm9tICcuL2J1aWxkLWFjdGlvbic7XG5pbXBvcnQgeyBleGVjdXRlQnVpbGQgfSBmcm9tICcuL2V4ZWN1dGUtYnVpbGQnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25CdWlsZGVySW50ZXJuYWxPcHRpb25zLCBub3JtYWxpemVPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IFNjaGVtYSBhcyBBcHBsaWNhdGlvbkJ1aWxkZXJPcHRpb25zIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG5leHBvcnQgeyBBcHBsaWNhdGlvbkJ1aWxkZXJPcHRpb25zIH07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogYnVpbGRBcHBsaWNhdGlvbkludGVybmFsKFxuICBvcHRpb25zOiBBcHBsaWNhdGlvbkJ1aWxkZXJJbnRlcm5hbE9wdGlvbnMsXG4gIC8vIFRPRE86IEludGVncmF0ZSBhYm9ydCBzaWduYWwgc3VwcG9ydCBpbnRvIGJ1aWxkZXIgc3lzdGVtXG4gIGNvbnRleHQ6IEJ1aWxkZXJDb250ZXh0ICYgeyBzaWduYWw/OiBBYm9ydFNpZ25hbCB9LFxuICBpbmZyYXN0cnVjdHVyZVNldHRpbmdzPzoge1xuICAgIHdyaXRlPzogYm9vbGVhbjtcbiAgfSxcbiAgcGx1Z2lucz86IFBsdWdpbltdLFxuKTogQXN5bmNJdGVyYWJsZTxcbiAgQnVpbGRlck91dHB1dCAmIHtcbiAgICBvdXRwdXRGaWxlcz86IEJ1aWxkT3V0cHV0RmlsZVtdO1xuICAgIGFzc2V0RmlsZXM/OiB7IHNvdXJjZTogc3RyaW5nOyBkZXN0aW5hdGlvbjogc3RyaW5nIH1bXTtcbiAgfVxuPiB7XG4gIC8vIENoZWNrIEFuZ3VsYXIgdmVyc2lvbi5cbiAgYXNzZXJ0Q29tcGF0aWJsZUFuZ3VsYXJWZXJzaW9uKGNvbnRleHQud29ya3NwYWNlUm9vdCk7XG5cbiAgLy8gUHVyZ2Ugb2xkIGJ1aWxkIGRpc2sgY2FjaGUuXG4gIGF3YWl0IHB1cmdlU3RhbGVCdWlsZENhY2hlKGNvbnRleHQpO1xuXG4gIC8vIERldGVybWluZSBwcm9qZWN0IG5hbWUgZnJvbSBidWlsZGVyIGNvbnRleHQgdGFyZ2V0XG4gIGNvbnN0IHByb2plY3ROYW1lID0gY29udGV4dC50YXJnZXQ/LnByb2plY3Q7XG4gIGlmICghcHJvamVjdE5hbWUpIHtcbiAgICBjb250ZXh0LmxvZ2dlci5lcnJvcihgVGhlICdhcHBsaWNhdGlvbicgYnVpbGRlciByZXF1aXJlcyBhIHRhcmdldCB0byBiZSBzcGVjaWZpZWQuYCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBub3JtYWxpemVkT3B0aW9ucyA9IGF3YWl0IG5vcm1hbGl6ZU9wdGlvbnMoY29udGV4dCwgcHJvamVjdE5hbWUsIG9wdGlvbnMsIHBsdWdpbnMpO1xuXG4gIHlpZWxkKiBydW5Fc0J1aWxkQnVpbGRBY3Rpb24oXG4gICAgKHJlYnVpbGRTdGF0ZSkgPT4gZXhlY3V0ZUJ1aWxkKG5vcm1hbGl6ZWRPcHRpb25zLCBjb250ZXh0LCByZWJ1aWxkU3RhdGUpLFxuICAgIHtcbiAgICAgIHdhdGNoOiBub3JtYWxpemVkT3B0aW9ucy53YXRjaCxcbiAgICAgIHBvbGw6IG5vcm1hbGl6ZWRPcHRpb25zLnBvbGwsXG4gICAgICBkZWxldGVPdXRwdXRQYXRoOiBub3JtYWxpemVkT3B0aW9ucy5kZWxldGVPdXRwdXRQYXRoLFxuICAgICAgY2FjaGVPcHRpb25zOiBub3JtYWxpemVkT3B0aW9ucy5jYWNoZU9wdGlvbnMsXG4gICAgICBvdXRwdXRQYXRoOiBub3JtYWxpemVkT3B0aW9ucy5vdXRwdXRQYXRoLFxuICAgICAgdmVyYm9zZTogbm9ybWFsaXplZE9wdGlvbnMudmVyYm9zZSxcbiAgICAgIHByb2plY3RSb290OiBub3JtYWxpemVkT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgIHdvcmtzcGFjZVJvb3Q6IG5vcm1hbGl6ZWRPcHRpb25zLndvcmtzcGFjZVJvb3QsXG4gICAgICBwcm9ncmVzczogbm9ybWFsaXplZE9wdGlvbnMucHJvZ3Jlc3MsXG4gICAgICB3cml0ZVRvRmlsZVN5c3RlbTogaW5mcmFzdHJ1Y3R1cmVTZXR0aW5ncz8ud3JpdGUsXG4gICAgICAvLyBGb3IgYXBwLXNoZWxsIGFuZCBTU0cgc2VydmVyIGZpbGVzIGFyZSBub3QgcmVxdWlyZWQgYnkgdXNlcnMuXG4gICAgICAvLyBPbWl0IHRoZXNlIHdoZW4gU1NSIGlzIG5vdCBlbmFibGVkLlxuICAgICAgd3JpdGVUb0ZpbGVTeXN0ZW1GaWx0ZXI6XG4gICAgICAgIG5vcm1hbGl6ZWRPcHRpb25zLnNzck9wdGlvbnMgJiYgbm9ybWFsaXplZE9wdGlvbnMuc2VydmVyRW50cnlQb2ludFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiAoZmlsZSkgPT4gZmlsZS50eXBlICE9PSBCdWlsZE91dHB1dEZpbGVUeXBlLlNlcnZlcixcbiAgICAgIGxvZ2dlcjogY29udGV4dC5sb2dnZXIsXG4gICAgICBzaWduYWw6IGNvbnRleHQuc2lnbmFsLFxuICAgIH0sXG4gICk7XG59XG5cbi8qKlxuICogQnVpbGRzIGFuIGFwcGxpY2F0aW9uIHVzaW5nIHRoZSBgYXBwbGljYXRpb25gIGJ1aWxkZXIgd2l0aCB0aGUgcHJvdmlkZWRcbiAqIG9wdGlvbnMuXG4gKlxuICogVXNhZ2Ugb2YgdGhlIGBwbHVnaW5zYCBwYXJhbWV0ZXIgaXMgTk9UIHN1cHBvcnRlZCBhbmQgbWF5IGNhdXNlIHVuZXhwZWN0ZWRcbiAqIGJ1aWxkIG91dHB1dCBvciBidWlsZCBmYWlsdXJlcy5cbiAqXG4gKiBAZXhwZXJpbWVudGFsIERpcmVjdCB1c2FnZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIGNvbnNpZGVyZWQgZXhwZXJpbWVudGFsLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIGRlZmluZWQgYnkgdGhlIGJ1aWxkZXIncyBzY2hlbWEgdG8gdXNlLlxuICogQHBhcmFtIGNvbnRleHQgQW4gQXJjaGl0ZWN0IGJ1aWxkZXIgY29udGV4dCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwbHVnaW5zIEFuIGFycmF5IG9mIHBsdWdpbnMgdG8gYXBwbHkgdG8gdGhlIG1haW4gY29kZSBidW5kbGluZy5cbiAqIEByZXR1cm5zIFRoZSBidWlsZCBvdXRwdXQgcmVzdWx0cyBvZiB0aGUgYnVpbGQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEFwcGxpY2F0aW9uKFxuICBvcHRpb25zOiBBcHBsaWNhdGlvbkJ1aWxkZXJPcHRpb25zLFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbiAgcGx1Z2lucz86IFBsdWdpbltdLFxuKTogQXN5bmNJdGVyYWJsZTxcbiAgQnVpbGRlck91dHB1dCAmIHtcbiAgICBvdXRwdXRGaWxlcz86IEJ1aWxkT3V0cHV0RmlsZVtdO1xuICAgIGFzc2V0RmlsZXM/OiB7IHNvdXJjZTogc3RyaW5nOyBkZXN0aW5hdGlvbjogc3RyaW5nIH1bXTtcbiAgfVxuPiB7XG4gIHJldHVybiBidWlsZEFwcGxpY2F0aW9uSW50ZXJuYWwob3B0aW9ucywgY29udGV4dCwgdW5kZWZpbmVkLCBwbHVnaW5zKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlQnVpbGRlcihidWlsZEFwcGxpY2F0aW9uKTtcbiJdfQ==
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
8
|
import { BuilderContext } from '@angular-devkit/architect';
|
|
9
|
+
import type { Plugin } from 'esbuild';
|
|
9
10
|
import { I18nOptions } from '../../utils/i18n-options';
|
|
10
11
|
import { Schema as ApplicationBuilderOptions, I18NTranslation } from './schema';
|
|
11
12
|
export type NormalizedApplicationBuildOptions = Awaited<ReturnType<typeof normalizeOptions>>;
|
|
@@ -47,9 +48,10 @@ export type ApplicationBuilderInternalOptions = Omit<ApplicationBuilderOptions &
|
|
|
47
48
|
* @param context The context for current builder execution.
|
|
48
49
|
* @param projectName The name of the project for the current execution.
|
|
49
50
|
* @param options An object containing the options to use for the build.
|
|
51
|
+
* @param plugins An optional array of programmatically supplied build plugins.
|
|
50
52
|
* @returns An object containing normalized options required to perform the build.
|
|
51
53
|
*/
|
|
52
|
-
export declare function normalizeOptions(context: BuilderContext, projectName: string, options: ApplicationBuilderInternalOptions): Promise<{
|
|
54
|
+
export declare function normalizeOptions(context: BuilderContext, projectName: string, options: ApplicationBuilderInternalOptions, plugins?: Plugin[]): Promise<{
|
|
53
55
|
advancedOptimizations: boolean;
|
|
54
56
|
allowedCommonJsDependencies: string[] | undefined;
|
|
55
57
|
baseHref: string | undefined;
|
|
@@ -79,7 +81,7 @@ export declare function normalizeOptions(context: BuilderContext, projectName: s
|
|
|
79
81
|
ssrOptions: {
|
|
80
82
|
entry?: undefined;
|
|
81
83
|
} | {
|
|
82
|
-
entry: string;
|
|
84
|
+
entry: string | undefined;
|
|
83
85
|
} | undefined;
|
|
84
86
|
verbose: boolean | undefined;
|
|
85
87
|
watch: boolean | undefined;
|
|
@@ -124,5 +126,6 @@ export declare function normalizeOptions(context: BuilderContext, projectName: s
|
|
|
124
126
|
namedChunks: boolean | undefined;
|
|
125
127
|
budgets: import("./schema").Budget[] | undefined;
|
|
126
128
|
publicPath: string | undefined;
|
|
129
|
+
plugins: Plugin[] | undefined;
|
|
127
130
|
}>;
|
|
128
131
|
export {};
|
|
@@ -29,10 +29,11 @@ const schema_1 = require("./schema");
|
|
|
29
29
|
* @param context The context for current builder execution.
|
|
30
30
|
* @param projectName The name of the project for the current execution.
|
|
31
31
|
* @param options An object containing the options to use for the build.
|
|
32
|
+
* @param plugins An optional array of programmatically supplied build plugins.
|
|
32
33
|
* @returns An object containing normalized options required to perform the build.
|
|
33
34
|
*/
|
|
34
35
|
// eslint-disable-next-line max-lines-per-function
|
|
35
|
-
async function normalizeOptions(context, projectName, options) {
|
|
36
|
+
async function normalizeOptions(context, projectName, options, plugins) {
|
|
36
37
|
const workspaceRoot = context.workspaceRoot;
|
|
37
38
|
const projectMetadata = await context.getProjectMetadata(projectName);
|
|
38
39
|
const projectRoot = normalizeDirectoryPath(node_path_1.default.join(workspaceRoot, projectMetadata.root ?? ''));
|
|
@@ -134,9 +135,10 @@ async function normalizeOptions(context, projectName, options) {
|
|
|
134
135
|
if (options.ssr === true) {
|
|
135
136
|
ssrOptions = {};
|
|
136
137
|
}
|
|
137
|
-
else if (typeof options.ssr === '
|
|
138
|
+
else if (typeof options.ssr === 'object') {
|
|
139
|
+
const { entry } = options.ssr;
|
|
138
140
|
ssrOptions = {
|
|
139
|
-
entry: node_path_1.default.join(workspaceRoot,
|
|
141
|
+
entry: entry && node_path_1.default.join(workspaceRoot, entry),
|
|
140
142
|
};
|
|
141
143
|
}
|
|
142
144
|
let appShellOptions;
|
|
@@ -194,6 +196,7 @@ async function normalizeOptions(context, projectName, options) {
|
|
|
194
196
|
namedChunks,
|
|
195
197
|
budgets: budgets?.length ? budgets : undefined,
|
|
196
198
|
publicPath: deployUrl ? deployUrl : undefined,
|
|
199
|
+
plugins: plugins?.length ? plugins : undefined,
|
|
197
200
|
};
|
|
198
201
|
}
|
|
199
202
|
exports.normalizeOptions = normalizeOptions;
|
|
@@ -266,4 +269,4 @@ function normalizeDirectoryPath(path) {
|
|
|
266
269
|
}
|
|
267
270
|
return path;
|
|
268
271
|
}
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7O0FBR0gsNkNBQTRDO0FBQzVDLDBEQUE2QjtBQUM3QiwrREFHMkM7QUFDM0MsdUNBQWlHO0FBQ2pHLDJEQUEwRTtBQUMxRSxpRUFBb0U7QUFDcEUsdUVBQXFFO0FBQ3JFLG1EQUFxRTtBQUNyRSwrRUFBMkY7QUFDM0YscUNBQStGO0FBNEMvRjs7Ozs7Ozs7O0dBU0c7QUFDSCxrREFBa0Q7QUFDM0MsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxPQUF1QixFQUN2QixXQUFtQixFQUNuQixPQUEwQztJQUUxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO0lBQzVDLE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUN4QyxtQkFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUcsZUFBZSxDQUFDLElBQTJCLElBQUksRUFBRSxDQUFDLENBQzdFLENBQUM7SUFDRixNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUM5QyxtQkFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUcsZUFBZSxDQUFDLFVBQWlDLElBQUksS0FBSyxDQUFDLENBQ3RGLENBQUM7SUFFRixpRkFBaUY7SUFDakYsTUFBTSxZQUFZLEdBQUcsSUFBQSx1Q0FBcUIsRUFBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDM0UsWUFBWSxDQUFDLElBQUksR0FBRyxtQkFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxD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LEtBQUssc0JBQXNCLFlBQVksY0FBYyx5Q0FBeUMsY0FBYyxLQUFLO29CQUMvRyx1REFBdUQsQ0FDMUQsQ0FBQzthQUNIO1lBRUQsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGNBQWMsQ0FBQztTQUNsRDtRQUVELE9BQU8sZUFBZSxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxJQUFZO0lBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25DLElBQUksSUFBSSxLQUFLLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMxQjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBCdWlsZGVyQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9hcmNoaXRlY3QnO1xuaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gJ25vZGU6bW9kdWxlJztcbmltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQge1xuICBnbG9iYWxTY3JpcHRzQnlCdW5kbGVOYW1lLFxuICBub3JtYWxpemVHbG9iYWxTdHlsZXMsXG59IGZyb20gJy4uLy4uL3Rvb2xzL3dlYnBhY2svdXRpbHMvaGVscGVycyc7XG5pbXBvcnQgeyBub3JtYWxpemVBc3NldFBhdHRlcm5zLCBub3JtYWxpemVPcHRpbWl6YXRpb24sIG5vcm1hbGl6ZVNvdXJjZU1hcHMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBJMThuT3B0aW9ucywgY3JlYXRlSTE4bk9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9pMThuLW9wdGlvbnMnO1xuaW1wb3J0IHsgbm9ybWFsaXplQ2FjaGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvbm9ybWFsaXplLWNhY2hlJztcbmltcG9ydCB7IGdlbmVyYXRlRW50cnlQb2ludHMgfSBmcm9tICcuLi8uLi91dGlscy9wYWNrYWdlLWNodW5rLXNvcnQnO1xuaW1wb3J0IHsgZmluZFRhaWx3aW5kQ29uZmlndXJhdGlvbkZpbGUgfSBmcm9tICcuLi8uLi91dGlscy90YWlsd2luZCc7XG5pbXBvcnQgeyBnZXRJbmRleElucHV0RmlsZSwgZ2V0SW5kZXhPdXRwdXRGaWxlIH0gZnJvbSAnLi4vLi4vdXRpbHMvd2VicGFjay1icm93c2VyLWNvbmZpZyc7XG5pbXBvcnQgeyBTY2hlbWEgYXMgQXBwbGljYXRpb25CdWlsZGVyT3B0aW9ucywgSTE4TlRyYW5zbGF0aW9uLCBPdXRwdXRIYXNoaW5nIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVkQXBwbGljYXRpb25CdWlsZE9wdGlvbnMgPSBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIG5vcm1hbGl6ZU9wdGlvbnM+PjtcblxuLyoqIEludGVybmFsIG9wdGlvbnMgaGlkZGVuIGZyb20gYnVpbGRlciBzY2hlbWEgYnV0IGF2YWlsYWJsZSB3aGVuIGludm9rZWQgcHJvZ3JhbW1hdGljYWxseS4gKi9cbmludGVyZmFjZSBJbnRlcm5hbE9wdGlvbnMge1xuICAvKipcbiAgICogRW50cnkgcG9pbnRzIHRvIHVzZSBmb3IgdGhlIGNvbXBpbGF0aW9uLiBJbmNvbXBhdGlibGUgd2l0aCBgYnJvd3NlcmAsIHdoaWNoIG11c3Qgbm90IGJlIHByb3ZpZGVkLiBNYXkgYmUgcmVsYXRpdmUgb3IgYWJzb2x1dGUgcGF0aHMuXG4gICAqIElmIGdpdmVuIGEgcmVsYXRpdmUgcGF0aCwgaXQgaXMgcmVzb2x2ZWQgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya3NwYWNlIGFuZCB3aWxsIGdlbmVyYXRlIGFuIG91dHB1dCBhdCB0aGUgc2FtZSByZWxhdGl2ZSBsb2NhdGlvblxuICAgKiBpbiB0aGUgb3V0cHV0IGRpcmVjdG9yeS4gSWYgZ2l2ZW4gYW4gYWJzb2x1dGUgcGF0aCwgdGhlIG91dHB1dCB3aWxsIGJlIGdlbmVyYXRlZCBpbiB0aGUgcm9vdCBvZiB0aGUgb3V0cHV0IGRpcmVjdG9yeSB3aXRoIHRoZSBzYW1lIGJhc2VcbiAgICogbmFtZS5cbiAgICovXG4gIGVudHJ5UG9pbnRzPzogU2V0PHN0cmluZz47XG5cbiAgLyoqIEZpbGUgZXh0ZW5zaW9uIHRvIHVzZSBmb3IgdGhlIGdlbmVyYXRlZCBvdXRwdXQgZmlsZXMuICovXG4gIG91dEV4dGVuc2lvbj86ICdqcycgfCAnbWpzJztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgYWxsIG5vZGUgcGFja2FnZXMgc2hvdWxkIGJlIG1hcmtlZCBhcyBleHRlcm5hbC5cbiAgICogQ3VycmVudGx5IHVzZWQgYnkgdGhlIGRldi1zZXJ2ZXIgdG8gc3VwcG9ydCBwcmVidW5kbGluZy5cbiAgICovXG4gIGV4dGVybmFsUGFja2FnZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGb3JjZXMgdGhlIG91dHB1dCBmcm9tIHRoZSBsb2NhbGl6ZSBwb3N0LXByb2Nlc3NpbmcgdG8gbm90IGNyZWF0ZSBuZXN0ZWQgZGlyZWN0b3JpZXMgcGVyIGxvY2FsZSBvdXRwdXQuXG4gICAqIFRoaXMgaXMgb25seSB1c2VkIGJ5IHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXIgd2hpY2ggY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgYSBzaW5nbGUgbG9jYWxlIHBlciBidWlsZC5cbiAgICovXG4gIGZvcmNlSTE4bkZsYXRPdXRwdXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgZm9yIHVzYWdlIG9mIHRoZSBkZXByZWNhdGVkIGBkZXBsb3lVcmxgIG9wdGlvbiB3aXRoIHRoZSBjb21wYXRpYmlsaXR5IGJ1aWxkZXIgYGJyb3dzZXItZXNidWlsZGAuXG4gICAqL1xuICBkZXBsb3lVcmw/OiBzdHJpbmc7XG59XG5cbi8qKiBGdWxsIHNldCBvZiBvcHRpb25zIGZvciBgYXBwbGljYXRpb25gIGJ1aWxkZXIuICovXG5leHBvcnQgdHlwZSBBcHBsaWNhdGlvbkJ1aWxkZXJJbnRlcm5hbE9wdGlvbnMgPSBPbWl0PFxuICBBcHBsaWNhdGlvbkJ1aWxkZXJPcHRpb25zICYgSW50ZXJuYWxPcHRpb25zLFxuICAnYnJvd3Nlcidcbj4gJiB7XG4gIC8vIGBicm93c2VyYCBjYW4gYmUgYHVuZGVmaW5lZGAgaWYgYGVudHJ5UG9pbnRzYCBpcyB1c2VkLlxuICBicm93c2VyPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBOb3JtYWxpemUgdGhlIHVzZXIgcHJvdmlkZWQgb3B0aW9ucyBieSBjcmVhdGluZyBmdWxsIHBhdGhzIGZvciBhbGwgcGF0aCBiYXNlZCBvcHRpb25zXG4gKiBhbmQgY29udmVydGluZyBtdWx0aS1mb3JtIG9wdGlvbnMgaW50byBhIHNpbmdsZSBmb3JtIHRoYXQgY2FuIGJlIGRpcmVjdGx5IHVzZWRcbiAqIGJ5IHRoZSBidWlsZCBwcm9jZXNzLlxuICpcbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IGZvciBjdXJyZW50IGJ1aWxkZXIgZXhlY3V0aW9uLlxuICogQHBhcmFtIHByb2plY3ROYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9qZWN0IGZvciB0aGUgY3VycmVudCBleGVjdXRpb24uXG4gKiBAcGFyYW0gb3B0aW9ucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgb3B0aW9ucyB0byB1c2UgZm9yIHRoZSBidWlsZC5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nIG5vcm1hbGl6ZWQgb3B0aW9ucyByZXF1aXJlZCB0byBwZXJmb3JtIHRoZSBidWlsZC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lcy1wZXItZnVuY3Rpb25cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBub3JtYWxpemVPcHRpb25zKFxuICBjb250ZXh0OiBCdWlsZGVyQ29udGV4dCxcbiAgcHJvamVjdE5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogQXBwbGljYXRpb25CdWlsZGVySW50ZXJuYWxPcHRpb25zLFxuKSB7XG4gIGNvbnN0IHdvcmtzcGFjZVJvb3QgPSBjb250ZXh0LndvcmtzcGFjZVJvb3Q7XG4gIGNvbnN0IHByb2plY3RNZXRhZGF0YSA9IGF3YWl0IGNvbnRleHQuZ2V0UHJvamVjdE1ldGFkYXRhKHByb2plY3ROYW1lKTtcbiAgY29uc3QgcHJvamVjdFJvb3QgPSBub3JtYWxpemVEaXJlY3RvcnlQYXRoKFxuICAgIHBhdGguam9pbih3b3Jrc3BhY2VSb290LCAocHJvamVjdE1ldGFkYXRhLnJvb3QgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSA/PyAnJyksXG4gICk7XG4gIGNvbnN0IHByb2plY3RTb3VyY2VSb290ID0gbm9ybWFsaXplRGlyZWN0b3J5UGF0aChcbiAgICBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgKHByb2plY3RNZXRhZGF0YS5zb3VyY2VSb290IGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgPz8gJ3NyYycpLFxuICApO1xuXG4gIC8vIEdhdGhlciBwZXJzaXN0ZW50IGNhY2hpbmcgb3B0aW9uIGFuZCBwcm92aWRlIGEgcHJvamVjdCBzcGVjaWZpYyBjYWNoZSBsb2NhdGlvblxuICBjb25zdCBjYWNoZU9wdGlvbnMgPSBub3JtYWxpemVDYWNoZU9wdGlvbnMocHJvamVjdE1ldGFkYXRhLCB3b3Jrc3BhY2VSb290KTtcbiAgY2FjaGVPcHRpb25zLnBhdGggPSBwYXRoLmpvaW4oY2FjaGVPcHRpb25zLnBhdGgsIHByb2plY3ROYW1lKTtcblxuICBjb25zdCBpMThuT3B0aW9uczogSTE4bk9wdGlvbnMgJiB7XG4gICAgZHVwbGljYXRlVHJhbnNsYXRpb25CZWhhdmlvcj86IEkxOE5UcmFuc2xhdGlvbjtcbiAgICBtaXNzaW5nVHJhbnNsYXRpb25CZWhhdmlvcj86IEkxOE5UcmFuc2xhdGlvbjtcbiAgfSA9IGNyZWF0ZUkxOG5PcHRpb25zKHByb2plY3RNZXRhZGF0YSwgb3B0aW9ucy5sb2NhbGl6ZSk7XG4gIGkxOG5PcHRpb25zLmR1cGxpY2F0ZVRyYW5zbGF0aW9uQmVoYXZpb3IgPSBvcHRpb25zLmkxOG5EdXBsaWNhdGVUcmFuc2xhdGlvbjtcbiAgaTE4bk9wdGlvbnMubWlzc2luZ1RyYW5zbGF0aW9uQmVoYXZpb3IgPSBvcHRpb25zLmkxOG5NaXNzaW5nVHJhbnNsYXRpb247XG4gIGlmIChvcHRpb25zLmZvcmNlSTE4bkZsYXRPdXRwdXQpIHtcbiAgICBpMThuT3B0aW9ucy5mbGF0T3V0cHV0ID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGVudHJ5UG9pbnRzID0gbm9ybWFsaXplRW50cnlQb2ludHMod29ya3NwYWNlUm9vdCwgb3B0aW9ucy5icm93c2VyLCBvcHRpb25zLmVudHJ5UG9pbnRzKTtcbiAgY29uc3QgdHNjb25maWcgPSBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgb3B0aW9ucy50c0NvbmZpZyk7XG4gIGNvbnN0IG91dHB1dFBhdGggPSBub3JtYWxpemVEaXJlY3RvcnlQYXRoKHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBvcHRpb25zLm91dHB1dFBhdGgpKTtcbiAgY29uc3Qgb3B0aW1pemF0aW9uT3B0aW9ucyA9IG5vcm1hbGl6ZU9wdGltaXphdGlvbihvcHRpb25zLm9wdGltaXphdGlvbik7XG4gIGNvbnN0IHNvdXJjZW1hcE9wdGlvbnMgPSBub3JtYWxpemVTb3VyY2VNYXBzKG9wdGlvbnMuc291cmNlTWFwID8/IGZhbHNlKTtcbiAgY29uc3QgYXNzZXRzID0gb3B0aW9ucy5hc3NldHM/Lmxlbmd0aFxuICAgID8gbm9ybWFsaXplQXNzZXRQYXR0ZXJucyhvcHRpb25zLmFzc2V0cywgd29ya3NwYWNlUm9vdCwgcHJvamVjdFJvb3QsIHByb2plY3RTb3VyY2VSb290KVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IG91dHB1dE5hbWVzID0ge1xuICAgIGJ1bmRsZXM6XG4gICAgICBvcHRpb25zLm91dHB1dEhhc2hpbmcgPT09IE91dHB1dEhhc2hpbmcuQWxsIHx8IG9wdGlvbnMub3V0cHV0SGFzaGluZyA9PT0gT3V0cHV0SGFzaGluZy5CdW5kbGVzXG4gICAgICAgID8gJ1tuYW1lXS1baGFzaF0nXG4gICAgICAgIDogJ1tuYW1lXScsXG4gICAgbWVkaWE6XG4gICAgICAnbWVkaWEvJyArXG4gICAgICAob3B0aW9ucy5vdXRwdXRIYXNoaW5nID09PSBPdXRwdXRIYXNoaW5nLkFsbCB8fCBvcHRpb25zLm91dHB1dEhhc2hpbmcgPT09IE91dHB1dEhhc2hpbmcuTWVkaWFcbiAgICAgICAgPyAnW25hbWVdLVtoYXNoXSdcbiAgICAgICAgOiAnW25hbWVdJyksXG4gIH07XG5cbiAgbGV0IGZpbGVSZXBsYWNlbWVudHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG4gIGlmIChvcHRpb25zLmZpbGVSZXBsYWNlbWVudHMpIHtcbiAgICBmb3IgKGNvbnN0IHJlcGxhY2VtZW50IG9mIG9wdGlvbnMuZmlsZVJlcGxhY2VtZW50cykge1xuICAgICAgZmlsZVJlcGxhY2VtZW50cyA/Pz0ge307XG4gICAgICBmaWxlUmVwbGFjZW1lbnRzW3BhdGguam9pbih3b3Jrc3BhY2VSb290LCByZXBsYWNlbWVudC5yZXBsYWNlKV0gPSBwYXRoLmpvaW4oXG4gICAgICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgICAgIHJlcGxhY2VtZW50LndpdGgsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGdsb2JhbFN0eWxlczogeyBuYW1lOiBzdHJpbmc7IGZpbGVzOiBzdHJpbmdbXTsgaW5pdGlhbDogYm9vbGVhbiB9W10gPSBbXTtcbiAgaWYgKG9wdGlvbnMuc3R5bGVzPy5sZW5ndGgpIHtcbiAgICBjb25zdCB7IGVudHJ5UG9pbnRzOiBzdHlsZXNoZWV0RW50cnlwb2ludHMsIG5vSW5qZWN0TmFtZXMgfSA9IG5vcm1hbGl6ZUdsb2JhbFN0eWxlcyhcbiAgICAgIG9wdGlvbnMuc3R5bGVzIHx8IFtdLFxuICAgICk7XG4gICAgZm9yIChjb25zdCBbbmFtZSwgZmlsZXNdIG9mIE9iamVjdC5lbnRyaWVzKHN0eWxlc2hlZXRFbnRyeXBvaW50cykpIHtcbiAgICAgIGdsb2JhbFN0eWxlcy5wdXNoKHsgbmFtZSwgZmlsZXMsIGluaXRpYWw6ICFub0luamVjdE5hbWVzLmluY2x1ZGVzKG5hbWUpIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGdsb2JhbFNjcmlwdHM6IHsgbmFtZTogc3RyaW5nOyBmaWxlczogc3RyaW5nW107IGluaXRpYWw6IGJvb2xlYW4gfVtdID0gW107XG4gIGlmIChvcHRpb25zLnNjcmlwdHM/Lmxlbmd0aCkge1xuICAgIGZvciAoY29uc3QgeyBidW5kbGVOYW1lLCBwYXRocywgaW5qZWN0IH0gb2YgZ2xvYmFsU2NyaXB0c0J5QnVuZGxlTmFtZShvcHRpb25zLnNjcmlwdHMpKSB7XG4gICAgICBnbG9iYWxTY3JpcHRzLnB1c2goeyBuYW1lOiBidW5kbGVOYW1lLCBmaWxlczogcGF0aHMsIGluaXRpYWw6IGluamVjdCB9KTtcbiAgICB9XG4gIH1cblxuICBsZXQgdGFpbHdpbmRDb25maWd1cmF0aW9uOiB7IGZpbGU6IHN0cmluZzsgcGFja2FnZTogc3RyaW5nIH0gfCB1bmRlZmluZWQ7XG4gIGNvbnN0IHRhaWx3aW5kQ29uZmlndXJhdGlvblBhdGggPSBhd2FpdCBmaW5kVGFpbHdpbmRDb25maWd1cmF0aW9uRmlsZSh3b3Jrc3BhY2VSb290LCBwcm9qZWN0Um9vdCk7XG4gIGlmICh0YWlsd2luZENvbmZpZ3VyYXRpb25QYXRoKSB7XG4gICAgLy8gQ3JlYXRlIGEgbm9kZSByZXNvbHZlciBhdCB0aGUgcHJvamVjdCByb290IGFzIGEgZGlyZWN0b3J5XG4gICAgY29uc3QgcmVzb2x2ZXIgPSBjcmVhdGVSZXF1aXJlKHByb2plY3RSb290ICsgJy8nKTtcbiAgICB0cnkge1xuICAgICAgdGFpbHdpbmRDb25maWd1cmF0aW9uID0ge1xuICAgICAgICBmaWxlOiB0YWlsd2luZENvbmZpZ3VyYXRpb25QYXRoLFxuICAgICAgICBwYWNrYWdlOiByZXNvbHZlci5yZXNvbHZlKCd0YWlsd2luZGNzcycpLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGNvbnN0IHJlbGF0aXZlVGFpbHdpbmRDb25maWdQYXRoID0gcGF0aC5yZWxhdGl2ZSh3b3Jrc3BhY2VSb290LCB0YWlsd2luZENvbmZpZ3VyYXRpb25QYXRoKTtcbiAgICAgIGNvbnRleHQubG9nZ2VyLndhcm4oXG4gICAgICAgIGBUYWlsd2luZCBDU1MgY29uZmlndXJhdGlvbiBmaWxlIGZvdW5kICgke3JlbGF0aXZlVGFpbHdpbmRDb25maWdQYXRofSlgICtcbiAgICAgICAgICBgIGJ1dCB0aGUgJ3RhaWx3aW5kY3NzJyBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQuYCArXG4gICAgICAgICAgYCBUbyBlbmFibGUgVGFpbHdpbmQgQ1NTLCBwbGVhc2UgaW5zdGFsbCB0aGUgJ3RhaWx3aW5kY3NzJyBwYWNrYWdlLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGxldCBpbmRleEh0bWxPcHRpb25zO1xuICAvLyBpbmRleCBjYW4gbmV2ZXIgaGF2ZSBhIHZhbHVlIG9mIGB0cnVlYCBidXQgaW4gdGhlIHNjaGVtYSBpdCdzIG9mIHR5cGUgYGJvb2xlYW5gLlxuICBpZiAodHlwZW9mIG9wdGlvbnMuaW5kZXggIT09ICdib29sZWFuJykge1xuICAgIGluZGV4SHRtbE9wdGlvbnMgPSB7XG4gICAgICBpbnB1dDogcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIGdldEluZGV4SW5wdXRGaWxlKG9wdGlvbnMuaW5kZXgpKSxcbiAgICAgIC8vIFRoZSBvdXRwdXQgZmlsZSB3aWxsIGJlIGNyZWF0ZWQgd2l0aGluIHRoZSBjb25maWd1cmVkIG91dHB1dCBwYXRoXG4gICAgICBvdXRwdXQ6IGdldEluZGV4T3V0cHV0RmlsZShvcHRpb25zLmluZGV4KSxcbiAgICAgIC8vIFRPRE86IFVzZSBleGlzdGluZyBpbmZvcm1hdGlvbiBmcm9tIGFib3ZlIHRvIGNyZWF0ZSB0aGUgaW5zZXJ0aW9uIG9yZGVyXG4gICAgICBpbnNlcnRpb25PcmRlcjogZ2VuZXJhdGVFbnRyeVBvaW50cyh7XG4gICAgICAgIHNjcmlwdHM6IG9wdGlvbnMuc2NyaXB0cyA/PyBbXSxcbiAgICAgICAgc3R5bGVzOiBvcHRpb25zLnN0eWxlcyA/PyBbXSxcbiAgICAgIH0pLFxuICAgIH07XG4gIH1cblxuICBsZXQgc2VydmVyRW50cnlQb2ludDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBpZiAob3B0aW9ucy5zZXJ2ZXIpIHtcbiAgICBzZXJ2ZXJFbnRyeVBvaW50ID0gcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIG9wdGlvbnMuc2VydmVyKTtcbiAgfSBlbHNlIGlmIChvcHRpb25zLnNlcnZlciA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2BzZXJ2ZXJgIG9wdGlvbiBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nLicpO1xuICB9XG5cbiAgbGV0IHByZXJlbmRlck9wdGlvbnM7XG4gIGlmIChvcHRpb25zLnByZXJlbmRlcikge1xuICAgIGNvbnN0IHsgZGlzY292ZXJSb3V0ZXMgPSB0cnVlLCByb3V0ZXNGaWxlID0gdW5kZWZpbmVkIH0gPVxuICAgICAgb3B0aW9ucy5wcmVyZW5kZXIgPT09IHRydWUgPyB7fSA6IG9wdGlvbnMucHJlcmVuZGVyO1xuXG4gICAgcHJlcmVuZGVyT3B0aW9ucyA9IHtcbiAgICAgIGRpc2NvdmVyUm91dGVzLFxuICAgICAgcm91dGVzRmlsZTogcm91dGVzRmlsZSAmJiBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgcm91dGVzRmlsZSksXG4gICAgfTtcbiAgfVxuXG4gIGxldCBzc3JPcHRpb25zO1xuICBpZiAob3B0aW9ucy5zc3IgPT09IHRydWUpIHtcbiAgICBzc3JPcHRpb25zID0ge307XG4gIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMuc3NyID09PSAnc3RyaW5nJykge1xuICAgIHNzck9wdGlvbnMgPSB7XG4gICAgICBlbnRyeTogcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIG9wdGlvbnMuc3NyKSxcbiAgICB9O1xuICB9XG5cbiAgbGV0IGFwcFNoZWxsT3B0aW9ucztcbiAgaWYgKG9wdGlvbnMuYXBwU2hlbGwpIHtcbiAgICBhcHBTaGVsbE9wdGlvbnMgPSB7XG4gICAgICByb3V0ZTogJ3NoZWxsJyxcbiAgICB9O1xuICB9XG5cbiAgLy8gSW5pdGlhbCBvcHRpb25zIHRvIGtlZXBcbiAgY29uc3Qge1xuICAgIGFsbG93ZWRDb21tb25Kc0RlcGVuZGVuY2llcyxcbiAgICBhb3QsXG4gICAgYmFzZUhyZWYsXG4gICAgY3Jvc3NPcmlnaW4sXG4gICAgZXh0ZXJuYWxEZXBlbmRlbmNpZXMsXG4gICAgZXh0cmFjdExpY2Vuc2VzLFxuICAgIGlubGluZVN0eWxlTGFuZ3VhZ2UgPSAnY3NzJyxcbiAgICBvdXRFeHRlbnNpb24sXG4gICAgc2VydmljZVdvcmtlcixcbiAgICBwb2xsLFxuICAgIHBvbHlmaWxscyxcbiAgICBwcmVzZXJ2ZVN5bWxpbmtzLFxuICAgIHN0YXRzSnNvbixcbiAgICBzdHlsZVByZXByb2Nlc3Nvck9wdGlvbnMsXG4gICAgc3VicmVzb3VyY2VJbnRlZ3JpdHksXG4gICAgdmVyYm9zZSxcbiAgICB3YXRjaCxcbiAgICBwcm9ncmVzcyA9IHRydWUsXG4gICAgZXh0ZXJuYWxQYWNrYWdlcyxcbiAgICBkZWxldGVPdXRwdXRQYXRoLFxuICAgIG5hbWVkQ2h1bmtzLFxuICAgIGJ1ZGdldHMsXG4gICAgZGVwbG95VXJsLFxuICB9ID0gb3B0aW9ucztcblxuICAvLyBSZXR1cm4gYWxsIHRoZSBub3JtYWxpemVkIG9wdGlvbnNcbiAgcmV0dXJuIHtcbiAgICBhZHZhbmNlZE9wdGltaXphdGlvbnM6ICEhYW90LFxuICAgIGFsbG93ZWRDb21tb25Kc0RlcGVuZGVuY2llcyxcbiAgICBiYXNlSHJlZixcbiAgICBjYWNoZU9wdGlvbnMsXG4gICAgY3Jvc3NPcmlnaW4sXG4gICAgZGVsZXRlT3V0cHV0UGF0aCxcbiAgICBleHRlcm5hbERlcGVuZGVuY2llcyxcbiAgICBleHRyYWN0TGljZW5zZXMsXG4gICAgaW5saW5lU3R5bGVMYW5ndWFnZSxcbiAgICBqaXQ6ICFhb3QsXG4gICAgc3RhdHM6ICEhc3RhdHNKc29uLFxuICAgIHBvbHlmaWxsczogcG9seWZpbGxzID09PSB1bmRlZmluZWQgfHwgQXJyYXkuaXNBcnJheShwb2x5ZmlsbHMpID8gcG9seWZpbGxzIDogW3BvbHlmaWxsc10sXG4gICAgcG9sbCxcbiAgICBwcm9ncmVzcyxcbiAgICBleHRlcm5hbFBhY2thZ2VzLFxuICAgIC8vIElmIG5vdCBleHBsaWNpdGx5IHNldCwgZGVmYXVsdCB0byB0aGUgTm9kZS5qcyBwcm9jZXNzIGFyZ3VtZW50XG4gICAgcHJlc2VydmVTeW1saW5rczogcHJlc2VydmVTeW1saW5rcyA/PyBwcm9jZXNzLmV4ZWNBcmd2LmluY2x1ZGVzKCctLXByZXNlcnZlLXN5bWxpbmtzJyksXG4gICAgc3R5bGVQcmVwcm9jZXNzb3JPcHRpb25zLFxuICAgIHN1YnJlc291cmNlSW50ZWdyaXR5LFxuICAgIHNlcnZlckVudHJ5UG9pbnQsXG4gICAgcHJlcmVuZGVyT3B0aW9ucyxcbiAgICBhcHBTaGVsbE9wdGlvbnMsXG4gICAgc3NyT3B0aW9ucyxcbiAgICB2ZXJib3NlLFxuICAgIHdhdGNoLFxuICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgZW50cnlQb2ludHMsXG4gICAgb3B0aW1pemF0aW9uT3B0aW9ucyxcbiAgICBvdXRwdXRQYXRoLFxuICAgIG91dEV4dGVuc2lvbixcbiAgICBzb3VyY2VtYXBPcHRpb25zLFxuICAgIHRzY29uZmlnLFxuICAgIHByb2plY3RSb290LFxuICAgIGFzc2V0cyxcbiAgICBvdXRwdXROYW1lcyxcbiAgICBmaWxlUmVwbGFjZW1lbnRzLFxuICAgIGdsb2JhbFN0eWxlcyxcbiAgICBnbG9iYWxTY3JpcHRzLFxuICAgIHNlcnZpY2VXb3JrZXI6XG4gICAgICB0eXBlb2Ygc2VydmljZVdvcmtlciA9PT0gJ3N0cmluZycgPyBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgc2VydmljZVdvcmtlcikgOiB1bmRlZmluZWQsXG4gICAgaW5kZXhIdG1sT3B0aW9ucyxcbiAgICB0YWlsd2luZENvbmZpZ3VyYXRpb24sXG4gICAgaTE4bk9wdGlvbnMsXG4gICAgbmFtZWRDaHVua3MsXG4gICAgYnVkZ2V0czogYnVkZ2V0cz8ubGVuZ3RoID8gYnVkZ2V0cyA6IHVuZGVmaW5lZCxcbiAgICBwdWJsaWNQYXRoOiBkZXBsb3lVcmwgPyBkZXBsb3lVcmwgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGVudHJ5IHBvaW50IG9wdGlvbnMuIFRvIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgbGVnYWN5IGJyb3dzZXIgYnVpbGRlciwgd2UgbmVlZCBhIHNpbmdsZSBgYnJvd3NlcmBcbiAqIG9wdGlvbiB3aGljaCBkZWZpbmVzIGEgc2luZ2xlIGVudHJ5IHBvaW50LiBIb3dldmVyLCB3ZSBhbHNvIHdhbnQgdG8gc3VwcG9ydCBtdWx0aXBsZSBlbnRyeSBwb2ludHMgYXMgYW4gaW50ZXJuYWwgb3B0aW9uLlxuICogVGhlIHR3byBvcHRpb25zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgYW5kIGlmIGBicm93c2VyYCBpcyBwcm92aWRlZCBpdCB3aWxsIGJlIHVzZWQgYXMgdGhlIHNvbGUgZW50cnkgcG9pbnQuXG4gKiBJZiBgZW50cnlQb2ludHNgIGFyZSBwcm92aWRlZCwgdGhleSB3aWxsIGJlIHVzZWQgYXMgdGhlIHNldCBvZiBlbnRyeSBwb2ludHMuXG4gKlxuICogQHBhcmFtIHdvcmtzcGFjZVJvb3QgUGF0aCB0byB0aGUgcm9vdCBvZiB0aGUgQW5ndWxhciB3b3Jrc3BhY2UuXG4gKiBAcGFyYW0gYnJvd3NlciBUaGUgYGJyb3dzZXJgIG9wdGlvbiBwb2ludGluZyBhdCB0aGUgYXBwbGljYXRpb24gZW50cnkgcG9pbnQuIFdoaWxlIHJlcXVpcmVkIHBlciB0aGUgc2NoZW1hIGZpbGUsIGl0IG1heSBiZSBvbWl0dGVkIGJ5XG4gKiAgICAgcHJvZ3JhbW1hdGljIHVzYWdlcyBvZiBgYnJvd3Nlci1lc2J1aWxkYC5cbiAqIEBwYXJhbSBlbnRyeVBvaW50cyBTZXQgb2YgZW50cnkgcG9pbnRzIHRvIHVzZSBpZiBwcm92aWRlZC5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCBtYXBwaW5nIGVudHJ5IHBvaW50IG5hbWVzIHRvIHRoZWlyIGZpbGUgcGF0aHMuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUVudHJ5UG9pbnRzKFxuICB3b3Jrc3BhY2VSb290OiBzdHJpbmcsXG4gIGJyb3dzZXI6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZW50cnlQb2ludHM6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpLFxuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGlmIChicm93c2VyID09PSAnJykge1xuICAgIHRocm93IG5ldyBFcnJvcignYGJyb3dzZXJgIG9wdGlvbiBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nLicpO1xuICB9XG5cbiAgLy8gYGJyb3dzZXJgIGFuZCBgZW50cnlQb2ludHNgIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuXG4gIGlmIChicm93c2VyICYmIGVudHJ5UG9pbnRzLnNpemUgPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IG9uZSBvZiBgYnJvd3NlcmAgb3IgYGVudHJ5UG9pbnRzYCBtYXkgYmUgcHJvdmlkZWQuJyk7XG4gIH1cbiAgaWYgKCFicm93c2VyICYmIGVudHJ5UG9pbnRzLnNpemUgPT09IDApIHtcbiAgICAvLyBTY2hlbWEgc2hvdWxkIG5vcm1hbGx5IHJlamVjdCB0aGlzIGNhc2UsIGJ1dCBwcm9ncmFtbWF0aWMgdXNhZ2VzIG9mIHRoZSBidWlsZGVyIG1pZ2h0IG1ha2UgdGhpcyBtaXN0YWtlLlxuICAgIHRocm93IG5ldyBFcnJvcignRWl0aGVyIGBicm93c2VyYCBvciBhdCBsZWFzdCBvbmUgYGVudHJ5UG9pbnRzYCB2YWx1ZSBtdXN0IGJlIHByb3ZpZGVkLicpO1xuICB9XG5cbiAgLy8gU2NoZW1hIHR5cGVzIGZvcmNlIGBicm93c2VyYCB0byBhbHdheXMgYmUgcHJvdmlkZWQsIGJ1dCBpdCBtYXkgYmUgb21pdHRlZCB3aGVuIHRoZSBidWlsZGVyIGlzIGludm9rZWQgcHJvZ3JhbW1hdGljYWxseS5cbiAgaWYgKGJyb3dzZXIpIHtcbiAgICAvLyBVc2UgYGJyb3dzZXJgIGFsb25lLlxuICAgIHJldHVybiB7ICdtYWluJzogcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIGJyb3dzZXIpIH07XG4gIH0gZWxzZSB7XG4gICAgLy8gVXNlIGBlbnRyeVBvaW50c2AgYWxvbmUuXG4gICAgY29uc3QgZW50cnlQb2ludFBhdGhzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgZm9yIChjb25zdCBlbnRyeVBvaW50IG9mIGVudHJ5UG9pbnRzKSB7XG4gICAgICBjb25zdCBwYXJzZWRFbnRyeVBvaW50ID0gcGF0aC5wYXJzZShlbnRyeVBvaW50KTtcblxuICAgICAgLy8gVXNlIHRoZSBpbnB1dCBmaWxlIHBhdGggd2l0aG91dCBhbiBleHRlbnNpb24gYXMgdGhlIFwibmFtZVwiIG9mIHRoZSBlbnRyeSBwb2ludCBkaWN0YXRpbmcgaXRzIG91dHB1dCBsb2NhdGlvbi5cbiAgICAgIC8vIFJlbGF0aXZlIGVudHJ5IHBvaW50cyBhcmUgZ2VuZXJhdGVkIGF0IHRoZSBzYW1lIHJlbGF0aXZlIHBhdGggaW4gdGhlIG91dHB1dCBkaXJlY3RvcnkuXG4gICAgICAvLyBBYnNvbHV0ZSBlbnRyeSBwb2ludHMgYXJlIGFsd2F5cyBnZW5lcmF0ZWQgd2l0aCB0aGUgc2FtZSBmaWxlIG5hbWUgaW4gdGhlIHJvb3Qgb2YgdGhlIG91dHB1dCBkaXJlY3RvcnkuIFRoaXMgaW5jbHVkZXMgYWJzb2x1dGVcbiAgICAgIC8vIHBhdGhzIHBvaW50aW5nIGF0IGZpbGVzIGFjdHVhbGx5IHdpdGhpbiB0aGUgd29ya3NwYWNlIHJvb3QuXG4gICAgICBjb25zdCBlbnRyeVBvaW50TmFtZSA9IHBhdGguaXNBYnNvbHV0ZShlbnRyeVBvaW50KVxuICAgICAgICA/IHBhcnNlZEVudHJ5UG9pbnQubmFtZVxuICAgICAgICA6IHBhdGguam9pbihwYXJzZWRFbnRyeVBvaW50LmRpciwgcGFyc2VkRW50cnlQb2ludC5uYW1lKTtcblxuICAgICAgLy8gR2V0IHRoZSBmdWxsIGZpbGUgcGF0aCB0byB0aGUgZW50cnkgcG9pbnQgaW5wdXQuXG4gICAgICBjb25zdCBlbnRyeVBvaW50UGF0aCA9IHBhdGguaXNBYnNvbHV0ZShlbnRyeVBvaW50KVxuICAgICAgICA/IGVudHJ5UG9pbnRcbiAgICAgICAgOiBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgZW50cnlQb2ludCk7XG5cbiAgICAgIC8vIENoZWNrIGZvciBjb25mbGljdHMgd2l0aCBwcmV2aW91cyBlbnRyeSBwb2ludHMuXG4gICAgICBjb25zdCBleGlzdGluZ0VudHJ5UG9pbnRQYXRoID0gZW50cnlQb2ludFBhdGhzW2VudHJ5UG9pbnROYW1lXTtcbiAgICAgIGlmIChleGlzdGluZ0VudHJ5UG9pbnRQYXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgXFxgJHtleGlzdGluZ0VudHJ5UG9pbnRQYXRofVxcYCBhbmQgXFxgJHtlbnRyeVBvaW50UGF0aH1cXGAgYm90aCBvdXRwdXQgdG8gdGhlIHNhbWUgbG9jYXRpb24gXFxgJHtlbnRyeVBvaW50TmFtZX1cXGAuYCArXG4gICAgICAgICAgICAnIFJlbmFtZSBvciBtb3ZlIG9uZSBvZiB0aGUgZmlsZXMgdG8gZml4IHRoZSBjb25mbGljdC4nLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBlbnRyeVBvaW50UGF0aHNbZW50cnlQb2ludE5hbWVdID0gZW50cnlQb2ludFBhdGg7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVudHJ5UG9pbnRQYXRocztcbiAgfVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBhIGRpcmVjdG9yeSBwYXRoIHN0cmluZy5cbiAqIEN1cnJlbnRseSBvbmx5IHJlbW92ZXMgYSB0cmFpbGluZyBzbGFzaCBpZiBwcmVzZW50LlxuICogQHBhcmFtIHBhdGggQSBwYXRoIHN0cmluZy5cbiAqIEByZXR1cm5zIEEgbm9ybWFsaXplZCBwYXRoIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplRGlyZWN0b3J5UGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBsYXN0ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuICBpZiAobGFzdCA9PT0gJy8nIHx8IGxhc3QgPT09ICdcXFxcJykge1xuICAgIHJldHVybiBwYXRoLnNsaWNlKDAsIC0xKTtcbiAgfVxuXG4gIHJldHVybiBwYXRoO1xufVxuIl19
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL2J1aWxkZXJzL2FwcGxpY2F0aW9uL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7O0FBSUgsNkNBQTRDO0FBQzVDLDBEQUE2QjtBQUM3QiwrREFHMkM7QUFDM0MsdUNBQWlHO0FBQ2pHLDJEQUEwRTtBQUMxRSxpRUFBb0U7QUFDcEUsdUVBQXFFO0FBQ3JFLG1EQUFxRTtBQUNyRSwrRUFBMkY7QUFDM0YscUNBQStGO0FBNEMvRjs7Ozs7Ozs7OztHQVVHO0FBQ0gsa0RBQWtEO0FBQzNDLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsT0FBdUIsRUFDdkIsV0FBbUIsRUFDbkIsT0FBMEMsRUFDMUMsT0FBa0I7SUFFbEIsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUM1QyxNQUFNLGVBQWUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RSxNQUFNLFdBQVcsR0FBRyxzQkFBc0IsQ0FDeEMsbUJBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFHLGVBQWUsQ0FBQyxJQUEyQixJQUFJLEVBQUUsQ0FBQyxDQUM3RSxDQUFDO0lBQ0YsTUFBTSxpQkFBaUIsR0FBRyxzQkFBc0IsQ0FDOUMsbUJBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFHLGVBQWUsQ0FBQyxVQUFpQyxJQUFJLEtBQUssQ0FBQyxDQUN0RixDQUFDO0lBRUYsaUZBQWlGO0lBQ2pGLE1BQU0sWUFBWSxHQUFHLElBQUEsdUNBQXFCLEVBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzNFLFlBQVksQ0FBQyxJQUFJLEdBQUcsbUJBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUU5RCxNQUFNLFdBQVcsR0FHYixJQUFBLGdDQUFpQixFQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekQsV0FBVyxDQUFDLDRCQUE0QixHQUFHLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQztJQUM1RSxXQUFXLENBQUMsMEJBQTBCLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDO0lBQ3hFLElBQUksT0FBTyxDQUFDLG1CQUFtQixFQUFFO1FBQy9CLFdBQVcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0tBQy9CO0lBRUQsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlGLE1BQU0sUUFBUSxHQUFHLG1CQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUQsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsbUJBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3hGLE1BQU0sbUJBQW1CLEdBQUcsSUFBQSw2QkFBcUIsRUFBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDJCQUFtQixFQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLENBQUM7SUFDekUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNO1FBQ25DLENBQUMsQ0FBQyxJQUFBLDhCQUFzQixFQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQztRQUN2RixDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWQsTUFBTSxXQUFXLEdBQUc7UUFDbEIsT0FBTyxFQUNMLE9BQU8sQ0FBQyxhQUFhLEtBQUssc0JBQWEsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLGFBQWEsS0FBSyxzQkFBYSxDQUFDLE9BQU87WUFDNUYsQ0FBQyxDQUFDLGVBQWU7WUFDakIsQ0FBQyxDQUFDLFFBQVE7UUFDZCxLQUFLLEVBQ0gsUUFBUTtZQUNSLENBQUMsT0FBTyxDQUFDLGFBQWEsS0FBSyxzQkFBYSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxLQUFLLHNCQUFhLENBQUMsS0FBSztnQkFDM0YsQ0FBQyxDQUFDLGVBQWU7Z0JBQ2pCLENBQUMsQ0FBQyxRQUFRLENBQUM7S0FDaEIsQ0FBQztJQUVGLElBQUksZ0JBQW9ELENBQUM7SUFDekQsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7UUFDNUIsS0FBSyxNQUFNLFdBQVcsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7WUFDbEQsZ0JBQWdCLEtBQUssRUFBRSxDQUFDO1lBQ3hCLGdCQUFnQixDQUFDLG1CQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxtQkFBSSxDQUFDLElBQUksQ0FDekUsYUFBYSxFQUNiLFdBQVcsQ0FBQyxJQUFJLENBQ2pCLENBQUM7U0FDSDtLQUNGO0lBRUQsTUFBTSxZQUFZLEdBQTBELEVBQUUsQ0FBQztJQUMvRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFO1FBQzFCLE1BQU0sRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBQSwrQkFBcUIsRUFDakYsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQ3JCLENBQUM7UUFDRixLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQ2pFLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzVFO0tBQ0Y7SUFFRCxNQUFNLGFBQWEsR0FBMEQsRUFBRSxDQUFDO0lBQ2hGLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDM0IsS0FBSyxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFBLG1DQUF5QixFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN0RixhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3pFO0tBQ0Y7SUFFRCxJQUFJLHFCQUFvRSxDQUFDO0lBQ3pFLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxJQUFBLHdDQUE2QixFQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsRyxJQUFJLHlCQUF5QixFQUFFO1FBQzdCLDREQUE0RDtRQUM1RCxNQUFNLFFBQVEsR0FBRyxJQUFBLDJCQUFhLEVBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELElBQUk7WUFDRixxQkFBcUIsR0FBRztnQkFDdEIsSUFBSSxFQUFFLHlCQUF5QjtnQkFDL0IsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO2FBQ3pDLENBQUM7U0FDSDtRQUFDLE1BQU07WUFDTixNQUFNLDBCQUEwQixHQUFHLG1CQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1lBQzNGLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNqQiwwQ0FBMEMsMEJBQTBCLEdBQUc7Z0JBQ3JFLGtEQUFrRDtnQkFDbEQsb0VBQW9FLENBQ3ZFLENBQUM7U0FDSDtLQUNGO0lBRUQsSUFBSSxnQkFBZ0IsQ0FBQztJQUNyQixtRkFBbUY7SUFDbkYsSUFBSSxPQUFPLE9BQU8sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1FBQ3RDLGdCQUFnQixHQUFHO1lBQ2pCLEtBQUssRUFBRSxtQkFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBQSwwQ0FBaUIsRUFBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakUsb0VBQW9FO1lBQ3BFLE1BQU0sRUFBRSxJQUFBLDJDQUFrQixFQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDekMsMEVBQTBFO1lBQzFFLGNBQWMsRUFBRSxJQUFBLHdDQUFtQixFQUFDO2dCQUNsQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFO2dCQUM5QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFO2FBQzdCLENBQUM7U0FDSCxDQUFDO0tBQ0g7SUFFRCxJQUFJLGdCQUFvQyxDQUFDO0lBQ3pDLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUNsQixnQkFBZ0IsR0FBRyxtQkFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzdEO1NBQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtRQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7S0FDL0Q7SUFFRCxJQUFJLGdCQUFnQixDQUFDO0lBQ3JCLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtRQUNyQixNQUFNLEVBQUUsY0FBYyxHQUFHLElBQUksRUFBRSxVQUFVLEdBQUcsU0FBUyxFQUFFLEdBQ3JELE9BQU8sQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFFdEQsZ0JBQWdCLEdBQUc7WUFDakIsY0FBYztZQUNkLFVBQVUsRUFBRSxVQUFVLElBQUksbUJBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQztTQUMvRCxDQUFDO0tBQ0g7SUFFRCxJQUFJLFVBQVUsQ0FBQztJQUNmLElBQUksT0FBTyxDQUFDLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDeEIsVUFBVSxHQUFHLEVBQUUsQ0FBQztLQUNqQjtTQUFNLElBQUksT0FBTyxPQUFPLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUMxQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUU5QixVQUFVLEdBQUc7WUFDWCxLQUFLLEVBQUUsS0FBSyxJQUFJLG1CQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUM7U0FDaEQsQ0FBQztLQUNIO0lBRUQsSUFBSSxlQUFlLENBQUM7SUFDcEIsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1FBQ3BCLGVBQWUsR0FBRztZQUNoQixLQUFLLEVBQUUsT0FBTztTQUNmLENBQUM7S0FDSDtJQUVELDBCQUEwQjtJQUMxQixNQUFNLEVBQ0osMkJBQTJCLEVBQzNCLEdBQUcsRUFDSCxRQUFRLEVBQ1IsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsbUJBQW1CLEdBQUcsS0FBSyxFQUMzQixZQUFZLEVBQ1osYUFBYSxFQUNiLElBQUksRUFDSixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxLQUFLLEVBQ0wsUUFBUSxHQUFHLElBQUksRUFDZixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxPQUFPLEVBQ1AsU0FBUyxHQUNWLEdBQUcsT0FBTyxDQUFDO0lBRVosb0NBQW9DO0lBQ3BDLE9BQU87UUFDTCxxQkFBcUIsRUFBRSxDQUFDLENBQUMsR0FBRztRQUM1QiwyQkFBMkI7UUFDM0IsUUFBUTtRQUNSLFlBQVk7UUFDWixXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCLG9CQUFvQjtRQUNwQixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLEdBQUcsRUFBRSxDQUFDLEdBQUc7UUFDVCxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVM7UUFDbEIsU0FBUyxFQUFFLFNBQVMsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN4RixJQUFJO1FBQ0osUUFBUTtRQUNSLGdCQUFnQjtRQUNoQixpRUFBaUU7UUFDakUsZ0JBQWdCLEVBQUUsZ0JBQWdCLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUM7UUFDdEYsd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixVQUFVO1FBQ1YsT0FBTztRQUNQLEtBQUs7UUFDTCxhQUFhO1FBQ2IsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixVQUFVO1FBQ1YsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixRQUFRO1FBQ1IsV0FBVztRQUNYLE1BQU07UUFDTixXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixhQUFhO1FBQ2IsYUFBYSxFQUNYLE9BQU8sYUFBYSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsbUJBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ3pGLGdCQUFnQjtRQUNoQixxQkFBcUI7UUFDckIsV0FBVztRQUNYLFdBQVc7UUFDWCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzlDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQy9DLENBQUM7QUFDSixDQUFDO0FBbE9ELDRDQWtPQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FDM0IsYUFBcUIsRUFDckIsT0FBMkIsRUFDM0IsY0FBMkIsSUFBSSxHQUFHLEVBQUU7SUFFcEMsSUFBSSxPQUFPLEtBQUssRUFBRSxFQUFFO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztLQUNoRTtJQUVELHNEQUFzRDtJQUN0RCxJQUFJLE9BQU8sSUFBSSxXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7S0FDNUU7SUFDRCxJQUFJLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO1FBQ3RDLDJHQUEyRztRQUMzRyxNQUFNLElBQUksS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7S0FDM0Y7SUFFRCwwSEFBMEg7SUFDMUgsSUFBSSxPQUFPLEVBQUU7UUFDWCx1QkFBdUI7UUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxtQkFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztLQUN0RDtTQUFNO1FBQ0wsMkJBQTJCO1FBQzNCLE1BQU0sZUFBZSxHQUEyQixFQUFFLENBQUM7UUFDbkQsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUU7WUFDcEMsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUVoRCwrR0FBK0c7WUFDL0cseUZBQXlGO1lBQ3pGLGlJQUFpSTtZQUNqSSw4REFBOEQ7WUFDOUQsTUFBTSxjQUFjLEdBQUcsbUJBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO2dCQUNoRCxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSTtnQkFDdkIsQ0FBQyxDQUFDLG1CQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUzRCxtREFBbUQ7WUFDbkQsTUFBTSxjQUFjLEdBQUcsbUJBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO2dCQUNoRCxDQUFDLENBQUMsVUFBVTtnQkFDWixDQUFDLENBQUMsbUJBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBRXpDLGtEQUFrRDtZQUNsRCxNQUFNLHNCQUFzQixHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMvRCxJQUFJLHNCQUFzQixFQUFFO2dCQUMxQixNQUFNLElBQUksS0FBSyxDQUNiLEtBQUssc0JBQXNCLFlBQVksY0FBYyx5Q0FBeUMsY0FBYyxLQUFLO29CQUMvRyx1REFBdUQsQ0FDMUQsQ0FBQzthQUNIO1lBRUQsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGNBQWMsQ0FBQztTQUNsRDtRQUVELE9BQU8sZUFBZSxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxJQUFZO0lBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25DLElBQUksSUFBSSxLQUFLLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMxQjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBCdWlsZGVyQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9hcmNoaXRlY3QnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdlc2J1aWxkJztcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdub2RlOm1vZHVsZSc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtcbiAgZ2xvYmFsU2NyaXB0c0J5QnVuZGxlTmFtZSxcbiAgbm9ybWFsaXplR2xvYmFsU3R5bGVzLFxufSBmcm9tICcuLi8uLi90b29scy93ZWJwYWNrL3V0aWxzL2hlbHBlcnMnO1xuaW1wb3J0IHsgbm9ybWFsaXplQXNzZXRQYXR0ZXJucywgbm9ybWFsaXplT3B0aW1pemF0aW9uLCBub3JtYWxpemVTb3VyY2VNYXBzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgSTE4bk9wdGlvbnMsIGNyZWF0ZUkxOG5PcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvaTE4bi1vcHRpb25zJztcbmltcG9ydCB7IG5vcm1hbGl6ZUNhY2hlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL25vcm1hbGl6ZS1jYWNoZSc7XG5pbXBvcnQgeyBnZW5lcmF0ZUVudHJ5UG9pbnRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvcGFja2FnZS1jaHVuay1zb3J0JztcbmltcG9ydCB7IGZpbmRUYWlsd2luZENvbmZpZ3VyYXRpb25GaWxlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdGFpbHdpbmQnO1xuaW1wb3J0IHsgZ2V0SW5kZXhJbnB1dEZpbGUsIGdldEluZGV4T3V0cHV0RmlsZSB9IGZyb20gJy4uLy4uL3V0aWxzL3dlYnBhY2stYnJvd3Nlci1jb25maWcnO1xuaW1wb3J0IHsgU2NoZW1hIGFzIEFwcGxpY2F0aW9uQnVpbGRlck9wdGlvbnMsIEkxOE5UcmFuc2xhdGlvbiwgT3V0cHV0SGFzaGluZyB9IGZyb20gJy4vc2NoZW1hJztcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplZEFwcGxpY2F0aW9uQnVpbGRPcHRpb25zID0gQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiBub3JtYWxpemVPcHRpb25zPj47XG5cbi8qKiBJbnRlcm5hbCBvcHRpb25zIGhpZGRlbiBmcm9tIGJ1aWxkZXIgc2NoZW1hIGJ1dCBhdmFpbGFibGUgd2hlbiBpbnZva2VkIHByb2dyYW1tYXRpY2FsbHkuICovXG5pbnRlcmZhY2UgSW50ZXJuYWxPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVudHJ5IHBvaW50cyB0byB1c2UgZm9yIHRoZSBjb21waWxhdGlvbi4gSW5jb21wYXRpYmxlIHdpdGggYGJyb3dzZXJgLCB3aGljaCBtdXN0IG5vdCBiZSBwcm92aWRlZC4gTWF5IGJlIHJlbGF0aXZlIG9yIGFic29sdXRlIHBhdGhzLlxuICAgKiBJZiBnaXZlbiBhIHJlbGF0aXZlIHBhdGgsIGl0IGlzIHJlc29sdmVkIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBhbmQgd2lsbCBnZW5lcmF0ZSBhbiBvdXRwdXQgYXQgdGhlIHNhbWUgcmVsYXRpdmUgbG9jYXRpb25cbiAgICogaW4gdGhlIG91dHB1dCBkaXJlY3RvcnkuIElmIGdpdmVuIGFuIGFic29sdXRlIHBhdGgsIHRoZSBvdXRwdXQgd2lsbCBiZSBnZW5lcmF0ZWQgaW4gdGhlIHJvb3Qgb2YgdGhlIG91dHB1dCBkaXJlY3Rvcnkgd2l0aCB0aGUgc2FtZSBiYXNlXG4gICAqIG5hbWUuXG4gICAqL1xuICBlbnRyeVBvaW50cz86IFNldDxzdHJpbmc+O1xuXG4gIC8qKiBGaWxlIGV4dGVuc2lvbiB0byB1c2UgZm9yIHRoZSBnZW5lcmF0ZWQgb3V0cHV0IGZpbGVzLiAqL1xuICBvdXRFeHRlbnNpb24/OiAnanMnIHwgJ21qcyc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIGFsbCBub2RlIHBhY2thZ2VzIHNob3VsZCBiZSBtYXJrZWQgYXMgZXh0ZXJuYWwuXG4gICAqIEN1cnJlbnRseSB1c2VkIGJ5IHRoZSBkZXYtc2VydmVyIHRvIHN1cHBvcnQgcHJlYnVuZGxpbmcuXG4gICAqL1xuICBleHRlcm5hbFBhY2thZ2VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRm9yY2VzIHRoZSBvdXRwdXQgZnJvbSB0aGUgbG9jYWxpemUgcG9zdC1wcm9jZXNzaW5nIHRvIG5vdCBjcmVhdGUgbmVzdGVkIGRpcmVjdG9yaWVzIHBlciBsb2NhbGUgb3V0cHV0LlxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBieSB0aGUgZGV2ZWxvcG1lbnQgc2VydmVyIHdoaWNoIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIGEgc2luZ2xlIGxvY2FsZSBwZXIgYnVpbGQuXG4gICAqL1xuICBmb3JjZUkxOG5GbGF0T3V0cHV0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWxsb3dzIGZvciB1c2FnZSBvZiB0aGUgZGVwcmVjYXRlZCBgZGVwbG95VXJsYCBvcHRpb24gd2l0aCB0aGUgY29tcGF0aWJpbGl0eSBidWlsZGVyIGBicm93c2VyLWVzYnVpbGRgLlxuICAgKi9cbiAgZGVwbG95VXJsPzogc3RyaW5nO1xufVxuXG4vKiogRnVsbCBzZXQgb2Ygb3B0aW9ucyBmb3IgYGFwcGxpY2F0aW9uYCBidWlsZGVyLiAqL1xuZXhwb3J0IHR5cGUgQXBwbGljYXRpb25CdWlsZGVySW50ZXJuYWxPcHRpb25zID0gT21pdDxcbiAgQXBwbGljYXRpb25CdWlsZGVyT3B0aW9ucyAmIEludGVybmFsT3B0aW9ucyxcbiAgJ2Jyb3dzZXInXG4+ICYge1xuICAvLyBgYnJvd3NlcmAgY2FuIGJlIGB1bmRlZmluZWRgIGlmIGBlbnRyeVBvaW50c2AgaXMgdXNlZC5cbiAgYnJvd3Nlcj86IHN0cmluZztcbn07XG5cbi8qKlxuICogTm9ybWFsaXplIHRoZSB1c2VyIHByb3ZpZGVkIG9wdGlvbnMgYnkgY3JlYXRpbmcgZnVsbCBwYXRocyBmb3IgYWxsIHBhdGggYmFzZWQgb3B0aW9uc1xuICogYW5kIGNvbnZlcnRpbmcgbXVsdGktZm9ybSBvcHRpb25zIGludG8gYSBzaW5nbGUgZm9ybSB0aGF0IGNhbiBiZSBkaXJlY3RseSB1c2VkXG4gKiBieSB0aGUgYnVpbGQgcHJvY2Vzcy5cbiAqXG4gKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCBmb3IgY3VycmVudCBidWlsZGVyIGV4ZWN1dGlvbi5cbiAqIEBwYXJhbSBwcm9qZWN0TmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvamVjdCBmb3IgdGhlIGN1cnJlbnQgZXhlY3V0aW9uLlxuICogQHBhcmFtIG9wdGlvbnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG9wdGlvbnMgdG8gdXNlIGZvciB0aGUgYnVpbGQuXG4gKiBAcGFyYW0gcGx1Z2lucyBBbiBvcHRpb25hbCBhcnJheSBvZiBwcm9ncmFtbWF0aWNhbGx5IHN1cHBsaWVkIGJ1aWxkIHBsdWdpbnMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyBub3JtYWxpemVkIG9wdGlvbnMgcmVxdWlyZWQgdG8gcGVyZm9ybSB0aGUgYnVpbGQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGluZXMtcGVyLWZ1bmN0aW9uXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbm9ybWFsaXplT3B0aW9ucyhcbiAgY29udGV4dDogQnVpbGRlckNvbnRleHQsXG4gIHByb2plY3ROYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IEFwcGxpY2F0aW9uQnVpbGRlckludGVybmFsT3B0aW9ucyxcbiAgcGx1Z2lucz86IFBsdWdpbltdLFxuKSB7XG4gIGNvbnN0IHdvcmtzcGFjZVJvb3QgPSBjb250ZXh0LndvcmtzcGFjZVJvb3Q7XG4gIGNvbnN0IHByb2plY3RNZXRhZGF0YSA9IGF3YWl0IGNvbnRleHQuZ2V0UHJvamVjdE1ldGFkYXRhKHByb2plY3ROYW1lKTtcbiAgY29uc3QgcHJvamVjdFJvb3QgPSBub3JtYWxpemVEaXJlY3RvcnlQYXRoKFxuICAgIHBhdGguam9pbih3b3Jrc3BhY2VSb290LCAocHJvamVjdE1ldGFkYXRhLnJvb3QgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSA/PyAnJyksXG4gICk7XG4gIGNvbnN0IHByb2plY3RTb3VyY2VSb290ID0gbm9ybWFsaXplRGlyZWN0b3J5UGF0aChcbiAgICBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgKHByb2plY3RNZXRhZGF0YS5zb3VyY2VSb290IGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgPz8gJ3NyYycpLFxuICApO1xuXG4gIC8vIEdhdGhlciBwZXJzaXN0ZW50IGNhY2hpbmcgb3B0aW9uIGFuZCBwcm92aWRlIGEgcHJvamVjdCBzcGVjaWZpYyBjYWNoZSBsb2NhdGlvblxuICBjb25zdCBjYWNoZU9wdGlvbnMgPSBub3JtYWxpemVDYWNoZU9wdGlvbnMocHJvamVjdE1ldGFkYXRhLCB3b3Jrc3BhY2VSb290KTtcbiAgY2FjaGVPcHRpb25zLnBhdGggPSBwYXRoLmpvaW4oY2FjaGVPcHRpb25zLnBhdGgsIHByb2plY3ROYW1lKTtcblxuICBjb25zdCBpMThuT3B0aW9uczogSTE4bk9wdGlvbnMgJiB7XG4gICAgZHVwbGljYXRlVHJhbnNsYXRpb25CZWhhdmlvcj86IEkxOE5UcmFuc2xhdGlvbjtcbiAgICBtaXNzaW5nVHJhbnNsYXRpb25CZWhhdmlvcj86IEkxOE5UcmFuc2xhdGlvbjtcbiAgfSA9IGNyZWF0ZUkxOG5PcHRpb25zKHByb2plY3RNZXRhZGF0YSwgb3B0aW9ucy5sb2NhbGl6ZSk7XG4gIGkxOG5PcHRpb25zLmR1cGxpY2F0ZVRyYW5zbGF0aW9uQmVoYXZpb3IgPSBvcHRpb25zLmkxOG5EdXBsaWNhdGVUcmFuc2xhdGlvbjtcbiAgaTE4bk9wdGlvbnMubWlzc2luZ1RyYW5zbGF0aW9uQmVoYXZpb3IgPSBvcHRpb25zLmkxOG5NaXNzaW5nVHJhbnNsYXRpb247XG4gIGlmIChvcHRpb25zLmZvcmNlSTE4bkZsYXRPdXRwdXQpIHtcbiAgICBpMThuT3B0aW9ucy5mbGF0T3V0cHV0ID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGVudHJ5UG9pbnRzID0gbm9ybWFsaXplRW50cnlQb2ludHMod29ya3NwYWNlUm9vdCwgb3B0aW9ucy5icm93c2VyLCBvcHRpb25zLmVudHJ5UG9pbnRzKTtcbiAgY29uc3QgdHNjb25maWcgPSBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgb3B0aW9ucy50c0NvbmZpZyk7XG4gIGNvbnN0IG91dHB1dFBhdGggPSBub3JtYWxpemVEaXJlY3RvcnlQYXRoKHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBvcHRpb25zLm91dHB1dFBhdGgpKTtcbiAgY29uc3Qgb3B0aW1pemF0aW9uT3B0aW9ucyA9IG5vcm1hbGl6ZU9wdGltaXphdGlvbihvcHRpb25zLm9wdGltaXphdGlvbik7XG4gIGNvbnN0IHNvdXJjZW1hcE9wdGlvbnMgPSBub3JtYWxpemVTb3VyY2VNYXBzKG9wdGlvbnMuc291cmNlTWFwID8/IGZhbHNlKTtcbiAgY29uc3QgYXNzZXRzID0gb3B0aW9ucy5hc3NldHM/Lmxlbmd0aFxuICAgID8gbm9ybWFsaXplQXNzZXRQYXR0ZXJucyhvcHRpb25zLmFzc2V0cywgd29ya3NwYWNlUm9vdCwgcHJvamVjdFJvb3QsIHByb2plY3RTb3VyY2VSb290KVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IG91dHB1dE5hbWVzID0ge1xuICAgIGJ1bmRsZXM6XG4gICAgICBvcHRpb25zLm91dHB1dEhhc2hpbmcgPT09IE91dHB1dEhhc2hpbmcuQWxsIHx8IG9wdGlvbnMub3V0cHV0SGFzaGluZyA9PT0gT3V0cHV0SGFzaGluZy5CdW5kbGVzXG4gICAgICAgID8gJ1tuYW1lXS1baGFzaF0nXG4gICAgICAgIDogJ1tuYW1lXScsXG4gICAgbWVkaWE6XG4gICAgICAnbWVkaWEvJyArXG4gICAgICAob3B0aW9ucy5vdXRwdXRIYXNoaW5nID09PSBPdXRwdXRIYXNoaW5nLkFsbCB8fCBvcHRpb25zLm91dHB1dEhhc2hpbmcgPT09IE91dHB1dEhhc2hpbmcuTWVkaWFcbiAgICAgICAgPyAnW25hbWVdLVtoYXNoXSdcbiAgICAgICAgOiAnW25hbWVdJyksXG4gIH07XG5cbiAgbGV0IGZpbGVSZXBsYWNlbWVudHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7XG4gIGlmIChvcHRpb25zLmZpbGVSZXBsYWNlbWVudHMpIHtcbiAgICBmb3IgKGNvbnN0IHJlcGxhY2VtZW50IG9mIG9wdGlvbnMuZmlsZVJlcGxhY2VtZW50cykge1xuICAgICAgZmlsZVJlcGxhY2VtZW50cyA/Pz0ge307XG4gICAgICBmaWxlUmVwbGFjZW1lbnRzW3BhdGguam9pbih3b3Jrc3BhY2VSb290LCByZXBsYWNlbWVudC5yZXBsYWNlKV0gPSBwYXRoLmpvaW4oXG4gICAgICAgIHdvcmtzcGFjZVJvb3QsXG4gICAgICAgIHJlcGxhY2VtZW50LndpdGgsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGdsb2JhbFN0eWxlczogeyBuYW1lOiBzdHJpbmc7IGZpbGVzOiBzdHJpbmdbXTsgaW5pdGlhbDogYm9vbGVhbiB9W10gPSBbXTtcbiAgaWYgKG9wdGlvbnMuc3R5bGVzPy5sZW5ndGgpIHtcbiAgICBjb25zdCB7IGVudHJ5UG9pbnRzOiBzdHlsZXNoZWV0RW50cnlwb2ludHMsIG5vSW5qZWN0TmFtZXMgfSA9IG5vcm1hbGl6ZUdsb2JhbFN0eWxlcyhcbiAgICAgIG9wdGlvbnMuc3R5bGVzIHx8IFtdLFxuICAgICk7XG4gICAgZm9yIChjb25zdCBbbmFtZSwgZmlsZXNdIG9mIE9iamVjdC5lbnRyaWVzKHN0eWxlc2hlZXRFbnRyeXBvaW50cykpIHtcbiAgICAgIGdsb2JhbFN0eWxlcy5wdXNoKHsgbmFtZSwgZmlsZXMsIGluaXRpYWw6ICFub0luamVjdE5hbWVzLmluY2x1ZGVzKG5hbWUpIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGdsb2JhbFNjcmlwdHM6IHsgbmFtZTogc3RyaW5nOyBmaWxlczogc3RyaW5nW107IGluaXRpYWw6IGJvb2xlYW4gfVtdID0gW107XG4gIGlmIChvcHRpb25zLnNjcmlwdHM/Lmxlbmd0aCkge1xuICAgIGZvciAoY29uc3QgeyBidW5kbGVOYW1lLCBwYXRocywgaW5qZWN0IH0gb2YgZ2xvYmFsU2NyaXB0c0J5QnVuZGxlTmFtZShvcHRpb25zLnNjcmlwdHMpKSB7XG4gICAgICBnbG9iYWxTY3JpcHRzLnB1c2goeyBuYW1lOiBidW5kbGVOYW1lLCBmaWxlczogcGF0aHMsIGluaXRpYWw6IGluamVjdCB9KTtcbiAgICB9XG4gIH1cblxuICBsZXQgdGFpbHdpbmRDb25maWd1cmF0aW9uOiB7IGZpbGU6IHN0cmluZzsgcGFja2FnZTogc3RyaW5nIH0gfCB1bmRlZmluZWQ7XG4gIGNvbnN0IHRhaWx3aW5kQ29uZmlndXJhdGlvblBhdGggPSBhd2FpdCBmaW5kVGFpbHdpbmRDb25maWd1cmF0aW9uRmlsZSh3b3Jrc3BhY2VSb290LCBwcm9qZWN0Um9vdCk7XG4gIGlmICh0YWlsd2luZENvbmZpZ3VyYXRpb25QYXRoKSB7XG4gICAgLy8gQ3JlYXRlIGEgbm9kZSByZXNvbHZlciBhdCB0aGUgcHJvamVjdCByb290IGFzIGEgZGlyZWN0b3J5XG4gICAgY29uc3QgcmVzb2x2ZXIgPSBjcmVhdGVSZXF1aXJlKHByb2plY3RSb290ICsgJy8nKTtcbiAgICB0cnkge1xuICAgICAgdGFpbHdpbmRDb25maWd1cmF0aW9uID0ge1xuICAgICAgICBmaWxlOiB0YWlsd2luZENvbmZpZ3VyYXRpb25QYXRoLFxuICAgICAgICBwYWNrYWdlOiByZXNvbHZlci5yZXNvbHZlKCd0YWlsd2luZGNzcycpLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGNvbnN0IHJlbGF0aXZlVGFpbHdpbmRDb25maWdQYXRoID0gcGF0aC5yZWxhdGl2ZSh3b3Jrc3BhY2VSb290LCB0YWlsd2luZENvbmZpZ3VyYXRpb25QYXRoKTtcbiAgICAgIGNvbnRleHQubG9nZ2VyLndhcm4oXG4gICAgICAgIGBUYWlsd2luZCBDU1MgY29uZmlndXJhdGlvbiBmaWxlIGZvdW5kICgke3JlbGF0aXZlVGFpbHdpbmRDb25maWdQYXRofSlgICtcbiAgICAgICAgICBgIGJ1dCB0aGUgJ3RhaWx3aW5kY3NzJyBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQuYCArXG4gICAgICAgICAgYCBUbyBlbmFibGUgVGFpbHdpbmQgQ1NTLCBwbGVhc2UgaW5zdGFsbCB0aGUgJ3RhaWx3aW5kY3NzJyBwYWNrYWdlLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGxldCBpbmRleEh0bWxPcHRpb25zO1xuICAvLyBpbmRleCBjYW4gbmV2ZXIgaGF2ZSBhIHZhbHVlIG9mIGB0cnVlYCBidXQgaW4gdGhlIHNjaGVtYSBpdCdzIG9mIHR5cGUgYGJvb2xlYW5gLlxuICBpZiAodHlwZW9mIG9wdGlvbnMuaW5kZXggIT09ICdib29sZWFuJykge1xuICAgIGluZGV4SHRtbE9wdGlvbnMgPSB7XG4gICAgICBpbnB1dDogcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIGdldEluZGV4SW5wdXRGaWxlKG9wdGlvbnMuaW5kZXgpKSxcbiAgICAgIC8vIFRoZSBvdXRwdXQgZmlsZSB3aWxsIGJlIGNyZWF0ZWQgd2l0aGluIHRoZSBjb25maWd1cmVkIG91dHB1dCBwYXRoXG4gICAgICBvdXRwdXQ6IGdldEluZGV4T3V0cHV0RmlsZShvcHRpb25zLmluZGV4KSxcbiAgICAgIC8vIFRPRE86IFVzZSBleGlzdGluZyBpbmZvcm1hdGlvbiBmcm9tIGFib3ZlIHRvIGNyZWF0ZSB0aGUgaW5zZXJ0aW9uIG9yZGVyXG4gICAgICBpbnNlcnRpb25PcmRlcjogZ2VuZXJhdGVFbnRyeVBvaW50cyh7XG4gICAgICAgIHNjcmlwdHM6IG9wdGlvbnMuc2NyaXB0cyA/PyBbXSxcbiAgICAgICAgc3R5bGVzOiBvcHRpb25zLnN0eWxlcyA/PyBbXSxcbiAgICAgIH0pLFxuICAgIH07XG4gIH1cblxuICBsZXQgc2VydmVyRW50cnlQb2ludDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBpZiAob3B0aW9ucy5zZXJ2ZXIpIHtcbiAgICBzZXJ2ZXJFbnRyeVBvaW50ID0gcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIG9wdGlvbnMuc2VydmVyKTtcbiAgfSBlbHNlIGlmIChvcHRpb25zLnNlcnZlciA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2BzZXJ2ZXJgIG9wdGlvbiBjYW5ub3QgYmUgYW4gZW1wdHkgc3RyaW5nLicpO1xuICB9XG5cbiAgbGV0IHByZXJlbmRlck9wdGlvbnM7XG4gIGlmIChvcHRpb25zLnByZXJlbmRlcikge1xuICAgIGNvbnN0IHsgZGlzY292ZXJSb3V0ZXMgPSB0cnVlLCByb3V0ZXNGaWxlID0gdW5kZWZpbmVkIH0gPVxuICAgICAgb3B0aW9ucy5wcmVyZW5kZXIgPT09IHRydWUgPyB7fSA6IG9wdGlvbnMucHJlcmVuZGVyO1xuXG4gICAgcHJlcmVuZGVyT3B0aW9ucyA9IHtcbiAgICAgIGRpc2NvdmVyUm91dGVzLFxuICAgICAgcm91dGVzRmlsZTogcm91dGVzRmlsZSAmJiBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgcm91dGVzRmlsZSksXG4gICAgfTtcbiAgfVxuXG4gIGxldCBzc3JPcHRpb25zO1xuICBpZiAob3B0aW9ucy5zc3IgPT09IHRydWUpIHtcbiAgICBzc3JPcHRpb25zID0ge307XG4gIH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMuc3NyID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHsgZW50cnkgfSA9IG9wdGlvbnMuc3NyO1xuXG4gICAgc3NyT3B0aW9ucyA9IHtcbiAgICAgIGVudHJ5OiBlbnRyeSAmJiBwYXRoLmpvaW4od29ya3NwYWNlUm9vdCwgZW50cnkpLFxuICAgIH07XG4gIH1cblxuICBsZXQgYXBwU2hlbGxPcHRpb25zO1xuICBpZiAob3B0aW9ucy5hcHBTaGVsbCkge1xuICAgIGFwcFNoZWxsT3B0aW9ucyA9IHtcbiAgICAgIHJvdXRlOiAnc2hlbGwnLFxuICAgIH07XG4gIH1cblxuICAvLyBJbml0aWFsIG9wdGlvbnMgdG8ga2VlcFxuICBjb25zdCB7XG4gICAgYWxsb3dlZENvbW1vbkpzRGVwZW5kZW5jaWVzLFxuICAgIGFvdCxcbiAgICBiYXNlSHJlZixcbiAgICBjcm9zc09yaWdpbixcbiAgICBleHRlcm5hbERlcGVuZGVuY2llcyxcbiAgICBleHRyYWN0TGljZW5zZXMsXG4gICAgaW5saW5lU3R5bGVMYW5ndWFnZSA9ICdjc3MnLFxuICAgIG91dEV4dGVuc2lvbixcbiAgICBzZXJ2aWNlV29ya2VyLFxuICAgIHBvbGwsXG4gICAgcG9seWZpbGxzLFxuICAgIHByZXNlcnZlU3ltbGlua3MsXG4gICAgc3RhdHNKc29uLFxuICAgIHN0eWxlUHJlcHJvY2Vzc29yT3B0aW9ucyxcbiAgICBzdWJyZXNvdXJjZUludGVncml0eSxcbiAgICB2ZXJib3NlLFxuICAgIHdhdGNoLFxuICAgIHByb2dyZXNzID0gdHJ1ZSxcbiAgICBleHRlcm5hbFBhY2thZ2VzLFxuICAgIGRlbGV0ZU91dHB1dFBhdGgsXG4gICAgbmFtZWRDaHVua3MsXG4gICAgYnVkZ2V0cyxcbiAgICBkZXBsb3lVcmwsXG4gIH0gPSBvcHRpb25zO1xuXG4gIC8vIFJldHVybiBhbGwgdGhlIG5vcm1hbGl6ZWQgb3B0aW9uc1xuICByZXR1cm4ge1xuICAgIGFkdmFuY2VkT3B0aW1pemF0aW9uczogISFhb3QsXG4gICAgYWxsb3dlZENvbW1vbkpzRGVwZW5kZW5jaWVzLFxuICAgIGJhc2VIcmVmLFxuICAgIGNhY2hlT3B0aW9ucyxcbiAgICBjcm9zc09yaWdpbixcbiAgICBkZWxldGVPdXRwdXRQYXRoLFxuICAgIGV4dGVybmFsRGVwZW5kZW5jaWVzLFxuICAgIGV4dHJhY3RMaWNlbnNlcyxcbiAgICBpbmxpbmVTdHlsZUxhbmd1YWdlLFxuICAgIGppdDogIWFvdCxcbiAgICBzdGF0czogISFzdGF0c0pzb24sXG4gICAgcG9seWZpbGxzOiBwb2x5ZmlsbHMgPT09IHVuZGVmaW5lZCB8fCBBcnJheS5pc0FycmF5KHBvbHlmaWxscykgPyBwb2x5ZmlsbHMgOiBbcG9seWZpbGxzXSxcbiAgICBwb2xsLFxuICAgIHByb2dyZXNzLFxuICAgIGV4dGVybmFsUGFja2FnZXMsXG4gICAgLy8gSWYgbm90IGV4cGxpY2l0bHkgc2V0LCBkZWZhdWx0IHRvIHRoZSBOb2RlLmpzIHByb2Nlc3MgYXJndW1lbnRcbiAgICBwcmVzZXJ2ZVN5bWxpbmtzOiBwcmVzZXJ2ZVN5bWxpbmtzID8/IHByb2Nlc3MuZXhlY0FyZ3YuaW5jbHVkZXMoJy0tcHJlc2VydmUtc3ltbGlua3MnKSxcbiAgICBzdHlsZVByZXByb2Nlc3Nvck9wdGlvbnMsXG4gICAgc3VicmVzb3VyY2VJbnRlZ3JpdHksXG4gICAgc2VydmVyRW50cnlQb2ludCxcbiAgICBwcmVyZW5kZXJPcHRpb25zLFxuICAgIGFwcFNoZWxsT3B0aW9ucyxcbiAgICBzc3JPcHRpb25zLFxuICAgIHZlcmJvc2UsXG4gICAgd2F0Y2gsXG4gICAgd29ya3NwYWNlUm9vdCxcbiAgICBlbnRyeVBvaW50cyxcbiAgICBvcHRpbWl6YXRpb25PcHRpb25zLFxuICAgIG91dHB1dFBhdGgsXG4gICAgb3V0RXh0ZW5zaW9uLFxuICAgIHNvdXJjZW1hcE9wdGlvbnMsXG4gICAgdHNjb25maWcsXG4gICAgcHJvamVjdFJvb3QsXG4gICAgYXNzZXRzLFxuICAgIG91dHB1dE5hbWVzLFxuICAgIGZpbGVSZXBsYWNlbWVudHMsXG4gICAgZ2xvYmFsU3R5bGVzLFxuICAgIGdsb2JhbFNjcmlwdHMsXG4gICAgc2VydmljZVdvcmtlcjpcbiAgICAgIHR5cGVvZiBzZXJ2aWNlV29ya2VyID09PSAnc3RyaW5nJyA/IHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBzZXJ2aWNlV29ya2VyKSA6IHVuZGVmaW5lZCxcbiAgICBpbmRleEh0bWxPcHRpb25zLFxuICAgIHRhaWx3aW5kQ29uZmlndXJhdGlvbixcbiAgICBpMThuT3B0aW9ucyxcbiAgICBuYW1lZENodW5rcyxcbiAgICBidWRnZXRzOiBidWRnZXRzPy5sZW5ndGggPyBidWRnZXRzIDogdW5kZWZpbmVkLFxuICAgIHB1YmxpY1BhdGg6IGRlcGxveVVybCA/IGRlcGxveVVybCA6IHVuZGVmaW5lZCxcbiAgICBwbHVnaW5zOiBwbHVnaW5zPy5sZW5ndGggPyBwbHVnaW5zIDogdW5kZWZpbmVkLFxuICB9O1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBlbnRyeSBwb2ludCBvcHRpb25zLiBUbyBtYWludGFpbiBjb21wYXRpYmlsaXR5IHdpdGggdGhlIGxlZ2FjeSBicm93c2VyIGJ1aWxkZXIsIHdlIG5lZWQgYSBzaW5nbGUgYGJyb3dzZXJgXG4gKiBvcHRpb24gd2hpY2ggZGVmaW5lcyBhIHNpbmdsZSBlbnRyeSBwb2ludC4gSG93ZXZlciwgd2UgYWxzbyB3YW50IHRvIHN1cHBvcnQgbXVsdGlwbGUgZW50cnkgcG9pbnRzIGFzIGFuIGludGVybmFsIG9wdGlvbi5cbiAqIFRoZSB0d28gb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIGFuZCBpZiBgYnJvd3NlcmAgaXMgcHJvdmlkZWQgaXQgd2lsbCBiZSB1c2VkIGFzIHRoZSBzb2xlIGVudHJ5IHBvaW50LlxuICogSWYgYGVudHJ5UG9pbnRzYCBhcmUgcHJvdmlkZWQsIHRoZXkgd2lsbCBiZSB1c2VkIGFzIHRoZSBzZXQgb2YgZW50cnkgcG9pbnRzLlxuICpcbiAqIEBwYXJhbSB3b3Jrc3BhY2VSb290IFBhdGggdG8gdGhlIHJvb3Qgb2YgdGhlIEFuZ3VsYXIgd29ya3NwYWNlLlxuICogQHBhcmFtIGJyb3dzZXIgVGhlIGBicm93c2VyYCBvcHRpb24gcG9pbnRpbmcgYXQgdGhlIGFwcGxpY2F0aW9uIGVudHJ5IHBvaW50LiBXaGlsZSByZXF1aXJlZCBwZXIgdGhlIHNjaGVtYSBmaWxlLCBpdCBtYXkgYmUgb21pdHRlZCBieVxuICogICAgIHByb2dyYW1tYXRpYyB1c2FnZXMgb2YgYGJyb3dzZXItZXNidWlsZGAuXG4gKiBAcGFyYW0gZW50cnlQb2ludHMgU2V0IG9mIGVudHJ5IHBvaW50cyB0byB1c2UgaWYgcHJvdmlkZWQuXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgbWFwcGluZyBlbnRyeSBwb2ludCBuYW1lcyB0byB0aGVpciBmaWxlIHBhdGhzLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVFbnRyeVBvaW50cyhcbiAgd29ya3NwYWNlUm9vdDogc3RyaW5nLFxuICBicm93c2VyOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGVudHJ5UG9pbnRzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKSxcbik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBpZiAoYnJvd3NlciA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2Bicm93c2VyYCBvcHRpb24gY2Fubm90IGJlIGFuIGVtcHR5IHN0cmluZy4nKTtcbiAgfVxuXG4gIC8vIGBicm93c2VyYCBhbmQgYGVudHJ5UG9pbnRzYCBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLlxuICBpZiAoYnJvd3NlciAmJiBlbnRyeVBvaW50cy5zaXplID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignT25seSBvbmUgb2YgYGJyb3dzZXJgIG9yIGBlbnRyeVBvaW50c2AgbWF5IGJlIHByb3ZpZGVkLicpO1xuICB9XG4gIGlmICghYnJvd3NlciAmJiBlbnRyeVBvaW50cy5zaXplID09PSAwKSB7XG4gICAgLy8gU2NoZW1hIHNob3VsZCBub3JtYWxseSByZWplY3QgdGhpcyBjYXNlLCBidXQgcHJvZ3JhbW1hdGljIHVzYWdlcyBvZiB0aGUgYnVpbGRlciBtaWdodCBtYWtlIHRoaXMgbWlzdGFrZS5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0VpdGhlciBgYnJvd3NlcmAgb3IgYXQgbGVhc3Qgb25lIGBlbnRyeVBvaW50c2AgdmFsdWUgbXVzdCBiZSBwcm92aWRlZC4nKTtcbiAgfVxuXG4gIC8vIFNjaGVtYSB0eXBlcyBmb3JjZSBgYnJvd3NlcmAgdG8gYWx3YXlzIGJlIHByb3ZpZGVkLCBidXQgaXQgbWF5IGJlIG9taXR0ZWQgd2hlbiB0aGUgYnVpbGRlciBpcyBpbnZva2VkIHByb2dyYW1tYXRpY2FsbHkuXG4gIGlmIChicm93c2VyKSB7XG4gICAgLy8gVXNlIGBicm93c2VyYCBhbG9uZS5cbiAgICByZXR1cm4geyAnbWFpbic6IHBhdGguam9pbih3b3Jrc3BhY2VSb290LCBicm93c2VyKSB9O1xuICB9IGVsc2Uge1xuICAgIC8vIFVzZSBgZW50cnlQb2ludHNgIGFsb25lLlxuICAgIGNvbnN0IGVudHJ5UG9pbnRQYXRoczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGZvciAoY29uc3QgZW50cnlQb2ludCBvZiBlbnRyeVBvaW50cykge1xuICAgICAgY29uc3QgcGFyc2VkRW50cnlQb2ludCA9IHBhdGgucGFyc2UoZW50cnlQb2ludCk7XG5cbiAgICAgIC8vIFVzZSB0aGUgaW5wdXQgZmlsZSBwYXRoIHdpdGhvdXQgYW4gZXh0ZW5zaW9uIGFzIHRoZSBcIm5hbWVcIiBvZiB0aGUgZW50cnkgcG9pbnQgZGljdGF0aW5nIGl0cyBvdXRwdXQgbG9jYXRpb24uXG4gICAgICAvLyBSZWxhdGl2ZSBlbnRyeSBwb2ludHMgYXJlIGdlbmVyYXRlZCBhdCB0aGUgc2FtZSByZWxhdGl2ZSBwYXRoIGluIHRoZSBvdXRwdXQgZGlyZWN0b3J5LlxuICAgICAgLy8gQWJzb2x1dGUgZW50cnkgcG9pbnRzIGFyZSBhbHdheXMgZ2VuZXJhdGVkIHdpdGggdGhlIHNhbWUgZmlsZSBuYW1lIGluIHRoZSByb290IG9mIHRoZSBvdXRwdXQgZGlyZWN0b3J5LiBUaGlzIGluY2x1ZGVzIGFic29sdXRlXG4gICAgICAvLyBwYXRocyBwb2ludGluZyBhdCBmaWxlcyBhY3R1YWxseSB3aXRoaW4gdGhlIHdvcmtzcGFjZSByb290LlxuICAgICAgY29uc3QgZW50cnlQb2ludE5hbWUgPSBwYXRoLmlzQWJzb2x1dGUoZW50cnlQb2ludClcbiAgICAgICAgPyBwYXJzZWRFbnRyeVBvaW50Lm5hbWVcbiAgICAgICAgOiBwYXRoLmpvaW4ocGFyc2VkRW50cnlQb2ludC5kaXIsIHBhcnNlZEVudHJ5UG9pbnQubmFtZSk7XG5cbiAgICAgIC8vIEdldCB0aGUgZnVsbCBmaWxlIHBhdGggdG8gdGhlIGVudHJ5IHBvaW50IGlucHV0LlxuICAgICAgY29uc3QgZW50cnlQb2ludFBhdGggPSBwYXRoLmlzQWJzb2x1dGUoZW50cnlQb2ludClcbiAgICAgICAgPyBlbnRyeVBvaW50XG4gICAgICAgIDogcGF0aC5qb2luKHdvcmtzcGFjZVJvb3QsIGVudHJ5UG9pbnQpO1xuXG4gICAgICAvLyBDaGVjayBmb3IgY29uZmxpY3RzIHdpdGggcHJldmlvdXMgZW50cnkgcG9pbnRzLlxuICAgICAgY29uc3QgZXhpc3RpbmdFbnRyeVBvaW50UGF0aCA9IGVudHJ5UG9pbnRQYXRoc1tlbnRyeVBvaW50TmFtZV07XG4gICAgICBpZiAoZXhpc3RpbmdFbnRyeVBvaW50UGF0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFxcYCR7ZXhpc3RpbmdFbnRyeVBvaW50UGF0aH1cXGAgYW5kIFxcYCR7ZW50cnlQb2ludFBhdGh9XFxgIGJvdGggb3V0cHV0IHRvIHRoZSBzYW1lIGxvY2F0aW9uIFxcYCR7ZW50cnlQb2ludE5hbWV9XFxgLmAgK1xuICAgICAgICAgICAgJyBSZW5hbWUgb3IgbW92ZSBvbmUgb2YgdGhlIGZpbGVzIHRvIGZpeCB0aGUgY29uZmxpY3QuJyxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgZW50cnlQb2ludFBhdGhzW2VudHJ5UG9pbnROYW1lXSA9IGVudHJ5UG9pbnRQYXRoO1xuICAgIH1cblxuICAgIHJldHVybiBlbnRyeVBvaW50UGF0aHM7XG4gIH1cbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgYSBkaXJlY3RvcnkgcGF0aCBzdHJpbmcuXG4gKiBDdXJyZW50bHkgb25seSByZW1vdmVzIGEgdHJhaWxpbmcgc2xhc2ggaWYgcHJlc2VudC5cbiAqIEBwYXJhbSBwYXRoIEEgcGF0aCBzdHJpbmcuXG4gKiBAcmV0dXJucyBBIG5vcm1hbGl6ZWQgcGF0aCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZURpcmVjdG9yeVBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbGFzdCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcbiAgaWYgKGxhc3QgPT09ICcvJyB8fCBsYXN0ID09PSAnXFxcXCcpIHtcbiAgICByZXR1cm4gcGF0aC5zbGljZSgwLCAtMSk7XG4gIH1cblxuICByZXR1cm4gcGF0aDtcbn1cbiJdfQ==
|
|
@@ -90,7 +90,6 @@ export interface Schema {
|
|
|
90
90
|
outputHashing?: OutputHashing;
|
|
91
91
|
/**
|
|
92
92
|
* The full path for the new output directory, relative to the current workspace.
|
|
93
|
-
* By default, writes output to a folder named dist/ in the current project.
|
|
94
93
|
*/
|
|
95
94
|
outputPath: string;
|
|
96
95
|
/**
|
|
@@ -136,7 +135,7 @@ export interface Schema {
|
|
|
136
135
|
/**
|
|
137
136
|
* Server side render (SSR) pages of your application during runtime.
|
|
138
137
|
*/
|
|
139
|
-
ssr?:
|
|
138
|
+
ssr?: SsrUnion;
|
|
140
139
|
/**
|
|
141
140
|
* Generates a 'stats.json' file which can be analyzed with
|
|
142
141
|
* https://esbuild.github.io/analyze/.
|
|
@@ -386,8 +385,6 @@ export interface ScriptClass {
|
|
|
386
385
|
}
|
|
387
386
|
/**
|
|
388
387
|
* Generates a service worker configuration.
|
|
389
|
-
*
|
|
390
|
-
* Server side render (SSR) pages of your application during runtime.
|
|
391
388
|
*/
|
|
392
389
|
export type ServiceWorker = boolean | string;
|
|
393
390
|
/**
|
|
@@ -413,6 +410,16 @@ export interface SourceMapClass {
|
|
|
413
410
|
*/
|
|
414
411
|
vendor?: boolean;
|
|
415
412
|
}
|
|
413
|
+
/**
|
|
414
|
+
* Server side render (SSR) pages of your application during runtime.
|
|
415
|
+
*/
|
|
416
|
+
export type SsrUnion = boolean | SsrClass;
|
|
417
|
+
export interface SsrClass {
|
|
418
|
+
/**
|
|
419
|
+
* The server entry-point that when executed will spawn the web server.
|
|
420
|
+
*/
|
|
421
|
+
entry?: string;
|
|
422
|
+
}
|
|
416
423
|
/**
|
|
417
424
|
* Options to pass to style preprocessors.
|
|
418
425
|
*/
|
|
@@ -56,4 +56,4 @@ var OutputHashing;
|
|
|
56
56
|
OutputHashing["Media"] = "media";
|
|
57
57
|
OutputHashing["None"] = "none";
|
|
58
58
|
})(OutputHashing || (exports.OutputHashing = OutputHashing = {}));
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvYnVpbGRlcnMvYXBwbGljYXRpb24vc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxtRkFBbUY7QUFDbkYsb0ZBQW9GOzs7QUFpUHBGOztHQUVHO0FBQ0gsSUFBWSxJQVFYO0FBUkQsV0FBWSxJQUFJO0lBQ1osbUJBQVcsQ0FBQTtJQUNYLCtCQUF1QixDQUFBO0lBQ3ZCLG1CQUFXLENBQUE7SUFDWCwrQ0FBdUMsQ0FBQTtJQUN2QywrQkFBdUIsQ0FBQTtJQUN2Qix5QkFBaUIsQ0FBQTtJQUNqQiwyQkFBbUIsQ0FBQTtBQUN2QixDQUFDLEVBUlcsSUFBSSxvQkFBSixJQUFJLFFBUWY7QUFFRDs7R0FFRztBQUNILElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNuQixzQ0FBdUIsQ0FBQTtJQUN2Qiw0QkFBYSxDQUFBO0lBQ2IsaURBQWtDLENBQUE7QUFDdEMsQ0FBQyxFQUpXLFdBQVcsMkJBQVgsV0FBVyxRQUl0QjtBQU9EOzs7O0dBSUc7QUFDSCxJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsa0NBQWUsQ0FBQTtJQUNmLG9DQUFpQixDQUFBO0lBQ2pCLHNDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxlQUFlLCtCQUFmLGVBQWUsUUFJMUI7QUFvQkQ7O0dBRUc7QUFDSCxJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDM0Isa0NBQVcsQ0FBQTtJQUNYLG9DQUFhLENBQUE7SUFDYixvQ0FBYSxDQUFBO0lBQ2Isb0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBTFcsbUJBQW1CLG1DQUFuQixtQkFBbUIsUUFLOUI7QUErREQ7O0dBRUc7QUFDSCxJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDckIsNEJBQVcsQ0FBQTtJQUNYLG9DQUFtQixDQUFBO0lBQ25CLGdDQUFlLENBQUE7SUFDZiw4QkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxhQUFhLDZCQUFiLGFBQWEsUUFLeEIiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRC4gVE8gVVBEQVRFIFRISVMgRklMRSBZT1UgTkVFRCBUTyBDSEFOR0UgVEhFXG4vLyBDT1JSRVNQT05ESU5HIEpTT04gU0NIRU1BIEZJTEUsIFRIRU4gUlVOIGRldmtpdC1hZG1pbiBidWlsZCAob3IgYmF6ZWwgYnVpbGQgLi4uKS5cblxuLyoqXG4gKiBBcHBsaWNhdGlvbiBidWlsZGVyIHRhcmdldCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hIHtcbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgQ29tbW9uSlMgcGFja2FnZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSB1c2VkIHdpdGhvdXQgYSBidWlsZCB0aW1lIHdhcm5pbmcuXG4gICAgICovXG4gICAgYWxsb3dlZENvbW1vbkpzRGVwZW5kZW5jaWVzPzogc3RyaW5nW107XG4gICAgLyoqXG4gICAgICogQnVpbGQgdXNpbmcgQWhlYWQgb2YgVGltZSBjb21waWxhdGlvbi5cbiAgICAgKi9cbiAgICBhb3Q/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyBhbiBhcHBsaWNhdGlvbiBzaGVsbCBkdXJpbmcgYnVpbGQgdGltZS5cbiAgICAgKi9cbiAgICBhcHBTaGVsbD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdGF0aWMgYXBwbGljYXRpb24gYXNzZXRzLlxuICAgICAqL1xuICAgIGFzc2V0cz86IEFzc2V0UGF0dGVybltdO1xuICAgIC8qKlxuICAgICAqIEJhc2UgdXJsIGZvciB0aGUgYXBwbGljYXRpb24gYmVpbmcgYnVpbHQuXG4gICAgICovXG4gICAgYmFzZUhyZWY/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgcGF0aCBmb3IgdGhlIGJyb3dzZXIgZW50cnkgcG9pbnQgdG8gdGhlIGFwcGxpY2F0aW9uLCByZWxhdGl2ZSB0byB0aGUgY3VycmVudFxuICAgICAqIHdvcmtzcGFjZS5cbiAgICAgKi9cbiAgICBicm93c2VyOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQnVkZ2V0IHRocmVzaG9sZHMgdG8gZW5zdXJlIHBhcnRzIG9mIHlvdXIgYXBwbGljYXRpb24gc3RheSB3aXRoaW4gYm91bmRhcmllcyB3aGljaCB5b3VcbiAgICAgKiBzZXQuXG4gICAgICovXG4gICAgYnVkZ2V0cz86IEJ1ZGdldFtdO1xuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgY3Jvc3NvcmlnaW4gYXR0cmlidXRlIHNldHRpbmcgb2YgZWxlbWVudHMgdGhhdCBwcm92aWRlIENPUlMgc3VwcG9ydC5cbiAgICAgKi9cbiAgICBjcm9zc09yaWdpbj86IENyb3NzT3JpZ2luO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSB0aGUgb3V0cHV0IHBhdGggYmVmb3JlIGJ1aWxkaW5nLlxuICAgICAqL1xuICAgIGRlbGV0ZU91dHB1dFBhdGg/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEV4Y2x1ZGUgdGhlIGxpc3RlZCBleHRlcm5hbCBkZXBlbmRlbmNpZXMgZnJvbSBiZWluZyBidW5kbGVkIGludG8gdGhlIGJ1bmRsZS4gSW5zdGVhZCwgdGhlXG4gICAgICogY3JlYXRlZCBidW5kbGUgcmVsaWVzIG9uIHRoZXNlIGRlcGVuZGVuY2llcyB0byBiZSBhdmFpbGFibGUgZHVyaW5nIHJ1bnRpbWUuXG4gICAgICovXG4gICAgZXh0ZXJuYWxEZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBFeHRyYWN0IGFsbCBsaWNlbnNlcyBpbiBhIHNlcGFyYXRlIGZpbGUuXG4gICAgICovXG4gICAgZXh0cmFjdExpY2Vuc2VzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBSZXBsYWNlIGNvbXBpbGF0aW9uIHNvdXJjZSBmaWxlcyB3aXRoIG90aGVyIGNvbXBpbGF0aW9uIHNvdXJjZSBmaWxlcyBpbiB0aGUgYnVpbGQuXG4gICAgICovXG4gICAgZmlsZVJlcGxhY2VtZW50cz86IEZpbGVSZXBsYWNlbWVudFtdO1xuICAgIC8qKlxuICAgICAqIEhvdyB0byBoYW5kbGUgZHVwbGljYXRlIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAgICAgKi9cbiAgICBpMThuRHVwbGljYXRlVHJhbnNsYXRpb24/OiBJMThOVHJhbnNsYXRpb247XG4gICAgLyoqXG4gICAgICogSG93IHRvIGhhbmRsZSBtaXNzaW5nIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAgICAgKi9cbiAgICBpMThuTWlzc2luZ1RyYW5zbGF0aW9uPzogSTE4TlRyYW5zbGF0aW9uO1xuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uJ3MgSFRNTCBpbmRleC5cbiAgICAgKi9cbiAgICBpbmRleDogSW5kZXhVbmlvbjtcbiAgICAvKipcbiAgICAgKiBUaGUgc3R5bGVzaGVldCBsYW5ndWFnZSB0byB1c2UgZm9yIHRoZSBhcHBsaWNhdGlvbidzIGlubGluZSBjb21wb25lbnQgc3R5bGVzLlxuICAgICAqL1xuICAgIGlubGluZVN0eWxlTGFuZ3VhZ2U/OiBJbmxpbmVTdHlsZUxhbmd1YWdlO1xuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0ZSB0aGUgYnVuZGxlcyBpbiBvbmUgb3IgbW9yZSBsb2NhbGVzLlxuICAgICAqL1xuICAgIGxvY2FsaXplPzogTG9jYWxpemU7XG4gICAgLyoqXG4gICAgICogVXNlIGZpbGUgbmFtZSBmb3IgbGF6eSBsb2FkZWQgY2h1bmtzLlxuICAgICAqL1xuICAgIG5hbWVkQ2h1bmtzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzIG9wdGltaXphdGlvbiBvZiB0aGUgYnVpbGQgb3V0cHV0LiBJbmNsdWRpbmcgbWluaWZpY2F0aW9uIG9mIHNjcmlwdHMgYW5kIHN0eWxlcyxcbiAgICAgKiB0cmVlLXNoYWtpbmcsIGRlYWQtY29kZSBlbGltaW5hdGlvbiwgaW5saW5pbmcgb2YgY3JpdGljYWwgQ1NTIGFuZCBmb250cyBpbmxpbmluZy4gRm9yXG4gICAgICogbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4gICAgICogaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3dvcmtzcGFjZS1jb25maWcjb3B0aW1pemF0aW9uLWNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgb3B0aW1pemF0aW9uPzogT3B0aW1pemF0aW9uVW5pb247XG4gICAgLyoqXG4gICAgICogRGVmaW5lIHRoZSBvdXRwdXQgZmlsZW5hbWUgY2FjaGUtYnVzdGluZyBoYXNoaW5nIG1vZGUuXG4gICAgICovXG4gICAgb3V0cHV0SGFzaGluZz86IE91dHB1dEhhc2hpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgcGF0aCBmb3IgdGhlIG5ldyBvdXRwdXQgZGlyZWN0b3J5LCByZWxhdGl2ZSB0byB0aGUgY3VycmVudCB3b3Jrc3BhY2UuXG4gICAgICogQnkgZGVmYXVsdCwgd3JpdGVzIG91dHB1dCB0byBhIGZvbGRlciBuYW1lZCBkaXN0LyBpbiB0aGUgY3VycmVudCBwcm9qZWN0LlxuICAgICAqL1xuICAgIG91dHB1dFBhdGg6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBFbmFibGUgYW5kIGRlZmluZSB0aGUgZmlsZSB3YXRjaGluZyBwb2xsIHRpbWUgcGVyaW9kIGluIG1pbGxpc2Vjb25kcy5cbiAgICAgKi9cbiAgICBwb2xsPzogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBwb2x5ZmlsbHMgdG8gaW5jbHVkZSBpbiB0aGUgYnVpbGQuIENhbiBiZSBhIGZ1bGwgcGF0aCBmb3IgYSBmaWxlLCByZWxhdGl2ZSB0b1xuICAgICAqIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb2R1bGUgc3BlY2lmaWVyLiBFeGFtcGxlOiAnem9uZS5qcycuXG4gICAgICovXG4gICAgcG9seWZpbGxzPzogc3RyaW5nW107XG4gICAgLyoqXG4gICAgICogUHJlcmVuZGVyIChTU0cpIHBhZ2VzIG9mIHlvdXIgYXBwbGljYXRpb24gZHVyaW5nIGJ1aWxkIHRpbWUuXG4gICAgICovXG4gICAgcHJlcmVuZGVyPzogUHJlcmVuZGVyVW5pb247XG4gICAgLyoqXG4gICAgICogRG8gbm90IHVzZSB0aGUgcmVhbCBwYXRoIHdoZW4gcmVzb2x2aW5nIG1vZHVsZXMuIElmIHVuc2V0IHRoZW4gd2lsbCBkZWZhdWx0IHRvIGB0cnVlYCBpZlxuICAgICAqIE5vZGVKUyBvcHRpb24gLS1wcmVzZXJ2ZS1zeW1saW5rcyBpcyBzZXQuXG4gICAgICovXG4gICAgcHJlc2VydmVTeW1saW5rcz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogTG9nIHByb2dyZXNzIHRvIHRoZSBjb25zb2xlIHdoaWxlIGJ1aWxkaW5nLlxuICAgICAqL1xuICAgIHByb2dyZXNzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBHbG9iYWwgc2NyaXB0cyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuXG4gICAgICovXG4gICAgc2NyaXB0cz86IFNjcmlwdEVsZW1lbnRbXTtcbiAgICAvKipcbiAgICAgKiBUaGUgZnVsbCBwYXRoIGZvciB0aGUgc2VydmVyIGVudHJ5IHBvaW50IHRvIHRoZSBhcHBsaWNhdGlvbiwgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnRcbiAgICAgKiB3b3Jrc3BhY2UuXG4gICAgICovXG4gICAgc2VydmVyPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyBhIHNlcnZpY2Ugd29ya2VyIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc2VydmljZVdvcmtlcj86IFNlcnZpY2VXb3JrZXI7XG4gICAgLyoqXG4gICAgICogT3V0cHV0IHNvdXJjZSBtYXBzIGZvciBzY3JpcHRzIGFuZCBzdHlsZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAgICAgKiBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvd29ya3NwYWNlLWNvbmZpZyNzb3VyY2UtbWFwLWNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc291cmNlTWFwPzogU291cmNlTWFwVW5pb247XG4gICAgLyoqXG4gICAgICogU2VydmVyIHNpZGUgcmVuZGVyIChTU1IpIHBhZ2VzIG9mIHlvdXIgYXBwbGljYXRpb24gZHVyaW5nIHJ1bnRpbWUuXG4gICAgICovXG4gICAgc3NyPzogU2VydmljZVdvcmtlcjtcbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSAnc3RhdHMuanNvbicgZmlsZSB3aGljaCBjYW4gYmUgYW5hbHl6ZWQgd2l0aFxuICAgICAqIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYW5hbHl6ZS8uXG4gICAgICovXG4gICAgc3RhdHNKc29uPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25zIHRvIHBhc3MgdG8gc3R5bGUgcHJlcHJvY2Vzc29ycy5cbiAgICAgKi9cbiAgICBzdHlsZVByZXByb2Nlc3Nvck9wdGlvbnM/OiBTdHlsZVByZXByb2Nlc3Nvck9wdGlvbnM7XG4gICAgLyoqXG4gICAgICogR2xvYmFsIHN0eWxlcyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuXG4gICAgICovXG4gICAgc3R5bGVzPzogU3R5bGVFbGVtZW50W107XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyB0aGUgdXNlIG9mIHN1YnJlc291cmNlIGludGVncml0eSB2YWxpZGF0aW9uLlxuICAgICAqL1xuICAgIHN1YnJlc291cmNlSW50ZWdyaXR5PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZnVsbCBwYXRoIGZvciB0aGUgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUsIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtzcGFjZS5cbiAgICAgKi9cbiAgICB0c0NvbmZpZzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEFkZHMgbW9yZSBkZXRhaWxzIHRvIG91dHB1dCBsb2dnaW5nLlxuICAgICAqL1xuICAgIHZlcmJvc2U/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFJ1biBidWlsZCB3aGVuIGZpbGVzIGNoYW5nZS5cbiAgICAgKi9cbiAgICB3YXRjaD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZvciBXZWIgV29ya2VyIG1vZHVsZXMuXG4gICAgICovXG4gICAgd2ViV29ya2VyVHNDb25maWc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEFzc2V0UGF0dGVybiA9IEFzc2V0UGF0dGVybkNsYXNzIHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0UGF0dGVybkNsYXNzIHtcbiAgICAvKipcbiAgICAgKiBBbGxvdyBnbG9iIHBhdHRlcm5zIHRvIGZvbGxvdyBzeW1saW5rIGRpcmVjdG9yaWVzLiBUaGlzIGFsbG93cyBzdWJkaXJlY3RvcmllcyBvZiB0aGVcbiAgICAgKiBzeW1saW5rIHRvIGJlIHNlYXJjaGVkLlxuICAgICAqL1xuICAgIGZvbGxvd1N5bWxpbmtzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgcGF0dGVybiB0byBtYXRjaC5cbiAgICAgKi9cbiAgICBnbG9iOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQW4gYXJyYXkgb2YgZ2xvYnMgdG8gaWdub3JlLlxuICAgICAqL1xuICAgIGlnbm9yZT86IHN0cmluZ1tdO1xuICAgIC8qKlxuICAgICAqIFRoZSBpbnB1dCBkaXJlY3RvcnkgcGF0aCBpbiB3aGljaCB0byBhcHBseSAnZ2xvYicuIERlZmF1bHRzIHRvIHRoZSBwcm9qZWN0IHJvb3QuXG4gICAgICovXG4gICAgaW5wdXQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBBYnNvbHV0ZSBwYXRoIHdpdGhpbiB0aGUgb3V0cHV0LlxuICAgICAqL1xuICAgIG91dHB1dDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1ZGdldCB7XG4gICAgLyoqXG4gICAgICogVGhlIGJhc2VsaW5lIHNpemUgZm9yIGNvbXBhcmlzb24uXG4gICAgICovXG4gICAgYmFzZWxpbmU/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIHRocmVzaG9sZCBmb3IgZXJyb3IgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lIChtaW4gJiBtYXgpLlxuICAgICAqL1xuICAgIGVycm9yPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIHRocmVzaG9sZCBmb3IgZXJyb3IgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lLlxuICAgICAqL1xuICAgIG1heGltdW1FcnJvcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgbWF4aW11bSB0aHJlc2hvbGQgZm9yIHdhcm5pbmcgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lLlxuICAgICAqL1xuICAgIG1heGltdW1XYXJuaW5nPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBtaW5pbXVtIHRocmVzaG9sZCBmb3IgZXJyb3IgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lLlxuICAgICAqL1xuICAgIG1pbmltdW1FcnJvcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgbWluaW11bSB0aHJlc2hvbGQgZm9yIHdhcm5pbmcgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lLlxuICAgICAqL1xuICAgIG1pbmltdW1XYXJuaW5nPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBidW5kbGUuXG4gICAgICovXG4gICAgbmFtZT86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdHlwZSBvZiBidWRnZXQuXG4gICAgICovXG4gICAgdHlwZTogVHlwZTtcbiAgICAvKipcbiAgICAgKiBUaGUgdGhyZXNob2xkIGZvciB3YXJuaW5nIHJlbGF0aXZlIHRvIHRoZSBiYXNlbGluZSAobWluICYgbWF4KS5cbiAgICAgKi9cbiAgICB3YXJuaW5nPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSB0eXBlIG9mIGJ1ZGdldC5cbiAqL1xuZXhwb3J0IGVudW0gVHlwZSB7XG4gICAgQWxsID0gXCJhbGxcIixcbiAgICBBbGxTY3JpcHQgPSBcImFsbFNjcmlwdFwiLFxuICAgIEFueSA9IFwiYW55XCIsXG4gICAgQW55Q29tcG9uZW50U3R5bGUgPSBcImFueUNvbXBvbmVudFN0eWxlXCIsXG4gICAgQW55U2NyaXB0ID0gXCJhbnlTY3JpcHRcIixcbiAgICBCdW5kbGUgPSBcImJ1bmRsZVwiLFxuICAgIEluaXRpYWwgPSBcImluaXRpYWxcIixcbn1cblxuLyoqXG4gKiBEZWZpbmUgdGhlIGNyb3Nzb3JpZ2luIGF0dHJpYnV0ZSBzZXR0aW5nIG9mIGVsZW1lbnRzIHRoYXQgcHJvdmlkZSBDT1JTIHN1cHBvcnQuXG4gKi9cbmV4cG9ydCBlbnVtIENyb3NzT3JpZ2luIHtcbiAgICBBbm9ueW1vdXMgPSBcImFub255bW91c1wiLFxuICAgIE5vbmUgPSBcIm5vbmVcIixcbiAgICBVc2VDcmVkZW50aWFscyA9IFwidXNlLWNyZWRlbnRpYWxzXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVJlcGxhY2VtZW50IHtcbiAgICByZXBsYWNlOiBzdHJpbmc7XG4gICAgd2l0aDogICAgc3RyaW5nO1xufVxuXG4vKipcbiAqIEhvdyB0byBoYW5kbGUgZHVwbGljYXRlIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAqXG4gKiBIb3cgdG8gaGFuZGxlIG1pc3NpbmcgdHJhbnNsYXRpb25zIGZvciBpMThuLlxuICovXG5leHBvcnQgZW51bSBJMThOVHJhbnNsYXRpb24ge1xuICAgIEVycm9yID0gXCJlcnJvclwiLFxuICAgIElnbm9yZSA9IFwiaWdub3JlXCIsXG4gICAgV2FybmluZyA9IFwid2FybmluZ1wiLFxufVxuXG4vKipcbiAqIENvbmZpZ3VyZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uJ3MgSFRNTCBpbmRleC5cbiAqL1xuZXhwb3J0IHR5cGUgSW5kZXhVbmlvbiA9IGJvb2xlYW4gfCBJbmRleE9iamVjdCB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBJbmRleE9iamVjdCB7XG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggb2YgYSBmaWxlIHRvIHVzZSBmb3IgdGhlIGFwcGxpY2F0aW9uJ3MgZ2VuZXJhdGVkIEhUTUwgaW5kZXguXG4gICAgICovXG4gICAgaW5wdXQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgb3V0cHV0IHBhdGggb2YgdGhlIGFwcGxpY2F0aW9uJ3MgZ2VuZXJhdGVkIEhUTUwgaW5kZXggZmlsZS4gVGhlIGZ1bGwgcHJvdmlkZWQgcGF0aFxuICAgICAqIHdpbGwgYmUgdXNlZCBhbmQgd2lsbCBiZSBjb25zaWRlcmVkIHJlbGF0aXZlIHRvIHRoZSBhcHBsaWNhdGlvbidzIGNvbmZpZ3VyZWQgb3V0cHV0IHBhdGguXG4gICAgICovXG4gICAgb3V0cHV0Pzogc3RyaW5nO1xuICAgIFtwcm9wZXJ0eTogc3RyaW5nXTogYW55O1xufVxuXG4vKipcbiAqIFRoZSBzdHlsZXNoZWV0IGxhbmd1YWdlIHRvIHVzZSBmb3IgdGhlIGFwcGxpY2F0aW9uJ3MgaW5saW5lIGNvbXBvbmVudCBzdHlsZXMuXG4gKi9cbmV4cG9ydCBlbnVtIElubGluZVN0eWxlTGFuZ3VhZ2Uge1xuICAgIENzcyA9IFwiY3NzXCIsXG4gICAgTGVzcyA9IFwibGVzc1wiLFxuICAgIFNhc3MgPSBcInNhc3NcIixcbiAgICBTY3NzID0gXCJzY3NzXCIsXG59XG5cbi8qKlxuICogVHJhbnNsYXRlIHRoZSBidW5kbGVzIGluIG9uZSBvciBtb3JlIGxvY2FsZXMuXG4gKi9cbmV4cG9ydCB0eXBlIExvY2FsaXplID0gc3RyaW5nW10gfCBib29sZWFuO1xuXG4vKipcbiAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIG9mIHRoZSBidWlsZCBvdXRwdXQuIEluY2x1ZGluZyBtaW5pZmljYXRpb24gb2Ygc2NyaXB0cyBhbmQgc3R5bGVzLFxuICogdHJlZS1zaGFraW5nLCBkZWFkLWNvZGUgZWxpbWluYXRpb24sIGlubGluaW5nIG9mIGNyaXRpY2FsIENTUyBhbmQgZm9udHMgaW5saW5pbmcuIEZvclxuICogbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4gKiBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvd29ya3NwYWNlLWNvbmZpZyNvcHRpbWl6YXRpb24tY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgT3B0aW1pemF0aW9uVW5pb24gPSBib29sZWFuIHwgT3B0aW1pemF0aW9uQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW1pemF0aW9uQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIGZvciBmb250cy4gVGhpcyBvcHRpb24gcmVxdWlyZXMgaW50ZXJuZXQgYWNjZXNzLiBgSFRUUFNfUFJPWFlgXG4gICAgICogZW52aXJvbm1lbnQgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHByb3h5IHNlcnZlci5cbiAgICAgKi9cbiAgICBmb250cz86IEZvbnRzVW5pb247XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBvcHRpbWl6YXRpb24gb2YgdGhlIHNjcmlwdHMgb3V0cHV0LlxuICAgICAqL1xuICAgIHNjcmlwdHM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIG9mIHRoZSBzdHlsZXMgb3V0cHV0LlxuICAgICAqL1xuICAgIHN0eWxlcz86IFN0eWxlc1VuaW9uO1xufVxuXG4vKipcbiAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIGZvciBmb250cy4gVGhpcyBvcHRpb24gcmVxdWlyZXMgaW50ZXJuZXQgYWNjZXNzLiBgSFRUUFNfUFJPWFlgXG4gKiBlbnZpcm9ubWVudCB2YXJpYWJsZSBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJveHkgc2VydmVyLlxuICovXG5leHBvcnQgdHlwZSBGb250c1VuaW9uID0gYm9vbGVhbiB8IEZvbnRzQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9udHNDbGFzcyB7XG4gICAgLyoqXG4gICAgICogUmVkdWNlIHJlbmRlciBibG9ja2luZyByZXF1ZXN0cyBieSBpbmxpbmluZyBleHRlcm5hbCBHb29nbGUgRm9udHMgYW5kIEFkb2JlIEZvbnRzIENTU1xuICAgICAqIGRlZmluaXRpb25zIGluIHRoZSBhcHBsaWNhdGlvbidzIEhUTUwgaW5kZXggZmlsZS4gVGhpcyBvcHRpb24gcmVxdWlyZXMgaW50ZXJuZXQgYWNjZXNzLlxuICAgICAqIGBIVFRQU19QUk9YWWAgZW52aXJvbm1lbnQgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHByb3h5IHNlcnZlci5cbiAgICAgKi9cbiAgICBpbmxpbmU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIG9mIHRoZSBzdHlsZXMgb3V0cHV0LlxuICovXG5leHBvcnQgdHlwZSBTdHlsZXNVbmlvbiA9IGJvb2xlYW4gfCBTdHlsZXNDbGFzcztcblxuZXhwb3J0IGludGVyZmFjZSBTdHlsZXNDbGFzcyB7XG4gICAgLyoqXG4gICAgICogRXh0cmFjdCBhbmQgaW5saW5lIGNyaXRpY2FsIENTUyBkZWZpbml0aW9ucyB0byBpbXByb3ZlIGZpcnN0IHBhaW50IHRpbWUuXG4gICAgICovXG4gICAgaW5saW5lQ3JpdGljYWw/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE1pbmlmeSBDU1MgZGVmaW5pdGlvbnMgYnkgcmVtb3ZpbmcgZXh0cmFuZW91cyB3aGl0ZXNwYWNlIGFuZCBjb21tZW50cywgbWVyZ2luZ1xuICAgICAqIGlkZW50aWZpZXJzIGFuZCBtaW5pbWl6aW5nIHZhbHVlcy5cbiAgICAgKi9cbiAgICBtaW5pZnk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIERlZmluZSB0aGUgb3V0cHV0IGZpbGVuYW1lIGNhY2hlLWJ1c3RpbmcgaGFzaGluZyBtb2RlLlxuICovXG5leHBvcnQgZW51bSBPdXRwdXRIYXNoaW5nIHtcbiAgICBBbGwgPSBcImFsbFwiLFxuICAgIEJ1bmRsZXMgPSBcImJ1bmRsZXNcIixcbiAgICBNZWRpYSA9IFwibWVkaWFcIixcbiAgICBOb25lID0gXCJub25lXCIsXG59XG5cbi8qKlxuICogUHJlcmVuZGVyIChTU0cpIHBhZ2VzIG9mIHlvdXIgYXBwbGljYXRpb24gZHVyaW5nIGJ1aWxkIHRpbWUuXG4gKi9cbmV4cG9ydCB0eXBlIFByZXJlbmRlclVuaW9uID0gYm9vbGVhbiB8IFByZXJlbmRlckNsYXNzO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByZXJlbmRlckNsYXNzIHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBidWlsZGVyIHNob3VsZCBkaXNjb3ZlciByb3V0ZXJzIHVzaW5nIHRoZSBBbmd1bGFyIFJvdXRlci5cbiAgICAgKi9cbiAgICBkaXNjb3ZlclJvdXRlcz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggdG8gYSBmaWxlIGNvbnRhaW5pbmcgcm91dGVzIHNlcGFyYXRlZCBieSBuZXdsaW5lcy5cbiAgICAgKi9cbiAgICByb3V0ZXNGaWxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBTY3JpcHRFbGVtZW50ID0gU2NyaXB0Q2xhc3MgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NyaXB0Q2xhc3Mge1xuICAgIC8qKlxuICAgICAqIFRoZSBidW5kbGUgbmFtZSBmb3IgdGhpcyBleHRyYSBlbnRyeSBwb2ludC5cbiAgICAgKi9cbiAgICBidW5kbGVOYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIElmIHRoZSBidW5kbGUgd2lsbCBiZSByZWZlcmVuY2VkIGluIHRoZSBIVE1MIGZpbGUuXG4gICAgICovXG4gICAgaW5qZWN0PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZmlsZSB0byBpbmNsdWRlLlxuICAgICAqL1xuICAgIGlucHV0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgc2VydmljZSB3b3JrZXIgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBTZXJ2ZXIgc2lkZSByZW5kZXIgKFNTUikgcGFnZXMgb2YgeW91ciBhcHBsaWNhdGlvbiBkdXJpbmcgcnVudGltZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2VydmljZVdvcmtlciA9IGJvb2xlYW4gfCBzdHJpbmc7XG5cbi8qKlxuICogT3V0cHV0IHNvdXJjZSBtYXBzIGZvciBzY3JpcHRzIGFuZCBzdHlsZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAqIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS93b3Jrc3BhY2UtY29uZmlnI3NvdXJjZS1tYXAtY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlTWFwVW5pb24gPSBib29sZWFuIHwgU291cmNlTWFwQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTWFwQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIE91dHB1dCBzb3VyY2UgbWFwcyB1c2VkIGZvciBlcnJvciByZXBvcnRpbmcgdG9vbHMuXG4gICAgICovXG4gICAgaGlkZGVuPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPdXRwdXQgc291cmNlIG1hcHMgZm9yIGFsbCBzY3JpcHRzLlxuICAgICAqL1xuICAgIHNjcmlwdHM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE91dHB1dCBzb3VyY2UgbWFwcyBmb3IgYWxsIHN0eWxlcy5cbiAgICAgKi9cbiAgICBzdHlsZXM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFJlc29sdmUgdmVuZG9yIHBhY2thZ2VzIHNvdXJjZSBtYXBzLlxuICAgICAqL1xuICAgIHZlbmRvcj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyB0byBwYXNzIHRvIHN0eWxlIHByZXByb2Nlc3NvcnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3R5bGVQcmVwcm9jZXNzb3JPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBQYXRocyB0byBpbmNsdWRlLiBQYXRocyB3aWxsIGJlIHJlc29sdmVkIHRvIHdvcmtzcGFjZSByb290LlxuICAgICAqL1xuICAgIGluY2x1ZGVQYXRocz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgdHlwZSBTdHlsZUVsZW1lbnQgPSBTdHlsZUNsYXNzIHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIFRoZSBidW5kbGUgbmFtZSBmb3IgdGhpcyBleHRyYSBlbnRyeSBwb2ludC5cbiAgICAgKi9cbiAgICBidW5kbGVOYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIElmIHRoZSBidW5kbGUgd2lsbCBiZSByZWZlcmVuY2VkIGluIHRoZSBIVE1MIGZpbGUuXG4gICAgICovXG4gICAgaW5qZWN0PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZmlsZSB0byBpbmNsdWRlLlxuICAgICAqL1xuICAgIGlucHV0OiBzdHJpbmc7XG59XG4iXX0=
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhcl9kZXZraXQvYnVpbGRfYW5ndWxhci9zcmMvYnVpbGRlcnMvYXBwbGljYXRpb24vc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxtRkFBbUY7QUFDbkYsb0ZBQW9GOzs7QUFnUHBGOztHQUVHO0FBQ0gsSUFBWSxJQVFYO0FBUkQsV0FBWSxJQUFJO0lBQ1osbUJBQVcsQ0FBQTtJQUNYLCtCQUF1QixDQUFBO0lBQ3ZCLG1CQUFXLENBQUE7SUFDWCwrQ0FBdUMsQ0FBQTtJQUN2QywrQkFBdUIsQ0FBQTtJQUN2Qix5QkFBaUIsQ0FBQTtJQUNqQiwyQkFBbUIsQ0FBQTtBQUN2QixDQUFDLEVBUlcsSUFBSSxvQkFBSixJQUFJLFFBUWY7QUFFRDs7R0FFRztBQUNILElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNuQixzQ0FBdUIsQ0FBQTtJQUN2Qiw0QkFBYSxDQUFBO0lBQ2IsaURBQWtDLENBQUE7QUFDdEMsQ0FBQyxFQUpXLFdBQVcsMkJBQVgsV0FBVyxRQUl0QjtBQU9EOzs7O0dBSUc7QUFDSCxJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsa0NBQWUsQ0FBQTtJQUNmLG9DQUFpQixDQUFBO0lBQ2pCLHNDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxlQUFlLCtCQUFmLGVBQWUsUUFJMUI7QUFvQkQ7O0dBRUc7QUFDSCxJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDM0Isa0NBQVcsQ0FBQTtJQUNYLG9DQUFhLENBQUE7SUFDYixvQ0FBYSxDQUFBO0lBQ2Isb0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBTFcsbUJBQW1CLG1DQUFuQixtQkFBbUIsUUFLOUI7QUErREQ7O0dBRUc7QUFDSCxJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDckIsNEJBQVcsQ0FBQTtJQUNYLG9DQUFtQixDQUFBO0lBQ25CLGdDQUFlLENBQUE7SUFDZiw4QkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxhQUFhLDZCQUFiLGFBQWEsUUFLeEIiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8vIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRC4gVE8gVVBEQVRFIFRISVMgRklMRSBZT1UgTkVFRCBUTyBDSEFOR0UgVEhFXG4vLyBDT1JSRVNQT05ESU5HIEpTT04gU0NIRU1BIEZJTEUsIFRIRU4gUlVOIGRldmtpdC1hZG1pbiBidWlsZCAob3IgYmF6ZWwgYnVpbGQgLi4uKS5cblxuLyoqXG4gKiBBcHBsaWNhdGlvbiBidWlsZGVyIHRhcmdldCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hIHtcbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgQ29tbW9uSlMgcGFja2FnZXMgdGhhdCBhcmUgYWxsb3dlZCB0byBiZSB1c2VkIHdpdGhvdXQgYSBidWlsZCB0aW1lIHdhcm5pbmcuXG4gICAgICovXG4gICAgYWxsb3dlZENvbW1vbkpzRGVwZW5kZW5jaWVzPzogc3RyaW5nW107XG4gICAgLyoqXG4gICAgICogQnVpbGQgdXNpbmcgQWhlYWQgb2YgVGltZSBjb21waWxhdGlvbi5cbiAgICAgKi9cbiAgICBhb3Q/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEdlbmVyYXRlcyBhbiBhcHBsaWNhdGlvbiBzaGVsbCBkdXJpbmcgYnVpbGQgdGltZS5cbiAgICAgKi9cbiAgICBhcHBTaGVsbD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdGF0aWMgYXBwbGljYXRpb24gYXNzZXRzLlxuICAgICAqL1xuICAgIGFzc2V0cz86IEFzc2V0UGF0dGVybltdO1xuICAgIC8qKlxuICAgICAqIEJhc2UgdXJsIGZvciB0aGUgYXBwbGljYXRpb24gYmVpbmcgYnVpbHQuXG4gICAgICovXG4gICAgYmFzZUhyZWY/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgcGF0aCBmb3IgdGhlIGJyb3dzZXIgZW50cnkgcG9pbnQgdG8gdGhlIGFwcGxpY2F0aW9uLCByZWxhdGl2ZSB0byB0aGUgY3VycmVudFxuICAgICAqIHdvcmtzcGFjZS5cbiAgICAgKi9cbiAgICBicm93c2VyOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQnVkZ2V0IHRocmVzaG9sZHMgdG8gZW5zdXJlIHBhcnRzIG9mIHlvdXIgYXBwbGljYXRpb24gc3RheSB3aXRoaW4gYm91bmRhcmllcyB3aGljaCB5b3VcbiAgICAgKiBzZXQuXG4gICAgICovXG4gICAgYnVkZ2V0cz86IEJ1ZGdldFtdO1xuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgY3Jvc3NvcmlnaW4gYXR0cmlidXRlIHNldHRpbmcgb2YgZWxlbWVudHMgdGhhdCBwcm92aWRlIENPUlMgc3VwcG9ydC5cbiAgICAgKi9cbiAgICBjcm9zc09yaWdpbj86IENyb3NzT3JpZ2luO1xuICAgIC8qKlxuICAgICAqIERlbGV0ZSB0aGUgb3V0cHV0IHBhdGggYmVmb3JlIGJ1aWxkaW5nLlxuICAgICAqL1xuICAgIGRlbGV0ZU91dHB1dFBhdGg/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEV4Y2x1ZGUgdGhlIGxpc3RlZCBleHRlcm5hbCBkZXBlbmRlbmNpZXMgZnJvbSBiZWluZyBidW5kbGVkIGludG8gdGhlIGJ1bmRsZS4gSW5zdGVhZCwgdGhlXG4gICAgICogY3JlYXRlZCBidW5kbGUgcmVsaWVzIG9uIHRoZXNlIGRlcGVuZGVuY2llcyB0byBiZSBhdmFpbGFibGUgZHVyaW5nIHJ1bnRpbWUuXG4gICAgICovXG4gICAgZXh0ZXJuYWxEZXBlbmRlbmNpZXM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBFeHRyYWN0IGFsbCBsaWNlbnNlcyBpbiBhIHNlcGFyYXRlIGZpbGUuXG4gICAgICovXG4gICAgZXh0cmFjdExpY2Vuc2VzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBSZXBsYWNlIGNvbXBpbGF0aW9uIHNvdXJjZSBmaWxlcyB3aXRoIG90aGVyIGNvbXBpbGF0aW9uIHNvdXJjZSBmaWxlcyBpbiB0aGUgYnVpbGQuXG4gICAgICovXG4gICAgZmlsZVJlcGxhY2VtZW50cz86IEZpbGVSZXBsYWNlbWVudFtdO1xuICAgIC8qKlxuICAgICAqIEhvdyB0byBoYW5kbGUgZHVwbGljYXRlIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAgICAgKi9cbiAgICBpMThuRHVwbGljYXRlVHJhbnNsYXRpb24/OiBJMThOVHJhbnNsYXRpb247XG4gICAgLyoqXG4gICAgICogSG93IHRvIGhhbmRsZSBtaXNzaW5nIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAgICAgKi9cbiAgICBpMThuTWlzc2luZ1RyYW5zbGF0aW9uPzogSTE4TlRyYW5zbGF0aW9uO1xuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uJ3MgSFRNTCBpbmRleC5cbiAgICAgKi9cbiAgICBpbmRleDogSW5kZXhVbmlvbjtcbiAgICAvKipcbiAgICAgKiBUaGUgc3R5bGVzaGVldCBsYW5ndWFnZSB0byB1c2UgZm9yIHRoZSBhcHBsaWNhdGlvbidzIGlubGluZSBjb21wb25lbnQgc3R5bGVzLlxuICAgICAqL1xuICAgIGlubGluZVN0eWxlTGFuZ3VhZ2U/OiBJbmxpbmVTdHlsZUxhbmd1YWdlO1xuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0ZSB0aGUgYnVuZGxlcyBpbiBvbmUgb3IgbW9yZSBsb2NhbGVzLlxuICAgICAqL1xuICAgIGxvY2FsaXplPzogTG9jYWxpemU7XG4gICAgLyoqXG4gICAgICogVXNlIGZpbGUgbmFtZSBmb3IgbGF6eSBsb2FkZWQgY2h1bmtzLlxuICAgICAqL1xuICAgIG5hbWVkQ2h1bmtzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBFbmFibGVzIG9wdGltaXphdGlvbiBvZiB0aGUgYnVpbGQgb3V0cHV0LiBJbmNsdWRpbmcgbWluaWZpY2F0aW9uIG9mIHNjcmlwdHMgYW5kIHN0eWxlcyxcbiAgICAgKiB0cmVlLXNoYWtpbmcsIGRlYWQtY29kZSBlbGltaW5hdGlvbiwgaW5saW5pbmcgb2YgY3JpdGljYWwgQ1NTIGFuZCBmb250cyBpbmxpbmluZy4gRm9yXG4gICAgICogbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4gICAgICogaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL3dvcmtzcGFjZS1jb25maWcjb3B0aW1pemF0aW9uLWNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgb3B0aW1pemF0aW9uPzogT3B0aW1pemF0aW9uVW5pb247XG4gICAgLyoqXG4gICAgICogRGVmaW5lIHRoZSBvdXRwdXQgZmlsZW5hbWUgY2FjaGUtYnVzdGluZyBoYXNoaW5nIG1vZGUuXG4gICAgICovXG4gICAgb3V0cHV0SGFzaGluZz86IE91dHB1dEhhc2hpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgcGF0aCBmb3IgdGhlIG5ldyBvdXRwdXQgZGlyZWN0b3J5LCByZWxhdGl2ZSB0byB0aGUgY3VycmVudCB3b3Jrc3BhY2UuXG4gICAgICovXG4gICAgb3V0cHV0UGF0aDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEVuYWJsZSBhbmQgZGVmaW5lIHRoZSBmaWxlIHdhdGNoaW5nIHBvbGwgdGltZSBwZXJpb2QgaW4gbWlsbGlzZWNvbmRzLlxuICAgICAqL1xuICAgIHBvbGw/OiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogQSBsaXN0IG9mIHBvbHlmaWxscyB0byBpbmNsdWRlIGluIHRoZSBidWlsZC4gQ2FuIGJlIGEgZnVsbCBwYXRoIGZvciBhIGZpbGUsIHJlbGF0aXZlIHRvXG4gICAgICogdGhlIGN1cnJlbnQgd29ya3NwYWNlIG9yIG1vZHVsZSBzcGVjaWZpZXIuIEV4YW1wbGU6ICd6b25lLmpzJy5cbiAgICAgKi9cbiAgICBwb2x5ZmlsbHM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBQcmVyZW5kZXIgKFNTRykgcGFnZXMgb2YgeW91ciBhcHBsaWNhdGlvbiBkdXJpbmcgYnVpbGQgdGltZS5cbiAgICAgKi9cbiAgICBwcmVyZW5kZXI/OiBQcmVyZW5kZXJVbmlvbjtcbiAgICAvKipcbiAgICAgKiBEbyBub3QgdXNlIHRoZSByZWFsIHBhdGggd2hlbiByZXNvbHZpbmcgbW9kdWxlcy4gSWYgdW5zZXQgdGhlbiB3aWxsIGRlZmF1bHQgdG8gYHRydWVgIGlmXG4gICAgICogTm9kZUpTIG9wdGlvbiAtLXByZXNlcnZlLXN5bWxpbmtzIGlzIHNldC5cbiAgICAgKi9cbiAgICBwcmVzZXJ2ZVN5bWxpbmtzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBMb2cgcHJvZ3Jlc3MgdG8gdGhlIGNvbnNvbGUgd2hpbGUgYnVpbGRpbmcuXG4gICAgICovXG4gICAgcHJvZ3Jlc3M/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEdsb2JhbCBzY3JpcHRzIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBidWlsZC5cbiAgICAgKi9cbiAgICBzY3JpcHRzPzogU2NyaXB0RWxlbWVudFtdO1xuICAgIC8qKlxuICAgICAqIFRoZSBmdWxsIHBhdGggZm9yIHRoZSBzZXJ2ZXIgZW50cnkgcG9pbnQgdG8gdGhlIGFwcGxpY2F0aW9uLCByZWxhdGl2ZSB0byB0aGUgY3VycmVudFxuICAgICAqIHdvcmtzcGFjZS5cbiAgICAgKi9cbiAgICBzZXJ2ZXI/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGEgc2VydmljZSB3b3JrZXIgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBzZXJ2aWNlV29ya2VyPzogU2VydmljZVdvcmtlcjtcbiAgICAvKipcbiAgICAgKiBPdXRwdXQgc291cmNlIG1hcHMgZm9yIHNjcmlwdHMgYW5kIHN0eWxlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZVxuICAgICAqIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS93b3Jrc3BhY2UtY29uZmlnI3NvdXJjZS1tYXAtY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBzb3VyY2VNYXA/OiBTb3VyY2VNYXBVbmlvbjtcbiAgICAvKipcbiAgICAgKiBTZXJ2ZXIgc2lkZSByZW5kZXIgKFNTUikgcGFnZXMgb2YgeW91ciBhcHBsaWNhdGlvbiBkdXJpbmcgcnVudGltZS5cbiAgICAgKi9cbiAgICBzc3I/OiBTc3JVbmlvbjtcbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSAnc3RhdHMuanNvbicgZmlsZSB3aGljaCBjYW4gYmUgYW5hbHl6ZWQgd2l0aFxuICAgICAqIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYW5hbHl6ZS8uXG4gICAgICovXG4gICAgc3RhdHNKc29uPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25zIHRvIHBhc3MgdG8gc3R5bGUgcHJlcHJvY2Vzc29ycy5cbiAgICAgKi9cbiAgICBzdHlsZVByZXByb2Nlc3Nvck9wdGlvbnM/OiBTdHlsZVByZXByb2Nlc3Nvck9wdGlvbnM7XG4gICAgLyoqXG4gICAgICogR2xvYmFsIHN0eWxlcyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuXG4gICAgICovXG4gICAgc3R5bGVzPzogU3R5bGVFbGVtZW50W107XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyB0aGUgdXNlIG9mIHN1YnJlc291cmNlIGludGVncml0eSB2YWxpZGF0aW9uLlxuICAgICAqL1xuICAgIHN1YnJlc291cmNlSW50ZWdyaXR5PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZnVsbCBwYXRoIGZvciB0aGUgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUsIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHdvcmtzcGFjZS5cbiAgICAgKi9cbiAgICB0c0NvbmZpZzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEFkZHMgbW9yZSBkZXRhaWxzIHRvIG91dHB1dCBsb2dnaW5nLlxuICAgICAqL1xuICAgIHZlcmJvc2U/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFJ1biBidWlsZCB3aGVuIGZpbGVzIGNoYW5nZS5cbiAgICAgKi9cbiAgICB3YXRjaD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZvciBXZWIgV29ya2VyIG1vZHVsZXMuXG4gICAgICovXG4gICAgd2ViV29ya2VyVHNDb25maWc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEFzc2V0UGF0dGVybiA9IEFzc2V0UGF0dGVybkNsYXNzIHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0UGF0dGVybkNsYXNzIHtcbiAgICAvKipcbiAgICAgKiBBbGxvdyBnbG9iIHBhdHRlcm5zIHRvIGZvbGxvdyBzeW1saW5rIGRpcmVjdG9yaWVzLiBUaGlzIGFsbG93cyBzdWJkaXJlY3RvcmllcyBvZiB0aGVcbiAgICAgKiBzeW1saW5rIHRvIGJlIHNlYXJjaGVkLlxuICAgICAqL1xuICAgIGZvbGxvd1N5bWxpbmtzPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgcGF0dGVybiB0byBtYXRjaC5cbiAgICAgKi9cbiAgICBnbG9iOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQW4gYXJyYXkgb2YgZ2xvYnMgdG8gaWdub3JlLlxuICAgICAqL1xuICAgIGlnbm9yZT86IHN0cmluZ1tdO1xuICAgIC8qKlxuICAgICAqIFRoZSBpbnB1dCBkaXJlY3RvcnkgcGF0aCBpbiB3aGljaCB0byBhcHBseSAnZ2xvYicuIERlZmF1bHRzIHRvIHRoZSBwcm9qZWN0IHJvb3QuXG4gICAgICovXG4gICAgaW5wdXQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBBYnNvbHV0ZSBwYXRoIHdpdGhpbiB0aGUgb3V0cHV0LlxuICAgICAqL1xuICAgIG91dHB1dDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1ZGdldCB7XG4gICAgLyoqXG4gICAgICogVGhlIGJhc2VsaW5lIHNpemUgZm9yIGNvbXBhcmlzb24uXG4gICAgICovXG4gICAgYmFzZWxpbmU/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIHRocmVzaG9sZCBmb3IgZXJyb3IgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lIChtaW4gJiBtYXgpLlxuICAgICAqL1xuICAgIGVycm9yPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIHRocmVzaG9sZCBmb3IgZXJyb3IgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lLlxuICAgICAqL1xuICAgIG1heGltdW1FcnJvcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgbWF4aW11bSB0aHJlc2hvbGQgZm9yIHdhcm5pbmcgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lLlxuICAgICAqL1xuICAgIG1heGltdW1XYXJuaW5nPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBtaW5pbXVtIHRocmVzaG9sZCBmb3IgZXJyb3IgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lLlxuICAgICAqL1xuICAgIG1pbmltdW1FcnJvcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgbWluaW11bSB0aHJlc2hvbGQgZm9yIHdhcm5pbmcgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lLlxuICAgICAqL1xuICAgIG1pbmltdW1XYXJuaW5nPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBidW5kbGUuXG4gICAgICovXG4gICAgbmFtZT86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdHlwZSBvZiBidWRnZXQuXG4gICAgICovXG4gICAgdHlwZTogVHlwZTtcbiAgICAvKipcbiAgICAgKiBUaGUgdGhyZXNob2xkIGZvciB3YXJuaW5nIHJlbGF0aXZlIHRvIHRoZSBiYXNlbGluZSAobWluICYgbWF4KS5cbiAgICAgKi9cbiAgICB3YXJuaW5nPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSB0eXBlIG9mIGJ1ZGdldC5cbiAqL1xuZXhwb3J0IGVudW0gVHlwZSB7XG4gICAgQWxsID0gXCJhbGxcIixcbiAgICBBbGxTY3JpcHQgPSBcImFsbFNjcmlwdFwiLFxuICAgIEFueSA9IFwiYW55XCIsXG4gICAgQW55Q29tcG9uZW50U3R5bGUgPSBcImFueUNvbXBvbmVudFN0eWxlXCIsXG4gICAgQW55U2NyaXB0ID0gXCJhbnlTY3JpcHRcIixcbiAgICBCdW5kbGUgPSBcImJ1bmRsZVwiLFxuICAgIEluaXRpYWwgPSBcImluaXRpYWxcIixcbn1cblxuLyoqXG4gKiBEZWZpbmUgdGhlIGNyb3Nzb3JpZ2luIGF0dHJpYnV0ZSBzZXR0aW5nIG9mIGVsZW1lbnRzIHRoYXQgcHJvdmlkZSBDT1JTIHN1cHBvcnQuXG4gKi9cbmV4cG9ydCBlbnVtIENyb3NzT3JpZ2luIHtcbiAgICBBbm9ueW1vdXMgPSBcImFub255bW91c1wiLFxuICAgIE5vbmUgPSBcIm5vbmVcIixcbiAgICBVc2VDcmVkZW50aWFscyA9IFwidXNlLWNyZWRlbnRpYWxzXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVJlcGxhY2VtZW50IHtcbiAgICByZXBsYWNlOiBzdHJpbmc7XG4gICAgd2l0aDogICAgc3RyaW5nO1xufVxuXG4vKipcbiAqIEhvdyB0byBoYW5kbGUgZHVwbGljYXRlIHRyYW5zbGF0aW9ucyBmb3IgaTE4bi5cbiAqXG4gKiBIb3cgdG8gaGFuZGxlIG1pc3NpbmcgdHJhbnNsYXRpb25zIGZvciBpMThuLlxuICovXG5leHBvcnQgZW51bSBJMThOVHJhbnNsYXRpb24ge1xuICAgIEVycm9yID0gXCJlcnJvclwiLFxuICAgIElnbm9yZSA9IFwiaWdub3JlXCIsXG4gICAgV2FybmluZyA9IFwid2FybmluZ1wiLFxufVxuXG4vKipcbiAqIENvbmZpZ3VyZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGFwcGxpY2F0aW9uJ3MgSFRNTCBpbmRleC5cbiAqL1xuZXhwb3J0IHR5cGUgSW5kZXhVbmlvbiA9IGJvb2xlYW4gfCBJbmRleE9iamVjdCB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBJbmRleE9iamVjdCB7XG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggb2YgYSBmaWxlIHRvIHVzZSBmb3IgdGhlIGFwcGxpY2F0aW9uJ3MgZ2VuZXJhdGVkIEhUTUwgaW5kZXguXG4gICAgICovXG4gICAgaW5wdXQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgb3V0cHV0IHBhdGggb2YgdGhlIGFwcGxpY2F0aW9uJ3MgZ2VuZXJhdGVkIEhUTUwgaW5kZXggZmlsZS4gVGhlIGZ1bGwgcHJvdmlkZWQgcGF0aFxuICAgICAqIHdpbGwgYmUgdXNlZCBhbmQgd2lsbCBiZSBjb25zaWRlcmVkIHJlbGF0aXZlIHRvIHRoZSBhcHBsaWNhdGlvbidzIGNvbmZpZ3VyZWQgb3V0cHV0IHBhdGguXG4gICAgICovXG4gICAgb3V0cHV0Pzogc3RyaW5nO1xuICAgIFtwcm9wZXJ0eTogc3RyaW5nXTogYW55O1xufVxuXG4vKipcbiAqIFRoZSBzdHlsZXNoZWV0IGxhbmd1YWdlIHRvIHVzZSBmb3IgdGhlIGFwcGxpY2F0aW9uJ3MgaW5saW5lIGNvbXBvbmVudCBzdHlsZXMuXG4gKi9cbmV4cG9ydCBlbnVtIElubGluZVN0eWxlTGFuZ3VhZ2Uge1xuICAgIENzcyA9IFwiY3NzXCIsXG4gICAgTGVzcyA9IFwibGVzc1wiLFxuICAgIFNhc3MgPSBcInNhc3NcIixcbiAgICBTY3NzID0gXCJzY3NzXCIsXG59XG5cbi8qKlxuICogVHJhbnNsYXRlIHRoZSBidW5kbGVzIGluIG9uZSBvciBtb3JlIGxvY2FsZXMuXG4gKi9cbmV4cG9ydCB0eXBlIExvY2FsaXplID0gc3RyaW5nW10gfCBib29sZWFuO1xuXG4vKipcbiAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIG9mIHRoZSBidWlsZCBvdXRwdXQuIEluY2x1ZGluZyBtaW5pZmljYXRpb24gb2Ygc2NyaXB0cyBhbmQgc3R5bGVzLFxuICogdHJlZS1zaGFraW5nLCBkZWFkLWNvZGUgZWxpbWluYXRpb24sIGlubGluaW5nIG9mIGNyaXRpY2FsIENTUyBhbmQgZm9udHMgaW5saW5pbmcuIEZvclxuICogbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4gKiBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvd29ya3NwYWNlLWNvbmZpZyNvcHRpbWl6YXRpb24tY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgT3B0aW1pemF0aW9uVW5pb24gPSBib29sZWFuIHwgT3B0aW1pemF0aW9uQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW1pemF0aW9uQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIGZvciBmb250cy4gVGhpcyBvcHRpb24gcmVxdWlyZXMgaW50ZXJuZXQgYWNjZXNzLiBgSFRUUFNfUFJPWFlgXG4gICAgICogZW52aXJvbm1lbnQgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHByb3h5IHNlcnZlci5cbiAgICAgKi9cbiAgICBmb250cz86IEZvbnRzVW5pb247XG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBvcHRpbWl6YXRpb24gb2YgdGhlIHNjcmlwdHMgb3V0cHV0LlxuICAgICAqL1xuICAgIHNjcmlwdHM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIG9mIHRoZSBzdHlsZXMgb3V0cHV0LlxuICAgICAqL1xuICAgIHN0eWxlcz86IFN0eWxlc1VuaW9uO1xufVxuXG4vKipcbiAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIGZvciBmb250cy4gVGhpcyBvcHRpb24gcmVxdWlyZXMgaW50ZXJuZXQgYWNjZXNzLiBgSFRUUFNfUFJPWFlgXG4gKiBlbnZpcm9ubWVudCB2YXJpYWJsZSBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJveHkgc2VydmVyLlxuICovXG5leHBvcnQgdHlwZSBGb250c1VuaW9uID0gYm9vbGVhbiB8IEZvbnRzQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9udHNDbGFzcyB7XG4gICAgLyoqXG4gICAgICogUmVkdWNlIHJlbmRlciBibG9ja2luZyByZXF1ZXN0cyBieSBpbmxpbmluZyBleHRlcm5hbCBHb29nbGUgRm9udHMgYW5kIEFkb2JlIEZvbnRzIENTU1xuICAgICAqIGRlZmluaXRpb25zIGluIHRoZSBhcHBsaWNhdGlvbidzIEhUTUwgaW5kZXggZmlsZS4gVGhpcyBvcHRpb24gcmVxdWlyZXMgaW50ZXJuZXQgYWNjZXNzLlxuICAgICAqIGBIVFRQU19QUk9YWWAgZW52aXJvbm1lbnQgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHByb3h5IHNlcnZlci5cbiAgICAgKi9cbiAgICBpbmxpbmU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuYWJsZXMgb3B0aW1pemF0aW9uIG9mIHRoZSBzdHlsZXMgb3V0cHV0LlxuICovXG5leHBvcnQgdHlwZSBTdHlsZXNVbmlvbiA9IGJvb2xlYW4gfCBTdHlsZXNDbGFzcztcblxuZXhwb3J0IGludGVyZmFjZSBTdHlsZXNDbGFzcyB7XG4gICAgLyoqXG4gICAgICogRXh0cmFjdCBhbmQgaW5saW5lIGNyaXRpY2FsIENTUyBkZWZpbml0aW9ucyB0byBpbXByb3ZlIGZpcnN0IHBhaW50IHRpbWUuXG4gICAgICovXG4gICAgaW5saW5lQ3JpdGljYWw/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE1pbmlmeSBDU1MgZGVmaW5pdGlvbnMgYnkgcmVtb3ZpbmcgZXh0cmFuZW91cyB3aGl0ZXNwYWNlIGFuZCBjb21tZW50cywgbWVyZ2luZ1xuICAgICAqIGlkZW50aWZpZXJzIGFuZCBtaW5pbWl6aW5nIHZhbHVlcy5cbiAgICAgKi9cbiAgICBtaW5pZnk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIERlZmluZSB0aGUgb3V0cHV0IGZpbGVuYW1lIGNhY2hlLWJ1c3RpbmcgaGFzaGluZyBtb2RlLlxuICovXG5leHBvcnQgZW51bSBPdXRwdXRIYXNoaW5nIHtcbiAgICBBbGwgPSBcImFsbFwiLFxuICAgIEJ1bmRsZXMgPSBcImJ1bmRsZXNcIixcbiAgICBNZWRpYSA9IFwibWVkaWFcIixcbiAgICBOb25lID0gXCJub25lXCIsXG59XG5cbi8qKlxuICogUHJlcmVuZGVyIChTU0cpIHBhZ2VzIG9mIHlvdXIgYXBwbGljYXRpb24gZHVyaW5nIGJ1aWxkIHRpbWUuXG4gKi9cbmV4cG9ydCB0eXBlIFByZXJlbmRlclVuaW9uID0gYm9vbGVhbiB8IFByZXJlbmRlckNsYXNzO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByZXJlbmRlckNsYXNzIHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBidWlsZGVyIHNob3VsZCBkaXNjb3ZlciByb3V0ZXJzIHVzaW5nIHRoZSBBbmd1bGFyIFJvdXRlci5cbiAgICAgKi9cbiAgICBkaXNjb3ZlclJvdXRlcz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggdG8gYSBmaWxlIGNvbnRhaW5pbmcgcm91dGVzIHNlcGFyYXRlZCBieSBuZXdsaW5lcy5cbiAgICAgKi9cbiAgICByb3V0ZXNGaWxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBTY3JpcHRFbGVtZW50ID0gU2NyaXB0Q2xhc3MgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NyaXB0Q2xhc3Mge1xuICAgIC8qKlxuICAgICAqIFRoZSBidW5kbGUgbmFtZSBmb3IgdGhpcyBleHRyYSBlbnRyeSBwb2ludC5cbiAgICAgKi9cbiAgICBidW5kbGVOYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIElmIHRoZSBidW5kbGUgd2lsbCBiZSByZWZlcmVuY2VkIGluIHRoZSBIVE1MIGZpbGUuXG4gICAgICovXG4gICAgaW5qZWN0PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgZmlsZSB0byBpbmNsdWRlLlxuICAgICAqL1xuICAgIGlucHV0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgc2VydmljZSB3b3JrZXIgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgU2VydmljZVdvcmtlciA9IGJvb2xlYW4gfCBzdHJpbmc7XG5cbi8qKlxuICogT3V0cHV0IHNvdXJjZSBtYXBzIGZvciBzY3JpcHRzIGFuZCBzdHlsZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAqIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS93b3Jrc3BhY2UtY29uZmlnI3NvdXJjZS1tYXAtY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlTWFwVW5pb24gPSBib29sZWFuIHwgU291cmNlTWFwQ2xhc3M7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTWFwQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIE91dHB1dCBzb3VyY2UgbWFwcyB1c2VkIGZvciBlcnJvciByZXBvcnRpbmcgdG9vbHMuXG4gICAgICovXG4gICAgaGlkZGVuPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPdXRwdXQgc291cmNlIG1hcHMgZm9yIGFsbCBzY3JpcHRzLlxuICAgICAqL1xuICAgIHNjcmlwdHM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE91dHB1dCBzb3VyY2UgbWFwcyBmb3IgYWxsIHN0eWxlcy5cbiAgICAgKi9cbiAgICBzdHlsZXM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFJlc29sdmUgdmVuZG9yIHBhY2thZ2VzIHNvdXJjZSBtYXBzLlxuICAgICAqL1xuICAgIHZlbmRvcj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogU2VydmVyIHNpZGUgcmVuZGVyIChTU1IpIHBhZ2VzIG9mIHlvdXIgYXBwbGljYXRpb24gZHVyaW5nIHJ1bnRpbWUuXG4gKi9cbmV4cG9ydCB0eXBlIFNzclVuaW9uID0gYm9vbGVhbiB8IFNzckNsYXNzO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNzckNsYXNzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgc2VydmVyIGVudHJ5LXBvaW50IHRoYXQgd2hlbiBleGVjdXRlZCB3aWxsIHNwYXduIHRoZSB3ZWIgc2VydmVyLlxuICAgICAqL1xuICAgIGVudHJ5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gcGFzcyB0byBzdHlsZSBwcmVwcm9jZXNzb3JzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlUHJlcHJvY2Vzc29yT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogUGF0aHMgdG8gaW5jbHVkZS4gUGF0aHMgd2lsbCBiZSByZXNvbHZlZCB0byB3b3Jrc3BhY2Ugcm9vdC5cbiAgICAgKi9cbiAgICBpbmNsdWRlUGF0aHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IHR5cGUgU3R5bGVFbGVtZW50ID0gU3R5bGVDbGFzcyB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBTdHlsZUNsYXNzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgYnVuZGxlIG5hbWUgZm9yIHRoaXMgZXh0cmEgZW50cnkgcG9pbnQuXG4gICAgICovXG4gICAgYnVuZGxlTmFtZT86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBJZiB0aGUgYnVuZGxlIHdpbGwgYmUgcmVmZXJlbmNlZCBpbiB0aGUgSFRNTCBmaWxlLlxuICAgICAqL1xuICAgIGluamVjdD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIGZpbGUgdG8gaW5jbHVkZS5cbiAgICAgKi9cbiAgICBpbnB1dDogc3RyaW5nO1xufVxuIl19
|