@decohere/create 0.0.1-dev.38 → 0.0.1-dev.40
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/commonjs/src/models/const.js +3 -1
- package/commonjs/src/models/package-json.model.js +15 -8
- package/commonjs/src/webapi/const.js +22 -0
- package/commonjs/src/webapi/create-api.js +14 -5
- package/commonjs/src/webapi/features/auth.feature.js +3 -3
- package/commonjs/src/webapi/features/database.feature.js +3 -3
- package/commonjs/src/webapi/models/api-package-json.model.js +2 -1
- package/commonjs/src/webapi/models/github-ci.model.js +193 -0
- package/commonjs/src/webapi/models/production-dockerfile.model.js +98 -0
- package/es6/src/models/const.js +3 -1
- package/es6/src/models/package-json.model.js +15 -8
- package/es6/src/webapi/const.js +7 -0
- package/es6/src/webapi/create-api.js +10 -3
- package/es6/src/webapi/features/auth.feature.js +2 -2
- package/es6/src/webapi/features/database.feature.js +2 -2
- package/es6/src/webapi/models/api-package-json.model.js +2 -1
- package/es6/src/webapi/models/github-ci.model.js +186 -0
- package/es6/src/webapi/models/production-dockerfile.model.js +91 -0
- package/package.json +2 -2
- package/types/src/models/const.d.ts +2 -0
- package/types/src/models/package-json.model.d.ts +3 -1
- package/types/src/webapi/const.d.ts +7 -0
- package/types/src/webapi/create-api.d.ts +1 -1
- package/types/src/webapi/models/github-ci.model.d.ts +9 -0
- package/types/src/webapi/models/production-dockerfile.model.d.ts +9 -0
|
@@ -14,6 +14,8 @@ const WELL_KNOWN_FILES = {
|
|
|
14
14
|
DOCKER_COMPOSE: "DOCKER_COMPOSE",
|
|
15
15
|
DEVCONTAINER_JSON: "DEVCONTAINER_JSON",
|
|
16
16
|
DOCKERFILE: "DOCKERFILE",
|
|
17
|
+
PRODUCTION_DOCKERFILE: "PRODUCTION_DOCKERFILE",
|
|
18
|
+
GITHUB_CI: "GITHUB_CI",
|
|
17
19
|
PACKAGE_JSON: "PACKAGE_JSON",
|
|
18
20
|
API_PACKAGE_JSON: "API_PACKAGE_JSON",
|
|
19
21
|
TSCONFIG: "TSCONFIG",
|
|
@@ -26,4 +28,4 @@ const WELL_KNOWN_FILES = {
|
|
|
26
28
|
ENV_FILE: "ENV_FILE"
|
|
27
29
|
};
|
|
28
30
|
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL2NvbnN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBXRUxMX0tOT1dOX0ZJTEVTID0ge1xuXHRWU0NPREVfU0VUVElOR1M6IFwiVlNDT0RFX1NFVFRJTkdTXCIsXG5cdExBVU5DSF9KU09OOiBcIkxBVU5DSF9KU09OXCIsXG5cdERPQ0tFUl9DT01QT1NFOiBcIkRPQ0tFUl9DT01QT1NFXCIsXG5cdERFVkNPTlRBSU5FUl9KU09OOiBcIkRFVkNPTlRBSU5FUl9KU09OXCIsXG5cdERPQ0tFUkZJTEU6IFwiRE9DS0VSRklMRVwiLFxuXHRQUk9EVUNUSU9OX0RPQ0tFUkZJTEU6IFwiUFJPRFVDVElPTl9ET0NLRVJGSUxFXCIsXG5cdEdJVEhVQl9DSTogXCJHSVRIVUJfQ0lcIixcblx0UEFDS0FHRV9KU09OOiBcIlBBQ0tBR0VfSlNPTlwiLFxuXHRBUElfUEFDS0FHRV9KU09OOiBcIkFQSV9QQUNLQUdFX0pTT05cIixcblx0VFNDT05GSUc6IFwiVFNDT05GSUdcIixcblx0TUFJTl9UUzogXCJNQUlOX1RTXCIsXG5cdENPTlRST0xMRVJfVFM6IFwiQ09OVFJPTExFUl9UU1wiLFxuXHRDT05GSUdfWUFNTDogXCJDT05GSUdfWUFNTFwiLFxuXHRDT05GSUdfREVWX1lBTUw6IFwiQ09ORklHX0RFVl9ZQU1MXCIsXG5cdEdJVElHTk9SRTogXCJHSVRJR05PUkVcIixcblx0QVVUSF9DT05GSUc6IFwiQVVUSF9DT05GSUdcIixcblx0RU5WX0ZJTEU6IFwiRU5WX0ZJTEVcIixcbn07XG4iXSwibmFtZXMiOlsiV0VMTF9LTk9XTl9GSUxFUyIsIlZTQ09ERV9TRVRUSU5HUyIsIkxBVU5DSF9KU09OIiwiRE9DS0VSX0NPTVBPU0UiLCJERVZDT05UQUlORVJfSlNPTiIsIkRPQ0tFUkZJTEUiLCJQUk9EVUNUSU9OX0RPQ0tFUkZJTEUiLCJHSVRIVUJfQ0kiLCJQQUNLQUdFX0pTT04iLCJBUElfUEFDS0FHRV9KU09OIiwiVFNDT05GSUciLCJNQUlOX1RTIiwiQ09OVFJPTExFUl9UUyIsIkNPTkZJR19ZQU1MIiwiQ09ORklHX0RFVl9ZQU1MIiwiR0lUSUdOT1JFIiwiQVVUSF9DT05GSUciLCJFTlZfRklMRSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBYUE7OztlQUFBQTs7O0FBQU4sTUFBTUEsbUJBQW1CO0lBQy9CQyxpQkFBaUI7SUFDakJDLGFBQWE7SUFDYkMsZ0JBQWdCO0lBQ2hCQyxtQkFBbUI7SUFDbkJDLFlBQVk7SUFDWkMsdUJBQXVCO0lBQ3ZCQyxXQUFXO0lBQ1hDLGNBQWM7SUFDZEMsa0JBQWtCO0lBQ2xCQyxVQUFVO0lBQ1ZDLFNBQVM7SUFDVEMsZUFBZTtJQUNmQyxhQUFhO0lBQ2JDLGlCQUFpQjtJQUNqQkMsV0FBVztJQUNYQyxhQUFhO0lBQ2JDLFVBQVU7QUFDWCJ9
|
|
@@ -15,13 +15,19 @@ class PackageJson {
|
|
|
15
15
|
key = _const.WELL_KNOWN_FILES.PACKAGE_JSON;
|
|
16
16
|
_dependencies;
|
|
17
17
|
_devDependencies;
|
|
18
|
-
_scripts
|
|
19
|
-
|
|
20
|
-
"build:watch": "forge build --watch",
|
|
21
|
-
dev: "flux serve"
|
|
22
|
-
};
|
|
23
|
-
constructor(name){
|
|
18
|
+
_scripts;
|
|
19
|
+
constructor(name, options){
|
|
24
20
|
this.name = name;
|
|
21
|
+
const startEntry = options?.startEntry ?? "dist/release/projects/api/es6/src/main.js";
|
|
22
|
+
this._scripts = {
|
|
23
|
+
build: "forge build --configuration release",
|
|
24
|
+
"build:watch": "forge build --watch",
|
|
25
|
+
start: `node ${startEntry}`,
|
|
26
|
+
dev: "flux serve",
|
|
27
|
+
"lint:check": "biome check .",
|
|
28
|
+
typecheck: "tsc --noEmit",
|
|
29
|
+
test: "vitest run --passWithNoTests"
|
|
30
|
+
};
|
|
25
31
|
this._dependencies = {
|
|
26
32
|
"@decohere/cortex": _version.CREATE_VERSION,
|
|
27
33
|
"@decohere/crucible": _version.CREATE_VERSION,
|
|
@@ -34,7 +40,8 @@ class PackageJson {
|
|
|
34
40
|
this._devDependencies = {
|
|
35
41
|
"@decohere/terminal": _version.CREATE_VERSION,
|
|
36
42
|
typescript: "^6.0.3",
|
|
37
|
-
"@biomejs/biome": "^2.0.0"
|
|
43
|
+
"@biomejs/biome": "^2.0.0",
|
|
44
|
+
vitest: "^3.2.4"
|
|
38
45
|
};
|
|
39
46
|
}
|
|
40
47
|
addDependency(name, version) {
|
|
@@ -66,4 +73,4 @@ class PackageJson {
|
|
|
66
73
|
}
|
|
67
74
|
}
|
|
68
75
|
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL3BhY2thZ2UtanNvbi5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDUkVBVEVfVkVSU0lPTiB9IGZyb20gXCIuLi92ZXJzaW9uLmpzXCI7XG5pbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4vY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSB9IGZyb20gXCIuL3NvdXJjZS1maWxlLmpzXCI7XG5cbi8qKlxuICogQnVpbGRlciBmb3IgdGhlIHJvb3QgYHBhY2thZ2UuanNvbmAuXG4gKlxuICogU3RhcnRzIHdpdGggdGhlIGNvcmUgQVBJIGRlcGVuZGVuY2llcy4gRmVhdHVyZXMgY2FsbCBgYWRkRGVwZW5kZW5jeWAgL1xuICogYGFkZERldkRlcGVuZGVuY3lgIGR1cmluZyB0aGVpciBzY2FmZm9sZCBwaGFzZSB0byBpbmplY3QgdGhlaXIgb3duIGRlcHNcbiAqIGJlZm9yZSBgZmlsZXMoKWAgaXMgY2FsbGVkIGF0IHJlbmRlciB0aW1lLlxuICovXG5leHBvcnQgY2xhc3MgUGFja2FnZUpzb24gaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuUEFDS0FHRV9KU09OO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2RlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblx0cHJpdmF0ZSByZWFkb25seSBfZGV2RGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXHRwcml2YXRlIHJlYWRvbmx5IF9zY3JpcHRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvbW9kZWxzL3BhY2thZ2UtanNvbi5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDUkVBVEVfVkVSU0lPTiB9IGZyb20gXCIuLi92ZXJzaW9uLmpzXCI7XG5pbXBvcnQgeyBXRUxMX0tOT1dOX0ZJTEVTIH0gZnJvbSBcIi4vY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgS2V5ZWRNb2RlbCwgU291cmNlRmlsZSB9IGZyb20gXCIuL3NvdXJjZS1maWxlLmpzXCI7XG5cbi8qKlxuICogQnVpbGRlciBmb3IgdGhlIHJvb3QgYHBhY2thZ2UuanNvbmAuXG4gKlxuICogU3RhcnRzIHdpdGggdGhlIGNvcmUgQVBJIGRlcGVuZGVuY2llcy4gRmVhdHVyZXMgY2FsbCBgYWRkRGVwZW5kZW5jeWAgL1xuICogYGFkZERldkRlcGVuZGVuY3lgIGR1cmluZyB0aGVpciBzY2FmZm9sZCBwaGFzZSB0byBpbmplY3QgdGhlaXIgb3duIGRlcHNcbiAqIGJlZm9yZSBgZmlsZXMoKWAgaXMgY2FsbGVkIGF0IHJlbmRlciB0aW1lLlxuICovXG5leHBvcnQgY2xhc3MgUGFja2FnZUpzb24gaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuUEFDS0FHRV9KU09OO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgX2RlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblx0cHJpdmF0ZSByZWFkb25seSBfZGV2RGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXHRwcml2YXRlIHJlYWRvbmx5IF9zY3JpcHRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcblx0XHRvcHRpb25zPzogeyBzdGFydEVudHJ5Pzogc3RyaW5nIH0sXG5cdCkge1xuXHRcdGNvbnN0IHN0YXJ0RW50cnkgPSBvcHRpb25zPy5zdGFydEVudHJ5ID8/IFwiZGlzdC9yZWxlYXNlL3Byb2plY3RzL2FwaS9lczYvc3JjL21haW4uanNcIjtcblx0XHR0aGlzLl9zY3JpcHRzID0ge1xuXHRcdFx0YnVpbGQ6IFwiZm9yZ2UgYnVpbGQgLS1jb25maWd1cmF0aW9uIHJlbGVhc2VcIixcblx0XHRcdFwiYnVpbGQ6d2F0Y2hcIjogXCJmb3JnZSBidWlsZCAtLXdhdGNoXCIsXG5cdFx0XHRzdGFydDogYG5vZGUgJHtzdGFydEVudHJ5fWAsXG5cdFx0XHRkZXY6IFwiZmx1eCBzZXJ2ZVwiLFxuXHRcdFx0XCJsaW50OmNoZWNrXCI6IFwiYmlvbWUgY2hlY2sgLlwiLFxuXHRcdFx0dHlwZWNoZWNrOiBcInRzYyAtLW5vRW1pdFwiLFxuXHRcdFx0dGVzdDogXCJ2aXRlc3QgcnVuIC0tcGFzc1dpdGhOb1Rlc3RzXCIsXG5cdFx0fTtcblx0XHR0aGlzLl9kZXBlbmRlbmNpZXMgPSB7XG5cdFx0XHRcIkBkZWNvaGVyZS9jb3J0ZXhcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9jcnVjaWJsZVwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFwiQGRlY29oZXJlL25leHVzXCI6IENSRUFURV9WRVJTSU9OLFxuXHRcdFx0XCJAZGVjb2hlcmUvcHJvdG9jb2xcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9zY3JpYmVcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9zY3JpYmUtcGlub1wiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdFwicGluby1wcmV0dHlcIjogXCJeMTMuMC4wXCIsXG5cdFx0fTtcblx0XHR0aGlzLl9kZXZEZXBlbmRlbmNpZXMgPSB7XG5cdFx0XHRcIkBkZWNvaGVyZS90ZXJtaW5hbFwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHRcdHR5cGVzY3JpcHQ6IFwiXjYuMC4zXCIsXG5cdFx0XHRcIkBiaW9tZWpzL2Jpb21lXCI6IFwiXjIuMC4wXCIsXG5cdFx0XHR2aXRlc3Q6IFwiXjMuMi40XCIsXG5cdFx0fTtcblx0fVxuXG5cdHB1YmxpYyBhZGREZXBlbmRlbmN5KG5hbWU6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nKTogdGhpcyB7XG5cdFx0dGhpcy5fZGVwZW5kZW5jaWVzW25hbWVdID0gdmVyc2lvbjtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBhZGREZXZEZXBlbmRlbmN5KG5hbWU6IHN0cmluZywgdmVyc2lvbjogc3RyaW5nKTogdGhpcyB7XG5cdFx0dGhpcy5fZGV2RGVwZW5kZW5jaWVzW25hbWVdID0gdmVyc2lvbjtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBhZGRTY3JpcHQobmFtZTogc3RyaW5nLCBjb21tYW5kOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9zY3JpcHRzW25hbWVdID0gY29tbWFuZDtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHB1YmxpYyBmaWxlcygpOiBTb3VyY2VGaWxlW10ge1xuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcInBhY2thZ2UuanNvblwiLFxuXHRcdFx0XHRjb250ZW50OiBKU09OLnN0cmluZ2lmeShcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRuYW1lOiB0aGlzLm5hbWUsXG5cdFx0XHRcdFx0XHR2ZXJzaW9uOiBcIjAuMC4xXCIsXG5cdFx0XHRcdFx0XHR0eXBlOiBcIm1vZHVsZVwiLFxuXHRcdFx0XHRcdFx0c2NyaXB0czogdGhpcy5fc2NyaXB0cyxcblx0XHRcdFx0XHRcdGRlcGVuZGVuY2llczogdGhpcy5fZGVwZW5kZW5jaWVzLFxuXHRcdFx0XHRcdFx0ZGV2RGVwZW5kZW5jaWVzOiB0aGlzLl9kZXZEZXBlbmRlbmNpZXMsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdDIsXG5cdFx0XHRcdCksXG5cdFx0XHR9LFxuXHRcdF07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJQYWNrYWdlSnNvbiIsImtleSIsIldFTExfS05PV05fRklMRVMiLCJQQUNLQUdFX0pTT04iLCJfZGVwZW5kZW5jaWVzIiwiX2RldkRlcGVuZGVuY2llcyIsIl9zY3JpcHRzIiwibmFtZSIsIm9wdGlvbnMiLCJzdGFydEVudHJ5IiwiYnVpbGQiLCJzdGFydCIsImRldiIsInR5cGVjaGVjayIsInRlc3QiLCJDUkVBVEVfVkVSU0lPTiIsInR5cGVzY3JpcHQiLCJ2aXRlc3QiLCJhZGREZXBlbmRlbmN5IiwidmVyc2lvbiIsImFkZERldkRlcGVuZGVuY3kiLCJhZGRTY3JpcHQiLCJjb21tYW5kIiwiZmlsZXMiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJKU09OIiwic3RyaW5naWZ5IiwidHlwZSIsInNjcmlwdHMiLCJkZXBlbmRlbmNpZXMiLCJkZXZEZXBlbmRlbmNpZXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBV2FBOzs7ZUFBQUE7Ozt5QkFYa0I7dUJBQ0U7QUFVMUIsTUFBTUE7O0lBQ0lDLE1BQU1DLHVCQUFnQixDQUFDQyxZQUFZLENBQUM7SUFFbkNDLGNBQXNDO0lBQ3RDQyxpQkFBeUM7SUFDekNDLFNBQWlDO0lBRWxELFlBQ0MsQUFBaUJDLElBQVksRUFDN0JDLE9BQWlDLENBQ2hDO2FBRmdCRCxPQUFBQTtRQUdqQixNQUFNRSxhQUFhRCxTQUFTQyxjQUFjO1FBQzFDLElBQUksQ0FBQ0gsUUFBUSxHQUFHO1lBQ2ZJLE9BQU87WUFDUCxlQUFlO1lBQ2ZDLE9BQU8sQ0FBQyxLQUFLLEVBQUVGLFlBQVk7WUFDM0JHLEtBQUs7WUFDTCxjQUFjO1lBQ2RDLFdBQVc7WUFDWEMsTUFBTTtRQUNQO1FBQ0EsSUFBSSxDQUFDVixhQUFhLEdBQUc7WUFDcEIsb0JBQW9CVyx1QkFBYztZQUNsQyxzQkFBc0JBLHVCQUFjO1lBQ3BDLG1CQUFtQkEsdUJBQWM7WUFDakMsc0JBQXNCQSx1QkFBYztZQUNwQyxvQkFBb0JBLHVCQUFjO1lBQ2xDLHlCQUF5QkEsdUJBQWM7WUFDdkMsZUFBZTtRQUNoQjtRQUNBLElBQUksQ0FBQ1YsZ0JBQWdCLEdBQUc7WUFDdkIsc0JBQXNCVSx1QkFBYztZQUNwQ0MsWUFBWTtZQUNaLGtCQUFrQjtZQUNsQkMsUUFBUTtRQUNUO0lBQ0Q7SUFFT0MsY0FBY1gsSUFBWSxFQUFFWSxPQUFlLEVBQVE7UUFDekQsSUFBSSxDQUFDZixhQUFhLENBQUNHLEtBQUssR0FBR1k7UUFDM0IsT0FBTyxJQUFJO0lBQ1o7SUFFT0MsaUJBQWlCYixJQUFZLEVBQUVZLE9BQWUsRUFBUTtRQUM1RCxJQUFJLENBQUNkLGdCQUFnQixDQUFDRSxLQUFLLEdBQUdZO1FBQzlCLE9BQU8sSUFBSTtJQUNaO0lBRU9FLFVBQVVkLElBQVksRUFBRWUsT0FBZSxFQUFRO1FBQ3JELElBQUksQ0FBQ2hCLFFBQVEsQ0FBQ0MsS0FBSyxHQUFHZTtRQUN0QixPQUFPLElBQUk7SUFDWjtJQUVPQyxRQUFzQjtRQUM1QixPQUFPO1lBQ047Z0JBQ0NDLFVBQVU7Z0JBQ1ZDLFNBQVNDLEtBQUtDLFNBQVMsQ0FDdEI7b0JBQ0NwQixNQUFNLElBQUksQ0FBQ0EsSUFBSTtvQkFDZlksU0FBUztvQkFDVFMsTUFBTTtvQkFDTkMsU0FBUyxJQUFJLENBQUN2QixRQUFRO29CQUN0QndCLGNBQWMsSUFBSSxDQUFDMUIsYUFBYTtvQkFDaEMyQixpQkFBaUIsSUFBSSxDQUFDMUIsZ0JBQWdCO2dCQUN2QyxHQUNBLE1BQ0E7WUFFRjtTQUNBO0lBQ0Y7QUFDRCJ9
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Relative path of the scaffolded API project inside the monorepo. */ "use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get WEBAPI_PROJECT_DIR () {
|
|
13
|
+
return WEBAPI_PROJECT_DIR;
|
|
14
|
+
},
|
|
15
|
+
get WEBAPI_RELEASE_ENTRY () {
|
|
16
|
+
return WEBAPI_RELEASE_ENTRY;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const WEBAPI_PROJECT_DIR = "projects/api";
|
|
20
|
+
const WEBAPI_RELEASE_ENTRY = `dist/release/${WEBAPI_PROJECT_DIR}/es6/src/main.js`;
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL2NvbnN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBSZWxhdGl2ZSBwYXRoIG9mIHRoZSBzY2FmZm9sZGVkIEFQSSBwcm9qZWN0IGluc2lkZSB0aGUgbW9ub3JlcG8uICovXG5leHBvcnQgY29uc3QgV0VCQVBJX1BST0pFQ1RfRElSID0gXCJwcm9qZWN0cy9hcGlcIjtcblxuLyoqXG4gKiBGb3JnZSByZWxlYXNlIGVudHJ5IGZvciB0aGUgc2NhZmZvbGRlZCBBUEkgKGBwYWNrOiB0cnVlYCDihpIgcGVyLXRhcmdldCBvdXREaXIpLlxuICogS2VlcCBpbiBzeW5jIHdpdGggcm9vdCBgcGFja2FnZS5qc29uYCBgXCJzdGFydFwiYCBhbmQgdGhlIHByb2R1Y3Rpb24gRG9ja2VyZmlsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFdFQkFQSV9SRUxFQVNFX0VOVFJZID0gYGRpc3QvcmVsZWFzZS8ke1dFQkFQSV9QUk9KRUNUX0RJUn0vZXM2L3NyYy9tYWluLmpzYDtcbiJdLCJuYW1lcyI6WyJXRUJBUElfUFJPSkVDVF9ESVIiLCJXRUJBUElfUkVMRUFTRV9FTlRSWSJdLCJtYXBwaW5ncyI6IkFBQUEscUVBQXFFOzs7Ozs7Ozs7OztRQUN4REE7ZUFBQUE7O1FBTUFDO2VBQUFBOzs7QUFOTixNQUFNRCxxQkFBcUI7QUFNM0IsTUFBTUMsdUJBQXVCLENBQUMsYUFBYSxFQUFFRCxtQkFBbUIsZ0JBQWdCLENBQUMifQ==
|
|
@@ -10,7 +10,10 @@ function _export(target, all) {
|
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
12
|
get WEBAPI_PROJECT_DIR () {
|
|
13
|
-
return WEBAPI_PROJECT_DIR;
|
|
13
|
+
return _const1.WEBAPI_PROJECT_DIR;
|
|
14
|
+
},
|
|
15
|
+
get WEBAPI_RELEASE_ENTRY () {
|
|
16
|
+
return _const1.WEBAPI_RELEASE_ENTRY;
|
|
14
17
|
},
|
|
15
18
|
get scaffoldApi () {
|
|
16
19
|
return scaffoldApi;
|
|
@@ -29,16 +32,18 @@ const _projectmodel = require("../models/project.model.js");
|
|
|
29
32
|
const _tsconfigmodel = require("../models/tsconfig.model.js");
|
|
30
33
|
const _vscodesettingsmodel = require("../models/vscode-settings.model.js");
|
|
31
34
|
const _scaffoldservice = require("../services/scaffold.service.js");
|
|
35
|
+
const _const1 = require("./const.js");
|
|
32
36
|
const _authfeature = require("./features/auth.feature.js");
|
|
33
37
|
const _databasefeature = require("./features/database.feature.js");
|
|
34
38
|
const _finalizefeature = require("./features/finalize.feature.js");
|
|
35
39
|
const _postmanfeature = require("./features/postman.feature.js");
|
|
36
40
|
const _apipackagejsonmodel = require("./models/api-package-json.model.js");
|
|
37
41
|
const _controllersourcefilemodel = require("./models/controller-source-file.model.js");
|
|
42
|
+
const _githubcimodel = require("./models/github-ci.model.js");
|
|
38
43
|
const _mainsourcefilemodel = require("./models/main-source-file.model.js");
|
|
44
|
+
const _productiondockerfilemodel = require("./models/production-dockerfile.model.js");
|
|
39
45
|
const _samplefilesmodel = require("./models/sample-files.model.js");
|
|
40
46
|
const _webapiimagemodel = require("./models/webapi-image.model.js");
|
|
41
|
-
const WEBAPI_PROJECT_DIR = "projects/api";
|
|
42
47
|
const features = [
|
|
43
48
|
_databasefeature.DatabaseFeature,
|
|
44
49
|
_authfeature.AuthFeature,
|
|
@@ -82,10 +87,14 @@ function createWorkspace(targetDir, projectName) {
|
|
|
82
87
|
monoRepo.addModel(compose);
|
|
83
88
|
monoRepo.addModel(devContainer);
|
|
84
89
|
monoRepo.addModel(new _webapiimagemodel.WebapiDevContainer());
|
|
90
|
+
monoRepo.addModel(new _productiondockerfilemodel.WebapiProductionDockerfile());
|
|
91
|
+
monoRepo.addModel(new _githubcimodel.GithubCiWorkflows());
|
|
85
92
|
monoRepo.addModel(new _vscodesettingsmodel.VSCodeSettings(name));
|
|
86
93
|
monoRepo.addModel(new _launchjsonmodel.LaunchJson());
|
|
87
94
|
monoRepo.addModel(new _tsconfigmodel.TsConfig());
|
|
88
|
-
monoRepo.addModel(new _packagejsonmodel.PackageJson(`${name}.api
|
|
95
|
+
monoRepo.addModel(new _packagejsonmodel.PackageJson(`${name}.api`, {
|
|
96
|
+
startEntry: _const1.WEBAPI_RELEASE_ENTRY
|
|
97
|
+
}));
|
|
89
98
|
monoRepo.addModel(new _configyamlmodel.ConfigYaml(_const.WELL_KNOWN_FILES.CONFIG_YAML, "config/config.yaml", ""));
|
|
90
99
|
monoRepo.addModel(new _configyamlmodel.ConfigYaml(_const.WELL_KNOWN_FILES.CONFIG_DEV_YAML, "config/config.dev.yaml", ""));
|
|
91
100
|
monoRepo.addModel(new _gitignoremodel.Gitignore());
|
|
@@ -217,7 +226,7 @@ function createWorkspace(targetDir, projectName) {
|
|
|
217
226
|
]
|
|
218
227
|
});
|
|
219
228
|
// Project-level models (paths relative to projects/api)
|
|
220
|
-
const apiProject = new _projectmodel.ProjectScaffold(WEBAPI_PROJECT_DIR);
|
|
229
|
+
const apiProject = new _projectmodel.ProjectScaffold(_const1.WEBAPI_PROJECT_DIR);
|
|
221
230
|
apiProject.addModel(new _apipackagejsonmodel.ApiPackageJson(name));
|
|
222
231
|
apiProject.addModel(new _mainsourcefilemodel.MainSourceFile(`${name}.api`));
|
|
223
232
|
apiProject.addModel(new _controllersourcefilemodel.ControllerSourceFile());
|
|
@@ -229,4 +238,4 @@ function createWorkspace(targetDir, projectName) {
|
|
|
229
238
|
return monoRepo;
|
|
230
239
|
}
|
|
231
240
|
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL2NyZWF0ZS1hcGkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFzZW5hbWUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBEb2NrZXJDb21wb3NlIH0gZnJvbSBcIi4uL21vZGVscy9jb21wb3NlLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBDb25maWdZYW1sIH0gZnJvbSBcIi4uL21vZGVscy9jb25maWcteWFtbC5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuLi9tb2RlbHMvY29uc3QuanNcIjtcbmltcG9ydCB7IERldkNvbnRhaW5lciB9IGZyb20gXCIuLi9tb2RlbHMvZGV2LWNvbnRhaW5lci5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgRW52RmlsZSB9IGZyb20gXCIuLi9tb2RlbHMvZW52LWZpbGUubW9kZWwuanNcIjtcbmltcG9ydCB7IEdpdGlnbm9yZSB9IGZyb20gXCIuLi9tb2RlbHMvZ2l0aWdub3JlLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBMYXVuY2hKc29uIH0gZnJvbSBcIi4uL21vZGVscy9sYXVuY2gtanNvbi5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgUGFja2FnZUpzb24gfSBmcm9tIFwiLi4vbW9kZWxzL3BhY2thZ2UtanNvbi5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgTW9ub1JlcG9TY2FmZm9sZCwgUHJvamVjdFNjYWZmb2xkIH0gZnJvbSBcIi4uL21vZGVscy9wcm9qZWN0Lm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBUc0NvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvdHNjb25maWcubW9kZWwuanNcIjtcbmltcG9ydCB7IFZTQ29kZVNldHRpbmdzIH0gZnJvbSBcIi4uL21vZGVscy92c2NvZGUtc2V0dGluZ3MubW9kZWwuanNcIjtcbmltcG9ydCB7IFNjYWZmb2xkU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9zY2FmZm9sZC5zZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBBdXRoRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL2F1dGguZmVhdHVyZS5qc1wiO1xuaW1wb3J0IHsgRGF0YWJhc2VGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvZGF0YWJhc2UuZmVhdHVyZS5qc1wiO1xuaW1wb3J0IHsgRmluYWxpemVGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvZmluYWxpemUuZmVhdHVyZS5qc1wiO1xuaW1wb3J0IHsgUG9zdG1hbkZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9wb3N0bWFuLmZlYXR1cmUuanNcIjtcbmltcG9ydCB7IEFwaVBhY2thZ2VKc29uIH0gZnJvbSBcIi4vbW9kZWxzL2FwaS1wYWNrYWdlLWpzb24ubW9kZWwuanNcIjtcbmltcG9ydCB7IENvbnRyb2xsZXJTb3VyY2VGaWxlIH0gZnJvbSBcIi4vbW9kZWxzL2NvbnRyb2xsZXItc291cmNlLWZpbGUubW9kZWwuanNcIjtcbmltcG9ydCB7IE1haW5Tb3VyY2VGaWxlIH0gZnJvbSBcIi4vbW9kZWxzL21haW4tc291cmNlLWZpbGUubW9kZWwuanNcIjtcbmltcG9ydCB7IFNhbXBsZUNvbmZpZ01vZGVsLCBTYW1wbGVTZXJ2aWNlTW9kZWwgfSBmcm9tIFwiLi9tb2RlbHMvc2FtcGxlLWZpbGVzLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBXZWJhcGlEZXZDb250YWluZXIgfSBmcm9tIFwiLi9tb2RlbHMvd2ViYXBpLWltYWdlLm1vZGVsLmpzXCI7XG5cbmV4cG9ydCBjb25zdCBXRUJBUElfUFJPSkVDVF9ESVIgPSBcInByb2plY3RzL2FwaVwiO1xuXG5leHBvcnQgdHlwZSBBcGlPcHRpb25zID0ge1xuXHRkPzogc3RyaW5nO1xuXHQvKiogSG9zdCBwcm9qZWN0IG5hbWUgKGRpcmVjdG9yeSBiYXNlbmFtZSkuIFJlcXVpcmVkIHdoZW4gc2NhZmZvbGRpbmcgaW50byBgL3dvcmtzcGFjZWAuICovXG5cdHByb2plY3ROYW1lPzogc3RyaW5nO1xuXHRhdXRoUHJvdmlkZXI/OiBcImF1dGgwXCIgfCBcIm5vbmVcIjtcblx0ZGF0YWJhc2VQcm92aWRlcj86IFwibm9uZVwiIHwgXCJwb3N0Z3Jlcy90eXBlb3JtXCI7XG5cdHBvc3RtYW5Qcm92aWRlcj86IFwiYXBpXCIgfCBcImxvY2FsXCIgfCBcIm5vbmVcIjtcblx0aW5zdGFsbERlcGVuZGVuY2llcz86IFwieWVzXCIgfCBcIm5vXCI7XG59O1xuXG5jb25zdCBmZWF0dXJlcyA9IFtEYXRhYmFzZUZlYXR1cmUsIEF1dGhGZWF0dXJlLCBQb3N0bWFuRmVhdHVyZSwgRmluYWxpemVGZWF0dXJlXTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNjYWZmb2xkQXBpKGNsaU9wdGlvbnM6IEFwaU9wdGlvbnMpIHtcblx0Y29uc3QgdGFyZ2V0RGlyID0gcmVzb2x2ZShjbGlPcHRpb25zLmQgPz8gXCIuXCIpO1xuXHRjb25zdCBwcm9qZWN0TmFtZSA9XG5cdFx0Y2xpT3B0aW9ucy5wcm9qZWN0TmFtZT8udHJpbSgpIHx8XG5cdFx0cHJvY2Vzcy5lbnYuREVDT0hFUkVfUFJPSkVDVF9OQU1FPy50cmltKCkgfHxcblx0XHRiYXNlbmFtZSh0YXJnZXREaXIpO1xuXHRjb25zdCB3b3Jrc3BhY2UgPSBjcmVhdGVXb3Jrc3BhY2UodGFyZ2V0RGlyLCBwcm9qZWN0TmFtZSk7XG5cdGF3YWl0IFNjYWZmb2xkU2VydmljZS5zY2FmZm9sZCh3b3Jrc3BhY2UsIGNsaU9wdGlvbnMsIGZlYXR1cmVzKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlV29ya3NwYWNlKHRhcmdldERpcjogc3RyaW5nLCBwcm9qZWN0TmFtZTogc3RyaW5nKTogTW9ub1JlcG9TY2FmZm9sZCB7XG5cdGNvbnN0IG1vbm9SZXBvID0gbmV3IE1vbm9SZXBvU2NhZmZvbGQoKTtcblx0bW9ub1JlcG8udGFyZ2V0RGlyID0gdGFyZ2V0RGlyO1xuXHRtb25vUmVwby5zZXROYW1lKHByb2plY3ROYW1lKTtcblx0Y29uc3QgbmFtZSA9IG1vbm9SZXBvLm5hbWU7XG5cblx0Y29uc3QgY29tcG9zZSA9IG5ldyBEb2NrZXJDb21wb3NlKClcblx0XHQuc2V0UHJvamVjdE5hbWUobmFtZSlcblx0XHQuYWRkTmV0d29yayhuYW1lLCB7IG5hbWU6IGBzYW1wbGVzLSR7bmFtZX1gIH0pXG5cdFx0LmFkZFNlcnZpY2UoXCJkZXZjb250YWluZXJcIiwge1xuXHRcdFx0YnVpbGQ6IFwiLlwiLFxuXHRcdFx0dm9sdW1lczogW1xuXHRcdFx0XHQvLyBXb3Jrc3BhY2UtbG9jYWwgKGNyZWF0ZWQgYnkgaW5pdGlhbGl6ZS5zaCBhcyB0aGUgaG9zdCB1c2VyKS5cblx0XHRcdFx0Ly8gRG8gTk9UIGJpbmQgJHtIT01FfS8ubnBtLy4uLiDigJQgRG9ja2VyIGNyZWF0ZXMgbWlzc2luZyBob3N0IHBhdGhzIGFzIHJvb3QuXG5cdFx0XHRcdFwiLi9ucG0tYXV0aDovaG9tZS9ub2RlLy5ucG0tY29uZmlnXCIsXG5cdFx0XHRcdFwid2ViYXBpLW5vZGUtbW9kdWxlczovd29ya3NwYWNlL25vZGVfbW9kdWxlc1wiLFxuXHRcdFx0XSxcblx0XHRcdGVudmlyb25tZW50OiB7IE5QTV9DT05GSUdfVVNFUkNPTkZJRzogXCIvaG9tZS9ub2RlLy5ucG0tY29uZmlnLy5ucG1yY1wiIH0sXG5cdFx0XHRjb21tYW5kOiBcInNsZWVwIGluZmluaXR5XCIsXG5cdFx0XHRuZXR3b3JrczogW25hbWVdLFxuXHRcdH0pXG5cdFx0LmFkZFZvbHVtZShcIndlYmFwaS1ub2RlLW1vZHVsZXNcIik7XG5cblx0Y29uc3QgZGV2Q29udGFpbmVyID0gbmV3IERldkNvbnRhaW5lcigpXG5cdFx0LmFkZEV4dGVuc2lvbihcImJpb21lanMuYmlvbWVcIiwgXCJ2aXRlc3QuZXhwbG9yZXJcIilcblx0XHQuZm9yd2FyZFBvcnQoMzAwMClcblx0XHQuc2V0UG9ydEF0dHJpYnV0ZXMoMzAwMCwgeyBsYWJlbDogXCJBUElcIiwgcmVxdWlyZUxvY2FsUG9ydDogdHJ1ZSB9KVxuXHRcdC5zZXRJbml0aWFsaXplQ29tbWFuZChcImJhc2ggLmRldmNvbnRhaW5lci9pbml0aWFsaXplLnNoXCIpXG5cdFx0LnNldFBvc3RTdGFydENvbW1hbmQoXCJiYXNoIC5kZXZjb250YWluZXIvcG9zdC1zdGFydC5zaFwiKVxuXHRcdC51c2VDb21wb3NlKCk7XG5cblx0Ly8gV29ya3NwYWNlLWxldmVsIG1vZGVscyAocmVwbyByb290KVxuXHRtb25vUmVwby5hZGRNb2RlbChjb21wb3NlKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwoZGV2Q29udGFpbmVyKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IFdlYmFwaURldkNvbnRhaW5lcigpKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IFZTQ29kZVNldHRpbmdzKG5hbWUpKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IExhdW5jaEpzb24oKSk7XG5cdG1vbm9SZXBvLmFkZE1vZGVsKG5ldyBUc0NvbmZpZygpKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IFBhY2thZ2VKc29uKGAke25hbWV9LmFwaWApKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IENvbmZpZ1lhbWwoV0VMTF9LTk9XTl9GSUxFUy5DT05GSUdfWUFNTCwgXCJjb25maWcvY29uZmlnLnlhbWxcIiwgXCJcIikpO1xuXHRtb25vUmVwby5hZGRNb2RlbChcblx0XHRuZXcgQ29uZmlnWWFtbChXRUxMX0tOT1dOX0ZJTEVTLkNPTkZJR19ERVZfWUFNTCwgXCJjb25maWcvY29uZmlnLmRldi55YW1sXCIsIFwiXCIpLFxuXHQpO1xuXHRtb25vUmVwby5hZGRNb2RlbChuZXcgR2l0aWdub3JlKCkpO1xuXHRtb25vUmVwby5hZGRNb2RlbChuZXcgRW52RmlsZSgpKTtcblxuXHQvLyBCaW9tZSBmb3JtYXR0ZXIvbGludGVyIGNvbmZpZ1xuXHRtb25vUmVwby5hZGRGaWxlKHtcblx0XHRmaWxlczogKCkgPT4gW1xuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCJiaW9tZS5qc29uXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdCRzY2hlbWE6IFwiaHR0cHM6Ly9iaW9tZWpzLmRldi9zY2hlbWFzLzIuMC4wL3NjaGVtYS5qc29uXCIsXG5cdFx0XHRcdFx0XHRmaWxlczoge1xuXHRcdFx0XHRcdFx0XHRpbmNsdWRlczogW1wiKiovKi50c1wiLCBcIioqLyouanNcIiwgXCIqKi8qLmpzb25cIiwgXCIqKi8qLnltbFwiLCBcIioqLyoueWFtbFwiXSxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRhc3Npc3Q6IHsgYWN0aW9uczogeyBzb3VyY2U6IHsgb3JnYW5pemVJbXBvcnRzOiBcIm9uXCIgfSB9IH0sXG5cdFx0XHRcdFx0XHR2Y3M6IHsgZW5hYmxlZDogdHJ1ZSwgY2xpZW50S2luZDogXCJnaXRcIiwgdXNlSWdub3JlRmlsZTogdHJ1ZSB9LFxuXHRcdFx0XHRcdFx0Zm9ybWF0dGVyOiB7XG5cdFx0XHRcdFx0XHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0XHRcdFx0XHRcdGZvcm1hdFdpdGhFcnJvcnM6IHRydWUsXG5cdFx0XHRcdFx0XHRcdGluZGVudFN0eWxlOiBcInRhYlwiLFxuXHRcdFx0XHRcdFx0XHRsaW5lV2lkdGg6IDk1LFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdGphdmFzY3JpcHQ6IHsgcGFyc2VyOiB7IHVuc2FmZVBhcmFtZXRlckRlY29yYXRvcnNFbmFibGVkOiB0cnVlIH0gfSxcblx0XHRcdFx0XHRcdGxpbnRlcjoge1xuXHRcdFx0XHRcdFx0XHRydWxlczoge1xuXHRcdFx0XHRcdFx0XHRcdHN0eWxlOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR1c2VDb25zaXN0ZW50TWVtYmVyQWNjZXNzaWJpbGl0eToge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRsZXZlbDogXCJlcnJvclwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zOiB7IGFjY2Vzc2liaWxpdHk6IFwiZXhwbGljaXRcIiB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG92ZXJyaWRlczogW1xuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0aW5jbHVkZXM6IFtcIioqLyouanNvblwiXSxcblx0XHRcdFx0XHRcdFx0XHRmb3JtYXR0ZXI6IHsgaW5kZW50U3R5bGU6IFwic3BhY2VcIiwgaW5kZW50V2lkdGg6IDIgfSxcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdDIsXG5cdFx0XHRcdCksXG5cdFx0XHR9LFxuXHRcdF0sXG5cdH0pO1xuXG5cdG1vbm9SZXBvLmFkZEZpbGUoe1xuXHRcdGZpbGVzOiAoKSA9PiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5kZXZjb250YWluZXIvaW5pdGlhbGl6ZS5zaFwiLFxuXHRcdFx0XHRjb250ZW50OiBbXG5cdFx0XHRcdFx0XCIjIS91c3IvYmluL2VudiBiYXNoXCIsXG5cdFx0XHRcdFx0XCIjIFJ1bnMgb24gdGhlIGhvc3QgYmVmb3JlIHRoZSBjb250YWluZXIgaXMgY3JlYXRlZCAoZGV2Y29udGFpbmVyIGluaXRpYWxpemVDb21tYW5kKS5cIixcblx0XHRcdFx0XHRcIiMgQ3JlYXRlcyBucG0tYXV0aCBhcyB0aGUgaG9zdCB1c2VyIHNvIHRoZSBiaW5kIG1vdW50IGlzIG5vdCByb290LW93bmVkLlwiLFxuXHRcdFx0XHRcdFwiIyBEbyBub3Qgc2NhZmZvbGQgbnBtLWF1dGgvIGZyb20gdGhlIGJ1aWxkZXIgKHRoYXQgcnVucyBhcyByb290KS5cIixcblx0XHRcdFx0XHRcInNldCAtZXVvIHBpcGVmYWlsXCIsXG5cdFx0XHRcdFx0XCJcIixcblx0XHRcdFx0XHQncm9vdD1cIiQoY2QgXCIkKGRpcm5hbWUgXCIke0JBU0hfU09VUkNFWzBdfVwiKS8uLlwiICYmIHB3ZClcIicsXG5cdFx0XHRcdFx0J25wbV9kaXI9XCIkcm9vdC8uZGV2Y29udGFpbmVyL25wbS1hdXRoXCInLFxuXHRcdFx0XHRcdCdpZiAhIG1rZGlyIC1wIFwiJG5wbV9kaXJcIiAyPi9kZXYvbnVsbDsgdGhlbicsXG5cdFx0XHRcdFx0J1xcdGVjaG8gXCJDYW5ub3QgY3JlYXRlICRucG1fZGlyIChwZXJtaXNzaW9uIGRlbmllZCkuXCIgPiYyJyxcblx0XHRcdFx0XHQnXFx0ZWNobyBcIlRoZSBzY2FmZm9sZCBjb250YWluZXIgbGlrZWx5IGxlZnQgLmRldmNvbnRhaW5lciByb290LW93bmVkLiBGaXggd2l0aDpcIiA+JjInLFxuXHRcdFx0XHRcdCdcXHRlY2hvIFwiICBzdWRvIGNob3duIC1SIFxcXFxcIiRVU0VSOiRVU0VSXFxcXFwiIFxcXFxcIiRyb290XFxcXFwiXCIgPiYyJyxcblx0XHRcdFx0XHRcIlxcdGV4aXQgMVwiLFxuXHRcdFx0XHRcdFwiZmlcIixcblx0XHRcdFx0XHRcIntcIixcblx0XHRcdFx0XHQnXFx0ZWNobyBcIipcIicsXG5cdFx0XHRcdFx0J1xcdGVjaG8gXCIhLmdpdGlnbm9yZVwiJyxcblx0XHRcdFx0XHQnfSA+XCIkbnBtX2Rpci8uZ2l0aWdub3JlXCInLFxuXHRcdFx0XHRcdFwiXCIsXG5cdFx0XHRcdFx0J2lmIFtbICEgLWYgXCIkbnBtX2Rpci8ubnBtcmNcIiBdXTsgdGhlbicsXG5cdFx0XHRcdFx0J1xcdGlmIFtbIC1mIFwiJHtIT01FfS8ubnBtcmNcIiBdXTsgdGhlbicsXG5cdFx0XHRcdFx0J1xcdFxcdGNwIC1hIFwiJHtIT01FfS8ubnBtcmNcIiBcIiRucG1fZGlyLy5ucG1yY1wiJyxcblx0XHRcdFx0XHRcIlxcdGZpXCIsXG5cdFx0XHRcdFx0XCJmaVwiLFxuXHRcdFx0XHRcdFwiXCIsXG5cdFx0XHRcdF0uam9pbihcIlxcblwiKSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5kZXZjb250YWluZXIvcG9zdC1zdGFydC5zaFwiLFxuXHRcdFx0XHRjb250ZW50OiBbXG5cdFx0XHRcdFx0XCIjIS91c3IvYmluL2VudiBiYXNoXCIsXG5cdFx0XHRcdFx0XCIjIFJ1bnMgb24gZXZlcnkgY29udGFpbmVyIHN0YXJ0IChkZXZjb250YWluZXIgcG9zdFN0YXJ0Q29tbWFuZCkuXCIsXG5cdFx0XHRcdFx0XCJzZXQgLWV1byBwaXBlZmFpbFwiLFxuXHRcdFx0XHRcdFwiXCIsXG5cdFx0XHRcdFx0J0FVVEhfUkVHSVNUUlk9XCJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZ1wiJyxcblx0XHRcdFx0XHRcIlwiLFxuXHRcdFx0XHRcdCdpZiBucG0gd2hvYW1pIC0tcmVnaXN0cnkgXCIkQVVUSF9SRUdJU1RSWVwiID4vZGV2L251bGwgMj4mMTsgdGhlbicsXG5cdFx0XHRcdFx0J1xcdGVjaG8gXCJucG06IGxvZ2dlZCBpbiBhcyAkKG5wbSB3aG9hbWkgLS1yZWdpc3RyeSBcIiRBVVRIX1JFR0lTVFJZXCIpXCInLFxuXHRcdFx0XHRcdFwiXFx0ZXhpdCAwXCIsXG5cdFx0XHRcdFx0XCJmaVwiLFxuXHRcdFx0XHRcdFwiXCIsXG5cdFx0XHRcdFx0XCJpZiBbWyAtdCAwICYmIC10IDEgXV07IHRoZW5cIixcblx0XHRcdFx0XHQnXFx0ZWNobyBcIm5wbTogbm90IGF1dGhlbnRpY2F0ZWQg4oCUIHN0YXJ0aW5nIGxvZ2luLi4uXCInLFxuXHRcdFx0XHRcdCdcXHRucG0gbG9naW4gLS1yZWdpc3RyeSBcIiRBVVRIX1JFR0lTVFJZXCInLFxuXHRcdFx0XHRcdFwiXFx0ZXhpdCAwXCIsXG5cdFx0XHRcdFx0XCJmaVwiLFxuXHRcdFx0XHRcdFwiXCIsXG5cdFx0XHRcdFx0J2VjaG8gXCJucG06IG5vdCBhdXRoZW50aWNhdGVkLiBPcGVuIGEgdGVybWluYWwgYW5kIHJ1bjogbnBtIGxvZ2luXCIgPiYyJyxcblx0XHRcdFx0XHQnZWNobyBcIiAgICAoY3JlZHMgcGVyc2lzdCBpbiAuZGV2Y29udGFpbmVyL25wbS1hdXRoLylcIiA+JjInLFxuXHRcdFx0XHRcdFwiZXhpdCAxXCIsXG5cdFx0XHRcdFx0XCJcIixcblx0XHRcdFx0XS5qb2luKFwiXFxuXCIpLFxuXHRcdFx0fSxcblx0XHRdLFxuXHR9KTtcblxuXHQvLyBQcm9qZWN0LWxldmVsIG1vZGVscyAocGF0aHMgcmVsYXRpdmUgdG8gcHJvamVjdHMvYXBpKVxuXHRjb25zdCBhcGlQcm9qZWN0ID0gbmV3IFByb2plY3RTY2FmZm9sZChXRUJBUElfUFJPSkVDVF9ESVIpO1xuXHRhcGlQcm9qZWN0LmFkZE1vZGVsKG5ldyBBcGlQYWNrYWdlSnNvbihuYW1lKSk7XG5cdGFwaVByb2plY3QuYWRkTW9kZWwobmV3IE1haW5Tb3VyY2VGaWxlKGAke25hbWV9LmFwaWApKTtcblx0YXBpUHJvamVjdC5hZGRNb2RlbChuZXcgQ29udHJvbGxlclNvdXJjZUZpbGUoKSk7XG5cblx0Ly8gU2FtcGxlU2VydmljZSArIFNhbXBsZUNvbmZpZyBhcmUgcGFydCBvZiB0aGUgY29yZSBzY2FmZm9sZCDigJQgSGVsbG9Db250cm9sbGVyXG5cdC8vIGluamVjdHMgU2FtcGxlU2VydmljZSB0byBkZW1vbnN0cmF0ZSBjb25maWctZHJpdmVuIGJlaGF2aW91ciBvdXQgb2YgdGhlIGJveC5cblx0YXBpUHJvamVjdC5hZGRGaWxlKG5ldyBTYW1wbGVDb25maWdNb2RlbCgpKTtcblx0YXBpUHJvamVjdC5hZGRGaWxlKG5ldyBTYW1wbGVTZXJ2aWNlTW9kZWwoKSk7XG5cblx0bW9ub1JlcG8uYWRkUHJvamVjdChhcGlQcm9qZWN0KTtcblxuXHRyZXR1cm4gbW9ub1JlcG87XG59XG4iXSwibmFtZXMiOlsiV0VCQVBJX1BST0pFQ1RfRElSIiwic2NhZmZvbGRBcGkiLCJmZWF0dXJlcyIsIkRhdGFiYXNlRmVhdHVyZSIsIkF1dGhGZWF0dXJlIiwiUG9zdG1hbkZlYXR1cmUiLCJGaW5hbGl6ZUZlYXR1cmUiLCJjbGlPcHRpb25zIiwidGFyZ2V0RGlyIiwicmVzb2x2ZSIsImQiLCJwcm9qZWN0TmFtZSIsInRyaW0iLCJwcm9jZXNzIiwiZW52IiwiREVDT0hFUkVfUFJPSkVDVF9OQU1FIiwiYmFzZW5hbWUiLCJ3b3Jrc3BhY2UiLCJjcmVhdGVXb3Jrc3BhY2UiLCJTY2FmZm9sZFNlcnZpY2UiLCJzY2FmZm9sZCIsIm1vbm9SZXBvIiwiTW9ub1JlcG9TY2FmZm9sZCIsInNldE5hbWUiLCJuYW1lIiwiY29tcG9zZSIsIkRvY2tlckNvbXBvc2UiLCJzZXRQcm9qZWN0TmFtZSIsImFkZE5ldHdvcmsiLCJhZGRTZXJ2aWNlIiwiYnVpbGQiLCJ2b2x1bWVzIiwiZW52aXJvbm1lbnQiLCJOUE1fQ09ORklHX1VTRVJDT05GSUciLCJjb21tYW5kIiwibmV0d29ya3MiLCJhZGRWb2x1bWUiLCJkZXZDb250YWluZXIiLCJEZXZDb250YWluZXIiLCJhZGRFeHRlbnNpb24iLCJmb3J3YXJkUG9ydCIsInNldFBvcnRBdHRyaWJ1dGVzIiwibGFiZWwiLCJyZXF1aXJlTG9jYWxQb3J0Iiwic2V0SW5pdGlhbGl6ZUNvbW1hbmQiLCJzZXRQb3N0U3RhcnRDb21tYW5kIiwidXNlQ29tcG9zZSIsImFkZE1vZGVsIiwiV2ViYXBpRGV2Q29udGFpbmVyIiwiVlNDb2RlU2V0dGluZ3MiLCJMYXVuY2hKc29uIiwiVHNDb25maWciLCJQYWNrYWdlSnNvbiIsIkNvbmZpZ1lhbWwiLCJXRUxMX0tOT1dOX0ZJTEVTIiwiQ09ORklHX1lBTUwiLCJDT05GSUdfREVWX1lBTUwiLCJHaXRpZ25vcmUiLCJFbnZGaWxlIiwiYWRkRmlsZSIsImZpbGVzIiwiZmlsZVBhdGgiLCJjb250ZW50IiwiSlNPTiIsInN0cmluZ2lmeSIsIiRzY2hlbWEiLCJpbmNsdWRlcyIsImFzc2lzdCIsImFjdGlvbnMiLCJzb3VyY2UiLCJvcmdhbml6ZUltcG9ydHMiLCJ2Y3MiLCJlbmFibGVkIiwiY2xpZW50S2luZCIsInVzZUlnbm9yZUZpbGUiLCJmb3JtYXR0ZXIiLCJmb3JtYXRXaXRoRXJyb3JzIiwiaW5kZW50U3R5bGUiLCJsaW5lV2lkdGgiLCJqYXZhc2NyaXB0IiwicGFyc2VyIiwidW5zYWZlUGFyYW1ldGVyRGVjb3JhdG9yc0VuYWJsZWQiLCJsaW50ZXIiLCJydWxlcyIsInN0eWxlIiwidXNlQ29uc2lzdGVudE1lbWJlckFjY2Vzc2liaWxpdHkiLCJsZXZlbCIsIm9wdGlvbnMiLCJhY2Nlc3NpYmlsaXR5Iiwib3ZlcnJpZGVzIiwiaW5kZW50V2lkdGgiLCJqb2luIiwiYXBpUHJvamVjdCIsIlByb2plY3RTY2FmZm9sZCIsIkFwaVBhY2thZ2VKc29uIiwiTWFpblNvdXJjZUZpbGUiLCJDb250cm9sbGVyU291cmNlRmlsZSIsIlNhbXBsZUNvbmZpZ01vZGVsIiwiU2FtcGxlU2VydmljZU1vZGVsIiwiYWRkUHJvamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUF1QmFBO2VBQUFBOztRQWNTQztlQUFBQTs7OzBCQXJDWTs4QkFDSjtpQ0FDSDt1QkFDTTttQ0FDSjs4QkFDTDtnQ0FDRTtpQ0FDQztrQ0FDQzs4QkFDc0I7K0JBQ3pCO3FDQUNNO2lDQUNDOzZCQUNKO2lDQUNJO2lDQUNBO2dDQUNEO3FDQUNBOzJDQUNNO3FDQUNOO2tDQUN1QjtrQ0FDbkI7QUFFNUIsTUFBTUQscUJBQXFCO0FBWWxDLE1BQU1FLFdBQVc7SUFBQ0MsZ0NBQWU7SUFBRUMsd0JBQVc7SUFBRUMsOEJBQWM7SUFBRUMsZ0NBQWU7Q0FBQztBQUV6RSxlQUFlTCxZQUFZTSxVQUFzQjtJQUN2RCxNQUFNQyxZQUFZQyxJQUFBQSxpQkFBTyxFQUFDRixXQUFXRyxDQUFDLElBQUk7SUFDMUMsTUFBTUMsY0FDTEosV0FBV0ksV0FBVyxFQUFFQyxVQUN4QkMsUUFBUUMsR0FBRyxDQUFDQyxxQkFBcUIsRUFBRUgsVUFDbkNJLElBQUFBLGtCQUFRLEVBQUNSO0lBQ1YsTUFBTVMsWUFBWUMsZ0JBQWdCVixXQUFXRztJQUM3QyxNQUFNUSxnQ0FBZSxDQUFDQyxRQUFRLENBQUNILFdBQVdWLFlBQVlMO0FBQ3ZEO0FBRUEsU0FBU2dCLGdCQUFnQlYsU0FBaUIsRUFBRUcsV0FBbUI7SUFDOUQsTUFBTVUsV0FBVyxJQUFJQyw4QkFBZ0I7SUFDckNE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
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL2NyZWF0ZS1hcGkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFzZW5hbWUsIHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBEb2NrZXJDb21wb3NlIH0gZnJvbSBcIi4uL21vZGVscy9jb21wb3NlLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBDb25maWdZYW1sIH0gZnJvbSBcIi4uL21vZGVscy9jb25maWcteWFtbC5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuLi9tb2RlbHMvY29uc3QuanNcIjtcbmltcG9ydCB7IERldkNvbnRhaW5lciB9IGZyb20gXCIuLi9tb2RlbHMvZGV2LWNvbnRhaW5lci5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgRW52RmlsZSB9IGZyb20gXCIuLi9tb2RlbHMvZW52LWZpbGUubW9kZWwuanNcIjtcbmltcG9ydCB7IEdpdGlnbm9yZSB9IGZyb20gXCIuLi9tb2RlbHMvZ2l0aWdub3JlLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBMYXVuY2hKc29uIH0gZnJvbSBcIi4uL21vZGVscy9sYXVuY2gtanNvbi5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgUGFja2FnZUpzb24gfSBmcm9tIFwiLi4vbW9kZWxzL3BhY2thZ2UtanNvbi5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgTW9ub1JlcG9TY2FmZm9sZCwgUHJvamVjdFNjYWZmb2xkIH0gZnJvbSBcIi4uL21vZGVscy9wcm9qZWN0Lm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBUc0NvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvdHNjb25maWcubW9kZWwuanNcIjtcbmltcG9ydCB7IFZTQ29kZVNldHRpbmdzIH0gZnJvbSBcIi4uL21vZGVscy92c2NvZGUtc2V0dGluZ3MubW9kZWwuanNcIjtcbmltcG9ydCB7IFNjYWZmb2xkU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9zY2FmZm9sZC5zZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBXRUJBUElfUFJPSkVDVF9ESVIsIFdFQkFQSV9SRUxFQVNFX0VOVFJZIH0gZnJvbSBcIi4vY29uc3QuanNcIjtcbmltcG9ydCB7IEF1dGhGZWF0dXJlIH0gZnJvbSBcIi4vZmVhdHVyZXMvYXV0aC5mZWF0dXJlLmpzXCI7XG5pbXBvcnQgeyBEYXRhYmFzZUZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9kYXRhYmFzZS5mZWF0dXJlLmpzXCI7XG5pbXBvcnQgeyBGaW5hbGl6ZUZlYXR1cmUgfSBmcm9tIFwiLi9mZWF0dXJlcy9maW5hbGl6ZS5mZWF0dXJlLmpzXCI7XG5pbXBvcnQgeyBQb3N0bWFuRmVhdHVyZSB9IGZyb20gXCIuL2ZlYXR1cmVzL3Bvc3RtYW4uZmVhdHVyZS5qc1wiO1xuaW1wb3J0IHsgQXBpUGFja2FnZUpzb24gfSBmcm9tIFwiLi9tb2RlbHMvYXBpLXBhY2thZ2UtanNvbi5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgQ29udHJvbGxlclNvdXJjZUZpbGUgfSBmcm9tIFwiLi9tb2RlbHMvY29udHJvbGxlci1zb3VyY2UtZmlsZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgR2l0aHViQ2lXb3JrZmxvd3MgfSBmcm9tIFwiLi9tb2RlbHMvZ2l0aHViLWNpLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBNYWluU291cmNlRmlsZSB9IGZyb20gXCIuL21vZGVscy9tYWluLXNvdXJjZS1maWxlLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBXZWJhcGlQcm9kdWN0aW9uRG9ja2VyZmlsZSB9IGZyb20gXCIuL21vZGVscy9wcm9kdWN0aW9uLWRvY2tlcmZpbGUubW9kZWwuanNcIjtcbmltcG9ydCB7IFNhbXBsZUNvbmZpZ01vZGVsLCBTYW1wbGVTZXJ2aWNlTW9kZWwgfSBmcm9tIFwiLi9tb2RlbHMvc2FtcGxlLWZpbGVzLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBXZWJhcGlEZXZDb250YWluZXIgfSBmcm9tIFwiLi9tb2RlbHMvd2ViYXBpLWltYWdlLm1vZGVsLmpzXCI7XG5cbmV4cG9ydCB7IFdFQkFQSV9QUk9KRUNUX0RJUiwgV0VCQVBJX1JFTEVBU0VfRU5UUlkgfSBmcm9tIFwiLi9jb25zdC5qc1wiO1xuXG5leHBvcnQgdHlwZSBBcGlPcHRpb25zID0ge1xuXHRkPzogc3RyaW5nO1xuXHQvKiogSG9zdCBwcm9qZWN0IG5hbWUgKGRpcmVjdG9yeSBiYXNlbmFtZSkuIFJlcXVpcmVkIHdoZW4gc2NhZmZvbGRpbmcgaW50byBgL3dvcmtzcGFjZWAuICovXG5cdHByb2plY3ROYW1lPzogc3RyaW5nO1xuXHRhdXRoUHJvdmlkZXI/OiBcImF1dGgwXCIgfCBcIm5vbmVcIjtcblx0ZGF0YWJhc2VQcm92aWRlcj86IFwibm9uZVwiIHwgXCJwb3N0Z3Jlcy90eXBlb3JtXCI7XG5cdHBvc3RtYW5Qcm92aWRlcj86IFwiYXBpXCIgfCBcImxvY2FsXCIgfCBcIm5vbmVcIjtcblx0aW5zdGFsbERlcGVuZGVuY2llcz86IFwieWVzXCIgfCBcIm5vXCI7XG59O1xuXG5jb25zdCBmZWF0dXJlcyA9IFtEYXRhYmFzZUZlYXR1cmUsIEF1dGhGZWF0dXJlLCBQb3N0bWFuRmVhdHVyZSwgRmluYWxpemVGZWF0dXJlXTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNjYWZmb2xkQXBpKGNsaU9wdGlvbnM6IEFwaU9wdGlvbnMpIHtcblx0Y29uc3QgdGFyZ2V0RGlyID0gcmVzb2x2ZShjbGlPcHRpb25zLmQgPz8gXCIuXCIpO1xuXHRjb25zdCBwcm9qZWN0TmFtZSA9XG5cdFx0Y2xpT3B0aW9ucy5wcm9qZWN0TmFtZT8udHJpbSgpIHx8XG5cdFx0cHJvY2Vzcy5lbnYuREVDT0hFUkVfUFJPSkVDVF9OQU1FPy50cmltKCkgfHxcblx0XHRiYXNlbmFtZSh0YXJnZXREaXIpO1xuXHRjb25zdCB3b3Jrc3BhY2UgPSBjcmVhdGVXb3Jrc3BhY2UodGFyZ2V0RGlyLCBwcm9qZWN0TmFtZSk7XG5cdGF3YWl0IFNjYWZmb2xkU2VydmljZS5zY2FmZm9sZCh3b3Jrc3BhY2UsIGNsaU9wdGlvbnMsIGZlYXR1cmVzKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlV29ya3NwYWNlKHRhcmdldERpcjogc3RyaW5nLCBwcm9qZWN0TmFtZTogc3RyaW5nKTogTW9ub1JlcG9TY2FmZm9sZCB7XG5cdGNvbnN0IG1vbm9SZXBvID0gbmV3IE1vbm9SZXBvU2NhZmZvbGQoKTtcblx0bW9ub1JlcG8udGFyZ2V0RGlyID0gdGFyZ2V0RGlyO1xuXHRtb25vUmVwby5zZXROYW1lKHByb2plY3ROYW1lKTtcblx0Y29uc3QgbmFtZSA9IG1vbm9SZXBvLm5hbWU7XG5cblx0Y29uc3QgY29tcG9zZSA9IG5ldyBEb2NrZXJDb21wb3NlKClcblx0XHQuc2V0UHJvamVjdE5hbWUobmFtZSlcblx0XHQuYWRkTmV0d29yayhuYW1lLCB7IG5hbWU6IGBzYW1wbGVzLSR7bmFtZX1gIH0pXG5cdFx0LmFkZFNlcnZpY2UoXCJkZXZjb250YWluZXJcIiwge1xuXHRcdFx0YnVpbGQ6IFwiLlwiLFxuXHRcdFx0dm9sdW1lczogW1xuXHRcdFx0XHQvLyBXb3Jrc3BhY2UtbG9jYWwgKGNyZWF0ZWQgYnkgaW5pdGlhbGl6ZS5zaCBhcyB0aGUgaG9zdCB1c2VyKS5cblx0XHRcdFx0Ly8gRG8gTk9UIGJpbmQgJHtIT01FfS8ubnBtLy4uLiDigJQgRG9ja2VyIGNyZWF0ZXMgbWlzc2luZyBob3N0IHBhdGhzIGFzIHJvb3QuXG5cdFx0XHRcdFwiLi9ucG0tYXV0aDovaG9tZS9ub2RlLy5ucG0tY29uZmlnXCIsXG5cdFx0XHRcdFwid2ViYXBpLW5vZGUtbW9kdWxlczovd29ya3NwYWNlL25vZGVfbW9kdWxlc1wiLFxuXHRcdFx0XSxcblx0XHRcdGVudmlyb25tZW50OiB7IE5QTV9DT05GSUdfVVNFUkNPTkZJRzogXCIvaG9tZS9ub2RlLy5ucG0tY29uZmlnLy5ucG1yY1wiIH0sXG5cdFx0XHRjb21tYW5kOiBcInNsZWVwIGluZmluaXR5XCIsXG5cdFx0XHRuZXR3b3JrczogW25hbWVdLFxuXHRcdH0pXG5cdFx0LmFkZFZvbHVtZShcIndlYmFwaS1ub2RlLW1vZHVsZXNcIik7XG5cblx0Y29uc3QgZGV2Q29udGFpbmVyID0gbmV3IERldkNvbnRhaW5lcigpXG5cdFx0LmFkZEV4dGVuc2lvbihcImJpb21lanMuYmlvbWVcIiwgXCJ2aXRlc3QuZXhwbG9yZXJcIilcblx0XHQuZm9yd2FyZFBvcnQoMzAwMClcblx0XHQuc2V0UG9ydEF0dHJpYnV0ZXMoMzAwMCwgeyBsYWJlbDogXCJBUElcIiwgcmVxdWlyZUxvY2FsUG9ydDogdHJ1ZSB9KVxuXHRcdC5zZXRJbml0aWFsaXplQ29tbWFuZChcImJhc2ggLmRldmNvbnRhaW5lci9pbml0aWFsaXplLnNoXCIpXG5cdFx0LnNldFBvc3RTdGFydENvbW1hbmQoXCJiYXNoIC5kZXZjb250YWluZXIvcG9zdC1zdGFydC5zaFwiKVxuXHRcdC51c2VDb21wb3NlKCk7XG5cblx0Ly8gV29ya3NwYWNlLWxldmVsIG1vZGVscyAocmVwbyByb290KVxuXHRtb25vUmVwby5hZGRNb2RlbChjb21wb3NlKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwoZGV2Q29udGFpbmVyKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IFdlYmFwaURldkNvbnRhaW5lcigpKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IFdlYmFwaVByb2R1Y3Rpb25Eb2NrZXJmaWxlKCkpO1xuXHRtb25vUmVwby5hZGRNb2RlbChuZXcgR2l0aHViQ2lXb3JrZmxvd3MoKSk7XG5cdG1vbm9SZXBvLmFkZE1vZGVsKG5ldyBWU0NvZGVTZXR0aW5ncyhuYW1lKSk7XG5cdG1vbm9SZXBvLmFkZE1vZGVsKG5ldyBMYXVuY2hKc29uKCkpO1xuXHRtb25vUmVwby5hZGRNb2RlbChuZXcgVHNDb25maWcoKSk7XG5cdG1vbm9SZXBvLmFkZE1vZGVsKG5ldyBQYWNrYWdlSnNvbihgJHtuYW1lfS5hcGlgLCB7IHN0YXJ0RW50cnk6IFdFQkFQSV9SRUxFQVNFX0VOVFJZIH0pKTtcblx0bW9ub1JlcG8uYWRkTW9kZWwobmV3IENvbmZpZ1lhbWwoV0VMTF9LTk9XTl9GSUxFUy5DT05GSUdfWUFNTCwgXCJjb25maWcvY29uZmlnLnlhbWxcIiwgXCJcIikpO1xuXHRtb25vUmVwby5hZGRNb2RlbChcblx0XHRuZXcgQ29uZmlnWWFtbChXRUxMX0tOT1dOX0ZJTEVTLkNPTkZJR19ERVZfWUFNTCwgXCJjb25maWcvY29uZmlnLmRldi55YW1sXCIsIFwiXCIpLFxuXHQpO1xuXHRtb25vUmVwby5hZGRNb2RlbChuZXcgR2l0aWdub3JlKCkpO1xuXHRtb25vUmVwby5hZGRNb2RlbChuZXcgRW52RmlsZSgpKTtcblxuXHQvLyBCaW9tZSBmb3JtYXR0ZXIvbGludGVyIGNvbmZpZ1xuXHRtb25vUmVwby5hZGRGaWxlKHtcblx0XHRmaWxlczogKCkgPT4gW1xuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCJiaW9tZS5qc29uXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdCRzY2hlbWE6IFwiaHR0cHM6Ly9iaW9tZWpzLmRldi9zY2hlbWFzLzIuMC4wL3NjaGVtYS5qc29uXCIsXG5cdFx0XHRcdFx0XHRmaWxlczoge1xuXHRcdFx0XHRcdFx0XHRpbmNsdWRlczogW1wiKiovKi50c1wiLCBcIioqLyouanNcIiwgXCIqKi8qLmpzb25cIiwgXCIqKi8qLnltbFwiLCBcIioqLyoueWFtbFwiXSxcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRhc3Npc3Q6IHsgYWN0aW9uczogeyBzb3VyY2U6IHsgb3JnYW5pemVJbXBvcnRzOiBcIm9uXCIgfSB9IH0sXG5cdFx0XHRcdFx0XHR2Y3M6IHsgZW5hYmxlZDogdHJ1ZSwgY2xpZW50S2luZDogXCJnaXRcIiwgdXNlSWdub3JlRmlsZTogdHJ1ZSB9LFxuXHRcdFx0XHRcdFx0Zm9ybWF0dGVyOiB7XG5cdFx0XHRcdFx0XHRcdGVuYWJsZWQ6IHRydWUsXG5cdFx0XHRcdFx0XHRcdGZvcm1hdFdpdGhFcnJvcnM6IHRydWUsXG5cdFx0XHRcdFx0XHRcdGluZGVudFN0eWxlOiBcInRhYlwiLFxuXHRcdFx0XHRcdFx0XHRsaW5lV2lkdGg6IDk1LFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdGphdmFzY3JpcHQ6IHsgcGFyc2VyOiB7IHVuc2FmZVBhcmFtZXRlckRlY29yYXRvcnNFbmFibGVkOiB0cnVlIH0gfSxcblx0XHRcdFx0XHRcdGxpbnRlcjoge1xuXHRcdFx0XHRcdFx0XHRydWxlczoge1xuXHRcdFx0XHRcdFx0XHRcdHN0eWxlOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHR1c2VDb25zaXN0ZW50TWVtYmVyQWNjZXNzaWJpbGl0eToge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRsZXZlbDogXCJlcnJvclwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zOiB7IGFjY2Vzc2liaWxpdHk6IFwiZXhwbGljaXRcIiB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdG92ZXJyaWRlczogW1xuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0aW5jbHVkZXM6IFtcIioqLyouanNvblwiXSxcblx0XHRcdFx0XHRcdFx0XHRmb3JtYXR0ZXI6IHsgaW5kZW50U3R5bGU6IFwic3BhY2VcIiwgaW5kZW50V2lkdGg6IDIgfSxcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRudWxsLFxuXHRcdFx0XHRcdDIsXG5cdFx0XHRcdCksXG5cdFx0XHR9LFxuXHRcdF0sXG5cdH0pO1xuXG5cdG1vbm9SZXBvLmFkZEZpbGUoe1xuXHRcdGZpbGVzOiAoKSA9PiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5kZXZjb250YWluZXIvaW5pdGlhbGl6ZS5zaFwiLFxuXHRcdFx0XHRjb250ZW50OiBbXG5cdFx0XHRcdFx0XCIjIS91c3IvYmluL2VudiBiYXNoXCIsXG5cdFx0XHRcdFx0XCIjIFJ1bnMgb24gdGhlIGhvc3QgYmVmb3JlIHRoZSBjb250YWluZXIgaXMgY3JlYXRlZCAoZGV2Y29udGFpbmVyIGluaXRpYWxpemVDb21tYW5kKS5cIixcblx0XHRcdFx0XHRcIiMgQ3JlYXRlcyBucG0tYXV0aCBhcyB0aGUgaG9zdCB1c2VyIHNvIHRoZSBiaW5kIG1vdW50IGlzIG5vdCByb290LW93bmVkLlwiLFxuXHRcdFx0XHRcdFwiIyBEbyBub3Qgc2NhZmZvbGQgbnBtLWF1dGgvIGZyb20gdGhlIGJ1aWxkZXIgKHRoYXQgcnVucyBhcyByb290KS5cIixcblx0XHRcdFx0XHRcInNldCAtZXVvIHBpcGVmYWlsXCIsXG5cdFx0XHRcdFx0XCJcIixcblx0XHRcdFx0XHQncm9vdD1cIiQoY2QgXCIkKGRpcm5hbWUgXCIke0JBU0hfU09VUkNFWzBdfVwiKS8uLlwiICYmIHB3ZClcIicsXG5cdFx0XHRcdFx0J25wbV9kaXI9XCIkcm9vdC8uZGV2Y29udGFpbmVyL25wbS1hdXRoXCInLFxuXHRcdFx0XHRcdCdpZiAhIG1rZGlyIC1wIFwiJG5wbV9kaXJcIiAyPi9kZXYvbnVsbDsgdGhlbicsXG5cdFx0XHRcdFx0J1xcdGVjaG8gXCJDYW5ub3QgY3JlYXRlICRucG1fZGlyIChwZXJtaXNzaW9uIGRlbmllZCkuXCIgPiYyJyxcblx0XHRcdFx0XHQnXFx0ZWNobyBcIlRoZSBzY2FmZm9sZCBjb250YWluZXIgbGlrZWx5IGxlZnQgLmRldmNvbnRhaW5lciByb290LW93bmVkLiBGaXggd2l0aDpcIiA+JjInLFxuXHRcdFx0XHRcdCdcXHRlY2hvIFwiICBzdWRvIGNob3duIC1SIFxcXFxcIiRVU0VSOiRVU0VSXFxcXFwiIFxcXFxcIiRyb290XFxcXFwiXCIgPiYyJyxcblx0XHRcdFx0XHRcIlxcdGV4aXQgMVwiLFxuXHRcdFx0XHRcdFwiZmlcIixcblx0XHRcdFx0XHRcIntcIixcblx0XHRcdFx0XHQnXFx0ZWNobyBcIipcIicsXG5cdFx0XHRcdFx0J1xcdGVjaG8gXCIhLmdpdGlnbm9yZVwiJyxcblx0XHRcdFx0XHQnfSA+XCIkbnBtX2Rpci8uZ2l0aWdub3JlXCInLFxuXHRcdFx0XHRcdFwiXCIsXG5cdFx0XHRcdFx0J2lmIFtbICEgLWYgXCIkbnBtX2Rpci8ubnBtcmNcIiBdXTsgdGhlbicsXG5cdFx0XHRcdFx0J1xcdGlmIFtbIC1mIFwiJHtIT01FfS8ubnBtcmNcIiBdXTsgdGhlbicsXG5cdFx0XHRcdFx0J1xcdFxcdGNwIC1hIFwiJHtIT01FfS8ubnBtcmNcIiBcIiRucG1fZGlyLy5ucG1yY1wiJyxcblx0XHRcdFx0XHRcIlxcdGZpXCIsXG5cdFx0XHRcdFx0XCJmaVwiLFxuXHRcdFx0XHRcdFwiXCIsXG5cdFx0XHRcdF0uam9pbihcIlxcblwiKSxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5kZXZjb250YWluZXIvcG9zdC1zdGFydC5zaFwiLFxuXHRcdFx0XHRjb250ZW50OiBbXG5cdFx0XHRcdFx0XCIjIS91c3IvYmluL2VudiBiYXNoXCIsXG5cdFx0XHRcdFx0XCIjIFJ1bnMgb24gZXZlcnkgY29udGFpbmVyIHN0YXJ0IChkZXZjb250YWluZXIgcG9zdFN0YXJ0Q29tbWFuZCkuXCIsXG5cdFx0XHRcdFx0XCJzZXQgLWV1byBwaXBlZmFpbFwiLFxuXHRcdFx0XHRcdFwiXCIsXG5cdFx0XHRcdFx0J0FVVEhfUkVHSVNUUlk9XCJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZ1wiJyxcblx0XHRcdFx0XHRcIlwiLFxuXHRcdFx0XHRcdCdpZiBucG0gd2hvYW1pIC0tcmVnaXN0cnkgXCIkQVVUSF9SRUdJU1RSWVwiID4vZGV2L251bGwgMj4mMTsgdGhlbicsXG5cdFx0XHRcdFx0J1xcdGVjaG8gXCJucG06IGxvZ2dlZCBpbiBhcyAkKG5wbSB3aG9hbWkgLS1yZWdpc3RyeSBcIiRBVVRIX1JFR0lTVFJZXCIpXCInLFxuXHRcdFx0XHRcdFwiXFx0ZXhpdCAwXCIsXG5cdFx0XHRcdFx0XCJmaVwiLFxuXHRcdFx0XHRcdFwiXCIsXG5cdFx0XHRcdFx0XCJpZiBbWyAtdCAwICYmIC10IDEgXV07IHRoZW5cIixcblx0XHRcdFx0XHQnXFx0ZWNobyBcIm5wbTogbm90IGF1dGhlbnRpY2F0ZWQg4oCUIHN0YXJ0aW5nIGxvZ2luLi4uXCInLFxuXHRcdFx0XHRcdCdcXHRucG0gbG9naW4gLS1yZWdpc3RyeSBcIiRBVVRIX1JFR0lTVFJZXCInLFxuXHRcdFx0XHRcdFwiXFx0ZXhpdCAwXCIsXG5cdFx0XHRcdFx0XCJmaVwiLFxuXHRcdFx0XHRcdFwiXCIsXG5cdFx0XHRcdFx0J2VjaG8gXCJucG06IG5vdCBhdXRoZW50aWNhdGVkLiBPcGVuIGEgdGVybWluYWwgYW5kIHJ1bjogbnBtIGxvZ2luXCIgPiYyJyxcblx0XHRcdFx0XHQnZWNobyBcIiAgICAoY3JlZHMgcGVyc2lzdCBpbiAuZGV2Y29udGFpbmVyL25wbS1hdXRoLylcIiA+JjInLFxuXHRcdFx0XHRcdFwiZXhpdCAxXCIsXG5cdFx0XHRcdFx0XCJcIixcblx0XHRcdFx0XS5qb2luKFwiXFxuXCIpLFxuXHRcdFx0fSxcblx0XHRdLFxuXHR9KTtcblxuXHQvLyBQcm9qZWN0LWxldmVsIG1vZGVscyAocGF0aHMgcmVsYXRpdmUgdG8gcHJvamVjdHMvYXBpKVxuXHRjb25zdCBhcGlQcm9qZWN0ID0gbmV3IFByb2plY3RTY2FmZm9sZChXRUJBUElfUFJPSkVDVF9ESVIpO1xuXHRhcGlQcm9qZWN0LmFkZE1vZGVsKG5ldyBBcGlQYWNrYWdlSnNvbihuYW1lKSk7XG5cdGFwaVByb2plY3QuYWRkTW9kZWwobmV3IE1haW5Tb3VyY2VGaWxlKGAke25hbWV9LmFwaWApKTtcblx0YXBpUHJvamVjdC5hZGRNb2RlbChuZXcgQ29udHJvbGxlclNvdXJjZUZpbGUoKSk7XG5cblx0Ly8gU2FtcGxlU2VydmljZSArIFNhbXBsZUNvbmZpZyBhcmUgcGFydCBvZiB0aGUgY29yZSBzY2FmZm9sZCDigJQgSGVsbG9Db250cm9sbGVyXG5cdC8vIGluamVjdHMgU2FtcGxlU2VydmljZSB0byBkZW1vbnN0cmF0ZSBjb25maWctZHJpdmVuIGJlaGF2aW91ciBvdXQgb2YgdGhlIGJveC5cblx0YXBpUHJvamVjdC5hZGRGaWxlKG5ldyBTYW1wbGVDb25maWdNb2RlbCgpKTtcblx0YXBpUHJvamVjdC5hZGRGaWxlKG5ldyBTYW1wbGVTZXJ2aWNlTW9kZWwoKSk7XG5cblx0bW9ub1JlcG8uYWRkUHJvamVjdChhcGlQcm9qZWN0KTtcblxuXHRyZXR1cm4gbW9ub1JlcG87XG59XG4iXSwibmFtZXMiOlsiV0VCQVBJX1BST0pFQ1RfRElSIiwiV0VCQVBJX1JFTEVBU0VfRU5UUlkiLCJzY2FmZm9sZEFwaSIsImZlYXR1cmVzIiwiRGF0YWJhc2VGZWF0dXJlIiwiQXV0aEZlYXR1cmUiLCJQb3N0bWFuRmVhdHVyZSIsIkZpbmFsaXplRmVhdHVyZSIsImNsaU9wdGlvbnMiLCJ0YXJnZXREaXIiLCJyZXNvbHZlIiwiZCIsInByb2plY3ROYW1lIiwidHJpbSIsInByb2Nlc3MiLCJlbnYiLCJERUNPSEVSRV9QUk9KRUNUX05BTUUiLCJiYXNlbmFtZSIsIndvcmtzcGFjZSIsImNyZWF0ZVdvcmtzcGFjZSIsIlNjYWZmb2xkU2VydmljZSIsInNjYWZmb2xkIiwibW9ub1JlcG8iLCJNb25vUmVwb1NjYWZmb2xkIiwic2V0TmFtZSIsIm5hbWUiLCJjb21wb3NlIiwiRG9ja2VyQ29tcG9zZSIsInNldFByb2plY3ROYW1lIiwiYWRkTmV0d29yayIsImFkZFNlcnZpY2UiLCJidWlsZCIsInZvbHVtZXMiLCJlbnZpcm9ubWVudCIsIk5QTV9DT05GSUdfVVNFUkNPTkZJRyIsImNvbW1hbmQiLCJuZXR3b3JrcyIsImFkZFZvbHVtZSIsImRldkNvbnRhaW5lciIsIkRldkNvbnRhaW5lciIsImFkZEV4dGVuc2lvbiIsImZvcndhcmRQb3J0Iiwic2V0UG9ydEF0dHJpYnV0ZXMiLCJsYWJlbCIsInJlcXVpcmVMb2NhbFBvcnQiLCJzZXRJbml0aWFsaXplQ29tbWFuZCIsInNldFBvc3RTdGFydENvbW1hbmQiLCJ1c2VDb21wb3NlIiwiYWRkTW9kZWwiLCJXZWJhcGlEZXZDb250YWluZXIiLCJXZWJhcGlQcm9kdWN0aW9uRG9ja2VyZmlsZSIsIkdpdGh1YkNpV29ya2Zsb3dzIiwiVlNDb2RlU2V0dGluZ3MiLCJMYXVuY2hKc29uIiwiVHNDb25maWciLCJQYWNrYWdlSnNvbiIsInN0YXJ0RW50cnkiLCJDb25maWdZYW1sIiwiV0VMTF9LTk9XTl9GSUxFUyIsIkNPTkZJR19ZQU1MIiwiQ09ORklHX0RFVl9ZQU1MIiwiR2l0aWdub3JlIiwiRW52RmlsZSIsImFkZEZpbGUiLCJmaWxlcyIsImZpbGVQYXRoIiwiY29udGVudCIsIkpTT04iLCJzdHJpbmdpZnkiLCIkc2NoZW1hIiwiaW5jbHVkZXMiLCJhc3Npc3QiLCJhY3Rpb25zIiwic291cmNlIiwib3JnYW5pemVJbXBvcnRzIiwidmNzIiwiZW5hYmxlZCIsImNsaWVudEtpbmQiLCJ1c2VJZ25vcmVGaWxlIiwiZm9ybWF0dGVyIiwiZm9ybWF0V2l0aEVycm9ycyIsImluZGVudFN0eWxlIiwibGluZVdpZHRoIiwiamF2YXNjcmlwdCIsInBhcnNlciIsInVuc2FmZVBhcmFtZXRlckRlY29yYXRvcnNFbmFibGVkIiwibGludGVyIiwicnVsZXMiLCJzdHlsZSIsInVzZUNvbnNpc3RlbnRNZW1iZXJBY2Nlc3NpYmlsaXR5IiwibGV2ZWwiLCJvcHRpb25zIiwiYWNjZXNzaWJpbGl0eSIsIm92ZXJyaWRlcyIsImluZGVudFdpZHRoIiwiam9pbiIsImFwaVByb2plY3QiLCJQcm9qZWN0U2NhZmZvbGQiLCJBcGlQYWNrYWdlSnNvbiIsIk1haW5Tb3VyY2VGaWxlIiwiQ29udHJvbGxlclNvdXJjZUZpbGUiLCJTYW1wbGVDb25maWdNb2RlbCIsIlNhbXBsZVNlcnZpY2VNb2RlbCIsImFkZFByb2plY3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBMEJTQTtlQUFBQSwwQkFBa0I7O1FBQUVDO2VBQUFBLDRCQUFvQjs7UUFjM0JDO2VBQUFBOzs7MEJBeENZOzhCQUNKO2lDQUNIO3VCQUNNO21DQUNKOzhCQUNMO2dDQUNFO2lDQUNDO2tD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
|
|
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "AuthFeature", {
|
|
|
10
10
|
});
|
|
11
11
|
const _prompt = require("../../domain/prompt.js");
|
|
12
12
|
const _const = require("../../models/const.js");
|
|
13
|
-
const
|
|
13
|
+
const _const1 = require("../const.js");
|
|
14
14
|
const _authconfigmodel = require("../models/auth-config.model.js");
|
|
15
15
|
const _controllersourcefilemodel = require("../models/controller-source-file.model.js");
|
|
16
16
|
const _auth0cli = /*#__PURE__*/ _interop_require_wildcard(require("./auth0-cli.js"));
|
|
@@ -372,7 +372,7 @@ function scaffoldLocalUserProfile(workspace) {
|
|
|
372
372
|
' roles: ["admin"],',
|
|
373
373
|
"}));"
|
|
374
374
|
].join(" "));
|
|
375
|
-
workspace.getProject(
|
|
375
|
+
workspace.getProject(_const1.WEBAPI_PROJECT_DIR)?.addFile({
|
|
376
376
|
files: ()=>[
|
|
377
377
|
{
|
|
378
378
|
filePath: "src/entities/user.entity.ts",
|
|
@@ -455,4 +455,4 @@ const AuthFeature = {
|
|
|
455
455
|
scaffold
|
|
456
456
|
};
|
|
457
457
|
|
|
458
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL2ZlYXR1cmVzL2F1dGguZmVhdHVyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc2ssIHBpY2sgfSBmcm9tIFwiLi4vLi4vZG9tYWluL3Byb21wdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBDb25maWdZYW1sIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb25maWcteWFtbC5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgRW52RmlsZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvZW52LWZpbGUubW9kZWwuanNcIjtcbmltcG9ydCB0eXBlIHsgUGFja2FnZUpzb24gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3BhY2thZ2UtanNvbi5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBXb3Jrc3BhY2VTY2FmZm9sZCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvcHJvamVjdC5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NjYWZmb2xkLnNlcnZpY2UuanNcIjtcbmltcG9ydCB7IFdFQkFQSV9QUk9KRUNUX0RJUiB9IGZyb20gXCIuLi9jcmVhdGUtYXBpLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEFwaVBhY2thZ2VKc29uIH0gZnJvbSBcIi4uL21vZGVscy9hcGktcGFja2FnZS1qc29uLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBBdXRoQ29uZmlnTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL2F1dGgtY29uZmlnLm1vZGVsLmpzXCI7XG5pbXBvcnQgeyBDb250cm9sbGVyU291cmNlRmlsZSB9IGZyb20gXCIuLi9tb2RlbHMvY29udHJvbGxlci1zb3VyY2UtZmlsZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBNYWluU291cmNlRmlsZSB9IGZyb20gXCIuLi9tb2RlbHMvbWFpbi1zb3VyY2UtZmlsZS5tb2RlbC5qc1wiO1xuaW1wb3J0ICogYXMgYXV0aDBDbGkgZnJvbSBcIi4vYXV0aDAtY2xpLmpzXCI7XG5cbmV4cG9ydCB0eXBlIEF1dGhPcHRpb25zID0ge1xuXHRhdXRoUHJvdmlkZXI/OiBcImF1dGgwXCIgfCBcIm5vbmVcIjtcblx0aXNzdWVyQmFzZVVybD86IHN0cmluZztcblx0YXVkaWVuY2U/OiBzdHJpbmc7XG5cdGRhdGFiYXNlUHJvdmlkZXI/OiBcIm5vbmVcIiB8IFwicG9zdGdyZXMvdHlwZW9ybVwiO1xuXHRhZG1pblVzZXJuYW1lPzogc3RyaW5nO1xuXHRhZG1pblBhc3N3b3JkPzogc3RyaW5nO1xufTtcblxuY29uc3QgQURNSU5fUk9MRSA9IFwiYWRtaW5cIjtcblxuY29uc3QgVVNFUl9FTlRJVFlfVFMgPSBgaW1wb3J0IHsgQ29sdW1uLCBFbnRpdHksIFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4gfSBmcm9tIFwidHlwZW9ybVwiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHkgYXMgSUVudGl0eSB9IGZyb20gXCJAZGVjb2hlcmUvY29kZXhcIjtcblxuQEVudGl0eSgpXG5leHBvcnQgY2xhc3MgVXNlckVudGl0eSBpbXBsZW1lbnRzIElFbnRpdHkge1xuXFx0QFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4oKVxuXFx0cHVibGljIGlkITogbnVtYmVyO1xuXG5cXHRAQ29sdW1uKHsgdW5pcXVlOiB0cnVlIH0pXG5cXHRwdWJsaWMgc3ViITogc3RyaW5nO1xuXG5cXHRAQ29sdW1uKHsgdHlwZTogXCJ2YXJjaGFyXCIsIG51bGxhYmxlOiB0cnVlIH0pXG5cXHRwdWJsaWMgZW1haWwhOiBzdHJpbmcgfCBudWxsO1xuXG5cXHRAQ29sdW1uKClcblxcdHB1YmxpYyBkaXNwbGF5TmFtZSE6IHN0cmluZztcblxuXFx0LyoqIEFwcC1vd25lZCByb2xlcy4gVGhlIFxcYGFkbWluXFxgIHJvbGUgZ3JhbnRzIENBU0wgXFxgbWFuYWdlXFxgL1xcYGFsbFxcYCAod2lsZGNhcmQpLiAqL1xuXFx0QENvbHVtbih7IHR5cGU6IFwic2ltcGxlLWpzb25cIiwgZGVmYXVsdDogXCJbXVwiIH0pXG5cXHRwdWJsaWMgcm9sZXMhOiBzdHJpbmdbXTtcbn1cbmA7XG5cbmNvbnN0IFVTRVJfUkVQT1NJVE9SWV9UUyA9IGBpbXBvcnQgeyBpbmplY3RhYmxlIH0gZnJvbSBcIkBkZWNvaGVyZS9jcnVjaWJsZS9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBpbmplY3RVbml0T2ZXb3JrIH0gZnJvbSBcIkBkZWNvaGVyZS9jb2RleFwiO1xuaW1wb3J0IHsgVHlwZU9ybVJlcG9zaXRvcnksIFR5cGVPcm1Vbml0T2ZXb3JrIH0gZnJvbSBcIkBkZWNvaGVyZS9jb2RleC10eXBlb3JtXCI7XG5pbXBvcnQgeyBVc2VyRW50aXR5IH0gZnJvbSBcIi4uL2VudGl0aWVzL3VzZXIuZW50aXR5LmpzXCI7XG5cbkBpbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVc2VyRW50aXR5UmVwb3NpdG9yeSBleHRlbmRzIFR5cGVPcm1SZXBvc2l0b3J5PFVzZXJFbnRpdHk+IHtcblxcdHB1YmxpYyBjb25zdHJ1Y3RvcihAaW5qZWN0VW5pdE9mV29yaygpIHVuaXRPZldvcms6IFR5cGVPcm1Vbml0T2ZXb3JrKSB7XG5cXHRcXHRzdXBlcih1bml0T2ZXb3JrLCBVc2VyRW50aXR5KTtcblxcdH1cblxuXFx0cHVibGljIGZpbmRCeVN1YihzdWI6IHN0cmluZyk6IFByb21pc2U8VXNlckVudGl0eSB8IG51bGw+IHtcblxcdFxcdHJldHVybiB0aGlzLmZpcnN0T3JEZWZhdWx0KHsgd2hlcmU6IHsgc3ViIH0gfSk7XG5cXHR9XG59XG5gO1xuXG5jb25zdCBVU0VSX1NFUlZJQ0VfVFMgPSBgaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBQcmluY2lwYWwgfSBmcm9tIFwiQGRlY29oZXJlL2NvcnRleFwiO1xuaW1wb3J0IHsgVXNlckVudGl0eSB9IGZyb20gXCIuLi9lbnRpdGllcy91c2VyLmVudGl0eS5qc1wiO1xuaW1wb3J0IHsgVXNlckVudGl0eVJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vcmVwb3NpdG9yaWVzL3VzZXIucmVwb3NpdG9yeS5qc1wiO1xuXG5mdW5jdGlvbiBjbGFpbVN0cmluZyhwcmluY2lwYWw6IFByaW5jaXBhbCB8IHVuZGVmaW5lZCwga2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXFx0Y29uc3QgdmFsdWUgPSBwcmluY2lwYWw/LltrZXldO1xuXFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZS5sZW5ndGggPiAwID8gdmFsdWUgOiB1bmRlZmluZWQ7XG59XG5cbkBpbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZSB7XG5cXHRwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB1c2VyczogVXNlckVudGl0eVJlcG9zaXRvcnkpIHt9XG5cblxcdC8qKlxuXFx0ICogVXBzZXJ0IGEgbG9jYWwgcHJvZmlsZSBrZXllZCBieSBKV1QgXFxgc3ViXFxgLlxuXFx0ICogUHJvZmlsZSBmaWVsZHMgZnJvbSB0aGUgdG9rZW4gZmlsbCBnYXBzOyBzZWVkZWQgcm93cyBrZWVwIGRpc3BsYXlOYW1lL2VtYWlsL3JvbGVzLlxuXFx0ICovXG5cXHRwdWJsaWMgYXN5bmMgZW5zdXJlRnJvbVByaW5jaXBhbChwcmluY2lwYWw6IFByaW5jaXBhbCB8IHVuZGVmaW5lZCk6IFByb21pc2U8VXNlckVudGl0eT4ge1xuXFx0XFx0Y29uc3Qgc3ViID0gcHJpbmNpcGFsPy5zdWI7XG5cXHRcXHRpZiAoIXN1Yikge1xuXFx0XFx0XFx0dGhyb3cgbmV3IEVycm9yKFwiQXV0aGVudGljYXRlZCByZXF1ZXN0IGlzIG1pc3NpbmcgcHJpbmNpcGFsLnN1YlwiKTtcblxcdFxcdH1cblxuXFx0XFx0Y29uc3QgZW1haWwgPVxuXFx0XFx0XFx0Y2xhaW1TdHJpbmcocHJpbmNpcGFsLCBcImVtYWlsXCIpID8/IGNsYWltU3RyaW5nKHByaW5jaXBhbCwgXCJwcmVmZXJyZWRfdXNlcm5hbWVcIik7XG5cXHRcXHRjb25zdCBkaXNwbGF5RnJvbVRva2VuID1cblxcdFxcdFxcdGNsYWltU3RyaW5nKHByaW5jaXBhbCwgXCJuYW1lXCIpID8/XG5cXHRcXHRcXHRjbGFpbVN0cmluZyhwcmluY2lwYWwsIFwibmlja25hbWVcIikgPz9cblxcdFxcdFxcdGVtYWlsO1xuXG5cXHRcXHRjb25zdCBleGlzdGluZyA9IGF3YWl0IHRoaXMudXNlcnMuZmluZEJ5U3ViKHN1Yik7XG5cXHRcXHRpZiAoZXhpc3RpbmcpIHtcblxcdFxcdFxcdGxldCBkaXJ0eSA9IGZhbHNlO1xuXFx0XFx0XFx0aWYgKCFleGlzdGluZy5lbWFpbCAmJiBlbWFpbCkge1xuXFx0XFx0XFx0XFx0ZXhpc3RpbmcuZW1haWwgPSBlbWFpbDtcblxcdFxcdFxcdFxcdGRpcnR5ID0gdHJ1ZTtcblxcdFxcdFxcdH1cblxcdFxcdFxcdGlmIChleGlzdGluZy5kaXNwbGF5TmFtZSA9PT0gZXhpc3Rpbmcuc3ViICYmIGRpc3BsYXlGcm9tVG9rZW4pIHtcblxcdFxcdFxcdFxcdGV4aXN0aW5nLmRpc3BsYXlOYW1lID0gZGlzcGxheUZyb21Ub2tlbjtcblxcdFxcdFxcdFxcdGRpcnR5ID0gdHJ1ZTtcblxcdFxcdFxcdH1cblxcdFxcdFxcdHJldHVybiBkaXJ0eSA/IHRoaXMudXNlcnMuc2F2ZShleGlzdGluZykgOiBleGlzdGluZztcblxcdFxcdH1cblxuXFx0XFx0Y29uc3QgY3JlYXRlZCA9IG5ldyBVc2VyRW50aXR5KCk7XG5cXHRcXHRjcmVhdGVkLnN1YiA9IHN1YjtcblxcdFxcdGNyZWF0ZWQuZW1haWwgPSBlbWFpbCA/PyBudWxsO1xuXFx0XFx0Y3JlYXRlZC5kaXNwbGF5TmFtZSA9IGRpc3BsYXlGcm9tVG9rZW4gPz8gc3ViO1xuXFx0XFx0Y3JlYXRlZC5yb2xlcyA9IEFycmF5LmlzQXJyYXkocHJpbmNpcGFsLnJvbGVzKVxuXFx0XFx0XFx0PyBwcmluY2lwYWwucm9sZXMuZmlsdGVyKChyKTogciBpcyBzdHJpbmcgPT4gdHlwZW9mIHIgPT09IFwic3RyaW5nXCIpXG5cXHRcXHRcXHQ6IFtdO1xuXFx0XFx0cmV0dXJuIHRoaXMudXNlcnMuc2F2ZShjcmVhdGVkKTtcblxcdH1cbn1cbmA7XG5cbmNvbnN0IEFCSUxJVFlfRkFDVE9SWV9UUyA9IGBpbXBvcnQgeyBBYmlsaXR5QnVpbGRlciwgY3JlYXRlTW9uZ29BYmlsaXR5IH0gZnJvbSBcIkBjYXNsL2FiaWxpdHlcIjtcbmltcG9ydCB0eXBlIHsgUHJpbmNpcGFsIH0gZnJvbSBcIkBkZWNvaGVyZS9jb3J0ZXhcIjtcblxuLyoqIFJvb3Qgcm9sZSDigJQgZXhwYW5kcyB0byBDQVNMIFxcYG1hbmFnZVxcYC9cXGBhbGxcXGAgKGNvdmVycyBldmVyeSBmdXR1cmUgYWJpbGl0eSkuICovXG5leHBvcnQgY29uc3QgQURNSU5fUk9MRSA9IFwiYWRtaW5cIjtcblxuLyoqXG4gKiBSb2xlcyBhcmUgY29sbGVjdGlvbnMgb2YgYWJpbGl0aWVzLiBBZG1pbiBpcyBhIHdpbGRjYXJkLCBub3QgYW4gZW51bWVyYXRlZCBsaXN0LlxuICogTm9uLWFkbWluIHByaW5jaXBhbHMga2VlcCBBdXRoMCBzY29wZSAvIHBlcm1pc3Npb24g4oaSIGFiaWxpdHkgbWFwcGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFiaWxpdHlGYWN0b3J5KHByaW5jaXBhbDogUHJpbmNpcGFsKSB7XG5cXHRjb25zdCB7IGNhbiwgYnVpbGQgfSA9IG5ldyBBYmlsaXR5QnVpbGRlcihjcmVhdGVNb25nb0FiaWxpdHkpO1xuXFx0aWYgKHByaW5jaXBhbC5yb2xlcz8uaW5jbHVkZXMoQURNSU5fUk9MRSkpIHtcblxcdFxcdGNhbihcIm1hbmFnZVwiLCBcImFsbFwiKTtcblxcdFxcdHJldHVybiBidWlsZCgpO1xuXFx0fVxuXFx0Zm9yIChjb25zdCBzY29wZSBvZiBwcmluY2lwYWwuc2NvcGVzID8/IFtdKSB7XG5cXHRcXHRjb25zdCBbYWN0aW9uLCBzdWJqZWN0XSA9IHNjb3BlLnNwbGl0KFwiOlwiKTtcblxcdFxcdGlmIChhY3Rpb24gJiYgc3ViamVjdCkgY2FuKGFjdGlvbiwgc3ViamVjdCk7XG5cXHR9XG5cXHRyZXR1cm4gYnVpbGQoKTtcbn1cblxuLyoqXG4gKiBNYXAgSldUIHBheWxvYWQg4oaSIFByaW5jaXBhbC5cbiAqXG4gKiAtIFxcYHJvbGVzXFxgIGNvbWUgZnJvbSB0aGUgSWRQIChBdXRoMCBSQkFDIC8gQWN0aW9uIGZyb20gYXBwX21ldGFkYXRhKS4gQWRtaW5zIGFyZVxuICogICBhc3NpZ25lZCBpbiBBdXRoMCDigJQgbm8gc2VydmVyIGVudiBjaGFuZ2UgcmVxdWlyZWQgZm9yIGFkZGl0aW9uYWwgYWRtaW5zLlxuICogLSBcXGBBVVRIMF9BRE1JTl9VU0VSX1NVQlxcYCBpcyBhbiBvcHRpb25hbCBib290c3RyYXAgc28gdGhlIHNlZWRlZCBhZG1pbiB3b3Jrc1xuICogICBiZWZvcmUvd2l0aG91dCByb2xlcyBvbiB0aGUgYWNjZXNzIHRva2VuLlxuICogLSBBUEkgcGVybWlzc2lvbnMgYXJlIHRha2VuIGZyb20gXFxgc2NvcGVcXGAgYW5kIGZyb20gQXV0aDAncyBcXGBwZXJtaXNzaW9uc1xcYCBjbGFpbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcFByaW5jaXBhbChwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFByaW5jaXBhbCB7XG5cXHRjb25zdCBzdWIgPSB0eXBlb2YgcGF5bG9hZC5zdWIgPT09IFwic3RyaW5nXCIgPyBwYXlsb2FkLnN1YiA6IFwiXCI7XG5cXHRjb25zdCBmcm9tU2NvcGVDbGFpbSA9XG5cXHRcXHR0eXBlb2YgcGF5bG9hZC5zY29wZSA9PT0gXCJzdHJpbmdcIlxuXFx0XFx0XFx0PyBwYXlsb2FkLnNjb3BlLnNwbGl0KFwiIFwiKS5maWx0ZXIoQm9vbGVhbilcblxcdFxcdFxcdDogQXJyYXkuaXNBcnJheShwYXlsb2FkLnNjb3BlcylcblxcdFxcdFxcdFxcdD8gKHBheWxvYWQuc2NvcGVzIGFzIHVua25vd25bXSkuZmlsdGVyKChzKTogcyBpcyBzdHJpbmcgPT4gdHlwZW9mIHMgPT09IFwic3RyaW5nXCIpXG5cXHRcXHRcXHRcXHQ6IFtdO1xuXFx0Y29uc3QgZnJvbVBlcm1pc3Npb25zID0gQXJyYXkuaXNBcnJheShwYXlsb2FkLnBlcm1pc3Npb25zKVxuXFx0XFx0PyAocGF5bG9hZC5wZXJtaXNzaW9ucyBhcyB1bmtub3duW10pLmZpbHRlcigocyk6IHMgaXMgc3RyaW5nID0+IHR5cGVvZiBzID09PSBcInN0cmluZ1wiKVxuXFx0XFx0OiBbXTtcblxcdGNvbnN0IG1lcmdlZCA9IFsuLi5uZXcgU2V0KFsuLi5mcm9tU2NvcGVDbGFpbSwgLi4uZnJvbVBlcm1pc3Npb25zXSldO1xuXFx0Y29uc3Qgc2NvcGVzID0gbWVyZ2VkLmxlbmd0aCA+IDAgPyBtZXJnZWQgOiB1bmRlZmluZWQ7XG5cXHRjb25zdCBmcm9tVG9rZW4gPSBBcnJheS5pc0FycmF5KHBheWxvYWQucm9sZXMpXG5cXHRcXHQ/IChwYXlsb2FkLnJvbGVzIGFzIHVua25vd25bXSkuZmlsdGVyKChyKTogciBpcyBzdHJpbmcgPT4gdHlwZW9mIHIgPT09IFwic3RyaW5nXCIpXG5cXHRcXHQ6IFtdO1xuXFx0Y29uc3Qgcm9sZXMgPVxuXFx0XFx0c3ViICYmIHN1YiA9PT0gcHJvY2Vzcy5lbnYuQVVUSDBfQURNSU5fVVNFUl9TVUJcblxcdFxcdFxcdD8gWy4uLm5ldyBTZXQoW0FETUlOX1JPTEUsIC4uLmZyb21Ub2tlbl0pXVxuXFx0XFx0XFx0OiBmcm9tVG9rZW4ubGVuZ3RoID4gMFxuXFx0XFx0XFx0XFx0PyBmcm9tVG9rZW5cblxcdFxcdFxcdFxcdDogdW5kZWZpbmVkO1xuXFx0cmV0dXJuIHsgLi4ucGF5bG9hZCwgc3ViLCByb2xlcywgc2NvcGVzIH07XG59XG5gO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRPcHRpb25zKFxuXHR3b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkLFxuXHRjbGlPcHRpb25zOiBQYXJ0aWFsPEF1dGhPcHRpb25zPixcbik6IFByb21pc2U8UGFydGlhbDxBdXRoT3B0aW9ucz4+IHtcblx0aWYgKGNsaU9wdGlvbnMuYXV0aFByb3ZpZGVyID09PSBcImF1dGgwXCIgJiYgIWNsaU9wdGlvbnMuaXNzdWVyQmFzZVVybCkge1xuXHRcdHJldHVybiBnZXRBdXRoME9wdGlvbnMod29ya3NwYWNlLCBjbGlPcHRpb25zKTtcblx0fVxuXHRpZiAoY2xpT3B0aW9ucy5hdXRoUHJvdmlkZXIgIT0gbnVsbCkgcmV0dXJuIHt9O1xuXG5cdGNvbnN0IGNob2ljZXMgPSBbeyBsYWJlbDogXCJub25lXCIgYXMgY29uc3QgfSwgeyBsYWJlbDogXCJhdXRoMFwiIGFzIGNvbnN0IH1dO1xuXHRjb25zdCBzZWxlY3RlZCA9IGF3YWl0IHBpY2soXCJcXG4gIEF1dGggcHJvdmlkZXI6IFwiLCBjaG9pY2VzLCAoYykgPT4gYy5sYWJlbCk7XG5cdGNvbnN0IHByb3ZpZGVyID0gc2VsZWN0ZWQ/LmxhYmVsID8/IFwibm9uZVwiO1xuXG5cdGlmIChwcm92aWRlciAhPT0gXCJhdXRoMFwiKSByZXR1cm4geyBhdXRoUHJvdmlkZXI6IFwibm9uZVwiIH07XG5cblx0cmV0dXJuIGdldEF1dGgwT3B0aW9ucyh3b3Jrc3BhY2UsIGNsaU9wdGlvbnMpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBdXRoME9wdGlvbnMoXG5cdHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsXG5cdGNsaU9wdGlvbnM6IFBhcnRpYWw8QXV0aE9wdGlvbnM+LFxuKTogUHJvbWlzZTxQYXJ0aWFsPEF1dGhPcHRpb25zPj4ge1xuXHRpZiAoIWF1dGgwQ2xpLmlzSW5zdGFsbGVkKCkpIHtcblx0XHRjb25zb2xlLmVycm9yKFxuXHRcdFx0XCJcXG4gIFRoZSBBdXRoMCBDTEkgaXMgcmVxdWlyZWQgZm9yIGF1dG9tYXRlZCBzZXR1cC5cXG5cIiArXG5cdFx0XHRcdFwiICBJbnN0YWxsOiBicmV3IGluc3RhbGwgYXV0aDAvYXV0aDAtY2xpL2F1dGgwXFxuXCIgK1xuXHRcdFx0XHRcIiAgT3IgdmlzaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hdXRoMC9hdXRoMC1jbGlcXG5cIixcblx0XHQpO1xuXHRcdHByb2Nlc3MuZXhpdCgxKTtcblx0fVxuXG5cdHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiXFxuICBDaGVja2luZyBBdXRoMCBjcmVkZW50aWFscy4uLlwiKTtcblx0bGV0IHRlbmFudHMgPSBhdXRoMENsaS5saXN0VGVuYW50cygpO1xuXHRpZiAodGVuYW50cy5sZW5ndGggPT09IDApIHtcblx0XHRwcm9jZXNzLnN0ZG91dC53cml0ZShcIiBub3QgbG9nZ2VkIGluLlxcblwiKTtcblx0XHRjb25zb2xlLmxvZyhcIiAgTG9nZ2luZyBpbiB0byBBdXRoMCAoeW91ciBicm93c2VyIHdpbGwgb3BlbikuLi5cIik7XG5cdFx0aWYgKCFhdXRoMENsaS5sb2dpbigpKSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKFwiXFxuICBBdXRoMCBsb2dpbiBmYWlsZWQuXCIpO1xuXHRcdFx0cHJvY2Vzcy5leGl0KDEpO1xuXHRcdH1cblx0XHR0ZW5hbnRzID0gYXV0aDBDbGkubGlzdFRlbmFudHMoKTtcblx0fVxuXG5cdHRyeSB7XG5cdFx0YXV0aDBDbGkubGlzdEFwaXMoKTtcblx0XHRwcm9jZXNzLnN0ZG91dC53cml0ZShcIiBvay5cXG5cIik7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdGlmIChlcnIgaW5zdGFuY2VvZiBhdXRoMENsaS5BdXRoMEF1dGhFcnJvcikge1xuXHRcdFx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoXCIgdG9rZW4gZXhwaXJlZC5cXG5cIik7XG5cdFx0XHRjb25zb2xlLmxvZyhcIiAgUmUtYXV0aGVudGljYXRpbmcgKHlvdXIgYnJvd3NlciB3aWxsIG9wZW4pLi4uXCIpO1xuXHRcdFx0aWYgKCFhdXRoMENsaS5sb2dpbigpKSB7XG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCJcXG4gIEF1dGgwIGxvZ2luIGZhaWxlZC5cIik7XG5cdFx0XHRcdHByb2Nlc3MuZXhpdCgxKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRjb25zdCBhY3RpdmUgPSB0ZW5hbnRzLmZpbmQoKHQpID0+IHQuYWN0aXZlKSA/PyB0ZW5hbnRzWzBdO1xuXHRjb25zdCBpc3N1ZXJCYXNlVXJsID0gYGh0dHBzOi8vJHthY3RpdmUubmFtZX1gO1xuXHRjb25zb2xlLmxvZyhgXFxuICDinJMgQXV0aDAgdGVuYW50OiAke2lzc3VlckJhc2VVcmx9YCk7XG5cblx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoXCJcXG4gIEZldGNoaW5nIEF1dGgwIEFQSXMuLi5cIik7XG5cdGNvbnN0IHVzZXJBcGlzID0gYXV0aDBDbGkubGlzdEFwaXMoKS5maWx0ZXIoKGEpID0+ICFhLm5hbWUuaW5jbHVkZXMoXCJNYW5hZ2VtZW50IEFQSVwiKSk7XG5cdHByb2Nlc3Muc3Rkb3V0LndyaXRlKGAgZm91bmQgJHt1c2VyQXBpcy5sZW5ndGh9LlxcbmApO1xuXG5cdHR5cGUgQXBpQ2hvaWNlID0geyBsYWJlbDogc3RyaW5nOyBleGlzdGluZzogc3RyaW5nIHwgbnVsbCB9O1xuXHRjb25zdCBwcm9qZWN0TmFtZSA9IHdvcmtzcGFjZS5uYW1lO1xuXHRjb25zdCBhcGlDaG9pY2VzOiBBcGlDaG9pY2VbXSA9IFtcblx0XHR7IGxhYmVsOiBgPG5ldz4gaHR0cHM6Ly9hcGkuJHtwcm9qZWN0TmFtZX1gLCBleGlzdGluZzogbnVsbCB9LFxuXHRcdC4uLnVzZXJBcGlzLm1hcCgoYSkgPT4gKHsgbGFiZWw6IGAke2EubmFtZX0g4oCUICR7YS5pZGVudGlmaWVyfWAsIGV4aXN0aW5nOiBhLmlkZW50aWZpZXIgfSkpLFxuXHRdO1xuXG5cdGNvbnN0IGFwaVNlbGVjdGVkID0gYXdhaXQgcGljayhcIlxcbiAgU2VsZWN0IEF1dGgwIEFQSTogXCIsIGFwaUNob2ljZXMsIChjKSA9PiBjLmxhYmVsKTtcblxuXHRsZXQgYXVkaWVuY2U6IHN0cmluZztcblx0aWYgKCFhcGlTZWxlY3RlZCB8fCBhcGlTZWxlY3RlZC5leGlzdGluZyA9PT0gbnVsbCkge1xuXHRcdGNvbnN0IGRlZmF1bHRJZCA9IGBodHRwczovL2FwaS4ke3Byb2plY3ROYW1lfWA7XG5cdFx0YXVkaWVuY2UgPSBhd2FpdCBhc2soYCAgQVBJIElkZW50aWZpZXIgWyR7ZGVmYXVsdElkfV06IGAsIGRlZmF1bHRJZCk7XG5cdFx0Y29uc29sZS5sb2coXCJcXG4gIENyZWF0aW5nIEF1dGgwIEFQSS4uLlwiKTtcblx0XHRhdWRpZW5jZSA9IGF1dGgwQ2xpLmNyZWF0ZUFwaShgJHtwcm9qZWN0TmFtZX0gQVBJYCwgYXVkaWVuY2UpLmlkZW50aWZpZXI7XG5cdFx0Y29uc29sZS5sb2coYCAgXFx1MjcxMyBBUEkgY3JlYXRlZDogJHthdWRpZW5jZX1gKTtcblx0fSBlbHNlIHtcblx0XHRhdWRpZW5jZSA9IGFwaVNlbGVjdGVkLmV4aXN0aW5nO1xuXHRcdGNvbnNvbGUubG9nKGAgIFxcdTI3MTMgU2VsZWN0ZWQ6ICR7YXVkaWVuY2V9YCk7XG5cdFx0dHJ5IHtcblx0XHRcdGF1dGgwQ2xpLnVwZGF0ZUFwaVNjb3BlcyhhdWRpZW5jZSk7XG5cdFx0XHRjb25zb2xlLmxvZyhgICBcXHUyNzEzIEFQSSBzY29wZXMgZW5zdXJlZCAoJHthdXRoMENsaS5IRUxMT19BUElfU0NPUEVTLmpvaW4oXCIsIFwiKX0pYCk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRjb25zb2xlLmVycm9yKFxuXHRcdFx0XHRcIiAg4pyXIEZhaWxlZCB0byB1cGRhdGUgQVBJIHNjb3BlcyDigJQgYWRkIEhlbGxvIHNjb3BlcyBpbiB0aGUgQXV0aDAgZGFzaGJvYXJkLlwiLFxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHRjb25zdCB3aXRoTG9jYWxVc2VycyA9IGNsaU9wdGlvbnMuZGF0YWJhc2VQcm92aWRlciA9PT0gXCJwb3N0Z3Jlcy90eXBlb3JtXCI7XG5cdGxldCBhZG1pblVzZXJuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdGxldCBhZG1pblBhc3N3b3JkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdGlmICh3aXRoTG9jYWxVc2Vycykge1xuXHRcdGFkbWluVXNlcm5hbWUgPVxuXHRcdFx0Y2xpT3B0aW9ucy5hZG1pblVzZXJuYW1lID8/IChhd2FpdCBhc2soXCJcXG4gIEFkbWluIHVzZXJuYW1lIFthZG1pbl06IFwiLCBcImFkbWluXCIpKTtcblx0XHRhZG1pblBhc3N3b3JkID0gY2xpT3B0aW9ucy5hZG1pblBhc3N3b3JkO1xuXHRcdGlmIChhZG1pblBhc3N3b3JkID09IG51bGwpIHtcblx0XHRcdGFkbWluUGFzc3dvcmQgPSBhd2FpdCBhc2soXCIgIEFkbWluIHBhc3N3b3JkIChsZWF2ZSBibGFuayB0byBnZW5lcmF0ZSk6IFwiKTtcblx0XHRcdGlmICghYWRtaW5QYXNzd29yZCkge1xuXHRcdFx0XHRhZG1pblBhc3N3b3JkID0gYXV0aDBDbGkuZ2VuZXJhdGVBZG1pblBhc3N3b3JkKCk7XG5cdFx0XHRcdGNvbnNvbGUubG9nKGAgIOKckyBHZW5lcmF0ZWQgYWRtaW4gcGFzc3dvcmQgKHdyaXR0ZW4gdG8gLmVudik6ICR7YWRtaW5QYXNzd29yZH1gKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdGF1dGhQcm92aWRlcjogXCJhdXRoMFwiLFxuXHRcdGlzc3VlckJhc2VVcmwsXG5cdFx0YXVkaWVuY2UsXG5cdFx0Li4uKHdpdGhMb2NhbFVzZXJzID8geyBhZG1pblVzZXJuYW1lLCBhZG1pblBhc3N3b3JkIH0gOiB7fSksXG5cdH07XG59XG5cbmZ1bmN0aW9uIGFkbWluRW1haWwod29ya3NwYWNlTmFtZTogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0aWYgKHVzZXJuYW1lLmluY2x1ZGVzKFwiQFwiKSkgcmV0dXJuIHVzZXJuYW1lO1xuXHRjb25zdCBzbHVnID0gd29ya3NwYWNlTmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05LV0vZywgXCItXCIpO1xuXHRyZXR1cm4gYCR7dXNlcm5hbWV9QCR7c2x1Z30uZXhhbXBsZS5jb21gO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVBdXRoMEFkbWluVXNlcihcblx0d29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCxcblx0b3B0aW9uczogQXV0aE9wdGlvbnMsXG5cdGF1dGhDb25maWc6IEF1dGhDb25maWdNb2RlbCxcbik6IHZvaWQge1xuXHRjb25zdCB1c2VybmFtZSA9IG9wdGlvbnMuYWRtaW5Vc2VybmFtZSA/PyBcImFkbWluXCI7XG5cdGNvbnN0IHBhc3N3b3JkID0gb3B0aW9ucy5hZG1pblBhc3N3b3JkO1xuXHRpZiAoIXBhc3N3b3JkKSByZXR1cm47XG5cblx0Y29uc3QgZW1haWwgPSBhZG1pbkVtYWlsKHdvcmtzcGFjZS5uYW1lLCB1c2VybmFtZSk7XG5cdHRyeSB7XG5cdFx0Y29uc3QgYWRtaW4gPSBhdXRoMENsaS5jcmVhdGVBZG1pbkRhdGFiYXNlVXNlcih7IGVtYWlsLCBwYXNzd29yZCwgdXNlcm5hbWUgfSk7XG5cdFx0YXV0aENvbmZpZy5zZXRBZG1pblVzZXIoe1xuXHRcdFx0c3ViOiBhZG1pbi51c2VyX2lkLFxuXHRcdFx0ZW1haWw6IGFkbWluLmVtYWlsLFxuXHRcdFx0cGFzc3dvcmQ6IGFkbWluLnBhc3N3b3JkLFxuXHRcdFx0dXNlcm5hbWU6IGFkbWluLnVzZXJuYW1lLFxuXHRcdH0pO1xuXHRcdHdvcmtzcGFjZVxuXHRcdFx0LmdldE1vZGVsPEVudkZpbGU+KFdFTExfS05PV05fRklMRVMuRU5WX0ZJTEUpXG5cdFx0XHQ/LmFkZEVudHJ5KFwiQVVUSDBfQURNSU5fVVNFUl9TVUJcIiwgYWRtaW4udXNlcl9pZClcblx0XHRcdC5hZGRFbnRyeShcIkFVVEgwX0FETUlOX1VTRVJfRU1BSUxcIiwgYWRtaW4uZW1haWwpXG5cdFx0XHQuYWRkRW50cnkoXCJBVVRIMF9BRE1JTl9VU0VSX1BBU1NXT1JEXCIsIGFkbWluLnBhc3N3b3JkKVxuXHRcdFx0LmFkZEVudHJ5KFwiQVVUSDBfQURNSU5fVVNFUk5BTUVcIiwgYWRtaW4udXNlcm5hbWUpO1xuXHRcdGNvbnNvbGUubG9nKGAgIOKckyBBdXRoMCBhZG1pbiB1c2VyIHJlYWR5OiAke2FkbWluLmVtYWlsfSAocm9sZTogJHtBRE1JTl9ST0xFfSlgKTtcblx0XHRjb25zb2xlLmxvZyhgICAgIExvZ2luIHdpdGggRU1BSUwgKG5vdCB1c2VybmFtZSk6ICR7YWRtaW4uZW1haWx9YCk7XG5cdFx0Y29uc29sZS5sb2coYCAgICBQYXNzd29yZDogc2VlIEFVVEgwX0FETUlOX1VTRVJfUEFTU1dPUkQgaW4gLmVudmApO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHRjb25zb2xlLmVycm9yKFxuXHRcdFx0YCAg4pyXIEZhaWxlZCB0byBlbnN1cmUgQXV0aDAgYWRtaW4gdXNlciAoJHtlbWFpbH0pOiAke2VyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBlcnJ9YCxcblx0XHQpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIHNjYWZmb2xkTG9jYWxVc2VyUHJvZmlsZSh3b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkKTogdm9pZCB7XG5cdHdvcmtzcGFjZVxuXHRcdC5nZXRNb2RlbDxQYWNrYWdlSnNvbj4oV0VMTF9LTk9XTl9GSUxFUy5QQUNLQUdFX0pTT04pXG5cdFx0Py5hZGREZXBlbmRlbmN5KFwiQGNhc2wvYWJpbGl0eVwiLCBcIl42LjguMVwiKTtcblx0d29ya3NwYWNlXG5cdFx0LmdldE1vZGVsPEFwaVBhY2thZ2VKc29uPihXRUxMX0tOT1dOX0ZJTEVTLkFQSV9QQUNLQUdFX0pTT04pXG5cdFx0Py5hZGREZXBlbmRlbmN5KFwiQGNhc2wvYWJpbGl0eVwiLCBcIl42LjguMVwiKTtcblxuXHRjb25zdCBtYWluID0gd29ya3NwYWNlLmdldE1vZGVsPE1haW5Tb3VyY2VGaWxlPihXRUxMX0tOT1dOX0ZJTEVTLk1BSU5fVFMpO1xuXHRtYWluXG5cdFx0Py5hZGRFbnRpdHkoeyBjbGFzc05hbWU6IFwiVXNlckVudGl0eVwiLCBpbXBvcnRQYXRoOiBcIi4vZW50aXRpZXMvdXNlci5lbnRpdHkuanNcIiB9KVxuXHRcdC5hZGRSZXBvc2l0b3J5KHtcblx0XHRcdGNsYXNzTmFtZTogXCJVc2VyRW50aXR5UmVwb3NpdG9yeVwiLFxuXHRcdFx0aW1wb3J0UGF0aDogXCIuL3JlcG9zaXRvcmllcy91c2VyLnJlcG9zaXRvcnkuanNcIixcblx0XHR9KVxuXHRcdC5hZGRTZXJ2aWNlKHtcblx0XHRcdGNsYXNzTmFtZTogXCJVc2VyU2VydmljZVwiLFxuXHRcdFx0aW1wb3J0UGF0aDogXCIuL3NlcnZpY2VzL3VzZXIuc2VydmljZS5qc1wiLFxuXHRcdFx0c2NvcGU6IFwicmVxdWVzdFwiLFxuXHRcdH0pXG5cdFx0LmFkZEltcG9ydChcImNyZWF0ZUFiaWxpdHlGYWN0b3J5XCIsIFwiLi9hdXRoL2FiaWxpdHkuZmFjdG9yeS5qc1wiKVxuXHRcdC5hZGRJbXBvcnQoXCJtYXBQcmluY2lwYWxcIiwgXCIuL2F1dGgvYWJpbGl0eS5mYWN0b3J5LmpzXCIpXG5cdFx0LnNldFR5cGVPcm1TZWVkKFxuXHRcdFx0W1xuXHRcdFx0XHRcImNvbnN0IHN1YiA9IHByb2Nlc3MuZW52LkFVVEgwX0FETUlOX1VTRVJfU1VCO1wiLFxuXHRcdFx0XHRcImlmICghc3ViKSByZXR1cm47XCIsXG5cdFx0XHRcdFwiY29uc3QgcmVwbyA9IGRhdGFTb3VyY2UuZ2V0UmVwb3NpdG9yeShVc2VyRW50aXR5KTtcIixcblx0XHRcdFx0XCJjb25zdCBleGlzdGluZyA9IGF3YWl0IHJlcG8uZmluZE9uZSh7IHdoZXJlOiB7IHN1YiB9IH0pO1wiLFxuXHRcdFx0XHRcImlmIChleGlzdGluZykgcmV0dXJuO1wiLFxuXHRcdFx0XHRcImF3YWl0IHJlcG8uc2F2ZShyZXBvLmNyZWF0ZSh7XCIsXG5cdFx0XHRcdFwiICBzdWIsXCIsXG5cdFx0XHRcdFwiICBlbWFpbDogcHJvY2Vzcy5lbnYuQVVUSDBfQURNSU5fVVNFUl9FTUFJTCA/PyBudWxsLFwiLFxuXHRcdFx0XHQnICBkaXNwbGF5TmFtZTogcHJvY2Vzcy5lbnYuQVVUSDBfQURNSU5fVVNFUk5BTUUgPz8gXCJhZG1pblwiLCcsXG5cdFx0XHRcdCcgIHJvbGVzOiBbXCJhZG1pblwiXSwnLFxuXHRcdFx0XHRcIn0pKTtcIixcblx0XHRcdF0uam9pbihcIiBcIiksXG5cdFx0KTtcblxuXHR3b3Jrc3BhY2UuZ2V0UHJvamVjdChXRUJBUElfUFJPSkVDVF9ESVIpPy5hZGRGaWxlKHtcblx0XHRmaWxlczogKCkgPT4gW1xuXHRcdFx0eyBmaWxlUGF0aDogXCJzcmMvZW50aXRpZXMvdXNlci5lbnRpdHkudHNcIiwgY29udGVudDogVVNFUl9FTlRJVFlfVFMgfSxcblx0XHRcdHsgZmlsZVBhdGg6IFwic3JjL3JlcG9zaXRvcmllcy91c2VyLnJlcG9zaXRvcnkudHNcIiwgY29udGVudDogVVNFUl9SRVBPU0lUT1JZX1RTIH0sXG5cdFx0XHR7IGZpbGVQYXRoOiBcInNyYy9zZXJ2aWNlcy91c2VyLnNlcnZpY2UudHNcIiwgY29udGVudDogVVNFUl9TRVJWSUNFX1RTIH0sXG5cdFx0XHR7IGZpbGVQYXRoOiBcInNyYy9hdXRoL2FiaWxpdHkuZmFjdG9yeS50c1wiLCBjb250ZW50OiBBQklMSVRZX0ZBQ1RPUllfVFMgfSxcblx0XHRdLFxuXHR9KTtcblxuXHRmb3IgKGNvbnN0IGNvbnRyb2xsZXIgb2Ygd29ya3NwYWNlLmdldE1vZGVscyhDb250cm9sbGVyU291cmNlRmlsZSkpIHtcblx0XHRjb250cm9sbGVyXG5cdFx0XHQuYWRkSW1wb3J0KFwiVXNlclNlcnZpY2VcIiwgXCIuLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UuanNcIilcblx0XHRcdC5hZGRDb25zdHJ1Y3RvclBhcmFtKFwicHJpdmF0ZSByZWFkb25seSB1c2VyczogVXNlclNlcnZpY2VcIik7XG5cdFx0Y29udHJvbGxlci5nZXRNZXRob2QoXCJnZXRPbmVcIikuc2V0QXN5bmModHJ1ZSkuc2V0Qm9keShbXG5cdFx0XHRcImNvbnN0IHVzZXIgPSBhd2FpdCB0aGlzLnVzZXJzLmVuc3VyZUZyb21QcmluY2lwYWwodGhpcy5wcmluY2lwYWxQcm92aWRlci5jdXJyZW50UHJpbmNpcGFsKTtcIixcblx0XHRcdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9UZW1wbGF0ZUN1cmx5SW5TdHJpbmc6IHRlbXBsYXRlIGxpdGVyYWwgaW4gZ2VuZXJhdGVkIGNvZGVcblx0XHRcdFwicmV0dXJuIHsgaWQsIG1lc3NhZ2U6IGBIZWxsbyAke3VzZXIuZGlzcGxheU5hbWV9IWAsIHVzZXJuYW1lOiB1c2VyLmRpc3BsYXlOYW1lIH07XCIsXG5cdFx0XSk7XG5cdH1cbn1cblxuZnVuY3Rpb24gc2NhZmZvbGQod29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCwgb3B0aW9uczogQXV0aE9wdGlvbnMpOiB2b2lkIHtcblx0aWYgKG9wdGlvbnMuYXV0aFByb3ZpZGVyICE9PSBcImF1dGgwXCIpIHJldHVybjtcblxuXHRjb25zdCByZXNvdXJjZSA9IFwiSGVsbG9cIjtcblx0Y29uc3Qgd2l0aExvY2FsVXNlcnMgPSBvcHRpb25zLmRhdGFiYXNlUHJvdmlkZXIgPT09IFwicG9zdGdyZXMvdHlwZW9ybVwiO1xuXG5cdGZvciAoY29uc3QgY29udHJvbGxlciBvZiB3b3Jrc3BhY2UuZ2V0TW9kZWxzKENvbnRyb2xsZXJTb3VyY2VGaWxlKSkge1xuXHRcdGNvbnRyb2xsZXJcblx0XHRcdC5hZGREZWNvcmF0b3IoYEBBdXRob3JpemUoXCJyZWFkXCIsIFwiJHtyZXNvdXJjZX1cIilgKVxuXHRcdFx0LmFkZENvcnRleEltcG9ydChcIkFsbG93QW5vbnltb3VzXCIpXG5cdFx0XHQuYWRkQ29ydGV4SW1wb3J0KFwiQXV0aG9yaXplXCIpXG5cdFx0XHQuYWRkQ29ydGV4SW1wb3J0KFwiSVByaW5jaXBhbFByb3ZpZGVyVG9rZW5cIilcblx0XHRcdC5hZGRDb3J0ZXhJbXBvcnQoXCJJUHJpbmNpcGFsUHJvdmlkZXJcIiwgdHJ1ZSlcblx0XHRcdC5hZGRJbXBvcnQoXCJpbmplY3RcIiwgXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiKVxuXHRcdFx0LmFkZENvbnN0cnVjdG9yUGFyYW0oXG5cdFx0XHRcdGBAaW5qZWN0KElQcmluY2lwYWxQcm92aWRlclRva2VuKSBwcml2YXRlIHJlYWRvbmx5IHByaW5jaXBhbFByb3ZpZGVyOiBJUHJpbmNpcGFsUHJvdmlkZXJgLFxuXHRcdFx0KTtcblx0XHRjb250cm9sbGVyLmdldE1ldGhvZChcImdldEFsbFwiKS5hZGREZWNvcmF0b3IoXCJAQWxsb3dBbm9ueW1vdXMoKVwiKTtcblx0XHRpZiAoIXdpdGhMb2NhbFVzZXJzKSB7XG5cdFx0XHRjb250cm9sbGVyLmdldE1ldGhvZChcImdldE9uZVwiKS5zZXRCb2R5KFtcblx0XHRcdFx0XCJjb25zdCBwcmluY2lwYWwgPSB0aGlzLnByaW5jaXBhbFByb3ZpZGVyLmN1cnJlbnRQcmluY2lwYWw7XCIsXG5cdFx0XHRcdFwiY29uc3QgdXNlcm5hbWUgPVwiLFxuXHRcdFx0XHQnXFx0KHR5cGVvZiBwcmluY2lwYWw/Lm5hbWUgPT09IFwic3RyaW5nXCIgJiYgcHJpbmNpcGFsLm5hbWUpIHx8Jyxcblx0XHRcdFx0J1xcdCh0eXBlb2YgcHJpbmNpcGFsPy5uaWNrbmFtZSA9PT0gXCJzdHJpbmdcIiAmJiBwcmluY2lwYWwubmlja25hbWUpIHx8Jyxcblx0XHRcdFx0J1xcdCh0eXBlb2YgcHJpbmNpcGFsPy5lbWFpbCA9PT0gXCJzdHJpbmdcIiAmJiBwcmluY2lwYWwuZW1haWwpIHx8Jyxcblx0XHRcdFx0J1xcdCh0eXBlb2YgcHJpbmNpcGFsPy5wcmVmZXJyZWRfdXNlcm5hbWUgPT09IFwic3RyaW5nXCIgJiYgcHJpbmNpcGFsLnByZWZlcnJlZF91c2VybmFtZSkgfHwnLFxuXHRcdFx0XHRcIlxcdHByaW5jaXBhbD8uc3ViIHx8XCIsXG5cdFx0XHRcdCdcXHRcInVua25vd25cIjsnLFxuXHRcdFx0XHQvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vVGVtcGxhdGVDdXJseUluU3RyaW5nOiB0ZW1wbGF0ZSBsaXRlcmFsIGluIGdlbmVyYXRlZCBjb2RlXG5cdFx0XHRcdFwicmV0dXJuIHsgaWQsIG1lc3NhZ2U6IGBIZWxsbyAke3VzZXJuYW1lfSFgLCB1c2VybmFtZSB9O1wiLFxuXHRcdFx0XSk7XG5cdFx0fVxuXHRcdGNvbnRyb2xsZXIuZ2V0TWV0aG9kKFwiY3JlYXRlXCIpLmFkZERlY29yYXRvcihgQEF1dGhvcml6ZShcImNyZWF0ZVwiLCBcIiR7cmVzb3VyY2V9XCIpYCk7XG5cdFx0Y29udHJvbGxlci5nZXRNZXRob2QoXCJ1cGRhdGVcIikuYWRkRGVjb3JhdG9yKGBAQXV0aG9yaXplKFwidXBkYXRlXCIsIFwiJHtyZXNvdXJjZX1cIilgKTtcblx0XHRjb250cm9sbGVyLmdldE1ldGhvZChcInJlbW92ZVwiKS5hZGREZWNvcmF0b3IoYEBBdXRob3JpemUoXCJkZWxldGVcIiwgXCIke3Jlc291cmNlfVwiKWApO1xuXHR9XG5cblx0Y29uc3QgbWFpbiA9IHdvcmtzcGFjZS5nZXRNb2RlbDxNYWluU291cmNlRmlsZT4oV0VMTF9LTk9XTl9GSUxFUy5NQUlOX1RTKTtcblx0bWFpbj8uYWRkU2lkZUVmZmVjdEltcG9ydChcIkBkZWNvaGVyZS9jb3J0ZXgvYXV0aFwiKTtcblxuXHRpZiAod2l0aExvY2FsVXNlcnMpIHtcblx0XHRzY2FmZm9sZExvY2FsVXNlclByb2ZpbGUod29ya3NwYWNlKTtcblx0XHRtYWluPy5hZGRCdWlsZGVyQ2FsbChcIi53aXRoQXV0aChjcmVhdGVBYmlsaXR5RmFjdG9yeSwgeyBwcmluY2lwYWxNYXBwZXI6IG1hcFByaW5jaXBhbCB9KVwiKTtcblx0fSBlbHNlIHtcblx0XHRtYWluPy5hZGRCdWlsZGVyQ2FsbChcIi53aXRoQXV0aCgpXCIpO1xuXHR9XG5cblx0Ly8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub1RlbXBsYXRlQ3VybHlJblN0cmluZzogaW50ZW50aW9uYWwgWUFNTCBlbnYtdmFyIHBsYWNlaG9sZGVyc1xuXHRjb25zdCBpc3N1ZXJQbGFjZWhvbGRlciA9IFwiJHtBVVRIMF9JU1NVRVJfQkFTRV9VUkx9XCI7XG5cdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9UZW1wbGF0ZUN1cmx5SW5TdHJpbmc6IGludGVudGlvbmFsIFlBTUwgZW52LXZhciBwbGFjZWhvbGRlcnNcblx0Y29uc3QgYXVkUGxhY2Vob2xkZXIgPSBcIiR7QVVUSDBfQVVESUVOQ0V9XCI7XG5cblx0Y29uc3QgY29uZmlnU2VjdGlvbiA9IGBhdXRoOlxcbiAgZGlzY292ZXJ5VXJsOiAke2lzc3VlclBsYWNlaG9sZGVyfVxcbiAgYXVkaWVuY2U6ICR7YXVkUGxhY2Vob2xkZXJ9XFxuYDtcblxuXHR3b3Jrc3BhY2UuZ2V0TW9kZWw8Q29uZmlnWWFtbD4oV0VMTF9LTk9XTl9GSUxFUy5DT05GSUdfWUFNTCk/LmFkZFNlY3Rpb24oY29uZmlnU2VjdGlvbik7XG5cblx0d29ya3NwYWNlXG5cdFx0LmdldE1vZGVsPEVudkZpbGU+KFdFTExfS05PV05fRklMRVMuRU5WX0ZJTEUpXG5cdFx0Py5hZGRFbnRyeShcIkFVVEgwX0lTU1VFUl9CQVNFX1VSTFwiLCBvcHRpb25zLmlzc3VlckJhc2VVcmwgPz8gXCJcIilcblx0XHQuYWRkRW50cnkoXCJBVVRIMF9BVURJRU5DRVwiLCBvcHRpb25zLmF1ZGllbmNlID8/IFwiXCIpO1xuXG5cdGNvbnN0IGF1dGhDb25maWcgPSBuZXcgQXV0aENvbmZpZ01vZGVsKHtcblx0XHRpc3N1ZXJCYXNlVXJsOiBvcHRpb25zLmlzc3VlckJhc2VVcmwgPz8gXCJcIixcblx0XHRhdWRpZW5jZTogb3B0aW9ucy5hdWRpZW5jZSA/PyBcIlwiLFxuXHR9KTtcblx0d29ya3NwYWNlLmFkZE1vZGVsKGF1dGhDb25maWcpO1xuXG5cdGlmICh3aXRoTG9jYWxVc2VycyAmJiBvcHRpb25zLmFkbWluUGFzc3dvcmQpIHtcblx0XHRjcmVhdGVBdXRoMEFkbWluVXNlcih3b3Jrc3BhY2UsIG9wdGlvbnMsIGF1dGhDb25maWcpO1xuXHR9XG59XG5cbmV4cG9ydCBjb25zdCBBdXRoRmVhdHVyZTogRmVhdHVyZTxBdXRoT3B0aW9ucz4gPSB7IGdldE9wdGlvbnMsIHNjYWZmb2xkIH07XG4iXSwibmFtZXMiOlsiQXV0aEZlYXR1cmUiLCJBRE1JTl9ST0xFIiwiVVNFUl9FTlRJVFlfVFMiLCJVU0VSX1JFUE9TSVRPUllfVFMiLCJVU0VSX1NFUlZJQ0VfVFMiLCJBQklMSVRZX0ZBQ1RPUllfVFMiLCJnZXRPcHRpb25zIiwid29ya3NwYWNlIiwiY2xpT3B0aW9ucyIsImF1dGhQcm92aWRlciIsImlzc3VlckJhc2VVcmwiLCJnZXRBdXRoME9wdGlvbnMiLCJjaG9pY2VzIiwibGFiZWwiLCJzZWxlY3RlZCIsInBpY2siLCJjIiwicHJvdmlkZXIiLCJhdXRoMENsaSIsImlzSW5zdGFsbGVkIiwiY29uc29sZSIsImVycm9yIiwicHJvY2VzcyIsImV4aXQiLCJzdGRvdXQiLCJ3cml0ZSIsInRlbmFudHMiLCJsaXN0VGVuYW50cyIsImxlbmd0aCIsImxvZyIsImxvZ2luIiwibGlzdEFwaXMiLCJlcnIiLCJBdXRoMEF1dGhFcnJvciIsImFjdGl2ZSIsImZpbmQiLCJ0IiwibmFtZSIsInVzZXJBcGlzIiwiZmlsdGVyIiwiYSIsImluY2x1ZGVzIiwicHJvamVjdE5hbWUiLCJhcGlDaG9pY2VzIiwiZXhpc3RpbmciLCJtYXAiLCJpZGVudGlmaWVyIiwiYXBpU2VsZWN0ZWQiLCJhdWRpZW5jZSIsImRlZmF1bHRJZCIsImFzayIsImNyZWF0ZUFwaSIsInVwZGF0ZUFwaVNjb3BlcyIsIkhFTExPX0FQSV9TQ09QRVMiLCJqb2luIiwid2l0aExvY2FsVXNlcnMiLCJkYXRhYmFzZVByb3ZpZGVyIiwiYWRtaW5Vc2VybmFtZSIsImFkbWluUGFzc3dvcmQiLCJnZW5lcmF0ZUFkbWluUGFzc3dvcmQiLCJhZG1pbkVtYWlsIiwid29ya3NwYWNlTmFtZSIsInVzZXJuYW1lIiwic2x1ZyIsInRvTG93ZXJDYXNlIiwicmVwbGFjZSIsImNyZWF0ZUF1dGgwQWRtaW5Vc2VyIiwib3B0aW9ucyIsImF1dGhDb25maWciLCJwYXNzd29yZCIsImVtYWlsIiwiYWRtaW4iLCJjcmVhdGVBZG1pbkRhdGFiYXNlVXNlciIsInNldEFkbWluVXNlciIsInN1YiIsInVzZXJfaWQiLCJnZXRNb2RlbCIsIldFTExfS05PV05fRklMRVMiLCJFTlZfRklMRSIsImFkZEVudHJ5IiwiRXJyb3IiLCJtZXNzYWdlIiwic2NhZmZvbGRMb2NhbFVzZXJQcm9maWxlIiwiUEFDS0FHRV9KU09OIiwiYWRkRGVwZW5kZW5jeSIsIkFQSV9QQUNLQUdFX0pTT04iLCJtYWluIiwiTUFJTl9UUyIsImFkZEVudGl0eSIsImNsYXNzTmFtZSIsImltcG9ydFBhdGgiLCJhZGRSZXBvc2l0b3J5IiwiYWRkU2VydmljZSIsInNjb3BlIiwiYWRkSW1wb3J0Iiwic2V0VHlwZU9ybVNlZWQiLCJnZXRQcm9qZWN0IiwiV0VCQVBJX1BST0pFQ1RfRElSIiwiYWRkRmlsZSIsImZpbGVzIiwiZmlsZVBhdGgiLCJjb250ZW50IiwiY29udHJvbGxlciIsImdldE1vZGVscyIsIkNvbnRyb2xsZXJTb3VyY2VGaWxlIiwiYWRkQ29uc3RydWN0b3JQYXJhbSIsImdldE1ldGhvZCIsInNldEFzeW5jIiwic2V0Qm9keSIsInNjYWZmb2xkIiwicmVzb3VyY2UiLCJhZGREZWNvcmF0b3IiLCJhZGRDb3J0ZXhJbXBvcnQiLCJhZGRTaWRlRWZmZWN0SW1wb3J0IiwiYWRkQnVpbGRlckNhbGwiLCJpc3N1ZXJQbGFjZWhvbGRlciIsImF1ZFBsYWNlaG9sZGVyIiwiY29uZmlnU2VjdGlvbiIsIkNPTkZJR19ZQU1MIiwiYWRkU2VjdGlvbiIsIkF1dGhDb25maWdNb2RlbCIsImFkZE1vZGVsIl0sIm1hcHBpbmdzIjoiOzs7OytCQXFkYUE7OztlQUFBQTs7O3dCQXJkYTt1QkFFTzsyQkFLRTtpQ0FFSDsyQ0FDSztrRUFFWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVzFCLE1BQU1DLGFBQWE7QUFFbkIsTUFBTUMsaUJBQWlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCeEIsQ0FBQztBQUVELE1BQU1DLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFlNUIsQ0FBQztBQUVELE1BQU1DLGtCQUFrQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUR6QixDQUFDO0FBRUQsTUFBTUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0Q1QixDQUFDO0FBRUQsZUFBZUMsV0FDZEMsU0FBNEIsRUFDNUJDLFVBQWdDO0lBRWhDLElBQUlBLFdBQVdDLFlBQVksS0FBSyxXQUFXLENBQUNELFdBQVdFLGFBQWEsRUFBRTtRQUNyRSxPQUFPQyxnQkFBZ0JKLFdBQVdDO0lBQ25DO0lBQ0EsSUFBSUEsV0FBV0MsWUFBWSxJQUFJLE1BQU0sT0FBTyxDQUFDO0lBRTdDLE1BQU1HLFVBQVU7UUFBQztZQUFFQyxPQUFPO1FBQWdCO1FBQUc7WUFBRUEsT0FBTztRQUFpQjtLQUFFO0lBQ3pFLE1BQU1DLFdBQVcsTUFBTUMsSUFBQUEsWUFBSSxFQUFDLHVCQUF1QkgsU0FBUyxDQUFDSSxJQUFNQSxFQUFFSCxLQUFLO0lBQzFFLE1BQU1JLFdBQVdILFVBQVVELFNBQVM7SUFFcEMsSUFBSUksYUFBYSxTQUFTLE9BQU87UUFBRVIsY0FBYztJQUFPO0lBRXhELE9BQU9FLGdCQUFnQkosV0FBV0M7QUFDbkM7QUFFQSxlQUFlRyxnQkFDZEosU0FBNEIsRUFDNUJDLFVBQWdDO0lBRWhDLElBQUksQ0FBQ1UsVUFBU0MsV0FBVyxJQUFJO1FBQzVCQyxRQUFRQyxLQUFLLENBQ1oseURBQ0Msb0RBQ0E7UUFFRkMsUUFBUUMsSUFBSSxDQUFDO0lBQ2Q7SUFFQUQsUUFBUUUsTUFBTSxDQUFDQyxLQUFLLENBQUM7SUFDckIsSUFBSUMsVUFBVVIsVUFBU1MsV0FBVztJQUNsQyxJQUFJRCxRQUFRRSxNQUFNLEtBQUssR0FBRztRQUN6Qk4sUUFBUUUsTUFBTSxDQUFDQyxLQUFLLENBQUM7UUFDckJMLFFBQVFTLEdBQUcsQ0FBQztRQUNaLElBQUksQ0FBQ1gsVUFBU1ksS0FBSyxJQUFJO1lBQ3RCVixRQUFRQyxLQUFLLENBQUM7WUFDZEMsUUFBUUMsSUFBSSxDQUFDO1FBQ2Q7UUFDQUcsVUFBVVIsVUFBU1MsV0FBVztJQUMvQjtJQUVBLElBQUk7UUFDSFQsVUFBU2EsUUFBUTtRQUNqQlQsUUFBUUUsTUFBTSxDQUFDQyxLQUFLLENBQUM7SUFDdEIsRUFBRSxPQUFPTyxLQUFLO1FBQ2IsSUFBSUEsZUFBZWQsVUFBU2UsY0FBYyxFQUFFO1lBQzNDWCxRQUFRRSxNQUFNLENBQUNDLEtBQUssQ0FBQztZQUNyQkwsUUFBUVMsR0FBRyxDQUFDO1lBQ1osSUFBSSxDQUFDWCxVQUFTWSxLQUFLLElBQUk7Z0JBQ3RCVixRQUFRQyxLQUFLLENBQUM7Z0JBQ2RDLFFBQVFDLElBQUksQ0FBQztZQUNkO1FBQ0Q7SUFDRDtJQUVBLE1BQU1XLFNBQVNSLFFBQVFTLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFRixNQUFNLEtBQUtSLE9BQU8sQ0FBQyxFQUFFO0lBQzFELE1BQU1oQixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUV3QixPQUFPRyxJQUFJLEVBQUU7SUFDOUNqQixRQUFRUyxHQUFHLENBQUMsQ0FBQyxvQkFBb0IsRUFBRW5CLGVBQWU7SUFFbERZLFFBQVFFLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDO0lBQ3JCLE1BQU1hLFdBQVdwQixVQUFTYSxRQUFRLEdBQUdRLE1BQU0sQ0FBQyxDQUFDQyxJQUFNLENBQUNBLEVBQUVILElBQUksQ0FBQ0ksUUFBUSxDQUFDO0lBQ3BFbkIsUUFBUUUsTUFBTSxDQUFDQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUVhLFNBQVNWLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFHbkQsTUFBTWMsY0FBY25DLFVBQVU4QixJQUFJO0lBQ2xDLE1BQU1NLGFBQTBCO1FBQy9CO1lBQUU5QixPQUFPLENBQUMsa0JBQWtCLEVBQUU2QixhQUFhO1lBQUVFLFVBQVU7UUFBSztXQUN6RE4sU0FBU08sR0FBRyxDQUFDLENBQUNMLElBQU8sQ0FBQTtnQkFBRTNCLE9BQU8sR0FBRzJCLEVBQUVILElBQUksQ0FBQyxHQUFHLEVBQUVHLEVBQUVNLFVBQVUsRUFBRTtnQkFBRUYsVUFBVUosRUFBRU0sVUFBVTtZQUFDLENBQUE7S0FDdkY7SUFFRCxNQUFNQyxjQUFjLE1BQU1oQyxJQUFBQSxZQUFJLEVBQUMsMEJBQTBCNEIsWUFBWSxDQUFDM0IsSUFBTUEsRUFBRUgsS0FBSztJQUVuRixJQUFJbUM7SUFDSixJQUFJLENBQUNELGVBQWVBLFlBQVlILFFBQVEsS0FBSyxNQUFNO1FBQ2xELE1BQU1LLFlBQVksQ0FBQyxZQUFZLEVBQUVQLGFBQWE7UUFDOUNNLFdBQVcsTUFBTUUsSUFBQUEsV0FBRyxFQUFDLENBQUMsa0JBQWtCLEVBQUVELFVBQVUsR0FBRyxDQUFDLEVBQUVBO1FBQzFEN0IsUUFBUVMsR0FBRyxDQUFDO1FBQ1ptQixXQUFXOUIsVUFBU2lDLFNBQVMsQ0FBQyxHQUFHVCxZQUFZLElBQUksQ0FBQyxFQUFFTSxVQUFVRixVQUFVO1FBQ3hFMUIsUUFBUVMsR0FBRyxDQUFDLENBQUMsc0JBQXNCLEVBQUVtQixVQUFVO0lBQ2hELE9BQU87UUFDTkEsV0FBV0QsWUFBWUgsUUFBUTtRQUMvQnhCLFFBQVFTLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQixFQUFFbUIsVUFBVTtRQUM1QyxJQUFJO1lBQ0g5QixVQUFTa0MsZUFBZSxDQUFDSjtZQUN6QjVCLFFBQVFTLEdBQUcsQ0FBQyxDQUFDLDZCQUE2QixFQUFFWCxVQUFTbUMsZ0JBQWdCLENBQUNDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRixFQUFFLE9BQU07WUFDUGxDLFFBQVFDLEtBQUssQ0FDWjtRQUVGO0lBQ0Q7SUFFQSxNQUFNa0MsaUJBQWlCL0MsV0FBV2dELGdCQUFnQixLQUFLO0lBQ3ZELElBQUlDO0lBQ0osSUFBSUM7SUFDSixJQUFJSCxnQkFBZ0I7UUFDbkJFLGdCQUNDakQsV0FBV2lELGFBQWEsSUFBSyxNQUFNUCxJQUFBQSxXQUFHLEVBQUMsZ0NBQWdDO1FBQ3hFUSxnQkFBZ0JsRCxXQUFXa0QsYUFBYTtRQUN4QyxJQUFJQSxpQkFBaUIsTUFBTTtZQUMxQkEsZ0JBQWdCLE1BQU1SLElBQUFBLFdBQUcsRUFBQztZQUMxQixJQUFJLENBQUNRLGVBQWU7Z0JBQ25CQSxnQkFBZ0J4QyxVQUFTeUMscUJBQXFCO2dCQUM5Q3ZDLFFBQVFTLEdBQUcsQ0FBQyxDQUFDLGdEQUFnRCxFQUFFNkIsZUFBZTtZQUMvRTtRQUNEO0lBQ0Q7SUFFQSxPQUFPO1FBQ05qRCxjQUFjO1FBQ2RDO1FBQ0FzQztRQUNBLEdBQUlPLGlCQUFpQjtZQUFFRTtZQUFlQztRQUFjLElBQUksQ0FBQyxDQUFDO0lBQzNEO0FBQ0Q7QUFFQSxTQUFTRSxXQUFXQyxhQUFxQixFQUFFQyxRQUFnQjtJQUMxRCxJQUFJQSxTQUFTckIsUUFBUSxDQUFDLE1BQU0sT0FBT3FCO0lBQ25DLE1BQU1DLE9BQU9GLGNBQWNHLFdBQVcsR0FBR0MsT0FBTyxDQUFDLGVBQWU7SUFDaEUsT0FBTyxHQUFHSCxTQUFTLENBQUMsRUFBRUMsS0FBSyxZQUFZLENBQUM7QUFDekM7QUFFQSxTQUFTRyxxQkFDUjNELFNBQTRCLEVBQzVCNEQsT0FBb0IsRUFDcEJDLFVBQTJCO0lBRTNCLE1BQU1OLFdBQVdLLFFBQVFWLGFBQWEsSUFBSTtJQUMxQyxNQUFNWSxXQUFXRixRQUFRVCxhQUFhO0lBQ3RDLElBQUksQ0FBQ1csVUFBVTtJQUVmLE1BQU1DLFFBQVFWLFdBQVdyRCxVQUFVOEIsSUFBSSxFQUFFeUI7SUFDekMsSUFBSTtRQUNILE1BQU1TLFFBQVFyRCxVQUFTc0QsdUJBQXVCLENBQUM7WUFBRUY7WUFBT0Q7WUFBVVA7UUFBUztRQUMzRU0sV0FBV0ssWUFBWSxDQUFDO1lBQ3ZCQyxLQUFLSCxNQUFNSSxPQUFPO1lBQ2xCTCxPQUFPQyxNQUFNRCxLQUFLO1lBQ2xCRCxVQUFVRSxNQUFNRixRQUFRO1lBQ3hCUCxVQUFVUyxNQUFNVCxRQUFRO1FBQ3pCO1FBQ0F2RCxVQUNFcUUsUUFBUSxDQUFVQyx1QkFBZ0IsQ0FBQ0MsUUFBUSxHQUMxQ0MsU0FBUyx3QkFBd0JSLE1BQU1JLE9BQU8sRUFDL0NJLFNBQVMsMEJBQTBCUixNQUFNRCxLQUFLLEVBQzlDUyxTQUFTLDZCQUE2QlIsTUFBTUYsUUFBUSxFQUNwRFUsU0FBUyx3QkFBd0JSLE1BQU1ULFFBQVE7UUFDakQxQyxRQUFRUyxHQUFHLENBQUMsQ0FBQyw0QkFBNEIsRUFBRTBDLE1BQU1ELEtBQUssQ0FBQyxRQUFRLEVBQUVyRSxXQUFXLENBQUMsQ0FBQztRQUM5RW1CLFFBQVFTLEdBQUcsQ0FBQyxDQUFDLHFDQUFxQyxFQUFFMEMsTUFBTUQsS0FBSyxFQUFFO1FBQ2pFbEQsUUFBUVMsR0FBRyxDQUFDLENBQUMsbURBQW1ELENBQUM7SUFDbEUsRUFBRSxPQUFPRyxLQUFLO1FBQ2JaLFFBQVFDLEtBQUssQ0FDWixDQUFDLHVDQUF1QyxFQUFFaUQsTUFBTSxHQUFHLEVBQUV0QyxlQUFlZ0QsUUFBUWhELElBQUlpRCxPQUFPLEdBQUdqRCxLQUFLO0lBRWpHO0FBQ0Q7QUFFQSxTQUFTa0QseUJBQXlCM0UsU0FBNEI7SUFDN0RBLFVBQ0VxRSxRQUFRLENBQWNDLHVCQUFnQixDQUFDTSxZQUFZLEdBQ2xEQyxjQUFjLGlCQUFpQjtJQUNsQzdFLFVBQ0VxRSxRQUFRLENBQWlCQyx1QkFBZ0IsQ0FBQ1EsZ0JBQWdCLEdBQ3pERCxjQUFjLGlCQUFpQjtJQUVsQyxNQUFNRSxPQUFPL0UsVUFBVXFFLFFBQVEsQ0FBaUJDLHVCQUFnQixDQUFDVSxPQUFPO0lBQ3hFRCxNQUNHRSxVQUFVO1FBQUVDLFdBQVc7UUFBY0MsWUFBWTtJQUE0QixHQUM5RUMsY0FBYztRQUNkRixXQUFXO1FBQ1hDLFlBQVk7SUFDYixHQUNDRSxXQUFXO1FBQ1hILFdBQVc7UUFDWEMsWUFBWTtRQUNaRyxPQUFPO0lBQ1IsR0FDQ0MsVUFBVSx3QkFBd0IsNkJBQ2xDQSxVQUFVLGdCQUFnQiw2QkFDMUJDLGVBQ0E7UUFDQztRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO0tBQ0EsQ0FBQ3pDLElBQUksQ0FBQztJQUdUL0MsVUFBVXlGLFVBQVUsQ0FBQ0MsNkJBQWtCLEdBQUdDLFFBQVE7UUFDakRDLE9BQU8sSUFBTTtnQkFDWjtvQkFBRUMsVUFBVTtvQkFBK0JDLFNBQVNuRztnQkFBZTtnQkFDbkU7b0JBQUVrRyxVQUFVO29CQUF1Q0MsU0FBU2xHO2dCQUFtQjtnQkFDL0U7b0JBQUVpRyxVQUFVO29CQUFnQ0MsU0FBU2pHO2dCQUFnQjtnQkFDckU7b0JBQUVnRyxVQUFVO29CQUErQkMsU0FBU2hHO2dCQUFtQjthQUN2RTtJQUNGO0lBRUEsS0FBSyxNQUFNaUcsY0FBYy9GLFVBQVVnRyxTQUFTLENBQUNDLCtDQUFvQixFQUFHO1FBQ25FRixXQUNFUixTQUFTLENBQUMsZUFBZSwrQkFDekJXLG1CQUFtQixDQUFDO1FBQ3RCSCxXQUFXSSxTQUFTLENBQUMsVUFBVUMsUUFBUSxDQUFDLE1BQU1DLE9BQU8sQ0FBQztZQUNyRDtZQUNBLDJGQUEyRjtZQUMzRjtTQUNBO0lBQ0Y7QUFDRDtBQUVBLFNBQVNDLFNBQVN0RyxTQUE0QixFQUFFNEQsT0FBb0I7SUFDbkUsSUFBSUEsUUFBUTFELFlBQVksS0FBSyxTQUFTO0lBRXRDLE1BQU1xRyxXQUFXO0lBQ2pCLE1BQU12RCxpQkFBaUJZLFFBQVFYLGdCQUFnQixLQUFLO0lBRXBELEtBQUssTUFBTThDLGNBQWMvRixVQUFVZ0csU0FBUyxDQUFDQywrQ0FBb0IsRUFBRztRQUNuRUYsV0FDRVMsWUFBWSxDQUFDLENBQUMsb0JBQW9CLEVBQUVELFNBQVMsRUFBRSxDQUFDLEVBQ2hERSxlQUFlLENBQUMsa0JBQ2hCQSxlQUFlLENBQUMsYUFDaEJBLGVBQWUsQ0FBQywyQkFDaEJBLGVBQWUsQ0FBQyxzQkFBc0IsTUFDdENsQixTQUFTLENBQUMsVUFBVSxpQ0FDcEJXLG1CQUFtQixDQUNuQixDQUFDLHVGQUF1RixDQUFDO1FBRTNGSCxXQUFXSSxTQUFTLENBQUMsVUFBVUssWUFBWSxDQUFDO1FBQzVDLElBQUksQ0FBQ3hELGdCQUFnQjtZQUNwQitDLFdBQVdJLFNBQVMsQ0FBQyxVQUFVRSxPQUFPLENBQUM7Z0JBQ3RDO2dCQUNBO2dCQUNBO2dCQUNBO2dCQUNBO2dCQUNBO2dCQUNBO2dCQUNBO2dCQUNBLDJGQUEyRjtnQkFDM0Y7YUFDQTtRQUNGO1FBQ0FOLFdBQVdJLFNBQVMsQ0FBQyxVQUFVSyxZQUFZLENBQUMsQ0FBQyxzQkFBc0IsRUFBRUQsU0FBUyxFQUFFLENBQUM7UUFDakZSLFdBQVdJLFNBQVMsQ0FBQyxVQUFVSyxZQUFZLENBQUMsQ0FBQyxzQkFBc0IsRUFBRUQsU0FBUyxFQUFFLENBQUM7UUFDakZSLFdBQVdJLFNBQVMsQ0FBQyxVQUFVSyxZQUFZLENBQUMsQ0FBQyxzQkFBc0IsRUFBRUQsU0FBUyxFQUFFLENBQUM7SUFDbEY7SUFFQSxNQUFNeEIsT0FBTy9FLFVBQVVxRSxRQUFRLENBQWlCQyx1QkFBZ0IsQ0FBQ1UsT0FBTztJQUN4RUQsTUFBTTJCLG9CQUFvQjtJQUUxQixJQUFJMUQsZ0JBQWdCO1FBQ25CMkIseUJBQXlCM0U7UUFDekIrRSxNQUFNNEIsZUFBZTtJQUN0QixPQUFPO1FBQ041QixNQUFNNEIsZUFBZTtJQUN0QjtJQUVBLDhGQUE4RjtJQUM5RixNQUFNQyxvQkFBb0I7SUFDMUIsOEZBQThGO0lBQzlGLE1BQU1DLGlCQUFpQjtJQUV2QixNQUFNQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsRUFBRUYsa0JBQWtCLGNBQWMsRUFBRUMsZUFBZSxFQUFFLENBQUM7SUFFcEc3RyxVQUFVcUUsUUFBUSxDQUFhQyx1QkFBZ0IsQ0FBQ3lDLFdBQVcsR0FBR0MsV0FBV0Y7SUFFekU5RyxVQUNFcUUsUUFBUSxDQUFVQyx1QkFBZ0IsQ0FBQ0MsUUFBUSxHQUMxQ0MsU0FBUyx5QkFBeUJaLFFBQVF6RCxhQUFhLElBQUksSUFDNURxRSxTQUFTLGtCQUFrQlosUUFBUW5CLFFBQVEsSUFBSTtJQUVqRCxNQUFNb0IsYUFBYSxJQUFJb0QsZ0NBQWUsQ0FBQztRQUN0QzlHLGVBQWV5RCxRQUFRekQsYUFBYSxJQUFJO1FBQ3hDc0MsVUFBVW1CLFFBQVFuQixRQUFRLElBQUk7SUFDL0I7SUFDQXpDLFVBQVVrSCxRQUFRLENBQUNyRDtJQUVuQixJQUFJYixrQkFBa0JZLFFBQVFULGFBQWEsRUFBRTtRQUM1Q1EscUJBQXFCM0QsV0FBVzRELFNBQVNDO0lBQzFDO0FBQ0Q7QUFFTyxNQUFNcEUsY0FBb0M7SUFBRU07SUFBWXVHO0FBQVMifQ==
|
|
458
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL2ZlYXR1cmVzL2F1dGguZmVhdHVyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc2ssIHBpY2sgfSBmcm9tIFwiLi4vLi4vZG9tYWluL3Byb21wdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBDb25maWdZYW1sIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb25maWcteWFtbC5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgV0VMTF9LTk9XTl9GSUxFUyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgRW52RmlsZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvZW52LWZpbGUubW9kZWwuanNcIjtcbmltcG9ydCB0eXBlIHsgUGFja2FnZUpzb24gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3BhY2thZ2UtanNvbi5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBXb3Jrc3BhY2VTY2FmZm9sZCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvcHJvamVjdC5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBGZWF0dXJlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NjYWZmb2xkLnNlcnZpY2UuanNcIjtcbmltcG9ydCB7IFdFQkFQSV9QUk9KRUNUX0RJUiB9IGZyb20gXCIuLi9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBBcGlQYWNrYWdlSnNvbiB9IGZyb20gXCIuLi9tb2RlbHMvYXBpLXBhY2thZ2UtanNvbi5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgQXV0aENvbmZpZ01vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9hdXRoLWNvbmZpZy5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgQ29udHJvbGxlclNvdXJjZUZpbGUgfSBmcm9tIFwiLi4vbW9kZWxzL2NvbnRyb2xsZXItc291cmNlLWZpbGUubW9kZWwuanNcIjtcbmltcG9ydCB0eXBlIHsgTWFpblNvdXJjZUZpbGUgfSBmcm9tIFwiLi4vbW9kZWxzL21haW4tc291cmNlLWZpbGUubW9kZWwuanNcIjtcbmltcG9ydCAqIGFzIGF1dGgwQ2xpIGZyb20gXCIuL2F1dGgwLWNsaS5qc1wiO1xuXG5leHBvcnQgdHlwZSBBdXRoT3B0aW9ucyA9IHtcblx0YXV0aFByb3ZpZGVyPzogXCJhdXRoMFwiIHwgXCJub25lXCI7XG5cdGlzc3VlckJhc2VVcmw/OiBzdHJpbmc7XG5cdGF1ZGllbmNlPzogc3RyaW5nO1xuXHRkYXRhYmFzZVByb3ZpZGVyPzogXCJub25lXCIgfCBcInBvc3RncmVzL3R5cGVvcm1cIjtcblx0YWRtaW5Vc2VybmFtZT86IHN0cmluZztcblx0YWRtaW5QYXNzd29yZD86IHN0cmluZztcbn07XG5cbmNvbnN0IEFETUlOX1JPTEUgPSBcImFkbWluXCI7XG5cbmNvbnN0IFVTRVJfRU5USVRZX1RTID0gYGltcG9ydCB7IENvbHVtbiwgRW50aXR5LCBQcmltYXJ5R2VuZXJhdGVkQ29sdW1uIH0gZnJvbSBcInR5cGVvcm1cIjtcbmltcG9ydCB0eXBlIHsgRW50aXR5IGFzIElFbnRpdHkgfSBmcm9tIFwiQGRlY29oZXJlL2NvZGV4XCI7XG5cbkBFbnRpdHkoKVxuZXhwb3J0IGNsYXNzIFVzZXJFbnRpdHkgaW1wbGVtZW50cyBJRW50aXR5IHtcblxcdEBQcmltYXJ5R2VuZXJhdGVkQ29sdW1uKClcblxcdHB1YmxpYyBpZCE6IG51bWJlcjtcblxuXFx0QENvbHVtbih7IHVuaXF1ZTogdHJ1ZSB9KVxuXFx0cHVibGljIHN1YiE6IHN0cmluZztcblxuXFx0QENvbHVtbih7IHR5cGU6IFwidmFyY2hhclwiLCBudWxsYWJsZTogdHJ1ZSB9KVxuXFx0cHVibGljIGVtYWlsITogc3RyaW5nIHwgbnVsbDtcblxuXFx0QENvbHVtbigpXG5cXHRwdWJsaWMgZGlzcGxheU5hbWUhOiBzdHJpbmc7XG5cblxcdC8qKiBBcHAtb3duZWQgcm9sZXMuIFRoZSBcXGBhZG1pblxcYCByb2xlIGdyYW50cyBDQVNMIFxcYG1hbmFnZVxcYC9cXGBhbGxcXGAgKHdpbGRjYXJkKS4gKi9cblxcdEBDb2x1bW4oeyB0eXBlOiBcInNpbXBsZS1qc29uXCIsIGRlZmF1bHQ6IFwiW11cIiB9KVxuXFx0cHVibGljIHJvbGVzITogc3RyaW5nW107XG59XG5gO1xuXG5jb25zdCBVU0VSX1JFUE9TSVRPUllfVFMgPSBgaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgaW5qZWN0VW5pdE9mV29yayB9IGZyb20gXCJAZGVjb2hlcmUvY29kZXhcIjtcbmltcG9ydCB7IFR5cGVPcm1SZXBvc2l0b3J5LCBUeXBlT3JtVW5pdE9mV29yayB9IGZyb20gXCJAZGVjb2hlcmUvY29kZXgtdHlwZW9ybVwiO1xuaW1wb3J0IHsgVXNlckVudGl0eSB9IGZyb20gXCIuLi9lbnRpdGllcy91c2VyLmVudGl0eS5qc1wiO1xuXG5AaW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVXNlckVudGl0eVJlcG9zaXRvcnkgZXh0ZW5kcyBUeXBlT3JtUmVwb3NpdG9yeTxVc2VyRW50aXR5PiB7XG5cXHRwdWJsaWMgY29uc3RydWN0b3IoQGluamVjdFVuaXRPZldvcmsoKSB1bml0T2ZXb3JrOiBUeXBlT3JtVW5pdE9mV29yaykge1xuXFx0XFx0c3VwZXIodW5pdE9mV29yaywgVXNlckVudGl0eSk7XG5cXHR9XG5cblxcdHB1YmxpYyBmaW5kQnlTdWIoc3ViOiBzdHJpbmcpOiBQcm9taXNlPFVzZXJFbnRpdHkgfCBudWxsPiB7XG5cXHRcXHRyZXR1cm4gdGhpcy5maXJzdE9yRGVmYXVsdCh7IHdoZXJlOiB7IHN1YiB9IH0pO1xuXFx0fVxufVxuYDtcblxuY29uc3QgVVNFUl9TRVJWSUNFX1RTID0gYGltcG9ydCB7IGluamVjdGFibGUgfSBmcm9tIFwiQGRlY29oZXJlL2NydWNpYmxlL2RlY29yYXRvcnNcIjtcbmltcG9ydCB0eXBlIHsgUHJpbmNpcGFsIH0gZnJvbSBcIkBkZWNvaGVyZS9jb3J0ZXhcIjtcbmltcG9ydCB7IFVzZXJFbnRpdHkgfSBmcm9tIFwiLi4vZW50aXRpZXMvdXNlci5lbnRpdHkuanNcIjtcbmltcG9ydCB7IFVzZXJFbnRpdHlSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL3JlcG9zaXRvcmllcy91c2VyLnJlcG9zaXRvcnkuanNcIjtcblxuZnVuY3Rpb24gY2xhaW1TdHJpbmcocHJpbmNpcGFsOiBQcmluY2lwYWwgfCB1bmRlZmluZWQsIGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblxcdGNvbnN0IHZhbHVlID0gcHJpbmNpcGFsPy5ba2V5XTtcblxcdHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUubGVuZ3RoID4gMCA/IHZhbHVlIDogdW5kZWZpbmVkO1xufVxuXG5AaW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2Uge1xuXFx0cHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdXNlcnM6IFVzZXJFbnRpdHlSZXBvc2l0b3J5KSB7fVxuXG5cXHQvKipcblxcdCAqIFVwc2VydCBhIGxvY2FsIHByb2ZpbGUga2V5ZWQgYnkgSldUIFxcYHN1YlxcYC5cblxcdCAqIFByb2ZpbGUgZmllbGRzIGZyb20gdGhlIHRva2VuIGZpbGwgZ2Fwczsgc2VlZGVkIHJvd3Mga2VlcCBkaXNwbGF5TmFtZS9lbWFpbC9yb2xlcy5cblxcdCAqL1xuXFx0cHVibGljIGFzeW5jIGVuc3VyZUZyb21QcmluY2lwYWwocHJpbmNpcGFsOiBQcmluY2lwYWwgfCB1bmRlZmluZWQpOiBQcm9taXNlPFVzZXJFbnRpdHk+IHtcblxcdFxcdGNvbnN0IHN1YiA9IHByaW5jaXBhbD8uc3ViO1xuXFx0XFx0aWYgKCFzdWIpIHtcblxcdFxcdFxcdHRocm93IG5ldyBFcnJvcihcIkF1dGhlbnRpY2F0ZWQgcmVxdWVzdCBpcyBtaXNzaW5nIHByaW5jaXBhbC5zdWJcIik7XG5cXHRcXHR9XG5cblxcdFxcdGNvbnN0IGVtYWlsID1cblxcdFxcdFxcdGNsYWltU3RyaW5nKHByaW5jaXBhbCwgXCJlbWFpbFwiKSA/PyBjbGFpbVN0cmluZyhwcmluY2lwYWwsIFwicHJlZmVycmVkX3VzZXJuYW1lXCIpO1xuXFx0XFx0Y29uc3QgZGlzcGxheUZyb21Ub2tlbiA9XG5cXHRcXHRcXHRjbGFpbVN0cmluZyhwcmluY2lwYWwsIFwibmFtZVwiKSA/P1xuXFx0XFx0XFx0Y2xhaW1TdHJpbmcocHJpbmNpcGFsLCBcIm5pY2tuYW1lXCIpID8/XG5cXHRcXHRcXHRlbWFpbDtcblxuXFx0XFx0Y29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLnVzZXJzLmZpbmRCeVN1YihzdWIpO1xuXFx0XFx0aWYgKGV4aXN0aW5nKSB7XG5cXHRcXHRcXHRsZXQgZGlydHkgPSBmYWxzZTtcblxcdFxcdFxcdGlmICghZXhpc3RpbmcuZW1haWwgJiYgZW1haWwpIHtcblxcdFxcdFxcdFxcdGV4aXN0aW5nLmVtYWlsID0gZW1haWw7XG5cXHRcXHRcXHRcXHRkaXJ0eSA9IHRydWU7XG5cXHRcXHRcXHR9XG5cXHRcXHRcXHRpZiAoZXhpc3RpbmcuZGlzcGxheU5hbWUgPT09IGV4aXN0aW5nLnN1YiAmJiBkaXNwbGF5RnJvbVRva2VuKSB7XG5cXHRcXHRcXHRcXHRleGlzdGluZy5kaXNwbGF5TmFtZSA9IGRpc3BsYXlGcm9tVG9rZW47XG5cXHRcXHRcXHRcXHRkaXJ0eSA9IHRydWU7XG5cXHRcXHRcXHR9XG5cXHRcXHRcXHRyZXR1cm4gZGlydHkgPyB0aGlzLnVzZXJzLnNhdmUoZXhpc3RpbmcpIDogZXhpc3Rpbmc7XG5cXHRcXHR9XG5cblxcdFxcdGNvbnN0IGNyZWF0ZWQgPSBuZXcgVXNlckVudGl0eSgpO1xuXFx0XFx0Y3JlYXRlZC5zdWIgPSBzdWI7XG5cXHRcXHRjcmVhdGVkLmVtYWlsID0gZW1haWwgPz8gbnVsbDtcblxcdFxcdGNyZWF0ZWQuZGlzcGxheU5hbWUgPSBkaXNwbGF5RnJvbVRva2VuID8/IHN1YjtcblxcdFxcdGNyZWF0ZWQucm9sZXMgPSBBcnJheS5pc0FycmF5KHByaW5jaXBhbC5yb2xlcylcblxcdFxcdFxcdD8gcHJpbmNpcGFsLnJvbGVzLmZpbHRlcigocik6IHIgaXMgc3RyaW5nID0+IHR5cGVvZiByID09PSBcInN0cmluZ1wiKVxuXFx0XFx0XFx0OiBbXTtcblxcdFxcdHJldHVybiB0aGlzLnVzZXJzLnNhdmUoY3JlYXRlZCk7XG5cXHR9XG59XG5gO1xuXG5jb25zdCBBQklMSVRZX0ZBQ1RPUllfVFMgPSBgaW1wb3J0IHsgQWJpbGl0eUJ1aWxkZXIsIGNyZWF0ZU1vbmdvQWJpbGl0eSB9IGZyb20gXCJAY2FzbC9hYmlsaXR5XCI7XG5pbXBvcnQgdHlwZSB7IFByaW5jaXBhbCB9IGZyb20gXCJAZGVjb2hlcmUvY29ydGV4XCI7XG5cbi8qKiBSb290IHJvbGUg4oCUIGV4cGFuZHMgdG8gQ0FTTCBcXGBtYW5hZ2VcXGAvXFxgYWxsXFxgIChjb3ZlcnMgZXZlcnkgZnV0dXJlIGFiaWxpdHkpLiAqL1xuZXhwb3J0IGNvbnN0IEFETUlOX1JPTEUgPSBcImFkbWluXCI7XG5cbi8qKlxuICogUm9sZXMgYXJlIGNvbGxlY3Rpb25zIG9mIGFiaWxpdGllcy4gQWRtaW4gaXMgYSB3aWxkY2FyZCwgbm90IGFuIGVudW1lcmF0ZWQgbGlzdC5cbiAqIE5vbi1hZG1pbiBwcmluY2lwYWxzIGtlZXAgQXV0aDAgc2NvcGUgLyBwZXJtaXNzaW9uIOKGkiBhYmlsaXR5IG1hcHBpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBYmlsaXR5RmFjdG9yeShwcmluY2lwYWw6IFByaW5jaXBhbCkge1xuXFx0Y29uc3QgeyBjYW4sIGJ1aWxkIH0gPSBuZXcgQWJpbGl0eUJ1aWxkZXIoY3JlYXRlTW9uZ29BYmlsaXR5KTtcblxcdGlmIChwcmluY2lwYWwucm9sZXM/LmluY2x1ZGVzKEFETUlOX1JPTEUpKSB7XG5cXHRcXHRjYW4oXCJtYW5hZ2VcIiwgXCJhbGxcIik7XG5cXHRcXHRyZXR1cm4gYnVpbGQoKTtcblxcdH1cblxcdGZvciAoY29uc3Qgc2NvcGUgb2YgcHJpbmNpcGFsLnNjb3BlcyA/PyBbXSkge1xuXFx0XFx0Y29uc3QgW2FjdGlvbiwgc3ViamVjdF0gPSBzY29wZS5zcGxpdChcIjpcIik7XG5cXHRcXHRpZiAoYWN0aW9uICYmIHN1YmplY3QpIGNhbihhY3Rpb24sIHN1YmplY3QpO1xuXFx0fVxuXFx0cmV0dXJuIGJ1aWxkKCk7XG59XG5cbi8qKlxuICogTWFwIEpXVCBwYXlsb2FkIOKGkiBQcmluY2lwYWwuXG4gKlxuICogLSBcXGByb2xlc1xcYCBjb21lIGZyb20gdGhlIElkUCAoQXV0aDAgUkJBQyAvIEFjdGlvbiBmcm9tIGFwcF9tZXRhZGF0YSkuIEFkbWlucyBhcmVcbiAqICAgYXNzaWduZWQgaW4gQXV0aDAg4oCUIG5vIHNlcnZlciBlbnYgY2hhbmdlIHJlcXVpcmVkIGZvciBhZGRpdGlvbmFsIGFkbWlucy5cbiAqIC0gXFxgQVVUSDBfQURNSU5fVVNFUl9TVUJcXGAgaXMgYW4gb3B0aW9uYWwgYm9vdHN0cmFwIHNvIHRoZSBzZWVkZWQgYWRtaW4gd29ya3NcbiAqICAgYmVmb3JlL3dpdGhvdXQgcm9sZXMgb24gdGhlIGFjY2VzcyB0b2tlbi5cbiAqIC0gQVBJIHBlcm1pc3Npb25zIGFyZSB0YWtlbiBmcm9tIFxcYHNjb3BlXFxgIGFuZCBmcm9tIEF1dGgwJ3MgXFxgcGVybWlzc2lvbnNcXGAgY2xhaW0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBQcmluY2lwYWwocGF5bG9hZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBQcmluY2lwYWwge1xuXFx0Y29uc3Qgc3ViID0gdHlwZW9mIHBheWxvYWQuc3ViID09PSBcInN0cmluZ1wiID8gcGF5bG9hZC5zdWIgOiBcIlwiO1xuXFx0Y29uc3QgZnJvbVNjb3BlQ2xhaW0gPVxuXFx0XFx0dHlwZW9mIHBheWxvYWQuc2NvcGUgPT09IFwic3RyaW5nXCJcblxcdFxcdFxcdD8gcGF5bG9hZC5zY29wZS5zcGxpdChcIiBcIikuZmlsdGVyKEJvb2xlYW4pXG5cXHRcXHRcXHQ6IEFycmF5LmlzQXJyYXkocGF5bG9hZC5zY29wZXMpXG5cXHRcXHRcXHRcXHQ/IChwYXlsb2FkLnNjb3BlcyBhcyB1bmtub3duW10pLmZpbHRlcigocyk6IHMgaXMgc3RyaW5nID0+IHR5cGVvZiBzID09PSBcInN0cmluZ1wiKVxuXFx0XFx0XFx0XFx0OiBbXTtcblxcdGNvbnN0IGZyb21QZXJtaXNzaW9ucyA9IEFycmF5LmlzQXJyYXkocGF5bG9hZC5wZXJtaXNzaW9ucylcblxcdFxcdD8gKHBheWxvYWQucGVybWlzc2lvbnMgYXMgdW5rbm93bltdKS5maWx0ZXIoKHMpOiBzIGlzIHN0cmluZyA9PiB0eXBlb2YgcyA9PT0gXCJzdHJpbmdcIilcblxcdFxcdDogW107XG5cXHRjb25zdCBtZXJnZWQgPSBbLi4ubmV3IFNldChbLi4uZnJvbVNjb3BlQ2xhaW0sIC4uLmZyb21QZXJtaXNzaW9uc10pXTtcblxcdGNvbnN0IHNjb3BlcyA9IG1lcmdlZC5sZW5ndGggPiAwID8gbWVyZ2VkIDogdW5kZWZpbmVkO1xuXFx0Y29uc3QgZnJvbVRva2VuID0gQXJyYXkuaXNBcnJheShwYXlsb2FkLnJvbGVzKVxuXFx0XFx0PyAocGF5bG9hZC5yb2xlcyBhcyB1bmtub3duW10pLmZpbHRlcigocik6IHIgaXMgc3RyaW5nID0+IHR5cGVvZiByID09PSBcInN0cmluZ1wiKVxuXFx0XFx0OiBbXTtcblxcdGNvbnN0IHJvbGVzID1cblxcdFxcdHN1YiAmJiBzdWIgPT09IHByb2Nlc3MuZW52LkFVVEgwX0FETUlOX1VTRVJfU1VCXG5cXHRcXHRcXHQ/IFsuLi5uZXcgU2V0KFtBRE1JTl9ST0xFLCAuLi5mcm9tVG9rZW5dKV1cblxcdFxcdFxcdDogZnJvbVRva2VuLmxlbmd0aCA+IDBcblxcdFxcdFxcdFxcdD8gZnJvbVRva2VuXG5cXHRcXHRcXHRcXHQ6IHVuZGVmaW5lZDtcblxcdHJldHVybiB7IC4uLnBheWxvYWQsIHN1Yiwgcm9sZXMsIHNjb3BlcyB9O1xufVxuYDtcblxuYXN5bmMgZnVuY3Rpb24gZ2V0T3B0aW9ucyhcblx0d29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCxcblx0Y2xpT3B0aW9uczogUGFydGlhbDxBdXRoT3B0aW9ucz4sXG4pOiBQcm9taXNlPFBhcnRpYWw8QXV0aE9wdGlvbnM+PiB7XG5cdGlmIChjbGlPcHRpb25zLmF1dGhQcm92aWRlciA9PT0gXCJhdXRoMFwiICYmICFjbGlPcHRpb25zLmlzc3VlckJhc2VVcmwpIHtcblx0XHRyZXR1cm4gZ2V0QXV0aDBPcHRpb25zKHdvcmtzcGFjZSwgY2xpT3B0aW9ucyk7XG5cdH1cblx0aWYgKGNsaU9wdGlvbnMuYXV0aFByb3ZpZGVyICE9IG51bGwpIHJldHVybiB7fTtcblxuXHRjb25zdCBjaG9pY2VzID0gW3sgbGFiZWw6IFwibm9uZVwiIGFzIGNvbnN0IH0sIHsgbGFiZWw6IFwiYXV0aDBcIiBhcyBjb25zdCB9XTtcblx0Y29uc3Qgc2VsZWN0ZWQgPSBhd2FpdCBwaWNrKFwiXFxuICBBdXRoIHByb3ZpZGVyOiBcIiwgY2hvaWNlcywgKGMpID0+IGMubGFiZWwpO1xuXHRjb25zdCBwcm92aWRlciA9IHNlbGVjdGVkPy5sYWJlbCA/PyBcIm5vbmVcIjtcblxuXHRpZiAocHJvdmlkZXIgIT09IFwiYXV0aDBcIikgcmV0dXJuIHsgYXV0aFByb3ZpZGVyOiBcIm5vbmVcIiB9O1xuXG5cdHJldHVybiBnZXRBdXRoME9wdGlvbnMod29ya3NwYWNlLCBjbGlPcHRpb25zKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QXV0aDBPcHRpb25zKFxuXHR3b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkLFxuXHRjbGlPcHRpb25zOiBQYXJ0aWFsPEF1dGhPcHRpb25zPixcbik6IFByb21pc2U8UGFydGlhbDxBdXRoT3B0aW9ucz4+IHtcblx0aWYgKCFhdXRoMENsaS5pc0luc3RhbGxlZCgpKSB7XG5cdFx0Y29uc29sZS5lcnJvcihcblx0XHRcdFwiXFxuICBUaGUgQXV0aDAgQ0xJIGlzIHJlcXVpcmVkIGZvciBhdXRvbWF0ZWQgc2V0dXAuXFxuXCIgK1xuXHRcdFx0XHRcIiAgSW5zdGFsbDogYnJldyBpbnN0YWxsIGF1dGgwL2F1dGgwLWNsaS9hdXRoMFxcblwiICtcblx0XHRcdFx0XCIgIE9yIHZpc2l0OiBodHRwczovL2dpdGh1Yi5jb20vYXV0aDAvYXV0aDAtY2xpXFxuXCIsXG5cdFx0KTtcblx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdH1cblxuXHRwcm9jZXNzLnN0ZG91dC53cml0ZShcIlxcbiAgQ2hlY2tpbmcgQXV0aDAgY3JlZGVudGlhbHMuLi5cIik7XG5cdGxldCB0ZW5hbnRzID0gYXV0aDBDbGkubGlzdFRlbmFudHMoKTtcblx0aWYgKHRlbmFudHMubGVuZ3RoID09PSAwKSB7XG5cdFx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoXCIgbm90IGxvZ2dlZCBpbi5cXG5cIik7XG5cdFx0Y29uc29sZS5sb2coXCIgIExvZ2dpbmcgaW4gdG8gQXV0aDAgKHlvdXIgYnJvd3NlciB3aWxsIG9wZW4pLi4uXCIpO1xuXHRcdGlmICghYXV0aDBDbGkubG9naW4oKSkge1xuXHRcdFx0Y29uc29sZS5lcnJvcihcIlxcbiAgQXV0aDAgbG9naW4gZmFpbGVkLlwiKTtcblx0XHRcdHByb2Nlc3MuZXhpdCgxKTtcblx0XHR9XG5cdFx0dGVuYW50cyA9IGF1dGgwQ2xpLmxpc3RUZW5hbnRzKCk7XG5cdH1cblxuXHR0cnkge1xuXHRcdGF1dGgwQ2xpLmxpc3RBcGlzKCk7XG5cdFx0cHJvY2Vzcy5zdGRvdXQud3JpdGUoXCIgb2suXFxuXCIpO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHRpZiAoZXJyIGluc3RhbmNlb2YgYXV0aDBDbGkuQXV0aDBBdXRoRXJyb3IpIHtcblx0XHRcdHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiIHRva2VuIGV4cGlyZWQuXFxuXCIpO1xuXHRcdFx0Y29uc29sZS5sb2coXCIgIFJlLWF1dGhlbnRpY2F0aW5nICh5b3VyIGJyb3dzZXIgd2lsbCBvcGVuKS4uLlwiKTtcblx0XHRcdGlmICghYXV0aDBDbGkubG9naW4oKSkge1xuXHRcdFx0XHRjb25zb2xlLmVycm9yKFwiXFxuICBBdXRoMCBsb2dpbiBmYWlsZWQuXCIpO1xuXHRcdFx0XHRwcm9jZXNzLmV4aXQoMSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Y29uc3QgYWN0aXZlID0gdGVuYW50cy5maW5kKCh0KSA9PiB0LmFjdGl2ZSkgPz8gdGVuYW50c1swXTtcblx0Y29uc3QgaXNzdWVyQmFzZVVybCA9IGBodHRwczovLyR7YWN0aXZlLm5hbWV9YDtcblx0Y29uc29sZS5sb2coYFxcbiAg4pyTIEF1dGgwIHRlbmFudDogJHtpc3N1ZXJCYXNlVXJsfWApO1xuXG5cdHByb2Nlc3Muc3Rkb3V0LndyaXRlKFwiXFxuICBGZXRjaGluZyBBdXRoMCBBUElzLi4uXCIpO1xuXHRjb25zdCB1c2VyQXBpcyA9IGF1dGgwQ2xpLmxpc3RBcGlzKCkuZmlsdGVyKChhKSA9PiAhYS5uYW1lLmluY2x1ZGVzKFwiTWFuYWdlbWVudCBBUElcIikpO1xuXHRwcm9jZXNzLnN0ZG91dC53cml0ZShgIGZvdW5kICR7dXNlckFwaXMubGVuZ3RofS5cXG5gKTtcblxuXHR0eXBlIEFwaUNob2ljZSA9IHsgbGFiZWw6IHN0cmluZzsgZXhpc3Rpbmc6IHN0cmluZyB8IG51bGwgfTtcblx0Y29uc3QgcHJvamVjdE5hbWUgPSB3b3Jrc3BhY2UubmFtZTtcblx0Y29uc3QgYXBpQ2hvaWNlczogQXBpQ2hvaWNlW10gPSBbXG5cdFx0eyBsYWJlbDogYDxuZXc+IGh0dHBzOi8vYXBpLiR7cHJvamVjdE5hbWV9YCwgZXhpc3Rpbmc6IG51bGwgfSxcblx0XHQuLi51c2VyQXBpcy5tYXAoKGEpID0+ICh7IGxhYmVsOiBgJHthLm5hbWV9IOKAlCAke2EuaWRlbnRpZmllcn1gLCBleGlzdGluZzogYS5pZGVudGlmaWVyIH0pKSxcblx0XTtcblxuXHRjb25zdCBhcGlTZWxlY3RlZCA9IGF3YWl0IHBpY2soXCJcXG4gIFNlbGVjdCBBdXRoMCBBUEk6IFwiLCBhcGlDaG9pY2VzLCAoYykgPT4gYy5sYWJlbCk7XG5cblx0bGV0IGF1ZGllbmNlOiBzdHJpbmc7XG5cdGlmICghYXBpU2VsZWN0ZWQgfHwgYXBpU2VsZWN0ZWQuZXhpc3RpbmcgPT09IG51bGwpIHtcblx0XHRjb25zdCBkZWZhdWx0SWQgPSBgaHR0cHM6Ly9hcGkuJHtwcm9qZWN0TmFtZX1gO1xuXHRcdGF1ZGllbmNlID0gYXdhaXQgYXNrKGAgIEFQSSBJZGVudGlmaWVyIFske2RlZmF1bHRJZH1dOiBgLCBkZWZhdWx0SWQpO1xuXHRcdGNvbnNvbGUubG9nKFwiXFxuICBDcmVhdGluZyBBdXRoMCBBUEkuLi5cIik7XG5cdFx0YXVkaWVuY2UgPSBhdXRoMENsaS5jcmVhdGVBcGkoYCR7cHJvamVjdE5hbWV9IEFQSWAsIGF1ZGllbmNlKS5pZGVudGlmaWVyO1xuXHRcdGNvbnNvbGUubG9nKGAgIFxcdTI3MTMgQVBJIGNyZWF0ZWQ6ICR7YXVkaWVuY2V9YCk7XG5cdH0gZWxzZSB7XG5cdFx0YXVkaWVuY2UgPSBhcGlTZWxlY3RlZC5leGlzdGluZztcblx0XHRjb25zb2xlLmxvZyhgICBcXHUyNzEzIFNlbGVjdGVkOiAke2F1ZGllbmNlfWApO1xuXHRcdHRyeSB7XG5cdFx0XHRhdXRoMENsaS51cGRhdGVBcGlTY29wZXMoYXVkaWVuY2UpO1xuXHRcdFx0Y29uc29sZS5sb2coYCAgXFx1MjcxMyBBUEkgc2NvcGVzIGVuc3VyZWQgKCR7YXV0aDBDbGkuSEVMTE9fQVBJX1NDT1BFUy5qb2luKFwiLCBcIil9KWApO1xuXHRcdH0gY2F0Y2gge1xuXHRcdFx0Y29uc29sZS5lcnJvcihcblx0XHRcdFx0XCIgIOKclyBGYWlsZWQgdG8gdXBkYXRlIEFQSSBzY29wZXMg4oCUIGFkZCBIZWxsbyBzY29wZXMgaW4gdGhlIEF1dGgwIGRhc2hib2FyZC5cIixcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0Y29uc3Qgd2l0aExvY2FsVXNlcnMgPSBjbGlPcHRpb25zLmRhdGFiYXNlUHJvdmlkZXIgPT09IFwicG9zdGdyZXMvdHlwZW9ybVwiO1xuXHRsZXQgYWRtaW5Vc2VybmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRsZXQgYWRtaW5QYXNzd29yZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRpZiAod2l0aExvY2FsVXNlcnMpIHtcblx0XHRhZG1pblVzZXJuYW1lID1cblx0XHRcdGNsaU9wdGlvbnMuYWRtaW5Vc2VybmFtZSA/PyAoYXdhaXQgYXNrKFwiXFxuICBBZG1pbiB1c2VybmFtZSBbYWRtaW5dOiBcIiwgXCJhZG1pblwiKSk7XG5cdFx0YWRtaW5QYXNzd29yZCA9IGNsaU9wdGlvbnMuYWRtaW5QYXNzd29yZDtcblx0XHRpZiAoYWRtaW5QYXNzd29yZCA9PSBudWxsKSB7XG5cdFx0XHRhZG1pblBhc3N3b3JkID0gYXdhaXQgYXNrKFwiICBBZG1pbiBwYXNzd29yZCAobGVhdmUgYmxhbmsgdG8gZ2VuZXJhdGUpOiBcIik7XG5cdFx0XHRpZiAoIWFkbWluUGFzc3dvcmQpIHtcblx0XHRcdFx0YWRtaW5QYXNzd29yZCA9IGF1dGgwQ2xpLmdlbmVyYXRlQWRtaW5QYXNzd29yZCgpO1xuXHRcdFx0XHRjb25zb2xlLmxvZyhgICDinJMgR2VuZXJhdGVkIGFkbWluIHBhc3N3b3JkICh3cml0dGVuIHRvIC5lbnYpOiAke2FkbWluUGFzc3dvcmR9YCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHtcblx0XHRhdXRoUHJvdmlkZXI6IFwiYXV0aDBcIixcblx0XHRpc3N1ZXJCYXNlVXJsLFxuXHRcdGF1ZGllbmNlLFxuXHRcdC4uLih3aXRoTG9jYWxVc2VycyA/IHsgYWRtaW5Vc2VybmFtZSwgYWRtaW5QYXNzd29yZCB9IDoge30pLFxuXHR9O1xufVxuXG5mdW5jdGlvbiBhZG1pbkVtYWlsKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgdXNlcm5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdGlmICh1c2VybmFtZS5pbmNsdWRlcyhcIkBcIikpIHJldHVybiB1c2VybmFtZTtcblx0Y29uc3Qgc2x1ZyA9IHdvcmtzcGFjZU5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtejAtOS1dL2csIFwiLVwiKTtcblx0cmV0dXJuIGAke3VzZXJuYW1lfUAke3NsdWd9LmV4YW1wbGUuY29tYDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQXV0aDBBZG1pblVzZXIoXG5cdHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsXG5cdG9wdGlvbnM6IEF1dGhPcHRpb25zLFxuXHRhdXRoQ29uZmlnOiBBdXRoQ29uZmlnTW9kZWwsXG4pOiB2b2lkIHtcblx0Y29uc3QgdXNlcm5hbWUgPSBvcHRpb25zLmFkbWluVXNlcm5hbWUgPz8gXCJhZG1pblwiO1xuXHRjb25zdCBwYXNzd29yZCA9IG9wdGlvbnMuYWRtaW5QYXNzd29yZDtcblx0aWYgKCFwYXNzd29yZCkgcmV0dXJuO1xuXG5cdGNvbnN0IGVtYWlsID0gYWRtaW5FbWFpbCh3b3Jrc3BhY2UubmFtZSwgdXNlcm5hbWUpO1xuXHR0cnkge1xuXHRcdGNvbnN0IGFkbWluID0gYXV0aDBDbGkuY3JlYXRlQWRtaW5EYXRhYmFzZVVzZXIoeyBlbWFpbCwgcGFzc3dvcmQsIHVzZXJuYW1lIH0pO1xuXHRcdGF1dGhDb25maWcuc2V0QWRtaW5Vc2VyKHtcblx0XHRcdHN1YjogYWRtaW4udXNlcl9pZCxcblx0XHRcdGVtYWlsOiBhZG1pbi5lbWFpbCxcblx0XHRcdHBhc3N3b3JkOiBhZG1pbi5wYXNzd29yZCxcblx0XHRcdHVzZXJuYW1lOiBhZG1pbi51c2VybmFtZSxcblx0XHR9KTtcblx0XHR3b3Jrc3BhY2Vcblx0XHRcdC5nZXRNb2RlbDxFbnZGaWxlPihXRUxMX0tOT1dOX0ZJTEVTLkVOVl9GSUxFKVxuXHRcdFx0Py5hZGRFbnRyeShcIkFVVEgwX0FETUlOX1VTRVJfU1VCXCIsIGFkbWluLnVzZXJfaWQpXG5cdFx0XHQuYWRkRW50cnkoXCJBVVRIMF9BRE1JTl9VU0VSX0VNQUlMXCIsIGFkbWluLmVtYWlsKVxuXHRcdFx0LmFkZEVudHJ5KFwiQVVUSDBfQURNSU5fVVNFUl9QQVNTV09SRFwiLCBhZG1pbi5wYXNzd29yZClcblx0XHRcdC5hZGRFbnRyeShcIkFVVEgwX0FETUlOX1VTRVJOQU1FXCIsIGFkbWluLnVzZXJuYW1lKTtcblx0XHRjb25zb2xlLmxvZyhgICDinJMgQXV0aDAgYWRtaW4gdXNlciByZWFkeTogJHthZG1pbi5lbWFpbH0gKHJvbGU6ICR7QURNSU5fUk9MRX0pYCk7XG5cdFx0Y29uc29sZS5sb2coYCAgICBMb2dpbiB3aXRoIEVNQUlMIChub3QgdXNlcm5hbWUpOiAke2FkbWluLmVtYWlsfWApO1xuXHRcdGNvbnNvbGUubG9nKGAgICAgUGFzc3dvcmQ6IHNlZSBBVVRIMF9BRE1JTl9VU0VSX1BBU1NXT1JEIGluIC5lbnZgKTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Y29uc29sZS5lcnJvcihcblx0XHRcdGAgIOKclyBGYWlsZWQgdG8gZW5zdXJlIEF1dGgwIGFkbWluIHVzZXIgKCR7ZW1haWx9KTogJHtlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogZXJyfWAsXG5cdFx0KTtcblx0fVxufVxuXG5mdW5jdGlvbiBzY2FmZm9sZExvY2FsVXNlclByb2ZpbGUod29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCk6IHZvaWQge1xuXHR3b3Jrc3BhY2Vcblx0XHQuZ2V0TW9kZWw8UGFja2FnZUpzb24+KFdFTExfS05PV05fRklMRVMuUEFDS0FHRV9KU09OKVxuXHRcdD8uYWRkRGVwZW5kZW5jeShcIkBjYXNsL2FiaWxpdHlcIiwgXCJeNi44LjFcIik7XG5cdHdvcmtzcGFjZVxuXHRcdC5nZXRNb2RlbDxBcGlQYWNrYWdlSnNvbj4oV0VMTF9LTk9XTl9GSUxFUy5BUElfUEFDS0FHRV9KU09OKVxuXHRcdD8uYWRkRGVwZW5kZW5jeShcIkBjYXNsL2FiaWxpdHlcIiwgXCJeNi44LjFcIik7XG5cblx0Y29uc3QgbWFpbiA9IHdvcmtzcGFjZS5nZXRNb2RlbDxNYWluU291cmNlRmlsZT4oV0VMTF9LTk9XTl9GSUxFUy5NQUlOX1RTKTtcblx0bWFpblxuXHRcdD8uYWRkRW50aXR5KHsgY2xhc3NOYW1lOiBcIlVzZXJFbnRpdHlcIiwgaW1wb3J0UGF0aDogXCIuL2VudGl0aWVzL3VzZXIuZW50aXR5LmpzXCIgfSlcblx0XHQuYWRkUmVwb3NpdG9yeSh7XG5cdFx0XHRjbGFzc05hbWU6IFwiVXNlckVudGl0eVJlcG9zaXRvcnlcIixcblx0XHRcdGltcG9ydFBhdGg6IFwiLi9yZXBvc2l0b3JpZXMvdXNlci5yZXBvc2l0b3J5LmpzXCIsXG5cdFx0fSlcblx0XHQuYWRkU2VydmljZSh7XG5cdFx0XHRjbGFzc05hbWU6IFwiVXNlclNlcnZpY2VcIixcblx0XHRcdGltcG9ydFBhdGg6IFwiLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UuanNcIixcblx0XHRcdHNjb3BlOiBcInJlcXVlc3RcIixcblx0XHR9KVxuXHRcdC5hZGRJbXBvcnQoXCJjcmVhdGVBYmlsaXR5RmFjdG9yeVwiLCBcIi4vYXV0aC9hYmlsaXR5LmZhY3RvcnkuanNcIilcblx0XHQuYWRkSW1wb3J0KFwibWFwUHJpbmNpcGFsXCIsIFwiLi9hdXRoL2FiaWxpdHkuZmFjdG9yeS5qc1wiKVxuXHRcdC5zZXRUeXBlT3JtU2VlZChcblx0XHRcdFtcblx0XHRcdFx0XCJjb25zdCBzdWIgPSBwcm9jZXNzLmVudi5BVVRIMF9BRE1JTl9VU0VSX1NVQjtcIixcblx0XHRcdFx0XCJpZiAoIXN1YikgcmV0dXJuO1wiLFxuXHRcdFx0XHRcImNvbnN0IHJlcG8gPSBkYXRhU291cmNlLmdldFJlcG9zaXRvcnkoVXNlckVudGl0eSk7XCIsXG5cdFx0XHRcdFwiY29uc3QgZXhpc3RpbmcgPSBhd2FpdCByZXBvLmZpbmRPbmUoeyB3aGVyZTogeyBzdWIgfSB9KTtcIixcblx0XHRcdFx0XCJpZiAoZXhpc3RpbmcpIHJldHVybjtcIixcblx0XHRcdFx0XCJhd2FpdCByZXBvLnNhdmUocmVwby5jcmVhdGUoe1wiLFxuXHRcdFx0XHRcIiAgc3ViLFwiLFxuXHRcdFx0XHRcIiAgZW1haWw6IHByb2Nlc3MuZW52LkFVVEgwX0FETUlOX1VTRVJfRU1BSUwgPz8gbnVsbCxcIixcblx0XHRcdFx0JyAgZGlzcGxheU5hbWU6IHByb2Nlc3MuZW52LkFVVEgwX0FETUlOX1VTRVJOQU1FID8/IFwiYWRtaW5cIiwnLFxuXHRcdFx0XHQnICByb2xlczogW1wiYWRtaW5cIl0sJyxcblx0XHRcdFx0XCJ9KSk7XCIsXG5cdFx0XHRdLmpvaW4oXCIgXCIpLFxuXHRcdCk7XG5cblx0d29ya3NwYWNlLmdldFByb2plY3QoV0VCQVBJX1BST0pFQ1RfRElSKT8uYWRkRmlsZSh7XG5cdFx0ZmlsZXM6ICgpID0+IFtcblx0XHRcdHsgZmlsZVBhdGg6IFwic3JjL2VudGl0aWVzL3VzZXIuZW50aXR5LnRzXCIsIGNvbnRlbnQ6IFVTRVJfRU5USVRZX1RTIH0sXG5cdFx0XHR7IGZpbGVQYXRoOiBcInNyYy9yZXBvc2l0b3JpZXMvdXNlci5yZXBvc2l0b3J5LnRzXCIsIGNvbnRlbnQ6IFVTRVJfUkVQT1NJVE9SWV9UUyB9LFxuXHRcdFx0eyBmaWxlUGF0aDogXCJzcmMvc2VydmljZXMvdXNlci5zZXJ2aWNlLnRzXCIsIGNvbnRlbnQ6IFVTRVJfU0VSVklDRV9UUyB9LFxuXHRcdFx0eyBmaWxlUGF0aDogXCJzcmMvYXV0aC9hYmlsaXR5LmZhY3RvcnkudHNcIiwgY29udGVudDogQUJJTElUWV9GQUNUT1JZX1RTIH0sXG5cdFx0XSxcblx0fSk7XG5cblx0Zm9yIChjb25zdCBjb250cm9sbGVyIG9mIHdvcmtzcGFjZS5nZXRNb2RlbHMoQ29udHJvbGxlclNvdXJjZUZpbGUpKSB7XG5cdFx0Y29udHJvbGxlclxuXHRcdFx0LmFkZEltcG9ydChcIlVzZXJTZXJ2aWNlXCIsIFwiLi4vc2VydmljZXMvdXNlci5zZXJ2aWNlLmpzXCIpXG5cdFx0XHQuYWRkQ29uc3RydWN0b3JQYXJhbShcInByaXZhdGUgcmVhZG9ubHkgdXNlcnM6IFVzZXJTZXJ2aWNlXCIpO1xuXHRcdGNvbnRyb2xsZXIuZ2V0TWV0aG9kKFwiZ2V0T25lXCIpLnNldEFzeW5jKHRydWUpLnNldEJvZHkoW1xuXHRcdFx0XCJjb25zdCB1c2VyID0gYXdhaXQgdGhpcy51c2Vycy5lbnN1cmVGcm9tUHJpbmNpcGFsKHRoaXMucHJpbmNpcGFsUHJvdmlkZXIuY3VycmVudFByaW5jaXBhbCk7XCIsXG5cdFx0XHQvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vVGVtcGxhdGVDdXJseUluU3RyaW5nOiB0ZW1wbGF0ZSBsaXRlcmFsIGluIGdlbmVyYXRlZCBjb2RlXG5cdFx0XHRcInJldHVybiB7IGlkLCBtZXNzYWdlOiBgSGVsbG8gJHt1c2VyLmRpc3BsYXlOYW1lfSFgLCB1c2VybmFtZTogdXNlci5kaXNwbGF5TmFtZSB9O1wiLFxuXHRcdF0pO1xuXHR9XG59XG5cbmZ1bmN0aW9uIHNjYWZmb2xkKHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsIG9wdGlvbnM6IEF1dGhPcHRpb25zKTogdm9pZCB7XG5cdGlmIChvcHRpb25zLmF1dGhQcm92aWRlciAhPT0gXCJhdXRoMFwiKSByZXR1cm47XG5cblx0Y29uc3QgcmVzb3VyY2UgPSBcIkhlbGxvXCI7XG5cdGNvbnN0IHdpdGhMb2NhbFVzZXJzID0gb3B0aW9ucy5kYXRhYmFzZVByb3ZpZGVyID09PSBcInBvc3RncmVzL3R5cGVvcm1cIjtcblxuXHRmb3IgKGNvbnN0IGNvbnRyb2xsZXIgb2Ygd29ya3NwYWNlLmdldE1vZGVscyhDb250cm9sbGVyU291cmNlRmlsZSkpIHtcblx0XHRjb250cm9sbGVyXG5cdFx0XHQuYWRkRGVjb3JhdG9yKGBAQXV0aG9yaXplKFwicmVhZFwiLCBcIiR7cmVzb3VyY2V9XCIpYClcblx0XHRcdC5hZGRDb3J0ZXhJbXBvcnQoXCJBbGxvd0Fub255bW91c1wiKVxuXHRcdFx0LmFkZENvcnRleEltcG9ydChcIkF1dGhvcml6ZVwiKVxuXHRcdFx0LmFkZENvcnRleEltcG9ydChcIklQcmluY2lwYWxQcm92aWRlclRva2VuXCIpXG5cdFx0XHQuYWRkQ29ydGV4SW1wb3J0KFwiSVByaW5jaXBhbFByb3ZpZGVyXCIsIHRydWUpXG5cdFx0XHQuYWRkSW1wb3J0KFwiaW5qZWN0XCIsIFwiQGRlY29oZXJlL2NydWNpYmxlL2RlY29yYXRvcnNcIilcblx0XHRcdC5hZGRDb25zdHJ1Y3RvclBhcmFtKFxuXHRcdFx0XHRgQGluamVjdChJUHJpbmNpcGFsUHJvdmlkZXJUb2tlbikgcHJpdmF0ZSByZWFkb25seSBwcmluY2lwYWxQcm92aWRlcjogSVByaW5jaXBhbFByb3ZpZGVyYCxcblx0XHRcdCk7XG5cdFx0Y29udHJvbGxlci5nZXRNZXRob2QoXCJnZXRBbGxcIikuYWRkRGVjb3JhdG9yKFwiQEFsbG93QW5vbnltb3VzKClcIik7XG5cdFx0aWYgKCF3aXRoTG9jYWxVc2Vycykge1xuXHRcdFx0Y29udHJvbGxlci5nZXRNZXRob2QoXCJnZXRPbmVcIikuc2V0Qm9keShbXG5cdFx0XHRcdFwiY29uc3QgcHJpbmNpcGFsID0gdGhpcy5wcmluY2lwYWxQcm92aWRlci5jdXJyZW50UHJpbmNpcGFsO1wiLFxuXHRcdFx0XHRcImNvbnN0IHVzZXJuYW1lID1cIixcblx0XHRcdFx0J1xcdCh0eXBlb2YgcHJpbmNpcGFsPy5uYW1lID09PSBcInN0cmluZ1wiICYmIHByaW5jaXBhbC5uYW1lKSB8fCcsXG5cdFx0XHRcdCdcXHQodHlwZW9mIHByaW5jaXBhbD8ubmlja25hbWUgPT09IFwic3RyaW5nXCIgJiYgcHJpbmNpcGFsLm5pY2tuYW1lKSB8fCcsXG5cdFx0XHRcdCdcXHQodHlwZW9mIHByaW5jaXBhbD8uZW1haWwgPT09IFwic3RyaW5nXCIgJiYgcHJpbmNpcGFsLmVtYWlsKSB8fCcsXG5cdFx0XHRcdCdcXHQodHlwZW9mIHByaW5jaXBhbD8ucHJlZmVycmVkX3VzZXJuYW1lID09PSBcInN0cmluZ1wiICYmIHByaW5jaXBhbC5wcmVmZXJyZWRfdXNlcm5hbWUpIHx8Jyxcblx0XHRcdFx0XCJcXHRwcmluY2lwYWw/LnN1YiB8fFwiLFxuXHRcdFx0XHQnXFx0XCJ1bmtub3duXCI7Jyxcblx0XHRcdFx0Ly8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub1RlbXBsYXRlQ3VybHlJblN0cmluZzogdGVtcGxhdGUgbGl0ZXJhbCBpbiBnZW5lcmF0ZWQgY29kZVxuXHRcdFx0XHRcInJldHVybiB7IGlkLCBtZXNzYWdlOiBgSGVsbG8gJHt1c2VybmFtZX0hYCwgdXNlcm5hbWUgfTtcIixcblx0XHRcdF0pO1xuXHRcdH1cblx0XHRjb250cm9sbGVyLmdldE1ldGhvZChcImNyZWF0ZVwiKS5hZGREZWNvcmF0b3IoYEBBdXRob3JpemUoXCJjcmVhdGVcIiwgXCIke3Jlc291cmNlfVwiKWApO1xuXHRcdGNvbnRyb2xsZXIuZ2V0TWV0aG9kKFwidXBkYXRlXCIpLmFkZERlY29yYXRvcihgQEF1dGhvcml6ZShcInVwZGF0ZVwiLCBcIiR7cmVzb3VyY2V9XCIpYCk7XG5cdFx0Y29udHJvbGxlci5nZXRNZXRob2QoXCJyZW1vdmVcIikuYWRkRGVjb3JhdG9yKGBAQXV0aG9yaXplKFwiZGVsZXRlXCIsIFwiJHtyZXNvdXJjZX1cIilgKTtcblx0fVxuXG5cdGNvbnN0IG1haW4gPSB3b3Jrc3BhY2UuZ2V0TW9kZWw8TWFpblNvdXJjZUZpbGU+KFdFTExfS05PV05fRklMRVMuTUFJTl9UUyk7XG5cdG1haW4/LmFkZFNpZGVFZmZlY3RJbXBvcnQoXCJAZGVjb2hlcmUvY29ydGV4L2F1dGhcIik7XG5cblx0aWYgKHdpdGhMb2NhbFVzZXJzKSB7XG5cdFx0c2NhZmZvbGRMb2NhbFVzZXJQcm9maWxlKHdvcmtzcGFjZSk7XG5cdFx0bWFpbj8uYWRkQnVpbGRlckNhbGwoXCIud2l0aEF1dGgoY3JlYXRlQWJpbGl0eUZhY3RvcnksIHsgcHJpbmNpcGFsTWFwcGVyOiBtYXBQcmluY2lwYWwgfSlcIik7XG5cdH0gZWxzZSB7XG5cdFx0bWFpbj8uYWRkQnVpbGRlckNhbGwoXCIud2l0aEF1dGgoKVwiKTtcblx0fVxuXG5cdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9UZW1wbGF0ZUN1cmx5SW5TdHJpbmc6IGludGVudGlvbmFsIFlBTUwgZW52LXZhciBwbGFjZWhvbGRlcnNcblx0Y29uc3QgaXNzdWVyUGxhY2Vob2xkZXIgPSBcIiR7QVVUSDBfSVNTVUVSX0JBU0VfVVJMfVwiO1xuXHQvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vVGVtcGxhdGVDdXJseUluU3RyaW5nOiBpbnRlbnRpb25hbCBZQU1MIGVudi12YXIgcGxhY2Vob2xkZXJzXG5cdGNvbnN0IGF1ZFBsYWNlaG9sZGVyID0gXCIke0FVVEgwX0FVRElFTkNFfVwiO1xuXG5cdGNvbnN0IGNvbmZpZ1NlY3Rpb24gPSBgYXV0aDpcXG4gIGRpc2NvdmVyeVVybDogJHtpc3N1ZXJQbGFjZWhvbGRlcn1cXG4gIGF1ZGllbmNlOiAke2F1ZFBsYWNlaG9sZGVyfVxcbmA7XG5cblx0d29ya3NwYWNlLmdldE1vZGVsPENvbmZpZ1lhbWw+KFdFTExfS05PV05fRklMRVMuQ09ORklHX1lBTUwpPy5hZGRTZWN0aW9uKGNvbmZpZ1NlY3Rpb24pO1xuXG5cdHdvcmtzcGFjZVxuXHRcdC5nZXRNb2RlbDxFbnZGaWxlPihXRUxMX0tOT1dOX0ZJTEVTLkVOVl9GSUxFKVxuXHRcdD8uYWRkRW50cnkoXCJBVVRIMF9JU1NVRVJfQkFTRV9VUkxcIiwgb3B0aW9ucy5pc3N1ZXJCYXNlVXJsID8/IFwiXCIpXG5cdFx0LmFkZEVudHJ5KFwiQVVUSDBfQVVESUVOQ0VcIiwgb3B0aW9ucy5hdWRpZW5jZSA/PyBcIlwiKTtcblxuXHRjb25zdCBhdXRoQ29uZmlnID0gbmV3IEF1dGhDb25maWdNb2RlbCh7XG5cdFx0aXNzdWVyQmFzZVVybDogb3B0aW9ucy5pc3N1ZXJCYXNlVXJsID8/IFwiXCIsXG5cdFx0YXVkaWVuY2U6IG9wdGlvbnMuYXVkaWVuY2UgPz8gXCJcIixcblx0fSk7XG5cdHdvcmtzcGFjZS5hZGRNb2RlbChhdXRoQ29uZmlnKTtcblxuXHRpZiAod2l0aExvY2FsVXNlcnMgJiYgb3B0aW9ucy5hZG1pblBhc3N3b3JkKSB7XG5cdFx0Y3JlYXRlQXV0aDBBZG1pblVzZXIod29ya3NwYWNlLCBvcHRpb25zLCBhdXRoQ29uZmlnKTtcblx0fVxufVxuXG5leHBvcnQgY29uc3QgQXV0aEZlYXR1cmU6IEZlYXR1cmU8QXV0aE9wdGlvbnM+ID0geyBnZXRPcHRpb25zLCBzY2FmZm9sZCB9O1xuIl0sIm5hbWVzIjpbIkF1dGhGZWF0dXJlIiwiQURNSU5fUk9MRSIsIlVTRVJfRU5USVRZX1RTIiwiVVNFUl9SRVBPU0lUT1JZX1RTIiwiVVNFUl9TRVJWSUNFX1RTIiwiQUJJTElUWV9GQUNUT1JZX1RTIiwiZ2V0T3B0aW9ucyIsIndvcmtzcGFjZSIsImNsaU9wdGlvbnMiLCJhdXRoUHJvdmlkZXIiLCJpc3N1ZXJCYXNlVXJsIiwiZ2V0QXV0aDBPcHRpb25zIiwiY2hvaWNlcyIsImxhYmVsIiwic2VsZWN0ZWQiLCJwaWNrIiwiYyIsInByb3ZpZGVyIiwiYXV0aDBDbGkiLCJpc0luc3RhbGxlZCIsImNvbnNvbGUiLCJlcnJvciIsInByb2Nlc3MiLCJleGl0Iiwic3Rkb3V0Iiwid3JpdGUiLCJ0ZW5hbnRzIiwibGlzdFRlbmFudHMiLCJsZW5ndGgiLCJsb2ciLCJsb2dpbiIsImxpc3RBcGlzIiwiZXJyIiwiQXV0aDBBdXRoRXJyb3IiLCJhY3RpdmUiLCJmaW5kIiwidCIsIm5hbWUiLCJ1c2VyQXBpcyIsImZpbHRlciIsImEiLCJpbmNsdWRlcyIsInByb2plY3ROYW1lIiwiYXBpQ2hvaWNlcyIsImV4aXN0aW5nIiwibWFwIiwiaWRlbnRpZmllciIsImFwaVNlbGVjdGVkIiwiYXVkaWVuY2UiLCJkZWZhdWx0SWQiLCJhc2siLCJjcmVhdGVBcGkiLCJ1cGRhdGVBcGlTY29wZXMiLCJIRUxMT19BUElfU0NPUEVTIiwiam9pbiIsIndpdGhMb2NhbFVzZXJzIiwiZGF0YWJhc2VQcm92aWRlciIsImFkbWluVXNlcm5hbWUiLCJhZG1pblBhc3N3b3JkIiwiZ2VuZXJhdGVBZG1pblBhc3N3b3JkIiwiYWRtaW5FbWFpbCIsIndvcmtzcGFjZU5hbWUiLCJ1c2VybmFtZSIsInNsdWciLCJ0b0xvd2VyQ2FzZSIsInJlcGxhY2UiLCJjcmVhdGVBdXRoMEFkbWluVXNlciIsIm9wdGlvbnMiLCJhdXRoQ29uZmlnIiwicGFzc3dvcmQiLCJlbWFpbCIsImFkbWluIiwiY3JlYXRlQWRtaW5EYXRhYmFzZVVzZXIiLCJzZXRBZG1pblVzZXIiLCJzdWIiLCJ1c2VyX2lkIiwiZ2V0TW9kZWwiLCJXRUxMX0tOT1dOX0ZJTEVTIiwiRU5WX0ZJTEUiLCJhZGRFbnRyeSIsIkVycm9yIiwibWVzc2FnZSIsInNjYWZmb2xkTG9jYWxVc2VyUHJvZmlsZSIsIlBBQ0tBR0VfSlNPTiIsImFkZERlcGVuZGVuY3kiLCJBUElfUEFDS0FHRV9KU09OIiwibWFpbiIsIk1BSU5fVFMiLCJhZGRFbnRpdHkiLCJjbGFzc05hbWUiLCJpbXBvcnRQYXRoIiwiYWRkUmVwb3NpdG9yeSIsImFkZFNlcnZpY2UiLCJzY29wZSIsImFkZEltcG9ydCIsInNldFR5cGVPcm1TZWVkIiwiZ2V0UHJvamVjdCIsIldFQkFQSV9QUk9KRUNUX0RJUiIsImFkZEZpbGUiLCJmaWxlcyIsImZpbGVQYXRoIiwiY29udGVudCIsImNvbnRyb2xsZXIiLCJnZXRNb2RlbHMiLCJDb250cm9sbGVyU291cmNlRmlsZSIsImFkZENvbnN0cnVjdG9yUGFyYW0iLCJnZXRNZXRob2QiLCJzZXRBc3luYyIsInNldEJvZHkiLCJzY2FmZm9sZCIsInJlc291cmNlIiwiYWRkRGVjb3JhdG9yIiwiYWRkQ29ydGV4SW1wb3J0IiwiYWRkU2lkZUVmZmVjdEltcG9ydCIsImFkZEJ1aWxkZXJDYWxsIiwiaXNzdWVyUGxhY2Vob2xkZXIiLCJhdWRQbGFjZWhvbGRlciIsImNvbmZpZ1NlY3Rpb24iLCJDT05GSUdfWUFNTCIsImFkZFNlY3Rpb24iLCJBdXRoQ29uZmlnTW9kZWwiLCJhZGRNb2RlbCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFxZGFBOzs7ZUFBQUE7Ozt3QkFyZGE7dUJBRU87d0JBS0U7aUNBRUg7MkNBQ0s7a0VBRVg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVcxQixNQUFNQyxhQUFhO0FBRW5CLE1BQU1DLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQnhCLENBQUM7QUFFRCxNQUFN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
|
|
@@ -14,7 +14,7 @@ const _nodepath = require("node:path");
|
|
|
14
14
|
const _prompt = require("../../domain/prompt.js");
|
|
15
15
|
const _const = require("../../models/const.js");
|
|
16
16
|
const _version = require("../../version.js");
|
|
17
|
-
const
|
|
17
|
+
const _const1 = require("../const.js");
|
|
18
18
|
/** Read a single KEY= from an existing target `.env` (if any). */ function readExistingEnvValue(workspace, key) {
|
|
19
19
|
try {
|
|
20
20
|
const raw = (0, _nodefs.readFileSync)((0, _nodepath.join)(workspace.targetDir, ".env"), "utf8");
|
|
@@ -222,7 +222,7 @@ function scaffold(workspace, options) {
|
|
|
222
222
|
workspace.getModel(_const.WELL_KNOWN_FILES.CONFIG_YAML)?.addSection(DATABASE_BASE_CONFIG_YAML);
|
|
223
223
|
workspace.getModel(_const.WELL_KNOWN_FILES.CONFIG_DEV_YAML)?.addSection(DATABASE_DEV_CONFIG_YAML);
|
|
224
224
|
// Register entity and repository source files in the api project
|
|
225
|
-
workspace.getProject(
|
|
225
|
+
workspace.getProject(_const1.WEBAPI_PROJECT_DIR)?.addFile({
|
|
226
226
|
files: ()=>[
|
|
227
227
|
{
|
|
228
228
|
filePath: "src/entities/sample.entity.ts",
|
|
@@ -243,4 +243,4 @@ const DatabaseFeature = {
|
|
|
243
243
|
scaffold
|
|
244
244
|
};
|
|
245
245
|
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL2ZlYXR1cmVzL2RhdGFiYXNlLmZlYXR1cmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgcGljayB9IGZyb20gXCIuLi8uLi9kb21haW4vcHJvbXB0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IERvY2tlckNvbXBvc2UgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvc2UubW9kZWwuanNcIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlnWWFtbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29uZmlnLXlhbWwubW9kZWwuanNcIjtcbmltcG9ydCB7IFdFTExfS05PV05fRklMRVMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbnN0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IERldkNvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9tb2RlbHMvZGV2LWNvbnRhaW5lci5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBFbnZGaWxlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9lbnYtZmlsZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBQYWNrYWdlSnNvbiB9IGZyb20gXCIuLi8uLi9tb2RlbHMvcGFja2FnZS1qc29uLm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFdvcmtzcGFjZVNjYWZmb2xkIH0gZnJvbSBcIi4uLy4uL21vZGVscy9wcm9qZWN0Lm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEZlYXR1cmUgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2NhZmZvbGQuc2VydmljZS5qc1wiO1xuaW1wb3J0IHsgQ1JFQVRFX1ZFUlNJT04gfSBmcm9tIFwiLi4vLi4vdmVyc2lvbi5qc1wiO1xuaW1wb3J0IHsgV0VCQVBJX1BST0pFQ1RfRElSIH0gZnJvbSBcIi4uL2NyZWF0ZS1hcGkuanNcIjtcbmltcG9ydCB0eXBlIHsgQXBpUGFja2FnZUpzb24gfSBmcm9tIFwiLi4vbW9kZWxzL2FwaS1wYWNrYWdlLWpzb24ubW9kZWwuanNcIjtcbmltcG9ydCB0eXBlIHsgTWFpblNvdXJjZUZpbGUgfSBmcm9tIFwiLi4vbW9kZWxzL21haW4tc291cmNlLWZpbGUubW9kZWwuanNcIjtcblxuZXhwb3J0IHR5cGUgRGF0YWJhc2VPcHRpb25zID0ge1xuXHRkYXRhYmFzZVByb3ZpZGVyPzogXCJub25lXCIgfCBcInBvc3RncmVzL3R5cGVvcm1cIjtcbn07XG5cbi8qKiBSZWFkIGEgc2luZ2xlIEtFWT0gZnJvbSBhbiBleGlzdGluZyB0YXJnZXQgYC5lbnZgIChpZiBhbnkpLiAqL1xuZnVuY3Rpb24gcmVhZEV4aXN0aW5nRW52VmFsdWUod29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCwga2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHR0cnkge1xuXHRcdGNvbnN0IHJhdyA9IHJlYWRGaWxlU3luYyhqb2luKHdvcmtzcGFjZS50YXJnZXREaXIsIFwiLmVudlwiKSwgXCJ1dGY4XCIpO1xuXHRcdGNvbnN0IGxpbmUgPSByYXcuc3BsaXQoXCJcXG5cIikuZmluZCgobCkgPT4gbC5zdGFydHNXaXRoKGAke2tleX09YCkpO1xuXHRcdGNvbnN0IHZhbHVlID0gbGluZT8uc2xpY2Uoa2V5Lmxlbmd0aCArIDEpLnRyaW0oKTtcblx0XHRyZXR1cm4gdmFsdWUgfHwgdW5kZWZpbmVkO1xuXHR9IGNhdGNoIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVBhc3N3b3JkKCk6IHN0cmluZyB7XG5cdHJldHVybiByYW5kb21CeXRlcygxNikudG9TdHJpbmcoXCJoZXhcIik7XG59XG5cbi8qKiBTYWZlIFBvc3RncmVzIGlkZW50aWZpZXIgZnJhZ21lbnQgZnJvbSB0aGUgcHJvamVjdCBuYW1lLiAqL1xuZnVuY3Rpb24gdG9TcWxJZGVudEZyYWdtZW50KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdGNvbnN0IGNsZWFuZWQgPSBuYW1lLnJlcGxhY2UoL1teQS1aYS16MC05X10vZywgXCJfXCIpLnJlcGxhY2UoL14oW15BLVphLXpfXSkvLCBcInBfJDFcIik7XG5cdHJldHVybiBjbGVhbmVkLmxlbmd0aCA+IDAgPyBjbGVhbmVkLnNsaWNlKDAsIDQwKSA6IFwiYXBwXCI7XG59XG5cbmZ1bmN0aW9uIHBhc3N3b3JkT3JFeGlzdGluZyhcblx0d29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCxcblx0a2V5OiBzdHJpbmcsXG5cdGZhbGxiYWNrRXhpc3RpbmdLZXlzOiBzdHJpbmdbXSA9IFtdLFxuKTogc3RyaW5nIHtcblx0Y29uc3QgZXhpc3RpbmcgPSByZWFkRXhpc3RpbmdFbnZWYWx1ZSh3b3Jrc3BhY2UsIGtleSk7XG5cdGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nO1xuXHRmb3IgKGNvbnN0IGFsdCBvZiBmYWxsYmFja0V4aXN0aW5nS2V5cykge1xuXHRcdGNvbnN0IHYgPSByZWFkRXhpc3RpbmdFbnZWYWx1ZSh3b3Jrc3BhY2UsIGFsdCk7XG5cdFx0aWYgKHYpIHJldHVybiB2O1xuXHR9XG5cdHJldHVybiByYW5kb21QYXNzd29yZCgpO1xufVxuXG4vLyBQcm9kdWN0aW9uIGJhc2U6IHJ1bnRpbWUgYXBwIHJvbGUgb25seSDigJQgbm8gYm9vdHN0cmFwLCBubyBhZG1pbi9taWdyYXRlIHNlY3JldHMgcmVxdWlyZWQuXG5jb25zdCBEQVRBQkFTRV9CQVNFX0NPTkZJR19ZQU1MID0gYGRhdGFiYXNlOlxuICBkYXRhU291cmNlczpcbiAgICAtIG5hbWU6IGRlZmF1bHRcbiAgICAgIHByb3ZpZGVyOiBwb3N0Z3Jlc1xuICAgICAgaG9zdDogXFwke0RCX0hPU1R9XG4gICAgICBwb3J0OiBcXCR7REJfUE9SVH1cbiAgICAgIGRhdGFiYXNlOiBcXCR7REJfTkFNRX1cbiAgICAgIHVzZXJuYW1lOiBcXCR7REJfVVNFUn1cbiAgICAgIHBhc3N3b3JkOiBcXCR7REJfUEFTU1dPUkR9XG4gICAgICBzeW5jaHJvbml6ZTogZmFsc2VcbiAgICAgIHNlZWQ6IGZhbHNlXG4gICAgICBib290c3RyYXA6IGZhbHNlXG5gO1xuXG4vLyBEZXY6IGVuYWJsZSBib290c3RyYXAgKyBtaWdyYXRlIHJvbGU7IHN5bmNocm9uaXplIHVzZXMgYXBwIERETCAoZGV2LW9ubHkgZXhjZXB0aW9uKS5cbmNvbnN0IERBVEFCQVNFX0RFVl9DT05GSUdfWUFNTCA9IGBkYXRhYmFzZTpcbiAgZGF0YVNvdXJjZXM6XG4gICAgLSBzeW5jaHJvbml6ZTogdHJ1ZVxuICAgICAgc2VlZDogdHJ1ZVxuICAgICAgYm9vdHN0cmFwOiB0cnVlXG4gICAgICBhZG1pblVzZXI6IFxcJHtEQl9BRE1JTl9VU0VSfVxuICAgICAgYWRtaW5QYXNzd29yZDogXFwke0RCX0FETUlOX1BBU1NXT1JEfVxuICAgICAgbWlncmF0ZVVzZXJuYW1lOiBcXCR7REJfTUlHUkFURV9VU0VSfVxuICAgICAgbWlncmF0ZVBhc3N3b3JkOiBcXCR7REJfTUlHUkFURV9QQVNTV09SRH1cbmA7XG5cbi8qKiBSdW5zIG9uY2Ugb24gZmlyc3QgUG9zdGdyZXMgdm9sdW1lIGluaXQg4oCUIGNyZWF0ZXMgcmVzdHJpY3RlZCBib290c3RyYXAgcm9sZSAobm90IHN1cGVydXNlcikuICovXG5jb25zdCBQT1NUR1JFU19JTklUX0JPT1RTVFJBUF9TSCA9IGAjIS9iaW4vYmFzaFxuc2V0IC1ldW8gcGlwZWZhaWxcbiMgQ29udGFpbmVyIHN1cGVydXNlciAoUE9TVEdSRVNfVVNFUikgY3JlYXRlcyBhIHJlc3RyaWN0ZWQgcHJvdmlzaW9uZXIgcm9sZS5cbiMgQXBwL21pZ3JhdGUgcm9sZXMgYXJlIGNyZWF0ZWQgbGF0ZXIgYnkgY29kZXgtdHlwZW9ybSBwcmVwYXJlRGF0YWJhc2UgKGRldiBib290c3RyYXApLlxuOiBcIlxcJHtEQl9BRE1JTl9VU0VSOj9EQl9BRE1JTl9VU0VSIGlzIHJlcXVpcmVkfVwiXG46IFwiXFwke0RCX0FETUlOX1BBU1NXT1JEOj9EQl9BRE1JTl9QQVNTV09SRCBpcyByZXF1aXJlZH1cIlxuXG5wc3FsIC12IE9OX0VSUk9SX1NUT1A9MSAtLXVzZXJuYW1lIFwiJFBPU1RHUkVTX1VTRVJcIiAtLWRibmFtZSBcIiRQT1NUR1JFU19EQlwiIFxcXFxcblxcdC0tc2V0PWJvb3RzdHJhcF91c2VyPVwiJERCX0FETUlOX1VTRVJcIiBcXFxcXG5cXHQtLXNldD1ib290c3RyYXBfcGFzc3dvcmQ9XCIkREJfQURNSU5fUEFTU1dPUkRcIiA8PCdFT1NRTCdcblNFTEVDVCBmb3JtYXQoXG5cXHQnQ1JFQVRFIFJPTEUgJUkgTE9HSU4gUEFTU1dPUkQgJUwgQ1JFQVRFREIgQ1JFQVRFUk9MRSBOT1NVUEVSVVNFUiBOT0JZUEFTU1JMUycsXG5cXHQ6J2Jvb3RzdHJhcF91c2VyJyxcblxcdDonYm9vdHN0cmFwX3Bhc3N3b3JkJ1xuKVxuV0hFUkUgTk9UIEVYSVNUUyAoXG5cXHRTRUxFQ1QgMSBGUk9NIHBnX2NhdGFsb2cucGdfcm9sZXMgV0hFUkUgcm9sbmFtZSA9IDonYm9vdHN0cmFwX3VzZXInXG4pXFxcXGdleGVjXG5cbkdSQU5UIEFMTCBPTiBTQ0hFTUEgcHVibGljIFRPIDpcImJvb3RzdHJhcF91c2VyXCI7XG5FT1NRTFxuXG5wc3FsIC12IE9OX0VSUk9SX1NUT1A9MSAtLXVzZXJuYW1lIFwiJFBPU1RHUkVTX1VTRVJcIiAtLWRibmFtZSBcIiRQT1NUR1JFU19EQlwiIFxcXFxcblxcdC1jIFwiR1JBTlQgQUxMIFBSSVZJTEVHRVMgT04gREFUQUJBU0UgXFxcXFwiJFBPU1RHUkVTX0RCXFxcXFwiIFRPIFxcXFxcIiREQl9BRE1JTl9VU0VSXFxcXFwiXCJcbmA7XG5cbmNvbnN0IFNBTVBMRV9FTlRJVFlfVFMgPSBgaW1wb3J0IHsgQ29sdW1uLCBFbnRpdHksIFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4gfSBmcm9tIFwidHlwZW9ybVwiO1xuaW1wb3J0IHR5cGUgeyBFbnRpdHkgYXMgSUVudGl0eSB9IGZyb20gXCJAZGVjb2hlcmUvY29kZXhcIjtcblxuQEVudGl0eSgpXG5leHBvcnQgY2xhc3MgU2FtcGxlRW50aXR5IGltcGxlbWVudHMgSUVudGl0eSB7XG5cXHRAUHJpbWFyeUdlbmVyYXRlZENvbHVtbigpXG5cXHRwdWJsaWMgaWQhOiBudW1iZXI7XG5cblxcdEBDb2x1bW4oKVxuXFx0cHVibGljIG5hbWUhOiBzdHJpbmc7XG59XG5gO1xuXG5jb25zdCBTQU1QTEVfUkVQT1NJVE9SWV9UUyA9IGBpbXBvcnQgeyBpbmplY3RhYmxlIH0gZnJvbSBcIkBkZWNvaGVyZS9jcnVjaWJsZS9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBpbmplY3RVbml0T2ZXb3JrIH0gZnJvbSBcIkBkZWNvaGVyZS9jb2RleFwiO1xuaW1wb3J0IHsgVHlwZU9ybVJlcG9zaXRvcnksIFR5cGVPcm1Vbml0T2ZXb3JrIH0gZnJvbSBcIkBkZWNvaGVyZS9jb2RleC10eXBlb3JtXCI7XG5pbXBvcnQgeyBTYW1wbGVFbnRpdHkgfSBmcm9tIFwiLi4vZW50aXRpZXMvc2FtcGxlLmVudGl0eS5qc1wiO1xuXG5AaW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2FtcGxlRW50aXR5UmVwb3NpdG9yeSBleHRlbmRzIFR5cGVPcm1SZXBvc2l0b3J5PFNhbXBsZUVudGl0eT4ge1xuXFx0cHVibGljIGNvbnN0cnVjdG9yKEBpbmplY3RVbml0T2ZXb3JrKCkgdW5pdE9mV29yazogVHlwZU9ybVVuaXRPZldvcmspIHtcblxcdFxcdHN1cGVyKHVuaXRPZldvcmssIFNhbXBsZUVudGl0eSk7XG5cXHR9XG59XG5gO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRPcHRpb25zKFxuXHRfd29ya3NwYWNlOiBXb3Jrc3BhY2VTY2FmZm9sZCxcblx0Y2xpT3B0aW9uczogUGFydGlhbDxEYXRhYmFzZU9wdGlvbnM+LFxuKTogUHJvbWlzZTxQYXJ0aWFsPERhdGFiYXNlT3B0aW9ucz4+IHtcblx0aWYgKGNsaU9wdGlvbnMuZGF0YWJhc2VQcm92aWRlciAhPSBudWxsKSByZXR1cm4ge307XG5cblx0Y29uc3QgY2hvaWNlcyA9IFt7IGxhYmVsOiBcIm5vbmVcIiBhcyBjb25zdCB9LCB7IGxhYmVsOiBcInBvc3RncmVzL3R5cGVvcm1cIiBhcyBjb25zdCB9XTtcblx0Y29uc3Qgc2VsZWN0ZWQgPSBhd2FpdCBwaWNrKFwiXFxuICBEYXRhYmFzZTogXCIsIGNob2ljZXMsIChjKSA9PiBjLmxhYmVsKTtcblx0cmV0dXJuIHsgZGF0YWJhc2VQcm92aWRlcjogc2VsZWN0ZWQ/LmxhYmVsID8/IFwibm9uZVwiIH07XG59XG5cbmZ1bmN0aW9uIHNjYWZmb2xkKHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsIG9wdGlvbnM6IERhdGFiYXNlT3B0aW9ucyk6IHZvaWQge1xuXHRpZiAob3B0aW9ucy5kYXRhYmFzZVByb3ZpZGVyICE9PSBcInBvc3RncmVzL3R5cGVvcm1cIikgcmV0dXJuO1xuXG5cdGNvbnN0IG5hbWUgPSB3b3Jrc3BhY2UubmFtZTtcblx0Y29uc3QgaWRlbnQgPSB0b1NxbElkZW50RnJhZ21lbnQobmFtZSk7XG5cdGNvbnN0IGRiID0gYCR7aWRlbnR9X2RldmA7XG5cdC8vIENvbnRhaW5lciBpbml0IHN1cGVydXNlciDigJQgbmV2ZXIgcmV1c2VkIGFzIHRoZSBBUEkgcnVudGltZSByb2xlLlxuXHRjb25zdCBwb3N0Z3Jlc1N1cGVydXNlciA9IFwicG9zdGdyZXNcIjtcblx0Y29uc3QgcG9zdGdyZXNQYXNzd29yZCA9IHBhc3N3b3JkT3JFeGlzdGluZyh3b3Jrc3BhY2UsIFwiUE9TVEdSRVNfUEFTU1dPUkRcIik7XG5cdGNvbnN0IGJvb3RzdHJhcFVzZXIgPSBcImRlY29oZXJlX2Jvb3RzdHJhcFwiO1xuXHRjb25zdCBib290c3RyYXBQYXNzd29yZCA9IHBhc3N3b3JkT3JFeGlzdGluZyh3b3Jrc3BhY2UsIFwiREJfQURNSU5fUEFTU1dPUkRcIiwgW1xuXHRcdFwiUE9TVEdSRVNfUEFTU1dPUkRcIixcblx0XSk7XG5cdGNvbnN0IGFwcFVzZXIgPSBgJHtpZGVudH1fYXBwYDtcblx0Y29uc3QgYXBwUGFzc3dvcmQgPSBwYXNzd29yZE9yRXhpc3Rpbmcod29ya3NwYWNlLCBcIkRCX1BBU1NXT1JEXCIpO1xuXHRjb25zdCBtaWdyYXRlVXNlciA9IGAke2lkZW50fV9taWdyYXRlYDtcblx0Y29uc3QgbWlncmF0ZVBhc3N3b3JkID0gcGFzc3dvcmRPckV4aXN0aW5nKHdvcmtzcGFjZSwgXCJEQl9NSUdSQVRFX1BBU1NXT1JEXCIpO1xuXG5cdGNvbnN0IGRldkNvbnRhaW5lciA9IHdvcmtzcGFjZS5nZXRNb2RlbDxEZXZDb250YWluZXI+KFdFTExfS05PV05fRklMRVMuREVWQ09OVEFJTkVSX0pTT04pO1xuXHRjb25zdCBjb21wb3NlID0gd29ya3NwYWNlLmdldE1vZGVsPERvY2tlckNvbXBvc2U+KFdFTExfS05PV05fRklMRVMuRE9DS0VSX0NPTVBPU0UpO1xuXG5cdGNvbnN0IG5ldHdvcmtLZXkgPSBuYW1lO1xuXHRjb25zdCB2b2x1bWVOYW1lID0gYCR7bmFtZX0tcG9zdGdyZXMtZGF0YWA7XG5cblx0Ly8gSXNvbGF0ZWQgY29tcG9zZSBwcm9qZWN0IG5ldHdvcmsgKyB2b2x1bWUgKG5vdCBhcmsncyBzaGFyZWQgUG9zdGdyZXMpLlxuXHQvLyBBbGlhcyBgcG9zdGdyZXNgIHNvIG90aGVyIHN0YWNrcyBvbiB0aGUgc2FtZSBuYW1lZCBuZXR3b3JrIGNhbiB1c2UgREJfSE9TVD1wb3N0Z3Jlcy5cblx0Y29tcG9zZVxuXHRcdD8uYWRkU2VydmljZShcInBvc3RncmVzXCIsIHtcblx0XHRcdGltYWdlOiBcInBvc3RncmVzOjE2XCIsXG5cdFx0XHRjb250YWluZXJfbmFtZTogYHNhbXBsZXMtJHtuYW1lfS1wb3N0Z3Jlc2AsXG5cdFx0XHRyZXN0YXJ0OiBcInVubGVzcy1zdG9wcGVkXCIsXG5cdFx0XHQvLyBMb29wYmFjay1vbmx5OiBhdm9pZCBleHBvc2luZyBQb3N0Z3JlcyBvbiBMQU4vcHVibGljIGludGVyZmFjZXMuXG5cdFx0XHQvLyBIb3N0IDU0MzMgYXZvaWRzIGNsYXNoaW5nIHdpdGggYSBsb2NhbC9vdGhlciBQb3N0Z3JlcyBvbiA1NDMyLlxuXHRcdFx0cG9ydHM6IFtcIjEyNy4wLjAuMTo1NDMzOjU0MzJcIl0sXG5cdFx0XHR2b2x1bWVzOiBbXG5cdFx0XHRcdGAke3ZvbHVtZU5hbWV9Oi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YWAsXG5cdFx0XHRcdFwiLi4vLmRldmNvbnRhaW5lci9wb3N0Z3Jlcy1pbml0Oi9kb2NrZXItZW50cnlwb2ludC1pbml0ZGIuZDpyb1wiLFxuXHRcdFx0XSxcblx0XHRcdG5ldHdvcmtzOiBbeyBbbmV0d29ya0tleV06IHsgYWxpYXNlczogW1wicG9zdGdyZXNcIl0gfSB9XSxcblx0XHRcdGhlYWx0aGNoZWNrOiB7XG5cdFx0XHRcdHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBgcGdfaXNyZWFkeSAtVSAke3Bvc3RncmVzU3VwZXJ1c2VyfSAtZCAke2RifWBdLFxuXHRcdFx0XHRpbnRlcnZhbDogXCIyc1wiLFxuXHRcdFx0XHR0aW1lb3V0OiBcIjVzXCIsXG5cdFx0XHRcdHJldHJpZXM6IDE1LFxuXHRcdFx0fSxcblx0XHR9KVxuXHRcdC5hZGRFbnZGaWxlKFwicG9zdGdyZXNcIiwgXCIuLi8uZW52XCIpXG5cdFx0LmFkZFZvbHVtZSh2b2x1bWVOYW1lKTtcblxuXHQvLyBPcHRpb25hbCBEQiBVSSDigJQgZW5hYmxlIHdpdGg6IGRvY2tlciBjb21wb3NlIC0tcHJvZmlsZSB0b29scyB1cCAtZFxuXHRjb21wb3NlPy5hZGRTZXJ2aWNlKFwiYWRtaW5lclwiLCB7XG5cdFx0aW1hZ2U6IFwiYWRtaW5lclwiLFxuXHRcdHByb2ZpbGVzOiBbXCJ0b29sc1wiXSxcblx0XHRwb3J0czogW1wiMTI3LjAuMC4xOjgwODE6ODA4MFwiXSxcblx0XHRuZXR3b3JrczogW25ldHdvcmtLZXldLFxuXHR9KTtcblxuXHR3b3Jrc3BhY2UuYWRkRmlsZSh7XG5cdFx0ZmlsZXM6ICgpID0+IFtcblx0XHRcdHtcblx0XHRcdFx0ZmlsZVBhdGg6IFwiLmRldmNvbnRhaW5lci9wb3N0Z3Jlcy1pbml0LzAxLWNyZWF0ZS1ib290c3RyYXAtcm9sZS5zaFwiLFxuXHRcdFx0XHRjb250ZW50OiBQT1NUR1JFU19JTklUX0JPT1RTVFJBUF9TSCxcblx0XHRcdH0sXG5cdFx0XSxcblx0fSk7XG5cblx0Ly8gQWRkIFNRTFRvb2xzIGV4dGVuc2lvbiBmb3IgREIgYnJvd3NpbmcgaW4gVlMgQ29kZVxuXHRkZXZDb250YWluZXI/LmFkZEV4dGVuc2lvbihcIm10eHIuc3FsdG9vbHNcIik7XG5cblx0Ly8gV2lyZSB1cCBtYWluLnRzXG5cdHdvcmtzcGFjZVxuXHRcdC5nZXRNb2RlbDxNYWluU291cmNlRmlsZT4oV0VMTF9LTk9XTl9GSUxFUy5NQUlOX1RTKVxuXHRcdD8uYWRkU2lkZUVmZmVjdEltcG9ydChcIkBkZWNvaGVyZS9jb2RleC10eXBlb3JtXCIpXG5cdFx0LmFkZEVudGl0eSh7IGNsYXNzTmFtZTogXCJTYW1wbGVFbnRpdHlcIiwgaW1wb3J0UGF0aDogXCIuL2VudGl0aWVzL3NhbXBsZS5lbnRpdHkuanNcIiB9KVxuXHRcdC5hZGRSZXBvc2l0b3J5KHtcblx0XHRcdGNsYXNzTmFtZTogXCJTYW1wbGVFbnRpdHlSZXBvc2l0b3J5XCIsXG5cdFx0XHRpbXBvcnRQYXRoOiBcIi4vcmVwb3NpdG9yaWVzL3NhbXBsZS5yZXBvc2l0b3J5LmpzXCIsXG5cdFx0fSk7XG5cblx0d29ya3NwYWNlXG5cdFx0LmdldE1vZGVsPFBhY2thZ2VKc29uPihXRUxMX0tOT1dOX0ZJTEVTLlBBQ0tBR0VfSlNPTilcblx0XHQ/LmFkZERlcGVuZGVuY3koXCJAZGVjb2hlcmUvY29kZXhcIiwgQ1JFQVRFX1ZFUlNJT04pXG5cdFx0LmFkZERlcGVuZGVuY3koXCJ0eXBlb3JtXCIsIFwiXjAuMy4yOFwiKVxuXHRcdC5hZGREZXBlbmRlbmN5KFwiQGRlY29oZXJlL2NvZGV4LXR5cGVvcm1cIiwgQ1JFQVRFX1ZFUlNJT04pXG5cdFx0LmFkZFNjcmlwdChcImRiOnVwXCIsIFwiZG9ja2VyIGNvbXBvc2UgLWYgLmRldmNvbnRhaW5lci9kb2NrZXItY29tcG9zZS55bWwgdXAgLWQgcG9zdGdyZXNcIilcblx0XHQuYWRkU2NyaXB0KFwiZGI6ZG93blwiLCBcImRvY2tlciBjb21wb3NlIC1mIC5kZXZjb250YWluZXIvZG9ja2VyLWNvbXBvc2UueW1sIGRvd25cIilcblx0XHQuYWRkU2NyaXB0KFxuXHRcdFx0XCJkYjpyZXNldFwiLFxuXHRcdFx0XCJkb2NrZXIgY29tcG9zZSAtZiAuZGV2Y29udGFpbmVyL2RvY2tlci1jb21wb3NlLnltbCBkb3duIC12ICYmIGRvY2tlciBjb21wb3NlIC1mIC5kZXZjb250YWluZXIvZG9ja2VyLWNvbXBvc2UueW1sIHVwIC1kIHBvc3RncmVzXCIsXG5cdFx0KTtcblxuXHQvLyBBZGQgY29kZXggZGVwcyB0byBhcGkgcGFja2FnZS5qc29uXG5cdHdvcmtzcGFjZVxuXHRcdC5nZXRNb2RlbDxBcGlQYWNrYWdlSnNvbj4oV0VMTF9LTk9XTl9GSUxFUy5BUElfUEFDS0FHRV9KU09OKVxuXHRcdD8uYWRkRGVwZW5kZW5jeShcIkBkZWNvaGVyZS9jb2RleFwiLCBDUkVBVEVfVkVSU0lPTilcblx0XHQuYWRkRGVwZW5kZW5jeShcIkBkZWNvaGVyZS9jb2RleC10eXBlb3JtXCIsIENSRUFURV9WRVJTSU9OKTtcblxuXHQvLyBBcHBlbmQgZGF0YWJhc2UgY29uZmlnIHNlY3Rpb25zXG5cdHdvcmtzcGFjZVxuXHRcdC5nZXRNb2RlbDxDb25maWdZYW1sPihXRUxMX0tOT1dOX0ZJTEVTLkNPTkZJR19ZQU1MKVxuXHRcdD8uYWRkU2VjdGlvbihEQVRBQkFTRV9CQVNFX0NPTkZJR19ZQU1MKTtcblx0d29ya3NwYWNlXG5cdFx0LmdldE1vZGVsPENvbmZpZ1lhbWw+KFdFTExfS05PV05fRklMRVMuQ09ORklHX0RFVl9ZQU1MKVxuXHRcdD8uYWRkU2VjdGlvbihEQVRBQkFTRV9ERVZfQ09ORklHX1lBTUwpO1xuXG5cdC8vIFJlZ2lzdGVyIGVudGl0eSBhbmQgcmVwb3NpdG9yeSBzb3VyY2UgZmlsZXMgaW4gdGhlIGFwaSBwcm9qZWN0XG5cdHdvcmtzcGFjZS5nZXRQcm9qZWN0KFdFQkFQSV9QUk9KRUNUX0RJUik/LmFkZEZpbGUoe1xuXHRcdGZpbGVzOiAoKSA9PiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcInNyYy9lbnRpdGllcy9zYW1wbGUuZW50aXR5LnRzXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IFNBTVBMRV9FTlRJVFlfVFMsXG5cdFx0XHR9LFxuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCJzcmMvcmVwb3NpdG9yaWVzL3NhbXBsZS5yZXBvc2l0b3J5LnRzXCIsXG5cdFx0XHRcdGNvbnRlbnQ6IFNBTVBMRV9SRVBPU0lUT1JZX1RTLFxuXHRcdFx0fSxcblx0XHRdLFxuXHR9KTtcblxuXHQvLyAuZW52IGF0IHdvcmtzcGFjZSByb290IOKAlCBwb3N0Z3JlcyByZWFkcyBpdCB2aWEgZW52X2ZpbGUgYWJvdmU7IGRldmNvbnRhaW5lciBnZXRzIGl0IGhlcmVcblx0Y29tcG9zZT8uYWRkRW52RmlsZShcImRldmNvbnRhaW5lclwiLCBcIi4uLy5lbnZcIik7XG5cblx0d29ya3NwYWNlXG5cdFx0LmdldE1vZGVsPEVudkZpbGU+KFdFTExfS05PV05fRklMRVMuRU5WX0ZJTEUpXG5cdFx0Py5hZGRFbnRyeShcIlBPU1RHUkVTX0RCXCIsIGRiKVxuXHRcdC5hZGRFbnRyeShcIlBPU1RHUkVTX1VTRVJcIiwgcG9zdGdyZXNTdXBlcnVzZXIpXG5cdFx0LmFkZEVudHJ5KFwiUE9TVEdSRVNfUEFTU1dPUkRcIiwgcG9zdGdyZXNQYXNzd29yZClcblx0XHQuYWRkRW50cnkoXCJEQl9IT1NUXCIsIFwicG9zdGdyZXNcIilcblx0XHQuYWRkRW50cnkoXCJEQl9QT1JUXCIsIFwiNTQzMlwiKVxuXHRcdC5hZGRFbnRyeShcIkRCX05BTUVcIiwgZGIpXG5cdFx0Ly8gUnVudGltZSBhcHAgcm9sZSAobGVhc3QgcHJpdmlsZWdlKSDigJQgdXNlZCBieSBUeXBlT1JNXG5cdFx0LmFkZEVudHJ5KFwiREJfVVNFUlwiLCBhcHBVc2VyKVxuXHRcdC5hZGRFbnRyeShcIkRCX1BBU1NXT1JEXCIsIGFwcFBhc3N3b3JkKVxuXHRcdC8vIEJvb3RzdHJhcCBwcm92aXNpb25lciAoQ1JFQVRFREIvQ1JFQVRFUk9MRSwgbm90IHN1cGVydXNlcikg4oCUIGRldiBwcmVwYXJlRGF0YWJhc2Ugb25seVxuXHRcdC5hZGRFbnRyeShcIkRCX0FETUlOX1VTRVJcIiwgYm9vdHN0cmFwVXNlcilcblx0XHQuYWRkRW50cnkoXCJEQl9BRE1JTl9QQVNTV09SRFwiLCBib290c3RyYXBQYXNzd29yZClcblx0XHQvLyBNaWdyYXRpb24vRERMIHJvbGUg4oCUIENJL2RlcGxveTsgbm90IG1vdW50ZWQgb24gQVBJIHBvZHMgaW4gcHJvZHVjdGlvblxuXHRcdC5hZGRFbnRyeShcIkRCX01JR1JBVEVfVVNFUlwiLCBtaWdyYXRlVXNlcilcblx0XHQuYWRkRW50cnkoXCJEQl9NSUdSQVRFX1BBU1NXT1JEXCIsIG1pZ3JhdGVQYXNzd29yZCk7XG59XG5cbmV4cG9ydCBjb25zdCBEYXRhYmFzZUZlYXR1cmU6IEZlYXR1cmU8RGF0YWJhc2VPcHRpb25zPiA9IHsgZ2V0T3B0aW9ucywgc2NhZmZvbGQgfTtcbiJdLCJuYW1lcyI6WyJEYXRhYmFzZUZlYXR1cmUiLCJyZWFkRXhpc3RpbmdFbnZWYWx1ZSIsIndvcmtzcGFjZSIsImtleSIsInJhdyIsInJlYWRGaWxlU3luYyIsImpvaW4iLCJ0YXJnZXREaXIiLCJsaW5lIiwic3BsaXQiLCJmaW5kIiwibCIsInN0YXJ0c1dpdGgiLCJ2YWx1ZSIsInNsaWNlIiwibGVuZ3RoIiwidHJpbSIsInVuZGVmaW5lZCIsInJhbmRvbVBhc3N3b3JkIiwicmFuZG9tQnl0ZXMiLCJ0b1N0cmluZyIsInRvU3FsSWRlbnRGcmFnbWVudCIsIm5hbWUiLCJjbGVhbmVkIiwicmVwbGFjZSIsInBhc3N3b3JkT3JFeGlzdGluZyIsImZhbGxiYWNrRXhpc3RpbmdLZXlzIiwiZXhpc3RpbmciLCJhbHQiLCJ2IiwiREFUQUJBU0VfQkFTRV9DT05GSUdfWUFNTCIsIkRBVEFCQVNFX0RFVl9DT05GSUdfWUFNTCIsIlBPU1RHUkVTX0lOSVRfQk9PVFNUUkFQX1NIIiwiU0FNUExFX0VOVElUWV9UUyIsIlNBTVBMRV9SRVBPU0lUT1JZX1RTIiwiZ2V0T3B0aW9ucyIsIl93b3Jrc3BhY2UiLCJjbGlPcHRpb25zIiwiZGF0YWJhc2VQcm92aWRlciIsImNob2ljZXMiLCJsYWJlbCIsInNlbGVjdGVkIiwicGljayIsImMiLCJzY2FmZm9sZCIsIm9wdGlvbnMiLCJpZGVudCIsImRiIiwicG9zdGdyZXNTdXBlcnVzZXIiLCJwb3N0Z3Jlc1Bhc3N3b3JkIiwiYm9vdHN0cmFwVXNlciIsImJvb3RzdHJhcFBhc3N3b3JkIiwiYXBwVXNlciIsImFwcFBhc3N3b3JkIiwibWlncmF0ZVVzZXIiLCJtaWdyYXRlUGFzc3dvcmQiLCJkZXZDb250YWluZXIiLCJnZXRNb2RlbCIsIldFTExfS05PV05fRklMRVMiLCJERVZDT05UQUlORVJfSlNPTiIsImNvbXBvc2UiLCJET0NLRVJfQ09NUE9TRSIsIm5ldHdvcmtLZXkiLCJ2b2x1bWVOYW1lIiwiYWRkU2VydmljZSIsImltYWdlIiwiY29udGFpbmVyX25hbWUiLCJyZXN0YXJ0IiwicG9ydHMiLCJ2b2x1bWVzIiwibmV0d29ya3MiLCJhbGlhc2VzIiwiaGVhbHRoY2hlY2siLCJ0ZXN0IiwiaW50ZXJ2YWwiLCJ0aW1lb3V0IiwicmV0cmllcyIsImFkZEVudkZpbGUiLCJhZGRWb2x1bWUiLCJwcm9maWxlcyIsImFkZEZpbGUiLCJmaWxlcyIsImZpbGVQYXRoIiwiY29udGVudCIsImFkZEV4dGVuc2lvbiIsIk1BSU5fVFMiLCJhZGRTaWRlRWZmZWN0SW1wb3J0IiwiYWRkRW50aXR5IiwiY2xhc3NOYW1lIiwiaW1wb3J0UGF0aCIsImFkZFJlcG9zaXRvcnkiLCJQQUNLQUdFX0pTT04iLCJhZGREZXBlbmRlbmN5IiwiQ1JFQVRFX1ZFUlNJT04iLCJhZGRTY3JpcHQiLCJBUElfUEFDS0FHRV9KU09OIiwiQ09ORklHX1lBTUwiLCJhZGRTZWN0aW9uIiwiQ09ORklHX0RFVl9ZQU1MIiwiZ2V0UHJvamVjdCIsIldFQkFQSV9QUk9KRUNUX0RJUiIsIkVOVl9GSUxFIiwiYWRkRW50cnkiXSwibWFwcGluZ3MiOiI7Ozs7K0JBaVNhQTs7O2VBQUFBOzs7NEJBalNlO3dCQUNDOzBCQUNSO3dCQUNBO3VCQUdZO3lCQU1GOzJCQUNJO0FBUW5DLGdFQUFnRSxHQUNoRSxTQUFTQyxxQkFBcUJDLFNBQTRCLEVBQUVDLEdBQVc7SUFDdEUsSUFBSTtRQUNILE1BQU1DLE1BQU1DLElBQUFBLG9CQUFZLEVBQUNDLElBQUFBLGNBQUksRUFBQ0osVUFBVUssU0FBUyxFQUFFLFNBQVM7UUFDNUQsTUFBTUMsT0FBT0osSUFBSUssS0FBSyxDQUFDLE1BQU1DLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxVQUFVLENBQUMsR0FBR1QsSUFBSSxDQUFDLENBQUM7UUFDL0QsTUFBTVUsUUFBUUwsTUFBTU0sTUFBTVgsSUFBSVksTUFBTSxHQUFHLEdBQUdDO1FBQzFDLE9BQU9ILFNBQVNJO0lBQ2pCLEVBQUUsT0FBTTtRQUNQLE9BQU9BO0lBQ1I7QUFDRDtBQUVBLFNBQVNDO0lBQ1IsT0FBT0MsSUFBQUEsdUJBQVcsRUFBQyxJQUFJQyxRQUFRLENBQUM7QUFDakM7QUFFQSw2REFBNkQsR0FDN0QsU0FBU0MsbUJBQW1CQyxJQUFZO0lBQ3ZDLE1BQU1DLFVBQVVELEtBQUtFLE9BQU8sQ0FBQyxrQkFBa0IsS0FBS0EsT0FBTyxDQUFDLGlCQUFpQjtJQUM3RSxPQUFPRCxRQUFRUixNQUFNLEdBQUcsSUFBSVEsUUFBUVQsS0FBSyxDQUFDLEdBQUcsTUFBTTtBQUNwRDtBQUVBLFNBQVNXLG1CQUNSdkIsU0FBNEIsRUFDNUJDLEdBQVcsRUFDWHVCLHVCQUFpQyxFQUFFO0lBRW5DLE1BQU1DLFdBQVcxQixxQkFBcUJDLFdBQVdDO0lBQ2pELElBQUl3QixVQUFVLE9BQU9BO0lBQ3JCLEtBQUssTUFBTUMsT0FBT0YscUJBQXNCO1FBQ3ZDLE1BQU1HLElBQUk1QixxQkFBcUJDLFdBQVcwQjtRQUMxQyxJQUFJQyxHQUFHLE9BQU9BO0lBQ2Y7SUFDQSxPQUFPWDtBQUNSO0FBRUEsNEZBQTRGO0FBQzVGLE1BQU1ZLDRCQUE0QixDQUFDOzs7Ozs7Ozs7Ozs7QUFZbkMsQ0FBQztBQUVELHVGQUF1RjtBQUN2RixNQUFNQywyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0FBU2xDLENBQUM7QUFFRCxpR0FBaUcsR0FDakcsTUFBTUMsNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCcEMsQ0FBQztBQUVELE1BQU1DLG1CQUFtQixDQUFDOzs7Ozs7Ozs7OztBQVcxQixDQUFDO0FBRUQsTUFBTUMsdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FBVzlCLENBQUM7QUFFRCxlQUFlQyxXQUNkQyxVQUE2QixFQUM3QkMsVUFBb0M7SUFFcEMsSUFBSUEsV0FBV0MsZ0JBQWdCLElBQUksTUFBTSxPQUFPLENBQUM7SUFFakQsTUFBTUMsVUFBVTtRQUFDO1lBQUVDLE9BQU87UUFBZ0I7UUFBRztZQUFFQSxPQUFPO1FBQTRCO0tBQUU7SUFDcEYsTUFBTUMsV0FBVyxNQUFNQyxJQUFBQSxZQUFJLEVBQUMsa0JBQWtCSCxTQUFTLENBQUNJLElBQU1BLEVBQUVILEtBQUs7SUFDckUsT0FBTztRQUFFRixrQkFBa0JHLFVBQVVELFNBQVM7SUFBTztBQUN0RDtBQUVBLFNBQVNJLFNBQVMxQyxTQUE0QixFQUFFMkMsT0FBd0I7SUFDdkUsSUFBSUEsUUFBUVAsZ0JBQWdCLEtBQUssb0JBQW9CO0lBRXJELE1BQU1oQixPQUFPcEIsVUFBVW9CLElBQUk7SUFDM0IsTUFBTXdCLFFBQVF6QixtQkFBbUJDO0lBQ2pDLE1BQU15QixLQUFLLEdBQUdELE1BQU0sSUFBSSxDQUFDO0lBQ3pCLG1FQUFtRTtJQUNuRSxNQUFNRSxvQkFBb0I7SUFDMUIsTUFBTUMsbUJBQW1CeEIsbUJBQW1CdkIsV0FBVztJQUN2RCxNQUFNZ0QsZ0JBQWdCO0lBQ3RCLE1BQU1DLG9CQUFvQjFCLG1CQUFtQnZCLFdBQVcscUJBQXFCO1FBQzVFO0tBQ0E7SUFDRCxNQUFNa0QsVUFBVSxHQUFHTixNQUFNLElBQUksQ0FBQztJQUM5QixNQUFNTyxjQUFjNUIsbUJBQW1CdkIsV0FBVztJQUNsRCxNQUFNb0QsY0FBYyxHQUFHUixNQUFNLFFBQVEsQ0FBQztJQUN0QyxNQUFNUyxrQkFBa0I5QixtQkFBbUJ2QixXQUFXO0lBRXRELE1BQU1zRCxlQUFldEQsVUFBVXVELFFBQVEsQ0FBZUMsdUJBQWdCLENBQUNDLGlCQUFpQjtJQUN4RixNQUFNQyxVQUFVMUQsVUFBVXVELFFBQVEsQ0FBZ0JDLHVCQUFnQixDQUFDRyxjQUFjO0lBRWpGLE1BQU1DLGFBQWF4QztJQUNuQixNQUFNeUMsYUFBYSxHQUFHekMsS0FBSyxjQUFjLENBQUM7SUFFMUMseUVBQXlFO0lBQ3pFLHVGQUF1RjtJQUN2RnNDLFNBQ0dJLFdBQVcsWUFBWTtRQUN4QkMsT0FBTztRQUNQQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUU1QyxLQUFLLFNBQVMsQ0FBQztRQUMxQzZDLFNBQVM7UUFDVCxtRUFBbUU7UUFDbkUsaUVBQWlFO1FBQ2pFQyxPQUFPO1lBQUM7U0FBc0I7UUFDOUJDLFNBQVM7WUFDUixHQUFHTixXQUFXLHlCQUF5QixDQUFDO1lBQ3hDO1NBQ0E7UUFDRE8sVUFBVTtZQUFDO2dCQUFFLENBQUNSLFdBQVcsRUFBRTtvQkFBRVMsU0FBUzt3QkFBQztxQkFBVztnQkFBQztZQUFFO1NBQUU7UUFDdkRDLGFBQWE7WUFDWkMsTUFBTTtnQkFBQztnQkFBYSxDQUFDLGNBQWMsRUFBRXpCLGtCQUFrQixJQUFJLEVBQUVELElBQUk7YUFBQztZQUNsRTJCLFVBQVU7WUFDVkMsU0FBUztZQUNUQyxTQUFTO1FBQ1Y7SUFDRCxHQUNDQyxXQUFXLFlBQVksV0FDdkJDLFVBQVVmO0lBRVoscUVBQXFFO0lBQ3JFSCxTQUFTSSxXQUFXLFdBQVc7UUFDOUJDLE9BQU87UUFDUGMsVUFBVTtZQUFDO1NBQVE7UUFDbkJYLE9BQU87WUFBQztTQUFzQjtRQUM5QkUsVUFBVTtZQUFDUjtTQUFXO0lBQ3ZCO0lBRUE1RCxVQUFVOEUsT0FBTyxDQUFDO1FBQ2pCQyxPQUFPLElBQU07Z0JBQ1o7b0JBQ0NDLFVBQVU7b0JBQ1ZDLFNBQVNuRDtnQkFDVjthQUNBO0lBQ0Y7SUFFQSxvREFBb0Q7SUFDcER3QixjQUFjNEIsYUFBYTtJQUUzQixrQkFBa0I7SUFDbEJsRixVQUNFdUQsUUFBUSxDQUFpQkMsdUJBQWdCLENBQUMyQixPQUFPLEdBQ2hEQyxvQkFBb0IsMkJBQ3JCQyxVQUFVO1FBQUVDLFdBQVc7UUFBZ0JDLFlBQVk7SUFBOEIsR0FDakZDLGNBQWM7UUFDZEYsV0FBVztRQUNYQyxZQUFZO0lBQ2I7SUFFRHZGLFVBQ0V1RCxRQUFRLENBQWNDLHVCQUFnQixDQUFDaUMsWUFBWSxHQUNsREMsY0FBYyxtQkFBbUJDLHVCQUFjLEVBQ2hERCxjQUFjLFdBQVcsV0FDekJBLGNBQWMsMkJBQTJCQyx1QkFBYyxFQUN2REMsVUFBVSxTQUFTLHFFQUNuQkEsVUFBVSxXQUFXLDJEQUNyQkEsVUFDQSxZQUNBO0lBR0YscUNBQXFDO0lBQ3JDNUYsVUFDRXVELFFBQVEsQ0FBaUJDLHVCQUFnQixDQUFDcUMsZ0JBQWdCLEdBQ3pESCxjQUFjLG1CQUFtQkMsdUJBQWMsRUFDaERELGNBQWMsMkJBQTJCQyx1QkFBYztJQUV6RCxrQ0FBa0M7SUFDbEMzRixVQUNFdUQsUUFBUSxDQUFhQyx1QkFBZ0IsQ0FBQ3NDLFdBQVcsR0FDaERDLFdBQVduRTtJQUNkNUIsVUFDRXVELFFBQVEsQ0FBYUMsdUJBQWdCLENBQUN3QyxlQUFlLEdBQ3BERCxXQUFXbEU7SUFFZCxpRUFBaUU7SUFDakU3QixVQUFVaUcsVUFBVSxDQUFDQyw2QkFBa0IsR0FBR3BCLFFBQVE7UUFDakRDLE9BQU8sSUFBTTtnQkFDWjtvQkFDQ0MsVUFBVTtvQkFDVkMsU0FBU2xEO2dCQUNWO2dCQUNBO29CQUNDaUQsVUFBVTtvQkFDVkMsU0FBU2pEO2dCQUNWO2FBQ0E7SUFDRjtJQUVBLDJGQUEyRjtJQUMzRjBCLFNBQVNpQixXQUFXLGdCQUFnQjtJQUVwQzNFLFVBQ0V1RCxRQUFRLENBQVVDLHVCQUFnQixDQUFDMkMsUUFBUSxHQUMxQ0MsU0FBUyxlQUFldkQsSUFDekJ1RCxTQUFTLGlCQUFpQnRELG1CQUMxQnNELFNBQVMscUJBQXFCckQsa0JBQzlCcUQsU0FBUyxXQUFXLFlBQ3BCQSxTQUFTLFdBQVcsUUFDcEJBLFNBQVMsV0FBV3ZELElBRXBCdUQsU0FBUyxXQUFXbEQsU0FDcEJrRCxTQUFTLGVBQWVqRCxhQUV4QmlELFNBQVMsaUJBQWlCcEQsZUFDMUJvRCxTQUFTLHFCQUFxQm5ELG1CQUU5Qm1ELFNBQVMsbUJBQW1CaEQsYUFDNUJnRCxTQUFTLHVCQUF1Qi9DO0FBQ25DO0FBRU8sTUFBTXZELGtCQUE0QztJQUFFbUM7SUFBWVM7QUFBUyJ9
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL2ZlYXR1cmVzL2RhdGFiYXNlLmZlYXR1cmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgcGljayB9IGZyb20gXCIuLi8uLi9kb21haW4vcHJvbXB0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IERvY2tlckNvbXBvc2UgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvc2UubW9kZWwuanNcIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlnWWFtbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29uZmlnLXlhbWwubW9kZWwuanNcIjtcbmltcG9ydCB7IFdFTExfS05PV05fRklMRVMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbnN0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IERldkNvbnRhaW5lciB9IGZyb20gXCIuLi8uLi9tb2RlbHMvZGV2LWNvbnRhaW5lci5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBFbnZGaWxlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9lbnYtZmlsZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBQYWNrYWdlSnNvbiB9IGZyb20gXCIuLi8uLi9tb2RlbHMvcGFja2FnZS1qc29uLm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFdvcmtzcGFjZVNjYWZmb2xkIH0gZnJvbSBcIi4uLy4uL21vZGVscy9wcm9qZWN0Lm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEZlYXR1cmUgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2NhZmZvbGQuc2VydmljZS5qc1wiO1xuaW1wb3J0IHsgQ1JFQVRFX1ZFUlNJT04gfSBmcm9tIFwiLi4vLi4vdmVyc2lvbi5qc1wiO1xuaW1wb3J0IHsgV0VCQVBJX1BST0pFQ1RfRElSIH0gZnJvbSBcIi4uL2NvbnN0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEFwaVBhY2thZ2VKc29uIH0gZnJvbSBcIi4uL21vZGVscy9hcGktcGFja2FnZS1qc29uLm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IE1haW5Tb3VyY2VGaWxlIH0gZnJvbSBcIi4uL21vZGVscy9tYWluLXNvdXJjZS1maWxlLm1vZGVsLmpzXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFiYXNlT3B0aW9ucyA9IHtcblx0ZGF0YWJhc2VQcm92aWRlcj86IFwibm9uZVwiIHwgXCJwb3N0Z3Jlcy90eXBlb3JtXCI7XG59O1xuXG4vKiogUmVhZCBhIHNpbmdsZSBLRVk9IGZyb20gYW4gZXhpc3RpbmcgdGFyZ2V0IGAuZW52YCAoaWYgYW55KS4gKi9cbmZ1bmN0aW9uIHJlYWRFeGlzdGluZ0VudlZhbHVlKHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsIGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0dHJ5IHtcblx0XHRjb25zdCByYXcgPSByZWFkRmlsZVN5bmMoam9pbih3b3Jrc3BhY2UudGFyZ2V0RGlyLCBcIi5lbnZcIiksIFwidXRmOFwiKTtcblx0XHRjb25zdCBsaW5lID0gcmF3LnNwbGl0KFwiXFxuXCIpLmZpbmQoKGwpID0+IGwuc3RhcnRzV2l0aChgJHtrZXl9PWApKTtcblx0XHRjb25zdCB2YWx1ZSA9IGxpbmU/LnNsaWNlKGtleS5sZW5ndGggKyAxKS50cmltKCk7XG5cdFx0cmV0dXJuIHZhbHVlIHx8IHVuZGVmaW5lZDtcblx0fSBjYXRjaCB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxufVxuXG5mdW5jdGlvbiByYW5kb21QYXNzd29yZCgpOiBzdHJpbmcge1xuXHRyZXR1cm4gcmFuZG9tQnl0ZXMoMTYpLnRvU3RyaW5nKFwiaGV4XCIpO1xufVxuXG4vKiogU2FmZSBQb3N0Z3JlcyBpZGVudGlmaWVyIGZyYWdtZW50IGZyb20gdGhlIHByb2plY3QgbmFtZS4gKi9cbmZ1bmN0aW9uIHRvU3FsSWRlbnRGcmFnbWVudChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCBjbGVhbmVkID0gbmFtZS5yZXBsYWNlKC9bXkEtWmEtejAtOV9dL2csIFwiX1wiKS5yZXBsYWNlKC9eKFteQS1aYS16X10pLywgXCJwXyQxXCIpO1xuXHRyZXR1cm4gY2xlYW5lZC5sZW5ndGggPiAwID8gY2xlYW5lZC5zbGljZSgwLCA0MCkgOiBcImFwcFwiO1xufVxuXG5mdW5jdGlvbiBwYXNzd29yZE9yRXhpc3RpbmcoXG5cdHdvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsXG5cdGtleTogc3RyaW5nLFxuXHRmYWxsYmFja0V4aXN0aW5nS2V5czogc3RyaW5nW10gPSBbXSxcbik6IHN0cmluZyB7XG5cdGNvbnN0IGV4aXN0aW5nID0gcmVhZEV4aXN0aW5nRW52VmFsdWUod29ya3NwYWNlLCBrZXkpO1xuXHRpZiAoZXhpc3RpbmcpIHJldHVybiBleGlzdGluZztcblx0Zm9yIChjb25zdCBhbHQgb2YgZmFsbGJhY2tFeGlzdGluZ0tleXMpIHtcblx0XHRjb25zdCB2ID0gcmVhZEV4aXN0aW5nRW52VmFsdWUod29ya3NwYWNlLCBhbHQpO1xuXHRcdGlmICh2KSByZXR1cm4gdjtcblx0fVxuXHRyZXR1cm4gcmFuZG9tUGFzc3dvcmQoKTtcbn1cblxuLy8gUHJvZHVjdGlvbiBiYXNlOiBydW50aW1lIGFwcCByb2xlIG9ubHkg4oCUIG5vIGJvb3RzdHJhcCwgbm8gYWRtaW4vbWlncmF0ZSBzZWNyZXRzIHJlcXVpcmVkLlxuY29uc3QgREFUQUJBU0VfQkFTRV9DT05GSUdfWUFNTCA9IGBkYXRhYmFzZTpcbiAgZGF0YVNvdXJjZXM6XG4gICAgLSBuYW1lOiBkZWZhdWx0XG4gICAgICBwcm92aWRlcjogcG9zdGdyZXNcbiAgICAgIGhvc3Q6IFxcJHtEQl9IT1NUfVxuICAgICAgcG9ydDogXFwke0RCX1BPUlR9XG4gICAgICBkYXRhYmFzZTogXFwke0RCX05BTUV9XG4gICAgICB1c2VybmFtZTogXFwke0RCX1VTRVJ9XG4gICAgICBwYXNzd29yZDogXFwke0RCX1BBU1NXT1JEfVxuICAgICAgc3luY2hyb25pemU6IGZhbHNlXG4gICAgICBzZWVkOiBmYWxzZVxuICAgICAgYm9vdHN0cmFwOiBmYWxzZVxuYDtcblxuLy8gRGV2OiBlbmFibGUgYm9vdHN0cmFwICsgbWlncmF0ZSByb2xlOyBzeW5jaHJvbml6ZSB1c2VzIGFwcCBEREwgKGRldi1vbmx5IGV4Y2VwdGlvbikuXG5jb25zdCBEQVRBQkFTRV9ERVZfQ09ORklHX1lBTUwgPSBgZGF0YWJhc2U6XG4gIGRhdGFTb3VyY2VzOlxuICAgIC0gc3luY2hyb25pemU6IHRydWVcbiAgICAgIHNlZWQ6IHRydWVcbiAgICAgIGJvb3RzdHJhcDogdHJ1ZVxuICAgICAgYWRtaW5Vc2VyOiBcXCR7REJfQURNSU5fVVNFUn1cbiAgICAgIGFkbWluUGFzc3dvcmQ6IFxcJHtEQl9BRE1JTl9QQVNTV09SRH1cbiAgICAgIG1pZ3JhdGVVc2VybmFtZTogXFwke0RCX01JR1JBVEVfVVNFUn1cbiAgICAgIG1pZ3JhdGVQYXNzd29yZDogXFwke0RCX01JR1JBVEVfUEFTU1dPUkR9XG5gO1xuXG4vKiogUnVucyBvbmNlIG9uIGZpcnN0IFBvc3RncmVzIHZvbHVtZSBpbml0IOKAlCBjcmVhdGVzIHJlc3RyaWN0ZWQgYm9vdHN0cmFwIHJvbGUgKG5vdCBzdXBlcnVzZXIpLiAqL1xuY29uc3QgUE9TVEdSRVNfSU5JVF9CT09UU1RSQVBfU0ggPSBgIyEvYmluL2Jhc2hcbnNldCAtZXVvIHBpcGVmYWlsXG4jIENvbnRhaW5lciBzdXBlcnVzZXIgKFBPU1RHUkVTX1VTRVIpIGNyZWF0ZXMgYSByZXN0cmljdGVkIHByb3Zpc2lvbmVyIHJvbGUuXG4jIEFwcC9taWdyYXRlIHJvbGVzIGFyZSBjcmVhdGVkIGxhdGVyIGJ5IGNvZGV4LXR5cGVvcm0gcHJlcGFyZURhdGFiYXNlIChkZXYgYm9vdHN0cmFwKS5cbjogXCJcXCR7REJfQURNSU5fVVNFUjo/REJfQURNSU5fVVNFUiBpcyByZXF1aXJlZH1cIlxuOiBcIlxcJHtEQl9BRE1JTl9QQVNTV09SRDo/REJfQURNSU5fUEFTU1dPUkQgaXMgcmVxdWlyZWR9XCJcblxucHNxbCAtdiBPTl9FUlJPUl9TVE9QPTEgLS11c2VybmFtZSBcIiRQT1NUR1JFU19VU0VSXCIgLS1kYm5hbWUgXCIkUE9TVEdSRVNfREJcIiBcXFxcXG5cXHQtLXNldD1ib290c3RyYXBfdXNlcj1cIiREQl9BRE1JTl9VU0VSXCIgXFxcXFxuXFx0LS1zZXQ9Ym9vdHN0cmFwX3Bhc3N3b3JkPVwiJERCX0FETUlOX1BBU1NXT1JEXCIgPDwnRU9TUUwnXG5TRUxFQ1QgZm9ybWF0KFxuXFx0J0NSRUFURSBST0xFICVJIExPR0lOIFBBU1NXT1JEICVMIENSRUFURURCIENSRUFURVJPTEUgTk9TVVBFUlVTRVIgTk9CWVBBU1NSTFMnLFxuXFx0Oidib290c3RyYXBfdXNlcicsXG5cXHQ6J2Jvb3RzdHJhcF9wYXNzd29yZCdcbilcbldIRVJFIE5PVCBFWElTVFMgKFxuXFx0U0VMRUNUIDEgRlJPTSBwZ19jYXRhbG9nLnBnX3JvbGVzIFdIRVJFIHJvbG5hbWUgPSA6J2Jvb3RzdHJhcF91c2VyJ1xuKVxcXFxnZXhlY1xuXG5HUkFOVCBBTEwgT04gU0NIRU1BIHB1YmxpYyBUTyA6XCJib290c3RyYXBfdXNlclwiO1xuRU9TUUxcblxucHNxbCAtdiBPTl9FUlJPUl9TVE9QPTEgLS11c2VybmFtZSBcIiRQT1NUR1JFU19VU0VSXCIgLS1kYm5hbWUgXCIkUE9TVEdSRVNfREJcIiBcXFxcXG5cXHQtYyBcIkdSQU5UIEFMTCBQUklWSUxFR0VTIE9OIERBVEFCQVNFIFxcXFxcIiRQT1NUR1JFU19EQlxcXFxcIiBUTyBcXFxcXCIkREJfQURNSU5fVVNFUlxcXFxcIlwiXG5gO1xuXG5jb25zdCBTQU1QTEVfRU5USVRZX1RTID0gYGltcG9ydCB7IENvbHVtbiwgRW50aXR5LCBQcmltYXJ5R2VuZXJhdGVkQ29sdW1uIH0gZnJvbSBcInR5cGVvcm1cIjtcbmltcG9ydCB0eXBlIHsgRW50aXR5IGFzIElFbnRpdHkgfSBmcm9tIFwiQGRlY29oZXJlL2NvZGV4XCI7XG5cbkBFbnRpdHkoKVxuZXhwb3J0IGNsYXNzIFNhbXBsZUVudGl0eSBpbXBsZW1lbnRzIElFbnRpdHkge1xuXFx0QFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4oKVxuXFx0cHVibGljIGlkITogbnVtYmVyO1xuXG5cXHRAQ29sdW1uKClcblxcdHB1YmxpYyBuYW1lITogc3RyaW5nO1xufVxuYDtcblxuY29uc3QgU0FNUExFX1JFUE9TSVRPUllfVFMgPSBgaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgaW5qZWN0VW5pdE9mV29yayB9IGZyb20gXCJAZGVjb2hlcmUvY29kZXhcIjtcbmltcG9ydCB7IFR5cGVPcm1SZXBvc2l0b3J5LCBUeXBlT3JtVW5pdE9mV29yayB9IGZyb20gXCJAZGVjb2hlcmUvY29kZXgtdHlwZW9ybVwiO1xuaW1wb3J0IHsgU2FtcGxlRW50aXR5IH0gZnJvbSBcIi4uL2VudGl0aWVzL3NhbXBsZS5lbnRpdHkuanNcIjtcblxuQGluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNhbXBsZUVudGl0eVJlcG9zaXRvcnkgZXh0ZW5kcyBUeXBlT3JtUmVwb3NpdG9yeTxTYW1wbGVFbnRpdHk+IHtcblxcdHB1YmxpYyBjb25zdHJ1Y3RvcihAaW5qZWN0VW5pdE9mV29yaygpIHVuaXRPZldvcms6IFR5cGVPcm1Vbml0T2ZXb3JrKSB7XG5cXHRcXHRzdXBlcih1bml0T2ZXb3JrLCBTYW1wbGVFbnRpdHkpO1xuXFx0fVxufVxuYDtcblxuYXN5bmMgZnVuY3Rpb24gZ2V0T3B0aW9ucyhcblx0X3dvcmtzcGFjZTogV29ya3NwYWNlU2NhZmZvbGQsXG5cdGNsaU9wdGlvbnM6IFBhcnRpYWw8RGF0YWJhc2VPcHRpb25zPixcbik6IFByb21pc2U8UGFydGlhbDxEYXRhYmFzZU9wdGlvbnM+PiB7XG5cdGlmIChjbGlPcHRpb25zLmRhdGFiYXNlUHJvdmlkZXIgIT0gbnVsbCkgcmV0dXJuIHt9O1xuXG5cdGNvbnN0IGNob2ljZXMgPSBbeyBsYWJlbDogXCJub25lXCIgYXMgY29uc3QgfSwgeyBsYWJlbDogXCJwb3N0Z3Jlcy90eXBlb3JtXCIgYXMgY29uc3QgfV07XG5cdGNvbnN0IHNlbGVjdGVkID0gYXdhaXQgcGljayhcIlxcbiAgRGF0YWJhc2U6IFwiLCBjaG9pY2VzLCAoYykgPT4gYy5sYWJlbCk7XG5cdHJldHVybiB7IGRhdGFiYXNlUHJvdmlkZXI6IHNlbGVjdGVkPy5sYWJlbCA/PyBcIm5vbmVcIiB9O1xufVxuXG5mdW5jdGlvbiBzY2FmZm9sZCh3b3Jrc3BhY2U6IFdvcmtzcGFjZVNjYWZmb2xkLCBvcHRpb25zOiBEYXRhYmFzZU9wdGlvbnMpOiB2b2lkIHtcblx0aWYgKG9wdGlvbnMuZGF0YWJhc2VQcm92aWRlciAhPT0gXCJwb3N0Z3Jlcy90eXBlb3JtXCIpIHJldHVybjtcblxuXHRjb25zdCBuYW1lID0gd29ya3NwYWNlLm5hbWU7XG5cdGNvbnN0IGlkZW50ID0gdG9TcWxJZGVudEZyYWdtZW50KG5hbWUpO1xuXHRjb25zdCBkYiA9IGAke2lkZW50fV9kZXZgO1xuXHQvLyBDb250YWluZXIgaW5pdCBzdXBlcnVzZXIg4oCUIG5ldmVyIHJldXNlZCBhcyB0aGUgQVBJIHJ1bnRpbWUgcm9sZS5cblx0Y29uc3QgcG9zdGdyZXNTdXBlcnVzZXIgPSBcInBvc3RncmVzXCI7XG5cdGNvbnN0IHBvc3RncmVzUGFzc3dvcmQgPSBwYXNzd29yZE9yRXhpc3Rpbmcod29ya3NwYWNlLCBcIlBPU1RHUkVTX1BBU1NXT1JEXCIpO1xuXHRjb25zdCBib290c3RyYXBVc2VyID0gXCJkZWNvaGVyZV9ib290c3RyYXBcIjtcblx0Y29uc3QgYm9vdHN0cmFwUGFzc3dvcmQgPSBwYXNzd29yZE9yRXhpc3Rpbmcod29ya3NwYWNlLCBcIkRCX0FETUlOX1BBU1NXT1JEXCIsIFtcblx0XHRcIlBPU1RHUkVTX1BBU1NXT1JEXCIsXG5cdF0pO1xuXHRjb25zdCBhcHBVc2VyID0gYCR7aWRlbnR9X2FwcGA7XG5cdGNvbnN0IGFwcFBhc3N3b3JkID0gcGFzc3dvcmRPckV4aXN0aW5nKHdvcmtzcGFjZSwgXCJEQl9QQVNTV09SRFwiKTtcblx0Y29uc3QgbWlncmF0ZVVzZXIgPSBgJHtpZGVudH1fbWlncmF0ZWA7XG5cdGNvbnN0IG1pZ3JhdGVQYXNzd29yZCA9IHBhc3N3b3JkT3JFeGlzdGluZyh3b3Jrc3BhY2UsIFwiREJfTUlHUkFURV9QQVNTV09SRFwiKTtcblxuXHRjb25zdCBkZXZDb250YWluZXIgPSB3b3Jrc3BhY2UuZ2V0TW9kZWw8RGV2Q29udGFpbmVyPihXRUxMX0tOT1dOX0ZJTEVTLkRFVkNPTlRBSU5FUl9KU09OKTtcblx0Y29uc3QgY29tcG9zZSA9IHdvcmtzcGFjZS5nZXRNb2RlbDxEb2NrZXJDb21wb3NlPihXRUxMX0tOT1dOX0ZJTEVTLkRPQ0tFUl9DT01QT1NFKTtcblxuXHRjb25zdCBuZXR3b3JrS2V5ID0gbmFtZTtcblx0Y29uc3Qgdm9sdW1lTmFtZSA9IGAke25hbWV9LXBvc3RncmVzLWRhdGFgO1xuXG5cdC8vIElzb2xhdGVkIGNvbXBvc2UgcHJvamVjdCBuZXR3b3JrICsgdm9sdW1lIChub3QgYXJrJ3Mgc2hhcmVkIFBvc3RncmVzKS5cblx0Ly8gQWxpYXMgYHBvc3RncmVzYCBzbyBvdGhlciBzdGFja3Mgb24gdGhlIHNhbWUgbmFtZWQgbmV0d29yayBjYW4gdXNlIERCX0hPU1Q9cG9zdGdyZXMuXG5cdGNvbXBvc2Vcblx0XHQ/LmFkZFNlcnZpY2UoXCJwb3N0Z3Jlc1wiLCB7XG5cdFx0XHRpbWFnZTogXCJwb3N0Z3JlczoxNlwiLFxuXHRcdFx0Y29udGFpbmVyX25hbWU6IGBzYW1wbGVzLSR7bmFtZX0tcG9zdGdyZXNgLFxuXHRcdFx0cmVzdGFydDogXCJ1bmxlc3Mtc3RvcHBlZFwiLFxuXHRcdFx0Ly8gTG9vcGJhY2stb25seTogYXZvaWQgZXhwb3NpbmcgUG9zdGdyZXMgb24gTEFOL3B1YmxpYyBpbnRlcmZhY2VzLlxuXHRcdFx0Ly8gSG9zdCA1NDMzIGF2b2lkcyBjbGFzaGluZyB3aXRoIGEgbG9jYWwvb3RoZXIgUG9zdGdyZXMgb24gNTQzMi5cblx0XHRcdHBvcnRzOiBbXCIxMjcuMC4wLjE6NTQzMzo1NDMyXCJdLFxuXHRcdFx0dm9sdW1lczogW1xuXHRcdFx0XHRgJHt2b2x1bWVOYW1lfTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFgLFxuXHRcdFx0XHRcIi4uLy5kZXZjb250YWluZXIvcG9zdGdyZXMtaW5pdDovZG9ja2VyLWVudHJ5cG9pbnQtaW5pdGRiLmQ6cm9cIixcblx0XHRcdF0sXG5cdFx0XHRuZXR3b3JrczogW3sgW25ldHdvcmtLZXldOiB7IGFsaWFzZXM6IFtcInBvc3RncmVzXCJdIH0gfV0sXG5cdFx0XHRoZWFsdGhjaGVjazoge1xuXHRcdFx0XHR0ZXN0OiBbXCJDTUQtU0hFTExcIiwgYHBnX2lzcmVhZHkgLVUgJHtwb3N0Z3Jlc1N1cGVydXNlcn0gLWQgJHtkYn1gXSxcblx0XHRcdFx0aW50ZXJ2YWw6IFwiMnNcIixcblx0XHRcdFx0dGltZW91dDogXCI1c1wiLFxuXHRcdFx0XHRyZXRyaWVzOiAxNSxcblx0XHRcdH0sXG5cdFx0fSlcblx0XHQuYWRkRW52RmlsZShcInBvc3RncmVzXCIsIFwiLi4vLmVudlwiKVxuXHRcdC5hZGRWb2x1bWUodm9sdW1lTmFtZSk7XG5cblx0Ly8gT3B0aW9uYWwgREIgVUkg4oCUIGVuYWJsZSB3aXRoOiBkb2NrZXIgY29tcG9zZSAtLXByb2ZpbGUgdG9vbHMgdXAgLWRcblx0Y29tcG9zZT8uYWRkU2VydmljZShcImFkbWluZXJcIiwge1xuXHRcdGltYWdlOiBcImFkbWluZXJcIixcblx0XHRwcm9maWxlczogW1widG9vbHNcIl0sXG5cdFx0cG9ydHM6IFtcIjEyNy4wLjAuMTo4MDgxOjgwODBcIl0sXG5cdFx0bmV0d29ya3M6IFtuZXR3b3JrS2V5XSxcblx0fSk7XG5cblx0d29ya3NwYWNlLmFkZEZpbGUoe1xuXHRcdGZpbGVzOiAoKSA9PiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcIi5kZXZjb250YWluZXIvcG9zdGdyZXMtaW5pdC8wMS1jcmVhdGUtYm9vdHN0cmFwLXJvbGUuc2hcIixcblx0XHRcdFx0Y29udGVudDogUE9TVEdSRVNfSU5JVF9CT09UU1RSQVBfU0gsXG5cdFx0XHR9LFxuXHRcdF0sXG5cdH0pO1xuXG5cdC8vIEFkZCBTUUxUb29scyBleHRlbnNpb24gZm9yIERCIGJyb3dzaW5nIGluIFZTIENvZGVcblx0ZGV2Q29udGFpbmVyPy5hZGRFeHRlbnNpb24oXCJtdHhyLnNxbHRvb2xzXCIpO1xuXG5cdC8vIFdpcmUgdXAgbWFpbi50c1xuXHR3b3Jrc3BhY2Vcblx0XHQuZ2V0TW9kZWw8TWFpblNvdXJjZUZpbGU+KFdFTExfS05PV05fRklMRVMuTUFJTl9UUylcblx0XHQ/LmFkZFNpZGVFZmZlY3RJbXBvcnQoXCJAZGVjb2hlcmUvY29kZXgtdHlwZW9ybVwiKVxuXHRcdC5hZGRFbnRpdHkoeyBjbGFzc05hbWU6IFwiU2FtcGxlRW50aXR5XCIsIGltcG9ydFBhdGg6IFwiLi9lbnRpdGllcy9zYW1wbGUuZW50aXR5LmpzXCIgfSlcblx0XHQuYWRkUmVwb3NpdG9yeSh7XG5cdFx0XHRjbGFzc05hbWU6IFwiU2FtcGxlRW50aXR5UmVwb3NpdG9yeVwiLFxuXHRcdFx0aW1wb3J0UGF0aDogXCIuL3JlcG9zaXRvcmllcy9zYW1wbGUucmVwb3NpdG9yeS5qc1wiLFxuXHRcdH0pO1xuXG5cdHdvcmtzcGFjZVxuXHRcdC5nZXRNb2RlbDxQYWNrYWdlSnNvbj4oV0VMTF9LTk9XTl9GSUxFUy5QQUNLQUdFX0pTT04pXG5cdFx0Py5hZGREZXBlbmRlbmN5KFwiQGRlY29oZXJlL2NvZGV4XCIsIENSRUFURV9WRVJTSU9OKVxuXHRcdC5hZGREZXBlbmRlbmN5KFwidHlwZW9ybVwiLCBcIl4wLjMuMjhcIilcblx0XHQuYWRkRGVwZW5kZW5jeShcIkBkZWNvaGVyZS9jb2RleC10eXBlb3JtXCIsIENSRUFURV9WRVJTSU9OKVxuXHRcdC5hZGRTY3JpcHQoXCJkYjp1cFwiLCBcImRvY2tlciBjb21wb3NlIC1mIC5kZXZjb250YWluZXIvZG9ja2VyLWNvbXBvc2UueW1sIHVwIC1kIHBvc3RncmVzXCIpXG5cdFx0LmFkZFNjcmlwdChcImRiOmRvd25cIiwgXCJkb2NrZXIgY29tcG9zZSAtZiAuZGV2Y29udGFpbmVyL2RvY2tlci1jb21wb3NlLnltbCBkb3duXCIpXG5cdFx0LmFkZFNjcmlwdChcblx0XHRcdFwiZGI6cmVzZXRcIixcblx0XHRcdFwiZG9ja2VyIGNvbXBvc2UgLWYgLmRldmNvbnRhaW5lci9kb2NrZXItY29tcG9zZS55bWwgZG93biAtdiAmJiBkb2NrZXIgY29tcG9zZSAtZiAuZGV2Y29udGFpbmVyL2RvY2tlci1jb21wb3NlLnltbCB1cCAtZCBwb3N0Z3Jlc1wiLFxuXHRcdCk7XG5cblx0Ly8gQWRkIGNvZGV4IGRlcHMgdG8gYXBpIHBhY2thZ2UuanNvblxuXHR3b3Jrc3BhY2Vcblx0XHQuZ2V0TW9kZWw8QXBpUGFja2FnZUpzb24+KFdFTExfS05PV05fRklMRVMuQVBJX1BBQ0tBR0VfSlNPTilcblx0XHQ/LmFkZERlcGVuZGVuY3koXCJAZGVjb2hlcmUvY29kZXhcIiwgQ1JFQVRFX1ZFUlNJT04pXG5cdFx0LmFkZERlcGVuZGVuY3koXCJAZGVjb2hlcmUvY29kZXgtdHlwZW9ybVwiLCBDUkVBVEVfVkVSU0lPTik7XG5cblx0Ly8gQXBwZW5kIGRhdGFiYXNlIGNvbmZpZyBzZWN0aW9uc1xuXHR3b3Jrc3BhY2Vcblx0XHQuZ2V0TW9kZWw8Q29uZmlnWWFtbD4oV0VMTF9LTk9XTl9GSUxFUy5DT05GSUdfWUFNTClcblx0XHQ/LmFkZFNlY3Rpb24oREFUQUJBU0VfQkFTRV9DT05GSUdfWUFNTCk7XG5cdHdvcmtzcGFjZVxuXHRcdC5nZXRNb2RlbDxDb25maWdZYW1sPihXRUxMX0tOT1dOX0ZJTEVTLkNPTkZJR19ERVZfWUFNTClcblx0XHQ/LmFkZFNlY3Rpb24oREFUQUJBU0VfREVWX0NPTkZJR19ZQU1MKTtcblxuXHQvLyBSZWdpc3RlciBlbnRpdHkgYW5kIHJlcG9zaXRvcnkgc291cmNlIGZpbGVzIGluIHRoZSBhcGkgcHJvamVjdFxuXHR3b3Jrc3BhY2UuZ2V0UHJvamVjdChXRUJBUElfUFJPSkVDVF9ESVIpPy5hZGRGaWxlKHtcblx0XHRmaWxlczogKCkgPT4gW1xuXHRcdFx0e1xuXHRcdFx0XHRmaWxlUGF0aDogXCJzcmMvZW50aXRpZXMvc2FtcGxlLmVudGl0eS50c1wiLFxuXHRcdFx0XHRjb250ZW50OiBTQU1QTEVfRU5USVRZX1RTLFxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZmlsZVBhdGg6IFwic3JjL3JlcG9zaXRvcmllcy9zYW1wbGUucmVwb3NpdG9yeS50c1wiLFxuXHRcdFx0XHRjb250ZW50OiBTQU1QTEVfUkVQT1NJVE9SWV9UUyxcblx0XHRcdH0sXG5cdFx0XSxcblx0fSk7XG5cblx0Ly8gLmVudiBhdCB3b3Jrc3BhY2Ugcm9vdCDigJQgcG9zdGdyZXMgcmVhZHMgaXQgdmlhIGVudl9maWxlIGFib3ZlOyBkZXZjb250YWluZXIgZ2V0cyBpdCBoZXJlXG5cdGNvbXBvc2U/LmFkZEVudkZpbGUoXCJkZXZjb250YWluZXJcIiwgXCIuLi8uZW52XCIpO1xuXG5cdHdvcmtzcGFjZVxuXHRcdC5nZXRNb2RlbDxFbnZGaWxlPihXRUxMX0tOT1dOX0ZJTEVTLkVOVl9GSUxFKVxuXHRcdD8uYWRkRW50cnkoXCJQT1NUR1JFU19EQlwiLCBkYilcblx0XHQuYWRkRW50cnkoXCJQT1NUR1JFU19VU0VSXCIsIHBvc3RncmVzU3VwZXJ1c2VyKVxuXHRcdC5hZGRFbnRyeShcIlBPU1RHUkVTX1BBU1NXT1JEXCIsIHBvc3RncmVzUGFzc3dvcmQpXG5cdFx0LmFkZEVudHJ5KFwiREJfSE9TVFwiLCBcInBvc3RncmVzXCIpXG5cdFx0LmFkZEVudHJ5KFwiREJfUE9SVFwiLCBcIjU0MzJcIilcblx0XHQuYWRkRW50cnkoXCJEQl9OQU1FXCIsIGRiKVxuXHRcdC8vIFJ1bnRpbWUgYXBwIHJvbGUgKGxlYXN0IHByaXZpbGVnZSkg4oCUIHVzZWQgYnkgVHlwZU9STVxuXHRcdC5hZGRFbnRyeShcIkRCX1VTRVJcIiwgYXBwVXNlcilcblx0XHQuYWRkRW50cnkoXCJEQl9QQVNTV09SRFwiLCBhcHBQYXNzd29yZClcblx0XHQvLyBCb290c3RyYXAgcHJvdmlzaW9uZXIgKENSRUFURURCL0NSRUFURVJPTEUsIG5vdCBzdXBlcnVzZXIpIOKAlCBkZXYgcHJlcGFyZURhdGFiYXNlIG9ubHlcblx0XHQuYWRkRW50cnkoXCJEQl9BRE1JTl9VU0VSXCIsIGJvb3RzdHJhcFVzZXIpXG5cdFx0LmFkZEVudHJ5KFwiREJfQURNSU5fUEFTU1dPUkRcIiwgYm9vdHN0cmFwUGFzc3dvcmQpXG5cdFx0Ly8gTWlncmF0aW9uL0RETCByb2xlIOKAlCBDSS9kZXBsb3k7IG5vdCBtb3VudGVkIG9uIEFQSSBwb2RzIGluIHByb2R1Y3Rpb25cblx0XHQuYWRkRW50cnkoXCJEQl9NSUdSQVRFX1VTRVJcIiwgbWlncmF0ZVVzZXIpXG5cdFx0LmFkZEVudHJ5KFwiREJfTUlHUkFURV9QQVNTV09SRFwiLCBtaWdyYXRlUGFzc3dvcmQpO1xufVxuXG5leHBvcnQgY29uc3QgRGF0YWJhc2VGZWF0dXJlOiBGZWF0dXJlPERhdGFiYXNlT3B0aW9ucz4gPSB7IGdldE9wdGlvbnMsIHNjYWZmb2xkIH07XG4iXSwibmFtZXMiOlsiRGF0YWJhc2VGZWF0dXJlIiwicmVhZEV4aXN0aW5nRW52VmFsdWUiLCJ3b3Jrc3BhY2UiLCJrZXkiLCJyYXciLCJyZWFkRmlsZVN5bmMiLCJqb2luIiwidGFyZ2V0RGlyIiwibGluZSIsInNwbGl0IiwiZmluZCIsImwiLCJzdGFydHNXaXRoIiwidmFsdWUiLCJzbGljZSIsImxlbmd0aCIsInRyaW0iLCJ1bmRlZmluZWQiLCJyYW5kb21QYXNzd29yZCIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJ0b1NxbElkZW50RnJhZ21lbnQiLCJuYW1lIiwiY2xlYW5lZCIsInJlcGxhY2UiLCJwYXNzd29yZE9yRXhpc3RpbmciLCJmYWxsYmFja0V4aXN0aW5nS2V5cyIsImV4aXN0aW5nIiwiYWx0IiwidiIsIkRBVEFCQVNFX0JBU0VfQ09ORklHX1lBTUwiLCJEQVRBQkFTRV9ERVZfQ09ORklHX1lBTUwiLCJQT1NUR1JFU19JTklUX0JPT1RTVFJBUF9TSCIsIlNBTVBMRV9FTlRJVFlfVFMiLCJTQU1QTEVfUkVQT1NJVE9SWV9UUyIsImdldE9wdGlvbnMiLCJfd29ya3NwYWNlIiwiY2xpT3B0aW9ucyIsImRhdGFiYXNlUHJvdmlkZXIiLCJjaG9pY2VzIiwibGFiZWwiLCJzZWxlY3RlZCIsInBpY2siLCJjIiwic2NhZmZvbGQiLCJvcHRpb25zIiwiaWRlbnQiLCJkYiIsInBvc3RncmVzU3VwZXJ1c2VyIiwicG9zdGdyZXNQYXNzd29yZCIsImJvb3RzdHJhcFVzZXIiLCJib290c3RyYXBQYXNzd29yZCIsImFwcFVzZXIiLCJhcHBQYXNzd29yZCIsIm1pZ3JhdGVVc2VyIiwibWlncmF0ZVBhc3N3b3JkIiwiZGV2Q29udGFpbmVyIiwiZ2V0TW9kZWwiLCJXRUxMX0tOT1dOX0ZJTEVTIiwiREVWQ09OVEFJTkVSX0pTT04iLCJjb21wb3NlIiwiRE9DS0VSX0NPTVBPU0UiLCJuZXR3b3JrS2V5Iiwidm9sdW1lTmFtZSIsImFkZFNlcnZpY2UiLCJpbWFnZSIsImNvbnRhaW5lcl9uYW1lIiwicmVzdGFydCIsInBvcnRzIiwidm9sdW1lcyIsIm5ldHdvcmtzIiwiYWxpYXNlcyIsImhlYWx0aGNoZWNrIiwidGVzdCIsImludGVydmFsIiwidGltZW91dCIsInJldHJpZXMiLCJhZGRFbnZGaWxlIiwiYWRkVm9sdW1lIiwicHJvZmlsZXMiLCJhZGRGaWxlIiwiZmlsZXMiLCJmaWxlUGF0aCIsImNvbnRlbnQiLCJhZGRFeHRlbnNpb24iLCJNQUlOX1RTIiwiYWRkU2lkZUVmZmVjdEltcG9ydCIsImFkZEVudGl0eSIsImNsYXNzTmFtZSIsImltcG9ydFBhdGgiLCJhZGRSZXBvc2l0b3J5IiwiUEFDS0FHRV9KU09OIiwiYWRkRGVwZW5kZW5jeSIsIkNSRUFURV9WRVJTSU9OIiwiYWRkU2NyaXB0IiwiQVBJX1BBQ0tBR0VfSlNPTiIsIkNPTkZJR19ZQU1MIiwiYWRkU2VjdGlvbiIsIkNPTkZJR19ERVZfWUFNTCIsImdldFByb2plY3QiLCJXRUJBUElfUFJPSkVDVF9ESVIiLCJFTlZfRklMRSIsImFkZEVudHJ5Il0sIm1hcHBpbmdzIjoiOzs7OytCQWlTYUE7OztlQUFBQTs7OzRCQWpTZTt3QkFDQzswQkFDUjt3QkFDQTt1QkFHWTt5QkFNRjt3QkFDSTtBQVFuQyxnRUFBZ0UsR0FDaEUsU0FBU0MscUJBQXFCQyxTQUE0QixFQUFFQyxHQUFXO0lBQ3RFLElBQUk7UUFDSCxNQUFNQyxNQUFNQyxJQUFBQSxvQkFBWSxFQUFDQyxJQUFBQSxjQUFJLEVBQUNKLFVBQVVLLFNBQVMsRUFBRSxTQUFTO1FBQzVELE1BQU1DLE9BQU9KLElBQUlLLEtBQUssQ0FBQyxNQUFNQyxJQUFJLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsVUFBVSxDQUFDLEdBQUdULElBQUksQ0FBQyxDQUFDO1FBQy9ELE1BQU1VLFFBQVFMLE1BQU1NLE1BQU1YLElBQUlZLE1BQU0sR0FBRyxHQUFHQztRQUMxQyxPQUFPSCxTQUFTSTtJQUNqQixFQUFFLE9BQU07UUFDUCxPQUFPQTtJQUNSO0FBQ0Q7QUFFQSxTQUFTQztJQUNSLE9BQU9DLElBQUFBLHVCQUFXLEVBQUMsSUFBSUMsUUFBUSxDQUFDO0FBQ2pDO0FBRUEsNkRBQTZELEdBQzdELFNBQVNDLG1CQUFtQkMsSUFBWTtJQUN2QyxNQUFNQyxVQUFVRCxLQUFLRSxPQUFPLENBQUMsa0JBQWtCLEtBQUtBLE9BQU8sQ0FBQyxpQkFBaUI7SUFDN0UsT0FBT0QsUUFBUVIsTUFBTSxHQUFHLElBQUlRLFFBQVFULEtBQUssQ0FBQyxHQUFHLE1BQU07QUFDcEQ7QUFFQSxTQUFTVyxtQkFDUnZCLFNBQTRCLEVBQzVCQyxHQUFXLEVBQ1h1Qix1QkFBaUMsRUFBRTtJQUVuQyxNQUFNQyxXQUFXMUIscUJBQXFCQyxXQUFXQztJQUNqRCxJQUFJd0Is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
|
|
@@ -34,6 +34,7 @@ class ApiPackageJson {
|
|
|
34
34
|
const pkg = {
|
|
35
35
|
name: `@${this.projectName}/api`,
|
|
36
36
|
version: "0.0.1",
|
|
37
|
+
private: true,
|
|
37
38
|
type: "module",
|
|
38
39
|
main: "src/main.ts",
|
|
39
40
|
scripts: {
|
|
@@ -57,4 +58,4 @@ class ApiPackageJson {
|
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NyZWF0ZS9zcmMvd2ViYXBpL21vZGVscy9hcGktcGFja2FnZS1qc29uLm1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdFTExfS05PV05fRklMRVMgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbnN0LmpzXCI7XG5pbXBvcnQgdHlwZSB7IEtleWVkTW9kZWwsIFNvdXJjZUZpbGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NvdXJjZS1maWxlLmpzXCI7XG5pbXBvcnQgeyBDUkVBVEVfVkVSU0lPTiB9IGZyb20gXCIuLi8uLi92ZXJzaW9uLmpzXCI7XG5cbi8qKlxuICogQnVpbGRlciBmb3IgYHByb2plY3RzL2FwaS9wYWNrYWdlLmpzb25gLlxuICpcbiAqIFN0YXJ0cyB3aXRoIHRoZSBjb3JlIGNvcnRleCArIGNydWNpYmxlIGRlcHMuIEZlYXR1cmVzIGNhbiBjYWxsXG4gKiBgYWRkRGVwZW5kZW5jeWAgLyBgYWRkRGV2RGVwZW5kZW5jeWAgdG8gZXh0ZW5kLlxuICovXG5leHBvcnQgY2xhc3MgQXBpUGFja2FnZUpzb24gaW1wbGVtZW50cyBLZXllZE1vZGVsIHtcblx0cHVibGljIHJlYWRvbmx5IGtleSA9IFdFTExfS05PV05fRklMRVMuQVBJX1BBQ0tBR0VfSlNPTjtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9kZXBlbmRlbmNpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cdHByaXZhdGUgcmVhZG9ubHkgX2RldkRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb2plY3ROYW1lOiBzdHJpbmcpIHtcblx0XHR0aGlzLl9kZXBlbmRlbmNpZXMgPSB7XG5cdFx0XHRcIkBkZWNvaGVyZS9jb3J0ZXhcIjogQ1JFQVRFX1ZFUlNJT04sXG5cdFx0XHRcIkBkZWNvaGVyZS9jcnVjaWJsZVwiOiBDUkVBVEVfVkVSU0lPTixcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIGFkZERlcGVuZGVuY3kobmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9kZXBlbmRlbmNpZXNbbmFtZV0gPSB2ZXJzaW9uO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGFkZERldkRlcGVuZGVuY3kobmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiB0aGlzIHtcblx0XHR0aGlzLl9kZXZEZXBlbmRlbmNpZXNbbmFtZV0gPSB2ZXJzaW9uO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHVibGljIGZpbGVzKCk6IFNvdXJjZUZpbGVbXSB7XG5cdFx0Y29uc3QgcGtnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcblx0XHRcdG5hbWU6IGBAJHt0aGlzLnByb2plY3ROYW1lfS9hcGlgLFxuXHRcdFx0dmVyc2lvbjogXCIwLjAuMVwiLFxuXHRcdFx0cHJpdmF0ZTogdHJ1ZSxcblx0XHRcdHR5cGU6IFwibW9kdWxlXCIsXG5cdFx0XHRtYWluOiBcInNyYy9tYWluLnRzXCIsXG5cdFx0XHRzY3JpcHRzOiB7XG5cdFx0XHRcdGxpbnQ6IFwiYmlvbWUgY2hlY2sgLS13cml0ZSAuXCIsXG5cdFx0XHR9LFxuXHRcdFx0ZGVwZW5kZW5jaWVzOiB7IC4uLnRoaXMuX2RlcGVuZGVuY2llcyB9LFxuXHRcdH07XG5cdFx0aWYgKE9iamVjdC5rZXlzKHRoaXMuX2RldkRlcGVuZGVuY2llcykubGVuZ3RoID4gMCkge1xuXHRcdFx0cGtnLmRldkRlcGVuZGVuY2llcyA9IHsgLi4udGhpcy5fZGV2RGVwZW5kZW5jaWVzIH07XG5cdFx0fVxuXHRcdHJldHVybiBbXG5cdFx0XHR7XG5cdFx0XHRcdGZpbGVQYXRoOiBcInBhY2thZ2UuanNvblwiLFxuXHRcdFx0XHRjb250ZW50OiBKU09OLnN0cmluZ2lmeShwa2csIG51bGwsIDIpLFxuXHRcdFx0fSxcblx0XHRdO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiQXBpUGFja2FnZUpzb24iLCJrZXkiLCJXRUxMX0tOT1dOX0ZJTEVTIiwiQVBJX1BBQ0tBR0VfSlNPTiIsIl9kZXBlbmRlbmNpZXMiLCJfZGV2RGVwZW5kZW5jaWVzIiwicHJvamVjdE5hbWUiLCJDUkVBVEVfVkVSU0lPTiIsImFkZERlcGVuZGVuY3kiLCJuYW1lIiwidmVyc2lvbiIsImFkZERldkRlcGVuZGVuY3kiLCJmaWxlcyIsInBrZyIsInByaXZhdGUiLCJ0eXBlIiwibWFpbiIsInNjcmlwdHMiLCJsaW50IiwiZGVwZW5kZW5jaWVzIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImRldkRlcGVuZGVuY2llcyIsImZpbGVQYXRoIiwiY29udGVudCIsIkpTT04iLCJzdHJpbmdpZnkiXSwibWFwcGluZ3MiOiI7Ozs7K0JBVWFBOzs7ZUFBQUE7Ozt1QkFWb0I7eUJBRUY7QUFReEIsTUFBTUE7O0lBQ0lDLE1BQU1DLHVCQUFnQixDQUFDQyxnQkFBZ0IsQ0FBQztJQUV2Q0MsY0FBc0M7SUFDdENDLG1CQUEyQyxDQUFDLEVBQUU7SUFFL0QsWUFBbUIsQUFBaUJDLFdBQW1CLENBQUU7YUFBckJBLGNBQUFBO1FBQ25DLElBQUksQ0FBQ0YsYUFBYSxHQUFHO1lBQ3BCLG9CQUFvQkcsdUJBQWM7WUFDbEMsc0JBQXNCQSx1QkFBYztRQUNyQztJQUNEO0lBRU9DLGNBQWNDLElBQVksRUFBRUMsT0FBZSxFQUFRO1FBQ3pELElBQUksQ0FBQ04sYUFBYSxDQUFDSyxLQUFLLEdBQUdDO1FBQzNCLE9BQU8sSUFBSTtJQUNaO0lBRU9DLGlCQUFpQkYsSUFBWSxFQUFFQyxPQUFlLEVBQVE7UUFDNUQsSUFBSSxDQUFDTCxnQkFBZ0IsQ0FBQ0ksS0FBSyxHQUFHQztRQUM5QixPQUFPLElBQUk7SUFDWjtJQUVPRSxRQUFzQjtRQUM1QixNQUFNQyxNQUErQjtZQUNwQ0osTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUNILFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDaENJLFNBQVM7WUFDVEksU0FBUztZQUNUQyxNQUFNO1lBQ05DLE1BQU07WUFDTkMsU0FBUztnQkFDUkMsTUFBTTtZQUNQO1lBQ0FDLGNBQWM7Z0JBQUUsR0FBRyxJQUFJLENBQUNmLGFBQWE7WUFBQztRQUN2QztRQUNBLElBQUlnQixPQUFPQyxJQUFJLENBQUMsSUFBSSxDQUFDaEIsZ0JBQWdCLEVBQUVpQixNQUFNLEdBQUcsR0FBRztZQUNsRFQsSUFBSVUsZUFBZSxHQUFHO2dCQUFFLEdBQUcsSUFBSSxDQUFDbEIsZ0JBQWdCO1lBQUM7UUFDbEQ7UUFDQSxPQUFPO1lBQ047Z0JBQ0NtQixVQUFVO2dCQUNWQyxTQUFTQyxLQUFLQyxTQUFTLENBQUNkLEtBQUssTUFBTTtZQUNwQztTQUNBO0lBQ0Y7QUFDRCJ9
|