tango-app-ui-manage-settings 3.7.43 → 3.7.44
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/esm2022/lib/components/configurations/configurations.component.mjs +11 -42
- package/esm2022/lib/components/configurations/ticket-configuration/ticket-configuration.component.mjs +7 -101
- package/esm2022/lib/components/documents/brand-documents/brand-documents.component.mjs +349 -0
- package/esm2022/lib/components/documents/documents.component.mjs +4 -3
- package/esm2022/lib/services/client-api.service.mjs +20 -1
- package/esm2022/lib/tango-manage-settings.module.mjs +4 -1
- package/fesm2022/tango-app-ui-manage-settings.mjs +384 -148
- package/fesm2022/tango-app-ui-manage-settings.mjs.map +1 -1
- package/lib/components/configurations/configurations.component.d.ts +0 -1
- package/lib/components/configurations/ticket-configuration/ticket-configuration.component.d.ts +2 -28
- package/lib/components/documents/brand-documents/brand-documents.component.d.ts +94 -0
- package/lib/services/client-api.service.d.ts +7 -0
- package/lib/tango-manage-settings.module.d.ts +54 -53
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { Subject,
|
|
2
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../../services/client-api.service";
|
|
5
5
|
import * as i2 from "tango-app-ui-shared";
|
|
@@ -82,21 +82,13 @@ export class ConfigurationsComponent {
|
|
|
82
82
|
installationReAssign: data?.ticketConfigs?.installationReAssign,
|
|
83
83
|
sendToAdmin: data?.ticketConfigs?.alertSentTo?.admin,
|
|
84
84
|
sendToUser: data?.ticketConfigs?.alertSentTo?.user,
|
|
85
|
-
infraTicketType: data?.ticketConfigs?.infraTicketType,
|
|
86
85
|
downTimeType: data?.ticketConfigs?.downTimeType,
|
|
87
|
-
|
|
88
|
-
// the field the generation cron reads, so it is what the form must show.
|
|
89
|
-
infraDownTime: data?.ticketConfigs?.infraTicketType === 'V2'
|
|
90
|
-
? data?.ticketConfigs?.infraV2DownTime
|
|
91
|
-
: data?.ticketConfigs?.infraDownTime,
|
|
86
|
+
infraDownTime: data?.ticketConfigs?.infraDownTime,
|
|
92
87
|
MinFilesCount: data?.ticketConfigs?.MinFilesCount,
|
|
93
88
|
isRcaTicketAssign: data?.ticketConfigs?.isRcaTicketAssign,
|
|
94
89
|
rcaTicketAssign: data?.ticketConfigs?.rcaTicketAssign,
|
|
95
90
|
isRefreshAlert: data?.ticketConfigs?.isRefreshAlert,
|
|
96
91
|
refreshAlert: data?.ticketConfigs?.refreshAlert,
|
|
97
|
-
downtimeBufferTime: data?.ticketConfigs?.downtimeBufferTime,
|
|
98
|
-
repushTickets: data?.ticketConfigs?.repushTickets,
|
|
99
|
-
repushBufferTime: data?.ticketConfigs?.repushBufferTime,
|
|
100
92
|
isStatusCheckAlert: data?.ticketConfigs?.isStatusCheckAlert,
|
|
101
93
|
statusCheckAlert: data?.ticketConfigs?.statusCheckAlert,
|
|
102
94
|
reTrain: data?.ticketConfigs?.reTrain,
|
|
@@ -194,41 +186,18 @@ export class ConfigurationsComponent {
|
|
|
194
186
|
this.userConfigPrevValues = obj;
|
|
195
187
|
this.clientApi.clientFormData.next({ value: { ...obj }, type: 'input', form: 'user-configuration' });
|
|
196
188
|
}
|
|
197
|
-
// Shared by both branches above so a failed read still saves.
|
|
198
|
-
updateTicketConfiguration(data) {
|
|
199
|
-
this.clientApi.updateTicketConfiguration(this.clientData.clientId, data).pipe(takeUntil(this.destroy$)).subscribe({
|
|
200
|
-
next: (e) => {
|
|
201
|
-
this.toaster.getSuccessToast(e.data?.result);
|
|
202
|
-
this.clientApi.clientFormData.next({ value: null, type: 'submitted', form: 'null' });
|
|
203
|
-
},
|
|
204
|
-
error: (e) => {
|
|
205
|
-
this.toaster.getErrorToast(e.error?.error);
|
|
206
|
-
this.populateTicketConfiguration(this.clientData);
|
|
207
|
-
}
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
189
|
submitForm(e) {
|
|
211
190
|
if (e.form === 'ticket-configuration') {
|
|
212
191
|
const data = this.getDifferentEntries(this.ticketConfigPrevValues, e.value);
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
this.updateTicketConfiguration(data);
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
// V2 only. The diff carries just the changed fields, so infraTicketType is
|
|
221
|
-
// absent and the client reverts to V1 - read the stored value and send it.
|
|
222
|
-
this.clientApi.getBrandDetails(this.clientData.clientId).pipe(take(1), takeUntil(this.destroy$)).subscribe({
|
|
223
|
-
next: (res) => {
|
|
224
|
-
const stored = res?.code == '200' ? res?.data?.ticketConfigs?.infraTicketType : null;
|
|
225
|
-
if (stored) {
|
|
226
|
-
data.infraTicketType = stored;
|
|
227
|
-
}
|
|
228
|
-
this.updateTicketConfiguration(data);
|
|
192
|
+
this.clientApi.updateTicketConfiguration(this.clientData.clientId, data).pipe(takeUntil(this.destroy$)).subscribe({
|
|
193
|
+
next: (e) => {
|
|
194
|
+
this.toaster.getSuccessToast(e.data?.result);
|
|
195
|
+
this.clientApi.clientFormData.next({ value: null, type: 'submitted', form: 'null' });
|
|
229
196
|
},
|
|
230
|
-
|
|
231
|
-
|
|
197
|
+
error: (e) => {
|
|
198
|
+
this.toaster.getErrorToast(e.error?.error);
|
|
199
|
+
this.populateTicketConfiguration(this.clientData);
|
|
200
|
+
}
|
|
232
201
|
});
|
|
233
202
|
}
|
|
234
203
|
else if (e.form === 'feature-configuration') {
|
|
@@ -318,4 +287,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
318
287
|
type: ViewChild,
|
|
319
288
|
args: ['accordion', { static: true }]
|
|
320
289
|
}] } });
|
|
321
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9jb25maWd1cmF0aW9ucy9jb25maWd1cmF0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2NvbmZpZ3VyYXRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRaEQsTUFBTSxPQUFPLHVCQUF1QjtJQWdCZDtJQUFxQztJQUE4QjtJQWZ2RixVQUFVLENBQU07SUFDQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMxQyxzQkFBc0IsQ0FBTTtJQUM1Qix1QkFBdUIsQ0FBTTtJQUM3Qix3QkFBd0IsQ0FBTTtJQUM5QixzQkFBc0IsQ0FBTTtJQUM1QixvQkFBb0IsQ0FBTTtJQUMxQixRQUFRLENBQU87SUFDZixjQUFjLEdBQVcsS0FBSyxDQUFBO0lBQ1ksU0FBUyxDQUFNO0lBQ3pELGdCQUFnQixHQUFZLEtBQUssQ0FBQztJQUNsQyxRQUFRLEdBQVksS0FBSyxDQUFDO0lBSTFCLFlBQW9CLFNBQTJCLEVBQVUsT0FBcUIsRUFBUyxFQUFxQjtRQUF4RixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUMxRyxNQUFNLElBQUksR0FBTyxZQUFZLENB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LEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDbGllbnRBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xpZW50LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWNvbmZpZ3VyYXRpb25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJhdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jb25maWd1cmF0aW9ucy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBjbGllbnREYXRhOiBhbnk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgdGlja2V0Q29uZmlnUHJldlZhbHVlczogYW55O1xyXG4gIGZlYXR1cmVDb25maWdQcmV2VmFsdWVzOiBhbnk7XHJcbiAgZm9vdGZhbGxDb25maWdQcmV2VmFsdWVzOiBhbnk7XHJcbiAgZG9tYWluQ29uZmlnUHJldlZhbHVlczogYW55O1xyXG4gIHVzZXJDb25maWdQcmV2VmFsdWVzOiBhbnk7XHJcbiAgdXNlclJvbGU6c3RyaW5nXHJcbiAgem9uZVN1YnNjcmliZWQ6Ym9vbGVhbiA9IGZhbHNlXHJcbiAgQFZpZXdDaGlsZCgnYWNjb3JkaW9uJywgeyBzdGF0aWM6IHRydWUgfSkgYWNjb3JkaW9uOiBhbnk7XHJcbiAgaXNWTVNFbmFibGVkVXNlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzUmV2b3BzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGllbnRBcGk6IENsaWVudEFwaVNlcnZpY2UsIHByaXZhdGUgdG9hc3RlcjogVG9hc3RTZXJ2aWNlLCBwdWJsaWMgZ3M6R2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgICBjb25zdCB1c2VyOmFueSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyLWluZm8nKVxyXG4gICAgdGhpcy51c2VyUm9sZSAgPSBKU09OLnBhcnNlKHVzZXIpPy5yb2xlXHJcbiAgICBcclxuICAgIHRoaXMuY2xpZW50QXBpLmNsaWVudEZvcm1EYXRhLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYgKGUudHlwZSA9PT0gJ3N1Ym1pdCcpIHtcclxuICAgICAgICB0aGlzLnN1Ym1pdEZvcm0oZSlcclxuICAgICAgfSBlbHNlIGlmIChlLnR5cGUgPT09ICdjYW5jZWwnKSB7XHJcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oZSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmNsaWVudEFwaS5jbGllbnREYXRhLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYgKGUpIHtcclxuICAgICAgICB0aGlzLmNsaWVudERhdGEgPSBlXHJcbiAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gQ29uZmlndXJhdGlvbnNDb21wb25lbnQgfiBjb25zdHJ1Y3RvciB+IHRoaXMuY2xpZW50RGF0YTpcIiwgdGhpcy5jbGllbnREYXRhLnBsYW5EZXRhaWxzLnByb2R1Y3QuZmlsdGVyKChlbGU6YW55KT0+ZWxlLnByb2R1Y3ROYW1lPT09J3RhbmdvWm9uZScpKVxyXG4gICAgICAgIGlmKHRoaXMuY2xpZW50RGF0YS5wbGFuRGV0YWlscy5wcm9kdWN0LmZpbHRlcigoZWxlOmFueSk9PmVsZS5wcm9kdWN0TmFtZT09PSd0YW5nb1pvbmUnKS5sZW5ndGg+MCl7XHJcbiAgICAgICAgICB0aGlzLnpvbmVTdWJzY3JpYmVkID0gIHRydWVcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5wb3B1bGF0ZVRpY2tldENvbmZpZ3VyYXRpb24oZSlcclxuICAgICAgICB0aGlzLnBvcHVsYXRlRmVhdHVyZUNvbmZpZ3VyYXRpb24oZSlcclxuICAgICAgICB0aGlzLnBvcHVsYXRlRm9vdGZhbGxDb25maWd1cmF0aW9uKGUpXHJcbiAgICAgICAgdGhpcy5wb3B1bGF0ZURvbWFpbkRldGFpbENvbmZpZ3VyYXRpb24oZSlcclxuICAgICAgICB0aGlzLnBvcHVsYXRlVXNlckNvbmZpZ3VyYXRpb24oZSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgb3Blbkl0ZW0oKSB7XHJcbiAgICB0aGlzLnBvcHVsYXRlVGlja2V0Q29uZmlndXJhdGlvbih0aGlzLmNsaWVudERhdGEpXHJcbiAgICB0aGlzLnBvcHVsYXRlRmVhdHVyZUNvbmZpZ3VyYXRpb24odGhpcy5jbGllbnREYXRhKVxyXG4gICAgdGhpcy5wb3B1bGF0ZUZvb3RmYWxsQ29uZmlndXJhdGlvbih0aGlzLmNsaWVudERhdGEpXHJcbiAgICB0aGlzLnBvcHVsYXRlRG9tYWluRGV0YWlsQ29uZmlndXJhdGlvbih0aGlzLmNsaWVudERhdGEpXHJcbiAgICB0aGlzLnBvcHVsYXRlVXNlckNvbmZpZ3VyYXRpb24odGhpcy5jbGllbnREYXRhKVxyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVUaWNrZXRDb25maWd1cmF0aW9uKGRhdGE6IGFueSkge1xyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgaW5zdGFsbGF0aW9uUmVBc3NpZ246IGRhdGE/LnRpY2tldENvbmZpZ3M/Lmluc3RhbGxhdGlvblJlQXNzaWduLFxyXG4gICAgICBzZW5kVG9BZG1pbjogZGF0YT8udGlja2V0Q29uZmlncz8uYWxlcnRTZW50VG8/LmFkbWluLFxyXG4gICAgICBzZW5kVG9Vc2VyOiBkYXRhPy50aWNrZXRDb25maWdzPy5hbGVydFNlbnRUbz8udXNlcixcclxuICAgICAgaW5mcmFUaWNrZXRUeXBlOiBkYXRhPy50aWNrZXRDb25maWdzPy5pbmZyYVRpY2tldFR5cGUsXHJcbiAgICAgIGRvd25UaW1lVHlwZTogZGF0YT8udGlja2V0Q29uZmlncz8uZG93blRpbWVUeXBlLFxyXG4gICAgICAvLyBJbmZyYSBWMiBzdG9yZXMgaXRzIGN5Y2xlIGxlbmd0aCBzZXBhcmF0ZWx5IGFzIGluZnJhVjJEb3duVGltZSAtIHRoYXQgaXNcclxuICAgICAgLy8gdGhlIGZpZWxkIHRoZSBnZW5lcmF0aW9uIGNyb24gcmVhZHMsIHNvIGl0IGlzIHdoYXQgdGhlIGZvcm0gbXVzdCBzaG93LlxyXG4gICAgICBpbmZyYURvd25UaW1lOiBkYXRhPy50aWNrZXRDb25maWdzPy5pbmZyYVRpY2tldFR5cGUgPT09ICdWMidcclxuICAgICAgICA/IGRhdGE/LnRpY2tldENvbmZpZ3M/LmluZnJhVjJEb3duVGltZVxyXG4gICAgICAgIDogZGF0YT8udGlja2V0Q29uZmlncz8uaW5mcmFEb3duVGltZSxcclxuICAgICAgTWluRmlsZXNDb3VudDogZGF0YT8udGlja2V0Q29uZmlncz8uTWluRmlsZXNDb3VudCxcclxuICAgICAgaXNSY2FUaWNrZXRBc3NpZ246IGRhdGE/LnRpY2tldENvbmZpZ3M/LmlzUmNhVGlja2V0QXNzaWduLFxyXG4gICAgICByY2FUaWNrZXRBc3NpZ246IGRhdGE/LnRpY2tldENvbmZpZ3M/LnJjYVRpY2tldEFzc2lnbixcclxuICAgICAgaXNSZWZyZXNoQWxlcnQ6IGRhdGE/LnRpY2tldENvbmZpZ3M/LmlzUmVmcmVzaEFsZXJ0LFxyXG4gICAgICByZWZyZXNoQWxlcnQ6IGRhdGE/LnRpY2tldENvbmZpZ3M/LnJlZnJlc2hBbGVydCxcclxuICAgICAgZG93bnRpbWVCdWZmZXJUaW1lOiBkYXRhPy50aWNrZXRDb25maWdzPy5kb3dudGltZUJ1ZmZlclRpbWUsXHJcbiAgICAgIHJlcHVzaFRpY2tldHM6IGRhdGE/LnRpY2tldENvbmZpZ3M/LnJlcHVzaFRpY2tldHMsXHJcbiAgICAgIHJlcHVzaEJ1ZmZlclRpbWU6IGRhdGE/LnRpY2tldENvbmZpZ3M/LnJlcHVzaEJ1ZmZlclRpbWUsXHJcbiAgICAgIGlzU3RhdHVzQ2hlY2tBbGVydDogZGF0YT8udGlja2V0Q29uZmlncz8uaXNTdGF0dXNDaGVja0FsZXJ0LFxyXG4gICAgICBzdGF0dXNDaGVja0FsZXJ0OiBkYXRhPy50aWNrZXRDb25maWdzPy5zdGF0dXNDaGVja0FsZXJ0LFxyXG4gICAgICByZVRyYWluOiBkYXRhPy50aWNrZXRDb25maWdzPy5yZVRyYWluLFxyXG4gICAgICBhY2N1cmFjeVBlcmNlbnRhZ2U6IGRhdGE/LnRpY2tldENvbmZpZ3M/LmFjY3VyYWN5UGVyY2VudGFnZSxcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRpY2tldENvbmZpZ1ByZXZWYWx1ZXMgPSBvYmpcclxuXHJcbiAgICB0aGlzLmNsaWVudEFwaS5jbGllbnRGb3JtRGF0YS5uZXh0KHsgdmFsdWU6IHsgLi4ub2JqIH0sIHR5cGU6ICdpbnB1dCcsIGZvcm06ICd0aWNrZXQtY29uZmlndXJhdGlvbicgfSlcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlRmVhdHVyZUNvbmZpZ3VyYXRpb24oZGF0YTogYW55KSB7XHJcbiAgICBpZiAoZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzVk1TKSB0aGlzLmlzVk1TRW5hYmxlZFVzZXIgPSB0cnVlO1xyXG4gICAgZWxzZSB0aGlzLmlzVk1TRW5hYmxlZFVzZXIgPSBmYWxzZTtcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIG9wZW46IGRhdGE/LmZlYXR1cmVDb25maWdzPy5vcGVuLFxyXG4gICAgICBjbG9zZTogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmNsb3NlLFxyXG4gICAgICBpbmZyYUFsZXJ0Q29uZGl0aW9uOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uaW5mcmFBbGVydD8uY29uZGl0aW9uLFxyXG4gICAgICBpbmZyYUFsZXJ0VmFsdWU6IGRhdGE/LmZlYXR1cmVDb25maWdzPy5pbmZyYUFsZXJ0Py52YWx1ZSxcclxuICAgICAgYm91bmNlZExpbWl0Q29uZGl0aW9uOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uYm91bmNlZExpbWl0Py5jb25kaXRpb24sXHJcbiAgICAgIGJvdW5jZWRMaW1pdFZhbHVlOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uYm91bmNlZExpbWl0Py52YWx1ZSxcclxuICAgICAgY29udmVyc2lvbkNvbmRpdGlvbjogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmNvbnZlcnNpb24/LmNvbmRpdGlvbixcclxuICAgICAgY29udmVyc2lvblZhbHVlOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uY29udmVyc2lvbj8udmFsdWUsXHJcbiAgICAgIGJpbGxhYmxlQ2FsY3VsYXRpb246IGRhdGE/LmZlYXR1cmVDb25maWdzPy5iaWxsYWJsZUNhbGN1bGF0aW9uLFxyXG4gICAgICBtaXNzZWRPcHBvcnR1bml0eUNhbGN1bGF0aW9uOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8ubWlzc2VkT3Bwb3J0dW5pdHlDYWxjdWxhdGlvbixcclxuICAgICAgY29udmVyc2lvbkNhbGN1bGF0aW9uOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uY29udmVyc2lvbkNhbGN1bGF0aW9uLFxyXG4gICAgICBkd2VsbFRpbWVDYWxjdWxhdGlvbjogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmR3ZWxsVGltZUNhbGN1bGF0aW9uLFxyXG4gICAgICBpc05vcm1hbGl6ZWQ6IGRhdGE/LmZlYXR1cmVDb25maWdzPy5pc05vcm1hbGl6ZWQsXHJcbiAgICAgIGlzUGFzc2VyQnlEYXRhOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNQYXNzZXJCeURhdGEsXHJcbiAgICAgIGlzRm9vdGZhbGxEaXJlY3Rvcnk6IGRhdGE/LmZlYXR1cmVDb25maWdzPy5pc0Zvb3RmYWxsRGlyZWN0b3J5LFxyXG4gICAgICBpc0Zvb3RmYWxsRGlyZWN0b3J5b25seVRhbmdvOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNGb290ZmFsbERpcmVjdG9yeW9ubHlUYW5nbyxcclxuICAgICAgaXNWTVM6IGRhdGE/LmZlYXR1cmVDb25maWdzPy5pc1ZNUyxcclxuICAgICAgaXNGb290ZmFsbERpcmVjdG9yeUF1ZGl0IDogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzRm9vdGZhbGxEaXJlY3RvcnlBdWRpdCxcclxuICAgICAgaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0IDogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzRm9vdGZhbGxEaXJlY3RvcnlMaW1pdCxcclxuICAgICAgaXNFeGNsdWRlZEFyZWE6ZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzRXhjbHVkZWRBcmVhLFxyXG4gICAgICBpc0NhbWVyYURpc2FibGVkOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNDYW1lcmFEaXNhYmxlZCxcclxuICAgICAgaXNiaWxsaW5nRGlzYWJsZWQ6ZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzYmlsbGluZ0Rpc2FibGVkLFxyXG4gICAgICBpc05ld0Rhc2hib2FyZDpkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNOZXdEYXNoYm9hcmQsXHJcbiAgICAgIHVwZGF0ZUZlYXR1cmVDb25maWc6ZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LnVwZGF0ZUZlYXR1cmVDb25maWcsXHJcbiAgICAgIGlzRm9vdGZhbGxBdWRpdFN0b3JlczpkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNGb290ZmFsbEF1ZGl0U3RvcmVzLFxyXG4gICAgICBpc05ld1RyYWZmaWM6ZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzTmV3VHJhZmZpYyxcclxuICAgICAgaXNOZXdab25lOmRhdGE/LmZlYXR1cmVDb25maWdzPy5pc05ld1pvbmUsXHJcbiAgICAgIGlzTmV3UmVwb3J0czpkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNOZXdSZXBvcnRzLFxyXG4gICAgICBpc05ld1pvbmVWMjogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzTmV3Wm9uZVYyLFxyXG4gICAgICBpc1Jldm9wczogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzUmV2b3BzLFxyXG4gICAgICBpc05PQjogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzTk9CLFxyXG4gICAgICBpc1pvbmV3aXNlTk9CIDogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzWm9uZXdpc2VOT0IsXHJcbiAgICAgIGlzVHJheDpkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNUcmF4LFxyXG4gICAgICBpc0NvbnRyb2xDZW50ZXI6ZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzQ29udHJvbENlbnRlcixcclxuICAgICAgc3RyZWFtQnk6ZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LnN0cmVhbUJ5LFxyXG4gICAgICBpc0NhbWVyYUVkaXQ6ZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzQ2FtZXJhRWRpdCxcclxuICAgICAgaXNBSU1hbmFnZXI6ZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzQUlNYW5hZ2VyLFxyXG4gICAgICBpc0FJTWFuYWdlckFjY2Vzc0NvbnRyb2w6ZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzQUlNYW5hZ2VyQWNjZXNzQ29udHJvbCxcclxuICAgICAgbG9naW5TU086ZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmxvZ2luU1NPXHJcbiAgICB9IFxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlnUHJldlZhbHVlcyA9IG9ialxyXG4gICAgdGhpcy5pc1Jldm9wcyA9IGRhdGE/LmZlYXR1cmVDb25maWdzPy5pc1Jldm9wcyA9PT0gdHJ1ZTtcclxuICAgIHRoaXMuY2xpZW50QXBpLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogeyAuLi5vYmogfSwgdHlwZTogJ2lucHV0JywgZm9ybTogJ2ZlYXR1cmUtY29uZmlndXJhdGlvbicgfSlcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiY2xpZW50LWRldGFpbHNcIiwgSlNPTi5zdHJpbmdpZnkoZGF0YT8uZmVhdHVyZUNvbmZpZ3MpKTtcclxuICAgIHRoaXMuZ3Muc2VsZWN0ZWRDbGllbnQubmV4dChkYXRhPy5mZWF0dXJlQ29uZmlncyk7XHJcbiAgfVxyXG5cclxuICBwb3B1bGF0ZUZvb3RmYWxsQ29uZmlndXJhdGlvbihkYXRhOiBhbnkpIHtcclxuICAgIGlmICghZGF0YT8uZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzKSByZXR1cm47XHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBhbGxvd1RpY2tldENyZWF0aW9uOiBkYXRhPy5mb290ZmFsbERpcmVjdG9yeUNvbmZpZ3M/LmFsbG93VGlja2V0Q3JlYXRpb24gPz8gMyxcclxuICAgICAgaXNBdXRvQ2xvc2VFbmFibGU6IGRhdGE/LmZvb3RmYWxsRGlyZWN0b3J5Q29uZmlncz8uaXNBdXRvQ2xvc2VFbmFibGUsXHJcbiAgICAgIGF1dG9DbG9zZUFjY3VyYWN5OiBkYXRhPy5mb290ZmFsbERpcmVjdG9yeUNvbmZpZ3M/LmF1dG9DbG9zZUFjY3VyYWN5ID8/ICc5NSUnLFxyXG4gICAgICB0YW5nb1JldmlldzogZGF0YT8uZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzPy50YW5nb1JldmlldyA/PyAnODUlJyxcclxuICAgICAgb3ZlcmFsbExpbWl0YXRpb246IGRhdGE/LmZvb3RmYWxsRGlyZWN0b3J5Q29uZmlncz8ub3ZlcmFsbExpbWl0YXRpb24gPz8gJycsXHJcbiAgICAgIGFjY3VyYWN5QnJlYWNoOiAgZGF0YS5mb290ZmFsbERpcmVjdG9yeUNvbmZpZ3M/LmFjY3VyYWN5QnJlYWNoIHx8IHt9LFxyXG4gICAgICByZXZpc2lvbjogZGF0YT8uZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzPy5yZXZpc2lvbiA/PyBbXSxcclxuICAgICAgdGFnZ2luZ0xpbWl0YXRpb246IGRhdGE/LmZvb3RmYWxsRGlyZWN0b3J5Q29uZmlncz8udGFnZ2luZ0xpbWl0YXRpb24gPz8gW10sXHJcbiAgICAgIHN0b3JlTGlzdDogZGF0YT8uZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzPy5zdG9yZUxpc3QgPz8gZGF0YT8uZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzPy5hY2N1cmFjeUJyZWFjaD8uc3RvcmVMaXN0ID8/IFtdXHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5mb290ZmFsbENvbmZpZ1ByZXZWYWx1ZXMgPSBvYmo7XHJcbiAgICB0aGlzLmNsaWVudEFwaS5jbGllbnRGb3JtRGF0YS5uZXh0KHsgdmFsdWU6IHsgLi4ub2JqIH0sIHR5cGU6ICdpbnB1dCcsIGZvcm06ICdmb290ZmFsbERpcmVjdG9yeUNvbmZpZ3MnIH0pXHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImZvb3RmYWxsLWNvbmZpZ1wiLCBKU09OLnN0cmluZ2lmeShvYmopKTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlRG9tYWluRGV0YWlsQ29uZmlndXJhdGlvbihkYXRhOiBhbnkpIHtcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIGRvbWFpbk5hbWU6IGRhdGE/LmRvbWFpbkNvbmZpZz8uc3NvTG9naW4/LmRvbWFpbk5hbWUsXHJcbiAgICAgIGlzRW5hYmxlOiBkYXRhPy5kb21haW5Db25maWc/LnNzb0xvZ2luPy5pc0VuYWJsZSxcclxuICAgICAgZW5hYmxlV2hpdGVsaXN0aW5nOiBkYXRhPy5kb21haW5Db25maWc/LmlwV2hpdGVsaXN0aW5nPy5lbmFibGVXaGl0ZWxpc3RpbmcsXHJcbiAgICAgIGFsbG93ZWRJcHM6IGRhdGE/LmRvbWFpbkNvbmZpZz8uaXBXaGl0ZWxpc3Rpbmc/LmFsbG93ZWRJcHMsXHJcbiAgICAgIGVuYWJsZU90cDogZGF0YT8uZG9tYWluQ29uZmlnPy5lbmFibGVPdHAsXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kb21haW5Db25maWdQcmV2VmFsdWVzID0gb2JqXHJcblxyXG4gICAgdGhpcy5jbGllbnRBcGkuY2xpZW50Rm9ybURhdGEubmV4dCh7IHZhbHVlOiB7IC4uLm9iaiB9LCB0eXBlOiAnaW5wdXQnLCBmb3JtOiAnZG9tYWluLWRldGFpbHMnIH0pXHJcbiAgICBcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlVXNlckNvbmZpZ3VyYXRpb24oZGF0YTogYW55KSB7XHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBjc206IGRhdGE/LmFzc2lnbmVkVXNlcnM/LmNzbSxcclxuICAgICAgb3BzOiBkYXRhPy5hc3NpZ25lZFVzZXJzPy5vcHMsXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51c2VyQ29uZmlnUHJldlZhbHVlcyA9IG9ialxyXG5cclxuICAgIHRoaXMuY2xpZW50QXBpLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogeyAuLi5vYmogfSwgdHlwZTogJ2lucHV0JywgZm9ybTogJ3VzZXItY29uZmlndXJhdGlvbicgfSlcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLy8gU2hhcmVkIGJ5IGJvdGggYnJhbmNoZXMgYWJvdmUgc28gYSBmYWlsZWQgcmVhZCBzdGlsbCBzYXZlcy5cclxuICB1cGRhdGVUaWNrZXRDb25maWd1cmF0aW9uKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5jbGllbnRBcGkudXBkYXRlVGlja2V0Q29uZmlndXJhdGlvbih0aGlzLmNsaWVudERhdGEuY2xpZW50SWQsIGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMudG9hc3Rlci5nZXRTdWNjZXNzVG9hc3QoZS5kYXRhPy5yZXN1bHQpXHJcbiAgICAgICAgdGhpcy5jbGllbnRBcGkuY2xpZW50Rm9ybURhdGEubmV4dCh7IHZhbHVlOiBudWxsLCB0eXBlOiAnc3VibWl0dGVkJywgZm9ybTogJ251bGwnIH0pXHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMudG9hc3Rlci5nZXRFcnJvclRvYXN0KGUuZXJyb3I/LmVycm9yKVxyXG4gICAgICAgIHRoaXMucG9wdWxhdGVUaWNrZXRDb25maWd1cmF0aW9uKHRoaXMuY2xpZW50RGF0YSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHN1Ym1pdEZvcm0oZTogYW55KSB7XHJcbiAgICBpZiAoZS5mb3JtID09PSAndGlja2V0LWNvbmZpZ3VyYXRpb24nKSB7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSAgdGhpcy5nZXREaWZmZXJlbnRFbnRyaWVzKHRoaXMudGlja2V0Q29uZmlnUHJldlZhbHVlcywgZS52YWx1ZSlcclxuXHJcbiAgICAgIC8vIEluZnJhIFYxIHNhdmVzIGV4YWN0bHkgYXMgaXQgYWx3YXlzIGhhczogb25lIFBVVCwgZGlmZiBvbmx5LiBUaGUgc2FtZVxyXG4gICAgICAvLyBnb2VzIGZvciBhIHNhdmUgdGhhdCBhbHJlYWR5IGNhcnJpZXMgYSB0eXBlIHRoZSB1c2VyIGp1c3Qgc3dpdGNoZWQgLVxyXG4gICAgICAvLyB0aGUgZm9ybSdzIHZhbHVlIG11c3Qgd2luLCBzbyB0aGUgcmVjb3JkJ3MgaXMgaXJyZWxldmFudC5cclxuICAgICAgaWYgKGUudmFsdWU/LmluZnJhVGlja2V0VHlwZSAhPT0gJ1YyJyB8fCAnaW5mcmFUaWNrZXRUeXBlJyBpbiBkYXRhKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVUaWNrZXRDb25maWd1cmF0aW9uKGRhdGEpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFYyIG9ubHkuIFRoZSBkaWZmIGNhcnJpZXMganVzdCB0aGUgY2hhbmdlZCBmaWVsZHMsIHNvIGluZnJhVGlja2V0VHlwZSBpc1xyXG4gICAgICAvLyBhYnNlbnQgYW5kIHRoZSBjbGllbnQgcmV2ZXJ0cyB0byBWMSAtIHJlYWQgdGhlIHN0b3JlZCB2YWx1ZSBhbmQgc2VuZCBpdC5cclxuICAgICAgdGhpcy5jbGllbnRBcGkuZ2V0QnJhbmREZXRhaWxzKHRoaXMuY2xpZW50RGF0YS5jbGllbnRJZCkucGlwZSh0YWtlKDEpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBzdG9yZWQgPSByZXM/LmNvZGUgPT0gJzIwMCcgPyByZXM/LmRhdGE/LnRpY2tldENvbmZpZ3M/LmluZnJhVGlja2V0VHlwZSA6IG51bGxcclxuICAgICAgICAgIGlmIChzdG9yZWQpIHsgZGF0YS5pbmZyYVRpY2tldFR5cGUgPSBzdG9yZWQgfVxyXG4gICAgICAgICAgdGhpcy51cGRhdGVUaWNrZXRDb25maWd1cmF0aW9uKGRhdGEpXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBBIGZhaWxlZCByZWFkIG11c3Qgbm90IGxvc2UgdGhlIHNhdmUuXHJcbiAgICAgICAgZXJyb3I6ICgpID0+IHRoaXMudXBkYXRlVGlja2V0Q29uZmlndXJhdGlvbihkYXRhKVxyXG4gICAgICB9KVxyXG5cclxuICAgIH0gZWxzZVxyXG4gICAgICBpZiAoZS5mb3JtID09PSAnZmVhdHVyZS1jb25maWd1cmF0aW9uJykge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSAgdGhpcy5nZXREaWZmZXJlbnRFbnRyaWVzKHRoaXMuZmVhdHVyZUNvbmZpZ1ByZXZWYWx1ZXMsIGUudmFsdWUpXHJcbiAgICAgICAgY29uc29sZS5sb2coZGF0YSlcclxuICAgICAgICB0aGlzLmNsaWVudEFwaS51cGRhdGVGZWF0dXJlQ29uZmlndXJhdGlvbih0aGlzLmNsaWVudERhdGEuY2xpZW50SWQsIGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldFN1Y2Nlc3NUb2FzdChlLmRhdGE/LnJlc3VsdClcclxuICAgICAgICAgICAgdGhpcy5jbGllbnRBcGkuY2xpZW50Rm9ybURhdGEubmV4dCh7IHZhbHVlOiBudWxsLCB0eXBlOiAnc3VibWl0dGVkJywgZm9ybTogJ251bGwnIH0pXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyb3I6IChlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3Rlci5nZXRFcnJvclRvYXN0KGUuZXJyb3I/LmVycm9yKVxyXG4gICAgICAgICAgICB0aGlzLnBvcHVsYXRlRmVhdHVyZUNvbmZpZ3VyYXRpb24odGhpcy5jbGllbnREYXRhKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICB9IGVsc2VcclxuICAgICAgICBpZiAoZS5mb3JtID09PSAnZG9tYWluLWRldGFpbHMnKSB7XHJcbiAgICAgICAgICBjb25zdCBkYXRhID0gIHRoaXMuZ2V0RGlmZmVyZW50RW50cmllcyh0aGlzLmRvbWFpbkNvbmZpZ1ByZXZWYWx1ZXMsIGUudmFsdWUpICAgICBcclxuICAgICAgICAgIHRoaXMuY2xpZW50QXBpLnVwZGF0ZURvbWFpbkRldGFpbENvbmZpZ3VyYXRpb24odGhpcy5jbGllbnREYXRhLmNsaWVudElkLCBkYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKGUpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0U3VjY2Vzc1RvYXN0KGUuZGF0YT8ucmVzdWx0KVxyXG4gICAgICAgICAgICAgIHRoaXMuY2xpZW50QXBpLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogbnVsbCwgdHlwZTogJ3N1Ym1pdHRlZCcsIGZvcm06ICdudWxsJyB9KVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogKGUpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0RXJyb3JUb2FzdChlLmVycm9yPy5lcnJvcilcclxuICAgICAgICAgICAgICB0aGlzLnBvcHVsYXRlRG9tYWluRGV0YWlsQ29uZmlndXJhdGlvbih0aGlzLmNsaWVudERhdGEpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoZS5mb3JtID09PSAnZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzJykge1xyXG4gICAgICAgICAgLy8gY29uc3QgZGF0YSA9IHRoaXMuZ2V0RGlmZmVyZW50RW50cmllcyh0aGlzLmZvb3RmYWxsQ29uZmlnUHJldlZhbHVlcywgZS52YWx1ZSk7XHJcbiAgICAgICAgICBjb25zdCBkYXRhID0gZS52YWx1ZTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCd1cGRhdGUgZm9vdGZhbGwgY29uZmlnIGpzb24gPT0+JywgZGF0YSlcclxuICAgICAgICAgIHRoaXMuY2xpZW50QXBpLnVwZGF0ZUZvb3RmYWxsRGlyZWN0b3J5Q29uZmlnKHRoaXMuY2xpZW50RGF0YS5jbGllbnRJZCwgZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldFN1Y2Nlc3NUb2FzdCgnRm9vdGZhbGwgY29uZmlndXJhdGlvbiBkZXRhaWxzIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LicpXHJcbiAgICAgICAgICAgICAgdGhpcy5jbGllbnRBcGkuY2xpZW50Rm9ybURhdGEubmV4dCh7IHZhbHVlOiBudWxsLCB0eXBlOiAnc3VibWl0dGVkJywgZm9ybTogJ251bGwnIH0pXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5nZXRFcnJvclRvYXN0KGUuZXJyb3I/LmVycm9yKVxyXG4gICAgICAgICAgICAgIHRoaXMucG9wdWxhdGVGb290ZmFsbENvbmZpZ3VyYXRpb24odGhpcy5jbGllbnREYXRhKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICByZXNldEZvcm0oZTogYW55KSB7XHJcbiAgICBpZiAoZS5mb3JtID09PSAndGlja2V0LWNvbmZpZ3VyYXRpb24nKSB7XHJcbiAgICAgIHRoaXMucG9wdWxhdGVUaWNrZXRDb25maWd1cmF0aW9uKHRoaXMuY2xpZW50RGF0YSlcclxuICAgIH0gZWxzZVxyXG4gICAgICBpZiAoZS5mb3JtID09PSAnZmVhdHVyZS1jb25maWd1cmF0aW9uJykge1xyXG4gICAgICAgIHRoaXMucG9wdWxhdGVGZWF0dXJlQ29uZmlndXJhdGlvbih0aGlzLmNsaWVudERhdGEpXHJcbiAgICAgIH0gZWxzZVxyXG4gICAgICAgIGlmIChlLmZvcm0gPT09ICdkb21haW4tZGV0YWlscycpIHtcclxuICAgICAgICAgIHRoaXMucG9wdWxhdGVEb21haW5EZXRhaWxDb25maWd1cmF0aW9uKHRoaXMuY2xpZW50RGF0YSlcclxuICAgICAgICB9IGVsc2VcclxuICAgICAgICAgIGlmIChlLmZvcm0gPT09ICd1c2VyLWNvbmZpZ3VyYXRpb24nKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9wdWxhdGVVc2VyQ29uZmlndXJhdGlvbih0aGlzLmNsaWVudERhdGEpXHJcbiAgICAgICAgICB9IGVsc2VcclxuICAgICAgICAgIGlmIChlLmZvcm0gPT09ICdmb290ZmFsbERpcmVjdG9yeUNvbmZpZ3MnKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9wdWxhdGVGb290ZmFsbENvbmZpZ3VyYXRpb24odGhpcy5jbGllbnREYXRhKVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuYWNjb3JkaW9uLmNvbGxhcHNlQWxsKClcclxuXHJcbiAgfVxyXG5cclxuIGdldERpZmZlcmVudEVudHJpZXMob2JqMTogUmVjb3JkPHN0cmluZywgYW55Piwgb2JqMjogUmVjb3JkPHN0cmluZywgYW55Pik6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xyXG4gICAgY29uc3QgZGlmZmVyZW50RW50cmllczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqMikge1xyXG4gICAgICAgIGlmIChvYmoxLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqMVtrZXldKSAmJiBBcnJheS5pc0FycmF5KG9iajJba2V5XSkpIHtcclxuICAgICAgICAgICAgICAgIGlmIChKU09OLnN0cmluZ2lmeShvYmoxW2tleV0pICE9PSBKU09OLnN0cmluZ2lmeShvYmoyW2tleV0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlmZmVyZW50RW50cmllc1trZXldID0gb2JqMltrZXldO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9iajFba2V5XSAhPT0gb2JqMltrZXldKSB7XHJcbiAgICAgICAgICAgICAgICBkaWZmZXJlbnRFbnRyaWVzW2tleV0gPSBvYmoyW2tleV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGlmZmVyZW50RW50cmllcztcclxufVxyXG5cclxuXHJcblxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb24gI2FjY29yZGlvbj1cIm5nYkFjY29yZGlvblwiIFtjbG9zZU90aGVyc109XCJ0cnVlXCIgW2Rlc3Ryb3lPbkhpZGVdPVwidHJ1ZVwiICAoc2hvdyk9XCJvcGVuSXRlbSgpXCIgPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nIFwiIGNsYXNzPVwic2V0dGluZ3MtYWNjb3JkaWFuLWNhcmQgbWItNiBcIiAgbmdiQWNjb3JkaW9uSXRlbT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nXCIgbmdiQWNjb3JkaW9uQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gPkF1ZGl0IENvbmZpZ3VyYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkNvbGxhcHNlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1hdWRpdC1jb25maWd1cmF0aW9uPjwvbGliLWF1ZGl0LWNvbmZpZ3VyYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgXCIgY2xhc3M9XCJzZXR0aW5ncy1hY2NvcmRpYW4tY2FyZCBtYi02XCIgbmdiQWNjb3JkaW9uSXRlbT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nXCIgbmdiQWNjb3JkaW9uQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gPkVtcGxveWVlIFRyYWluaW5nPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkNvbGxhcHNlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1lbXBsb3llZS10cmFpbmluZz48L2xpYi1lbXBsb3llZS10cmFpbmluZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIiBjbGFzcz1cInNldHRpbmdzLWFjY29yZGlhbi1jYXJkIG1iLTZcIiBuZ2JBY2NvcmRpb25JdGVtPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIG5nYkFjY29yZGlvbkhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmdcIiBuZ2JBY2NvcmRpb25CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiA+VGlja2V0IENvbmZpZ3VyYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkNvbGxhcHNlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi10aWNrZXQtY29uZmlndXJhdGlvbj48L2xpYi10aWNrZXQtY29uZmlndXJhdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzVk1TRW5hYmxlZFVzZXJcIiBjbGFzcz1cInNldHRpbmdzLWFjY29yZGlhbi1jYXJkIG1iLTZcIiBuZ2JBY2NvcmRpb25JdGVtPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCIgY2xhc3M9XCJzZXR0aW5ncy1hY2NvcmRpYW4tY2FyZCBtYi02XCIgbmdiQWNjb3JkaW9uSXRlbT4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgbmdiQWNjb3JkaW9uSGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYWluaGVhZGluZ1wiIG5nYkFjY29yZGlvbkJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuID5Gb290ZmFsbCBEaXJlY3RvcnkgQ29uZmlndXJhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Cb2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWZvb3RmYWxsLWNvbmZpZ3VyYXRpb24+PC9saWItZm9vdGZhbGwtY29uZmlndXJhdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIiBjbGFzcz1cInNldHRpbmdzLWFjY29yZGlhbi1jYXJkIG1iLTZcIiBuZ2JBY2NvcmRpb25JdGVtPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIG5nYkFjY29yZGlvbkhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmdcIiBuZ2JBY2NvcmRpb25CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiA+RW1haWwgQ29uZmlndXJhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Cb2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaWItZW1haWwtY29uZmlndXJhdGlvbj48L2xpYi1lbWFpbC1jb25maWd1cmF0aW9uPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWVtYWlsLXNjaGVkdWxlcj48L2xpYi1lbWFpbC1zY2hlZHVsZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gUmVwb3J0IENvbmZpZ3VyYXRpb24gaXMgdmlzaWJsZSB0byBCT1RIIHRhbmdvIGFuZCBjbGllbnQgbG9naW5zXHJcbiAgICAgICAgICAgICAgICAgKHByb2R1Y3QgcnVsaW5nIDIwMjYtMDktMDEpOyBpbnNpZGUsIGNsaWVudHMgc2VlIG9ubHkgdGhlXHJcbiAgICAgICAgICAgICAgICAgQ3VzdG9tIHRhYiAtLSBzZWUgcmVwb3J0LWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNldHRpbmdzLWFjY29yZGlhbi1jYXJkIG1iLTZcIiBuZ2JBY2NvcmRpb25JdGVtPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIG5nYkFjY29yZGlvbkhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmdcIiBuZ2JBY2NvcmRpb25CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiA+UmVwb3J0IENvbmZpZ3VyYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkNvbGxhcHNlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1yZXBvcnQtY29uZmlndXJhdGlvbj48L2xpYi1yZXBvcnQtY29uZmlndXJhdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIiBjbGFzcz1cInNldHRpbmdzLWFjY29yZGlhbi1jYXJkIG1iLTZcIiBuZ2JBY2NvcmRpb25JdGVtPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIG5nYkFjY29yZGlvbkhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmdcIiBuZ2JBY2NvcmRpb25CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiA+VXNlciBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItdXNlci1jb25maWd1cmF0aW9uPjwvbGliLXVzZXItY29uZmlndXJhdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIiBjbGFzcz1cInNldHRpbmdzLWFjY29yZGlhbi1jYXJkIG1iLTZcIiBuZ2JBY2NvcmRpb25JdGVtPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIG5nYkFjY29yZGlvbkhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmdcIiBuZ2JBY2NvcmRpb25CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiA+RWRnZSBBcHAgQ29uZmlndXJhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Cb2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWVkZ2UtYXBwLWNvbmZpZ3VyYXRpb24+PC9saWItZWRnZS1hcHAtY29uZmlndXJhdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVzZXJSb2xlICE9PSAndXNlcidcIiBjbGFzcz1cInNldHRpbmdzLWFjY29yZGlhbi1jYXJkIG1iLTZcIiAgbmdiQWNjb3JkaW9uSXRlbT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nXCIgbmdiQWNjb3JkaW9uQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gPlNlY3VyaXR5IEZlYXR1cmVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1kb21haW4tZGV0YWlscz48L2xpYi1kb21haW4tZGV0YWlscz4gICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2V0dGluZ3MtYWNjb3JkaWFuLWNhcmQgbWItNlwiIG5nYkFjY29yZGlvbkl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgbmdiQWNjb3JkaW9uSGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYWluaGVhZGluZ1wiIG5nYkFjY29yZGlvbkJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuID5GZWF0dXJlIENvbmZpZ3VyYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkNvbGxhcHNlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1mZWF0dXJlLWNvbmZpZ3VyYXRpb24+PC9saWItZmVhdHVyZS1jb25maWd1cmF0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nXCIgY2xhc3M9XCJzZXR0aW5ncy1hY2NvcmRpYW4tY2FyZCBtYi02XCIgbmdiQWNjb3JkaW9uSXRlbT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nXCIgbmdiQWNjb3JkaW9uQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gPkRhc2hib2FyZCBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItZGFzaGJvYXJkLWNvbmZpZ3VyYXRpb24+PC9saWItZGFzaGJvYXJkLWNvbmZpZ3VyYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSAhPT0gJ3RhbmdvJ1wiIGNsYXNzPVwic2V0dGluZ3MtYWNjb3JkaWFuLWNhcmQgbWItNlwiIG5nYkFjY29yZGlvbkl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgbmdiQWNjb3JkaW9uSGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYWluaGVhZGluZ1wiIG5nYkFjY29yZGlvbkJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuID5Db250cm9sIENlbnRlciBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItY29udHJvbC1jZW50ZXItY29uZmlndXJhdGlvbj48L2xpYi1jb250cm9sLWNlbnRlci1jb25maWd1cmF0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNldHRpbmdzLWFjY29yZGlhbi1jYXJkIG1iLTZcIiBuZ2JBY2NvcmRpb25JdGVtPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIG5nYkFjY29yZGlvbkhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmdcIiBuZ2JBY2NvcmRpb25CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiA+U3RvcmUgVGltZSBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItc3RvcmUtdGltZS1jb25maWd1cmF0aW9uPjwvbGliLXN0b3JlLXRpbWUtY29uZmlndXJhdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzUmV2b3BzXCIgY2xhc3M9XCJzZXR0aW5ncy1hY2NvcmRpYW4tY2FyZCBtYi02XCIgbmdiQWNjb3JkaW9uSXRlbT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nXCIgbmdiQWNjb3JkaW9uQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gPlJldk9wIFRhZyBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLXJldm9wLWNvbmZpZ3VyYXRpb24+PC9saWItcmV2b3AtY29uZmlndXJhdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBab25lIGNvbmZpZ3VhcmF0aW9uIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiem9uZVN1YnNjcmliZWQmJih1c2VyUm9sZSA9PT0gJ2FkbWluJyB8fCB1c2VyUm9sZSA9PT0gJ3N1cGVyYWRtaW4nKSAmJiBcclxuICAgICAgICAgICAgKChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb0V5ZV9ab25lVGFnX2lzQWRkIHx8IChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb0V5ZV9ab25lVGFnX2lzRWRpdClcIiBjbGFzcz1cInNldHRpbmdzLWFjY29yZGlhbi1jYXJkIG1iLTZcIiBuZ2JBY2NvcmRpb25JdGVtPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIG5nYkFjY29yZGlvbkhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmdcIiBuZ2JBY2NvcmRpb25CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiA+Wm9uZSBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLXpvbmUtY29uZmlndXJhdGlvbj48L2xpYi16b25lLWNvbmZpZ3VyYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+Il19
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvY29tcG9uZW50cy9jb25maWd1cmF0aW9ucy9jb25maWd1cmF0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2NvbmZpZ3VyYXRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVExQyxNQUFNLE9BQU8sdUJBQXVCO0lBZ0JkO0lBQXFDO0lBQThCO0lBZnZGLFVBQVUsQ0FBTTtJQUNDLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLHNCQUFzQixDQUFNO0lBQzVCLHVCQUF1QixDQUFNO0lBQzdCLHdCQUF3QixDQUFNO0lBQzlCLHNCQUFzQixDQUFNO0lBQzVCLG9CQUFvQixDQUFNO0lBQzFCLFFBQVEsQ0FBTztJQUNmLGNBQWMsR0FBVyxLQUFLLENBQUE7SUFDWSxTQUFTLENBQU07SUFDekQsZ0JBQWdCLEdBQVksS0FBSyxDQUFDO0lBQ2xDLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFJMUIsWUFBb0IsU0FBMkIsRUFBVSxPQUFxQixFQUFTLEVBQXFCO1FBQXhGLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUFTLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQzFHLE1BQU0sSUFBSSxHQUFPLFlBQVksQ0FBQyxPQUFPLENB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QUVGLG1CQUFtQixDQUFDLElBQXlCLEVBQUUsSUFBeUI7UUFDckUsTUFBTSxnQkFBZ0IsR0FBd0IsRUFBRSxDQUFDO1FBQ2pELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ3RELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO3dCQUN6RCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ3JDO2lCQUNKO3FCQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDaEMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNyQzthQUNKO1NBQ0o7UUFDRCxPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7d0dBbFJZLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLGdMQ1hwQyw0bWJBOFFVOzs0RkRuUUcsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLG9CQUFvQjtpSkFjWSxTQUFTO3NCQUFsRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENsaWVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGllbnQtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY29uZmlndXJhdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maWd1cmF0aW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NvbmZpZ3VyYXRpb25zLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIGNsaWVudERhdGE6IGFueTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICB0aWNrZXRDb25maWdQcmV2VmFsdWVzOiBhbnk7XHJcbiAgZmVhdHVyZUNvbmZpZ1ByZXZWYWx1ZXM6IGFueTtcclxuICBmb290ZmFsbENvbmZpZ1ByZXZWYWx1ZXM6IGFueTtcclxuICBkb21haW5Db25maWdQcmV2VmFsdWVzOiBhbnk7XHJcbiAgdXNlckNvbmZpZ1ByZXZWYWx1ZXM6IGFueTtcclxuICB1c2VyUm9sZTpzdHJpbmdcclxuICB6b25lU3Vic2NyaWJlZDpib29sZWFuID0gZmFsc2VcclxuICBAVmlld0NoaWxkKCdhY2NvcmRpb24nLCB7IHN0YXRpYzogdHJ1ZSB9KSBhY2NvcmRpb246IGFueTtcclxuICBpc1ZNU0VuYWJsZWRVc2VyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNSZXZvcHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNsaWVudEFwaTogQ2xpZW50QXBpU2VydmljZSwgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdFNlcnZpY2UsIHB1YmxpYyBnczpHbG9iYWxTdGF0ZVNlcnZpY2UpIHtcclxuICAgIGNvbnN0IHVzZXI6YW55ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXItaW5mbycpXHJcbiAgICB0aGlzLnVzZXJSb2xlICA9IEpTT04ucGFyc2UodXNlcik/LnJvbGVcclxuICAgIFxyXG4gICAgdGhpcy5jbGllbnRBcGkuY2xpZW50Rm9ybURhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZS50eXBlID09PSAnc3VibWl0Jykge1xyXG4gICAgICAgIHRoaXMuc3VibWl0Rm9ybShlKVxyXG4gICAgICB9IGVsc2UgaWYgKGUudHlwZSA9PT0gJ2NhbmNlbCcpIHtcclxuICAgICAgICB0aGlzLnJlc2V0Rm9ybShlKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuY2xpZW50QXBpLmNsaWVudERhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkge1xyXG4gICAgICAgIHRoaXMuY2xpZW50RGF0YSA9IGVcclxuICAgICAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBDb25maWd1cmF0aW9uc0NvbXBvbmVudCB+IGNvbnN0cnVjdG9yIH4gdGhpcy5jbGllbnREYXRhOlwiLCB0aGlzLmNsaWVudERhdGEucGxhbkRldGFpbHMucHJvZHVjdC5maWx0ZXIoKGVsZTphbnkpPT5lbGUucHJvZHVjdE5hbWU9PT0ndGFuZ29ab25lJykpXHJcbiAgICAgICAgaWYodGhpcy5jbGllbnREYXRhLnBsYW5EZXRhaWxzLnByb2R1Y3QuZmlsdGVyKChlbGU6YW55KT0+ZWxlLnByb2R1Y3ROYW1lPT09J3RhbmdvWm9uZScpLmxlbmd0aD4wKXtcclxuICAgICAgICAgIHRoaXMuem9uZVN1YnNjcmliZWQgPSAgdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnBvcHVsYXRlVGlja2V0Q29uZmlndXJhdGlvbihlKVxyXG4gICAgICAgIHRoaXMucG9wdWxhdGVGZWF0dXJlQ29uZmlndXJhdGlvbihlKVxyXG4gICAgICAgIHRoaXMucG9wdWxhdGVGb290ZmFsbENvbmZpZ3VyYXRpb24oZSlcclxuICAgICAgICB0aGlzLnBvcHVsYXRlRG9tYWluRGV0YWlsQ29uZmlndXJhdGlvbihlKVxyXG4gICAgICAgIHRoaXMucG9wdWxhdGVVc2VyQ29uZmlndXJhdGlvbihlKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBvcGVuSXRlbSgpIHtcclxuICAgIHRoaXMucG9wdWxhdGVUaWNrZXRDb25maWd1cmF0aW9uKHRoaXMuY2xpZW50RGF0YSlcclxuICAgIHRoaXMucG9wdWxhdGVGZWF0dXJlQ29uZmlndXJhdGlvbih0aGlzLmNsaWVudERhdGEpXHJcbiAgICB0aGlzLnBvcHVsYXRlRm9vdGZhbGxDb25maWd1cmF0aW9uKHRoaXMuY2xpZW50RGF0YSlcclxuICAgIHRoaXMucG9wdWxhdGVEb21haW5EZXRhaWxDb25maWd1cmF0aW9uKHRoaXMuY2xpZW50RGF0YSlcclxuICAgIHRoaXMucG9wdWxhdGVVc2VyQ29uZmlndXJhdGlvbih0aGlzLmNsaWVudERhdGEpXHJcbiAgfVxyXG5cclxuICBwb3B1bGF0ZVRpY2tldENvbmZpZ3VyYXRpb24oZGF0YTogYW55KSB7XHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBpbnN0YWxsYXRpb25SZUFzc2lnbjogZGF0YT8udGlja2V0Q29uZmlncz8uaW5zdGFsbGF0aW9uUmVBc3NpZ24sXHJcbiAgICAgIHNlbmRUb0FkbWluOiBkYXRhPy50aWNrZXRDb25maWdzPy5hbGVydFNlbnRUbz8uYWRtaW4sXHJcbiAgICAgIHNlbmRUb1VzZXI6IGRhdGE/LnRpY2tldENvbmZpZ3M/LmFsZXJ0U2VudFRvPy51c2VyLFxyXG4gICAgICBkb3duVGltZVR5cGU6IGRhdGE/LnRpY2tldENvbmZpZ3M/LmRvd25UaW1lVHlwZSxcclxuICAgICAgaW5mcmFEb3duVGltZTogZGF0YT8udGlja2V0Q29uZmlncz8uaW5mcmFEb3duVGltZSxcclxuICAgICAgTWluRmlsZXNDb3VudDogZGF0YT8udGlja2V0Q29uZmlncz8uTWluRmlsZXNDb3VudCxcclxuICAgICAgaXNSY2FUaWNrZXRBc3NpZ246IGRhdGE/LnRpY2tldENvbmZpZ3M/LmlzUmNhVGlja2V0QXNzaWduLFxyXG4gICAgICByY2FUaWNrZXRBc3NpZ246IGRhdGE/LnRpY2tldENvbmZpZ3M/LnJjYVRpY2tldEFzc2lnbixcclxuICAgICAgaXNSZWZyZXNoQWxlcnQ6IGRhdGE/LnRpY2tldENvbmZpZ3M/LmlzUmVmcmVzaEFsZXJ0LFxyXG4gICAgICByZWZyZXNoQWxlcnQ6IGRhdGE/LnRpY2tldENvbmZpZ3M/LnJlZnJlc2hBbGVydCxcclxuICAgICAgaXNTdGF0dXNDaGVja0FsZXJ0OiBkYXRhPy50aWNrZXRDb25maWdzPy5pc1N0YXR1c0NoZWNrQWxlcnQsXHJcbiAgICAgIHN0YXR1c0NoZWNrQWxlcnQ6IGRhdGE/LnRpY2tldENvbmZpZ3M/LnN0YXR1c0NoZWNrQWxlcnQsXHJcbiAgICAgIHJlVHJhaW46IGRhdGE/LnRpY2tldENvbmZpZ3M/LnJlVHJhaW4sXHJcbiAgICAgIGFjY3VyYWN5UGVyY2VudGFnZTogZGF0YT8udGlja2V0Q29uZmlncz8uYWNjdXJhY3lQZXJjZW50YWdlLFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGlja2V0Q29uZmlnUHJldlZhbHVlcyA9IG9ialxyXG5cclxuICAgIHRoaXMuY2xpZW50QXBpLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogeyAuLi5vYmogfSwgdHlwZTogJ2lucHV0JywgZm9ybTogJ3RpY2tldC1jb25maWd1cmF0aW9uJyB9KVxyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVGZWF0dXJlQ29uZmlndXJhdGlvbihkYXRhOiBhbnkpIHtcclxuICAgIGlmIChkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNWTVMpIHRoaXMuaXNWTVNFbmFibGVkVXNlciA9IHRydWU7XHJcbiAgICBlbHNlIHRoaXMuaXNWTVNFbmFibGVkVXNlciA9IGZhbHNlO1xyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgb3BlbjogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/Lm9wZW4sXHJcbiAgICAgIGNsb3NlOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uY2xvc2UsXHJcbiAgICAgIGluZnJhQWxlcnRDb25kaXRpb246IGRhdGE/LmZlYXR1cmVDb25maWdzPy5pbmZyYUFsZXJ0Py5jb25kaXRpb24sXHJcbiAgICAgIGluZnJhQWxlcnRWYWx1ZTogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmluZnJhQWxlcnQ/LnZhbHVlLFxyXG4gICAgICBib3VuY2VkTGltaXRDb25kaXRpb246IGRhdGE/LmZlYXR1cmVDb25maWdzPy5ib3VuY2VkTGltaXQ/LmNvbmRpdGlvbixcclxuICAgICAgYm91bmNlZExpbWl0VmFsdWU6IGRhdGE/LmZlYXR1cmVDb25maWdzPy5ib3VuY2VkTGltaXQ/LnZhbHVlLFxyXG4gICAgICBjb252ZXJzaW9uQ29uZGl0aW9uOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uY29udmVyc2lvbj8uY29uZGl0aW9uLFxyXG4gICAgICBjb252ZXJzaW9uVmFsdWU6IGRhdGE/LmZlYXR1cmVDb25maWdzPy5jb252ZXJzaW9uPy52YWx1ZSxcclxuICAgICAgYmlsbGFibGVDYWxjdWxhdGlvbjogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmJpbGxhYmxlQ2FsY3VsYXRpb24sXHJcbiAgICAgIG1pc3NlZE9wcG9ydHVuaXR5Q2FsY3VsYXRpb246IGRhdGE/LmZlYXR1cmVDb25maWdzPy5taXNzZWRPcHBvcnR1bml0eUNhbGN1bGF0aW9uLFxyXG4gICAgICBjb252ZXJzaW9uQ2FsY3VsYXRpb246IGRhdGE/LmZlYXR1cmVDb25maWdzPy5jb252ZXJzaW9uQ2FsY3VsYXRpb24sXHJcbiAgICAgIGR3ZWxsVGltZUNhbGN1bGF0aW9uOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uZHdlbGxUaW1lQ2FsY3VsYXRpb24sXHJcbiAgICAgIGlzTm9ybWFsaXplZDogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzTm9ybWFsaXplZCxcclxuICAgICAgaXNQYXNzZXJCeURhdGE6IGRhdGE/LmZlYXR1cmVDb25maWdzPy5pc1Bhc3NlckJ5RGF0YSxcclxuICAgICAgaXNGb290ZmFsbERpcmVjdG9yeTogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzRm9vdGZhbGxEaXJlY3RvcnksXHJcbiAgICAgIGlzRm9vdGZhbGxEaXJlY3Rvcnlvbmx5VGFuZ286IGRhdGE/LmZlYXR1cmVDb25maWdzPy5pc0Zvb3RmYWxsRGlyZWN0b3J5b25seVRhbmdvLFxyXG4gICAgICBpc1ZNUzogZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzVk1TLFxyXG4gICAgICBpc0Zvb3RmYWxsRGlyZWN0b3J5QXVkaXQgOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNGb290ZmFsbERpcmVjdG9yeUF1ZGl0LFxyXG4gICAgICBpc0Zvb3RmYWxsRGlyZWN0b3J5TGltaXQgOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNGb290ZmFsbERpcmVjdG9yeUxpbWl0LFxyXG4gICAgICBpc0V4Y2x1ZGVkQXJlYTpkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNFeGNsdWRlZEFyZWEsXHJcbiAgICAgIGlzQ2FtZXJhRGlzYWJsZWQ6IGRhdGE/LmZlYXR1cmVDb25maWdzPy5pc0NhbWVyYURpc2FibGVkLFxyXG4gICAgICBpc2JpbGxpbmdEaXNhYmxlZDpkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNiaWxsaW5nRGlzYWJsZWQsXHJcbiAgICAgIGlzTmV3RGFzaGJvYXJkOmRhdGE/LmZlYXR1cmVDb25maWdzPy5pc05ld0Rhc2hib2FyZCxcclxuICAgICAgdXBkYXRlRmVhdHVyZUNvbmZpZzpkYXRhPy5mZWF0dXJlQ29uZmlncz8udXBkYXRlRmVhdHVyZUNvbmZpZyxcclxuICAgICAgaXNGb290ZmFsbEF1ZGl0U3RvcmVzOmRhdGE/LmZlYXR1cmVDb25maWdzPy5pc0Zvb3RmYWxsQXVkaXRTdG9yZXMsXHJcbiAgICAgIGlzTmV3VHJhZmZpYzpkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNOZXdUcmFmZmljLFxyXG4gICAgICBpc05ld1pvbmU6ZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzTmV3Wm9uZSxcclxuICAgICAgaXNOZXdSZXBvcnRzOmRhdGE/LmZlYXR1cmVDb25maWdzPy5pc05ld1JlcG9ydHMsXHJcbiAgICAgIGlzTmV3Wm9uZVYyOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNOZXdab25lVjIsXHJcbiAgICAgIGlzUmV2b3BzOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNSZXZvcHMsXHJcbiAgICAgIGlzTk9COiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNOT0IsXHJcbiAgICAgIGlzWm9uZXdpc2VOT0IgOiBkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNab25ld2lzZU5PQixcclxuICAgICAgaXNUcmF4OmRhdGE/LmZlYXR1cmVDb25maWdzPy5pc1RyYXgsXHJcbiAgICAgIGlzQ29udHJvbENlbnRlcjpkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNDb250cm9sQ2VudGVyLFxyXG4gICAgICBzdHJlYW1CeTpkYXRhPy5mZWF0dXJlQ29uZmlncz8uc3RyZWFtQnksXHJcbiAgICAgIGlzQ2FtZXJhRWRpdDpkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNDYW1lcmFFZGl0LFxyXG4gICAgICBpc0FJTWFuYWdlcjpkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNBSU1hbmFnZXIsXHJcbiAgICAgIGlzQUlNYW5hZ2VyQWNjZXNzQ29udHJvbDpkYXRhPy5mZWF0dXJlQ29uZmlncz8uaXNBSU1hbmFnZXJBY2Nlc3NDb250cm9sLFxyXG4gICAgICBsb2dpblNTTzpkYXRhPy5mZWF0dXJlQ29uZmlncz8ubG9naW5TU09cclxuICAgIH0gXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWdQcmV2VmFsdWVzID0gb2JqXHJcbiAgICB0aGlzLmlzUmV2b3BzID0gZGF0YT8uZmVhdHVyZUNvbmZpZ3M/LmlzUmV2b3BzID09PSB0cnVlO1xyXG4gICAgdGhpcy5jbGllbnRBcGkuY2xpZW50Rm9ybURhdGEubmV4dCh7IHZhbHVlOiB7IC4uLm9iaiB9LCB0eXBlOiAnaW5wdXQnLCBmb3JtOiAnZmVhdHVyZS1jb25maWd1cmF0aW9uJyB9KVxyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJjbGllbnQtZGV0YWlsc1wiLCBKU09OLnN0cmluZ2lmeShkYXRhPy5mZWF0dXJlQ29uZmlncykpO1xyXG4gICAgdGhpcy5ncy5zZWxlY3RlZENsaWVudC5uZXh0KGRhdGE/LmZlYXR1cmVDb25maWdzKTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlRm9vdGZhbGxDb25maWd1cmF0aW9uKGRhdGE6IGFueSkge1xyXG4gICAgaWYgKCFkYXRhPy5mb290ZmFsbERpcmVjdG9yeUNvbmZpZ3MpIHJldHVybjtcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIGFsbG93VGlja2V0Q3JlYXRpb246IGRhdGE/LmZvb3RmYWxsRGlyZWN0b3J5Q29uZmlncz8uYWxsb3dUaWNrZXRDcmVhdGlvbiA/PyAzLFxyXG4gICAgICBpc0F1dG9DbG9zZUVuYWJsZTogZGF0YT8uZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzPy5pc0F1dG9DbG9zZUVuYWJsZSxcclxuICAgICAgYXV0b0Nsb3NlQWNjdXJhY3k6IGRhdGE/LmZvb3RmYWxsRGlyZWN0b3J5Q29uZmlncz8uYXV0b0Nsb3NlQWNjdXJhY3kgPz8gJzk1JScsXHJcbiAgICAgIHRhbmdvUmV2aWV3OiBkYXRhPy5mb290ZmFsbERpcmVjdG9yeUNvbmZpZ3M/LnRhbmdvUmV2aWV3ID8/ICc4NSUnLFxyXG4gICAgICBvdmVyYWxsTGltaXRhdGlvbjogZGF0YT8uZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzPy5vdmVyYWxsTGltaXRhdGlvbiA/PyAnJyxcclxuICAgICAgYWNjdXJhY3lCcmVhY2g6ICBkYXRhLmZvb3RmYWxsRGlyZWN0b3J5Q29uZmlncz8uYWNjdXJhY3lCcmVhY2ggfHwge30sXHJcbiAgICAgIHJldmlzaW9uOiBkYXRhPy5mb290ZmFsbERpcmVjdG9yeUNvbmZpZ3M/LnJldmlzaW9uID8/IFtdLFxyXG4gICAgICB0YWdnaW5nTGltaXRhdGlvbjogZGF0YT8uZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzPy50YWdnaW5nTGltaXRhdGlvbiA/PyBbXSxcclxuICAgICAgc3RvcmVMaXN0OiBkYXRhPy5mb290ZmFsbERpcmVjdG9yeUNvbmZpZ3M/LnN0b3JlTGlzdCA/PyBkYXRhPy5mb290ZmFsbERpcmVjdG9yeUNvbmZpZ3M/LmFjY3VyYWN5QnJlYWNoPy5zdG9yZUxpc3QgPz8gW11cclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLmZvb3RmYWxsQ29uZmlnUHJldlZhbHVlcyA9IG9iajtcclxuICAgIHRoaXMuY2xpZW50QXBpLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogeyAuLi5vYmogfSwgdHlwZTogJ2lucHV0JywgZm9ybTogJ2Zvb3RmYWxsRGlyZWN0b3J5Q29uZmlncycgfSlcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiZm9vdGZhbGwtY29uZmlnXCIsIEpTT04uc3RyaW5naWZ5KG9iaikpO1xyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVEb21haW5EZXRhaWxDb25maWd1cmF0aW9uKGRhdGE6IGFueSkge1xyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgZG9tYWluTmFtZTogZGF0YT8uZG9tYWluQ29uZmlnPy5zc29Mb2dpbj8uZG9tYWluTmFtZSxcclxuICAgICAgaXNFbmFibGU6IGRhdGE/LmRvbWFpbkNvbmZpZz8uc3NvTG9naW4/LmlzRW5hYmxlLFxyXG4gICAgICBlbmFibGVXaGl0ZWxpc3Rpbmc6IGRhdGE/LmRvbWFpbkNvbmZpZz8uaXBXaGl0ZWxpc3Rpbmc/LmVuYWJsZVdoaXRlbGlzdGluZyxcclxuICAgICAgYWxsb3dlZElwczogZGF0YT8uZG9tYWluQ29uZmlnPy5pcFdoaXRlbGlzdGluZz8uYWxsb3dlZElwcyxcclxuICAgICAgZW5hYmxlT3RwOiBkYXRhPy5kb21haW5Db25maWc/LmVuYWJsZU90cCxcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRvbWFpbkNvbmZpZ1ByZXZWYWx1ZXMgPSBvYmpcclxuXHJcbiAgICB0aGlzLmNsaWVudEFwaS5jbGllbnRGb3JtRGF0YS5uZXh0KHsgdmFsdWU6IHsgLi4ub2JqIH0sIHR5cGU6ICdpbnB1dCcsIGZvcm06ICdkb21haW4tZGV0YWlscycgfSlcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVVc2VyQ29uZmlndXJhdGlvbihkYXRhOiBhbnkpIHtcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIGNzbTogZGF0YT8uYXNzaWduZWRVc2Vycz8uY3NtLFxyXG4gICAgICBvcHM6IGRhdGE/LmFzc2lnbmVkVXNlcnM/Lm9wcyxcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVzZXJDb25maWdQcmV2VmFsdWVzID0gb2JqXHJcblxyXG4gICAgdGhpcy5jbGllbnRBcGkuY2xpZW50Rm9ybURhdGEubmV4dCh7IHZhbHVlOiB7IC4uLm9iaiB9LCB0eXBlOiAnaW5wdXQnLCBmb3JtOiAndXNlci1jb25maWd1cmF0aW9uJyB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxuICBzdWJtaXRGb3JtKGU6IGFueSkge1xyXG4gICAgaWYgKGUuZm9ybSA9PT0gJ3RpY2tldC1jb25maWd1cmF0aW9uJykge1xyXG4gICAgICBjb25zdCBkYXRhID0gIHRoaXMuZ2V0RGlmZmVyZW50RW50cmllcyh0aGlzLnRpY2tldENvbmZpZ1ByZXZWYWx1ZXMsIGUudmFsdWUpICAgICBcclxuICAgICAgdGhpcy5jbGllbnRBcGkudXBkYXRlVGlja2V0Q29uZmlndXJhdGlvbih0aGlzLmNsaWVudERhdGEuY2xpZW50SWQsIGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0U3VjY2Vzc1RvYXN0KGUuZGF0YT8ucmVzdWx0KVxyXG4gICAgICAgICAgdGhpcy5jbGllbnRBcGkuY2xpZW50Rm9ybURhdGEubmV4dCh7IHZhbHVlOiBudWxsLCB0eXBlOiAnc3VibWl0dGVkJywgZm9ybTogJ251bGwnIH0pXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGUpID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3Rlci5nZXRFcnJvclRvYXN0KGUuZXJyb3I/LmVycm9yKVxyXG4gICAgICAgICAgdGhpcy5wb3B1bGF0ZVRpY2tldENvbmZpZ3VyYXRpb24odGhpcy5jbGllbnREYXRhKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuXHJcbiAgICB9IGVsc2VcclxuICAgICAgaWYgKGUuZm9ybSA9PT0gJ2ZlYXR1cmUtY29uZmlndXJhdGlvbicpIHtcclxuICAgICAgICBjb25zdCBkYXRhID0gIHRoaXMuZ2V0RGlmZmVyZW50RW50cmllcyh0aGlzLmZlYXR1cmVDb25maWdQcmV2VmFsdWVzLCBlLnZhbHVlKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGRhdGEpXHJcbiAgICAgICAgdGhpcy5jbGllbnRBcGkudXBkYXRlRmVhdHVyZUNvbmZpZ3VyYXRpb24odGhpcy5jbGllbnREYXRhLmNsaWVudElkLCBkYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3Rlci5nZXRTdWNjZXNzVG9hc3QoZS5kYXRhPy5yZXN1bHQpXHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50QXBpLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogbnVsbCwgdHlwZTogJ3N1Ym1pdHRlZCcsIGZvcm06ICdudWxsJyB9KVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0RXJyb3JUb2FzdChlLmVycm9yPy5lcnJvcilcclxuICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZUZlYXR1cmVDb25maWd1cmF0aW9uKHRoaXMuY2xpZW50RGF0YSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG5cclxuICAgICAgfSBlbHNlXHJcbiAgICAgICAgaWYgKGUuZm9ybSA9PT0gJ2RvbWFpbi1kZXRhaWxzJykge1xyXG4gICAgICAgICAgY29uc3QgZGF0YSA9ICB0aGlzLmdldERpZmZlcmVudEVudHJpZXModGhpcy5kb21haW5Db25maWdQcmV2VmFsdWVzLCBlLnZhbHVlKSAgICAgXHJcbiAgICAgICAgICB0aGlzLmNsaWVudEFwaS51cGRhdGVEb21haW5EZXRhaWxDb25maWd1cmF0aW9uKHRoaXMuY2xpZW50RGF0YS5jbGllbnRJZCwgZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldFN1Y2Nlc3NUb2FzdChlLmRhdGE/LnJlc3VsdClcclxuICAgICAgICAgICAgICB0aGlzLmNsaWVudEFwaS5jbGllbnRGb3JtRGF0YS5uZXh0KHsgdmFsdWU6IG51bGwsIHR5cGU6ICdzdWJtaXR0ZWQnLCBmb3JtOiAnbnVsbCcgfSlcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoZS5lcnJvcj8uZXJyb3IpXHJcbiAgICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZURvbWFpbkRldGFpbENvbmZpZ3VyYXRpb24odGhpcy5jbGllbnREYXRhKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKGUuZm9ybSA9PT0gJ2Zvb3RmYWxsRGlyZWN0b3J5Q29uZmlncycpIHtcclxuICAgICAgICAgIC8vIGNvbnN0IGRhdGEgPSB0aGlzLmdldERpZmZlcmVudEVudHJpZXModGhpcy5mb290ZmFsbENvbmZpZ1ByZXZWYWx1ZXMsIGUudmFsdWUpO1xyXG4gICAgICAgICAgY29uc3QgZGF0YSA9IGUudmFsdWU7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygndXBkYXRlIGZvb3RmYWxsIGNvbmZpZyBqc29uID09PicsIGRhdGEpXHJcbiAgICAgICAgICB0aGlzLmNsaWVudEFwaS51cGRhdGVGb290ZmFsbERpcmVjdG9yeUNvbmZpZyh0aGlzLmNsaWVudERhdGEuY2xpZW50SWQsIGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5nZXRTdWNjZXNzVG9hc3QoJ0Zvb3RmYWxsIGNvbmZpZ3VyYXRpb24gZGV0YWlscyB1cGRhdGVkIHN1Y2Nlc3NmdWxseS4nKVxyXG4gICAgICAgICAgICAgIHRoaXMuY2xpZW50QXBpLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogbnVsbCwgdHlwZTogJ3N1Ym1pdHRlZCcsIGZvcm06ICdudWxsJyB9KVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogKGUpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0RXJyb3JUb2FzdChlLmVycm9yPy5lcnJvcilcclxuICAgICAgICAgICAgICB0aGlzLnBvcHVsYXRlRm9vdGZhbGxDb25maWd1cmF0aW9uKHRoaXMuY2xpZW50RGF0YSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcmVzZXRGb3JtKGU6IGFueSkge1xyXG4gICAgaWYgKGUuZm9ybSA9PT0gJ3RpY2tldC1jb25maWd1cmF0aW9uJykge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlVGlja2V0Q29uZmlndXJhdGlvbih0aGlzLmNsaWVudERhdGEpXHJcbiAgICB9IGVsc2VcclxuICAgICAgaWYgKGUuZm9ybSA9PT0gJ2ZlYXR1cmUtY29uZmlndXJhdGlvbicpIHtcclxuICAgICAgICB0aGlzLnBvcHVsYXRlRmVhdHVyZUNvbmZpZ3VyYXRpb24odGhpcy5jbGllbnREYXRhKVxyXG4gICAgICB9IGVsc2VcclxuICAgICAgICBpZiAoZS5mb3JtID09PSAnZG9tYWluLWRldGFpbHMnKSB7XHJcbiAgICAgICAgICB0aGlzLnBvcHVsYXRlRG9tYWluRGV0YWlsQ29uZmlndXJhdGlvbih0aGlzLmNsaWVudERhdGEpXHJcbiAgICAgICAgfSBlbHNlXHJcbiAgICAgICAgICBpZiAoZS5mb3JtID09PSAndXNlci1jb25maWd1cmF0aW9uJykge1xyXG4gICAgICAgICAgICB0aGlzLnBvcHVsYXRlVXNlckNvbmZpZ3VyYXRpb24odGhpcy5jbGllbnREYXRhKVxyXG4gICAgICAgICAgfSBlbHNlXHJcbiAgICAgICAgICBpZiAoZS5mb3JtID09PSAnZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzJykge1xyXG4gICAgICAgICAgICB0aGlzLnBvcHVsYXRlRm9vdGZhbGxDb25maWd1cmF0aW9uKHRoaXMuY2xpZW50RGF0YSlcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLmFjY29yZGlvbi5jb2xsYXBzZUFsbCgpXHJcblxyXG4gIH1cclxuXHJcbiBnZXREaWZmZXJlbnRFbnRyaWVzKG9iajE6IFJlY29yZDxzdHJpbmcsIGFueT4sIG9iajI6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcclxuICAgIGNvbnN0IGRpZmZlcmVudEVudHJpZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIG9iajIpIHtcclxuICAgICAgICBpZiAob2JqMS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iajFba2V5XSkgJiYgQXJyYXkuaXNBcnJheShvYmoyW2tleV0pKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkob2JqMVtrZXldKSAhPT0gSlNPTi5zdHJpbmdpZnkob2JqMltrZXldKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpZmZlcmVudEVudHJpZXNba2V5XSA9IG9iajJba2V5XTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChvYmoxW2tleV0gIT09IG9iajJba2V5XSkge1xyXG4gICAgICAgICAgICAgICAgZGlmZmVyZW50RW50cmllc1trZXldID0gb2JqMltrZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRpZmZlcmVudEVudHJpZXM7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uICNhY2NvcmRpb249XCJuZ2JBY2NvcmRpb25cIiBbY2xvc2VPdGhlcnNdPVwidHJ1ZVwiIFtkZXN0cm95T25IaWRlXT1cInRydWVcIiAgKHNob3cpPVwib3Blbkl0ZW0oKVwiID5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIiBjbGFzcz1cInNldHRpbmdzLWFjY29yZGlhbi1jYXJkIG1iLTYgXCIgIG5nYkFjY29yZGlvbkl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgbmdiQWNjb3JkaW9uSGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYWluaGVhZGluZ1wiIG5nYkFjY29yZGlvbkJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuID5BdWRpdCBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItYXVkaXQtY29uZmlndXJhdGlvbj48L2xpYi1hdWRpdC1jb25maWd1cmF0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nIFwiIGNsYXNzPVwic2V0dGluZ3MtYWNjb3JkaWFuLWNhcmQgbWItNlwiIG5nYkFjY29yZGlvbkl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgbmdiQWNjb3JkaW9uSGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYWluaGVhZGluZ1wiIG5nYkFjY29yZGlvbkJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuID5FbXBsb3llZSBUcmFpbmluZzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItZW1wbG95ZWUtdHJhaW5pbmc+PC9saWItZW1wbG95ZWUtdHJhaW5pbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgXCIgY2xhc3M9XCJzZXR0aW5ncy1hY2NvcmRpYW4tY2FyZCBtYi02XCIgbmdiQWNjb3JkaW9uSXRlbT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nXCIgbmdiQWNjb3JkaW9uQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gPlRpY2tldCBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItdGlja2V0LWNvbmZpZ3VyYXRpb24+PC9saWItdGlja2V0LWNvbmZpZ3VyYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1ZNU0VuYWJsZWRVc2VyXCIgY2xhc3M9XCJzZXR0aW5ncy1hY2NvcmRpYW4tY2FyZCBtYi02XCIgbmdiQWNjb3JkaW9uSXRlbT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiIGNsYXNzPVwic2V0dGluZ3MtYWNjb3JkaWFuLWNhcmQgbWItNlwiIG5nYkFjY29yZGlvbkl0ZW0+IC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIG5nYkFjY29yZGlvbkhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmdcIiBuZ2JBY2NvcmRpb25CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiA+Rm9vdGZhbGwgRGlyZWN0b3J5IENvbmZpZ3VyYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkNvbGxhcHNlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1mb290ZmFsbC1jb25maWd1cmF0aW9uPjwvbGliLWZvb3RmYWxsLWNvbmZpZ3VyYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgXCIgY2xhc3M9XCJzZXR0aW5ncy1hY2NvcmRpYW4tY2FyZCBtYi02XCIgbmdiQWNjb3JkaW9uSXRlbT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nXCIgbmdiQWNjb3JkaW9uQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gPkVtYWlsIENvbmZpZ3VyYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkNvbGxhcHNlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGliLWVtYWlsLWNvbmZpZ3VyYXRpb24+PC9saWItZW1haWwtY29uZmlndXJhdGlvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1lbWFpbC1zY2hlZHVsZXI+PC9saWItZW1haWwtc2NoZWR1bGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIFJlcG9ydCBDb25maWd1cmF0aW9uIGlzIHZpc2libGUgdG8gQk9USCB0YW5nbyBhbmQgY2xpZW50IGxvZ2luc1xyXG4gICAgICAgICAgICAgICAgIChwcm9kdWN0IHJ1bGluZyAyMDI2LTA5LTAxKTsgaW5zaWRlLCBjbGllbnRzIHNlZSBvbmx5IHRoZVxyXG4gICAgICAgICAgICAgICAgIEN1c3RvbSB0YWIgLS0gc2VlIHJlcG9ydC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC4gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5ncy1hY2NvcmRpYW4tY2FyZCBtYi02XCIgbmdiQWNjb3JkaW9uSXRlbT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nXCIgbmdiQWNjb3JkaW9uQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gPlJlcG9ydCBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcmVwb3J0LWNvbmZpZ3VyYXRpb24+PC9saWItcmVwb3J0LWNvbmZpZ3VyYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgXCIgY2xhc3M9XCJzZXR0aW5ncy1hY2NvcmRpYW4tY2FyZCBtYi02XCIgbmdiQWNjb3JkaW9uSXRlbT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nXCIgbmdiQWNjb3JkaW9uQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gPlVzZXIgQ29uZmlndXJhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Cb2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLXVzZXItY29uZmlndXJhdGlvbj48L2xpYi11c2VyLWNvbmZpZ3VyYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgXCIgY2xhc3M9XCJzZXR0aW5ncy1hY2NvcmRpYW4tY2FyZCBtYi02XCIgbmdiQWNjb3JkaW9uSXRlbT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nXCIgbmdiQWNjb3JkaW9uQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gPkVkZ2UgQXBwIENvbmZpZ3VyYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkNvbGxhcHNlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQm9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1lZGdlLWFwcC1jb25maWd1cmF0aW9uPjwvbGliLWVkZ2UtYXBwLWNvbmZpZ3VyYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VyUm9sZSAhPT0gJ3VzZXInXCIgY2xhc3M9XCJzZXR0aW5ncy1hY2NvcmRpYW4tY2FyZCBtYi02XCIgIG5nYkFjY29yZGlvbkl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgbmdiQWNjb3JkaW9uSGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYWluaGVhZGluZ1wiIG5nYkFjY29yZGlvbkJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuID5TZWN1cml0eSBGZWF0dXJlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Cb2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItZG9tYWluLWRldGFpbHM+PC9saWItZG9tYWluLWRldGFpbHM+ICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNldHRpbmdzLWFjY29yZGlhbi1jYXJkIG1iLTZcIiBuZ2JBY2NvcmRpb25JdGVtPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIG5nYkFjY29yZGlvbkhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmdcIiBuZ2JBY2NvcmRpb25CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiA+RmVhdHVyZSBDb25maWd1cmF0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Db2xsYXBzZT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItZmVhdHVyZS1jb25maWd1cmF0aW9uPjwvbGliLWZlYXR1cmUtY29uZmlndXJhdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiIGNsYXNzPVwic2V0dGluZ3MtYWNjb3JkaWFuLWNhcmQgbWItNlwiIG5nYkFjY29yZGlvbkl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgbmdiQWNjb3JkaW9uSGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYWluaGVhZGluZ1wiIG5nYkFjY29yZGlvbkJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuID5EYXNoYm9hcmQgQ29uZmlndXJhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Cb2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWRhc2hib2FyZC1jb25maWd1cmF0aW9uPjwvbGliLWRhc2hib2FyZC1jb25maWd1cmF0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgIT09ICd0YW5nbydcIiBjbGFzcz1cInNldHRpbmdzLWFjY29yZGlhbi1jYXJkIG1iLTZcIiBuZ2JBY2NvcmRpb25JdGVtPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIG5nYkFjY29yZGlvbkhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmdcIiBuZ2JBY2NvcmRpb25CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiA+Q29udHJvbCBDZW50ZXIgQ29uZmlndXJhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Cb2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNvbnRyb2wtY2VudGVyLWNvbmZpZ3VyYXRpb24+PC9saWItY29udHJvbC1jZW50ZXItY29uZmlndXJhdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5ncy1hY2NvcmRpYW4tY2FyZCBtYi02XCIgbmdiQWNjb3JkaW9uSXRlbT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nXCIgbmdiQWNjb3JkaW9uQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gPlN0b3JlIFRpbWUgQ29uZmlndXJhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Cb2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLXN0b3JlLXRpbWUtY29uZmlndXJhdGlvbj48L2xpYi1zdG9yZS10aW1lLWNvbmZpZ3VyYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Jldm9wc1wiIGNsYXNzPVwic2V0dGluZ3MtYWNjb3JkaWFuLWNhcmQgbWItNlwiIG5nYkFjY29yZGlvbkl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgbmdiQWNjb3JkaW9uSGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYWluaGVhZGluZ1wiIG5nYkFjY29yZGlvbkJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuID5SZXZPcCBUYWcgQ29uZmlndXJhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Cb2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1yZXZvcC1jb25maWd1cmF0aW9uPjwvbGliLXJldm9wLWNvbmZpZ3VyYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gWm9uZSBjb25maWd1YXJhdGlvbiAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInpvbmVTdWJzY3JpYmVkJiYodXNlclJvbGUgPT09ICdhZG1pbicgfHwgdXNlclJvbGUgPT09ICdzdXBlcmFkbWluJykgJiYgXHJcbiAgICAgICAgICAgICgoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29FeWVfWm9uZVRhZ19pc0FkZCB8fCAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29FeWVfWm9uZVRhZ19pc0VkaXQpXCIgY2xhc3M9XCJzZXR0aW5ncy1hY2NvcmRpYW4tY2FyZCBtYi02XCIgbmdiQWNjb3JkaW9uSXRlbT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBuZ2JBY2NvcmRpb25IZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nXCIgbmdiQWNjb3JkaW9uQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gPlpvbmUgQ29uZmlndXJhdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Cb2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi16b25lLWNvbmZpZ3VyYXRpb24+PC9saWItem9uZS1jb25maWd1cmF0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PiJdfQ==
|