@seniorsistemas/exclusion-process-component 0.0.1-c049d10c-e93a-4d63-9c2a-b17bca40c324 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/seniorsistemas-exclusion-process-component.umd.js +662 -33
- package/bundles/seniorsistemas-exclusion-process-component.umd.js.map +1 -1
- package/bundles/seniorsistemas-exclusion-process-component.umd.min.js +2 -2
- package/bundles/seniorsistemas-exclusion-process-component.umd.min.js.map +1 -1
- package/esm2015/exclusion-details/exclusion-details.component.js +99 -12
- package/esm2015/exclusion-details/exclusion-details.module.js +4 -3
- package/esm2015/exclusion-details/protocols/exclusion-process-status-changed.js +1 -0
- package/esm2015/exclusion-details/protocols/show-details-information.js +1 -1
- package/esm2015/exclusion-details/protocols/web-socket-event-data.js +1 -0
- package/esm2015/exclusions-list/exclusions-list.component.js +358 -0
- package/esm2015/exclusions-list/exclusions-list.module.js +47 -0
- package/esm2015/exclusions-list/exclusions-list.routing.js +115 -0
- package/esm2015/exclusions-list/index.js +4 -0
- package/esm2015/public-api.js +2 -1
- package/esm2015/seniorsistemas-exclusion-process-component.js +4 -2
- package/esm2015/services/filter.service.js +4 -1
- package/esm2015/services/index.js +2 -0
- package/esm2015/services/logical-delete.service.js +33 -19
- package/esm5/exclusion-details/exclusion-details.component.js +104 -12
- package/esm5/exclusion-details/exclusion-details.module.js +4 -3
- package/esm5/exclusion-details/protocols/exclusion-process-status-changed.js +1 -0
- package/esm5/exclusion-details/protocols/show-details-information.js +1 -1
- package/esm5/exclusion-details/protocols/web-socket-event-data.js +1 -0
- package/esm5/exclusions-list/exclusions-list.component.js +373 -0
- package/esm5/exclusions-list/exclusions-list.module.js +50 -0
- package/esm5/exclusions-list/exclusions-list.routing.js +127 -0
- package/esm5/exclusions-list/index.js +4 -0
- package/esm5/public-api.js +2 -1
- package/esm5/seniorsistemas-exclusion-process-component.js +4 -2
- package/esm5/services/filter.service.js +4 -1
- package/esm5/services/index.js +2 -0
- package/esm5/services/logical-delete.service.js +36 -20
- package/exclusion-details/exclusion-details.component.d.ts +13 -1
- package/exclusion-details/protocols/exclusion-process-status-changed.d.ts +8 -0
- package/exclusion-details/protocols/show-details-information.d.ts +2 -1
- package/exclusion-details/protocols/web-socket-event-data.d.ts +6 -0
- package/exclusions-list/exclusions-list.component.d.ts +70 -0
- package/exclusions-list/exclusions-list.module.d.ts +2 -0
- package/exclusions-list/exclusions-list.routing.d.ts +29 -0
- package/exclusions-list/index.d.ts +3 -0
- package/fesm2015/seniorsistemas-exclusion-process-component.js +619 -33
- package/fesm2015/seniorsistemas-exclusion-process-component.js.map +1 -1
- package/fesm5/seniorsistemas-exclusion-process-component.js +657 -34
- package/fesm5/seniorsistemas-exclusion-process-component.js.map +1 -1
- package/package.json +14 -6
- package/public-api.d.ts +1 -0
- package/seniorsistemas-exclusion-process-component.d.ts +3 -1
- package/seniorsistemas-exclusion-process-component.metadata.json +1 -1
- package/services/index.d.ts +1 -0
- package/services/logical-delete.service.d.ts +5 -3
|
@@ -2,12 +2,13 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import * as moment from "moment";
|
|
3
3
|
import { Component, Output, ViewEncapsulation } from "@angular/core";
|
|
4
4
|
import { ActivatedRoute, Router } from "@angular/router";
|
|
5
|
-
import {
|
|
5
|
+
import { TranslateService } from "@ngx-translate/core";
|
|
6
6
|
import { Subject } from "rxjs";
|
|
7
7
|
import { finalize, takeUntil } from "rxjs/operators";
|
|
8
|
+
import { EnumBadgeColors, EnumColumnFieldType } from "@seniorsistemas/angular-components";
|
|
9
|
+
import { WebsocketService } from "@senior-gestao-empresarial/angular-components";
|
|
8
10
|
import { EnumExclusionProcessStatus } from "../enums/enum-exclusion-process-status";
|
|
9
11
|
import { LogicalDeleteService } from "../services/logical-delete.service";
|
|
10
|
-
import { TranslateService } from "@ngx-translate/core";
|
|
11
12
|
import { LogicalDeleteConfigService } from "../services/logical-delete-config.service";
|
|
12
13
|
let ExclusionDetailsComponent = class ExclusionDetailsComponent {
|
|
13
14
|
constructor(router, route, translate, logicalDeleteService, projectConfigs) {
|
|
@@ -46,16 +47,26 @@ let ExclusionDetailsComponent = class ExclusionDetailsComponent {
|
|
|
46
47
|
ngOnDestroy() {
|
|
47
48
|
this.ngUnsubscribe.next();
|
|
48
49
|
this.ngUnsubscribe.complete();
|
|
50
|
+
this.disconnectWebSocket();
|
|
49
51
|
}
|
|
50
52
|
showDetails(details) {
|
|
51
|
-
this.
|
|
53
|
+
this._exclusionDetails = details;
|
|
52
54
|
this._entityName = details.entityName;
|
|
53
55
|
this._isVisible = true;
|
|
56
|
+
this._processSummaryData = [];
|
|
57
|
+
this.processDetails = null;
|
|
54
58
|
this.entityDescription = details.entityDescription;
|
|
55
|
-
this.loadProcessDetails(details
|
|
59
|
+
this.loadProcessDetails(details);
|
|
60
|
+
this.connectWebSocket();
|
|
61
|
+
}
|
|
62
|
+
onVisibilityChanged(event) {
|
|
63
|
+
this.closeDetails();
|
|
56
64
|
}
|
|
57
65
|
closeDetails() {
|
|
58
66
|
this._isVisible = false;
|
|
67
|
+
this._exclusionDetails = null;
|
|
68
|
+
this._processSummaryData = [];
|
|
69
|
+
this.disconnectWebSocket();
|
|
59
70
|
}
|
|
60
71
|
openExclusions() {
|
|
61
72
|
this.closeDetails();
|
|
@@ -77,14 +88,14 @@ let ExclusionDetailsComponent = class ExclusionDetailsComponent {
|
|
|
77
88
|
if (!((_a = this.processDetails) === null || _a === void 0 ? void 0 : _a.startDate)) {
|
|
78
89
|
return "";
|
|
79
90
|
}
|
|
80
|
-
return moment(this.processDetails.startDate).format("DD/MM/YYYY HH:mm");
|
|
91
|
+
return moment(this.processDetails.startDate).format("DD/MM/YYYY HH:mm:ss");
|
|
81
92
|
}
|
|
82
93
|
getFinishDate() {
|
|
83
94
|
var _a;
|
|
84
95
|
if (!((_a = this.processDetails) === null || _a === void 0 ? void 0 : _a.finishDate)) {
|
|
85
96
|
return "";
|
|
86
97
|
}
|
|
87
|
-
return moment(this.processDetails.finishDate).format("DD/MM/YYYY HH:mm");
|
|
98
|
+
return moment(this.processDetails.finishDate).format("DD/MM/YYYY HH:mm:ss");
|
|
88
99
|
}
|
|
89
100
|
isFinished() {
|
|
90
101
|
var _a;
|
|
@@ -108,6 +119,12 @@ let ExclusionDetailsComponent = class ExclusionDetailsComponent {
|
|
|
108
119
|
getSidebarTitle() {
|
|
109
120
|
return this.translate.instant(`${this.projectConfigs.getTranslationPrefix()}.logical_delete_details_title`);
|
|
110
121
|
}
|
|
122
|
+
getEmptyStateTitle() {
|
|
123
|
+
return this.translate.instant(`${this.projectConfigs.getTranslationPrefix()}.logical_delete_empty_state_title`);
|
|
124
|
+
}
|
|
125
|
+
getEmptyStateDescription() {
|
|
126
|
+
return this.translate.instant(`${this.projectConfigs.getTranslationPrefix()}.logical_delete_empty_state_description`);
|
|
127
|
+
}
|
|
111
128
|
getSummaryColumns() {
|
|
112
129
|
return [
|
|
113
130
|
{
|
|
@@ -156,20 +173,43 @@ let ExclusionDetailsComponent = class ExclusionDetailsComponent {
|
|
|
156
173
|
}
|
|
157
174
|
return null;
|
|
158
175
|
}
|
|
159
|
-
loadProcessDetails(
|
|
176
|
+
loadProcessDetails(details) {
|
|
160
177
|
this._isLoading = true;
|
|
161
|
-
|
|
178
|
+
const processObservable = details.processId
|
|
179
|
+
? this.logicalDeleteService.getProcessDetails(details.processId)
|
|
180
|
+
: this.logicalDeleteService.getLatestProcessDetails(details.recordId);
|
|
181
|
+
processObservable
|
|
162
182
|
.pipe(takeUntil(this.ngUnsubscribe))
|
|
163
183
|
.pipe(finalize(() => this._isLoading = false))
|
|
164
184
|
.subscribe((process) => {
|
|
185
|
+
if (!process) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
165
188
|
this.processDetails = process;
|
|
166
189
|
this.loadProcessSummary(process);
|
|
167
190
|
});
|
|
168
191
|
}
|
|
192
|
+
sortByDate(startDate, finishDate) {
|
|
193
|
+
if (startDate.getTime() > finishDate.getTime()) {
|
|
194
|
+
return 1;
|
|
195
|
+
}
|
|
196
|
+
if (startDate.getTime() < finishDate.getTime()) {
|
|
197
|
+
return -1;
|
|
198
|
+
}
|
|
199
|
+
return 0;
|
|
200
|
+
}
|
|
201
|
+
sortGroupsByStartDate(groups) {
|
|
202
|
+
return groups.sort((a, b) => this.sortByDate(a.startDate, b.finishDate));
|
|
203
|
+
}
|
|
204
|
+
sortStepsByStartDate(steps) {
|
|
205
|
+
return steps.sort((a, b) => this.sortByDate(a.startDate, b.finishDate));
|
|
206
|
+
}
|
|
169
207
|
loadProcessSummary(process) {
|
|
170
208
|
const stepLogs = [];
|
|
171
|
-
process.groups
|
|
172
|
-
|
|
209
|
+
this.sortGroupsByStartDate(process.groups)
|
|
210
|
+
.forEach(group => {
|
|
211
|
+
const steps = this.sortStepsByStartDate(group.steps)
|
|
212
|
+
.map(step => ({
|
|
173
213
|
description: step.description,
|
|
174
214
|
status: step.status,
|
|
175
215
|
errorMessage: step.errorMessage
|
|
@@ -178,6 +218,53 @@ let ExclusionDetailsComponent = class ExclusionDetailsComponent {
|
|
|
178
218
|
});
|
|
179
219
|
this._processSummaryData = stepLogs;
|
|
180
220
|
}
|
|
221
|
+
disconnectWebSocket() {
|
|
222
|
+
if (this._exclusionProcessStatusChangedSubscribe) {
|
|
223
|
+
this._exclusionProcessStatusChangedSubscribe.unsubscribe();
|
|
224
|
+
this._exclusionProcessStatusChangedSubscribe = null;
|
|
225
|
+
}
|
|
226
|
+
if (this._websocketService) {
|
|
227
|
+
this._websocketService.disconnect();
|
|
228
|
+
this._websocketService = null;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
connectWebSocket() {
|
|
232
|
+
if (this._websocketService) {
|
|
233
|
+
this.disconnectWebSocket();
|
|
234
|
+
}
|
|
235
|
+
this._websocketService = new WebsocketService();
|
|
236
|
+
this._websocketService
|
|
237
|
+
.onConnect()
|
|
238
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
239
|
+
.subscribe(() => {
|
|
240
|
+
this.startListeningWebhookEvents();
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
startListeningWebhookEvents() {
|
|
244
|
+
this._websocketService
|
|
245
|
+
.onError()
|
|
246
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
247
|
+
.subscribe((data) => {
|
|
248
|
+
console.error('onError', data);
|
|
249
|
+
});
|
|
250
|
+
this._exclusionProcessStatusChangedSubscribe = this._websocketService
|
|
251
|
+
.onEvent({
|
|
252
|
+
domain: "erpx_fnd",
|
|
253
|
+
service: "produto",
|
|
254
|
+
primitive: "exclusionProcessStatusChanged"
|
|
255
|
+
})
|
|
256
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
257
|
+
.subscribe((event) => {
|
|
258
|
+
const { data } = event;
|
|
259
|
+
if (this._exclusionDetails.processId && data.pid === this._exclusionDetails.processId) {
|
|
260
|
+
this.loadProcessDetails(this._exclusionDetails);
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
if (this._exclusionDetails.recordId && data.recordId === this._exclusionDetails.recordId) {
|
|
264
|
+
this.loadProcessDetails(this._exclusionDetails);
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
}
|
|
181
268
|
};
|
|
182
269
|
ExclusionDetailsComponent.ctorParameters = () => [
|
|
183
270
|
{ type: Router },
|
|
@@ -207,10 +294,10 @@ __decorate([
|
|
|
207
294
|
ExclusionDetailsComponent = __decorate([
|
|
208
295
|
Component({
|
|
209
296
|
selector: "s-exclusion-details",
|
|
210
|
-
template: "<s-sidebar [visible]=\"isVisible\" (visibleChange)=\"
|
|
297
|
+
template: "<s-sidebar [visible]=\"isVisible\" (visibleChange)=\"onVisibilityChanged($event)\" [header]=\"getSidebarTitle()\">\n <s-loading-state [loading]=\"isLoading\">\n <p-panel [showHeader]=\"false\" styleClass=\"s-exclusion-details-record-details-panel\">\n <div class=\"s-exclusion-details-record-details-container\">\n <div class=\"s-exclusion-details-record-icon-background\">\n <em class=\"far fa-file-alt s-exclusion-details-record-icon\"></em>\n </div>\n\n <div class=\"s-exclusion-details-record-details-recordinfo\">\n <span class=\"s-exclusion-details-record-details-type\">\n {{entityDescription}}\n </span>\n <span>\n {{getRecordDescription()}}\n </span>\n </div>\n\n <div class=\"s-exclusion-details-record-details-dateinfo\">\n <span>\n {{getStartDateLabel()}}: {{getInicialDate()}}\n </span>\n <span *ngIf=\"isFinished()\">\n {{getFinishDateLabel()}}: {{getFinishDate()}}\n </span>\n </div>\n </div>\n </p-panel>\n\n <p-panel>\n <p-header>\n {{getSummaryLabel()}}\n </p-header>\n\n <s-empty-state\n *ngIf=\"processSummaryData && !processSummaryData.length\"\n [title]=\"getEmptyStateTitle()\"\n [description]=\"getEmptyStateDescription()\">\n [showPrimaryAction]=\"false\"\n </s-empty-state>\n\n <p-table\n [value]=\"processSummaryData\"\n [columns]=\"processSummaryColumns\"\n dataKey=\"id\"\n [lazy]=\"false\"\n [scrollable]=\"false\"\n [paginator]=\"false\"\n *ngIf=\"processSummaryData && processSummaryData.length\">\n\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\"\n [style.width]=\"col.width\"\n />\n </colgroup>\n </ng-template>\n\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th *ngFor=\"let col of columns\"\n [id]=\"col.field\"\n [ngStyle]=\"col.style\"\n [pSortableColumn]=\"col.field\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n <p-sortIcon [field]=\"col.field\" ></p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\n <tr>\n <s-table-columns\n [columns]=\"columns\"\n [rowValue]=\"rowData\"\n [locale]=\"locale\">\n </s-table-columns>\n </tr>\n </ng-template>\n </p-table>\n </p-panel>\n </s-loading-state>\n\n <s-footer>\n <div class=\"ui-fluid\">\n <div class=\"ui-g\">\n <s-button [label]=\"getShowExclusionsButtonLabel()\" (onClick)=\"openExclusions()\"></s-button>\n <s-button [label]=\"getCloseButtonLabel()\" priority=\"link\" (onClick)=\"closeDetails()\"></s-button>\n </div>\n </div>\n </s-footer>\n</s-sidebar>\n",
|
|
211
298
|
encapsulation: ViewEncapsulation.None,
|
|
212
299
|
styles: [".s-exclusion-details-record-details-panel{margin-bottom:10px}.s-exclusion-details-record-details-container{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.s-exclusion-details-record-details-recordinfo{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin-left:10px;-ms-flex:1;flex:1}.s-exclusion-details-record-details-dateinfo{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin-left:10px;-ms-flex-align:end;align-items:flex-end;font-size:12px}.s-exclusion-details-record-details-type{color:#999}.s-exclusion-details-record-icon{font-size:22pt;color:#7e8d95}.s-exclusion-details-record-icon-background{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding:16px;background-color:#c1cad1;border-radius:50%;height:60px;width:60px}"]
|
|
213
300
|
})
|
|
214
301
|
], ExclusionDetailsComponent);
|
|
215
302
|
export { ExclusionDetailsComponent };
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjbHVzaW9uLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2V4Y2x1c2lvbi1wcm9jZXNzLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImV4Y2x1c2lvbi1kZXRhaWxzL2V4Y2x1c2lvbi1kZXRhaWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBNEIsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwSCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFcEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFTdkYsSUFBYSx5QkFBeUIsR0FBdEMsTUFBYSx5QkFBeUI7SUFvQ2xDLFlBQ3FCLE1BQWMsRUFDZCxLQUFxQixFQUNyQixTQUEyQixFQUMzQixvQkFBMEMsRUFDMUMsY0FBMEM7UUFKMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7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LGNBQWM7WUFDVixnQkFBZ0I7WUFDTCxvQkFBb0I7WUFDMUIsMEJBQTBCOztBQXJDL0Q7SUFEQyxNQUFNLEVBQUU7MERBR1I7QUFHRDtJQURDLE1BQU0sRUFBRTswREFHUjtBQUdEO0lBREMsTUFBTSxFQUFFO21FQUdSO0FBR0Q7SUFEQyxNQUFNLEVBQUU7c0VBR1I7QUFHRDtJQURDLE1BQU0sRUFBRTtpRUFDK0I7QUFHeEM7SUFEQyxNQUFNLEVBQUU7b0VBQ3dCO0FBM0J4Qix5QkFBeUI7SUFOckMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLHFCQUFxQjtRQUMvQixvOUdBQWlEO1FBRWpELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOztLQUN4QyxDQUFDO0dBQ1cseUJBQXlCLENBc05yQztTQXROWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgRW51bUJhZGdlQ29sb3JzLCBFbnVtQ29sdW1uRmllbGRUeXBlLCBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnMgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBFbnVtRXhjbHVzaW9uUHJvY2Vzc1N0YXR1cyB9IGZyb20gXCIuLi9lbnVtcy9lbnVtLWV4Y2x1c2lvbi1wcm9jZXNzLXN0YXR1c1wiO1xuaW1wb3J0IHsgRXhjbHVzaW9uRGV0YWlscyB9IGZyb20gXCIuL3Byb3RvY29scy9leGNsdXNpb24tZGV0YWlsc1wiO1xuaW1wb3J0IHsgTG9naWNhbERlbGV0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvbG9naWNhbC1kZWxldGUuc2VydmljZVwiO1xuaW1wb3J0IHsgRXhjbHVzaW9uUHJvY2VzcyB9IGZyb20gXCIuLi9tb2RlbHMvaW5kZXhcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTG9naWNhbERlbGV0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvbG9naWNhbC1kZWxldGUtY29uZmlnLnNlcnZpY2VcIjtcbmltcG9ydCB7IFNob3dEZXRhaWxzSW5mb3JtYXRpb24gfSBmcm9tIFwiLi9wcm90b2NvbHNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1leGNsdXNpb24tZGV0YWlsc1wiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZXhjbHVzaW9uLWRldGFpbHMuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vZXhjbHVzaW9uLWRldGFpbHMuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBFeGNsdXNpb25EZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBsb2NhbGUhOiBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnM7XG5cbiAgICBAT3V0cHV0KClcbiAgICBnZXQgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWaXNpYmxlO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIGdldCBpc0xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0xvYWRpbmc7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgZ2V0IHByb2Nlc3NTdW1tYXJ5RGF0YSgpOiBFeGNsdXNpb25EZXRhaWxzW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvY2Vzc1N1bW1hcnlEYXRhO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIGdldCBwcm9jZXNzU3VtbWFyeUNvbHVtbnMoKTogYW55W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvY2Vzc1N1bW1hcnlDb2x1bW5zO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwcm9jZXNzRGV0YWlsczogRXhjbHVzaW9uUHJvY2VzcztcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBlbnRpdHlEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBfZW50aXR5TmFtZSA9IFwiXCI7XG4gICAgcHJpdmF0ZSBfaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfcHJvY2Vzc1N1bW1hcnlEYXRhOiBFeGNsdXNpb25EZXRhaWxzW10gPSBbXTtcbiAgICBwcml2YXRlIF9wcm9jZXNzU3VtbWFyeUNvbHVtbnM6IGFueVtdID0gW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbG9naWNhbERlbGV0ZVNlcnZpY2U6IExvZ2ljYWxEZWxldGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHByb2plY3RDb25maWdzOiBMb2dpY2FsRGVsZXRlQ29uZmlnU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvdXRlLmRhdGFcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogeyBbY29uZmlnczogc3RyaW5nXTogYW55LCBsb2NhbGVDb25maWc6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUgPSBkYXRhLmxvY2FsZUNvbmZpZztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9wcm9jZXNzU3VtbWFyeUNvbHVtbnMgPSB0aGlzLmdldFN1bW1hcnlDb2x1bW5zKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvd0RldGFpbHMoZGV0YWlsczogU2hvd0RldGFpbHNJbmZvcm1hdGlvbikge1xuICAgICAgICB0aGlzLnByb2Nlc3NEZXRhaWxzID0gbnVsbDtcbiAgICAgICAgdGhpcy5fZW50aXR5TmFtZSA9IGRldGFpbHMuZW50aXR5TmFtZTtcbiAgICAgICAgdGhpcy5faXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbnRpdHlEZXNjcmlwdGlvbiA9IGRldGFpbHMuZW50aXR5RGVzY3JpcHRpb247XG5cbiAgICAgICAgdGhpcy5sb2FkUHJvY2Vzc0RldGFpbHMoZGV0YWlscy5yZWNvcmRJZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlRGV0YWlscygpIHtcbiAgICAgICAgdGhpcy5faXNWaXNpYmxlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5FeGNsdXNpb25zKCkge1xuICAgICAgICB0aGlzLmNsb3NlRGV0YWlscygpO1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcbiAgICAgICAgICAgIFtcImV4Y2x1c2lvbnMtbGlzdFwiLCB0aGlzLl9lbnRpdHlOYW1lXSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICBlbnRpdHlEZXNjcmlwdGlvbjogdGhpcy5lbnRpdHlEZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmVjb3JkRGVzY3JpcHRpb24oKSB7XG4gICAgICAgIGlmICghdGhpcy5wcm9jZXNzRGV0YWlscz8uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0RldGFpbHMuZGVzY3JpcHRpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldEluaWNpYWxEYXRlKCkge1xuICAgICAgICBpZiAoIXRoaXMucHJvY2Vzc0RldGFpbHM/LnN0YXJ0RGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbW9tZW50KHRoaXMucHJvY2Vzc0RldGFpbHMuc3RhcnREYXRlKS5mb3JtYXQoXCJERC9NTS9ZWVlZIEhIOm1tXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaW5pc2hEYXRlKCkge1xuICAgICAgICBpZiAoIXRoaXMucHJvY2Vzc0RldGFpbHM/LmZpbmlzaERhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1vbWVudCh0aGlzLnByb2Nlc3NEZXRhaWxzLmZpbmlzaERhdGUpLmZvcm1hdChcIkREL01NL1lZWVkgSEg6bW1cIik7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRmluaXNoZWQoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMucHJvY2Vzc0RldGFpbHM/LmZpbmlzaERhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNob3dFeGNsdXNpb25zQnV0dG9uTGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3RoaXMucHJvamVjdENvbmZpZ3MuZ2V0VHJhbnNsYXRpb25QcmVmaXgoKX0ubG9naWNhbF9kZWxldGVfc2hvd19kZWxldGlvbnNgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2xvc2VCdXR0b25MYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9jbG9zZWApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdW1tYXJ5TGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3RoaXMucHJvamVjdENvbmZpZ3MuZ2V0VHJhbnNsYXRpb25QcmVmaXgoKX0ubG9naWNhbF9kZWxldGVfc3VtbWFyeWApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdGFydERhdGVMYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9zdGFydGApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaW5pc2hEYXRlTGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3RoaXMucHJvamVjdENvbmZpZ3MuZ2V0VHJhbnNsYXRpb25QcmVmaXgoKX0ubG9naWNhbF9kZWxldGVfZmluaXNoYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNpZGViYXJUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9kZXRhaWxzX3RpdGxlYCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTdW1tYXJ5Q29sdW1ucygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogXCJkZXNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IFtcImRlc2NyaXB0aW9uXCJdLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHt0aGlzLnByb2plY3RDb25maWdzLmdldFRyYW5zbGF0aW9uUHJlZml4KCl9LmxvZ2ljYWxfZGVsZXRlX2Rlc2NyaXB0aW9uYCksXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkcsXG4gICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiMzAwcHhcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6IFwic3RhdHVzXCIsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW1wic3RhdHVzXCJdLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgJHt0aGlzLnByb2plY3RDb25maWdzLmdldFRyYW5zbGF0aW9uUHJlZml4KCl9LmxvZ2ljYWxfZGVsZXRlX3N0YXR1c2ApLFxuICAgICAgICAgICAgICAgIHR5cGU6IEVudW1Db2x1bW5GaWVsZFR5cGUuRU5VTSxcbiAgICAgICAgICAgICAgICBlbnVtUHJlZml4OiBgJHt0aGlzLnByb2plY3RDb25maWdzLmdldFRyYW5zbGF0aW9uUHJlZml4KCl9LmxvZ2ljYWxfZGVsZXRlX2VudW1fZXhjbHVzaW9uX3Byb2Nlc3Nfc3RhdHVzX2AsXG4gICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiMTAwcHhcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdG9vbHRpcDogdGhpcy5nZXRDb2x1bW5TdGF0dXNUb29sdGlwLFxuICAgICAgICAgICAgICAgIGJhZGdlQ29uZmlnczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtVmFsdWU6IEVudW1FeGNsdXNpb25Qcm9jZXNzU3RhdHVzLkVSUk9SLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IEVudW1CYWRnZUNvbG9ycy5SRURcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW51bVZhbHVlOiBFbnVtRXhjbHVzaW9uUHJvY2Vzc1N0YXR1cy5QRU5ESU5HLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IEVudW1CYWRnZUNvbG9ycy5ZRUxMT1dcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW51bVZhbHVlOiBFbnVtRXhjbHVzaW9uUHJvY2Vzc1N0YXR1cy5QUk9DRVNTSU5HLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IEVudW1CYWRnZUNvbG9ycy5CTFVFXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1WYWx1ZTogRW51bUV4Y2x1c2lvblByb2Nlc3NTdGF0dXMuU1VDQ0VTUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBFbnVtQmFkZ2VDb2xvcnMuR1JFRU5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblN0YXR1c1Rvb2x0aXAocm93VmFsdWU6IEV4Y2x1c2lvbkRldGFpbHMpIHtcbiAgICAgICAgaWYgKHJvd1ZhbHVlLmVycm9yTWVzc2FnZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJvd1ZhbHVlLmVycm9yTWVzc2FnZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFByb2Nlc3NEZXRhaWxzKHJlY29yZElkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5faXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmxvZ2ljYWxEZWxldGVTZXJ2aWNlLmdldFByb2Nlc3NEZXRhaWxzKHJlY29yZElkKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLl9pc0xvYWRpbmcgPSBmYWxzZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwcm9jZXNzOiBFeGNsdXNpb25Qcm9jZXNzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGV0YWlscyA9IHByb2Nlc3M7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkUHJvY2Vzc1N1bW1hcnkocHJvY2Vzcyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRQcm9jZXNzU3VtbWFyeShwcm9jZXNzOiBFeGNsdXNpb25Qcm9jZXNzKSB7XG4gICAgICAgIGNvbnN0IHN0ZXBMb2dzOiBFeGNsdXNpb25EZXRhaWxzW10gPSBbXTtcblxuICAgICAgICBwcm9jZXNzLmdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXBzID0gZ3JvdXAuc3RlcHMubWFwKHN0ZXAgPT4gKHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogc3RlcC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICBzdGF0dXM6IHN0ZXAuc3RhdHVzLFxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZTogc3RlcC5lcnJvck1lc3NhZ2VcbiAgICAgICAgICAgIH0gYXMgRXhjbHVzaW9uRGV0YWlscykpO1xuXG4gICAgICAgICAgICBzdGVwTG9ncy5wdXNoKC4uLnN0ZXBzKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fcHJvY2Vzc1N1bW1hcnlEYXRhID0gc3RlcExvZ3M7XG4gICAgfVxufVxuIl19
|
|
303
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjbHVzaW9uLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2V4Y2x1c2lvbi1wcm9jZXNzLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImV4Y2x1c2lvbi1kZXRhaWxzL2V4Y2x1c2lvbi1kZXRhaWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUE0QixNQUFNLG9DQUFvQyxDQUFDO0FBQ3BILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBV3ZGLElBQWEseUJBQXlCLEdBQXRDLE1BQWEseUJBQXlCO0lBdUNsQyxZQUNxQixNQUFjLEVBQ2QsS0FBcUIsRUFDckIsU0FBMkIsRUFDM0Isb0JBQTBDLEVBQzFDLGNBQTBDO1FBSjFDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixjQUFTLEdB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Q0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUNuRDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNKLENBQUE7O1lBMVJnQyxNQUFNO1lBQ1AsY0FBYztZQUNWLGdCQUFnQjtZQUNMLG9CQUFvQjtZQUMxQiwwQkFBMEI7O0FBeEMvRDtJQURDLE1BQU0sRUFBRTswREFHUjtBQUdEO0lBREMsTUFBTSxFQUFFOzBEQUdSO0FBR0Q7SUFEQyxNQUFNLEVBQUU7bUVBR1I7QUFHRDtJQURDLE1BQU0sRUFBRTtzRUFHUjtBQUdEO0lBREMsTUFBTSxFQUFFO2lFQUMrQjtBQUd4QztJQURDLE1BQU0sRUFBRTtvRUFDd0I7QUEzQnhCLHlCQUF5QjtJQU5yQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUscUJBQXFCO1FBQy9CLHUxSEFBaUQ7UUFFakQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O0tBQ3hDLENBQUM7R0FDVyx5QkFBeUIsQ0FrVXJDO1NBbFVZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBFbnVtQmFkZ2VDb2xvcnMsIEVudW1Db2x1bW5GaWVsZFR5cGUsIFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XG5pbXBvcnQgeyBXZWJzb2NrZXRTZXJ2aWNlIH0gZnJvbSBcIkBzZW5pb3ItZ2VzdGFvLWVtcHJlc2FyaWFsL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgRW51bUV4Y2x1c2lvblByb2Nlc3NTdGF0dXMgfSBmcm9tIFwiLi4vZW51bXMvZW51bS1leGNsdXNpb24tcHJvY2Vzcy1zdGF0dXNcIjtcbmltcG9ydCB7IEV4Y2x1c2lvbkRldGFpbHMgfSBmcm9tIFwiLi9wcm90b2NvbHMvZXhjbHVzaW9uLWRldGFpbHNcIjtcbmltcG9ydCB7IExvZ2ljYWxEZWxldGVTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2xvZ2ljYWwtZGVsZXRlLnNlcnZpY2VcIjtcbmltcG9ydCB7IEV4Y2x1c2lvblByb2Nlc3MsIEV4Y2x1c2lvblByb2Nlc3NTdGVwLCBFeGNsdXNpb25Qcm9jZXNzU3RlcEdyb3VwIH0gZnJvbSBcIi4uL21vZGVscy9pbmRleFwiO1xuaW1wb3J0IHsgTG9naWNhbERlbGV0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvbG9naWNhbC1kZWxldGUtY29uZmlnLnNlcnZpY2VcIjtcbmltcG9ydCB7IFNob3dEZXRhaWxzSW5mb3JtYXRpb24gfSBmcm9tIFwiLi9wcm90b2NvbHNcIjtcbmltcG9ydCB7IEV4Y2x1c2lvblByb2Nlc3NTdGF0dXNDaGFuZ2VkIH0gZnJvbSBcIi4vcHJvdG9jb2xzL2V4Y2x1c2lvbi1wcm9jZXNzLXN0YXR1cy1jaGFuZ2VkXCI7XG5pbXBvcnQgeyBXZWJzb2NrZXRFdmVudERhdGEgfSBmcm9tIFwiLi9wcm90b2NvbHMvd2ViLXNvY2tldC1ldmVudC1kYXRhXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtZXhjbHVzaW9uLWRldGFpbHNcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2V4Y2x1c2lvbi1kZXRhaWxzLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2V4Y2x1c2lvbi1kZXRhaWxzLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRXhjbHVzaW9uRGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgbG9jYWxlITogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZ2V0IGlzVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmlzaWJsZTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICBnZXQgaXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNMb2FkaW5nO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIGdldCBwcm9jZXNzU3VtbWFyeURhdGEoKTogRXhjbHVzaW9uRGV0YWlsc1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2Nlc3NTdW1tYXJ5RGF0YTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICBnZXQgcHJvY2Vzc1N1bW1hcnlDb2x1bW5zKCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2Nlc3NTdW1tYXJ5Q29sdW1ucztcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcHJvY2Vzc0RldGFpbHM6IEV4Y2x1c2lvblByb2Nlc3M7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZW50aXR5RGVzY3JpcHRpb246IHN0cmluZztcblxuICAgIHByaXZhdGUgX2VudGl0eU5hbWUgPSBcIlwiO1xuICAgIHByaXZhdGUgX2lzVmlzaWJsZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzTG9hZGluZyA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3Byb2Nlc3NTdW1tYXJ5RGF0YTogRXhjbHVzaW9uRGV0YWlsc1tdID0gW107XG4gICAgcHJpdmF0ZSBfcHJvY2Vzc1N1bW1hcnlDb2x1bW5zOiBhbnlbXSA9IFtdO1xuICAgIHByaXZhdGUgX3dlYnNvY2tldFNlcnZpY2U6IFdlYnNvY2tldFNlcnZpY2U7XG4gICAgcHJpdmF0ZSBfZXhjbHVzaW9uUHJvY2Vzc1N0YXR1c0NoYW5nZWRTdWJzY3JpYmU6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIF9leGNsdXNpb25EZXRhaWxzOiBTaG93RGV0YWlsc0luZm9ybWF0aW9uO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2ljYWxEZWxldGVTZXJ2aWNlOiBMb2dpY2FsRGVsZXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwcm9qZWN0Q29uZmlnczogTG9naWNhbERlbGV0ZUNvbmZpZ1NlcnZpY2VcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb3V0ZS5kYXRhXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IHsgW2NvbmZpZ3M6IHN0cmluZ106IGFueSwgbG9jYWxlQ29uZmlnOiBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxlID0gZGF0YS5sb2NhbGVDb25maWc7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fcHJvY2Vzc1N1bW1hcnlDb2x1bW5zID0gdGhpcy5nZXRTdW1tYXJ5Q29sdW1ucygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG5cbiAgICAgICAgdGhpcy5kaXNjb25uZWN0V2ViU29ja2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3dEZXRhaWxzKGRldGFpbHM6IFNob3dEZXRhaWxzSW5mb3JtYXRpb24pIHtcbiAgICAgICAgdGhpcy5fZXhjbHVzaW9uRGV0YWlscyA9IGRldGFpbHM7XG4gICAgICAgIHRoaXMuX2VudGl0eU5hbWUgPSBkZXRhaWxzLmVudGl0eU5hbWU7XG4gICAgICAgIHRoaXMuX2lzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuX3Byb2Nlc3NTdW1tYXJ5RGF0YSA9IFtdO1xuXG4gICAgICAgIHRoaXMucHJvY2Vzc0RldGFpbHMgPSBudWxsO1xuICAgICAgICB0aGlzLmVudGl0eURlc2NyaXB0aW9uID0gZGV0YWlscy5lbnRpdHlEZXNjcmlwdGlvbjtcblxuICAgICAgICB0aGlzLmxvYWRQcm9jZXNzRGV0YWlscyhkZXRhaWxzKTtcblxuICAgICAgICB0aGlzLmNvbm5lY3RXZWJTb2NrZXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25WaXNpYmlsaXR5Q2hhbmdlZChldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMuY2xvc2VEZXRhaWxzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlRGV0YWlscygpIHtcbiAgICAgICAgdGhpcy5faXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2V4Y2x1c2lvbkRldGFpbHMgPSBudWxsO1xuICAgICAgICB0aGlzLl9wcm9jZXNzU3VtbWFyeURhdGEgPSBbXTtcbiAgICAgICAgdGhpcy5kaXNjb25uZWN0V2ViU29ja2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5FeGNsdXNpb25zKCkge1xuICAgICAgICB0aGlzLmNsb3NlRGV0YWlscygpO1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcbiAgICAgICAgICAgIFtcImV4Y2x1c2lvbnMtbGlzdFwiLCB0aGlzLl9lbnRpdHlOYW1lXSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICBlbnRpdHlEZXNjcmlwdGlvbjogdGhpcy5lbnRpdHlEZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmVjb3JkRGVzY3JpcHRpb24oKSB7XG4gICAgICAgIGlmICghdGhpcy5wcm9jZXNzRGV0YWlscz8uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0RldGFpbHMuZGVzY3JpcHRpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldEluaWNpYWxEYXRlKCkge1xuICAgICAgICBpZiAoIXRoaXMucHJvY2Vzc0RldGFpbHM/LnN0YXJ0RGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbW9tZW50KHRoaXMucHJvY2Vzc0RldGFpbHMuc3RhcnREYXRlKS5mb3JtYXQoXCJERC9NTS9ZWVlZIEhIOm1tOnNzXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaW5pc2hEYXRlKCkge1xuICAgICAgICBpZiAoIXRoaXMucHJvY2Vzc0RldGFpbHM/LmZpbmlzaERhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1vbWVudCh0aGlzLnByb2Nlc3NEZXRhaWxzLmZpbmlzaERhdGUpLmZvcm1hdChcIkREL01NL1lZWVkgSEg6bW06c3NcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRmluaXNoZWQoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMucHJvY2Vzc0RldGFpbHM/LmZpbmlzaERhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNob3dFeGNsdXNpb25zQnV0dG9uTGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3RoaXMucHJvamVjdENvbmZpZ3MuZ2V0VHJhbnNsYXRpb25QcmVmaXgoKX0ubG9naWNhbF9kZWxldGVfc2hvd19kZWxldGlvbnNgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2xvc2VCdXR0b25MYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9jbG9zZWApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdW1tYXJ5TGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3RoaXMucHJvamVjdENvbmZpZ3MuZ2V0VHJhbnNsYXRpb25QcmVmaXgoKX0ubG9naWNhbF9kZWxldGVfc3VtbWFyeWApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTdGFydERhdGVMYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9zdGFydGApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaW5pc2hEYXRlTGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3RoaXMucHJvamVjdENvbmZpZ3MuZ2V0VHJhbnNsYXRpb25QcmVmaXgoKX0ubG9naWNhbF9kZWxldGVfZmluaXNoYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNpZGViYXJUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9kZXRhaWxzX3RpdGxlYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVtcHR5U3RhdGVUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYCR7dGhpcy5wcm9qZWN0Q29uZmlncy5nZXRUcmFuc2xhdGlvblByZWZpeCgpfS5sb2dpY2FsX2RlbGV0ZV9lbXB0eV9zdGF0ZV90aXRsZWApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFbXB0eVN0YXRlRGVzY3JpcHRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3RoaXMucHJvamVjdENvbmZpZ3MuZ2V0VHJhbnNsYXRpb25QcmVmaXgoKX0ubG9naWNhbF9kZWxldGVfZW1wdHlfc3RhdGVfZGVzY3JpcHRpb25gKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFN1bW1hcnlDb2x1bW5zKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpZWxkOiBcImRlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW1wiZGVzY3JpcHRpb25cIl0sXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3RoaXMucHJvamVjdENvbmZpZ3MuZ2V0VHJhbnNsYXRpb25QcmVmaXgoKX0ubG9naWNhbF9kZWxldGVfZGVzY3JpcHRpb25gKSxcbiAgICAgICAgICAgICAgICB0eXBlOiBFbnVtQ29sdW1uRmllbGRUeXBlLlNUUklORyxcbiAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCIzMDBweFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogXCJzdGF0dXNcIixcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXCJzdGF0dXNcIl0sXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGAke3RoaXMucHJvamVjdENvbmZpZ3MuZ2V0VHJhbnNsYXRpb25QcmVmaXgoKX0ubG9naWNhbF9kZWxldGVfc3RhdHVzYCksXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5FTlVNLFxuICAgICAgICAgICAgICAgIGVudW1QcmVmaXg6IGAke3RoaXMucHJvamVjdENvbmZpZ3MuZ2V0VHJhbnNsYXRpb25QcmVmaXgoKX0ubG9naWNhbF9kZWxldGVfZW51bV9leGNsdXNpb25fcHJvY2Vzc19zdGF0dXNfYCxcbiAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCIxMDBweFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0b29sdGlwOiB0aGlzLmdldENvbHVtblN0YXR1c1Rvb2x0aXAsXG4gICAgICAgICAgICAgICAgYmFkZ2VDb25maWdzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1WYWx1ZTogRW51bUV4Y2x1c2lvblByb2Nlc3NTdGF0dXMuRVJST1IsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogRW51bUJhZGdlQ29sb3JzLlJFRFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtVmFsdWU6IEVudW1FeGNsdXNpb25Qcm9jZXNzU3RhdHVzLlBFTkRJTkcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogRW51bUJhZGdlQ29sb3JzLllFTExPV1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtVmFsdWU6IEVudW1FeGNsdXNpb25Qcm9jZXNzU3RhdHVzLlBST0NFU1NJTkcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogRW51bUJhZGdlQ29sb3JzLkJMVUVcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW51bVZhbHVlOiBFbnVtRXhjbHVzaW9uUHJvY2Vzc1N0YXR1cy5TVUNDRVNTLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IEVudW1CYWRnZUNvbG9ycy5HUkVFTlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uU3RhdHVzVG9vbHRpcChyb3dWYWx1ZTogRXhjbHVzaW9uRGV0YWlscykge1xuICAgICAgICBpZiAocm93VmFsdWUuZXJyb3JNZXNzYWdlKSB7XG4gICAgICAgICAgICByZXR1cm4gcm93VmFsdWUuZXJyb3JNZXNzYWdlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkUHJvY2Vzc0RldGFpbHMoZGV0YWlsczogU2hvd0RldGFpbHNJbmZvcm1hdGlvbikge1xuICAgICAgICB0aGlzLl9pc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IHByb2Nlc3NPYnNlcnZhYmxlID0gZGV0YWlscy5wcm9jZXNzSWRcbiAgICAgICAgICAgID8gdGhpcy5sb2dpY2FsRGVsZXRlU2VydmljZS5nZXRQcm9jZXNzRGV0YWlscyhkZXRhaWxzLnByb2Nlc3NJZClcbiAgICAgICAgICAgIDogdGhpcy5sb2dpY2FsRGVsZXRlU2VydmljZS5nZXRMYXRlc3RQcm9jZXNzRGV0YWlscyhkZXRhaWxzLnJlY29yZElkKTtcblxuICAgICAgICBwcm9jZXNzT2JzZXJ2YWJsZVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLl9pc0xvYWRpbmcgPSBmYWxzZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwcm9jZXNzOiBFeGNsdXNpb25Qcm9jZXNzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFwcm9jZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NEZXRhaWxzID0gcHJvY2VzcztcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRQcm9jZXNzU3VtbWFyeShwcm9jZXNzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydEJ5RGF0ZShzdGFydERhdGU6IERhdGUsIGZpbmlzaERhdGU6IERhdGUpIHtcbiAgICAgICAgaWYgKHN0YXJ0RGF0ZS5nZXRUaW1lKCkgPiBmaW5pc2hEYXRlLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXJ0RGF0ZS5nZXRUaW1lKCkgPCBmaW5pc2hEYXRlLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydEdyb3Vwc0J5U3RhcnREYXRlKGdyb3VwczogRXhjbHVzaW9uUHJvY2Vzc1N0ZXBHcm91cFtdKSB7XG4gICAgICAgIHJldHVybiBncm91cHMuc29ydCgoYSwgYikgPT4gdGhpcy5zb3J0QnlEYXRlKGEuc3RhcnREYXRlLCBiLmZpbmlzaERhdGUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNvcnRTdGVwc0J5U3RhcnREYXRlKHN0ZXBzOiBFeGNsdXNpb25Qcm9jZXNzU3RlcFtdKSB7XG4gICAgICAgIHJldHVybiBzdGVwcy5zb3J0KChhLCBiKSA9PiB0aGlzLnNvcnRCeURhdGUoYS5zdGFydERhdGUsIGIuZmluaXNoRGF0ZSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFByb2Nlc3NTdW1tYXJ5KHByb2Nlc3M6IEV4Y2x1c2lvblByb2Nlc3MpIHtcbiAgICAgICAgY29uc3Qgc3RlcExvZ3M6IEV4Y2x1c2lvbkRldGFpbHNbXSA9IFtdO1xuXG4gICAgICAgIHRoaXMuc29ydEdyb3Vwc0J5U3RhcnREYXRlKHByb2Nlc3MuZ3JvdXBzKVxuICAgICAgICAgICAgLmZvckVhY2goZ3JvdXAgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0ZXBzID0gdGhpcy5zb3J0U3RlcHNCeVN0YXJ0RGF0ZShncm91cC5zdGVwcylcbiAgICAgICAgICAgICAgICAgICAgLm1hcChzdGVwID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogc3RlcC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogc3RlcC5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2U6IHN0ZXAuZXJyb3JNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgIH0gYXMgRXhjbHVzaW9uRGV0YWlscykpO1xuXG4gICAgICAgICAgICAgICAgc3RlcExvZ3MucHVzaCguLi5zdGVwcyk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9wcm9jZXNzU3VtbWFyeURhdGEgPSBzdGVwTG9ncztcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2Nvbm5lY3RXZWJTb2NrZXQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9leGNsdXNpb25Qcm9jZXNzU3RhdHVzQ2hhbmdlZFN1YnNjcmliZSkge1xuICAgICAgICAgICAgdGhpcy5fZXhjbHVzaW9uUHJvY2Vzc1N0YXR1c0NoYW5nZWRTdWJzY3JpYmUudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuX2V4Y2x1c2lvblByb2Nlc3NTdGF0dXNDaGFuZ2VkU3Vic2NyaWJlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl93ZWJzb2NrZXRTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLl93ZWJzb2NrZXRTZXJ2aWNlLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIHRoaXMuX3dlYnNvY2tldFNlcnZpY2UgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25uZWN0V2ViU29ja2V0KCkge1xuICAgICAgICBpZiAodGhpcy5fd2Vic29ja2V0U2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5kaXNjb25uZWN0V2ViU29ja2V0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl93ZWJzb2NrZXRTZXJ2aWNlID0gbmV3IFdlYnNvY2tldFNlcnZpY2UoKTtcbiAgICAgICAgdGhpcy5fd2Vic29ja2V0U2VydmljZVxuICAgICAgICAgICAgLm9uQ29ubmVjdCgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRMaXN0ZW5pbmdXZWJob29rRXZlbnRzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXJ0TGlzdGVuaW5nV2ViaG9va0V2ZW50cygpIHtcbiAgICAgICAgdGhpcy5fd2Vic29ja2V0U2VydmljZVxuICAgICAgICAgICAgLm9uRXJyb3IoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdvbkVycm9yJywgZGF0YSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9leGNsdXNpb25Qcm9jZXNzU3RhdHVzQ2hhbmdlZFN1YnNjcmliZSA9IHRoaXMuX3dlYnNvY2tldFNlcnZpY2VcbiAgICAgICAgICAgIC5vbkV2ZW50PFdlYnNvY2tldEV2ZW50RGF0YTxFeGNsdXNpb25Qcm9jZXNzU3RhdHVzQ2hhbmdlZD4+KHtcbiAgICAgICAgICAgICAgICBkb21haW46IFwiZXJweF9mbmRcIixcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBcInByb2R1dG9cIixcbiAgICAgICAgICAgICAgICBwcmltaXRpdmU6IFwiZXhjbHVzaW9uUHJvY2Vzc1N0YXR1c0NoYW5nZWRcIlxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IFdlYnNvY2tldEV2ZW50RGF0YTxFeGNsdXNpb25Qcm9jZXNzU3RhdHVzQ2hhbmdlZD4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGV2ZW50O1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2V4Y2x1c2lvbkRldGFpbHMucHJvY2Vzc0lkICYmIGRhdGEucGlkID09PSB0aGlzLl9leGNsdXNpb25EZXRhaWxzLnByb2Nlc3NJZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRQcm9jZXNzRGV0YWlscyh0aGlzLl9leGNsdXNpb25EZXRhaWxzKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9leGNsdXNpb25EZXRhaWxzLnJlY29yZElkICYmIGRhdGEucmVjb3JkSWQgPT09IHRoaXMuX2V4Y2x1c2lvbkRldGFpbHMucmVjb3JkSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkUHJvY2Vzc0RldGFpbHModGhpcy5fZXhjbHVzaW9uRGV0YWlscyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -3,7 +3,7 @@ import { CommonModule } from "@angular/common";
|
|
|
3
3
|
import { NgModule } from "@angular/core";
|
|
4
4
|
import { PanelModule } from "primeng/panel";
|
|
5
5
|
import { TableModule as PrimeTableModule } from "primeng/table";
|
|
6
|
-
import { ButtonModule, LoadingStateModule, TableModule, SidebarModule, LocaleModule } from "@seniorsistemas/angular-components";
|
|
6
|
+
import { ButtonModule, LoadingStateModule, TableModule, SidebarModule, LocaleModule, EmptyStateModule } from "@seniorsistemas/angular-components";
|
|
7
7
|
import { ExclusionDetailsComponent } from "./exclusion-details.component";
|
|
8
8
|
let ExclusionDetailsModule = class ExclusionDetailsModule {
|
|
9
9
|
};
|
|
@@ -17,7 +17,8 @@ ExclusionDetailsModule = __decorate([
|
|
|
17
17
|
PrimeTableModule,
|
|
18
18
|
TableModule,
|
|
19
19
|
LoadingStateModule,
|
|
20
|
-
LocaleModule
|
|
20
|
+
LocaleModule,
|
|
21
|
+
EmptyStateModule
|
|
21
22
|
],
|
|
22
23
|
declarations: [ExclusionDetailsComponent],
|
|
23
24
|
exports: [ExclusionDetailsComponent],
|
|
@@ -25,4 +26,4 @@ ExclusionDetailsModule = __decorate([
|
|
|
25
26
|
})
|
|
26
27
|
], ExclusionDetailsModule);
|
|
27
28
|
export { ExclusionDetailsModule };
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjbHVzaW9uLWRldGFpbHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2V4Y2x1c2lvbi1wcm9jZXNzLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImV4Y2x1c2lvbi1kZXRhaWxzL2V4Y2x1c2lvbi1kZXRhaWxzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxJQUFJLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFDSCxZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxhQUFhLEVBQ2IsWUFBWSxFQUNaLGdCQUFnQixFQUNuQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBa0IxRSxJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUFzQjtDQUFHLENBQUE7QUFBekIsc0JBQXNCO0lBaEJsQyxRQUFRLENBQUM7UUFDTixPQUFPLEVBQUU7WUFDTCxZQUFZO1lBQ1osYUFBYTtZQUNiLFlBQVk7WUFDWixXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIsWUFBWTtZQUNaLGdCQUFnQjtTQUNuQjtRQUNELFlBQVksRUFBRSxDQUFDLHlCQUF5QixDQUFDO1FBQ3pDLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO1FBQ3BDLGVBQWUsRUFBRSxDQUFDLHlCQUF5QixDQUFDO0tBQy9DLENBQUM7R0FDVyxzQkFBc0IsQ0FBRztTQUF6QixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBQYW5lbE1vZHVsZSB9IGZyb20gXCJwcmltZW5nL3BhbmVsXCI7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSBhcyBQcmltZVRhYmxlTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvdGFibGVcIjtcbmltcG9ydCB7XG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIExvYWRpbmdTdGF0ZU1vZHVsZSxcbiAgICBUYWJsZU1vZHVsZSxcbiAgICBTaWRlYmFyTW9kdWxlLFxuICAgIExvY2FsZU1vZHVsZSxcbiAgICBFbXB0eVN0YXRlTW9kdWxlXG59IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XG5pbXBvcnQgeyBFeGNsdXNpb25EZXRhaWxzQ29tcG9uZW50IH0gZnJvbSBcIi4vZXhjbHVzaW9uLWRldGFpbHMuY29tcG9uZW50XCI7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFNpZGViYXJNb2R1bGUsXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgUGFuZWxNb2R1bGUsXG4gICAgICAgIFByaW1lVGFibGVNb2R1bGUsXG4gICAgICAgIFRhYmxlTW9kdWxlLFxuICAgICAgICBMb2FkaW5nU3RhdGVNb2R1bGUsXG4gICAgICAgIExvY2FsZU1vZHVsZSxcbiAgICAgICAgRW1wdHlTdGF0ZU1vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbRXhjbHVzaW9uRGV0YWlsc0NvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW0V4Y2x1c2lvbkRldGFpbHNDb21wb25lbnRdLFxuICAgIGVudHJ5Q29tcG9uZW50czogW0V4Y2x1c2lvbkRldGFpbHNDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEV4Y2x1c2lvbkRldGFpbHNNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjbHVzaW9uLXByb2Nlc3Mtc3RhdHVzLWNoYW5nZWQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvZXhjbHVzaW9uLXByb2Nlc3MtY29tcG9uZW50LyIsInNvdXJjZXMiOlsiZXhjbHVzaW9uLWRldGFpbHMvcHJvdG9jb2xzL2V4Y2x1c2lvbi1wcm9jZXNzLXN0YXR1cy1jaGFuZ2VkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnVtRXhjbHVzaW9uUHJvY2Vzc1N0YXR1cyB9IGZyb20gXCIuLi8uLi9lbnVtcy9lbnVtLWV4Y2x1c2lvbi1wcm9jZXNzLXN0YXR1c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4Y2x1c2lvblByb2Nlc3NTdGF0dXNDaGFuZ2VkIHtcbiAgICBwaWQ6IHN0cmluZztcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICByZWNvcmRJZDogc3RyaW5nO1xuICAgIHN0YXR1czogRW51bUV4Y2x1c2lvblByb2Nlc3NTdGF0dXM7XG59XG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export class ShowDetailsInformation {
|
|
2
2
|
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1kZXRhaWxzLWluZm9ybWF0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2V4Y2x1c2lvbi1wcm9jZXNzLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImV4Y2x1c2lvbi1kZXRhaWxzL3Byb3RvY29scy9zaG93LWRldGFpbHMtaW5mb3JtYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHNCQUFzQjtDQUtsQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTaG93RGV0YWlsc0luZm9ybWF0aW9uIHtcbiAgICByZWNvcmRJZD86IHN0cmluZztcbiAgICBwcm9jZXNzSWQ/OiBzdHJpbmc7XG4gICAgZW50aXR5TmFtZTogc3RyaW5nO1xuICAgIGVudGl0eURlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNvY2tldC1ldmVudC1kYXRhLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2V4Y2x1c2lvbi1wcm9jZXNzLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImV4Y2x1c2lvbi1kZXRhaWxzL3Byb3RvY29scy93ZWItc29ja2V0LWV2ZW50LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgV2Vic29ja2V0RXZlbnREYXRhPFQ+IHtcbiAgICBkb21haW46IHN0cmluZztcbiAgICBwcmltaXRpdmU6IHN0cmluZztcbiAgICBzZXJ2aWNlOiBzdHJpbmc7XG4gICAgZGF0YTogVDtcbn1cbiJdfQ==
|