@lowcodeunit/applications-flow-common 1.37.97-devops-loading-logic → 1.37.98-devops-loading-logic
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/esm2020/lib/elements/project-card/project-card.component.mjs +7 -8
- package/fesm2015/lowcodeunit-applications-flow-common.mjs +6 -7
- package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/fesm2020/lowcodeunit-applications-flow-common.mjs +6 -7
- package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/package.json +1 -1
@@ -114,12 +114,12 @@ export class ProjectCardComponent {
|
|
114
114
|
this.ProjectLookups?.forEach((pLookup) => {
|
115
115
|
let tempProj = this.Projects[pLookup];
|
116
116
|
this.Project = tempProj;
|
117
|
+
// 'https://www.' +
|
117
118
|
let tempProjNode = {
|
118
119
|
name: tempProj.Project.Name,
|
119
120
|
description: tempProj.Project.Description,
|
120
121
|
lookup: pLookup,
|
121
|
-
url:
|
122
|
-
tempProj.Hosts[tempProj?.Hosts?.length - 1],
|
122
|
+
url: tempProj.Hosts[tempProj?.Hosts?.length - 1],
|
123
123
|
routerLink: ['/project', pLookup],
|
124
124
|
};
|
125
125
|
let tempRoutes = this.ApplicationRoutes;
|
@@ -127,10 +127,10 @@ export class ProjectCardComponent {
|
|
127
127
|
let tempProjChildren = [];
|
128
128
|
tempRoutes.forEach((appRoute) => {
|
129
129
|
this.AppRoute = appRoute;
|
130
|
+
// 'https://www.' +
|
130
131
|
let tempRouteNode = {
|
131
132
|
name: this.AppRoute,
|
132
|
-
url:
|
133
|
-
tempProj?.Hosts[tempProj?.Hosts?.length - 1] +
|
133
|
+
url: tempProj?.Hosts[tempProj?.Hosts?.length - 1] +
|
134
134
|
this.AppRoute,
|
135
135
|
routerLink: ['/route', this.AppRoute, pLookup],
|
136
136
|
};
|
@@ -139,12 +139,11 @@ export class ProjectCardComponent {
|
|
139
139
|
let tempRouteChildren = [];
|
140
140
|
tempApps.forEach((appLookup) => {
|
141
141
|
let tempApp = this.RoutedApplications[this.AppRoute][appLookup];
|
142
|
+
// 'https://www.' +
|
142
143
|
let tempAppNode = {
|
143
144
|
lookup: appLookup,
|
144
145
|
name: tempApp.Application.Name,
|
145
|
-
url:
|
146
|
-
tempProj?.Hosts[tempProj?.Hosts?.length - 1] +
|
147
|
-
this.AppRoute,
|
146
|
+
url: tempProj?.Hosts[tempProj?.Hosts?.length - 1] + this.AppRoute,
|
148
147
|
description: tempApp.Application.Description,
|
149
148
|
routerLink: [
|
150
149
|
'/application',
|
@@ -189,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
189
188
|
type: Input,
|
190
189
|
args: ['projects']
|
191
190
|
}] } });
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2VsZW1lbnRzL3Byb2plY3QtY2FyZC9wcm9qZWN0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvcHJvamVjdC1jYXJkL3Byb2plY3QtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUNILHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDbkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBV2hDLE1BQU0sT0FBTyxvQkFBb0I7SUErSTdCLGtDQUFrQztJQUVsQyxZQUNjLE1BQWtCLEVBQ2xCLFNBQTBCO1FBRDFCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUF0SWhDLGdCQUFXLEdBQUcsQ0FBQyxJQUFjLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDcEQsT0FBTztnQkFDSCxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDdkQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLEtBQUssRUFBRSxLQUFLO2dCQUNaLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDM0IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2dCQUNiLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2FBQ2hDLENBQUM7UUFD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QmpDLGtuVUFnUkE7MkZEaFFhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDSSxrQkFBa0I7K0hBTXJCLGdCQUFnQjtzQkFEdEIsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBSW5CLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTO2dCQUlULGNBQWM7c0JBRHBCLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUlqQixRQUFRO3NCQURkLEtBQUs7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBNYXRUcmVlRmxhdERhdGFTb3VyY2UsXG4gICAgTWF0VHJlZUZsYXR0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XG5pbXBvcnQgeyBFYUNBcHBsaWNhdGlvbkFzQ29kZSwgRWFDUHJvamVjdEFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBGbGF0Tm9kZSwgVHJlZU5vZGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHJlZS1ub2RlLm1vZGVsJztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBTb2NpYWxVSVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zb2NpYWwtdWkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGN1LXByb2plY3QtY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2plY3QtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJvamVjdC1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFByb2plY3RDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoJ2FwcGxpY2F0aW9ucy1iYW5rJylcbiAgICBwdWJsaWMgQXBwbGljYXRpb25zQmFuazogQXJyYXk8RWFDQXBwbGljYXRpb25Bc0NvZGU+O1xuXG4gICAgQElucHV0KCdsb2FkaW5nJylcbiAgICBwdWJsaWMgTG9hZGluZzogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgncHJvamVjdC1sb29rdXBzJylcbiAgICBwdWJsaWMgUHJvamVjdExvb2t1cHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBASW5wdXQoJ3Byb2plY3RzJylcbiAgICBwdWJsaWMgUHJvamVjdHM6IEFycmF5PEVhQ1Byb2plY3RBc0NvZGU+O1xuXG4gICAgcHJpdmF0ZSB0cmFuc2Zvcm1lciA9IChub2RlOiBUcmVlTm9kZSwgbGV2ZWw6IG51bWJlcikgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZXhwYW5kYWJsZTogISFub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCxcbiAgICAgICAgICAgIG5hbWU6IG5vZGUubmFtZSxcbiAgICAgICAgICAgIGxldmVsOiBsZXZlbCxcbiAgICAgICAgICAgIHJvdXRlckxpbms6IG5vZGUucm91dGVyTGluayxcbiAgICAgICAgICAgIHVybDogbm9kZS51cmwsXG4gICAgICAgICAgICBsb29rdXA6IG5vZGUubG9va3VwLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IG5vZGUuZGVzY3JpcHRpb24sXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBnZXQgQXBwbGljYXRpb25zKCk6IHtcbiAgICAgICAgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG4gICAgfSB7XG4gICAgICAgIGNvbnN0IGFwcHM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfSA9IHt9O1xuXG4gICAgICAgIHRoaXMuUHJvamVjdD8uQXBwbGljYXRpb25Mb29rdXBzPy5mb3JFYWNoKChhcHBMb29rdXA6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgYXBwc1thcHBMb29rdXBdID0gdGhpcy5BcHBsaWNhdGlvbnNCYW5rW2FwcExvb2t1cF07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYXBwcztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEFwcGxpY2F0aW9uUm91dGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5Sb3V0ZWRBcHBsaWNhdGlvbnMgfHwge30pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgQ3VycmVudFJvdXRlQXBwbGljYXRpb25Mb29rdXBzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5Sb3V0ZWRBcHBsaWNhdGlvbnNbdGhpcy5BcHBSb3V0ZV0gfHwge30pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgUm91dGVkQXBwbGljYXRpb25zKCk6IHtcbiAgICAgICAgW3JvdXRlOiBzdHJpbmddOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH07XG4gICAgfSB7XG4gICAgICAgIGNvbnN0IGFwcExvb2t1cHMgPSBPYmplY3Qua2V5cyh0aGlzLkFwcGxpY2F0aW9ucyk7XG5cbiAgICAgICAgY29uc3QgYXBwcyA9IGFwcExvb2t1cHMubWFwKFxuICAgICAgICAgICAgKGFwcExvb2t1cCkgPT4gdGhpcy5BcHBsaWNhdGlvbnNbYXBwTG9va3VwXVxuICAgICAgICApO1xuXG4gICAgICAgIGxldCBhcHBSb3V0ZXMgPVxuICAgICAgICAgICAgYXBwcy5tYXAoKGFwcCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiQXBwIGZyb20gcHJvamVjdHM6IFwiLCBhcHApO1xuICAgICAgICAgICAgICAgIHJldHVybiBhcHA/Lkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnJlcGxhY2UoJy4qJywgJycpO1xuICAgICAgICAgICAgfSkgfHwgW107XG5cbiAgICAgICAgYXBwUm91dGVzID0gYXBwUm91dGVzLmZpbHRlcigoYXIpID0+IGFyICE9IG51bGwpO1xuXG4gICAgICAgIGxldCByb3V0ZUJhc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGFwcFJvdXRlcy5mb3JFYWNoKChhcHBSb3V0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXBwUm91dGVQYXJ0cyA9IGFwcFJvdXRlLnNwbGl0KCcvJyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGFwcFJvdXRlQmFzZSA9IGAvJHthcHBSb3V0ZVBhcnRzWzFdfWA7XG5cbiAgICAgICAgICAgIGlmIChyb3V0ZUJhc2VzLmluZGV4T2YoYXBwUm91dGVCYXNlKSA8IDApIHtcbiAgICAgICAgICAgICAgICByb3V0ZUJhc2VzLnB1c2goYXBwUm91dGVCYXNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IHdvcmtpbmdBcHBMb29rdXBzID0gWy4uLihhcHBMb29rdXBzIHx8IFtdKV07XG5cbiAgICAgICAgcm91dGVCYXNlcyA9IHJvdXRlQmFzZXMuc29ydCgoYSwgYikgPT4gYi5sb2NhbGVDb21wYXJlKGEpKTtcblxuICAgICAgICBjb25zdCByb3V0ZVNldCA9XG4gICAgICAgICAgICByb3V0ZUJhc2VzLnJlZHVjZSgocHJldlJvdXRlTWFwLCBjdXJyZW50Um91dGVCYXNlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm91dGVNYXAgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnByZXZSb3V0ZU1hcCxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRBcHBMb29rdXBzID0gd29ya2luZ0FwcExvb2t1cHMuZmlsdGVyKCh3YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2EgPSB0aGlzLkFwcGxpY2F0aW9uc1t3YWxdO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB3YT8uTG9va3VwQ29uZmlnPy5QYXRoUmVnZXguc3RhcnRzV2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSb3V0ZUJhc2VcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJvdXRlTWFwW2N1cnJlbnRSb3V0ZUJhc2VdID1cbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWRBcHBMb29rdXBzLnJlZHVjZSgocHJldkFwcE1hcCwgYXBwTG9va3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhcHBNYXA6IGFueSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2QXBwTWFwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwTWFwW2FwcExvb2t1cF0gPSB0aGlzLkFwcGxpY2F0aW9uc1thcHBMb29rdXBdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXBwTWFwO1xuICAgICAgICAgICAgICAgICAgICB9LCB7fSkgfHwge307XG5cbiAgICAgICAgICAgICAgICB3b3JraW5nQXBwTG9va3VwcyA9IHdvcmtpbmdBcHBMb29rdXBzLmZpbHRlcigod2EpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkQXBwTG9va3Vwcy5pbmRleE9mKHdhKSA8IDA7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcm91dGVNYXA7XG4gICAgICAgICAgICB9LCB7fSkgfHwge307XG5cbiAgICAgICAgbGV0IHJvdXRlU2V0S2V5cyA9IE9iamVjdC5rZXlzKHJvdXRlU2V0KTtcblxuICAgICAgICByb3V0ZVNldEtleXMgPSByb3V0ZVNldEtleXMuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKTtcblxuICAgICAgICBjb25zdCByb3V0ZVNldFJlc3VsdCA9IHt9O1xuXG4gICAgICAgIHJvdXRlU2V0S2V5cy5mb3JFYWNoKChyc2spID0+IChyb3V0ZVNldFJlc3VsdFtyc2tdID0gcm91dGVTZXRbcnNrXSkpO1xuXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiQXBwIFJvdXRlczogXCIscm91dGVTZXRSZXN1bHQpXG5cbiAgICAgICAgcmV0dXJuIHJvdXRlU2V0UmVzdWx0O1xuICAgIH1cblxuICAgIHRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxGbGF0Tm9kZT4oXG4gICAgICAgIChub2RlOiBhbnkpID0+IG5vZGUubGV2ZWwsXG4gICAgICAgIChub2RlOiBhbnkpID0+IG5vZGUuZXhwYW5kYWJsZVxuICAgICk7XG5cbiAgICB0cmVlRmxhdHRlbmVyID0gbmV3IE1hdFRyZWVGbGF0dGVuZXIoXG4gICAgICAgIHRoaXMudHJhbnNmb3JtZXIsXG4gICAgICAgIChub2RlKSA9PiBub2RlLmxldmVsLFxuICAgICAgICAobm9kZSkgPT4gbm9kZS5leHBhbmRhYmxlLFxuICAgICAgICAobm9kZSkgPT4gbm9kZS5jaGlsZHJlblxuICAgICk7XG5cbiAgICBwdWJsaWMgRGF0YVNvdXJjZSA9IG5ldyBNYXRUcmVlRmxhdERhdGFTb3VyY2UoXG4gICAgICAgIHRoaXMudHJlZUNvbnRyb2wsXG4gICAgICAgIHRoaXMudHJlZUZsYXR0ZW5lclxuICAgICk7XG5cbiAgICBwdWJsaWMgUHJvamVjdDogRWFDUHJvamVjdEFzQ29kZTtcblxuICAgIHB1YmxpYyBBcHBSb3V0ZTogc3RyaW5nO1xuXG4gICAgLy8gcHVibGljIFJvdXRlZEFwcGxpY2F0aW9uczogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBzb2NpYWxTdmM6IFNvY2lhbFVJU2VydmljZVxuICAgICkge31cblxuICAgIHB1YmxpYyBIYXNDaGlsZCA9IChfOiBudW1iZXIsIG5vZGU6IEZsYXROb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5Qcm9qZWN0cyAmJiB0aGlzLlByb2plY3RMb29rdXBzICYmIHRoaXMuQXBwbGljYXRpb25zKSB7XG4gICAgICAgICAgICBsZXQgdGVtcCA9IHRoaXMuQnVpbGRUcmVlKCk7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcInRvIHN0cmluZzogXCIsIEpTT04uc3RyaW5naWZ5KHRlbXApKVxuXG4gICAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodGhpcy5EYXRhU291cmNlLmRhdGEpICE9PSBKU09OLnN0cmluZ2lmeSh0ZW1wKSkge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdJdHMgZGlmZmVyZW50JylcbiAgICAgICAgICAgICAgICB0aGlzLkRhdGFTb3VyY2UuZGF0YSA9IHRlbXA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBlbHNle1xuICAgICAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKCdpdCBhaW50IGRpZmZlcmVudCcpXG4gICAgICAgICAgICAvLyB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgUm91dGVUb1BhdGgocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcGF0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgQnVpbGRUcmVlKCk6IEFycmF5PFRyZWVOb2RlPiB7XG4gICAgICAgIGxldCB0ZW1wVHJlZURhdGE6IEFycmF5PFRyZWVOb2RlPiA9IFtdO1xuICAgICAgICB0aGlzLlByb2plY3RMb29rdXBzPy5mb3JFYWNoKChwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGxldCB0ZW1wUHJvaiA9IHRoaXMuUHJvamVjdHNbcExvb2t1cF07XG4gICAgICAgICAgICB0aGlzLlByb2plY3QgPSB0ZW1wUHJvajtcbiAgICAgICAgICAgIGxldCB0ZW1wUHJvak5vZGU6IFRyZWVOb2RlID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IHRlbXBQcm9qLlByb2plY3QuTmFtZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdGVtcFByb2ouUHJvamVjdC5EZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBsb29rdXA6IHBMb29rdXAsXG4gICAgICAgICAgICAgICAgdXJsOlxuICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly93d3cuJyArXG4gICAgICAgICAgICAgICAgICAgIHRlbXBQcm9qLkhvc3RzW3RlbXBQcm9qPy5Ib3N0cz8ubGVuZ3RoIC0gMV0sXG4gICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvcHJvamVjdCcsIHBMb29rdXBdLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IHRlbXBSb3V0ZXMgPSB0aGlzLkFwcGxpY2F0aW9uUm91dGVzO1xuXG4gICAgICAgICAgICBpZiAodGVtcFJvdXRlcykge1xuICAgICAgICAgICAgICAgIGxldCB0ZW1wUHJvakNoaWxkcmVuOiBBcnJheTxUcmVlTm9kZT4gPSBbXTtcbiAgICAgICAgICAgICAgICB0ZW1wUm91dGVzLmZvckVhY2goKGFwcFJvdXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5BcHBSb3V0ZSA9IGFwcFJvdXRlO1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wUm91dGVOb2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuQXBwUm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vd3d3LicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBQcm9qPy5Ib3N0c1t0ZW1wUHJvaj8uSG9zdHM/Lmxlbmd0aCAtIDFdICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkFwcFJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogWycvcm91dGUnLCB0aGlzLkFwcFJvdXRlLCBwTG9va3VwXSxcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcEFwcHMgPSB0aGlzLkN1cnJlbnRSb3V0ZUFwcGxpY2F0aW9uTG9va3VwcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBBcHBzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcFJvdXRlQ2hpbGRyZW46IEFycmF5PFRyZWVOb2RlPiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcEFwcHMuZm9yRWFjaCgoYXBwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcEFwcCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUm91dGVkQXBwbGljYXRpb25zW3RoaXMuQXBwUm91dGVdW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwTG9va3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXBBcHBOb2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9va3VwOiBhcHBMb29rdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHRlbXBBcHAuQXBwbGljYXRpb24uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vd3d3LicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFByb2o/Lkhvc3RzW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBQcm9qPy5Ib3N0cz8ubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkFwcFJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogdGVtcEFwcC5BcHBsaWNhdGlvbi5EZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluazogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy9hcHBsaWNhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBMb29rdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkFwcFJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcExvb2t1cCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBSb3V0ZUNoaWxkcmVuLnB1c2godGVtcEFwcE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wUm91dGVOb2RlLmNoaWxkcmVuID0gdGVtcFJvdXRlQ2hpbGRyZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGVtcFByb2pDaGlsZHJlbi5wdXNoKHRlbXBSb3V0ZU5vZGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRlbXBQcm9qTm9kZS5jaGlsZHJlbiA9IHRlbXBQcm9qQ2hpbGRyZW47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZW1wVHJlZURhdGEucHVzaCh0ZW1wUHJvak5vZGUpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ1RIRSBUUkVFOiAnLCB0ZW1wVHJlZURhdGEpO1xuICAgICAgICByZXR1cm4gdGVtcFRyZWVEYXRhO1xuXG4gICAgICAgIC8vIHJldHVybiB0ZW1wVHJlZURhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIEhhbmRsZVJvdXRlKHJvdXRlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ3JvdXRlOiAnLCByb3V0ZSk7XG4gICAgfVxufVxuIiwiPCEtLSBUUkVFIC0tPlxuPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiUHJvamVjdExvb2t1cHM/QnVpbGRUcmVlKCk6ZmFsc2VcIj48L25nLWNvbnRhaW5lcj4gLS0+XG48bGN1LXNsb3R0ZWQtY2FyZC1sZ1xuICAgICpuZ0lmPVwiUHJvamVjdExvb2t1cHM/Lmxlbmd0aCA+IDBcIlxuICAgIGNsYXNzPVwiZml0LWNvbnRlbnRcIlxuICAgIFtsb2FkaW5nXT1cIkxvYWRpbmdcIlxuICAgIGNhcmQtdGl0bGU9XCJQcm9qZWN0XCJcbiAgICBpY29uPVwid29ya19vdXRsaW5lXCJcbiAgICBbbWFpbi1zbG90LWRlc2NyaXB0aW9uXT1cIlByb2plY3RMb29rdXBzPy5sZW5ndGggKyAnIHByb2plY3QocykgY29uZmlndXJlZCdcIlxuICAgIChtYWluLWFjdGlvbi1jbGlja2VkKT1cIlJvdXRlVG9QYXRoKCcvZGFzaGJvYXJkL2NyZWF0ZS1wcm9qZWN0JylcIlxuPlxuICAgIDwhLS0gPGRpdj4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkRhdGFTb3VyY2VcIj5cbiAgICAgICAgPG1hdC10cmVlIFtkYXRhU291cmNlXT1cIkRhdGFTb3VyY2VcIiBbdHJlZUNvbnRyb2xdPVwidHJlZUNvbnRyb2xcIj5cbiAgICAgICAgICAgIDxtYXQtdHJlZS1ub2RlICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlXCIgbWF0VHJlZU5vZGVQYWRkaW5nPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwic2xvdC1oZWFkZXItYW5jaG9yXCIgW3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub2RlLm5hbWVcIiBjbGFzcz1cInNsb3QtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9kZS5kZXNjcmlwdGlvblwiIGNsYXNzPVwic2xvdC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9ucy1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJub2RlLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCB7eyBub2RlLm5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5lZGl0PC9tYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJub2RlLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiTGF1bmNoIHt7IG5vZGUubmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPmxhdW5jaDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24+PC9idXR0b24+IC0tPlxuICAgICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxuICAgICAgICAgICAgPG1hdC10cmVlLW5vZGVcbiAgICAgICAgICAgICAgICAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZTsgd2hlbjogSGFzQ2hpbGRcIlxuICAgICAgICAgICAgICAgIG1hdFRyZWVOb2RlUGFkZGluZ1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdFRyZWVOb2RlVG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1RvZ2dsZSAnICsgbm9kZS5uYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiZXhwYW5kX21vcmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiY2hldnJvbl9yaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwic2xvdC1oZWFkZXItYW5jaG9yXCIgW3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub2RlLm5hbWVcIiBjbGFzcz1cInNsb3QtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9kZS5kZXNjcmlwdGlvblwiIGNsYXNzPVwic2xvdC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbm9kZS5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9ucy1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJub2RlLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCB7eyBub2RlLm5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5lZGl0PC9tYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJub2RlLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiTGF1bmNoIHt7IG5vZGUubmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPmxhdW5jaDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtdHJlZS1ub2RlPlxuICAgICAgICA8L21hdC10cmVlPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWFpbi1zbG90LWNvbnRhaW5lclwiXG4gICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgKm5nRm9yPVwibGV0IHByb2plY3RMb29rdXAgb2YgUHJvamVjdExvb2t1cHNcIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJzbG90LWNvbnRlbnRcIlxuICAgICAgICAgICAgKm5nSWY9XCJTdGF0ZT8uRWFDPy5Qcm9qZWN0c1twcm9qZWN0TG9va3VwXTsgbGV0IHByb2plY3RcIlxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNsb3QtaGVhZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbG90LWhlYWRlclwiIGZ4TGF5b3V0PVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtaGVhZGVyLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9wcm9qZWN0JywgcHJvamVjdExvb2t1cF1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJvamVjdC5Qcm9qZWN0Lk5hbWVcIiBjbGFzcz1cInNsb3QtbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb2plY3QuUHJvamVjdC5OYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2plY3QuUHJvamVjdC5EZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBwcm9qZWN0LlByb2plY3QuRGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbnMtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb24tYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvcHJvamVjdCcsIHByb2plY3RMb29rdXBdXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCB7eyBwcm9qZWN0LlByb2plY3QuTmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+ZWRpdDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vJyArIHByb2plY3Q/Lkhvc3RzW3Byb2plY3Q/Lkhvc3RzPy5sZW5ndGggLSAxXVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJMYXVuY2gge3sgcHJvamVjdC5Qcm9qZWN0Lk5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPmxhdW5jaDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4gLS0+XG5cbiAgICA8IS0tIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJUb2dnbGVTbGljZXMoJ1Byb2plY3RzJylcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlByb2plY3RMb29rdXBzPy5sZW5ndGggPiA1XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBTbGljZXMuUHJvamVjdHMgPT0gUHJvamVjdExvb2t1cHM/Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJTaG93IExlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJTaG93IE1vcmVcIlxuICAgICAgICAgICAgICAgICAgICB9fVxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xpY2VzLlByb2plY3RzID09IFByb2plY3RMb29rdXBzPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImV4cGFuZF9sZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcImV4cGFuZF9tb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxuICAgIDwhLS0gPC9kaXY+IC0tPlxuPC9sY3Utc2xvdHRlZC1jYXJkLWxnPlxuXG48IS0tIE9yaWdpbmFsIC0tPlxuPCEtLSA8bGN1LXNsb3R0ZWQtY2FyZC1sZ1xuICAgICpuZ0lmPVwiUHJvamVjdExvb2t1cHM/Lmxlbmd0aCA+IDBcIlxuICAgIGNsYXNzPVwiZml0LWNvbnRlbnRcIlxuICAgIGNhcmQtdGl0bGU9XCJQcm9qZWN0XCJcbiAgICBpY29uPVwid29ya19vdXRsaW5lXCJcbiAgICBbbG9hZGluZ109XCJMb2FkaW5nXCJcbiAgICBbbWFpbi1zbG90LWRlc2NyaXB0aW9uXT1cIlByb2plY3RMb29rdXBzPy5sZW5ndGggKyAnIHByb2plY3QocykgY29uZmlndXJlZCdcIlxuICAgIChtYWluLWFjdGlvbi1jbGlja2VkKT1cIlJvdXRlVG9QYXRoKCcvZGFzaGJvYXJkL2NyZWF0ZS1wcm9qZWN0JylcIlxuPlxuICAgIDxkaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibWFpbi1zbG90LWNvbnRhaW5lclwiXG4gICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvamVjdExvb2t1cCBvZiBQcm9qZWN0TG9va3Vwc1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtY29udGVudFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJQcm9qZWN0c1twcm9qZWN0TG9va3VwXTsgbGV0IHByb2plY3RcIlxuICAgICAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbG90LWhlYWRlci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNsb3QtaGVhZGVyXCIgZnhMYXlvdXQ9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWhlYWRlci1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL3Byb2plY3QnLCBwcm9qZWN0TG9va3VwXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb2plY3QuUHJvamVjdC5OYW1lXCIgY2xhc3M9XCJzbG90LW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJvamVjdC5Qcm9qZWN0Lk5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9qZWN0LlByb2plY3QuRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcHJvamVjdC5Qcm9qZWN0LkRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9ucy1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9wcm9qZWN0JywgcHJvamVjdExvb2t1cF1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiRWRpdCB7eyBwcm9qZWN0LlByb2plY3QuTmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPmVkaXQ8L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb24tYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwczovLycgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q/Lkhvc3RzW3Byb2plY3Q/Lkhvc3RzPy5sZW5ndGggLSAxXVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJMYXVuY2gge3sgcHJvamVjdC5Qcm9qZWN0Lk5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5sYXVuY2g8L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBcbiAgICA8L2Rpdj5cbjwvbGN1LXNsb3R0ZWQtY2FyZC1sZz4gLS0+XG4iXX0=
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2VsZW1lbnRzL3Byb2plY3QtY2FyZC9wcm9qZWN0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvcHJvamVjdC1jYXJkL3Byb2plY3QtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUNILHFCQUFxQixFQUNyQixnQkFBZ0IsR0FDbkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBV2hDLE1BQU0sT0FBTyxvQkFBb0I7SUErSTdCLGtDQUFrQztJQUVsQyxZQUNjLE1BQWtCLEVBQ2xCLFNBQTBCO1FBRDFCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUF0SWhDLGdCQUFXLEdBQUcsQ0FBQyxJQUFjLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDcEQsT0FBTztnQkFDSCxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDdkQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLEtBQUssRUFBRSxLQUFLO2dCQUNaLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDM0IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2dCQUNiLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2FBQ2hDLENBQUM7UUFD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b0Isa1JDaEJqQyxrblVBZ1JBOzJGRGhRYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksa0JBQWtCOytIQU1yQixnQkFBZ0I7c0JBRHRCLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUluQixPQUFPO3NCQURiLEtBQUs7dUJBQUMsU0FBUztnQkFJVCxjQUFjO3NCQURwQixLQUFLO3VCQUFDLGlCQUFpQjtnQkFJakIsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGF0VHJlZUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgTWF0VHJlZUZsYXREYXRhU291cmNlLFxuICAgIE1hdFRyZWVGbGF0dGVuZXIsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xuaW1wb3J0IHsgRWFDQXBwbGljYXRpb25Bc0NvZGUsIEVhQ1Byb2plY3RBc0NvZGUgfSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgRmxhdE5vZGUsIFRyZWVOb2RlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RyZWUtbm9kZS5tb2RlbCc7XG5pbXBvcnQgeyBFYUNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWFjLnNlcnZpY2UnO1xuaW1wb3J0IHsgU29jaWFsVUlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc29jaWFsLXVpLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xjdS1wcm9qZWN0LWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9qZWN0LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Byb2plY3QtY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9qZWN0Q2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCdhcHBsaWNhdGlvbnMtYmFuaycpXG4gICAgcHVibGljIEFwcGxpY2F0aW9uc0Jhbms6IEFycmF5PEVhQ0FwcGxpY2F0aW9uQXNDb2RlPjtcblxuICAgIEBJbnB1dCgnbG9hZGluZycpXG4gICAgcHVibGljIExvYWRpbmc6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoJ3Byb2plY3QtbG9va3VwcycpXG4gICAgcHVibGljIFByb2plY3RMb29rdXBzOiBBcnJheTxzdHJpbmc+O1xuXG4gICAgQElucHV0KCdwcm9qZWN0cycpXG4gICAgcHVibGljIFByb2plY3RzOiBBcnJheTxFYUNQcm9qZWN0QXNDb2RlPjtcblxuICAgIHByaXZhdGUgdHJhbnNmb3JtZXIgPSAobm9kZTogVHJlZU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGV4cGFuZGFibGU6ICEhbm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDAsXG4gICAgICAgICAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgICAgICAgICBsZXZlbDogbGV2ZWwsXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiBub2RlLnJvdXRlckxpbmssXG4gICAgICAgICAgICB1cmw6IG5vZGUudXJsLFxuICAgICAgICAgICAgbG9va3VwOiBub2RlLmxvb2t1cCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBub2RlLmRlc2NyaXB0aW9uLFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEFwcGxpY2F0aW9ucygpOiB7XG4gICAgICAgIFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlO1xuICAgIH0ge1xuICAgICAgICBjb25zdCBhcHBzOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gPSB7fTtcblxuICAgICAgICB0aGlzLlByb2plY3Q/LkFwcGxpY2F0aW9uTG9va3Vwcz8uZm9yRWFjaCgoYXBwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGFwcHNbYXBwTG9va3VwXSA9IHRoaXMuQXBwbGljYXRpb25zQmFua1thcHBMb29rdXBdO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFwcHM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBBcHBsaWNhdGlvblJvdXRlcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuUm91dGVkQXBwbGljYXRpb25zIHx8IHt9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IEN1cnJlbnRSb3V0ZUFwcGxpY2F0aW9uTG9va3VwcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuUm91dGVkQXBwbGljYXRpb25zW3RoaXMuQXBwUm91dGVdIHx8IHt9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IFJvdXRlZEFwcGxpY2F0aW9ucygpOiB7XG4gICAgICAgIFtyb3V0ZTogc3RyaW5nXTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9O1xuICAgIH0ge1xuICAgICAgICBjb25zdCBhcHBMb29rdXBzID0gT2JqZWN0LmtleXModGhpcy5BcHBsaWNhdGlvbnMpO1xuXG4gICAgICAgIGNvbnN0IGFwcHMgPSBhcHBMb29rdXBzLm1hcChcbiAgICAgICAgICAgIChhcHBMb29rdXApID0+IHRoaXMuQXBwbGljYXRpb25zW2FwcExvb2t1cF1cbiAgICAgICAgKTtcblxuICAgICAgICBsZXQgYXBwUm91dGVzID1cbiAgICAgICAgICAgIGFwcHMubWFwKChhcHApID0+IHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIkFwcCBmcm9tIHByb2plY3RzOiBcIiwgYXBwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBwPy5Mb29rdXBDb25maWc/LlBhdGhSZWdleC5yZXBsYWNlKCcuKicsICcnKTtcbiAgICAgICAgICAgIH0pIHx8IFtdO1xuXG4gICAgICAgIGFwcFJvdXRlcyA9IGFwcFJvdXRlcy5maWx0ZXIoKGFyKSA9PiBhciAhPSBudWxsKTtcblxuICAgICAgICBsZXQgcm91dGVCYXNlczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBhcHBSb3V0ZXMuZm9yRWFjaCgoYXBwUm91dGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFwcFJvdXRlUGFydHMgPSBhcHBSb3V0ZS5zcGxpdCgnLycpO1xuXG4gICAgICAgICAgICBjb25zdCBhcHBSb3V0ZUJhc2UgPSBgLyR7YXBwUm91dGVQYXJ0c1sxXX1gO1xuXG4gICAgICAgICAgICBpZiAocm91dGVCYXNlcy5pbmRleE9mKGFwcFJvdXRlQmFzZSkgPCAwKSB7XG4gICAgICAgICAgICAgICAgcm91dGVCYXNlcy5wdXNoKGFwcFJvdXRlQmFzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCB3b3JraW5nQXBwTG9va3VwcyA9IFsuLi4oYXBwTG9va3VwcyB8fCBbXSldO1xuXG4gICAgICAgIHJvdXRlQmFzZXMgPSByb3V0ZUJhc2VzLnNvcnQoKGEsIGIpID0+IGIubG9jYWxlQ29tcGFyZShhKSk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVTZXQgPVxuICAgICAgICAgICAgcm91dGVCYXNlcy5yZWR1Y2UoKHByZXZSb3V0ZU1hcCwgY3VycmVudFJvdXRlQmFzZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlTWFwID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5wcmV2Um91dGVNYXAsXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQXBwTG9va3VwcyA9IHdvcmtpbmdBcHBMb29rdXBzLmZpbHRlcigod2FsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdhID0gdGhpcy5BcHBsaWNhdGlvbnNbd2FsXTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2E/Lkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnN0YXJ0c1dpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Um91dGVCYXNlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByb3V0ZU1hcFtjdXJyZW50Um91dGVCYXNlXSA9XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkQXBwTG9va3Vwcy5yZWR1Y2UoKHByZXZBcHBNYXAsIGFwcExvb2t1cCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXBwTWFwOiBhbnkgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldkFwcE1hcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcE1hcFthcHBMb29rdXBdID0gdGhpcy5BcHBsaWNhdGlvbnNbYXBwTG9va3VwXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFwcE1hcDtcbiAgICAgICAgICAgICAgICAgICAgfSwge30pIHx8IHt9O1xuXG4gICAgICAgICAgICAgICAgd29ya2luZ0FwcExvb2t1cHMgPSB3b3JraW5nQXBwTG9va3Vwcy5maWx0ZXIoKHdhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJlZEFwcExvb2t1cHMuaW5kZXhPZih3YSkgPCAwO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlTWFwO1xuICAgICAgICAgICAgfSwge30pIHx8IHt9O1xuXG4gICAgICAgIGxldCByb3V0ZVNldEtleXMgPSBPYmplY3Qua2V5cyhyb3V0ZVNldCk7XG5cbiAgICAgICAgcm91dGVTZXRLZXlzID0gcm91dGVTZXRLZXlzLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSk7XG5cbiAgICAgICAgY29uc3Qgcm91dGVTZXRSZXN1bHQgPSB7fTtcblxuICAgICAgICByb3V0ZVNldEtleXMuZm9yRWFjaCgocnNrKSA9PiAocm91dGVTZXRSZXN1bHRbcnNrXSA9IHJvdXRlU2V0W3Jza10pKTtcblxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIkFwcCBSb3V0ZXM6IFwiLHJvdXRlU2V0UmVzdWx0KVxuXG4gICAgICAgIHJldHVybiByb3V0ZVNldFJlc3VsdDtcbiAgICB9XG5cbiAgICB0cmVlQ29udHJvbCA9IG5ldyBGbGF0VHJlZUNvbnRyb2w8RmxhdE5vZGU+KFxuICAgICAgICAobm9kZTogYW55KSA9PiBub2RlLmxldmVsLFxuICAgICAgICAobm9kZTogYW55KSA9PiBub2RlLmV4cGFuZGFibGVcbiAgICApO1xuXG4gICAgdHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKFxuICAgICAgICB0aGlzLnRyYW5zZm9ybWVyLFxuICAgICAgICAobm9kZSkgPT4gbm9kZS5sZXZlbCxcbiAgICAgICAgKG5vZGUpID0+IG5vZGUuZXhwYW5kYWJsZSxcbiAgICAgICAgKG5vZGUpID0+IG5vZGUuY2hpbGRyZW5cbiAgICApO1xuXG4gICAgcHVibGljIERhdGFTb3VyY2UgPSBuZXcgTWF0VHJlZUZsYXREYXRhU291cmNlKFxuICAgICAgICB0aGlzLnRyZWVDb250cm9sLFxuICAgICAgICB0aGlzLnRyZWVGbGF0dGVuZXJcbiAgICApO1xuXG4gICAgcHVibGljIFByb2plY3Q6IEVhQ1Byb2plY3RBc0NvZGU7XG5cbiAgICBwdWJsaWMgQXBwUm91dGU6IHN0cmluZztcblxuICAgIC8vIHB1YmxpYyBSb3V0ZWRBcHBsaWNhdGlvbnM6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgc29jaWFsU3ZjOiBTb2NpYWxVSVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgSGFzQ2hpbGQgPSAoXzogbnVtYmVyLCBub2RlOiBGbGF0Tm9kZSkgPT4gbm9kZS5leHBhbmRhYmxlO1xuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge31cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuUHJvamVjdHMgJiYgdGhpcy5Qcm9qZWN0TG9va3VwcyAmJiB0aGlzLkFwcGxpY2F0aW9ucykge1xuICAgICAgICAgICAgbGV0IHRlbXAgPSB0aGlzLkJ1aWxkVHJlZSgpO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJ0byBzdHJpbmc6IFwiLCBKU09OLnN0cmluZ2lmeSh0ZW1wKSlcblxuICAgICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHRoaXMuRGF0YVNvdXJjZS5kYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkodGVtcCkpIHtcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnSXRzIGRpZmZlcmVudCcpXG4gICAgICAgICAgICAgICAgdGhpcy5EYXRhU291cmNlLmRhdGEgPSB0ZW1wO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZWxzZXtcbiAgICAgICAgICAgIC8vICAgICBjb25zb2xlLmxvZygnaXQgYWludCBkaWZmZXJlbnQnKVxuICAgICAgICAgICAgLy8gfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIFJvdXRlVG9QYXRoKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHBhdGg7XG4gICAgfVxuXG4gICAgcHVibGljIEJ1aWxkVHJlZSgpOiBBcnJheTxUcmVlTm9kZT4ge1xuICAgICAgICBsZXQgdGVtcFRyZWVEYXRhOiBBcnJheTxUcmVlTm9kZT4gPSBbXTtcbiAgICAgICAgdGhpcy5Qcm9qZWN0TG9va3Vwcz8uZm9yRWFjaCgocExvb2t1cDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBsZXQgdGVtcFByb2ogPSB0aGlzLlByb2plY3RzW3BMb29rdXBdO1xuICAgICAgICAgICAgdGhpcy5Qcm9qZWN0ID0gdGVtcFByb2o7XG4gICAgICAgICAgICAvLyAnaHR0cHM6Ly93d3cuJyArXG4gICAgICAgICAgICBsZXQgdGVtcFByb2pOb2RlOiBUcmVlTm9kZSA9IHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0ZW1wUHJvai5Qcm9qZWN0Lk5hbWUsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRlbXBQcm9qLlByb2plY3QuRGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgbG9va3VwOiBwTG9va3VwLFxuICAgICAgICAgICAgICAgIHVybDogdGVtcFByb2ouSG9zdHNbdGVtcFByb2o/Lkhvc3RzPy5sZW5ndGggLSAxXSxcbiAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBbJy9wcm9qZWN0JywgcExvb2t1cF0sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgdGVtcFJvdXRlcyA9IHRoaXMuQXBwbGljYXRpb25Sb3V0ZXM7XG5cbiAgICAgICAgICAgIGlmICh0ZW1wUm91dGVzKSB7XG4gICAgICAgICAgICAgICAgbGV0IHRlbXBQcm9qQ2hpbGRyZW46IEFycmF5PFRyZWVOb2RlPiA9IFtdO1xuICAgICAgICAgICAgICAgIHRlbXBSb3V0ZXMuZm9yRWFjaCgoYXBwUm91dGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLkFwcFJvdXRlID0gYXBwUm91dGU7XG4gICAgICAgICAgICAgICAgICAgIC8vICdodHRwczovL3d3dy4nICtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXBSb3V0ZU5vZGU6IFRyZWVOb2RlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5BcHBSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wUHJvaj8uSG9zdHNbdGVtcFByb2o/Lkhvc3RzPy5sZW5ndGggLSAxXSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5BcHBSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFsnL3JvdXRlJywgdGhpcy5BcHBSb3V0ZSwgcExvb2t1cF0sXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXBBcHBzID0gdGhpcy5DdXJyZW50Um91dGVBcHBsaWNhdGlvbkxvb2t1cHM7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wQXBwcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXBSb3V0ZUNoaWxkcmVuOiBBcnJheTxUcmVlTm9kZT4gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBBcHBzLmZvckVhY2goKGFwcExvb2t1cDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXBBcHAgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlJvdXRlZEFwcGxpY2F0aW9uc1t0aGlzLkFwcFJvdXRlXVtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcExvb2t1cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICdodHRwczovL3d3dy4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcEFwcE5vZGU6IFRyZWVOb2RlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29rdXA6IGFwcExvb2t1cCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdGVtcEFwcC5BcHBsaWNhdGlvbi5OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wUHJvaj8uSG9zdHNbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFByb2o/Lkhvc3RzPy5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdICsgdGhpcy5BcHBSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRlbXBBcHAuQXBwbGljYXRpb24uRGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvYXBwbGljYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwTG9va3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5BcHBSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBMb29rdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wUm91dGVDaGlsZHJlbi5wdXNoKHRlbXBBcHBOb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFJvdXRlTm9kZS5jaGlsZHJlbiA9IHRlbXBSb3V0ZUNoaWxkcmVuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRlbXBQcm9qQ2hpbGRyZW4ucHVzaCh0ZW1wUm91dGVOb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0ZW1wUHJvak5vZGUuY2hpbGRyZW4gPSB0ZW1wUHJvakNoaWxkcmVuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGVtcFRyZWVEYXRhLnB1c2godGVtcFByb2pOb2RlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdUSEUgVFJFRTogJywgdGVtcFRyZWVEYXRhKTtcbiAgICAgICAgcmV0dXJuIHRlbXBUcmVlRGF0YTtcblxuICAgICAgICAvLyByZXR1cm4gdGVtcFRyZWVEYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBIYW5kbGVSb3V0ZShyb3V0ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdyb3V0ZTogJywgcm91dGUpO1xuICAgIH1cbn1cbiIsIjwhLS0gVFJFRSAtLT5cbjwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cIlByb2plY3RMb29rdXBzP0J1aWxkVHJlZSgpOmZhbHNlXCI+PC9uZy1jb250YWluZXI+IC0tPlxuPGxjdS1zbG90dGVkLWNhcmQtbGdcbiAgICAqbmdJZj1cIlByb2plY3RMb29rdXBzPy5sZW5ndGggPiAwXCJcbiAgICBjbGFzcz1cImZpdC1jb250ZW50XCJcbiAgICBbbG9hZGluZ109XCJMb2FkaW5nXCJcbiAgICBjYXJkLXRpdGxlPVwiUHJvamVjdFwiXG4gICAgaWNvbj1cIndvcmtfb3V0bGluZVwiXG4gICAgW21haW4tc2xvdC1kZXNjcmlwdGlvbl09XCJQcm9qZWN0TG9va3Vwcz8ubGVuZ3RoICsgJyBwcm9qZWN0KHMpIGNvbmZpZ3VyZWQnXCJcbiAgICAobWFpbi1hY3Rpb24tY2xpY2tlZCk9XCJSb3V0ZVRvUGF0aCgnL2Rhc2hib2FyZC9jcmVhdGUtcHJvamVjdCcpXCJcbj5cbiAgICA8IS0tIDxkaXY+IC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJEYXRhU291cmNlXCI+XG4gICAgICAgIDxtYXQtdHJlZSBbZGF0YVNvdXJjZV09XCJEYXRhU291cmNlXCIgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCI+XG4gICAgICAgICAgICA8bWF0LXRyZWUtbm9kZSAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZVwiIG1hdFRyZWVOb2RlUGFkZGluZz5cbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cInNsb3QtaGVhZGVyLWFuY2hvclwiIFtyb3V0ZXJMaW5rXT1cIm5vZGUucm91dGVyTGlua1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9kZS5uYW1lXCIgY2xhc3M9XCJzbG90LW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vZGUuZGVzY3JpcHRpb25cIiBjbGFzcz1cInNsb3QtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5vZGUuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbnMtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIGNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbi1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkVkaXQge3sgbm9kZS5uYW1lIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+ZWRpdDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbi1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibm9kZS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkxhdW5jaCB7eyBub2RlLm5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5sYXVuY2g8L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gbWF0LWljb24tYnV0dG9uPjwvYnV0dG9uPiAtLT5cbiAgICAgICAgICAgIDwvbWF0LXRyZWUtbm9kZT5cbiAgICAgICAgICAgIDxtYXQtdHJlZS1ub2RlXG4gICAgICAgICAgICAgICAgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGU7IHdoZW46IEhhc0NoaWxkXCJcbiAgICAgICAgICAgICAgICBtYXRUcmVlTm9kZVBhZGRpbmdcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBtYXRUcmVlTm9kZVRvZ2dsZVxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidUb2dnbGUgJyArIG5vZGUubmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcImV4cGFuZF9tb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcImNoZXZyb25fcmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cInNsb3QtaGVhZGVyLWFuY2hvclwiIFtyb3V0ZXJMaW5rXT1cIm5vZGUucm91dGVyTGlua1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9kZS5uYW1lXCIgY2xhc3M9XCJzbG90LW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5vZGUubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vZGUuZGVzY3JpcHRpb25cIiBjbGFzcz1cInNsb3QtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5vZGUuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbnMtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIGNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbi1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkVkaXQge3sgbm9kZS5uYW1lIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+ZWRpdDwvbWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbi1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibm9kZS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkxhdW5jaCB7eyBub2RlLm5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5sYXVuY2g8L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LXRyZWUtbm9kZT5cbiAgICAgICAgPC9tYXQtdHJlZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gPGRpdlxuICAgICAgICBjbGFzcz1cIm1haW4tc2xvdC1jb250YWluZXJcIlxuICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICpuZ0Zvcj1cImxldCBwcm9qZWN0TG9va3VwIG9mIFByb2plY3RMb29rdXBzXCJcbiAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwic2xvdC1jb250ZW50XCJcbiAgICAgICAgICAgICpuZ0lmPVwiU3RhdGU/LkVhQz8uUHJvamVjdHNbcHJvamVjdExvb2t1cF07IGxldCBwcm9qZWN0XCJcbiAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbG90LWhlYWRlci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2xvdC1oZWFkZXJcIiBmeExheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWhlYWRlci1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvcHJvamVjdCcsIHByb2plY3RMb29rdXBdXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb2plY3QuUHJvamVjdC5OYW1lXCIgY2xhc3M9XCJzbG90LW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBwcm9qZWN0LlByb2plY3QuTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9qZWN0LlByb2plY3QuRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgcHJvamVjdC5Qcm9qZWN0LkRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1hY3Rpb25zLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL3Byb2plY3QnLCBwcm9qZWN0TG9va3VwXVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkVkaXQge3sgcHJvamVjdC5Qcm9qZWN0Lk5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPmVkaXQ8L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbi1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICdodHRwczovLycgKyBwcm9qZWN0Py5Ib3N0c1twcm9qZWN0Py5Ib3N0cz8ubGVuZ3RoIC0gMV1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiTGF1bmNoIHt7IHByb2plY3QuUHJvamVjdC5OYW1lIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5sYXVuY2g8L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+IC0tPlxuXG4gICAgPCEtLSA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiVG9nZ2xlU2xpY2VzKCdQcm9qZWN0cycpXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJQcm9qZWN0TG9va3Vwcz8ubGVuZ3RoID4gNVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgU2xpY2VzLlByb2plY3RzID09IFByb2plY3RMb29rdXBzPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiU2hvdyBMZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiU2hvdyBNb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgfX1cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsaWNlcy5Qcm9qZWN0cyA9PSBQcm9qZWN0TG9va3Vwcz8ubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJleHBhbmRfbGVzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJleHBhbmRfbW9yZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cbiAgICA8IS0tIDwvZGl2PiAtLT5cbjwvbGN1LXNsb3R0ZWQtY2FyZC1sZz5cblxuPCEtLSBPcmlnaW5hbCAtLT5cbjwhLS0gPGxjdS1zbG90dGVkLWNhcmQtbGdcbiAgICAqbmdJZj1cIlByb2plY3RMb29rdXBzPy5sZW5ndGggPiAwXCJcbiAgICBjbGFzcz1cImZpdC1jb250ZW50XCJcbiAgICBjYXJkLXRpdGxlPVwiUHJvamVjdFwiXG4gICAgaWNvbj1cIndvcmtfb3V0bGluZVwiXG4gICAgW2xvYWRpbmddPVwiTG9hZGluZ1wiXG4gICAgW21haW4tc2xvdC1kZXNjcmlwdGlvbl09XCJQcm9qZWN0TG9va3Vwcz8ubGVuZ3RoICsgJyBwcm9qZWN0KHMpIGNvbmZpZ3VyZWQnXCJcbiAgICAobWFpbi1hY3Rpb24tY2xpY2tlZCk9XCJSb3V0ZVRvUGF0aCgnL2Rhc2hib2FyZC9jcmVhdGUtcHJvamVjdCcpXCJcbj5cbiAgICA8ZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm1haW4tc2xvdC1jb250YWluZXJcIlxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHByb2plY3RMb29rdXAgb2YgUHJvamVjdExvb2t1cHNcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiUHJvamVjdHNbcHJvamVjdExvb2t1cF07IGxldCBwcm9qZWN0XCJcbiAgICAgICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2xvdC1oZWFkZXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbG90LWhlYWRlclwiIGZ4TGF5b3V0PVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1oZWFkZXItYW5jaG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9wcm9qZWN0JywgcHJvamVjdExvb2t1cF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcm9qZWN0LlByb2plY3QuTmFtZVwiIGNsYXNzPVwic2xvdC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb2plY3QuUHJvamVjdC5OYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvamVjdC5Qcm9qZWN0LkRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2xvdC1kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb2plY3QuUHJvamVjdC5EZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbnMtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIGNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbG90LWFjdGlvbi1hbmNob3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvcHJvamVjdCcsIHByb2plY3RMb29rdXBdXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkVkaXQge3sgcHJvamVjdC5Qcm9qZWN0Lk5hbWUgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5lZGl0PC9tYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsb3QtYWN0aW9uLWFuY2hvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly8nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0Py5Ib3N0c1twcm9qZWN0Py5Ib3N0cz8ubGVuZ3RoIC0gMV1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiTGF1bmNoIHt7IHByb2plY3QuUHJvamVjdC5OYW1lIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+bGF1bmNoPC9tYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgXG4gICAgPC9kaXY+XG48L2xjdS1zbG90dGVkLWNhcmQtbGc+IC0tPlxuIl19
|
@@ -8307,12 +8307,12 @@ class ProjectCardComponent {
|
|
8307
8307
|
var _a;
|
8308
8308
|
let tempProj = this.Projects[pLookup];
|
8309
8309
|
this.Project = tempProj;
|
8310
|
+
// 'https://www.' +
|
8310
8311
|
let tempProjNode = {
|
8311
8312
|
name: tempProj.Project.Name,
|
8312
8313
|
description: tempProj.Project.Description,
|
8313
8314
|
lookup: pLookup,
|
8314
|
-
url:
|
8315
|
-
tempProj.Hosts[((_a = tempProj === null || tempProj === void 0 ? void 0 : tempProj.Hosts) === null || _a === void 0 ? void 0 : _a.length) - 1],
|
8315
|
+
url: tempProj.Hosts[((_a = tempProj === null || tempProj === void 0 ? void 0 : tempProj.Hosts) === null || _a === void 0 ? void 0 : _a.length) - 1],
|
8316
8316
|
routerLink: ['/project', pLookup],
|
8317
8317
|
};
|
8318
8318
|
let tempRoutes = this.ApplicationRoutes;
|
@@ -8321,10 +8321,10 @@ class ProjectCardComponent {
|
|
8321
8321
|
tempRoutes.forEach((appRoute) => {
|
8322
8322
|
var _a;
|
8323
8323
|
this.AppRoute = appRoute;
|
8324
|
+
// 'https://www.' +
|
8324
8325
|
let tempRouteNode = {
|
8325
8326
|
name: this.AppRoute,
|
8326
|
-
url:
|
8327
|
-
(tempProj === null || tempProj === void 0 ? void 0 : tempProj.Hosts[((_a = tempProj === null || tempProj === void 0 ? void 0 : tempProj.Hosts) === null || _a === void 0 ? void 0 : _a.length) - 1]) +
|
8327
|
+
url: (tempProj === null || tempProj === void 0 ? void 0 : tempProj.Hosts[((_a = tempProj === null || tempProj === void 0 ? void 0 : tempProj.Hosts) === null || _a === void 0 ? void 0 : _a.length) - 1]) +
|
8328
8328
|
this.AppRoute,
|
8329
8329
|
routerLink: ['/route', this.AppRoute, pLookup],
|
8330
8330
|
};
|
@@ -8334,12 +8334,11 @@ class ProjectCardComponent {
|
|
8334
8334
|
tempApps.forEach((appLookup) => {
|
8335
8335
|
var _a;
|
8336
8336
|
let tempApp = this.RoutedApplications[this.AppRoute][appLookup];
|
8337
|
+
// 'https://www.' +
|
8337
8338
|
let tempAppNode = {
|
8338
8339
|
lookup: appLookup,
|
8339
8340
|
name: tempApp.Application.Name,
|
8340
|
-
url:
|
8341
|
-
(tempProj === null || tempProj === void 0 ? void 0 : tempProj.Hosts[((_a = tempProj === null || tempProj === void 0 ? void 0 : tempProj.Hosts) === null || _a === void 0 ? void 0 : _a.length) - 1]) +
|
8342
|
-
this.AppRoute,
|
8341
|
+
url: (tempProj === null || tempProj === void 0 ? void 0 : tempProj.Hosts[((_a = tempProj === null || tempProj === void 0 ? void 0 : tempProj.Hosts) === null || _a === void 0 ? void 0 : _a.length) - 1]) + this.AppRoute,
|
8343
8342
|
description: tempApp.Application.Description,
|
8344
8343
|
routerLink: [
|
8345
8344
|
'/application',
|