@tilde-nlp/ngx-translate 4.0.28 → 4.0.29
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/modules/tld-web/tld-translate-web/tld-translate-web.component.mjs +6 -1
- package/fesm2022/tilde-nlp-ngx-translate.mjs +5 -0
- package/fesm2022/tilde-nlp-ngx-translate.mjs.map +1 -1
- package/lib/modules/tld-web/tld-translate-web/tld-translate-web.component.d.ts +1 -0
- package/package.json +1 -1
- package/src/assets/webtranslate/page-translate-widget.js +10 -0
- package/tilde-nlp-ngx-translate-4.0.29.tgz +0 -0
- package/tilde-nlp-ngx-translate-4.0.28.tgz +0 -0
|
@@ -72,6 +72,7 @@ export class TldTranslateWebsiteComponent {
|
|
|
72
72
|
translatePagePath; // path to WebTranslationProxy
|
|
73
73
|
clientId;
|
|
74
74
|
appId;
|
|
75
|
+
xApiKey;
|
|
75
76
|
translateServiceUrl;
|
|
76
77
|
switcherOptions;
|
|
77
78
|
onError = new EventEmitter();
|
|
@@ -375,6 +376,7 @@ export class TldTranslateWebsiteComponent {
|
|
|
375
376
|
this.translatePagePath = webtranslateConfig.translatePagePath;
|
|
376
377
|
this.appId = coreConfig.appId;
|
|
377
378
|
this.clientId = coreConfig.clientId;
|
|
379
|
+
this.xApiKey = this.configService.apiV2Config.xApiKey;
|
|
378
380
|
if (this.apiVersion == TranslationApiVersion.V1) {
|
|
379
381
|
this.translateServiceUrl = this.configService.coreConfig.translationServiceUrl;
|
|
380
382
|
}
|
|
@@ -413,6 +415,9 @@ export class TldTranslateWebsiteComponent {
|
|
|
413
415
|
// point this to your own css file
|
|
414
416
|
cssLocation: './assets/webtranslate/widget.css',
|
|
415
417
|
|
|
418
|
+
// x-api-key for authorization
|
|
419
|
+
xApiKey: "${this.xApiKey}",
|
|
420
|
+
|
|
416
421
|
// client id for authorization
|
|
417
422
|
clientId: "${this.clientId}",
|
|
418
423
|
|
|
@@ -535,4 +540,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
535
540
|
}], onError: [{
|
|
536
541
|
type: Output
|
|
537
542
|
}] } });
|
|
538
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS13ZWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXdlYi90bGQtdHJhbnNsYXRlLXdlYi90bGQtdHJhbnNsYXRlLXdlYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtd2ViL3RsZC10cmFuc2xhdGUtd2ViL3RsZC10cmFuc2xhdGUtd2ViLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXBJLE9BQU8sRUFBaUQsdUJBQXVCLEVBQTJDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEosT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFMUUsT0FBTyxFQUF3QixjQUFjLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl0RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJekUsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENB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LHVCQUF1QixjQUdyQjt3QkFDVixPQUFPLENBQUMsb0JBQW9CLEVBQUU7NEJBRTVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ25CLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQ0FDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDYixDQUFDOzRCQUVGLFVBQVUsQ0FBQyxRQUFRLEVBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzt5QkFDdEMsQ0FBQztxQkFDSDs7MEJBZ0JFLE1BQU07MkJBQUMsNkJBQTZCOzRDQWJsQixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBZVYsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFWSxhQUFhO3NCQUE5QixTQUFTO3VCQUFDLEtBQUs7Z0JBdUJOLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZlRGF0YSwgQWxlcnRTZXJ2aWNlLCBOb3RpZmljYXRpb25NZXNzYWdlLCBOb3RpZmljYXRpb25NZXNzYWdlVHlwZSwgU3RhdHVzRGlzcGxheUNvbmZpZywgVGVybWlub2xvZ3lTZXJ2aWNlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vaW5qZWN0aW9uLXRva2Vucyc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUJ1dHRvblNlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL2NvbXBvbmVudHMvdHJhbnNsYXRlLWJ1dHRvbi90bGQtdHJhbnNsYXRlLWJ1dHRvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZU1lc3NhZ2UsIFRsZE1lc3NhZ2VUeXBlLCBUcmFuc2xhdGlvbkFwaVZlcnNpb24gfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL21vZGVscyc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZVN5c3RlbU1hbmFnZW1lbnRTZXJ2aWNlLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IElTd2l0Y2hlclRyYW5zbGF0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL3RsZC10b29sdGlwL21vZGVscy9zd2l0Y2hlci1vcHRpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlV2ViU2VydmljZSB9IGZyb20gJy4uL3RsZC10cmFuc2xhdGUtd2ViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhdmFpbGFibGVMYW5ndWFnZXMgfSBmcm9tICcuLy4uLy4uLy4uL2kxOG4vYXZhaWxhYmxlLWxhbmd1YWdlcyc7XHJcblxyXG5cclxuZGVjbGFyZSB2YXIgd2luZG93OiBhbnk7XHJcbndpbmRvdy4kID0gd2luZG93LmpRdWVyeSA9ICQ7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RsZC10cmFuc2xhdGUtd2Vic2l0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RsZC10cmFuc2xhdGUtd2ViLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90bGQtdHJhbnNsYXRlLXdlYi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ29wZW5DbG9zZUFuaW1hdGlvbicsIFtcclxuXHJcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICBzdHlsZSh7IGhlaWdodDogMCB9KSxcclxuICAgICAgICBhbmltYXRlKDUwMClcclxuICAgICAgXSksXHJcblxyXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLFxyXG4gICAgICAgIGFuaW1hdGUoNTAwLCBzdHlsZSh7IGhlaWdodDogMCB9KSkpXHJcbiAgICBdKVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZVdlYnNpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnaWZyYW1lJykgaWZyYW1lOiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVCdXR0b25TZXJ2aWNlOiBUbGRUcmFuc2xhdGVCdXR0b25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydHM6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU3lzdGVtOiBUbGRUcmFuc2xhdGVTeXN0ZW1NYW5hZ2VtZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVybWlub2xvZ3lTZXJ2aWNlOiBUZXJtaW5vbG9neVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRsZFRyYW5zbGF0ZVdlYlNlcnZpY2U6IFRsZFRyYW5zbGF0ZVdlYlNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBASW5qZWN0KFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGFwaVZlcnNpb246IFRyYW5zbGF0aW9uQXBpVmVyc2lvblxyXG4gICkgeyB9XHJcbiAgQElucHV0KCkgcHJvZHVjdCA9ICcnO1xyXG4gIEBJbnB1dCgpIGNvbXBhbnkgPSAnJztcclxuXHJcbiAgQFZpZXdDaGlsZCgndXJsJykgdXJsSW5wdXRGaWVsZDogRWxlbWVudFJlZjtcclxuXHJcbiAgc2V0dGluZ1N5c3RlbUxpc3RGb3JGaXJzdFRpbWU6IGJvb2xlYW47XHJcbiAgdXJsVG9UcmFuc2xhdGUgPSAnJzsgLy8gdHJhbnNsYXRlV2ViX1VybFxyXG4gIHNob3dDYW5jZWwgPSBmYWxzZTtcclxuICBzaG93UmVzdG9yZSA9IGZhbHNlO1xyXG4gIHNob3dUcmFuc2xhdGVCdG4gPSB0cnVlO1xyXG4gIHRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgZGlzYWJsZUJ1dHRvbiA9IGZhbHNlOyAvLyBhY3Rpb25CdXR0b25EaXNhYmxlZFxyXG5cclxuICAvLyBwYXJhbXMgZnJvbSBjb25maWcgc2VydmljZS5cclxuICBsb2dvTG9jYXRpb246IHN0cmluZztcclxuICBkZWJ1ZzogYm9vbGVhbjtcclxuICB3ZWJMYW5nQXV0b2RldGVjdDogYm9vbGVhbjsgLy8gVE9ETyBjaGVjayBpZiByZWFsbHkgbmVlZGVkIC8vIGFmdGVyIHBhZ2UgaXMgbG9hZGVkIGF1dG8gZGV0ZWN0IGxhbmd1YWdlIGFuZCBjaGFuZ2UgYWN0aXZlIHN5c3RlbVxyXG4gIGFsbG93U3VnZ2VzdGlvbnM6IGJvb2xlYW47XHJcbiAgaGlkZVBvcHVwOiBib29sZWFuO1xyXG4gIHRyYW5zbGF0ZVBhZ2VQYXRoOiBzdHJpbmc7IC8vICBwYXRoIHRvIFdlYlRyYW5zbGF0aW9uUHJveHlcclxuICBjbGllbnRJZDogc3RyaW5nO1xyXG4gIGFwcElkOiBzdHJpbmc7XHJcbiAgdHJhbnNsYXRlU2VydmljZVVybDogc3RyaW5nO1xyXG5cclxuICBzd2l0Y2hlck9wdGlvbnM6IElTd2l0Y2hlclRyYW5zbGF0aW9uT3B0aW9ucztcclxuXHJcbiAgQE91dHB1dCgpIG9uRXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGFjdGl2ZVN5c3RlbU9iajogQWN0aXZlRGF0YTtcclxuICBtZXNzYWdlczogTm90aWZpY2F0aW9uTWVzc2FnZVtdID0gW107XHJcblxyXG4gIC8vUHJvZ3Jlc3MgYmFyXHJcbiAgbW9kZTogUHJvZ3Jlc3NCYXJNb2RlID0gJ2RldGVybWluYXRlJztcclxuICBwcm9ncmVzc1ZhbHVlID0gMDtcclxuICBzaG93UHJvZ3Jlc3MgPSBmYWxzZTtcclxuICBzaG93RW1wdHlWaWV3ID0gdHJ1ZTtcclxuXHJcbiAgZW1wdHlWaWV3Q29uZmlnOiBTdGF0dXNEaXNwbGF5Q29uZmlnID0ge1xyXG4gICAgdGl0bGU6ICdXRUJUUkFOU0xBVEUuTk9fUkVDT1JEUy5USVRMRScsXHJcbiAgICBkZXNjcmlwdGlvbjogJ1dFQlRSQU5TTEFURS5OT19SRUNPUkRTLkRFU0NSSVBUSU9OJyxcclxuICAgIGRlc2NyaXB0aW9uUGFyYW1zOiB7IGhlbHBVcmw6ICcnIH0sXHJcbiAgICBpY29uOiAnbWFuYWdlX3NlYXJjaCcsXHJcbiAgICBlbmFibGVkOiB0cnVlXHJcbiAgfVxyXG5cclxuICBub1N5c3RlbXNFcnJvcjogSVRsZFRyYW5zbGF0ZU1lc3NhZ2UgPSB7IHRleHQ6ICdUTERfVFJBTlNMQVRFLkVSUk9SX05PX1NZU1RFTVNfTE9BREVEJywgdHlwZTogVGxkTWVzc2FnZVR5cGUuRVJST1IgfTtcclxuXHJcbiAgZ2V0IGFjdGlvbkJ1dHRvbkRpc2FibGVkKCkgeyByZXR1cm4gdGhpcy5kaXNhYmxlQnV0dG9uOyB9XHJcblxyXG5cclxuICBnZXQgaGlkZUxhbmdNZW51TGFiZWxzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZT8uY29yZUNvbmZpZy5oaWRlTGFuZ01lbnVMYWJlbHM7XHJcbiAgfVxyXG5cclxuICBnZXQgbWF4RGlzcGxheWVkTGFuZ3VhZ2VzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcubWF4RGlzcGxheWVkTGFuZ3VhZ2VzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQ29sbGVjdGlvbnNBY3RpdmF0ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlPy50ZXJtQ29uZmlnPy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5zaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXQgc2FuZGJveCgpIHsgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS53ZWJ0cmFuc2xhdGVDb25maWcuc2FuZGJveDsgfVxyXG5cclxuICByZWFkb25seSB1c2VQYXJlbnRXaWR0aCA9IHRydWU7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNoYW5nZUF1dGgoaXNBdXRoOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5pc0F1dGggPSBpc0F1dGg7XHJcbiAgICB0aGlzLmluaXRpYWxpemVXaWRnZXQoKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVXaWRnZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRsZFN5c3RlbS5pbml0KHRoaXMudGxkU3lzdGVtLmdldExhc3RVc2VkU3lzdGVtKCkgPz8gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcuZGVmYXVsdFN5c3RlbUlkKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLmRlYnVnKSB7XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGF2YWlsYWJsZUxhbmd1YWdlcykge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLnNldFRyYW5zbGF0aW9uKGtleSwgYXZhaWxhYmxlTGFuZ3VhZ2VzW2tleV0sIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLmlzQXV0aCA9IHRydWU7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShcImVuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5pdEZyb21Db25maWcoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVdpZGdldCgpO1xyXG5cclxuICAgIHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZURhdGEoKS5waXBlKFxyXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHZhbDogQWN0aXZlRGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlU3lzdGVtT2JqID0gdmFsO1xyXG4gICAgICAgIGlmICghdmFsKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3dpdGNoZXJPcHRpb25zID0ge1xyXG4gICAgICAgICAgZG9tYWluczogdmFsLmRvbWFpbnMsXHJcbiAgICAgICAgICBzb3VyY2U6IHsgY29kZTogdmFsLnNvdXJjZUxhbmcubGFuZywgc3lzdGVtSWQ6IHZhbC5zeXN0ZW1JZCB9LFxyXG4gICAgICAgICAgc291cmNlTGFuZ3VhZ2VMaXN0OiB2YWwuc291cmNlTGFuZ0xpc3QsXHJcbiAgICAgICAgICBzeXN0ZW1JZDogdmFsLnN5c3RlbUlkLFxyXG4gICAgICAgICAgc3dhcEFjdGl2ZTogdmFsLnN3YXBMYW5nQWN0aXZlLFxyXG4gICAgICAgICAgdGFyZ2V0OiB7IGNvZGU6IHZhbC50YXJnZXRMYW5nLmxhbmcsIHN5c3RlbUlkOiB2YWwuc3lzdGVtSWQgfSxcclxuICAgICAgICAgIHRhcmdldExhbmd1YWdlTGlzdDogdmFsLnRhcmdldExhbmdMaXN0LFxyXG4gICAgICAgICAgdmVuZG9yczogdmFsLnZlbmRvcnNcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuXHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGVCdXR0b25TZXJ2aWNlLmdldEFjdGlvbkNsaWNrKCkucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZUJ1dHRvbkNsaWNrKCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWxlcnRzLmdldE1lc3NhZ2VzKCkucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBOb3RpZmljYXRpb25NZXNzYWdlKSA9PiB7XHJcbiAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gTm90aWZpY2F0aW9uTWVzc2FnZVR5cGUuRVJST1IpIHtcclxuICAgICAgICAgIHRoaXMub25FcnJvci5lbWl0KG1lc3NhZ2UuZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBwdXNoaW5nIG9ubHkgXCJvbmUgb2ZcIiBtZXNzYWdlIGluIGFycmF5LCBzbyBzY3JlZW4gaXMgbm90IHNwYW1tZWQgd2l0aCBtZXNzYWdlc1xyXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTWVzc2FnZSA9IHRoaXMubWVzc2FnZXMuZmluZChtc2cgPT4gbXNnLmJvZHkgPT09IG1lc3NhZ2UuYm9keSAmJiBtc2cudHlwZSA9PT0gbWVzc2FnZS50eXBlICYmIG1zZy50aXRsZSA9PT0gbWVzc2FnZS50aXRsZSk7XHJcbiAgICAgICAgaWYgKCFleGlzdGluZ01lc3NhZ2UpIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZXMucHVzaChtZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlLmdldCgnQVBQX05BTUUnKS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHRleHQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLmFwcE5hbWUgPSB0ZXh0O1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB3aW5kb3cub25tZXNzYWdlID0gdGhpcy5yZWNlaXZlTWVzc2FnZS5iaW5kKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnRsZFRyYW5zbGF0ZVdlYlNlcnZpY2Uud3RTY3JpcHRzQWRkZWQpIHtcclxuICAgICAgdGhpcy5hZGRTY3JpcHQoJy4vYXNzZXRzL3dlYnRyYW5zbGF0ZS90cmFuc2xhdGUtd2Vic2l0ZS5qcycpO1xyXG4gICAgICB0aGlzLmFkZENvbmZpZ3VyYXRpb25TY3JpcCgpO1xyXG4gICAgICB0aGlzLmFkZFNjcmlwdCgnLi9hc3NldHMvd2VidHJhbnNsYXRlL3BhZ2UtdHJhbnNsYXRlLXdpZGdldC5qcycpO1xyXG4gICAgICB0aGlzLnRsZFRyYW5zbGF0ZVdlYlNlcnZpY2Uud3RTY3JpcHRzQWRkZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgd2luZG93Lm9ubWVzc2FnZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dChudWxsKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVjZWl2ZU1lc3NhZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgLy8gVE9ETyBhZGQgY29ycmVjdCBvcmlnaW5cclxuICAgIC8vIGlmIChldmVudC5vcmlnaW4gIT09IFwiXCIpXHJcbiAgICAvLyByZXR1cm47XHJcblxyXG4gICAgaWYgKHRoaXMuZGVidWcpIHtcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgY29uc29sZS5pbmZvKCdNZXNzYWdlIHJlY2VpdmVkIGZyb20gaWZyYW1lOicgKyBKU09OLnN0cmluZ2lmeShldmVudC5kYXRhKSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmIChldmVudC5kYXRhICYmIGV2ZW50LmRhdGEubWVzc2FnZSkge1xyXG4gICAgICBzd2l0Y2ggKGV2ZW50LmRhdGEubWVzc2FnZSkge1xyXG4gICAgICAgIGNhc2UgJ3JlYWR5JzpcclxuICAgICAgICAgIHRoaXMudGxkU3lzdGVtLnN5c0xpc3QucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBzeXN0ZW1MaXN0VG9JZnJhbWUgPSBbXTtcclxuICAgICAgICAgICAgICBkYXRhLmZvckVhY2goKHN5cywgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgIHN5c3RlbUxpc3RUb0lmcmFtZS5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgaWQ6IHN5cy5pZCxcclxuICAgICAgICAgICAgICAgICAgc291cmNlTGFuZ3VhZ2U6IHN5cy5zb3VyY2VMYW5ndWFnZSxcclxuICAgICAgICAgICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2U6IHN5cy50YXJnZXRMYW5ndWFnZSxcclxuICAgICAgICAgICAgICAgICAgbmFtZTogc3lzLnRpdGxlID8/IHN5cy5pZCxcclxuICAgICAgICAgICAgICAgICAgb3JkZXI6IGluZGV4LFxyXG4gICAgICAgICAgICAgICAgICBkb21haW46IHN5cy5kb21haW5cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAvLyBwdXNoIHN5c3RlbSBsaXN0IHRvIGlmcmFtZVxyXG4gICAgICAgICAgICAgIHRoaXMuc2V0dGluZ1N5c3RlbUxpc3RGb3JGaXJzdFRpbWUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlOiAnc2V0U3lzdGVtTGlzdCcsIHN5c3RlbUxpc3Q6IHN5c3RlbUxpc3RUb0lmcmFtZSB9KTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy51cmwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnbG9hZFVybCcsXHJcbiAgICAgICAgICAgICAgICAgIHVybDogdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy51cmwsXHJcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZUFmdGVyTG9hZDogZmFsc2VcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cmxUb1RyYW5zbGF0ZSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudXJsO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIHRoaXMudXJsSW5wdXRGaWVsZC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAndXJsTG9hZGVkJzpcclxuICAgICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgICAvLyB3ZWJwYWdlIGZpbmlzaGVkIGxvYWRpbmcsIHNldCB0aGUgZnVsbCB1cmwgaW4gYWRkcmVzcyBib3hcclxuICAgICAgICAgIHRoaXMudXJsVG9UcmFuc2xhdGUgPSBldmVudC5kYXRhLnVybDtcclxuICAgICAgICAgIHRoaXMuc2hvd1RyYW5zbGF0ZUJ0biA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVCdXR0b24gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdGFydGVkTG9hZGluZyc6XHJcbiAgICAgICAgICB0aGlzLm1vZGUgPSAnaW5kZXRlcm1pbmF0ZSc7XHJcbiAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNob3dFbXB0eVZpZXcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93UmVzdG9yZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93VHJhbnNsYXRlQnRuID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LCAnc2FuZGJveCcsIHRoaXMuc2FuZGJveCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdG9wcGVkTG9hZGluZyc6XHJcbiAgICAgICAgICBpZiAoIXRoaXMudHJhbnNsYXRpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5zaG93Q2FuY2VsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1Jlc3RvcmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zaG93VHJhbnNsYXRlQnRuID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5kaXNhYmxlQnV0dG9uID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzeXN0ZW1DaGFuZ2VkJzpcclxuICAgICAgICAgIC8vIHNldCBkZWZhdWx0IHN5c3RlbSwgcmlnaHQgYWZ0ZXIgd2ViIHRyYW5zbGF0aW9uIHdpZGdldCBpbiBpZnJhbWUgaXMgbG9hZGVkXHJcbiAgICAgICAgICBpZiAodGhpcy5zZXR0aW5nU3lzdGVtTGlzdEZvckZpcnN0VGltZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmdTeXN0ZW1MaXN0Rm9yRmlyc3RUaW1lID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlOiAnY2hhbmdlU3lzdGVtJywgc3lzdGVtSWQ6IHRoaXMuc3dpdGNoZXJPcHRpb25zLnN5c3RlbUlkIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gaWYgaW5pdGlhdGVkIGJ5IGxhbmd1YWdlIG9mIHRoZSBsb2FkZWQgd2VicGFnZSBiZWluZyBkaWZmZXJlbnRcclxuICAgICAgICAgICAgLy8gdGhhbiBzb3VyY2UgbGFuZ3VhZ2Ugb2YgY3VycmVudGx5IHNlbGVjdGVkICBzeXN0ZW1cclxuICAgICAgICAgICAgLy8gd2Ugc2hvdWxkIGNoYW5nZSB0aGUgc3lzdGVtIGluIFVJIGFuZCB3YXJuIHRoZSB1c2VyIGFib3V0IHRoZSBmYWN0XHJcbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmF1dG8gJiYgZXZlbnQuZGF0YS5jaGFuZ2VkKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMud2ViTGFuZ0F1dG9kZXRlY3QpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3lzdGVtQ2hhbmdlKGV2ZW50LmRhdGEuc3lzdGVtSWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zd2l0Y2hlck9wdGlvbnMuc3lzdGVtSWQgPSBldmVudC5kYXRhLnN5c3RlbUlkO1xyXG5cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZSh7IG1lc3NhZ2U6ICdjaGFuZ2VTeXN0ZW0nLCBzeXN0ZW1JZDogdGhpcy5zd2l0Y2hlck9wdGlvbnMuc3lzdGVtSWQgfSk7XHJcblxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3RyYW5zbGF0aW9uU3RhcnRlZCc6XHJcbiAgICAgICAgICB0aGlzLm1vZGUgPSAnZGV0ZXJtaW5hdGUnO1xyXG4gICAgICAgICAgdGhpcy5wcm9ncmVzc1ZhbHVlID0gMDtcclxuICAgICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudHJhbnNsYXRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIC8vIGRpc2FibGUgc3lzdGVtIGNoYW5nZSwgc2hvdyBjYW5jZWwgYnV0dG9uXHJcbiAgICAgICAgICB0aGlzLnNob3dUcmFuc2xhdGVCdG4gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NhbmNlbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVCdXR0b24gPSB0cnVlOyAgLy8gdG8gZGlzYWJsZVN5c3RlbUNoYW5nZVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3RyYW5zbGF0aW9uU3RvcHBlZCc6XHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAndHJhbnNsYXRlZCc6XHJcbiAgICAgICAgICAvLyBzaG93IHJlc3RvcmUgYnV0dG9uXHJcbiAgICAgICAgICB0aGlzLnNob3dSZXN0b3JlID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAndW50cmFuc2xhdGVkJzpcclxuICAgICAgICAgIC8vIGVuYWJsZSBzeXN0ZW0gY2hhbmdlLCBzaG93IHRyYW5zbGF0ZSBidXR0b25cclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93UmVzdG9yZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2FuY2VsID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dUcmFuc2xhdGVCdG4gPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAncHJvZ3Jlc3MnOlxyXG4gICAgICAgICAgdGhpcy5wcm9ncmVzc1ZhbHVlID0gZXZlbnQuZGF0YS5wcm9ncmVzcztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2Vycm9yJzpcclxuICAgICAgICAgIC8vIGVuYWJsZSBzeXN0ZW0gY2hhbmdlLCBzaG93IHRyYW5zbGF0ZSBidXR0b25cclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93UmVzdG9yZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2FuY2VsID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dUcmFuc2xhdGVCdG4gPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKGNvbnNvbGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihldmVudC5kYXRhLmRlc2NyaXB0aW9uKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd3YXJuaW5nJzpcclxuICAgICAgICAgIGlmIChjb25zb2xlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihldmVudC5kYXRhLmRlc2NyaXB0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2VuZE1lc3NhZ2UobWVzc2FnZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kZWJ1Zykge1xyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgICBjb25zb2xlLmluZm8oJ01lc3NhZ2Ugc2VudCB0byBpZnJhbWU6JyArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpKTtcclxuICAgIH1cclxuXHJcbiAgICB3aW5kb3cucG9zdE1lc3NhZ2UobWVzc2FnZSwgd2luZG93LmxvY2F0aW9uLm9yaWdpbik7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNZXNzYWdlKGl4OiBudW1iZXIpIHtcclxuICAgIHRoaXMubWVzc2FnZXMuc3BsaWNlKGl4LCAxKTtcclxuICB9XHJcblxyXG4gIHN3YXBMYW5ndWFnZXMoKSB7XHJcbiAgICB0aGlzLnRsZFN5c3RlbS5zd2FwU3lzdGVtTGFuZ3VhZ2VzKCk7XHJcblxyXG4gICAgY29uc3Qgc3lzID0gdGhpcy50bGRTeXN0ZW0uZ2V0QWN0aXZlU3lzdGVtT2JqKCk7XHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ2NoYW5nZVN5c3RlbScsIHN5c3RlbUlkOiBzeXMuaWQgfSk7XHJcbiAgfVxyXG5cclxuICBzeXN0ZW1DaGFuZ2Uoc3lzdGVtSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uY2hhbmdlU3lzdGVtKHN5c3RlbUlkKTtcclxuXHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ2NoYW5nZVN5c3RlbScsIHN5c3RlbUlkIH0pO1xyXG4gIH1cclxuXHJcbiAgc291cmNlTGFuZ3VhZ2VDaGFuZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uY2hhbmdlTGFuZ3VhZ2UobGFuZ3VhZ2UsIHRoaXMuc3dpdGNoZXJPcHRpb25zLnRhcmdldC5jb2RlKTtcclxuXHJcbiAgICBjb25zdCBzeXMgPSB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVTeXN0ZW1PYmooKTtcclxuICAgIHRoaXMuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlOiAnY2hhbmdlU3lzdGVtJywgc3lzdGVtSWQ6IHN5cy5pZCB9KTtcclxuICB9XHJcblxyXG4gIHRhcmdldExhbmd1YWdlQ2hhbmdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGxkU3lzdGVtLmNoYW5nZUxhbmd1YWdlKHRoaXMuc3dpdGNoZXJPcHRpb25zLnNvdXJjZS5jb2RlLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgY29uc3Qgc3lzID0gdGhpcy50bGRTeXN0ZW0uZ2V0QWN0aXZlU3lzdGVtT2JqKCk7XHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ2NoYW5nZVN5c3RlbScsIHN5c3RlbUlkOiBzeXMuaWQgfSk7XHJcbiAgfVxyXG5cclxuICB0cmFuc2xhdGVCdXR0b25DbGljaygpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkQ29sbGVjdGlvbklkID0gdGhpcy50ZXJtaW5vbG9neVNlcnZpY2Uuc2VsZWN0ZWRJZEZvclRyYW5zbGF0aW9uKHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZVN5c3RlbU9iaigpLmlkKTtcclxuXHJcbiAgICBpZiAodGhpcy51cmxUb1RyYW5zbGF0ZSAhPSAnJykge1xyXG4gICAgICB0aGlzLnNlbmRNZXNzYWdlKHtcclxuICAgICAgICBtZXNzYWdlOiAnbG9hZFVybCcsXHJcbiAgICAgICAgdXJsOiB0aGlzLnVybFRvVHJhbnNsYXRlLFxyXG4gICAgICAgIHRyYW5zbGF0ZUFmdGVyTG9hZDogdHJ1ZSxcclxuICAgICAgICB0ZXJtQ29ycHVzSWQ6IHNlbGVjdGVkQ29sbGVjdGlvbklkXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZEJ1dHRvbkNsaWNrZWQoKSB7XHJcbiAgICBpZiAodGhpcy51cmxUb1RyYW5zbGF0ZSAhPSAnJykge1xyXG4gICAgICB0aGlzLnNlbmRNZXNzYWdlKHtcclxuICAgICAgICBtZXNzYWdlOiAnbG9hZFVybCcsXHJcbiAgICAgICAgdXJsOiB0aGlzLnVybFRvVHJhbnNsYXRlLFxyXG4gICAgICAgIHRyYW5zbGF0ZUFmdGVyTG9hZDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhclVybFRvVHJhbnNsYXRlKCkge1xyXG4gICAgdGhpcy51cmxUb1RyYW5zbGF0ZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZW5kTWVzc2FnZSh7IG1lc3NhZ2U6ICd1bnRyYW5zbGF0ZScgfSk7XHJcbiAgfVxyXG5cclxuICByZXN0b3JlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZW5kTWVzc2FnZSh7IG1lc3NhZ2U6ICd1bnRyYW5zbGF0ZScgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRGcm9tQ29uZmlnKCkge1xyXG4gICAgY29uc3QgY29yZUNvbmZpZyA9IHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnO1xyXG4gICAgY29uc3Qgd2VidHJhbnNsYXRlQ29uZmlnID0gdGhpcy5jb25maWdTZXJ2aWNlLndlYnRyYW5zbGF0ZUNvbmZpZztcclxuICAgIHRoaXMubG9nb0xvY2F0aW9uID0gd2VidHJhbnNsYXRlQ29uZmlnLmxvZ29Mb2NhdGlvbjtcclxuICAgIHRoaXMuZGVidWcgPSB3ZWJ0cmFuc2xhdGVDb25maWcuZGVidWc7XHJcbiAgICB0aGlzLndlYkxhbmdBdXRvZGV0ZWN0ID0gd2VidHJhbnNsYXRlQ29uZmlnLndlYkxhbmdBdXRvZGV0ZWN0OyAvLyBhZnRlciBwYWdlIGlzIGxvYWRlZCBhdXRvIGRldGVjdCBsYW5ndWFnZSBhbmQgY2hhbmdlIGFjdGl2ZSBzeXN0ZW1cclxuICAgIHRoaXMuYWxsb3dTdWdnZXN0aW9ucyA9IHdlYnRyYW5zbGF0ZUNvbmZpZy5hbGxvd1N1Z2dlc3Rpb25zO1xyXG4gICAgdGhpcy5oaWRlUG9wdXAgPSB3ZWJ0cmFuc2xhdGVDb25maWcuaGlkZVBvcHVwO1xyXG4gICAgdGhpcy50cmFuc2xhdGVQYWdlUGF0aCA9IHdlYnRyYW5zbGF0ZUNvbmZpZy50cmFuc2xhdGVQYWdlUGF0aDtcclxuICAgIHRoaXMuYXBwSWQgPSBjb3JlQ29uZmlnLmFwcElkO1xyXG4gICAgdGhpcy5jbGllbnRJZCA9IGNvcmVDb25maWcuY2xpZW50SWQ7XHJcblxyXG4gICAgaWYgKHRoaXMuYXBpVmVyc2lvbiA9PSBUcmFuc2xhdGlvbkFwaVZlcnNpb24uVjEpIHtcclxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlVXJsID0gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmFwaVZlcnNpb24gPT0gVHJhbnNsYXRpb25BcGlWZXJzaW9uLlYyKSB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZVVybCA9IHRoaXMuY29uZmlnU2VydmljZS5hcGlWMkNvbmZpZy50cmFuc2xhdGlvblVybDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9Ib21lKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnJyk7XHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ3VudHJhbnNsYXRlJyB9KTtcclxuICB9XHJcblxyXG4gIGFkZFNjcmlwdCh1cmw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICBzY3JpcHQuc3JjID0gdXJsO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xyXG4gIH1cclxuXHJcbiAgYWRkQ29uZmlndXJhdGlvblNjcmlwKCk6IHZvaWQge1xyXG4gICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmJvZHkgYXMgSFRNTERpdkVsZW1lbnQ7XHJcbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XHJcbiAgICBzY3JpcHQuaW5uZXJIVE1MID0gJyc7XHJcbiAgICBzY3JpcHQuaW5uZXJIVE1MID0gYFxyXG5cclxuICAgIGlmICh0eXBlb2YgKFRpbGRlKSA9PT0gJ3VuZGVmaW5lZCcpXHJcbiAgICAgICAgVGlsZGUgPSB7fTtcclxuXHJcbiAgICAgICAgVGlsZGUuUGFnZVRyYW5zbGF0ZVdpZGdldFNlcnZlckNvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgICAgICB0cmFuc2xhdGVTZXJ2aWNlVXJsOiAnJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2VVcmx9JyxcclxuICAgICAgICB9O1xyXG5cclxuICAgIFRpbGRlLlBhZ2VUcmFuc2xhdGVXaWRnZXRDbGllbnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBUcmFuc2xhdGVQYWdlUHJlZml4OiBsb2NhdGlvbi5ob3N0ICsgJy8ke3RoaXMudHJhbnNsYXRlUGFnZVBhdGh9LycsXHJcblxyXG4gICAgICAgIC8vIFVybCBvZiB0aGUgcGxhY2Ugd2hlcmUgQ1NTIGZvciB0cmFuc2xhdGlvbiB3aWRnZXQgaXMga2VwdFxyXG4gICAgICAgIC8vIGlmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSB0aGUgc3RhbmRhcmQgbGV0c210IHN0eWxlLFxyXG4gICAgICAgIC8vIHBvaW50IHRoaXMgdG8geW91ciBvd24gY3NzIGZpbGVcclxuICAgICAgICBjc3NMb2NhdGlvbjogJy4vYXNzZXRzL3dlYnRyYW5zbGF0ZS93aWRnZXQuY3NzJyxcclxuXHJcbiAgICAgICAgLy8gY2xpZW50IGlkIGZvciBhdXRob3JpemF0aW9uXHJcbiAgICAgICAgY2xpZW50SWQ6IFwiJHt0aGlzLmNsaWVudElkfVwiLFxyXG5cclxuICAgICAgICAvL2FwaSB2ZXJzaW9uXHJcbiAgICAgICAgYXBpVmVyc2lvbjogXCIke3RoaXMuYXBpVmVyc2lvbn1cIiwgIC8vIDAgLSBWMTsgMSAtIFYyXHJcblxyXG4gICAgICAgIC8vIGVuYWJsZSBvciBkaXNhYmxlIG9yaWdpbmFsIHRleHQgcG9wdXBcclxuICAgICAgICBoaWRlUG9wdXA6ICR7dGhpcy5oaWRlUG9wdXB9LFxyXG5cclxuICAgICAgICAvLyBpZCBvZiB0aGUgPGRpdj4gd2hlcmUgdG8gZHJhdyB3aWRnZXRcclxuICAgICAgICB3aWRnZXRDb250YWluZXJJZDogXCJQYWdlVHJhbnNsYXRlV2lkZ2V0XCIsXHJcblxyXG4gICAgICAgIC8vIGF2YWlsYWJsZSB0cmFuc2xhdGlvbiBzeXN0ZW1zICh0YXJnZXQgbGFuZ3VhZ2VzKVxyXG4gICAgICAgIHRyYW5zbGF0aW9uU3lzdGVtczogW10sXHJcblxyXG4gICAgICAgIC8vIHNvdXJjZSBsYW5ndWFnZSBvZiB0aGUgcGFnZSB0aGF0IG5lZWRzIHRvIGJlIHRyYW5zbGF0ZWRcclxuICAgICAgICBsYW5ndWFnZTogXCJlblwiLFxyXG5cclxuICAgICAgICAvLyB0cmFuc2xhdGUgd2lkZ2V0IFVJIHRvIGxhbmd1YWdlIHRoYXQgaXMgY2hvc2VuIGluIHRhcmdldCBsYW5ndWFnZSBkcm9wZG93blxyXG4gICAgICAgIHRyYW5zbGF0ZVVJdG9DaG9zZW5MYW5ndWFnZTogZmFsc2UsXHJcblxyXG4gICAgICAgIC8vIHRyYW5zbGF0ZSB3aWRnZXQgYWRtaW5pc3RyYXRpdmUgcGFydCB0byBsYW5ndWFnZSB0aGF0IGlzIGNob3NlbiBpbiB0YXJnZXQgbGFuZ3VhZ2UgZHJvcGRvd25cclxuICAgICAgICB0cmFuc2xhdGVBZG1pblVJdG9DaG9zZW5MYW5ndWFnZTogZmFsc2UsXHJcblxyXG4gICAgICAgIHVpTGFuZ3VhZ2U6IFwiJHt0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZ31cIixcclxuXHJcbiAgICAgICAgLy8gaWYgcGFnZSB3YXMgdHJhbnNsYXRlZCBhbmQgeW91IGNsaWNrIG9uIGEgbGlua1xyXG4gICAgICAgIC8vIHRoYXQgZ29lcyB0byBhbm90aGVyIHBhZ2UgaW4gdGhlIHNhbWUgc2l0ZSxcclxuICAgICAgICAvLyB0aGVuIHRyYW5zbGF0ZSB0aGUgbmV3bHkgb3BlbmVkIHBhZ2UgYWxzb1xyXG4gICAgICAgIHRyYW5zbGF0ZUFmdGVyTmF2aWdhdGlvbjogdHJ1ZSxcclxuXHJcbiAgICAgICAgLy8gdHJ1ZSAtIGxhbmd1YWdlIGxpc3QgaXMgc2hvd24gYXMgbGlua3NcclxuICAgICAgICAvLyBmYWxzZSAtIGxhbmd1YWdlIGxpc3QgaXMgc2hvd24gYXMgZHJvcGRvd24gbGlzdCBhbmQgXCJ0cmFuc2xhdGVcIiBidXR0b25cclxuICAgICAgICBsYW5ndWFnZUxpc3RBc0xpbmtzOiBmYWxzZSxcclxuXHJcbiAgICAgICAgc2hvd0hlYWRlcjogZmFsc2UsXHJcblxyXG4gICAgICAgIHNob3dUcmFuc2xhdGlvblN1Z2dlc3Rpb25BZG1pblBhZ2U6IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyBhZnRlciB0cmFuc2xhdGlvbiBzaG93IGEgd2FybmluZyB0aGF0IHBhZ2UgaXMgbWFjaGluZSB0cmFuc2xhdGVkIGF0IHRoZSB0b3Agb2YgdGhlIHBhZ2VcclxuICAgICAgICBzaG93TWFjaGluZVRyYW5zbGF0aW9uV2FybmluZ0FmdGVyVHJhbnNsYXRpb246IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyBzaG93IGFsbCBhdmFpbGFibGUgdHJhbnNsYXRpb24gc3lzdGVtcyBpbnN0ZWFkIG9mIGp1c3QgdGhlIG9uZXMgY29uZmlndXJlZCBpbiB0aGlzIGZpbGVcclxuICAgICAgICBzaG93QWxsVHJhbnNsYXRpb25TeXN0ZW1zOiBmYWxzZSxcclxuXHJcbiAgICAgICAgLy8gYWRkIHNvbWUgcGl4ZWxzIHRvIGRyb3Bkb3duIHBhZGRpbmcgdG8gbWFrZSBpdCBsb29rIG1vcmUgc2ltaWxhciBvbiBkaWZmZXJlbnQgYnJvd3NlcnNcclxuICAgICAgICBicm93c2VyU3BlY2lmaWNEcm9wZG93blBhZGRpbmc6IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyBuYW1lIG9mIGljb24gc2V0OiBcImRlZmF1bHRcIiwgXCJ3aGl0ZVwiLCBcImdyZXlcIiwgXCJyZWRcIlxyXG4gICAgICAgIGljb25TZXQ6IFwid2hpdGVcIixcclxuXHJcbiAgICAgICAgLy8gUG9zc2libGUgdmFsdWVzOiAxLCAyLCAzLiBUZXh0IGZvciBsaW5rIFwiUmVzdG9yZSBvcmlnaW5hbDogTGF0dmlhblwiIG1heSBiZSBtYWRlIHNob3J0ZXIgb3IgbG9uZ2VyXHJcbiAgICAgICAgLy8gdXNlZnVsIHRvIGFkYXB0IHRvIHNtYWxsIG9yIGxhcmdlIHNjcmVlbnNcclxuICAgICAgICByZXN0b3JlT3JpZ2luYWxMaW5rTGVuZ3RoOiAyLFxyXG5cclxuICAgICAgICAvLyBlbmFibGUgb3IgZGlzYWJsZSBcIlN1Z2dlc3QgdHJhbnNsYXRpb25cIiBsaW5rIGluIHBvcHVwIHRoYXQgc2hvd3Mgb3JpZ2luYWwgdGV4dCBvZiB0cmFuc2xhdGVkIHNlbnRlbmNlXHJcbiAgICAgICAgc3VnZ2VzdFRyYW5zbGF0aW9uOiAke3RoaXMuYWxsb3dTdWdnZXN0aW9uc30sXHJcblxyXG4gICAgICAgIC8vIHNob3cgbWVzc2FnZSBib3ggd2hlbiBlcnJvciBoYXBwZW5zP1xyXG4gICAgICAgIHNob3dNZXNzYWdlQm94T25FcnJvcjogZmFsc2UsXHJcblxyXG4gICAgICAgIC8vIGFwcGxpY2F0aW9uIGlkZW50aWZpZXJcclxuICAgICAgICBhcHBJZDogXCIke3RoaXMuYXBwSWR9XCIsXHJcblxyXG4gICAgICAgIC8vIHNlcnZlciB3aWxsIG9ubHkgcmV0dXJuIHN5c3RlbXMgdGhhdCBhcmUgbWVhbnQgZm9yIGdpdmVuIGFwcElkXHJcbiAgICAgICAgZmlsdGVyU3lzdGVtc0J5QXBwSWQ6IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyBzaG93IGhlbHAgbGlua1xyXG4gICAgICAgIGVuYWJsZUhlbHA6IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyBzaG93IGZlZWRiYWNrIGxpbmtcclxuICAgICAgICBlbmFibGVGZWVkYmFjazogZmFsc2UsXHJcblxyXG4gICAgICAgIC8vIGFsbG93ZWQgc3lzdGVtIHN0YXR1c2VzLCBieSBkZWZhdWx0IG9ubHkgXCJydW5uaW5nXCJcclxuICAgICAgICBhbGxvd2VkU3lzdGVtU3RhdHVzZXM6IFwicnVubmluZ1wiLFxyXG5cclxuICAgICAgICAvLyBwYXNzZWQgdG8gdHJhbnNsYXRpb24gc2VydmljZSBmb3IgbG9nZ2luZy5cclxuICAgICAgICAvLyBcIndlYi1lbWJlZGRlZFwiIGZvciB3aWRnZXQgdGhhdCBpcyBlbWJlZGRlZCBpbiBodG1sIHBhZ2UsXHJcbiAgICAgICAgLy8gXCJ3ZWJcIiBmb3Igd2lkZ2V0IHRoYXQgY2FuIGxvYWQgYW5kIHRyYW5zbGF0ZSBhbnkgd2Vic2l0ZVxyXG4gICAgICAgIHdpZGdldDogXCJ3ZWJcIlxyXG4gICAgfTtcclxuICAgIGA7XHJcbiAgICBib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ3aWRnZXRcIiBjbGFzcz1cInRsZC10cmFuc2xhdGUtd2ViXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRyYW5zbGF0ZS1jb250YWluZXItaGVhZGVyXCI+XHJcbiAgICA8YSBocmVmPVwiL1wiIGlkPVwiaG9tZS1saW5rXCIgW2F0dHIudGl0bGVdPVwiJ1dFQlRSQU5TTEFURS5CQUNLJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICA8aW1nIFtzcmNdPVwibG9nb0xvY2F0aW9uXCIgYWx0PVwibG9nb1wiPlxyXG4gICAgICA8bGliLWNvbXBhbnktcHJvZHVjdCAqbmdJZj1cImNvbXBhbnkgJiYgcHJvZHVjdFwiIFtjb21wYW55XT1cImNvbXBhbnlcIiBbcHJvZHVjdF09XCJwcm9kdWN0XCI+PC9saWItY29tcGFueS1wcm9kdWN0PlxyXG4gICAgPC9hPlxyXG4gICAgPGRpdiBbbmdDbGFzcy5sdC1zbV09XCIndGxkLXRyYW5zbGF0ZS1tb2JpbGUnXCI+XHJcbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cImFkZHJlc3Mtd3JhcHBlclwiPlxyXG4gICAgICAgIDxhIChjbGljayk9XCJnb1RvSG9tZSgpXCIgW2F0dHIudGl0bGVdPVwiJ1dFQlRSQU5TTEFURS5CQUNLJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmFycm93X2JhY2s8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMTAwJVwiIGNsYXNzPVwiYWRkcmVzcy1pbnB1dFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY29sb3I9XCJhY2NlbnRcIj5cclxuICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwiJ1dFQlRSQU5TTEFURS5TRUFSQ0gnIHwgdHJhbnNsYXRlXCIgdHlwZT1cInVybFwiICN1cmwgY2xhc3M9XCJ1cmxcIiBhdXRvZm9jdXM9XCJhdXRvZm9jdXNcIiBbKG5nTW9kZWwpXT1cInVybFRvVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwibG9hZEJ1dHRvbkNsaWNrZWQoKVwiIC8+XHJcblxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInVybFRvVHJhbnNsYXRlXCIgW2lubGluZV09XCJ0cnVlXCIgKGNsaWNrKT1cImNsZWFyVXJsVG9UcmFuc2xhdGUoKVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRsZC10cmFuc2xhdGUtc3dpdGNoZXItd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4RmxleD5cclxuICAgICAgICAgIDx0bGQtdHJhbnNsYXRlLXN3aXRjaGVyXHJcbiAgICAgICAgICAgICpuZ0lmPVwic3dpdGNoZXJPcHRpb25zXCJcclxuICAgICAgICAgICAgW2lzQ29sbGVjdGlvbnNBY3RpdmF0ZWRdPVwiaXNDb2xsZWN0aW9uc0FjdGl2YXRlZFwiXHJcbiAgICAgICAgICAgIFt1c2VQYXJlbnRXaWR0aF09XCJ1c2VQYXJlbnRXaWR0aFwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25CdXR0b25EaXNhYmxlZFwiXHJcbiAgICAgICAgICAgIFtzZXR0aW5nc109XCJzd2l0Y2hlck9wdGlvbnNcIlxyXG4gICAgICAgICAgICBbc2hvd1RyYW5zbGF0ZUJ1dHRvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtoaWRlT25TbWFsbFNjcmVlbnNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbaGlkZUxhbmdNZW51TGFiZWxzXT1cImhpZGVMYW5nTWVudUxhYmVsc1wiXHJcbiAgICAgICAgICAgIFttYXhEaXNwbGF5ZWRMYW5ndWFnZXNdPVwibWF4RGlzcGxheWVkTGFuZ3VhZ2VzXCJcclxuICAgICAgICAgICAgW3Nob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZV09XCJzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWVcIlxyXG4gICAgICAgICAgICAob25Eb21haW5DaGFuZ2UpPVwic3lzdGVtQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAob25BY3Rpb25DbGljayk9XCJ0cmFuc2xhdGVCdXR0b25DbGljaygpXCJcclxuICAgICAgICAgICAgKG9uTGFuZ3VhZ2VTd2FwKT1cInN3YXBMYW5ndWFnZXMoKVwiXHJcbiAgICAgICAgICAgIChvblNvdXJjZUxhbmd1YWdlQ2hhbmdlKT1cInNvdXJjZUxhbmd1YWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAob25UYXJnZXRMYW5ndWFnZUNoYW5nZSk9XCJ0YXJnZXRMYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L3RsZC10cmFuc2xhdGUtc3dpdGNoZXI+XHJcbiAgICAgICAgICA8ZGl2IGZ4RmxleEFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJhY3Rpb24tYnRuLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPHRsZC10cmFuc2xhdGUtYnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzaG93VHJhbnNsYXRlQnRuXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInN3aXRjaGVyLXRyYW5zbGF0ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25CdXR0b25EaXNhYmxlZCB8fCAhdXJsVG9UcmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPC90bGQtdHJhbnNsYXRlLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dDYW5jZWxcIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwiY2FuY2VsKClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiPnt7J1dFQlRSQU5TTEFURS5DQU5DRUwnIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dSZXN0b3JlXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cInJlc3RvcmUoKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJyZXN0b3JlLWJ1dHRvblwiPnt7J1dFQlRSQU5TTEFURS5SRVNUT1JFJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBpZD1cIndlYnNpdGUtZnJhbWUtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cInNob3dQcm9ncmVzc1wiIGNvbG9yPVwiYWNjZW50XCIgW21vZGVdPVwibW9kZVwiIFt2YWx1ZV09XCJwcm9ncmVzc1ZhbHVlXCI+XHJcbiAgICA8L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSBbQG9wZW5DbG9zZUFuaW1hdGlvbl0gKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2YgbWVzc2FnZXM7IGxldCBpeCA9IGluZGV4XCIgW21lc3NhZ2VdPVwibWVzc2FnZVwiXHJcbiAgICAgIChjbG9zZUNsaWNrZWQpPVwicmVtb3ZlTWVzc2FnZShpeClcIj48L2xpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2U+XHJcbiAgICBcclxuICAgIDxpZnJhbWUgI2lmcmFtZSBbY2xhc3MuaC1mdWxsXT1cIiFzaG93RW1wdHlWaWV3XCIgaWQ9XCJsZXRzbXQtdHJhbnNsYXRlLXBhZ2UtaWZyYW1lXCIgbmFtZT1cImxldHNtdFRyYW5zbGF0ZVBhZ2VJZnJhbWVcIiBzcmM9XCJhYm91dDpibGFua1wiPjwvaWZyYW1lPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bGliLXN0YXR1cy1kaXNwbGF5ICpuZ0lmPVwic2hvd0VtcHR5Vmlld1wiIFtjb25maWddPVwiZW1wdHlWaWV3Q29uZmlnXCI+PC9saWItc3RhdHVzLWRpc3BsYXk+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
543
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS13ZWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXdlYi90bGQtdHJhbnNsYXRlLXdlYi90bGQtdHJhbnNsYXRlLXdlYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtd2ViL3RsZC10cmFuc2xhdGUtd2ViL3RsZC10cmFuc2xhdGUtd2ViLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXBJLE9BQU8sRUFBaUQsdUJBQXVCLEVBQTJDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEosT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFMUUsT0FBTyxFQUF3QixjQUFjLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl0RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJekUsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENB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RyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDdEMsQ0FBQztTQUNIOzs0RkFFVSw0QkFBNEI7a0JBakJ4QyxTQUFTOytCQUNFLHVCQUF1QixjQUdyQjt3QkFDVixPQUFPLENBQUMsb0JBQW9CLEVBQUU7NEJBRTVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ25CLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQ0FDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDYixDQUFDOzRCQUVGLFVBQVUsQ0FBQyxRQUFRLEVBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzt5QkFDdEMsQ0FBQztxQkFDSDs7MEJBZ0JFLE1BQU07MkJBQUMsNkJBQTZCOzRDQWJsQixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBZVYsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFWSxhQUFhO3NCQUE5QixTQUFTO3VCQUFDLEtBQUs7Z0JBd0JOLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUHJvZ3Jlc3NCYXJNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZlRGF0YSwgQWxlcnRTZXJ2aWNlLCBOb3RpZmljYXRpb25NZXNzYWdlLCBOb3RpZmljYXRpb25NZXNzYWdlVHlwZSwgU3RhdHVzRGlzcGxheUNvbmZpZywgVGVybWlub2xvZ3lTZXJ2aWNlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vaW5qZWN0aW9uLXRva2Vucyc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUJ1dHRvblNlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL2NvbXBvbmVudHMvdHJhbnNsYXRlLWJ1dHRvbi90bGQtdHJhbnNsYXRlLWJ1dHRvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZU1lc3NhZ2UsIFRsZE1lc3NhZ2VUeXBlLCBUcmFuc2xhdGlvbkFwaVZlcnNpb24gfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL21vZGVscyc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZVN5c3RlbU1hbmFnZW1lbnRTZXJ2aWNlLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IElTd2l0Y2hlclRyYW5zbGF0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL3RsZC10b29sdGlwL21vZGVscy9zd2l0Y2hlci1vcHRpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlV2ViU2VydmljZSB9IGZyb20gJy4uL3RsZC10cmFuc2xhdGUtd2ViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhdmFpbGFibGVMYW5ndWFnZXMgfSBmcm9tICcuLy4uLy4uLy4uL2kxOG4vYXZhaWxhYmxlLWxhbmd1YWdlcyc7XHJcblxyXG5cclxuZGVjbGFyZSB2YXIgd2luZG93OiBhbnk7XHJcbndpbmRvdy4kID0gd2luZG93LmpRdWVyeSA9ICQ7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RsZC10cmFuc2xhdGUtd2Vic2l0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RsZC10cmFuc2xhdGUtd2ViLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90bGQtdHJhbnNsYXRlLXdlYi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ29wZW5DbG9zZUFuaW1hdGlvbicsIFtcclxuXHJcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICBzdHlsZSh7IGhlaWdodDogMCB9KSxcclxuICAgICAgICBhbmltYXRlKDUwMClcclxuICAgICAgXSksXHJcblxyXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLFxyXG4gICAgICAgIGFuaW1hdGUoNTAwLCBzdHlsZSh7IGhlaWdodDogMCB9KSkpXHJcbiAgICBdKVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZVdlYnNpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnaWZyYW1lJykgaWZyYW1lOiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVCdXR0b25TZXJ2aWNlOiBUbGRUcmFuc2xhdGVCdXR0b25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydHM6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGxkU3lzdGVtOiBUbGRUcmFuc2xhdGVTeXN0ZW1NYW5hZ2VtZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVybWlub2xvZ3lTZXJ2aWNlOiBUZXJtaW5vbG9neVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRsZFRyYW5zbGF0ZVdlYlNlcnZpY2U6IFRsZFRyYW5zbGF0ZVdlYlNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBASW5qZWN0KFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGFwaVZlcnNpb246IFRyYW5zbGF0aW9uQXBpVmVyc2lvblxyXG4gICkgeyB9XHJcbiAgQElucHV0KCkgcHJvZHVjdCA9ICcnO1xyXG4gIEBJbnB1dCgpIGNvbXBhbnkgPSAnJztcclxuXHJcbiAgQFZpZXdDaGlsZCgndXJsJykgdXJsSW5wdXRGaWVsZDogRWxlbWVudFJlZjtcclxuXHJcbiAgc2V0dGluZ1N5c3RlbUxpc3RGb3JGaXJzdFRpbWU6IGJvb2xlYW47XHJcbiAgdXJsVG9UcmFuc2xhdGUgPSAnJzsgLy8gdHJhbnNsYXRlV2ViX1VybFxyXG4gIHNob3dDYW5jZWwgPSBmYWxzZTtcclxuICBzaG93UmVzdG9yZSA9IGZhbHNlO1xyXG4gIHNob3dUcmFuc2xhdGVCdG4gPSB0cnVlO1xyXG4gIHRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgZGlzYWJsZUJ1dHRvbiA9IGZhbHNlOyAvLyBhY3Rpb25CdXR0b25EaXNhYmxlZFxyXG5cclxuICAvLyBwYXJhbXMgZnJvbSBjb25maWcgc2VydmljZS5cclxuICBsb2dvTG9jYXRpb246IHN0cmluZztcclxuICBkZWJ1ZzogYm9vbGVhbjtcclxuICB3ZWJMYW5nQXV0b2RldGVjdDogYm9vbGVhbjsgLy8gVE9ETyBjaGVjayBpZiByZWFsbHkgbmVlZGVkIC8vIGFmdGVyIHBhZ2UgaXMgbG9hZGVkIGF1dG8gZGV0ZWN0IGxhbmd1YWdlIGFuZCBjaGFuZ2UgYWN0aXZlIHN5c3RlbVxyXG4gIGFsbG93U3VnZ2VzdGlvbnM6IGJvb2xlYW47XHJcbiAgaGlkZVBvcHVwOiBib29sZWFuO1xyXG4gIHRyYW5zbGF0ZVBhZ2VQYXRoOiBzdHJpbmc7IC8vICBwYXRoIHRvIFdlYlRyYW5zbGF0aW9uUHJveHlcclxuICBjbGllbnRJZDogc3RyaW5nO1xyXG4gIGFwcElkOiBzdHJpbmc7XHJcbiAgeEFwaUtleTogc3RyaW5nO1xyXG4gIHRyYW5zbGF0ZVNlcnZpY2VVcmw6IHN0cmluZztcclxuXHJcbiAgc3dpdGNoZXJPcHRpb25zOiBJU3dpdGNoZXJUcmFuc2xhdGlvbk9wdGlvbnM7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBhY3RpdmVTeXN0ZW1PYmo6IEFjdGl2ZURhdGE7XHJcbiAgbWVzc2FnZXM6IE5vdGlmaWNhdGlvbk1lc3NhZ2VbXSA9IFtdO1xyXG5cclxuICAvL1Byb2dyZXNzIGJhclxyXG4gIG1vZGU6IFByb2dyZXNzQmFyTW9kZSA9ICdkZXRlcm1pbmF0ZSc7XHJcbiAgcHJvZ3Jlc3NWYWx1ZSA9IDA7XHJcbiAgc2hvd1Byb2dyZXNzID0gZmFsc2U7XHJcbiAgc2hvd0VtcHR5VmlldyA9IHRydWU7XHJcblxyXG4gIGVtcHR5Vmlld0NvbmZpZzogU3RhdHVzRGlzcGxheUNvbmZpZyA9IHtcclxuICAgIHRpdGxlOiAnV0VCVFJBTlNMQVRFLk5PX1JFQ09SRFMuVElUTEUnLFxyXG4gICAgZGVzY3JpcHRpb246ICdXRUJUUkFOU0xBVEUuTk9fUkVDT1JEUy5ERVNDUklQVElPTicsXHJcbiAgICBkZXNjcmlwdGlvblBhcmFtczogeyBoZWxwVXJsOiAnJyB9LFxyXG4gICAgaWNvbjogJ21hbmFnZV9zZWFyY2gnLFxyXG4gICAgZW5hYmxlZDogdHJ1ZVxyXG4gIH1cclxuXHJcbiAgbm9TeXN0ZW1zRXJyb3I6IElUbGRUcmFuc2xhdGVNZXNzYWdlID0geyB0ZXh0OiAnVExEX1RSQU5TTEFURS5FUlJPUl9OT19TWVNURU1TX0xPQURFRCcsIHR5cGU6IFRsZE1lc3NhZ2VUeXBlLkVSUk9SIH07XHJcblxyXG4gIGdldCBhY3Rpb25CdXR0b25EaXNhYmxlZCgpIHsgcmV0dXJuIHRoaXMuZGlzYWJsZUJ1dHRvbjsgfVxyXG5cclxuXHJcbiAgZ2V0IGhpZGVMYW5nTWVudUxhYmVscygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2U/LmNvcmVDb25maWcuaGlkZUxhbmdNZW51TGFiZWxzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1heERpc3BsYXllZExhbmd1YWdlcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLm1heERpc3BsYXllZExhbmd1YWdlcztcclxuICB9XHJcblxyXG4gIGdldCBpc0NvbGxlY3Rpb25zQWN0aXZhdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZT8udGVybUNvbmZpZz8uaXNDb2xsZWN0aW9uc0FjdGl2YXRlZDtcclxuICB9XHJcblxyXG4gIGdldCBzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcuc2hvd0RvbWFpbnNXaXRoTGFuZ3VhZ2VOYW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNhbmRib3goKSB7IHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2Uud2VidHJhbnNsYXRlQ29uZmlnLnNhbmRib3g7IH1cclxuXHJcbiAgcmVhZG9ubHkgdXNlUGFyZW50V2lkdGggPSB0cnVlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjaGFuZ2VBdXRoKGlzQXV0aDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcuaXNBdXRoID0gaXNBdXRoO1xyXG4gICAgdGhpcy5pbml0aWFsaXplV2lkZ2V0KCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplV2lkZ2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uaW5pdCh0aGlzLnRsZFN5c3RlbS5nZXRMYXN0VXNlZFN5c3RlbSgpID8/IHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLmRlZmF1bHRTeXN0ZW1JZCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5kZWJ1Zykge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBhdmFpbGFibGVMYW5ndWFnZXMpIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXRUcmFuc2xhdGlvbihrZXksIGF2YWlsYWJsZUxhbmd1YWdlc1trZXldLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5pc0F1dGggPSB0cnVlO1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZS51c2UoXCJlblwiKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXRGcm9tQ29uZmlnKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVXaWRnZXQoKTtcclxuXHJcbiAgICB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVEYXRhKCkucGlwZShcclxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh2YWw6IEFjdGl2ZURhdGEpID0+IHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVN5c3RlbU9iaiA9IHZhbDtcclxuICAgICAgICBpZiAoIXZhbCkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN3aXRjaGVyT3B0aW9ucyA9IHtcclxuICAgICAgICAgIGRvbWFpbnM6IHZhbC5kb21haW5zLFxyXG4gICAgICAgICAgc291cmNlOiB7IGNvZGU6IHZhbC5zb3VyY2VMYW5nLmxhbmcsIHN5c3RlbUlkOiB2YWwuc3lzdGVtSWQgfSxcclxuICAgICAgICAgIHNvdXJjZUxhbmd1YWdlTGlzdDogdmFsLnNvdXJjZUxhbmdMaXN0LFxyXG4gICAgICAgICAgc3lzdGVtSWQ6IHZhbC5zeXN0ZW1JZCxcclxuICAgICAgICAgIHN3YXBBY3RpdmU6IHZhbC5zd2FwTGFuZ0FjdGl2ZSxcclxuICAgICAgICAgIHRhcmdldDogeyBjb2RlOiB2YWwudGFyZ2V0TGFuZy5sYW5nLCBzeXN0ZW1JZDogdmFsLnN5c3RlbUlkIH0sXHJcbiAgICAgICAgICB0YXJnZXRMYW5ndWFnZUxpc3Q6IHZhbC50YXJnZXRMYW5nTGlzdCxcclxuICAgICAgICAgIHZlbmRvcnM6IHZhbC52ZW5kb3JzXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcblxyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlQnV0dG9uU2VydmljZS5nZXRBY3Rpb25DbGljaygpLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGVCdXR0b25DbGljaygpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFsZXJ0cy5nZXRNZXNzYWdlcygpLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZTogTm90aWZpY2F0aW9uTWVzc2FnZSkgPT4ge1xyXG4gICAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlLkVSUk9SKSB7XHJcbiAgICAgICAgICB0aGlzLm9uRXJyb3IuZW1pdChtZXNzYWdlLmVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gcHVzaGluZyBvbmx5IFwib25lIG9mXCIgbWVzc2FnZSBpbiBhcnJheSwgc28gc2NyZWVuIGlzIG5vdCBzcGFtbWVkIHdpdGggbWVzc2FnZXNcclxuICAgICAgICBjb25zdCBleGlzdGluZ01lc3NhZ2UgPSB0aGlzLm1lc3NhZ2VzLmZpbmQobXNnID0+IG1zZy5ib2R5ID09PSBtZXNzYWdlLmJvZHkgJiYgbXNnLnR5cGUgPT09IG1lc3NhZ2UudHlwZSAmJiBtc2cudGl0bGUgPT09IG1lc3NhZ2UudGl0bGUpO1xyXG4gICAgICAgIGlmICghZXhpc3RpbmdNZXNzYWdlKSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0FQUF9OQU1FJykucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5hcHBOYW1lID0gdGV4dDtcclxuICAgICAgfSk7XHJcblxyXG4gICAgd2luZG93Lm9ubWVzc2FnZSA9IHRoaXMucmVjZWl2ZU1lc3NhZ2UuYmluZCh0aGlzKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50bGRUcmFuc2xhdGVXZWJTZXJ2aWNlLnd0U2NyaXB0c0FkZGVkKSB7XHJcbiAgICAgIHRoaXMuYWRkU2NyaXB0KCcuL2Fzc2V0cy93ZWJ0cmFuc2xhdGUvdHJhbnNsYXRlLXdlYnNpdGUuanMnKTtcclxuICAgICAgdGhpcy5hZGRDb25maWd1cmF0aW9uU2NyaXAoKTtcclxuICAgICAgdGhpcy5hZGRTY3JpcHQoJy4vYXNzZXRzL3dlYnRyYW5zbGF0ZS9wYWdlLXRyYW5zbGF0ZS13aWRnZXQuanMnKTtcclxuICAgICAgdGhpcy50bGRUcmFuc2xhdGVXZWJTZXJ2aWNlLnd0U2NyaXB0c0FkZGVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQobnVsbCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlY2VpdmVNZXNzYWdlKGV2ZW50OiBhbnkpIHtcclxuICAgIC8vIFRPRE8gYWRkIGNvcnJlY3Qgb3JpZ2luXHJcbiAgICAvLyBpZiAoZXZlbnQub3JpZ2luICE9PSBcIlwiKVxyXG4gICAgLy8gcmV0dXJuO1xyXG5cclxuICAgIGlmICh0aGlzLmRlYnVnKSB7XHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXHJcbiAgICAgIGNvbnNvbGUuaW5mbygnTWVzc2FnZSByZWNlaXZlZCBmcm9tIGlmcmFtZTonICsgSlNPTi5zdHJpbmdpZnkoZXZlbnQuZGF0YSkpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAoZXZlbnQuZGF0YSAmJiBldmVudC5kYXRhLm1lc3NhZ2UpIHtcclxuICAgICAgc3dpdGNoIChldmVudC5kYXRhLm1lc3NhZ2UpIHtcclxuICAgICAgICBjYXNlICdyZWFkeSc6XHJcbiAgICAgICAgICB0aGlzLnRsZFN5c3RlbS5zeXNMaXN0LnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgICAgICBsZXQgc3lzdGVtTGlzdFRvSWZyYW1lID0gW107XHJcbiAgICAgICAgICAgICAgZGF0YS5mb3JFYWNoKChzeXMsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzeXN0ZW1MaXN0VG9JZnJhbWUucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgIGlkOiBzeXMuaWQsXHJcbiAgICAgICAgICAgICAgICAgIHNvdXJjZUxhbmd1YWdlOiBzeXMuc291cmNlTGFuZ3VhZ2UsXHJcbiAgICAgICAgICAgICAgICAgIHRhcmdldExhbmd1YWdlOiBzeXMudGFyZ2V0TGFuZ3VhZ2UsXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU6IHN5cy50aXRsZSA/PyBzeXMuaWQsXHJcbiAgICAgICAgICAgICAgICAgIG9yZGVyOiBpbmRleCxcclxuICAgICAgICAgICAgICAgICAgZG9tYWluOiBzeXMuZG9tYWluXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgLy8gcHVzaCBzeXN0ZW0gbGlzdCB0byBpZnJhbWVcclxuICAgICAgICAgICAgICB0aGlzLnNldHRpbmdTeXN0ZW1MaXN0Rm9yRmlyc3RUaW1lID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ3NldFN5c3RlbUxpc3QnLCBzeXN0ZW1MaXN0OiBzeXN0ZW1MaXN0VG9JZnJhbWUgfSk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudXJsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ2xvYWRVcmwnLFxyXG4gICAgICAgICAgICAgICAgICB1cmw6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudXJsLFxyXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVBZnRlckxvYWQ6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMudXJsVG9UcmFuc2xhdGUgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnVybDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB0aGlzLnVybElucHV0RmllbGQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3VybExvYWRlZCc6XHJcbiAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgLy8gd2VicGFnZSBmaW5pc2hlZCBsb2FkaW5nLCBzZXQgdGhlIGZ1bGwgdXJsIGluIGFkZHJlc3MgYm94XHJcbiAgICAgICAgICB0aGlzLnVybFRvVHJhbnNsYXRlID0gZXZlbnQuZGF0YS51cmw7XHJcbiAgICAgICAgICB0aGlzLnNob3dUcmFuc2xhdGVCdG4gPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlQnV0dG9uID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3RhcnRlZExvYWRpbmcnOlxyXG4gICAgICAgICAgdGhpcy5tb2RlID0gJ2luZGV0ZXJtaW5hdGUnO1xyXG4gICAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5zaG93RW1wdHlWaWV3ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dDYW5jZWwgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd1Jlc3RvcmUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd1RyYW5zbGF0ZUJ0biA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudCwgJ3NhbmRib3gnLCB0aGlzLnNhbmRib3gpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3RvcHBlZExvYWRpbmcnOlxyXG4gICAgICAgICAgaWYgKCF0aGlzLnRyYW5zbGF0aW5nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0NhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dSZXN0b3JlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1RyYW5zbGF0ZUJ0biA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZUJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3lzdGVtQ2hhbmdlZCc6XHJcbiAgICAgICAgICAvLyBzZXQgZGVmYXVsdCBzeXN0ZW0sIHJpZ2h0IGFmdGVyIHdlYiB0cmFuc2xhdGlvbiB3aWRnZXQgaW4gaWZyYW1lIGlzIGxvYWRlZFxyXG4gICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ1N5c3RlbUxpc3RGb3JGaXJzdFRpbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nU3lzdGVtTGlzdEZvckZpcnN0VGltZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ2NoYW5nZVN5c3RlbScsIHN5c3RlbUlkOiB0aGlzLnN3aXRjaGVyT3B0aW9ucy5zeXN0ZW1JZCB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGlmIGluaXRpYXRlZCBieSBsYW5ndWFnZSBvZiB0aGUgbG9hZGVkIHdlYnBhZ2UgYmVpbmcgZGlmZmVyZW50XHJcbiAgICAgICAgICAgIC8vIHRoYW4gc291cmNlIGxhbmd1YWdlIG9mIGN1cnJlbnRseSBzZWxlY3RlZCAgc3lzdGVtXHJcbiAgICAgICAgICAgIC8vIHdlIHNob3VsZCBjaGFuZ2UgdGhlIHN5c3RlbSBpbiBVSSBhbmQgd2FybiB0aGUgdXNlciBhYm91dCB0aGUgZmFjdFxyXG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5hdXRvICYmIGV2ZW50LmRhdGEuY2hhbmdlZCkge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLndlYkxhbmdBdXRvZGV0ZWN0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN5c3RlbUNoYW5nZShldmVudC5kYXRhLnN5c3RlbUlkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3dpdGNoZXJPcHRpb25zLnN5c3RlbUlkID0gZXZlbnQuZGF0YS5zeXN0ZW1JZDtcclxuXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlOiAnY2hhbmdlU3lzdGVtJywgc3lzdGVtSWQ6IHRoaXMuc3dpdGNoZXJPcHRpb25zLnN5c3RlbUlkIH0pO1xyXG5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd0cmFuc2xhdGlvblN0YXJ0ZWQnOlxyXG4gICAgICAgICAgdGhpcy5tb2RlID0gJ2RldGVybWluYXRlJztcclxuICAgICAgICAgIHRoaXMucHJvZ3Jlc3NWYWx1ZSA9IDA7XHJcbiAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0aW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAvLyBkaXNhYmxlIHN5c3RlbSBjaGFuZ2UsIHNob3cgY2FuY2VsIGJ1dHRvblxyXG4gICAgICAgICAgdGhpcy5zaG93VHJhbnNsYXRlQnRuID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dDYW5jZWwgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlQnV0dG9uID0gdHJ1ZTsgIC8vIHRvIGRpc2FibGVTeXN0ZW1DaGFuZ2VcclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd0cmFuc2xhdGlvblN0b3BwZWQnOlxyXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3RyYW5zbGF0ZWQnOlxyXG4gICAgICAgICAgLy8gc2hvdyByZXN0b3JlIGJ1dHRvblxyXG4gICAgICAgICAgdGhpcy5zaG93UmVzdG9yZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNob3dDYW5jZWwgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3VudHJhbnNsYXRlZCc6XHJcbiAgICAgICAgICAvLyBlbmFibGUgc3lzdGVtIGNoYW5nZSwgc2hvdyB0cmFuc2xhdGUgYnV0dG9uXHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVCdXR0b24gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd1Jlc3RvcmUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93VHJhbnNsYXRlQnRuID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3Byb2dyZXNzJzpcclxuICAgICAgICAgIHRoaXMucHJvZ3Jlc3NWYWx1ZSA9IGV2ZW50LmRhdGEucHJvZ3Jlc3M7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdlcnJvcic6XHJcbiAgICAgICAgICAvLyBlbmFibGUgc3lzdGVtIGNoYW5nZSwgc2hvdyB0cmFuc2xhdGUgYnV0dG9uXHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVCdXR0b24gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd1Jlc3RvcmUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93VHJhbnNsYXRlQnRuID0gdHJ1ZTtcclxuICAgICAgICAgIGlmIChjb25zb2xlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXZlbnQuZGF0YS5kZXNjcmlwdGlvbik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnd2FybmluZyc6XHJcbiAgICAgICAgICBpZiAoY29uc29sZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oZXZlbnQuZGF0YS5kZXNjcmlwdGlvbik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbmRNZXNzYWdlKG1lc3NhZ2U6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGVidWcpIHtcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgY29uc29sZS5pbmZvKCdNZXNzYWdlIHNlbnQgdG8gaWZyYW1lOicgKyBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgd2luZG93LnBvc3RNZXNzYWdlKG1lc3NhZ2UsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTWVzc2FnZShpeDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1lc3NhZ2VzLnNwbGljZShpeCwgMSk7XHJcbiAgfVxyXG5cclxuICBzd2FwTGFuZ3VhZ2VzKCkge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uc3dhcFN5c3RlbUxhbmd1YWdlcygpO1xyXG5cclxuICAgIGNvbnN0IHN5cyA9IHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZVN5c3RlbU9iaigpO1xyXG4gICAgdGhpcy5zZW5kTWVzc2FnZSh7IG1lc3NhZ2U6ICdjaGFuZ2VTeXN0ZW0nLCBzeXN0ZW1JZDogc3lzLmlkIH0pO1xyXG4gIH1cclxuXHJcbiAgc3lzdGVtQ2hhbmdlKHN5c3RlbUlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGxkU3lzdGVtLmNoYW5nZVN5c3RlbShzeXN0ZW1JZCk7XHJcblxyXG4gICAgdGhpcy5zZW5kTWVzc2FnZSh7IG1lc3NhZ2U6ICdjaGFuZ2VTeXN0ZW0nLCBzeXN0ZW1JZCB9KTtcclxuICB9XHJcblxyXG4gIHNvdXJjZUxhbmd1YWdlQ2hhbmdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGxkU3lzdGVtLmNoYW5nZUxhbmd1YWdlKGxhbmd1YWdlLCB0aGlzLnN3aXRjaGVyT3B0aW9ucy50YXJnZXQuY29kZSk7XHJcblxyXG4gICAgY29uc3Qgc3lzID0gdGhpcy50bGRTeXN0ZW0uZ2V0QWN0aXZlU3lzdGVtT2JqKCk7XHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ2NoYW5nZVN5c3RlbScsIHN5c3RlbUlkOiBzeXMuaWQgfSk7XHJcbiAgfVxyXG5cclxuICB0YXJnZXRMYW5ndWFnZUNoYW5nZShsYW5ndWFnZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRsZFN5c3RlbS5jaGFuZ2VMYW5ndWFnZSh0aGlzLnN3aXRjaGVyT3B0aW9ucy5zb3VyY2UuY29kZSwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIGNvbnN0IHN5cyA9IHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZVN5c3RlbU9iaigpO1xyXG4gICAgdGhpcy5zZW5kTWVzc2FnZSh7IG1lc3NhZ2U6ICdjaGFuZ2VTeXN0ZW0nLCBzeXN0ZW1JZDogc3lzLmlkIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNsYXRlQnV0dG9uQ2xpY2soKSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZENvbGxlY3Rpb25JZCA9IHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLnNlbGVjdGVkSWRGb3JUcmFuc2xhdGlvbih0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVTeXN0ZW1PYmooKS5pZCk7XHJcblxyXG4gICAgaWYgKHRoaXMudXJsVG9UcmFuc2xhdGUgIT0gJycpIHtcclxuICAgICAgdGhpcy5zZW5kTWVzc2FnZSh7XHJcbiAgICAgICAgbWVzc2FnZTogJ2xvYWRVcmwnLFxyXG4gICAgICAgIHVybDogdGhpcy51cmxUb1RyYW5zbGF0ZSxcclxuICAgICAgICB0cmFuc2xhdGVBZnRlckxvYWQ6IHRydWUsXHJcbiAgICAgICAgdGVybUNvcnB1c0lkOiBzZWxlY3RlZENvbGxlY3Rpb25JZFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWRCdXR0b25DbGlja2VkKCkge1xyXG4gICAgaWYgKHRoaXMudXJsVG9UcmFuc2xhdGUgIT0gJycpIHtcclxuICAgICAgdGhpcy5zZW5kTWVzc2FnZSh7XHJcbiAgICAgICAgbWVzc2FnZTogJ2xvYWRVcmwnLFxyXG4gICAgICAgIHVybDogdGhpcy51cmxUb1RyYW5zbGF0ZSxcclxuICAgICAgICB0cmFuc2xhdGVBZnRlckxvYWQ6IGZhbHNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJVcmxUb1RyYW5zbGF0ZSgpIHtcclxuICAgIHRoaXMudXJsVG9UcmFuc2xhdGUgPSAnJztcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlOiAndW50cmFuc2xhdGUnIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVzdG9yZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlOiAndW50cmFuc2xhdGUnIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0RnJvbUNvbmZpZygpIHtcclxuICAgIGNvbnN0IGNvcmVDb25maWcgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZztcclxuICAgIGNvbnN0IHdlYnRyYW5zbGF0ZUNvbmZpZyA9IHRoaXMuY29uZmlnU2VydmljZS53ZWJ0cmFuc2xhdGVDb25maWc7XHJcbiAgICB0aGlzLmxvZ29Mb2NhdGlvbiA9IHdlYnRyYW5zbGF0ZUNvbmZpZy5sb2dvTG9jYXRpb247XHJcbiAgICB0aGlzLmRlYnVnID0gd2VidHJhbnNsYXRlQ29uZmlnLmRlYnVnO1xyXG4gICAgdGhpcy53ZWJMYW5nQXV0b2RldGVjdCA9IHdlYnRyYW5zbGF0ZUNvbmZpZy53ZWJMYW5nQXV0b2RldGVjdDsgLy8gYWZ0ZXIgcGFnZSBpcyBsb2FkZWQgYXV0byBkZXRlY3QgbGFuZ3VhZ2UgYW5kIGNoYW5nZSBhY3RpdmUgc3lzdGVtXHJcbiAgICB0aGlzLmFsbG93U3VnZ2VzdGlvbnMgPSB3ZWJ0cmFuc2xhdGVDb25maWcuYWxsb3dTdWdnZXN0aW9ucztcclxuICAgIHRoaXMuaGlkZVBvcHVwID0gd2VidHJhbnNsYXRlQ29uZmlnLmhpZGVQb3B1cDtcclxuICAgIHRoaXMudHJhbnNsYXRlUGFnZVBhdGggPSB3ZWJ0cmFuc2xhdGVDb25maWcudHJhbnNsYXRlUGFnZVBhdGg7XHJcbiAgICB0aGlzLmFwcElkID0gY29yZUNvbmZpZy5hcHBJZDtcclxuICAgIHRoaXMuY2xpZW50SWQgPSBjb3JlQ29uZmlnLmNsaWVudElkO1xyXG4gICAgdGhpcy54QXBpS2V5ID0gdGhpcy5jb25maWdTZXJ2aWNlLmFwaVYyQ29uZmlnLnhBcGlLZXk7XHJcblxyXG4gICAgaWYgKHRoaXMuYXBpVmVyc2lvbiA9PSBUcmFuc2xhdGlvbkFwaVZlcnNpb24uVjEpIHtcclxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlVXJsID0gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcudHJhbnNsYXRpb25TZXJ2aWNlVXJsO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmFwaVZlcnNpb24gPT0gVHJhbnNsYXRpb25BcGlWZXJzaW9uLlYyKSB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZVVybCA9IHRoaXMuY29uZmlnU2VydmljZS5hcGlWMkNvbmZpZy50cmFuc2xhdGlvblVybDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9Ib21lKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnJyk7XHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ3VudHJhbnNsYXRlJyB9KTtcclxuICB9XHJcblxyXG4gIGFkZFNjcmlwdCh1cmw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICBzY3JpcHQuc3JjID0gdXJsO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xyXG4gIH1cclxuXHJcbiAgYWRkQ29uZmlndXJhdGlvblNjcmlwKCk6IHZvaWQge1xyXG4gICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmJvZHkgYXMgSFRNTERpdkVsZW1lbnQ7XHJcbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XHJcbiAgICBzY3JpcHQuaW5uZXJIVE1MID0gJyc7XHJcbiAgICBzY3JpcHQuaW5uZXJIVE1MID0gYFxyXG5cclxuICAgIGlmICh0eXBlb2YgKFRpbGRlKSA9PT0gJ3VuZGVmaW5lZCcpXHJcbiAgICAgICAgVGlsZGUgPSB7fTtcclxuXHJcbiAgICAgICAgVGlsZGUuUGFnZVRyYW5zbGF0ZVdpZGdldFNlcnZlckNvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgICAgICB0cmFuc2xhdGVTZXJ2aWNlVXJsOiAnJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2VVcmx9JyxcclxuICAgICAgICB9O1xyXG5cclxuICAgIFRpbGRlLlBhZ2VUcmFuc2xhdGVXaWRnZXRDbGllbnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBUcmFuc2xhdGVQYWdlUHJlZml4OiBsb2NhdGlvbi5ob3N0ICsgJy8ke3RoaXMudHJhbnNsYXRlUGFnZVBhdGh9LycsXHJcblxyXG4gICAgICAgIC8vIFVybCBvZiB0aGUgcGxhY2Ugd2hlcmUgQ1NTIGZvciB0cmFuc2xhdGlvbiB3aWRnZXQgaXMga2VwdFxyXG4gICAgICAgIC8vIGlmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSB0aGUgc3RhbmRhcmQgbGV0c210IHN0eWxlLFxyXG4gICAgICAgIC8vIHBvaW50IHRoaXMgdG8geW91ciBvd24gY3NzIGZpbGVcclxuICAgICAgICBjc3NMb2NhdGlvbjogJy4vYXNzZXRzL3dlYnRyYW5zbGF0ZS93aWRnZXQuY3NzJyxcclxuXHJcbiAgICAgICAgLy8geC1hcGkta2V5IGZvciBhdXRob3JpemF0aW9uXHJcbiAgICAgICAgeEFwaUtleTogXCIke3RoaXMueEFwaUtleX1cIixcclxuXHJcbiAgICAgICAgLy8gY2xpZW50IGlkIGZvciBhdXRob3JpemF0aW9uXHJcbiAgICAgICAgY2xpZW50SWQ6IFwiJHt0aGlzLmNsaWVudElkfVwiLFxyXG5cclxuICAgICAgICAvL2FwaSB2ZXJzaW9uXHJcbiAgICAgICAgYXBpVmVyc2lvbjogXCIke3RoaXMuYXBpVmVyc2lvbn1cIiwgIC8vIDAgLSBWMTsgMSAtIFYyXHJcblxyXG4gICAgICAgIC8vIGVuYWJsZSBvciBkaXNhYmxlIG9yaWdpbmFsIHRleHQgcG9wdXBcclxuICAgICAgICBoaWRlUG9wdXA6ICR7dGhpcy5oaWRlUG9wdXB9LFxyXG5cclxuICAgICAgICAvLyBpZCBvZiB0aGUgPGRpdj4gd2hlcmUgdG8gZHJhdyB3aWRnZXRcclxuICAgICAgICB3aWRnZXRDb250YWluZXJJZDogXCJQYWdlVHJhbnNsYXRlV2lkZ2V0XCIsXHJcblxyXG4gICAgICAgIC8vIGF2YWlsYWJsZSB0cmFuc2xhdGlvbiBzeXN0ZW1zICh0YXJnZXQgbGFuZ3VhZ2VzKVxyXG4gICAgICAgIHRyYW5zbGF0aW9uU3lzdGVtczogW10sXHJcblxyXG4gICAgICAgIC8vIHNvdXJjZSBsYW5ndWFnZSBvZiB0aGUgcGFnZSB0aGF0IG5lZWRzIHRvIGJlIHRyYW5zbGF0ZWRcclxuICAgICAgICBsYW5ndWFnZTogXCJlblwiLFxyXG5cclxuICAgICAgICAvLyB0cmFuc2xhdGUgd2lkZ2V0IFVJIHRvIGxhbmd1YWdlIHRoYXQgaXMgY2hvc2VuIGluIHRhcmdldCBsYW5ndWFnZSBkcm9wZG93blxyXG4gICAgICAgIHRyYW5zbGF0ZVVJdG9DaG9zZW5MYW5ndWFnZTogZmFsc2UsXHJcblxyXG4gICAgICAgIC8vIHRyYW5zbGF0ZSB3aWRnZXQgYWRtaW5pc3RyYXRpdmUgcGFydCB0byBsYW5ndWFnZSB0aGF0IGlzIGNob3NlbiBpbiB0YXJnZXQgbGFuZ3VhZ2UgZHJvcGRvd25cclxuICAgICAgICB0cmFuc2xhdGVBZG1pblVJdG9DaG9zZW5MYW5ndWFnZTogZmFsc2UsXHJcblxyXG4gICAgICAgIHVpTGFuZ3VhZ2U6IFwiJHt0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZ31cIixcclxuXHJcbiAgICAgICAgLy8gaWYgcGFnZSB3YXMgdHJhbnNsYXRlZCBhbmQgeW91IGNsaWNrIG9uIGEgbGlua1xyXG4gICAgICAgIC8vIHRoYXQgZ29lcyB0byBhbm90aGVyIHBhZ2UgaW4gdGhlIHNhbWUgc2l0ZSxcclxuICAgICAgICAvLyB0aGVuIHRyYW5zbGF0ZSB0aGUgbmV3bHkgb3BlbmVkIHBhZ2UgYWxzb1xyXG4gICAgICAgIHRyYW5zbGF0ZUFmdGVyTmF2aWdhdGlvbjogdHJ1ZSxcclxuXHJcbiAgICAgICAgLy8gdHJ1ZSAtIGxhbmd1YWdlIGxpc3QgaXMgc2hvd24gYXMgbGlua3NcclxuICAgICAgICAvLyBmYWxzZSAtIGxhbmd1YWdlIGxpc3QgaXMgc2hvd24gYXMgZHJvcGRvd24gbGlzdCBhbmQgXCJ0cmFuc2xhdGVcIiBidXR0b25cclxuICAgICAgICBsYW5ndWFnZUxpc3RBc0xpbmtzOiBmYWxzZSxcclxuXHJcbiAgICAgICAgc2hvd0hlYWRlcjogZmFsc2UsXHJcblxyXG4gICAgICAgIHNob3dUcmFuc2xhdGlvblN1Z2dlc3Rpb25BZG1pblBhZ2U6IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyBhZnRlciB0cmFuc2xhdGlvbiBzaG93IGEgd2FybmluZyB0aGF0IHBhZ2UgaXMgbWFjaGluZSB0cmFuc2xhdGVkIGF0IHRoZSB0b3Agb2YgdGhlIHBhZ2VcclxuICAgICAgICBzaG93TWFjaGluZVRyYW5zbGF0aW9uV2FybmluZ0FmdGVyVHJhbnNsYXRpb246IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyBzaG93IGFsbCBhdmFpbGFibGUgdHJhbnNsYXRpb24gc3lzdGVtcyBpbnN0ZWFkIG9mIGp1c3QgdGhlIG9uZXMgY29uZmlndXJlZCBpbiB0aGlzIGZpbGVcclxuICAgICAgICBzaG93QWxsVHJhbnNsYXRpb25TeXN0ZW1zOiBmYWxzZSxcclxuXHJcbiAgICAgICAgLy8gYWRkIHNvbWUgcGl4ZWxzIHRvIGRyb3Bkb3duIHBhZGRpbmcgdG8gbWFrZSBpdCBsb29rIG1vcmUgc2ltaWxhciBvbiBkaWZmZXJlbnQgYnJvd3NlcnNcclxuICAgICAgICBicm93c2VyU3BlY2lmaWNEcm9wZG93blBhZGRpbmc6IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyBuYW1lIG9mIGljb24gc2V0OiBcImRlZmF1bHRcIiwgXCJ3aGl0ZVwiLCBcImdyZXlcIiwgXCJyZWRcIlxyXG4gICAgICAgIGljb25TZXQ6IFwid2hpdGVcIixcclxuXHJcbiAgICAgICAgLy8gUG9zc2libGUgdmFsdWVzOiAxLCAyLCAzLiBUZXh0IGZvciBsaW5rIFwiUmVzdG9yZSBvcmlnaW5hbDogTGF0dmlhblwiIG1heSBiZSBtYWRlIHNob3J0ZXIgb3IgbG9uZ2VyXHJcbiAgICAgICAgLy8gdXNlZnVsIHRvIGFkYXB0IHRvIHNtYWxsIG9yIGxhcmdlIHNjcmVlbnNcclxuICAgICAgICByZXN0b3JlT3JpZ2luYWxMaW5rTGVuZ3RoOiAyLFxyXG5cclxuICAgICAgICAvLyBlbmFibGUgb3IgZGlzYWJsZSBcIlN1Z2dlc3QgdHJhbnNsYXRpb25cIiBsaW5rIGluIHBvcHVwIHRoYXQgc2hvd3Mgb3JpZ2luYWwgdGV4dCBvZiB0cmFuc2xhdGVkIHNlbnRlbmNlXHJcbiAgICAgICAgc3VnZ2VzdFRyYW5zbGF0aW9uOiAke3RoaXMuYWxsb3dTdWdnZXN0aW9uc30sXHJcblxyXG4gICAgICAgIC8vIHNob3cgbWVzc2FnZSBib3ggd2hlbiBlcnJvciBoYXBwZW5zP1xyXG4gICAgICAgIHNob3dNZXNzYWdlQm94T25FcnJvcjogZmFsc2UsXHJcblxyXG4gICAgICAgIC8vIGFwcGxpY2F0aW9uIGlkZW50aWZpZXJcclxuICAgICAgICBhcHBJZDogXCIke3RoaXMuYXBwSWR9XCIsXHJcblxyXG4gICAgICAgIC8vIHNlcnZlciB3aWxsIG9ubHkgcmV0dXJuIHN5c3RlbXMgdGhhdCBhcmUgbWVhbnQgZm9yIGdpdmVuIGFwcElkXHJcbiAgICAgICAgZmlsdGVyU3lzdGVtc0J5QXBwSWQ6IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyBzaG93IGhlbHAgbGlua1xyXG4gICAgICAgIGVuYWJsZUhlbHA6IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyBzaG93IGZlZWRiYWNrIGxpbmtcclxuICAgICAgICBlbmFibGVGZWVkYmFjazogZmFsc2UsXHJcblxyXG4gICAgICAgIC8vIGFsbG93ZWQgc3lzdGVtIHN0YXR1c2VzLCBieSBkZWZhdWx0IG9ubHkgXCJydW5uaW5nXCJcclxuICAgICAgICBhbGxvd2VkU3lzdGVtU3RhdHVzZXM6IFwicnVubmluZ1wiLFxyXG5cclxuICAgICAgICAvLyBwYXNzZWQgdG8gdHJhbnNsYXRpb24gc2VydmljZSBmb3IgbG9nZ2luZy5cclxuICAgICAgICAvLyBcIndlYi1lbWJlZGRlZFwiIGZvciB3aWRnZXQgdGhhdCBpcyBlbWJlZGRlZCBpbiBodG1sIHBhZ2UsXHJcbiAgICAgICAgLy8gXCJ3ZWJcIiBmb3Igd2lkZ2V0IHRoYXQgY2FuIGxvYWQgYW5kIHRyYW5zbGF0ZSBhbnkgd2Vic2l0ZVxyXG4gICAgICAgIHdpZGdldDogXCJ3ZWJcIlxyXG4gICAgfTtcclxuICAgIGA7XHJcbiAgICBib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ3aWRnZXRcIiBjbGFzcz1cInRsZC10cmFuc2xhdGUtd2ViXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRyYW5zbGF0ZS1jb250YWluZXItaGVhZGVyXCI+XHJcbiAgICA8YSBocmVmPVwiL1wiIGlkPVwiaG9tZS1saW5rXCIgW2F0dHIudGl0bGVdPVwiJ1dFQlRSQU5TTEFURS5CQUNLJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICA8aW1nIFtzcmNdPVwibG9nb0xvY2F0aW9uXCIgYWx0PVwibG9nb1wiPlxyXG4gICAgICA8bGliLWNvbXBhbnktcHJvZHVjdCAqbmdJZj1cImNvbXBhbnkgJiYgcHJvZHVjdFwiIFtjb21wYW55XT1cImNvbXBhbnlcIiBbcHJvZHVjdF09XCJwcm9kdWN0XCI+PC9saWItY29tcGFueS1wcm9kdWN0PlxyXG4gICAgPC9hPlxyXG4gICAgPGRpdiBbbmdDbGFzcy5sdC1zbV09XCIndGxkLXRyYW5zbGF0ZS1tb2JpbGUnXCI+XHJcbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cImFkZHJlc3Mtd3JhcHBlclwiPlxyXG4gICAgICAgIDxhIChjbGljayk9XCJnb1RvSG9tZSgpXCIgW2F0dHIudGl0bGVdPVwiJ1dFQlRSQU5TTEFURS5CQUNLJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmFycm93X2JhY2s8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMTAwJVwiIGNsYXNzPVwiYWRkcmVzcy1pbnB1dFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY29sb3I9XCJhY2NlbnRcIj5cclxuICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwiJ1dFQlRSQU5TTEFURS5TRUFSQ0gnIHwgdHJhbnNsYXRlXCIgdHlwZT1cInVybFwiICN1cmwgY2xhc3M9XCJ1cmxcIiBhdXRvZm9jdXM9XCJhdXRvZm9jdXNcIiBbKG5nTW9kZWwpXT1cInVybFRvVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwibG9hZEJ1dHRvbkNsaWNrZWQoKVwiIC8+XHJcblxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInVybFRvVHJhbnNsYXRlXCIgW2lubGluZV09XCJ0cnVlXCIgKGNsaWNrKT1cImNsZWFyVXJsVG9UcmFuc2xhdGUoKVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRsZC10cmFuc2xhdGUtc3dpdGNoZXItd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4RmxleD5cclxuICAgICAgICAgIDx0bGQtdHJhbnNsYXRlLXN3aXRjaGVyXHJcbiAgICAgICAgICAgICpuZ0lmPVwic3dpdGNoZXJPcHRpb25zXCJcclxuICAgICAgICAgICAgW2lzQ29sbGVjdGlvbnNBY3RpdmF0ZWRdPVwiaXNDb2xsZWN0aW9uc0FjdGl2YXRlZFwiXHJcbiAgICAgICAgICAgIFt1c2VQYXJlbnRXaWR0aF09XCJ1c2VQYXJlbnRXaWR0aFwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25CdXR0b25EaXNhYmxlZFwiXHJcbiAgICAgICAgICAgIFtzZXR0aW5nc109XCJzd2l0Y2hlck9wdGlvbnNcIlxyXG4gICAgICAgICAgICBbc2hvd1RyYW5zbGF0ZUJ1dHRvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtoaWRlT25TbWFsbFNjcmVlbnNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbaGlkZUxhbmdNZW51TGFiZWxzXT1cImhpZGVMYW5nTWVudUxhYmVsc1wiXHJcbiAgICAgICAgICAgIFttYXhEaXNwbGF5ZWRMYW5ndWFnZXNdPVwibWF4RGlzcGxheWVkTGFuZ3VhZ2VzXCJcclxuICAgICAgICAgICAgW3Nob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZV09XCJzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWVcIlxyXG4gICAgICAgICAgICAob25Eb21haW5DaGFuZ2UpPVwic3lzdGVtQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAob25BY3Rpb25DbGljayk9XCJ0cmFuc2xhdGVCdXR0b25DbGljaygpXCJcclxuICAgICAgICAgICAgKG9uTGFuZ3VhZ2VTd2FwKT1cInN3YXBMYW5ndWFnZXMoKVwiXHJcbiAgICAgICAgICAgIChvblNvdXJjZUxhbmd1YWdlQ2hhbmdlKT1cInNvdXJjZUxhbmd1YWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAob25UYXJnZXRMYW5ndWFnZUNoYW5nZSk9XCJ0YXJnZXRMYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L3RsZC10cmFuc2xhdGUtc3dpdGNoZXI+XHJcbiAgICAgICAgICA8ZGl2IGZ4RmxleEFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJhY3Rpb24tYnRuLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPHRsZC10cmFuc2xhdGUtYnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzaG93VHJhbnNsYXRlQnRuXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInN3aXRjaGVyLXRyYW5zbGF0ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25CdXR0b25EaXNhYmxlZCB8fCAhdXJsVG9UcmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPC90bGQtdHJhbnNsYXRlLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dDYW5jZWxcIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwiY2FuY2VsKClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiPnt7J1dFQlRSQU5TTEFURS5DQU5DRUwnIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dSZXN0b3JlXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cInJlc3RvcmUoKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJyZXN0b3JlLWJ1dHRvblwiPnt7J1dFQlRSQU5TTEFURS5SRVNUT1JFJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBpZD1cIndlYnNpdGUtZnJhbWUtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cInNob3dQcm9ncmVzc1wiIGNvbG9yPVwiYWNjZW50XCIgW21vZGVdPVwibW9kZVwiIFt2YWx1ZV09XCJwcm9ncmVzc1ZhbHVlXCI+XHJcbiAgICA8L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSBbQG9wZW5DbG9zZUFuaW1hdGlvbl0gKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2YgbWVzc2FnZXM7IGxldCBpeCA9IGluZGV4XCIgW21lc3NhZ2VdPVwibWVzc2FnZVwiXHJcbiAgICAgIChjbG9zZUNsaWNrZWQpPVwicmVtb3ZlTWVzc2FnZShpeClcIj48L2xpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2U+XHJcbiAgICBcclxuICAgIDxpZnJhbWUgI2lmcmFtZSBbY2xhc3MuaC1mdWxsXT1cIiFzaG93RW1wdHlWaWV3XCIgaWQ9XCJsZXRzbXQtdHJhbnNsYXRlLXBhZ2UtaWZyYW1lXCIgbmFtZT1cImxldHNtdFRyYW5zbGF0ZVBhZ2VJZnJhbWVcIiBzcmM9XCJhYm91dDpibGFua1wiPjwvaWZyYW1lPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bGliLXN0YXR1cy1kaXNwbGF5ICpuZ0lmPVwic2hvd0VtcHR5Vmlld1wiIFtjb25maWddPVwiZW1wdHlWaWV3Q29uZmlnXCI+PC9saWItc3RhdHVzLWRpc3BsYXk+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -8405,6 +8405,7 @@ class TldTranslateWebsiteComponent {
|
|
|
8405
8405
|
translatePagePath; // path to WebTranslationProxy
|
|
8406
8406
|
clientId;
|
|
8407
8407
|
appId;
|
|
8408
|
+
xApiKey;
|
|
8408
8409
|
translateServiceUrl;
|
|
8409
8410
|
switcherOptions;
|
|
8410
8411
|
onError = new EventEmitter();
|
|
@@ -8708,6 +8709,7 @@ class TldTranslateWebsiteComponent {
|
|
|
8708
8709
|
this.translatePagePath = webtranslateConfig.translatePagePath;
|
|
8709
8710
|
this.appId = coreConfig.appId;
|
|
8710
8711
|
this.clientId = coreConfig.clientId;
|
|
8712
|
+
this.xApiKey = this.configService.apiV2Config.xApiKey;
|
|
8711
8713
|
if (this.apiVersion == TranslationApiVersion.V1) {
|
|
8712
8714
|
this.translateServiceUrl = this.configService.coreConfig.translationServiceUrl;
|
|
8713
8715
|
}
|
|
@@ -8746,6 +8748,9 @@ class TldTranslateWebsiteComponent {
|
|
|
8746
8748
|
// point this to your own css file
|
|
8747
8749
|
cssLocation: './assets/webtranslate/widget.css',
|
|
8748
8750
|
|
|
8751
|
+
// x-api-key for authorization
|
|
8752
|
+
xApiKey: "${this.xApiKey}",
|
|
8753
|
+
|
|
8749
8754
|
// client id for authorization
|
|
8750
8755
|
clientId: "${this.clientId}",
|
|
8751
8756
|
|