vcomply-workflow-engine 6.5.5 → 6.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/formgroup/cs-select/cs-select.component.mjs +9 -3
- package/esm2022/lib/formgroup/pipes/pascal.pipe.mjs +5 -1
- package/esm2022/lib/interfaces/responsibilty.interface.mjs +1 -1
- package/esm2022/lib/more-option/more-option.component.mjs +44 -3
- package/esm2022/lib/sharedComponents/assessment-preview/select-question/select-question.component.mjs +1 -1
- package/esm2022/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.mjs +1 -1
- package/esm2022/lib/sharedComponents/floating-bar/floating-bar.component.mjs +3 -14
- package/esm2022/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.mjs +3 -7
- package/esm2022/lib/workflow/grc-object/grc-object-container/grc-object-container.component.mjs +3 -3
- package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +103 -121
- package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +6 -3
- package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +4 -4
- package/esm2022/lib/workflow-services/common-workflow-services/compliance-common.service.mjs +2 -2
- package/esm2022/lib/workflow-services/log-issue.service.mjs +2 -2
- package/esm2022/lib/workflow-services/policy.service.mjs +2 -2
- package/esm2022/lib/workflow-services/programs.service.mjs +2 -2
- package/esm2022/lib/workflow-services/responsibility.service.mjs +3 -2
- package/fesm2022/vcomply-workflow-engine.mjs +153 -132
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/formgroup/cs-select/cs-select.component.d.ts +3 -1
- package/lib/interfaces/responsibilty.interface.d.ts +1 -0
- package/lib/sharedComponents/floating-bar/floating-bar.component.d.ts +0 -3
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +8 -2
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +2 -1
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
- package/package.json +1 -1
package/esm2022/lib/workflow-services/common-workflow-services/compliance-common.service.mjs
CHANGED
|
@@ -17,7 +17,7 @@ export class ComplianceCommonService {
|
|
|
17
17
|
getRcList(params, allVisible) {
|
|
18
18
|
const headers = new HttpHeaders().set('token', this.authService?.getAuthorizationToken());
|
|
19
19
|
return this.http
|
|
20
|
-
.get(this.env?.
|
|
20
|
+
.get(this.env?.complianceGet +
|
|
21
21
|
'responsibilityCenterTree' +
|
|
22
22
|
(allVisible ? '&isAllVisible=true' : ''), {
|
|
23
23
|
params,
|
|
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
57
57
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
|
|
58
58
|
type: Optional
|
|
59
59
|
}] }]; } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxpYW5jZS1jb21tb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXNlcnZpY2VzL2NvbW1vbi13b3JrZmxvdy1zZXJ2aWNlcy9jb21wbGlhbmNlLWNvbW1vbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQU81RCxNQUFNLE9BQU8sdUJBQXVCO0lBS2xDLFlBQ1UsSUFBZ0IsRUFDaEIsV0FBd0IsRUFDcEIsTUFBdUI7UUFGM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQU4zQixXQUFNLEdBQXlCLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBU25FLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLEVBQUUsU0FBUyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxNQUFtQixFQUFFLFVBQW9CO1FBQ3pELE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxDQUMxQyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FDRixJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWE7WUFDckIsMEJBQTBCO1lBQzFCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQzFDO1lBQ0UsTUFBTTtZQUNOLE9BQU87U0FDUixDQUNGO2FBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUNqQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xFLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBQ08sU0FBUyxDQUFDLElBQVM7UUFDekIsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sYUFBYSxDQUFDLE1BQW1CLEVBQUUsVUFBb0I7UUFDNUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUM5QyxJQUFJLGFBQWEsRUFBRTtZQUNqQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsR0FBVztRQUM3QixNQUFNLFVBQVUsR0FBRyw0Q0FBNEMsQ0FBQztRQUVoRSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDOUIsT0FBTyxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6QztRQUVELE9BQU8sSUFBSSxDQUFDLENBQUMscURBQXFEO0lBQ3BFLENBQUM7K0dBM0RVLHVCQUF1QjttSEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzRGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVNJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY2F0Y2hFcnJvciwgb2YsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9ucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDb21wbGlhbmNlQ29tbW9uU2VydmljZSAge1xuICBwdWJsaWMgcmNMaXN0OiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcblxuICBlbnY6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnNcbiAgKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5lbnYgPSBjb25maWc/LmVudkNvbmZpZztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFJjTGlzdChwYXJhbXM/OiBIdHRwUGFyYW1zLCBhbGxWaXNpYmxlPzogYm9vbGVhbikge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZT8uZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PihcbiAgICAgICAgdGhpcy5lbnY/LmNvbXBsaWFuY2VHZXQgK1xuICAgICAgICAgICdyZXNwb25zaWJpbGl0eUNlbnRlclRyZWUnICtcbiAgICAgICAgICAoYWxsVmlzaWJsZSA/ICcmaXNBbGxWaXNpYmxlPXRydWUnIDogJycpLFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlcykgPT4gdGhpcy5zZXRSY0xpc3QocmVzKSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgUmVzcG9uc2liaWxpdHkgQ2VudGVyIExpc3QnLCBlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuICBwcml2YXRlIHNldFJjTGlzdChkYXRhOiBhbnkpIHtcbiAgICB0aGlzLnJjTGlzdD8ubmV4dChkYXRhKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSY0xpc3RJbmZvKHBhcmFtcz86IEh0dHBQYXJhbXMsIGFsbFZpc2libGU/OiBib29sZWFuKSB7XG4gICAgY29uc3QgY3VycmVudFJjTGlzdCA9IHRoaXMucmNMaXN0Py5nZXRWYWx1ZSgpO1xuICAgIGlmIChjdXJyZW50UmNMaXN0KSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5yY0xpc3Q/LnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmNMaXN0KHBhcmFtcywgYWxsVmlzaWJsZSk7XG4gIH1cblxuICBleHRyYWN0RXJyb3JNZXNzYWdlKHN0cjogc3RyaW5nKSB7XG4gICAgY29uc3Qgc3RhdGljUGFydCA9IFwiRXJyb3IgaW4gc2VuZENyZWF0ZVJlc3BvbnNpYmlsaXR5UmVxdWVzdDogXCI7XG4gICAgXG4gICAgaWYgKHN0ci5zdGFydHNXaXRoKHN0YXRpY1BhcnQpKSB7XG4gICAgICByZXR1cm4gc3RyLnN1YnN0cmluZyhzdGF0aWNQYXJ0Lmxlbmd0aCk7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBudWxsOyAvLyBPciByZXR1cm4gYW4gZW1wdHkgc3RyaW5nLCBkZXBlbmRpbmcgb24geW91ciBuZWVkc1xuICB9XG59XG4iXX0=
|
|
@@ -62,7 +62,7 @@ export class LogIssueService {
|
|
|
62
62
|
getResponsibilityCenterList() {
|
|
63
63
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
64
64
|
return this.http
|
|
65
|
-
.get(this.env.
|
|
65
|
+
.get(this.env.complianceGet + 'responsibilityCenterTree', {
|
|
66
66
|
headers,
|
|
67
67
|
})
|
|
68
68
|
.pipe(retry(2));
|
|
@@ -370,4 +370,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
370
370
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
|
|
371
371
|
type: Optional
|
|
372
372
|
}] }]; } });
|
|
373
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWlzc3VlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBSW5DLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDOzs7OztBQUsxQixNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUNVLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ3BCLE1BQXVCO1FBRjNCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFIMUIsb0JBQWUsR0FBeUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFzVy9FLDRCQUF1QixHQUFHLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsTUFBTTtxQkFDckMsS0FBSyxDQUFDLHVDQUF1QyxDQUFDO3FCQUM5QyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLLElBQUksQ0FBQztnQkFDM0Is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T0FBTyxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBZTtRQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FDbkMsT0FBTyxFQUNQLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FDekMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsYUFBYSxHQUFHLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDO2FBQzlELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxNQUFNLGFBQWEsR0FBRyxHQUFHLEdBQUcsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDaEQsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQzsrR0FsYlUsZUFBZTttSEFBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcblxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IERFRkFVTFRfMjRIUiwgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMb2dJc3N1ZVNlcnZpY2Uge1xuICBlbnYhOiBhbnk7XG4gIHByaXZhdGUgaXNzdWVDYXRlZ29yaWVzOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXG4gICkge1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIHRoaXMuZW52ID0gY29uZmlnLmVudkNvbmZpZztcbiAgICB9XG4gIH1cblxuICBnZXRJc3N1ZVR5cGVzKCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ2lzc3VlVHlwZUxpc3QnLCB7IGhlYWRlcnMgfSlcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldE9yZ1Blb3BsZSgpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdwZW9wbGUnLCB7IGhlYWRlcnMgfSlcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldElzc3VlQ2F0ZWdvcmllcygpIHtcbiAgICBpZih0aGlzLmlzc3VlQ2F0ZWdvcmllcz8uZ2V0VmFsdWUoKSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuaXNzdWVDYXRlZ29yaWVzPy52YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52LmFzc3VyYW5jZSArICdJc3N1ZS9DYXRlZ29yeS9DYXRMaXN0P2NhdGVnb3JpZXM9dHJ1ZScsXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLmlzc3VlQ2F0ZWdvcmllcz8ubmV4dChyZXMpO1xuICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfVxuICAgICAgKSlcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgICAvL2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9Bc3N1cmFuY2UvSXNzdWUvQ2F0ZWdvcnkvQ2F0TGlzdC8xP2lzQnVzaW5lc3NDeWNsZT10cnVlJmNhdGVnb3JpZXM9dHJ1ZVxuICB9XG4gIGdldFJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCgpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdyZXNwb25zaWJpbGl0eUNlbnRlclRyZWUnLCB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG4gIGNyZWF0ZUlzc3VlKHBheWxvYWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QodGhpcy5lbnYuYXNzdXJhbmNlICsgJ0lzc3VlJywgcGF5bG9hZCwgeyBoZWFkZXJzIH0pXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cbiAgdXBkYXRlSXNzdWUocGF5bG9hZDogYW55LCBpc3N1ZUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wdXQodGhpcy5lbnYuYXNzdXJhbmNlICsgJ0lzc3VlLycgKyBpc3N1ZUlkLCBwYXlsb2FkLCB7IGhlYWRlcnMgfSlcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldENvbnRyb2xSaXNrKGF1ZGl0UGxhbklkOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xuICAgIC8vICAgICBHZXQgTGlua2VkIEF1ZGl0IFBsYW4gUmVzcG9uc2liaWxpdGllcyBieSBBdWRpdF9QbGFuX0lkXG4gICAgLy8gVVJMOiBodHRwczovL2RldmFwaS52LWNvbXBseS5jb20vcmVzcG9uc2liaWxpdGllcy8/bW9kZT1tYW5hZ2VfYXVkaXRfcGxhbl9yZXNwb25zaWJpbGl0aWVzJmlkPTYxMGIzMjkxNDRjODFhMDAwOWNiYjU5OCBNZXRob2Q6IEdFVFxuXG4gICAgLy8gR2V0IExpbmtlZCBBdWRpdCBQbGFuIFJpc2sgYnkgQXVkaXRfUGxhbl9JZFxuICAgIC8vIFVSTDogaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL3Jpc2svP21vZGU9cmlzay9tYW5hZ2VfYXVkaXRfcGxhbl9yaXNrJmlkPTYxMGIzMjkxNDRjODFhMDAwOWNiYjU5OFxuICAgIC8vIE1ldGhvZDogR0VUXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICBpZiAodHlwZSA9PT0gJ1JFU1BPTlNJQklMSVRZJykge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgICB0aGlzLmVudi5yZXNwb25zaWJpbGl0aWVzR2V0ICtcbiAgICAgICAgICAgICdtYW5hZ2VfYXVkaXRfcGxhbl9yZXNwb25zaWJpbGl0aWVzJmlkPScgK1xuICAgICAgICAgICAgYXVkaXRQbGFuSWQsXG4gICAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGl0ZW1zOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW06IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgaXRlbUlkOiBpdGVtPy5yZXBvcnRfaWQsXG4gICAgICAgICAgICAgIGl0ZW1Db250cm9sSWQ6IGl0ZW0/LmNvbnRyb2xfaWQsXG4gICAgICAgICAgICAgIGl0ZW1Db250cm9sTmFtZTogaXRlbT8ucmVwb3J0X25hbWUsXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiAnUkVTUE9OU0lCSUxJVFknLFxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnUklTSycpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgICAgdGhpcy5lbnYucmlzayArICdyaXNrL21hbmFnZV9hdWRpdF9wbGFuX3Jpc2smaWQ9JyArIGF1ZGl0UGxhbklkLFxuICAgICAgICAgIHsgaGVhZGVycyB9XG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChpdGVtczogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgIGl0ZW1JZDogaXRlbT8ucmlza19pZCxcbiAgICAgICAgICAgICAgaXRlbUNvbnRyb2xJZDogaXRlbT8ucmlza19jb250cm9sX2lkLFxuICAgICAgICAgICAgICBpdGVtQ29udHJvbE5hbWU6IGl0ZW0/LnRpdGxlLFxuICAgICAgICAgICAgICBpdGVtVHlwZTogJ1JJU0snLFxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKGlzc3VlRGF0YTogYW55LCBvcGVuZWRGcm9tOiBhbnksIGlzUkNNYW5kYXRvcnk6IGFueSkge1xuICAgIGNvbnN0IGVycm9ycyA9IFtdO1xuICAgIGlmICghaXNzdWVEYXRhLmlzc3VlTmFtZSB8fCBpc3N1ZURhdGEuaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZU5hbWUnKTtcbiAgICB9XG4gICAgaWYgKGlzc3VlRGF0YS5pc3N1ZVJDLmxlbmd0aCA9PT0gMCAmJiBpc1JDTWFuZGF0b3J5KSB7XG4gICAgICBlcnJvcnMucHVzaCgnaXNzdWVSQycpO1xuICAgIH1cbiAgICBpZiAoaXNzdWVEYXRhLmVudHJ1c3RUby5sZW5ndGggPT09IDApIHtcbiAgICAgIGVycm9ycy5wdXNoKCdlbnRydXN0VG8nKTtcbiAgICB9XG4gICAgaWYgKCFpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKSB7XG4gICAgICBlcnJvcnMucHVzaCgnaXNzdWVEdWVEYXRlJyk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGlzc3VlRGF0YS5pc3N1ZVJlY29tbWVuZGF0aW9uXG4gICAgICAgIC5yZXBsYWNlKC8mbmJzcDsvZywgJycpXG4gICAgICAgIC5yZXBsYWNlKC9cXDxiclxccypbXFwvXT8+L2dpLCAnJylcbiAgICAgICAgLnRyaW0oKS5sZW5ndGggPT09IDBcbiAgICApIHtcbiAgICAgIGVycm9ycy5wdXNoKCdpc3N1ZVJlY29tbWVuZGF0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICBnZW5lcmF0ZVBheWxvYWQoaXNzdWVEYXRhOiBhbnksIG9wdGlvbkZpZWxkc1N0YXR1czogYW55KSB7XG4gICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSk7XG4gICAgY29uc3QgZGF0ZVNwbGl0ID0gW1xuICAgICAgc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEsXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0RGF0ZSgpLFxuICAgIF07XG4gICAgY29uc3QgdGltZTogYW55ID0gdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChcbiAgICAgIGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWVcbiAgICApLnNwbGl0KCc6Jyk7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgZGF0ZVNwbGl0WzBdLFxuICAgICAgZGF0ZVNwbGl0WzFdIC0gMSxcbiAgICAgIGRhdGVTcGxpdFsyXSxcbiAgICAgIHRpbWVbMF0sXG4gICAgICB0aW1lWzFdLFxuICAgICAgMFxuICAgICk7XG5cbiAgICBjb25zdCBjcmVhdGVJc3N1ZTogYW55ID0ge1xuICAgICAgaXNzdWVfZGVzY3JpcHRpb25fYXR0YWNobWVudHM6IGlzc3VlRGF0YT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cyxcbiAgICAgIGFzc29jaWF0ZWRfcmlzazogb3B0aW9uRmllbGRzU3RhdHVzLkFTU09DSUFURURfUklTS1NcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVBc3NvY2lhdGVkUmlza1xuICAgICAgICA6ICcnLFxuICAgICAgaXNzdWVfbmFtZTogaXNzdWVEYXRhLmlzc3VlTmFtZSxcbiAgICAgIHJlcG9ydF9pZDogJzAnLFxuICAgICAgaXNzdWVfZGVzY3JpcHRpb246IGlzc3VlRGF0YS5pc3N1ZURlc2NyaXB0aW9uLFxuICAgICAgaXNzdWVfdHlwZTogb3B0aW9uRmllbGRzU3RhdHVzLklTU1VFX1RZUEVcbiAgICAgICAgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVUeXBlLCAnaXNzdWVfaWQnKS50b1N0cmluZygpXG4gICAgICAgIDogJycsXG4gICAgICBleGNlcHRpb25fdHlwZTogb3B0aW9uRmllbGRzU3RhdHVzLkVYQ0VQVElPTl9UWVBFXG4gICAgICAgID8gaXNzdWVEYXRhLmV4Y2VwdGlvblR5cGUudG9TdHJpbmcoKVxuICAgICAgICA6ICcnLFxuICAgICAgcmlza19jbGFzczogaXNzdWVEYXRhLmlzc3VlUmlza1JhdGluZy50b1N0cmluZygpID8/ICcnLFxuICAgICAgcHJpb3JpdHk6IG9wdGlvbkZpZWxkc1N0YXR1cy5QUklPUklUWVxuICAgICAgICA/IGlzc3VlRGF0YS5pc3N1ZVByaW9yaXR5LnRvU3RyaW5nKClcbiAgICAgICAgOiAnJyxcbiAgICAgIGlzc3VlX2NhdGVnb3J5X2lkOlxuICAgICAgICB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVDYXRlZ29yeSwgJ2NhdGVnb3J5X2lkJykgPz8gMCxcbiAgICAgIHJlY29tbWVuZGF0aW9uOiBpc3N1ZURhdGEuaXNzdWVSZWNvbW1lbmRhdGlvbixcbiAgICAgIGVudHJ1c3RlZF90bzogdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmVudHJ1c3RUbywgJ2VtcGxveWVlX2lkJykgPz8gMCxcbiAgICAgIGlzc3VlX2RhdGU6XG4gICAgICAgIGRhdGVTcGxpdFswXSArXG4gICAgICAgICctJyArXG4gICAgICAgIGRhdGVTcGxpdFsxXSArXG4gICAgICAgICctJyArXG4gICAgICAgIGRhdGVTcGxpdFsyXSArXG4gICAgICAgICcgJyArXG4gICAgICAgIHRoaXMuY29udmVydEZyb20xMlRvMjRGb3JtYXQoaXNzdWVEYXRhLmlzc3VlRHVlVGltZSksXG4gICAgICBmYWlsZWRfdGltZTogdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcbiAgICAgIGlzc3VlX2R1ZV9kYXRlOlxuICAgICAgICBkYXRlU3BsaXRbMF0gK1xuICAgICAgICAnLScgK1xuICAgICAgICBkYXRlU3BsaXRbMV0gK1xuICAgICAgICAnLScgK1xuICAgICAgICBkYXRlU3BsaXRbMl0gK1xuICAgICAgICAnICcgK1xuICAgICAgICB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxuICAgICAgZ3JjX2FyZWE6ICcnLFxuICAgICAgY2NfZW1wbG95ZWVfZW1haWw6IG9wdGlvbkZpZWxkc1N0YXR1cy5PVkVSU0lHSFRcbiAgICAgICAgPyB0aGlzLmFycmF5VG9JRHNEdHJpbmcoaXNzdWVEYXRhLmlzc3VlQ0NVc2VycywgJ2VtcGxveWVlX2VtYWlsJylcbiAgICAgICAgOiAnJyxcbiAgICAgIGZhaWx1cmVfY2NfZW1wbG95ZWVfZW1haWw6IG9wdGlvbkZpZWxkc1N0YXR1cy5PVkVSU0lHSFRcbiAgICAgICAgPyB0aGlzLmFycmF5VG9JRHNEdHJpbmcoaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLCAnZW1wbG95ZWVfZW1haWwnKVxuICAgICAgICA6ICcnLFxuICAgICAgY3VzdG9tX3RhZ192YWx1ZTogJycsXG4gICAgICBpc3N1ZV9yZXNvbHZlX3RpbWVzdGFtcDogKGRhdGUuZ2V0VGltZSgpIC8gMTAwMCkudG9TdHJpbmcoKSxcbiAgICAgIGV2aWRlbmNlX3VwbG9hZF9mbGFnOiBvcHRpb25GaWVsZHNTdGF0dXMuRVZJREVOQ0VcbiAgICAgICAgPyBpc3N1ZURhdGEuZXZpZGVuY2VSZXF1aXJlZFxuICAgICAgICAgID8gJzEnXG4gICAgICAgICAgOiAnMCdcbiAgICAgICAgOiAnMCcsXG4gICAgfTtcbiAgICBpZiAoaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoKSB7XG4gICAgICBjcmVhdGVJc3N1ZS5yY19pZCA9IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZVJDLCAncmNfaWQnKSA/PyAwO1xuICAgIH1cblxuICAgIHJldHVybiBjcmVhdGVJc3N1ZTtcbiAgfVxuXG4gIHBheWxvYWRCdWlsZGVyKGlzc3VlRGF0YTogYW55LCBvcHRpb25GaWVsZHNTdGF0dXM6IGFueSkge1xuICAgIGNvbnN0IGlzTW9tZW50ID0gbW9tZW50LmlzTW9tZW50KGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xuICAgIGNvbnN0IGlzRGF5cyA9IGRheWpzLmlzRGF5anMoaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSk7XG4gICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gaXNNb21lbnRcbiAgICAgID8gbW9tZW50KGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpPy50b0RhdGUoKVxuICAgICAgOiBpc0RheXNcbiAgICAgID8gZGF5anMoaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZT8uJGQpLnRvRGF0ZSgpXG4gICAgICA6IG5ldyBEYXRlKGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xuICAgIGNvbnN0IGRhdGVTcGxpdCA9IFtcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkgKyAxLFxuICAgICAgc2VsZWN0ZWREYXRlLmdldERhdGUoKSxcbiAgICBdO1xuXG4gICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xuICAgICAgZGVzY3JpcHRpb246IFtdLFxuICAgICAgYXNzb2NpYXRlZF9yaXNrOiBbXSxcbiAgICAgIHJlY29tbWVuZGF0aW9uOiBbXSxcbiAgICB9O1xuXG4gICAgcGF5bG9hZC50aXRsZSA9IGlzc3VlRGF0YS5pc3N1ZU5hbWUudHJpbSgpID8/ICcnO1xuICAgIHBheWxvYWQucmNfaWQgPSBpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGhcbiAgICAgID8gdGhpcy5nZXRBcnJheUlkKGlzc3VlRGF0YS5pc3N1ZVJDLCAncmNfaWQnKVxuICAgICAgOiBbXTtcbiAgICBwYXlsb2FkLnJlc3BvbnNpYmlsaXRpZXNfTGlua2VkID0gaXNzdWVEYXRhLnJlc3BvbnNpYmlsaXR5TGlua2VkLmxlbmd0aFxuICAgICAgPyB0aGlzLmdldEFycmF5SWQoaXNzdWVEYXRhLnJlc3BvbnNpYmlsaXR5TGlua2VkLCAnUmVwb3J0SWQnKVxuICAgICAgOiBbXTtcbiAgICBwYXlsb2FkLmNhdGVnb3J5X2lkID0gaXNzdWVEYXRhLmlzc3VlQ2F0ZWdvcnkubGVuZ3RoXG4gICAgICA/IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5LCAnY2F0ZWdvcnlfaWQnKVxuICAgICAgOiBudWxsO1xuICAgIHBheWxvYWQuZGVzY3JpcHRpb25bMF0gPSB7XG4gICAgICB0ZXh0OiBpc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbiA/PyAnJyxcbiAgICAgIGF0dGFjaG1lbnRzOiBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMubGVuZ3RoXG4gICAgICAgID8gaXNzdWVEYXRhPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzXG4gICAgICAgIDogW10sXG4gICAgfTtcbiAgICBwYXlsb2FkLmV4Y2VwdGlvbl90eXBlID0gb3B0aW9uRmllbGRzU3RhdHVzLkVYQ0VQVElPTl9UWVBFXG4gICAgICA/IE51bWJlcihpc3N1ZURhdGEuZXhjZXB0aW9uVHlwZSlcbiAgICAgIDogbnVsbDtcbiAgICBwYXlsb2FkLnJpc2tfY2xhc3MgPSBpc3N1ZURhdGEuaXNzdWVSaXNrUmF0aW5nID8/IG51bGw7XG4gICAgcGF5bG9hZC5wcmlvcml0eSA9IG9wdGlvbkZpZWxkc1N0YXR1cy5QUklPUklUWVxuICAgICAgPyBOdW1iZXIoaXNzdWVEYXRhLmlzc3VlUHJpb3JpdHkpXG4gICAgICA6IG51bGw7XG4gICAgcGF5bG9hZC5hc3NpZ25lZV9pZCA9IGlzc3VlRGF0YS5lbnRydXN0VG9cbiAgICAgID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmVudHJ1c3RUbywgJ215X21lbWJlcl9pZCcpXG4gICAgICA6IG51bGw7XG4gICAgcGF5bG9hZC5hc3NvY2lhdGVkX3Jpc2tbMF0gPSB7XG4gICAgICB0ZXh0OiBvcHRpb25GaWVsZHNTdGF0dXMuQVNTT0NJQVRFRF9SSVNLU1xuICAgICAgICA/IGlzc3VlRGF0YS5pc3N1ZUFzc29jaWF0ZWRSaXNrXG4gICAgICAgIDogJycsXG4gICAgICBhdHRhY2htZW50czogW10sXG4gICAgfTtcbiAgICBwYXlsb2FkLnJlY29tbWVuZGF0aW9uWzBdID0ge1xuICAgICAgdGV4dDogaXNzdWVEYXRhLmlzc3VlUmVjb21tZW5kYXRpb24gPz8gJycsXG4gICAgICBhdHRhY2htZW50czogaXNzdWVEYXRhPy5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50cy5sZW5ndGhcbiAgICAgICAgPyBpc3N1ZURhdGE/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzXG4gICAgICAgIDogW10sXG4gICAgfTtcbiAgICBwYXlsb2FkLmV2aWRlbmNlID0ge1xuICAgICAgZXZpZGVuY2VfZmxhZzogb3B0aW9uRmllbGRzU3RhdHVzLkVWSURFTkNFXG4gICAgICAgID8gaXNzdWVEYXRhLmV2aWRlbmNlUmVxdWlyZWRcbiAgICAgICAgICA/IDFcbiAgICAgICAgICA6IDBcbiAgICAgICAgOiAwLFxuICAgIH07XG4gICAgcGF5bG9hZC5mcmVxdWVuY3lfZGV0YWlscyA9IHtcbiAgICAgIGZyZXF1ZW5jeV90aW1lOlxuICAgICAgICB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpID8/IERFRkFVTFRfVElNRSxcbiAgICAgIGZyZXF1ZW5jeV9kYXRlOlxuICAgICAgICBkYXRlU3BsaXRbMF0gK1xuICAgICAgICAnLScgK1xuICAgICAgICAoZGF0ZVNwbGl0WzFdIDwgMTAgPyAnMCcgKyBkYXRlU3BsaXRbMV0gOiBkYXRlU3BsaXRbMV0pICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgKGRhdGVTcGxpdFsyXSA8IDEwID8gJzAnICsgZGF0ZVNwbGl0WzJdIDogZGF0ZVNwbGl0WzJdKSxcbiAgICB9O1xuICAgIHBheWxvYWQub3ZlcnNlZXIgPSB7XG4gICAgICBjY19lbWFpbDogb3B0aW9uRmllbGRzU3RhdHVzLk9WRVJTSUdIVFxuICAgICAgICA/IGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMubGVuZ3RoXG4gICAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVDQ1VzZXJzLm1hcCgoeDogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7IG1lbWJlcl9pZDogeC5teV9tZW1iZXJfaWQgPz8gMCwgYWxlcnRfZW5hYmxlOiAxIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogW11cbiAgICAgICAgOiBbXSxcbiAgICAgIGZhaWx1cmVfY2NfZW1haWw6IG9wdGlvbkZpZWxkc1N0YXR1cy5PVkVSU0lHSFRcbiAgICAgICAgPyBpc3N1ZURhdGEuZmFpbHVyZUNDVXNlcnMubGVuZ3RoXG4gICAgICAgICAgPyBpc3N1ZURhdGEuZmFpbHVyZUNDVXNlcnMubWFwKCh4OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHsgbWVtYmVyX2lkOiB4Lm15X21lbWJlcl9pZCA/PyAwLCBhbGVydF9lbmFibGU6IDEgfTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBbXVxuICAgICAgICA6IFtdLFxuICAgIH07XG4gICAgcGF5bG9hZC5jdXN0b21fdGFncyA9IGlzc3VlRGF0YT8uaXNzdWVDdXN0b21UYWc7XG4gICAgcGF5bG9hZC5pc3N1ZVR5cGUgPSBpc3N1ZURhdGE/Lmlzc3VlVHlwZTtcbiAgICBwYXlsb2FkLmxpbmtlZF9hc3Nlc3NtZW50X2lzc3VlcyA9IHtcbiAgICAgIHJlc3BfaWQ6IGlzc3VlRGF0YT8ucmVzcElkID8/ICcnLFxuICAgICAgZHVlX2RhdGVfaWQ6IGlzc3VlRGF0YT8uZHVlRGF0ZUlkID8/ICcnLFxuICAgICAgYXNzZXNzbWVudF9pZDogaXNzdWVEYXRhPy5hc3Nlc3NtZW50SWQgPz8gJycsXG4gICAgICBxdWVzdGlvbl9pZDogaXNzdWVEYXRhPy5xdWVzdGlvbklkID8/ICcnLFxuICAgICAgYXVkaXRlZV9pZDogaXNzdWVEYXRhPy5hdWRpdGVlSWQgPz8gbnVsbCxcbiAgICB9O1xuICAgIHBheWxvYWQuc291cmNlID0gaXNzdWVEYXRhPy5zb3VyY2U7XG5cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfVxuXG4gIGFycmF5VG9JZChhcnJheTogYW55LCBrZXk6IGFueSkge1xuICAgIGlmIChhcnJheS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGFycmF5WzBdW2tleV07XG4gICAgfVxuICB9XG5cbiAgZ2V0QXJyYXlJZChhcnJheTogYW55LCBrZXk6IGFueSkge1xuICAgIHJldHVybiBhcnJheS5tYXAoKGVsZTogYW55KSA9PiBlbGVba2V5XSk7XG4gIH1cblxuICBjb252ZXJ0RnJvbTEyVG8yNEZvcm1hdCA9ICh0aW1lMTI6IGFueSkgPT4ge1xuICAgIGlmICh0aW1lMTIpIHtcbiAgICAgIGNvbnN0IFtzSG91cnMsIG1pbnV0ZXMsIHBlcmlvZF0gPSB0aW1lMTJcbiAgICAgICAgLm1hdGNoKC8oWzAtOV17MSwyfSk6KFswLTldezJ9KSAoYW18cG18QU18UE0pLylcbiAgICAgICAgLnNsaWNlKDEpO1xuICAgICAgY29uc3QgUE0gPSBwZXJpb2QgPT09ICdQTSc7XG4gICAgICBjb25zdCBob3VycyA9ICgrc0hvdXJzICUgMTIpICsgKFBNID8gMTIgOiAwKTtcblxuICAgICAgcmV0dXJuIGAkeygnMCcgKyBob3Vycykuc2xpY2UoLTIpfToke21pbnV0ZXN9OjAwYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIERFRkFVTFRfMjRIUjtcbiAgICB9XG4gIH07XG5cbiAgY29udmVydEZyb20yNFRvMTJGb3JtYXQodGltZTogYW55KSB7XG4gICAgY29uc3QgaGhtbSA9IHRpbWUuc3BsaXQoJzonKTtcbiAgICB0aW1lID0gYCR7aGhtbVswXX06JHtoaG1tWzFdfWA7XG4gICAgLy8gQ2hlY2sgY29ycmVjdCB0aW1lIGZvcm1hdCBhbmQgc3BsaXQgaW50byBjb21wb25lbnRzXG4gICAgdGltZSA9IHRpbWVcbiAgICAgIC50b1N0cmluZygpXG4gICAgICAubWF0Y2goL14oWzAxXVxcZHwyWzAtM10pKDopKFswLTVdXFxkKSg6WzAtNV1cXGQpPyQvKSB8fCBbdGltZV07XG5cbiAgICBpZiAodGltZS5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBJZiB0aW1lIGZvcm1hdCBjb3JyZWN0XG4gICAgICB0aW1lID0gdGltZS5zbGljZSgxKTsgLy8gUmVtb3ZlIGZ1bGwgc3RyaW5nIG1hdGNoIHZhbHVlXG4gICAgICB0aW1lWzVdID0gK3RpbWVbMF0gPCAxMiA/ICcgQU0nIDogJyBQTSc7IC8vIFNldCBBTS9QTVxuICAgICAgdGltZVswXSA9ICt0aW1lWzBdICUgMTIgfHwgMTI7IC8vIEFkanVzdCBob3Vyc1xuICAgIH1cbiAgICByZXR1cm4gdGltZS5qb2luKCcnKTsgLy8gcmV0dXJuIGFkanVzdGVkIHRpbWUgb3Igb3JpZ2luYWwgc3RyaW5nXG4gIH1cblxuICBhcnJheVRvSURzRHRyaW5nKGFycmF5OiBhbnksIGlkZW50aWZpZXJLZXk6IGFueSkge1xuICAgIGNvbnN0IGxpc3QgPSBhcnJheS5tYXAoKGVsOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiBlbFtpZGVudGlmaWVyS2V5XTtcbiAgICB9KTtcbiAgICByZXR1cm4gbGlzdC5qb2luKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBsb2FkcyB0aGUgZ2l2ZW4gZmlsZSB0byBzZXJ2ZXJcbiAgICogQHBhcmFtIHBheWxvYWQgcGF5bG9hZCBGaWxlIGRhdGEgdG8gYmUgdXBsb2FkZWRcbiAgICogQHBhcmFtIHBhdGggcGF0aCBQYXRoIG9mIGZpbGUgdG8gYmUgdXBsb2FkZWRcbiAgICogQHJldHVybnMgcmVzcG9uc2UgYWZ0ZXIgdXBsb2FkaW5nIGEgZmlsZVxuICAgKi9cbiAgdXBsb2FkRmlsZXMocGF5bG9hZDogYW55LCBwYXRoOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIGNvbnN0IE9SR19QQVRIID0gYG8vJHtwYXRofWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgdGhpcy5lbnYuZmlsZVVwbG9hZEVuZFBvaW50ICsgT1JHX1BBVEggKyAnJm5nc3ctYnlwYXNzPXRydWUnLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIGdldElzc3VlRGV0YWlscyhpc3N1ZUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQodGhpcy5lbnYuYXNzdXJhbmNlICsgJ0lzc3VlL0VkaXQvJyArIGlzc3VlSWQsIHsgaGVhZGVycyB9KVxuICAgICAgLnBpcGUocmV0cnkoMykpO1xuICB9XG5cbiAgZm9ybWF0RGF0ZSgpIHtcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgZGF5ID0gU3RyaW5nKGN1cnJlbnREYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICBjb25zdCBtb250aCA9IFN0cmluZyhjdXJyZW50RGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICBjb25zdCB5ZWFyID0gY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gYCR7ZGF5fS0ke21vbnRofS0ke3llYXJ9YDtcbiAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcbiAgfVxufVxuIl19
|
|
373
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWlzc3VlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9sb2ctaXNzdWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBSW5DLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDOzs7OztBQUsxQixNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUNVLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ3BCLE1BQXVCO1FBRjNCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFIMUIsb0JBQWUsR0FBeUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFzVy9FLDRCQUF1QixHQUFHLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsTUFBTTtxQkFDckMsS0FBSyxDQUFDLHVDQUF1QyxDQUFDO3FCQUM5QyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1osTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLLElBQUksQ0FBQztnQkFDM0Is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T0FBTyxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsT0FBZTtRQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FDbkMsT0FBTyxFQUNQLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FDekMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsYUFBYSxHQUFHLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDO2FBQzlELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxNQUFNLGFBQWEsR0FBRyxHQUFHLEdBQUcsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDaEQsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQzsrR0FsYlUsZUFBZTttSEFBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcblxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IERFRkFVTFRfMjRIUiwgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMb2dJc3N1ZVNlcnZpY2Uge1xuICBlbnYhOiBhbnk7XG4gIHByaXZhdGUgaXNzdWVDYXRlZ29yaWVzOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXG4gICkge1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIHRoaXMuZW52ID0gY29uZmlnLmVudkNvbmZpZztcbiAgICB9XG4gIH1cblxuICBnZXRJc3N1ZVR5cGVzKCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ2lzc3VlVHlwZUxpc3QnLCB7IGhlYWRlcnMgfSlcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldE9yZ1Blb3BsZSgpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdwZW9wbGUnLCB7IGhlYWRlcnMgfSlcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldElzc3VlQ2F0ZWdvcmllcygpIHtcbiAgICBpZih0aGlzLmlzc3VlQ2F0ZWdvcmllcz8uZ2V0VmFsdWUoKSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuaXNzdWVDYXRlZ29yaWVzPy52YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52LmFzc3VyYW5jZSArICdJc3N1ZS9DYXRlZ29yeS9DYXRMaXN0P2NhdGVnb3JpZXM9dHJ1ZScsXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICB0aGlzLmlzc3VlQ2F0ZWdvcmllcz8ubmV4dChyZXMpO1xuICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfVxuICAgICAgKSlcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgICAvL2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9Bc3N1cmFuY2UvSXNzdWUvQ2F0ZWdvcnkvQ2F0TGlzdC8xP2lzQnVzaW5lc3NDeWNsZT10cnVlJmNhdGVnb3JpZXM9dHJ1ZVxuICB9XG4gIGdldFJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCgpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJywge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuICBjcmVhdGVJc3N1ZShwYXlsb2FkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KHRoaXMuZW52LmFzc3VyYW5jZSArICdJc3N1ZScsIHBheWxvYWQsIHsgaGVhZGVycyB9KVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG4gIHVwZGF0ZUlzc3VlKHBheWxvYWQ6IGFueSwgaXNzdWVJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucHV0KHRoaXMuZW52LmFzc3VyYW5jZSArICdJc3N1ZS8nICsgaXNzdWVJZCwgcGF5bG9hZCwgeyBoZWFkZXJzIH0pXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRDb250cm9sUmlzayhhdWRpdFBsYW5JZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcbiAgICAvLyAgICAgR2V0IExpbmtlZCBBdWRpdCBQbGFuIFJlc3BvbnNpYmlsaXRpZXMgYnkgQXVkaXRfUGxhbl9JZFxuICAgIC8vIFVSTDogaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL3Jlc3BvbnNpYmlsaXRpZXMvP21vZGU9bWFuYWdlX2F1ZGl0X3BsYW5fcmVzcG9uc2liaWxpdGllcyZpZD02MTBiMzI5MTQ0YzgxYTAwMDljYmI1OTggTWV0aG9kOiBHRVRcblxuICAgIC8vIEdldCBMaW5rZWQgQXVkaXQgUGxhbiBSaXNrIGJ5IEF1ZGl0X1BsYW5fSWRcbiAgICAvLyBVUkw6IGh0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9yaXNrLz9tb2RlPXJpc2svbWFuYWdlX2F1ZGl0X3BsYW5fcmlzayZpZD02MTBiMzI5MTQ0YzgxYTAwMDljYmI1OThcbiAgICAvLyBNZXRob2Q6IEdFVFxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgaWYgKHR5cGUgPT09ICdSRVNQT05TSUJJTElUWScpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgICAgdGhpcy5lbnYucmVzcG9uc2liaWxpdGllc0dldCArXG4gICAgICAgICAgICAnbWFuYWdlX2F1ZGl0X3BsYW5fcmVzcG9uc2liaWxpdGllcyZpZD0nICtcbiAgICAgICAgICAgIGF1ZGl0UGxhbklkLFxuICAgICAgICAgIHsgaGVhZGVycyB9XG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChpdGVtczogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgIGl0ZW1JZDogaXRlbT8ucmVwb3J0X2lkLFxuICAgICAgICAgICAgICBpdGVtQ29udHJvbElkOiBpdGVtPy5jb250cm9sX2lkLFxuICAgICAgICAgICAgICBpdGVtQ29udHJvbE5hbWU6IGl0ZW0/LnJlcG9ydF9uYW1lLFxuICAgICAgICAgICAgICBpdGVtVHlwZTogJ1JFU1BPTlNJQklMSVRZJyxcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ1JJU0snKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8YW55W10+KFxuICAgICAgICAgIHRoaXMuZW52LnJpc2sgKyAncmlzay9tYW5hZ2VfYXVkaXRfcGxhbl9yaXNrJmlkPScgKyBhdWRpdFBsYW5JZCxcbiAgICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoaXRlbXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiAoe1xuICAgICAgICAgICAgICBpdGVtSWQ6IGl0ZW0/LnJpc2tfaWQsXG4gICAgICAgICAgICAgIGl0ZW1Db250cm9sSWQ6IGl0ZW0/LnJpc2tfY29udHJvbF9pZCxcbiAgICAgICAgICAgICAgaXRlbUNvbnRyb2xOYW1lOiBpdGVtPy50aXRsZSxcbiAgICAgICAgICAgICAgaXRlbVR5cGU6ICdSSVNLJyxcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZShpc3N1ZURhdGE6IGFueSwgb3BlbmVkRnJvbTogYW55LCBpc1JDTWFuZGF0b3J5OiBhbnkpIHtcbiAgICBjb25zdCBlcnJvcnMgPSBbXTtcbiAgICBpZiAoIWlzc3VlRGF0YS5pc3N1ZU5hbWUgfHwgaXNzdWVEYXRhLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICBlcnJvcnMucHVzaCgnaXNzdWVOYW1lJyk7XG4gICAgfVxuICAgIGlmIChpc3N1ZURhdGEuaXNzdWVSQy5sZW5ndGggPT09IDAgJiYgaXNSQ01hbmRhdG9yeSkge1xuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlUkMnKTtcbiAgICB9XG4gICAgaWYgKGlzc3VlRGF0YS5lbnRydXN0VG8ubGVuZ3RoID09PSAwKSB7XG4gICAgICBlcnJvcnMucHVzaCgnZW50cnVzdFRvJyk7XG4gICAgfVxuICAgIGlmICghaXNzdWVEYXRhLmlzc3VlRHVlRGF0ZSkge1xuICAgICAgZXJyb3JzLnB1c2goJ2lzc3VlRHVlRGF0ZScpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBpc3N1ZURhdGEuaXNzdWVSZWNvbW1lbmRhdGlvblxuICAgICAgICAucmVwbGFjZSgvJm5ic3A7L2csICcnKVxuICAgICAgICAucmVwbGFjZSgvXFw8YnJcXHMqW1xcL10/Pi9naSwgJycpXG4gICAgICAgIC50cmltKCkubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaCgnaXNzdWVSZWNvbW1lbmRhdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9XG5cbiAgZ2VuZXJhdGVQYXlsb2FkKGlzc3VlRGF0YTogYW55LCBvcHRpb25GaWVsZHNTdGF0dXM6IGFueSkge1xuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xuICAgIGNvbnN0IGRhdGVTcGxpdCA9IFtcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkgKyAxLFxuICAgICAgc2VsZWN0ZWREYXRlLmdldERhdGUoKSxcbiAgICBdO1xuICAgIGNvbnN0IHRpbWU6IGFueSA9IHRoaXMuY29udmVydEZyb20xMlRvMjRGb3JtYXQoXG4gICAgICBpc3N1ZURhdGEuaXNzdWVEdWVUaW1lXG4gICAgKS5zcGxpdCgnOicpO1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShcbiAgICAgIGRhdGVTcGxpdFswXSxcbiAgICAgIGRhdGVTcGxpdFsxXSAtIDEsXG4gICAgICBkYXRlU3BsaXRbMl0sXG4gICAgICB0aW1lWzBdLFxuICAgICAgdGltZVsxXSxcbiAgICAgIDBcbiAgICApO1xuXG4gICAgY29uc3QgY3JlYXRlSXNzdWU6IGFueSA9IHtcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uX2F0dGFjaG1lbnRzOiBpc3N1ZURhdGE/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMsXG4gICAgICBhc3NvY2lhdGVkX3Jpc2s6IG9wdGlvbkZpZWxkc1N0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTXG4gICAgICAgID8gaXNzdWVEYXRhLmlzc3VlQXNzb2NpYXRlZFJpc2tcbiAgICAgICAgOiAnJyxcbiAgICAgIGlzc3VlX25hbWU6IGlzc3VlRGF0YS5pc3N1ZU5hbWUsXG4gICAgICByZXBvcnRfaWQ6ICcwJyxcbiAgICAgIGlzc3VlX2Rlc2NyaXB0aW9uOiBpc3N1ZURhdGEuaXNzdWVEZXNjcmlwdGlvbixcbiAgICAgIGlzc3VlX3R5cGU6IG9wdGlvbkZpZWxkc1N0YXR1cy5JU1NVRV9UWVBFXG4gICAgICAgID8gdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlVHlwZSwgJ2lzc3VlX2lkJykudG9TdHJpbmcoKVxuICAgICAgICA6ICcnLFxuICAgICAgZXhjZXB0aW9uX3R5cGU6IG9wdGlvbkZpZWxkc1N0YXR1cy5FWENFUFRJT05fVFlQRVxuICAgICAgICA/IGlzc3VlRGF0YS5leGNlcHRpb25UeXBlLnRvU3RyaW5nKClcbiAgICAgICAgOiAnJyxcbiAgICAgIHJpc2tfY2xhc3M6IGlzc3VlRGF0YS5pc3N1ZVJpc2tSYXRpbmcudG9TdHJpbmcoKSA/PyAnJyxcbiAgICAgIHByaW9yaXR5OiBvcHRpb25GaWVsZHNTdGF0dXMuUFJJT1JJVFlcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVQcmlvcml0eS50b1N0cmluZygpXG4gICAgICAgIDogJycsXG4gICAgICBpc3N1ZV9jYXRlZ29yeV9pZDpcbiAgICAgICAgdGhpcy5hcnJheVRvSWQoaXNzdWVEYXRhLmlzc3VlQ2F0ZWdvcnksICdjYXRlZ29yeV9pZCcpID8/IDAsXG4gICAgICByZWNvbW1lbmRhdGlvbjogaXNzdWVEYXRhLmlzc3VlUmVjb21tZW5kYXRpb24sXG4gICAgICBlbnRydXN0ZWRfdG86IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5lbnRydXN0VG8sICdlbXBsb3llZV9pZCcpID8/IDAsXG4gICAgICBpc3N1ZV9kYXRlOlxuICAgICAgICBkYXRlU3BsaXRbMF0gK1xuICAgICAgICAnLScgK1xuICAgICAgICBkYXRlU3BsaXRbMV0gK1xuICAgICAgICAnLScgK1xuICAgICAgICBkYXRlU3BsaXRbMl0gK1xuICAgICAgICAnICcgK1xuICAgICAgICB0aGlzLmNvbnZlcnRGcm9tMTJUbzI0Rm9ybWF0KGlzc3VlRGF0YS5pc3N1ZUR1ZVRpbWUpLFxuICAgICAgZmFpbGVkX3RpbWU6IHRoaXMuY29udmVydEZyb20xMlRvMjRGb3JtYXQoaXNzdWVEYXRhLmlzc3VlRHVlVGltZSksXG4gICAgICBpc3N1ZV9kdWVfZGF0ZTpcbiAgICAgICAgZGF0ZVNwbGl0WzBdICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgZGF0ZVNwbGl0WzFdICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgZGF0ZVNwbGl0WzJdICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSxcbiAgICAgIGdyY19hcmVhOiAnJyxcbiAgICAgIGNjX2VtcGxveWVlX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUXG4gICAgICAgID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5pc3N1ZUNDVXNlcnMsICdlbXBsb3llZV9lbWFpbCcpXG4gICAgICAgIDogJycsXG4gICAgICBmYWlsdXJlX2NjX2VtcGxveWVlX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUXG4gICAgICAgID8gdGhpcy5hcnJheVRvSURzRHRyaW5nKGlzc3VlRGF0YS5mYWlsdXJlQ0NVc2VycywgJ2VtcGxveWVlX2VtYWlsJylcbiAgICAgICAgOiAnJyxcbiAgICAgIGN1c3RvbV90YWdfdmFsdWU6ICcnLFxuICAgICAgaXNzdWVfcmVzb2x2ZV90aW1lc3RhbXA6IChkYXRlLmdldFRpbWUoKSAvIDEwMDApLnRvU3RyaW5nKCksXG4gICAgICBldmlkZW5jZV91cGxvYWRfZmxhZzogb3B0aW9uRmllbGRzU3RhdHVzLkVWSURFTkNFXG4gICAgICAgID8gaXNzdWVEYXRhLmV2aWRlbmNlUmVxdWlyZWRcbiAgICAgICAgICA/ICcxJ1xuICAgICAgICAgIDogJzAnXG4gICAgICAgIDogJzAnLFxuICAgIH07XG4gICAgaWYgKGlzc3VlRGF0YS5pc3N1ZVJDLmxlbmd0aCkge1xuICAgICAgY3JlYXRlSXNzdWUucmNfaWQgPSB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVSQywgJ3JjX2lkJykgPz8gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gY3JlYXRlSXNzdWU7XG4gIH1cblxuICBwYXlsb2FkQnVpbGRlcihpc3N1ZURhdGE6IGFueSwgb3B0aW9uRmllbGRzU3RhdHVzOiBhbnkpIHtcbiAgICBjb25zdCBpc01vbWVudCA9IG1vbWVudC5pc01vbWVudChpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcbiAgICBjb25zdCBpc0RheXMgPSBkYXlqcy5pc0RheWpzKGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGUpO1xuICAgIGNvbnN0IHNlbGVjdGVkRGF0ZSA9IGlzTW9tZW50XG4gICAgICA/IG1vbWVudChpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKT8udG9EYXRlKClcbiAgICAgIDogaXNEYXlzXG4gICAgICA/IGRheWpzKGlzc3VlRGF0YS5pc3N1ZUR1ZURhdGU/LiRkKS50b0RhdGUoKVxuICAgICAgOiBuZXcgRGF0ZShpc3N1ZURhdGEuaXNzdWVEdWVEYXRlKTtcbiAgICBjb25zdCBkYXRlU3BsaXQgPSBbXG4gICAgICBzZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXRNb250aCgpICsgMSxcbiAgICAgIHNlbGVjdGVkRGF0ZS5nZXREYXRlKCksXG4gICAgXTtcblxuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcbiAgICAgIGRlc2NyaXB0aW9uOiBbXSxcbiAgICAgIGFzc29jaWF0ZWRfcmlzazogW10sXG4gICAgICByZWNvbW1lbmRhdGlvbjogW10sXG4gICAgfTtcblxuICAgIHBheWxvYWQudGl0bGUgPSBpc3N1ZURhdGEuaXNzdWVOYW1lLnRyaW0oKSA/PyAnJztcbiAgICBwYXlsb2FkLnJjX2lkID0gaXNzdWVEYXRhLmlzc3VlUkMubGVuZ3RoXG4gICAgICA/IHRoaXMuZ2V0QXJyYXlJZChpc3N1ZURhdGEuaXNzdWVSQywgJ3JjX2lkJylcbiAgICAgIDogW107XG4gICAgcGF5bG9hZC5yZXNwb25zaWJpbGl0aWVzX0xpbmtlZCA9IGlzc3VlRGF0YS5yZXNwb25zaWJpbGl0eUxpbmtlZC5sZW5ndGhcbiAgICAgID8gdGhpcy5nZXRBcnJheUlkKGlzc3VlRGF0YS5yZXNwb25zaWJpbGl0eUxpbmtlZCwgJ1JlcG9ydElkJylcbiAgICAgIDogW107XG4gICAgcGF5bG9hZC5jYXRlZ29yeV9pZCA9IGlzc3VlRGF0YS5pc3N1ZUNhdGVnb3J5Lmxlbmd0aFxuICAgICAgPyB0aGlzLmFycmF5VG9JZChpc3N1ZURhdGEuaXNzdWVDYXRlZ29yeSwgJ2NhdGVnb3J5X2lkJylcbiAgICAgIDogbnVsbDtcbiAgICBwYXlsb2FkLmRlc2NyaXB0aW9uWzBdID0ge1xuICAgICAgdGV4dDogaXNzdWVEYXRhLmlzc3VlRGVzY3JpcHRpb24gPz8gJycsXG4gICAgICBhdHRhY2htZW50czogaXNzdWVEYXRhPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzLmxlbmd0aFxuICAgICAgICA/IGlzc3VlRGF0YT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50c1xuICAgICAgICA6IFtdLFxuICAgIH07XG4gICAgcGF5bG9hZC5leGNlcHRpb25fdHlwZSA9IG9wdGlvbkZpZWxkc1N0YXR1cy5FWENFUFRJT05fVFlQRVxuICAgICAgPyBOdW1iZXIoaXNzdWVEYXRhLmV4Y2VwdGlvblR5cGUpXG4gICAgICA6IG51bGw7XG4gICAgcGF5bG9hZC5yaXNrX2NsYXNzID0gaXNzdWVEYXRhLmlzc3VlUmlza1JhdGluZyA/PyBudWxsO1xuICAgIHBheWxvYWQucHJpb3JpdHkgPSBvcHRpb25GaWVsZHNTdGF0dXMuUFJJT1JJVFlcbiAgICAgID8gTnVtYmVyKGlzc3VlRGF0YS5pc3N1ZVByaW9yaXR5KVxuICAgICAgOiBudWxsO1xuICAgIHBheWxvYWQuYXNzaWduZWVfaWQgPSBpc3N1ZURhdGEuZW50cnVzdFRvXG4gICAgICA/IHRoaXMuYXJyYXlUb0lkKGlzc3VlRGF0YS5lbnRydXN0VG8sICdteV9tZW1iZXJfaWQnKVxuICAgICAgOiBudWxsO1xuICAgIHBheWxvYWQuYXNzb2NpYXRlZF9yaXNrWzBdID0ge1xuICAgICAgdGV4dDogb3B0aW9uRmllbGRzU3RhdHVzLkFTU09DSUFURURfUklTS1NcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVBc3NvY2lhdGVkUmlza1xuICAgICAgICA6ICcnLFxuICAgICAgYXR0YWNobWVudHM6IFtdLFxuICAgIH07XG4gICAgcGF5bG9hZC5yZWNvbW1lbmRhdGlvblswXSA9IHtcbiAgICAgIHRleHQ6IGlzc3VlRGF0YS5pc3N1ZVJlY29tbWVuZGF0aW9uID8/ICcnLFxuICAgICAgYXR0YWNobWVudHM6IGlzc3VlRGF0YT8ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHMubGVuZ3RoXG4gICAgICAgID8gaXNzdWVEYXRhPy5yZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50c1xuICAgICAgICA6IFtdLFxuICAgIH07XG4gICAgcGF5bG9hZC5ldmlkZW5jZSA9IHtcbiAgICAgIGV2aWRlbmNlX2ZsYWc6IG9wdGlvbkZpZWxkc1N0YXR1cy5FVklERU5DRVxuICAgICAgICA/IGlzc3VlRGF0YS5ldmlkZW5jZVJlcXVpcmVkXG4gICAgICAgICAgPyAxXG4gICAgICAgICAgOiAwXG4gICAgICAgIDogMCxcbiAgICB9O1xuICAgIHBheWxvYWQuZnJlcXVlbmN5X2RldGFpbHMgPSB7XG4gICAgICBmcmVxdWVuY3lfdGltZTpcbiAgICAgICAgdGhpcy5jb252ZXJ0RnJvbTEyVG8yNEZvcm1hdChpc3N1ZURhdGEuaXNzdWVEdWVUaW1lKSA/PyBERUZBVUxUX1RJTUUsXG4gICAgICBmcmVxdWVuY3lfZGF0ZTpcbiAgICAgICAgZGF0ZVNwbGl0WzBdICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgKGRhdGVTcGxpdFsxXSA8IDEwID8gJzAnICsgZGF0ZVNwbGl0WzFdIDogZGF0ZVNwbGl0WzFdKSArXG4gICAgICAgICctJyArXG4gICAgICAgIChkYXRlU3BsaXRbMl0gPCAxMCA/ICcwJyArIGRhdGVTcGxpdFsyXSA6IGRhdGVTcGxpdFsyXSksXG4gICAgfTtcbiAgICBwYXlsb2FkLm92ZXJzZWVyID0ge1xuICAgICAgY2NfZW1haWw6IG9wdGlvbkZpZWxkc1N0YXR1cy5PVkVSU0lHSFRcbiAgICAgICAgPyBpc3N1ZURhdGEuaXNzdWVDQ1VzZXJzLmxlbmd0aFxuICAgICAgICAgID8gaXNzdWVEYXRhLmlzc3VlQ0NVc2Vycy5tYXAoKHg6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4geyBtZW1iZXJfaWQ6IHgubXlfbWVtYmVyX2lkID8/IDAsIGFsZXJ0X2VuYWJsZTogMSB9O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IFtdXG4gICAgICAgIDogW10sXG4gICAgICBmYWlsdXJlX2NjX2VtYWlsOiBvcHRpb25GaWVsZHNTdGF0dXMuT1ZFUlNJR0hUXG4gICAgICAgID8gaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLmxlbmd0aFxuICAgICAgICAgID8gaXNzdWVEYXRhLmZhaWx1cmVDQ1VzZXJzLm1hcCgoeDogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7IG1lbWJlcl9pZDogeC5teV9tZW1iZXJfaWQgPz8gMCwgYWxlcnRfZW5hYmxlOiAxIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogW11cbiAgICAgICAgOiBbXSxcbiAgICB9O1xuICAgIHBheWxvYWQuY3VzdG9tX3RhZ3MgPSBpc3N1ZURhdGE/Lmlzc3VlQ3VzdG9tVGFnO1xuICAgIHBheWxvYWQuaXNzdWVUeXBlID0gaXNzdWVEYXRhPy5pc3N1ZVR5cGU7XG4gICAgcGF5bG9hZC5saW5rZWRfYXNzZXNzbWVudF9pc3N1ZXMgPSB7XG4gICAgICByZXNwX2lkOiBpc3N1ZURhdGE/LnJlc3BJZCA/PyAnJyxcbiAgICAgIGR1ZV9kYXRlX2lkOiBpc3N1ZURhdGE/LmR1ZURhdGVJZCA/PyAnJyxcbiAgICAgIGFzc2Vzc21lbnRfaWQ6IGlzc3VlRGF0YT8uYXNzZXNzbWVudElkID8/ICcnLFxuICAgICAgcXVlc3Rpb25faWQ6IGlzc3VlRGF0YT8ucXVlc3Rpb25JZCA/PyAnJyxcbiAgICAgIGF1ZGl0ZWVfaWQ6IGlzc3VlRGF0YT8uYXVkaXRlZUlkID8/IG51bGwsXG4gICAgfTtcbiAgICBwYXlsb2FkLnNvdXJjZSA9IGlzc3VlRGF0YT8uc291cmNlO1xuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH1cblxuICBhcnJheVRvSWQoYXJyYXk6IGFueSwga2V5OiBhbnkpIHtcbiAgICBpZiAoYXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhcnJheVswXVtrZXldO1xuICAgIH1cbiAgfVxuXG4gIGdldEFycmF5SWQoYXJyYXk6IGFueSwga2V5OiBhbnkpIHtcbiAgICByZXR1cm4gYXJyYXkubWFwKChlbGU6IGFueSkgPT4gZWxlW2tleV0pO1xuICB9XG5cbiAgY29udmVydEZyb20xMlRvMjRGb3JtYXQgPSAodGltZTEyOiBhbnkpID0+IHtcbiAgICBpZiAodGltZTEyKSB7XG4gICAgICBjb25zdCBbc0hvdXJzLCBtaW51dGVzLCBwZXJpb2RdID0gdGltZTEyXG4gICAgICAgIC5tYXRjaCgvKFswLTldezEsMn0pOihbMC05XXsyfSkgKGFtfHBtfEFNfFBNKS8pXG4gICAgICAgIC5zbGljZSgxKTtcbiAgICAgIGNvbnN0IFBNID0gcGVyaW9kID09PSAnUE0nO1xuICAgICAgY29uc3QgaG91cnMgPSAoK3NIb3VycyAlIDEyKSArIChQTSA/IDEyIDogMCk7XG5cbiAgICAgIHJldHVybiBgJHsoJzAnICsgaG91cnMpLnNsaWNlKC0yKX06JHttaW51dGVzfTowMGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBERUZBVUxUXzI0SFI7XG4gICAgfVxuICB9O1xuXG4gIGNvbnZlcnRGcm9tMjRUbzEyRm9ybWF0KHRpbWU6IGFueSkge1xuICAgIGNvbnN0IGhobW0gPSB0aW1lLnNwbGl0KCc6Jyk7XG4gICAgdGltZSA9IGAke2hobW1bMF19OiR7aGhtbVsxXX1gO1xuICAgIC8vIENoZWNrIGNvcnJlY3QgdGltZSBmb3JtYXQgYW5kIHNwbGl0IGludG8gY29tcG9uZW50c1xuICAgIHRpbWUgPSB0aW1lXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLm1hdGNoKC9eKFswMV1cXGR8MlswLTNdKSg6KShbMC01XVxcZCkoOlswLTVdXFxkKT8kLykgfHwgW3RpbWVdO1xuXG4gICAgaWYgKHRpbWUubGVuZ3RoID4gMSkge1xuICAgICAgLy8gSWYgdGltZSBmb3JtYXQgY29ycmVjdFxuICAgICAgdGltZSA9IHRpbWUuc2xpY2UoMSk7IC8vIFJlbW92ZSBmdWxsIHN0cmluZyBtYXRjaCB2YWx1ZVxuICAgICAgdGltZVs1XSA9ICt0aW1lWzBdIDwgMTIgPyAnIEFNJyA6ICcgUE0nOyAvLyBTZXQgQU0vUE1cbiAgICAgIHRpbWVbMF0gPSArdGltZVswXSAlIDEyIHx8IDEyOyAvLyBBZGp1c3QgaG91cnNcbiAgICB9XG4gICAgcmV0dXJuIHRpbWUuam9pbignJyk7IC8vIHJldHVybiBhZGp1c3RlZCB0aW1lIG9yIG9yaWdpbmFsIHN0cmluZ1xuICB9XG5cbiAgYXJyYXlUb0lEc0R0cmluZyhhcnJheTogYW55LCBpZGVudGlmaWVyS2V5OiBhbnkpIHtcbiAgICBjb25zdCBsaXN0ID0gYXJyYXkubWFwKChlbDogYW55KSA9PiB7XG4gICAgICByZXR1cm4gZWxbaWRlbnRpZmllcktleV07XG4gICAgfSk7XG4gICAgcmV0dXJuIGxpc3Quam9pbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZHMgdGhlIGdpdmVuIGZpbGUgdG8gc2VydmVyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBheWxvYWQgRmlsZSBkYXRhIHRvIGJlIHVwbG9hZGVkXG4gICAqIEBwYXJhbSBwYXRoIHBhdGggUGF0aCBvZiBmaWxlIHRvIGJlIHVwbG9hZGVkXG4gICAqIEByZXR1cm5zIHJlc3BvbnNlIGFmdGVyIHVwbG9hZGluZyBhIGZpbGVcbiAgICovXG4gIHVwbG9hZEZpbGVzKHBheWxvYWQ6IGFueSwgcGF0aDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICBjb25zdCBPUkdfUEFUSCA9IGBvLyR7cGF0aH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIHRoaXMuZW52LmZpbGVVcGxvYWRFbmRQb2ludCArIE9SR19QQVRIICsgJyZuZ3N3LWJ5cGFzcz10cnVlJyxcbiAgICAgIHBheWxvYWQsXG4gICAgICB7IGhlYWRlcnMgfVxuICAgICk7XG4gIH1cblxuICBnZXRJc3N1ZURldGFpbHMoaXNzdWVJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KHRoaXMuZW52LmFzc3VyYW5jZSArICdJc3N1ZS9FZGl0LycgKyBpc3N1ZUlkLCB7IGhlYWRlcnMgfSlcbiAgICAgIC5waXBlKHJldHJ5KDMpKTtcbiAgfVxuXG4gIGZvcm1hdERhdGUoKSB7XG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGRheSA9IFN0cmluZyhjdXJyZW50RGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgY29uc3QgbW9udGggPSBTdHJpbmcoY3VycmVudERhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgY29uc3QgeWVhciA9IGN1cnJlbnREYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IGAke2RheX0tJHttb250aH0tJHt5ZWFyfWA7XG4gICAgcmV0dXJuIGZvcm1hdHRlZERhdGU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -73,7 +73,7 @@ export class PolicyService {
|
|
|
73
73
|
getRCList() {
|
|
74
74
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
75
75
|
return this.http
|
|
76
|
-
.get(this.env.
|
|
76
|
+
.get(this.env.complianceGet + 'responsibilityCenterTree', {
|
|
77
77
|
headers,
|
|
78
78
|
})
|
|
79
79
|
.pipe(retry(2));
|
|
@@ -211,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
211
211
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
|
|
212
212
|
type: Optional
|
|
213
213
|
}] }]; } });
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsV0FBVyxFQUVYLFVBQVUsR0FDWCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQUl6RCxNQUFNLE9BQU8sYUFBYTtJQVF4QixZQUNVLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ3BCLE1BQXVCO1FBRjNCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFSM0IsdUJBQWtCLEdBQXlCLElBQUksZUFBZSxDQUNuRSxJQUFJLENBQ0wsQ0FBQztRQUNLLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDakQsaUJBQVksR0FBeUIsSUFBSSxlQUFlLENBQU0sS0FBSyxDQUFDLENBQUM7UUFDckUsdUJBQWtCLEdBQVEsRUFBRSxDQUFDO1FBTWxDLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLGtC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LElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsR0FBRyxRQUFRLENBQUMsZUFBZSxHQUFHLFFBQVEsRUFDekQsRUFBRSxPQUFPLEVBQUUsQ0FDWixDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQWdCO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWEsR0FBRyxRQUFRLENBQUMsZUFBZSxHQUFHLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDbkcsQ0FBQzsrR0FsVVUsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVlJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIdHRwQ2xpZW50LFxuICBIdHRwQmFja2VuZCxcbiAgSHR0cEhlYWRlcnMsXG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwUGFyYW1zLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBUElfVVJMUyB9IGZyb20gJy4uL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIvYXBpLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBGSUxFX1NJWkUgfSBmcm9tICcuLi9jb25zdGFudHMvcG9saWN5LmNvbnN0YW50JztcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQb2xpY3lTZXJ2aWNlIHtcbiAgZW52ITogYW55O1xuICBwdWJsaWMgUG9saWN5Q2F0ZWdvcnlMaXN0OiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihcbiAgICBudWxsXG4gICk7XG4gIHB1YmxpYyBsaW5rZWRQb2xpY2llcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gIHB1YmxpYyB0ZW1wbGF0ZVZpZXc6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KGZhbHNlKTtcbiAgcHVibGljIGxpbmtSZWxhdGVQb2xpY2llczogYW55ID0ge307XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9uc1xuICApIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2F0ZWdvcmllc0xpc3QoKSB7XG4gICAgaWYgKHRoaXMuUG9saWN5Q2F0ZWdvcnlMaXN0Py5nZXRWYWx1ZSgpKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5Qb2xpY3lDYXRlZ29yeUxpc3Q/LnZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5wb2xpY3lHZXQgKyAnY2F0ZWdvcnkvZHJvcGRvd25MaXN0JnR5cGU9Y29udHJhY3QnLCB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5Qb2xpY3lDYXRlZ29yeUxpc3Q/Lm5leHQocmVzKTtcbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBQb2xpY3kgQ2F0ZWdvcnknLCBlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgLy8gaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL3BvbGljeS8/bW9kZT1jYXRlZ29yeS9kZXRhaWxBbGxcbiAgZ2V0V29ya2Zsb3dMaXN0KHBheWxvYWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoXG4gICAgICAgIHRoaXMuZW52LnBvbGljeVBvc3QgKyAnYXBwcm92YWx3b3JrZmxvdy9mZXRjaGFsbCcsXG4gICAgICAgIHsgY2F0ZWdvcnlfaWQ6IHBheWxvYWQsIHNvdXJjZV9wYWdlOiAnV09SS0ZMT1dfRU5HSU5FJyB9LFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0UG9saWN5TGlzdChyZXE6IGFueSkge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuZW52Py5wb2xpY3lHZXQ7XG4gICAgbGV0IHBhcmFtcyA9IHJlcS5wYXJhbXMgfHwgbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHN3aXRjaCAocmVxLm1ldGhvZC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlICdnZXQnOlxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgLmdldCh1cmwgKyByZXEubW9kZSwgeyBoZWFkZXJzLCBwYXJhbXMgfSlcbiAgICAgICAgICAucGlwZShyZXRyeSgyKSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHJlcXVlc3QgbWV0aG9kJykpO1xuICAgIH1cbiAgfVxuXG4gIHN1Ym1pdFBvbGljeShwYXlsb2FkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KHRoaXMuZW52LnBvbGljeVBvc3QgKyAncG9saWN5L2FkZCZzZXJ2aWNlVHlwZT0xJywgcGF5bG9hZCwgeyBoZWFkZXJzIH0pXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRSZXZpZXdlcnMocGF5bG9hZDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChcbiAgICAgICAgdGhpcy5lbnYucG9saWN5UG9zdCArICdjYXRlZ29yeS9kZXRhaWxBbGwnLFxuICAgICAgICB7IGNhdGVnb3J5SWQ6IHBheWxvYWQgfSxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuICBnZXRSQ0xpc3QoKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJywge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIC8vIGdldE9yZ2FuaXphdGlvblVzZXJzKCkge1xuICAvLyAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cFxuICAvLyAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ29yZ2FuaXphdGlvblVzZXJzJmZyb209cmlzaycsIHtcbiAgLy8gICAgICAgaGVhZGVycyxcbiAgLy8gICAgIH0pXG4gIC8vICAgICAucGlwZShyZXRyeSgyKSk7XG4gIC8vIH1cbiAgZ2V0T3JnYW5pemF0aW9uUGVvcGxlKCkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ3Blb3BsZScsIHtcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRDYXRlZ29yeVdvcmtGbG93cyhpZDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYucG9saWN5R2V0ICsgJ2FwcHJvdmFsd29ya2Zsb3cvZmV0Y2hhbGwmY2F0ZWdvcnlfaWQ9JyArIGlkLFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZmlsZVVwbG9hZFdvcmtyb29tKHBheWxvYWQ6IGFueSwgZGVzOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHRoaXMuZW52LmZpbGVVcGxvYWRFbmRQb2ludCArIGRlcywgcGF5bG9hZCwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIHNhdmVVcGxvYWRlZEZpbGVzKHBheWxvYWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICB0aGlzLmVudi5wb2xpY3lQb3N0ICsgJ2F0dGFjaG1lbnQvY3JlYXRlJyxcbiAgICAgIHBheWxvYWQsXG4gICAgICB7IGhlYWRlcnMgfVxuICAgICk7XG4gIH1cbiAgdXBsb2FkRmlsZShkYXRhOiBhbnksIGlkOiBzdHJpbmcsIHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QodGhpcy5lbnYuZmlsZVVwbG9hZCArICc/aWQ9JyArIGlkICsgJyZwYXRoPScgKyBwYXRoLCBkYXRhLCB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgdXBsb2FkRG9jeEZpbGUoZGF0YTogYW55LCBpZDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KFxuICAgICAgICB0aGlzLmVudi5kb2N4VXBsb2FkICtcbiAgICAgICAgICAnP2lkPScgK1xuICAgICAgICAgIGlkICtcbiAgICAgICAgICAnJnBhdGg9JyArXG4gICAgICAgICAgcGF0aCArXG4gICAgICAgICAgJyZieXBhc3MtdG9rZW49dHJ1ZScsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBzYXZlUG9saWN5RGV0YWlscyhcbiAgICB1bmFtZTogYW55LFxuICAgIHVpZDogYW55LFxuICAgIGlkOiBhbnksXG4gICAgbmFtZTogYW55LFxuICAgIGh0bWw6IGFueSxcbiAgICBpc1NlbmRGb3JBcHByb3ZlOiBhbnlcbiAgKSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIHBvbGljeUxvZ3M6IEpTT04uc3RyaW5naWZ5KFtcbiAgICAgICAge1xuICAgICAgICAgIHBvbGljeU5hbWU6IG5hbWUsXG4gICAgICAgICAgcG9saWN5RGVzYzogaHRtbCxcbiAgICAgICAgICBvbGRQb2xpY3lOYW1lOiBuYW1lLFxuICAgICAgICAgIHR5cGU6IDIsXG4gICAgICAgICAgYWN0aXZlX2ZsYWc6IDEsXG4gICAgICAgICAgbW9kaWZpZWRfbWVtYmVyOiBbeyBtb2RpZmllcl9pZDogdWlkLCBtb2RpZmllcl9uYW1lOiB1bmFtZSB9XSxcbiAgICAgICAgICBtb2RpZmllZF9ieTogdW5hbWUsXG4gICAgICAgICAgbW9kaWZpZWRfb246IG5ldyBEYXRlKCksXG4gICAgICAgIH0sXG4gICAgICBdKSxcbiAgICAgIHBvbGljeURlc2M6IEpTT04uc3RyaW5naWZ5KFtcbiAgICAgICAge1xuICAgICAgICAgIHBvbGljeU5hbWU6IG5hbWUsXG4gICAgICAgICAgcG9saWN5RGVzYzogaHRtbCxcbiAgICAgICAgICBvbGRQb2xpY3lOYW1lOiBuYW1lLFxuICAgICAgICAgIHR5cGU6IDIsXG4gICAgICAgICAgYWN0aXZlX2ZsYWc6IDEsXG4gICAgICAgICAgbW9kaWZpZWRfbWVtYmVyOiBbeyBtb2RpZmllcl9pZDogdWlkLCBtb2RpZmllcl9uYW1lOiB1bmFtZSB9XSxcbiAgICAgICAgICBtb2RpZmllZF9ieTogdW5hbWUsXG4gICAgICAgICAgbW9kaWZpZWRfb246IG5ldyBEYXRlKCksXG4gICAgICAgIH0sXG4gICAgICBdKSxcbiAgICAgIElzX2FwcHJvdmFsOiBpc1NlbmRGb3JBcHByb3ZlLFxuICAgIH0pO1xuXG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgaGVhZGVycyA9IGhlYWRlcnMuYXBwZW5kKCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5zYXZlRG9jICsgaWQsIHBheWxvYWQsIHsgaGVhZGVycyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmaWxlU2l6ZUxpbWl0KGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBzaXplSW5NQiA9IGZpbGU/LnNpemUgfHwgMDtcbiAgICByZXR1cm4gc2l6ZUluTUIgPD0gRklMRV9TSVpFLk1BWF9TSVpFO1xuICB9XG5cbiAgZWRpdFBvbGljeShpZDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5wb2xpY3lHZXQgKyAncG9saWN5L2xpc3Qmb2JqX2lkPScgKyBpZCArICcmc2VydmljZVR5cGU9MScsIHsgaGVhZGVycyB9KVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgdXBkYXRlUG9saWN5KHBheWxvYWQ6IGFueSwgcG9saWN5SWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55PihcbiAgICAgIHRoaXMuZW52LnBvbGljeVB1dCArICdwb2xpY3kvdXBkYXRlJmNvbnRyYWN0SWQ9JyArIHBvbGljeUlkICsgJyZzZXJ2aWNlVHlwZT0xJyxcbiAgICAgIHBheWxvYWQsXG4gICAgICB7IGhlYWRlcnMgfVxuICAgICk7XG4gIH1cblxuICBleHRyYWN0RmlsZShleHRlbnNpb246IGFueSwgcGF0aDogYW55LCBpZDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICBpZiAoZXh0ZW5zaW9uID09PSAncGRmJyB8fCBleHRlbnNpb24gPT09ICdQREYnKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgICAgdGhpcy5lbnYubGlua1BkZiArICc/ZmlsZVBhdGg9JyArIHBhdGggKyAnJmlkPScgKyBpZCxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgICAgdGhpcy5lbnYubGlua0RvYyxcbiAgICAgICAgeyBmaWxlUGF0aDogcGF0aCwgaWQgfSxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQXBwcm92YWxXb3JrZmxvdyhwYXlsb2FkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgdGhpcy5lbnYucG9saWN5UG9zdCArICdhcHByb3ZhbHdvcmtmbG93L2NyZWF0ZScsXG4gICAgICBwYXlsb2FkLFxuICAgICAgeyBoZWFkZXJzIH1cbiAgICApO1xuICB9XG4gIGVkaXRBcHByb3ZhbFdvcmtmbG93KHBheWxvYWQ6IGFueSwgaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXG4gICAgICB0aGlzLmVudi5wb2xpY3lQb3N0ICsgJ2FwcHJvdmFsd29ya2Zsb3cvdXBkYXRlJndvcmtmbG93SWQ9JyArIGlkLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIExpbmtlZFBvbGljaWVzTGlzdChwb2xpY3lJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIHRoaXMuZW52Py5wb2xpY3lHZXQgKyBBUElfVVJMUy5MSU5LRURfUE9MSUNJRVMgKyBwb2xpY3lJZCxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIGdldExpbmtlZFByb2dyYW1zKHBvbGljeUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZW52Py5jb21wbGlhbmNlR2V0ICsgQVBJX1VSTFMuTElOS0VEX1BST0dSQU1TICsgcG9saWN5SWQsIHsgaGVhZGVycyB9KTtcbiAgfVxufVxuIl19
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsV0FBVyxFQUVYLFVBQVUsR0FDWCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQUl6RCxNQUFNLE9BQU8sYUFBYTtJQVF4QixZQUNVLElBQWdCLEVBQ2hCLFdBQXdCLEVBQ3BCLE1BQXVCO1FBRjNCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFSM0IsdUJBQWtCLEdBQXlCLElBQUksZUFBZSxDQUNuRSxJQUFJLENBQ0wsQ0FBQztRQUNLLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDakQsaUJBQVksR0FBeUIsSUFBSSxlQUFlLENBQU0sS0FBSyxDQUFDLENBQUM7UUFDckUsdUJBQWtCLEdBQVEsRUFBRSxDQUFDO1FBTWxDLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLGtC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LElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsR0FBRyxRQUFRLENBQUMsZUFBZSxHQUFHLFFBQVEsRUFDekQsRUFBRSxPQUFPLEVBQUUsQ0FDWixDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQWdCO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWEsR0FBRyxRQUFRLENBQUMsZUFBZSxHQUFHLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDbkcsQ0FBQzsrR0FsVVUsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVlJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIdHRwQ2xpZW50LFxuICBIdHRwQmFja2VuZCxcbiAgSHR0cEhlYWRlcnMsXG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwUGFyYW1zLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBUElfVVJMUyB9IGZyb20gJy4uL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIvYXBpLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBGSUxFX1NJWkUgfSBmcm9tICcuLi9jb25zdGFudHMvcG9saWN5LmNvbnN0YW50JztcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQb2xpY3lTZXJ2aWNlIHtcbiAgZW52ITogYW55O1xuICBwdWJsaWMgUG9saWN5Q2F0ZWdvcnlMaXN0OiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihcbiAgICBudWxsXG4gICk7XG4gIHB1YmxpYyBsaW5rZWRQb2xpY2llcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gIHB1YmxpYyB0ZW1wbGF0ZVZpZXc6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KGZhbHNlKTtcbiAgcHVibGljIGxpbmtSZWxhdGVQb2xpY2llczogYW55ID0ge307XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9uc1xuICApIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2F0ZWdvcmllc0xpc3QoKSB7XG4gICAgaWYgKHRoaXMuUG9saWN5Q2F0ZWdvcnlMaXN0Py5nZXRWYWx1ZSgpKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5Qb2xpY3lDYXRlZ29yeUxpc3Q/LnZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5wb2xpY3lHZXQgKyAnY2F0ZWdvcnkvZHJvcGRvd25MaXN0JnR5cGU9Y29udHJhY3QnLCB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5Qb2xpY3lDYXRlZ29yeUxpc3Q/Lm5leHQocmVzKTtcbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBQb2xpY3kgQ2F0ZWdvcnknLCBlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgLy8gaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL3BvbGljeS8/bW9kZT1jYXRlZ29yeS9kZXRhaWxBbGxcbiAgZ2V0V29ya2Zsb3dMaXN0KHBheWxvYWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoXG4gICAgICAgIHRoaXMuZW52LnBvbGljeVBvc3QgKyAnYXBwcm92YWx3b3JrZmxvdy9mZXRjaGFsbCcsXG4gICAgICAgIHsgY2F0ZWdvcnlfaWQ6IHBheWxvYWQsIHNvdXJjZV9wYWdlOiAnV09SS0ZMT1dfRU5HSU5FJyB9LFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0UG9saWN5TGlzdChyZXE6IGFueSkge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuZW52Py5wb2xpY3lHZXQ7XG4gICAgbGV0IHBhcmFtcyA9IHJlcS5wYXJhbXMgfHwgbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHN3aXRjaCAocmVxLm1ldGhvZC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlICdnZXQnOlxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgLmdldCh1cmwgKyByZXEubW9kZSwgeyBoZWFkZXJzLCBwYXJhbXMgfSlcbiAgICAgICAgICAucGlwZShyZXRyeSgyKSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHJlcXVlc3QgbWV0aG9kJykpO1xuICAgIH1cbiAgfVxuXG4gIHN1Ym1pdFBvbGljeShwYXlsb2FkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KHRoaXMuZW52LnBvbGljeVBvc3QgKyAncG9saWN5L2FkZCZzZXJ2aWNlVHlwZT0xJywgcGF5bG9hZCwgeyBoZWFkZXJzIH0pXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRSZXZpZXdlcnMocGF5bG9hZDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChcbiAgICAgICAgdGhpcy5lbnYucG9saWN5UG9zdCArICdjYXRlZ29yeS9kZXRhaWxBbGwnLFxuICAgICAgICB7IGNhdGVnb3J5SWQ6IHBheWxvYWQgfSxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuICBnZXRSQ0xpc3QoKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ3Jlc3BvbnNpYmlsaXR5Q2VudGVyVHJlZScsIHtcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICAvLyBnZXRPcmdhbml6YXRpb25Vc2VycygpIHtcbiAgLy8gICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xuICAvLyAgIHJldHVybiB0aGlzLmh0dHBcbiAgLy8gICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdvcmdhbml6YXRpb25Vc2VycyZmcm9tPXJpc2snLCB7XG4gIC8vICAgICAgIGhlYWRlcnMsXG4gIC8vICAgICB9KVxuICAvLyAgICAgLnBpcGUocmV0cnkoMikpO1xuICAvLyB9XG4gIGdldE9yZ2FuaXphdGlvblBlb3BsZSgpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdwZW9wbGUnLCB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0Q2F0ZWdvcnlXb3JrRmxvd3MoaWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52LnBvbGljeUdldCArICdhcHByb3ZhbHdvcmtmbG93L2ZldGNoYWxsJmNhdGVnb3J5X2lkPScgKyBpZCxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGZpbGVVcGxvYWRXb3Jrcm9vbShwYXlsb2FkOiBhbnksIGRlczogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih0aGlzLmVudi5maWxlVXBsb2FkRW5kUG9pbnQgKyBkZXMsIHBheWxvYWQsIHtcbiAgICAgIGhlYWRlcnMsXG4gICAgfSk7XG4gIH1cblxuICBzYXZlVXBsb2FkZWRGaWxlcyhwYXlsb2FkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgdGhpcy5lbnYucG9saWN5UG9zdCArICdhdHRhY2htZW50L2NyZWF0ZScsXG4gICAgICBwYXlsb2FkLFxuICAgICAgeyBoZWFkZXJzIH1cbiAgICApO1xuICB9XG4gIHVwbG9hZEZpbGUoZGF0YTogYW55LCBpZDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KHRoaXMuZW52LmZpbGVVcGxvYWQgKyAnP2lkPScgKyBpZCArICcmcGF0aD0nICsgcGF0aCwgZGF0YSwge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIHVwbG9hZERvY3hGaWxlKGRhdGE6IGFueSwgaWQ6IHN0cmluZywgcGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChcbiAgICAgICAgdGhpcy5lbnYuZG9jeFVwbG9hZCArXG4gICAgICAgICAgJz9pZD0nICtcbiAgICAgICAgICBpZCArXG4gICAgICAgICAgJyZwYXRoPScgK1xuICAgICAgICAgIHBhdGggK1xuICAgICAgICAgICcmYnlwYXNzLXRva2VuPXRydWUnLFxuICAgICAgICBkYXRhLFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgc2F2ZVBvbGljeURldGFpbHMoXG4gICAgdW5hbWU6IGFueSxcbiAgICB1aWQ6IGFueSxcbiAgICBpZDogYW55LFxuICAgIG5hbWU6IGFueSxcbiAgICBodG1sOiBhbnksXG4gICAgaXNTZW5kRm9yQXBwcm92ZTogYW55XG4gICkge1xuICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBwb2xpY3lMb2dzOiBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgIHtcbiAgICAgICAgICBwb2xpY3lOYW1lOiBuYW1lLFxuICAgICAgICAgIHBvbGljeURlc2M6IGh0bWwsXG4gICAgICAgICAgb2xkUG9saWN5TmFtZTogbmFtZSxcbiAgICAgICAgICB0eXBlOiAyLFxuICAgICAgICAgIGFjdGl2ZV9mbGFnOiAxLFxuICAgICAgICAgIG1vZGlmaWVkX21lbWJlcjogW3sgbW9kaWZpZXJfaWQ6IHVpZCwgbW9kaWZpZXJfbmFtZTogdW5hbWUgfV0sXG4gICAgICAgICAgbW9kaWZpZWRfYnk6IHVuYW1lLFxuICAgICAgICAgIG1vZGlmaWVkX29uOiBuZXcgRGF0ZSgpLFxuICAgICAgICB9LFxuICAgICAgXSksXG4gICAgICBwb2xpY3lEZXNjOiBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgIHtcbiAgICAgICAgICBwb2xpY3lOYW1lOiBuYW1lLFxuICAgICAgICAgIHBvbGljeURlc2M6IGh0bWwsXG4gICAgICAgICAgb2xkUG9saWN5TmFtZTogbmFtZSxcbiAgICAgICAgICB0eXBlOiAyLFxuICAgICAgICAgIGFjdGl2ZV9mbGFnOiAxLFxuICAgICAgICAgIG1vZGlmaWVkX21lbWJlcjogW3sgbW9kaWZpZXJfaWQ6IHVpZCwgbW9kaWZpZXJfbmFtZTogdW5hbWUgfV0sXG4gICAgICAgICAgbW9kaWZpZWRfYnk6IHVuYW1lLFxuICAgICAgICAgIG1vZGlmaWVkX29uOiBuZXcgRGF0ZSgpLFxuICAgICAgICB9LFxuICAgICAgXSksXG4gICAgICBJc19hcHByb3ZhbDogaXNTZW5kRm9yQXBwcm92ZSxcbiAgICB9KTtcblxuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgIGhlYWRlcnMgPSBoZWFkZXJzLmFwcGVuZCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5lbnYuc2F2ZURvYyArIGlkLCBwYXlsb2FkLCB7IGhlYWRlcnMgfSk7XG4gIH1cblxuICBwdWJsaWMgZmlsZVNpemVMaW1pdChmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2l6ZUluTUIgPSBmaWxlPy5zaXplIHx8IDA7XG4gICAgcmV0dXJuIHNpemVJbk1CIDw9IEZJTEVfU0laRS5NQVhfU0laRTtcbiAgfVxuXG4gIGVkaXRQb2xpY3koaWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnYucG9saWN5R2V0ICsgJ3BvbGljeS9saXN0Jm9ial9pZD0nICsgaWQgKyAnJnNlcnZpY2VUeXBlPTEnLCB7IGhlYWRlcnMgfSlcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIHVwZGF0ZVBvbGljeShwYXlsb2FkOiBhbnksIHBvbGljeUlkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4oXG4gICAgICB0aGlzLmVudi5wb2xpY3lQdXQgKyAncG9saWN5L3VwZGF0ZSZjb250cmFjdElkPScgKyBwb2xpY3lJZCArICcmc2VydmljZVR5cGU9MScsXG4gICAgICBwYXlsb2FkLFxuICAgICAgeyBoZWFkZXJzIH1cbiAgICApO1xuICB9XG5cbiAgZXh0cmFjdEZpbGUoZXh0ZW5zaW9uOiBhbnksIHBhdGg6IGFueSwgaWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgaWYgKGV4dGVuc2lvbiA9PT0gJ3BkZicgfHwgZXh0ZW5zaW9uID09PSAnUERGJykge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICAgIHRoaXMuZW52LmxpbmtQZGYgKyAnP2ZpbGVQYXRoPScgKyBwYXRoICsgJyZpZD0nICsgaWQsXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICAgIHRoaXMuZW52LmxpbmtEb2MsXG4gICAgICAgIHsgZmlsZVBhdGg6IHBhdGgsIGlkIH0sXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUFwcHJvdmFsV29ya2Zsb3cocGF5bG9hZDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcbiAgICAgIHRoaXMuZW52LnBvbGljeVBvc3QgKyAnYXBwcm92YWx3b3JrZmxvdy9jcmVhdGUnLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuICBlZGl0QXBwcm92YWxXb3JrZmxvdyhwYXlsb2FkOiBhbnksIGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxuICAgICAgdGhpcy5lbnYucG9saWN5UG9zdCArICdhcHByb3ZhbHdvcmtmbG93L3VwZGF0ZSZ3b3JrZmxvd0lkPScgKyBpZCxcbiAgICAgIHBheWxvYWQsXG4gICAgICB7IGhlYWRlcnMgfVxuICAgICk7XG4gIH1cblxuICBMaW5rZWRQb2xpY2llc0xpc3QocG9saWN5SWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXG4gICAgICB0aGlzLmVudj8ucG9saWN5R2V0ICsgQVBJX1VSTFMuTElOS0VEX1BPTElDSUVTICsgcG9saWN5SWQsXG4gICAgICB7IGhlYWRlcnMgfVxuICAgICk7XG4gIH1cblxuICBnZXRMaW5rZWRQcm9ncmFtcyhwb2xpY3lJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudj8uY29tcGxpYW5jZUdldCArIEFQSV9VUkxTLkxJTktFRF9QUk9HUkFNUyArIHBvbGljeUlkLCB7IGhlYWRlcnMgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -32,7 +32,7 @@ export class ProgramsService {
|
|
|
32
32
|
getResponsibilityCenterList() {
|
|
33
33
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
34
34
|
return this.http
|
|
35
|
-
.get(this.env?.
|
|
35
|
+
.get(this.env?.complianceGet +
|
|
36
36
|
'responsibilityCenterTree&bypass-businessCycle=true', {
|
|
37
37
|
headers,
|
|
38
38
|
})
|
|
@@ -227,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
227
227
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
|
|
228
228
|
type: Optional
|
|
229
229
|
}] }]; } });
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXNlcnZpY2VzL3Byb2dyYW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBTzdCLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQ1UsSUFBZ0IsRUFDaEIsV0FBd0IsRUFDcEIsTUFBdUI7UUFGM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUdoQyxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLGVBQWU7WUFDdkIsaURBQWlELEVBQ25ELEVBQUUsT0FBTyxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxPQUFZLEVBQUUsSUFBUztRQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FDbkMsT0FBTyxFQUNQLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FDekMsQ0FB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QUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBUTtRQUN4QixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FDbkMsT0FBTyxFQUNQLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FDekMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDdkIsNkNBQTZDLEVBQy9DLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUNsQixFQUFFLE9BQU8sRUFBRSxDQUNaO2FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7K0dBeFRVLGVBQWU7bUhBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmV0cnkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbnMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9ncmFtc1NlcnZpY2Uge1xuICBlbnYhOiBhbnk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9uc1xuICApIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XG4gICAgfVxuICB9XG5cbiAgZ2V0Um9sZXMoKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgK1xuICAgICAgICAncm9sZXMvZ2V0UHJvZ3JhbVJvbGVzJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgeyBoZWFkZXJzIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZHMgdGhlIGdpdmVuIGZpbGUgdG8gc2VydmVyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBheWxvYWQgRmlsZSBkYXRhIHRvIGJlIHVwbG9hZGVkXG4gICAqIEBwYXJhbSBwYXRoIHBhdGggUGF0aCBvZiBmaWxlIHRvIGJlIHVwbG9hZGVkXG4gICAqIEByZXR1cm5zIHJlc3BvbnNlIGFmdGVyIHVwbG9hZGluZyBhIGZpbGVcbiAgICovXG4gIHVwbG9hZEZpbGVzKHBheWxvYWQ6IGFueSwgcGF0aDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICBjb25zdCBPUkdfUEFUSCA9IGBvLyR7cGF0aH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIHRoaXMuZW52LmZpbGVVcGxvYWRFbmRQb2ludCArIE9SR19QQVRIICsgJyZuZ3N3LWJ5cGFzcz10cnVlJyxcbiAgICAgIHBheWxvYWQsXG4gICAgICB7IGhlYWRlcnMgfVxuICAgICk7XG4gIH1cblxuICBnZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnY/Lm9yZ2FuaXphdGlvbkdldCArXG4gICAgICAgICAgJ3Jlc3BvbnNpYmlsaXR5Q2VudGVyVHJlZSZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGZldGNoUm9sZVVzZXJzKHJvbGVzOiBhbnksIHBhZ2U/OiBhbnksIHNlYXJjaEtleT86IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgbGV0IHF1ZXJ5U3RyaW5nID0gJyc7XG4gICAgaWYgKHBhZ2UpIHtcbiAgICAgIHF1ZXJ5U3RyaW5nICs9IGAmcGFnZT0ke3BhZ2V9YDtcbiAgICB9XG4gICAgaWYgKHNlYXJjaEtleSkge1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgK1xuICAgICAgICAgICdyb2xlcy9nZXRVc2VyRGV0YWlscyZsaW1pdD0zMCZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyArXG4gICAgICAgICAgcXVlcnlTdHJpbmcsXG4gICAgICAgIHsgcm9sZV9pZHM6IHJvbGVzID8/IFtdIH0sXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBmZXRjaEFsbFJvbGVVc2Vycyhyb2xlczogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25Qb3N0ICtcbiAgICAgICAgICAncm9sZXMvZ2V0VXNlckRldGFpbHMmdHlwZT1hbGwmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXG4gICAgICAgIHsgcm9sZV9pZHM6IHJvbGVzID8/IFtdIH0sXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBmZXRjaEFsbFJvbGVHcm91cHMocm9sZXM6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8YW55W10+KFxuICAgICAgICB0aGlzLmVudi5vcmdhbml6YXRpb25Qb3N0ICtcbiAgICAgICAgICAncm9sZXMvZ2V0R3JvdXBEZXRhaWxzJnR5cGU9YWxsJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgICB7IHJvbGVfaWRzOiByb2xlcyA/PyBbXSB9LFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG4gIGZldGNoQWxsT3JnVXNlcigpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIC8vaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL29yZ2FuaXphdGlvbi8/bW9kZT1vcmdhbmlzYXRpb25Vc2Vyc0xpc3QmcGFnaW5hdGlvblR5cGU9c21hbGwmYWRtaW49MVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KFxuICAgICAgICB0aGlzLmVudj8ub3JnYW5pemF0aW9uR2V0ICtcbiAgICAgICAgICAnb3JnYW5pc2F0aW9uVXNlcnNMaXN0JnBhZ2luYXRpb25UeXBlPXNtYWxsJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG4gIGZldGNoQ29tcGxpYW5jZUdyb3VwcygpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIC8vaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL29yZ2FuaXphdGlvbi8/bW9kZT1ncm91cHNMaXN0JnN0YXR1cz0xJnR5cGU9Y29tcGxpYW5jZVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55W10+KFxuICAgICAgICB0aGlzLmVudj8ub3JnYW5pemF0aW9uR2V0ICtcbiAgICAgICAgICAnZ3JvdXBzTGlzdCZzdGF0dXM9MSZ0eXBlPWNvbXBsaWFuY2UmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRCdXNpbmVzc0N5Y2xlKCkge1xuICAgIGNvbnN0IGJ1c2luZXNzQ3ljbGUgPSBKU09OLnBhcnNlKFxuICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1c2luZXNzQ3ljbGUnKSA/PyAne30nXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgc2VsZWN0ZWRfY3ljbGU6IGJ1c2luZXNzQ3ljbGVcbiAgICAgICAgPyBidXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5zdGFydF9kYXRlICtcbiAgICAgICAgICAnLScgK1xuICAgICAgICAgIGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LmVuZF9kYXRlXG4gICAgICAgIDogJycsXG4gICAgICBzdGFydF9kYXRlOiBidXNpbmVzc0N5Y2xlID8gYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uc3RhcnRfZGF0ZSA6ICcnLFxuICAgICAgZW5kX2RhdGU6IGJ1c2luZXNzQ3ljbGUgPyBidXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5lbmRfZGF0ZSA6ICcnLFxuICAgICAgc2VsZWN0ZWRfY3ljbGVfYXJyOiBidXNpbmVzc0N5Y2xlXG4gICAgICAgID8gYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uc2VsZWN0ZWRfY3ljbGVfYXJyXG4gICAgICAgIDogW10sXG4gICAgfTtcbiAgfVxuXG4gIHNhdmVQcm9ncmFtKHBheWxvYWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKVxuICAgICAgLnNldCgneC1idXNpbmVzcy1jeWNsZScsIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0QnVzaW5lc3NDeWNsZSgpKSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueVtdPihcbiAgICAgIHRoaXMuZW52LnByb2dyYW1FbmRwb2ludCArICcvY2F0ZWdvcnkvP2lzQnVzaW5lc3NDeWNsZT10cnVlJnNlcnZpY2VUeXBlPTEnLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIGJ1aWxkUGF5bG9hZChmb3JtRGF0YTogYW55LCBpbnN0YW5jZTogYW55KSB7XG4gICAgY29uc3QgZm9ybSA9IGZvcm1EYXRhPy52YWx1ZTtcbiAgICBjb25zdCBvcHRpb24gPSBpbnN0YW5jZS5hZGRpdGlvbmFsT3B0aW9uO1xuICAgIGNvbnN0IHR5cGUgPSBbXCJvdGhlcnNcIiwgXCJyZWd1bGF0aW9uc1wiLCBcInN0YW5kYXJkc1wiLCBcImludGVybmFsX2NvbnRyb2xzXCJdXG4gICAgcmV0dXJuIHtcbiAgICAgIFwibmFtZVwiOiBmb3JtPy5wcm9ncmFtX25hbWUudHJpbSgpID8/ICcnLFxuICAgICAgXCJ0eXBlXCI6IHR5cGVbZm9ybT8ucHJvZ3JhbV90eXBlXSA/PyBcIm90aGVyc1wiLFxuICAgICAgXCJkZXNjcmlwdGlvblwiOiBmb3JtPy5wcm9ncmFtX29iamVjdGl2ZSA/PyBcIlwiLFxuICAgICAgXCJvd25lcnNcIjoge1xuICAgICAgICBcImFkbWluc1wiOiB7ICAvLyBPd25lcnNcbiAgICAgICAgICBcInVzZXJzXCI6IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9vd25lcnMsICd1aWQnKSA/PyBbXSxcbiAgICAgICAgICB1c2VyR3JvdXBzOnRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9vd25lcnNfZ3JvdXAsICd1Z2lkJykgPz8gW11cbiAgICAgICAgfSxcbiAgICAgICAgXCJtYW5hZ2Vyc1wiOiB7ICAvLyBDb2xsYWJvcmF0b3JzXG4gICAgICAgICAgXCJ1c2Vyc1wiOiB0aGlzLmxpc3RUb0lkKGZvcm0/LmNvbGxhYm9yYXRvcnMsICd1aWQnKSA/PyBbXSxcbiAgICAgICAgICB1c2VyR3JvdXBzOiB0aGlzLmxpc3RUb0lkKGZvcm0/LmNvbGxhYm9yYXRvcnNfZ3JvdXAsICd1Z2lkJykgPz8gW11cbiAgICAgICAgXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcImN1c3RvbUZpZWxkc1wiOiBvcHRpb24/LkNVU1RPTV9GSUVMRFMgPyBmb3JtPy5jdXN0b21fZmllbGRzID8/IFtdIDogW10sXG4gICAgfVxuICB9XG4gIGdlbmVyYXRlQXNzZXNzbWVudChhc3Nlc3NtZW50OiBhbnkpIHtcbiAgICBpZiAoYXNzZXNzbWVudCAmJiBhc3Nlc3NtZW50Py5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBhc3Nlc3NtZW50Lm1hcCgoY2F0OiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5jYXQsXG4gICAgICAgICAgYXNzZXNzbWVudElkczogY2F0LmFzc2Vzc21lbnRJZHM/Lm1hcCgoYXNzZXNzOiBhbnkpID0+IGFzc2Vzcy5pZCksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuICBnZXRGcmFtZXdvcmsoaW5wdXQ6IGFueSkge1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIF9pZDogaW5wdXQ/Ll9pZCxcbiAgICAgICAgICBmcmFtZXdvcmtfbmFtZTogaW5wdXQ/Lm5hbWUsXG4gICAgICAgICAgdHlwZTogaW5wdXQ/LnR5cGUsXG4gICAgICAgICAgaW5fc2NvcGU6IGlucHV0Py5pbl9zY29wZVxuICAgICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGlucHV0Py5pbl9zY29wZSwgJ19pZCcpXG4gICAgICAgICAgICA6IFtdLFxuICAgICAgICAgIG91dF9zY29wZTogaW5wdXQ/Lm91dF9zY29wZVxuICAgICAgICAgICAgPyB0aGlzLmxpc3RUb0lkKGlucHV0Py5vdXRfc2NvcGUsICdfaWQnKVxuICAgICAgICAgICAgOiBbXSxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBsaXN0VG9JZChsaXN0OiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgaWYgKGxpc3QgJiYgbGlzdD8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbGlzdC5tYXAoKGVsZTogYW55KSA9PiBlbGVba2V5XSkuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlKVxuICAgICAgLm1hcCgoZWxlOiBhbnkpID0+IGVsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGlkIDogcHJvZ3JhbSBvYmplY3QgaWRcbiAgICogQHJldHVybnNcbiAgICovXG4gIGdldFByb2dyYW0oaWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKVxuICAgICAgLnNldCgneC1idXNpbmVzcy1jeWNsZScsIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0QnVzaW5lc3NDeWNsZSgpKSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KFxuICAgICAgdGhpcy5lbnY/LnByb2dyYW1FbmRwb2ludCArXG4gICAgICAgICcvJyArXG4gICAgICAgIGlkICtcbiAgICAgICAgJz9pc0J1c2luZXNzQ3ljbGU9dHJ1ZSZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gcGF5bG9hZCBwYXlsb2FkIHdoaWNoIG5lZWQgdG8gYmUgdXBkYXRlZFxuICAgKiBAcGFyYW0gaWQgcHJvZ3JhbSBvYmplY3QgaWRcbiAgICogQHJldHVybnNcbiAgICovXG4gIHVwZGF0ZVByb2dyYW0ocGF5bG9hZDogYW55LCBpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXG4gICAgICAuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpXG4gICAgICAuc2V0KCd4LWJ1c2luZXNzLWN5Y2xlJywgSlNPTi5zdHJpbmdpZnkodGhpcy5nZXRCdXNpbmVzc0N5Y2xlKCkpKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KFxuICAgICAgdGhpcy5lbnYucHJvZ3JhbUVuZHBvaW50ICtcbiAgICAgICAgJy9jYXRlZ29yeS9lZGl0Q2F0ZWdvcnkvJyArXG4gICAgICAgIGlkICtcbiAgICAgICAgJz9pc0J1c2luZXNzQ3ljbGU9dHJ1ZSZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJnNlcnZpY2VUeXBlPTEnLFxuICAgICAgcGF5bG9hZCxcbiAgICAgIHsgaGVhZGVycyB9XG4gICAgKTtcbiAgfVxuXG4gIGdldE1lbWViZXJCeUlkcyhpZHM6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8YW55W10+KFxuICAgICAgICB0aGlzLmVudi5vcmdhbml6YXRpb25Qb3N0ICtcbiAgICAgICAgICAnbWVtYmVyRGV0YWlsc2J5SWRzJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgICB7IG1lbWJlcl9pZDogaWRzIH0sXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBnZXRNZW1lYmVyQnlVSWRzKGlkczogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgK1xuICAgICAgICAgICdtZW1iZXJEZXRhaWxzYnlJZHNTYWlscyZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgICAgeyBtZW1iZXJfaWQ6IGlkcyB9LFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0TWVtYmVyQnlHcm91cHMoaWRzOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYub3JnYW5pemF0aW9uUG9zdCArXG4gICAgICAgICAgJ2dyb3VwRGV0YWlsc2J5SWRzJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgICB7IGdyb3VwX2lkczogaWRzIH0sXG4gICAgICAgIHsgaGVhZGVycyB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cbn0iXX0=
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXNlcnZpY2VzL3Byb2dyYW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBTzdCLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQ1UsSUFBZ0IsRUFDaEIsV0FBd0IsRUFDcEIsTUFBdUI7UUFGM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUdoQyxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLGVBQWU7WUFDdkIsaURBQWlELEVBQ25ELEVBQUUsT0FBTyxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxPQUFZLEVBQUUsSUFBUztRQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FDbkMsT0FBTyxFQUNQLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FDekMsQ0FBQztRQUNGLE1BQU0sUUFBUSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLEdBQUcsbUJBQW1CLEVBQzVELE9BQU8sRUFDUCxFQUFFLE9BQU8sRUFBRSxDQUNaLENBQUM7SUFDSixDQUFDO0lBRUQsMkJBQTJCO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FDRixJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWE7WUFDckIsb0RBQW9ELEVBQ3REO1lBQ0UsT0FBTztTQUNSLENBQ0Y7YUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVLEVBQUUsSUFBVSxFQUFFLFNBQWU7UUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLEVBQUU7WUFDUixXQUFXLElBQUksU0FBUyxJQUFJLEVBQUUsQ0FBQztTQUNoQztRQUNELElBQUksU0FBUyxFQUFFO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUNILElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO1lBQ3ZCLHlEQUF5RDtZQUN6RCxXQUFXLEVBQ2IsRUFBRSxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUN6QixFQUFFLE9BQU8sRUFBRSxDQUNaO2FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FDSCxJQUFJLENBQUMsR0FBRyxFQUFFLGdCQUFnQjtZQUN4Qix5REFBeUQsRUFDM0QsRUFBRSxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUN6QixFQUFFLE9BQU8sRUFBRSxDQUNaO2FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFVO1FBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FDSCxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtZQUN2QiwwREFBMEQsRUFDNUQsRUFBRSxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUN6QixFQUFFLE9BQU8sRUFBRSxDQUNaO2FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxlQUFlO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixtR0FBbUc7UUFDbkcsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FDRixJQUFJLENBQUMsR0FBRyxFQUFFLGVBQWU7WUFDdkIsc0VBQXNFLEVBQ3hFLEVBQUUsT0FBTyxFQUFFLENBQ1o7YUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUNELHFCQUFxQjtRQUNuQixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FDbkMsT0FBTyxFQUNQLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FDekMsQ0FBQztRQUNGLG9GQUFvRjtRQUNwRixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUNGLElBQUksQ0FBQyxHQUFHLEVBQUUsZUFBZTtZQUN2QiwrREFBK0QsRUFDakUsRUFBRSxPQUFPLEVBQUUsQ0FDWjthQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDOUIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLENBQzlDLENBQUM7UUFDRixPQUFPO1lBQ0wsY0FBYyxFQUFFLGFBQWE7Z0JBQzNCLENBQUMsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVU7b0JBQ3hDLEdBQUc7b0JBQ0gsYUFBYSxFQUFFLGFBQWEsRUFBRSxRQUFRO2dCQUN4QyxDQUFDLENBQUMsRUFBRTtZQUNOLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JFLGtCQUFrQixFQUFFLGFBQWE7Z0JBQy9CLENBQUMsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLGtCQUFrQjtnQkFDbEQsQ0FBQyxDQUFDLEVBQUU7U0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFZO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFO2FBQzlCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2FBQ3RELEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsR0FBRywrQ0FBK0MsRUFDMUUsT0FBTyxFQUNQLEVBQUUsT0FBTyxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBYSxFQUFFLFFBQWE7UUFDdkMsTUFBTSxJQUFJLEdBQUcsUUFBUSxFQUFFLEtBQUssQ0FBQztRQUM3QixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7UUFDekMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxDQUFBO1FBQ3hFLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3ZDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLFFBQVE7WUFDNUMsYUFBYSxFQUFFLElBQUksRUFBRSxpQkFBaUIsSUFBSSxFQUFFO1lBQzVDLFFBQVEsRUFBRTtnQkFDUixRQUFRLEVBQUU7b0JBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFO29CQUN6RCxVQUFVLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRTtpQkFDbkU7Z0JBQ0QsVUFBVSxFQUFFO29CQUNWLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRTtvQkFDeEQsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUU7aUJBRW5FO2FBQ0Y7WUFDRCxjQUFjLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDdkUsQ0FBQTtJQUNILENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxVQUFlO1FBQ2hDLElBQUksVUFBVSxJQUFJLFVBQVUsRUFBRSxNQUFNLEVBQUU7WUFDcEMsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pDLE9BQU87b0JBQ0wsR0FBRyxHQUFHO29CQUNOLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztpQkFDbEUsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPO2dCQUNMO29CQUNFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRztvQkFDZixjQUFjLEVBQUUsS0FBSyxFQUFFLElBQUk7b0JBQzNCLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSTtvQkFDakIsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRO3dCQUN2QixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQzt3QkFDdkMsQ0FBQyxDQUFDLEVBQUU7b0JBQ04sU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTO3dCQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQzt3QkFDeEMsQ0FBQyxDQUFDLEVBQUU7aUJBQ1A7YUFDRixDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVMsRUFBRSxHQUFXO1FBQzdCLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDaEUsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjthQUFNO1lBQ0wsT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLEVBQU87UUFDaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUU7YUFDOUIsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUM7YUFDdEQsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLElBQUksQ0FBQyxHQUFHLEVBQUUsZUFBZTtZQUN2QixHQUFHO1lBQ0gsRUFBRTtZQUNGLGlEQUFpRCxFQUNuRCxFQUFFLE9BQU8sRUFBRSxDQUNaLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUMsT0FBWSxFQUFFLEVBQVU7UUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUU7YUFDOUIsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUM7YUFDdEQsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZTtZQUN0Qix5QkFBeUI7WUFDekIsRUFBRTtZQUNGLCtEQUErRCxFQUNqRSxPQUFPLEVBQ1AsRUFBRSxPQUFPLEVBQUUsQ0FDWixDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFRO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUNuQyxPQUFPLEVBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FDSCxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQjtZQUN2Qiw4Q0FBOEMsRUFDaEQsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEVBQ2xCLEVBQUUsT0FBTyxFQUFFLENBQ1o7YUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQVE7UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQ25DLE9BQU8sRUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3pDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUNILElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO1lBQ3ZCLG1EQUFtRCxFQUNyRCxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFDbEIsRUFBRSxPQUFPLEVBQUUsQ0FDWjthQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBUTtRQUN4QixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FDbkMsT0FBTyxFQUNQLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FDekMsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDdkIsNkNBQTZDLEVBQy9DLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUNsQixFQUFFLE9BQU8sRUFBRSxDQUNaO2FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7K0dBeFRVLGVBQWU7bUhBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmV0cnkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbnMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9ncmFtc1NlcnZpY2Uge1xuICBlbnYhOiBhbnk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9uc1xuICApIHtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XG4gICAgfVxuICB9XG5cbiAgZ2V0Um9sZXMoKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgK1xuICAgICAgICAncm9sZXMvZ2V0UHJvZ3JhbVJvbGVzJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgeyBoZWFkZXJzIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZHMgdGhlIGdpdmVuIGZpbGUgdG8gc2VydmVyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBheWxvYWQgRmlsZSBkYXRhIHRvIGJlIHVwbG9hZGVkXG4gICAqIEBwYXJhbSBwYXRoIHBhdGggUGF0aCBvZiBmaWxlIHRvIGJlIHVwbG9hZGVkXG4gICAqIEByZXR1cm5zIHJlc3BvbnNlIGFmdGVyIHVwbG9hZGluZyBhIGZpbGVcbiAgICovXG4gIHVwbG9hZEZpbGVzKHBheWxvYWQ6IGFueSwgcGF0aDogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICBjb25zdCBPUkdfUEFUSCA9IGBvLyR7cGF0aH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgIHRoaXMuZW52LmZpbGVVcGxvYWRFbmRQb2ludCArIE9SR19QQVRIICsgJyZuZ3N3LWJ5cGFzcz10cnVlJyxcbiAgICAgIHBheWxvYWQsXG4gICAgICB7IGhlYWRlcnMgfVxuICAgICk7XG4gIH1cblxuICBnZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnY/LmNvbXBsaWFuY2VHZXQgK1xuICAgICAgICAgICdyZXNwb25zaWJpbGl0eUNlbnRlclRyZWUmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICAucGlwZShyZXRyeSgyKSk7XG4gIH1cblxuICBmZXRjaFJvbGVVc2Vycyhyb2xlczogYW55LCBwYWdlPzogYW55LCBzZWFyY2hLZXk/OiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIGxldCBxdWVyeVN0cmluZyA9ICcnO1xuICAgIGlmIChwYWdlKSB7XG4gICAgICBxdWVyeVN0cmluZyArPSBgJnBhZ2U9JHtwYWdlfWA7XG4gICAgfVxuICAgIGlmIChzZWFyY2hLZXkpIHtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8YW55W10+KFxuICAgICAgICB0aGlzLmVudi5vcmdhbml6YXRpb25Qb3N0ICtcbiAgICAgICAgICAncm9sZXMvZ2V0VXNlckRldGFpbHMmbGltaXQ9MzAmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScgK1xuICAgICAgICAgIHF1ZXJ5U3RyaW5nLFxuICAgICAgICB7IHJvbGVfaWRzOiByb2xlcyA/PyBbXSB9LFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZmV0Y2hBbGxSb2xlVXNlcnMocm9sZXM6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8YW55W10+KFxuICAgICAgICB0aGlzLmVudj8ub3JnYW5pemF0aW9uUG9zdCArXG4gICAgICAgICAgJ3JvbGVzL2dldFVzZXJEZXRhaWxzJnR5cGU9YWxsJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgICB7IHJvbGVfaWRzOiByb2xlcyA/PyBbXSB9LFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZmV0Y2hBbGxSb2xlR3JvdXBzKHJvbGVzOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYub3JnYW5pemF0aW9uUG9zdCArXG4gICAgICAgICAgJ3JvbGVzL2dldEdyb3VwRGV0YWlscyZ0eXBlPWFsbCZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgICAgeyByb2xlX2lkczogcm9sZXMgPz8gW10gfSxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuICBmZXRjaEFsbE9yZ1VzZXIoKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICAvL2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9vcmdhbml6YXRpb24vP21vZGU9b3JnYW5pc2F0aW9uVXNlcnNMaXN0JnBhZ2luYXRpb25UeXBlPXNtYWxsJmFkbWluPTFcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnY/Lm9yZ2FuaXphdGlvbkdldCArXG4gICAgICAgICAgJ29yZ2FuaXNhdGlvblVzZXJzTGlzdCZwYWdpbmF0aW9uVHlwZT1zbWFsbCZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuICBmZXRjaENvbXBsaWFuY2VHcm91cHMoKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICAvL2h0dHBzOi8vZGV2YXBpLnYtY29tcGx5LmNvbS9vcmdhbml6YXRpb24vP21vZGU9Z3JvdXBzTGlzdCZzdGF0dXM9MSZ0eXBlPWNvbXBsaWFuY2VcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnY/Lm9yZ2FuaXphdGlvbkdldCArXG4gICAgICAgICAgJ2dyb3Vwc0xpc3Qmc3RhdHVzPTEmdHlwZT1jb21wbGlhbmNlJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0QnVzaW5lc3NDeWNsZSgpIHtcbiAgICBjb25zdCBidXNpbmVzc0N5Y2xlID0gSlNPTi5wYXJzZShcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0N5Y2xlJykgPz8gJ3t9J1xuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbGVjdGVkX2N5Y2xlOiBidXNpbmVzc0N5Y2xlXG4gICAgICAgID8gYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uc3RhcnRfZGF0ZSArXG4gICAgICAgICAgJy0nICtcbiAgICAgICAgICBidXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5lbmRfZGF0ZVxuICAgICAgICA6ICcnLFxuICAgICAgc3RhcnRfZGF0ZTogYnVzaW5lc3NDeWNsZSA/IGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LnN0YXJ0X2RhdGUgOiAnJyxcbiAgICAgIGVuZF9kYXRlOiBidXNpbmVzc0N5Y2xlID8gYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uZW5kX2RhdGUgOiAnJyxcbiAgICAgIHNlbGVjdGVkX2N5Y2xlX2FycjogYnVzaW5lc3NDeWNsZVxuICAgICAgICA/IGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LnNlbGVjdGVkX2N5Y2xlX2FyclxuICAgICAgICA6IFtdLFxuICAgIH07XG4gIH1cblxuICBzYXZlUHJvZ3JhbShwYXlsb2FkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKClcbiAgICAgIC5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSlcbiAgICAgIC5zZXQoJ3gtYnVzaW5lc3MtY3ljbGUnLCBKU09OLnN0cmluZ2lmeSh0aGlzLmdldEJ1c2luZXNzQ3ljbGUoKSkpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnlbXT4oXG4gICAgICB0aGlzLmVudi5wcm9ncmFtRW5kcG9pbnQgKyAnL2NhdGVnb3J5Lz9pc0J1c2luZXNzQ3ljbGU9dHJ1ZSZzZXJ2aWNlVHlwZT0xJyxcbiAgICAgIHBheWxvYWQsXG4gICAgICB7IGhlYWRlcnMgfVxuICAgICk7XG4gIH1cblxuICBidWlsZFBheWxvYWQoZm9ybURhdGE6IGFueSwgaW5zdGFuY2U6IGFueSkge1xuICAgIGNvbnN0IGZvcm0gPSBmb3JtRGF0YT8udmFsdWU7XG4gICAgY29uc3Qgb3B0aW9uID0gaW5zdGFuY2UuYWRkaXRpb25hbE9wdGlvbjtcbiAgICBjb25zdCB0eXBlID0gW1wib3RoZXJzXCIsIFwicmVndWxhdGlvbnNcIiwgXCJzdGFuZGFyZHNcIiwgXCJpbnRlcm5hbF9jb250cm9sc1wiXVxuICAgIHJldHVybiB7XG4gICAgICBcIm5hbWVcIjogZm9ybT8ucHJvZ3JhbV9uYW1lLnRyaW0oKSA/PyAnJyxcbiAgICAgIFwidHlwZVwiOiB0eXBlW2Zvcm0/LnByb2dyYW1fdHlwZV0gPz8gXCJvdGhlcnNcIixcbiAgICAgIFwiZGVzY3JpcHRpb25cIjogZm9ybT8ucHJvZ3JhbV9vYmplY3RpdmUgPz8gXCJcIixcbiAgICAgIFwib3duZXJzXCI6IHtcbiAgICAgICAgXCJhZG1pbnNcIjogeyAgLy8gT3duZXJzXG4gICAgICAgICAgXCJ1c2Vyc1wiOiB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fb3duZXJzLCAndWlkJykgPz8gW10sXG4gICAgICAgICAgdXNlckdyb3Vwczp0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fb3duZXJzX2dyb3VwLCAndWdpZCcpID8/IFtdXG4gICAgICAgIH0sXG4gICAgICAgIFwibWFuYWdlcnNcIjogeyAgLy8gQ29sbGFib3JhdG9yc1xuICAgICAgICAgIFwidXNlcnNcIjogdGhpcy5saXN0VG9JZChmb3JtPy5jb2xsYWJvcmF0b3JzLCAndWlkJykgPz8gW10sXG4gICAgICAgICAgdXNlckdyb3VwczogdGhpcy5saXN0VG9JZChmb3JtPy5jb2xsYWJvcmF0b3JzX2dyb3VwLCAndWdpZCcpID8/IFtdXG4gICAgICAgIFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgXCJjdXN0b21GaWVsZHNcIjogb3B0aW9uPy5DVVNUT01fRklFTERTID8gZm9ybT8uY3VzdG9tX2ZpZWxkcyA/PyBbXSA6IFtdLFxuICAgIH1cbiAgfVxuICBnZW5lcmF0ZUFzc2Vzc21lbnQoYXNzZXNzbWVudDogYW55KSB7XG4gICAgaWYgKGFzc2Vzc21lbnQgJiYgYXNzZXNzbWVudD8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYXNzZXNzbWVudC5tYXAoKGNhdDogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY2F0LFxuICAgICAgICAgIGFzc2Vzc21lbnRJZHM6IGNhdC5hc3Nlc3NtZW50SWRzPy5tYXAoKGFzc2VzczogYW55KSA9PiBhc3Nlc3MuaWQpLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbiAgZ2V0RnJhbWV3b3JrKGlucHV0OiBhbnkpIHtcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICBfaWQ6IGlucHV0Py5faWQsXG4gICAgICAgICAgZnJhbWV3b3JrX25hbWU6IGlucHV0Py5uYW1lLFxuICAgICAgICAgIHR5cGU6IGlucHV0Py50eXBlLFxuICAgICAgICAgIGluX3Njb3BlOiBpbnB1dD8uaW5fc2NvcGVcbiAgICAgICAgICAgID8gdGhpcy5saXN0VG9JZChpbnB1dD8uaW5fc2NvcGUsICdfaWQnKVxuICAgICAgICAgICAgOiBbXSxcbiAgICAgICAgICBvdXRfc2NvcGU6IGlucHV0Py5vdXRfc2NvcGVcbiAgICAgICAgICAgID8gdGhpcy5saXN0VG9JZChpbnB1dD8ub3V0X3Njb3BlLCAnX2lkJylcbiAgICAgICAgICAgIDogW10sXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgbGlzdFRvSWQobGlzdDogYW55LCBrZXk6IHN0cmluZykge1xuICAgIGlmIChsaXN0ICYmIGxpc3Q/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGxpc3QubWFwKChlbGU6IGFueSkgPT4gZWxlW2tleV0pLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSlcbiAgICAgIC5tYXAoKGVsZTogYW55KSA9PiBlbGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBpZCA6IHByb2dyYW0gb2JqZWN0IGlkXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRQcm9ncmFtKGlkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKClcbiAgICAgIC5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSlcbiAgICAgIC5zZXQoJ3gtYnVzaW5lc3MtY3ljbGUnLCBKU09OLnN0cmluZ2lmeSh0aGlzLmdldEJ1c2luZXNzQ3ljbGUoKSkpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPihcbiAgICAgIHRoaXMuZW52Py5wcm9ncmFtRW5kcG9pbnQgK1xuICAgICAgICAnLycgK1xuICAgICAgICBpZCArXG4gICAgICAgICc/aXNCdXNpbmVzc0N5Y2xlPXRydWUmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXG4gICAgICB7IGhlYWRlcnMgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHBheWxvYWQgcGF5bG9hZCB3aGljaCBuZWVkIHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIGlkIHByb2dyYW0gb2JqZWN0IGlkXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICB1cGRhdGVQcm9ncmFtKHBheWxvYWQ6IGFueSwgaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKVxuICAgICAgLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKVxuICAgICAgLnNldCgneC1idXNpbmVzcy1jeWNsZScsIEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0QnVzaW5lc3NDeWNsZSgpKSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueVtdPihcbiAgICAgIHRoaXMuZW52LnByb2dyYW1FbmRwb2ludCArXG4gICAgICAgICcvY2F0ZWdvcnkvZWRpdENhdGVnb3J5LycgK1xuICAgICAgICBpZCArXG4gICAgICAgICc/aXNCdXNpbmVzc0N5Y2xlPXRydWUmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZSZzZXJ2aWNlVHlwZT0xJyxcbiAgICAgIHBheWxvYWQsXG4gICAgICB7IGhlYWRlcnMgfVxuICAgICk7XG4gIH1cblxuICBnZXRNZW1lYmVyQnlJZHMoaWRzOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PGFueVtdPihcbiAgICAgICAgdGhpcy5lbnYub3JnYW5pemF0aW9uUG9zdCArXG4gICAgICAgICAgJ21lbWJlckRldGFpbHNieUlkcyZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgICAgeyBtZW1iZXJfaWQ6IGlkcyB9LFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG5cbiAgZ2V0TWVtZWJlckJ5VUlkcyhpZHM6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8YW55W10+KFxuICAgICAgICB0aGlzLmVudi5vcmdhbml6YXRpb25Qb3N0ICtcbiAgICAgICAgICAnbWVtYmVyRGV0YWlsc2J5SWRzU2FpbHMmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsXG4gICAgICAgIHsgbWVtYmVyX2lkOiBpZHMgfSxcbiAgICAgICAgeyBoZWFkZXJzIH1cbiAgICAgIClcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcbiAgfVxuXG4gIGdldE1lbWJlckJ5R3JvdXBzKGlkczogYW55KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdDxhbnlbXT4oXG4gICAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgK1xuICAgICAgICAgICdncm91cERldGFpbHNieUlkcyZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyxcbiAgICAgICAgeyBncm91cF9pZHM6IGlkcyB9LFxuICAgICAgICB7IGhlYWRlcnMgfVxuICAgICAgKVxuICAgICAgLnBpcGUocmV0cnkoMikpO1xuICB9XG59Il19
|