@kontur.candy/tools 2.171.0 → 2.173.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/CHANGELOG.md +6 -0
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/WellKnownDirectories.js +2 -1
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +6 -10
- package/distr/Tools/src/Commons/FormGlobsUtils.js +2 -2
- package/distr/Tools/src/Commons/TasksCore/Observe.js +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
<a name="2.173.0"></a>
|
|
2
|
+
# [2.173.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.172.0...release/tools/v2.173.0) (2024-03-03)
|
|
3
|
+
|
|
4
|
+
<a name="2.172.0"></a>
|
|
5
|
+
# [2.172.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.171.0...release/tools/v2.172.0) (2024-03-03)
|
|
6
|
+
|
|
1
7
|
<a name="2.171.0"></a>
|
|
2
8
|
# [2.171.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.170.0...release/tools/v2.171.0) (2024-03-03)
|
|
3
9
|
|
|
@@ -8,4 +8,5 @@ class WellKnownDirectories {}
|
|
|
8
8
|
exports.WellKnownDirectories = WellKnownDirectories;
|
|
9
9
|
WellKnownDirectories.CandySubdirectoryName = "candy";
|
|
10
10
|
WellKnownDirectories.FormJsonFileName = "form.json";
|
|
11
|
-
|
|
11
|
+
WellKnownDirectories.TestFarmDir = "TestFarm";
|
|
12
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXZWxsS25vd25EaXJlY3RvcmllcyIsImV4cG9ydHMiLCJDYW5keVN1YmRpcmVjdG9yeU5hbWUiLCJGb3JtSnNvbkZpbGVOYW1lIiwiVGVzdEZhcm1EaXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUmVzb3VyY2VzQ29udHJvbGxlcnMvRGlyZWN0b3JpZXMvV2VsbEtub3duRGlyZWN0b3JpZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFdlbGxLbm93bkRpcmVjdG9yaWVzIHtcbiAgICBwdWJsaWMgc3RhdGljIENhbmR5U3ViZGlyZWN0b3J5TmFtZSA9IFwiY2FuZHlcIjtcbiAgICBwdWJsaWMgc3RhdGljIEZvcm1Kc29uRmlsZU5hbWUgPSBcImZvcm0uanNvblwiO1xuXG4gICAgcHVibGljIHN0YXRpYyBUZXN0RmFybURpciA9IFwiVGVzdEZhcm1cIjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQU8sTUFBTUEsb0JBQW9CLENBQUM7QUFLakNDLE9BQUEsQ0FBQUQsb0JBQUEsR0FBQUEsb0JBQUE7QUFMWUEsb0JBQW9CLENBQ2ZFLHFCQUFxQixHQUFHLE9BQU87QUFEcENGLG9CQUFvQixDQUVmRyxnQkFBZ0IsR0FBRyxXQUFXO0FBRm5DSCxvQkFBb0IsQ0FJZkksV0FBVyxHQUFHLFVBQVUifQ==
|
|
@@ -72,26 +72,22 @@ async function runDevBuild(context, options, engineDirectory, resourcesDirectory
|
|
|
72
72
|
}).attach(async fi => _Observe.Observe.files(_path.default.join(formDirPath, "form"), "**/*")).do(fi => (0, _CompileForm.compileForm)(fi.formName, fi.themes, farmDirectory, formDirPath, resourcesDirectory, fi.dependenciesHash, options.buildDebugOnly)).do(fi => (0, _WriteFLangNormalizationFiles.writeFLangNormalizationFiles)(fi.formName, farmDirectory, formDirPath, resourcesDirectory)).do(fi => (0, _WriteAttachmentPathFiles.writeAttachmentPathFiles)(fi.formName, farmDirectory, formDirPath, resourcesDirectory)).do(fi => (0, _WriteFormMeta.writeFormMeta)(resourcesDirectory, gfv, fi.engineSource, fi.dependenciesHash, fi.themes)).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "schemas"), rngSchemaMask).do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("SCHEMAS"), x, _path.default.join(resourcesDirectory, "schemas")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "converters"), "*").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("CONVERTERS"), x, _path.default.join(resourcesDirectory, "converters")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "mergers"), "*").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("MERGERS"), x, _path.default.join(resourcesDirectory, "mergers")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "normalize"), "*.xml").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("NORMALIZE"), x, _path.default.join(resourcesDirectory, "normalize")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "patch"), "*.xslt").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("PATCH"), x, _path.default.join(resourcesDirectory, "patch")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "map"), "*.xml").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("MAP"), x, _path.default.join(resourcesDirectory, "map")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "unmap"), "*.xml").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("UNMAP"), x, _path.default.join(resourcesDirectory, "unmap"))));
|
|
73
73
|
});
|
|
74
74
|
if (devBuildOptions.watch) {
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
const stopObserve1 = await buildEngineChain.observe();
|
|
76
|
+
const stopObserve2 = await buildClientJsChain.observe();
|
|
77
77
|
const stopObserve3 = await staticResourcesChain.observe();
|
|
78
78
|
const stopObserve4 = await buildFormsChain.observe();
|
|
79
79
|
const stopObserve5 = await pickListsChain.observe();
|
|
80
80
|
const stopObserve6 = await resourcesExternalConvertersChain.observe();
|
|
81
81
|
await context.waitForExit();
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
// await stopObserve2();
|
|
82
|
+
await stopObserve1();
|
|
83
|
+
await stopObserve2();
|
|
85
84
|
await stopObserve3();
|
|
86
85
|
await stopObserve4();
|
|
87
86
|
await stopObserve5();
|
|
88
87
|
await stopObserve6();
|
|
89
88
|
} else {
|
|
90
89
|
const startDate = Date.now();
|
|
91
|
-
await Promise.all([
|
|
92
|
-
// buildEngineChain.currentValue,
|
|
93
|
-
// buildClientJsChain.currentValue,
|
|
94
|
-
staticResourcesChain.currentValue, resourcesExternalConvertersChain.currentValue, (async () => {
|
|
90
|
+
await Promise.all([buildEngineChain.currentValue, buildClientJsChain.currentValue, staticResourcesChain.currentValue, resourcesExternalConvertersChain.currentValue, (async () => {
|
|
95
91
|
try {
|
|
96
92
|
await pickListsChain.currentValue;
|
|
97
93
|
await buildFormsChain.currentValue;
|
|
@@ -108,4 +104,4 @@ async function runDevBuild(context, options, engineDirectory, resourcesDirectory
|
|
|
108
104
|
console.log(`${_chalk.default.greenBright("Build success")} Total time: ${(0, _TimingUtils.printTime)(totalTime)}`);
|
|
109
105
|
}
|
|
110
106
|
}
|
|
111
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NoYWxrIiwiX0J1aWxkQ2xpZW50SnNUYXNrIiwiX0J1aWxkTG9jYWxFbmdpbmVUYXNrIiwiX0VuZ2luZVN0cnVjdHVyZVV0aWxzIiwiX0NvbXBpbGVGb3JtIiwiX0dlbmVyYXRlRm9ybSIsIl9Xcml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzIiwiX0ZTVGFzayIsIl9BY3F1aXJlRm9ybUdlbmVyYXRvciIsIl9QdWJsaXNoZWRWZXJzaW9uVXRpbHMiLCJfUmVzb2x2ZUZvcm1JbmZvIiwiX1dyaXRlRm9ybU1ldGEiLCJfRm9ybUdsb2JzVXRpbHMiLCJfU3RhdGljTG9nZ2VyIiwiX09ic2VydmUiLCJfVGltaW5nVXRpbHMiLCJfV3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIiwiX2dldFJuZ1NjaGVtYUZpbGVuYW1lIiwiX0Zvcm1QYXRoVXRpbHMiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJydW5EZXZCdWlsZCIsImNvbnRleHQiLCJvcHRpb25zIiwiZW5naW5lRGlyZWN0b3J5IiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImNhbmR5TW9kdWxlc0RpcmVjdG9yeSIsImhsRmFybURpcmVjdG9yeVBhdGgiLCJkZXZCdWlsZE9wdGlvbnMiLCJlbmdpbmVXZWJwYWNrQ29uZmlnVGFzayIsImNyZWF0ZUVuZ2luZVdlYnBhY2tDb25maWdUYXNrIiwiYnVpbGRFbmdpbmVDaGFpbiIsImNoYWluV2l0aCIsInAiLCJCdWlsZExvY2FsRW5naW5lVGFzayIsImJ1aWxkRGVidWdPbmx5IiwiY2xpZW50V2VicGFja0NvbmZpZ1Rhc2siLCJjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzayIsImJ1aWxkQ2xpZW50SnNDaGFpbiIsIkJ1aWxkQ2xpZW50SnNUYXNrIiwic3RhdGljUmVzb3VyY2VzQ2hhaW4iLCJPYnNlcnZlIiwiZmlsZXMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsImRvIiwieCIsIkZTVGFzayIsImNvcHlSZWN1cnNpdmVseSIsImdldExvZ2dlciIsIndpdGhQcmVmaXgiLCJwaWNrTGlzdHNDaGFpbiIsImxvZ2dlciIsInJlcG9zaXRvcnlSb290IiwiZm9ybUdsb2JzIiwiRm9ybUdsb2JzIiwidmFsaWRhdGVHbG9icyIsInJlc29sdmVTcGVjaWZpZXJzIiwicmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4iLCJlbXB0eSIsImJ1aWxkRm9ybXNDaGFpbiIsImZvcm1EaXJlY3RvcmllcyIsInNwbGl0VG9QYXJhbGxlbENoYWlucyIsImZvcm1SZWxhdGl2ZVBhdGgiLCJnZnYiLCJleHRyYWN0R2Z2RnJvbUZvcm1QYXRoIiwiZm9ybURpclBhdGgiLCJmb3JtU2NoZW1hc0RpclBhdGgiLCJybmdTY2hlbWFNYXNrIiwiZ2V0Um5nU2NoZW1hRmlsZW5hbWUiLCJmaWxlIiwiV2VsbEtub3duRGlyZWN0b3JpZXMiLCJGb3JtSnNvbkZpbGVOYW1lIiwidHJhbnNmb3JtIiwiZm9ybUpzb25GaWxlIiwicmVzb2x2ZUZvcm1JbmZvIiwiZ2VuZXJhdG9yU291cmNlIiwicmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIiwiZW5naW5lU291cmNlIiwicmVzb2x2ZUxvY2FsRW5naW5lU291cmNlIiwiYXR0YWNoIiwiZmkiLCJnZW5lcmF0b3JGYWN0b3J5IiwidW5kZWZpbmVkIiwieSIsImdlbmVyYXRvciIsImdldEdlbmVyYXRvclNvdXJjZUtleSIsImZvcm1Tb3VyY2VzUGF0aCIsImRlcGVuZGVuY2llc0hhc2giLCJnZXRBbGxEZXBlbmRlbmNpZXNIYXNoIiwic2tpcEdlbmVyYXRpb24iLCJnZW5lcmF0ZUZvcm0iLCJza2lwQ29kZVJlZm9ybWF0dGluZyIsInNraXBHZW5lcmF0ZWRDb2RlUmVmb3JtYXR0aW5nIiwicmVzb3VyY2VzSGFzaCIsImNvbXBpbGVGb3JtIiwiZm9ybU5hbWUiLCJ0aGVtZXMiLCJ3cml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzIiwid3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIiwid3JpdGVGb3JtTWV0YSIsIndhdGNoIiwic3RvcE9ic2VydmUzIiwib2JzZXJ2ZSIsInN0b3BPYnNlcnZlNCIsInN0b3BPYnNlcnZlNSIsInN0b3BPYnNlcnZlNiIsIndhaXRGb3JFeGl0Iiwic3RhcnREYXRlIiwiRGF0ZSIsIm5vdyIsIlByb21pc2UiLCJhbGwiLCJjdXJyZW50VmFsdWUiLCJlIiwiY29udGludWVPbkVycm9yIiwiZXJyb3IiLCJ0b3RhbFRpbWUiLCJjb25zb2xlIiwibG9nIiwiY2hhbGsiLCJncmVlbkJyaWdodCIsInByaW50VGltZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9EZXZCdWlsZC9SdW5EZXZCdWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5cbmltcG9ydCB7IEJ1aWxkQ2xpZW50SnNUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvQ2xpZW50SlMvQnVpbGRDbGllbnRKc1Rhc2tcIjtcbmltcG9ydCB7IEJ1aWxkTG9jYWxFbmdpbmVUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRW5naW5lL0J1aWxkTG9jYWxFbmdpbmVUYXNrXCI7XG5pbXBvcnQgeyBjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzaywgY3JlYXRlRW5naW5lV2VicGFja0NvbmZpZ1Rhc2sgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9FbmdpbmVTdHJ1Y3R1cmVVdGlsc1wiO1xuaW1wb3J0IHsgY29tcGlsZUZvcm0gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0NvbXBpbGVGb3JtXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUZvcm0gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0dlbmVyYXRlRm9ybVwiO1xuaW1wb3J0IHsgd3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vV3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlc1wiO1xuaW1wb3J0IHsgRlNUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRlNUYXNrXCI7XG5pbXBvcnQgeyBnZW5lcmF0b3JGYWN0b3J5LCBnZXRHZW5lcmF0b3JTb3VyY2VLZXkgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9HZW5lcmF0b3IvQWNxdWlyZUZvcm1HZW5lcmF0b3JcIjtcbmltcG9ydCB7IHJlc29sdmVMb2NhbEVuZ2luZVNvdXJjZSwgcmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyByZXNvbHZlRm9ybUluZm8gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9SZXNvbHZlRm9ybUluZm9cIjtcbmltcG9ydCB7IHdyaXRlRm9ybU1ldGEgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Xcml0ZUZvcm1NZXRhXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEZvcm1HbG9icyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0Zvcm1HbG9ic1V0aWxzXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9PYnNlcnZlXCI7XG5pbXBvcnQgeyBwcmludFRpbWUgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UaW1pbmdVdGlsc1wiO1xuaW1wb3J0IHsgd3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9Xcml0ZUF0dGFjaG1lbnRQYXRoRmlsZXNcIjtcbmltcG9ydCB7IENoYWluYWJsZVZhbHVlUHJvZHVjZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvQ2hhaW5hYmxlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0IHsgRW1wdHlQcm9kdWNlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9FbXB0eVByb2R1Y2VyXCI7XG5pbXBvcnQgeyBnZXRSbmdTY2hlbWFGaWxlbmFtZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vZ2V0Um5nU2NoZW1hRmlsZW5hbWVcIjtcbmltcG9ydCB7IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGggfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL0Zvcm1QYXRoVXRpbHNcIjtcblxuaW1wb3J0IHsgRGV2ZWxvcG1lbnRCdWlsZE9wdGlvbnMgfSBmcm9tIFwiLi9EZXZCdWlsZE9wdGlvbnNcIjtcbmltcG9ydCB7IFdlbGxLbm93bkRpcmVjdG9yaWVzIH0gZnJvbSBcIi4uL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0RpcmVjdG9yaWVzL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5EZXZCdWlsZChcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IERldmVsb3BtZW50QnVpbGRPcHRpb25zLFxuICAgIGVuZ2luZURpcmVjdG9yeTogc3RyaW5nLFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRldkJ1aWxkT3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBlbmdpbmVXZWJwYWNrQ29uZmlnVGFzayA9IGF3YWl0IGNyZWF0ZUVuZ2luZVdlYnBhY2tDb25maWdUYXNrKGVuZ2luZURpcmVjdG9yeSk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGJ1aWxkRW5naW5lQ2hhaW4gPSBlbmdpbmVXZWJwYWNrQ29uZmlnVGFzay5jaGFpbldpdGgoXG4gICAgICAgIHAgPT4gbmV3IEJ1aWxkTG9jYWxFbmdpbmVUYXNrKHAsIHJlc291cmNlc0RpcmVjdG9yeSwgb3B0aW9ucy5idWlsZERlYnVnT25seSlcbiAgICApO1xuXG4gICAgY29uc3QgY2xpZW50V2VicGFja0NvbmZpZ1Rhc2sgPSBhd2FpdCBjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzayhlbmdpbmVEaXJlY3RvcnkpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBidWlsZENsaWVudEpzQ2hhaW4gPSBjbGllbnRXZWJwYWNrQ29uZmlnVGFzay5jaGFpbldpdGgocCA9PiBuZXcgQnVpbGRDbGllbnRKc1Rhc2socCwgcmVzb3VyY2VzRGlyZWN0b3J5KSk7XG5cbiAgICBjb25zdCBzdGF0aWNSZXNvdXJjZXNDaGFpbiA9IE9ic2VydmUuZmlsZXMoXG4gICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi5cIiwgXCIuLlwiLCBcIlN0YXRpY0ZpbGVzRm9yUmVzb3VyY2VzRGlyXCIpLFxuICAgICAgICBcIiouanNcIlxuICAgICkuZG8oeCA9PlxuICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJTVEFUSUNTXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInB1YmxpY1wiLCBcInNjcmlwdHNcIikpXG4gICAgKTtcblxuICAgIGNvbnN0IHBpY2tMaXN0c0NoYWluID0gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJwaWNrbGlzdHNcIiksIFwiKi5qc29uXCIpLmRvKHggPT5cbiAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KFwiUElDS0xJU1RTXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInBpY2tsaXN0c1wiKSlcbiAgICApO1xuXG4gICAgY29uc3QgcmVwb3NpdG9yeVJvb3QgPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCIuLlwiKTtcbiAgICBjb25zdCBmb3JtR2xvYnMgPSBhd2FpdCBGb3JtR2xvYnMudmFsaWRhdGVHbG9icyhcbiAgICAgICAgYXdhaXQgRm9ybUdsb2JzLnJlc29sdmVTcGVjaWZpZXJzKG9wdGlvbnMuZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KSxcbiAgICAgICAgZmFybURpcmVjdG9yeVxuICAgICk7XG5cbiAgICAvKiog0JrQvtC90LLQtdGA0YLQtdGA0Ysg0L7Qv9C40YHQuCDQtNC70Y8g0YTQvtGA0LwsINC60L7RgtC+0YDRi9C1INC/0L7QutCwINC90LUg0YDQtdCw0LvQuNC30L7QstCw0L3RiyDQvdCwINC60LXQvdC00LgsINGB0LDQvNCwINC80LXRhdCw0L3QuNC60LAg0L7Qv9C40YHQuCDQv9C10YDQtdC90LXRgdC10L3QsCDQsiDRhNC+0YDQvNGLINCyINC60LXQvdC00Lgg0LDQv9C4LCDQv9C+0Y3RgtC+0LzRgyDQvtC90Lgg0LTQvtC70LbQvdGLINCx0YvRgtGMINCyIGNhbmR5LnJlc291cmNlc1xuICAgICAqICDQoNC10LDQu9C40LfRg9C10YLRgdGPINGC0L7Qu9GM0LrQviDQv9GA0Lgg0L7QsdGJ0LXQvCDQsdC40LvQtNC1INGE0L7RgNC8OiBjYW5keSBidWlsZCAqXG4gICAgICogKi9cbiAgICBsZXQgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW46IENoYWluYWJsZVZhbHVlUHJvZHVjZXI8c3RyaW5nPiB8IEVtcHR5UHJvZHVjZXIgPSBPYnNlcnZlLmVtcHR5KCk7XG4gICAgaWYgKGZvcm1HbG9ic1swXSA9PT0gXCIqXCIpIHtcbiAgICAgICAgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4gPSBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImV4dGVybmFsQ29udmVydGVyc1wiKSwgXCIqLnhzbHRcIikuZG8oXG4gICAgICAgICAgICB4ID0+XG4gICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkVYVEVSTkFMLUNPTlZFUlRFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwiY29udmVydGVyc1wiKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBidWlsZEZvcm1zQ2hhaW4gPSBPYnNlcnZlLmZvcm1EaXJlY3RvcmllcyhyZXBvc2l0b3J5Um9vdCwgZm9ybUdsb2JzKS5zcGxpdFRvUGFyYWxsZWxDaGFpbnMoXG4gICAgICAgIHggPT4geCxcbiAgICAgICAgeCA9PiB4LFxuICAgICAgICBhc3luYyBmb3JtUmVsYXRpdmVQYXRoID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVJlbGF0aXZlUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVJlbGF0aXZlUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtU2NoZW1hc0RpclBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwic2NoZW1hc1wiKTtcbiAgICAgICAgICAgIGNvbnN0IHJuZ1NjaGVtYU1hc2sgPSBgKiR7Z2V0Um5nU2NoZW1hRmlsZW5hbWUoZm9ybVNjaGVtYXNEaXJQYXRoLCBnZnYpfWA7XG5cbiAgICAgICAgICAgIHJldHVybiBPYnNlcnZlLmZpbGUocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKSlcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGZvcm1Kc29uRmlsZSA9PiByZXNvbHZlRm9ybUluZm8oZm9ybUpzb25GaWxlLCBmb3JtRGlyUGF0aCwgZW5naW5lRGlyZWN0b3J5KSlcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGFzeW5jIHggPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yU291cmNlOiByZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UoZW5naW5lRGlyZWN0b3J5KSxcbiAgICAgICAgICAgICAgICAgICAgZW5naW5lU291cmNlOiByZXNvbHZlTG9jYWxFbmdpbmVTb3VyY2UoZW5naW5lRGlyZWN0b3J5KSxcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiBnZW5lcmF0b3JGYWN0b3J5KGZpLmdlbmVyYXRvclNvdXJjZSwgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LCBmYWxzZSwgdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgKGZpLCB5KSA9PiAoeyAuLi5maSwgZ2VuZXJhdG9yOiB5IH0pLFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiBnZXRHZW5lcmF0b3JTb3VyY2VLZXkoZmkuZ2VuZXJhdG9yU291cmNlKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtU291cmNlc1BhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2NvbnRyb2xzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2NoZW1hcy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN1Z2FyLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY29udHJvbHMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhdXRvY2FsYy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImhlbHBlcnMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YWxpZGF0aW9ucy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2FsaXphdGlvbi8qKi8qXCJcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGFzeW5jIGZpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmZpLFxuICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXNIYXNoOiBhd2FpdCBmaS5nZW5lcmF0b3IuZ2V0QWxsRGVwZW5kZW5jaWVzSGFzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuZG8oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5za2lwR2VuZXJhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2VuZXJhdGVGb3JtKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybVNvdXJjZXNQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5nZW5lcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcENvZGVSZWZvcm1hdHRpbmc6IG9wdGlvbnMuc2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzSGFzaDogZmkuZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT4gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybVwiKSwgXCIqKi8qXCIpKVxuICAgICAgICAgICAgICAgIC5kbyhmaSA9PlxuICAgICAgICAgICAgICAgICAgICBjb21waWxlRm9ybShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmZvcm1OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkudGhlbWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuYnVpbGREZWJ1Z09ubHlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZG8oZmkgPT4gd3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyhmaS5mb3JtTmFtZSwgZmFybURpcmVjdG9yeSwgZm9ybURpclBhdGgsIHJlc291cmNlc0RpcmVjdG9yeSkpXG4gICAgICAgICAgICAgICAgLmRvKGZpID0+IHdyaXRlQXR0YWNobWVudFBhdGhGaWxlcyhmaS5mb3JtTmFtZSwgZmFybURpcmVjdG9yeSwgZm9ybURpclBhdGgsIHJlc291cmNlc0RpcmVjdG9yeSkpXG4gICAgICAgICAgICAgICAgLmRvKGZpID0+IHdyaXRlRm9ybU1ldGEocmVzb3VyY2VzRGlyZWN0b3J5LCBnZnYsIGZpLmVuZ2luZVNvdXJjZSwgZmkuZGVwZW5kZW5jaWVzSGFzaCwgZmkudGhlbWVzKSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJzY2hlbWFzXCIpLCBybmdTY2hlbWFNYXNrKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJTQ0hFTUFTXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJzY2hlbWFzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwiY29udmVydGVyc1wiKSwgXCIqXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkNPTlZFUlRFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcImNvbnZlcnRlcnNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJtZXJnZXJzXCIpLCBcIipcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTUVSR0VSU1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwibWVyZ2Vyc1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcIm5vcm1hbGl6ZVwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJOT1JNQUxJWkVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm5vcm1hbGl6ZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcInBhdGNoXCIpLCBcIioueHNsdFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJQQVRDSFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwicGF0Y2hcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJtYXBcIiksIFwiKi54bWxcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTUFQXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm1hcFwiKSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJ1bm1hcFwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJVTk1BUFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwidW5tYXBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgaWYgKGRldkJ1aWxkT3B0aW9ucy53YXRjaCkge1xuICAgICAgICAvLyBjb25zdCBzdG9wT2JzZXJ2ZTEgPSBhd2FpdCBidWlsZEVuZ2luZUNoYWluLm9ic2VydmUoKTtcbiAgICAgICAgLy8gY29uc3Qgc3RvcE9ic2VydmUyID0gYXdhaXQgYnVpbGRDbGllbnRKc0NoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmUzID0gYXdhaXQgc3RhdGljUmVzb3VyY2VzQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTQgPSBhd2FpdCBidWlsZEZvcm1zQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTUgPSBhd2FpdCBwaWNrTGlzdHNDaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlNiA9IGF3YWl0IHJlc291cmNlc0V4dGVybmFsQ29udmVydGVyc0NoYWluLm9ic2VydmUoKTtcblxuICAgICAgICBhd2FpdCBjb250ZXh0LndhaXRGb3JFeGl0KCk7XG5cbiAgICAgICAgLy8gYXdhaXQgc3RvcE9ic2VydmUxKCk7XG4gICAgICAgIC8vIGF3YWl0IHN0b3BPYnNlcnZlMigpO1xuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTMoKTtcbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmU0KCk7XG4gICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlNSgpO1xuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTYoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBEYXRlLm5vdygpO1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAvLyBidWlsZEVuZ2luZUNoYWluLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgIC8vIGJ1aWxkQ2xpZW50SnNDaGFpbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICBzdGF0aWNSZXNvdXJjZXNDaGFpbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICByZXNvdXJjZXNFeHRlcm5hbENvbnZlcnRlcnNDaGFpbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHBpY2tMaXN0c0NoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYnVpbGRGb3Jtc0NoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmNvbnRpbnVlT25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKSxcbiAgICAgICAgXSk7XG4gICAgICAgIGNvbnN0IHRvdGFsVGltZSA9IERhdGUubm93KCkgLSBzdGFydERhdGU7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUubG9nKGAke2NoYWxrLmdyZWVuQnJpZ2h0KFwiQnVpbGQgc3VjY2Vzc1wiKX0gVG90YWwgdGltZTogJHtwcmludFRpbWUodG90YWxUaW1lKX1gKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxrQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcscUJBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLHFCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyw2QkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsT0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMscUJBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLHNCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxnQkFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksY0FBQSxHQUFBWixPQUFBO0FBRUEsSUFBQWEsZUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsYUFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsUUFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLFlBQUEsR0FBQWhCLE9BQUE7QUFDQSxJQUFBaUIseUJBQUEsR0FBQWpCLE9BQUE7QUFHQSxJQUFBa0IscUJBQUEsR0FBQWxCLE9BQUE7QUFDQSxJQUFBbUIsY0FBQSxHQUFBbkIsT0FBQTtBQUdBLElBQUFv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
|
|
107
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NoYWxrIiwiX0J1aWxkQ2xpZW50SnNUYXNrIiwiX0J1aWxkTG9jYWxFbmdpbmVUYXNrIiwiX0VuZ2luZVN0cnVjdHVyZVV0aWxzIiwiX0NvbXBpbGVGb3JtIiwiX0dlbmVyYXRlRm9ybSIsIl9Xcml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzIiwiX0ZTVGFzayIsIl9BY3F1aXJlRm9ybUdlbmVyYXRvciIsIl9QdWJsaXNoZWRWZXJzaW9uVXRpbHMiLCJfUmVzb2x2ZUZvcm1JbmZvIiwiX1dyaXRlRm9ybU1ldGEiLCJfRm9ybUdsb2JzVXRpbHMiLCJfU3RhdGljTG9nZ2VyIiwiX09ic2VydmUiLCJfVGltaW5nVXRpbHMiLCJfV3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIiwiX2dldFJuZ1NjaGVtYUZpbGVuYW1lIiwiX0Zvcm1QYXRoVXRpbHMiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJydW5EZXZCdWlsZCIsImNvbnRleHQiLCJvcHRpb25zIiwiZW5naW5lRGlyZWN0b3J5IiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImNhbmR5TW9kdWxlc0RpcmVjdG9yeSIsImhsRmFybURpcmVjdG9yeVBhdGgiLCJkZXZCdWlsZE9wdGlvbnMiLCJlbmdpbmVXZWJwYWNrQ29uZmlnVGFzayIsImNyZWF0ZUVuZ2luZVdlYnBhY2tDb25maWdUYXNrIiwiYnVpbGRFbmdpbmVDaGFpbiIsImNoYWluV2l0aCIsInAiLCJCdWlsZExvY2FsRW5naW5lVGFzayIsImJ1aWxkRGVidWdPbmx5IiwiY2xpZW50V2VicGFja0NvbmZpZ1Rhc2siLCJjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzayIsImJ1aWxkQ2xpZW50SnNDaGFpbiIsIkJ1aWxkQ2xpZW50SnNUYXNrIiwic3RhdGljUmVzb3VyY2VzQ2hhaW4iLCJPYnNlcnZlIiwiZmlsZXMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsImRvIiwieCIsIkZTVGFzayIsImNvcHlSZWN1cnNpdmVseSIsImdldExvZ2dlciIsIndpdGhQcmVmaXgiLCJwaWNrTGlzdHNDaGFpbiIsImxvZ2dlciIsInJlcG9zaXRvcnlSb290IiwiZm9ybUdsb2JzIiwiRm9ybUdsb2JzIiwidmFsaWRhdGVHbG9icyIsInJlc29sdmVTcGVjaWZpZXJzIiwicmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4iLCJlbXB0eSIsImJ1aWxkRm9ybXNDaGFpbiIsImZvcm1EaXJlY3RvcmllcyIsInNwbGl0VG9QYXJhbGxlbENoYWlucyIsImZvcm1SZWxhdGl2ZVBhdGgiLCJnZnYiLCJleHRyYWN0R2Z2RnJvbUZvcm1QYXRoIiwiZm9ybURpclBhdGgiLCJmb3JtU2NoZW1hc0RpclBhdGgiLCJybmdTY2hlbWFNYXNrIiwiZ2V0Um5nU2NoZW1hRmlsZW5hbWUiLCJmaWxlIiwiV2VsbEtub3duRGlyZWN0b3JpZXMiLCJGb3JtSnNvbkZpbGVOYW1lIiwidHJhbnNmb3JtIiwiZm9ybUpzb25GaWxlIiwicmVzb2x2ZUZvcm1JbmZvIiwiZ2VuZXJhdG9yU291cmNlIiwicmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIiwiZW5naW5lU291cmNlIiwicmVzb2x2ZUxvY2FsRW5naW5lU291cmNlIiwiYXR0YWNoIiwiZmkiLCJnZW5lcmF0b3JGYWN0b3J5IiwidW5kZWZpbmVkIiwieSIsImdlbmVyYXRvciIsImdldEdlbmVyYXRvclNvdXJjZUtleSIsImZvcm1Tb3VyY2VzUGF0aCIsImRlcGVuZGVuY2llc0hhc2giLCJnZXRBbGxEZXBlbmRlbmNpZXNIYXNoIiwic2tpcEdlbmVyYXRpb24iLCJnZW5lcmF0ZUZvcm0iLCJza2lwQ29kZVJlZm9ybWF0dGluZyIsInNraXBHZW5lcmF0ZWRDb2RlUmVmb3JtYXR0aW5nIiwicmVzb3VyY2VzSGFzaCIsImNvbXBpbGVGb3JtIiwiZm9ybU5hbWUiLCJ0aGVtZXMiLCJ3cml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzIiwid3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIiwid3JpdGVGb3JtTWV0YSIsIndhdGNoIiwic3RvcE9ic2VydmUxIiwib2JzZXJ2ZSIsInN0b3BPYnNlcnZlMiIsInN0b3BPYnNlcnZlMyIsInN0b3BPYnNlcnZlNCIsInN0b3BPYnNlcnZlNSIsInN0b3BPYnNlcnZlNiIsIndhaXRGb3JFeGl0Iiwic3RhcnREYXRlIiwiRGF0ZSIsIm5vdyIsIlByb21pc2UiLCJhbGwiLCJjdXJyZW50VmFsdWUiLCJlIiwiY29udGludWVPbkVycm9yIiwiZXJyb3IiLCJ0b3RhbFRpbWUiLCJjb25zb2xlIiwibG9nIiwiY2hhbGsiLCJncmVlbkJyaWdodCIsInByaW50VGltZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9EZXZCdWlsZC9SdW5EZXZCdWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5cbmltcG9ydCB7IEJ1aWxkQ2xpZW50SnNUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvQ2xpZW50SlMvQnVpbGRDbGllbnRKc1Rhc2tcIjtcbmltcG9ydCB7IEJ1aWxkTG9jYWxFbmdpbmVUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRW5naW5lL0J1aWxkTG9jYWxFbmdpbmVUYXNrXCI7XG5pbXBvcnQgeyBjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzaywgY3JlYXRlRW5naW5lV2VicGFja0NvbmZpZ1Rhc2sgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9FbmdpbmVTdHJ1Y3R1cmVVdGlsc1wiO1xuaW1wb3J0IHsgY29tcGlsZUZvcm0gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0NvbXBpbGVGb3JtXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUZvcm0gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0dlbmVyYXRlRm9ybVwiO1xuaW1wb3J0IHsgd3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vV3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlc1wiO1xuaW1wb3J0IHsgRlNUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRlNUYXNrXCI7XG5pbXBvcnQgeyBnZW5lcmF0b3JGYWN0b3J5LCBnZXRHZW5lcmF0b3JTb3VyY2VLZXkgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9HZW5lcmF0b3IvQWNxdWlyZUZvcm1HZW5lcmF0b3JcIjtcbmltcG9ydCB7IHJlc29sdmVMb2NhbEVuZ2luZVNvdXJjZSwgcmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyByZXNvbHZlRm9ybUluZm8gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9SZXNvbHZlRm9ybUluZm9cIjtcbmltcG9ydCB7IHdyaXRlRm9ybU1ldGEgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Xcml0ZUZvcm1NZXRhXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEZvcm1HbG9icyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0Zvcm1HbG9ic1V0aWxzXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9PYnNlcnZlXCI7XG5pbXBvcnQgeyBwcmludFRpbWUgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UaW1pbmdVdGlsc1wiO1xuaW1wb3J0IHsgd3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9Xcml0ZUF0dGFjaG1lbnRQYXRoRmlsZXNcIjtcbmltcG9ydCB7IENoYWluYWJsZVZhbHVlUHJvZHVjZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvQ2hhaW5hYmxlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0IHsgRW1wdHlQcm9kdWNlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9FbXB0eVByb2R1Y2VyXCI7XG5pbXBvcnQgeyBnZXRSbmdTY2hlbWFGaWxlbmFtZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vZ2V0Um5nU2NoZW1hRmlsZW5hbWVcIjtcbmltcG9ydCB7IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGggfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL0Zvcm1QYXRoVXRpbHNcIjtcbmltcG9ydCB7IFdlbGxLbm93bkRpcmVjdG9yaWVzIH0gZnJvbSBcIi4uL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0RpcmVjdG9yaWVzL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5cbmltcG9ydCB7IERldmVsb3BtZW50QnVpbGRPcHRpb25zIH0gZnJvbSBcIi4vRGV2QnVpbGRPcHRpb25zXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5EZXZCdWlsZChcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IERldmVsb3BtZW50QnVpbGRPcHRpb25zLFxuICAgIGVuZ2luZURpcmVjdG9yeTogc3RyaW5nLFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRldkJ1aWxkT3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBlbmdpbmVXZWJwYWNrQ29uZmlnVGFzayA9IGF3YWl0IGNyZWF0ZUVuZ2luZVdlYnBhY2tDb25maWdUYXNrKGVuZ2luZURpcmVjdG9yeSk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGJ1aWxkRW5naW5lQ2hhaW4gPSBlbmdpbmVXZWJwYWNrQ29uZmlnVGFzay5jaGFpbldpdGgoXG4gICAgICAgIHAgPT4gbmV3IEJ1aWxkTG9jYWxFbmdpbmVUYXNrKHAsIHJlc291cmNlc0RpcmVjdG9yeSwgb3B0aW9ucy5idWlsZERlYnVnT25seSlcbiAgICApO1xuXG4gICAgY29uc3QgY2xpZW50V2VicGFja0NvbmZpZ1Rhc2sgPSBhd2FpdCBjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzayhlbmdpbmVEaXJlY3RvcnkpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBidWlsZENsaWVudEpzQ2hhaW4gPSBjbGllbnRXZWJwYWNrQ29uZmlnVGFzay5jaGFpbldpdGgocCA9PiBuZXcgQnVpbGRDbGllbnRKc1Rhc2socCwgcmVzb3VyY2VzRGlyZWN0b3J5KSk7XG5cbiAgICBjb25zdCBzdGF0aWNSZXNvdXJjZXNDaGFpbiA9IE9ic2VydmUuZmlsZXMoXG4gICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi5cIiwgXCIuLlwiLCBcIlN0YXRpY0ZpbGVzRm9yUmVzb3VyY2VzRGlyXCIpLFxuICAgICAgICBcIiouanNcIlxuICAgICkuZG8oeCA9PlxuICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJTVEFUSUNTXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInB1YmxpY1wiLCBcInNjcmlwdHNcIikpXG4gICAgKTtcblxuICAgIGNvbnN0IHBpY2tMaXN0c0NoYWluID0gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJwaWNrbGlzdHNcIiksIFwiKi5qc29uXCIpLmRvKHggPT5cbiAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KFwiUElDS0xJU1RTXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInBpY2tsaXN0c1wiKSlcbiAgICApO1xuXG4gICAgY29uc3QgcmVwb3NpdG9yeVJvb3QgPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCIuLlwiKTtcbiAgICBjb25zdCBmb3JtR2xvYnMgPSBhd2FpdCBGb3JtR2xvYnMudmFsaWRhdGVHbG9icyhcbiAgICAgICAgYXdhaXQgRm9ybUdsb2JzLnJlc29sdmVTcGVjaWZpZXJzKG9wdGlvbnMuZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KSxcbiAgICAgICAgZmFybURpcmVjdG9yeVxuICAgICk7XG5cbiAgICAvKiog0JrQvtC90LLQtdGA0YLQtdGA0Ysg0L7Qv9C40YHQuCDQtNC70Y8g0YTQvtGA0LwsINC60L7RgtC+0YDRi9C1INC/0L7QutCwINC90LUg0YDQtdCw0LvQuNC30L7QstCw0L3RiyDQvdCwINC60LXQvdC00LgsINGB0LDQvNCwINC80LXRhdCw0L3QuNC60LAg0L7Qv9C40YHQuCDQv9C10YDQtdC90LXRgdC10L3QsCDQsiDRhNC+0YDQvNGLINCyINC60LXQvdC00Lgg0LDQv9C4LCDQv9C+0Y3RgtC+0LzRgyDQvtC90Lgg0LTQvtC70LbQvdGLINCx0YvRgtGMINCyIGNhbmR5LnJlc291cmNlc1xuICAgICAqICDQoNC10LDQu9C40LfRg9C10YLRgdGPINGC0L7Qu9GM0LrQviDQv9GA0Lgg0L7QsdGJ0LXQvCDQsdC40LvQtNC1INGE0L7RgNC8OiBjYW5keSBidWlsZCAqXG4gICAgICogKi9cbiAgICBsZXQgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW46IENoYWluYWJsZVZhbHVlUHJvZHVjZXI8c3RyaW5nPiB8IEVtcHR5UHJvZHVjZXIgPSBPYnNlcnZlLmVtcHR5KCk7XG4gICAgaWYgKGZvcm1HbG9ic1swXSA9PT0gXCIqXCIpIHtcbiAgICAgICAgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4gPSBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImV4dGVybmFsQ29udmVydGVyc1wiKSwgXCIqLnhzbHRcIikuZG8oXG4gICAgICAgICAgICB4ID0+XG4gICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkVYVEVSTkFMLUNPTlZFUlRFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwiY29udmVydGVyc1wiKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBidWlsZEZvcm1zQ2hhaW4gPSBPYnNlcnZlLmZvcm1EaXJlY3RvcmllcyhyZXBvc2l0b3J5Um9vdCwgZm9ybUdsb2JzKS5zcGxpdFRvUGFyYWxsZWxDaGFpbnMoXG4gICAgICAgIHggPT4geCxcbiAgICAgICAgeCA9PiB4LFxuICAgICAgICBhc3luYyBmb3JtUmVsYXRpdmVQYXRoID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVJlbGF0aXZlUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVJlbGF0aXZlUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtU2NoZW1hc0RpclBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwic2NoZW1hc1wiKTtcbiAgICAgICAgICAgIGNvbnN0IHJuZ1NjaGVtYU1hc2sgPSBgKiR7Z2V0Um5nU2NoZW1hRmlsZW5hbWUoZm9ybVNjaGVtYXNEaXJQYXRoLCBnZnYpfWA7XG5cbiAgICAgICAgICAgIHJldHVybiBPYnNlcnZlLmZpbGUocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKSlcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGZvcm1Kc29uRmlsZSA9PiByZXNvbHZlRm9ybUluZm8oZm9ybUpzb25GaWxlLCBmb3JtRGlyUGF0aCwgZW5naW5lRGlyZWN0b3J5KSlcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGFzeW5jIHggPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yU291cmNlOiByZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UoZW5naW5lRGlyZWN0b3J5KSxcbiAgICAgICAgICAgICAgICAgICAgZW5naW5lU291cmNlOiByZXNvbHZlTG9jYWxFbmdpbmVTb3VyY2UoZW5naW5lRGlyZWN0b3J5KSxcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiBnZW5lcmF0b3JGYWN0b3J5KGZpLmdlbmVyYXRvclNvdXJjZSwgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LCBmYWxzZSwgdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgKGZpLCB5KSA9PiAoeyAuLi5maSwgZ2VuZXJhdG9yOiB5IH0pLFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiBnZXRHZW5lcmF0b3JTb3VyY2VLZXkoZmkuZ2VuZXJhdG9yU291cmNlKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtU291cmNlc1BhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2NvbnRyb2xzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2NoZW1hcy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN1Z2FyLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY29udHJvbHMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhdXRvY2FsYy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImhlbHBlcnMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YWxpZGF0aW9ucy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2FsaXphdGlvbi8qKi8qXCJcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGFzeW5jIGZpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmZpLFxuICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXNIYXNoOiBhd2FpdCBmaS5nZW5lcmF0b3IuZ2V0QWxsRGVwZW5kZW5jaWVzSGFzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuZG8oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5za2lwR2VuZXJhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2VuZXJhdGVGb3JtKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybVNvdXJjZXNQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5nZW5lcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcENvZGVSZWZvcm1hdHRpbmc6IG9wdGlvbnMuc2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzSGFzaDogZmkuZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT4gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybVwiKSwgXCIqKi8qXCIpKVxuICAgICAgICAgICAgICAgIC5kbyhmaSA9PlxuICAgICAgICAgICAgICAgICAgICBjb21waWxlRm9ybShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmZvcm1OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkudGhlbWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuYnVpbGREZWJ1Z09ubHlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZG8oZmkgPT4gd3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyhmaS5mb3JtTmFtZSwgZmFybURpcmVjdG9yeSwgZm9ybURpclBhdGgsIHJlc291cmNlc0RpcmVjdG9yeSkpXG4gICAgICAgICAgICAgICAgLmRvKGZpID0+IHdyaXRlQXR0YWNobWVudFBhdGhGaWxlcyhmaS5mb3JtTmFtZSwgZmFybURpcmVjdG9yeSwgZm9ybURpclBhdGgsIHJlc291cmNlc0RpcmVjdG9yeSkpXG4gICAgICAgICAgICAgICAgLmRvKGZpID0+IHdyaXRlRm9ybU1ldGEocmVzb3VyY2VzRGlyZWN0b3J5LCBnZnYsIGZpLmVuZ2luZVNvdXJjZSwgZmkuZGVwZW5kZW5jaWVzSGFzaCwgZmkudGhlbWVzKSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJzY2hlbWFzXCIpLCBybmdTY2hlbWFNYXNrKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJTQ0hFTUFTXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJzY2hlbWFzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwiY29udmVydGVyc1wiKSwgXCIqXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkNPTlZFUlRFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcImNvbnZlcnRlcnNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJtZXJnZXJzXCIpLCBcIipcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTUVSR0VSU1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwibWVyZ2Vyc1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcIm5vcm1hbGl6ZVwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJOT1JNQUxJWkVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm5vcm1hbGl6ZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcInBhdGNoXCIpLCBcIioueHNsdFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJQQVRDSFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwicGF0Y2hcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJtYXBcIiksIFwiKi54bWxcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTUFQXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm1hcFwiKSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJ1bm1hcFwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJVTk1BUFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwidW5tYXBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgaWYgKGRldkJ1aWxkT3B0aW9ucy53YXRjaCkge1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTEgPSBhd2FpdCBidWlsZEVuZ2luZUNoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmUyID0gYXdhaXQgYnVpbGRDbGllbnRKc0NoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmUzID0gYXdhaXQgc3RhdGljUmVzb3VyY2VzQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTQgPSBhd2FpdCBidWlsZEZvcm1zQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTUgPSBhd2FpdCBwaWNrTGlzdHNDaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlNiA9IGF3YWl0IHJlc291cmNlc0V4dGVybmFsQ29udmVydGVyc0NoYWluLm9ic2VydmUoKTtcblxuICAgICAgICBhd2FpdCBjb250ZXh0LndhaXRGb3JFeGl0KCk7XG5cbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmUxKCk7XG4gICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlMigpO1xuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTMoKTtcbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmU0KCk7XG4gICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlNSgpO1xuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTYoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBEYXRlLm5vdygpO1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICBidWlsZEVuZ2luZUNoYWluLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgIGJ1aWxkQ2xpZW50SnNDaGFpbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICBzdGF0aWNSZXNvdXJjZXNDaGFpbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICByZXNvdXJjZXNFeHRlcm5hbENvbnZlcnRlcnNDaGFpbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHBpY2tMaXN0c0NoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYnVpbGRGb3Jtc0NoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmNvbnRpbnVlT25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKSxcbiAgICAgICAgXSk7XG4gICAgICAgIGNvbnN0IHRvdGFsVGltZSA9IERhdGUubm93KCkgLSBzdGFydERhdGU7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUubG9nKGAke2NoYWxrLmdyZWVuQnJpZ2h0KFwiQnVpbGQgc3VjY2Vzc1wiKX0gVG90YWwgdGltZTogJHtwcmludFRpbWUodG90YWxUaW1lKX1gKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxrQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcscUJBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLHFCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyw2QkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsT0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMscUJBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLHNCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxnQkFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksY0FBQSxHQUFBWixPQUFBO0FBRUEsSUFBQWEsZUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsYUFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsUUFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLFlBQUEsR0FBQWhCLE9BQUE7QUFDQSxJQUFBaUIseUJBQUEsR0FBQWpCLE9BQUE7QUFHQSxJQUFBa0IscUJBQUEsR0FBQWxCLE9BQUE7QUFDQSxJQUFBbUIsY0FBQSxHQUFBbkIsT0FB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
|
|
@@ -37,7 +37,7 @@ class FormGlobs {
|
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
for (const formJsonPath of await (0, _FsUtils.globAsync)(
|
|
40
|
+
for (const formJsonPath of await (0, _FsUtils.globAsync)(`${_WellKnownDirectories.WellKnownDirectories.TestFarmDir}/forms/**/*/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, {
|
|
41
41
|
cwd: repositoryRoot
|
|
42
42
|
})) {
|
|
43
43
|
if (await (0, _fsExtra.pathExists)(_path.default.join(repositoryRoot, formJsonPath))) {
|
|
@@ -174,4 +174,4 @@ class FormGlobs {
|
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
176
|
exports.FormGlobs = FormGlobs;
|
|
177
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfbG9kYXNoIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gb3JtUGF0aFV0aWxzIiwiX1dlbGxLbm93bkRpcmVjdG9yaWVzIiwiX0ZzVXRpbHMiLCJfU3RhdGljTG9nZ2VyIiwiRm9ybUdsb2JzIiwiY29uc3RydWN0b3IiLCJmYXJtRGlyZWN0b3J5IiwiZm9ybUdsb2JTdHJpbmdzIiwiZm9ybUdmdnMiLCJlbnVtZXJhdGVGb3Jtc0luUmVwb3NpdG9yeSIsInJlcG9zaXRvcnlSb290cyIsInJlc3VsdCIsInJlcG9zaXRvcnlSb290IiwiZm9ybUpzb25QYXRoIiwiZ2xvYkFzeW5jIiwiV2VsbEtub3duRGlyZWN0b3JpZXMiLCJGb3JtSnNvbkZpbGVOYW1lIiwiY3dkIiwicGF0aEV4aXN0cyIsInBhdGgiLCJqb2luIiwiZm9ybVBhdGgiLCJkaXJuYW1lIiwiZ2Z2IiwiZXh0cmFjdEdmdkZyb21Gb3JtUGF0aCIsInB1c2giLCJmb3JtUmVsYXRpdmVQYXRoIiwiQ2FuZHlTdWJkaXJlY3RvcnlOYW1lIiwicmVzb2x2ZUdsb2JzVG9HZnZzIiwiZm9ybUdsb2JzIiwibWFzayIsImNvbmNhdCIsIl8iLCJ1bmlxIiwidmFsaWRhdGVHbG9icyIsImxlbmd0aCIsImluY2x1ZGVzIiwiRXJyb3IiLCJyZXNvbHZlU3BlY2lmaWVycyIsImZvcm1HbG9ic1dpdGhTcGVjaWZpZXJzIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJ4IiwicmVzb2x2ZUZvcm1HbG9iU3BlY2lmaWVycyIsImZsYXQiLCJmb3JtR2xvYiIsImVuZHNXaXRoIiwiZm9ybXMiLCJyZXBsYWNlIiwiZm9ybSIsImZvcm1Db25maWciLCJyZWFkRm9ybUNvbmZpZyIsIk51bGxMb2dnZXIiLCJidWlsZCIsInVwZGF0ZUFsbCIsInJlc29sdmVGb3JtR2xvYnMiLCJ1cGRhdGVGb3IiLCJ1bmRlZmluZWQiLCJpc01hdGNoIiwiZW5zdXJlRm9ybUdsb2JzUmVzb2x2ZWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL0NvbW1vbnMvRm9ybUdsb2JzVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuXG5pbXBvcnQgeyByZWFkRm9ybUNvbmZpZyB9IGZyb20gXCIuLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgRmFybURpcmVjdG9yeSB9IGZyb20gXCIuLi9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EaXJlY3Rvcmllcy9GYXJtRGlyZWN0b3J5XCI7XG5pbXBvcnQgeyBleHRyYWN0R2Z2RnJvbUZvcm1QYXRoIH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbi9Gb3JtUGF0aFV0aWxzXCI7XG5pbXBvcnQgeyBXZWxsS25vd25EaXJlY3RvcmllcyB9IGZyb20gXCIuLi9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EaXJlY3Rvcmllcy9XZWxsS25vd25EaXJlY3Rvcmllc1wiO1xuXG5pbXBvcnQgeyBnbG9iQXN5bmMgfSBmcm9tIFwiLi9Gc1V0aWxzXCI7XG5pbXBvcnQgeyBOdWxsTG9nZ2VyIH0gZnJvbSBcIi4vTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcblxuZXhwb3J0IGNsYXNzIEZvcm1HbG9icyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5OiBGYXJtRGlyZWN0b3J5O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUdsb2JTdHJpbmdzOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIGZvcm1HZnZzPzogc3RyaW5nW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZmFybURpcmVjdG9yeTogRmFybURpcmVjdG9yeSwgZm9ybUdsb2JTdHJpbmdzOiBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLmZvcm1HbG9iU3RyaW5ncyA9IGZvcm1HbG9iU3RyaW5ncztcbiAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5ID0gZmFybURpcmVjdG9yeTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFzeW5jIGVudW1lcmF0ZUZvcm1zSW5SZXBvc2l0b3J5KFxuICAgICAgICAuLi5yZXBvc2l0b3J5Um9vdHM6IHN0cmluZ1tdXG4gICAgKTogUHJvbWlzZTxBcnJheTx7IGdmdjogc3RyaW5nOyBmb3JtUGF0aDogc3RyaW5nOyBmb3JtUmVsYXRpdmVQYXRoOiBzdHJpbmcgfT4+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBBcnJheTx7IGdmdjogc3RyaW5nOyBmb3JtUGF0aDogc3RyaW5nOyBmb3JtUmVsYXRpdmVQYXRoOiBzdHJpbmcgfT4gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHJlcG9zaXRvcnlSb290IG9mIHJlcG9zaXRvcnlSb290cykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBmb3JtSnNvblBhdGggb2YgYXdhaXQgZ2xvYkFzeW5jKFxuICAgICAgICAgICAgICAgIGBjYW5keS5mYXJtL2Zvcm1zLyoqLyovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lfWAsXG4gICAgICAgICAgICAgICAgeyBjd2Q6IHJlcG9zaXRvcnlSb290IH1cbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1QYXRoID0gcGF0aC5kaXJuYW1lKGZvcm1Kc29uUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1QYXRoOiBwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1QYXRoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1SZWxhdGl2ZVBhdGg6IGZvcm1QYXRoLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm1Kc29uUGF0aCBvZiBhd2FpdCBnbG9iQXN5bmMoYFRlc3RGYXJtL2Zvcm1zLyoqLyovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lfWAsIHtcbiAgICAgICAgICAgICAgICBjd2Q6IHJlcG9zaXRvcnlSb290LFxuICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1QYXRoID0gcGF0aC5kaXJuYW1lKGZvcm1Kc29uUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1QYXRoOiBwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1QYXRoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1SZWxhdGl2ZVBhdGg6IGZvcm1QYXRoLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm1Kc29uUGF0aCBvZiBhd2FpdCBnbG9iQXN5bmMoXG4gICAgICAgICAgICAgICAgYGNhbmR5LnJwbi5mYXJtL2Zvcm1zLyoqLyovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lfWAsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjd2Q6IHJlcG9zaXRvcnlSb290LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1QYXRoID0gcGF0aC5kaXJuYW1lKGZvcm1Kc29uUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1QYXRoOiBwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1QYXRoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1SZWxhdGl2ZVBhdGg6IGZvcm1QYXRoLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm1Kc29uUGF0aCBvZiBhd2FpdCBnbG9iQXN5bmMoXG4gICAgICAgICAgICAgICAgYGNhbmR5LmRpYWRvYy5mYXJtL2Zvcm1zLyoqLyovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lfWAsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjd2Q6IHJlcG9zaXRvcnlSb290LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1QYXRoID0gcGF0aC5kaXJuYW1lKGZvcm1Kc29uUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1QYXRoOiBwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1QYXRoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1SZWxhdGl2ZVBhdGg6IGZvcm1QYXRoLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm1Kc29uUGF0aCBvZiBhd2FpdCBnbG9iQXN5bmMoXG4gICAgICAgICAgICAgICAgYGZvcm1zLyoqLyovJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9LyR7V2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZX1gLFxuICAgICAgICAgICAgICAgIHsgY3dkOiByZXBvc2l0b3J5Um9vdCB9XG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMocGF0aC5qb2luKHJlcG9zaXRvcnlSb290LCBmb3JtSnNvblBhdGgpKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtUGF0aCA9IHBhdGguZGlybmFtZShmb3JtSnNvblBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBnZnYgPSBleHRyYWN0R2Z2RnJvbUZvcm1QYXRoKGZvcm1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2Z2OiBnZnYsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtUGF0aDogcGF0aC5qb2luKHJlcG9zaXRvcnlSb290LCBmb3JtUGF0aCksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtUmVsYXRpdmVQYXRoOiBmb3JtUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhc3luYyByZXNvbHZlR2xvYnNUb0dmdnMoZm9ybUdsb2JzOiBzdHJpbmdbXSwgZmFybURpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBsZXQgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IG1hc2sgb2YgZm9ybUdsb2JzKSB7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGF3YWl0IGdsb2JBc3luYyhtYXNrLCB7IGN3ZDogcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIikgfSkpLmNvbmNhdChcbiAgICAgICAgICAgICAgICBhd2FpdCBnbG9iQXN5bmMoYGZvcm1zLyoqLyR7bWFza30vJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9YCwge1xuICAgICAgICAgICAgICAgICAgICBjd2Q6IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcIi4uXCIpLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfLnVuaXEocmVzdWx0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFzeW5jIHZhbGlkYXRlR2xvYnMoZm9ybUdsb2JzOiBzdHJpbmdbXSwgZmFybURpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBsZXQgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IG1hc2sgb2YgZm9ybUdsb2JzKSB7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGF3YWl0IGdsb2JBc3luYyhtYXNrLCB7IGN3ZDogcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIikgfSkpLmNvbmNhdChcbiAgICAgICAgICAgICAgICBhd2FpdCBnbG9iQXN5bmMoYGZvcm1zLyoqLyR7bWFza30vJHtXZWxsS25vd25EaXJlY3Rvcmllcy5DYW5keVN1YmRpcmVjdG9yeU5hbWV9YCwge1xuICAgICAgICAgICAgICAgICAgICBjd2Q6IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcIi4uXCIpLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBpZiAobWFzay5pbmNsdWRlcyhcIipcIikgfHwgbWFzay5pbmNsdWRlcyhcIj9cIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDQnNCw0YHQutCwIEdGViAke21hc2t9INC90LUg0YHQvtC+0YLQstC10YLRgdGC0YHQstGD0LXRgiDQvdC4INC+0LTQvdC+0Lkg0YTQvtGA0LzQtWApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihg0KTQvtGA0LzRiyAke21hc2t9INC90LUg0L3QsNC50LTQtdC90L4uYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3JtR2xvYnM7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhc3luYyByZXNvbHZlU3BlY2lmaWVycyhmb3JtR2xvYnNXaXRoU3BlY2lmaWVyczogc3RyaW5nW10sIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgZm9ybUdsb2JzV2l0aFNwZWNpZmllcnMubWFwKHggPT4gdGhpcy5yZXNvbHZlRm9ybUdsb2JTcGVjaWZpZXJzKHgsIGZhcm1EaXJlY3RvcnkpKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gcmVzdWx0cy5mbGF0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYXN5bmMgcmVzb2x2ZUZvcm1HbG9iU3BlY2lmaWVycyhmb3JtR2xvYjogc3RyaW5nLCBmYXJtRGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGlmIChmb3JtR2xvYi5lbmRzV2l0aChcIjp3aXRoLXVpLXRlc3RzXCIpKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtcyA9IGF3YWl0IHRoaXMucmVzb2x2ZUdsb2JzVG9HZnZzKFtmb3JtR2xvYi5yZXBsYWNlKFwiOndpdGgtdWktdGVzdHNcIiwgXCJcIildLCBmYXJtRGlyZWN0b3J5KTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBmb3JtIG9mIGZvcm1zKSB7XG4gICAgICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMocGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZm9ybSwgXCJ0ZXN0c1wiKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goZm9ybSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybUdsb2IuZW5kc1dpdGgoXCI6d2l0aC1jaS1idWlsZFwiKSkge1xuICAgICAgICAgICAgY29uc3QgZm9ybXMgPSBhd2FpdCB0aGlzLnJlc29sdmVHbG9ic1RvR2Z2cyhbZm9ybUdsb2IucmVwbGFjZShcIjp3aXRoLWNpLWJ1aWxkXCIsIFwiXCIpXSwgZmFybURpcmVjdG9yeSk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybSBvZiBmb3Jtcykge1xuICAgICAgICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtSnNvblBhdGggPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBmb3JtLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmb3JtSnNvblBhdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIG5ldyBOdWxsTG9nZ2VyKCkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybUNvbmZpZy5idWlsZCA9PT0gXCJjaVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChmb3JtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtmb3JtR2xvYl07XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVwZGF0ZUFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5mb3JtR2Z2cyA9IGF3YWl0IHRoaXMuZmFybURpcmVjdG9yeS5yZXNvbHZlRm9ybUdsb2JzKHRoaXMuZm9ybUdsb2JTdHJpbmdzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgdXBkYXRlRm9yKGdmdjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1HZnZzID09IHVuZGVmaW5lZCB8fCAhKGF3YWl0IHRoaXMuaXNNYXRjaChnZnYpKSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVBbGwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBlbnN1cmVGb3JtR2xvYnNSZXNvbHZlZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdmdnMgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZUFsbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGlzTWF0Y2goZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdmdnMgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYWxsIG1ldGhvZCBlbnN1cmVGb3JtR2xvYnNSZXNvbHZlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtR2Z2cy5pbmNsdWRlcyhnZnYpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxjQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxxQkFBQSxHQUFBTCxPQUFBO0FBRUEsSUFBQU0sUUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sYUFBQSxHQUFBUCxPQUFBO0FBRU8sTUFBTVEsU0FBUyxDQUFD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
|
|
177
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfbG9kYXNoIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gb3JtUGF0aFV0aWxzIiwiX1dlbGxLbm93bkRpcmVjdG9yaWVzIiwiX0ZzVXRpbHMiLCJfU3RhdGljTG9nZ2VyIiwiRm9ybUdsb2JzIiwiY29uc3RydWN0b3IiLCJmYXJtRGlyZWN0b3J5IiwiZm9ybUdsb2JTdHJpbmdzIiwiZm9ybUdmdnMiLCJlbnVtZXJhdGVGb3Jtc0luUmVwb3NpdG9yeSIsInJlcG9zaXRvcnlSb290cyIsInJlc3VsdCIsInJlcG9zaXRvcnlSb290IiwiZm9ybUpzb25QYXRoIiwiZ2xvYkFzeW5jIiwiV2VsbEtub3duRGlyZWN0b3JpZXMiLCJGb3JtSnNvbkZpbGVOYW1lIiwiY3dkIiwicGF0aEV4aXN0cyIsInBhdGgiLCJqb2luIiwiZm9ybVBhdGgiLCJkaXJuYW1lIiwiZ2Z2IiwiZXh0cmFjdEdmdkZyb21Gb3JtUGF0aCIsInB1c2giLCJmb3JtUmVsYXRpdmVQYXRoIiwiVGVzdEZhcm1EaXIiLCJDYW5keVN1YmRpcmVjdG9yeU5hbWUiLCJyZXNvbHZlR2xvYnNUb0dmdnMiLCJmb3JtR2xvYnMiLCJtYXNrIiwiY29uY2F0IiwiXyIsInVuaXEiLCJ2YWxpZGF0ZUdsb2JzIiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJFcnJvciIsInJlc29sdmVTcGVjaWZpZXJzIiwiZm9ybUdsb2JzV2l0aFNwZWNpZmllcnMiLCJyZXN1bHRzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsIngiLCJyZXNvbHZlRm9ybUdsb2JTcGVjaWZpZXJzIiwiZmxhdCIsImZvcm1HbG9iIiwiZW5kc1dpdGgiLCJmb3JtcyIsInJlcGxhY2UiLCJmb3JtIiwiZm9ybUNvbmZpZyIsInJlYWRGb3JtQ29uZmlnIiwiTnVsbExvZ2dlciIsImJ1aWxkIiwidXBkYXRlQWxsIiwicmVzb2x2ZUZvcm1HbG9icyIsInVwZGF0ZUZvciIsInVuZGVmaW5lZCIsImlzTWF0Y2giLCJlbnN1cmVGb3JtR2xvYnNSZXNvbHZlZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvQ29tbW9ucy9Gb3JtR2xvYnNVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBwYXRoRXhpc3RzIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgXyBmcm9tIFwibG9kYXNoXCI7XG5cbmltcG9ydCB7IHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBGYXJtRGlyZWN0b3J5IH0gZnJvbSBcIi4uL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0RpcmVjdG9yaWVzL0Zhcm1EaXJlY3RvcnlcIjtcbmltcG9ydCB7IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGggfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9uL0Zvcm1QYXRoVXRpbHNcIjtcbmltcG9ydCB7IFdlbGxLbm93bkRpcmVjdG9yaWVzIH0gZnJvbSBcIi4uL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0RpcmVjdG9yaWVzL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5cbmltcG9ydCB7IGdsb2JBc3luYyB9IGZyb20gXCIuL0ZzVXRpbHNcIjtcbmltcG9ydCB7IE51bGxMb2dnZXIgfSBmcm9tIFwiLi9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuXG5leHBvcnQgY2xhc3MgRm9ybUdsb2JzIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZhcm1EaXJlY3Rvcnk6IEZhcm1EaXJlY3Rvcnk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtR2xvYlN0cmluZ3M6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgZm9ybUdmdnM/OiBzdHJpbmdbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihmYXJtRGlyZWN0b3J5OiBGYXJtRGlyZWN0b3J5LCBmb3JtR2xvYlN0cmluZ3M6IHN0cmluZ1tdKSB7XG4gICAgICAgIHRoaXMuZm9ybUdsb2JTdHJpbmdzID0gZm9ybUdsb2JTdHJpbmdzO1xuICAgICAgICB0aGlzLmZhcm1EaXJlY3RvcnkgPSBmYXJtRGlyZWN0b3J5O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXN5bmMgZW51bWVyYXRlRm9ybXNJblJlcG9zaXRvcnkoXG4gICAgICAgIC4uLnJlcG9zaXRvcnlSb290czogc3RyaW5nW11cbiAgICApOiBQcm9taXNlPEFycmF5PHsgZ2Z2OiBzdHJpbmc7IGZvcm1QYXRoOiBzdHJpbmc7IGZvcm1SZWxhdGl2ZVBhdGg6IHN0cmluZyB9Pj4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IEFycmF5PHsgZ2Z2OiBzdHJpbmc7IGZvcm1QYXRoOiBzdHJpbmc7IGZvcm1SZWxhdGl2ZVBhdGg6IHN0cmluZyB9PiA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgcmVwb3NpdG9yeVJvb3Qgb2YgcmVwb3NpdG9yeVJvb3RzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm1Kc29uUGF0aCBvZiBhd2FpdCBnbG9iQXN5bmMoXG4gICAgICAgICAgICAgICAgYGNhbmR5LmZhcm0vZm9ybXMvKiovKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWV9YCxcbiAgICAgICAgICAgICAgICB7IGN3ZDogcmVwb3NpdG9yeVJvb3QgfVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybUpzb25QYXRoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybVBhdGggPSBwYXRoLmRpcm5hbWUoZm9ybUpzb25QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2Z2ID0gZXh0cmFjdEdmdkZyb21Gb3JtUGF0aChmb3JtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdmdjogZ2Z2LFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVBhdGg6IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVBhdGgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVJlbGF0aXZlUGF0aDogZm9ybVBhdGgsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybUpzb25QYXRoIG9mIGF3YWl0IGdsb2JBc3luYyhcbiAgICAgICAgICAgICAgICBgJHtXZWxsS25vd25EaXJlY3Rvcmllcy5UZXN0RmFybURpcn0vZm9ybXMvKiovKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWV9YCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeVJvb3QsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybUpzb25QYXRoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybVBhdGggPSBwYXRoLmRpcm5hbWUoZm9ybUpzb25QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2Z2ID0gZXh0cmFjdEdmdkZyb21Gb3JtUGF0aChmb3JtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdmdjogZ2Z2LFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVBhdGg6IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVBhdGgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVJlbGF0aXZlUGF0aDogZm9ybVBhdGgsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybUpzb25QYXRoIG9mIGF3YWl0IGdsb2JBc3luYyhcbiAgICAgICAgICAgICAgICBgY2FuZHkucnBuLmZhcm0vZm9ybXMvKiovKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWV9YCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeVJvb3QsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybUpzb25QYXRoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybVBhdGggPSBwYXRoLmRpcm5hbWUoZm9ybUpzb25QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2Z2ID0gZXh0cmFjdEdmdkZyb21Gb3JtUGF0aChmb3JtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdmdjogZ2Z2LFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVBhdGg6IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVBhdGgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVJlbGF0aXZlUGF0aDogZm9ybVBhdGgsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybUpzb25QYXRoIG9mIGF3YWl0IGdsb2JBc3luYyhcbiAgICAgICAgICAgICAgICBgY2FuZHkuZGlhZG9jLmZhcm0vZm9ybXMvKiovKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWV9YCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeVJvb3QsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybUpzb25QYXRoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybVBhdGggPSBwYXRoLmRpcm5hbWUoZm9ybUpzb25QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2Z2ID0gZXh0cmFjdEdmdkZyb21Gb3JtUGF0aChmb3JtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdmdjogZ2Z2LFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVBhdGg6IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVBhdGgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVJlbGF0aXZlUGF0aDogZm9ybVBhdGgsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybUpzb25QYXRoIG9mIGF3YWl0IGdsb2JBc3luYyhcbiAgICAgICAgICAgICAgICBgZm9ybXMvKiovKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vJHtXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lfWAsXG4gICAgICAgICAgICAgICAgeyBjd2Q6IHJlcG9zaXRvcnlSb290IH1cbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1QYXRoID0gcGF0aC5kaXJuYW1lKGZvcm1Kc29uUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1QYXRoOiBwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1QYXRoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1SZWxhdGl2ZVBhdGg6IGZvcm1QYXRoLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlc29sdmVHbG9ic1RvR2Z2cyhmb3JtR2xvYnM6IHN0cmluZ1tdLCBmYXJtRGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGxldCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgbWFzayBvZiBmb3JtR2xvYnMpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYXdhaXQgZ2xvYkFzeW5jKG1hc2ssIHsgY3dkOiBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiKSB9KSkuY29uY2F0KFxuICAgICAgICAgICAgICAgIGF3YWl0IGdsb2JBc3luYyhgZm9ybXMvKiovJHttYXNrfS8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX1gLCB7XG4gICAgICAgICAgICAgICAgICAgIGN3ZDogcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiLi5cIiksXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF8udW5pcShyZXN1bHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXN5bmMgdmFsaWRhdGVHbG9icyhmb3JtR2xvYnM6IHN0cmluZ1tdLCBmYXJtRGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGxldCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgbWFzayBvZiBmb3JtR2xvYnMpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYXdhaXQgZ2xvYkFzeW5jKG1hc2ssIHsgY3dkOiBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiKSB9KSkuY29uY2F0KFxuICAgICAgICAgICAgICAgIGF3YWl0IGdsb2JBc3luYyhgZm9ybXMvKiovJHttYXNrfS8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX1gLCB7XG4gICAgICAgICAgICAgICAgICAgIGN3ZDogcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiLi5cIiksXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmIChtYXNrLmluY2x1ZGVzKFwiKlwiKSB8fCBtYXNrLmluY2x1ZGVzKFwiP1wiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYNCc0LDRgdC60LAgR0ZWICR7bWFza30g0L3QtSDRgdC+0L7RgtCy0LXRgtGB0YLRgdCy0YPQtdGCINC90Lgg0L7QtNC90L7QuSDRhNC+0YDQvNC1YCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDQpNC+0YDQvNGLICR7bWFza30g0L3QtSDQvdCw0LnQtNC10L3Qvi5gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1HbG9icztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlc29sdmVTcGVjaWZpZXJzKGZvcm1HbG9ic1dpdGhTcGVjaWZpZXJzOiBzdHJpbmdbXSwgZmFybURpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBmb3JtR2xvYnNXaXRoU3BlY2lmaWVycy5tYXAoeCA9PiB0aGlzLnJlc29sdmVGb3JtR2xvYlNwZWNpZmllcnMoeCwgZmFybURpcmVjdG9yeSkpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiByZXN1bHRzLmZsYXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBhc3luYyByZXNvbHZlRm9ybUdsb2JTcGVjaWZpZXJzKGZvcm1HbG9iOiBzdHJpbmcsIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgaWYgKGZvcm1HbG9iLmVuZHNXaXRoKFwiOndpdGgtdWktdGVzdHNcIikpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1zID0gYXdhaXQgdGhpcy5yZXNvbHZlR2xvYnNUb0dmdnMoW2Zvcm1HbG9iLnJlcGxhY2UoXCI6d2l0aC11aS10ZXN0c1wiLCBcIlwiKV0sIGZhcm1EaXJlY3RvcnkpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm0gb2YgZm9ybXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBmb3JtLCBcInRlc3RzXCIpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChmb3JtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtR2xvYi5lbmRzV2l0aChcIjp3aXRoLWNpLWJ1aWxkXCIpKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtcyA9IGF3YWl0IHRoaXMucmVzb2x2ZUdsb2JzVG9HZnZzKFtmb3JtR2xvYi5yZXBsYWNlKFwiOndpdGgtY2ktYnVpbGRcIiwgXCJcIildLCBmYXJtRGlyZWN0b3J5KTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBmb3JtIG9mIGZvcm1zKSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1Kc29uUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGZvcm0sIFdlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgbmV3IE51bGxMb2dnZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmb3JtQ29uZmlnLmJ1aWxkID09PSBcImNpXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZvcm0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW2Zvcm1HbG9iXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgdXBkYXRlQWxsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmZvcm1HZnZzID0gYXdhaXQgdGhpcy5mYXJtRGlyZWN0b3J5LnJlc29sdmVGb3JtR2xvYnModGhpcy5mb3JtR2xvYlN0cmluZ3MpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB1cGRhdGVGb3IoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdmdnMgPT0gdW5kZWZpbmVkIHx8ICEoYXdhaXQgdGhpcy5pc01hdGNoKGdmdikpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZUFsbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGVuc3VyZUZvcm1HbG9ic1Jlc29sdmVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5mb3JtR2Z2cyA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlQWxsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgaXNNYXRjaChnZnY6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBpZiAodGhpcy5mb3JtR2Z2cyA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbGwgbWV0aG9kIGVuc3VyZUZvcm1HbG9ic1Jlc29sdmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1HZnZzLmluY2x1ZGVzKGdmdik7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcsZ0JBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLGNBQUEsR0FBQUosT0FBQTtBQUNB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
|
|
@@ -21,7 +21,7 @@ class Observe {
|
|
|
21
21
|
return new _DirectoryEntriesProducer.DirectoryEntriesProducer(pathToDir, masks).skipUpdatesUntilNextCompleted();
|
|
22
22
|
}
|
|
23
23
|
static formDirectories(repositoryRoot, gfvMasks) {
|
|
24
|
-
return new _DirectoryEntriesProducer.DirectoryEntriesProducer(repositoryRoot, [...gfvMasks.map(x => `forms/**/${x}/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}`), ...gfvMasks.map(x => `candy.farm/forms/${x}`), ...gfvMasks.map(x => `candy.rpn.farm/forms/${x}`), ...gfvMasks.map(x => `candy.diadoc.farm/forms/${x}`)]).skipUpdatesUntilNextCompleted();
|
|
24
|
+
return new _DirectoryEntriesProducer.DirectoryEntriesProducer(repositoryRoot, [...gfvMasks.map(x => `forms/**/${x}/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}`), ...gfvMasks.map(x => `${_WellKnownDirectories.WellKnownDirectories.TestFarmDir}/forms/${x}`), ...gfvMasks.map(x => `candy.farm/forms/${x}`), ...gfvMasks.map(x => `candy.rpn.farm/forms/${x}`), ...gfvMasks.map(x => `candy.diadoc.farm/forms/${x}`)]).skipUpdatesUntilNextCompleted();
|
|
25
25
|
}
|
|
26
26
|
static files(pathToDir, ...masks) {
|
|
27
27
|
return new _FileSystemEntriesProducer.FileSystemEntriesProducer(pathToDir, masks).skipUpdatesUntilNextCompleted();
|
|
@@ -31,4 +31,4 @@ class Observe {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
exports.Observe = Observe;
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRGlyZWN0b3J5RW50cmllc1Byb2R1Y2VyIiwicmVxdWlyZSIsIl9FbXB0eVByb2R1Y2VyIiwiX0ZpbGVTeXN0ZW1FbnRyaWVzUHJvZHVjZXIiLCJfRmlsZVZhbHVlUHJvZHVjZXIiLCJfU2luZ2xlVmFsdWVQcm9kdWNlciIsIl9XZWxsS25vd25EaXJlY3RvcmllcyIsIk9ic2VydmUiLCJlbXB0eSIsIkVtcHR5UHJvZHVjZXIiLCJ2YWx1ZSIsIngiLCJTaW5nbGVWYWx1ZVByb2R1Y2VyIiwiZGlyZWN0b3J5IiwicGF0aFRvRGlyIiwibWFza3MiLCJEaXJlY3RvcnlFbnRyaWVzUHJvZHVjZXIiLCJza2lwVXBkYXRlc1VudGlsTmV4dENvbXBsZXRlZCIsImZvcm1EaXJlY3RvcmllcyIsInJlcG9zaXRvcnlSb290IiwiZ2Z2TWFza3MiLCJtYXAiLCJXZWxsS25vd25EaXJlY3RvcmllcyIsIkNhbmR5U3ViZGlyZWN0b3J5TmFtZSIsIlRlc3RGYXJtRGlyIiwiZmlsZXMiLCJGaWxlU3lzdGVtRW50cmllc1Byb2R1Y2VyIiwiZmlsZSIsInBhdGhUb0ZpbGUiLCJGaWxlVmFsdWVQcm9kdWNlciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQ29tbW9ucy9UYXNrc0NvcmUvT2JzZXJ2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFpbmFibGVWYWx1ZVByb2R1Y2VyIH0gZnJvbSBcIi4vQ2hhaW5hYmxlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0IHsgRGlyZWN0b3J5RW50cmllc1Byb2R1Y2VyIH0gZnJvbSBcIi4vRGlyZWN0b3J5RW50cmllc1Byb2R1Y2VyXCI7XG5pbXBvcnQgeyBFbXB0eVByb2R1Y2VyIH0gZnJvbSBcIi4vRW1wdHlQcm9kdWNlclwiO1xuaW1wb3J0IHsgRmlsZVN5c3RlbUVudHJpZXNQcm9kdWNlciB9IGZyb20gXCIuL0ZpbGVTeXN0ZW1FbnRyaWVzUHJvZHVjZXJcIjtcbmltcG9ydCB7IEZpbGVWYWx1ZVByb2R1Y2VyIH0gZnJvbSBcIi4vRmlsZVZhbHVlUHJvZHVjZXJcIjtcbmltcG9ydCB7IFNpbmdsZVZhbHVlUHJvZHVjZXIgfSBmcm9tIFwiLi9TaW5nbGVWYWx1ZVByb2R1Y2VyXCI7XG5pbXBvcnQge1xuICAgIFdlbGxLbm93bkRpcmVjdG9yaWVzXG59IGZyb20gXCIuLi8uLi9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EaXJlY3Rvcmllcy9XZWxsS25vd25EaXJlY3Rvcmllc1wiO1xuXG5leHBvcnQgY2xhc3MgT2JzZXJ2ZSB7XG4gICAgcHVibGljIHN0YXRpYyBlbXB0eSgpOiBFbXB0eVByb2R1Y2VyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBFbXB0eVByb2R1Y2VyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB2YWx1ZTxUPih4OiBUKTogU2luZ2xlVmFsdWVQcm9kdWNlcjxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgU2luZ2xlVmFsdWVQcm9kdWNlcjxUPih4KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGRpcmVjdG9yeShwYXRoVG9EaXI6IHN0cmluZywgbWFza3M6IHN0cmluZ1tdKTogQ2hhaW5hYmxlVmFsdWVQcm9kdWNlcjxzdHJpbmdbXT4ge1xuICAgICAgICByZXR1cm4gbmV3IERpcmVjdG9yeUVudHJpZXNQcm9kdWNlcihwYXRoVG9EaXIsIG1hc2tzKS5za2lwVXBkYXRlc1VudGlsTmV4dENvbXBsZXRlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZm9ybURpcmVjdG9yaWVzKHJlcG9zaXRvcnlSb290OiBzdHJpbmcsIGdmdk1hc2tzOiBzdHJpbmdbXSk6IENoYWluYWJsZVZhbHVlUHJvZHVjZXI8c3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBEaXJlY3RvcnlFbnRyaWVzUHJvZHVjZXIocmVwb3NpdG9yeVJvb3QsIFtcbiAgICAgICAgICAgIC4uLmdmdk1hc2tzLm1hcCh4ID0+IGBmb3Jtcy8qKi8ke3h9LyR7V2VsbEtub3duRGlyZWN0b3JpZXMuQ2FuZHlTdWJkaXJlY3RvcnlOYW1lfWApLFxuICAgICAgICAgICAgLi4uZ2Z2TWFza3MubWFwKHggPT4gYCR7V2VsbEtub3duRGlyZWN0b3JpZXMuVGVzdEZhcm1EaXJ9L2Zvcm1zLyR7eH1gKSxcbiAgICAgICAgICAgIC4uLmdmdk1hc2tzLm1hcCh4ID0+IGBjYW5keS5mYXJtL2Zvcm1zLyR7eH1gKSxcbiAgICAgICAgICAgIC4uLmdmdk1hc2tzLm1hcCh4ID0+IGBjYW5keS5ycG4uZmFybS9mb3Jtcy8ke3h9YCksXG4gICAgICAgICAgICAuLi5nZnZNYXNrcy5tYXAoeCA9PiBgY2FuZHkuZGlhZG9jLmZhcm0vZm9ybXMvJHt4fWApLFxuICAgICAgICBdKS5za2lwVXBkYXRlc1VudGlsTmV4dENvbXBsZXRlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZmlsZXMocGF0aFRvRGlyOiBzdHJpbmcsIC4uLm1hc2tzOiBzdHJpbmdbXSk6IENoYWluYWJsZVZhbHVlUHJvZHVjZXI8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgRmlsZVN5c3RlbUVudHJpZXNQcm9kdWNlcihwYXRoVG9EaXIsIG1hc2tzKS5za2lwVXBkYXRlc1VudGlsTmV4dENvbXBsZXRlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZmlsZShwYXRoVG9GaWxlOiBzdHJpbmcpOiBDaGFpbmFibGVWYWx1ZVByb2R1Y2VyPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IEZpbGVWYWx1ZVByb2R1Y2VyKHBhdGhUb0ZpbGUpLnNraXBVcGRhdGVzVW50aWxOZXh0Q29tcGxldGVkKCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSx5QkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsY0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsMEJBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGtCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxvQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUsscUJBQUEsR0FBQUwsT0FBQTtBQUlPLE1BQU1NLE9BQU8sQ0FBQztFQUNqQixPQUFjQyxLQUFLQSxDQUFBLEVBQWtCO0lBQ2pDLE9BQU8sSUFBSUMsNEJBQWEsQ0FBQyxDQUFDO0VBQzlCO0VBRUEsT0FBY0MsS0FBS0EsQ0FBSUMsQ0FBSSxFQUEwQjtJQUNqRCxPQUFPLElBQUlDLHdDQUFtQixDQUFJRCxDQUFDLENBQUM7RUFDeEM7RUFFQSxPQUFjRSxTQUFTQSxDQUFDQyxTQUFpQixFQUFFQyxLQUFlLEVBQW9DO0lBQzFGLE9BQU8sSUFBSUMsa0RBQXdCLENBQUNGLFNBQVMsRUFBRUMsS0FBSyxDQUFDLENBQUNFLDZCQUE2QixDQUFDLENBQUM7RUFDekY7RUFFQSxPQUFjQyxlQUFlQSxDQUFDQyxjQUFzQixFQUFFQyxRQUFrQixFQUFvQztJQUN4RyxPQUFPLElBQUlKLGtEQUF3QixDQUFDRyxjQUFjLEVBQUUsQ0FDaEQsR0FBR0MsUUFBUSxDQUFDQyxHQUFHLENBQUNWLENBQUMsSUFBSyxZQUFXQSxDQUFFLElBQUdXLDBDQUFvQixDQUFDQyxxQkFBc0IsRUFBQyxDQUFDLEVBQ25GLEdBQUdILFFBQVEsQ0FBQ0MsR0FBRyxDQUFDVixDQUFDLElBQUssR0FBRVcsMENBQW9CLENBQUNFLFdBQVksVUFBU2IsQ0FBRSxFQUFDLENBQUMsRUFDdEUsR0FBR1MsUUFBUSxDQUFDQyxHQUFHLENBQUNWLENBQUMsSUFBSyxvQkFBbUJBLENBQUUsRUFBQyxDQUFDLEVBQzdDLEdBQUdTLFFBQVEsQ0FBQ0MsR0FBRyxDQUFDVixDQUFDLElBQUssd0JBQXVCQSxDQUFFLEVBQUMsQ0FBQyxFQUNqRCxHQUFHUyxRQUFRLENBQUNDLEdBQUcsQ0FBQ1YsQ0FBQyxJQUFLLDJCQUEwQkEsQ0FBRSxFQUFDLENBQUMsQ0FDdkQsQ0FBQyxDQUFDTSw2QkFBNkIsQ0FBQyxDQUFDO0VBQ3RDO0VBRUEsT0FBY1EsS0FBS0EsQ0FBQ1gsU0FBaUIsRUFBRSxHQUFHQyxLQUFlLEVBQWtDO0lBQ3ZGLE9BQU8sSUFBSVcsb0RBQXlCLENBQUNaLFNBQVMsRUFBRUMsS0FBSyxDQUFDLENBQUNFLDZCQUE2QixDQUFDLENBQUM7RUFDMUY7RUFFQSxPQUFjVSxJQUFJQSxDQUFDQyxVQUFrQixFQUFrQztJQUNuRSxPQUFPLElBQUlDLG9DQUFpQixDQUFDRCxVQUFVLENBQUMsQ0FBQ1gsNkJBQTZCLENBQUMsQ0FBQztFQUM1RTtBQUNKO0FBQUNhLE9BQUEsQ0FBQXZCLE9BQUEsR0FBQUEsT0FBQSJ9
|