@cdktn/provider-generator 0.25.0-pre.9 → 0.25.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/README.md +12 -0
- package/build/__tests__/edge-provider-schema/builder.js +3 -3
- package/build/__tests__/edge-provider-schema/cli.js +18 -8
- package/build/__tests__/edge-provider-schema.test.js +18 -8
- package/build/__tests__/provider.test.js +44 -16
- package/build/get/__tests__/constructs-maker.test.js +91 -8
- package/build/get/__tests__/generator/complex-computed-types.test.js +18 -8
- package/build/get/__tests__/generator/deep-nested-attributes.test.js +18 -8
- package/build/get/__tests__/generator/description-escaping.test.js +18 -8
- package/build/get/__tests__/generator/empty-provider-resources.test.js +18 -8
- package/build/get/__tests__/generator/ephemeral-resources.test.js +18 -8
- package/build/get/__tests__/generator/export-sharding.test.js +18 -8
- package/build/get/__tests__/generator/import-style.test.js +18 -8
- package/build/get/__tests__/generator/module-docs-registry.test.d.ts +2 -0
- package/build/get/__tests__/generator/module-docs-registry.test.js +91 -0
- package/build/get/__tests__/generator/module-generator.test.js +18 -8
- package/build/get/__tests__/generator/nested-types.test.js +18 -8
- package/build/get/__tests__/generator/provider-functions-name-collision.test.d.ts +2 -0
- package/build/get/__tests__/generator/provider-functions-name-collision.test.js +89 -0
- package/build/get/__tests__/generator/provider-functions.test.js +18 -8
- package/build/get/__tests__/generator/provider.test.js +18 -8
- package/build/get/__tests__/generator/resource-types.test.js +18 -8
- package/build/get/__tests__/generator/skipped-attributes.test.js +18 -8
- package/build/get/__tests__/generator/types.test.js +18 -8
- package/build/get/__tests__/generator/versions-file.test.js +25 -10
- package/build/get/__tests__/generator/write-only.test.js +18 -8
- package/build/get/__tests__/registry-class-invalidation.test.d.ts +2 -0
- package/build/get/__tests__/registry-class-invalidation.test.js +120 -0
- package/build/get/__tests__/target-versions.test.js +46 -8
- package/build/get/__tests__/util.js +20 -11
- package/build/get/constructs-maker.d.ts +17 -0
- package/build/get/constructs-maker.js +86 -11
- package/build/get/generator/emitter/struct-emitter.js +20 -10
- package/build/get/generator/loop-detection.js +2 -3
- package/build/get/generator/models/attribute-model.js +3 -3
- package/build/get/generator/models/attribute-type-model.js +3 -3
- package/build/get/generator/models/provider-function-model.js +3 -4
- package/build/get/generator/models/resource-model.d.ts +5 -1
- package/build/get/generator/models/resource-model.js +20 -10
- package/build/get/generator/models/supported-stored-classes.js +2 -3
- package/build/get/generator/module-generator.d.ts +3 -2
- package/build/get/generator/module-generator.js +15 -17
- package/build/get/generator/provider-generator.d.ts +15 -1
- package/build/get/generator/provider-generator.js +20 -5
- package/build/get/generator/resource-parser.d.ts +3 -1
- package/build/get/generator/resource-parser.js +16 -7
- package/build/get/generator/sanitized-comments.js +2 -3
- package/build/get/generator/skipped-attributes.js +2 -3
- package/build/index.js +3 -3
- package/build/util.js +3 -4
- package/package.json +32 -9
- package/src/__tests__/__snapshots__/provider.test.ts.snap +1309 -3206
- package/src/__tests__/provider.test.ts +31 -8
- package/src/get/__tests__/constructs-maker.test.ts +125 -1
- package/src/get/__tests__/generator/fixtures/provider-functions-name-collision.test.fixture.json +42 -0
- package/src/get/__tests__/generator/module-docs-registry.test.ts +89 -0
- package/src/get/__tests__/generator/provider-functions-name-collision.test.ts +84 -0
- package/src/get/__tests__/generator/versions-file.test.ts +10 -5
- package/src/get/__tests__/registry-class-invalidation.test.ts +123 -0
- package/src/get/__tests__/target-versions.test.ts +43 -0
- package/src/get/constructs-maker.ts +108 -7
- package/src/get/generator/emitter/struct-emitter.ts +2 -2
- package/src/get/generator/models/attribute-type-model.ts +1 -2
- package/src/get/generator/models/resource-model.ts +32 -9
- package/src/get/generator/module-generator.ts +20 -18
- package/src/get/generator/provider-generator.ts +27 -4
- package/src/get/generator/resource-parser.ts +21 -3
- package/tsconfig.json +4 -0
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
// Copyright (c) HashiCorp, Inc
|
|
27
37
|
// SPDX-License-Identifier: MPL-2.0
|
|
@@ -474,4 +484,4 @@ onTf1_6AndNewer("generate module that can't be initialized", async () => {
|
|
|
474
484
|
"
|
|
475
485
|
`);
|
|
476
486
|
}, 120000);
|
|
477
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWdlbmVyYXRvci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dldC9fX3Rlc3RzX18vZ2VuZXJhdG9yL21vZHVsZS1nZW5lcmF0b3IudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDRDQUFxRTtBQUNyRSw2REFBeUQ7QUFDekQsa0NBQXNEO0FBQ3RELGlEQUF5QztBQUN6QyxrQ0FBMEM7QUFFMUMsTUFBTSxHQUFHLEdBQUcsSUFBQSxzQkFBZSxHQUFFLENBQUM7QUFFOUIsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsSUFBWSxFQUNaLEVBQXVCLEVBQ3ZCLE9BQWdCLEVBQ2hCLEVBQUU7SUFDRixNQUFNLG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLElBQUksV0FBVyxDQUFDO0lBQzdFLE1BQU0sTUFBTSxHQUFHLElBQUEsd0JBQVEsRUFBQyxHQUFHLG1CQUFtQixnQkFBZ0IsQ0FBQyxDQUFDO0lBRWhFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztJQUVsRSxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkQsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsS0FB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QUFDO0lBQ0YsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUVuQyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxnQ0FBZ0MsQ0FBQyxFQUNwRCxPQUFPLENBQ1IsQ0FBQztJQUVGLG1GQUFtRjtJQUNuRiw4REFBOEQ7SUFDOUQsMkRBQTJEO0lBQzNELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXNXcEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxFQUNELE1BQU0sQ0FDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgTGFuZ3VhZ2UsIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7IENvbnN0cnVjdHNNYWtlciB9IGZyb20gXCIuLi8uLi9jb25zdHJ1Y3RzLW1ha2VyXCI7XG5pbXBvcnQgeyBleHBlY3RNb2R1bGVUb01hdGNoU25hcHNob3QgfSBmcm9tIFwiLi4vdXRpbFwiO1xuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgY3JlYXRlVG1wSGVscGVyIH0gZnJvbSBcIi4uL3V0aWxcIjtcblxuY29uc3QgdG1wID0gY3JlYXRlVG1wSGVscGVyKCk7XG5cbmNvbnN0IG9uVGYxXzZBbmROZXdlciA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBmbjogKCkgPT4gUHJvbWlzZTx2b2lkPixcbiAgdGltZW91dD86IG51bWJlcixcbikgPT4ge1xuICBjb25zdCB0ZXJyYWZvcm1CaW5hcnlOYW1lID0gcHJvY2Vzcy5lbnYuVEVSUkFGT1JNX0JJTkFSWV9OQU1FIHx8IFwidGVycmFmb3JtXCI7XG4gIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGAke3RlcnJhZm9ybUJpbmFyeU5hbWV9IHZlcnNpb24gLWpzb25gKTtcblxuICBpZiAoIW91dHB1dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBkZXRlcm1pbmUgVGVycmFmb3JtIHZlcnNpb25cIik7XG4gIH1cblxuICBjb25zdCB0ZlZlcnNpb24gPSBKU09OLnBhcnNlKG91dHB1dC50b1N0cmluZygpKS50ZXJyYWZvcm1fdmVyc2lvbjtcblxuICBjb25zdCBbbWFqb3IsIG1pbm9yXSA9IHRmVmVyc2lvbi50b1N0cmluZygpLnNwbGl0KFwiLlwiKTtcbiAgaWYgKE51bWJlcihtYWpvcikgPCAxIHx8IChOdW1iZXIobWFqb3IpID09PSAxICYmIE51bWJlcihtaW5vcikgPCA2KSkge1xuICAgIHRlc3Quc2tpcChcbiAgICAgIGAke25hbWV9IChyZXF1aXJlcyBUZXJyYWZvcm0gPj0gMS42LjA7IGJ1dCBpcyAke3RmVmVyc2lvbn0pYCxcbiAgICAgIGZuLFxuICAgICAgdGltZW91dCxcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIHRlc3QobmFtZSwgZm4sIHRpbWVvdXQpO1xuICB9XG59O1xuXG50ZXN0KFwiZ2VuZXJhdGUgc29tZSBtb2R1bGVzXCIsIGFzeW5jICgpID0+IHtcbiAgY29uc3Qgd29ya2RpciA9IHRtcChcIm1vZHVsZS1nZW5lcmF0b3IudGVzdFwiKTtcbiAgY29uc3QgY29uc3RyYWludCA9IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KFxuICAgIFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2Vrcy9hd3NANy4wLjFcIixcbiAgKTtcblxuICBjb25zdCBtYWtlciA9IG5ldyBDb25zdHJ1Y3RzTWFrZXIoXG4gICAge1xuICAgICAgY29kZU1ha2VyT3V0cHV0OiB3b3JrZGlyLFxuICAgICAgdGFyZ2V0TGFuZ3VhZ2U6IExhbmd1YWdlLlRZUEVTQ1JJUFQsXG4gICAgfSxcbiAgICBwcm9jZXNzLmVudi5DREtURl9FWFBFUklNRU5UQUxfUFJPVklERVJfU0NIRU1BX0NBQ0hFX1BBVEgsXG4gICk7XG4gIGF3YWl0IG1ha2VyLmdlbmVyYXRlKFtjb25zdHJhaW50XSk7XG5cbiAgY29uc3Qgb3V0cHV0ID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbih3b3JrZGlyLCBcIm1vZHVsZXMvdGVycmFmb3JtLWF3cy1tb2R1bGVzL2F3cy9la3MudHNcIiksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3Qob3V0cHV0KS50b01hdGNoU25hcHNob3QoKTtcbn0sIDEyMDAwMCk7XG5cbmV4cGVjdE1vZHVsZVRvTWF0Y2hTbmFwc2hvdChcIm5vIG1vZHVsZSBvdXRwdXRzXCIsIFwiZ2VuZXJhdG9yXCIsIFtcbiAgXCJtb2R1bGUtbm8tb3V0cHV0cy50ZXN0LmZpeHR1cmUudGZcIixcbl0pO1xuXG5leHBlY3RNb2R1bGVUb01hdGNoU25hcHNob3QoXCJ0eXBlbGVzcyB2YXJpYWJsZXNcIiwgXCJnZW5lcmF0b3JcIiwgW1xuICBcIm1vZHVsZS1uby12YXJpYWJsZS10eXBlLnRlc3QuZml4dHVyZS50ZlwiLFxuXSk7XG5cbmV4cGVjdE1vZHVsZVRvTWF0Y2hTbmFwc2hvdChcIm5vIG5ld2xpbmVcIiwgXCJnZW5lcmF0b3JcIiwgW1xuICBcIm1vZHVsZS1uby1uZXdsaW5lLTEudGVzdC5maXh0dXJlLnRmXCIsXG4gIFwibW9kdWxlLW5vLW5ld2xpbmUtMi50ZXN0LmZpeHR1cmUudGZcIixcbl0pO1xuXG50ZXN0KFwiZ2VuZXJhdGUgbXVsdGlwbGUgYXdzIG1vZHVsZXNcIiwgYXN5bmMgKCkgPT4ge1xuICBqZXN0LnNldFRpbWVvdXQoMTIwMDAwKTtcblxuICBjb25zdCB3b3JrZGlyID0gdG1wKFwibW9kdWxlLWdlbmVyYXRvci1hd3MudGVzdFwiKTtcbiAgY29uc3QgY29uc3RyYWludHMgPSBbXG4gICAgbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdnBjL2F3c0AyLjc4LjBcIiksXG4gICAgbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvcmRzLWF1cm9yYS9hd3NANC4xLjBcIiksXG4gIF07XG5cbiAgY29uc3QgbWFrZXIgPSBuZXcgQ29uc3RydWN0c01ha2VyKFxuICAgIHtcbiAgICAgIGNvZGVNYWtlck91dHB1dDogd29ya2RpcixcbiAgICAgIHRhcmdldExhbmd1YWdlOiBMYW5ndWFnZS5UWVBFU0NSSVBULFxuICAgIH0sXG4gICAgcHJvY2Vzcy5lbnYuQ0RLVEZfRVhQRVJJTUVOVEFMX1BST1ZJREVSX1NDSEVNQV9DQUNIRV9QQVRILFxuICApO1xuICBhd2FpdCBtYWtlci5nZW5lcmF0ZShjb25zdHJhaW50cyk7XG5cbiAgY29uc3QgdnBjT3V0cHV0ID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbih3b3JrZGlyLCBcIm1vZHVsZXMvdGVycmFmb3JtLWF3cy1tb2R1bGVzL2F3cy92cGMudHNcIiksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3QodnBjT3V0cHV0KS50b01hdGNoU25hcHNob3QoKTtcblxuICBjb25zdCByZHNPdXRwdXQgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgcGF0aC5qb2luKHdvcmtkaXIsIFwibW9kdWxlcy90ZXJyYWZvcm0tYXdzLW1vZHVsZXMvYXdzL3Jkcy1hdXJvcmEudHNcIiksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3QocmRzT3V0cHV0KS50b01hdGNoU25hcHNob3QoKTtcbn0sIDEyMDAwMCk7XG5cbnRlc3QoXCJnZW5lcmF0ZSBuZXN0ZWQgbW9kdWxlXCIsIGFzeW5jICgpID0+IHtcbiAgY29uc3Qgd29ya2RpciA9IHRtcChcIm1vZHVsZS1nZW5lcmF0b3ItbmVzdGVkLnRlc3RcIik7XG4gIGNvbnN0IGNvbnN0cmFpbnQgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludChcbiAgICBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy92cGMvYXdzLy9tb2R1bGVzL3ZwYy1lbmRwb2ludHNAMy4xOS4wXCIsXG4gICk7XG5cbiAgY29uc3QgbWFrZXIgPSBuZXcgQ29uc3RydWN0c01ha2VyKFxuICAgIHtcbiAgICAgIGNvZGVNYWtlck91dHB1dDogd29ya2RpcixcbiAgICAgIHRhcmdldExhbmd1YWdlOiBMYW5ndWFnZS5UWVBFU0NSSVBULFxuICAgIH0sXG4gICAgcHJvY2Vzcy5lbnYuQ0RLVEZfRVhQRVJJTUVOVEFMX1BST1ZJREVSX1NDSEVNQV9DQUNIRV9QQVRILFxuICApO1xuICBhd2FpdCBtYWtlci5nZW5lcmF0ZShbY29uc3RyYWludF0pO1xuXG4gIGNvbnN0IG91dHB1dCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4oXG4gICAgICB3b3JrZGlyLFxuICAgICAgXCJtb2R1bGVzL3RlcnJhZm9ybS1hd3MtbW9kdWxlcy9hd3MvdnBjL21vZHVsZXMvdnBjLWVuZHBvaW50cy50c1wiLFxuICAgICksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3Qob3V0cHV0KS50b01hdGNoU25hcHNob3QoKTtcbn0sIDEyMDAwMCk7XG5cbmV4cGVjdE1vZHVsZVRvTWF0Y2hTbmFwc2hvdChcImdldFggdmFyaWFibGVzXCIsIFwiZ2VuZXJhdG9yXCIsIFtcbiAgXCJtb2R1bGUtZ2V0LXgudGVzdC5maXh0dXJlLnRmXCIsXG5dKTtcblxuZXhwZWN0TW9kdWxlVG9NYXRjaFNuYXBzaG90KFxuICBcImhhbmRsZSAqLyogaW4gbW9kdWxlIHZhcmlhYmxlIGRlZmF1bHQgc3RyaW5nXCIsXG4gIFwiZ2VuZXJhdG9yXCIsXG4gIFtcIm1vZHVsZS13aXRoLXN0YXItZGVmYXVsdC50ZXN0LmZpeHR1cmUudGZcIl0sXG4pO1xuXG5vblRmMV82QW5kTmV3ZXIoXG4gIFwiZ2VuZXJhdGUgbW9kdWxlIHRoYXQgY2FuJ3QgYmUgaW5pdGlhbGl6ZWRcIixcbiAgYXN5bmMgKCkgPT4ge1xuICAgIGplc3Quc2V0VGltZW91dCgxMjAwMDApO1xuXG4gICAgY29uc3Qgd29ya2RpciA9IHRtcChcIm1vZHVsZS1nZW5lcmF0b3IudGVzdC1uby1pbml0XCIpO1xuICAgIGNvbnN0IGNvbnN0cmFpbnQgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludChcbiAgICAgIFwibWlsbGlIUS9uZXh0LWpzL2F3c0AxLjAuMC1jYW5hcnkuNVwiLFxuICAgICk7XG5cbiAgICBjb25zdCBtYWtlciA9IG5ldyBDb25zdHJ1Y3RzTWFrZXIoXG4gICAgICB7XG4gICAgICAgIGNvZGVNYWtlck91dHB1dDogd29ya2RpcixcbiAgICAgICAgdGFyZ2V0TGFuZ3VhZ2U6IExhbmd1YWdlLlRZUEVTQ1JJUFQsXG4gICAgICB9LFxuICAgICAgcHJvY2Vzcy5lbnYuQ0RLVEZfRVhQRVJJTUVOVEFMX1BST1ZJREVSX1NDSEVNQV9DQUNIRV9QQVRILFxuICAgICk7XG4gICAgYXdhaXQgbWFrZXIuZ2VuZXJhdGUoW2NvbnN0cmFpbnRdKTtcblxuICAgIGNvbnN0IG91dHB1dCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgIHBhdGguam9pbih3b3JrZGlyLCBcIm1vZHVsZXMvbWlsbGlIUS9hd3MvbmV4dC1qcy50c1wiKSxcbiAgICAgIFwidXRmLThcIixcbiAgICApO1xuXG4gICAgLy8geWVzLCB0aGlzIGlzIGEgbG90IG9mIGNvZGUsIGJ1dCB0aGlzIHRlc3QgaXMgc2tpcHBlZCBmb3Igc29tZSBUZXJyYWZvcm0gdmVyc2lvbnNcbiAgICAvLyB3aGljaCB0aGVuIHNob3dzIHNuYXBzaG90cyBhcyBvYnNvbGV0ZSB3aGljaCBmYWlscyB0aGUgdGVzdFxuICAgIC8vIHRoaXMgd2F5LCB0aGVyZSdzIG5vIHN1Y2ggcHJvYmxlbSBpZiB0aGUgdGVzdCBpcyBza2lwcGVkXG4gICAgZXhwZWN0KG91dHB1dCkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgIFwiLy8gZ2VuZXJhdGVkIGJ5IGNka3RuIGdldFxuICAgICAgLy8gbWlsbGlIUS9uZXh0LWpzL2F3c1xuICAgICAgaW1wb3J0IHsgVGVycmFmb3JtTW9kdWxlLCB0eXBlIFRlcnJhZm9ybU1vZHVsZVVzZXJDb25maWcgfSBmcm9tICdjZGt0bic7XG4gICAgICBpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbiAgICAgIGV4cG9ydCBpbnRlcmZhY2UgTmV4dEpzQ29uZmlnIGV4dGVuZHMgVGVycmFmb3JtTW9kdWxlVXNlckNvbmZpZyB7XG4gICAgICAgIC8qKlxuICAgICAgICAqIEFDTSBjZXJ0aWZpY2F0ZSBhcm4gZm9yIGN1c3RvbV9kb21haW5cbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgY2xvdWRmcm9udEFjbUNlcnRpZmljYXRlQXJuPzogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgKiBBbGlhc2VzIGZvciBjdXN0b21fZG9tYWluXG4gICAgICAgICpcbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgY2xvdWRmcm9udEFsaWFzZXM/OiBzdHJpbmdbXTtcbiAgICAgICAgLyoqXG4gICAgICAgICogSGVhZGVyIGtleXMgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIGNhY2hlIGtleSBpbiBDbG91ZEZyb250LlxuICAgICAgICAqIEF1dGhvcml6YXRpb25cbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgY2xvdWRmcm9udENhY2hlS2V5SGVhZGVycz86IHN0cmluZ1tdO1xuICAgICAgICAvKipcbiAgICAgICAgKiBDb250cm9scyB3aGV0aGVyIHRoZSBtYWluIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHNob3VsZCBiZSBjcmVhdGVkLlxuICAgICAgICAqIHRydWVcbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgY2xvdWRmcm9udENyZWF0ZURpc3RyaWJ1dGlvbj86IGJvb2xlYW47XG4gICAgICAgIC8qKlxuICAgICAgICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gcHJvdmlkZSBpdHMgYXJuLlxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBjbG91ZGZyb250RXh0ZXJuYWxBcm4/OiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAqIFdoZW4gdXNpbmcgYW4gZXh0ZXJuYWwgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gcHJvdmlkZSBpdHMgaWQuXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGNsb3VkZnJvbnRFeHRlcm5hbElkPzogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgKiBUaGUgbWluaW11bSB2ZXJzaW9uIG9mIHRoZSBTU0wgcHJvdG9jb2wgdGhhdCB5b3Ugd2FudCBDbG91ZEZyb250IHRvIHVzZSBmb3IgSFRUUFMgY29ubmVjdGlvbnMuIE9uZSBvZiBTU0x2MywgVExTdjEsIFRMU3YxXzIwMTYsIFRMU3YxLjFfMjAxNiwgVExTdjEuMl8yMDE4IG9yIFRMU3YxLjJfMjAxOS5cbiAgICAgICAgKiBUTFN2MVxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBjbG91ZGZyb250TWluaW11bVByb3RvY29sVmVyc2lvbj86IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICogSWQgb2YgYSBjdXN0b20gcmVxdWVzdCBwb2xpY3kgdGhhdCBvdmVycmlkZXMgdGhlIGRlZmF1bHQgcG9saWN5IChBbGxWaWV3ZXIpLiBDYW4gYmUgY3VzdG9tIG9yIG1hbmFnZWQuXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGNsb3VkZnJvbnRPcmlnaW5SZXF1ZXN0UG9saWN5Pzogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgKiBQcmljZSBjbGFzcyBmb3IgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9ucyAobWFpbiAmIHByb3h5IGNvbmZpZykuIE9uZSBvZiBQcmljZUNsYXNzX0FsbCwgUHJpY2VDbGFzc18yMDAsIFByaWNlQ2xhc3NfMTAwLlxuICAgICAgICAqIFByaWNlQ2xhc3NfMTAwXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGNsb3VkZnJvbnRQcmljZUNsYXNzPzogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgKiBJZCBvZiBhIHJlc3BvbnNlIGhlYWRlcnMgcG9saWN5LiBDYW4gYmUgY3VzdG9tIG9yIG1hbmFnZWQuIERlZmF1bHQgaXMgZW1wdHkuXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGNsb3VkZnJvbnRSZXNwb25zZUhlYWRlcnNQb2xpY3k/OiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAqIEFuIG9wdGlvbmFsIHdlYmFjbDIgYXJuIG9yIHdlYmFjbCBpZCB0byBhc3NvY2lhdGUgd2l0aCB0aGUgY2xvdWRmcm9udCBkaXN0cmlidXRpb25cbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgY2xvdWRmcm9udFdlYmFjbElkPzogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgKiBDb250cm9scyB3aGV0aGVyIHJlc291cmNlcyBmb3IgaW1hZ2Ugb3B0aW1pemF0aW9uIHN1cHBvcnQgc2hvdWxkIGJlIGNyZWF0ZWQgb3Igbm90LlxuICAgICAgICAqIHRydWVcbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgY3JlYXRlSW1hZ2VPcHRpbWl6YXRpb24/OiBib29sZWFuO1xuICAgICAgICAvKipcbiAgICAgICAgKiBVc2UgbG9jYWxseSBidWlsdCBwYWNrYWdlcyByYXRoZXIgdGhhbiBkb3dubG9hZCB0aGVtIGZyb20gbnBtLlxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBkZWJ1Z1VzZUxvY2FsUGFja2FnZXM/OiBib29sZWFuO1xuICAgICAgICAvKipcbiAgICAgICAgKiBJZGVudGlmaWVyIGZvciB0aGUgZGVwbG95bWVudCBncm91cCAob25seSBsb3dlcmNhc2UgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIGh5cGhlbnMgYXJlIGFsbG93ZWQpLlxuICAgICAgICAqIHRmLW5leHRcbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgZGVwbG95bWVudE5hbWU/OiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAqIENvbnRyb2xzIHdoZXRoZXIgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHJ1biBtdWx0aXBsZSBkZXBsb3ltZW50cyBpbiBwYXJhbGxlbCAocmVxdWlyZXMgbXVsdGlwbGVfZGVwbG95bWVudHNfYmFzZV9kb21haW4pLlxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBlbmFibGVNdWx0aXBsZURlcGxveW1lbnRzPzogYm9vbGVhbjtcbiAgICAgICAgLyoqXG4gICAgICAgICogQW1vdW50IG9mIG1lbW9yeSBpbiBNQiB0aGUgd29ya2VyIExhbWJkYSBGdW5jdGlvbiBmb3IgaW1hZ2Ugb3B0aW1pemF0aW9uIGNhbiB1c2UuIFZhbGlkIHZhbHVlIGJldHdlZW4gMTI4IE1CIHRvIDEwLDI0MCBNQiwgaW4gMSBNQiBpbmNyZW1lbnRzLlxuICAgICAgICAqIDIsMDQ4XG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGltYWdlT3B0aW1pemF0aW9uTGFtYmRhTWVtb3J5U2l6ZT86IG51bWJlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICogV2hldGhlciB0byBkZXBsb3kgYWRkaXRpb25hbCBsYW1iZGEgSlNPTiBwb2xpY2llcy4gSWYgZmFsc2UsIGxhbWJkYV9wb2xpY3lfanNvbiB3aWxsIG5vdCBiZSBhdHRhY2hlZCB0byB0aGUgbGFtYmRhIGZ1bmN0aW9uLiAoTmVjZXNzYXJ5IHNpbmNlIHBvbGljeSBzdHJpbmdzIGFyZSBvbmx5IGtub3duIGFmdGVyIGFwcGx5IHdoZW4gdXNpbmcgVGVycmFmb3JtcyBkYXRhLmF3c19pYW1fcG9saWN5X2RvY3VtZW50KVxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBsYW1iZGFBdHRhY2hQb2xpY3lKc29uPzogYm9vbGVhbjtcbiAgICAgICAgLyoqXG4gICAgICAgICogU2V0IHRvIHRydWUgaWYgdGhlIExhbWJkYSBmdW5jdGlvbnMgc2hvdWxkIGJlIGF0dGFjaGVkIHRvIGEgVlBDLiBVc2UgdGhpcyBzZXR0aW5nIGlmIFZQQyByZXNvdXJjZXMgc2hvdWxkIGJlIGFjY2Vzc2VkIGJ5IHRoZSBMYW1iZGEgZnVuY3Rpb25zLiBXaGVuIHNldHRpbmcgdGhpcyB0byB0cnVlLCB1c2UgdnBjX3NlY3VyaXR5X2dyb3VwX2lkcyBhbmQgdnBjX3N1Ym5ldF9pZHMgdG8gc3BlY2lmeSB0aGUgVlBDIG5ldHdvcmtpbmcuIE5vdGUgdGhhdCBhdHRhY2hpbmcgdG8gYSBWUEMgd291bGQgaW50cm9kdWNlIGEgZGVsYXkgb24gdG8gY29sZCBzdGFydHNcbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgbGFtYmRhQXR0YWNoVG9WcGM/OiBib29sZWFuO1xuICAgICAgICAvKipcbiAgICAgICAgKiBBZGRpdGlvbmFsIHBvbGljeSBkb2N1bWVudCBhcyBKU09OIHRvIGF0dGFjaCB0byB0aGUgTGFtYmRhIEZ1bmN0aW9uIHJvbGVcbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgbGFtYmRhUG9saWN5SnNvbj86IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICogQVJOIG9mIElBTSBwb2xpY3kgdGhhdCBzY29wZXMgYXdzX2lhbV9yb2xlIGFjY2VzcyBmb3IgdGhlIGxhbWJkYVxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBsYW1iZGFSb2xlUGVybWlzc2lvbnNCb3VuZGFyeT86IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICogRGVmYXVsdCB3aWxkY2FyZCBkb21haW4gd2hlcmUgbmV3IGRlcGxveW1lbnRzIHNob3VsZCBiZSBhdmFpbGFibGUuIFNob3VsZCBiZSBpbiB0aGUgZm9ybSBvZiAqLmV4YW1wbGUuY29tLlxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBtdWx0aXBsZURlcGxveW1lbnRzQmFzZURvbWFpbj86IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICogVGFnIG1ldGFkYXRhIHRvIGxhYmVsIEFXUyByZXNvdXJjZXMgdGhhdCBzdXBwb3J0IHRhZ3MuXG4gICAgICAgICogVGhlIHByb3BlcnR5IHR5cGUgY29udGFpbnMgYSBtYXAsIHRoZXkgaGF2ZSBzcGVjaWFsIGhhbmRsaW5nLCBwbGVhc2Ugc2VlIHtAbGluayBjZGsudGYvbW9kdWxlLW1hcC1pbnB1dHMgdGhlIGRvY3N9XG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAgICAgICAvKipcbiAgICAgICAgKiBUYWcgbWV0YWRhdGEgdG8gbGFiZWwgQVdTIFMzIGJ1Y2tldHMuIE92ZXJyaWRlcyB0YWdzIHdpdGggdGhlIHNhbWUgbmFtZSBpbiBpbnB1dCB2YXJpYWJsZSB0YWdzLlxuICAgICAgICAqIFRoZSBwcm9wZXJ0eSB0eXBlIGNvbnRhaW5zIGEgbWFwLCB0aGV5IGhhdmUgc3BlY2lhbCBoYW5kbGluZywgcGxlYXNlIHNlZSB7QGxpbmsgY2RrLnRmL21vZHVsZS1tYXAtaW5wdXRzIHRoZSBkb2NzfVxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSB0YWdzUzNCdWNrZXQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAgICAgICAvKipcbiAgICAgICAgKiBUaGUgbGlzdCBvZiBTZWN1cml0eSBHcm91cCBJRHMgdG8gYmUgdXNlZCBieSB0aGUgTGFtYmRhIGZ1bmN0aW9ucy4gbGFtYmRhX2F0dGFjaF90b192cGMgc2hvdWxkIGJlIHNldCB0byB0cnVlIGZvciB0aGVzZSB0byBiZSBhcHBsaWVkLlxuICAgICAgICAqXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IHZwY1NlY3VyaXR5R3JvdXBJZHM/OiBzdHJpbmdbXTtcbiAgICAgICAgLyoqXG4gICAgICAgICogVGhlIGxpc3Qgb2YgVlBDIHN1Ym5ldCBJRHMgdG8gYXR0YWNoIHRoZSBMYW1iZGEgZnVuY3Rpb25zLiBsYW1iZGFfYXR0YWNoX3RvX3ZwYyBzaG91bGQgYmUgc2V0IHRvIHRydWUgZm9yIHRoZXNlIHRvIGJlIGFwcGxpZWQuXG4gICAgICAgICpcbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgdnBjU3VibmV0SWRzPzogc3RyaW5nW107XG4gICAgICB9XG4gICAgICAvKipcbiAgICAgICogRGVmaW5lcyBhbiBOZXh0SnMgYmFzZWQgb24gYSBUZXJyYWZvcm0gbW9kdWxlXG4gICAgICAqXG4gICAgICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vbW9kdWxlcy9taWxsaUhRL25leHQtanMvYXdzLzEuMC4wLWNhbmFyeS41IG1pbGxpSFEvbmV4dC1qcy9hd3N9XG4gICAgICAqL1xuICAgICAgZXhwb3J0IGNsYXNzIE5leHRKcyBleHRlbmRzIFRlcnJhZm9ybU1vZHVsZSB7XG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHsgfTtcbiAgICAgICAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbmZpZzogTmV4dEpzQ29uZmlnID0ge30pIHtcbiAgICAgICAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAgIHNvdXJjZTogJ21pbGxpSFEvbmV4dC1qcy9hd3MnLFxuICAgICAgICAgICAgdmVyc2lvbjogJzEuMC4wLWNhbmFyeS41JyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmNsb3VkZnJvbnRBY21DZXJ0aWZpY2F0ZUFybiA9IGNvbmZpZy5jbG91ZGZyb250QWNtQ2VydGlmaWNhdGVBcm47XG4gICAgICAgICAgdGhpcy5jbG91ZGZyb250QWxpYXNlcyA9IGNvbmZpZy5jbG91ZGZyb250QWxpYXNlcztcbiAgICAgICAgICB0aGlzLmNsb3VkZnJvbnRDYWNoZUtleUhlYWRlcnMgPSBjb25maWcuY2xvdWRmcm9udENhY2hlS2V5SGVhZGVycztcbiAgICAgICAgICB0aGlzLmNsb3VkZnJvbnRDcmVhdGVEaXN0cmlidXRpb24gPSBjb25maWcuY2xvdWRmcm9udENyZWF0ZURpc3RyaWJ1dGlvbjtcbiAgICAgICAgICB0aGlzLmNsb3VkZnJvbnRFeHRlcm5hbEFybiA9IGNvbmZpZy5jbG91ZGZyb250RXh0ZXJuYWxBcm47XG4gICAgICAgICAgdGhpcy5jbG91ZGZyb250RXh0ZXJuYWxJZCA9IGNvbmZpZy5jbG91ZGZyb250RXh0ZXJuYWxJZDtcbiAgICAgICAgICB0aGlzLmNsb3VkZnJvbnRNaW5pbXVtUHJvdG9jb2xWZXJzaW9uID0gY29uZmlnLmNsb3VkZnJvbnRNaW5pbXVtUHJvdG9jb2xWZXJzaW9uO1xuICAgICAgICAgIHRoaXMuY2xvdWRmcm9udE9yaWdpblJlcXVlc3RQb2xpY3kgPSBjb25maWcuY2xvdWRmcm9udE9yaWdpblJlcXVlc3RQb2xpY3k7XG4gICAgICAgICAgdGhpcy5jbG91ZGZyb250UHJpY2VDbGFzcyA9IGNvbmZpZy5jbG91ZGZyb250UHJpY2VDbGFzcztcbiAgICAgICAgICB0aGlzLmNsb3VkZnJvbnRSZXNwb25zZUhlYWRlcnNQb2xpY3kgPSBjb25maWcuY2xvdWRmcm9udFJlc3BvbnNlSGVhZGVyc1BvbGljeTtcbiAgICAgICAgICB0aGlzLmNsb3VkZnJvbnRXZWJhY2xJZCA9IGNvbmZpZy5jbG91ZGZyb250V2ViYWNsSWQ7XG4gICAgICAgICAgdGhpcy5jcmVhdGVJbWFnZU9wdGltaXphdGlvbiA9IGNvbmZpZy5jcmVhdGVJbWFnZU9wdGltaXphdGlvbjtcbiAgICAgICAgICB0aGlzLmRlYnVnVXNlTG9jYWxQYWNrYWdlcyA9IGNvbmZpZy5kZWJ1Z1VzZUxvY2FsUGFja2FnZXM7XG4gICAgICAgICAgdGhpcy5kZXBsb3ltZW50TmFtZSA9IGNvbmZpZy5kZXBsb3ltZW50TmFtZTtcbiAgICAgICAgICB0aGlzLmVuYWJsZU11bHRpcGxlRGVwbG95bWVudHMgPSBjb25maWcuZW5hYmxlTXVsdGlwbGVEZXBsb3ltZW50cztcbiAgICAgICAgICB0aGlzLmltYWdlT3B0aW1pemF0aW9uTGFtYmRhTWVtb3J5U2l6ZSA9IGNvbmZpZy5pbWFnZU9wdGltaXphdGlvbkxhbWJkYU1lbW9yeVNpemU7XG4gICAgICAgICAgdGhpcy5sYW1iZGFBdHRhY2hQb2xpY3lKc29uID0gY29uZmlnLmxhbWJkYUF0dGFjaFBvbGljeUpzb247XG4gICAgICAgICAgdGhpcy5sYW1iZGFBdHRhY2hUb1ZwYyA9IGNvbmZpZy5sYW1iZGFBdHRhY2hUb1ZwYztcbiAgICAgICAgICB0aGlzLmxhbWJkYVBvbGljeUpzb24gPSBjb25maWcubGFtYmRhUG9saWN5SnNvbjtcbiAgICAgICAgICB0aGlzLmxhbWJkYVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5ID0gY29uZmlnLmxhbWJkYVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5O1xuICAgICAgICAgIHRoaXMubXVsdGlwbGVEZXBsb3ltZW50c0Jhc2VEb21haW4gPSBjb25maWcubXVsdGlwbGVEZXBsb3ltZW50c0Jhc2VEb21haW47XG4gICAgICAgICAgdGhpcy50YWdzID0gY29uZmlnLnRhZ3M7XG4gICAgICAgICAgdGhpcy50YWdzUzNCdWNrZXQgPSBjb25maWcudGFnc1MzQnVja2V0O1xuICAgICAgICAgIHRoaXMudnBjU2VjdXJpdHlHcm91cElkcyA9IGNvbmZpZy52cGNTZWN1cml0eUdyb3VwSWRzO1xuICAgICAgICAgIHRoaXMudnBjU3VibmV0SWRzID0gY29uZmlnLnZwY1N1Ym5ldElkcztcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGNsb3VkZnJvbnRBY21DZXJ0aWZpY2F0ZUFybigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1snY2xvdWRmcm9udF9hY21fY2VydGlmaWNhdGVfYXJuJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgY2xvdWRmcm9udEFjbUNlcnRpZmljYXRlQXJuKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snY2xvdWRmcm9udF9hY21fY2VydGlmaWNhdGVfYXJuJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGNsb3VkZnJvbnRBbGlhc2VzKCk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfYWxpYXNlcyddIGFzIHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgY2xvdWRmcm9udEFsaWFzZXModmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfYWxpYXNlcyddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBjbG91ZGZyb250Q2FjaGVLZXlIZWFkZXJzKCk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfY2FjaGVfa2V5X2hlYWRlcnMnXSBhcyBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IGNsb3VkZnJvbnRDYWNoZUtleUhlYWRlcnModmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfY2FjaGVfa2V5X2hlYWRlcnMnXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgY2xvdWRmcm9udENyZWF0ZURpc3RyaWJ1dGlvbigpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfY3JlYXRlX2Rpc3RyaWJ1dGlvbiddIGFzIGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCBjbG91ZGZyb250Q3JlYXRlRGlzdHJpYnV0aW9uKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfY3JlYXRlX2Rpc3RyaWJ1dGlvbiddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBjbG91ZGZyb250RXh0ZXJuYWxBcm4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfZXh0ZXJuYWxfYXJuJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgY2xvdWRmcm9udEV4dGVybmFsQXJuKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snY2xvdWRmcm9udF9leHRlcm5hbF9hcm4nXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgY2xvdWRmcm9udEV4dGVybmFsSWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfZXh0ZXJuYWxfaWQnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCBjbG91ZGZyb250RXh0ZXJuYWxJZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfZXh0ZXJuYWxfaWQnXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgY2xvdWRmcm9udE1pbmltdW1Qcm90b2NvbFZlcnNpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfbWluaW11bV9wcm90b2NvbF92ZXJzaW9uJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgY2xvdWRmcm9udE1pbmltdW1Qcm90b2NvbFZlcnNpb24odmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X21pbmltdW1fcHJvdG9jb2xfdmVyc2lvbiddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBjbG91ZGZyb250T3JpZ2luUmVxdWVzdFBvbGljeSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1snY2xvdWRmcm9udF9vcmlnaW5fcmVxdWVzdF9wb2xpY3knXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCBjbG91ZGZyb250T3JpZ2luUmVxdWVzdFBvbGljeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfb3JpZ2luX3JlcXVlc3RfcG9saWN5J10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGNsb3VkZnJvbnRQcmljZUNsYXNzKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X3ByaWNlX2NsYXNzJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgY2xvdWRmcm9udFByaWNlQ2xhc3ModmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X3ByaWNlX2NsYXNzJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGNsb3VkZnJvbnRSZXNwb25zZUhlYWRlcnNQb2xpY3koKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfcmVzcG9uc2VfaGVhZGVyc19wb2xpY3knXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCBjbG91ZGZyb250UmVzcG9uc2VIZWFkZXJzUG9saWN5KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snY2xvdWRmcm9udF9yZXNwb25zZV9oZWFkZXJzX3BvbGljeSddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBjbG91ZGZyb250V2ViYWNsSWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfd2ViYWNsX2lkJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgY2xvdWRmcm9udFdlYmFjbElkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snY2xvdWRmcm9udF93ZWJhY2xfaWQnXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgY3JlYXRlSW1hZ2VPcHRpbWl6YXRpb24oKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydjcmVhdGVfaW1hZ2Vfb3B0aW1pemF0aW9uJ10gYXMgYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IGNyZWF0ZUltYWdlT3B0aW1pemF0aW9uKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2NyZWF0ZV9pbWFnZV9vcHRpbWl6YXRpb24nXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgZGVidWdVc2VMb2NhbFBhY2thZ2VzKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1snZGVidWdfdXNlX2xvY2FsX3BhY2thZ2VzJ10gYXMgYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IGRlYnVnVXNlTG9jYWxQYWNrYWdlcyh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWydkZWJ1Z191c2VfbG9jYWxfcGFja2FnZXMnXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgZGVwbG95bWVudE5hbWUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ2RlcGxveW1lbnRfbmFtZSddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IGRlcGxveW1lbnROYW1lKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snZGVwbG95bWVudF9uYW1lJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGVuYWJsZU11bHRpcGxlRGVwbG95bWVudHMoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydlbmFibGVfbXVsdGlwbGVfZGVwbG95bWVudHMnXSBhcyBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgZW5hYmxlTXVsdGlwbGVEZXBsb3ltZW50cyh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWydlbmFibGVfbXVsdGlwbGVfZGVwbG95bWVudHMnXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgaW1hZ2VPcHRpbWl6YXRpb25MYW1iZGFNZW1vcnlTaXplKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydpbWFnZV9vcHRpbWl6YXRpb25fbGFtYmRhX21lbW9yeV9zaXplJ10gYXMgbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgaW1hZ2VPcHRpbWl6YXRpb25MYW1iZGFNZW1vcnlTaXplKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snaW1hZ2Vfb3B0aW1pemF0aW9uX2xhbWJkYV9tZW1vcnlfc2l6ZSddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBsYW1iZGFBdHRhY2hQb2xpY3lKc29uKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1snbGFtYmRhX2F0dGFjaF9wb2xpY3lfanNvbiddIGFzIGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCBsYW1iZGFBdHRhY2hQb2xpY3lKc29uKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2xhbWJkYV9hdHRhY2hfcG9saWN5X2pzb24nXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgbGFtYmRhQXR0YWNoVG9WcGMoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydsYW1iZGFfYXR0YWNoX3RvX3ZwYyddIGFzIGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCBsYW1iZGFBdHRhY2hUb1ZwYyh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWydsYW1iZGFfYXR0YWNoX3RvX3ZwYyddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBsYW1iZGFQb2xpY3lKc29uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydsYW1iZGFfcG9saWN5X2pzb24nXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCBsYW1iZGFQb2xpY3lKc29uKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snbGFtYmRhX3BvbGljeV9qc29uJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGxhbWJkYVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydsYW1iZGFfcm9sZV9wZXJtaXNzaW9uc19ib3VuZGFyeSddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IGxhbWJkYVJvbGVQZXJtaXNzaW9uc0JvdW5kYXJ5KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snbGFtYmRhX3JvbGVfcGVybWlzc2lvbnNfYm91bmRhcnknXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgbXVsdGlwbGVEZXBsb3ltZW50c0Jhc2VEb21haW4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ211bHRpcGxlX2RlcGxveW1lbnRzX2Jhc2VfZG9tYWluJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgbXVsdGlwbGVEZXBsb3ltZW50c0Jhc2VEb21haW4odmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWydtdWx0aXBsZV9kZXBsb3ltZW50c19iYXNlX2RvbWFpbiddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCB0YWdzKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1sndGFncyddIGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCB0YWdzKHZhbHVlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ3RhZ3MnXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgdGFnc1MzQnVja2V0KCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1sndGFnc19zM19idWNrZXQnXSBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgdGFnc1MzQnVja2V0KHZhbHVlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ3RhZ3NfczNfYnVja2V0J10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IHZwY1NlY3VyaXR5R3JvdXBJZHMoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1sndnBjX3NlY3VyaXR5X2dyb3VwX2lkcyddIGFzIHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgdnBjU2VjdXJpdHlHcm91cElkcyh2YWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1sndnBjX3NlY3VyaXR5X2dyb3VwX2lkcyddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCB2cGNTdWJuZXRJZHMoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1sndnBjX3N1Ym5ldF9pZHMnXSBhcyBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IHZwY1N1Ym5ldElkcyh2YWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1sndnBjX3N1Ym5ldF9pZHMnXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgYXBpRW5kcG9pbnRPdXRwdXQoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nKCdhcGlfZW5kcG9pbnQnKTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGFwaUVuZHBvaW50QWNjZXNzUG9saWN5QXJuT3V0cHV0KCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0cmluZygnYXBpX2VuZHBvaW50X2FjY2Vzc19wb2xpY3lfYXJuJyk7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBjbG91ZGZyb250Q3VzdG9tRXJyb3JSZXNwb25zZU91dHB1dCgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmcoJ2Nsb3VkZnJvbnRfY3VzdG9tX2Vycm9yX3Jlc3BvbnNlJyk7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBjbG91ZGZyb250RGVmYXVsdENhY2hlQmVoYXZpb3JPdXRwdXQoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nKCdjbG91ZGZyb250X2RlZmF1bHRfY2FjaGVfYmVoYXZpb3InKTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGNsb3VkZnJvbnREZWZhdWx0Um9vdE9iamVjdE91dHB1dCgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmcoJ2Nsb3VkZnJvbnRfZGVmYXVsdF9yb290X29iamVjdCcpO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgY2xvdWRmcm9udERvbWFpbk5hbWVPdXRwdXQoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nKCdjbG91ZGZyb250X2RvbWFpbl9uYW1lJyk7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBjbG91ZGZyb250SG9zdGVkWm9uZUlkT3V0cHV0KCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0cmluZygnY2xvdWRmcm9udF9ob3N0ZWRfem9uZV9pZCcpO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgY2xvdWRmcm9udE9yZGVyZWRDYWNoZUJlaGF2aW9yc091dHB1dCgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmcoJ2Nsb3VkZnJvbnRfb3JkZXJlZF9jYWNoZV9iZWhhdmlvcnMnKTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGNsb3VkZnJvbnRPcmlnaW5zT3V0cHV0KCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0cmluZygnY2xvdWRmcm9udF9vcmlnaW5zJyk7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCB1cGxvYWRCdWNrZXRJZE91dHB1dCgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmcoJ3VwbG9hZF9idWNrZXRfaWQnKTtcbiAgICAgICAgfVxuICAgICAgICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzO1xuICAgICAgICB9XG4gICAgICAgIHByb3RlY3RlZCBzeW50aGVzaXplSGNsQXR0cmlidXRlcygpOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgICAgICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuaW5wdXRzKVxuICAgICAgICAgICAgICAuZmlsdGVyKChbLCB2YWxdKSA9PiB2YWwgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgLm1hcCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYW55XCIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXCJcbiAgICBgKTtcbiAgfSxcbiAgMTIwMDAwLFxuKTtcbiJdfQ==
|
|
487
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWdlbmVyYXRvci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dldC9fX3Rlc3RzX18vZ2VuZXJhdG9yL21vZHVsZS1nZW5lcmF0b3IudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3Qiw0Q0FBcUU7QUFDckUsNkRBQXlEO0FBQ3pELGtDQUFzRDtBQUN0RCxpREFBeUM7QUFDekMsa0NBQTBDO0FBRTFDLE1BQU0sR0FBRyxHQUFHLElBQUEsc0JBQWUsR0FBRSxDQUFDO0FBRTlCLE1BQU0sZUFBZSxHQUFHLENBQ3RCLElBQVksRUFDWixFQUF1QixFQUN2QixPQUFnQixFQUNoQixFQUFFO0lBQ0YsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixJQUFJLFdBQVcsQ0FBQztJQUM3RSxNQUFNLE1BQU0sR0FBRyxJQUFBLHdCQUFRLEVBQUMsR0FBRyxtQkFBbUIsZ0JBQWdCLENBQUMsQ0FBQztJQUVoRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUM7SUFFbEUsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDLElBQUksQ0FDUCxHQUFHLElBQUkseUNBQXlDLFNBQVMsR0FBRyxFQUM1RCxFQUFFLEVBQ0YsT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFCLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixJQUFJLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDdkMsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDN0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxtQ0FBeUIsQ0FDOUMscUNBQXFDLENBQ3RDLENBQUM7SUFFRixNQUFNLEtBQUssR0FBRyxJQUFJLGtDQUFlLENBQy9CO1FBQ0UsZUFBZSxFQUFFLE9BQU87UUFDeEIsY0FBYyxFQUFFLGtCQUFRLENBQUMsVUFBVTtLQUNwQyxFQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsNkNBQTZDLENBQzFELENBQUM7SUFDRixNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRW5DLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDBDQUEwQyxDQUFDLEVBQzlELE9BQU8sQ0FDUixDQUFDO0lBQ0YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ25DLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUVYLElBQUEsa0NBQTJCLEVBQUMsbUJBQW1CLEVBQUUsV0FBVyxFQUFFO0lBQzVELG1DQUFtQztDQUNwQyxDQUFDLENBQUM7QUFFSCxJQUFBLGtDQUEyQixFQUFDLG9CQUFvQixFQUFFLFdBQVcsRUFBRTtJQUM3RCx5Q0FBeUM7Q0FDMUMsQ0FBQyxDQUFDO0FBRUgsSUFBQSxrQ0FBMkIsRUFBQyxZQUFZLEVBQUUsV0FBVyxFQUFFO0lBQ3JELHFDQUFxQztJQUNyQyxxQ0FBcUM7Q0FDdEMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLCtCQUErQixFQUFFLEtBQUssSUFBSSxFQUFFO0lBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFeEIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDakQsTUFBTSxXQUFXLEdBQUc7UUFDbEIsSUFBSSxtQ0FBeUIsQ0FBQyxzQ0FBc0MsQ0FBQztRQUNyRSxJQUFJLG1DQUF5QixDQUFDLDRDQUE0QyxDQUFDO0tBQzVFLENBQUM7SUFFRixNQUFNLEtBQUssR0FBRyxJQUFJLGtDQUFlLENBQy9CO1FBQ0UsZUFBZSxFQUFFLE9BQU87UUFDeEIsY0FBYyxFQUFFLGtCQUFRLENBQUMsVUFBVTtLQUNwQyxFQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsNkNBQTZDLENBQzFELENBQUM7SUFDRixNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFbEMsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsMENBQTBDLENBQUMsRUFDOUQsT0FBTyxDQUNSLENBQUM7SUFDRixNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFFcEMsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsaURBQWlELENBQUMsRUFDckUsT0FBTyxDQUNSLENBQUM7SUFDRixNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDdEMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRVgsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ3hDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sVUFBVSxHQUFHLElBQUksbUNBQXlCLENBQzlDLDZEQUE2RCxDQUM5RCxDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxrQ0FBZSxDQUMvQjtRQUNFLGVBQWUsRUFBRSxPQUFPO1FBQ3hCLGNBQWMsRUFBRSxrQkFBUSxDQUFDLFVBQVU7S0FDcEMsRUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxDQUMxRCxDQUFDO0lBQ0YsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUVuQyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUM1QixJQUFJLENBQUMsSUFBSSxDQUNQLE9BQU8sRUFDUCxnRUFBZ0UsQ0FDakUsRUFDRCxPQUFPLENBQ1IsQ0FBQztJQUNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUNuQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFWCxJQUFBLGtDQUEyQixFQUFDLGdCQUFnQixFQUFFLFdBQVcsRUFBRTtJQUN6RCw4QkFBOEI7Q0FDL0IsQ0FBQyxDQUFDO0FBRUgsSUFBQSxrQ0FBMkIsRUFDekIsOENBQThDLEVBQzlDLFdBQVcsRUFDWCxDQUFDLDBDQUEwQyxDQUFDLENBQzdDLENBQUM7QUFFRixlQUFlLENBQ2IsMkNBQTJDLEVBQzNDLEtBQUssSUFBSSxFQUFFO0lBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV4QixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUNyRCxNQUFNLFVBQVUsR0FBRyxJQUFJLG1DQUF5QixDQUM5QyxvQ0FBb0MsQ0FDckMsQ0FBQztJQUVGLE1BQU0sS0FBSyxHQUFHLElBQUksa0NBQWUsQ0FDL0I7UUFDRSxlQUFlLEVBQUUsT0FBTztRQUN4QixjQUFjLEVBQUUsa0JBQVEsQ0FBQyxVQUFVO0tBQ3BDLEVBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsQ0FDMUQsQ0FBQztJQUNGLE1BQU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFFbkMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0NBQWdDLENBQUMsRUFDcEQsT0FBTyxDQUNSLENBQUM7SUFFRixtRkFBbUY7SUFDbkYsOERBQThEO0lBQzlELDJEQUEyRDtJQUMzRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FzV3BDLENBQUMsQ0FBQztBQUNMLENBQUMsRUFDRCxNQUFNLENBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IExhbmd1YWdlLCBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RzTWFrZXIgfSBmcm9tIFwiLi4vLi4vY29uc3RydWN0cy1tYWtlclwiO1xuaW1wb3J0IHsgZXhwZWN0TW9kdWxlVG9NYXRjaFNuYXBzaG90IH0gZnJvbSBcIi4uL3V0aWxcIjtcbmltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7IGNyZWF0ZVRtcEhlbHBlciB9IGZyb20gXCIuLi91dGlsXCI7XG5cbmNvbnN0IHRtcCA9IGNyZWF0ZVRtcEhlbHBlcigpO1xuXG5jb25zdCBvblRmMV82QW5kTmV3ZXIgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgZm46ICgpID0+IFByb21pc2U8dm9pZD4sXG4gIHRpbWVvdXQ/OiBudW1iZXIsXG4pID0+IHtcbiAgY29uc3QgdGVycmFmb3JtQmluYXJ5TmFtZSA9IHByb2Nlc3MuZW52LlRFUlJBRk9STV9CSU5BUllfTkFNRSB8fCBcInRlcnJhZm9ybVwiO1xuICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgJHt0ZXJyYWZvcm1CaW5hcnlOYW1lfSB2ZXJzaW9uIC1qc29uYCk7XG5cbiAgaWYgKCFvdXRwdXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgZGV0ZXJtaW5lIFRlcnJhZm9ybSB2ZXJzaW9uXCIpO1xuICB9XG5cbiAgY29uc3QgdGZWZXJzaW9uID0gSlNPTi5wYXJzZShvdXRwdXQudG9TdHJpbmcoKSkudGVycmFmb3JtX3ZlcnNpb247XG5cbiAgY29uc3QgW21ham9yLCBtaW5vcl0gPSB0ZlZlcnNpb24udG9TdHJpbmcoKS5zcGxpdChcIi5cIik7XG4gIGlmIChOdW1iZXIobWFqb3IpIDwgMSB8fCAoTnVtYmVyKG1ham9yKSA9PT0gMSAmJiBOdW1iZXIobWlub3IpIDwgNikpIHtcbiAgICB0ZXN0LnNraXAoXG4gICAgICBgJHtuYW1lfSAocmVxdWlyZXMgVGVycmFmb3JtID49IDEuNi4wOyBidXQgaXMgJHt0ZlZlcnNpb259KWAsXG4gICAgICBmbixcbiAgICAgIHRpbWVvdXQsXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICB0ZXN0KG5hbWUsIGZuLCB0aW1lb3V0KTtcbiAgfVxufTtcblxudGVzdChcImdlbmVyYXRlIHNvbWUgbW9kdWxlc1wiLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHdvcmtkaXIgPSB0bXAoXCJtb2R1bGUtZ2VuZXJhdG9yLnRlc3RcIik7XG4gIGNvbnN0IGNvbnN0cmFpbnQgPSBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludChcbiAgICBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9la3MvYXdzQDcuMC4xXCIsXG4gICk7XG5cbiAgY29uc3QgbWFrZXIgPSBuZXcgQ29uc3RydWN0c01ha2VyKFxuICAgIHtcbiAgICAgIGNvZGVNYWtlck91dHB1dDogd29ya2RpcixcbiAgICAgIHRhcmdldExhbmd1YWdlOiBMYW5ndWFnZS5UWVBFU0NSSVBULFxuICAgIH0sXG4gICAgcHJvY2Vzcy5lbnYuQ0RLVEZfRVhQRVJJTUVOVEFMX1BST1ZJREVSX1NDSEVNQV9DQUNIRV9QQVRILFxuICApO1xuICBhd2FpdCBtYWtlci5nZW5lcmF0ZShbY29uc3RyYWludF0pO1xuXG4gIGNvbnN0IG91dHB1dCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4od29ya2RpciwgXCJtb2R1bGVzL3RlcnJhZm9ybS1hd3MtbW9kdWxlcy9hd3MvZWtzLnRzXCIpLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KG91dHB1dCkudG9NYXRjaFNuYXBzaG90KCk7XG59LCAxMjAwMDApO1xuXG5leHBlY3RNb2R1bGVUb01hdGNoU25hcHNob3QoXCJubyBtb2R1bGUgb3V0cHV0c1wiLCBcImdlbmVyYXRvclwiLCBbXG4gIFwibW9kdWxlLW5vLW91dHB1dHMudGVzdC5maXh0dXJlLnRmXCIsXG5dKTtcblxuZXhwZWN0TW9kdWxlVG9NYXRjaFNuYXBzaG90KFwidHlwZWxlc3MgdmFyaWFibGVzXCIsIFwiZ2VuZXJhdG9yXCIsIFtcbiAgXCJtb2R1bGUtbm8tdmFyaWFibGUtdHlwZS50ZXN0LmZpeHR1cmUudGZcIixcbl0pO1xuXG5leHBlY3RNb2R1bGVUb01hdGNoU25hcHNob3QoXCJubyBuZXdsaW5lXCIsIFwiZ2VuZXJhdG9yXCIsIFtcbiAgXCJtb2R1bGUtbm8tbmV3bGluZS0xLnRlc3QuZml4dHVyZS50ZlwiLFxuICBcIm1vZHVsZS1uby1uZXdsaW5lLTIudGVzdC5maXh0dXJlLnRmXCIsXG5dKTtcblxudGVzdChcImdlbmVyYXRlIG11bHRpcGxlIGF3cyBtb2R1bGVzXCIsIGFzeW5jICgpID0+IHtcbiAgamVzdC5zZXRUaW1lb3V0KDEyMDAwMCk7XG5cbiAgY29uc3Qgd29ya2RpciA9IHRtcChcIm1vZHVsZS1nZW5lcmF0b3ItYXdzLnRlc3RcIik7XG4gIGNvbnN0IGNvbnN0cmFpbnRzID0gW1xuICAgIG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL3ZwYy9hd3NAMi43OC4wXCIpLFxuICAgIG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL3Jkcy1hdXJvcmEvYXdzQDQuMS4wXCIpLFxuICBdO1xuXG4gIGNvbnN0IG1ha2VyID0gbmV3IENvbnN0cnVjdHNNYWtlcihcbiAgICB7XG4gICAgICBjb2RlTWFrZXJPdXRwdXQ6IHdvcmtkaXIsXG4gICAgICB0YXJnZXRMYW5ndWFnZTogTGFuZ3VhZ2UuVFlQRVNDUklQVCxcbiAgICB9LFxuICAgIHByb2Nlc3MuZW52LkNES1RGX0VYUEVSSU1FTlRBTF9QUk9WSURFUl9TQ0hFTUFfQ0FDSEVfUEFUSCxcbiAgKTtcbiAgYXdhaXQgbWFrZXIuZ2VuZXJhdGUoY29uc3RyYWludHMpO1xuXG4gIGNvbnN0IHZwY091dHB1dCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4od29ya2RpciwgXCJtb2R1bGVzL3RlcnJhZm9ybS1hd3MtbW9kdWxlcy9hd3MvdnBjLnRzXCIpLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KHZwY091dHB1dCkudG9NYXRjaFNuYXBzaG90KCk7XG5cbiAgY29uc3QgcmRzT3V0cHV0ID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbih3b3JrZGlyLCBcIm1vZHVsZXMvdGVycmFmb3JtLWF3cy1tb2R1bGVzL2F3cy9yZHMtYXVyb3JhLnRzXCIpLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KHJkc091dHB1dCkudG9NYXRjaFNuYXBzaG90KCk7XG59LCAxMjAwMDApO1xuXG50ZXN0KFwiZ2VuZXJhdGUgbmVzdGVkIG1vZHVsZVwiLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHdvcmtkaXIgPSB0bXAoXCJtb2R1bGUtZ2VuZXJhdG9yLW5lc3RlZC50ZXN0XCIpO1xuICBjb25zdCBjb25zdHJhaW50ID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoXG4gICAgXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdnBjL2F3cy8vbW9kdWxlcy92cGMtZW5kcG9pbnRzQDMuMTkuMFwiLFxuICApO1xuXG4gIGNvbnN0IG1ha2VyID0gbmV3IENvbnN0cnVjdHNNYWtlcihcbiAgICB7XG4gICAgICBjb2RlTWFrZXJPdXRwdXQ6IHdvcmtkaXIsXG4gICAgICB0YXJnZXRMYW5ndWFnZTogTGFuZ3VhZ2UuVFlQRVNDUklQVCxcbiAgICB9LFxuICAgIHByb2Nlc3MuZW52LkNES1RGX0VYUEVSSU1FTlRBTF9QUk9WSURFUl9TQ0hFTUFfQ0FDSEVfUEFUSCxcbiAgKTtcbiAgYXdhaXQgbWFrZXIuZ2VuZXJhdGUoW2NvbnN0cmFpbnRdKTtcblxuICBjb25zdCBvdXRwdXQgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgcGF0aC5qb2luKFxuICAgICAgd29ya2RpcixcbiAgICAgIFwibW9kdWxlcy90ZXJyYWZvcm0tYXdzLW1vZHVsZXMvYXdzL3ZwYy9tb2R1bGVzL3ZwYy1lbmRwb2ludHMudHNcIixcbiAgICApLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KG91dHB1dCkudG9NYXRjaFNuYXBzaG90KCk7XG59LCAxMjAwMDApO1xuXG5leHBlY3RNb2R1bGVUb01hdGNoU25hcHNob3QoXCJnZXRYIHZhcmlhYmxlc1wiLCBcImdlbmVyYXRvclwiLCBbXG4gIFwibW9kdWxlLWdldC14LnRlc3QuZml4dHVyZS50ZlwiLFxuXSk7XG5cbmV4cGVjdE1vZHVsZVRvTWF0Y2hTbmFwc2hvdChcbiAgXCJoYW5kbGUgKi8qIGluIG1vZHVsZSB2YXJpYWJsZSBkZWZhdWx0IHN0cmluZ1wiLFxuICBcImdlbmVyYXRvclwiLFxuICBbXCJtb2R1bGUtd2l0aC1zdGFyLWRlZmF1bHQudGVzdC5maXh0dXJlLnRmXCJdLFxuKTtcblxub25UZjFfNkFuZE5ld2VyKFxuICBcImdlbmVyYXRlIG1vZHVsZSB0aGF0IGNhbid0IGJlIGluaXRpYWxpemVkXCIsXG4gIGFzeW5jICgpID0+IHtcbiAgICBqZXN0LnNldFRpbWVvdXQoMTIwMDAwKTtcblxuICAgIGNvbnN0IHdvcmtkaXIgPSB0bXAoXCJtb2R1bGUtZ2VuZXJhdG9yLnRlc3Qtbm8taW5pdFwiKTtcbiAgICBjb25zdCBjb25zdHJhaW50ID0gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQoXG4gICAgICBcIm1pbGxpSFEvbmV4dC1qcy9hd3NAMS4wLjAtY2FuYXJ5LjVcIixcbiAgICApO1xuXG4gICAgY29uc3QgbWFrZXIgPSBuZXcgQ29uc3RydWN0c01ha2VyKFxuICAgICAge1xuICAgICAgICBjb2RlTWFrZXJPdXRwdXQ6IHdvcmtkaXIsXG4gICAgICAgIHRhcmdldExhbmd1YWdlOiBMYW5ndWFnZS5UWVBFU0NSSVBULFxuICAgICAgfSxcbiAgICAgIHByb2Nlc3MuZW52LkNES1RGX0VYUEVSSU1FTlRBTF9QUk9WSURFUl9TQ0hFTUFfQ0FDSEVfUEFUSCxcbiAgICApO1xuICAgIGF3YWl0IG1ha2VyLmdlbmVyYXRlKFtjb25zdHJhaW50XSk7XG5cbiAgICBjb25zdCBvdXRwdXQgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICBwYXRoLmpvaW4od29ya2RpciwgXCJtb2R1bGVzL21pbGxpSFEvYXdzL25leHQtanMudHNcIiksXG4gICAgICBcInV0Zi04XCIsXG4gICAgKTtcblxuICAgIC8vIHllcywgdGhpcyBpcyBhIGxvdCBvZiBjb2RlLCBidXQgdGhpcyB0ZXN0IGlzIHNraXBwZWQgZm9yIHNvbWUgVGVycmFmb3JtIHZlcnNpb25zXG4gICAgLy8gd2hpY2ggdGhlbiBzaG93cyBzbmFwc2hvdHMgYXMgb2Jzb2xldGUgd2hpY2ggZmFpbHMgdGhlIHRlc3RcbiAgICAvLyB0aGlzIHdheSwgdGhlcmUncyBubyBzdWNoIHByb2JsZW0gaWYgdGhlIHRlc3QgaXMgc2tpcHBlZFxuICAgIGV4cGVjdChvdXRwdXQpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICBcIi8vIGdlbmVyYXRlZCBieSBjZGt0biBnZXRcbiAgICAgIC8vIG1pbGxpSFEvbmV4dC1qcy9hd3NcbiAgICAgIGltcG9ydCB7IFRlcnJhZm9ybU1vZHVsZSwgdHlwZSBUZXJyYWZvcm1Nb2R1bGVVc2VyQ29uZmlnIH0gZnJvbSAnY2RrdG4nO1xuICAgICAgaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG4gICAgICBleHBvcnQgaW50ZXJmYWNlIE5leHRKc0NvbmZpZyBleHRlbmRzIFRlcnJhZm9ybU1vZHVsZVVzZXJDb25maWcge1xuICAgICAgICAvKipcbiAgICAgICAgKiBBQ00gY2VydGlmaWNhdGUgYXJuIGZvciBjdXN0b21fZG9tYWluXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGNsb3VkZnJvbnRBY21DZXJ0aWZpY2F0ZUFybj86IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICogQWxpYXNlcyBmb3IgY3VzdG9tX2RvbWFpblxuICAgICAgICAqXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGNsb3VkZnJvbnRBbGlhc2VzPzogc3RyaW5nW107XG4gICAgICAgIC8qKlxuICAgICAgICAqIEhlYWRlciBrZXlzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBjYWNoZSBrZXkgaW4gQ2xvdWRGcm9udC5cbiAgICAgICAgKiBBdXRob3JpemF0aW9uXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGNsb3VkZnJvbnRDYWNoZUtleUhlYWRlcnM/OiBzdHJpbmdbXTtcbiAgICAgICAgLyoqXG4gICAgICAgICogQ29udHJvbHMgd2hldGhlciB0aGUgbWFpbiBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiBzaG91bGQgYmUgY3JlYXRlZC5cbiAgICAgICAgKiB0cnVlXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGNsb3VkZnJvbnRDcmVhdGVEaXN0cmlidXRpb24/OiBib29sZWFuO1xuICAgICAgICAvKipcbiAgICAgICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHByb3ZpZGUgaXRzIGFybi5cbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgY2xvdWRmcm9udEV4dGVybmFsQXJuPzogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgKiBXaGVuIHVzaW5nIGFuIGV4dGVybmFsIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHByb3ZpZGUgaXRzIGlkLlxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBjbG91ZGZyb250RXh0ZXJuYWxJZD86IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICogVGhlIG1pbmltdW0gdmVyc2lvbiBvZiB0aGUgU1NMIHByb3RvY29sIHRoYXQgeW91IHdhbnQgQ2xvdWRGcm9udCB0byB1c2UgZm9yIEhUVFBTIGNvbm5lY3Rpb25zLiBPbmUgb2YgU1NMdjMsIFRMU3YxLCBUTFN2MV8yMDE2LCBUTFN2MS4xXzIwMTYsIFRMU3YxLjJfMjAxOCBvciBUTFN2MS4yXzIwMTkuXG4gICAgICAgICogVExTdjFcbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgY2xvdWRmcm9udE1pbmltdW1Qcm90b2NvbFZlcnNpb24/OiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAqIElkIG9mIGEgY3VzdG9tIHJlcXVlc3QgcG9saWN5IHRoYXQgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IHBvbGljeSAoQWxsVmlld2VyKS4gQ2FuIGJlIGN1c3RvbSBvciBtYW5hZ2VkLlxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBjbG91ZGZyb250T3JpZ2luUmVxdWVzdFBvbGljeT86IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICogUHJpY2UgY2xhc3MgZm9yIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbnMgKG1haW4gJiBwcm94eSBjb25maWcpLiBPbmUgb2YgUHJpY2VDbGFzc19BbGwsIFByaWNlQ2xhc3NfMjAwLCBQcmljZUNsYXNzXzEwMC5cbiAgICAgICAgKiBQcmljZUNsYXNzXzEwMFxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBjbG91ZGZyb250UHJpY2VDbGFzcz86IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICogSWQgb2YgYSByZXNwb25zZSBoZWFkZXJzIHBvbGljeS4gQ2FuIGJlIGN1c3RvbSBvciBtYW5hZ2VkLiBEZWZhdWx0IGlzIGVtcHR5LlxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBjbG91ZGZyb250UmVzcG9uc2VIZWFkZXJzUG9saWN5Pzogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgKiBBbiBvcHRpb25hbCB3ZWJhY2wyIGFybiBvciB3ZWJhY2wgaWQgdG8gYXNzb2NpYXRlIHdpdGggdGhlIGNsb3VkZnJvbnQgZGlzdHJpYnV0aW9uXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGNsb3VkZnJvbnRXZWJhY2xJZD86IHN0cmluZztcbiAgICAgICAgLyoqXG4gICAgICAgICogQ29udHJvbHMgd2hldGhlciByZXNvdXJjZXMgZm9yIGltYWdlIG9wdGltaXphdGlvbiBzdXBwb3J0IHNob3VsZCBiZSBjcmVhdGVkIG9yIG5vdC5cbiAgICAgICAgKiB0cnVlXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGNyZWF0ZUltYWdlT3B0aW1pemF0aW9uPzogYm9vbGVhbjtcbiAgICAgICAgLyoqXG4gICAgICAgICogVXNlIGxvY2FsbHkgYnVpbHQgcGFja2FnZXMgcmF0aGVyIHRoYW4gZG93bmxvYWQgdGhlbSBmcm9tIG5wbS5cbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgZGVidWdVc2VMb2NhbFBhY2thZ2VzPzogYm9vbGVhbjtcbiAgICAgICAgLyoqXG4gICAgICAgICogSWRlbnRpZmllciBmb3IgdGhlIGRlcGxveW1lbnQgZ3JvdXAgKG9ubHkgbG93ZXJjYXNlIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCBoeXBoZW5zIGFyZSBhbGxvd2VkKS5cbiAgICAgICAgKiB0Zi1uZXh0XG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGRlcGxveW1lbnROYW1lPzogc3RyaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgKiBDb250cm9scyB3aGV0aGVyIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBydW4gbXVsdGlwbGUgZGVwbG95bWVudHMgaW4gcGFyYWxsZWwgKHJlcXVpcmVzIG11bHRpcGxlX2RlcGxveW1lbnRzX2Jhc2VfZG9tYWluKS5cbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgZW5hYmxlTXVsdGlwbGVEZXBsb3ltZW50cz86IGJvb2xlYW47XG4gICAgICAgIC8qKlxuICAgICAgICAqIEFtb3VudCBvZiBtZW1vcnkgaW4gTUIgdGhlIHdvcmtlciBMYW1iZGEgRnVuY3Rpb24gZm9yIGltYWdlIG9wdGltaXphdGlvbiBjYW4gdXNlLiBWYWxpZCB2YWx1ZSBiZXR3ZWVuIDEyOCBNQiB0byAxMCwyNDAgTUIsIGluIDEgTUIgaW5jcmVtZW50cy5cbiAgICAgICAgKiAyLDA0OFxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSBpbWFnZU9wdGltaXphdGlvbkxhbWJkYU1lbW9yeVNpemU/OiBudW1iZXI7XG4gICAgICAgIC8qKlxuICAgICAgICAqIFdoZXRoZXIgdG8gZGVwbG95IGFkZGl0aW9uYWwgbGFtYmRhIEpTT04gcG9saWNpZXMuIElmIGZhbHNlLCBsYW1iZGFfcG9saWN5X2pzb24gd2lsbCBub3QgYmUgYXR0YWNoZWQgdG8gdGhlIGxhbWJkYSBmdW5jdGlvbi4gKE5lY2Vzc2FyeSBzaW5jZSBwb2xpY3kgc3RyaW5ncyBhcmUgb25seSBrbm93biBhZnRlciBhcHBseSB3aGVuIHVzaW5nIFRlcnJhZm9ybXMgZGF0YS5hd3NfaWFtX3BvbGljeV9kb2N1bWVudClcbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgbGFtYmRhQXR0YWNoUG9saWN5SnNvbj86IGJvb2xlYW47XG4gICAgICAgIC8qKlxuICAgICAgICAqIFNldCB0byB0cnVlIGlmIHRoZSBMYW1iZGEgZnVuY3Rpb25zIHNob3VsZCBiZSBhdHRhY2hlZCB0byBhIFZQQy4gVXNlIHRoaXMgc2V0dGluZyBpZiBWUEMgcmVzb3VyY2VzIHNob3VsZCBiZSBhY2Nlc3NlZCBieSB0aGUgTGFtYmRhIGZ1bmN0aW9ucy4gV2hlbiBzZXR0aW5nIHRoaXMgdG8gdHJ1ZSwgdXNlIHZwY19zZWN1cml0eV9ncm91cF9pZHMgYW5kIHZwY19zdWJuZXRfaWRzIHRvIHNwZWNpZnkgdGhlIFZQQyBuZXR3b3JraW5nLiBOb3RlIHRoYXQgYXR0YWNoaW5nIHRvIGEgVlBDIHdvdWxkIGludHJvZHVjZSBhIGRlbGF5IG9uIHRvIGNvbGQgc3RhcnRzXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGxhbWJkYUF0dGFjaFRvVnBjPzogYm9vbGVhbjtcbiAgICAgICAgLyoqXG4gICAgICAgICogQWRkaXRpb25hbCBwb2xpY3kgZG9jdW1lbnQgYXMgSlNPTiB0byBhdHRhY2ggdG8gdGhlIExhbWJkYSBGdW5jdGlvbiByb2xlXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IGxhbWJkYVBvbGljeUpzb24/OiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAqIEFSTiBvZiBJQU0gcG9saWN5IHRoYXQgc2NvcGVzIGF3c19pYW1fcm9sZSBhY2Nlc3MgZm9yIHRoZSBsYW1iZGFcbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgbGFtYmRhUm9sZVBlcm1pc3Npb25zQm91bmRhcnk/OiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAqIERlZmF1bHQgd2lsZGNhcmQgZG9tYWluIHdoZXJlIG5ldyBkZXBsb3ltZW50cyBzaG91bGQgYmUgYXZhaWxhYmxlLiBTaG91bGQgYmUgaW4gdGhlIGZvcm0gb2YgKi5leGFtcGxlLmNvbS5cbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgbXVsdGlwbGVEZXBsb3ltZW50c0Jhc2VEb21haW4/OiBzdHJpbmc7XG4gICAgICAgIC8qKlxuICAgICAgICAqIFRhZyBtZXRhZGF0YSB0byBsYWJlbCBBV1MgcmVzb3VyY2VzIHRoYXQgc3VwcG9ydCB0YWdzLlxuICAgICAgICAqIFRoZSBwcm9wZXJ0eSB0eXBlIGNvbnRhaW5zIGEgbWFwLCB0aGV5IGhhdmUgc3BlY2lhbCBoYW5kbGluZywgcGxlYXNlIHNlZSB7QGxpbmsgY2RrLnRmL21vZHVsZS1tYXAtaW5wdXRzIHRoZSBkb2NzfVxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICogVGFnIG1ldGFkYXRhIHRvIGxhYmVsIEFXUyBTMyBidWNrZXRzLiBPdmVycmlkZXMgdGFncyB3aXRoIHRoZSBzYW1lIG5hbWUgaW4gaW5wdXQgdmFyaWFibGUgdGFncy5cbiAgICAgICAgKiBUaGUgcHJvcGVydHkgdHlwZSBjb250YWlucyBhIG1hcCwgdGhleSBoYXZlIHNwZWNpYWwgaGFuZGxpbmcsIHBsZWFzZSBzZWUge0BsaW5rIGNkay50Zi9tb2R1bGUtbWFwLWlucHV0cyB0aGUgZG9jc31cbiAgICAgICAgKi9cbiAgICAgICAgcmVhZG9ubHkgdGFnc1MzQnVja2V0PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICogVGhlIGxpc3Qgb2YgU2VjdXJpdHkgR3JvdXAgSURzIHRvIGJlIHVzZWQgYnkgdGhlIExhbWJkYSBmdW5jdGlvbnMuIGxhbWJkYV9hdHRhY2hfdG9fdnBjIHNob3VsZCBiZSBzZXQgdG8gdHJ1ZSBmb3IgdGhlc2UgdG8gYmUgYXBwbGllZC5cbiAgICAgICAgKlxuICAgICAgICAqL1xuICAgICAgICByZWFkb25seSB2cGNTZWN1cml0eUdyb3VwSWRzPzogc3RyaW5nW107XG4gICAgICAgIC8qKlxuICAgICAgICAqIFRoZSBsaXN0IG9mIFZQQyBzdWJuZXQgSURzIHRvIGF0dGFjaCB0aGUgTGFtYmRhIGZ1bmN0aW9ucy4gbGFtYmRhX2F0dGFjaF90b192cGMgc2hvdWxkIGJlIHNldCB0byB0cnVlIGZvciB0aGVzZSB0byBiZSBhcHBsaWVkLlxuICAgICAgICAqXG4gICAgICAgICovXG4gICAgICAgIHJlYWRvbmx5IHZwY1N1Ym5ldElkcz86IHN0cmluZ1tdO1xuICAgICAgfVxuICAgICAgLyoqXG4gICAgICAqIERlZmluZXMgYW4gTmV4dEpzIGJhc2VkIG9uIGEgVGVycmFmb3JtIG1vZHVsZVxuICAgICAgKlxuICAgICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL21vZHVsZXMvbWlsbGlIUS9uZXh0LWpzL2F3cy8xLjAuMC1jYW5hcnkuNSBtaWxsaUhRL25leHQtanMvYXdzfVxuICAgICAgKi9cbiAgICAgIGV4cG9ydCBjbGFzcyBOZXh0SnMgZXh0ZW5kcyBUZXJyYWZvcm1Nb2R1bGUge1xuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0czogeyBbbmFtZTogc3RyaW5nXTogYW55IH0gPSB7IH07XG4gICAgICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBjb25maWc6IE5leHRKc0NvbmZpZyA9IHt9KSB7XG4gICAgICAgICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICBzb3VyY2U6ICdtaWxsaUhRL25leHQtanMvYXdzJyxcbiAgICAgICAgICAgIHZlcnNpb246ICcxLjAuMC1jYW5hcnkuNScsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5jbG91ZGZyb250QWNtQ2VydGlmaWNhdGVBcm4gPSBjb25maWcuY2xvdWRmcm9udEFjbUNlcnRpZmljYXRlQXJuO1xuICAgICAgICAgIHRoaXMuY2xvdWRmcm9udEFsaWFzZXMgPSBjb25maWcuY2xvdWRmcm9udEFsaWFzZXM7XG4gICAgICAgICAgdGhpcy5jbG91ZGZyb250Q2FjaGVLZXlIZWFkZXJzID0gY29uZmlnLmNsb3VkZnJvbnRDYWNoZUtleUhlYWRlcnM7XG4gICAgICAgICAgdGhpcy5jbG91ZGZyb250Q3JlYXRlRGlzdHJpYnV0aW9uID0gY29uZmlnLmNsb3VkZnJvbnRDcmVhdGVEaXN0cmlidXRpb247XG4gICAgICAgICAgdGhpcy5jbG91ZGZyb250RXh0ZXJuYWxBcm4gPSBjb25maWcuY2xvdWRmcm9udEV4dGVybmFsQXJuO1xuICAgICAgICAgIHRoaXMuY2xvdWRmcm9udEV4dGVybmFsSWQgPSBjb25maWcuY2xvdWRmcm9udEV4dGVybmFsSWQ7XG4gICAgICAgICAgdGhpcy5jbG91ZGZyb250TWluaW11bVByb3RvY29sVmVyc2lvbiA9IGNvbmZpZy5jbG91ZGZyb250TWluaW11bVByb3RvY29sVmVyc2lvbjtcbiAgICAgICAgICB0aGlzLmNsb3VkZnJvbnRPcmlnaW5SZXF1ZXN0UG9saWN5ID0gY29uZmlnLmNsb3VkZnJvbnRPcmlnaW5SZXF1ZXN0UG9saWN5O1xuICAgICAgICAgIHRoaXMuY2xvdWRmcm9udFByaWNlQ2xhc3MgPSBjb25maWcuY2xvdWRmcm9udFByaWNlQ2xhc3M7XG4gICAgICAgICAgdGhpcy5jbG91ZGZyb250UmVzcG9uc2VIZWFkZXJzUG9saWN5ID0gY29uZmlnLmNsb3VkZnJvbnRSZXNwb25zZUhlYWRlcnNQb2xpY3k7XG4gICAgICAgICAgdGhpcy5jbG91ZGZyb250V2ViYWNsSWQgPSBjb25maWcuY2xvdWRmcm9udFdlYmFjbElkO1xuICAgICAgICAgIHRoaXMuY3JlYXRlSW1hZ2VPcHRpbWl6YXRpb24gPSBjb25maWcuY3JlYXRlSW1hZ2VPcHRpbWl6YXRpb247XG4gICAgICAgICAgdGhpcy5kZWJ1Z1VzZUxvY2FsUGFja2FnZXMgPSBjb25maWcuZGVidWdVc2VMb2NhbFBhY2thZ2VzO1xuICAgICAgICAgIHRoaXMuZGVwbG95bWVudE5hbWUgPSBjb25maWcuZGVwbG95bWVudE5hbWU7XG4gICAgICAgICAgdGhpcy5lbmFibGVNdWx0aXBsZURlcGxveW1lbnRzID0gY29uZmlnLmVuYWJsZU11bHRpcGxlRGVwbG95bWVudHM7XG4gICAgICAgICAgdGhpcy5pbWFnZU9wdGltaXphdGlvbkxhbWJkYU1lbW9yeVNpemUgPSBjb25maWcuaW1hZ2VPcHRpbWl6YXRpb25MYW1iZGFNZW1vcnlTaXplO1xuICAgICAgICAgIHRoaXMubGFtYmRhQXR0YWNoUG9saWN5SnNvbiA9IGNvbmZpZy5sYW1iZGFBdHRhY2hQb2xpY3lKc29uO1xuICAgICAgICAgIHRoaXMubGFtYmRhQXR0YWNoVG9WcGMgPSBjb25maWcubGFtYmRhQXR0YWNoVG9WcGM7XG4gICAgICAgICAgdGhpcy5sYW1iZGFQb2xpY3lKc29uID0gY29uZmlnLmxhbWJkYVBvbGljeUpzb247XG4gICAgICAgICAgdGhpcy5sYW1iZGFSb2xlUGVybWlzc2lvbnNCb3VuZGFyeSA9IGNvbmZpZy5sYW1iZGFSb2xlUGVybWlzc2lvbnNCb3VuZGFyeTtcbiAgICAgICAgICB0aGlzLm11bHRpcGxlRGVwbG95bWVudHNCYXNlRG9tYWluID0gY29uZmlnLm11bHRpcGxlRGVwbG95bWVudHNCYXNlRG9tYWluO1xuICAgICAgICAgIHRoaXMudGFncyA9IGNvbmZpZy50YWdzO1xuICAgICAgICAgIHRoaXMudGFnc1MzQnVja2V0ID0gY29uZmlnLnRhZ3NTM0J1Y2tldDtcbiAgICAgICAgICB0aGlzLnZwY1NlY3VyaXR5R3JvdXBJZHMgPSBjb25maWcudnBjU2VjdXJpdHlHcm91cElkcztcbiAgICAgICAgICB0aGlzLnZwY1N1Ym5ldElkcyA9IGNvbmZpZy52cGNTdWJuZXRJZHM7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBjbG91ZGZyb250QWNtQ2VydGlmaWNhdGVBcm4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfYWNtX2NlcnRpZmljYXRlX2FybiddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IGNsb3VkZnJvbnRBY21DZXJ0aWZpY2F0ZUFybih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfYWNtX2NlcnRpZmljYXRlX2FybiddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBjbG91ZGZyb250QWxpYXNlcygpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X2FsaWFzZXMnXSBhcyBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IGNsb3VkZnJvbnRBbGlhc2VzKHZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X2FsaWFzZXMnXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgY2xvdWRmcm9udENhY2hlS2V5SGVhZGVycygpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X2NhY2hlX2tleV9oZWFkZXJzJ10gYXMgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCBjbG91ZGZyb250Q2FjaGVLZXlIZWFkZXJzKHZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X2NhY2hlX2tleV9oZWFkZXJzJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGNsb3VkZnJvbnRDcmVhdGVEaXN0cmlidXRpb24oKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X2NyZWF0ZV9kaXN0cmlidXRpb24nXSBhcyBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgY2xvdWRmcm9udENyZWF0ZURpc3RyaWJ1dGlvbih2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X2NyZWF0ZV9kaXN0cmlidXRpb24nXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgY2xvdWRmcm9udEV4dGVybmFsQXJuKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X2V4dGVybmFsX2FybiddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IGNsb3VkZnJvbnRFeHRlcm5hbEFybih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfZXh0ZXJuYWxfYXJuJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGNsb3VkZnJvbnRFeHRlcm5hbElkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X2V4dGVybmFsX2lkJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgY2xvdWRmcm9udEV4dGVybmFsSWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X2V4dGVybmFsX2lkJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGNsb3VkZnJvbnRNaW5pbXVtUHJvdG9jb2xWZXJzaW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X21pbmltdW1fcHJvdG9jb2xfdmVyc2lvbiddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IGNsb3VkZnJvbnRNaW5pbXVtUHJvdG9jb2xWZXJzaW9uKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snY2xvdWRmcm9udF9taW5pbXVtX3Byb3RvY29sX3ZlcnNpb24nXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgY2xvdWRmcm9udE9yaWdpblJlcXVlc3RQb2xpY3koKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfb3JpZ2luX3JlcXVlc3RfcG9saWN5J10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgY2xvdWRmcm9udE9yaWdpblJlcXVlc3RQb2xpY3kodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X29yaWdpbl9yZXF1ZXN0X3BvbGljeSddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBjbG91ZGZyb250UHJpY2VDbGFzcygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1snY2xvdWRmcm9udF9wcmljZV9jbGFzcyddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IGNsb3VkZnJvbnRQcmljZUNsYXNzKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snY2xvdWRmcm9udF9wcmljZV9jbGFzcyddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBjbG91ZGZyb250UmVzcG9uc2VIZWFkZXJzUG9saWN5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X3Jlc3BvbnNlX2hlYWRlcnNfcG9saWN5J10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgY2xvdWRmcm9udFJlc3BvbnNlSGVhZGVyc1BvbGljeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfcmVzcG9uc2VfaGVhZGVyc19wb2xpY3knXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgY2xvdWRmcm9udFdlYmFjbElkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydjbG91ZGZyb250X3dlYmFjbF9pZCddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IGNsb3VkZnJvbnRXZWJhY2xJZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2Nsb3VkZnJvbnRfd2ViYWNsX2lkJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGNyZWF0ZUltYWdlT3B0aW1pemF0aW9uKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1snY3JlYXRlX2ltYWdlX29wdGltaXphdGlvbiddIGFzIGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCBjcmVhdGVJbWFnZU9wdGltaXphdGlvbih2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWydjcmVhdGVfaW1hZ2Vfb3B0aW1pemF0aW9uJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGRlYnVnVXNlTG9jYWxQYWNrYWdlcygpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ2RlYnVnX3VzZV9sb2NhbF9wYWNrYWdlcyddIGFzIGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCBkZWJ1Z1VzZUxvY2FsUGFja2FnZXModmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snZGVidWdfdXNlX2xvY2FsX3BhY2thZ2VzJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGRlcGxveW1lbnROYW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydkZXBsb3ltZW50X25hbWUnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCBkZXBsb3ltZW50TmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2RlcGxveW1lbnRfbmFtZSddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBlbmFibGVNdWx0aXBsZURlcGxveW1lbnRzKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1snZW5hYmxlX211bHRpcGxlX2RlcGxveW1lbnRzJ10gYXMgYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IGVuYWJsZU11bHRpcGxlRGVwbG95bWVudHModmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snZW5hYmxlX211bHRpcGxlX2RlcGxveW1lbnRzJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGltYWdlT3B0aW1pemF0aW9uTGFtYmRhTWVtb3J5U2l6ZSgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1snaW1hZ2Vfb3B0aW1pemF0aW9uX2xhbWJkYV9tZW1vcnlfc2l6ZSddIGFzIG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IGltYWdlT3B0aW1pemF0aW9uTGFtYmRhTWVtb3J5U2l6ZSh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2ltYWdlX29wdGltaXphdGlvbl9sYW1iZGFfbWVtb3J5X3NpemUnXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgbGFtYmRhQXR0YWNoUG9saWN5SnNvbigpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ2xhbWJkYV9hdHRhY2hfcG9saWN5X2pzb24nXSBhcyBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgbGFtYmRhQXR0YWNoUG9saWN5SnNvbih2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWydsYW1iZGFfYXR0YWNoX3BvbGljeV9qc29uJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGxhbWJkYUF0dGFjaFRvVnBjKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1snbGFtYmRhX2F0dGFjaF90b192cGMnXSBhcyBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgbGFtYmRhQXR0YWNoVG9WcGModmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snbGFtYmRhX2F0dGFjaF90b192cGMnXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgbGFtYmRhUG9saWN5SnNvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1snbGFtYmRhX3BvbGljeV9qc29uJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgbGFtYmRhUG9saWN5SnNvbih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2xhbWJkYV9wb2xpY3lfanNvbiddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBsYW1iZGFSb2xlUGVybWlzc2lvbnNCb3VuZGFyeSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0c1snbGFtYmRhX3JvbGVfcGVybWlzc2lvbnNfYm91bmRhcnknXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCBsYW1iZGFSb2xlUGVybWlzc2lvbnNCb3VuZGFyeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ2xhbWJkYV9yb2xlX3Blcm1pc3Npb25zX2JvdW5kYXJ5J10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IG11bHRpcGxlRGVwbG95bWVudHNCYXNlRG9tYWluKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRzWydtdWx0aXBsZV9kZXBsb3ltZW50c19iYXNlX2RvbWFpbiddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IG11bHRpcGxlRGVwbG95bWVudHNCYXNlRG9tYWluKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmlucHV0c1snbXVsdGlwbGVfZGVwbG95bWVudHNfYmFzZV9kb21haW4nXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgdGFncygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ3RhZ3MnXSBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBzZXQgdGFncyh2YWx1ZTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWyd0YWdzJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IHRhZ3NTM0J1Y2tldCgpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ3RhZ3NfczNfYnVja2V0J10gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IHRhZ3NTM0J1Y2tldCh2YWx1ZTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuaW5wdXRzWyd0YWdzX3MzX2J1Y2tldCddID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCB2cGNTZWN1cml0eUdyb3VwSWRzKCk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ3ZwY19zZWN1cml0eV9ncm91cF9pZHMnXSBhcyBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgc2V0IHZwY1NlY3VyaXR5R3JvdXBJZHModmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ3ZwY19zZWN1cml0eV9ncm91cF9pZHMnXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgdnBjU3VibmV0SWRzKCk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5pbnB1dHNbJ3ZwY19zdWJuZXRfaWRzJ10gYXMgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIHNldCB2cGNTdWJuZXRJZHModmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dHNbJ3ZwY19zdWJuZXRfaWRzJ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGFwaUVuZHBvaW50T3V0cHV0KCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0cmluZygnYXBpX2VuZHBvaW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBhcGlFbmRwb2ludEFjY2Vzc1BvbGljeUFybk91dHB1dCgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmcoJ2FwaV9lbmRwb2ludF9hY2Nlc3NfcG9saWN5X2FybicpO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgY2xvdWRmcm9udEN1c3RvbUVycm9yUmVzcG9uc2VPdXRwdXQoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nKCdjbG91ZGZyb250X2N1c3RvbV9lcnJvcl9yZXNwb25zZScpO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgY2xvdWRmcm9udERlZmF1bHRDYWNoZUJlaGF2aW9yT3V0cHV0KCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0cmluZygnY2xvdWRmcm9udF9kZWZhdWx0X2NhY2hlX2JlaGF2aW9yJyk7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBjbG91ZGZyb250RGVmYXVsdFJvb3RPYmplY3RPdXRwdXQoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nKCdjbG91ZGZyb250X2RlZmF1bHRfcm9vdF9vYmplY3QnKTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGNsb3VkZnJvbnREb21haW5OYW1lT3V0cHV0KCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFN0cmluZygnY2xvdWRmcm9udF9kb21haW5fbmFtZScpO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgY2xvdWRmcm9udEhvc3RlZFpvbmVJZE91dHB1dCgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmcoJ2Nsb3VkZnJvbnRfaG9zdGVkX3pvbmVfaWQnKTtcbiAgICAgICAgfVxuICAgICAgICBwdWJsaWMgZ2V0IGNsb3VkZnJvbnRPcmRlcmVkQ2FjaGVCZWhhdmlvcnNPdXRwdXQoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nKCdjbG91ZGZyb250X29yZGVyZWRfY2FjaGVfYmVoYXZpb3JzJyk7XG4gICAgICAgIH1cbiAgICAgICAgcHVibGljIGdldCBjbG91ZGZyb250T3JpZ2luc091dHB1dCgpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmcoJ2Nsb3VkZnJvbnRfb3JpZ2lucycpO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpYyBnZXQgdXBsb2FkQnVja2V0SWRPdXRwdXQoKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nKCd1cGxvYWRfYnVja2V0X2lkJyk7XG4gICAgICAgIH1cbiAgICAgICAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0cztcbiAgICAgICAgfVxuICAgICAgICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUhjbEF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgICAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLmlucHV0cylcbiAgICAgICAgICAgICAgLmZpbHRlcigoWywgdmFsXSkgPT4gdmFsICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgIC5tYXAoKFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImFueVwiLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFwiXG4gICAgYCk7XG4gIH0sXG4gIDEyMDAwMCxcbik7XG4iXX0=
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
// Copyright (c) HashiCorp, Inc
|
|
27
37
|
// SPDX-License-Identifier: MPL-2.0
|
|
@@ -49,4 +59,4 @@ test("generate a resource with nested type and no attributes", async () => {
|
|
|
49
59
|
const output = fs.readFileSync(path.join(workdir, "providers/test/nested-type-without-attributes-resource/index.ts"), "utf-8");
|
|
50
60
|
expect(output).toMatchSnapshot();
|
|
51
61
|
});
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLXR5cGVzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2V0L19fdGVzdHNfXy9nZW5lcmF0b3IvbmVzdGVkLXR5cGVzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IseUNBQXNDO0FBQ3RDLDJFQUFnRjtBQUNoRixrQ0FBMEM7QUFFMUMsTUFBTSxHQUFHLEdBQUcsSUFBQSxzQkFBZSxHQUFFLENBQUM7QUFFOUIsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO0lBQzdCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3JCLEVBQUUsQ0FBQyxZQUFZLENBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLGdDQUFnQyxDQUFDLEVBQ2xFLE9BQU8sQ0FDUixDQUNGLENBQUM7SUFDRixJQUFJLCtDQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsK0NBQStDLENBQUMsRUFDbkUsT0FBTyxDQUNSLENBQUM7SUFDRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsd0RBQXdELEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDeEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7SUFDN0IsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFDM0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDckIsRUFBRSxDQUFDLFlBQVksQ0FDYixJQUFJLENBQUMsSUFBSSxDQUNQLFNBQVMsRUFDVCxVQUFVLEVBQ1Ysa0RBQWtELENBQ25ELEVBQ0QsT0FBTyxDQUNSLENBQ0YsQ0FBQztJQUNGLElBQUksK0NBQTBCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV6QixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUM1QixJQUFJLENBQUMsSUFBSSxDQUNQLE9BQU8sRUFDUCxpRUFBaUUsQ0FDbEUsRUFDRCxPQUFPLENBQ1IsQ0FBQztJQUNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUNuQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gXCJjb2RlbWFrZXJcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yIH0gZnJvbSBcIi4uLy4uL2dlbmVyYXRvci9wcm92aWRlci1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IGNyZWF0ZVRtcEhlbHBlciB9IGZyb20gXCIuLi91dGlsXCI7XG5cbmNvbnN0IHRtcCA9IGNyZWF0ZVRtcEhlbHBlcigpO1xuXG50ZXN0KFwiZ2VuZXJhdGUgYSByZXNvdXJjZSB3aXRoIG5lc3RlZCB0eXBlc1wiLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGNvZGUgPSBuZXcgQ29kZU1ha2VyKCk7XG4gIGNvbnN0IHdvcmtkaXIgPSB0bXAoXCJuZXN0ZWQtdHlwZXMudGVzdFwiKTtcbiAgY29uc3Qgc3BlYyA9IEpTT04ucGFyc2UoXG4gICAgZnMucmVhZEZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCJmaXh0dXJlc1wiLCBcIm5lc3RlZC10eXBlcy50ZXN0LmZpeHR1cmUuanNvblwiKSxcbiAgICAgIFwidXRmLThcIixcbiAgICApLFxuICApO1xuICBuZXcgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3IoY29kZSwgc3BlYykuZ2VuZXJhdGVBbGwoKTtcbiAgYXdhaXQgY29kZS5zYXZlKHdvcmtkaXIpO1xuXG4gIGNvbnN0IG91dHB1dCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4od29ya2RpciwgXCJwcm92aWRlcnMvdGVzdC9uZXN0ZWQtdHlwZXMtcmVzb3VyY2UvaW5kZXgudHNcIiksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3Qob3V0cHV0KS50b01hdGNoU25hcHNob3QoKTtcbn0pO1xuXG50ZXN0KFwiZ2VuZXJhdGUgYSByZXNvdXJjZSB3aXRoIG5lc3RlZCB0eXBlIGFuZCBubyBhdHRyaWJ1dGVzXCIsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgY29kZSA9IG5ldyBDb2RlTWFrZXIoKTtcbiAgY29uc3Qgd29ya2RpciA9IHRtcChcIm5lc3RlZC10eXBlLXdpdGhvdXQtYXR0cmlidXRlcy50ZXN0XCIpO1xuICBjb25zdCBzcGVjID0gSlNPTi5wYXJzZShcbiAgICBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICBwYXRoLmpvaW4oXG4gICAgICAgIF9fZGlybmFtZSxcbiAgICAgICAgXCJmaXh0dXJlc1wiLFxuICAgICAgICBcIm5lc3RlZC10eXBlLXdpdGhvdXQtYXR0cmlidXRlcy50ZXN0LmZpeHR1cmUuanNvblwiLFxuICAgICAgKSxcbiAgICAgIFwidXRmLThcIixcbiAgICApLFxuICApO1xuICBuZXcgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3IoY29kZSwgc3BlYykuZ2VuZXJhdGVBbGwoKTtcbiAgYXdhaXQgY29kZS5zYXZlKHdvcmtkaXIpO1xuXG4gIGNvbnN0IG91dHB1dCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4oXG4gICAgICB3b3JrZGlyLFxuICAgICAgXCJwcm92aWRlcnMvdGVzdC9uZXN0ZWQtdHlwZS13aXRob3V0LWF0dHJpYnV0ZXMtcmVzb3VyY2UvaW5kZXgudHNcIixcbiAgICApLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KG91dHB1dCkudG9NYXRjaFNuYXBzaG90KCk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
// Copyright (c) HashiCorp, Inc
|
|
37
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const codemaker_1 = require("codemaker");
|
|
41
|
+
const provider_generator_1 = require("../../generator/provider-generator");
|
|
42
|
+
const resource_parser_1 = require("../../generator/resource-parser");
|
|
43
|
+
const util_1 = require("../util");
|
|
44
|
+
const tmp = (0, util_1.createTmpHelper)();
|
|
45
|
+
// A provider declaring provider-defined functions emits them to
|
|
46
|
+
// providers/<provider>/provider-functions/index.ts. A resource named
|
|
47
|
+
// <provider>_provider_functions maps to that same directory, so without a
|
|
48
|
+
// guard the resource overwrites the functions wrapper and the provider index
|
|
49
|
+
// exports the name twice.
|
|
50
|
+
describe("resource named like the provider functions submodule", () => {
|
|
51
|
+
let workdir;
|
|
52
|
+
beforeAll(async () => {
|
|
53
|
+
const code = new codemaker_1.CodeMaker();
|
|
54
|
+
workdir = tmp("provider-functions-name-collision.test");
|
|
55
|
+
const spec = JSON.parse(fs.readFileSync(path.join(__dirname, "fixtures", "provider-functions-name-collision.test.fixture.json"), "utf-8"));
|
|
56
|
+
new provider_generator_1.TerraformProviderGenerator(code, spec).generateAll();
|
|
57
|
+
await code.save(workdir);
|
|
58
|
+
});
|
|
59
|
+
const read = (relPath) => fs.readFileSync(path.join(workdir, relPath), "utf-8");
|
|
60
|
+
test("the functions submodule holds the functions wrapper, not the resource", () => {
|
|
61
|
+
const output = read("providers/example/provider-functions/index.ts");
|
|
62
|
+
expect(output).toContain("class ExampleProviderFunctions");
|
|
63
|
+
expect(output).not.toContain("cdktn.TerraformResource");
|
|
64
|
+
});
|
|
65
|
+
test("the resource is emitted to its own directory", () => {
|
|
66
|
+
const output = read("providers/example/provider-functions-resource/index.ts");
|
|
67
|
+
expect(output).toContain("class ProviderFunctionsResource");
|
|
68
|
+
expect(output).toContain("cdktn.TerraformResource");
|
|
69
|
+
});
|
|
70
|
+
test("the provider index exports both, without duplicate names", () => {
|
|
71
|
+
const index = read("providers/example/index.ts");
|
|
72
|
+
expect(index).toContain("export * as providerFunctions from './provider-functions/index';");
|
|
73
|
+
expect(index).toContain("export * as providerFunctionsResource from './provider-functions-resource/index';");
|
|
74
|
+
const exportedNames = [...index.matchAll(/export \* as (\w+) from/g)].map((m) => m[1]);
|
|
75
|
+
expect(new Set(exportedNames).size).toBe(exportedNames.length);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe("sanitizeClassOrNamespaceName", () => {
|
|
79
|
+
test("suffixes a resource named provider_functions", () => {
|
|
80
|
+
expect((0, resource_parser_1.sanitizeClassOrNamespaceName)("provider_functions")).toBe("provider_functions_resource");
|
|
81
|
+
});
|
|
82
|
+
test("still suffixes a resource named provider", () => {
|
|
83
|
+
expect((0, resource_parser_1.sanitizeClassOrNamespaceName)("provider")).toBe("provider_resource");
|
|
84
|
+
});
|
|
85
|
+
test("leaves an unrelated resource name alone", () => {
|
|
86
|
+
expect((0, resource_parser_1.sanitizeClassOrNamespaceName)("function_app")).toBe("function_app");
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItZnVuY3Rpb25zLW5hbWUtY29sbGlzaW9uLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2V0L19fdGVzdHNfXy9nZW5lcmF0b3IvcHJvdmlkZXItZnVuY3Rpb25zLW5hbWUtY29sbGlzaW9uLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IseUNBQXNDO0FBQ3RDLDJFQUFnRjtBQUNoRixxRUFBK0U7QUFDL0Usa0NBQTBDO0FBRTFDLE1BQU0sR0FBRyxHQUFHLElBQUEsc0JBQWUsR0FBRSxDQUFDO0FBRTlCLGdFQUFnRTtBQUNoRSxxRUFBcUU7QUFDckUsMEVBQTBFO0FBQzFFLDZFQUE2RTtBQUM3RSwwQkFBMEI7QUFDMUIsUUFBUSxDQUFDLHNEQUFzRCxFQUFFLEdBQUcsRUFBRTtJQUNwRSxJQUFJLE9BQWUsQ0FBQztJQUVwQixTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7UUFDN0IsT0FBTyxHQUFHLEdBQUcsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3JCLEVBQUUsQ0FBQyxZQUFZLENBQ2IsSUFBSSxDQUFDLElBQUksQ0FDUCxTQUFTLEVBQ1QsVUFBVSxFQUNWLHFEQUFxRCxDQUN0RCxFQUNELE9BQU8sQ0FDUixDQUNGLENBQUM7UUFDRixJQUFJLCtDQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6RCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLElBQUksR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQy9CLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFeEQsSUFBSSxDQUFDLHVFQUF1RSxFQUFFLEdBQUcsRUFBRTtRQUNqRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUNyRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDM0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMxRCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7UUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUNqQix3REFBd0QsQ0FDekQsQ0FBQztRQUNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsMERBQTBELEVBQUUsR0FBRyxFQUFFO1FBQ3BFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQ3JCLGtFQUFrRSxDQUNuRSxDQUFDO1FBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FDckIsbUZBQW1GLENBQ3BGLENBQUM7UUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUN2RSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNaLENBQUM7UUFDRixNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLDhCQUE4QixFQUFFLEdBQUcsRUFBRTtJQUM1QyxJQUFJLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO1FBQ3hELE1BQU0sQ0FBQyxJQUFBLDhDQUE0QixFQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdELDZCQUE2QixDQUM5QixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsMENBQTBDLEVBQUUsR0FBRyxFQUFFO1FBQ3BELE1BQU0sQ0FBQyxJQUFBLDhDQUE0QixFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDN0UsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMseUNBQXlDLEVBQUUsR0FBRyxFQUFFO1FBQ25ELE1BQU0sQ0FBQyxJQUFBLDhDQUE0QixFQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tIFwiY29kZW1ha2VyXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvciB9IGZyb20gXCIuLi8uLi9nZW5lcmF0b3IvcHJvdmlkZXItZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBzYW5pdGl6ZUNsYXNzT3JOYW1lc3BhY2VOYW1lIH0gZnJvbSBcIi4uLy4uL2dlbmVyYXRvci9yZXNvdXJjZS1wYXJzZXJcIjtcbmltcG9ydCB7IGNyZWF0ZVRtcEhlbHBlciB9IGZyb20gXCIuLi91dGlsXCI7XG5cbmNvbnN0IHRtcCA9IGNyZWF0ZVRtcEhlbHBlcigpO1xuXG4vLyBBIHByb3ZpZGVyIGRlY2xhcmluZyBwcm92aWRlci1kZWZpbmVkIGZ1bmN0aW9ucyBlbWl0cyB0aGVtIHRvXG4vLyBwcm92aWRlcnMvPHByb3ZpZGVyPi9wcm92aWRlci1mdW5jdGlvbnMvaW5kZXgudHMuIEEgcmVzb3VyY2UgbmFtZWRcbi8vIDxwcm92aWRlcj5fcHJvdmlkZXJfZnVuY3Rpb25zIG1hcHMgdG8gdGhhdCBzYW1lIGRpcmVjdG9yeSwgc28gd2l0aG91dCBhXG4vLyBndWFyZCB0aGUgcmVzb3VyY2Ugb3ZlcndyaXRlcyB0aGUgZnVuY3Rpb25zIHdyYXBwZXIgYW5kIHRoZSBwcm92aWRlciBpbmRleFxuLy8gZXhwb3J0cyB0aGUgbmFtZSB0d2ljZS5cbmRlc2NyaWJlKFwicmVzb3VyY2UgbmFtZWQgbGlrZSB0aGUgcHJvdmlkZXIgZnVuY3Rpb25zIHN1Ym1vZHVsZVwiLCAoKSA9PiB7XG4gIGxldCB3b3JrZGlyOiBzdHJpbmc7XG5cbiAgYmVmb3JlQWxsKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjb2RlID0gbmV3IENvZGVNYWtlcigpO1xuICAgIHdvcmtkaXIgPSB0bXAoXCJwcm92aWRlci1mdW5jdGlvbnMtbmFtZS1jb2xsaXNpb24udGVzdFwiKTtcbiAgICBjb25zdCBzcGVjID0gSlNPTi5wYXJzZShcbiAgICAgIGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgcGF0aC5qb2luKFxuICAgICAgICAgIF9fZGlybmFtZSxcbiAgICAgICAgICBcImZpeHR1cmVzXCIsXG4gICAgICAgICAgXCJwcm92aWRlci1mdW5jdGlvbnMtbmFtZS1jb2xsaXNpb24udGVzdC5maXh0dXJlLmpzb25cIixcbiAgICAgICAgKSxcbiAgICAgICAgXCJ1dGYtOFwiLFxuICAgICAgKSxcbiAgICApO1xuICAgIG5ldyBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvcihjb2RlLCBzcGVjKS5nZW5lcmF0ZUFsbCgpO1xuICAgIGF3YWl0IGNvZGUuc2F2ZSh3b3JrZGlyKTtcbiAgfSk7XG5cbiAgY29uc3QgcmVhZCA9IChyZWxQYXRoOiBzdHJpbmcpID0+XG4gICAgZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbih3b3JrZGlyLCByZWxQYXRoKSwgXCJ1dGYtOFwiKTtcblxuICB0ZXN0KFwidGhlIGZ1bmN0aW9ucyBzdWJtb2R1bGUgaG9sZHMgdGhlIGZ1bmN0aW9ucyB3cmFwcGVyLCBub3QgdGhlIHJlc291cmNlXCIsICgpID0+IHtcbiAgICBjb25zdCBvdXRwdXQgPSByZWFkKFwicHJvdmlkZXJzL2V4YW1wbGUvcHJvdmlkZXItZnVuY3Rpb25zL2luZGV4LnRzXCIpO1xuICAgIGV4cGVjdChvdXRwdXQpLnRvQ29udGFpbihcImNsYXNzIEV4YW1wbGVQcm92aWRlckZ1bmN0aW9uc1wiKTtcbiAgICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKFwiY2RrdG4uVGVycmFmb3JtUmVzb3VyY2VcIik7XG4gIH0pO1xuXG4gIHRlc3QoXCJ0aGUgcmVzb3VyY2UgaXMgZW1pdHRlZCB0byBpdHMgb3duIGRpcmVjdG9yeVwiLCAoKSA9PiB7XG4gICAgY29uc3Qgb3V0cHV0ID0gcmVhZChcbiAgICAgIFwicHJvdmlkZXJzL2V4YW1wbGUvcHJvdmlkZXItZnVuY3Rpb25zLXJlc291cmNlL2luZGV4LnRzXCIsXG4gICAgKTtcbiAgICBleHBlY3Qob3V0cHV0KS50b0NvbnRhaW4oXCJjbGFzcyBQcm92aWRlckZ1bmN0aW9uc1Jlc291cmNlXCIpO1xuICAgIGV4cGVjdChvdXRwdXQpLnRvQ29udGFpbihcImNka3RuLlRlcnJhZm9ybVJlc291cmNlXCIpO1xuICB9KTtcblxuICB0ZXN0KFwidGhlIHByb3ZpZGVyIGluZGV4IGV4cG9ydHMgYm90aCwgd2l0aG91dCBkdXBsaWNhdGUgbmFtZXNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gcmVhZChcInByb3ZpZGVycy9leGFtcGxlL2luZGV4LnRzXCIpO1xuICAgIGV4cGVjdChpbmRleCkudG9Db250YWluKFxuICAgICAgXCJleHBvcnQgKiBhcyBwcm92aWRlckZ1bmN0aW9ucyBmcm9tICcuL3Byb3ZpZGVyLWZ1bmN0aW9ucy9pbmRleCc7XCIsXG4gICAgKTtcbiAgICBleHBlY3QoaW5kZXgpLnRvQ29udGFpbihcbiAgICAgIFwiZXhwb3J0ICogYXMgcHJvdmlkZXJGdW5jdGlvbnNSZXNvdXJjZSBmcm9tICcuL3Byb3ZpZGVyLWZ1bmN0aW9ucy1yZXNvdXJjZS9pbmRleCc7XCIsXG4gICAgKTtcblxuICAgIGNvbnN0IGV4cG9ydGVkTmFtZXMgPSBbLi4uaW5kZXgubWF0Y2hBbGwoL2V4cG9ydCBcXCogYXMgKFxcdyspIGZyb20vZyldLm1hcChcbiAgICAgIChtKSA9PiBtWzFdLFxuICAgICk7XG4gICAgZXhwZWN0KG5ldyBTZXQoZXhwb3J0ZWROYW1lcykuc2l6ZSkudG9CZShleHBvcnRlZE5hbWVzLmxlbmd0aCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwic2FuaXRpemVDbGFzc09yTmFtZXNwYWNlTmFtZVwiLCAoKSA9PiB7XG4gIHRlc3QoXCJzdWZmaXhlcyBhIHJlc291cmNlIG5hbWVkIHByb3ZpZGVyX2Z1bmN0aW9uc1wiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHNhbml0aXplQ2xhc3NPck5hbWVzcGFjZU5hbWUoXCJwcm92aWRlcl9mdW5jdGlvbnNcIikpLnRvQmUoXG4gICAgICBcInByb3ZpZGVyX2Z1bmN0aW9uc19yZXNvdXJjZVwiLFxuICAgICk7XG4gIH0pO1xuXG4gIHRlc3QoXCJzdGlsbCBzdWZmaXhlcyBhIHJlc291cmNlIG5hbWVkIHByb3ZpZGVyXCIsICgpID0+IHtcbiAgICBleHBlY3Qoc2FuaXRpemVDbGFzc09yTmFtZXNwYWNlTmFtZShcInByb3ZpZGVyXCIpKS50b0JlKFwicHJvdmlkZXJfcmVzb3VyY2VcIik7XG4gIH0pO1xuXG4gIHRlc3QoXCJsZWF2ZXMgYW4gdW5yZWxhdGVkIHJlc291cmNlIG5hbWUgYWxvbmVcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChzYW5pdGl6ZUNsYXNzT3JOYW1lc3BhY2VOYW1lKFwiZnVuY3Rpb25fYXBwXCIpKS50b0JlKFwiZnVuY3Rpb25fYXBwXCIpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
// Copyright (c) HashiCorp, Inc
|
|
27
37
|
// SPDX-License-Identifier: MPL-2.0
|
|
@@ -173,4 +183,4 @@ test("generation throws when a provider's config attribute collides with the gen
|
|
|
173
183
|
const spec = JSON.parse(fs.readFileSync(path.join(__dirname, "fixtures", "provider-functions-collision.test.fixture.json"), "utf-8"));
|
|
174
184
|
expect(() => new provider_generator_1.TerraformProviderGenerator(code, spec).generateAll()).toThrow(/"functions"/);
|
|
175
185
|
});
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItZnVuY3Rpb25zLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2V0L19fdGVzdHNfXy9nZW5lcmF0b3IvcHJvdmlkZXItZnVuY3Rpb25zLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QiwyRUFBZ0Y7QUFDaEYsNEZBR3dEO0FBQ3hELHlDQUFzQztBQUV0QyxrQ0FBMEM7QUFFMUMsTUFBTSxHQUFHLEdBQUcsSUFBQSxzQkFBZSxHQUFFLENBQUM7QUFFOUIsSUFBSSxDQUFDLDJGQUEyRixFQUFFLEtBQUssSUFBSSxFQUFFO0lBQzNHLE1BQU0sSUFBSSxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO0lBQzdCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3JCLEVBQUUsQ0FBQyxZQUFZLENBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLHNDQUFzQyxDQUFDLEVBQ3hFLE9BQU8sQ0FDUixDQUNGLENBQUM7SUFDRixJQUFJLCtDQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RCxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekIsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSw0Q0FBNEMsQ0FBQyxFQUNoRSxPQUFPLENBQ1IsQ0FBQztJQUNGLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRTNFLE1BQU0sY0FB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QUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3IgfSBmcm9tIFwiLi4vLi4vZ2VuZXJhdG9yL3Byb3ZpZGVyLWdlbmVyYXRvclwiO1xuaW1wb3J0IHtcbiAgYXNzZXJ0Tm9GdW5jdGlvbnNHZXR0ZXJDb2xsaXNpb24sXG4gIGJ1aWxkUHJvdmlkZXJGdW5jdGlvbnNNb2RlbCxcbn0gZnJvbSBcIi4uLy4uL2dlbmVyYXRvci9tb2RlbHMvcHJvdmlkZXItZnVuY3Rpb24tbW9kZWxcIjtcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gXCJjb2RlbWFrZXJcIjtcbmltcG9ydCB7IEZ1bmN0aW9uU2lnbmF0dXJlIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQgeyBjcmVhdGVUbXBIZWxwZXIgfSBmcm9tIFwiLi4vdXRpbFwiO1xuXG5jb25zdCB0bXAgPSBjcmVhdGVUbXBIZWxwZXIoKTtcblxudGVzdChcImdlbmVyYXRlIHByb3ZpZGVyIGZ1bmN0aW9ucyBmb3IgdGhlIHRpbWUgcHJvdmlkZXIgKHJlYWwgdGVycmFmb3JtIDEuMTUuNiBzY2hlbWEgZnJhZ21lbnQpXCIsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgY29kZSA9IG5ldyBDb2RlTWFrZXIoKTtcbiAgY29uc3Qgd29ya2RpciA9IHRtcChcInByb3ZpZGVyLWZ1bmN0aW9ucy50ZXN0XCIpO1xuICBjb25zdCBzcGVjID0gSlNPTi5wYXJzZShcbiAgICBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCBcImZpeHR1cmVzXCIsIFwicHJvdmlkZXItZnVuY3Rpb25zLnRlc3QuZml4dHVyZS5qc29uXCIpLFxuICAgICAgXCJ1dGYtOFwiLFxuICAgICksXG4gICk7XG4gIG5ldyBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvcihjb2RlLCBzcGVjKS5nZW5lcmF0ZUFsbCgpO1xuICBhd2FpdCBjb2RlLnNhdmUod29ya2Rpcik7XG5cbiAgY29uc3QgcHJvdmlkZXJGdW5jdGlvbnNPdXRwdXQgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgcGF0aC5qb2luKHdvcmtkaXIsIFwicHJvdmlkZXJzL3RpbWUvcHJvdmlkZXItZnVuY3Rpb25zL2luZGV4LnRzXCIpLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KHByb3ZpZGVyRnVuY3Rpb25zT3V0cHV0KS50b01hdGNoU25hcHNob3QoXCJ0aW1lLXByb3ZpZGVyLWZ1bmN0aW9uc1wiKTtcblxuICBjb25zdCBwcm92aWRlck91dHB1dCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4od29ya2RpciwgXCJwcm92aWRlcnMvdGltZS9wcm92aWRlci9pbmRleC50c1wiKSxcbiAgICBcInV0Zi04XCIsXG4gICk7XG4gIGV4cGVjdChwcm92aWRlck91dHB1dCkudG9NYXRjaFNuYXBzaG90KFwidGltZS1wcm92aWRlclwiKTtcblxuICBjb25zdCBwcm92aWRlckluZGV4ID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbih3b3JrZGlyLCBcInByb3ZpZGVycy90aW1lL2luZGV4LnRzXCIpLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KHByb3ZpZGVySW5kZXgpLnRvTWF0Y2hTbmFwc2hvdChcInByb3ZpZGVyLWluZGV4XCIpO1xuXG4gIGNvbnN0IHByb3ZpZGVyTGF6eUluZGV4ID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbih3b3JrZGlyLCBcInByb3ZpZGVycy90aW1lL2xhenktaW5kZXgudHNcIiksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3QocHJvdmlkZXJMYXp5SW5kZXgpLnRvTWF0Y2hTbmFwc2hvdChcInByb3ZpZGVyLWxhenktaW5kZXhcIik7XG59KTtcblxuZGVzY3JpYmUoXCJnZW5lcmF0ZSBwcm92aWRlciBmdW5jdGlvbnMgY292ZXJpbmcgdmFyaWFkaWMgcGFyYW1ldGVycywgcHJpbWl0aXZlL2xpc3QgcmV0dXJucywgYW5kIGEgJ2RlZmF1bHQnIHBhcmFtZXRlciBuYW1lXCIsICgpID0+IHtcbiAgbGV0IHByb3ZpZGVyRnVuY3Rpb25zT3V0cHV0OiBzdHJpbmc7XG4gIGxldCBwcm92aWRlckluZGV4OiBzdHJpbmc7XG4gIGxldCBwcm92aWRlckxhenlJbmRleDogc3RyaW5nO1xuXG4gIGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY29kZSA9IG5ldyBDb2RlTWFrZXIoKTtcbiAgICBjb25zdCB3b3JrZGlyID0gdG1wKFwicHJvdmlkZXItZnVuY3Rpb25zLXN5bnRoZXRpYy50ZXN0XCIpO1xuICAgIGNvbnN0IHNwZWMgPSBKU09OLnBhcnNlKFxuICAgICAgZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICBwYXRoLmpvaW4oXG4gICAgICAgICAgX19kaXJuYW1lLFxuICAgICAgICAgIFwiZml4dHVyZXNcIixcbiAgICAgICAgICBcInByb3ZpZGVyLWZ1bmN0aW9ucy1zeW50aGV0aWMudGVzdC5maXh0dXJlLmpzb25cIixcbiAgICAgICAgKSxcbiAgICAgICAgXCJ1dGYtOFwiLFxuICAgICAgKSxcbiAgICApO1xuICAgIG5ldyBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvcihjb2RlLCBzcGVjKS5nZW5lcmF0ZUFsbCgpO1xuICAgIGF3YWl0IGNvZGUuc2F2ZSh3b3JrZGlyKTtcblxuICAgIHByb3ZpZGVyRnVuY3Rpb25zT3V0cHV0ID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKHdvcmtkaXIsIFwicHJvdmlkZXJzL2V4YW1wbGUvcHJvdmlkZXItZnVuY3Rpb25zL2luZGV4LnRzXCIpLFxuICAgICAgXCJ1dGYtOFwiLFxuICAgICk7XG4gICAgcHJvdmlkZXJJbmRleCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgIHBhdGguam9pbih3b3JrZGlyLCBcInByb3ZpZGVycy9leGFtcGxlL2luZGV4LnRzXCIpLFxuICAgICAgXCJ1dGYtOFwiLFxuICAgICk7XG4gICAgcHJvdmlkZXJMYXp5SW5kZXggPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICBwYXRoLmpvaW4od29ya2RpciwgXCJwcm92aWRlcnMvZXhhbXBsZS9sYXp5LWluZGV4LnRzXCIpLFxuICAgICAgXCJ1dGYtOFwiLFxuICAgICk7XG4gIH0pO1xuXG4gIHRlc3QoXCJtYXRjaGVzIHRoZSBzbmFwc2hvdFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHByb3ZpZGVyRnVuY3Rpb25zT3V0cHV0KS50b01hdGNoU25hcHNob3QoXG4gICAgICBcImV4YW1wbGUtcHJvdmlkZXItZnVuY3Rpb25zXCIsXG4gICAgKTtcbiAgICBleHBlY3QocHJvdmlkZXJJbmRleCkudG9NYXRjaFNuYXBzaG90KFwicHJvdmlkZXItaW5kZXhcIik7XG4gICAgZXhwZWN0KHByb3ZpZGVyTGF6eUluZGV4KS50b01hdGNoU25hcHNob3QoXCJwcm92aWRlci1sYXp5LWluZGV4XCIpO1xuICB9KTtcblxuICB0ZXN0KFwibmVzdGVkIGNvbGxlY3Rpb24gZG9jc3RyaW5ncyB1c2UgdGhlIGNvbXBhY3QgcmVjdXJzaXZlIEFycmF5L1NldCBub3RhdGlvblwiLCAoKSA9PiB7XG4gICAgLy8gbGlzdChzZXQoc3RyaW5nKSk6IG5vdGF0aW9uIGNhcnJpZXMgdGhlIHN0cnVjdHVyZTsgYSBwbGFpbiBUZXJyYWZvcm1cbiAgICAvLyBsaXN0IG5lZWRzIG5vIHByb3NlIG5vdGUuXG4gICAgZXhwZWN0KHByb3ZpZGVyRnVuY3Rpb25zT3V0cHV0KS50b0NvbnRhaW4oXG4gICAgICBcIkBwYXJhbSB7QXJyYXk8U2V0PHN0cmluZz4+fSBuYW1lR3JvdXBzXCIsXG4gICAgKTtcbiAgICBleHBlY3QocHJvdmlkZXJGdW5jdGlvbnNPdXRwdXQpLnRvQ29udGFpbihcIkByZXR1cm5zIHtBcnJheTxTZXQ8c3RyaW5nPj59XCIpO1xuICAgIC8vIHNldChsaXN0KHN0cmluZykpOiBTZXQ8Li4uPiBub3RhdGlvbiBwbHVzIHRoZSBzZXQtc2VtYW50aWNzIHByb3NlIG5vdGVcbiAgICAvLyAodGhlIGpzaWkgdHlwZSBpcyBzdGlsbCBhbiBhcnJheSAtIHRoZSBub3RlIGtlZXBzIGEgcmVhZGVyIGZyb21cbiAgICAvLyBsaXRlcmFsbHkgcGFzc2luZyBhIEpTIFNldCkuXG4gICAgZXhwZWN0KHByb3ZpZGVyRnVuY3Rpb25zT3V0cHV0KS50b0NvbnRhaW4oXG4gICAgICBcIkBwYXJhbSB7U2V0PEFycmF5PHN0cmluZz4+fSBuYW1lTGlzdHMgLSBUZXJyYWZvcm0gc2V0OyBvcmRlcmluZyBpcyBub3QgZ3VhcmFudGVlZCBhbmQgZHVwbGljYXRlIHZhbHVlcyBhcmUgcmVtb3ZlZC5cIixcbiAgICApO1xuICAgIGV4cGVjdChwcm92aWRlckZ1bmN0aW9uc091dHB1dCkudG9Db250YWluKFxuICAgICAgXCJAcmV0dXJucyB7U2V0PEFycmF5PHN0cmluZz4+fSBUZXJyYWZvcm0gc2V0OyBvcmRlcmluZyBpcyBub3QgZ3VhcmFudGVlZCBhbmQgZHVwbGljYXRlIHZhbHVlcyBhcmUgcmVtb3ZlZC5cIixcbiAgICApO1xuICB9KTtcblxuICAvLyBUaGlzIHBhY2thZ2UgaGFzIG5vIFR5cGVTY3JpcHQtY29tcGlsaW5nIGhhcm5lc3NcbiAgLy8gZm9yIGdlbmVyYXRlZCBvdXRwdXQgKG5vIGZpeHR1cmUvdGVzdCBhbnl3aGVyZSBnZW5lcmF0ZXMgYSBzbmlwcGV0IGFuZFxuICAvLyBmZWVkcyBpdCB0aHJvdWdoIGB0c2NgL2B0cy50cmFuc3BpbGVNb2R1bGVgLCBhbmQgYGNka3RuYCBpdHNlbGYgaXNuJ3QgYVxuICAvLyBkZXBlbmRlbmN5IG9mIHRoaXMgcGFja2FnZSB0byB0eXBlY2hlY2sgYWdhaW5zdCksIHNvIHRoZXNlIGFyZVxuICAvLyBzdHJ1Y3R1cmFsIGFzc2VydGlvbnMgb24gdGhlIGVtaXR0ZWQgZGVjbGFyYXRpb24gdGV4dCByYXRoZXIgdGhhbiBhblxuICAvLyBhY3R1YWwgY29tcGlsZSAtIHNlZSBhbHNvIHRoZSBydW50aW1lLWxldmVsIHByb29mIGluXG4gIC8vIHBhY2thZ2VzL2Nka3RuL3Rlc3QvcHJvdmlkZXItZnVuY3Rpb25zLnRlc3QudHMsIHdoaWNoIGV4ZXJjaXNlcyB0aGVcbiAgLy8gc2FtZSB1bmlvbi90b2tlbiBtZWNoYW5pY3MgdGhlc2Ugc2lnbmF0dXJlcyByZWx5IG9uLlxuICBkZXNjcmliZShcImNvbXBvc2l0aW9uOiBhIGZ1bmN0aW9uJ3MgcmV0dXJuIHR5cGUgaXMgZGlyZWN0bHkgYXNzaWduYWJsZSB0byBhbm90aGVyIGZ1bmN0aW9uJ3MgcGFyYW1ldGVyIG9mIHRoZSAnc2FtZScgVGVycmFmb3JtIHR5cGVcIiwgKCkgPT4ge1xuICAgIHRlc3QoXCJmbGFnc0ZvclNlZWQoKSdzIHNldChib29sKSByZXR1cm4gdHlwZSAoY2RrdG4uSVJlc29sdmFibGUpIGlzIG9uZSBvZiB0aGUgZXhhY3QgdW5pb24gbWVtYmVycyBmbGFnU2V0KCkncyBzZXQoYm9vbCkgcGFyYW1ldGVyIGRlY2xhcmVzXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdChwcm92aWRlckZ1bmN0aW9uc091dHB1dCkudG9Db250YWluKFxuICAgICAgICBcInB1YmxpYyBmbGFnc0ZvclNlZWQoc2VlZDogc3RyaW5nKTogY2RrdG4uSVJlc29sdmFibGUge1wiLFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChwcm92aWRlckZ1bmN0aW9uc091dHB1dCkudG9Db250YWluKFxuICAgICAgICBcInB1YmxpYyBmbGFnU2V0KGZsYWdzOiBBcnJheTxib29sZWFuIHwgY2RrdG4uSVJlc29sdmFibGU+IHwgY2RrdG4uSVJlc29sdmFibGUpOiBjZGt0bi5JUmVzb2x2YWJsZSB7XCIsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgdGVzdChcImRlZmF1bHRUYWdzKCkncyBtYXAoc3RyaW5nKSByZXR1cm4gdHlwZSBpcyB0ZXh0dWFsbHkgaWRlbnRpY2FsIHRvIHRhZ01hcCgpJ3MgbWFwKHN0cmluZykgcGFyYW1ldGVyIHR5cGVcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KHByb3ZpZGVyRnVuY3Rpb25zT3V0cHV0KS50b0NvbnRhaW4oXG4gICAgICAgIFwicHVibGljIGRlZmF1bHRUYWdzKHByZWZpeDogc3RyaW5nKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XCIsXG4gICAgICApO1xuICAgICAgZXhwZWN0KHByb3ZpZGVyRnVuY3Rpb25zT3V0cHV0KS50b0NvbnRhaW4oXG4gICAgICAgIFwicHVibGljIHRhZ01hcCh0YWdzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogc3RyaW5nIHtcIixcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHRlc3QoXCJhIGxpc3QoYm9vbCkgcGFyYW1ldGVyIChub3QganVzdCBzZXQoYm9vbCkpIGFsc28gYWNjZXB0cyBhIHdob2xlLWNvbGxlY3Rpb24gdG9rZW5cIiwgKCkgPT4ge1xuICAgIGV4cGVjdChwcm92aWRlckZ1bmN0aW9uc091dHB1dCkudG9Db250YWluKFxuICAgICAgXCJwdWJsaWMgZmxhZ3NPcmRlcmVkKGZsYWdzOiBBcnJheTxib29sZWFuIHwgY2RrdG4uSVJlc29sdmFibGU+IHwgY2RrdG4uSVJlc29sdmFibGUpOiBjZGt0bi5JUmVzb2x2YWJsZSB7XCIsXG4gICAgKTtcbiAgfSk7XG5cbiAgdGVzdChcImEgbGlzdChvYmplY3QpIHBhcmFtZXRlciB3aWRlbnMgdG8gYW55W10gfCBjZGt0bi5JUmVzb2x2YWJsZSAod2hvbGUtY29sbGVjdGlvbiB0b2tlbiBhY2NlcHRlZClcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChwcm92aWRlckZ1bmN0aW9uc091dHB1dCkudG9Db250YWluKFxuICAgICAgXCJwdWJsaWMgZGVzY3JpYmVDb25maWdzKGNvbmZpZ3M6IGFueVtdIHwgY2RrdG4uSVJlc29sdmFibGUpOiBzdHJpbmcge1wiLFxuICAgICk7XG4gIH0pO1xufSk7XG5cbnRlc3QoXCJidWlsZFByb3ZpZGVyRnVuY3Rpb25zTW9kZWwgdGhyb3dzIHdoZW4gdHdvIGZ1bmN0aW9uIG5hbWVzIGNvbGxhcHNlIHRvIHRoZSBzYW1lIGdlbmVyYXRlZCBtZXRob2QgbmFtZVwiLCAoKSA9PiB7XG4gIGV4cGVjdCgoKSA9PlxuICAgIGJ1aWxkUHJvdmlkZXJGdW5jdGlvbnNNb2RlbChcImV4YW1wbGVcIiwge1xuICAgICAgZm9vX2JhcjogeyByZXR1cm5fdHlwZTogXCJzdHJpbmdcIiwgcGFyYW1ldGVyczogW10gfSxcbiAgICAgIGZvb19fYmFyOiB7IHJldHVybl90eXBlOiBcInN0cmluZ1wiLCBwYXJhbWV0ZXJzOiBbXSB9LFxuICAgIH0pLFxuICApLnRvVGhyb3coL2Zvb19iYXIvKTtcbiAgZXhwZWN0KCgpID0+XG4gICAgYnVpbGRQcm92aWRlckZ1bmN0aW9uc01vZGVsKFwiZXhhbXBsZVwiLCB7XG4gICAgICBmb29fYmFyOiB7IHJldHVybl90eXBlOiBcInN0cmluZ1wiLCBwYXJhbWV0ZXJzOiBbXSB9LFxuICAgICAgZm9vX19iYXI6IHsgcmV0dXJuX3R5cGU6IFwic3RyaW5nXCIsIHBhcmFtZXRlcnM6IFtdIH0sXG4gICAgfSksXG4gICkudG9UaHJvdygvZm9vX19iYXIvKTtcbn0pO1xuXG50ZXN0KFwiYnVpbGRQcm92aWRlckZ1bmN0aW9uc01vZGVsIHRocm93cyB3aGVuIHR3byBwYXJhbWV0ZXIgbmFtZXMgY29sbGFwc2Ugd2l0aGluIG9uZSBmdW5jdGlvblwiLCAoKSA9PiB7XG4gIGV4cGVjdCgoKSA9PlxuICAgIGJ1aWxkUHJvdmlkZXJGdW5jdGlvbnNNb2RlbChcImV4YW1wbGVcIiwge1xuICAgICAgbXlfZnVuY3Rpb246IHtcbiAgICAgICAgcmV0dXJuX3R5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICB7IG5hbWU6IFwic29tZV92YWx1ZVwiLCB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgeyBuYW1lOiBcInNvbWVfX3ZhbHVlXCIsIHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSksXG4gICkudG9UaHJvdygvc29tZV92YWx1ZS8pO1xuICBleHBlY3QoKCkgPT5cbiAgICBidWlsZFByb3ZpZGVyRnVuY3Rpb25zTW9kZWwoXCJleGFtcGxlXCIsIHtcbiAgICAgIG15X2Z1bmN0aW9uOiB7XG4gICAgICAgIHJldHVybl90eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgeyBuYW1lOiBcInNvbWVfdmFsdWVcIiwgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgIHsgbmFtZTogXCJzb21lX192YWx1ZVwiLCB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pLFxuICApLnRvVGhyb3coL3NvbWVfX3ZhbHVlLyk7XG59KTtcblxuLy8gQm90aCBvZiB0aGVzZSBhc3NlcnQgdGhlIG1vZGVsLWxldmVsIHRocm93IGhhcHBlbnMgYmVmb3JlIGFueSBmaWxlIGlzXG4vLyBnZW5lcmF0ZWQ6IGJ1aWxkUHJvdmlkZXJGdW5jdGlvbnNNb2RlbCBpcyBjYWxsZWQgZGlyZWN0bHksIHdpdGggbm9cbi8vIENvZGVNYWtlci9nZW5lcmF0b3IgaW52b2x2ZWQsIHNvIHRoZXJlIGlzIG5vIGVtaXNzaW9uIHN0ZXAgdG8gcmVhY2guXG50ZXN0KFwiYnVpbGRQcm92aWRlckZ1bmN0aW9uc01vZGVsIHRocm93cyB3aGVuIGEgZnVuY3Rpb24gbmFtZSBzYW5pdGl6ZXMgdG8gJ2NvbnN0cnVjdG9yJ1wiLCAoKSA9PiB7XG4gIC8vIFRoZSBuZXN0ZWQgc2lnbmF0dXJlIGxpdGVyYWwgaXMgY2FzdCB0byBgRnVuY3Rpb25TaWduYXR1cmVgIChyYXRoZXIgdGhhblxuICAvLyByZWx5aW5nIG9uIGNvbnRleHR1YWwgdHlwaW5nIGZyb20gdGhlIHN1cnJvdW5kaW5nIGluZGV4IHNpZ25hdHVyZSlcbiAgLy8gYmVjYXVzZSBUeXBlU2NyaXB0IHNwZWNpYWwtY2FzZXMgYSBwcm9wZXJ0eSBsaXRlcmFsbHkgbmFtZWRcbiAgLy8gXCJjb25zdHJ1Y3RvclwiIC0gY29udGV4dHVhbGx5IHR5cGluZyBpdCBhZ2FpbnN0IGBGdW5jdGlvbmAgKGZyb21cbiAgLy8gYE9iamVjdC5wcm90b3R5cGVgKSBpbnN0ZWFkIG9mIHRoZSBpbmRleCBzaWduYXR1cmUncyBgRnVuY3Rpb25TaWduYXR1cmVgLFxuICAvLyBhbmQgc3B1cmlvdXNseSBmbGFnZ2luZyBgcmV0dXJuX3R5cGU6IFwic3RyaW5nXCJgIGFzIGFuIGVycm9yLiBTZWVcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy80MDc3Ni5cbiAgY29uc3Qgc2lnbmF0dXJlOiBGdW5jdGlvblNpZ25hdHVyZSA9IHtcbiAgICByZXR1cm5fdHlwZTogXCJzdHJpbmdcIixcbiAgICBwYXJhbWV0ZXJzOiBbXSxcbiAgfTtcbiAgZXhwZWN0KCgpID0+XG4gICAgYnVpbGRQcm92aWRlckZ1bmN0aW9uc01vZGVsKFwiZXhhbXBsZVwiLCB7XG4gICAgICBjb25zdHJ1Y3Rvcjogc2lnbmF0dXJlLFxuICAgIH0pLFxuICApLnRvVGhyb3coL2NvbnN0cnVjdG9yLyk7XG4gIGV4cGVjdCgoKSA9PlxuICAgIGJ1aWxkUHJvdmlkZXJGdW5jdGlvbnNNb2RlbChcImV4YW1wbGVcIiwge1xuICAgICAgY29uc3RydWN0b3I6IHNpZ25hdHVyZSxcbiAgICB9KSxcbiAgKS50b1Rocm93KC9leGFtcGxlLyk7XG59KTtcblxudGVzdChcImJ1aWxkUHJvdmlkZXJGdW5jdGlvbnNNb2RlbCB0aHJvd3Mgd2hlbiBhIGZ1bmN0aW9uIG5hbWUgc2FuaXRpemVzIHRvICdwcm92aWRlckxvY2FsTmFtZSdcIiwgKCkgPT4ge1xuICBleHBlY3QoKCkgPT5cbiAgICBidWlsZFByb3ZpZGVyRnVuY3Rpb25zTW9kZWwoXCJleGFtcGxlXCIsIHtcbiAgICAgIHByb3ZpZGVyX2xvY2FsX25hbWU6IHsgcmV0dXJuX3R5cGU6IFwic3RyaW5nXCIsIHBhcmFtZXRlcnM6IFtdIH0sXG4gICAgfSksXG4gICkudG9UaHJvdygvcHJvdmlkZXJfbG9jYWxfbmFtZS8pO1xuICBleHBlY3QoKCkgPT5cbiAgICBidWlsZFByb3ZpZGVyRnVuY3Rpb25zTW9kZWwoXCJleGFtcGxlXCIsIHtcbiAgICAgIHByb3ZpZGVyX2xvY2FsX25hbWU6IHsgcmV0dXJuX3R5cGU6IFwic3RyaW5nXCIsIHBhcmFtZXRlcnM6IFtdIH0sXG4gICAgfSksXG4gICkudG9UaHJvdygvcHJvdmlkZXJMb2NhbE5hbWUvKTtcbn0pO1xuXG50ZXN0KFwiYXNzZXJ0Tm9GdW5jdGlvbnNHZXR0ZXJDb2xsaXNpb24gdGhyb3dzIHdoZW4gdGhlIHByb3ZpZGVyJ3Mgb3duIGNvbmZpZyBzY2hlbWEgd291bGQgZ2VuZXJhdGUgYSAnZnVuY3Rpb25zJyBwcm9wZXJ0eVwiLCAoKSA9PiB7XG4gIGV4cGVjdCgoKSA9PlxuICAgIGFzc2VydE5vRnVuY3Rpb25zR2V0dGVyQ29sbGlzaW9uKFwiZXhhbXBsZVwiLCBbXCJhbGlhc1wiLCBcImZ1bmN0aW9uc1wiXSksXG4gICkudG9UaHJvdygvXCJmdW5jdGlvbnNcIi8pO1xufSk7XG5cbnRlc3QoXCJhc3NlcnROb0Z1bmN0aW9uc0dldHRlckNvbGxpc2lvbiBkb2VzIG5vdCB0aHJvdyB3aGVuIHRoZXJlIGlzIG5vIGNvbGxpZGluZyBhdHRyaWJ1dGVcIiwgKCkgPT4ge1xuICBleHBlY3QoKCkgPT5cbiAgICBhc3NlcnROb0Z1bmN0aW9uc0dldHRlckNvbGxpc2lvbihcImV4YW1wbGVcIiwgW1wiYWxpYXNcIl0pLFxuICApLm5vdC50b1Rocm93KCk7XG59KTtcblxudGVzdChcImdlbmVyYXRpb24gdGhyb3dzIHdoZW4gYSBwcm92aWRlcidzIGNvbmZpZyBhdHRyaWJ1dGUgY29sbGlkZXMgd2l0aCB0aGUgZ2VuZXJhdGVkICdmdW5jdGlvbnMnIGdldHRlclwiLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGNvZGUgPSBuZXcgQ29kZU1ha2VyKCk7XG4gIGNvbnN0IHNwZWMgPSBKU09OLnBhcnNlKFxuICAgIGZzLnJlYWRGaWxlU3luYyhcbiAgICAgIHBhdGguam9pbihcbiAgICAgICAgX19kaXJuYW1lLFxuICAgICAgICBcImZpeHR1cmVzXCIsXG4gICAgICAgIFwicHJvdmlkZXItZnVuY3Rpb25zLWNvbGxpc2lvbi50ZXN0LmZpeHR1cmUuanNvblwiLFxuICAgICAgKSxcbiAgICAgIFwidXRmLThcIixcbiAgICApLFxuICApO1xuICBleHBlY3QoKCkgPT5cbiAgICBuZXcgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3IoY29kZSwgc3BlYykuZ2VuZXJhdGVBbGwoKSxcbiAgKS50b1Rocm93KC9cImZ1bmN0aW9uc1wiLyk7XG59KTtcbiJdfQ==
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItZnVuY3Rpb25zLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2V0L19fdGVzdHNfXy9nZW5lcmF0b3IvcHJvdmlkZXItZnVuY3Rpb25zLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IsMkVBQWdGO0FBQ2hGLDRGQUd3RDtBQUN4RCx5Q0FBc0M7QUFFdEMsa0NBQTBDO0FBRTFDLE1BQU0sR0FBRyxHQUFHLElBQUEsc0JBQWUsR0FBRSxDQUFDO0FBRTlCLElBQUksQ0FBQywyRkFBMkYsRUFBRSxLQUFLLElBQUksRUFBRTtJQUMzRyxNQUFNLElBQUksR0FBRyxJQUFJLHFCQUFTLEVBQUUsQ0FBQztJQUM3QixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMvQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNyQixFQUFFLENBQUMsWUFBWSxDQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxzQ0FBc0MsQ0FBQyxFQUN4RSxPQUFPLENBQ1IsQ0FDRixDQUFDO0lBQ0YsSUFBSSwrQ0FBMEIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekQsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXpCLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsNENBQTRDLENBQUMsRUFDaEUsT0FBTyxDQUNSLENBQUM7SUFDRixNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxlQUFlLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUUz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QUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yIH0gZnJvbSBcIi4uLy4uL2dlbmVyYXRvci9wcm92aWRlci1nZW5lcmF0b3JcIjtcbmltcG9ydCB7XG4gIGFzc2VydE5vRnVuY3Rpb25zR2V0dGVyQ29sbGlzaW9uLFxuICBidWlsZFByb3ZpZGVyRnVuY3Rpb25zTW9kZWwsXG59IGZyb20gXCIuLi8uLi9nZW5lcmF0b3IvbW9kZWxzL3Byb3ZpZGVyLWZ1bmN0aW9uLW1vZGVsXCI7XG5pbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tIFwiY29kZW1ha2VyXCI7XG5pbXBvcnQgeyBGdW5jdGlvblNpZ25hdHVyZSB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHsgY3JlYXRlVG1wSGVscGVyIH0gZnJvbSBcIi4uL3V0aWxcIjtcblxuY29uc3QgdG1wID0gY3JlYXRlVG1wSGVscGVyKCk7XG5cbnRlc3QoXCJnZW5lcmF0ZSBwcm92aWRlciBmdW5jdGlvbnMgZm9yIHRoZSB0aW1lIHByb3ZpZGVyIChyZWFsIHRlcnJhZm9ybSAxLjE1LjYgc2NoZW1hIGZyYWdtZW50KVwiLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGNvZGUgPSBuZXcgQ29kZU1ha2VyKCk7XG4gIGNvbnN0IHdvcmtkaXIgPSB0bXAoXCJwcm92aWRlci1mdW5jdGlvbnMudGVzdFwiKTtcbiAgY29uc3Qgc3BlYyA9IEpTT04ucGFyc2UoXG4gICAgZnMucmVhZEZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCJmaXh0dXJlc1wiLCBcInByb3ZpZGVyLWZ1bmN0aW9ucy50ZXN0LmZpeHR1cmUuanNvblwiKSxcbiAgICAgIFwidXRmLThcIixcbiAgICApLFxuICApO1xuICBuZXcgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3IoY29kZSwgc3BlYykuZ2VuZXJhdGVBbGwoKTtcbiAgYXdhaXQgY29kZS5zYXZlKHdvcmtkaXIpO1xuXG4gIGNvbnN0IHByb3ZpZGVyRnVuY3Rpb25zT3V0cHV0ID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbih3b3JrZGlyLCBcInByb3ZpZGVycy90aW1lL3Byb3ZpZGVyLWZ1bmN0aW9ucy9pbmRleC50c1wiKSxcbiAgICBcInV0Zi04XCIsXG4gICk7XG4gIGV4cGVjdChwcm92aWRlckZ1bmN0aW9uc091dHB1dCkudG9NYXRjaFNuYXBzaG90KFwidGltZS1wcm92aWRlci1mdW5jdGlvbnNcIik7XG5cbiAgY29uc3QgcHJvdmlkZXJPdXRwdXQgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgcGF0aC5qb2luKHdvcmtkaXIsIFwicHJvdmlkZXJzL3RpbWUvcHJvdmlkZXIvaW5kZXgudHNcIiksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3QocHJvdmlkZXJPdXRwdXQpLnRvTWF0Y2hTbmFwc2hvdChcInRpbWUtcHJvdmlkZXJcIik7XG5cbiAgY29uc3QgcHJvdmlkZXJJbmRleCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4od29ya2RpciwgXCJwcm92aWRlcnMvdGltZS9pbmRleC50c1wiKSxcbiAgICBcInV0Zi04XCIsXG4gICk7XG4gIGV4cGVjdChwcm92aWRlckluZGV4KS50b01hdGNoU25hcHNob3QoXCJwcm92aWRlci1pbmRleFwiKTtcblxuICBjb25zdCBwcm92aWRlckxhenlJbmRleCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4od29ya2RpciwgXCJwcm92aWRlcnMvdGltZS9sYXp5LWluZGV4LnRzXCIpLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KHByb3ZpZGVyTGF6eUluZGV4KS50b01hdGNoU25hcHNob3QoXCJwcm92aWRlci1sYXp5LWluZGV4XCIpO1xufSk7XG5cbmRlc2NyaWJlKFwiZ2VuZXJhdGUgcHJvdmlkZXIgZnVuY3Rpb25zIGNvdmVyaW5nIHZhcmlhZGljIHBhcmFtZXRlcnMsIHByaW1pdGl2ZS9saXN0IHJldHVybnMsIGFuZCBhICdkZWZhdWx0JyBwYXJhbWV0ZXIgbmFtZVwiLCAoKSA9PiB7XG4gIGxldCBwcm92aWRlckZ1bmN0aW9uc091dHB1dDogc3RyaW5nO1xuICBsZXQgcHJvdmlkZXJJbmRleDogc3RyaW5nO1xuICBsZXQgcHJvdmlkZXJMYXp5SW5kZXg6IHN0cmluZztcblxuICBiZWZvcmVBbGwoYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNvZGUgPSBuZXcgQ29kZU1ha2VyKCk7XG4gICAgY29uc3Qgd29ya2RpciA9IHRtcChcInByb3ZpZGVyLWZ1bmN0aW9ucy1zeW50aGV0aWMudGVzdFwiKTtcbiAgICBjb25zdCBzcGVjID0gSlNPTi5wYXJzZShcbiAgICAgIGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgcGF0aC5qb2luKFxuICAgICAgICAgIF9fZGlybmFtZSxcbiAgICAgICAgICBcImZpeHR1cmVzXCIsXG4gICAgICAgICAgXCJwcm92aWRlci1mdW5jdGlvbnMtc3ludGhldGljLnRlc3QuZml4dHVyZS5qc29uXCIsXG4gICAgICAgICksXG4gICAgICAgIFwidXRmLThcIixcbiAgICAgICksXG4gICAgKTtcbiAgICBuZXcgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3IoY29kZSwgc3BlYykuZ2VuZXJhdGVBbGwoKTtcbiAgICBhd2FpdCBjb2RlLnNhdmUod29ya2Rpcik7XG5cbiAgICBwcm92aWRlckZ1bmN0aW9uc091dHB1dCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgIHBhdGguam9pbih3b3JrZGlyLCBcInByb3ZpZGVycy9leGFtcGxlL3Byb3ZpZGVyLWZ1bmN0aW9ucy9pbmRleC50c1wiKSxcbiAgICAgIFwidXRmLThcIixcbiAgICApO1xuICAgIHByb3ZpZGVySW5kZXggPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICBwYXRoLmpvaW4od29ya2RpciwgXCJwcm92aWRlcnMvZXhhbXBsZS9pbmRleC50c1wiKSxcbiAgICAgIFwidXRmLThcIixcbiAgICApO1xuICAgIHByb3ZpZGVyTGF6eUluZGV4ID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKHdvcmtkaXIsIFwicHJvdmlkZXJzL2V4YW1wbGUvbGF6eS1pbmRleC50c1wiKSxcbiAgICAgIFwidXRmLThcIixcbiAgICApO1xuICB9KTtcblxuICB0ZXN0KFwibWF0Y2hlcyB0aGUgc25hcHNob3RcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChwcm92aWRlckZ1bmN0aW9uc091dHB1dCkudG9NYXRjaFNuYXBzaG90KFxuICAgICAgXCJleGFtcGxlLXByb3ZpZGVyLWZ1bmN0aW9uc1wiLFxuICAgICk7XG4gICAgZXhwZWN0KHByb3ZpZGVySW5kZXgpLnRvTWF0Y2hTbmFwc2hvdChcInByb3ZpZGVyLWluZGV4XCIpO1xuICAgIGV4cGVjdChwcm92aWRlckxhenlJbmRleCkudG9NYXRjaFNuYXBzaG90KFwicHJvdmlkZXItbGF6eS1pbmRleFwiKTtcbiAgfSk7XG5cbiAgdGVzdChcIm5lc3RlZCBjb2xsZWN0aW9uIGRvY3N0cmluZ3MgdXNlIHRoZSBjb21wYWN0IHJlY3Vyc2l2ZSBBcnJheS9TZXQgbm90YXRpb25cIiwgKCkgPT4ge1xuICAgIC8vIGxpc3Qoc2V0KHN0cmluZykpOiBub3RhdGlvbiBjYXJyaWVzIHRoZSBzdHJ1Y3R1cmU7IGEgcGxhaW4gVGVycmFmb3JtXG4gICAgLy8gbGlzdCBuZWVkcyBubyBwcm9zZSBub3RlLlxuICAgIGV4cGVjdChwcm92aWRlckZ1bmN0aW9uc091dHB1dCkudG9Db250YWluKFxuICAgICAgXCJAcGFyYW0ge0FycmF5PFNldDxzdHJpbmc+Pn0gbmFtZUdyb3Vwc1wiLFxuICAgICk7XG4gICAgZXhwZWN0KHByb3ZpZGVyRnVuY3Rpb25zT3V0cHV0KS50b0NvbnRhaW4oXCJAcmV0dXJucyB7QXJyYXk8U2V0PHN0cmluZz4+fVwiKTtcbiAgICAvLyBzZXQobGlzdChzdHJpbmcpKTogU2V0PC4uLj4gbm90YXRpb24gcGx1cyB0aGUgc2V0LXNlbWFudGljcyBwcm9zZSBub3RlXG4gICAgLy8gKHRoZSBqc2lpIHR5cGUgaXMgc3RpbGwgYW4gYXJyYXkgLSB0aGUgbm90ZSBrZWVwcyBhIHJlYWRlciBmcm9tXG4gICAgLy8gbGl0ZXJhbGx5IHBhc3NpbmcgYSBKUyBTZXQpLlxuICAgIGV4cGVjdChwcm92aWRlckZ1bmN0aW9uc091dHB1dCkudG9Db250YWluKFxuICAgICAgXCJAcGFyYW0ge1NldDxBcnJheTxzdHJpbmc+Pn0gbmFtZUxpc3RzIC0gVGVycmFmb3JtIHNldDsgb3JkZXJpbmcgaXMgbm90IGd1YXJhbnRlZWQgYW5kIGR1cGxpY2F0ZSB2YWx1ZXMgYXJlIHJlbW92ZWQuXCIsXG4gICAgKTtcbiAgICBleHBlY3QocHJvdmlkZXJGdW5jdGlvbnNPdXRwdXQpLnRvQ29udGFpbihcbiAgICAgIFwiQHJldHVybnMge1NldDxBcnJheTxzdHJpbmc+Pn0gVGVycmFmb3JtIHNldDsgb3JkZXJpbmcgaXMgbm90IGd1YXJhbnRlZWQgYW5kIGR1cGxpY2F0ZSB2YWx1ZXMgYXJlIHJlbW92ZWQuXCIsXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gVGhpcyBwYWNrYWdlIGhhcyBubyBUeXBlU2NyaXB0LWNvbXBpbGluZyBoYXJuZXNzXG4gIC8vIGZvciBnZW5lcmF0ZWQgb3V0cHV0IChubyBmaXh0dXJlL3Rlc3QgYW55d2hlcmUgZ2VuZXJhdGVzIGEgc25pcHBldCBhbmRcbiAgLy8gZmVlZHMgaXQgdGhyb3VnaCBgdHNjYC9gdHMudHJhbnNwaWxlTW9kdWxlYCwgYW5kIGBjZGt0bmAgaXRzZWxmIGlzbid0IGFcbiAgLy8gZGVwZW5kZW5jeSBvZiB0aGlzIHBhY2thZ2UgdG8gdHlwZWNoZWNrIGFnYWluc3QpLCBzbyB0aGVzZSBhcmVcbiAgLy8gc3RydWN0dXJhbCBhc3NlcnRpb25zIG9uIHRoZSBlbWl0dGVkIGRlY2xhcmF0aW9uIHRleHQgcmF0aGVyIHRoYW4gYW5cbiAgLy8gYWN0dWFsIGNvbXBpbGUgLSBzZWUgYWxzbyB0aGUgcnVudGltZS1sZXZlbCBwcm9vZiBpblxuICAvLyBwYWNrYWdlcy9jZGt0bi90ZXN0L3Byb3ZpZGVyLWZ1bmN0aW9ucy50ZXN0LnRzLCB3aGljaCBleGVyY2lzZXMgdGhlXG4gIC8vIHNhbWUgdW5pb24vdG9rZW4gbWVjaGFuaWNzIHRoZXNlIHNpZ25hdHVyZXMgcmVseSBvbi5cbiAgZGVzY3JpYmUoXCJjb21wb3NpdGlvbjogYSBmdW5jdGlvbidzIHJldHVybiB0eXBlIGlzIGRpcmVjdGx5IGFzc2lnbmFibGUgdG8gYW5vdGhlciBmdW5jdGlvbidzIHBhcmFtZXRlciBvZiB0aGUgJ3NhbWUnIFRlcnJhZm9ybSB0eXBlXCIsICgpID0+IHtcbiAgICB0ZXN0KFwiZmxhZ3NGb3JTZWVkKCkncyBzZXQoYm9vbCkgcmV0dXJuIHR5cGUgKGNka3RuLklSZXNvbHZhYmxlKSBpcyBvbmUgb2YgdGhlIGV4YWN0IHVuaW9uIG1lbWJlcnMgZmxhZ1NldCgpJ3Mgc2V0KGJvb2wpIHBhcmFtZXRlciBkZWNsYXJlc1wiLCAoKSA9PiB7XG4gICAgICBleHBlY3QocHJvdmlkZXJGdW5jdGlvbnNPdXRwdXQpLnRvQ29udGFpbihcbiAgICAgICAgXCJwdWJsaWMgZmxhZ3NGb3JTZWVkKHNlZWQ6IHN0cmluZyk6IGNka3RuLklSZXNvbHZhYmxlIHtcIixcbiAgICAgICk7XG4gICAgICBleHBlY3QocHJvdmlkZXJGdW5jdGlvbnNPdXRwdXQpLnRvQ29udGFpbihcbiAgICAgICAgXCJwdWJsaWMgZmxhZ1NldChmbGFnczogQXJyYXk8Ym9vbGVhbiB8IGNka3RuLklSZXNvbHZhYmxlPiB8IGNka3RuLklSZXNvbHZhYmxlKTogY2RrdG4uSVJlc29sdmFibGUge1wiLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHRlc3QoXCJkZWZhdWx0VGFncygpJ3MgbWFwKHN0cmluZykgcmV0dXJuIHR5cGUgaXMgdGV4dHVhbGx5IGlkZW50aWNhbCB0byB0YWdNYXAoKSdzIG1hcChzdHJpbmcpIHBhcmFtZXRlciB0eXBlXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdChwcm92aWRlckZ1bmN0aW9uc091dHB1dCkudG9Db250YWluKFxuICAgICAgICBcInB1YmxpYyBkZWZhdWx0VGFncyhwcmVmaXg6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1wiLFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChwcm92aWRlckZ1bmN0aW9uc091dHB1dCkudG9Db250YWluKFxuICAgICAgICBcInB1YmxpYyB0YWdNYXAodGFnczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHN0cmluZyB7XCIsXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICB0ZXN0KFwiYSBsaXN0KGJvb2wpIHBhcmFtZXRlciAobm90IGp1c3Qgc2V0KGJvb2wpKSBhbHNvIGFjY2VwdHMgYSB3aG9sZS1jb2xsZWN0aW9uIHRva2VuXCIsICgpID0+IHtcbiAgICBleHBlY3QocHJvdmlkZXJGdW5jdGlvbnNPdXRwdXQpLnRvQ29udGFpbihcbiAgICAgIFwicHVibGljIGZsYWdzT3JkZXJlZChmbGFnczogQXJyYXk8Ym9vbGVhbiB8IGNka3RuLklSZXNvbHZhYmxlPiB8IGNka3RuLklSZXNvbHZhYmxlKTogY2RrdG4uSVJlc29sdmFibGUge1wiLFxuICAgICk7XG4gIH0pO1xuXG4gIHRlc3QoXCJhIGxpc3Qob2JqZWN0KSBwYXJhbWV0ZXIgd2lkZW5zIHRvIGFueVtdIHwgY2RrdG4uSVJlc29sdmFibGUgKHdob2xlLWNvbGxlY3Rpb24gdG9rZW4gYWNjZXB0ZWQpXCIsICgpID0+IHtcbiAgICBleHBlY3QocHJvdmlkZXJGdW5jdGlvbnNPdXRwdXQpLnRvQ29udGFpbihcbiAgICAgIFwicHVibGljIGRlc2NyaWJlQ29uZmlncyhjb25maWdzOiBhbnlbXSB8IGNka3RuLklSZXNvbHZhYmxlKTogc3RyaW5nIHtcIixcbiAgICApO1xuICB9KTtcbn0pO1xuXG50ZXN0KFwiYnVpbGRQcm92aWRlckZ1bmN0aW9uc01vZGVsIHRocm93cyB3aGVuIHR3byBmdW5jdGlvbiBuYW1lcyBjb2xsYXBzZSB0byB0aGUgc2FtZSBnZW5lcmF0ZWQgbWV0aG9kIG5hbWVcIiwgKCkgPT4ge1xuICBleHBlY3QoKCkgPT5cbiAgICBidWlsZFByb3ZpZGVyRnVuY3Rpb25zTW9kZWwoXCJleGFtcGxlXCIsIHtcbiAgICAgIGZvb19iYXI6IHsgcmV0dXJuX3R5cGU6IFwic3RyaW5nXCIsIHBhcmFtZXRlcnM6IFtdIH0sXG4gICAgICBmb29fX2JhcjogeyByZXR1cm5fdHlwZTogXCJzdHJpbmdcIiwgcGFyYW1ldGVyczogW10gfSxcbiAgICB9KSxcbiAgKS50b1Rocm93KC9mb29fYmFyLyk7XG4gIGV4cGVjdCgoKSA9PlxuICAgIGJ1aWxkUHJvdmlkZXJGdW5jdGlvbnNNb2RlbChcImV4YW1wbGVcIiwge1xuICAgICAgZm9vX2JhcjogeyByZXR1cm5fdHlwZTogXCJzdHJpbmdcIiwgcGFyYW1ldGVyczogW10gfSxcbiAgICAgIGZvb19fYmFyOiB7IHJldHVybl90eXBlOiBcInN0cmluZ1wiLCBwYXJhbWV0ZXJzOiBbXSB9LFxuICAgIH0pLFxuICApLnRvVGhyb3coL2Zvb19fYmFyLyk7XG59KTtcblxudGVzdChcImJ1aWxkUHJvdmlkZXJGdW5jdGlvbnNNb2RlbCB0aHJvd3Mgd2hlbiB0d28gcGFyYW1ldGVyIG5hbWVzIGNvbGxhcHNlIHdpdGhpbiBvbmUgZnVuY3Rpb25cIiwgKCkgPT4ge1xuICBleHBlY3QoKCkgPT5cbiAgICBidWlsZFByb3ZpZGVyRnVuY3Rpb25zTW9kZWwoXCJleGFtcGxlXCIsIHtcbiAgICAgIG15X2Z1bmN0aW9uOiB7XG4gICAgICAgIHJldHVybl90eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICAgICAgeyBuYW1lOiBcInNvbWVfdmFsdWVcIiwgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgIHsgbmFtZTogXCJzb21lX192YWx1ZVwiLCB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pLFxuICApLnRvVGhyb3coL3NvbWVfdmFsdWUvKTtcbiAgZXhwZWN0KCgpID0+XG4gICAgYnVpbGRQcm92aWRlckZ1bmN0aW9uc01vZGVsKFwiZXhhbXBsZVwiLCB7XG4gICAgICBteV9mdW5jdGlvbjoge1xuICAgICAgICByZXR1cm5fdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgcGFyYW1ldGVyczogW1xuICAgICAgICAgIHsgbmFtZTogXCJzb21lX3ZhbHVlXCIsIHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICB7IG5hbWU6IFwic29tZV9fdmFsdWVcIiwgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KSxcbiAgKS50b1Rocm93KC9zb21lX192YWx1ZS8pO1xufSk7XG5cbi8vIEJvdGggb2YgdGhlc2UgYXNzZXJ0IHRoZSBtb2RlbC1sZXZlbCB0aHJvdyBoYXBwZW5zIGJlZm9yZSBhbnkgZmlsZSBpc1xuLy8gZ2VuZXJhdGVkOiBidWlsZFByb3ZpZGVyRnVuY3Rpb25zTW9kZWwgaXMgY2FsbGVkIGRpcmVjdGx5LCB3aXRoIG5vXG4vLyBDb2RlTWFrZXIvZ2VuZXJhdG9yIGludm9sdmVkLCBzbyB0aGVyZSBpcyBubyBlbWlzc2lvbiBzdGVwIHRvIHJlYWNoLlxudGVzdChcImJ1aWxkUHJvdmlkZXJGdW5jdGlvbnNNb2RlbCB0aHJvd3Mgd2hlbiBhIGZ1bmN0aW9uIG5hbWUgc2FuaXRpemVzIHRvICdjb25zdHJ1Y3RvcidcIiwgKCkgPT4ge1xuICAvLyBUaGUgbmVzdGVkIHNpZ25hdHVyZSBsaXRlcmFsIGlzIGNhc3QgdG8gYEZ1bmN0aW9uU2lnbmF0dXJlYCAocmF0aGVyIHRoYW5cbiAgLy8gcmVseWluZyBvbiBjb250ZXh0dWFsIHR5cGluZyBmcm9tIHRoZSBzdXJyb3VuZGluZyBpbmRleCBzaWduYXR1cmUpXG4gIC8vIGJlY2F1c2UgVHlwZVNjcmlwdCBzcGVjaWFsLWNhc2VzIGEgcHJvcGVydHkgbGl0ZXJhbGx5IG5hbWVkXG4gIC8vIFwiY29uc3RydWN0b3JcIiAtIGNvbnRleHR1YWxseSB0eXBpbmcgaXQgYWdhaW5zdCBgRnVuY3Rpb25gIChmcm9tXG4gIC8vIGBPYmplY3QucHJvdG90eXBlYCkgaW5zdGVhZCBvZiB0aGUgaW5kZXggc2lnbmF0dXJlJ3MgYEZ1bmN0aW9uU2lnbmF0dXJlYCxcbiAgLy8gYW5kIHNwdXJpb3VzbHkgZmxhZ2dpbmcgYHJldHVybl90eXBlOiBcInN0cmluZ1wiYCBhcyBhbiBlcnJvci4gU2VlXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvNDA3NzYuXG4gIGNvbnN0IHNpZ25hdHVyZTogRnVuY3Rpb25TaWduYXR1cmUgPSB7XG4gICAgcmV0dXJuX3R5cGU6IFwic3RyaW5nXCIsXG4gICAgcGFyYW1ldGVyczogW10sXG4gIH07XG4gIGV4cGVjdCgoKSA9PlxuICAgIGJ1aWxkUHJvdmlkZXJGdW5jdGlvbnNNb2RlbChcImV4YW1wbGVcIiwge1xuICAgICAgY29uc3RydWN0b3I6IHNpZ25hdHVyZSxcbiAgICB9KSxcbiAgKS50b1Rocm93KC9jb25zdHJ1Y3Rvci8pO1xuICBleHBlY3QoKCkgPT5cbiAgICBidWlsZFByb3ZpZGVyRnVuY3Rpb25zTW9kZWwoXCJleGFtcGxlXCIsIHtcbiAgICAgIGNvbnN0cnVjdG9yOiBzaWduYXR1cmUsXG4gICAgfSksXG4gICkudG9UaHJvdygvZXhhbXBsZS8pO1xufSk7XG5cbnRlc3QoXCJidWlsZFByb3ZpZGVyRnVuY3Rpb25zTW9kZWwgdGhyb3dzIHdoZW4gYSBmdW5jdGlvbiBuYW1lIHNhbml0aXplcyB0byAncHJvdmlkZXJMb2NhbE5hbWUnXCIsICgpID0+IHtcbiAgZXhwZWN0KCgpID0+XG4gICAgYnVpbGRQcm92aWRlckZ1bmN0aW9uc01vZGVsKFwiZXhhbXBsZVwiLCB7XG4gICAgICBwcm92aWRlcl9sb2NhbF9uYW1lOiB7IHJldHVybl90eXBlOiBcInN0cmluZ1wiLCBwYXJhbWV0ZXJzOiBbXSB9LFxuICAgIH0pLFxuICApLnRvVGhyb3coL3Byb3ZpZGVyX2xvY2FsX25hbWUvKTtcbiAgZXhwZWN0KCgpID0+XG4gICAgYnVpbGRQcm92aWRlckZ1bmN0aW9uc01vZGVsKFwiZXhhbXBsZVwiLCB7XG4gICAgICBwcm92aWRlcl9sb2NhbF9uYW1lOiB7IHJldHVybl90eXBlOiBcInN0cmluZ1wiLCBwYXJhbWV0ZXJzOiBbXSB9LFxuICAgIH0pLFxuICApLnRvVGhyb3coL3Byb3ZpZGVyTG9jYWxOYW1lLyk7XG59KTtcblxudGVzdChcImFzc2VydE5vRnVuY3Rpb25zR2V0dGVyQ29sbGlzaW9uIHRocm93cyB3aGVuIHRoZSBwcm92aWRlcidzIG93biBjb25maWcgc2NoZW1hIHdvdWxkIGdlbmVyYXRlIGEgJ2Z1bmN0aW9ucycgcHJvcGVydHlcIiwgKCkgPT4ge1xuICBleHBlY3QoKCkgPT5cbiAgICBhc3NlcnROb0Z1bmN0aW9uc0dldHRlckNvbGxpc2lvbihcImV4YW1wbGVcIiwgW1wiYWxpYXNcIiwgXCJmdW5jdGlvbnNcIl0pLFxuICApLnRvVGhyb3coL1wiZnVuY3Rpb25zXCIvKTtcbn0pO1xuXG50ZXN0KFwiYXNzZXJ0Tm9GdW5jdGlvbnNHZXR0ZXJDb2xsaXNpb24gZG9lcyBub3QgdGhyb3cgd2hlbiB0aGVyZSBpcyBubyBjb2xsaWRpbmcgYXR0cmlidXRlXCIsICgpID0+IHtcbiAgZXhwZWN0KCgpID0+XG4gICAgYXNzZXJ0Tm9GdW5jdGlvbnNHZXR0ZXJDb2xsaXNpb24oXCJleGFtcGxlXCIsIFtcImFsaWFzXCJdKSxcbiAgKS5ub3QudG9UaHJvdygpO1xufSk7XG5cbnRlc3QoXCJnZW5lcmF0aW9uIHRocm93cyB3aGVuIGEgcHJvdmlkZXIncyBjb25maWcgYXR0cmlidXRlIGNvbGxpZGVzIHdpdGggdGhlIGdlbmVyYXRlZCAnZnVuY3Rpb25zJyBnZXR0ZXJcIiwgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBjb2RlID0gbmV3IENvZGVNYWtlcigpO1xuICBjb25zdCBzcGVjID0gSlNPTi5wYXJzZShcbiAgICBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICBwYXRoLmpvaW4oXG4gICAgICAgIF9fZGlybmFtZSxcbiAgICAgICAgXCJmaXh0dXJlc1wiLFxuICAgICAgICBcInByb3ZpZGVyLWZ1bmN0aW9ucy1jb2xsaXNpb24udGVzdC5maXh0dXJlLmpzb25cIixcbiAgICAgICksXG4gICAgICBcInV0Zi04XCIsXG4gICAgKSxcbiAgKTtcbiAgZXhwZWN0KCgpID0+XG4gICAgbmV3IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yKGNvZGUsIHNwZWMpLmdlbmVyYXRlQWxsKCksXG4gICkudG9UaHJvdygvXCJmdW5jdGlvbnNcIi8pO1xufSk7XG4iXX0=
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
// Copyright (c) HashiCorp, Inc
|
|
27
37
|
// SPDX-License-Identifier: MPL-2.0
|
|
@@ -57,4 +67,4 @@ test("generate provider with only block_types", async () => {
|
|
|
57
67
|
expect(output).not.toContain("public get functions()");
|
|
58
68
|
expect(output).not.toContain("provider-functions");
|
|
59
69
|
});
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9nZXQvX190ZXN0c19fL2dlbmVyYXRvci9wcm92aWRlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLDJFQUFnRjtBQUNoRix5Q0FBc0M7QUFDdEMsa0NBQTBDO0FBRTFDLE1BQU0sR0FBRyxHQUFHLElBQUEsc0JBQWUsR0FBRSxDQUFDO0FBRTlCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLElBQUksRUFBRTtJQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLHFCQUFTLEVBQUUsQ0FBQztJQUM3QixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDckIsRUFBRSxDQUFDLFlBQVksQ0FDYixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsZ0NBQWdDLENBQUMsRUFDbEUsT0FBTyxDQUNSLENBQ0YsQ0FBQztJQUNGLElBQUksK0NBQTBCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV6QixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxpQ0FBaUMsQ0FBQyxFQUNyRCxPQUFPLENBQ1IsQ0FBQztJQUNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNqQyx3RUFBd0U7SUFDeEUsNENBQTRDO0lBQzVDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDdkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLLElBQUksRUFBRTtJQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLHFCQUFTLEVBQUUsQ0FBQztJQUM3QixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDckIsRUFBRSxDQUFDLFlBQVksQ0FDYixJQUFJLENBQUMsSUFBSSxDQUNQLFNBQVMsRUFDVCxVQUFVLEVBQ1YseUNBQXlDLENBQzFDLEVBQ0QsT0FBTyxDQUNSLENBQ0YsQ0FBQztJQUNGLElBQUksK0NBQTBCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV6QixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSwwQ0FBMEMsQ0FBQyxFQUM5RCxPQUFPLENBQ1IsQ0FBQztJQUNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNqQyxzRUFBc0U7SUFDdEUsdURBQXVEO0lBQ3ZELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDdkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yIH0gZnJvbSBcIi4uLy4uL2dlbmVyYXRvci9wcm92aWRlci1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gXCJjb2RlbWFrZXJcIjtcbmltcG9ydCB7IGNyZWF0ZVRtcEhlbHBlciB9IGZyb20gXCIuLi91dGlsXCI7XG5cbmNvbnN0IHRtcCA9IGNyZWF0ZVRtcEhlbHBlcigpO1xuXG50ZXN0KFwiZ2VuZXJhdGUgcHJvdmlkZXJcIiwgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBjb2RlID0gbmV3IENvZGVNYWtlcigpO1xuICBjb25zdCB3b3JrZGlyID0gdG1wKFwicHJvdmlkZXIudGVzdFwiKTtcbiAgY29uc3Qgc3BlYyA9IEpTT04ucGFyc2UoXG4gICAgZnMucmVhZEZpbGVTeW5jKFxuICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCJmaXh0dXJlc1wiLCBcImF3cy1wcm92aWRlci50ZXN0LmZpeHR1cmUuanNvblwiKSxcbiAgICAgIFwidXRmLThcIixcbiAgICApLFxuICApO1xuICBuZXcgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3IoY29kZSwgc3BlYykuZ2VuZXJhdGVBbGwoKTtcbiAgYXdhaXQgY29kZS5zYXZlKHdvcmtkaXIpO1xuXG4gIGNvbnN0IG91dHB1dCA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4od29ya2RpciwgXCJwcm92aWRlcnMvYXdzL3Byb3ZpZGVyL2luZGV4LnRzXCIpLFxuICAgIFwidXRmLThcIixcbiAgKTtcbiAgZXhwZWN0KG91dHB1dCkudG9NYXRjaFNuYXBzaG90KCk7XG4gIC8vIGF3cyBoYXMgbm8gcHJvdmlkZXItZGVmaW5lZCBmdW5jdGlvbnMgaW4gdGhpcyBmaXh0dXJlIC0gbm8gZ2V0dGVyLCBub1xuICAvLyBjcm9zcy1kaXJlY3RvcnkgaW1wb3J0IHNob3VsZCBiZSBlbWl0dGVkLlxuICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKFwicHVibGljIGdldCBmdW5jdGlvbnMoKVwiKTtcbiAgZXhwZWN0KG91dHB1dCkubm90LnRvQ29udGFpbihcInByb3ZpZGVyLWZ1bmN0aW9uc1wiKTtcbn0pO1xuXG50ZXN0KFwiZ2VuZXJhdGUgcHJvdmlkZXIgd2l0aCBvbmx5IGJsb2NrX3R5cGVzXCIsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgY29kZSA9IG5ldyBDb2RlTWFrZXIoKTtcbiAgY29uc3Qgd29ya2RpciA9IHRtcChcInByb3ZpZGVyLnRlc3RcIik7XG4gIGNvbnN0IHNwZWMgPSBKU09OLnBhcnNlKFxuICAgIGZzLnJlYWRGaWxlU3luYyhcbiAgICAgIHBhdGguam9pbihcbiAgICAgICAgX19kaXJuYW1lLFxuICAgICAgICBcImZpeHR1cmVzXCIsXG4gICAgICAgIFwiZWxhc3RpY3N0YWNrLXByb3ZpZGVyLnRlc3QuZml4dHVyZS5qc29uXCIsXG4gICAgICApLFxuICAgICAgXCJ1dGYtOFwiLFxuICAgICksXG4gICk7XG4gIG5ldyBUZXJyYWZvcm1Qcm92aWRlckdlbmVyYXRvcihjb2RlLCBzcGVjKS5nZW5lcmF0ZUFsbCgpO1xuICBhd2FpdCBjb2RlLnNhdmUod29ya2Rpcik7XG5cbiAgY29uc3Qgb3V0cHV0ID0gZnMucmVhZEZpbGVTeW5jKFxuICAgIHBhdGguam9pbih3b3JrZGlyLCBcInByb3ZpZGVycy9lbGFzdGljc3RhY2svcHJvdmlkZXIvaW5kZXgudHNcIiksXG4gICAgXCJ1dGYtOFwiLFxuICApO1xuICBleHBlY3Qob3V0cHV0KS50b01hdGNoU25hcHNob3QoKTtcbiAgLy8gZWxhc3RpY3N0YWNrIGhhcyBubyBwcm92aWRlci1kZWZpbmVkIGZ1bmN0aW9ucyBpbiB0aGlzIGZpeHR1cmUgLSBub1xuICAvLyBnZXR0ZXIsIG5vIGNyb3NzLWRpcmVjdG9yeSBpbXBvcnQgc2hvdWxkIGJlIGVtaXR0ZWQuXG4gIGV4cGVjdChvdXRwdXQpLm5vdC50b0NvbnRhaW4oXCJwdWJsaWMgZ2V0IGZ1bmN0aW9ucygpXCIpO1xuICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKFwicHJvdmlkZXItZnVuY3Rpb25zXCIpO1xufSk7XG4iXX0=
|