commons-assessment 12.1.2-dev.0 → 12.1.2-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/commons-assessment.umd.js +27 -4
- package/bundles/commons-assessment.umd.js.map +1 -1
- package/esm2015/lib/modules/assessment-maker/assessment-maker.component.js +25 -2
- package/esm2015/lib/modules/assessment-maker/components/question-bank-picker/question-bank-picker.component.js +3 -3
- package/esm2015/lib/modules/question-bank/question-bank.component.js +2 -2
- package/fesm2015/commons-assessment.js +27 -4
- package/fesm2015/commons-assessment.js.map +1 -1
- package/lib/modules/assessment-maker/assessment-maker.component.d.ts +6 -0
- package/package.json +1 -1
- package/src/lib/assets/theme/styles.global.scss +127 -6
|
@@ -36,7 +36,7 @@ export class QuestionBankComponent {
|
|
|
36
36
|
this.searchTerm = '';
|
|
37
37
|
this.selectedTypeCode = '';
|
|
38
38
|
this.currentPage = 0;
|
|
39
|
-
this.pageSize =
|
|
39
|
+
this.pageSize = 100;
|
|
40
40
|
this.totalElements = 0;
|
|
41
41
|
this.hasNext = false;
|
|
42
42
|
this.isLoadingMore = false;
|
|
@@ -310,4 +310,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
310
310
|
}], snackbarMessage: [{
|
|
311
311
|
type: Output
|
|
312
312
|
}] } });
|
|
313
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYmFuay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb25zLWFzc2Vzc21lbnQvc3JjL2xpYi9tb2R1bGVzL3F1ZXN0aW9uLWJhbmsvcXVlc3Rpb24tYmFuay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb25zLWFzc2Vzc21lbnQvc3JjL2xpYi9tb2R1bGVzL3F1ZXN0aW9uLWJhbmsvcXVlc3Rpb24tYmFuay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7Ozs7Ozs7Ozs7QUFTNUgsTUFBTSxPQUFPLHFCQUFxQjtJQW1DaEMsWUFDVSxzQkFBOEMsRUFDOUMsd0JBQWtELEVBQ2xELE1BQWlCO1FBRmpCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBckNsQixnQkFBVyxHQUE4QixFQUFFLENBQUM7UUFDNUMsZ0JBQVcsR0FBOEIsRUFBRSxDQUFDO1FBQzVDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyx1QkFBa0IsR0FBdUIsRUFBRSxDQUFDO1FBQzVDLGtDQUE2QixHQUFZLEtBQUssQ0FBQztRQUMvQyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7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RyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLFFBQVEsS0FBSSxFQUFFLENBQUM7WUFDeEMsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzttSEF6U1UscUJBQXFCO3VHQUFyQixxQkFBcUIsZ2dCQ2hCbEMsaTFYQWtLQTs0RkRsSmEscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5Qzs0S0FFVSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkJhbmtDb25maWcsIFF1ZXN0aW9uVHlwZSwgUmVmRGF0YSB9IGZyb20gJy4uLy4uL3NoYXJlZC9pbnRlcmZhY2VzL2Fzc2Vzc21lbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQXNzZXNzbWVudFF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2ludGVyZmFjZXMvcXVlc3Rpb24uaW50ZXJmYWNlJztcclxuXHJcbmltcG9ydCB7IEFzc2Vzc21lbnRCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYXNzZXNzbWVudC1tYWtlci9jb21wb25lbnRzL2Fzc2Vzc21lbnQtYnVpbGRlci9hc3Nlc3NtZW50LWJ1aWxkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzZXNzbWVudEJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vYXNzZXNzbWVudC1tYWtlci9zZXJ2aWNlcy9hc3Nlc3NtZW50LWJ1aWxkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFzc2Vzc21lbnRNYWtlclNlcnZpY2UgfSBmcm9tICcuLi9hc3Nlc3NtZW50LW1ha2VyL3NlcnZpY2VzL2Fzc2Vzc21lbnQtbWFrZXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1iYW5rJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24tYmFuay5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tYmFuay5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkJhbmtDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgbGFiZWxDb25maWc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICBASW5wdXQoKSBpbWFnZUNvbmZpZzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gIEBJbnB1dCgpIHF1ZXN0aW9uVHlwZXM6IFF1ZXN0aW9uVHlwZVtdID0gW107XHJcbiAgQElucHV0KCkgY3VzdG9tUnVsZXM/OiBhbnk7XHJcbiAgQElucHV0KCkgcXVlc3Rpb25CYW5rQ29uZmlnOiBRdWVzdGlvbkJhbmtDb25maWcgPSB7fTtcclxuICBASW5wdXQoKSBlbmFibGVTa2lsbHNUb1F1ZXN0aW9uTWFwcGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZldGNoUXVlc3Rpb25zTGlzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGF1dG9PcGVuQnVpbGRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhlYWRsZXNzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBxdWVzdGlvbkNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFzc2Vzc21lbnRRdWVzdGlvbj4oKTtcclxuICBAT3V0cHV0KCkgcXVlc3Rpb25VcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxBc3Nlc3NtZW50UXVlc3Rpb24+KCk7XHJcbiAgQE91dHB1dCgpIHNuYWNrYmFyTWVzc2FnZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBtZXNzYWdlOiBzdHJpbmcsIHR5cGU6ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnaW5mbycgfT4oKTtcclxuXHJcbiAgcXVlc3Rpb25zTGlzdDogQXNzZXNzbWVudFF1ZXN0aW9uW10gPSBbXTtcclxuICBxdWVzdGlvbkJhbms6IFJlY29yZDxudW1iZXIsIEFzc2Vzc21lbnRRdWVzdGlvbj4gPSB7fTtcclxuICBjb25maWdzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHJ1bGVzOiBhbnk7XHJcbiAgc2tpbGxzTGlzdDogUmVmRGF0YVtdID0gW107XHJcblxyXG4gIC8vIFNlcnZlci1zaWRlIHNlYXJjaCAmIGZpbHRlcmluZyBzdGF0ZVxyXG4gIHNlYXJjaFRlcm06IHN0cmluZyA9ICcnO1xyXG4gIHNlbGVjdGVkVHlwZUNvZGU6IHN0cmluZyA9ICcnO1xyXG4gIGN1cnJlbnRQYWdlOiBudW1iZXIgPSAwO1xyXG4gIHBhZ2VTaXplOiBudW1iZXIgPSAyMDtcclxuICB0b3RhbEVsZW1lbnRzOiBudW1iZXIgPSAwO1xyXG4gIGhhc05leHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0xvYWRpbmdNb3JlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9ja2VkUXVlc3Rpb25zTWFwOiBSZWNvcmQ8bnVtYmVyLCBib29sZWFuPiA9IHt9O1xyXG5cclxuICBwcml2YXRlIHNlYXJjaFN1YmplY3QkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXNzZXNzbWVudE1ha2VyU2VydmljZTogQXNzZXNzbWVudE1ha2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgYXNzZXNzbWVudEJ1aWxkZXJTZXJ2aWNlOiBBc3Nlc3NtZW50QnVpbGRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbkJhbmtDb25maWcpIHtcclxuICAgICAgdGhpcy5hc3Nlc3NtZW50QnVpbGRlclNlcnZpY2Uuc2V0RGVmYXVsdEFzc2Vzc21lbnREVE8oe1xyXG4gICAgICAgIGRvbWFpbjogdGhpcy5xdWVzdGlvbkJhbmtDb25maWcuZG9tYWluLFxyXG4gICAgICAgIHRlbmFudDogdGhpcy5xdWVzdGlvbkJhbmtDb25maWcudGVuYW50XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRDb25maWdzRnJvbUpTT04oKTtcclxuXHJcbiAgICBpZiAodGhpcy5mZXRjaFF1ZXN0aW9uc0xpc3QpIHtcclxuICAgICAgdGhpcy5zZWFyY2hTdWJqZWN0JC5waXBlKFxyXG4gICAgICAgIGRlYm91bmNlVGltZSgzNTApLFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcbiAgICAgICkuc3Vic2NyaWJlKHRlcm0gPT4ge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVGVybSA9IHRlcm07XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDA7XHJcbiAgICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKDAsIGZhbHNlKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmxvYWRRdWVzdGlvbnMoMCwgZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmVuYWJsZVNraWxsc1RvUXVlc3Rpb25NYXBwaW5nKSB7XHJcbiAgICAgIHRoaXMuZ2V0U2tpbGxzTGlzdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRDb25maWdzRnJvbUpTT04oKSB7XHJcbiAgICBmb3JrSm9pbih7XHJcbiAgICAgIGxhYmVsQ29uZmlnOiB0aGlzLmFzc2Vzc21lbnRNYWtlclNlcnZpY2UuZ2V0Q29uZmlnSlNPTignanNvbi9sYWJlbENvbmZpZycpLFxyXG4gICAgICBpbWFnZUNvbmZpZzogdGhpcy5hc3Nlc3NtZW50TWFrZXJTZXJ2aWNlLmdldENvbmZpZ0pTT04oJ2pzb24vaW1hZ2VDb25maWcnKSxcclxuICAgICAgcnVsZXM6IHRoaXMuYXNzZXNzbWVudE1ha2VyU2VydmljZS5nZXRDb25maWdKU09OKCdqc29uL3F1ZXN0aW9uLWJ1aWxkZXItcnVsZXMnKSxcclxuICAgICAgLi4uKCF0aGlzLnF1ZXN0aW9uVHlwZXM/Lmxlbmd0aCAmJiB7XHJcbiAgICAgICAgcXVlc3Rpb25UeXBlczogdGhpcy5hc3Nlc3NtZW50TWFrZXJTZXJ2aWNlLmdldENvbmZpZ0pTT04oJ2pzb24vcXVlc3Rpb25UeXBlcycpXHJcbiAgICAgIH0pXHJcbiAgICB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxhYmVsQ29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgcmVzPy5sYWJlbENvbmZpZywgdGhpcy5sYWJlbENvbmZpZyk7XHJcbiAgICAgICAgdGhpcy5pbWFnZUNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIHJlcz8uaW1hZ2VDb25maWcsIHRoaXMuaW1hZ2VDb25maWcpO1xyXG4gICAgICAgIGlmIChyZXM/LnF1ZXN0aW9uVHlwZXMpIHtcclxuICAgICAgICAgIHRoaXMucXVlc3Rpb25UeXBlcyA9IHJlcz8ucXVlc3Rpb25UeXBlcztcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ydWxlcyA9IHsgLi4ucmVzPy5ydWxlcyB9O1xyXG4gICAgICAgIGlmICh0aGlzLmN1c3RvbVJ1bGVzKSB7XHJcbiAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmN1c3RvbVJ1bGVzKS5mb3JFYWNoKHFUeXBlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ydWxlc1txVHlwZV0gPSB7IC4uLih0aGlzLnJ1bGVzW3FUeXBlXSB8fCB7fSksIC4uLnRoaXMuY3VzdG9tUnVsZXNbcVR5cGVdIH07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb25maWdzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5hdXRvT3BlbkJ1aWxkZXIpIHtcclxuICAgICAgICAgIHRoaXMuY3JlYXRlRWRpdFF1ZXN0aW9uKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIEpTT04gY29uZmlncycsIGVycik7XHJcbiAgICAgICAgdGhpcy5zbmFja2Jhck1lc3NhZ2UuZW1pdCh7IG1lc3NhZ2U6IHRoaXMubGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5UT0FTVC5FUlJPUl9ERUZBVUxUJ10gfHwgJ0ZhaWxlZCB0byBsb2FkIGNvbmZpZ3VyYXRpb25zLicsIHR5cGU6ICdlcnJvcicgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9hZFF1ZXN0aW9ucyhwYWdlOiBudW1iZXIgPSAwLCBhcHBlbmQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKGFwcGVuZCkge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZ01vcmUgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93TG9hZGVyID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYXJhbXM6IGFueSA9IHtcclxuICAgICAgcGFnZSxcclxuICAgICAgc2l6ZTogdGhpcy5wYWdlU2l6ZVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uQmFua0NvbmZpZz8uZG9tYWluKSB7XHJcbiAgICAgIHBhcmFtcy5kb21haW4gPSB0aGlzLnF1ZXN0aW9uQmFua0NvbmZpZy5kb21haW47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbkJhbmtDb25maWc/LnRlbmFudCkge1xyXG4gICAgICBwYXJhbXMudGVuYW50ID0gdGhpcy5xdWVzdGlvbkJhbmtDb25maWcudGVuYW50O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VhcmNoVGVybT8udHJpbSgpKSB7XHJcbiAgICAgIHBhcmFtcy5xdWVzdGlvblRleHQgPSB0aGlzLnNlYXJjaFRlcm0udHJpbSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUeXBlQ29kZSkge1xyXG4gICAgICBwYXJhbXMucXVlc3Rpb25UeXBlID0gdGhpcy5zZWxlY3RlZFR5cGVDb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXNzZXNzbWVudE1ha2VyU2VydmljZS5nZXRRdWVzdGlvbkJhbmtRdWVzdGlvbnMocGFyYW1zKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBlbGVtZW50czogQXNzZXNzbWVudFF1ZXN0aW9uW10gPSByZXM/LmNvbnRlbnQgfHwgcmVzPy5lbGVtZW50cyB8fCAoQXJyYXkuaXNBcnJheShyZXMpID8gcmVzIDogW10pO1xyXG4gICAgICAgIHRoaXMudG90YWxFbGVtZW50cyA9IHJlcz8udG90YWxFbGVtZW50cyA/PyAoYXBwZW5kID8gdGhpcy5xdWVzdGlvbnNMaXN0Lmxlbmd0aCArIGVsZW1lbnRzLmxlbmd0aCA6IGVsZW1lbnRzLmxlbmd0aCk7XHJcbiAgICAgICAgdGhpcy5oYXNOZXh0ID0gcmVzPy5oYXNOZXh0ICE9PSB1bmRlZmluZWQgPyAhIXJlcy5oYXNOZXh0IDogKGVsZW1lbnRzLmxlbmd0aCA9PT0gdGhpcy5wYWdlU2l6ZSk7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XHJcblxyXG4gICAgICAgIGlmIChhcHBlbmQpIHtcclxuICAgICAgICAgIHRoaXMucXVlc3Rpb25zTGlzdCA9IFsuLi50aGlzLnF1ZXN0aW9uc0xpc3QsIC4uLmVsZW1lbnRzXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5xdWVzdGlvbnNMaXN0ID0gZWxlbWVudHM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnF1ZXN0aW9uc0xpc3QuZm9yRWFjaChxID0+IHtcclxuICAgICAgICAgIGlmIChxLmlkKSB0aGlzLnF1ZXN0aW9uQmFua1txLmlkXSA9IHE7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEJhdGNoIGNoZWNrIGxvY2sgc3RhdHVzIGZvciBxdWVzdGlvbnNcclxuICAgICAgICBjb25zdCBxdWVzdGlvbklkcyA9IGVsZW1lbnRzLm1hcChxID0+IHEuaWQpLmZpbHRlcihCb29sZWFuKSBhcyBudW1iZXJbXTtcclxuICAgICAgICBpZiAocXVlc3Rpb25JZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5hc3Nlc3NtZW50TWFrZXJTZXJ2aWNlLmNoZWNrUXVlc3Rpb25zTG9ja2VkKHF1ZXN0aW9uSWRzLCAnQVNTRVNTTUVOVF9JTlNUQU5DRScpXHJcbiAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2Yoe30pKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgobG9ja2VkTWFwOiBSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyLCBib29sZWFuPikgPT4ge1xyXG4gICAgICAgICAgICAgIE9iamVjdC5rZXlzKGxvY2tlZE1hcCB8fCB7fSkuZm9yRWFjaChrID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9ja2VkUXVlc3Rpb25zTWFwW051bWJlcihrKV0gPSAhIWxvY2tlZE1hcFtrXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLnF1ZXN0aW9uc0xpc3QuZm9yRWFjaChxID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChxLmlkICYmIHRoaXMubG9ja2VkUXVlc3Rpb25zTWFwW3EuaWRdICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgKHEgYXMgYW55KS5pc0xvY2tlZCA9IHRoaXMubG9ja2VkUXVlc3Rpb25zTWFwW3EuaWRdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZSA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIHF1ZXN0aW9uIGJhbmsgcXVlc3Rpb25zJywgZXJyKTtcclxuICAgICAgICB0aGlzLnNuYWNrYmFyTWVzc2FnZS5lbWl0KHsgbWVzc2FnZTogdGhpcy5sYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULlRPQVNULkVSUk9SX0RFRkFVTFQnXSB8fCAnRmFpbGVkIHRvIGxvYWQgcXVlc3Rpb25zLicsIHR5cGU6ICdlcnJvcicgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hDaGFuZ2UodGVybTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFN1YmplY3QkLm5leHQodGVybSB8fCAnJyk7XHJcbiAgfVxyXG5cclxuICBjbGVhclNlYXJjaCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDA7XHJcbiAgICB0aGlzLmxvYWRRdWVzdGlvbnMoMCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgb25UeXBlRmlsdGVyQ2hhbmdlKHR5cGVDb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUeXBlQ29kZSA9IHR5cGVDb2RlIHx8ICcnO1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDA7XHJcbiAgICB0aGlzLmxvYWRRdWVzdGlvbnMoMCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgbG9hZE1vcmUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5oYXNOZXh0ICYmICF0aGlzLmlzTG9hZGluZ01vcmUgJiYgIXRoaXMuc2hvd0xvYWRlcikge1xyXG4gICAgICB0aGlzLmxvYWRRdWVzdGlvbnModGhpcy5jdXJyZW50UGFnZSArIDEsIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25RdWVzdGlvbkNhcmRDbGljayhxdWVzdGlvbjogQXNzZXNzbWVudFF1ZXN0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1F1ZXN0aW9uTG9ja2VkKHF1ZXN0aW9uKSkge1xyXG4gICAgICB0aGlzLnNuYWNrYmFyTWVzc2FnZS5lbWl0KHtcclxuICAgICAgICBtZXNzYWdlOiB0aGlzLmxhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuV0FSTklORy5RVUVTVElPTl9MT0NLRUQnXSB8fCAnVGhpcyBxdWVzdGlvbiBpcyBwYXJ0IG9mIGEgcHVibGlzaGVkIGFzc2Vzc21lbnQgYW5kIGNhbm5vdCBiZSBlZGl0ZWQuJyxcclxuICAgICAgICB0eXBlOiAnaW5mbydcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY3JlYXRlRWRpdFF1ZXN0aW9uKHF1ZXN0aW9uKTtcclxuICB9XHJcblxyXG4gIGlzUXVlc3Rpb25Mb2NrZWQocXVlc3Rpb24/OiBBc3Nlc3NtZW50UXVlc3Rpb24pOiBib29sZWFuIHtcclxuICAgIGlmICghcXVlc3Rpb24/LmlkKSByZXR1cm4gZmFsc2U7XHJcbiAgICBpZiAoKHF1ZXN0aW9uIGFzIGFueSk/LmlzTG9ja2VkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuICEhKHF1ZXN0aW9uIGFzIGFueSkuaXNMb2NrZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gISF0aGlzLmxvY2tlZFF1ZXN0aW9uc01hcFtxdWVzdGlvbi5pZF07XHJcbiAgfVxyXG5cclxuICBjcmVhdGVFZGl0UXVlc3Rpb24ocXVlc3Rpb25EZXRhaWxzPzogQXNzZXNzbWVudFF1ZXN0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAocXVlc3Rpb25EZXRhaWxzPy5pZCkge1xyXG4gICAgICBpZiAodGhpcy5pc1F1ZXN0aW9uTG9ja2VkKHF1ZXN0aW9uRGV0YWlscykpIHtcclxuICAgICAgICB0aGlzLnNuYWNrYmFyTWVzc2FnZS5lbWl0KHtcclxuICAgICAgICAgIG1lc3NhZ2U6IHRoaXMubGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5XQVJOSU5HLlFVRVNUSU9OX0xPQ0tFRCddIHx8ICdUaGlzIHF1ZXN0aW9uIGlzIHBhcnQgb2YgYSBwdWJsaXNoZWQgYXNzZXNzbWVudCBhbmQgY2Fubm90IGJlIGVkaXRlZC4nLFxyXG4gICAgICAgICAgdHlwZTogJ2luZm8nXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vcGVuQnVpbGRlckRpYWxvZyhxdWVzdGlvbkRldGFpbHMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvcGVuQnVpbGRlckRpYWxvZyhxdWVzdGlvbkRldGFpbHM/OiBBc3Nlc3NtZW50UXVlc3Rpb24pOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQXNzZXNzbWVudEJ1aWxkZXJDb21wb25lbnQsIHtcclxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcclxuICAgICAgcG9zaXRpb246IHsgcmlnaHQ6ICcwJyB9LFxyXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxyXG4gICAgICB3aWR0aDogJzU1cmVtJyxcclxuICAgICAgaGVpZ2h0OiAnMTAwdmgnLFxyXG4gICAgICBwYW5lbENsYXNzOiBbJ2Fzc2Vzc21lbnQtZGlhbG9nJywgJ2Fzc2Vzc21lbnQtZGlhbG9nLXNsaWRlci1hbmltYXRpb24nXSxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbENvbmZpZzogdGhpcy5sYWJlbENvbmZpZyxcclxuICAgICAgICBpbWFnZUNvbmZpZzogdGhpcy5pbWFnZUNvbmZpZyxcclxuICAgICAgICBxdWVzdGlvblR5cGVzOiB0aGlzLnF1ZXN0aW9uVHlwZXMsXHJcbiAgICAgICAgcnVsZXM6IHRoaXMucnVsZXMsXHJcbiAgICAgICAgcXVlc3Rpb25CYW5rOiB0aGlzLnF1ZXN0aW9uQmFuayxcclxuICAgICAgICBxdWVzdGlvbkRldGFpbHMsXHJcbiAgICAgICAgc3RhbmRhbG9uZU1vZGU6IHRydWUsXHJcbiAgICAgICAgc2tpbGxzTGlzdDogdGhpcy5za2lsbHNMaXN0LFxyXG4gICAgICAgIHNuYWNrYmFyTWVzc2FnZUVtaXR0ZXI6IHRoaXMuc25hY2tiYXJNZXNzYWdlLFxyXG4gICAgICAgIGlzTG9ja2VkOiB0aGlzLmlzUXVlc3Rpb25Mb2NrZWQocXVlc3Rpb25EZXRhaWxzKVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzPy5zdWNjZXNzKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmV0Y2hRdWVzdGlvbnNMaXN0KSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRRdWVzdGlvbnMoMCwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzPy5xdWVzdGlvbikge1xyXG4gICAgICAgICAgaWYgKHF1ZXN0aW9uRGV0YWlscz8uaWQpIHtcclxuICAgICAgICAgICAgdGhpcy5xdWVzdGlvblVwZGF0ZWQuZW1pdChyZXMucXVlc3Rpb24pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5xdWVzdGlvbkNyZWF0ZWQuZW1pdChyZXMucXVlc3Rpb24pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2FwaXRhbGl6ZUZpcnN0KHRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRleHQpIHJldHVybiAnJztcclxuICAgIHJldHVybiB0ZXh0LnRvTG93ZXJDYXNlKCkuc3BsaXQoJyAnKS5tYXAod29yZCA9PiB3b3JkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKSkuam9pbignICcpO1xyXG4gIH1cclxuXHJcbiAgaW1hZ2VFcnJvckhhbmRsZXIoZXZlbnQ6IGFueSwgZmlsZVBhdGg6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgZXZlbnQudGFyZ2V0LnNyYyA9IGZpbGVQYXRoO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2tpbGxzTGlzdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgZmV0Y2hDb250ZXh0RGF0YU9ubHk6IGZhbHNlLFxyXG4gICAgICBwYWdlOiAwLFxyXG4gICAgICBzaXplOiAyMCxcclxuICAgICAgZGlyZWN0aW9uOiAnQVNDJ1xyXG4gICAgfTtcclxuICAgIHRoaXMuYXNzZXNzbWVudE1ha2VyU2VydmljZS5nZXRSZWZEYXRhQnlDb2RlKCdSRUYuQVNTRVNTTUVOVF9RVUVTVElPTl9TS0lMTCcsIHBhcmFtcykuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5za2lsbHNMaXN0ID0gcmVzPy5lbGVtZW50cyB8fCBbXTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWhlYWRsZXNzXCI+XHJcbjxkaXYgKm5nSWY9XCJjb25maWdzTG9hZGVkICYmICFzaG93TG9hZGVyOyBlbHNlIGxvYWRlclwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHctMTAwIGgtMTAwIHB5LTMgcHgtMyBhc3Nlc3NtZW50LXF1ZXN0aW9uLWJhbmstd3JhcHBlclwiPlxyXG4gICAgXHJcbiAgICA8IS0tIE1vZGUgMTogQ3JlYXRlIFF1ZXN0aW9uIFN0YW5kYWxvbmUgQmFubmVyIC8gQWN0aW9uIFZpZXcgKERlZmF1bHQgd2hlbiBmZXRjaFF1ZXN0aW9uc0xpc3QgPSBmYWxzZSkgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZldGNoUXVlc3Rpb25zTGlzdFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdGV4dC1jZW50ZXIgcC01IGFzc2Vzc21lbnQtYm9yZGVyLXR3byBhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIGFzc2Vzc21lbnQtYmctd2hpdGUgc2hhZG93LXNtIG15LWF1dG9cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTMgcC0zIHJvdW5kZWQtY2lyY2xlIGFzc2Vzc21lbnQtYmctcGFsZXR0ZS1FREYzRkRcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZUNvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULklDT04uUExVU19QUklNQVJZJ11cIiBjbGFzcz1cImljb24tbGdcIlxyXG4gICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJpbWFnZUVycm9ySGFuZGxlcigkZXZlbnQsICdhc3NldHMvY29tbW9ucy1hc3Nlc3NtZW50L2ltYWdlcy9wbHVzLXByaW1hcnkuc3ZnJylcIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwibWItMiBhc3Nlc3NtZW50LXRleHQtc2VtaWJvbGQtMjAgYXNzZXNzbWVudC10ZXh0LWdyZXktdGVuXCI+XHJcbiAgICAgICAgICAgICAgICB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuQ1JFQVRFX1FVRVNUSU9OJ10gfHwgJ0NyZWF0ZSBTdGFuZGFsb25lIFF1ZXN0aW9uJ319XHJcbiAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwibWItNCBhc3Nlc3NtZW50LXRleHQtbWVkaXVtLTE0IGFzc2Vzc21lbnQtdGV4dC1ncmV5LXNldmVuIG1heC13LW1kXCI+XHJcbiAgICAgICAgICAgICAgICB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuUVVFU1RJT05fQkFOS19ERVNDJ10gfHwgJ0NyZWF0ZSBpbmRlcGVuZGVudCBxdWVzdGlvbnMgdGhhdCBjYW4gYmUgc3RvcmVkIGluIHRoZSBxdWVzdGlvbiByZXBvc2l0b3J5IGFuZCBtYXBwZWQgdG8gYW55IGFzc2Vzc21lbnQgbGF0ZXIuJ319XHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY3JlYXRlRWRpdFF1ZXN0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhc3Nlc3NtZW50LWJ1dHRvbi1wYWRkaW5nIGFzc2Vzc21lbnQtYm9yZGVyLXJhZGl1cy10d28gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBhc3Nlc3NtZW50LWJnLXByaW1hcnktb25lIGFzc2Vzc21lbnQtdGV4dC13aGl0ZSBhc3Nlc3NtZW50LXRleHQtc2VtaWJvbGQtMTQgYm9yZGVyLTAgc2hhZG93LXNtIGFzc2Vzc21lbnQtem9vbS1hbmltYXRpb25cIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZUNvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULklDT04uUExVU19XSElURSddXCJcclxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwiaW1hZ2VFcnJvckhhbmRsZXIoJGV2ZW50LCAnYXNzZXRzL2NvbW1vbnMtYXNzZXNzbWVudC9pbWFnZXMvcGx1cy13aGl0ZS5zdmcnKVwiIC8+XHJcbiAgICAgICAgICAgICAgICB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuQ1JFQVRFX1FVRVNUSU9OJ10gfHwgJ0NyZWF0ZSBRdWVzdGlvbid9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gTW9kZSAyOiBRdWVzdGlvbnMgTGlzdCBWaWV3IChPbmx5IHJlbmRlcmVkIGlmIGZldGNoUXVlc3Rpb25zTGlzdCA9IHRydWUpIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZldGNoUXVlc3Rpb25zTGlzdFwiPlxyXG4gICAgICAgIDwhLS0gSGVhZGVyIGJhciAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0zIHctMTAwXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJtYi0xIGFzc2Vzc21lbnQtdGV4dC1zZW1pYm9sZC0xOCBhc3Nlc3NtZW50LXRleHQtZ3JleS10ZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuUVVFU1RJT05fQkFOSyddIHx8ICdRdWVzdGlvbiBCYW5rJ319XHJcbiAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wIGFzc2Vzc21lbnQtdGV4dC1tZWRpdW0tMTIgYXNzZXNzbWVudC10ZXh0LWdyZXktc2V2ZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuUVVFU1RJT05fQkFOS19ERVNDJ10gfHwgJ0NyZWF0ZSBhbmQgbWFuYWdlIGluZGVwZW5kZW50IHF1ZXN0aW9ucyB0byBtYXAgdG8gYXNzZXNzbWVudHMnfX1cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNyZWF0ZUVkaXRRdWVzdGlvbigpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXNzZXNzbWVudC1idXR0b24tcGFkZGluZyBhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgYXNzZXNzbWVudC1iZy1wYWxldHRlLUVERjNGRCBhc3Nlc3NtZW50LXRleHQtcHJpbWFyeS1vbmUgYXNzZXNzbWVudC10ZXh0LXNlbWlib2xkLTEyIGJvcmRlci0wIGFzc2Vzc21lbnQtem9vbS1hbmltYXRpb25cIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZUNvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULklDT04uUExVU19QUklNQVJZJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJpbWFnZUVycm9ySGFuZGxlcigkZXZlbnQsICdhc3NldHMvY29tbW9ucy1hc3Nlc3NtZW50L2ltYWdlcy9wbHVzLXByaW1hcnkuc3ZnJylcIiAvPlxyXG4gICAgICAgICAgICAgICAge3tsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLkNSRUFURV9RVUVTVElPTiddIHx8ICdDcmVhdGUgUXVlc3Rpb24nfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gU2VhcmNoICYgRmlsdGVyIERlY2sgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTMgbWItMyB3LTEwMCBmbGV4LXdyYXAgZmxleC1tZC1ub3dyYXAgcWItdG9vbGJhclwiPlxyXG4gICAgICAgICAgICA8IS0tIFNlYXJjaCBCb3ggLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtd3JhcHBlciBmbGV4LWdyb3ctMSBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWFyY2gtaWNvbi1wcmVmaXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjIuMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTFcIiBjeT1cIjExXCIgcj1cIjhcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9XCIyMVwiIHkxPVwiMjFcIiB4Mj1cIjE2LjY1XCIgeTI9XCIxNi42NVwiPjwvbGluZT5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLlNFQVJDSF9RVUVTVElPTlMnXSB8fCAnU2VhcmNoIHF1ZXN0aW9ucyBieSB0ZXh0Li4uJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoVGVybVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2hDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNlYXJjaFRlcm1cIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiIGNsYXNzPVwic2VhcmNoLWNsZWFyLWJ0blwiIGFyaWEtbGFiZWw9XCJDbGVhciBTZWFyY2hcIj5cclxuICAgICAgICAgICAgICAgICAgICDinJVcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gUXVlc3Rpb24gVHlwZSBEcm9wZG93biBGaWx0ZXIgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eXBlLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbbmdNb2RlbF09XCJzZWxlY3RlZFR5cGVDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHlwZUZpbHRlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLW1hdC1zZWxlY3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImxhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuQUxMX1RZUEVTJ10gfHwgJ0FsbCBRdWVzdGlvbiBUeXBlcydcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlwiPnt7bGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5MQUJFTC5BTExfVFlQRVMnXSB8fCAnQWxsIFF1ZXN0aW9uIFR5cGVzJ319PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB0eXBlIG9mIHF1ZXN0aW9uVHlwZXNcIiBbdmFsdWVdPVwidHlwZS5jb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7dHlwZS5sYWJlbCB8fCB0eXBlLmNvZGV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gUXVlc3Rpb25zIExpc3QgQ2FyZHMgLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uc0xpc3Q/Lmxlbmd0aFwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0zIHctMTAwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHF1ZXN0aW9uIG9mIHF1ZXN0aW9uc0xpc3RcIiBcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC0zIGFzc2Vzc21lbnQtYm9yZGVyLXR3byBhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIHF1ZXN0aW9uLWNvbnRhaW5lciBhc3Nlc3NtZW50LWJnLXdoaXRlXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5jdXJzb3ItcG9pbnRlcl09XCIhaXNRdWVzdGlvbkxvY2tlZChxdWVzdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLnF1ZXN0aW9uLWxvY2tlZC1jYXJkXT1cImlzUXVlc3Rpb25Mb2NrZWQocXVlc3Rpb24pXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblF1ZXN0aW9uQ2FyZENsaWNrKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwIGdhcC0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFzc2Vzc21lbnQtYm9yZGVyLXJhZGl1cy10d28gcC0yIGFzc2Vzc21lbnQtYmctcGFsZXR0ZS1GRUY5RjEgYXNzZXNzbWVudC10ZXh0LW1lZGl1bS0xMiBib3JkZXItcGFsZXR0ZS1GOURBQTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2FwaXRhbGl6ZUZpcnN0KHF1ZXN0aW9uPy5xdWVzdGlvblR5cGU/LmxhYmVscz8uWzBdPy50ZXh0IHx8IHF1ZXN0aW9uPy5xdWVzdGlvblR5cGU/LmNvZGUpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInF1ZXN0aW9uPy53ZWlnaHRcIiBjbGFzcz1cImFzc2Vzc21lbnQtYm9yZGVyLXJhZGl1cy10d28gcC0yIGFzc2Vzc21lbnQtYmctcGFsZXR0ZS1FREYzRkQgYXNzZXNzbWVudC10ZXh0LW1lZGl1bS0xMiBib3JkZXItcGFsZXR0ZS1DOERBRjlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cXVlc3Rpb24/LndlaWdodH19IHt7bGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5MQUJFTC5NQVJLUyddIHx8ICdNYXJrcyd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicXVlc3Rpb24/LmlzTWFuZGF0b3J5XCIgY2xhc3M9XCJhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIHAtMiBhc3Nlc3NtZW50LWJnLXBhbGV0dGUtRThGN0YwIGFzc2Vzc21lbnQtdGV4dC1tZWRpdW0tMTIgYm9yZGVyLXBhbGV0dGUtQjdFN0NGXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuTUFOREFUT1JZJ10gfHwgJ01hbmRhdG9yeSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNRdWVzdGlvbkxvY2tlZChxdWVzdGlvbilcIiBjbGFzcz1cImJhZGdlLWxvY2tlZC1waWxsIGQtaW5saW5lLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTFcIiBoZWlnaHQ9XCIxMVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjIuMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjExXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjExXCIgcng9XCIyXCIgcnk9XCIyXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNyAxMVY3YTUgNSAwIDAgMSAxMCAwdjRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7bGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5MQUJFTC5MT0NLRUQnXSB8fCAnTG9ja2VkJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFzc2Vzc21lbnQtdGV4dC1tZWRpdW0tMTUgcXVlc3Rpb24tdGV4dCB0ZXh0LWJyZWFrXCIgW2lubmVySFRNTF09XCJxdWVzdGlvbj8ucXVlc3Rpb25UZXh0Py5bMF0/LnRleHRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPCEtLSBTa2lsbCBtYXBwaW5nIGJhZGdlcyAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIocXVlc3Rpb24/LnNraWxsQ29kZXM/Lmxlbmd0aCA/PyAwKSA+IDBcIiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgc2tpbGwgb2YgcXVlc3Rpb24/LnNraWxsQ29kZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhc3Nlc3NtZW50LXRleHQtbWVkaXVtLTEyIGFzc2Vzc21lbnQtdGV4dC1ncmV5LXRlbiByb3VuZGVkLTIgc2tpbGwtY2hpcCBweC0yIHB5LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2tpbGw/LmxhYmVscz8uWzBdPy50ZXh0IHx8IHNraWxsPy5uYW1lIHx8IHNraWxsPy5jb2RlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBMb2FkIE1vcmUgYnV0dG9uIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaGFzTmV4dFwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgcHktMyB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibG9hZE1vcmUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvYWRpbmdNb3JlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhc3Nlc3NtZW50LWJ1dHRvbi1wYWRkaW5nIGFzc2Vzc21lbnQtYm9yZGVyLXJhZGl1cy10d28gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBhc3Nlc3NtZW50LWJnLXBhbGV0dGUtRURGM0ZEIGFzc2Vzc21lbnQtdGV4dC1wcmltYXJ5LW9uZSBhc3Nlc3NtZW50LXRleHQtc2VtaWJvbGQtMTIgYm9yZGVyLTAgYXNzZXNzbWVudC16b29tLWFuaW1hdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc3Bpbm5lciAqbmdJZj1cImlzTG9hZGluZ01vcmVcIiBkaWFtZXRlcj1cIjE2XCIgY2xhc3M9XCJhc3Nlc3NtZW50LXNwaW5uZXItcHJpbWFyeVwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLkxPQURfTU9SRSddIHx8ICdMb2FkIE1vcmUnfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBFbXB0eSBzdGF0ZSB3aGVuIGZldGNoUXVlc3Rpb25zTGlzdCA9IHRydWUgYnV0IDAgcmVzdWx0cyByZXR1cm5lZCAtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXF1ZXN0aW9uc0xpc3Q/Lmxlbmd0aFwiIGNsYXNzPVwiaC0xMDAgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGdhcC0zIHB5LTVcIj5cclxuICAgICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuSUNPTi5OT19RVUVTVElPTlMnXVwiIGNsYXNzPVwiY29sLXNtLWF1dG8gY29sLTZcIlxyXG4gICAgICAgICAgICAgICAgKGVycm9yKT1cImltYWdlRXJyb3JIYW5kbGVyKCRldmVudCwgJ2Fzc2V0cy9jb21tb25zLWFzc2Vzc21lbnQvaW1hZ2VzL25vLXF1ZXN0aW9ucy5zdmcnKVwiIC8+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0xIGFzc2Vzc21lbnQtdGV4dC1tZWRpdW0tMThcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyhzZWFyY2hUZXJtIHx8IHNlbGVjdGVkVHlwZUNvZGUpID8gKGxhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuTk9fUVVFU1RJT05TX0ZPVU5EJ10gfHwgJ05vIG1hdGNoaW5nIHF1ZXN0aW9ucyBmb3VuZCcpIDogKGxhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuTk9fUVVFU1RJT05TX0lOX0JBTksnXSB8fCAnTm8gUXVlc3Rpb25zIGluIEJhbmshJyl9fVxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wIGFzc2Vzc21lbnQtdGV4dC1tZWRpdW0tMTIgYXNzZXNzbWVudC10ZXh0LWdyZXktc2V2ZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyhzZWFyY2hUZXJtIHx8IHNlbGVjdGVkVHlwZUNvZGUpID8gJ1RyeSBhZGp1c3RpbmcgeW91ciBzZWFyY2ggdGVybSBvciBmaWx0ZXInIDogKGxhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuTk9fUVVFU1RJT05TX0lOX0JBTktfREVTQyddIHx8ICdDcmVhdGUgc3RhbmRhbG9uZSBxdWVzdGlvbnMgdG8gcmV1c2UgYWNyb3NzIGFzc2Vzc21lbnRzJyl9fVxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFzZWFyY2hUZXJtICYmICFzZWxlY3RlZFR5cGVDb2RlXCIgKGNsaWNrKT1cImNyZWF0ZUVkaXRRdWVzdGlvbigpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXNzZXNzbWVudC1idXR0b24tcGFkZGluZyBhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgYXNzZXNzbWVudC1iZy1wYWxldHRlLUVERjNGRCBhc3Nlc3NtZW50LXRleHQtcHJpbWFyeS1vbmUgYXNzZXNzbWVudC10ZXh0LXNlbWlib2xkLTEyIGJvcmRlci0wIGFzc2Vzc21lbnQtem9vbS1hbmltYXRpb25cIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZUNvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULklDT04uUExVU19QUklNQVJZJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJpbWFnZUVycm9ySGFuZGxlcigkZXZlbnQsICdhc3NldHMvY29tbW9ucy1hc3Nlc3NtZW50L2ltYWdlcy9wbHVzLXByaW1hcnkuc3ZnJylcIiAvPlxyXG4gICAgICAgICAgICAgICAge3tsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLkNSRUFURV9RVUVTVElPTiddIHx8ICdDcmVhdGUgUXVlc3Rpb24nfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzZWFyY2hUZXJtIHx8IHNlbGVjdGVkVHlwZUNvZGVcIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKTsgb25UeXBlRmlsdGVyQ2hhbmdlKCcnKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFzc2Vzc21lbnQtYnV0dG9uLXBhZGRpbmcgYXNzZXNzbWVudC1ib3JkZXItcmFkaXVzLXR3byBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIGFzc2Vzc21lbnQtYmctcGFsZXR0ZS1FREYzRkQgYXNzZXNzbWVudC10ZXh0LXByaW1hcnktb25lIGFzc2Vzc21lbnQtdGV4dC1zZW1pYm9sZC0xMiBib3JkZXItMCBhc3Nlc3NtZW50LXpvb20tYW5pbWF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICBDbGVhciBGaWx0ZXJzXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNsb2FkZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaC0xMDAgdy0xMDAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHB5LTVcIj5cclxuICAgICAgICA8bWF0LXNwaW5uZXIgZGlhbWV0ZXI9XCI2MFwiIGNsYXNzPVwiYXNzZXNzbWVudC1zcGlubmVyLXByaW1hcnlcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
313
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYmFuay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb25zLWFzc2Vzc21lbnQvc3JjL2xpYi9tb2R1bGVzL3F1ZXN0aW9uLWJhbmsvcXVlc3Rpb24tYmFuay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb25zLWFzc2Vzc21lbnQvc3JjL2xpYi9tb2R1bGVzL3F1ZXN0aW9uLWJhbmsvcXVlc3Rpb24tYmFuay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0YsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7Ozs7Ozs7Ozs7QUFTNUgsTUFBTSxPQUFPLHFCQUFxQjtJQW1DaEMsWUFDVSxzQkFBOEMsRUFDOUMsd0JBQWtELEVBQ2xELE1BQWlCO1FBRmpCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBckNsQixnQkFBVyxHQUE4QixFQUFFLENBQUM7UUFDNUMsZ0JBQVcsR0FBOEIsRUFBRSxDQUFDO1FBQzVDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyx1QkFBa0IsR0FBdUIsRUFBRSxDQUFDO1FBQzVDLGtDQUE2QixHQUFZLEtBQUssQ0FBQztRQUMvQyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7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RyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLFFBQVEsS0FBSSxFQUFFLENBQUM7WUFDeEMsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzttSEF6U1UscUJBQXFCO3VHQUFyQixxQkFBcUIsZ2dCQ2hCbEMsaTFYQWtLQTs0RkRsSmEscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5Qzs0S0FFVSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBRdWVzdGlvbkJhbmtDb25maWcsIFF1ZXN0aW9uVHlwZSwgUmVmRGF0YSB9IGZyb20gJy4uLy4uL3NoYXJlZC9pbnRlcmZhY2VzL2Fzc2Vzc21lbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQXNzZXNzbWVudFF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2ludGVyZmFjZXMvcXVlc3Rpb24uaW50ZXJmYWNlJztcclxuXHJcbmltcG9ydCB7IEFzc2Vzc21lbnRCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYXNzZXNzbWVudC1tYWtlci9jb21wb25lbnRzL2Fzc2Vzc21lbnQtYnVpbGRlci9hc3Nlc3NtZW50LWJ1aWxkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzZXNzbWVudEJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vYXNzZXNzbWVudC1tYWtlci9zZXJ2aWNlcy9hc3Nlc3NtZW50LWJ1aWxkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFzc2Vzc21lbnRNYWtlclNlcnZpY2UgfSBmcm9tICcuLi9hc3Nlc3NtZW50LW1ha2VyL3NlcnZpY2VzL2Fzc2Vzc21lbnQtbWFrZXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1iYW5rJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24tYmFuay5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tYmFuay5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkJhbmtDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgbGFiZWxDb25maWc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICBASW5wdXQoKSBpbWFnZUNvbmZpZzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gIEBJbnB1dCgpIHF1ZXN0aW9uVHlwZXM6IFF1ZXN0aW9uVHlwZVtdID0gW107XHJcbiAgQElucHV0KCkgY3VzdG9tUnVsZXM/OiBhbnk7XHJcbiAgQElucHV0KCkgcXVlc3Rpb25CYW5rQ29uZmlnOiBRdWVzdGlvbkJhbmtDb25maWcgPSB7fTtcclxuICBASW5wdXQoKSBlbmFibGVTa2lsbHNUb1F1ZXN0aW9uTWFwcGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZldGNoUXVlc3Rpb25zTGlzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGF1dG9PcGVuQnVpbGRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhlYWRsZXNzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBxdWVzdGlvbkNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFzc2Vzc21lbnRRdWVzdGlvbj4oKTtcclxuICBAT3V0cHV0KCkgcXVlc3Rpb25VcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxBc3Nlc3NtZW50UXVlc3Rpb24+KCk7XHJcbiAgQE91dHB1dCgpIHNuYWNrYmFyTWVzc2FnZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBtZXNzYWdlOiBzdHJpbmcsIHR5cGU6ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnaW5mbycgfT4oKTtcclxuXHJcbiAgcXVlc3Rpb25zTGlzdDogQXNzZXNzbWVudFF1ZXN0aW9uW10gPSBbXTtcclxuICBxdWVzdGlvbkJhbms6IFJlY29yZDxudW1iZXIsIEFzc2Vzc21lbnRRdWVzdGlvbj4gPSB7fTtcclxuICBjb25maWdzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHJ1bGVzOiBhbnk7XHJcbiAgc2tpbGxzTGlzdDogUmVmRGF0YVtdID0gW107XHJcblxyXG4gIC8vIFNlcnZlci1zaWRlIHNlYXJjaCAmIGZpbHRlcmluZyBzdGF0ZVxyXG4gIHNlYXJjaFRlcm06IHN0cmluZyA9ICcnO1xyXG4gIHNlbGVjdGVkVHlwZUNvZGU6IHN0cmluZyA9ICcnO1xyXG4gIGN1cnJlbnRQYWdlOiBudW1iZXIgPSAwO1xyXG4gIHBhZ2VTaXplOiBudW1iZXIgPSAxMDA7XHJcbiAgdG90YWxFbGVtZW50czogbnVtYmVyID0gMDtcclxuICBoYXNOZXh0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNMb2FkaW5nTW9yZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvY2tlZFF1ZXN0aW9uc01hcDogUmVjb3JkPG51bWJlciwgYm9vbGVhbj4gPSB7fTtcclxuXHJcbiAgcHJpdmF0ZSBzZWFyY2hTdWJqZWN0JCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFzc2Vzc21lbnRNYWtlclNlcnZpY2U6IEFzc2Vzc21lbnRNYWtlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFzc2Vzc21lbnRCdWlsZGVyU2VydmljZTogQXNzZXNzbWVudEJ1aWxkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb25CYW5rQ29uZmlnKSB7XHJcbiAgICAgIHRoaXMuYXNzZXNzbWVudEJ1aWxkZXJTZXJ2aWNlLnNldERlZmF1bHRBc3Nlc3NtZW50RFRPKHtcclxuICAgICAgICBkb21haW46IHRoaXMucXVlc3Rpb25CYW5rQ29uZmlnLmRvbWFpbixcclxuICAgICAgICB0ZW5hbnQ6IHRoaXMucXVlc3Rpb25CYW5rQ29uZmlnLnRlbmFudFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0Q29uZmlnc0Zyb21KU09OKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZmV0Y2hRdWVzdGlvbnNMaXN0KSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoU3ViamVjdCQucGlwZShcclxuICAgICAgICBkZWJvdW5jZVRpbWUoMzUwKSxcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG4gICAgICApLnN1YnNjcmliZSh0ZXJtID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSB0ZXJtO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSAwO1xyXG4gICAgICAgIHRoaXMubG9hZFF1ZXN0aW9ucygwLCBmYWxzZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKDAsIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5lbmFibGVTa2lsbHNUb1F1ZXN0aW9uTWFwcGluZykge1xyXG4gICAgICB0aGlzLmdldFNraWxsc0xpc3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0Q29uZmlnc0Zyb21KU09OKCkge1xyXG4gICAgZm9ya0pvaW4oe1xyXG4gICAgICBsYWJlbENvbmZpZzogdGhpcy5hc3Nlc3NtZW50TWFrZXJTZXJ2aWNlLmdldENvbmZpZ0pTT04oJ2pzb24vbGFiZWxDb25maWcnKSxcclxuICAgICAgaW1hZ2VDb25maWc6IHRoaXMuYXNzZXNzbWVudE1ha2VyU2VydmljZS5nZXRDb25maWdKU09OKCdqc29uL2ltYWdlQ29uZmlnJyksXHJcbiAgICAgIHJ1bGVzOiB0aGlzLmFzc2Vzc21lbnRNYWtlclNlcnZpY2UuZ2V0Q29uZmlnSlNPTignanNvbi9xdWVzdGlvbi1idWlsZGVyLXJ1bGVzJyksXHJcbiAgICAgIC4uLighdGhpcy5xdWVzdGlvblR5cGVzPy5sZW5ndGggJiYge1xyXG4gICAgICAgIHF1ZXN0aW9uVHlwZXM6IHRoaXMuYXNzZXNzbWVudE1ha2VyU2VydmljZS5nZXRDb25maWdKU09OKCdqc29uL3F1ZXN0aW9uVHlwZXMnKVxyXG4gICAgICB9KVxyXG4gICAgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sYWJlbENvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIHJlcz8ubGFiZWxDb25maWcsIHRoaXMubGFiZWxDb25maWcpO1xyXG4gICAgICAgIHRoaXMuaW1hZ2VDb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCByZXM/LmltYWdlQ29uZmlnLCB0aGlzLmltYWdlQ29uZmlnKTtcclxuICAgICAgICBpZiAocmVzPy5xdWVzdGlvblR5cGVzKSB7XHJcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uVHlwZXMgPSByZXM/LnF1ZXN0aW9uVHlwZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucnVsZXMgPSB7IC4uLnJlcz8ucnVsZXMgfTtcclxuICAgICAgICBpZiAodGhpcy5jdXN0b21SdWxlcykge1xyXG4gICAgICAgICAgT2JqZWN0LmtleXModGhpcy5jdXN0b21SdWxlcykuZm9yRWFjaChxVHlwZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucnVsZXNbcVR5cGVdID0geyAuLi4odGhpcy5ydWxlc1txVHlwZV0gfHwge30pLCAuLi50aGlzLmN1c3RvbVJ1bGVzW3FUeXBlXSB9O1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29uZmlnc0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMuYXV0b09wZW5CdWlsZGVyKSB7XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZUVkaXRRdWVzdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBKU09OIGNvbmZpZ3MnLCBlcnIpO1xyXG4gICAgICAgIHRoaXMuc25hY2tiYXJNZXNzYWdlLmVtaXQoeyBtZXNzYWdlOiB0aGlzLmxhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuVE9BU1QuRVJST1JfREVGQVVMVCddIHx8ICdGYWlsZWQgdG8gbG9hZCBjb25maWd1cmF0aW9ucy4nLCB0eXBlOiAnZXJyb3InIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWRRdWVzdGlvbnMocGFnZTogbnVtYmVyID0gMCwgYXBwZW5kOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmIChhcHBlbmQpIHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmdNb3JlID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7XHJcbiAgICAgIHBhZ2UsXHJcbiAgICAgIHNpemU6IHRoaXMucGFnZVNpemVcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbkJhbmtDb25maWc/LmRvbWFpbikge1xyXG4gICAgICBwYXJhbXMuZG9tYWluID0gdGhpcy5xdWVzdGlvbkJhbmtDb25maWcuZG9tYWluO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucXVlc3Rpb25CYW5rQ29uZmlnPy50ZW5hbnQpIHtcclxuICAgICAgcGFyYW1zLnRlbmFudCA9IHRoaXMucXVlc3Rpb25CYW5rQ29uZmlnLnRlbmFudDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlYXJjaFRlcm0/LnRyaW0oKSkge1xyXG4gICAgICBwYXJhbXMucXVlc3Rpb25UZXh0ID0gdGhpcy5zZWFyY2hUZXJtLnRyaW0oKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkVHlwZUNvZGUpIHtcclxuICAgICAgcGFyYW1zLnF1ZXN0aW9uVHlwZSA9IHRoaXMuc2VsZWN0ZWRUeXBlQ29kZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRNYWtlclNlcnZpY2UuZ2V0UXVlc3Rpb25CYW5rUXVlc3Rpb25zKHBhcmFtcykuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudHM6IEFzc2Vzc21lbnRRdWVzdGlvbltdID0gcmVzPy5jb250ZW50IHx8IHJlcz8uZWxlbWVudHMgfHwgKEFycmF5LmlzQXJyYXkocmVzKSA/IHJlcyA6IFtdKTtcclxuICAgICAgICB0aGlzLnRvdGFsRWxlbWVudHMgPSByZXM/LnRvdGFsRWxlbWVudHMgPz8gKGFwcGVuZCA/IHRoaXMucXVlc3Rpb25zTGlzdC5sZW5ndGggKyBlbGVtZW50cy5sZW5ndGggOiBlbGVtZW50cy5sZW5ndGgpO1xyXG4gICAgICAgIHRoaXMuaGFzTmV4dCA9IHJlcz8uaGFzTmV4dCAhPT0gdW5kZWZpbmVkID8gISFyZXMuaGFzTmV4dCA6IChlbGVtZW50cy5sZW5ndGggPT09IHRoaXMucGFnZVNpemUpO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xyXG5cclxuICAgICAgICBpZiAoYXBwZW5kKSB7XHJcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uc0xpc3QgPSBbLi4udGhpcy5xdWVzdGlvbnNMaXN0LCAuLi5lbGVtZW50c107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucXVlc3Rpb25zTGlzdCA9IGVsZW1lbnRzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5xdWVzdGlvbnNMaXN0LmZvckVhY2gocSA9PiB7XHJcbiAgICAgICAgICBpZiAocS5pZCkgdGhpcy5xdWVzdGlvbkJhbmtbcS5pZF0gPSBxO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBCYXRjaCBjaGVjayBsb2NrIHN0YXR1cyBmb3IgcXVlc3Rpb25zXHJcbiAgICAgICAgY29uc3QgcXVlc3Rpb25JZHMgPSBlbGVtZW50cy5tYXAocSA9PiBxLmlkKS5maWx0ZXIoQm9vbGVhbikgYXMgbnVtYmVyW107XHJcbiAgICAgICAgaWYgKHF1ZXN0aW9uSWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuYXNzZXNzbWVudE1ha2VyU2VydmljZS5jaGVja1F1ZXN0aW9uc0xvY2tlZChxdWVzdGlvbklkcywgJ0FTU0VTU01FTlRfSU5TVEFOQ0UnKVxyXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IG9mKHt9KSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxvY2tlZE1hcDogUmVjb3JkPHN0cmluZyB8IG51bWJlciwgYm9vbGVhbj4pID0+IHtcclxuICAgICAgICAgICAgICBPYmplY3Qua2V5cyhsb2NrZWRNYXAgfHwge30pLmZvckVhY2goayA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2tlZFF1ZXN0aW9uc01hcFtOdW1iZXIoayldID0gISFsb2NrZWRNYXBba107XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5xdWVzdGlvbnNMaXN0LmZvckVhY2gocSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocS5pZCAmJiB0aGlzLmxvY2tlZFF1ZXN0aW9uc01hcFtxLmlkXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgIChxIGFzIGFueSkuaXNMb2NrZWQgPSB0aGlzLmxvY2tlZFF1ZXN0aW9uc01hcFtxLmlkXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZ01vcmUgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZ01vcmUgPSBmYWxzZTtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBxdWVzdGlvbiBiYW5rIHF1ZXN0aW9ucycsIGVycik7XHJcbiAgICAgICAgdGhpcy5zbmFja2Jhck1lc3NhZ2UuZW1pdCh7IG1lc3NhZ2U6IHRoaXMubGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5UT0FTVC5FUlJPUl9ERUZBVUxUJ10gfHwgJ0ZhaWxlZCB0byBsb2FkIHF1ZXN0aW9ucy4nLCB0eXBlOiAnZXJyb3InIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoQ2hhbmdlKHRlcm06IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTdWJqZWN0JC5uZXh0KHRlcm0gfHwgJycpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJTZWFyY2goKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSAnJztcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAwO1xyXG4gICAgdGhpcy5sb2FkUXVlc3Rpb25zKDAsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIG9uVHlwZUZpbHRlckNoYW5nZSh0eXBlQ29kZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVHlwZUNvZGUgPSB0eXBlQ29kZSB8fCAnJztcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAwO1xyXG4gICAgdGhpcy5sb2FkUXVlc3Rpb25zKDAsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGxvYWRNb3JlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaGFzTmV4dCAmJiAhdGhpcy5pc0xvYWRpbmdNb3JlICYmICF0aGlzLnNob3dMb2FkZXIpIHtcclxuICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKHRoaXMuY3VycmVudFBhZ2UgKyAxLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUXVlc3Rpb25DYXJkQ2xpY2socXVlc3Rpb246IEFzc2Vzc21lbnRRdWVzdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNRdWVzdGlvbkxvY2tlZChxdWVzdGlvbikpIHtcclxuICAgICAgdGhpcy5zbmFja2Jhck1lc3NhZ2UuZW1pdCh7XHJcbiAgICAgICAgbWVzc2FnZTogdGhpcy5sYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULldBUk5JTkcuUVVFU1RJT05fTE9DS0VEJ10gfHwgJ1RoaXMgcXVlc3Rpb24gaXMgcGFydCBvZiBhIHB1Ymxpc2hlZCBhc3Nlc3NtZW50IGFuZCBjYW5ub3QgYmUgZWRpdGVkLicsXHJcbiAgICAgICAgdHlwZTogJ2luZm8nXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNyZWF0ZUVkaXRRdWVzdGlvbihxdWVzdGlvbik7XHJcbiAgfVxyXG5cclxuICBpc1F1ZXN0aW9uTG9ja2VkKHF1ZXN0aW9uPzogQXNzZXNzbWVudFF1ZXN0aW9uKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXF1ZXN0aW9uPy5pZCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgaWYgKChxdWVzdGlvbiBhcyBhbnkpPy5pc0xvY2tlZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiAhIShxdWVzdGlvbiBhcyBhbnkpLmlzTG9ja2VkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICEhdGhpcy5sb2NrZWRRdWVzdGlvbnNNYXBbcXVlc3Rpb24uaWRdO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlRWRpdFF1ZXN0aW9uKHF1ZXN0aW9uRGV0YWlscz86IEFzc2Vzc21lbnRRdWVzdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKHF1ZXN0aW9uRGV0YWlscz8uaWQpIHtcclxuICAgICAgaWYgKHRoaXMuaXNRdWVzdGlvbkxvY2tlZChxdWVzdGlvbkRldGFpbHMpKSB7XHJcbiAgICAgICAgdGhpcy5zbmFja2Jhck1lc3NhZ2UuZW1pdCh7XHJcbiAgICAgICAgICBtZXNzYWdlOiB0aGlzLmxhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuV0FSTklORy5RVUVTVElPTl9MT0NLRUQnXSB8fCAnVGhpcyBxdWVzdGlvbiBpcyBwYXJ0IG9mIGEgcHVibGlzaGVkIGFzc2Vzc21lbnQgYW5kIGNhbm5vdCBiZSBlZGl0ZWQuJyxcclxuICAgICAgICAgIHR5cGU6ICdpbmZvJ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub3BlbkJ1aWxkZXJEaWFsb2cocXVlc3Rpb25EZXRhaWxzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb3BlbkJ1aWxkZXJEaWFsb2cocXVlc3Rpb25EZXRhaWxzPzogQXNzZXNzbWVudFF1ZXN0aW9uKTogdm9pZCB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFzc2Vzc21lbnRCdWlsZGVyQ29tcG9uZW50LCB7XHJcbiAgICAgIGF1dG9Gb2N1czogZmFsc2UsXHJcbiAgICAgIHBvc2l0aW9uOiB7IHJpZ2h0OiAnMCcgfSxcclxuICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcclxuICAgICAgd2lkdGg6ICc1NXJlbScsXHJcbiAgICAgIGhlaWdodDogJzEwMHZoJyxcclxuICAgICAgcGFuZWxDbGFzczogWydhc3Nlc3NtZW50LWRpYWxvZycsICdhc3Nlc3NtZW50LWRpYWxvZy1zbGlkZXItYW5pbWF0aW9uJ10sXHJcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbGFiZWxDb25maWc6IHRoaXMubGFiZWxDb25maWcsXHJcbiAgICAgICAgaW1hZ2VDb25maWc6IHRoaXMuaW1hZ2VDb25maWcsXHJcbiAgICAgICAgcXVlc3Rpb25UeXBlczogdGhpcy5xdWVzdGlvblR5cGVzLFxyXG4gICAgICAgIHJ1bGVzOiB0aGlzLnJ1bGVzLFxyXG4gICAgICAgIHF1ZXN0aW9uQmFuazogdGhpcy5xdWVzdGlvbkJhbmssXHJcbiAgICAgICAgcXVlc3Rpb25EZXRhaWxzLFxyXG4gICAgICAgIHN0YW5kYWxvbmVNb2RlOiB0cnVlLFxyXG4gICAgICAgIHNraWxsc0xpc3Q6IHRoaXMuc2tpbGxzTGlzdCxcclxuICAgICAgICBzbmFja2Jhck1lc3NhZ2VFbWl0dGVyOiB0aGlzLnNuYWNrYmFyTWVzc2FnZSxcclxuICAgICAgICBpc0xvY2tlZDogdGhpcy5pc1F1ZXN0aW9uTG9ja2VkKHF1ZXN0aW9uRGV0YWlscylcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcz8uc3VjY2Vzcykge1xyXG4gICAgICAgIGlmICh0aGlzLmZldGNoUXVlc3Rpb25zTGlzdCkge1xyXG4gICAgICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKDAsIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlcz8ucXVlc3Rpb24pIHtcclxuICAgICAgICAgIGlmIChxdWVzdGlvbkRldGFpbHM/LmlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucXVlc3Rpb25VcGRhdGVkLmVtaXQocmVzLnF1ZXN0aW9uKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucXVlc3Rpb25DcmVhdGVkLmVtaXQocmVzLnF1ZXN0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIGNhcGl0YWxpemVGaXJzdCh0ZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0ZXh0KSByZXR1cm4gJyc7XHJcbiAgICByZXR1cm4gdGV4dC50b0xvd2VyQ2FzZSgpLnNwbGl0KCcgJykubWFwKHdvcmQgPT4gd29yZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSkpLmpvaW4oJyAnKTtcclxuICB9XHJcblxyXG4gIGltYWdlRXJyb3JIYW5kbGVyKGV2ZW50OiBhbnksIGZpbGVQYXRoOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGV2ZW50LnRhcmdldC5zcmMgPSBmaWxlUGF0aDtcclxuICB9XHJcblxyXG4gIGdldFNraWxsc0xpc3QoKTogdm9pZCB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgIGZldGNoQ29udGV4dERhdGFPbmx5OiBmYWxzZSxcclxuICAgICAgcGFnZTogMCxcclxuICAgICAgc2l6ZTogMjAsXHJcbiAgICAgIGRpcmVjdGlvbjogJ0FTQydcclxuICAgIH07XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRNYWtlclNlcnZpY2UuZ2V0UmVmRGF0YUJ5Q29kZSgnUkVGLkFTU0VTU01FTlRfUVVFU1RJT05fU0tJTEwnLCBwYXJhbXMpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2tpbGxzTGlzdCA9IHJlcz8uZWxlbWVudHMgfHwgW107XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoZWFkbGVzc1wiPlxyXG48ZGl2ICpuZ0lmPVwiY29uZmlnc0xvYWRlZCAmJiAhc2hvd0xvYWRlcjsgZWxzZSBsb2FkZXJcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiB3LTEwMCBoLTEwMCBweS0zIHB4LTMgYXNzZXNzbWVudC1xdWVzdGlvbi1iYW5rLXdyYXBwZXJcIj5cclxuICAgIFxyXG4gICAgPCEtLSBNb2RlIDE6IENyZWF0ZSBRdWVzdGlvbiBTdGFuZGFsb25lIEJhbm5lciAvIEFjdGlvbiBWaWV3IChEZWZhdWx0IHdoZW4gZmV0Y2hRdWVzdGlvbnNMaXN0ID0gZmFsc2UpIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmZXRjaFF1ZXN0aW9uc0xpc3RcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHRleHQtY2VudGVyIHAtNSBhc3Nlc3NtZW50LWJvcmRlci10d28gYXNzZXNzbWVudC1ib3JkZXItcmFkaXVzLXR3byBhc3Nlc3NtZW50LWJnLXdoaXRlIHNoYWRvdy1zbSBteS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIHAtMyByb3VuZGVkLWNpcmNsZSBhc3Nlc3NtZW50LWJnLXBhbGV0dGUtRURGM0ZEXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5JQ09OLlBMVVNfUFJJTUFSWSddXCIgY2xhc3M9XCJpY29uLWxnXCJcclxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwiaW1hZ2VFcnJvckhhbmRsZXIoJGV2ZW50LCAnYXNzZXRzL2NvbW1vbnMtYXNzZXNzbWVudC9pbWFnZXMvcGx1cy1wcmltYXJ5LnN2ZycpXCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cIm1iLTIgYXNzZXNzbWVudC10ZXh0LXNlbWlib2xkLTIwIGFzc2Vzc21lbnQtdGV4dC1ncmV5LXRlblwiPlxyXG4gICAgICAgICAgICAgICAge3tsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLkNSRUFURV9RVUVTVElPTiddIHx8ICdDcmVhdGUgU3RhbmRhbG9uZSBRdWVzdGlvbid9fVxyXG4gICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTQgYXNzZXNzbWVudC10ZXh0LW1lZGl1bS0xNCBhc3Nlc3NtZW50LXRleHQtZ3JleS1zZXZlbiBtYXgtdy1tZFwiPlxyXG4gICAgICAgICAgICAgICAge3tsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLlFVRVNUSU9OX0JBTktfREVTQyddIHx8ICdDcmVhdGUgaW5kZXBlbmRlbnQgcXVlc3Rpb25zIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiB0aGUgcXVlc3Rpb24gcmVwb3NpdG9yeSBhbmQgbWFwcGVkIHRvIGFueSBhc3Nlc3NtZW50IGxhdGVyLid9fVxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNyZWF0ZUVkaXRRdWVzdGlvbigpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYXNzZXNzbWVudC1idXR0b24tcGFkZGluZyBhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgYXNzZXNzbWVudC1iZy1wcmltYXJ5LW9uZSBhc3Nlc3NtZW50LXRleHQtd2hpdGUgYXNzZXNzbWVudC10ZXh0LXNlbWlib2xkLTE0IGJvcmRlci0wIHNoYWRvdy1zbSBhc3Nlc3NtZW50LXpvb20tYW5pbWF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5JQ09OLlBMVVNfV0hJVEUnXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cImltYWdlRXJyb3JIYW5kbGVyKCRldmVudCwgJ2Fzc2V0cy9jb21tb25zLWFzc2Vzc21lbnQvaW1hZ2VzL3BsdXMtd2hpdGUuc3ZnJylcIiAvPlxyXG4gICAgICAgICAgICAgICAge3tsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLkNSRUFURV9RVUVTVElPTiddIHx8ICdDcmVhdGUgUXVlc3Rpb24nfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIE1vZGUgMjogUXVlc3Rpb25zIExpc3QgVmlldyAoT25seSByZW5kZXJlZCBpZiBmZXRjaFF1ZXN0aW9uc0xpc3QgPSB0cnVlKSAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmZXRjaFF1ZXN0aW9uc0xpc3RcIj5cclxuICAgICAgICA8IS0tIEhlYWRlciBiYXIgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMyB3LTEwMFwiPlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwibWItMSBhc3Nlc3NtZW50LXRleHQtc2VtaWJvbGQtMTggYXNzZXNzbWVudC10ZXh0LWdyZXktdGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLlFVRVNUSU9OX0JBTksnXSB8fCAnUXVlc3Rpb24gQmFuayd9fVxyXG4gICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMCBhc3Nlc3NtZW50LXRleHQtbWVkaXVtLTEyIGFzc2Vzc21lbnQtdGV4dC1ncmV5LXNldmVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLlFVRVNUSU9OX0JBTktfREVTQyddIHx8ICdDcmVhdGUgYW5kIG1hbmFnZSBpbmRlcGVuZGVudCBxdWVzdGlvbnMgdG8gbWFwIHRvIGFzc2Vzc21lbnRzJ319XHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjcmVhdGVFZGl0UXVlc3Rpb24oKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFzc2Vzc21lbnQtYnV0dG9uLXBhZGRpbmcgYXNzZXNzbWVudC1ib3JkZXItcmFkaXVzLXR3byBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIGFzc2Vzc21lbnQtYmctcGFsZXR0ZS1FREYzRkQgYXNzZXNzbWVudC10ZXh0LXByaW1hcnktb25lIGFzc2Vzc21lbnQtdGV4dC1zZW1pYm9sZC0xMiBib3JkZXItMCBhc3Nlc3NtZW50LXpvb20tYW5pbWF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5JQ09OLlBMVVNfUFJJTUFSWSddXCJcclxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwiaW1hZ2VFcnJvckhhbmRsZXIoJGV2ZW50LCAnYXNzZXRzL2NvbW1vbnMtYXNzZXNzbWVudC9pbWFnZXMvcGx1cy1wcmltYXJ5LnN2ZycpXCIgLz5cclxuICAgICAgICAgICAgICAgIHt7bGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5MQUJFTC5DUkVBVEVfUVVFU1RJT04nXSB8fCAnQ3JlYXRlIFF1ZXN0aW9uJ319XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIFNlYXJjaCAmIEZpbHRlciBEZWNrIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zIG1iLTMgdy0xMDAgZmxleC13cmFwIGZsZXgtbWQtbm93cmFwIHFiLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgPCEtLSBTZWFyY2ggQm94IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LXdyYXBwZXIgZmxleC1ncm93LTEgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VhcmNoLWljb24tcHJlZml4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyLjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjExXCIgY3k9XCIxMVwiIHI9XCI4XCI+PC9jaXJjbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPVwiMjFcIiB5MT1cIjIxXCIgeDI9XCIxNi42NVwiIHkyPVwiMTYuNjVcIj48L2xpbmU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwibGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5MQUJFTC5TRUFSQ0hfUVVFU1RJT05TJ10gfHwgJ1NlYXJjaCBxdWVzdGlvbnMgYnkgdGV4dC4uLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaFRlcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzZWFyY2hUZXJtXCIgKGNsaWNrKT1cImNsZWFyU2VhcmNoKClcIiBjbGFzcz1cInNlYXJjaC1jbGVhci1idG5cIiBhcmlhLWxhYmVsPVwiQ2xlYXIgU2VhcmNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAg4pyVXHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFF1ZXN0aW9uIFR5cGUgRHJvcGRvd24gRmlsdGVyIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHlwZS1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgW25nTW9kZWxdPVwic2VsZWN0ZWRUeXBlQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblR5cGVGaWx0ZXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN1c3RvbS1tYXQtc2VsZWN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLkFMTF9UWVBFUyddIHx8ICdBbGwgUXVlc3Rpb24gVHlwZXMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJcIj57e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuQUxMX1RZUEVTJ10gfHwgJ0FsbCBRdWVzdGlvbiBUeXBlcyd9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBxdWVzdGlvblR5cGVzXCIgW3ZhbHVlXT1cInR5cGUuY29kZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e3R5cGUubGFiZWwgfHwgdHlwZS5jb2RlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIFF1ZXN0aW9ucyBMaXN0IENhcmRzIC0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbnNMaXN0Py5sZW5ndGhcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMyB3LTEwMFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBxdWVzdGlvbnNMaXN0XCIgXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtMyBhc3Nlc3NtZW50LWJvcmRlci10d28gYXNzZXNzbWVudC1ib3JkZXItcmFkaXVzLXR3byBxdWVzdGlvbi1jb250YWluZXIgYXNzZXNzbWVudC1iZy13aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuY3Vyc29yLXBvaW50ZXJdPVwiIWlzUXVlc3Rpb25Mb2NrZWQocXVlc3Rpb24pXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5xdWVzdGlvbi1sb2NrZWQtY2FyZF09XCJpc1F1ZXN0aW9uTG9ja2VkKHF1ZXN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25RdWVzdGlvbkNhcmRDbGljayhxdWVzdGlvbilcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIHAtMiBhc3Nlc3NtZW50LWJnLXBhbGV0dGUtRkVGOUYxIGFzc2Vzc21lbnQtdGV4dC1tZWRpdW0tMTIgYm9yZGVyLXBhbGV0dGUtRjlEQUE2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NhcGl0YWxpemVGaXJzdChxdWVzdGlvbj8ucXVlc3Rpb25UeXBlPy5sYWJlbHM/LlswXT8udGV4dCB8fCBxdWVzdGlvbj8ucXVlc3Rpb25UeXBlPy5jb2RlKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJxdWVzdGlvbj8ud2VpZ2h0XCIgY2xhc3M9XCJhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIHAtMiBhc3Nlc3NtZW50LWJnLXBhbGV0dGUtRURGM0ZEIGFzc2Vzc21lbnQtdGV4dC1tZWRpdW0tMTIgYm9yZGVyLXBhbGV0dGUtQzhEQUY5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3F1ZXN0aW9uPy53ZWlnaHR9fSB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuTUFSS1MnXSB8fCAnTWFya3MnfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInF1ZXN0aW9uPy5pc01hbmRhdG9yeVwiIGNsYXNzPVwiYXNzZXNzbWVudC1ib3JkZXItcmFkaXVzLXR3byBwLTIgYXNzZXNzbWVudC1iZy1wYWxldHRlLUU4RjdGMCBhc3Nlc3NtZW50LXRleHQtbWVkaXVtLTEyIGJvcmRlci1wYWxldHRlLUI3RTdDRlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLk1BTkRBVE9SWSddIHx8ICdNYW5kYXRvcnknfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzUXVlc3Rpb25Mb2NrZWQocXVlc3Rpb24pXCIgY2xhc3M9XCJiYWRnZS1sb2NrZWQtcGlsbCBkLWlubGluZS1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjExXCIgaGVpZ2h0PVwiMTFcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyLjJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCIxMVwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxMVwiIHJ4PVwiMlwiIHJ5PVwiMlwiPjwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2xhYmVsQ29uZmlnWydDT01NT05TX0FTU0VTU01FTlQuTEFCRUwuTE9DS0VEJ10gfHwgJ0xvY2tlZCd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhc3Nlc3NtZW50LXRleHQtbWVkaXVtLTE1IHF1ZXN0aW9uLXRleHQgdGV4dC1icmVha1wiIFtpbm5lckhUTUxdPVwicXVlc3Rpb24/LnF1ZXN0aW9uVGV4dD8uWzBdPy50ZXh0XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwhLS0gU2tpbGwgbWFwcGluZyBiYWRnZXMgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKHF1ZXN0aW9uPy5za2lsbENvZGVzPy5sZW5ndGggPz8gMCkgPiAwXCIgY2xhc3M9XCJtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXAgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IHNraWxsIG9mIHF1ZXN0aW9uPy5za2lsbENvZGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXNzZXNzbWVudC10ZXh0LW1lZGl1bS0xMiBhc3Nlc3NtZW50LXRleHQtZ3JleS10ZW4gcm91bmRlZC0yIHNraWxsLWNoaXAgcHgtMiBweS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NraWxsPy5sYWJlbHM/LlswXT8udGV4dCB8fCBza2lsbD8ubmFtZSB8fCBza2lsbD8uY29kZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gTG9hZCBNb3JlIGJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImhhc05leHRcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHB5LTMgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImxvYWRNb3JlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nTW9yZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXNzZXNzbWVudC1idXR0b24tcGFkZGluZyBhc3Nlc3NtZW50LWJvcmRlci1yYWRpdXMtdHdvIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgYXNzZXNzbWVudC1iZy1wYWxldHRlLUVERjNGRCBhc3Nlc3NtZW50LXRleHQtcHJpbWFyeS1vbmUgYXNzZXNzbWVudC10ZXh0LXNlbWlib2xkLTEyIGJvcmRlci0wIGFzc2Vzc21lbnQtem9vbS1hbmltYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNwaW5uZXIgKm5nSWY9XCJpc0xvYWRpbmdNb3JlXCIgZGlhbWV0ZXI9XCIxNlwiIGNsYXNzPVwiYXNzZXNzbWVudC1zcGlubmVyLXByaW1hcnlcIj48L21hdC1zcGlubmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7bGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5MQUJFTC5MT0FEX01PUkUnXSB8fCAnTG9hZCBNb3JlJ319XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gRW1wdHkgc3RhdGUgd2hlbiBmZXRjaFF1ZXN0aW9uc0xpc3QgPSB0cnVlIGJ1dCAwIHJlc3VsdHMgcmV0dXJuZWQgLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFxdWVzdGlvbnNMaXN0Py5sZW5ndGhcIiBjbGFzcz1cImgtMTAwIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBnYXAtMyBweS01XCI+XHJcbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJpbWFnZUNvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULklDT04uTk9fUVVFU1RJT05TJ11cIiBjbGFzcz1cImNvbC1zbS1hdXRvIGNvbC02XCJcclxuICAgICAgICAgICAgICAgIChlcnJvcik9XCJpbWFnZUVycm9ySGFuZGxlcigkZXZlbnQsICdhc3NldHMvY29tbW9ucy1hc3Nlc3NtZW50L2ltYWdlcy9uby1xdWVzdGlvbnMuc3ZnJylcIiAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMSBhc3Nlc3NtZW50LXRleHQtbWVkaXVtLTE4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3soc2VhcmNoVGVybSB8fCBzZWxlY3RlZFR5cGVDb2RlKSA/IChsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLk5PX1FVRVNUSU9OU19GT1VORCddIHx8ICdObyBtYXRjaGluZyBxdWVzdGlvbnMgZm91bmQnKSA6IChsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLk5PX1FVRVNUSU9OU19JTl9CQU5LJ10gfHwgJ05vIFF1ZXN0aW9ucyBpbiBCYW5rIScpfX1cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMCBhc3Nlc3NtZW50LXRleHQtbWVkaXVtLTEyIGFzc2Vzc21lbnQtdGV4dC1ncmV5LXNldmVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3soc2VhcmNoVGVybSB8fCBzZWxlY3RlZFR5cGVDb2RlKSA/ICdUcnkgYWRqdXN0aW5nIHlvdXIgc2VhcmNoIHRlcm0gb3IgZmlsdGVyJyA6IChsYWJlbENvbmZpZ1snQ09NTU9OU19BU1NFU1NNRU5ULkxBQkVMLk5PX1FVRVNUSU9OU19JTl9CQU5LX0RFU0MnXSB8fCAnQ3JlYXRlIHN0YW5kYWxvbmUgcXVlc3Rpb25zIHRvIHJldXNlIGFjcm9zcyBhc3Nlc3NtZW50cycpfX1cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhc2VhcmNoVGVybSAmJiAhc2VsZWN0ZWRUeXBlQ29kZVwiIChjbGljayk9XCJjcmVhdGVFZGl0UXVlc3Rpb24oKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFzc2Vzc21lbnQtYnV0dG9uLXBhZGRpbmcgYXNzZXNzbWVudC1ib3JkZXItcmFkaXVzLXR3byBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIGFzc2Vzc21lbnQtYmctcGFsZXR0ZS1FREYzRkQgYXNzZXNzbWVudC10ZXh0LXByaW1hcnktb25lIGFzc2Vzc21lbnQtdGV4dC1zZW1pYm9sZC0xMiBib3JkZXItMCBhc3Nlc3NtZW50LXpvb20tYW5pbWF0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2VDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5JQ09OLlBMVVNfUFJJTUFSWSddXCJcclxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwiaW1hZ2VFcnJvckhhbmRsZXIoJGV2ZW50LCAnYXNzZXRzL2NvbW1vbnMtYXNzZXNzbWVudC9pbWFnZXMvcGx1cy1wcmltYXJ5LnN2ZycpXCIgLz5cclxuICAgICAgICAgICAgICAgIHt7bGFiZWxDb25maWdbJ0NPTU1PTlNfQVNTRVNTTUVOVC5MQUJFTC5DUkVBVEVfUVVFU1RJT04nXSB8fCAnQ3JlYXRlIFF1ZXN0aW9uJ319XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2VhcmNoVGVybSB8fCBzZWxlY3RlZFR5cGVDb2RlXCIgKGNsaWNrKT1cImNsZWFyU2VhcmNoKCk7IG9uVHlwZUZpbHRlckNoYW5nZSgnJylcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhc3Nlc3NtZW50LWJ1dHRvbi1wYWRkaW5nIGFzc2Vzc21lbnQtYm9yZGVyLXJhZGl1cy10d28gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBhc3Nlc3NtZW50LWJnLXBhbGV0dGUtRURGM0ZEIGFzc2Vzc21lbnQtdGV4dC1wcmltYXJ5LW9uZSBhc3Nlc3NtZW50LXRleHQtc2VtaWJvbGQtMTIgYm9yZGVyLTAgYXNzZXNzbWVudC16b29tLWFuaW1hdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgQ2xlYXIgRmlsdGVyc1xyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbG9hZGVyPlxyXG4gICAgPGRpdiBjbGFzcz1cImgtMTAwIHctMTAwIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBweS01XCI+XHJcbiAgICAgICAgPG1hdC1zcGlubmVyIGRpYW1ldGVyPVwiNjBcIiBjbGFzcz1cImFzc2Vzc21lbnQtc3Bpbm5lci1wcmltYXJ5XCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|