@bnsights/bbsf-admin-portal 1.0.69 → 1.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/bnsights-bbsf-admin-portal-1.0.70.tgz +0 -0
- package/bundles/bnsights-bbsf-admin-portal.umd.js +60 -44
- package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
- package/esm2015/lib/Pages/impersonation-rules/impersonation-rules.module.js +3 -3
- package/esm2015/lib/Pages/jobs/jobs.module.js +3 -3
- package/esm2015/lib/Pages/lookups/lookup-item/lookup-item.component.js +3 -3
- package/esm2015/lib/Pages/notifications/add/add.component.js +1 -6
- package/esm2015/lib/Pages/notifications/master-layouts/master-layouts.component.js +2 -2
- package/esm2015/lib/Pages/notifications/template-info/template-info.component.js +8 -3
- package/esm2015/lib/Pages/notifications/templates/templates.component.js +2 -4
- package/esm2015/lib/Pages/publicHolidays/public-holiday/public-holiday.component.js +1 -3
- package/esm2015/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.js +2 -2
- package/esm2015/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.js +2 -2
- package/esm2015/lib/Pages/shared/components/survey/survey-info/survey-info.component.js +27 -1
- package/esm2015/lib/Pages/workflows/tabs/tabs.component.js +2 -2
- package/esm2015/lib/Pages/workflows/workflow/workflow.component.js +1 -2
- package/fesm2015/bnsights-bbsf-admin-portal.js +60 -44
- package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
- package/lib/Pages/notifications/template-info/template-info.component.d.ts +1 -0
- package/package.json +1 -1
- package/src/lib/assets/sass/custom-styles.scss +1 -7
- package/bnsights-bbsf-admin-portal-1.0.69.tgz +0 -0
|
@@ -183,6 +183,19 @@ export class SurveyInfoComponent extends AppBaseComponent {
|
|
|
183
183
|
// Add legend
|
|
184
184
|
let legend = chart.children.push(am5.Legend.new(root, {}));
|
|
185
185
|
legend.data.push(series1);
|
|
186
|
+
if (!this.EN) {
|
|
187
|
+
legend.labels.template.setAll({
|
|
188
|
+
textAlign: 'right',
|
|
189
|
+
x: 50,
|
|
190
|
+
});
|
|
191
|
+
legend.valueLabels.template.setAll({
|
|
192
|
+
textAlign: "right",
|
|
193
|
+
paddingRight: 15
|
|
194
|
+
});
|
|
195
|
+
legend.itemContainers.template.setAll({
|
|
196
|
+
reverseChildren: true,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
186
199
|
this.root = root;
|
|
187
200
|
});
|
|
188
201
|
// //chart overview
|
|
@@ -234,6 +247,19 @@ export class SurveyInfoComponent extends AppBaseComponent {
|
|
|
234
247
|
// Add legend
|
|
235
248
|
let legend = chart.children.push(am5.Legend.new(root, {}));
|
|
236
249
|
legend.data.setAll(chart.series.values);
|
|
250
|
+
if (!this.EN) {
|
|
251
|
+
legend.labels.template.setAll({
|
|
252
|
+
textAlign: 'right',
|
|
253
|
+
x: 50,
|
|
254
|
+
});
|
|
255
|
+
legend.valueLabels.template.setAll({
|
|
256
|
+
textAlign: "right",
|
|
257
|
+
paddingRight: 15
|
|
258
|
+
});
|
|
259
|
+
legend.itemContainers.template.setAll({
|
|
260
|
+
reverseChildren: true,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
237
263
|
this.root = root;
|
|
238
264
|
});
|
|
239
265
|
}
|
|
@@ -469,4 +495,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImpo
|
|
|
469
495
|
type: ViewChild,
|
|
470
496
|
args: ['pagingSubmissionViewElement', { static: false }]
|
|
471
497
|
}] } });
|
|
472
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWluZm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vc3VydmV5LWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vc3VydmV5LWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUE0QixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBbUIsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hPLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxrQkFBa0IsTUFBTSxxQ0FBcUMsQ0FBQztBQU9yRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWXhGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxnQkFBZ0I7SUF5RHZELFlBQW9CLFFBQWtCLEVBQStCLFVBQVUsRUFBVSxJQUFZLEVBQVUsTUFBYyxFQUNqSCxtQkFBd0MsRUFBVSxhQUE0QixFQUFVLHFCQUE0QyxFQUFVLGNBQThCO1FBQ3RMLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZFLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBK0IsZUFBVSxHQUFWLFVBQVUsQ0FBQTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2pILHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF2RHhMLGVBQVUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQWUvQixZQUFPLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQU1sQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ25CLHFCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQ3BDLHFCQUFnQixHQUFHLFlBQVksQ0FBQztRQUN2QyxvQkFBZSxHQUF3QixFQUFFLENBQUM7UUFDMUMsbUJBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBQ25ELHdCQUFtQixHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLGtCQUFhLEdBQVksS0FBSyxDQUFBO1FBRzlCLHlCQUFvQixHQUFVLEVBQUUsQ0FBQztRQVdqQyxvQkFBb0I7UUFDcEIsMEJBQXFCLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFMUMsMkJBQXNCLEdBQVUsRUFBRSxDQUFDO1FBc1BuQyxrQkFBYSxHQUFHLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFBO1FBQ0Qsb0JBQWUsR0FBRyxHQUFHLEVBQUU7WUFDckIsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFckUsQ0FBQyxDQUFBO1FBU0QsNEJBQXVCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsc0NBQXNDLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWxFLENBQUMsQ0FBQTtRQUNELHFCQUFnQixHQUFHLEdBQUcsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRTlFLENBQUMsQ0FBQTtRQUNELHVCQUFrQixHQUFHLEdBQUcsRUFBRTtZQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTlELENBQUMsQ0FBQTtRQVVELGtCQUFhLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDO1FBQzdILENBQUMsQ0FBQTtRQUNELGVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDLENBQUM7UUFDcEcsQ0FBQyxDQUFBO1FBa0ZELHFCQUFnQixHQUFHLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzdDLENBQUMsQ0FBQTtRQUVELDJCQUFzQixHQUFHLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUE7UUFFRCxnQ0FBMkIsR0FBRyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25GLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3QyxDQUFDLENBQUE7UUFDRCxpQ0FBNEIsR0FBRyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQzlDLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3QyxDQUFDLENBQUE7UUFFRCxtQ0FBOEIsR0FBRyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQ2hELElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3QyxDQUFDLENBQUE7UUFJRCw4QkFBeUIsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFcEUsQ0FBQyxDQUFBO1FBQ0QsaUNBQTRCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsMkNBQTJDLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUUsQ0FBQyxDQUFBO1FBQ0QsbUNBQThCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsNkNBQTZDLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUUsQ0FBQyxDQUFBO1FBQ0QscUNBQWdDLEdBQUcsQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNyRixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUE7UUFxREQsV0FBTSxHQUFHLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxhQUFhO2lCQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2lCQUNyQixTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBRSxNQUFzQixFQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDbkUsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUE7UUF2Y0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELHVDQUF1QztJQUN2QyxXQUFXLENBQUMsQ0FBYTtRQUN2QixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDL0IsQ0FBQyxFQUFFLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELGVBQWU7SUFFZixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBSztRQUNwQixHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2pELElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFO29CQUN4QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ2hCO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFBQSxDQUFDO0lBRUYsU0FBUyxDQUFDLElBQUk7UUFFWiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUMzQixJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUvQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3RDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRTtnQkFDdEIsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsYUFBYSxFQUFFLEVBQUU7Z0JBQ2pCLFVBQVUsRUFBRSxFQUFFO2dCQUNkLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYzthQUU1QixDQUFDLENBQ0gsQ0FBQztZQUVGLGNBQWM7WUFDZCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUN0SCxnQkFBZ0I7WUFDaEIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQzFCLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRTtnQkFDeEIsU0FBUyxFQUFFLENBQUM7Z0JBQ1osWUFBWSxFQUFFLENBQUM7Z0JBQ2YscUJBQXFCLEVBQUUsR0FBRztnQkFDMUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7YUFDNUMsQ0FBQyxDQUNILENBQUM7WUFFRixnQkFBZ0I7WUFDaEIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQzFCLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRTtnQkFDM0IsUUFBUSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQzNDLGFBQWEsRUFBRSxNQUFNO2FBQ3RCLENBQUMsQ0FDSCxDQUFDO1lBQ0YsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFeEIsZ0JBQWdCO1lBQ2hCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUM3QixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQzNCLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLEtBQUssRUFBRSxLQUFLO2dCQUNaLEtBQUssRUFBRSxLQUFLO2dCQUNaLFdBQVcsRUFBRSxPQUFPO2dCQUNwQixjQUFjLEVBQUUsTUFBTTthQUV2QixDQUFDLENBQ0gsQ0FBQztZQUdGLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtZQUNyRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEI7WUFFdkUsYUFBYTtZQUNiLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRW5CLENBQUMsQ0FBQyxDQUFDO1FBRUgsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ3BCLElBQUksWUFBWSxHQUFHLGVBQWUsQ0FBQztZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDbkMsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFL0MsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN0QyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3RCLElBQUksRUFBRSxLQUFLO2dCQUNYLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYzthQUM1QixDQUFDLENBQ0gsQ0FBQztZQUdGLGNBQWM7WUFFZCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7WUFDZCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQzlCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQzNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ2hDLElBQUksTUFBTSxHQUFHO3dCQUNYLFFBQVEsRUFBRSxJQUFJLEdBQUcsR0FBRzt3QkFDcEIsS0FBSyxFQUFFLEtBQUs7cUJBQ2IsQ0FBQTtvQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO2lCQUNsQjthQUNGO1lBRUQsZ0JBQWdCO1lBQ2hCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUMxQixLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3hCLFNBQVMsRUFBRSxDQUFDO2dCQUNaLFlBQVksRUFBRSxDQUFDO2dCQUNmLHFCQUFxQixFQUFFLEdBQUc7Z0JBQzFCLFFBQVEsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2FBQzVDLENBQUMsQ0FDSCxDQUFDO1lBRUYsZ0JBQWdCO1lBQ2hCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUMxQixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQzNCLFFBQVEsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUMzQyxhQUFhLEVBQUUsVUFBVTthQUMxQixDQUFDLENBQ0gsQ0FBQztZQUNGLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXhCLGdCQUFnQjtZQUNoQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDN0IsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFO2dCQUMzQixJQUFJLEVBQUUsT0FBTztnQkFDYixLQUFLLEVBQUUsS0FBSztnQkFDWixLQUFLLEVBQUUsS0FBSztnQkFDWixXQUFXLEVBQUUsT0FBTztnQkFDcEIsY0FBYyxFQUFFLFVBQVU7YUFDM0IsQ0FBQyxDQUNILENBQUM7WUFDRixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEI7WUFDckUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCO1lBQ3ZFLGFBQWE7WUFDYixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMzRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXhDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUNELFdBQVc7UUFDVCxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDckI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMzRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUVyQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxHQUFHLHdCQUF3QixDQUFBO1lBQzNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFBO1lBQ3JELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQTtZQUNqRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUE7WUFDN0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFBO1lBQ25FLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUE7WUFDeEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQTtZQUUzRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxHQUFHLHdCQUF3QixDQUFBO1lBQzNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFBO1lBQ3JELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQTtZQUNqRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUE7WUFDN0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFBO1lBQ25FLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUE7WUFDeEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQTtZQUczRCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVLLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsR0FBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztZQUM5RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDcEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUM3RCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUseUJBQXlCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUNyRixJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUMxRixJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUNqRixDQUFDO1lBRUosSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixHQUFHLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUM3RCxJQUFJLGtCQUFrQixDQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDaEcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDckgsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUE7WUFFM0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsRUFBRTttQkFDOUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ25ILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSwyQkFBMkIsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFBOztnQkFFOUosSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLDJCQUEyQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFFLENBQUE7WUFFckssSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQTtZQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFHdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBUUQscUJBQXFCLENBQUMsRUFBRSxFQUFDLFVBQVU7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUMsVUFBVSxDQUFDLENBQUM7SUFFOUUsQ0FBQztJQUNELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUVoRixDQUFDO0lBYUQsSUFBSSxDQUFDLEtBQTRCO1FBQy9CLGVBQWUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEYsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDckUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQzNEO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyRixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQVFELFNBQVMsQ0FBQyxNQUFNO1FBQ2QsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLFFBQVEsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7WUFDbEMsS0FBSyxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ2xFLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUMzQixNQUFNO1lBQ1IsS0FBSyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ25FLFFBQVEsR0FBRyxjQUFjLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2dCQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztnQkFFNUIsTUFBTTtZQUNSLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixFQUFFO2dCQUN0RSxRQUFRLEdBQUcsZUFBZSxDQUFDO2dCQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztnQkFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7Z0JBQzVCLE1BQU07WUFDUixLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDckUsUUFBUSxHQUFHLGVBQWUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUMzQixNQUFNO1lBRVI7Z0JBQ0UsTUFBTTtTQUNUO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQztRQUNqRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDaEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUNsRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksR0FBRyw0REFBNEQsQ0FBQztRQUN0RyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUMzQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLG1DQUFtQyxDQUFBO1FBS3BFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUUzQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1FBQ3RFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsR0FBRyxVQUFVLENBQUM7UUFDM0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDL0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBSTFELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQzNDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ2pELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQztRQUNuRixJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFJbkUsQ0FBQztJQUNELHdCQUF3QixDQUFDLE1BQU07UUFDN0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQztRQUNuQyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsTUFBTSxDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLGdCQUFnQixDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksZ0JBQWdCLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUMzUCxJQUFJLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQzlCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUEyQ0QscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDO1FBQ2pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztRQUNoRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQ2xELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxHQUFHLDREQUE0RCxDQUFDO1FBQ3RHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzNDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsbUNBQW1DLENBQUE7UUFFcEUsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDO1FBQ2pGLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxtQkFBbUIsR0FBRyxZQUFZLENBQUM7UUFDbkUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDckQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBR2hFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUUzQyxJQUFJLENBQUMsOEJBQThCLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsOEJBQThCLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1FBQ2hGLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxtQkFBbUIsR0FBRyxVQUFVLENBQUM7UUFDckUsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDekQsSUFBSSxDQUFDLDhCQUE4QixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBSXBFLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ25ELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsd0JBQXdCLENBQUM7UUFDbEcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLDZCQUE2QixHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFJaEgsQ0FBQztJQUNELDBCQUEwQixDQUFDLE1BQU07UUFDL0IsSUFBSSxDQUFDLHNCQUFzQixHQUFHLE1BQU0sQ0FBQztRQUNyQyxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUNELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwRSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsR0FBVSxDQUFBO1lBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBVUQsb0JBQW9CLENBQUMsS0FBSztRQUN4QixJQUFJLEtBQUs7WUFDUCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUE7O1lBRTVJLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUM7SUFDbEUsQ0FBQzs7aUhBMWdCVSxtQkFBbUIsMENBeURrQixXQUFXO3FHQXpEaEQsbUJBQW1CLHNqRENoQ2hDLHdwaEJBNlJBOzRGRDdQYSxtQkFBbUI7a0JBTi9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7aUJBRTNDOzswQkEwRDBDLE1BQU07MkJBQUMsV0FBVztxTkFyRFIsYUFBYTtzQkFBL0QsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ2UsOEJBQThCO3NCQUE3RixTQUFTO3VCQUFDLGdDQUFnQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDbkIsU0FBUztzQkFBbkQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNVLGlCQUFpQjtzQkFBbkUsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0ksc0NBQXNDO3NCQUExRixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRCxvQkFBb0I7c0JBQXJFLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNDLGVBQWU7c0JBQS9ELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNJLGlCQUFpQjtzQkFBbkUsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ00sd0NBQXdDO3NCQUE5RixTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDTCwyQ0FBMkM7c0JBQTFGLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNJLDZDQUE2QztzQkFBOUYsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBbUJXLHFCQUFxQjtzQkFBL0UsU0FBUzt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBY0ksdUJBQXVCO3NCQUFuRixTQUFTO3VCQUFDLDZCQUE2QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuL3B1Ymxpc2gtc3VydmV5L3B1Ymxpc2gtc3VydmV5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFkZFF1ZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtcXVlc3Rpb24vYWRkLXF1ZXN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERlbGV0ZVF1ZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9kZWxldGUtcXVlc3Rpb24vZGVsZXRlLXF1ZXN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVkaXRRdWVzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZWRpdC1xdWVzdGlvbi9lZGl0LXF1ZXN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVkaXRTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuLy4uL2VkaXQtc3VydmV5L2VkaXQtc3VydmV5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERlbGV0ZVN1cnZleUNvbXBvbmVudCB9IGZyb20gJy4vLi4vZGVsZXRlLXN1cnZleS9kZWxldGUtc3VydmV5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBOZ1pvbmUsIE9uSW5pdCwgUExBVEZPUk1fSUQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcHBCYXNlQ29tcG9uZW50LCBCcmVhZENydW1iLCBDb250cm9sTGF5b3V0LCBEcm9wZG93bkFjdGlvbkl0ZW0sIEZpbHRlckl0ZW0sIEZpbHRlclR5cGUsIEZvcmNlRGlyZWN0aW9uLCBJbnB1dFR5cGUsIFBhZ2VIZWFkZXJPcHRpb25zLCBQYWdpbmdDb21wb25lbnQsIFBhZ2luZ09wdGlvbnMsIFRleHRCb3hPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgKiBhcyBhbTUgZnJvbSBcIkBhbWNoYXJ0cy9hbWNoYXJ0czVcIjtcclxuaW1wb3J0ICogYXMgYW01eHkgZnJvbSBcIkBhbWNoYXJ0cy9hbWNoYXJ0czUveHlcIjtcclxuaW1wb3J0IGFtNXRoZW1lc19BbmltYXRlZCBmcm9tIFwiQGFtY2hhcnRzL2FtY2hhcnRzNS90aGVtZXMvQW5pbWF0ZWRcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE1hc3RlckxheW91dFNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBVblB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQgfSBmcm9tICcuL3VucHVibGlzaC1zdXJ2ZXkvdW5wdWJsaXNoLXN1cnZleS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWxldGVTdWJtaXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vc3VibWlzc2lvbnMvZGVsZXRlLXN1Ym1pc3Npb24vZGVsZXRlLXN1Ym1pc3Npb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRWxpbWluYXRlU3VibWlzc2lvbkNvbXBvbmVudCB9IGZyb20gJy4uL3N1Ym1pc3Npb25zL2VsaW1pbmF0ZS1zdWJtaXNzaW9uL2VsaW1pbmF0ZS1zdWJtaXNzaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVuRWxpbWluYXRlU3VibWlzc2lvbkNvbXBvbmVudCB9IGZyb20gJy4uL3N1Ym1pc3Npb25zL3VuZWxpbWluYXRlLXN1Ym1pc3Npb24vdW5lbGltaW5hdGUtc3VibWlzc2lvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdWRpZW5jZVR5cGUsIFN1cnZleU9wdGlvblR5cGUsIFN1cnZleVN0YXR1c0VudW0gfSBmcm9tICcuLi8uLi8uLi9FbnVtcy9FbnVtcyc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRFRPIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL1N1cnZleU1vZGVscy9zdXJ2ZXktcXVlc3Rpb24nO1xyXG5pbXBvcnQgeyBTdXJ2ZXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvc3VydmV5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9TZXJ2aWNlcy9zdXJ2ZXktcXVlc3Rpb24uc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc3VydmV5LWluZm8nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXJ2ZXktaW5mby5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3VydmV5LWluZm8uY29tcG9uZW50LmNzcyddXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3VydmV5SW5mb0NvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHBhZ2VIZWFkZXJPcHRpb25zOiBQYWdlSGVhZGVyT3B0aW9ucztcclxuICBicmVhZENydW1iOiBCcmVhZENydW1iW107XHJcbiAgc3VydmV5Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIEBWaWV3Q2hpbGQoJ3BhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ0VsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ2RlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBkZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2w6IERlbGV0ZVN1cnZleUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdlZGl0TW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgZWRpdE1vZGFsOiBFZGl0U3VydmV5Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRRdWVzdGlvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRRdWVzdGlvbk1vZGFsOiBFZGl0UXVlc3Rpb25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZGVsZXRlUXVlc3Rpb25Nb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBkZWxldGVRdWVzdGlvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogRGVsZXRlUXVlc3Rpb25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnYWRkUXVlc3Rpb25Nb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBBZGRRdWVzdGlvbkNvbXBvbmVudDogQWRkUXVlc3Rpb25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnYWRkUHVibGlzaE1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFkZFB1Ymxpc2hNb2RhbDogUHVibGlzaFN1cnZleUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdhZGRVblB1Ymxpc2hNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBhZGRVblB1Ymxpc2hNb2RhbDogVW5QdWJsaXNoU3VydmV5Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2RlbGV0ZVN1Ym1pc3Npb25Nb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBkZWxldGVTdWJtaXNzaW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBEZWxldGVTdWJtaXNzaW9uQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2VsaW1pbmF0ZU1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGVsaW1pbmF0ZVN1Ym1pc3Npb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2w6IEVsaW1pbmF0ZVN1Ym1pc3Npb25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgndW5FbGltaW5hdGVNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSB1bkVsaW1pbmF0ZVN1Ym1pc3Npb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2w6IFVuRWxpbWluYXRlU3VibWlzc2lvbkNvbXBvbmVudDtcclxuXHJcbiAgVGV4dEJveFdpdGhFeHRlcm5hbFVSTDogVGV4dEJveE9wdGlvbnM7XHJcbiAgVGV4dEJveFdpdGhJbnRlcm5hbFVSTDogVGV4dEJveE9wdGlvbnM7XHJcbiAgdXJsRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIFNlYXJjaFRleHRCb3ggPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBFTjogYm9vbGVhbjtcclxuICBTZWFyY2hUZXh0Qm94T3B0aW9uczogVGV4dEJveE9wdGlvbnM7XHJcbiAgcHJpdmF0ZSByb290ITogYW01LlJvb3Q7XHJcbiAgc3VydmV5SUQ6IGFueTtcclxuICBzdXJ2ZXk6IGFueTtcclxuICBsb2FkSW5mbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBTdXJ2ZXlTdGF0dXNFbnVtID0gU3VydmV5U3RhdHVzRW51bTtcclxuICBwdWJsaWMgQXVkaWVuY2VUeXBlRW51bSA9IEF1ZGllbmNlVHlwZTtcclxuICBzdXJ2ZXlRdWVzdGlvbnM6IFN1cnZleVF1ZXN0aW9uRFRPW10gPSBbXTtcclxuICBhcGlRdWVzdGlvblVSTCA9IHRoaXMuc3VydmV5UXVlc3Rpb25TZXJ2aWNlLmFwaVVSTDtcclxuICBmaWx0ZXJzUXVlc3Rpb25Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgY2FuVGFrZVN1cnZleTogYm9vbGVhbiA9IGZhbHNlXHJcbiAgLy9RdWVzdGlvbnMgU2VjdGlvblxyXG4gIEBWaWV3Q2hpbGQoJ3BhZ2luZ1F1ZXN0aW9uVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nUXVlc3Rpb25FbGVtZW50OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuICBwYWdpbmdRdWVzdGlvblJlc3VsdDogYW55W10gPSBbXTtcclxuICBwYWdpbmdRdWVzdGlvbk9wdGlvbnM6IFBhZ2luZ09wdGlvbnM7XHJcbiAgc2hvd1BhZ2VDb250ZW50OiBib29sZWFuO1xyXG4gIGNhbkVkaXRRdWVzdGlvbjogYm9vbGVhbjtcclxuICBjYW5BZGRRdWVzdGlvbjogYm9vbGVhbjtcclxuICBjYW5EZWxldGVRdWVzdGlvbjogYm9vbGVhbjtcclxuICBzZWFyY2hRdWVzdGlvblRleHRGaWx0ZXI6IGFueTtcclxuICBTdXJ2ZXlJRE9wdGlvbnM6IGFueTtcclxuICBzZWFyY2hTdXJ2ZXlJREZpbHRlcjogRmlsdGVySXRlbTtcclxuXHJcblxyXG4gIC8vU3VibWlzc2lvbiBTZWN0aW9uXHJcbiAgZmlsdGVyc1N1Ym1pc3Npb25Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQFZpZXdDaGlsZCgncGFnaW5nU3VibWlzc2lvblZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ1N1Ym1pc3Npb25FbGVtZW50OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuICBwYWdpbmdTdWJtaXNzaW9uUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIHBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zOiBQYWdpbmdPcHRpb25zO1xyXG4gIHNob3dTdWJtaXNzaW9uUGFnZUNvbnRlbnQ6IGJvb2xlYW47XHJcbiAgc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgc2VhcmNoU3VydmV5U3VibWlzc2lvbklERmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIHF1ZXN0aW9uT3ZlcnZpZXdSZXN1bHQ6IGFueTtcclxuICBwYWdpbmdRdWVzdGlvblJlc3VsdE9yaWdpbmFsOiBhbnk7XHJcbiAgc2hvd092ZXJ2aWV3OiBib29sZWFuO1xyXG4gIHNob3dOYXY6IGJvb2xlYW5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkLCBwcml2YXRlIHpvbmU6IE5nWm9uZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICAgLCBwcml2YXRlIG1hc3RlckxheW91dFNlcnZpY2U6IE1hc3RlckxheW91dFNlcnZpY2UsIHByaXZhdGUgc3VydmV5U2VydmljZTogU3VydmV5U2VydmljZSwgcHJpdmF0ZSBzdXJ2ZXlRdWVzdGlvblNlcnZpY2U6IFN1cnZleVF1ZXN0aW9uU2VydmljZSwgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcclxuICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgIHRoaXMucm91dGVyLnJvdXRlUmV1c2VTdHJhdGVneS5zaG91bGRSZXVzZVJvdXRlID0gKCkgPT4gZmFsc2U7XHJcbiAgICB0aGlzLnN1cnZleUlEID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXNbXCJpZFwiXTtcclxuICB9XHJcbiAgLy8gUnVuIHRoZSBmdW5jdGlvbiBvbmx5IGluIHRoZSBicm93c2VyXHJcbiAgYnJvd3Nlck9ubHkoZjogKCkgPT4gdm9pZCkge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICBmKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cclxuICB9XHJcblxyXG4gIG1heWJlRGlzcG9zZVJvb3QoZGl2SWQpIHtcclxuICAgIGFtNS5hcnJheS5lYWNoKGFtNS5yZWdpc3RyeS5yb290RWxlbWVudHMsIChyb290KSA9PiB7XHJcbiAgICAgIGlmIChyb290KSB7XHJcbiAgICAgICAgaWYgKHJvb3QuZG9tLmlkID09IGRpdklkKSB7XHJcbiAgICAgICAgICByb290LmRpc3Bvc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9O1xyXG5cclxuICBsb2FkQ2hhcnQoaXRlbSkge1xyXG5cclxuICAgIC8vIENoYXJ0IGNvZGUgZ29lcyBpbiBoZXJlXHJcbiAgICB0aGlzLmJyb3dzZXJPbmx5KCgpID0+IHtcclxuICAgICAgbGV0IG5hbWUgPSBgY2hhcnRkaXZgO1xyXG4gICAgICB0aGlzLm1heWJlRGlzcG9zZVJvb3QobmFtZSlcclxuICAgICAgbGV0IHJvb3QgPSBhbTUuUm9vdC5uZXcobmFtZSk7XHJcbiAgICAgIHJvb3Quc2V0VGhlbWVzKFthbTV0aGVtZXNfQW5pbWF0ZWQubmV3KHJvb3QpXSk7XHJcblxyXG4gICAgICBsZXQgY2hhcnQgPSByb290LmNvbnRhaW5lci5jaGlsZHJlbi5wdXNoKFxyXG4gICAgICAgIGFtNXh5LlhZQ2hhcnQubmV3KHJvb3QsIHtcclxuICAgICAgICAgIHBhblg6IGZhbHNlLFxyXG4gICAgICAgICAgcGFuWTogZmFsc2UsXHJcbiAgICAgICAgICB3aGVlbFg6ICdub25lJyxcclxuICAgICAgICAgIHdoZWVsWTogJ25vbmUnLFxyXG4gICAgICAgICAgcGFkZGluZ0JvdHRvbTogNTAsXHJcbiAgICAgICAgICBwYWRkaW5nVG9wOiA0MCxcclxuICAgICAgICAgIGxheW91dDogcm9vdC52ZXJ0aWNhbExheW91dCxcclxuXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIC8vIERlZmluZSBkYXRhXHJcbiAgICAgIGxldCBkYXRhID0gaXRlbS5vcHRpb25zLm1hcCh2YWx1ZSA9PiB7IHJldHVybiB7ICduYW1lJzogdmFsdWUubG9jYWxpemVkVGl0bGUsICd2YWx1ZSc6IHZhbHVlLm51bWJlck9mU2VsZWN0ZWRUaW1lIH0gfSlcclxuICAgICAgLy8gQ3JlYXRlIFktYXhpc1xyXG4gICAgICBsZXQgeUF4aXMgPSBjaGFydC55QXhlcy5wdXNoKFxyXG4gICAgICAgIGFtNXh5LlZhbHVlQXhpcy5uZXcocm9vdCwge1xyXG4gICAgICAgICAgYmFzZVZhbHVlOiAwLFxyXG4gICAgICAgICAgbWF4UHJlY2lzaW9uOiAwLFxyXG4gICAgICAgICAgZXh0cmFUb29sdGlwUHJlY2lzaW9uOiAxMDAsXHJcbiAgICAgICAgICByZW5kZXJlcjogYW01eHkuQXhpc1JlbmRlcmVyWS5uZXcocm9vdCwge30pXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBYLUF4aXNcclxuICAgICAgbGV0IHhBeGlzID0gY2hhcnQueEF4ZXMucHVzaChcclxuICAgICAgICBhbTV4eS5DYXRlZ29yeUF4aXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIHJlbmRlcmVyOiBhbTV4eS5BeGlzUmVuZGVyZXJYLm5ldyhyb290LCB7fSksXHJcbiAgICAgICAgICBjYXRlZ29yeUZpZWxkOiBcIm5hbWVcIlxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIHhBeGlzLmRhdGEuc2V0QWxsKGRhdGEpO1xyXG5cclxuICAgICAgLy8gQ3JlYXRlIHNlcmllc1xyXG4gICAgICBsZXQgc2VyaWVzMSA9IGNoYXJ0LnNlcmllcy5wdXNoKFxyXG4gICAgICAgIGFtNXh5LkNvbHVtblNlcmllcy5uZXcocm9vdCwge1xyXG4gICAgICAgICAgbmFtZTogXCJRdWVzdGlvbiBPcHRpb25zXCIsXHJcbiAgICAgICAgICB4QXhpczogeEF4aXMsXHJcbiAgICAgICAgICB5QXhpczogeUF4aXMsXHJcbiAgICAgICAgICB2YWx1ZVlGaWVsZDogXCJ2YWx1ZVwiLFxyXG4gICAgICAgICAgY2F0ZWdvcnlYRmllbGQ6IFwibmFtZVwiLFxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIFxyXG5cclxuICAgICAgc2VyaWVzMS5kYXRhLnNldEFsbChkYXRhKTtcclxuICAgICAgc2VyaWVzMS5zZXQoXCJmaWxsXCIsIGFtNS5jb2xvcihcIiNiNjhhMzVcIikpOyAvLyBzZXQgU2VyaWVzIGNvbG9yIHRvIHJlZFxyXG4gICAgICBzZXJpZXMxLnNldChcInN0cm9rZVwiLCBhbTUuY29sb3IoXCIjYjY4YTM1XCIpKTsgLy8gc2V0IFNlcmllcyBjb2xvciB0byByZWRcclxuXHJcbiAgICAgIC8vIEFkZCBsZWdlbmRcclxuICAgICAgbGV0IGxlZ2VuZCA9IGNoYXJ0LmNoaWxkcmVuLnB1c2goYW01LkxlZ2VuZC5uZXcocm9vdCwge30pKTtcclxuICAgICAgbGVnZW5kLmRhdGEucHVzaChzZXJpZXMxKTtcclxuXHJcbiAgXHJcbiAgICAgIHRoaXMucm9vdCA9IHJvb3Q7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gLy9jaGFydCBvdmVydmlld1xyXG4gICAgdGhpcy5icm93c2VyT25seSgoKSA9PiB7XHJcbiAgICAgIGxldCBuYW1lT3ZlclZpZXcgPSBgY2hhcnRPdmVydmlld2A7XHJcbiAgICAgIHRoaXMubWF5YmVEaXNwb3NlUm9vdChuYW1lT3ZlclZpZXcpXHJcbiAgICAgIGxldCByb290ID0gYW01LlJvb3QubmV3KG5hbWVPdmVyVmlldyk7XHJcblxyXG4gICAgICByb290LnNldFRoZW1lcyhbYW01dGhlbWVzX0FuaW1hdGVkLm5ldyhyb290KV0pO1xyXG5cclxuICAgICAgbGV0IGNoYXJ0ID0gcm9vdC5jb250YWluZXIuY2hpbGRyZW4ucHVzaChcclxuICAgICAgICBhbTV4eS5YWUNoYXJ0Lm5ldyhyb290LCB7XHJcbiAgICAgICAgICBwYW5ZOiBmYWxzZSxcclxuICAgICAgICAgIGxheW91dDogcm9vdC52ZXJ0aWNhbExheW91dFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG5cclxuICAgICAgLy8gRGVmaW5lIGRhdGFcclxuXHJcbiAgICAgIGxldCBkYXRhID0gW107XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGl0ZW0ucmVzdWx0cykge1xyXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbS5yZXN1bHRzLCBrZXkpKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW0ucmVzdWx0c1trZXldO1xyXG4gICAgICAgICAgbGV0IG9iamVjdCA9IHtcclxuICAgICAgICAgICAgY2F0ZWdvcnk6IFwiPj1cIiArIGtleSxcclxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkYXRhLnB1c2gob2JqZWN0KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQ3JlYXRlIFktYXhpc1xyXG4gICAgICBsZXQgeUF4aXMgPSBjaGFydC55QXhlcy5wdXNoKFxyXG4gICAgICAgIGFtNXh5LlZhbHVlQXhpcy5uZXcocm9vdCwge1xyXG4gICAgICAgICAgYmFzZVZhbHVlOiAwLFxyXG4gICAgICAgICAgbWF4UHJlY2lzaW9uOiAwLFxyXG4gICAgICAgICAgZXh0cmFUb29sdGlwUHJlY2lzaW9uOiAxMDAsXHJcbiAgICAgICAgICByZW5kZXJlcjogYW01eHkuQXhpc1JlbmRlcmVyWS5uZXcocm9vdCwge30pXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBYLUF4aXNcclxuICAgICAgbGV0IHhBeGlzID0gY2hhcnQueEF4ZXMucHVzaChcclxuICAgICAgICBhbTV4eS5DYXRlZ29yeUF4aXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIHJlbmRlcmVyOiBhbTV4eS5BeGlzUmVuZGVyZXJYLm5ldyhyb290LCB7fSksXHJcbiAgICAgICAgICBjYXRlZ29yeUZpZWxkOiBcImNhdGVnb3J5XCJcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICB4QXhpcy5kYXRhLnNldEFsbChkYXRhKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBzZXJpZXNcclxuICAgICAgbGV0IHNlcmllczEgPSBjaGFydC5zZXJpZXMucHVzaChcclxuICAgICAgICBhbTV4eS5Db2x1bW5TZXJpZXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIG5hbWU6IFwiU2NvcmVcIixcclxuICAgICAgICAgIHhBeGlzOiB4QXhpcyxcclxuICAgICAgICAgIHlBeGlzOiB5QXhpcyxcclxuICAgICAgICAgIHZhbHVlWUZpZWxkOiBcInZhbHVlXCIsXHJcbiAgICAgICAgICBjYXRlZ29yeVhGaWVsZDogXCJjYXRlZ29yeVwiLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIHNlcmllczEuZGF0YS5zZXRBbGwoZGF0YSk7XHJcbiAgICAgIHNlcmllczEuc2V0KFwiZmlsbFwiLCBhbTUuY29sb3IoXCIjYjY4YTM1XCIpKTsgLy8gc2V0IFNlcmllcyBjb2xvciB0byByZWRcclxuICAgICAgc2VyaWVzMS5zZXQoXCJzdHJva2VcIiwgYW01LmNvbG9yKFwiI2I2OGEzNVwiKSk7IC8vIHNldCBTZXJpZXMgY29sb3IgdG8gcmVkXHJcbiAgICAgIC8vIEFkZCBsZWdlbmRcclxuICAgICAgbGV0IGxlZ2VuZCA9IGNoYXJ0LmNoaWxkcmVuLnB1c2goYW01LkxlZ2VuZC5uZXcocm9vdCwge30pKTtcclxuICAgICAgbGVnZW5kLmRhdGEuc2V0QWxsKGNoYXJ0LnNlcmllcy52YWx1ZXMpO1xyXG5cclxuICAgICAgdGhpcy5yb290ID0gcm9vdDtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBDbGVhbiB1cCByb290IGVsZW1lbnQgd2hlbiB0aGUgY29tcG9uZW50IGlzIHJlbW92ZWRcclxuICAgIHRoaXMuYnJvd3Nlck9ubHkoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5yb290KSB7XHJcbiAgICAgICAgdGhpcy5yb290LmRpc3Bvc2UoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3VydmV5U2VydmljZS5nZXRJbmZvKHRoaXMuc3VydmV5SUQpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLnN1cnZleSA9IHJlc3VsdDtcclxuXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoRXh0ZXJuYWxVUkwuTmFtZSA9IFwiVGV4dEJveFdpdGhFeHRlcm5hbFVSTFwiXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTC5MYWJlbEtleSA9IFwiRXh0ZXJuYWxfVVJMXCJcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoRXh0ZXJuYWxVUkwuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTC5Gb3JjZURpcmVjdGlvbiA9IEZvcmNlRGlyZWN0aW9uLkVuZ2xpc2hcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLkVuYWJsZUNvcHlUb0NsaXBib2FyZCA9IHRydWVcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLlZhbHVlID0gdGhpcy5zdXJ2ZXkuZXh0ZXJuYWxVUkxcclxuXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoSW50ZXJuYWxVUkwuTmFtZSA9IFwiVGV4dEJveFdpdGhJbnRlcm5hbFVSTFwiXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTC5MYWJlbEtleSA9IFwiSW50ZXJuYWxfVVJMXCJcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoSW50ZXJuYWxVUkwuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTC5Gb3JjZURpcmVjdGlvbiA9IEZvcmNlRGlyZWN0aW9uLkVuZ2xpc2hcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLkVuYWJsZUNvcHlUb0NsaXBib2FyZCA9IHRydWVcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLlZhbHVlID0gdGhpcy5zdXJ2ZXkuaW50ZXJuYWxVUkxcclxuXHJcblxyXG4gICAgICB0aGlzLmJyZWFkQ3J1bWIgPSBbXTtcclxuICAgICAgdGhpcy5icmVhZENydW1iLnB1c2gobmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiSG9tZVwiKSwgZmFsc2UsIFwiL1wiKSwgbmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiU3VydmV5c19IZWFkZXJcIiksIGZhbHNlLCAnLi4vLi4vJyksIG5ldyBCcmVhZENydW1iKHRoaXMubChcIlN1cnZleV9EZXRhaWxzXCIpLCB0cnVlKSk7XHJcbiAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMgPSBuZXcgUGFnZUhlYWRlck9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5UaXRsZVZhbHVlID10aGlzLnN1cnZleS5sb2NhbGl6ZWRUaXRsZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5TZWFyY2hUZXh0Qm94LkFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkJyZWFkQ3J1bWIuQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5CcmVhZENydW1iLkJyZWFkQ3J1bWJJdGVtcyA9IHRoaXMuYnJlYWRDcnVtYjtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuRHJvcGRvd25BY3Rpb25JdGVtcy5wdXNoKFxyXG4gICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRWRpdFwiKSwgXCIvYXNzZXRzL2ltYWdlcy9FZGl0LnN2Z1wiLCB0aGlzLnNob3dFZGl0TW9kYWwpLFxyXG4gICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRGVsZXRlXCIpLCAnL2Fzc2V0cy9pbWFnZXMvVHJhc2guc3ZnJywgdGhpcy5zaG93RGVsZXRlTW9kYWwpLFxyXG4gICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRXhwb3J0XCIpLCAnL2Fzc2V0cy9pbWFnZXMvZXhwb3J0LnN2ZycsIHRoaXMuZXhwb3J0KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICBpZiAodGhpcy5zdXJ2ZXkudG90YWxRdWVzdGlvbkNvdW50ID4gMClcclxuICAgICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkRyb3BEb3duQWN0aW9ucy5Ecm9wZG93bkFjdGlvbkl0ZW1zLnB1c2goXHJcbiAgICAgICAgICBuZXcgRHJvcGRvd25BY3Rpb25JdGVtKCB0aGlzLmwoXCJQcmV2aWV3XCIpLCAnL2Fzc2V0cy9pbWFnZXMvdmlld3Muc3ZnJywgdGhpcy5wcmV2aWV3U3VydmV5KSk7XHJcbiAgICAgIGlmICh0aGlzLnN1cnZleS5zdGF0dXNJdGVtSUQudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX1B1Ymxpc2hlZC50b0xvY2FsZUxvd2VyQ2FzZSgpKVxyXG4gICAgICAgIHRoaXMuY2FuVGFrZVN1cnZleSA9IHRydWVcclxuXHJcbiAgICAgIGlmICh0aGlzLnN1cnZleS5zdGF0dXNJdGVtSUQudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0RyYWZ0LnRvTG9jYWxlTG93ZXJDYXNlKClcclxuICAgICAgICB8fCB0aGlzLnN1cnZleS5zdGF0dXNJdGVtSUQudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0Nsb3NlZC50b0xvY2FsZUxvd2VyQ2FzZSgpKVxyXG4gICAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRHJvcERvd25BY3Rpb25zLkRyb3Bkb3duQWN0aW9uSXRlbXMucHVzaChuZXcgRHJvcGRvd25BY3Rpb25JdGVtKHRoaXMubChcIlB1Ymxpc2hcIiksICcvYXNzZXRzL2ltYWdlcy9TdWJtaXQuc3ZnJywgdGhpcy5zaG93UHVibGlzaE1vZGFsKSlcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRHJvcERvd25BY3Rpb25zLkRyb3Bkb3duQWN0aW9uSXRlbXMucHVzaChuZXcgRHJvcGRvd25BY3Rpb25JdGVtKHRoaXMubChcIlVuUHVibGlzaFwiKSwgJy9hc3NldHMvaW1hZ2VzL3VubGluay5zdmcnLCB0aGlzLnNob3dVblB1Ymxpc2hNb2RhbCksKVxyXG5cclxuICAgICAgdGhpcy5FTiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VFbmdsaXNoKCk7XHJcbiAgICAgIHRoaXMubG9hZFF1ZXN0aW9uU2VjdGlvbigpO1xyXG4gICAgICB0aGlzLmxvYWRTdWJtaXNzaW9uU2VjdGlvbigpO1xyXG4gICAgICB0aGlzLnBhZ2VUaXRsZSA9IHRoaXMuc3VydmV5LmxvY2FsaXplZFRpdGxlXHJcbiAgICAgIHRoaXMudXBkYXRlUGFnZVRpdGxlKHRoaXMuc3VydmV5LmxvY2FsaXplZFRpdGxlKTtcclxuICAgICAgdGhpcy5sb2FkSW5mbyA9IHRydWU7XHJcblxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuICBzaG93RWRpdE1vZGFsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5lZGl0TW9kYWwuc2hvd0VkaXRNb2RhbCh0aGlzLnN1cnZleUlEKTtcclxuICB9XHJcbiAgc2hvd0RlbGV0ZU1vZGFsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd0RlbGV0ZU1vZGFsKHRoaXMuc3VydmV5SUQpO1xyXG5cclxuICB9XHJcbiAgc2hvd0VkaXRRdWVzdGlvbk1vZGFsKGlkLGlzVmlld09ubHkpIHtcclxuICAgIHRoaXMuZWRpdFF1ZXN0aW9uTW9kYWwuZWRpdE1vZGFsKGlkLCB0aGlzLnN1cnZleS5hdWRpZW5jZUl0ZW1JRCxpc1ZpZXdPbmx5KTtcclxuXHJcbiAgfVxyXG4gIHNob3dBZGRRdWVzdGlvbk1vZGFsKCkge1xyXG4gICAgdGhpcy5BZGRRdWVzdGlvbkNvbXBvbmVudC5hZGRNb2RhbCh0aGlzLnN1cnZleUlELCB0aGlzLnN1cnZleS5hdWRpZW5jZUl0ZW1JRCk7XHJcblxyXG4gIH1cclxuICBzaG93RGVsZXRlUXVlc3Rpb25Nb2RhbCA9IChpZCkgPT4ge1xyXG4gICAgdGhpcy5kZWxldGVRdWVzdGlvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93RGVsZXRlTW9kYWwoaWQpO1xyXG5cclxuICB9XHJcbiAgc2hvd1B1Ymxpc2hNb2RhbCA9ICgpID0+IHtcclxuICAgIHRoaXMuYWRkUHVibGlzaE1vZGFsLnB1Ymxpc2hNb2RhbCh0aGlzLnN1cnZleUlELCB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0KTtcclxuXHJcbiAgfVxyXG4gIHNob3dVblB1Ymxpc2hNb2RhbCA9ICgpID0+IHtcclxuICAgIHRoaXMuYWRkVW5QdWJsaXNoTW9kYWwuc2hvd0NvbmZpcm1hdGlvbk1vZGFsKHRoaXMuc3VydmV5SUQpO1xyXG5cclxuICB9XHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0W2luZGV4XS5kaXNwbGF5T3JkZXIgPSBpbmRleCArIDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN1cnZleVF1ZXN0aW9uU2VydmljZS51cGRhdGVEaXNwbGF5T3JkZXIodGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJldmlld1N1cnZleSA9ICgpID0+IHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi4vLi4vaW5mby9wcmV2aWV3JywgdGhpcy5zdXJ2ZXlJRCwgdGhpcy5zdXJ2ZXkuYXVkaWVuY2VJdGVtSURdLCB7cmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZX0pO1xyXG4gIH1cclxuICB0YWtlU3VydmV5ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLi8uLi9pbmZvL3N1Ym1pc3Npb24nLCB0aGlzLnN1cnZleUlEXSwge3JlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGV9KTtcclxuICB9XHJcblxyXG4gIGdldFN0YXR1cyhzdGF0dXMpIHtcclxuICAgIHZhciBTdGF0dXNlcyA9ICcnO1xyXG4gICAgc3dpdGNoIChzdGF0dXMudG9Mb2NhbGVMb3dlckNhc2UoKSkge1xyXG4gICAgICBjYXNlIHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fRHJhZnQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICBTdGF0dXNlcyA9ICdiYWRnZS1zZWNvbmRhcnknO1xyXG4gICAgICAgIHRoaXMuY2FuRWRpdFF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkRlbGV0ZVF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkFkZFF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0Nsb3NlZC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIFN0YXR1c2VzID0gJ2JhZGdlLWRhbmdlcic7XHJcbiAgICAgICAgdGhpcy5jYW5FZGl0UXVlc3Rpb24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhbkRlbGV0ZVF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkFkZFF1ZXN0aW9uID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fUHVibGlzaGVkLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgU3RhdHVzZXMgPSAnYmFkZ2Utc3VjY2Vzcyc7XHJcbiAgICAgICAgdGhpcy5jYW5FZGl0UXVlc3Rpb24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhbkRlbGV0ZVF1ZXN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5BZGRRdWVzdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fVXBjb21pbmcudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICBTdGF0dXNlcyA9ICdiYWRnZS1zdWNjZXNzJztcclxuICAgICAgICB0aGlzLmNhbkVkaXRRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5EZWxldGVRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5BZGRRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFN0YXR1c2VzO1xyXG4gIH1cclxuXHJcbiAgbG9hZFF1ZXN0aW9uU2VjdGlvbigpIHtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuTmFtZSA9IFwiU2VhcmNoVGV4dEJveFwiO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLlRyaW1UZXh0T25DaGFuZ2UgPSB0cnVlO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5QbGFjZWhvbGRlciA9IHRoaXMubChcIlNlYXJjaFwiKTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuRXh0cmFDbGFzc2VzID0gXCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtIGZvcm0tY29udHJvbC1zb2xpZCBzZWFyY2gtYm94XCI7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLkljb24gPSBcIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvc2VhcmNoLnN2Z1wiXHJcblxyXG5cclxuXHJcblxyXG4gICAgdGhpcy5TdXJ2ZXlJRE9wdGlvbnMgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuU3VydmV5SURPcHRpb25zLk5hbWUgPSBcIlN1cnZleUlEXCI7XHJcbiAgICB0aGlzLlN1cnZleUlET3B0aW9ucy5WYWx1ZSA9IHRoaXMuc3VydmV5SUQ7XHJcblxyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleUlERmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IHRoaXMuU3VydmV5SURPcHRpb25zLk5hbWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleUlERmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcIlN1cnZleUlEXCI7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleUlERmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94O1xyXG5cclxuXHJcblxyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvbk9wdGlvbnMgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvbk9wdGlvbnMuUGFnZVNpemUgPSAxMDAwO1xyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvbk9wdGlvbnMuRGlzYWJsZUJsb2NrVUkgPSB0cnVlO1xyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvbk9wdGlvbnMuQWN0aW9uUG9zdFVSTCA9IHRoaXMuYXBpUXVlc3Rpb25VUkwgKyAnR2V0QWxsUXVlc3Rpb25zJztcclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25PcHRpb25zLkZpbHRlcnMgPSBbdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlcl07XHJcblxyXG5cclxuXHJcbiAgfVxyXG4gIHNldFF1ZXN0aW9uTGlzdGluZ1Jlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHQgPSByZXN1bHQ7XHJcbiAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0T3JpZ2luYWwgPSByZXN1bHQ7XHJcbiAgICB0aGlzLnNob3dQYWdlQ29udGVudCA9IHRydWU7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICBsZXQgb3ZlcnZpZXdRdWVzdGlvbnMgPSB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0T3JpZ2luYWwuZmlsdGVyKGl0ZW0gPT4gaXRlbS5xdWVzdGlvblR5cGVJdGVtSUQgPT0gU3VydmV5T3B0aW9uVHlwZS5SYWRpb0J1dHRvbiB8fCBpdGVtLnF1ZXN0aW9uVHlwZUl0ZW1JRCA9PSBTdXJ2ZXlPcHRpb25UeXBlLlNpbmdsZVNlbGVjdCB8fCBpdGVtLnF1ZXN0aW9uVHlwZUl0ZW1JRCA9PSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpcGxlU2VsZWN0KVxyXG4gICAgaWYgKG92ZXJ2aWV3UXVlc3Rpb25zLmxlbmd0aCA+IDApXHJcbiAgICAgIHRoaXMubG9hZFN1cnZleU92ZXJ2aWV3KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgb25TdWNjZXNzSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkVXBkYXRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5tYXN0ZXJMYXlvdXRTZXJ2aWNlLnJlbG9hZENvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgb25TdWNjZXNzRGVsZXRlSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkRGVsZXRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiLi4vLi4vXCJdLCB7cmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZX0pO1xyXG4gIH1cclxuXHJcbiAgb25TdWNjZXNzQWRkUXVlc3Rpb25IYW5kbGVyID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmRBZGRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5tYXN0ZXJMYXlvdXRTZXJ2aWNlLnJlbG9hZENvbXBvbmVudCgpO1xyXG4gIH1cclxuICBvblN1Y2Nlc3NFZGl0UXVlc3Rpb25IYW5kbGVyID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmRVcGRhdGVkXCIpLCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgICB0aGlzLm1hc3RlckxheW91dFNlcnZpY2UucmVsb2FkQ29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBvblN1Y2Nlc3NEZWxldGVRdWVzdGlvbkhhbmRsZXIgPSAoc3VjY2VzczogYW55KSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKHRoaXMubChcIlJlY29yZERlbGV0ZWRcIiksIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgIHRoaXMubWFzdGVyTGF5b3V0U2VydmljZS5yZWxvYWRDb21wb25lbnQoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgc2hvd0RlbGV0ZVN1Ym1pc3Npb25Nb2RhbCA9IChpZCkgPT4ge1xyXG4gICAgdGhpcy5kZWxldGVTdWJtaXNzaW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dEZWxldGVNb2RhbChpZCk7XHJcblxyXG4gIH1cclxuICBzaG93RWxpbWluYXRlU3VibWlzc2lvbk1vZGFsID0gKGlkKSA9PiB7XHJcbiAgICB0aGlzLmVsaW1pbmF0ZVN1Ym1pc3Npb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd0VsaW1pbmF0ZU1vZGFsKGlkKTtcclxuICB9XHJcbiAgc2hvd1VuRWxpbWluYXRlU3VibWlzc2lvbk1vZGFsID0gKGlkKSA9PiB7XHJcbiAgICB0aGlzLnVuRWxpbWluYXRlU3VibWlzc2lvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93VW5FbGltaW5hdGVNb2RhbChpZCk7XHJcbiAgfVxyXG4gIG9uU3VjY2Vzc0RlbGV0ZUhhbmRsZXJTdWJtaXNzaW9uID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmREZWxldGVkXCIpLCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgICB0aGlzLmxvYWRTdWJtaXNzaW9uU2VjdGlvbigpO1xyXG4gIH1cclxuICBsb2FkU3VibWlzc2lvblNlY3Rpb24oKSB7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLk5hbWUgPSBcIlNlYXJjaFRleHRCb3hcIjtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5UcmltVGV4dE9uQ2hhbmdlID0gdHJ1ZTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuUGxhY2Vob2xkZXIgPSB0aGlzLmwoXCJTZWFyY2hcIik7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLkV4dHJhQ2xhc3NlcyA9IFwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbSBmb3JtLWNvbnRyb2wtc29saWQgc2VhcmNoLWJveFwiO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5JY29uID0gXCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL3NlYXJjaC5zdmdcIlxyXG5cclxuICAgIHRoaXMuc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5zZWFyY2hTdWJtaXNzaW9uVGV4dEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLk5hbWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcIlNlYXJjaFRleHRcIjtcclxuICAgIHRoaXMuc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3g7XHJcblxyXG5cclxuICAgIHRoaXMuU3VydmV5SURPcHRpb25zID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLlN1cnZleUlET3B0aW9ucy5OYW1lID0gXCJTdXJ2ZXlJRFwiO1xyXG4gICAgdGhpcy5TdXJ2ZXlJRE9wdGlvbnMuVmFsdWUgPSB0aGlzLnN1cnZleUlEO1xyXG5cclxuICAgIHRoaXMuc2VhcmNoU3VydmV5U3VibWlzc2lvbklERmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuc2VhcmNoU3VydmV5U3VibWlzc2lvbklERmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IHRoaXMuU3VydmV5SURPcHRpb25zLk5hbWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJTdXJ2ZXlJRFwiO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94O1xyXG5cclxuXHJcblxyXG4gICAgdGhpcy5wYWdpbmdTdWJtaXNzaW9uT3B0aW9ucyA9IG5ldyBQYWdpbmdPcHRpb25zKCk7XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLlBhZ2VTaXplID0gMTA7XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLkRpc2FibGVCbG9ja1VJID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnaW5nU3VibWlzc2lvbk9wdGlvbnMuQWN0aW9uUG9zdFVSTCA9IHRoaXMuc3VydmV5U2VydmljZS5hcGlVUkwgKyAnR2V0QWxsU3VydmV5U3VibWlzc2lvbic7XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gW3RoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuTmFtZV07XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLkZpbHRlcnMgPSBbdGhpcy5zZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXIsIHRoaXMuc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXJdO1xyXG5cclxuXHJcblxyXG4gIH1cclxuICBzZXRTdWJtaXNzaW9uTGlzdGluZ1Jlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMucGFnaW5nU3VibWlzc2lvblJlc3VsdCA9IHJlc3VsdDtcclxuICAgIHRoaXMuc2hvd1N1Ym1pc3Npb25QYWdlQ29udGVudCA9IHRydWU7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgfVxyXG4gIGxvYWRTdXJ2ZXlPdmVydmlldygpIHtcclxuICAgIHRoaXMuc3VydmV5U2VydmljZS5nZXRTdXJ2ZXlPdmVydmlldyh0aGlzLnN1cnZleUlEKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLnF1ZXN0aW9uT3ZlcnZpZXdSZXN1bHQgPSByZXMgYXMgYW55XHJcbiAgICAgIHRoaXMuc2hvd092ZXJ2aWV3ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5sb2FkQ2hhcnQodGhpcy5xdWVzdGlvbk92ZXJ2aWV3UmVzdWx0WzBdKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBleHBvcnQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnN1cnZleVNlcnZpY2VcclxuICAgICAgLmV4cG9ydCh0aGlzLnN1cnZleUlEKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLmRvd25sb2FkKChyZXN1bHQgYXMgYW55KSBhcyBCbG9iLCB0aGlzLnBhZ2VUaXRsZSArIFwiLnhsc3hcIik7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoSW5RdWVzdGlvbkxpc3QodmFsdWUpIHtcclxuICAgIGlmICh2YWx1ZSlcclxuICAgICAgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCA9IHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHRPcmlnaW5hbC5maWx0ZXIoaXRlbSA9PiBpdGVtLmxvY2FsaXplZFRleHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWx1ZS50b0xvd2VyQ2FzZSgpKSlcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCA9IHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHRPcmlnaW5hbDtcclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS10b29sYmFyLS0+XHJcbjxkaXYgKm5nSWY9XCJsb2FkSW5mb1wiPlxyXG4gIDxiYnNmLXBhZ2UtaGVhZGVyLWNvbXBvbmVudCBbb3B0aW9uc109XCJwYWdlSGVhZGVyT3B0aW9uc1wiPjwvYmJzZi1wYWdlLWhlYWRlci1jb21wb25lbnQ+XHJcbjwvZGl2PlxyXG48IS0tZW5kIHRvb2xiYXItLT5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lci14eGxcIj5cclxuICA8ZGl2IGNsYXNzPVwiaW5mby1jb250YWluZXJcIiAqbmdJZj1cImxvYWRJbmZvXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1tYXJnaW4tYm90dG9tXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZlcnktZGF0ZSBib3JkZXItMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tYm94ZXMgYWxpZ24taXRlbXMtYmFzZWxpbmVcIj5cclxuICAgICAgICAgICAgPGRpdiBuZ2JUb29sdGlwPVwie3tsKCdEYXRlJyl9fVwiIGNsYXNzPVwiaWNvbi1ib3hcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbC1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTRcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9jYWxlbmRhci5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1jb3VudGVyLXRpdGxlXCIgKm5nSWY9XCJzdXJ2ZXkuc3RhcnREYXRlPT1udWxsXCI+XHJcbiAgICAgICAgICAgICAgICB7e2woJ05vdFN0YXJ0ZWRZZXQnKX19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VydmV5LWNvdW50ZXItdGl0bGUgZC1mbGV4IGZsZXgtc3RhY2tcIiAqbmdJZj1cInN1cnZleS5zdGFydERhdGUhPW51bGxcIj5cclxuICAgICAgICAgICAgICAgIHt7c3VydmV5LnN0YXJ0RGF0ZSB8c3VydmV5RGF0ZX19IC0ge3tzdXJ2ZXkuZW5kRGF0ZSE9bnVsbD8oc3VydmV5LmVuZERhdGV8c3VydmV5RGF0ZSk6XCJcIn19XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0XCIgKm5nSWY9XCJzdXJ2ZXkuZW5kRGF0ZT09bnVsbFwiPnt7bCgnSGFzTm9FbmQnKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodFwiIFtuZ0NsYXNzXT1cImdldFN0YXR1cyhzdXJ2ZXkuc3RhdHVzSXRlbUlEKVwiPnt7c3VydmV5LmxvY2FsaXplZFN0YXR1c319PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gbmdiVG9vbHRpcD1cInt7bCgnQXVkaWVuY2UnKX19XCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodCBteC0yXCI+e3tzdXJ2ZXkubG9jYWxpemVkQXVkaWVuY2V9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY2FyZC1kYXRhXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICA8QkJTRi1UZXh0Qm94ICpuZ0lmPVwiY2FuVGFrZVN1cnZleSYmIChzdXJ2ZXkuYXVkaWVuY2VJdGVtSUQ9PUF1ZGllbmNlVHlwZUVudW0uSW50ZXJuYWx8fHN1cnZleS5hdWRpZW5jZUl0ZW1JRD09QXVkaWVuY2VUeXBlRW51bS5Cb3RoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIlRleHRCb3hXaXRoSW50ZXJuYWxVUkxcIiBbZ3JvdXBdPVwidXJsRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTZcIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggKm5nSWY9XCJjYW5UYWtlU3VydmV5JiYgKHN1cnZleS5hdWRpZW5jZUl0ZW1JRD09QXVkaWVuY2VUeXBlRW51bS5FeHRlcm5hbHx8c3VydmV5LmF1ZGllbmNlSXRlbUlEPT1BdWRpZW5jZVR5cGVFbnVtLkJvdGgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiVGV4dEJveFdpdGhFeHRlcm5hbFVSTFwiIFtncm91cF09XCJ1cmxGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8cCBjbGFzcz1cImNhcmQtZGVzY3JpcHRpb25cIiAqbmdJZj1cInN1cnZleS5sb2NhbGl6ZWREZXNjXCI+XHJcbiAgICAgICAge3tzdXJ2ZXkubG9jYWxpemVkRGVzY319XHJcbiAgICAgIDwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbWFyZ2luLWJvdHRvbVwiPlxyXG4gICAgICA8dWwgbmdiTmF2ICNuYXY9XCJuZ2JOYXZcIiBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzIG5hdi1jdXN0b21cIj5cclxuICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtXCIgW2Rlc3Ryb3lPbkhpZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIG5nYk5hdkxpbms+XHJcbiAgICAgICAgICAgIDxoND5cclxuICAgICAgICAgICAgICB7e2woJ1F1ZXN0aW9ucycpfX1cclxuICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYnMtc2VhcmNoIHBhZ2Utc3ViaGVhZGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIlNlYXJjaFRleHRCb3hPcHRpb25zXCIgW2dyb3VwXT1cImZpbHRlcnNRdWVzdGlvbkZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoT25DaGFuZ2UpPVwic2VhcmNoSW5RdWVzdGlvbkxpc3QoJGV2ZW50KVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJTdXJ2ZXlJRE9wdGlvbnNcIiBbZ3JvdXBdPVwiZmlsdGVyc1F1ZXN0aW9uRm9ybVwiIGhpZGRlbj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiY2FuQWRkUXVlc3Rpb25cIiBjbGFzcz1cImJ0biBidG4tYnJhbmQgYnRuLXNtIHN1YmhlYWRlci1idG5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0FkZFF1ZXN0aW9uTW9kYWwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICB7e2woJ0FkZCcpfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgW2hpZGRlbl09XCJwYWdpbmdRdWVzdGlvblJlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JOYXZDb250ZW50IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbi1pbmZvXCIgW2Nka0RyYWdEaXNhYmxlZF09XCJjYW5UYWtlU3VydmV5XCIgY2RrRHJhZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2luZ1F1ZXN0aW9uUmVzdWx0OyBsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzeW1ib2wgc3ltYm9sLTI1cHggbWUtNFwiIGNka0RyYWdIYW5kbGUgKm5nSWY9XCIhY2FuVGFrZVN1cnZleVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzeW1ib2wtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi03XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvcmVvcmRlci5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWxpc3RpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7e2woJ1R5cGUnKX19XCI+e3tpdGVtLmxvY2FsaXplZFF1ZXN0aW9uVHlwZUl0ZW19fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0IG14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7e2woJ0F1ZGllbmNlJyl9fVwiPnt7aXRlbS5sb2NhbGl6ZWRBdWRpZW5jZVR5cGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWJyYW5kLWxpZ2h0IG14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uXCI+e3tsKCdMaW5rZWQnKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQgbXgtMlwiICpuZ0lmPVwiIWl0ZW0uaXNWaXNpYmxlXCIgbmdiVG9vbHRpcD1cInt7bCgnTm90VmlzaWJsZScpfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7bChcIk5vdFZpc2libGVcIil9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBjbGFzcz1cImRyb3Bkb3duLWN1c3RvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2VtZW50XT1cIkVOID8gJ2JvdHRvbS1yaWdodCcgOiAnYm90dG9tLWxlZnQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZS1jdXN0b20gYnRuIGJ0bi1jbGVhclwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9jYXJkLWRyb3Bkb3duLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IGNsYXNzPVwiZHJvcGRvd24tbWVudS1jdXN0b21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiEoY2FuRWRpdFF1ZXN0aW9uJiZjYW5EZWxldGVRdWVzdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RWRpdFF1ZXN0aW9uTW9kYWwoaXRlbS5pRF9HVUlELHRydWUpXCIgYXBwcHJldmVudGRvdWJsZWNsaWNrIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3Bkb3duLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2luZm8uc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2woXCJEZXRhaWxzXCIpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY2FuRWRpdFF1ZXN0aW9uXCIgKGNsaWNrKT1cInNob3dFZGl0UXVlc3Rpb25Nb2RhbChpdGVtLmlEX0dVSUQsZmFsc2UpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBwcmV2ZW50ZG91YmxlY2xpY2sgdHlwZT1cImJ1dHRvblwiIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3Bkb3duLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL0VkaXQuc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2woXCJFZGl0XCIpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiY2FuRGVsZXRlUXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlUXVlc3Rpb25Nb2RhbChpdGVtLmlEX0dVSUQpXCIgYXBwcHJldmVudGRvdWJsZWNsaWNrIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9UcmFzaC5zdmcnXCI+PC9zcGFuPiB7e2woXCJEZWxldGVcIil9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWNvdW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1jb3VudGVyLXRpdGxlXCI+e3tpdGVtLmxvY2FsaXplZFRleHR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWJyYW5kIGJhZGdlLXNxdWFyZSBtcy0yIG1lLTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7e2woJ1Njb3JlJyl9fVwiPnt7aXRlbS50b3RhbFNjb3JlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldFF1ZXN0aW9uTGlzdGluZ1Jlc3VsdCgkZXZlbnQpXCIgW29wdGlvbnNdPVwicGFnaW5nUXVlc3Rpb25PcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JvdXBdPVwiZmlsdGVyc1F1ZXN0aW9uRm9ybVwiICNwYWdpbmdRdWVzdGlvblZpZXdFbGVtZW50PjwvQkJTRi1QYWdpbmc+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLW5vLXJlc3VsdHMgKm5nSWY9XCJwYWdpbmdRdWVzdGlvblJlc3VsdC5sZW5ndGggPT0gMFwiPjwvYXBwLW5vLXJlc3VsdHM+XHJcblxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBuZ2JOYXZJdGVtIGNsYXNzPVwibmF2LWl0ZW1cIiBbZGVzdHJveU9uSGlkZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgbmdiTmF2TGluaz5cclxuICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgIHt7bCgnU3VibWlzc2lvbnMnKX19XHJcbiAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW5mb1wiIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYnMtc2VhcmNoIHBhZ2Utc3ViaGVhZGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIlNlYXJjaFRleHRCb3hPcHRpb25zXCIgW2dyb3VwXT1cImZpbHRlcnNTdWJtaXNzaW9uRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJTdXJ2ZXlJRE9wdGlvbnNcIiBbZ3JvdXBdPVwiZmlsdGVyc1N1Ym1pc3Npb25Gb3JtXCIgaGlkZGVuPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWNvbnRhaW5lclwiIFtoaWRkZW5dPVwicGFnaW5nU3VibWlzc2lvblJlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtY3VzdG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4ge3tsKCdOYW1lJyl9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57e2woJ0VtYWlsJyl9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57e2woJ1R5cGUnKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7bCgnQ3JlYXRlZCcpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3tsKCdTY29yZScpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0YWJsZS1hY3Rpb25cIj57e2woXCJBY3Rpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRib2R5IGNsYXNzPVwidGFibGUtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2luZ1N1Ym1pc3Npb25SZXN1bHQ7IGxldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpbmUtY2xhbXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmxvY2FsaXplZE5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1kYW5nZXIgbXgtMlwiICpuZ0lmPVwiaXRlbS5pc0VsaW1pbmF0ZWQmJml0ZW0uYWxsb3dFbGltaW5hdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2woJ0VsaW1pbmF0ZWQnKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmVtYWlsfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmlzSW50ZXJuYWxVc2VyPyBsKCdJbnRlcm5hbFVzZXJzJyk6bCgnRXh0ZXJuYWxVc2VycycpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7aXRlbS5jcmVhdGVkfHN1cnZleURhdGV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2l0ZW0udG90YWxTY29yZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidGFibGUtYWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbmdiVG9vbHRpcD1cInt7bCgnUHJldmlldycpfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycuLi8uLi9pbmZvL3Jlc3VsdCcsIGl0ZW0uaURfR1VJRF1cIiBjbGFzcz1cImJ0biBidG4tc20gcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvYW5zd2Vycy5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIiFpdGVtLmlzRWxpbWluYXRlZCYmaXRlbS5hbGxvd0VsaW1pbmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7e3RoaXMubCgnRWxpbWluYXRlSGludCcpfX1cIiBjbGFzcz1cImJ0biBidG4tc20gcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIiAoY2xpY2spPVwic2hvd0VsaW1pbmF0ZVN1Ym1pc3Npb25Nb2RhbChpdGVtLmlEX0dVSUQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHByZXZlbnRkb3VibGVjbGlja1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvdW5saW5rLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiaXRlbS5pc0VsaW1pbmF0ZWQmJml0ZW0uYWxsb3dFbGltaW5hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3t0aGlzLmwoJ1VuRWxpbWluYXRlJyl9fVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIChjbGljayk9XCJzaG93VW5FbGltaW5hdGVTdWJtaXNzaW9uTW9kYWwoaXRlbS5pRF9HVUlEKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBwcmV2ZW50ZG91YmxlY2xpY2sgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvbGluay5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuZ2JUb29sdGlwPVwie3tsKCdEZWxldGUnKX19XCIgY2xhc3M9XCJidG4gYnRuLXNtIHAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgKGNsaWNrKT1cInNob3dEZWxldGVTdWJtaXNzaW9uTW9kYWwoaXRlbS5pRF9HVUlEKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBwcmV2ZW50ZG91YmxlY2xpY2sgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvVHJhc2guc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0U3VibWlzc2lvbkxpc3RpbmdSZXN1bHQoJGV2ZW50KVwiIFtvcHRpb25zXT1cInBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dyb3VwXT1cImZpbHRlcnNTdWJtaXNzaW9uRm9ybVwiICNwYWdpbmdTdWJtaXNzaW9uVmlld0VsZW1lbnQ+PC9CQlNGLVBhZ2luZz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtbm8tcmVzdWx0cyAqbmdJZj1cInBhZ2luZ1N1Ym1pc3Npb25SZXN1bHQubGVuZ3RoID09IDBcIj48L2FwcC1uby1yZXN1bHRzPlxyXG5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJzaG93T3ZlcnZpZXdcIiBbZGVzdHJveU9uSGlkZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgbmdiTmF2TGluayAoY2xpY2spPVwibG9hZFN1cnZleU92ZXJ2aWV3KClcIj5cclxuICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgIHt7bChcIk92ZXJ2aWV3XCIpIH19XHJcbiAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW5mb1wiIG5nYk5hdkNvbnRlbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LXRpdGxlXCI+IHt7bChcIlF1ZXN0aW9uc1wiKSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBuZ2JOYXYgI25hdj1cIm5nYk5hdlwiIGNsYXNzPVwibmF2LXBpbGxzIGN1c3RvbS1uYXZzXCIgb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxpIG5nYk5hdkl0ZW09XCJ7e2l0ZW0ubG9jYWxpemVkVGl0bGV9fVwiIFtkZXN0cm95T25IaWRlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uT3ZlcnZpZXdSZXN1bHRcIiAoY2xpY2spPVwibG9hZENoYXJ0KGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5nYk5hdkxpbms+e3tpdGVtLmxvY2FsaXplZFRpdGxlfX08L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LXRpdGxlXCI+e3tsKFwiT3ZlcnZpZXdcIikgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2hhcnRkaXZcIiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDQwMHB4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhpZGUtbG9nb1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC10aXRsZVwiPnt7bChcIlNjb3JlXCIpIH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaGFydE92ZXJ2aWV3XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA0MDBweFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRlLWxvZ29cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIDwvdWw+XHJcblxyXG5cclxuICAgICAgPGRpdiBbbmdiTmF2T3V0bGV0XT1cIm5hdlwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuICA8YXBwLWVkaXQtc3VydmV5ICNlZGl0TW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nRWxlbWVudFwiIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0hhbmRsZXJcIj48L2FwcC1lZGl0LXN1cnZleT5cclxuICA8YXBwLWRlbGV0ZS1zdXJ2ZXkgI2RlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdFbGVtZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzRGVsZXRlSGFuZGxlclwiPjwvYXBwLWRlbGV0ZS1zdXJ2ZXk+XHJcbiAgPGFwcC1hZGQtcXVlc3Rpb24gI2FkZFF1ZXN0aW9uTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nUXVlc3Rpb25FbGVtZW50XCIgW29uU3VjY2Vzc0FkZEhhbmRsZXJdPVwib25TdWNjZXNzQWRkUXVlc3Rpb25IYW5kbGVyXCI+PC9hcHAtYWRkLXF1ZXN0aW9uPlxyXG4gIDxhcHAtZWRpdC1xdWVzdGlvbiAjZWRpdFF1ZXN0aW9uTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nUXVlc3Rpb25FbGVtZW50XCIgW29uU3VjY2Vzc0VkaXRIYW5kbGVyXT1cIm9uU3VjY2Vzc0VkaXRRdWVzdGlvbkhhbmRsZXJcIj48L2FwcC1lZGl0LXF1ZXN0aW9uPlxyXG4gIDxhcHAtZGVsZXRlLXF1ZXN0aW9uICNkZWxldGVRdWVzdGlvbk1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ1F1ZXN0aW9uRWxlbWVudFwiIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0RlbGV0ZVF1ZXN0aW9uSGFuZGxlclwiPjwvYXBwLWRlbGV0ZS1xdWVzdGlvbj5cclxuICA8YXBwLXB1Ymxpc2gtc3VydmV5ICNhZGRQdWJsaXNoTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nRWxlbWVudFwiIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0hhbmRsZXJcIiAqbmdJZj1cImxvYWRJbmZvXCIgW3Nob3dUb2dnbGVdPVwic3VydmV5LmlzU2hvd1RvZ2dsZU9mU2NvcmVSZXN1bHRBZnRlclN1Ym1pc3Npb25cIj5cclxuICA8L2FwcC1wdWJsaXNoLXN1cnZleT5cclxuICA8YXBwLXVucHVibGlzaC1zdXJ2ZXkgI2FkZFVuUHVibGlzaE1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ0VsZW1lbnRcIiBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NIYW5kbGVyXCI+XHJcbiAgPC9hcHAtdW5wdWJsaXNoLXN1cnZleT5cclxuICA8YXBwLWRlbGV0ZS1zdWJtaXNzaW9uICNkZWxldGVTdWJtaXNzaW9uTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nU3VibWlzc2lvbkVsZW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzRGVsZXRlSGFuZGxlclN1Ym1pc3Npb25cIj48L2FwcC1kZWxldGUtc3VibWlzc2lvbj5cclxuICA8YXBwLWVsaW1pbmF0ZS1zdWJtaXNzaW9uICNlbGltaW5hdGVNb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdTdWJtaXNzaW9uRWxlbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NIYW5kbGVyXCI+PC9hcHAtZWxpbWluYXRlLXN1Ym1pc3Npb24+XHJcbiAgPGFwcC11bkVsaW1pbmF0ZS1zdWJtaXNzaW9uICN1bkVsaW1pbmF0ZU1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ1N1Ym1pc3Npb25FbGVtZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzSGFuZGxlclwiPjwvYXBwLXVuRWxpbWluYXRlLXN1Ym1pc3Npb24+XHJcbiJdfQ==
|
|
498
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWluZm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vc3VydmV5LWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXkvc3VydmV5LWluZm8vc3VydmV5LWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUE0QixXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBbUIsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hPLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxLQUFLLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxrQkFBa0IsTUFBTSxxQ0FBcUMsQ0FBQztBQU9yRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7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OlsiaW1wb3J0IHsgUHVibGlzaFN1cnZleUNvbXBvbmVudCB9IGZyb20gJy4vcHVibGlzaC1zdXJ2ZXkvcHVibGlzaC1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkUXVlc3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2FkZC1xdWVzdGlvbi9hZGQtcXVlc3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGVsZXRlUXVlc3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2RlbGV0ZS1xdWVzdGlvbi9kZWxldGUtcXVlc3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRWRpdFF1ZXN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0LXF1ZXN0aW9uL2VkaXQtcXVlc3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRWRpdFN1cnZleUNvbXBvbmVudCB9IGZyb20gJy4vLi4vZWRpdC1zdXJ2ZXkvZWRpdC1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGVsZXRlU3VydmV5Q29tcG9uZW50IH0gZnJvbSAnLi8uLi9kZWxldGUtc3VydmV5L2RlbGV0ZS1zdXJ2ZXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIE5nWm9uZSwgT25Jbml0LCBQTEFURk9STV9JRCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQsIEJyZWFkQ3J1bWIsIENvbnRyb2xMYXlvdXQsIERyb3Bkb3duQWN0aW9uSXRlbSwgRmlsdGVySXRlbSwgRmlsdGVyVHlwZSwgRm9yY2VEaXJlY3Rpb24sIElucHV0VHlwZSwgUGFnZUhlYWRlck9wdGlvbnMsIFBhZ2luZ0NvbXBvbmVudCwgUGFnaW5nT3B0aW9ucywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCAqIGFzIGFtNSBmcm9tIFwiQGFtY2hhcnRzL2FtY2hhcnRzNVwiO1xyXG5pbXBvcnQgKiBhcyBhbTV4eSBmcm9tIFwiQGFtY2hhcnRzL2FtY2hhcnRzNS94eVwiO1xyXG5pbXBvcnQgYW01dGhlbWVzX0FuaW1hdGVkIGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM1L3RoZW1lcy9BbmltYXRlZFwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWFzdGVyTGF5b3V0U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IFVuUHVibGlzaFN1cnZleUNvbXBvbmVudCB9IGZyb20gJy4vdW5wdWJsaXNoLXN1cnZleS91bnB1Ymxpc2gtc3VydmV5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERlbGV0ZVN1Ym1pc3Npb25Db21wb25lbnQgfSBmcm9tICcuLi9zdWJtaXNzaW9ucy9kZWxldGUtc3VibWlzc2lvbi9kZWxldGUtc3VibWlzc2lvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbGltaW5hdGVTdWJtaXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vc3VibWlzc2lvbnMvZWxpbWluYXRlLXN1Ym1pc3Npb24vZWxpbWluYXRlLXN1Ym1pc3Npb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVW5FbGltaW5hdGVTdWJtaXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vc3VibWlzc2lvbnMvdW5lbGltaW5hdGUtc3VibWlzc2lvbi91bmVsaW1pbmF0ZS1zdWJtaXNzaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1ZGllbmNlVHlwZSwgU3VydmV5T3B0aW9uVHlwZSwgU3VydmV5U3RhdHVzRW51bSB9IGZyb20gJy4uLy4uLy4uL0VudW1zL0VudW1zJztcclxuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EVE8gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvU3VydmV5TW9kZWxzL3N1cnZleS1xdWVzdGlvbic7XHJcbmltcG9ydCB7IFN1cnZleVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9TZXJ2aWNlcy9zdXJ2ZXkuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3N1cnZleS1xdWVzdGlvbi5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zdXJ2ZXktaW5mbycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N1cnZleS1pbmZvLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdXJ2ZXktaW5mby5jb21wb25lbnQuY3NzJ11cclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlJbmZvQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcGFnZUhlYWRlck9wdGlvbnM6IFBhZ2VIZWFkZXJPcHRpb25zO1xyXG4gIGJyZWFkQ3J1bWI6IEJyZWFkQ3J1bWJbXTtcclxuICBzdXJ2ZXlGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQFZpZXdDaGlsZCgncGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcbiAgQFZpZXdDaGlsZCgnZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogRGVsZXRlU3VydmV5Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0TW9kYWw6IEVkaXRTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdFF1ZXN0aW9uTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgZWRpdFF1ZXN0aW9uTW9kYWw6IEVkaXRRdWVzdGlvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdkZWxldGVRdWVzdGlvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRlbGV0ZVF1ZXN0aW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBEZWxldGVRdWVzdGlvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdhZGRRdWVzdGlvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIEFkZFF1ZXN0aW9uQ29tcG9uZW50OiBBZGRRdWVzdGlvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdhZGRQdWJsaXNoTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgYWRkUHVibGlzaE1vZGFsOiBQdWJsaXNoU3VydmV5Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2FkZFVuUHVibGlzaE1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFkZFVuUHVibGlzaE1vZGFsOiBVblB1Ymxpc2hTdXJ2ZXlDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZGVsZXRlU3VibWlzc2lvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRlbGV0ZVN1Ym1pc3Npb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2w6IERlbGV0ZVN1Ym1pc3Npb25Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZWxpbWluYXRlTW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgZWxpbWluYXRlU3VibWlzc2lvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogRWxpbWluYXRlU3VibWlzc2lvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCd1bkVsaW1pbmF0ZU1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIHVuRWxpbWluYXRlU3VibWlzc2lvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogVW5FbGltaW5hdGVTdWJtaXNzaW9uQ29tcG9uZW50O1xyXG5cclxuICBUZXh0Qm94V2l0aEV4dGVybmFsVVJMOiBUZXh0Qm94T3B0aW9ucztcclxuICBUZXh0Qm94V2l0aEludGVybmFsVVJMOiBUZXh0Qm94T3B0aW9ucztcclxuICB1cmxGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgU2VhcmNoVGV4dEJveCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIEVOOiBib29sZWFuO1xyXG4gIFNlYXJjaFRleHRCb3hPcHRpb25zOiBUZXh0Qm94T3B0aW9ucztcclxuICBwcml2YXRlIHJvb3QhOiBhbTUuUm9vdDtcclxuICBzdXJ2ZXlJRDogYW55O1xyXG4gIHN1cnZleTogYW55O1xyXG4gIGxvYWRJbmZvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIFN1cnZleVN0YXR1c0VudW0gPSBTdXJ2ZXlTdGF0dXNFbnVtO1xyXG4gIHB1YmxpYyBBdWRpZW5jZVR5cGVFbnVtID0gQXVkaWVuY2VUeXBlO1xyXG4gIHN1cnZleVF1ZXN0aW9uczogU3VydmV5UXVlc3Rpb25EVE9bXSA9IFtdO1xyXG4gIGFwaVF1ZXN0aW9uVVJMID0gdGhpcy5zdXJ2ZXlRdWVzdGlvblNlcnZpY2UuYXBpVVJMO1xyXG4gIGZpbHRlcnNRdWVzdGlvbkZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBjYW5UYWtlU3VydmV5OiBib29sZWFuID0gZmFsc2VcclxuICAvL1F1ZXN0aW9ucyBTZWN0aW9uXHJcbiAgQFZpZXdDaGlsZCgncGFnaW5nUXVlc3Rpb25WaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwYWdpbmdRdWVzdGlvbkVsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG4gIHBhZ2luZ1F1ZXN0aW9uUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIHBhZ2luZ1F1ZXN0aW9uT3B0aW9uczogUGFnaW5nT3B0aW9ucztcclxuICBzaG93UGFnZUNvbnRlbnQ6IGJvb2xlYW47XHJcbiAgY2FuRWRpdFF1ZXN0aW9uOiBib29sZWFuO1xyXG4gIGNhbkFkZFF1ZXN0aW9uOiBib29sZWFuO1xyXG4gIGNhbkRlbGV0ZVF1ZXN0aW9uOiBib29sZWFuO1xyXG4gIHNlYXJjaFF1ZXN0aW9uVGV4dEZpbHRlcjogYW55O1xyXG4gIFN1cnZleUlET3B0aW9uczogYW55O1xyXG4gIHNlYXJjaFN1cnZleUlERmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG5cclxuXHJcbiAgLy9TdWJtaXNzaW9uIFNlY3Rpb25cclxuICBmaWx0ZXJzU3VibWlzc2lvbkZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBAVmlld0NoaWxkKCdwYWdpbmdTdWJtaXNzaW9uVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nU3VibWlzc2lvbkVsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG4gIHBhZ2luZ1N1Ym1pc3Npb25SZXN1bHQ6IGFueVtdID0gW107XHJcbiAgcGFnaW5nU3VibWlzc2lvbk9wdGlvbnM6IFBhZ2luZ09wdGlvbnM7XHJcbiAgc2hvd1N1Ym1pc3Npb25QYWdlQ29udGVudDogYm9vbGVhbjtcclxuICBzZWFyY2hTdWJtaXNzaW9uVGV4dEZpbHRlcjogRmlsdGVySXRlbTtcclxuICBzZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgcXVlc3Rpb25PdmVydmlld1Jlc3VsdDogYW55O1xyXG4gIHBhZ2luZ1F1ZXN0aW9uUmVzdWx0T3JpZ2luYWw6IGFueTtcclxuICBzaG93T3ZlcnZpZXc6IGJvb2xlYW47XHJcbiAgc2hvd05hdjogYm9vbGVhblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQsIHByaXZhdGUgem9uZTogTmdab25lLCBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgICAsIHByaXZhdGUgbWFzdGVyTGF5b3V0U2VydmljZTogTWFzdGVyTGF5b3V0U2VydmljZSwgcHJpdmF0ZSBzdXJ2ZXlTZXJ2aWNlOiBTdXJ2ZXlTZXJ2aWNlLCBwcml2YXRlIHN1cnZleVF1ZXN0aW9uU2VydmljZTogU3VydmV5UXVlc3Rpb25TZXJ2aWNlLCBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgdGhpcy5yb3V0ZXIucm91dGVSZXVzZVN0cmF0ZWd5LnNob3VsZFJldXNlUm91dGUgPSAoKSA9PiBmYWxzZTtcclxuICAgIHRoaXMuc3VydmV5SUQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmFtc1tcImlkXCJdO1xyXG4gIH1cclxuICAvLyBSdW4gdGhlIGZ1bmN0aW9uIG9ubHkgaW4gdGhlIGJyb3dzZXJcclxuICBicm93c2VyT25seShmOiAoKSA9PiB2b2lkKSB7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgIGYoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbWF5YmVEaXNwb3NlUm9vdChkaXZJZCkge1xyXG4gICAgYW01LmFycmF5LmVhY2goYW01LnJlZ2lzdHJ5LnJvb3RFbGVtZW50cywgKHJvb3QpID0+IHtcclxuICAgICAgaWYgKHJvb3QpIHtcclxuICAgICAgICBpZiAocm9vdC5kb20uaWQgPT0gZGl2SWQpIHtcclxuICAgICAgICAgIHJvb3QuZGlzcG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIH07XHJcblxyXG4gIGxvYWRDaGFydChpdGVtKSB7XHJcblxyXG4gICAgLy8gQ2hhcnQgY29kZSBnb2VzIGluIGhlcmVcclxuICAgIHRoaXMuYnJvd3Nlck9ubHkoKCkgPT4ge1xyXG4gICAgICBsZXQgbmFtZSA9IGBjaGFydGRpdmA7XHJcbiAgICAgIHRoaXMubWF5YmVEaXNwb3NlUm9vdChuYW1lKVxyXG4gICAgICBsZXQgcm9vdCA9IGFtNS5Sb290Lm5ldyhuYW1lKTtcclxuICAgICAgcm9vdC5zZXRUaGVtZXMoW2FtNXRoZW1lc19BbmltYXRlZC5uZXcocm9vdCldKTtcclxuXHJcbiAgICAgIGxldCBjaGFydCA9IHJvb3QuY29udGFpbmVyLmNoaWxkcmVuLnB1c2goXHJcbiAgICAgICAgYW01eHkuWFlDaGFydC5uZXcocm9vdCwge1xyXG4gICAgICAgICAgcGFuWDogZmFsc2UsXHJcbiAgICAgICAgICBwYW5ZOiBmYWxzZSxcclxuICAgICAgICAgIHdoZWVsWDogJ25vbmUnLFxyXG4gICAgICAgICAgd2hlZWxZOiAnbm9uZScsXHJcbiAgICAgICAgICBwYWRkaW5nQm90dG9tOiA1MCxcclxuICAgICAgICAgIHBhZGRpbmdUb3A6IDQwLFxyXG4gICAgICAgICAgbGF5b3V0OiByb290LnZlcnRpY2FsTGF5b3V0LFxyXG5cclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuICAgICAgLy8gRGVmaW5lIGRhdGFcclxuICAgICAgbGV0IGRhdGEgPSBpdGVtLm9wdGlvbnMubWFwKHZhbHVlID0+IHsgcmV0dXJuIHsgJ25hbWUnOiB2YWx1ZS5sb2NhbGl6ZWRUaXRsZSwgJ3ZhbHVlJzogdmFsdWUubnVtYmVyT2ZTZWxlY3RlZFRpbWUgfSB9KVxyXG4gICAgICAvLyBDcmVhdGUgWS1heGlzXHJcbiAgICAgIGxldCB5QXhpcyA9IGNoYXJ0LnlBeGVzLnB1c2goXHJcbiAgICAgICAgYW01eHkuVmFsdWVBeGlzLm5ldyhyb290LCB7XHJcbiAgICAgICAgICBiYXNlVmFsdWU6IDAsXHJcbiAgICAgICAgICBtYXhQcmVjaXNpb246IDAsXHJcbiAgICAgICAgICBleHRyYVRvb2x0aXBQcmVjaXNpb246IDEwMCxcclxuICAgICAgICAgIHJlbmRlcmVyOiBhbTV4eS5BeGlzUmVuZGVyZXJZLm5ldyhyb290LCB7fSlcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuICAgICAgLy8gQ3JlYXRlIFgtQXhpc1xyXG4gICAgICBsZXQgeEF4aXMgPSBjaGFydC54QXhlcy5wdXNoKFxyXG4gICAgICAgIGFtNXh5LkNhdGVnb3J5QXhpcy5uZXcocm9vdCwge1xyXG4gICAgICAgICAgcmVuZGVyZXI6IGFtNXh5LkF4aXNSZW5kZXJlclgubmV3KHJvb3QsIHt9KSxcclxuICAgICAgICAgIGNhdGVnb3J5RmllbGQ6IFwibmFtZVwiXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgeEF4aXMuZGF0YS5zZXRBbGwoZGF0YSk7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgc2VyaWVzXHJcbiAgICAgIGxldCBzZXJpZXMxID0gY2hhcnQuc2VyaWVzLnB1c2goXHJcbiAgICAgICAgYW01eHkuQ29sdW1uU2VyaWVzLm5ldyhyb290LCB7XHJcbiAgICAgICAgICBuYW1lOiBcIlF1ZXN0aW9uIE9wdGlvbnNcIixcclxuICAgICAgICAgIHhBeGlzOiB4QXhpcyxcclxuICAgICAgICAgIHlBeGlzOiB5QXhpcyxcclxuICAgICAgICAgIHZhbHVlWUZpZWxkOiBcInZhbHVlXCIsXHJcbiAgICAgICAgICBjYXRlZ29yeVhGaWVsZDogXCJuYW1lXCIsXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgXHJcblxyXG4gICAgICBzZXJpZXMxLmRhdGEuc2V0QWxsKGRhdGEpO1xyXG4gICAgICBzZXJpZXMxLnNldChcImZpbGxcIiwgYW01LmNvbG9yKFwiI2I2OGEzNVwiKSk7IC8vIHNldCBTZXJpZXMgY29sb3IgdG8gcmVkXHJcbiAgICAgIHNlcmllczEuc2V0KFwic3Ryb2tlXCIsIGFtNS5jb2xvcihcIiNiNjhhMzVcIikpOyAvLyBzZXQgU2VyaWVzIGNvbG9yIHRvIHJlZFxyXG5cclxuICAgICAgLy8gQWRkIGxlZ2VuZFxyXG4gICAgICBsZXQgbGVnZW5kID0gY2hhcnQuY2hpbGRyZW4ucHVzaChhbTUuTGVnZW5kLm5ldyhyb290LCB7fSkpO1xyXG4gICAgICBsZWdlbmQuZGF0YS5wdXNoKHNlcmllczEpO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLkVOKSB7XHJcbiAgICAgICAgbGVnZW5kLmxhYmVscy50ZW1wbGF0ZS5zZXRBbGwoe1xyXG4gICAgICAgICAgdGV4dEFsaWduOiAncmlnaHQnLFxyXG4gICAgICAgICAgeDogNTAsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbGVnZW5kLnZhbHVlTGFiZWxzLnRlbXBsYXRlLnNldEFsbCh7XHJcbiAgICAgICAgIHRleHRBbGlnbjpcInJpZ2h0XCIsXHJcbiAgICAgICAgIHBhZGRpbmdSaWdodDoxNVxyXG4gICAgICAgIH0pO1xyXG4gICAgICBsZWdlbmQuaXRlbUNvbnRhaW5lcnMudGVtcGxhdGUuc2V0QWxsKHtcclxuICAgICAgICByZXZlcnNlQ2hpbGRyZW46IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucm9vdCA9IHJvb3Q7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gLy9jaGFydCBvdmVydmlld1xyXG4gICAgdGhpcy5icm93c2VyT25seSgoKSA9PiB7XHJcbiAgICAgIGxldCBuYW1lT3ZlclZpZXcgPSBgY2hhcnRPdmVydmlld2A7XHJcbiAgICAgIHRoaXMubWF5YmVEaXNwb3NlUm9vdChuYW1lT3ZlclZpZXcpXHJcbiAgICAgIGxldCByb290ID0gYW01LlJvb3QubmV3KG5hbWVPdmVyVmlldyk7XHJcblxyXG4gICAgICByb290LnNldFRoZW1lcyhbYW01dGhlbWVzX0FuaW1hdGVkLm5ldyhyb290KV0pO1xyXG5cclxuICAgICAgbGV0IGNoYXJ0ID0gcm9vdC5jb250YWluZXIuY2hpbGRyZW4ucHVzaChcclxuICAgICAgICBhbTV4eS5YWUNoYXJ0Lm5ldyhyb290LCB7XHJcbiAgICAgICAgICBwYW5ZOiBmYWxzZSxcclxuICAgICAgICAgIGxheW91dDogcm9vdC52ZXJ0aWNhbExheW91dFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG5cclxuICAgICAgLy8gRGVmaW5lIGRhdGFcclxuXHJcbiAgICAgIGxldCBkYXRhID0gW107XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGl0ZW0ucmVzdWx0cykge1xyXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbS5yZXN1bHRzLCBrZXkpKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW0ucmVzdWx0c1trZXldO1xyXG4gICAgICAgICAgbGV0IG9iamVjdCA9IHtcclxuICAgICAgICAgICAgY2F0ZWdvcnk6IFwiPj1cIiArIGtleSxcclxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkYXRhLnB1c2gob2JqZWN0KVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQ3JlYXRlIFktYXhpc1xyXG4gICAgICBsZXQgeUF4aXMgPSBjaGFydC55QXhlcy5wdXNoKFxyXG4gICAgICAgIGFtNXh5LlZhbHVlQXhpcy5uZXcocm9vdCwge1xyXG4gICAgICAgICAgYmFzZVZhbHVlOiAwLFxyXG4gICAgICAgICAgbWF4UHJlY2lzaW9uOiAwLFxyXG4gICAgICAgICAgZXh0cmFUb29sdGlwUHJlY2lzaW9uOiAxMDAsXHJcbiAgICAgICAgICByZW5kZXJlcjogYW01eHkuQXhpc1JlbmRlcmVyWS5uZXcocm9vdCwge30pXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBYLUF4aXNcclxuICAgICAgbGV0IHhBeGlzID0gY2hhcnQueEF4ZXMucHVzaChcclxuICAgICAgICBhbTV4eS5DYXRlZ29yeUF4aXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIHJlbmRlcmVyOiBhbTV4eS5BeGlzUmVuZGVyZXJYLm5ldyhyb290LCB7fSksXHJcbiAgICAgICAgICBjYXRlZ29yeUZpZWxkOiBcImNhdGVnb3J5XCJcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICB4QXhpcy5kYXRhLnNldEFsbChkYXRhKTtcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBzZXJpZXNcclxuICAgICAgbGV0IHNlcmllczEgPSBjaGFydC5zZXJpZXMucHVzaChcclxuICAgICAgICBhbTV4eS5Db2x1bW5TZXJpZXMubmV3KHJvb3QsIHtcclxuICAgICAgICAgIG5hbWU6IFwiU2NvcmVcIixcclxuICAgICAgICAgIHhBeGlzOiB4QXhpcyxcclxuICAgICAgICAgIHlBeGlzOiB5QXhpcyxcclxuICAgICAgICAgIHZhbHVlWUZpZWxkOiBcInZhbHVlXCIsXHJcbiAgICAgICAgICBjYXRlZ29yeVhGaWVsZDogXCJjYXRlZ29yeVwiLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICAgIHNlcmllczEuZGF0YS5zZXRBbGwoZGF0YSk7XHJcbiAgICAgIHNlcmllczEuc2V0KFwiZmlsbFwiLCBhbTUuY29sb3IoXCIjYjY4YTM1XCIpKTsgLy8gc2V0IFNlcmllcyBjb2xvciB0byByZWRcclxuICAgICAgc2VyaWVzMS5zZXQoXCJzdHJva2VcIiwgYW01LmNvbG9yKFwiI2I2OGEzNVwiKSk7IC8vIHNldCBTZXJpZXMgY29sb3IgdG8gcmVkXHJcbiAgICAgIC8vIEFkZCBsZWdlbmRcclxuICAgICAgbGV0IGxlZ2VuZCA9IGNoYXJ0LmNoaWxkcmVuLnB1c2goYW01LkxlZ2VuZC5uZXcocm9vdCwge30pKTtcclxuICAgICAgbGVnZW5kLmRhdGEuc2V0QWxsKGNoYXJ0LnNlcmllcy52YWx1ZXMpO1xyXG4gICAgICBpZiAoIXRoaXMuRU4pIHtcclxuICAgICAgICBsZWdlbmQubGFiZWxzLnRlbXBsYXRlLnNldEFsbCh7XHJcbiAgICAgICAgICB0ZXh0QWxpZ246ICdyaWdodCcsXHJcbiAgICAgICAgICB4OiA1MCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBsZWdlbmQudmFsdWVMYWJlbHMudGVtcGxhdGUuc2V0QWxsKHtcclxuICAgICAgICAgdGV4dEFsaWduOlwicmlnaHRcIixcclxuICAgICAgICAgcGFkZGluZ1JpZ2h0OjE1XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGxlZ2VuZC5pdGVtQ29udGFpbmVycy50ZW1wbGF0ZS5zZXRBbGwoe1xyXG4gICAgICAgIHJldmVyc2VDaGlsZHJlbjogdHJ1ZSxcclxuICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yb290ID0gcm9vdDtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBDbGVhbiB1cCByb290IGVsZW1lbnQgd2hlbiB0aGUgY29tcG9uZW50IGlzIHJlbW92ZWRcclxuICAgIHRoaXMuYnJvd3Nlck9ubHkoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5yb290KSB7XHJcbiAgICAgICAgdGhpcy5yb290LmRpc3Bvc2UoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3VydmV5U2VydmljZS5nZXRJbmZvKHRoaXMuc3VydmV5SUQpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLnN1cnZleSA9IHJlc3VsdDtcclxuXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoRXh0ZXJuYWxVUkwuTmFtZSA9IFwiVGV4dEJveFdpdGhFeHRlcm5hbFVSTFwiXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTC5MYWJlbEtleSA9IFwiRXh0ZXJuYWxfVVJMXCJcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoRXh0ZXJuYWxVUkwuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhFeHRlcm5hbFVSTC5Gb3JjZURpcmVjdGlvbiA9IEZvcmNlRGlyZWN0aW9uLkVuZ2xpc2hcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLkVuYWJsZUNvcHlUb0NsaXBib2FyZCA9IHRydWVcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEV4dGVybmFsVVJMLlZhbHVlID0gdGhpcy5zdXJ2ZXkuZXh0ZXJuYWxVUkxcclxuXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoSW50ZXJuYWxVUkwuTmFtZSA9IFwiVGV4dEJveFdpdGhJbnRlcm5hbFVSTFwiXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTC5MYWJlbEtleSA9IFwiSW50ZXJuYWxfVVJMXCJcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLlRleHRCb3hXaXRoSW50ZXJuYWxVUkwuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsXHJcbiAgICAgIHRoaXMuVGV4dEJveFdpdGhJbnRlcm5hbFVSTC5Gb3JjZURpcmVjdGlvbiA9IEZvcmNlRGlyZWN0aW9uLkVuZ2xpc2hcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLkVuYWJsZUNvcHlUb0NsaXBib2FyZCA9IHRydWVcclxuICAgICAgdGhpcy5UZXh0Qm94V2l0aEludGVybmFsVVJMLlZhbHVlID0gdGhpcy5zdXJ2ZXkuaW50ZXJuYWxVUkxcclxuXHJcblxyXG4gICAgICB0aGlzLmJyZWFkQ3J1bWIgPSBbXTtcclxuICAgICAgdGhpcy5icmVhZENydW1iLnB1c2gobmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiSG9tZVwiKSwgZmFsc2UsIFwiL1wiKSwgbmV3IEJyZWFkQ3J1bWIodGhpcy5sKFwiU3VydmV5c19IZWFkZXJcIiksIGZhbHNlLCAnLi4vLi4vJyksIG5ldyBCcmVhZENydW1iKHRoaXMubChcIlN1cnZleV9EZXRhaWxzXCIpLCB0cnVlKSk7XHJcbiAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMgPSBuZXcgUGFnZUhlYWRlck9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5UaXRsZVZhbHVlID10aGlzLnN1cnZleS5sb2NhbGl6ZWRUaXRsZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5TZWFyY2hUZXh0Qm94LkFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkJyZWFkQ3J1bWIuQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5CcmVhZENydW1iLkJyZWFkQ3J1bWJJdGVtcyA9IHRoaXMuYnJlYWRDcnVtYjtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuQWN0aXZlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5wYWdlSGVhZGVyT3B0aW9ucy5Ecm9wRG93bkFjdGlvbnMuRHJvcGRvd25BY3Rpb25JdGVtcy5wdXNoKFxyXG4gICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRWRpdFwiKSwgXCIvYXNzZXRzL2ltYWdlcy9FZGl0LnN2Z1wiLCB0aGlzLnNob3dFZGl0TW9kYWwpLFxyXG4gICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRGVsZXRlXCIpLCAnL2Fzc2V0cy9pbWFnZXMvVHJhc2guc3ZnJywgdGhpcy5zaG93RGVsZXRlTW9kYWwpLFxyXG4gICAgICAgIG5ldyBEcm9wZG93bkFjdGlvbkl0ZW0odGhpcy5sKFwiRXhwb3J0XCIpLCAnL2Fzc2V0cy9pbWFnZXMvZXhwb3J0LnN2ZycsIHRoaXMuZXhwb3J0KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICBpZiAodGhpcy5zdXJ2ZXkudG90YWxRdWVzdGlvbkNvdW50ID4gMClcclxuICAgICAgICB0aGlzLnBhZ2VIZWFkZXJPcHRpb25zLkRyb3BEb3duQWN0aW9ucy5Ecm9wZG93bkFjdGlvbkl0ZW1zLnB1c2goXHJcbiAgICAgICAgICBuZXcgRHJvcGRvd25BY3Rpb25JdGVtKCB0aGlzLmwoXCJQcmV2aWV3XCIpLCAnL2Fzc2V0cy9pbWFnZXMvdmlld3Muc3ZnJywgdGhpcy5wcmV2aWV3U3VydmV5KSk7XHJcbiAgICAgIGlmICh0aGlzLnN1cnZleS5zdGF0dXNJdGVtSUQudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX1B1Ymxpc2hlZC50b0xvY2FsZUxvd2VyQ2FzZSgpKVxyXG4gICAgICAgIHRoaXMuY2FuVGFrZVN1cnZleSA9IHRydWVcclxuXHJcbiAgICAgIGlmICh0aGlzLnN1cnZleS5zdGF0dXNJdGVtSUQudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0RyYWZ0LnRvTG9jYWxlTG93ZXJDYXNlKClcclxuICAgICAgICB8fCB0aGlzLnN1cnZleS5zdGF0dXNJdGVtSUQudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0Nsb3NlZC50b0xvY2FsZUxvd2VyQ2FzZSgpKVxyXG4gICAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRHJvcERvd25BY3Rpb25zLkRyb3Bkb3duQWN0aW9uSXRlbXMucHVzaChuZXcgRHJvcGRvd25BY3Rpb25JdGVtKHRoaXMubChcIlB1Ymxpc2hcIiksICcvYXNzZXRzL2ltYWdlcy9TdWJtaXQuc3ZnJywgdGhpcy5zaG93UHVibGlzaE1vZGFsKSlcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMucGFnZUhlYWRlck9wdGlvbnMuRHJvcERvd25BY3Rpb25zLkRyb3Bkb3duQWN0aW9uSXRlbXMucHVzaChuZXcgRHJvcGRvd25BY3Rpb25JdGVtKHRoaXMubChcIlVuUHVibGlzaFwiKSwgJy9hc3NldHMvaW1hZ2VzL3VubGluay5zdmcnLCB0aGlzLnNob3dVblB1Ymxpc2hNb2RhbCksKVxyXG5cclxuICAgICAgdGhpcy5FTiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VFbmdsaXNoKCk7XHJcbiAgICAgIHRoaXMubG9hZFF1ZXN0aW9uU2VjdGlvbigpO1xyXG4gICAgICB0aGlzLmxvYWRTdWJtaXNzaW9uU2VjdGlvbigpO1xyXG4gICAgICB0aGlzLnBhZ2VUaXRsZSA9IHRoaXMuc3VydmV5LmxvY2FsaXplZFRpdGxlXHJcbiAgICAgIHRoaXMudXBkYXRlUGFnZVRpdGxlKHRoaXMuc3VydmV5LmxvY2FsaXplZFRpdGxlKTtcclxuICAgICAgdGhpcy5sb2FkSW5mbyA9IHRydWU7XHJcblxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuICBzaG93RWRpdE1vZGFsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5lZGl0TW9kYWwuc2hvd0VkaXRNb2RhbCh0aGlzLnN1cnZleUlEKTtcclxuICB9XHJcbiAgc2hvd0RlbGV0ZU1vZGFsID0gKCkgPT4ge1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd0RlbGV0ZU1vZGFsKHRoaXMuc3VydmV5SUQpO1xyXG5cclxuICB9XHJcbiAgc2hvd0VkaXRRdWVzdGlvbk1vZGFsKGlkLGlzVmlld09ubHkpIHtcclxuICAgIHRoaXMuZWRpdFF1ZXN0aW9uTW9kYWwuZWRpdE1vZGFsKGlkLCB0aGlzLnN1cnZleS5hdWRpZW5jZUl0ZW1JRCxpc1ZpZXdPbmx5KTtcclxuXHJcbiAgfVxyXG4gIHNob3dBZGRRdWVzdGlvbk1vZGFsKCkge1xyXG4gICAgdGhpcy5BZGRRdWVzdGlvbkNvbXBvbmVudC5hZGRNb2RhbCh0aGlzLnN1cnZleUlELCB0aGlzLnN1cnZleS5hdWRpZW5jZUl0ZW1JRCk7XHJcblxyXG4gIH1cclxuICBzaG93RGVsZXRlUXVlc3Rpb25Nb2RhbCA9IChpZCkgPT4ge1xyXG4gICAgdGhpcy5kZWxldGVRdWVzdGlvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93RGVsZXRlTW9kYWwoaWQpO1xyXG5cclxuICB9XHJcbiAgc2hvd1B1Ymxpc2hNb2RhbCA9ICgpID0+IHtcclxuICAgIHRoaXMuYWRkUHVibGlzaE1vZGFsLnB1Ymxpc2hNb2RhbCh0aGlzLnN1cnZleUlELCB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0KTtcclxuXHJcbiAgfVxyXG4gIHNob3dVblB1Ymxpc2hNb2RhbCA9ICgpID0+IHtcclxuICAgIHRoaXMuYWRkVW5QdWJsaXNoTW9kYWwuc2hvd0NvbmZpcm1hdGlvbk1vZGFsKHRoaXMuc3VydmV5SUQpO1xyXG5cclxuICB9XHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0W2luZGV4XS5kaXNwbGF5T3JkZXIgPSBpbmRleCArIDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN1cnZleVF1ZXN0aW9uU2VydmljZS51cGRhdGVEaXNwbGF5T3JkZXIodGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJldmlld1N1cnZleSA9ICgpID0+IHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLi4vLi4vaW5mby9wcmV2aWV3JywgdGhpcy5zdXJ2ZXlJRCwgdGhpcy5zdXJ2ZXkuYXVkaWVuY2VJdGVtSURdLCB7cmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZX0pO1xyXG4gIH1cclxuICB0YWtlU3VydmV5ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLi8uLi9pbmZvL3N1Ym1pc3Npb24nLCB0aGlzLnN1cnZleUlEXSwge3JlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGV9KTtcclxuICB9XHJcblxyXG4gIGdldFN0YXR1cyhzdGF0dXMpIHtcclxuICAgIHZhciBTdGF0dXNlcyA9ICcnO1xyXG4gICAgc3dpdGNoIChzdGF0dXMudG9Mb2NhbGVMb3dlckNhc2UoKSkge1xyXG4gICAgICBjYXNlIHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fRHJhZnQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICBTdGF0dXNlcyA9ICdiYWRnZS1zZWNvbmRhcnknO1xyXG4gICAgICAgIHRoaXMuY2FuRWRpdFF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkRlbGV0ZVF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkFkZFF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLlN1cnZleVN0YXR1c0VudW0uU2NvcmluZ1R5cGVFbnVtX0Nsb3NlZC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIFN0YXR1c2VzID0gJ2JhZGdlLWRhbmdlcic7XHJcbiAgICAgICAgdGhpcy5jYW5FZGl0UXVlc3Rpb24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhbkRlbGV0ZVF1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkFkZFF1ZXN0aW9uID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fUHVibGlzaGVkLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgU3RhdHVzZXMgPSAnYmFkZ2Utc3VjY2Vzcyc7XHJcbiAgICAgICAgdGhpcy5jYW5FZGl0UXVlc3Rpb24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhbkRlbGV0ZVF1ZXN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jYW5BZGRRdWVzdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMuU3VydmV5U3RhdHVzRW51bS5TY29yaW5nVHlwZUVudW1fVXBjb21pbmcudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICBTdGF0dXNlcyA9ICdiYWRnZS1zdWNjZXNzJztcclxuICAgICAgICB0aGlzLmNhbkVkaXRRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5EZWxldGVRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jYW5BZGRRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFN0YXR1c2VzO1xyXG4gIH1cclxuXHJcbiAgbG9hZFF1ZXN0aW9uU2VjdGlvbigpIHtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuTmFtZSA9IFwiU2VhcmNoVGV4dEJveFwiO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLlRyaW1UZXh0T25DaGFuZ2UgPSB0cnVlO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5QbGFjZWhvbGRlciA9IHRoaXMubChcIlNlYXJjaFwiKTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuRXh0cmFDbGFzc2VzID0gXCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtIGZvcm0tY29udHJvbC1zb2xpZCBzZWFyY2gtYm94XCI7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLkljb24gPSBcIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvc2VhcmNoLnN2Z1wiXHJcblxyXG5cclxuXHJcblxyXG4gICAgdGhpcy5TdXJ2ZXlJRE9wdGlvbnMgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuU3VydmV5SURPcHRpb25zLk5hbWUgPSBcIlN1cnZleUlEXCI7XHJcbiAgICB0aGlzLlN1cnZleUlET3B0aW9ucy5WYWx1ZSA9IHRoaXMuc3VydmV5SUQ7XHJcblxyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleUlERmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IHRoaXMuU3VydmV5SURPcHRpb25zLk5hbWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleUlERmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcIlN1cnZleUlEXCI7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleUlERmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94O1xyXG5cclxuXHJcblxyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvbk9wdGlvbnMgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvbk9wdGlvbnMuUGFnZVNpemUgPSAxMDAwO1xyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvbk9wdGlvbnMuRGlzYWJsZUJsb2NrVUkgPSB0cnVlO1xyXG4gICAgdGhpcy5wYWdpbmdRdWVzdGlvbk9wdGlvbnMuQWN0aW9uUG9zdFVSTCA9IHRoaXMuYXBpUXVlc3Rpb25VUkwgKyAnR2V0QWxsUXVlc3Rpb25zJztcclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25PcHRpb25zLkZpbHRlcnMgPSBbdGhpcy5zZWFyY2hTdXJ2ZXlJREZpbHRlcl07XHJcblxyXG5cclxuXHJcbiAgfVxyXG4gIHNldFF1ZXN0aW9uTGlzdGluZ1Jlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHQgPSByZXN1bHQ7XHJcbiAgICB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0T3JpZ2luYWwgPSByZXN1bHQ7XHJcbiAgICB0aGlzLnNob3dQYWdlQ29udGVudCA9IHRydWU7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICBsZXQgb3ZlcnZpZXdRdWVzdGlvbnMgPSB0aGlzLnBhZ2luZ1F1ZXN0aW9uUmVzdWx0T3JpZ2luYWwuZmlsdGVyKGl0ZW0gPT4gaXRlbS5xdWVzdGlvblR5cGVJdGVtSUQgPT0gU3VydmV5T3B0aW9uVHlwZS5SYWRpb0J1dHRvbiB8fCBpdGVtLnF1ZXN0aW9uVHlwZUl0ZW1JRCA9PSBTdXJ2ZXlPcHRpb25UeXBlLlNpbmdsZVNlbGVjdCB8fCBpdGVtLnF1ZXN0aW9uVHlwZUl0ZW1JRCA9PSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpcGxlU2VsZWN0KVxyXG4gICAgaWYgKG92ZXJ2aWV3UXVlc3Rpb25zLmxlbmd0aCA+IDApXHJcbiAgICAgIHRoaXMubG9hZFN1cnZleU92ZXJ2aWV3KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgb25TdWNjZXNzSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkVXBkYXRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5tYXN0ZXJMYXlvdXRTZXJ2aWNlLnJlbG9hZENvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgb25TdWNjZXNzRGVsZXRlSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkRGVsZXRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiLi4vLi4vXCJdLCB7cmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZX0pO1xyXG4gIH1cclxuXHJcbiAgb25TdWNjZXNzQWRkUXVlc3Rpb25IYW5kbGVyID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmRBZGRlZFwiKSwgbnVsbCwgbnVsbCwgZmFsc2UpO1xyXG4gICAgdGhpcy5tYXN0ZXJMYXlvdXRTZXJ2aWNlLnJlbG9hZENvbXBvbmVudCgpO1xyXG4gIH1cclxuICBvblN1Y2Nlc3NFZGl0UXVlc3Rpb25IYW5kbGVyID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmRVcGRhdGVkXCIpLCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgICB0aGlzLm1hc3RlckxheW91dFNlcnZpY2UucmVsb2FkQ29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBvblN1Y2Nlc3NEZWxldGVRdWVzdGlvbkhhbmRsZXIgPSAoc3VjY2VzczogYW55KSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKHRoaXMubChcIlJlY29yZERlbGV0ZWRcIiksIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICAgIHRoaXMubWFzdGVyTGF5b3V0U2VydmljZS5yZWxvYWRDb21wb25lbnQoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgc2hvd0RlbGV0ZVN1Ym1pc3Npb25Nb2RhbCA9IChpZCkgPT4ge1xyXG4gICAgdGhpcy5kZWxldGVTdWJtaXNzaW9uQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dEZWxldGVNb2RhbChpZCk7XHJcblxyXG4gIH1cclxuICBzaG93RWxpbWluYXRlU3VibWlzc2lvbk1vZGFsID0gKGlkKSA9PiB7XHJcbiAgICB0aGlzLmVsaW1pbmF0ZVN1Ym1pc3Npb25Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd0VsaW1pbmF0ZU1vZGFsKGlkKTtcclxuICB9XHJcbiAgc2hvd1VuRWxpbWluYXRlU3VibWlzc2lvbk1vZGFsID0gKGlkKSA9PiB7XHJcbiAgICB0aGlzLnVuRWxpbWluYXRlU3VibWlzc2lvbkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93VW5FbGltaW5hdGVNb2RhbChpZCk7XHJcbiAgfVxyXG4gIG9uU3VjY2Vzc0RlbGV0ZUhhbmRsZXJTdWJtaXNzaW9uID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmREZWxldGVkXCIpLCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgICB0aGlzLmxvYWRTdWJtaXNzaW9uU2VjdGlvbigpO1xyXG4gIH1cclxuICBsb2FkU3VibWlzc2lvblNlY3Rpb24oKSB7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLk5hbWUgPSBcIlNlYXJjaFRleHRCb3hcIjtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5UcmltVGV4dE9uQ2hhbmdlID0gdHJ1ZTtcclxuICAgIHRoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuUGxhY2Vob2xkZXIgPSB0aGlzLmwoXCJTZWFyY2hcIik7XHJcbiAgICB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLkV4dHJhQ2xhc3NlcyA9IFwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbSBmb3JtLWNvbnRyb2wtc29saWQgc2VhcmNoLWJveFwiO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgdGhpcy5TZWFyY2hUZXh0Qm94T3B0aW9ucy5JY29uID0gXCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL3NlYXJjaC5zdmdcIlxyXG5cclxuICAgIHRoaXMuc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5zZWFyY2hTdWJtaXNzaW9uVGV4dEZpbHRlci5Gb3JtQ29udHJvbE5hbWUgPSB0aGlzLlNlYXJjaFRleHRCb3hPcHRpb25zLk5hbWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcIlNlYXJjaFRleHRcIjtcclxuICAgIHRoaXMuc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1Ym1pc3Npb25UZXh0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3g7XHJcblxyXG5cclxuICAgIHRoaXMuU3VydmV5SURPcHRpb25zID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLlN1cnZleUlET3B0aW9ucy5OYW1lID0gXCJTdXJ2ZXlJRFwiO1xyXG4gICAgdGhpcy5TdXJ2ZXlJRE9wdGlvbnMuVmFsdWUgPSB0aGlzLnN1cnZleUlEO1xyXG5cclxuICAgIHRoaXMuc2VhcmNoU3VydmV5U3VibWlzc2lvbklERmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuc2VhcmNoU3VydmV5U3VibWlzc2lvbklERmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IHRoaXMuU3VydmV5SURPcHRpb25zLk5hbWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJTdXJ2ZXlJRFwiO1xyXG4gICAgdGhpcy5zZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICB0aGlzLnNlYXJjaFN1cnZleVN1Ym1pc3Npb25JREZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94O1xyXG5cclxuXHJcblxyXG4gICAgdGhpcy5wYWdpbmdTdWJtaXNzaW9uT3B0aW9ucyA9IG5ldyBQYWdpbmdPcHRpb25zKCk7XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLlBhZ2VTaXplID0gMTA7XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLkRpc2FibGVCbG9ja1VJID0gdHJ1ZTtcclxuICAgIHRoaXMucGFnaW5nU3VibWlzc2lvbk9wdGlvbnMuQWN0aW9uUG9zdFVSTCA9IHRoaXMuc3VydmV5U2VydmljZS5hcGlVUkwgKyAnR2V0QWxsU3VydmV5U3VibWlzc2lvbic7XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gW3RoaXMuU2VhcmNoVGV4dEJveE9wdGlvbnMuTmFtZV07XHJcbiAgICB0aGlzLnBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zLkZpbHRlcnMgPSBbdGhpcy5zZWFyY2hTdXJ2ZXlTdWJtaXNzaW9uSURGaWx0ZXIsIHRoaXMuc2VhcmNoU3VibWlzc2lvblRleHRGaWx0ZXJdO1xyXG5cclxuXHJcblxyXG4gIH1cclxuICBzZXRTdWJtaXNzaW9uTGlzdGluZ1Jlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMucGFnaW5nU3VibWlzc2lvblJlc3VsdCA9IHJlc3VsdDtcclxuICAgIHRoaXMuc2hvd1N1Ym1pc3Npb25QYWdlQ29udGVudCA9IHRydWU7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgfVxyXG4gIGxvYWRTdXJ2ZXlPdmVydmlldygpIHtcclxuICAgIHRoaXMuc3VydmV5U2VydmljZS5nZXRTdXJ2ZXlPdmVydmlldyh0aGlzLnN1cnZleUlEKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLnF1ZXN0aW9uT3ZlcnZpZXdSZXN1bHQgPSByZXMgYXMgYW55XHJcbiAgICAgIHRoaXMuc2hvd092ZXJ2aWV3ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5sb2FkQ2hhcnQodGhpcy5xdWVzdGlvbk92ZXJ2aWV3UmVzdWx0WzBdKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBleHBvcnQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnN1cnZleVNlcnZpY2VcclxuICAgICAgLmV4cG9ydCh0aGlzLnN1cnZleUlEKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLmRvd25sb2FkKChyZXN1bHQgYXMgYW55KSBhcyBCbG9iLCB0aGlzLnBhZ2VUaXRsZSArIFwiLnhsc3hcIik7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoSW5RdWVzdGlvbkxpc3QodmFsdWUpIHtcclxuICAgIGlmICh2YWx1ZSlcclxuICAgICAgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCA9IHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHRPcmlnaW5hbC5maWx0ZXIoaXRlbSA9PiBpdGVtLmxvY2FsaXplZFRleHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWx1ZS50b0xvd2VyQ2FzZSgpKSlcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5wYWdpbmdRdWVzdGlvblJlc3VsdCA9IHRoaXMucGFnaW5nUXVlc3Rpb25SZXN1bHRPcmlnaW5hbDtcclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS10b29sYmFyLS0+XHJcbjxkaXYgKm5nSWY9XCJsb2FkSW5mb1wiPlxyXG4gIDxiYnNmLXBhZ2UtaGVhZGVyLWNvbXBvbmVudCBbb3B0aW9uc109XCJwYWdlSGVhZGVyT3B0aW9uc1wiPjwvYmJzZi1wYWdlLWhlYWRlci1jb21wb25lbnQ+XHJcbjwvZGl2PlxyXG48IS0tZW5kIHRvb2xiYXItLT5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lci14eGxcIj5cclxuICA8ZGl2IGNsYXNzPVwiaW5mby1jb250YWluZXJcIiAqbmdJZj1cImxvYWRJbmZvXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1tYXJnaW4tYm90dG9tXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZlcnktZGF0ZSBib3JkZXItMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tYm94ZXMgYWxpZ24taXRlbXMtYmFzZWxpbmVcIj5cclxuICAgICAgICAgICAgPGRpdiBuZ2JUb29sdGlwPVwie3tsKCdEYXRlJyl9fVwiIGNsYXNzPVwiaWNvbi1ib3hcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ltYm9sXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbC1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTRcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9jYWxlbmRhci5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1jb3VudGVyLXRpdGxlXCIgKm5nSWY9XCJzdXJ2ZXkuc3RhcnREYXRlPT1udWxsXCI+XHJcbiAgICAgICAgICAgICAgICB7e2woJ05vdFN0YXJ0ZWRZZXQnKX19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VydmV5LWNvdW50ZXItdGl0bGUgZC1mbGV4IGZsZXgtc3RhY2tcIiAqbmdJZj1cInN1cnZleS5zdGFydERhdGUhPW51bGxcIj5cclxuICAgICAgICAgICAgICAgIHt7c3VydmV5LnN0YXJ0RGF0ZSB8c3VydmV5RGF0ZX19IC0ge3tzdXJ2ZXkuZW5kRGF0ZSE9bnVsbD8oc3VydmV5LmVuZERhdGV8c3VydmV5RGF0ZSk6XCJcIn19XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0XCIgKm5nSWY9XCJzdXJ2ZXkuZW5kRGF0ZT09bnVsbFwiPnt7bCgnSGFzTm9FbmQnKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodFwiIFtuZ0NsYXNzXT1cImdldFN0YXR1cyhzdXJ2ZXkuc3RhdHVzSXRlbUlEKVwiPnt7c3VydmV5LmxvY2FsaXplZFN0YXR1c319PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gbmdiVG9vbHRpcD1cInt7bCgnQXVkaWVuY2UnKX19XCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodCBteC0yXCI+e3tzdXJ2ZXkubG9jYWxpemVkQXVkaWVuY2V9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY2FyZC1kYXRhXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICA8QkJTRi1UZXh0Qm94ICpuZ0lmPVwiY2FuVGFrZVN1cnZleSYmIChzdXJ2ZXkuYXVkaWVuY2VJdGVtSUQ9PUF1ZGllbmNlVHlwZUVudW0uSW50ZXJuYWx8fHN1cnZleS5hdWRpZW5jZUl0ZW1JRD09QXVkaWVuY2VUeXBlRW51bS5Cb3RoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIlRleHRCb3hXaXRoSW50ZXJuYWxVUkxcIiBbZ3JvdXBdPVwidXJsRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTZcIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggKm5nSWY9XCJjYW5UYWtlU3VydmV5JiYgKHN1cnZleS5hdWRpZW5jZUl0ZW1JRD09QXVkaWVuY2VUeXBlRW51bS5FeHRlcm5hbHx8c3VydmV5LmF1ZGllbmNlSXRlbUlEPT1BdWRpZW5jZVR5cGVFbnVtLkJvdGgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiVGV4dEJveFdpdGhFeHRlcm5hbFVSTFwiIFtncm91cF09XCJ1cmxGb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8cCBjbGFzcz1cImNhcmQtZGVzY3JpcHRpb25cIiAqbmdJZj1cInN1cnZleS5sb2NhbGl6ZWREZXNjXCI+XHJcbiAgICAgICAge3tzdXJ2ZXkubG9jYWxpemVkRGVzY319XHJcbiAgICAgIDwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbWFyZ2luLWJvdHRvbVwiPlxyXG4gICAgICA8dWwgbmdiTmF2ICNuYXY9XCJuZ2JOYXZcIiBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzIG5hdi1jdXN0b21cIj5cclxuICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtXCIgW2Rlc3Ryb3lPbkhpZGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIG5nYk5hdkxpbms+XHJcbiAgICAgICAgICAgIDxoND5cclxuICAgICAgICAgICAgICB7e2woJ1F1ZXN0aW9ucycpfX1cclxuICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYnMtc2VhcmNoIHBhZ2Utc3ViaGVhZGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIlNlYXJjaFRleHRCb3hPcHRpb25zXCIgW2dyb3VwXT1cImZpbHRlcnNRdWVzdGlvbkZvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoT25DaGFuZ2UpPVwic2VhcmNoSW5RdWVzdGlvbkxpc3QoJGV2ZW50KVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJTdXJ2ZXlJRE9wdGlvbnNcIiBbZ3JvdXBdPVwiZmlsdGVyc1F1ZXN0aW9uRm9ybVwiIGhpZGRlbj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiY2FuQWRkUXVlc3Rpb25cIiBjbGFzcz1cImJ0biBidG4tYnJhbmQgYnRuLXNtIHN1YmhlYWRlci1idG5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0FkZFF1ZXN0aW9uTW9kYWwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICB7e2woJ0FkZCcpfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgW2hpZGRlbl09XCJwYWdpbmdRdWVzdGlvblJlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBuZ2JOYXZDb250ZW50IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWVzdGlvbi1pbmZvXCIgW2Nka0RyYWdEaXNhYmxlZF09XCJjYW5UYWtlU3VydmV5XCIgY2RrRHJhZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2luZ1F1ZXN0aW9uUmVzdWx0OyBsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzeW1ib2wgc3ltYm9sLTI1cHggbWUtNFwiIGNka0RyYWdIYW5kbGUgKm5nSWY9XCIhY2FuVGFrZVN1cnZleVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzeW1ib2wtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi03XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvcmVvcmRlci5zdmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWxpc3RpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7e2woJ1R5cGUnKX19XCI+e3tpdGVtLmxvY2FsaXplZFF1ZXN0aW9uVHlwZUl0ZW19fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0IG14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7e2woJ0F1ZGllbmNlJyl9fVwiPnt7aXRlbS5sb2NhbGl6ZWRBdWRpZW5jZVR5cGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWJyYW5kLWxpZ2h0IG14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uXCI+e3tsKCdMaW5rZWQnKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQgbXgtMlwiICpuZ0lmPVwiIWl0ZW0uaXNWaXNpYmxlXCIgbmdiVG9vbHRpcD1cInt7bCgnTm90VmlzaWJsZScpfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7bChcIk5vdFZpc2libGVcIil9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBjbGFzcz1cImRyb3Bkb3duLWN1c3RvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2VtZW50XT1cIkVOID8gJ2JvdHRvbS1yaWdodCcgOiAnYm90dG9tLWxlZnQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZS1jdXN0b20gYnRuIGJ0bi1jbGVhclwiIG5nYkRyb3Bkb3duVG9nZ2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9jYXJkLWRyb3Bkb3duLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IGNsYXNzPVwiZHJvcGRvd24tbWVudS1jdXN0b21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiEoY2FuRWRpdFF1ZXN0aW9uJiZjYW5EZWxldGVRdWVzdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RWRpdFF1ZXN0aW9uTW9kYWwoaXRlbS5pRF9HVUlELHRydWUpXCIgYXBwcHJldmVudGRvdWJsZWNsaWNrIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3Bkb3duLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL2luZm8uc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2woXCJEZXRhaWxzXCIpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY2FuRWRpdFF1ZXN0aW9uXCIgKGNsaWNrKT1cInNob3dFZGl0UXVlc3Rpb25Nb2RhbChpdGVtLmlEX0dVSUQsZmFsc2UpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBwcmV2ZW50ZG91YmxlY2xpY2sgdHlwZT1cImJ1dHRvblwiIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3Bkb3duLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL0VkaXQuc3ZnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2woXCJFZGl0XCIpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiY2FuRGVsZXRlUXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlUXVlc3Rpb25Nb2RhbChpdGVtLmlEX0dVSUQpXCIgYXBwcHJldmVudGRvdWJsZWNsaWNrIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9UcmFzaC5zdmcnXCI+PC9zcGFuPiB7e2woXCJEZWxldGVcIil9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LWNvdW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1jb3VudGVyLXRpdGxlXCI+e3tpdGVtLmxvY2FsaXplZFRleHR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWJyYW5kIGJhZGdlLXNxdWFyZSBtcy0yIG1lLTBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7e2woJ1Njb3JlJyl9fVwiPnt7aXRlbS50b3RhbFNjb3JlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldFF1ZXN0aW9uTGlzdGluZ1Jlc3VsdCgkZXZlbnQpXCIgW29wdGlvbnNdPVwicGFnaW5nUXVlc3Rpb25PcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JvdXBdPVwiZmlsdGVyc1F1ZXN0aW9uRm9ybVwiICNwYWdpbmdRdWVzdGlvblZpZXdFbGVtZW50PjwvQkJTRi1QYWdpbmc+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLW5vLXJlc3VsdHMgKm5nSWY9XCJwYWdpbmdRdWVzdGlvblJlc3VsdC5sZW5ndGggPT0gMFwiPjwvYXBwLW5vLXJlc3VsdHM+XHJcblxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBuZ2JOYXZJdGVtIGNsYXNzPVwibmF2LWl0ZW1cIiBbZGVzdHJveU9uSGlkZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgbmdiTmF2TGluaz5cclxuICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgIHt7bCgnU3VibWlzc2lvbnMnKX19XHJcbiAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW5mb1wiIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYnMtc2VhcmNoIHBhZ2Utc3ViaGVhZGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIlNlYXJjaFRleHRCb3hPcHRpb25zXCIgW2dyb3VwXT1cImZpbHRlcnNTdWJtaXNzaW9uRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJTdXJ2ZXlJRE9wdGlvbnNcIiBbZ3JvdXBdPVwiZmlsdGVyc1N1Ym1pc3Npb25Gb3JtXCIgaGlkZGVuPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWNvbnRhaW5lclwiIFtoaWRkZW5dPVwicGFnaW5nU3VibWlzc2lvblJlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtY3VzdG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD4ge3tsKCdOYW1lJyl9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57e2woJ0VtYWlsJyl9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57e2woJ1R5cGUnKX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7bCgnQ3JlYXRlZCcpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3tsKCdTY29yZScpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ0YWJsZS1hY3Rpb25cIj57e2woXCJBY3Rpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRib2R5IGNsYXNzPVwidGFibGUtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2luZ1N1Ym1pc3Npb25SZXN1bHQ7IGxldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpbmUtY2xhbXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmxvY2FsaXplZE5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1kYW5nZXIgbXgtMlwiICpuZ0lmPVwiaXRlbS5pc0VsaW1pbmF0ZWQmJml0ZW0uYWxsb3dFbGltaW5hdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2woJ0VsaW1pbmF0ZWQnKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmVtYWlsfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmlzSW50ZXJuYWxVc2VyPyBsKCdJbnRlcm5hbFVzZXJzJyk6bCgnRXh0ZXJuYWxVc2VycycpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7aXRlbS5jcmVhdGVkfHN1cnZleURhdGV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2l0ZW0udG90YWxTY29yZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidGFibGUtYWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbmdiVG9vbHRpcD1cInt7bCgnUHJldmlldycpfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycuLi8uLi9pbmZvL3Jlc3VsdCcsIGl0ZW0uaURfR1VJRF1cIiBjbGFzcz1cImJ0biBidG4tc20gcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvYW5zd2Vycy5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIiFpdGVtLmlzRWxpbWluYXRlZCYmaXRlbS5hbGxvd0VsaW1pbmF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5nYlRvb2x0aXA9XCJ7e3RoaXMubCgnRWxpbWluYXRlSGludCcpfX1cIiBjbGFzcz1cImJ0biBidG4tc20gcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIiAoY2xpY2spPVwic2hvd0VsaW1pbmF0ZVN1Ym1pc3Npb25Nb2RhbChpdGVtLmlEX0dVSUQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHByZXZlbnRkb3VibGVjbGlja1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvdW5saW5rLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiaXRlbS5pc0VsaW1pbmF0ZWQmJml0ZW0uYWxsb3dFbGltaW5hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JUb29sdGlwPVwie3t0aGlzLmwoJ1VuRWxpbWluYXRlJyl9fVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tM1wiIChjbGljayk9XCJzaG93VW5FbGltaW5hdGVTdWJtaXNzaW9uTW9kYWwoaXRlbS5pRF9HVUlEKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBwcmV2ZW50ZG91YmxlY2xpY2sgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvbGluay5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBuZ2JUb29sdGlwPVwie3tsKCdEZWxldGUnKX19XCIgY2xhc3M9XCJidG4gYnRuLXNtIHAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgKGNsaWNrKT1cInNob3dEZWxldGVTdWJtaXNzaW9uTW9kYWwoaXRlbS5pRF9HVUlEKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBwcmV2ZW50ZG91YmxlY2xpY2sgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvVHJhc2guc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0U3VibWlzc2lvbkxpc3RpbmdSZXN1bHQoJGV2ZW50KVwiIFtvcHRpb25zXT1cInBhZ2luZ1N1Ym1pc3Npb25PcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dyb3VwXT1cImZpbHRlcnNTdWJtaXNzaW9uRm9ybVwiICNwYWdpbmdTdWJtaXNzaW9uVmlld0VsZW1lbnQ+PC9CQlNGLVBhZ2luZz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtbm8tcmVzdWx0cyAqbmdJZj1cInBhZ2luZ1N1Ym1pc3Npb25SZXN1bHQubGVuZ3RoID09IDBcIj48L2FwcC1uby1yZXN1bHRzPlxyXG5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgbmdiTmF2SXRlbSBjbGFzcz1cIm5hdi1pdGVtXCIgKm5nSWY9XCJzaG93T3ZlcnZpZXdcIiBbZGVzdHJveU9uSGlkZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgbmdiTmF2TGluayAoY2xpY2spPVwibG9hZFN1cnZleU92ZXJ2aWV3KClcIj5cclxuICAgICAgICAgICAgPGg0PlxyXG4gICAgICAgICAgICAgIHt7bChcIk92ZXJ2aWV3XCIpIH19XHJcbiAgICAgICAgICAgIDwvaDQ+XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW5mb1wiIG5nYk5hdkNvbnRlbnQ+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LXRpdGxlXCI+IHt7bChcIlF1ZXN0aW9uc1wiKSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBuZ2JOYXYgI25hdj1cIm5nYk5hdlwiIGNsYXNzPVwibmF2LXBpbGxzIGN1c3RvbS1uYXZzXCIgb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxpIG5nYk5hdkl0ZW09XCJ7e2l0ZW0ubG9jYWxpemVkVGl0bGV9fVwiIFtkZXN0cm95T25IaWRlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uT3ZlcnZpZXdSZXN1bHRcIiAoY2xpY2spPVwibG9hZENoYXJ0KGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIG5nYk5hdkxpbms+e3tpdGVtLmxvY2FsaXplZFRpdGxlfX08L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LXRpdGxlXCI+e3tsKFwiT3ZlcnZpZXdcIikgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY2hhcnRkaXZcIiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDQwMHB4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhpZGUtbG9nb1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC10aXRsZVwiPnt7bChcIlNjb3JlXCIpIH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJjaGFydE92ZXJ2aWV3XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA0MDBweFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRlLWxvZ29cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIDwvdWw+XHJcblxyXG5cclxuICAgICAgPGRpdiBbbmdiTmF2T3V0bGV0XT1cIm5hdlwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuICA8YXBwLWVkaXQtc3VydmV5ICNlZGl0TW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nRWxlbWVudFwiIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0hhbmRsZXJcIj48L2FwcC1lZGl0LXN1cnZleT5cclxuICA8YXBwLWRlbGV0ZS1zdXJ2ZXkgI2RlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdFbGVtZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzRGVsZXRlSGFuZGxlclwiPjwvYXBwLWRlbGV0ZS1zdXJ2ZXk+XHJcbiAgPGFwcC1hZGQtcXVlc3Rpb24gI2FkZFF1ZXN0aW9uTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nUXVlc3Rpb25FbGVtZW50XCIgW29uU3VjY2Vzc0FkZEhhbmRsZXJdPVwib25TdWNjZXNzQWRkUXVlc3Rpb25IYW5kbGVyXCI+PC9hcHAtYWRkLXF1ZXN0aW9uPlxyXG4gIDxhcHAtZWRpdC1xdWVzdGlvbiAjZWRpdFF1ZXN0aW9uTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nUXVlc3Rpb25FbGVtZW50XCIgW29uU3VjY2Vzc0VkaXRIYW5kbGVyXT1cIm9uU3VjY2Vzc0VkaXRRdWVzdGlvbkhhbmRsZXJcIj48L2FwcC1lZGl0LXF1ZXN0aW9uPlxyXG4gIDxhcHAtZGVsZXRlLXF1ZXN0aW9uICNkZWxldGVRdWVzdGlvbk1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ1F1ZXN0aW9uRWxlbWVudFwiIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0RlbGV0ZVF1ZXN0aW9uSGFuZGxlclwiPjwvYXBwLWRlbGV0ZS1xdWVzdGlvbj5cclxuICA8YXBwLXB1Ymxpc2gtc3VydmV5ICNhZGRQdWJsaXNoTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nRWxlbWVudFwiIFtvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uU3VjY2Vzc0hhbmRsZXJcIiAqbmdJZj1cImxvYWRJbmZvXCIgW3Nob3dUb2dnbGVdPVwic3VydmV5LmlzU2hvd1RvZ2dsZU9mU2NvcmVSZXN1bHRBZnRlclN1Ym1pc3Npb25cIj5cclxuICA8L2FwcC1wdWJsaXNoLXN1cnZleT5cclxuICA8YXBwLXVucHVibGlzaC1zdXJ2ZXkgI2FkZFVuUHVibGlzaE1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ0VsZW1lbnRcIiBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NIYW5kbGVyXCI+XHJcbiAgPC9hcHAtdW5wdWJsaXNoLXN1cnZleT5cclxuICA8YXBwLWRlbGV0ZS1zdWJtaXNzaW9uICNkZWxldGVTdWJtaXNzaW9uTW9kYWwgW3BhZ2luZ0VsZW1lbnRdPVwicGFnaW5nU3VibWlzc2lvbkVsZW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzRGVsZXRlSGFuZGxlclN1Ym1pc3Npb25cIj48L2FwcC1kZWxldGUtc3VibWlzc2lvbj5cclxuICA8YXBwLWVsaW1pbmF0ZS1zdWJtaXNzaW9uICNlbGltaW5hdGVNb2RhbCBbcGFnaW5nRWxlbWVudF09XCJwYWdpbmdTdWJtaXNzaW9uRWxlbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb25TdWNjZXNzSGFuZGxlcl09XCJvblN1Y2Nlc3NIYW5kbGVyXCI+PC9hcHAtZWxpbWluYXRlLXN1Ym1pc3Npb24+XHJcbiAgPGFwcC11bkVsaW1pbmF0ZS1zdWJtaXNzaW9uICN1bkVsaW1pbmF0ZU1vZGFsIFtwYWdpbmdFbGVtZW50XT1cInBhZ2luZ1N1Ym1pc3Npb25FbGVtZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29uU3VjY2Vzc0hhbmRsZXJdPVwib25TdWNjZXNzSGFuZGxlclwiPjwvYXBwLXVuRWxpbWluYXRlLXN1Ym1pc3Npb24+XHJcbiJdfQ==
|