raise-common-lib 0.0.235-beta → 0.0.236-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -57
- package/bundles/raise-common-lib.umd.js +62 -30
- package/bundles/raise-common-lib.umd.js.map +1 -1
- package/bundles/raise-common-lib.umd.min.js +1 -1
- package/bundles/raise-common-lib.umd.min.js.map +1 -1
- package/esm2015/lib/commentary/index.component.js +3 -2
- package/esm2015/lib/common-grid/grid-action/grid-action.component.js +3 -2
- package/esm2015/lib/common-grid/index.component.js +3 -2
- package/esm2015/lib/dashboard/dashboard-properties/data-mart-new/data-mart-new.component.js +4 -3
- package/esm2015/lib/dashboard/dashboardPorlets.service.js +4 -3
- package/esm2015/lib/dashboard/dialog-group/download/index.component.js +3 -2
- package/esm2015/lib/dashboard/gadget-group/gadget-pivot/gadget-pivot.component.js +3 -2
- package/esm2015/lib/dashboard/gadget-group/gadget-pivot-chart/gadget-pivot.component.js +3 -2
- package/esm2015/lib/dashboard/gadget-group/gadget-table/gadget-table.component.js +3 -2
- package/esm2015/lib/dashboard/gadget-group/gadget-transpose/gadget-transpose.component.js +3 -2
- package/esm2015/lib/dashboard/pane-group-new.component.js +4 -3
- package/esm2015/lib/dashboard/sidebar-iconlist/field-filter/field-filter.component.js +3 -2
- package/esm2015/lib/dashboard/sidebar-iconlist/field-format/field-format.component.js +3 -2
- package/esm2015/lib/dashboard/sidebar-iconlist/portlet-type-new/portlet-type-new.component.js +3 -2
- package/esm2015/lib/dashboard/sidebar-iconlist/sidebar-iconlist-new.component.js +4 -3
- package/esm2015/lib/dialog/common-delete-dialog/index.component.js +3 -2
- package/esm2015/lib/dialog/common-dialog/index.component.js +3 -2
- package/esm2015/lib/form/checkbox-group/index.component.js +3 -2
- package/esm2015/lib/form/confirm-select/index.component.js +3 -2
- package/esm2015/lib/form/search-input/index.component.js +3 -2
- package/esm2015/lib/layout/grid-box/index.component.js +3 -2
- package/esm2015/lib/layout/multi-tab/index.component.js +3 -2
- package/esm2015/lib/layout/page-list/index.component.js +3 -2
- package/esm2015/lib/layout/rs-header/index.component.js +5 -4
- package/esm2015/lib/service/dialog.service.js +3 -2
- package/esm2015/lib/utils/utils.js +32 -0
- package/esm5/lib/commentary/index.component.js +3 -2
- package/esm5/lib/common-grid/grid-action/grid-action.component.js +3 -2
- package/esm5/lib/common-grid/index.component.js +3 -2
- package/esm5/lib/dashboard/dashboard-properties/data-mart-new/data-mart-new.component.js +4 -3
- package/esm5/lib/dashboard/dashboardPorlets.service.js +4 -3
- package/esm5/lib/dashboard/dialog-group/download/index.component.js +3 -2
- package/esm5/lib/dashboard/gadget-group/gadget-pivot/gadget-pivot.component.js +3 -2
- package/esm5/lib/dashboard/gadget-group/gadget-pivot-chart/gadget-pivot.component.js +3 -2
- package/esm5/lib/dashboard/gadget-group/gadget-table/gadget-table.component.js +3 -2
- package/esm5/lib/dashboard/gadget-group/gadget-transpose/gadget-transpose.component.js +3 -2
- package/esm5/lib/dashboard/pane-group-new.component.js +4 -3
- package/esm5/lib/dashboard/sidebar-iconlist/field-filter/field-filter.component.js +3 -2
- package/esm5/lib/dashboard/sidebar-iconlist/field-format/field-format.component.js +3 -2
- package/esm5/lib/dashboard/sidebar-iconlist/portlet-type-new/portlet-type-new.component.js +3 -2
- package/esm5/lib/dashboard/sidebar-iconlist/sidebar-iconlist-new.component.js +4 -3
- package/esm5/lib/dialog/common-delete-dialog/index.component.js +3 -2
- package/esm5/lib/dialog/common-dialog/index.component.js +3 -2
- package/esm5/lib/form/checkbox-group/index.component.js +3 -2
- package/esm5/lib/form/confirm-select/index.component.js +3 -2
- package/esm5/lib/form/search-input/index.component.js +3 -2
- package/esm5/lib/layout/grid-box/index.component.js +3 -2
- package/esm5/lib/layout/multi-tab/index.component.js +3 -2
- package/esm5/lib/layout/page-list/index.component.js +3 -2
- package/esm5/lib/layout/rs-header/index.component.js +5 -4
- package/esm5/lib/service/dialog.service.js +3 -2
- package/esm5/lib/utils/utils.js +32 -0
- package/fesm2015/raise-common-lib.js +62 -30
- package/fesm2015/raise-common-lib.js.map +1 -1
- package/fesm5/raise-common-lib.js +62 -30
- package/fesm5/raise-common-lib.js.map +1 -1
- package/lib/utils/utils.d.ts +1 -0
- package/package.json +1 -1
- package/raise-common-lib.metadata.json +1 -1
- package/src/assets/img/arrow_right.svg +4 -4
- package/src/assets/img/calendar-disabled.svg +6 -6
- package/src/assets/img/calendar.svg +6 -6
- package/src/assets/img/calendar_arrow_left.svg +3 -3
- package/src/assets/img/calendar_arrow_right.svg +3 -3
- package/src/assets/img/checked-vector.svg +3 -3
- package/src/assets/img/dialog-close.svg +4 -4
- package/src/assets/img/dialog-grow.svg +6 -6
- package/src/assets/img/dialog-shrink.svg +6 -6
- package/src/assets/img/plus.svg +4 -4
- package/src/assets/img/search.svg +4 -4
- package/src/assets/img/shrink-icon.svg +6 -6
- package/src/assets/img/time-disabled.svg +4 -4
- package/src/assets/img/time.svg +4 -4
- package/src/assets/img/toolbar-action-addFolder.svg +17 -17
- package/src/assets/img/toolbar-action-calculator.svg +11 -11
- package/src/assets/img/toolbar-action-collapse.svg +7 -7
- package/src/assets/img/toolbar-action-combine.svg +4 -4
- package/src/assets/img/toolbar-action-edit.svg +4 -4
- package/src/assets/img/toolbar-action-expand.svg +7 -7
- package/src/assets/img/toolbar-action-folderMove.svg +8 -8
- package/src/assets/img/toolbar-action-lock.svg +6 -6
- package/src/assets/img/toolbar-action-preview.svg +7 -7
- package/src/assets/img/toolbar-action-publish.svg +5 -5
- package/src/assets/img/toolbar-action-reminders.svg +10 -10
- package/src/assets/img/toolbar-action-rename.svg +7 -7
- package/src/assets/img/toolbar-action-saveSequence.svg +5 -5
- package/src/assets/img/toolbar-action-send-file.svg +5 -5
- package/src/assets/img/toolbar-action-settle.svg +7 -7
- package/src/assets/img/toolbar-action-share.svg +5 -5
- package/src/assets/img/toolbar-action-submitForApproval.svg +4 -4
- package/src/assets/img/toolbar-action-sync.svg +4 -4
- package/src/assets/img/toolbar-action-template.svg +6 -6
- package/src/assets/img/toolbar-action-workflow.svg +9 -9
|
@@ -12,6 +12,7 @@ import { addClass } from "@syncfusion/ej2-base";
|
|
|
12
12
|
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
|
|
13
13
|
import { PBF_TOKEN } from "../../../service/InjectionToken";
|
|
14
14
|
import { DialogService } from "../../../service/dialog.service";
|
|
15
|
+
import { getTranslation } from "../../../utils/utils";
|
|
15
16
|
var FieldFormatComponent = /** @class */ (function () {
|
|
16
17
|
function FieldFormatComponent(DashboardService, dashboardPorletsService, dialogService, dialogRef, data, pbf) {
|
|
17
18
|
this.DashboardService = DashboardService;
|
|
@@ -33,7 +34,7 @@ var FieldFormatComponent = /** @class */ (function () {
|
|
|
33
34
|
* @return {?}
|
|
34
35
|
*/
|
|
35
36
|
function () {
|
|
36
|
-
this.translation =
|
|
37
|
+
this.translation = getTranslation();
|
|
37
38
|
this.alignList = this.setAlignList();
|
|
38
39
|
this.fontSizeList = this.setFontSizeList();
|
|
39
40
|
this.compareList = this.setCompareList();
|
|
@@ -1181,4 +1182,4 @@ if (false) {
|
|
|
1181
1182
|
*/
|
|
1182
1183
|
FieldFormatComponent.prototype.pbf;
|
|
1183
1184
|
}
|
|
1184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZm9ybWF0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3JhaXNlLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvZGFzaGJvYXJkL3NpZGViYXItaWNvbmxpc3QvZmllbGQtZm9ybWF0L2ZpZWxkLWZvcm1hdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUVOLFNBQVMsRUFFVCxNQUFNLEVBRU4sUUFBUSxFQUNSLFNBQVMsRUFDVCxZQUFZLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHaEU7SUErQkMsOEJBQ1MsZ0JBQWtDLEVBQ25DLHVCQUFnRCxFQUMvQyxhQUE0QixFQUM3QixTQUE2QyxFQUNwQixJQUFTLEVBQ0YsR0FBUTtRQUx2QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ25DLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDL0Msa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBb0M7UUFDcEIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNGLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFyQnpDLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBTXRCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FB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OztJQUNsQyxzQ0FBd0I7O0lBQ3hCLDJDQUFtQzs7SUFDbkMsMENBQXVCOztJQUN2Qiw0Q0FBb0I7O0lBQ3BCLHNEQUE4Qjs7Ozs7SUFDOUIsNkNBQXNCOzs7OztJQUN0QiwwQ0FBbUI7Ozs7O0lBR2xCLGdEQUEwQzs7SUFDMUMsdURBQXVEOzs7OztJQUN2RCw2Q0FBb0M7O0lBQ3BDLHlDQUFvRDs7SUFDcEQsb0NBQXlDOzs7OztJQUN6QyxtQ0FBK0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENoYW5nZURldGVjdG9yUmVmLFxyXG5cdENvbXBvbmVudCxcclxuXHRFbGVtZW50UmVmLFxyXG5cdEluamVjdCxcclxuXHRPbkluaXQsXHJcblx0T3B0aW9uYWwsXHJcblx0UXVlcnlMaXN0LFxyXG5cdFZpZXdDaGlsZHJlbixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2Rhc2hib2FyZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhc2hib2FyZFBvcmxldHNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2Rhc2hib2FyZFBvcmxldHMuc2VydmljZVwiO1xyXG4vL3N5bmNmdXNpb25cclxuaW1wb3J0IHsgYWRkQ2xhc3MgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWJhc2VcIjtcclxuaW1wb3J0IHsgQ29sb3JQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItaW5wdXRzXCI7XHJcbmltcG9ydCB7IENvbG9yUGlja2VyRXZlbnRBcmdzIH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1pbnB1dHNcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IFBCRl9UT0tFTiB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL0luamVjdGlvblRva2VuXCI7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiBcInJzLWZpZWxkLWZvcm1hdFwiLFxyXG5cdHRlbXBsYXRlVXJsOiBcIi4vZmllbGQtZm9ybWF0LmNvbXBvbmVudC5odG1sXCIsXHJcblx0c3R5bGVVcmxzOiBbXCIuL2ZpZWxkLWZvcm1hdC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpZWxkRm9ybWF0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRAVmlld0NoaWxkcmVuKFwiY29sb3JwaWNrZXJcIikgY29sb3JQaWNrZXI6IFF1ZXJ5TGlzdDxDb2xvclBpY2tlckNvbXBvbmVudD47XHJcblx0QFZpZXdDaGlsZHJlbihcImNvbG9ycGlja2VyRm9udFwiKVxyXG5cdGNvbG9yUGlja2VyRm9udDogUXVlcnlMaXN0PENvbG9yUGlja2VyQ29tcG9uZW50PjtcclxuXHRAVmlld0NoaWxkcmVuKFwicHJldmlld0NvbG9yXCIpIFByZXZpZXdDb2xvcjogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG5cdEBWaWV3Q2hpbGRyZW4oXCJjb2xvcnBpY2tlckJ1cmRlblwiKVxyXG5cdGNvbG9ycGlja2VyQnVyZGVuOiBRdWVyeUxpc3Q8Q29sb3JQaWNrZXJDb21wb25lbnQ+O1xyXG5cdEBWaWV3Q2hpbGRyZW4oXCJjb2xvcnBpY2tlckZvbnRCdXJkZW5cIilcclxuXHRjb2xvcnBpY2tlckZvbnRCdXJkZW46IFF1ZXJ5TGlzdDxDb2xvclBpY2tlckNvbXBvbmVudD47XHJcblx0QFZpZXdDaGlsZHJlbihcInByZXZpZXdDb2xvckJ1cmRlblwiKVxyXG5cdHByZXZpZXdDb2xvckJ1cmRlbjogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG5cdHB1YmxpYyB0cmFuc2xhdGlvbjogYW55ID0ge307XHJcblx0cHVibGljIGFsaWduTGlzdDogQXJyYXk8YW55PjtcclxuXHRwdWJsaWMgZm9udFNpemVMaXN0OiBBcnJheTxhbnk+O1xyXG5cdHB1YmxpYyBjb21wYXJlTGlzdDogQXJyYXk8YW55PjtcclxuXHRwdWJsaWMgc3RyaW5nQW5kRGF0ZUNvbXBhcmVMaXN0OiBBcnJheTxhbnk+O1xyXG5cdHB1YmxpYyBmb250RmFtaWx5TGlzdDogQXJyYXk8YW55PjtcclxuXHRwdWJsaWMgY29tcGFyZVNlbGVjdDogc3RyaW5nID0gXCJcIjtcclxuXHRwdWJsaWMgY29uZmlnOiBhbnkgPSB7fTtcclxuXHRwdWJsaWMgQ29uZGl0aW9uYWw6IGJvb2xlYW4gPSB0cnVlO1xyXG5cdHB1YmxpYyBmaWVsZHNsaXN0ID0gW107XHJcblx0cHVibGljIGN1cnJlbnRGaWVsZDtcclxuXHRwdWJsaWMgY3VycmVudEZpZWxkRm9ybWF0SW5mbztcclxuXHRwcml2YXRlIHF1YXJ0ZXJGb3JtYXQ7XHJcblx0cHJpdmF0ZSBkYXRlRm9ybWF0O1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgRGFzaGJvYXJkU2VydmljZTogRGFzaGJvYXJkU2VydmljZSxcclxuXHRcdHB1YmxpYyBkYXNoYm9hcmRQb3JsZXRzU2VydmljZTogRGFzaGJvYXJkUG9ybGV0c1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcblx0XHRwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RmllbGRGb3JtYXRDb21wb25lbnQ+LFxyXG5cdFx0QEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXHJcblx0XHRAT3B0aW9uYWwoKSBASW5qZWN0KFBCRl9UT0tFTikgcHJpdmF0ZSBwYmY6IGFueSxcclxuXHJcblx0KSB7IH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLnRyYW5zbGF0aW9uID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRyYW5zbGF0aW9uXCIpKTtcclxuXHRcdHRoaXMuYWxpZ25MaXN0ID0gdGhpcy5zZXRBbGlnbkxpc3QoKTtcclxuXHRcdHRoaXMuZm9udFNpemVMaXN0ID0gdGhpcy5zZXRGb250U2l6ZUxpc3QoKTtcclxuXHRcdHRoaXMuY29tcGFyZUxpc3QgPSB0aGlzLnNldENvbXBhcmVMaXN0KCk7XHJcblx0XHR0aGlzLnN0cmluZ0FuZERhdGVDb21wYXJlTGlzdCA9IHRoaXMuc2V0U3RyaW5nQW5kRGF0ZUNvbXBhcmVMaXN0KCk7XHJcblx0XHR0aGlzLmZvbnRGYW1pbHlMaXN0ID0gdGhpcy5zZXRGb250RmFtaWx5TGlzdCgpO1xyXG5cdFx0dGhpcy5xdWFydGVyRm9ybWF0ID0gdGhpcy5zZXRRdWFydGVyRm9ybWF0KCk7XHJcblx0XHR0aGlzLmRhdGVGb3JtYXQgPSB0aGlzLnNldERhdGVGb3JtYXQoKTtcclxuXHRcdGlmICh0aGlzLmRhdGEucG9ydGxldERhdGEpIHRoaXMuZ2V0Q29uZGl0aW9uYWxEYXRhKCk7XHJcblx0fVxyXG5cclxuXHQvLyDojrflj5ZmaWVsZCBsaXN06aG16Z2i5pWw5o2uXHJcblx0cHJpdmF0ZSBnZXRDb25kaXRpb25hbERhdGEoKSB7XHJcblx0XHR0aGlzLmNvbmZpZyA9IEpTT04ucGFyc2UodGhpcy5kYXRhLnBvcnRsZXREYXRhLmNvbmZpZyk7XHJcblx0XHR0aGlzLmZpZWxkc2xpc3QgPSBbXTtcclxuXHRcdC8vcGl2b3QgdGFibGUvY2hhcnQoZ2V0IHRoZSByb3dzLGNvbHVtcyx2YWx1ZXMgZXRjKVxyXG5cdFx0aWYgKFxyXG5cdFx0XHRbXHJcblx0XHRcdFx0XCJwaXZvdFwiLFxyXG5cdFx0XHRcdFwiYmFyXCIsXHJcblx0XHRcdFx0XCJjb2x1bW5cIixcclxuXHRcdFx0XHRcImxpbmVcIixcclxuXHRcdFx0XHRcImFyZWFcIixcclxuXHRcdFx0XHRcInBpZVwiLFxyXG5cdFx0XHRcdFwicmFkYXJcIixcclxuXHRcdFx0XHRcIm5ld2NoYXJ0XCIsXHJcblx0XHRcdF0uaW5jbHVkZXModGhpcy5jb25maWcucG9ydGxldFR5cGUpXHJcblx0XHQpIHtcclxuXHRcdFx0aWYgKHRoaXMuY29uZmlnLnhheGlzLmdyb3VwcylcclxuXHRcdFx0XHRmb3IgKGxldCBncm91cCBvZiB0aGlzLmNvbmZpZy54YXhpcy5ncm91cHMpIHtcclxuXHRcdFx0XHRcdHRoaXMuZmllbGRzbGlzdC5wdXNoKFxyXG5cdFx0XHRcdFx0XHR0aGlzLmNvbmZpZy5maWVsZHMuZmlsdGVyKFxyXG5cdFx0XHRcdFx0XHRcdChlbCkgPT4gZWwuY29sTmFtZSA9PT0gZ3JvdXAubmFtZVxyXG5cdFx0XHRcdFx0XHQpWzBdXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMuY29uZmlnLmNvbHVtbkdyb3VwKVxyXG5cdFx0XHRcdGZvciAobGV0IGNvbHVtbiBvZiB0aGlzLmNvbmZpZy5jb2x1bW5Hcm91cCkge1xyXG5cdFx0XHRcdFx0dGhpcy5maWVsZHNsaXN0LnB1c2goXHJcblx0XHRcdFx0XHRcdHRoaXMuY29uZmlnLmZpZWxkcy5maWx0ZXIoXHJcblx0XHRcdFx0XHRcdFx0KGVsKSA9PiBlbC5jb2xOYW1lID09PSBjb2x1bW4ubmFtZVxyXG5cdFx0XHRcdFx0XHQpWzBdXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0aWYgKHRoaXMuY29uZmlnLnlheGlzLnNlcmllcylcclxuXHRcdFx0XHRmb3IgKGxldCB2YWx1ZSBvZiB0aGlzLmNvbmZpZy55YXhpcy5zZXJpZXMpIHtcclxuXHRcdFx0XHRcdGNvbnN0IHB2YWx1ZSA9IHRoaXMuY29uZmlnLmZpZWxkcy5maW5kKFxyXG5cdFx0XHRcdFx0XHQoZWwpID0+IGVsLmNvbE5hbWUgPT09IHZhbHVlLmNvbE5hbWVcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRsZXQgYWxsRmllbGRzID0gdGhpcy5jb25maWcuZmllbGRzO1xyXG5cdFx0XHRcdFx0bGV0IGRpc3BsYXlOYW1lID0gdmFsdWUudGl0bGU7XHJcblx0XHRcdFx0XHRpZiAoYWxsRmllbGRzICYmIHB2YWx1ZSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBpdGVtID0gYWxsRmllbGRzLmZpbmQoXHJcblx0XHRcdFx0XHRcdFx0KGZpZWxkKSA9PiBmaWVsZC5jb2xOYW1lID09PSBwdmFsdWUuY29sTmFtZVxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHRpZiAoaXRlbSkge1xyXG5cdFx0XHRcdFx0XHRcdGRpc3BsYXlOYW1lID1cclxuXHRcdFx0XHRcdFx0XHRcdChpdGVtLmZvcm1hdCAmJlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpdGVtLmZvcm1hdC5sZW5ndGggJiZcclxuXHRcdFx0XHRcdFx0XHRcdFx0aXRlbS5mb3JtYXRbMF0uZGlzcGxheU5hbWUpIHx8XHJcblx0XHRcdFx0XHRcdFx0XHRpdGVtLmxhbmdWYWx1ZTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKHB2YWx1ZSkge1xyXG5cdFx0XHRcdFx0XHRwdmFsdWVbXCJpc1ZhbHVlXCJdID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0cHZhbHVlW1wic2hvd1N1YlRvdGFsc1wiXSA9IHZhbHVlLnNob3dTdWJUb3RhbHM7XHJcblx0XHRcdFx0XHRcdHB2YWx1ZVtcInNob3dHcmFuZFRvdGFsc1wiXSA9IHZhbHVlLnNob3dHcmFuZFRvdGFscztcclxuXHRcdFx0XHRcdFx0cHZhbHVlW1wibGFuZ1ZhbHVlXCJdID0gZGlzcGxheU5hbWU7XHJcblx0XHRcdFx0XHRcdHRoaXMuZmllbGRzbGlzdC5wdXNoKHB2YWx1ZSk7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR2YWx1ZS5pc1ZhbHVlID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0dGhpcy5maWVsZHNsaXN0LnB1c2goe1xyXG5cdFx0XHRcdFx0XHRcdGNvbE5hbWU6IHZhbHVlLmNvbE5hbWUsXHJcblx0XHRcdFx0XHRcdFx0bGFuZ1ZhbHVlOiBkaXNwbGF5TmFtZSxcclxuXHRcdFx0XHRcdFx0XHRpc1ZhbHVlOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRcdHNob3dTdWJUb3RhbHM6IHZhbHVlLnNob3dTdWJUb3RhbHMsXHJcblx0XHRcdFx0XHRcdFx0c2hvd0dyYW5kVG90YWxzOiB2YWx1ZS5zaG93R3JhbmRUb3RhbHMsXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGxldCBrZXlzID0gW107XHJcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5maWVsZHMubGVuZ3RoKVxyXG5cdFx0XHRcdGtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmNvbmZpZy5maWVsZHNbMF0pO1xyXG5cdFx0XHR0aGlzLmZpZWxkc2xpc3QgPSB0aGlzLmNvbmZpZy5maWVsZHMuZmlsdGVyKChlbCkgPT5cclxuXHRcdFx0XHRrZXlzLmluY2x1ZGVzKFwidmlzaWJsZVwiKVxyXG5cdFx0XHRcdFx0PyBlbC52aXNpYmxlICYmICFlbC5pc0hpZGRlblxyXG5cdFx0XHRcdFx0OiAhZWwuaXNIaWRkZW5cclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHRcdC8vIOaJgOaciWZpZWxk6YO957uZ5LiA5Liqc2hvd0dyYW5kVG90YWxz5ZKMc2hvd1N1YlRvdGFsc+eahOWAvO+8jOe7keWummZpZWxkIGxpc3TpobXpnaJpY29u54q25oCB77yM5Y+KZm9ybWF06aG16Z2iSGlkZSBzdWJ0b3RhbOOAgUhpZGUgZ3JhbmR0b3RhbOetieeKtuaAgVxyXG5cdFx0dGhpcy5maWVsZHNsaXN0Lm1hcCgoZWwpID0+IHtcclxuXHRcdFx0bGV0IGtleXMgPSBPYmplY3Qua2V5cyhlbCk7XHJcblx0XHRcdGlmIChcclxuXHRcdFx0XHQha2V5cy5pbmNsdWRlcyhcInNob3dHcmFuZFRvdGFsc1wiKSB8fFxyXG5cdFx0XHRcdGVsLnNob3dHcmFuZFRvdGFscyA9PT0gdW5kZWZpbmVkXHJcblx0XHRcdClcclxuXHRcdFx0XHRlbC5zaG93R3JhbmRUb3RhbHMgPSB0cnVlO1xyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0IWtleXMuaW5jbHVkZXMoXCJzaG93U3ViVG90YWxzXCIpIHx8XHJcblx0XHRcdFx0ZWwuc2hvd1N1YlRvdGFscyA9PT0gdW5kZWZpbmVkXHJcblx0XHRcdClcclxuXHRcdFx0XHRlbC5zaG93U3ViVG90YWxzID0gdHJ1ZTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Ly8g5omT5byAZmllbGTnmoRmb3JtYXTpobXpnaJcclxuXHRwdWJsaWMgb3BlbkZvcm1hdChpdGVtKSB7XHJcblx0XHQvL2NsZWFyIHRoZSBjaGVja2JveFxyXG5cdFx0dGhpcy5Db25kaXRpb25hbCA9IGZhbHNlO1xyXG5cdFx0dGhpcy5jdXJyZW50RmllbGQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGl0ZW0pKTtcclxuXHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mbyA9XHJcblx0XHRcdChpdGVtLmZvcm1hdCAmJiBpdGVtLmZvcm1hdFswXSkgfHwgdGhpcy5zZXRGb3JtYXRHcm91cERlZmF1bHREYXRhKCk7XHJcblx0XHRkZWxldGUgdGhpcy5jdXJyZW50RmllbGQuZm9ybWF0OyAvLyDliKDmjoljdXJyZW50RmllbGTnmoRmb3JtYXTvvIzlsIZmb3JtYXTkv6Hmga/kv53lrZjlnKhjdXJyZW50RmllbGRGb3JtYXRJbmZvXHJcblx0XHR0aGlzLnNlbGVjdE9wdGlvbihpdGVtLmNvbE5hbWUsIFwiZmllbGRcIik7XHJcblx0XHRpZiAoIVtcInN0cmluZ1wiLCBcIm52YXJjaGFyXCIsIFwiZGF0ZVwiLCBcImRhdGV0aW1lXCJdLmluY2x1ZGVzKGl0ZW0uZGF0YVR5cGUpKVxyXG5cdFx0XHR0aGlzLmFkZENvbG9yUGlja2VyU3R5bGUoKTtcclxuXHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb3JtYXRMaXN0ICYmXHJcblx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb3JtYXRMaXN0Lm1hcChcclxuXHRcdFx0XHQoZWwpID0+XHJcblx0XHRcdFx0KGVsLmlzQ2hlY2tlZCA9XHJcblx0XHRcdFx0XHRlbC5rZXkgPT1cclxuXHRcdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLnNlbGVjdGVkRm9ybWF0RGlzcGxheVxyXG5cdFx0XHRcdFx0XHQ/IHRydWVcclxuXHRcdFx0XHRcdFx0OiBmYWxzZSlcclxuXHRcdFx0KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzZWxlY3RPcHRpb24odmFsdWUsIHR5cGUpIHtcclxuXHRcdGxldCBQcmV2aWV3Q29sb3JFbGVtZW50ID0gdGhpcy5QcmV2aWV3Q29sb3JbXCJfcmVzdWx0c1wiXTtcclxuXHRcdGxldCBwcmV2aWV3Q29sb3JCdXJkZW5FbGVtZW50ID0gdGhpcy5wcmV2aWV3Q29sb3JCdXJkZW5bXCJfcmVzdWx0c1wiXTtcclxuXHRcdGxldCBhbGxGaWVsZHMgPSB0aGlzLmNvbmZpZy5maWVsZHM7XHJcblx0XHRsZXQgZGlzcGxheU5hbWUgPSB0aGlzLmN1cnJlbnRGaWVsZC5kaXNwbGF5TmFtZTtcclxuXHRcdGlmIChhbGxGaWVsZHMgJiYgKCFkaXNwbGF5TmFtZSB8fCBkaXNwbGF5TmFtZS5sZW5ndGggPT09IDApKSB7XHJcblx0XHRcdGNvbnN0IGl0ZW0gPSBhbGxGaWVsZHMuZmluZChcclxuXHRcdFx0XHQoZmllbGQpID0+IGZpZWxkLmNvbE5hbWUgPT09IHRoaXMuY3VycmVudEZpZWxkLmNvbE5hbWVcclxuXHRcdFx0KTtcclxuXHRcdFx0aWYgKGl0ZW0pIHtcclxuXHRcdFx0XHRkaXNwbGF5TmFtZSA9XHJcblx0XHRcdFx0XHQoaXRlbS5mb3JtYXQgJiZcclxuXHRcdFx0XHRcdFx0aXRlbS5mb3JtYXQubGVuZ3RoICYmXHJcblx0XHRcdFx0XHRcdGl0ZW0uZm9ybWF0WzBdLmRpc3BsYXlOYW1lKSB8fFxyXG5cdFx0XHRcdFx0aXRlbS5sYW5nVmFsdWU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHN3aXRjaCAodHlwZSkge1xyXG5cdFx0XHRjYXNlIFwiZmllbGRcIjpcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uc2VsZWN0ZWRGaWVsZCA9XHJcblx0XHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZC5jb2xOYW1lO1xyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5kYXRhVHlwZSA9XHJcblx0XHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZC5kYXRhVHlwZTtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZSB8fCBcIlwiO1xyXG5cdFx0XHRcdHRoaXMuZ2V0RmlsZWRGb3JtYXQoKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcImNvbXBhcmVcIjpcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9ybWF0Q2hlY2tlZCA9IHRydWU7XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmNvbXBhcmVTZWxlY3QgPSB0aGlzLm9wdGlvbkZpbHRlcihcclxuXHRcdFx0XHRcdHRoaXMuY29tcGFyZUxpc3QsXHJcblx0XHRcdFx0XHRcImNvZGVcIixcclxuXHRcdFx0XHRcdHZhbHVlXHJcblx0XHRcdFx0KVswXS5jb2RlO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIFwic2VsZWN0ZERhdGVUeXBlXCI6XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvcm1hdENoZWNrZWQgPSB0cnVlO1xyXG5cdFx0XHRcdGlmICh2YWx1ZSA9PSBcIlF1YXJ0ZXJcIikge1xyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvcm1hdExpc3QgPSB0aGlzLnF1YXJ0ZXJGb3JtYXQ7XHJcblx0XHRcdFx0fSBlbHNlIGlmICh2YWx1ZSA9PSBcIkRhdGVcIikge1xyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvcm1hdExpc3QgPSB0aGlzLmRhdGVGb3JtYXQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5zZWxlY3RlZEZvcm1hdERpc3BsYXkgPSBcIlwiO1xyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5zZWxlY3RlZEZvcm1hdCA9IFwiXCI7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJzZWxlY3RkRGF0ZWZvcm1hdFwiOlxyXG5cdFx0XHRjYXNlIFwibnVtYmVyXCI6XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvcm1hdENoZWNrZWQgPSB0cnVlO1xyXG5cdFx0XHRcdGZvciAoY29uc3QgaXRlcmF0b3Igb2YgdGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvcm1hdExpc3QpIHtcclxuXHRcdFx0XHRcdGl0ZXJhdG9yLmlzQ2hlY2tlZCA9IEJvb2xlYW4oaXRlcmF0b3Iua2V5ID09IHZhbHVlKTtcclxuXHRcdFx0XHRcdGlmIChpdGVyYXRvci5rZXkgPT0gdmFsdWUpXHJcblx0XHRcdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5zZWxlY3RlZEZvcm1hdCA9XHJcblx0XHRcdFx0XHRcdFx0aXRlcmF0b3IudmFsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcImZvbnRGYW1pbHlcIjpcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9udFNldHRpbmdDaGVja2VkID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9udEZhbWlseVZhbHVlID0gdGhpcy5vcHRpb25GaWx0ZXIoXHJcblx0XHRcdFx0XHR0aGlzLmZvbnRGYW1pbHlMaXN0LFxyXG5cdFx0XHRcdFx0XCJ2YWx1ZVwiLFxyXG5cdFx0XHRcdFx0dmFsdWVcclxuXHRcdFx0XHQpWzBdLnZhbHVlO1xyXG5cdFx0XHRcdChcclxuXHRcdFx0XHRcdFByZXZpZXdDb2xvckVsZW1lbnRbMF0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0XHQpLnN0eWxlLmZvbnRGYW1pbHkgPVxyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvbnRGYW1pbHlWYWx1ZTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcIm5lZ2FGb250RmFtaWx5XCI6XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvbnRTZXR0aW5nQ2hlY2tlZCA9IHRydWU7XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLm5lZ2FGb250RmFtaWx5VmFsdWUgPVxyXG5cdFx0XHRcdFx0dGhpcy5vcHRpb25GaWx0ZXIoXHJcblx0XHRcdFx0XHRcdHRoaXMuZm9udEZhbWlseUxpc3QsXHJcblx0XHRcdFx0XHRcdFwidmFsdWVcIixcclxuXHRcdFx0XHRcdFx0dmFsdWVcclxuXHRcdFx0XHRcdClbMF0udmFsdWU7XHJcblx0XHRcdFx0KFxyXG5cdFx0XHRcdFx0cHJldmlld0NvbG9yQnVyZGVuRWxlbWVudFswXS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFwiLmZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHRcdFx0KSBhcyBIVE1MRWxlbWVudFxyXG5cdFx0XHRcdCkuc3R5bGUuZm9udEZhbWlseSA9XHJcblx0XHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8ubmVnYUZvbnRGYW1pbHlWYWx1ZTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcIm5lZ2FGb250U2l6ZVwiOlxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb250U2V0dGluZ0NoZWNrZWQgPSB0cnVlO1xyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5uZWdhRm9udFNpemVWYWx1ZSA9XHJcblx0XHRcdFx0XHR0aGlzLm9wdGlvbkZpbHRlcihcclxuXHRcdFx0XHRcdFx0dGhpcy5mb250U2l6ZUxpc3QsXHJcblx0XHRcdFx0XHRcdFwidmFsdWVcIixcclxuXHRcdFx0XHRcdFx0dmFsdWVcclxuXHRcdFx0XHRcdClbMF0udmFsdWU7XHJcblx0XHRcdFx0KFxyXG5cdFx0XHRcdFx0cHJldmlld0NvbG9yQnVyZGVuRWxlbWVudFswXS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFwiLmZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHRcdFx0KSBhcyBIVE1MRWxlbWVudFxyXG5cdFx0XHRcdCkuc3R5bGUuZm9udFNpemUgPVxyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLm5lZ2FGb250U2l6ZVZhbHVlO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIFwiZm9udFNpemVcIjpcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9udFNldHRpbmdDaGVja2VkID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9udFNpemVWYWx1ZSA9IHRoaXMub3B0aW9uRmlsdGVyKFxyXG5cdFx0XHRcdFx0dGhpcy5mb250U2l6ZUxpc3QsXHJcblx0XHRcdFx0XHRcInZhbHVlXCIsXHJcblx0XHRcdFx0XHR2YWx1ZVxyXG5cdFx0XHRcdClbMF0udmFsdWU7XHJcblx0XHRcdFx0KFxyXG5cdFx0XHRcdFx0UHJldmlld0NvbG9yRWxlbWVudFswXS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFwiLmZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHRcdFx0KSBhcyBIVE1MRWxlbWVudFxyXG5cdFx0XHRcdCkuc3R5bGUuZm9udFNpemUgPSB0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9udFNpemVWYWx1ZTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0RmlsZWRGb3JtYXQoKSB7XHJcblx0XHRpZiAoIXRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5hbGlnbilcclxuXHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmFsaWduID0gW1xyXG5cdFx0XHRcdFwic3RyaW5nXCIsXHJcblx0XHRcdFx0XCJudmFyY2hhclwiLFxyXG5cdFx0XHRcdFwiZGF0ZVwiLFxyXG5cdFx0XHRcdFwiZGF0ZXRpbWVcIixcclxuXHRcdFx0XS5pbmNsdWRlcyh0aGlzLmN1cnJlbnRGaWVsZC5kYXRhVHlwZSlcclxuXHRcdFx0XHQ/IFwiTGVmdFwiXHJcblx0XHRcdFx0OiBcIlJpZ2h0XCI7XHJcblx0XHRzd2l0Y2ggKHRoaXMuY3VycmVudEZpZWxkLmRhdGFUeXBlKSB7XHJcblx0XHRcdGNhc2UgXCJudW1iZXJcIjpcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9ybWF0TGlzdCA9XHJcblx0XHRcdFx0XHR0aGlzLmRhc2hib2FyZFBvcmxldHNTZXJ2aWNlLkdldEZpZ3VyZUZvcm1hdCgpO1xyXG5cdFx0XHRcdHRoaXMuYWRkQ29sb3JQaWNrZXJTdHlsZSgpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIFwiaW50ZWdlclwiOlxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb3JtYXRMaXN0ID1cclxuXHRcdFx0XHRcdHRoaXMuZGFzaGJvYXJkUG9ybGV0c1NlcnZpY2UuR2V0RmlndXJlRm9ybWF0MygpO1xyXG5cdFx0XHRcdHRoaXMuYWRkQ29sb3JQaWNrZXJTdHlsZSgpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIFwicGVyY2VudFwiOlxyXG5cdFx0XHRjYXNlIFwicGVyY2VudE51bVwiOlxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb3JtYXRMaXN0ID1cclxuXHRcdFx0XHRcdHRoaXMuZGFzaGJvYXJkUG9ybGV0c1NlcnZpY2UuR2V0UGVyY2VudEZvcm1hdHMoKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcIm11bHRpcGxlXCI6XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvcm1hdExpc3QgPVxyXG5cdFx0XHRcdFx0dGhpcy5kYXNoYm9hcmRQb3JsZXRzU2VydmljZS5HZXRNdWx0aXBsZUZvcm1hdHMoKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgb3B0aW9uRmlsdGVyKGRhdGEsIGZpZWxkLCBjb21wYXJlVmFsdWUpIHtcclxuXHRcdHJldHVybiBkYXRhLmZpbHRlcigoaXRlbSkgPT4gaXRlbVtmaWVsZF0gPT09IGNvbXBhcmVWYWx1ZSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgY2hhbmdlQWxpZ2goY29kZSkge1xyXG5cdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmFsaWduID0gY29kZTtcclxuXHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb3JtYXRDaGVja2VkID0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYWRkQ29sb3JQaWNrZXJTdHlsZSgpIHtcclxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRsZXQgY29sb3JQaWNrZXJGb250RWxlbWVudCA9IHRoaXMuY29sb3JQaWNrZXJGb250W1wiX3Jlc3VsdHNcIl07XHJcblx0XHRcdGxldCBjb2xvclBpY2tlckVsZW1lbnQgPSB0aGlzLmNvbG9yUGlja2VyW1wiX3Jlc3VsdHNcIl07XHJcblx0XHRcdGxldCBQcmV2aWV3Q29sb3JFbGVtZW50ID0gdGhpcy5QcmV2aWV3Q29sb3JbXCJfcmVzdWx0c1wiXTtcclxuXHRcdFx0bGV0IGNvbG9ycGlja2VyQnVyZGVuRWxlbWVudCA9IHRoaXMuY29sb3JwaWNrZXJCdXJkZW5bXCJfcmVzdWx0c1wiXTtcclxuXHRcdFx0bGV0IGNvbG9ycGlja2VyRm9udEJ1cmRlbkVsZW1lbnQgPVxyXG5cdFx0XHRcdHRoaXMuY29sb3JwaWNrZXJGb250QnVyZGVuW1wiX3Jlc3VsdHNcIl07XHJcblx0XHRcdGxldCBwcmV2aWV3Q29sb3JCdXJkZW5FbGVtZW50ID0gdGhpcy5wcmV2aWV3Q29sb3JCdXJkZW5bXCJfcmVzdWx0c1wiXTtcclxuXHRcdFx0Y29sb3JQaWNrZXJGb250RWxlbWVudC5mb3JFYWNoKChpdGVtKSA9PiB7XHJcblx0XHRcdFx0YWRkQ2xhc3MoXHJcblx0XHRcdFx0XHRbXHJcblx0XHRcdFx0XHRcdGl0ZW0uZWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFx0XHRcIi5lLXNlbGVjdGVkLWNvbG9yXCJcclxuXHRcdFx0XHRcdFx0KSxcclxuXHRcdFx0XHRcdF0sXHJcblx0XHRcdFx0XHRcImUtaWNvbnNcIlxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0XHRjb2xvclBpY2tlckVsZW1lbnQuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG5cdFx0XHRcdGFkZENsYXNzKFxyXG5cdFx0XHRcdFx0W1xyXG5cdFx0XHRcdFx0XHRpdGVtLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFx0XCIuZS1zZWxlY3RlZC1jb2xvclwiXHJcblx0XHRcdFx0XHRcdCksXHJcblx0XHRcdFx0XHRdLFxyXG5cdFx0XHRcdFx0XCJlLWljb25zXCJcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHR9KTtcclxuXHJcblx0XHRcdGlmIChjb2xvcnBpY2tlckJ1cmRlbkVsZW1lbnQubGVuZ3RoKVxyXG5cdFx0XHRcdGNvbG9ycGlja2VyQnVyZGVuRWxlbWVudC5mb3JFYWNoKChpdGVtKSA9PiB7XHJcblx0XHRcdFx0XHRhZGRDbGFzcyhcclxuXHRcdFx0XHRcdFx0W1xyXG5cdFx0XHRcdFx0XHRcdGl0ZW0uZWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFx0XHRcdFwiLmUtc2VsZWN0ZWQtY29sb3JcIlxyXG5cdFx0XHRcdFx0XHRcdCksXHJcblx0XHRcdFx0XHRcdF0sXHJcblx0XHRcdFx0XHRcdFwiZS1pY29uc1wiXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRpZiAoY29sb3JwaWNrZXJGb250QnVyZGVuRWxlbWVudC5sZW5ndGgpXHJcblx0XHRcdFx0Y29sb3JwaWNrZXJGb250QnVyZGVuRWxlbWVudC5mb3JFYWNoKChpdGVtKSA9PiB7XHJcblx0XHRcdFx0XHRhZGRDbGFzcyhcclxuXHRcdFx0XHRcdFx0W1xyXG5cdFx0XHRcdFx0XHRcdGl0ZW0uZWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFx0XHRcdFwiLmUtc2VsZWN0ZWQtY29sb3JcIlxyXG5cdFx0XHRcdFx0XHRcdCksXHJcblx0XHRcdFx0XHRcdF0sXHJcblx0XHRcdFx0XHRcdFwiZS1pY29uc1wiXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRhZGRDbGFzcyhcclxuXHRcdFx0XHRbXHJcblx0XHRcdFx0XHRjb2xvclBpY2tlckZvbnRFbGVtZW50WzBdLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFwiLmUtc2VsZWN0ZWQtY29sb3JcIlxyXG5cdFx0XHRcdFx0KSxcclxuXHRcdFx0XHRdLFxyXG5cdFx0XHRcdFwiZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdCk7XHJcblx0XHRcdGFkZENsYXNzKFxyXG5cdFx0XHRcdFtcclxuXHRcdFx0XHRcdGNvbG9yUGlja2VyRWxlbWVudFswXS5lbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcIi5lLXNlbGVjdGVkLWNvbG9yXCJcclxuXHRcdFx0XHRcdCksXHJcblx0XHRcdFx0XSxcclxuXHRcdFx0XHRcImZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHQpO1xyXG5cdFx0XHRhZGRDbGFzcyhcclxuXHRcdFx0XHRbXHJcblx0XHRcdFx0XHRQcmV2aWV3Q29sb3JFbGVtZW50WzBdLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFx0XCIucHJldmlld1wiXHJcblx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdF0sXHJcblx0XHRcdFx0XCJmb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0KTtcclxuXHJcblx0XHRcdChcclxuXHRcdFx0XHRQcmV2aWV3Q29sb3JFbGVtZW50WzBdLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFwiLmZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0KS5zdHlsZS5jb2xvciA9IHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb250Q29sb3I7XHJcblx0XHRcdChcclxuXHRcdFx0XHRQcmV2aWV3Q29sb3JFbGVtZW50WzBdLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFwiLmZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0KS5zdHlsZVtcImJhY2tncm91bmQtY29sb3JcIl0gPVxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5iYWNrZ3JvdW5kQ29sb3I7XHJcblx0XHRcdChcclxuXHRcdFx0XHRjb2xvclBpY2tlckZvbnRFbGVtZW50WzBdLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHQpIGFzIEhUTUxFbGVtZW50XHJcblx0XHRcdCkuc3R5bGUuYm9yZGVyQm90dG9tQ29sb3IgPSB0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9udENvbG9yO1xyXG5cdFx0XHQoXHJcblx0XHRcdFx0Y29sb3JQaWNrZXJFbGVtZW50WzBdLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHQpIGFzIEhUTUxFbGVtZW50XHJcblx0XHRcdCkuc3R5bGUuYm9yZGVyQm90dG9tQ29sb3IgPVxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5iYWNrZ3JvdW5kQ29sb3I7XHJcblxyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0Y29sb3JwaWNrZXJCdXJkZW5FbGVtZW50WzBdICYmXHJcblx0XHRcdFx0Y29sb3JwaWNrZXJGb250QnVyZGVuRWxlbWVudFswXSAmJlxyXG5cdFx0XHRcdHByZXZpZXdDb2xvckJ1cmRlbkVsZW1lbnRbMF1cclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0YWRkQ2xhc3MoXHJcblx0XHRcdFx0XHRbXHJcblx0XHRcdFx0XHRcdGNvbG9ycGlja2VyRm9udEJ1cmRlbkVsZW1lbnRbMF0uZWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFx0XHRcIi5lLXNlbGVjdGVkLWNvbG9yXCJcclxuXHRcdFx0XHRcdFx0KSxcclxuXHRcdFx0XHRcdF0sXHJcblx0XHRcdFx0XHRcImZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0YWRkQ2xhc3MoXHJcblx0XHRcdFx0XHRbXHJcblx0XHRcdFx0XHRcdGNvbG9ycGlja2VyQnVyZGVuRWxlbWVudFswXS5lbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcdFwiLmUtc2VsZWN0ZWQtY29sb3JcIlxyXG5cdFx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdFx0XSxcclxuXHRcdFx0XHRcdFwiZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0XHRhZGRDbGFzcyhcclxuXHRcdFx0XHRcdFtcclxuXHRcdFx0XHRcdFx0cHJldmlld0NvbG9yQnVyZGVuRWxlbWVudFswXS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFx0XCIucHJldmlld1wiXHJcblx0XHRcdFx0XHRcdCksXHJcblx0XHRcdFx0XHRdLFxyXG5cdFx0XHRcdFx0XCJmb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHQpO1xyXG5cclxuXHRcdFx0XHQoXHJcblx0XHRcdFx0XHRwcmV2aWV3Q29sb3JCdXJkZW5FbGVtZW50WzBdLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFx0XCIuZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0XHQpIGFzIEhUTUxFbGVtZW50XHJcblx0XHRcdFx0KS5zdHlsZS5jb2xvciA9IHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5uZWdhRm9udENvbG9yO1xyXG5cdFx0XHRcdChcclxuXHRcdFx0XHRcdHByZXZpZXdDb2xvckJ1cmRlbkVsZW1lbnRbMF0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0XHQpLnN0eWxlW1wiYmFja2dyb3VuZC1jb2xvclwiXSA9XHJcblx0XHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8ubmVnYUJhY2tncm91bmRDb2xvcjtcclxuXHRcdFx0XHQoXHJcblx0XHRcdFx0XHRjb2xvcnBpY2tlckZvbnRCdXJkZW5FbGVtZW50WzBdLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFwiLmZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHRcdFx0KSBhcyBIVE1MRWxlbWVudFxyXG5cdFx0XHRcdCkuc3R5bGUuYm9yZGVyQm90dG9tQ29sb3IgPVxyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLm5lZ2FGb250Q29sb3I7XHJcblx0XHRcdFx0KFxyXG5cdFx0XHRcdFx0Y29sb3JwaWNrZXJCdXJkZW5FbGVtZW50WzBdLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFwiLmZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHRcdFx0KSBhcyBIVE1MRWxlbWVudFxyXG5cdFx0XHRcdCkuc3R5bGUuYm9yZGVyQm90dG9tQ29sb3IgPVxyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLm5lZ2FCYWNrZ3JvdW5kQ29sb3I7XHJcblx0XHRcdH1cclxuXHRcdH0sIDQwMCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgY29sb3JPbkNoYW5nZShhcmdzOiBDb2xvclBpY2tlckV2ZW50QXJncywgdHlwZT8pOiB2b2lkIHtcclxuXHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb250U2V0dGluZ0NoZWNrZWQgPSB0cnVlO1xyXG5cdFx0bGV0IGNvbG9yUGlja2VyRm9udEVsZW1lbnQgPSB0aGlzLmNvbG9yUGlja2VyRm9udFtcIl9yZXN1bHRzXCJdO1xyXG5cdFx0bGV0IGNvbG9yUGlja2VyRWxlbWVudCA9IHRoaXMuY29sb3JQaWNrZXJbXCJfcmVzdWx0c1wiXTtcclxuXHRcdGxldCBQcmV2aWV3Q29sb3JFbGVtZW50ID0gdGhpcy5QcmV2aWV3Q29sb3JbXCJfcmVzdWx0c1wiXTtcclxuXHRcdGxldCBjb2xvcnBpY2tlckJ1cmRlbkVsZW1lbnQgPSB0aGlzLmNvbG9ycGlja2VyQnVyZGVuW1wiX3Jlc3VsdHNcIl07XHJcblx0XHRsZXQgY29sb3JwaWNrZXJGb250QnVyZGVuRWxlbWVudCA9XHJcblx0XHRcdHRoaXMuY29sb3JwaWNrZXJGb250QnVyZGVuW1wiX3Jlc3VsdHNcIl07XHJcblx0XHRsZXQgcHJldmlld0NvbG9yQnVyZGVuRWxlbWVudCA9IHRoaXMucHJldmlld0NvbG9yQnVyZGVuW1wiX3Jlc3VsdHNcIl07XHJcblx0XHRpZiAodHlwZSkge1xyXG5cdFx0XHRzd2l0Y2ggKHR5cGUpIHtcclxuXHRcdFx0XHRjYXNlIFwiZm9udFwiOlxyXG5cdFx0XHRcdFx0KFxyXG5cdFx0XHRcdFx0XHRjb2xvclBpY2tlckZvbnRFbGVtZW50WzBdLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFx0XCIuZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0XHRcdCkuc3R5bGUuYm9yZGVyQm90dG9tQ29sb3IgPSBhcmdzLmN1cnJlbnRWYWx1ZS5yZ2JhO1xyXG5cdFx0XHRcdFx0KFxyXG5cdFx0XHRcdFx0XHRQcmV2aWV3Q29sb3JFbGVtZW50WzBdLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHRcdFx0KSBhcyBIVE1MRWxlbWVudFxyXG5cdFx0XHRcdFx0KS5zdHlsZS5jb2xvciA9IGFyZ3MuY3VycmVudFZhbHVlLnJnYmE7XHJcblx0XHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9udENvbG9yID1cclxuXHRcdFx0XHRcdFx0YXJncy5jdXJyZW50VmFsdWUucmdiYTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGNhc2UgXCJuZ2VhRm9udFwiOlxyXG5cdFx0XHRcdFx0KFxyXG5cdFx0XHRcdFx0XHRjb2xvcnBpY2tlckZvbnRCdXJkZW5FbGVtZW50WzBdLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFx0XCIuZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0XHRcdCkuc3R5bGUuYm9yZGVyQm90dG9tQ29sb3IgPSBhcmdzLmN1cnJlbnRWYWx1ZS5yZ2JhO1xyXG5cdFx0XHRcdFx0KFxyXG5cdFx0XHRcdFx0XHRwcmV2aWV3Q29sb3JCdXJkZW5FbGVtZW50WzBdLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHRcdFx0KSBhcyBIVE1MRWxlbWVudFxyXG5cdFx0XHRcdFx0KS5zdHlsZS5jb2xvciA9IGFyZ3MuY3VycmVudFZhbHVlLnJnYmE7XHJcblx0XHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8ubmVnYUZvbnRDb2xvciA9XHJcblx0XHRcdFx0XHRcdGFyZ3MuY3VycmVudFZhbHVlLnJnYmE7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlIFwibmdlYUJnQ29sb3JcIjpcclxuXHRcdFx0XHRcdChcclxuXHRcdFx0XHRcdFx0Y29sb3JwaWNrZXJCdXJkZW5FbGVtZW50WzBdLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFx0XCIuZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0XHRcdCkuc3R5bGUuYm9yZGVyQm90dG9tQ29sb3IgPSBhcmdzLmN1cnJlbnRWYWx1ZS5yZ2JhO1xyXG5cdFx0XHRcdFx0KFxyXG5cdFx0XHRcdFx0XHRwcmV2aWV3Q29sb3JCdXJkZW5FbGVtZW50WzBdLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHRcdFx0KSBhcyBIVE1MRWxlbWVudFxyXG5cdFx0XHRcdFx0KS5zdHlsZVtcImJhY2tncm91bmQtY29sb3JcIl0gPSBhcmdzLmN1cnJlbnRWYWx1ZS5yZ2JhO1xyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLm5lZ2FCYWNrZ3JvdW5kQ29sb3IgPVxyXG5cdFx0XHRcdFx0XHRhcmdzLmN1cnJlbnRWYWx1ZS5yZ2JhO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHQoXHJcblx0XHRcdFx0Y29sb3JQaWNrZXJFbGVtZW50WzBdLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHQpIGFzIEhUTUxFbGVtZW50XHJcblx0XHRcdCkuc3R5bGUuYm9yZGVyQm90dG9tQ29sb3IgPSBhcmdzLmN1cnJlbnRWYWx1ZS5yZ2JhO1xyXG5cdFx0XHQoXHJcblx0XHRcdFx0UHJldmlld0NvbG9yRWxlbWVudFswXS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHQpIGFzIEhUTUxFbGVtZW50XHJcblx0XHRcdCkuc3R5bGVbXCJiYWNrZ3JvdW5kLWNvbG9yXCJdID0gYXJncy5jdXJyZW50VmFsdWUucmdiYTtcclxuXHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmJhY2tncm91bmRDb2xvciA9XHJcblx0XHRcdFx0YXJncy5jdXJyZW50VmFsdWUucmdiYTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHB1YmxpYyBjaGFuZ2VIaWRlU3RhdHVzKGNvZGUpIHtcclxuXHRcdHRoaXMuY3VycmVudEZpZWxkW2NvZGVdID0gIXRoaXMuY3VycmVudEZpZWxkW2NvZGVdO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHNhdmVGb3JtYXQoKSB7XHJcblx0XHR0aGlzLmNvbmZpZy55YXhpcy5zZXJpZXMuZm9yRWFjaCgoY29sKSA9PiB7XHJcblx0XHRcdGlmIChcclxuXHRcdFx0XHRjb2wuY29sTmFtZSA9PT0gdGhpcy5jdXJyZW50RmllbGQuY29sTmFtZSAmJlxyXG5cdFx0XHRcdCF0aGlzLmNvbmZpZy5maWVsZHMuZmluZChcclxuXHRcdFx0XHRcdChpdGVtKSA9PiBpdGVtLmNvbE5hbWUgPT09IHRoaXMuY3VycmVudEZpZWxkLmNvbE5hbWVcclxuXHRcdFx0XHQpXHJcblx0XHRcdCkge1xyXG5cdFx0XHRcdHRoaXMuY29uZmlnLmZpZWxkcy5wdXNoKHtcclxuXHRcdFx0XHRcdGNvbE5hbWU6IHRoaXMuY3VycmVudEZpZWxkLmNvbE5hbWUsXHJcblx0XHRcdFx0XHRkYXRhVHlwZTogXCJudW1iZXJcIixcclxuXHRcdFx0XHRcdGRpc3BsYXlOYW1lOiB0aGlzLmN1cnJlbnRGaWVsZC5sYW5nVmFsdWUsXHJcblx0XHRcdFx0XHRkcDogMixcclxuXHRcdFx0XHRcdGZvcm1hdDogW10sXHJcblx0XHRcdFx0XHRmb3JtdWxhOiBudWxsLFxyXG5cdFx0XHRcdFx0aXNDYWxjdWxhdGVkRmllbGQ6IHRydWUsXHJcblx0XHRcdFx0XHRpc0dyb3VwOiBmYWxzZSxcclxuXHRcdFx0XHRcdGlzSGlkZGVuOiBmYWxzZSxcclxuXHRcdFx0XHRcdGlzVmFsdWU6IHRydWUsXHJcblx0XHRcdFx0XHRsYW5nQ29kZTogdGhpcy5jdXJyZW50RmllbGQuY29sTmFtZSxcclxuXHRcdFx0XHRcdGxhbmdWYWx1ZTogdGhpcy5jdXJyZW50RmllbGQuY29sTmFtZSxcclxuXHRcdFx0XHRcdHNlcTogdGhpcy5jb25maWcuZmllbGRzLmxlbmd0aCArIDEsXHJcblx0XHRcdFx0XHRzaG93R3JhbmRUb3RhbHM6IHRoaXMuY3VycmVudEZpZWxkLnNob3dHcmFuZFRvdGFscyxcclxuXHRcdFx0XHRcdHNob3dTdWJUb3RhbHM6IHRoaXMuY3VycmVudEZpZWxkLnNob3dTdWJUb3RhbHMsXHJcblx0XHRcdFx0XHRzb3J0Q29sdW1uOiBudWxsLFxyXG5cdFx0XHRcdFx0dmlzaWJsZTogdHJ1ZSxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0Zm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmNvbmZpZy5maWVsZHMpIHtcclxuXHRcdFx0aWYgKHRoaXMuY3VycmVudEZpZWxkLmNvbE5hbWUgPT09IGZpZWxkLmNvbE5hbWUpIHtcclxuXHRcdFx0XHRmaWVsZC5zaG93R3JhbmRUb3RhbHMgPSB0aGlzLmN1cnJlbnRGaWVsZC5zaG93R3JhbmRUb3RhbHM7XHJcblx0XHRcdFx0ZmllbGQuc2hvd1N1YlRvdGFscyA9IHRoaXMuY3VycmVudEZpZWxkLnNob3dTdWJUb3RhbHM7XHJcblx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvcm1hdENoZWNrZWQgfHxcclxuXHRcdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb250U2V0dGluZ0NoZWNrZWRcclxuXHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdGZpZWxkLmZvcm1hdCA9IFtdO1xyXG5cdFx0XHRcdFx0ZmllbGQuZGlzcGxheU5hbWUgPSB0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZGlzcGxheU5hbWU7XHJcblx0XHRcdFx0XHRmaWVsZC5mb3JtYXQucHVzaCh0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8pO1xyXG5cdFx0XHRcdH0gZWxzZSBkZWxldGUgZmllbGQuZm9ybWF0O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Zm9yIChjb25zdCBzZXJpZXMgb2YgdGhpcy5jb25maWcueWF4aXMuc2VyaWVzKSB7XHJcblx0XHRcdGlmICh0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uc2VsZWN0ZWRGaWVsZCA9PT0gc2VyaWVzLmNvbE5hbWUpIHtcclxuXHRcdFx0XHRzZXJpZXMuc2hvd1N1YlRvdGFscyA9IHRoaXMuY3VycmVudEZpZWxkLnNob3dTdWJUb3RhbHM7XHJcblx0XHRcdFx0c2VyaWVzLnNob3dHcmFuZFRvdGFscyA9IHRoaXMuY3VycmVudEZpZWxkLnNob3dHcmFuZFRvdGFscztcclxuXHRcdFx0XHRsZXQgZmllbGRzID0gdGhpcy5jb25maWcuZmllbGRzLmZpbHRlcihcclxuXHRcdFx0XHRcdChlbCkgPT5cclxuXHRcdFx0XHRcdFx0ZWwuY29sTmFtZSA9PT0gdGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLnNlbGVjdGVkRmllbGRcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdGlmIChmaWVsZHMgJiYgZmllbGRzLmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0XHRmaWVsZHNbMF0uZm9ybWF0ICYmXHJcblx0XHRcdFx0XHRcdGZpZWxkc1swXS5mb3JtYXQubGVuZ3RoICYmXHJcblx0XHRcdFx0XHRcdGZpZWxkc1swXS5mb3JtYXRbMF0uZm9ybWF0Q2hlY2tlZFxyXG5cdFx0XHRcdFx0KVxyXG5cdFx0XHRcdFx0XHRzZXJpZXMudGl0bGUgPVxyXG5cdFx0XHRcdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5kaXNwbGF5TmFtZSB8fFxyXG5cdFx0XHRcdFx0XHRcdGZpZWxkc1swXS5sYW5nVmFsdWUucmVwbGFjZShcIkNhbGN1bGF0ZVwiLCBcIlwiKS50cmltKCk7XHJcblx0XHRcdFx0fSBlbHNlIGlmIChzZXJpZXMuY2FsTWV0aG9kICE9PSBcIkNhbGN1bGF0ZWRGaWVsZFwiKVxyXG5cdFx0XHRcdFx0c2VyaWVzLnRpdGxlID0gc2VyaWVzLmNvbE5hbWU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHRoaXMuZGF0YS5wb3J0bGV0RGF0YS5jb25maWcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmNvbmZpZyk7XHJcblx0XHRjb25zdCBpbmRleCA9IHRoaXMuZGF0YS5wb3J0bGV0cy5maW5kSW5kZXgoXHJcblx0XHRcdCh4KSA9PiB4Lm5ld0lkID09PSB0aGlzLmRhdGEucG9ydGxldERhdGEubmV3SWRcclxuXHRcdCk7XHJcblx0XHRpZiAoaW5kZXggPiAtMSlcclxuXHRcdFx0dGhpcy5kYXRhLnBvcnRsZXRzW2luZGV4XS5jb25maWcgPSB0aGlzLmRhdGEucG9ydGxldERhdGEuY29uZmlnO1xyXG5cdFx0dGhpcy5EYXNoYm9hcmRTZXJ2aWNlLnRhYmxlRm9ybWF0Lm5leHQodGhpcy5kYXRhLnBvcnRsZXREYXRhLm5ld0lkKTtcclxuXHRcdHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgY2xvc2UoKSB7XHJcblx0XHR0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGNsZWFyRm9ybWF0X0FsbCgpIHtcclxuXHRcdGNvbnN0IF90aXRsZSA9XHJcblx0XHRcdHRoaXMudHJhbnNsYXRpb25cclxuXHRcdFx0XHQuQVJFX1lPVV9TVVJFX1RPX0NMRUFSX0FMTF9USEVfRk9STUFUVElOR19BTkRfU1VCX1RPVEFMU19UT19ERUZBVUxUX1NFVFRJTkdTIHx8XHJcblx0XHRcdFwiQXJlIHlvdSBzdXJlIHRvIGNsZWFyIGFsbCB0aGUgZm9ybWF0dGluZyBhbmQgdG90YWxzIHRvIGRlZmF1bHQgc2V0dGluZ3M/XCI7XHJcblx0XHRjb25zdCBfbm8gPSB0aGlzLnRyYW5zbGF0aW9uLk5PX1BMRUFTRV9HT19CQUNLIHx8IFwiTm8sIHBsZWFzZSBnbyBiYWNrXCI7XHJcblx0XHRjb25zdCBfeWVzID0gdGhpcy50cmFuc2xhdGlvbi5ZRVNfQ0xFQVJfVEhFTSB8fCBcIlllcywgY2xlYXIgdGhlbVwiO1xyXG5cdFx0Ly8gY29uc3QgZGlhbG9nUmVmID0gdGhpcy5sYXlvdXRVdGlsc1NlcnZpY2UuYWxlcnRFbGVtZW50KFxyXG5cdFx0Ly8gXHR0aGlzLnRyYW5zbGF0aW9uLldBUk5JTkcgfHwgXCIuV0FSTklOR1wiLFxyXG5cdFx0Ly8gXHRfdGl0bGUsXHJcblx0XHQvLyBcdF9ubyxcclxuXHRcdC8vIFx0X3llcyxcclxuXHRcdC8vIFx0dHJ1ZSxcclxuXHRcdC8vIFx0dHJ1ZSxcclxuXHRcdC8vIFx0XCI0NTBweFwiLFxyXG5cdFx0Ly8gXHRcIjMyMHB4XCJcclxuXHRcdC8vICk7XHJcblx0XHRjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0NvbW1vbkRpbGFvZyh7XHJcblx0XHRcdHRpdGxlOiB0aGlzLnRyYW5zbGF0aW9uLldBUk5JTkcgfHwgXCIuV0FSTklOR1wiLFxyXG5cdFx0XHRkZXNjcmlwdGlvbjogX3RpdGxlLFxyXG5cdFx0XHRzYXZlQnRuTGFiZWw6IF95ZXMsXHJcblx0XHRcdGNhbmNlbEJ0bkxhYmVsOiBfbm8sXHJcblx0XHR9KTtcclxuXHRcdGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdGlmIChyZXMgPT09IFwic2F2ZVwiKSB7XHJcblx0XHRcdFx0dGhpcy5jb25maWcuZmllbGRzLm1hcCgoZWwpID0+IHtcclxuXHRcdFx0XHRcdGRlbGV0ZSBlbC5mb3JtYXQ7XHJcblx0XHRcdFx0XHRkZWxldGUgZWwuc2hvd1N1YlRvdGFscztcclxuXHRcdFx0XHRcdGRlbGV0ZSBlbC5zaG93R3JhbmRUb3RhbHM7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0Ly9TTVAyLTMwMTBcclxuXHRcdFx0XHQvL3Bpdm90XHJcblx0XHRcdFx0aWYgKHRoaXMuY29uZmlnLnBvcnRsZXRUeXBlID09PSBcInBpdm90XCIpIHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmNvbmZpZy55YXhpcy5zZXJpZXMpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5jb25maWcueWF4aXMuc2VyaWVzLm1hcCgoZWwpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRkZWxldGUgZWwuc2hvd1N1YlRvdGFscztcclxuXHRcdFx0XHRcdFx0XHRkZWxldGUgZWwuc2hvd0dyYW5kVG90YWxzO1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5kYXRhLnBvcnRsZXREYXRhLmNvbmZpZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuY29uZmlnKTtcclxuXHRcdFx0XHRjb25zdCBpbmRleCA9IHRoaXMuZGF0YS5wb3J0bGV0cy5maW5kSW5kZXgoXHJcblx0XHRcdFx0XHQoeCkgPT4geC5uZXdJZCA9PT0gdGhpcy5kYXRhLnBvcnRsZXREYXRhLm5ld0lkXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0XHRpZiAoaW5kZXggPiAtMSlcclxuXHRcdFx0XHRcdHRoaXMuZGF0YS5wb3J0bGV0c1tpbmRleF0uY29uZmlnID0gdGhpcy5kYXRhLnBvcnRsZXREYXRhLmNvbmZpZztcclxuXHRcdFx0XHR0aGlzLkRhc2hib2FyZFNlcnZpY2UudGFibGVGb3JtYXQubmV4dCh0aGlzLmRhdGEucG9ydGxldERhdGEubmV3SWQpO1xyXG5cdFx0XHRcdHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGNsZWFyRm9ybWF0X0N1cnJlbnQoKSB7XHJcblx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8gPSB0aGlzLnNldEZvcm1hdEdyb3VwRGVmYXVsdERhdGEoKTtcclxuXHRcdHRoaXMuY3VycmVudEZpZWxkLnNob3dTdWJUb3RhbHMgPSB0cnVlO1xyXG5cdFx0dGhpcy5jdXJyZW50RmllbGQuc2hvd0dyYW5kVG90YWxzID0gdHJ1ZTtcclxuXHRcdGlmIChcclxuXHRcdFx0IVtcInN0cmluZ1wiLCBcIm52YXJjaGFyXCIsIFwiZGF0ZVwiLCBcImRhdGV0aW1lXCJdLmluY2x1ZGVzKFxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5kYXRhVHlwZVxyXG5cdFx0XHQpXHJcblx0XHQpXHJcblx0XHRcdHRoaXMuYWRkQ29sb3JQaWNrZXJTdHlsZSgpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGRpc2FibGVkR3JhbmRUb3RhbCgpIHtcclxuXHRcdGlmIChcclxuXHRcdFx0dGhpcy5jb25maWcucG9ydGxldFR5cGUgIT09IFwicGl2b3RcIiAmJlxyXG5cdFx0XHR0aGlzLmNvbmZpZy5wb3J0bGV0VHlwZSAhPT0gXCJ0YWJsZVwiXHJcblx0XHQpIHtcclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAodGhpcy5jb25maWcucG9ydGxldFR5cGUgPT09IFwidGFibGVcIikge1xyXG5cdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkLmRhdGFUeXBlICE9PSBcInN0cmluZ1wiICYmXHJcblx0XHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZC5kYXRhVHlwZSAhPT0gXCJkYXRldGltZVwiICYmXHJcblx0XHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZC5kYXRhVHlwZSAhPT0gXCJkYXRlXCJcclxuXHRcdFx0XHQpXHJcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0ZWxzZSByZXR1cm4gdHJ1ZTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRpZiAodGhpcy5jdXJyZW50RmllbGQuaXNWYWx1ZSkgcmV0dXJuIGZhbHNlO1xyXG5cdFx0XHRcdGVsc2UgcmV0dXJuIHRydWU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2V0QWxpZ25MaXN0KCkge1xyXG5cdFx0cmV0dXJuIFtcclxuXHRcdFx0e1xyXG5cdFx0XHRcdG5hbWU6IFwiZm9ybWF0X2FsaWduX2xlZnRcIixcclxuXHRcdFx0XHRjb2RlOiBcIkxlZnRcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdG5hbWU6IFwiZm9ybWF0X2FsaWduX2NlbnRlclwiLFxyXG5cdFx0XHRcdGNvZGU6IFwiQ2VudGVyXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRuYW1lOiBcImZvcm1hdF9hbGlnbl9yaWdodFwiLFxyXG5cdFx0XHRcdGNvZGU6IFwiUmlnaHRcIixcclxuXHRcdFx0fSxcclxuXHRcdF07XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNldEZvbnRTaXplTGlzdCgpIHtcclxuXHRcdHJldHVybiBbXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCIxMnB4XCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCIxM3B4XCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCIxNHB4XCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCIxNXB4XCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCIxNnB4XCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCIxN3B4XCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCIxOHB4XCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCIxOXB4XCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCIyMHB4XCIsXHJcblx0XHRcdH0sXHJcblx0XHRdO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzZXRDb21wYXJlTGlzdCgpIHtcclxuXHRcdHJldHVybiBbXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogdGhpcy50cmFuc2xhdGlvbi5MRVNTX1RIQU4gfHwgXCJMZXNzIFRoYW5cIixcclxuXHRcdFx0XHRjb2RlOiBcIkxlc3NUaGFuXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTpcclxuXHRcdFx0XHRcdHRoaXMudHJhbnNsYXRpb24uTEVTU19USEFOX09SX0VRVUFMX1RPIHx8XHJcblx0XHRcdFx0XHRcIkxlc3MgVGhhbiBPciBFcXVhbCBUb1wiLFxyXG5cdFx0XHRcdGNvZGU6IFwiTGVzc1RoYW5PckVxdWFsVG9cIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHZhbHVlOiB0aGlzLnRyYW5zbGF0aW9uLkdSRUFURVJfVEhBTiB8fCBcIkdyZWF0ZXIgVGhhblwiLFxyXG5cdFx0XHRcdGNvZGU6IFwiR3JlYXRlclRoYW5cIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHZhbHVlOlxyXG5cdFx0XHRcdFx0dGhpcy50cmFuc2xhdGlvbi5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE8gfHxcclxuXHRcdFx0XHRcdFwiR3JlYXRlciBUaGFuIE9yIEVxdWFsIFRvXCIsXHJcblx0XHRcdFx0Y29kZTogXCJHcmVhdGVyVGhhbk9yRXF1YWxUb1wiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IHRoaXMudHJhbnNsYXRpb24uRVFVQUxTIHx8IFwiRXF1YWxzXCIsXHJcblx0XHRcdFx0Y29kZTogXCJFcXVhbHNcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHZhbHVlOiB0aGlzLnRyYW5zbGF0aW9uLk5PVF9FUVVBTFMgfHwgXCJOb3QgRXF1YWxzXCIsXHJcblx0XHRcdFx0Y29kZTogXCJOb3RFcXVhbHNcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHZhbHVlOiB0aGlzLnRyYW5zbGF0aW9uLkJFVFdFRU4gfHwgXCJCZXR3ZWVuXCIsXHJcblx0XHRcdFx0Y29kZTogXCJCZXR3ZWVuXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogdGhpcy50cmFuc2xhdGlvbi5OT1RfQkVUV0VFTiB8fCBcIk5vdCBCZXR3ZWVuXCIsXHJcblx0XHRcdFx0Y29kZTogXCJOb3RCZXR3ZWVuXCIsXHJcblx0XHRcdH0sXHJcblx0XHRdO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzZXRTdHJpbmdBbmREYXRlQ29tcGFyZUxpc3QoKSB7XHJcblx0XHRyZXR1cm4gW1xyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiRXF1YWxzXCIsXHJcblx0XHRcdFx0Y29kZTogXCJFcXVhbHNcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHZhbHVlOiBcIk5vdCBFcXVhbHNcIixcclxuXHRcdFx0XHRjb2RlOiBcIk5vdEVxdWFsc1wiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2V0Rm9udEZhbWlseUxpc3QoKSB7XHJcblx0XHRyZXR1cm4gW1xyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiQXJpYWxcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHZhbHVlOiBcIlNhbiBTZXJpZlwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiSW1wYWN0XCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCJUcmVidWNoZXQgTVNcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHZhbHVlOiBcIlNlcmlmXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCJWZXJkYW5hXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCJDb3VyaWVyIE5ld1wiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiVGltZXMgTmV3IFJvbWFuXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCJUYWhvbWFcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHZhbHVlOiBcIkdlcm9naWFcIixcclxuXHRcdFx0fSxcclxuXHRcdF07XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNldEZvcm1hdEdyb3VwRGVmYXVsdERhdGEoKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRzZWxlY3RlZEZpZWxkOiB0aGlzLmN1cnJlbnRGaWVsZC5jb2xOYW1lLFxyXG5cdFx0XHRkYXRhVHlwZTogdGhpcy5jdXJyZW50RmllbGQuZGF0YVR5cGUsXHJcblx0XHRcdGNvbXBhcmVTZWxlY3Q6IFwiXCIsXHJcblx0XHRcdGNvbXBhcmVWYWx1ZTE6IG51bGwsXHJcblx0XHRcdGNvbXBhcmVWYWx1ZTI6IG51bGwsXHJcblx0XHRcdGFsaWduOiBcIlwiLFxyXG5cdFx0XHRzZWxlY3RlZEZvcm1hdDogXCJcIixcclxuXHRcdFx0c2VsZWN0ZWRGb3JtYXREaXNwbGF5OiBcIlwiLFxyXG5cdFx0XHRmb250RmFtaWx5VmFsdWU6IFwiU2FuIFNlcmlmXCIsXHJcblx0XHRcdG5lZ2FGb250RmFtaWx5VmFsdWU6IFwiU2FuIFNlcmlmXCIsXHJcblx0XHRcdG5lZ2FGb250U2l6ZVZhbHVlOiBcIjEycHhcIixcclxuXHRcdFx0bmVnYUZvbnRDb2xvcjogXCIjNDk1MDU3XCIsXHJcblx0XHRcdG5lZ2FCYWNrZ3JvdW5kQ29sb3I6IFwiI0Y4RTcxQ1wiLFxyXG5cdFx0XHRmb250U2l6ZVZhbHVlOiBcIjEycHhcIixcclxuXHRcdFx0Zm9udENvbG9yOiBcIiM0OTUwNTdcIixcclxuXHRcdFx0YmFja2dyb3VuZENvbG9yOiBcIiNGOEU3MUNcIixcclxuXHRcdFx0ZGlzcGxheU5hbWU6IFwiXCIsXHJcblx0XHRcdGZvcm1hdExpc3Q6IFtdLFxyXG5cdFx0XHRmb250U2V0dGluZ0NoZWNrZWQ6IGZhbHNlLFxyXG5cdFx0XHRmb3JtYXRDaGVja2VkOiBmYWxzZSxcclxuXHRcdFx0ZGF0ZVR5cGU6IFwiXCIsXHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzZXRRdWFydGVyRm9ybWF0KCkge1xyXG5cdFx0cmV0dXJuIFtcclxuXHRcdFx0eyBrZXk6IFwiMDMvMjAyMVwiLCB2YWw6IDEsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiMDMvMjFcIiwgdmFsOiAyLCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIjMvMjAyMVwiLCB2YWw6IDMsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiMy8yMVwiLCB2YWw6IDQsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiTWFyY2ggMjAyMVwiLCB2YWw6IDUsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiTWFyLCAyMDIxXCIsIHZhbDogNiwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XHR7IGtleTogXCJNYXJjaCwgMjAyMVwiLCB2YWw6IDcsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiUTEgMjAyMVwiLCB2YWw6IDgsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiUTEgMjFcIiwgdmFsOiA5LCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIjIwMjEgUTFcIiwgdmFsOiAxMCwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XHR7IGtleTogXCIyMSBRMVwiLCB2YWw6IDExLCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIjIwMjFcIiwgdmFsOiAxMiwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2V0RGF0ZUZvcm1hdCgpIHtcclxuXHRcdHJldHVybiBbXHJcblx0XHRcdHsga2V5OiBcIjE0LzAzLzIwMjEgKEREL01NL1lZWVkpXCIsIHZhbDogMSwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XHR7IGtleTogXCIxNC8wMy8yMSAoREQvTU0vWVkpXCIsIHZhbDogMiwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XHR7IGtleTogXCIwMy8xNC8yMDIxIChNTS9ERC9ZWVlZKVwiLCB2YWw6IDMsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiMDMvMTQvMjEgKE1NL0REL1lZKVwiLCB2YWw6IDQsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiMjAyMS0wMy0xNCAoWVlZWS1NTS1ERClcIiwgdmFsOiA1LCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIjIxLTAzLTE0IChZWS1NTS1ERClcIiwgdmFsOiA2LCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIjE0LTAzLTIwMjEgKERELU1NLVlZWVkpXCIsIHZhbDogNywgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XHR7IGtleTogXCIxNC0wMy0yMSAoREQtTU0tWVkpXCIsIHZhbDogOCwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XHR7IGtleTogXCIwMy0xNC0yMDIxIChNTS1ERC1ZWVlZKVwiLCB2YWw6IDksIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiMDMtMTQtMjEgKE1NLURELVlZKVwiLCB2YWw6IDEwLCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIk1hciAxNCwgMjAyMSAoTU1NIERELCBZWVlZKVwiLCB2YWw6IDExLCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIjE0LU1hci0yMDIxIChERC1NTU0tWVlZWSlcIiwgdmFsOiAxMiwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XTtcclxuXHR9XHJcbn1cclxuIl19
|
|
1185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZm9ybWF0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3JhaXNlLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvZGFzaGJvYXJkL3NpZGViYXItaWNvbmxpc3QvZmllbGQtZm9ybWF0L2ZpZWxkLWZvcm1hdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUVOLFNBQVMsRUFFVCxNQUFNLEVBRU4sUUFBUSxFQUNSLFNBQVMsRUFDVCxZQUFZLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRXpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3REO0lBK0JDLDhCQUNTLGdCQUFrQyxFQUNuQyx1QkFBZ0QsRUFDL0MsYUFBNEIsRUFDN0IsU0FBNkMsRUFDcEIsSUFBUyxFQUNGLEdBQVE7UUFMdkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNuQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQy9DLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzdCLGNBQVMsR0FBVCxTQUFTLENBQW9DO1FBQ3BCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDRixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBckJ6QyxnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQU10QixrQkFBYSxHQUFXLEVBQUUsQ0FB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O0lBQ2xDLHNDQUF3Qjs7SUFDeEIsMkNBQW1DOztJQUNuQywwQ0FBdUI7O0lBQ3ZCLDRDQUFvQjs7SUFDcEIsc0RBQThCOzs7OztJQUM5Qiw2Q0FBc0I7Ozs7O0lBQ3RCLDBDQUFtQjs7Ozs7SUFHbEIsZ0RBQTBDOztJQUMxQyx1REFBdUQ7Ozs7O0lBQ3ZELDZDQUFvQzs7SUFDcEMseUNBQW9EOztJQUNwRCxvQ0FBeUM7Ozs7O0lBQ3pDLG1DQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0Q29tcG9uZW50LFxyXG5cdEVsZW1lbnRSZWYsXHJcblx0SW5qZWN0LFxyXG5cdE9uSW5pdCxcclxuXHRPcHRpb25hbCxcclxuXHRRdWVyeUxpc3QsXHJcblx0Vmlld0NoaWxkcmVuLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERhc2hib2FyZFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vZGFzaGJvYXJkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGFzaGJvYXJkUG9ybGV0c1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vZGFzaGJvYXJkUG9ybGV0cy5zZXJ2aWNlXCI7XHJcbi8vc3luY2Z1c2lvblxyXG5pbXBvcnQgeyBhZGRDbGFzcyB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiO1xyXG5pbXBvcnQgeyBDb2xvclBpY2tlckNvbXBvbmVudCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1pbnB1dHNcIjtcclxuaW1wb3J0IHsgQ29sb3JQaWNrZXJFdmVudEFyZ3MgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWlucHV0c1wiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgUEJGX1RPS0VOIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvSW5qZWN0aW9uVG9rZW5cIjtcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3V0aWxzXCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6IFwicnMtZmllbGQtZm9ybWF0XCIsXHJcblx0dGVtcGxhdGVVcmw6IFwiLi9maWVsZC1mb3JtYXQuY29tcG9uZW50Lmh0bWxcIixcclxuXHRzdHlsZVVybHM6IFtcIi4vZmllbGQtZm9ybWF0LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmllbGRGb3JtYXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdEBWaWV3Q2hpbGRyZW4oXCJjb2xvcnBpY2tlclwiKSBjb2xvclBpY2tlcjogUXVlcnlMaXN0PENvbG9yUGlja2VyQ29tcG9uZW50PjtcclxuXHRAVmlld0NoaWxkcmVuKFwiY29sb3JwaWNrZXJGb250XCIpXHJcblx0Y29sb3JQaWNrZXJGb250OiBRdWVyeUxpc3Q8Q29sb3JQaWNrZXJDb21wb25lbnQ+O1xyXG5cdEBWaWV3Q2hpbGRyZW4oXCJwcmV2aWV3Q29sb3JcIikgUHJldmlld0NvbG9yOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XHJcblx0QFZpZXdDaGlsZHJlbihcImNvbG9ycGlja2VyQnVyZGVuXCIpXHJcblx0Y29sb3JwaWNrZXJCdXJkZW46IFF1ZXJ5TGlzdDxDb2xvclBpY2tlckNvbXBvbmVudD47XHJcblx0QFZpZXdDaGlsZHJlbihcImNvbG9ycGlja2VyRm9udEJ1cmRlblwiKVxyXG5cdGNvbG9ycGlja2VyRm9udEJ1cmRlbjogUXVlcnlMaXN0PENvbG9yUGlja2VyQ29tcG9uZW50PjtcclxuXHRAVmlld0NoaWxkcmVuKFwicHJldmlld0NvbG9yQnVyZGVuXCIpXHJcblx0cHJldmlld0NvbG9yQnVyZGVuOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XHJcblx0cHVibGljIHRyYW5zbGF0aW9uOiBhbnkgPSB7fTtcclxuXHRwdWJsaWMgYWxpZ25MaXN0OiBBcnJheTxhbnk+O1xyXG5cdHB1YmxpYyBmb250U2l6ZUxpc3Q6IEFycmF5PGFueT47XHJcblx0cHVibGljIGNvbXBhcmVMaXN0OiBBcnJheTxhbnk+O1xyXG5cdHB1YmxpYyBzdHJpbmdBbmREYXRlQ29tcGFyZUxpc3Q6IEFycmF5PGFueT47XHJcblx0cHVibGljIGZvbnRGYW1pbHlMaXN0OiBBcnJheTxhbnk+O1xyXG5cdHB1YmxpYyBjb21wYXJlU2VsZWN0OiBzdHJpbmcgPSBcIlwiO1xyXG5cdHB1YmxpYyBjb25maWc6IGFueSA9IHt9O1xyXG5cdHB1YmxpYyBDb25kaXRpb25hbDogYm9vbGVhbiA9IHRydWU7XHJcblx0cHVibGljIGZpZWxkc2xpc3QgPSBbXTtcclxuXHRwdWJsaWMgY3VycmVudEZpZWxkO1xyXG5cdHB1YmxpYyBjdXJyZW50RmllbGRGb3JtYXRJbmZvO1xyXG5cdHByaXZhdGUgcXVhcnRlckZvcm1hdDtcclxuXHRwcml2YXRlIGRhdGVGb3JtYXQ7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBEYXNoYm9hcmRTZXJ2aWNlOiBEYXNoYm9hcmRTZXJ2aWNlLFxyXG5cdFx0cHVibGljIGRhc2hib2FyZFBvcmxldHNTZXJ2aWNlOiBEYXNoYm9hcmRQb3JsZXRzU2VydmljZSxcclxuXHRcdHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuXHRcdHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxGaWVsZEZvcm1hdENvbXBvbmVudD4sXHJcblx0XHRASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcclxuXHRcdEBPcHRpb25hbCgpIEBJbmplY3QoUEJGX1RPS0VOKSBwcml2YXRlIHBiZjogYW55LFxyXG5cclxuXHQpIHsgfVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdHRoaXMudHJhbnNsYXRpb24gPSBnZXRUcmFuc2xhdGlvbigpXHJcblx0XHR0aGlzLmFsaWduTGlzdCA9IHRoaXMuc2V0QWxpZ25MaXN0KCk7XHJcblx0XHR0aGlzLmZvbnRTaXplTGlzdCA9IHRoaXMuc2V0Rm9udFNpemVMaXN0KCk7XHJcblx0XHR0aGlzLmNvbXBhcmVMaXN0ID0gdGhpcy5zZXRDb21wYXJlTGlzdCgpO1xyXG5cdFx0dGhpcy5zdHJpbmdBbmREYXRlQ29tcGFyZUxpc3QgPSB0aGlzLnNldFN0cmluZ0FuZERhdGVDb21wYXJlTGlzdCgpO1xyXG5cdFx0dGhpcy5mb250RmFtaWx5TGlzdCA9IHRoaXMuc2V0Rm9udEZhbWlseUxpc3QoKTtcclxuXHRcdHRoaXMucXVhcnRlckZvcm1hdCA9IHRoaXMuc2V0UXVhcnRlckZvcm1hdCgpO1xyXG5cdFx0dGhpcy5kYXRlRm9ybWF0ID0gdGhpcy5zZXREYXRlRm9ybWF0KCk7XHJcblx0XHRpZiAodGhpcy5kYXRhLnBvcnRsZXREYXRhKSB0aGlzLmdldENvbmRpdGlvbmFsRGF0YSgpO1xyXG5cdH1cclxuXHJcblx0Ly8g6I635Y+WZmllbGQgbGlzdOmhtemdouaVsOaNrlxyXG5cdHByaXZhdGUgZ2V0Q29uZGl0aW9uYWxEYXRhKCkge1xyXG5cdFx0dGhpcy5jb25maWcgPSBKU09OLnBhcnNlKHRoaXMuZGF0YS5wb3J0bGV0RGF0YS5jb25maWcpO1xyXG5cdFx0dGhpcy5maWVsZHNsaXN0ID0gW107XHJcblx0XHQvL3Bpdm90IHRhYmxlL2NoYXJ0KGdldCB0aGUgcm93cyxjb2x1bXMsdmFsdWVzIGV0YylcclxuXHRcdGlmIChcclxuXHRcdFx0W1xyXG5cdFx0XHRcdFwicGl2b3RcIixcclxuXHRcdFx0XHRcImJhclwiLFxyXG5cdFx0XHRcdFwiY29sdW1uXCIsXHJcblx0XHRcdFx0XCJsaW5lXCIsXHJcblx0XHRcdFx0XCJhcmVhXCIsXHJcblx0XHRcdFx0XCJwaWVcIixcclxuXHRcdFx0XHRcInJhZGFyXCIsXHJcblx0XHRcdFx0XCJuZXdjaGFydFwiLFxyXG5cdFx0XHRdLmluY2x1ZGVzKHRoaXMuY29uZmlnLnBvcnRsZXRUeXBlKVxyXG5cdFx0KSB7XHJcblx0XHRcdGlmICh0aGlzLmNvbmZpZy54YXhpcy5ncm91cHMpXHJcblx0XHRcdFx0Zm9yIChsZXQgZ3JvdXAgb2YgdGhpcy5jb25maWcueGF4aXMuZ3JvdXBzKSB7XHJcblx0XHRcdFx0XHR0aGlzLmZpZWxkc2xpc3QucHVzaChcclxuXHRcdFx0XHRcdFx0dGhpcy5jb25maWcuZmllbGRzLmZpbHRlcihcclxuXHRcdFx0XHRcdFx0XHQoZWwpID0+IGVsLmNvbE5hbWUgPT09IGdyb3VwLm5hbWVcclxuXHRcdFx0XHRcdFx0KVswXVxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdGlmICh0aGlzLmNvbmZpZy5jb2x1bW5Hcm91cClcclxuXHRcdFx0XHRmb3IgKGxldCBjb2x1bW4gb2YgdGhpcy5jb25maWcuY29sdW1uR3JvdXApIHtcclxuXHRcdFx0XHRcdHRoaXMuZmllbGRzbGlzdC5wdXNoKFxyXG5cdFx0XHRcdFx0XHR0aGlzLmNvbmZpZy5maWVsZHMuZmlsdGVyKFxyXG5cdFx0XHRcdFx0XHRcdChlbCkgPT4gZWwuY29sTmFtZSA9PT0gY29sdW1uLm5hbWVcclxuXHRcdFx0XHRcdFx0KVswXVxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdGlmICh0aGlzLmNvbmZpZy55YXhpcy5zZXJpZXMpXHJcblx0XHRcdFx0Zm9yIChsZXQgdmFsdWUgb2YgdGhpcy5jb25maWcueWF4aXMuc2VyaWVzKSB7XHJcblx0XHRcdFx0XHRjb25zdCBwdmFsdWUgPSB0aGlzLmNvbmZpZy5maWVsZHMuZmluZChcclxuXHRcdFx0XHRcdFx0KGVsKSA9PiBlbC5jb2xOYW1lID09PSB2YWx1ZS5jb2xOYW1lXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0bGV0IGFsbEZpZWxkcyA9IHRoaXMuY29uZmlnLmZpZWxkcztcclxuXHRcdFx0XHRcdGxldCBkaXNwbGF5TmFtZSA9IHZhbHVlLnRpdGxlO1xyXG5cdFx0XHRcdFx0aWYgKGFsbEZpZWxkcyAmJiBwdmFsdWUpIHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgaXRlbSA9IGFsbEZpZWxkcy5maW5kKFxyXG5cdFx0XHRcdFx0XHRcdChmaWVsZCkgPT4gZmllbGQuY29sTmFtZSA9PT0gcHZhbHVlLmNvbE5hbWVcclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0aWYgKGl0ZW0pIHtcclxuXHRcdFx0XHRcdFx0XHRkaXNwbGF5TmFtZSA9XHJcblx0XHRcdFx0XHRcdFx0XHQoaXRlbS5mb3JtYXQgJiZcclxuXHRcdFx0XHRcdFx0XHRcdFx0aXRlbS5mb3JtYXQubGVuZ3RoICYmXHJcblx0XHRcdFx0XHRcdFx0XHRcdGl0ZW0uZm9ybWF0WzBdLmRpc3BsYXlOYW1lKSB8fFxyXG5cdFx0XHRcdFx0XHRcdFx0aXRlbS5sYW5nVmFsdWU7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGlmIChwdmFsdWUpIHtcclxuXHRcdFx0XHRcdFx0cHZhbHVlW1wiaXNWYWx1ZVwiXSA9IHRydWU7XHJcblx0XHRcdFx0XHRcdHB2YWx1ZVtcInNob3dTdWJUb3RhbHNcIl0gPSB2YWx1ZS5zaG93U3ViVG90YWxzO1xyXG5cdFx0XHRcdFx0XHRwdmFsdWVbXCJzaG93R3JhbmRUb3RhbHNcIl0gPSB2YWx1ZS5zaG93R3JhbmRUb3RhbHM7XHJcblx0XHRcdFx0XHRcdHB2YWx1ZVtcImxhbmdWYWx1ZVwiXSA9IGRpc3BsYXlOYW1lO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmZpZWxkc2xpc3QucHVzaChwdmFsdWUpO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dmFsdWUuaXNWYWx1ZSA9IHRydWU7XHJcblx0XHRcdFx0XHRcdHRoaXMuZmllbGRzbGlzdC5wdXNoKHtcclxuXHRcdFx0XHRcdFx0XHRjb2xOYW1lOiB2YWx1ZS5jb2xOYW1lLFxyXG5cdFx0XHRcdFx0XHRcdGxhbmdWYWx1ZTogZGlzcGxheU5hbWUsXHJcblx0XHRcdFx0XHRcdFx0aXNWYWx1ZTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHRzaG93U3ViVG90YWxzOiB2YWx1ZS5zaG93U3ViVG90YWxzLFxyXG5cdFx0XHRcdFx0XHRcdHNob3dHcmFuZFRvdGFsczogdmFsdWUuc2hvd0dyYW5kVG90YWxzLFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRsZXQga2V5cyA9IFtdO1xyXG5cdFx0XHRpZiAodGhpcy5jb25maWcuZmllbGRzLmxlbmd0aClcclxuXHRcdFx0XHRrZXlzID0gT2JqZWN0LmtleXModGhpcy5jb25maWcuZmllbGRzWzBdKTtcclxuXHRcdFx0dGhpcy5maWVsZHNsaXN0ID0gdGhpcy5jb25maWcuZmllbGRzLmZpbHRlcigoZWwpID0+XHJcblx0XHRcdFx0a2V5cy5pbmNsdWRlcyhcInZpc2libGVcIilcclxuXHRcdFx0XHRcdD8gZWwudmlzaWJsZSAmJiAhZWwuaXNIaWRkZW5cclxuXHRcdFx0XHRcdDogIWVsLmlzSGlkZGVuXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblx0XHQvLyDmiYDmnIlmaWVsZOmDvee7meS4gOS4qnNob3dHcmFuZFRvdGFsc+WSjHNob3dTdWJUb3RhbHPnmoTlgLzvvIznu5HlrppmaWVsZCBsaXN06aG16Z2iaWNvbueKtuaAge+8jOWPimZvcm1hdOmhtemdokhpZGUgc3VidG90YWzjgIFIaWRlIGdyYW5kdG90YWznrYnnirbmgIFcclxuXHRcdHRoaXMuZmllbGRzbGlzdC5tYXAoKGVsKSA9PiB7XHJcblx0XHRcdGxldCBrZXlzID0gT2JqZWN0LmtleXMoZWwpO1xyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0IWtleXMuaW5jbHVkZXMoXCJzaG93R3JhbmRUb3RhbHNcIikgfHxcclxuXHRcdFx0XHRlbC5zaG93R3JhbmRUb3RhbHMgPT09IHVuZGVmaW5lZFxyXG5cdFx0XHQpXHJcblx0XHRcdFx0ZWwuc2hvd0dyYW5kVG90YWxzID0gdHJ1ZTtcclxuXHRcdFx0aWYgKFxyXG5cdFx0XHRcdCFrZXlzLmluY2x1ZGVzKFwic2hvd1N1YlRvdGFsc1wiKSB8fFxyXG5cdFx0XHRcdGVsLnNob3dTdWJUb3RhbHMgPT09IHVuZGVmaW5lZFxyXG5cdFx0XHQpXHJcblx0XHRcdFx0ZWwuc2hvd1N1YlRvdGFscyA9IHRydWU7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8vIOaJk+W8gGZpZWxk55qEZm9ybWF06aG16Z2iXHJcblx0cHVibGljIG9wZW5Gb3JtYXQoaXRlbSkge1xyXG5cdFx0Ly9jbGVhciB0aGUgY2hlY2tib3hcclxuXHRcdHRoaXMuQ29uZGl0aW9uYWwgPSBmYWxzZTtcclxuXHRcdHRoaXMuY3VycmVudEZpZWxkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShpdGVtKSk7XHJcblx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8gPVxyXG5cdFx0XHQoaXRlbS5mb3JtYXQgJiYgaXRlbS5mb3JtYXRbMF0pIHx8IHRoaXMuc2V0Rm9ybWF0R3JvdXBEZWZhdWx0RGF0YSgpO1xyXG5cdFx0ZGVsZXRlIHRoaXMuY3VycmVudEZpZWxkLmZvcm1hdDsgLy8g5Yig5o6JY3VycmVudEZpZWxk55qEZm9ybWF077yM5bCGZm9ybWF05L+h5oGv5L+d5a2Y5ZyoY3VycmVudEZpZWxkRm9ybWF0SW5mb1xyXG5cdFx0dGhpcy5zZWxlY3RPcHRpb24oaXRlbS5jb2xOYW1lLCBcImZpZWxkXCIpO1xyXG5cdFx0aWYgKCFbXCJzdHJpbmdcIiwgXCJudmFyY2hhclwiLCBcImRhdGVcIiwgXCJkYXRldGltZVwiXS5pbmNsdWRlcyhpdGVtLmRhdGFUeXBlKSlcclxuXHRcdFx0dGhpcy5hZGRDb2xvclBpY2tlclN0eWxlKCk7XHJcblx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9ybWF0TGlzdCAmJlxyXG5cdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9ybWF0TGlzdC5tYXAoXHJcblx0XHRcdFx0KGVsKSA9PlxyXG5cdFx0XHRcdChlbC5pc0NoZWNrZWQgPVxyXG5cdFx0XHRcdFx0ZWwua2V5ID09XHJcblx0XHRcdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5zZWxlY3RlZEZvcm1hdERpc3BsYXlcclxuXHRcdFx0XHRcdFx0PyB0cnVlXHJcblx0XHRcdFx0XHRcdDogZmFsc2UpXHJcblx0XHRcdCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc2VsZWN0T3B0aW9uKHZhbHVlLCB0eXBlKSB7XHJcblx0XHRsZXQgUHJldmlld0NvbG9yRWxlbWVudCA9IHRoaXMuUHJldmlld0NvbG9yW1wiX3Jlc3VsdHNcIl07XHJcblx0XHRsZXQgcHJldmlld0NvbG9yQnVyZGVuRWxlbWVudCA9IHRoaXMucHJldmlld0NvbG9yQnVyZGVuW1wiX3Jlc3VsdHNcIl07XHJcblx0XHRsZXQgYWxsRmllbGRzID0gdGhpcy5jb25maWcuZmllbGRzO1xyXG5cdFx0bGV0IGRpc3BsYXlOYW1lID0gdGhpcy5jdXJyZW50RmllbGQuZGlzcGxheU5hbWU7XHJcblx0XHRpZiAoYWxsRmllbGRzICYmICghZGlzcGxheU5hbWUgfHwgZGlzcGxheU5hbWUubGVuZ3RoID09PSAwKSkge1xyXG5cdFx0XHRjb25zdCBpdGVtID0gYWxsRmllbGRzLmZpbmQoXHJcblx0XHRcdFx0KGZpZWxkKSA9PiBmaWVsZC5jb2xOYW1lID09PSB0aGlzLmN1cnJlbnRGaWVsZC5jb2xOYW1lXHJcblx0XHRcdCk7XHJcblx0XHRcdGlmIChpdGVtKSB7XHJcblx0XHRcdFx0ZGlzcGxheU5hbWUgPVxyXG5cdFx0XHRcdFx0KGl0ZW0uZm9ybWF0ICYmXHJcblx0XHRcdFx0XHRcdGl0ZW0uZm9ybWF0Lmxlbmd0aCAmJlxyXG5cdFx0XHRcdFx0XHRpdGVtLmZvcm1hdFswXS5kaXNwbGF5TmFtZSkgfHxcclxuXHRcdFx0XHRcdGl0ZW0ubGFuZ1ZhbHVlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRzd2l0Y2ggKHR5cGUpIHtcclxuXHRcdFx0Y2FzZSBcImZpZWxkXCI6XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLnNlbGVjdGVkRmllbGQgPVxyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGQuY29sTmFtZTtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZGF0YVR5cGUgPVxyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGQuZGF0YVR5cGU7XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmRpc3BsYXlOYW1lID0gZGlzcGxheU5hbWUgfHwgXCJcIjtcclxuXHRcdFx0XHR0aGlzLmdldEZpbGVkRm9ybWF0KCk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJjb21wYXJlXCI6XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvcm1hdENoZWNrZWQgPSB0cnVlO1xyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5jb21wYXJlU2VsZWN0ID0gdGhpcy5vcHRpb25GaWx0ZXIoXHJcblx0XHRcdFx0XHR0aGlzLmNvbXBhcmVMaXN0LFxyXG5cdFx0XHRcdFx0XCJjb2RlXCIsXHJcblx0XHRcdFx0XHR2YWx1ZVxyXG5cdFx0XHRcdClbMF0uY29kZTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcInNlbGVjdGREYXRlVHlwZVwiOlxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb3JtYXRDaGVja2VkID0gdHJ1ZTtcclxuXHRcdFx0XHRpZiAodmFsdWUgPT0gXCJRdWFydGVyXCIpIHtcclxuXHRcdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb3JtYXRMaXN0ID0gdGhpcy5xdWFydGVyRm9ybWF0O1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAodmFsdWUgPT0gXCJEYXRlXCIpIHtcclxuXHRcdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb3JtYXRMaXN0ID0gdGhpcy5kYXRlRm9ybWF0O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uc2VsZWN0ZWRGb3JtYXREaXNwbGF5ID0gXCJcIjtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uc2VsZWN0ZWRGb3JtYXQgPSBcIlwiO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIFwic2VsZWN0ZERhdGVmb3JtYXRcIjpcclxuXHRcdFx0Y2FzZSBcIm51bWJlclwiOlxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb3JtYXRDaGVja2VkID0gdHJ1ZTtcclxuXHRcdFx0XHRmb3IgKGNvbnN0IGl0ZXJhdG9yIG9mIHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb3JtYXRMaXN0KSB7XHJcblx0XHRcdFx0XHRpdGVyYXRvci5pc0NoZWNrZWQgPSBCb29sZWFuKGl0ZXJhdG9yLmtleSA9PSB2YWx1ZSk7XHJcblx0XHRcdFx0XHRpZiAoaXRlcmF0b3Iua2V5ID09IHZhbHVlKVxyXG5cdFx0XHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uc2VsZWN0ZWRGb3JtYXQgPVxyXG5cdFx0XHRcdFx0XHRcdGl0ZXJhdG9yLnZhbDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJmb250RmFtaWx5XCI6XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvbnRTZXR0aW5nQ2hlY2tlZCA9IHRydWU7XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvbnRGYW1pbHlWYWx1ZSA9IHRoaXMub3B0aW9uRmlsdGVyKFxyXG5cdFx0XHRcdFx0dGhpcy5mb250RmFtaWx5TGlzdCxcclxuXHRcdFx0XHRcdFwidmFsdWVcIixcclxuXHRcdFx0XHRcdHZhbHVlXHJcblx0XHRcdFx0KVswXS52YWx1ZTtcclxuXHRcdFx0XHQoXHJcblx0XHRcdFx0XHRQcmV2aWV3Q29sb3JFbGVtZW50WzBdLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFx0XCIuZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0XHQpIGFzIEhUTUxFbGVtZW50XHJcblx0XHRcdFx0KS5zdHlsZS5mb250RmFtaWx5ID1cclxuXHRcdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb250RmFtaWx5VmFsdWU7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJuZWdhRm9udEZhbWlseVwiOlxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb250U2V0dGluZ0NoZWNrZWQgPSB0cnVlO1xyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5uZWdhRm9udEZhbWlseVZhbHVlID1cclxuXHRcdFx0XHRcdHRoaXMub3B0aW9uRmlsdGVyKFxyXG5cdFx0XHRcdFx0XHR0aGlzLmZvbnRGYW1pbHlMaXN0LFxyXG5cdFx0XHRcdFx0XHRcInZhbHVlXCIsXHJcblx0XHRcdFx0XHRcdHZhbHVlXHJcblx0XHRcdFx0XHQpWzBdLnZhbHVlO1xyXG5cdFx0XHRcdChcclxuXHRcdFx0XHRcdHByZXZpZXdDb2xvckJ1cmRlbkVsZW1lbnRbMF0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0XHQpLnN0eWxlLmZvbnRGYW1pbHkgPVxyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLm5lZ2FGb250RmFtaWx5VmFsdWU7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJuZWdhRm9udFNpemVcIjpcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9udFNldHRpbmdDaGVja2VkID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8ubmVnYUZvbnRTaXplVmFsdWUgPVxyXG5cdFx0XHRcdFx0dGhpcy5vcHRpb25GaWx0ZXIoXHJcblx0XHRcdFx0XHRcdHRoaXMuZm9udFNpemVMaXN0LFxyXG5cdFx0XHRcdFx0XHRcInZhbHVlXCIsXHJcblx0XHRcdFx0XHRcdHZhbHVlXHJcblx0XHRcdFx0XHQpWzBdLnZhbHVlO1xyXG5cdFx0XHRcdChcclxuXHRcdFx0XHRcdHByZXZpZXdDb2xvckJ1cmRlbkVsZW1lbnRbMF0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0XHQpLnN0eWxlLmZvbnRTaXplID1cclxuXHRcdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5uZWdhRm9udFNpemVWYWx1ZTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcImZvbnRTaXplXCI6XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvbnRTZXR0aW5nQ2hlY2tlZCA9IHRydWU7XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvbnRTaXplVmFsdWUgPSB0aGlzLm9wdGlvbkZpbHRlcihcclxuXHRcdFx0XHRcdHRoaXMuZm9udFNpemVMaXN0LFxyXG5cdFx0XHRcdFx0XCJ2YWx1ZVwiLFxyXG5cdFx0XHRcdFx0dmFsdWVcclxuXHRcdFx0XHQpWzBdLnZhbHVlO1xyXG5cdFx0XHRcdChcclxuXHRcdFx0XHRcdFByZXZpZXdDb2xvckVsZW1lbnRbMF0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0XHQpLnN0eWxlLmZvbnRTaXplID0gdGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvbnRTaXplVmFsdWU7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGdldEZpbGVkRm9ybWF0KCkge1xyXG5cdFx0aWYgKCF0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uYWxpZ24pXHJcblx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5hbGlnbiA9IFtcclxuXHRcdFx0XHRcInN0cmluZ1wiLFxyXG5cdFx0XHRcdFwibnZhcmNoYXJcIixcclxuXHRcdFx0XHRcImRhdGVcIixcclxuXHRcdFx0XHRcImRhdGV0aW1lXCIsXHJcblx0XHRcdF0uaW5jbHVkZXModGhpcy5jdXJyZW50RmllbGQuZGF0YVR5cGUpXHJcblx0XHRcdFx0PyBcIkxlZnRcIlxyXG5cdFx0XHRcdDogXCJSaWdodFwiO1xyXG5cdFx0c3dpdGNoICh0aGlzLmN1cnJlbnRGaWVsZC5kYXRhVHlwZSkge1xyXG5cdFx0XHRjYXNlIFwibnVtYmVyXCI6XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvcm1hdExpc3QgPVxyXG5cdFx0XHRcdFx0dGhpcy5kYXNoYm9hcmRQb3JsZXRzU2VydmljZS5HZXRGaWd1cmVGb3JtYXQoKTtcclxuXHRcdFx0XHR0aGlzLmFkZENvbG9yUGlja2VyU3R5bGUoKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcImludGVnZXJcIjpcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9ybWF0TGlzdCA9XHJcblx0XHRcdFx0XHR0aGlzLmRhc2hib2FyZFBvcmxldHNTZXJ2aWNlLkdldEZpZ3VyZUZvcm1hdDMoKTtcclxuXHRcdFx0XHR0aGlzLmFkZENvbG9yUGlja2VyU3R5bGUoKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcInBlcmNlbnRcIjpcclxuXHRcdFx0Y2FzZSBcInBlcmNlbnROdW1cIjpcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9ybWF0TGlzdCA9XHJcblx0XHRcdFx0XHR0aGlzLmRhc2hib2FyZFBvcmxldHNTZXJ2aWNlLkdldFBlcmNlbnRGb3JtYXRzKCk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJtdWx0aXBsZVwiOlxyXG5cdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb3JtYXRMaXN0ID1cclxuXHRcdFx0XHRcdHRoaXMuZGFzaGJvYXJkUG9ybGV0c1NlcnZpY2UuR2V0TXVsdGlwbGVGb3JtYXRzKCk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIG9wdGlvbkZpbHRlcihkYXRhLCBmaWVsZCwgY29tcGFyZVZhbHVlKSB7XHJcblx0XHRyZXR1cm4gZGF0YS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW1bZmllbGRdID09PSBjb21wYXJlVmFsdWUpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGNoYW5nZUFsaWdoKGNvZGUpIHtcclxuXHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5hbGlnbiA9IGNvZGU7XHJcblx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9ybWF0Q2hlY2tlZCA9IHRydWU7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFkZENvbG9yUGlja2VyU3R5bGUoKSB7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0bGV0IGNvbG9yUGlja2VyRm9udEVsZW1lbnQgPSB0aGlzLmNvbG9yUGlja2VyRm9udFtcIl9yZXN1bHRzXCJdO1xyXG5cdFx0XHRsZXQgY29sb3JQaWNrZXJFbGVtZW50ID0gdGhpcy5jb2xvclBpY2tlcltcIl9yZXN1bHRzXCJdO1xyXG5cdFx0XHRsZXQgUHJldmlld0NvbG9yRWxlbWVudCA9IHRoaXMuUHJldmlld0NvbG9yW1wiX3Jlc3VsdHNcIl07XHJcblx0XHRcdGxldCBjb2xvcnBpY2tlckJ1cmRlbkVsZW1lbnQgPSB0aGlzLmNvbG9ycGlja2VyQnVyZGVuW1wiX3Jlc3VsdHNcIl07XHJcblx0XHRcdGxldCBjb2xvcnBpY2tlckZvbnRCdXJkZW5FbGVtZW50ID1cclxuXHRcdFx0XHR0aGlzLmNvbG9ycGlja2VyRm9udEJ1cmRlbltcIl9yZXN1bHRzXCJdO1xyXG5cdFx0XHRsZXQgcHJldmlld0NvbG9yQnVyZGVuRWxlbWVudCA9IHRoaXMucHJldmlld0NvbG9yQnVyZGVuW1wiX3Jlc3VsdHNcIl07XHJcblx0XHRcdGNvbG9yUGlja2VyRm9udEVsZW1lbnQuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG5cdFx0XHRcdGFkZENsYXNzKFxyXG5cdFx0XHRcdFx0W1xyXG5cdFx0XHRcdFx0XHRpdGVtLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFx0XCIuZS1zZWxlY3RlZC1jb2xvclwiXHJcblx0XHRcdFx0XHRcdCksXHJcblx0XHRcdFx0XHRdLFxyXG5cdFx0XHRcdFx0XCJlLWljb25zXCJcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0Y29sb3JQaWNrZXJFbGVtZW50LmZvckVhY2goKGl0ZW0pID0+IHtcclxuXHRcdFx0XHRhZGRDbGFzcyhcclxuXHRcdFx0XHRcdFtcclxuXHRcdFx0XHRcdFx0aXRlbS5lbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcdFwiLmUtc2VsZWN0ZWQtY29sb3JcIlxyXG5cdFx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdFx0XSxcclxuXHRcdFx0XHRcdFwiZS1pY29uc1wiXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHRpZiAoY29sb3JwaWNrZXJCdXJkZW5FbGVtZW50Lmxlbmd0aClcclxuXHRcdFx0XHRjb2xvcnBpY2tlckJ1cmRlbkVsZW1lbnQuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG5cdFx0XHRcdFx0YWRkQ2xhc3MoXHJcblx0XHRcdFx0XHRcdFtcclxuXHRcdFx0XHRcdFx0XHRpdGVtLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFx0XHRcIi5lLXNlbGVjdGVkLWNvbG9yXCJcclxuXHRcdFx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdFx0XHRdLFxyXG5cdFx0XHRcdFx0XHRcImUtaWNvbnNcIlxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0aWYgKGNvbG9ycGlja2VyRm9udEJ1cmRlbkVsZW1lbnQubGVuZ3RoKVxyXG5cdFx0XHRcdGNvbG9ycGlja2VyRm9udEJ1cmRlbkVsZW1lbnQuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG5cdFx0XHRcdFx0YWRkQ2xhc3MoXHJcblx0XHRcdFx0XHRcdFtcclxuXHRcdFx0XHRcdFx0XHRpdGVtLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFx0XHRcIi5lLXNlbGVjdGVkLWNvbG9yXCJcclxuXHRcdFx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdFx0XHRdLFxyXG5cdFx0XHRcdFx0XHRcImUtaWNvbnNcIlxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0YWRkQ2xhc3MoXHJcblx0XHRcdFx0W1xyXG5cdFx0XHRcdFx0Y29sb3JQaWNrZXJGb250RWxlbWVudFswXS5lbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcIi5lLXNlbGVjdGVkLWNvbG9yXCJcclxuXHRcdFx0XHRcdCksXHJcblx0XHRcdFx0XSxcclxuXHRcdFx0XHRcImZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHQpO1xyXG5cdFx0XHRhZGRDbGFzcyhcclxuXHRcdFx0XHRbXHJcblx0XHRcdFx0XHRjb2xvclBpY2tlckVsZW1lbnRbMF0uZWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFx0XCIuZS1zZWxlY3RlZC1jb2xvclwiXHJcblx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdF0sXHJcblx0XHRcdFx0XCJmb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0KTtcclxuXHRcdFx0YWRkQ2xhc3MoXHJcblx0XHRcdFx0W1xyXG5cdFx0XHRcdFx0UHJldmlld0NvbG9yRWxlbWVudFswXS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFwiLnByZXZpZXdcIlxyXG5cdFx0XHRcdFx0KSxcclxuXHRcdFx0XHRdLFxyXG5cdFx0XHRcdFwiZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdCk7XHJcblxyXG5cdFx0XHQoXHJcblx0XHRcdFx0UHJldmlld0NvbG9yRWxlbWVudFswXS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHQpIGFzIEhUTUxFbGVtZW50XHJcblx0XHRcdCkuc3R5bGUuY29sb3IgPSB0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9udENvbG9yO1xyXG5cdFx0XHQoXHJcblx0XHRcdFx0UHJldmlld0NvbG9yRWxlbWVudFswXS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHQpIGFzIEhUTUxFbGVtZW50XHJcblx0XHRcdCkuc3R5bGVbXCJiYWNrZ3JvdW5kLWNvbG9yXCJdID1cclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uYmFja2dyb3VuZENvbG9yO1xyXG5cdFx0XHQoXHJcblx0XHRcdFx0Y29sb3JQaWNrZXJGb250RWxlbWVudFswXS5lbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XCIuZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0KSBhcyBIVE1MRWxlbWVudFxyXG5cdFx0XHQpLnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yID0gdGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvbnRDb2xvcjtcclxuXHRcdFx0KFxyXG5cdFx0XHRcdGNvbG9yUGlja2VyRWxlbWVudFswXS5lbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XCIuZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0KSBhcyBIVE1MRWxlbWVudFxyXG5cdFx0XHQpLnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yID1cclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uYmFja2dyb3VuZENvbG9yO1xyXG5cclxuXHRcdFx0aWYgKFxyXG5cdFx0XHRcdGNvbG9ycGlja2VyQnVyZGVuRWxlbWVudFswXSAmJlxyXG5cdFx0XHRcdGNvbG9ycGlja2VyRm9udEJ1cmRlbkVsZW1lbnRbMF0gJiZcclxuXHRcdFx0XHRwcmV2aWV3Q29sb3JCdXJkZW5FbGVtZW50WzBdXHJcblx0XHRcdCkge1xyXG5cdFx0XHRcdGFkZENsYXNzKFxyXG5cdFx0XHRcdFx0W1xyXG5cdFx0XHRcdFx0XHRjb2xvcnBpY2tlckZvbnRCdXJkZW5FbGVtZW50WzBdLmVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nLnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFx0XCIuZS1zZWxlY3RlZC1jb2xvclwiXHJcblx0XHRcdFx0XHRcdCksXHJcblx0XHRcdFx0XHRdLFxyXG5cdFx0XHRcdFx0XCJmb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdGFkZENsYXNzKFxyXG5cdFx0XHRcdFx0W1xyXG5cdFx0XHRcdFx0XHRjb2xvcnBpY2tlckJ1cmRlbkVsZW1lbnRbMF0uZWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFx0XHRcIi5lLXNlbGVjdGVkLWNvbG9yXCJcclxuXHRcdFx0XHRcdFx0KSxcclxuXHRcdFx0XHRcdF0sXHJcblx0XHRcdFx0XHRcImZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0YWRkQ2xhc3MoXHJcblx0XHRcdFx0XHRbXHJcblx0XHRcdFx0XHRcdHByZXZpZXdDb2xvckJ1cmRlbkVsZW1lbnRbMF0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcdFwiLnByZXZpZXdcIlxyXG5cdFx0XHRcdFx0XHQpLFxyXG5cdFx0XHRcdFx0XSxcclxuXHRcdFx0XHRcdFwiZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0KTtcclxuXHJcblx0XHRcdFx0KFxyXG5cdFx0XHRcdFx0cHJldmlld0NvbG9yQnVyZGVuRWxlbWVudFswXS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFwiLmZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHRcdFx0KSBhcyBIVE1MRWxlbWVudFxyXG5cdFx0XHRcdCkuc3R5bGUuY29sb3IgPSB0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8ubmVnYUZvbnRDb2xvcjtcclxuXHRcdFx0XHQoXHJcblx0XHRcdFx0XHRwcmV2aWV3Q29sb3JCdXJkZW5FbGVtZW50WzBdLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuXHRcdFx0XHRcdFx0XCIuZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0XHQpIGFzIEhUTUxFbGVtZW50XHJcblx0XHRcdFx0KS5zdHlsZVtcImJhY2tncm91bmQtY29sb3JcIl0gPVxyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLm5lZ2FCYWNrZ3JvdW5kQ29sb3I7XHJcblx0XHRcdFx0KFxyXG5cdFx0XHRcdFx0Y29sb3JwaWNrZXJGb250QnVyZGVuRWxlbWVudFswXS5lbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0XHQpLnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yID1cclxuXHRcdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5uZWdhRm9udENvbG9yO1xyXG5cdFx0XHRcdChcclxuXHRcdFx0XHRcdGNvbG9ycGlja2VyQnVyZGVuRWxlbWVudFswXS5lbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcIi5mb3JtYXQtZ3JvdXBzXCJcclxuXHRcdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0XHQpLnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yID1cclxuXHRcdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5uZWdhQmFja2dyb3VuZENvbG9yO1xyXG5cdFx0XHR9XHJcblx0XHR9LCA0MDApO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGNvbG9yT25DaGFuZ2UoYXJnczogQ29sb3JQaWNrZXJFdmVudEFyZ3MsIHR5cGU/KTogdm9pZCB7XHJcblx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9udFNldHRpbmdDaGVja2VkID0gdHJ1ZTtcclxuXHRcdGxldCBjb2xvclBpY2tlckZvbnRFbGVtZW50ID0gdGhpcy5jb2xvclBpY2tlckZvbnRbXCJfcmVzdWx0c1wiXTtcclxuXHRcdGxldCBjb2xvclBpY2tlckVsZW1lbnQgPSB0aGlzLmNvbG9yUGlja2VyW1wiX3Jlc3VsdHNcIl07XHJcblx0XHRsZXQgUHJldmlld0NvbG9yRWxlbWVudCA9IHRoaXMuUHJldmlld0NvbG9yW1wiX3Jlc3VsdHNcIl07XHJcblx0XHRsZXQgY29sb3JwaWNrZXJCdXJkZW5FbGVtZW50ID0gdGhpcy5jb2xvcnBpY2tlckJ1cmRlbltcIl9yZXN1bHRzXCJdO1xyXG5cdFx0bGV0IGNvbG9ycGlja2VyRm9udEJ1cmRlbkVsZW1lbnQgPVxyXG5cdFx0XHR0aGlzLmNvbG9ycGlja2VyRm9udEJ1cmRlbltcIl9yZXN1bHRzXCJdO1xyXG5cdFx0bGV0IHByZXZpZXdDb2xvckJ1cmRlbkVsZW1lbnQgPSB0aGlzLnByZXZpZXdDb2xvckJ1cmRlbltcIl9yZXN1bHRzXCJdO1xyXG5cdFx0aWYgKHR5cGUpIHtcclxuXHRcdFx0c3dpdGNoICh0eXBlKSB7XHJcblx0XHRcdFx0Y2FzZSBcImZvbnRcIjpcclxuXHRcdFx0XHRcdChcclxuXHRcdFx0XHRcdFx0Y29sb3JQaWNrZXJGb250RWxlbWVudFswXS5lbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcdFwiLmZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHRcdFx0XHQpIGFzIEhUTUxFbGVtZW50XHJcblx0XHRcdFx0XHQpLnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yID0gYXJncy5jdXJyZW50VmFsdWUucmdiYTtcclxuXHRcdFx0XHRcdChcclxuXHRcdFx0XHRcdFx0UHJldmlld0NvbG9yRWxlbWVudFswXS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFx0XCIuZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0XHRcdCkuc3R5bGUuY29sb3IgPSBhcmdzLmN1cnJlbnRWYWx1ZS5yZ2JhO1xyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmZvbnRDb2xvciA9XHJcblx0XHRcdFx0XHRcdGFyZ3MuY3VycmVudFZhbHVlLnJnYmE7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlIFwibmdlYUZvbnRcIjpcclxuXHRcdFx0XHRcdChcclxuXHRcdFx0XHRcdFx0Y29sb3JwaWNrZXJGb250QnVyZGVuRWxlbWVudFswXS5lbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcdFwiLmZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHRcdFx0XHQpIGFzIEhUTUxFbGVtZW50XHJcblx0XHRcdFx0XHQpLnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yID0gYXJncy5jdXJyZW50VmFsdWUucmdiYTtcclxuXHRcdFx0XHRcdChcclxuXHRcdFx0XHRcdFx0cHJldmlld0NvbG9yQnVyZGVuRWxlbWVudFswXS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFx0XCIuZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0XHRcdCkuc3R5bGUuY29sb3IgPSBhcmdzLmN1cnJlbnRWYWx1ZS5yZ2JhO1xyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLm5lZ2FGb250Q29sb3IgPVxyXG5cdFx0XHRcdFx0XHRhcmdzLmN1cnJlbnRWYWx1ZS5yZ2JhO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSBcIm5nZWFCZ0NvbG9yXCI6XHJcblx0XHRcdFx0XHQoXHJcblx0XHRcdFx0XHRcdGNvbG9ycGlja2VyQnVyZGVuRWxlbWVudFswXS5lbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XHRcdFwiLmZvcm1hdC1ncm91cHNcIlxyXG5cdFx0XHRcdFx0XHQpIGFzIEhUTUxFbGVtZW50XHJcblx0XHRcdFx0XHQpLnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yID0gYXJncy5jdXJyZW50VmFsdWUucmdiYTtcclxuXHRcdFx0XHRcdChcclxuXHRcdFx0XHRcdFx0cHJldmlld0NvbG9yQnVyZGVuRWxlbWVudFswXS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcblx0XHRcdFx0XHRcdFx0XCIuZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0XHRcdCkgYXMgSFRNTEVsZW1lbnRcclxuXHRcdFx0XHRcdCkuc3R5bGVbXCJiYWNrZ3JvdW5kLWNvbG9yXCJdID0gYXJncy5jdXJyZW50VmFsdWUucmdiYTtcclxuXHRcdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5uZWdhQmFja2dyb3VuZENvbG9yID1cclxuXHRcdFx0XHRcdFx0YXJncy5jdXJyZW50VmFsdWUucmdiYTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0KFxyXG5cdFx0XHRcdGNvbG9yUGlja2VyRWxlbWVudFswXS5lbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XCIuZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0KSBhcyBIVE1MRWxlbWVudFxyXG5cdFx0XHQpLnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yID0gYXJncy5jdXJyZW50VmFsdWUucmdiYTtcclxuXHRcdFx0KFxyXG5cdFx0XHRcdFByZXZpZXdDb2xvckVsZW1lbnRbMF0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxyXG5cdFx0XHRcdFx0XCIuZm9ybWF0LWdyb3Vwc1wiXHJcblx0XHRcdFx0KSBhcyBIVE1MRWxlbWVudFxyXG5cdFx0XHQpLnN0eWxlW1wiYmFja2dyb3VuZC1jb2xvclwiXSA9IGFyZ3MuY3VycmVudFZhbHVlLnJnYmE7XHJcblx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5iYWNrZ3JvdW5kQ29sb3IgPVxyXG5cdFx0XHRcdGFyZ3MuY3VycmVudFZhbHVlLnJnYmE7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgY2hhbmdlSGlkZVN0YXR1cyhjb2RlKSB7XHJcblx0XHR0aGlzLmN1cnJlbnRGaWVsZFtjb2RlXSA9ICF0aGlzLmN1cnJlbnRGaWVsZFtjb2RlXTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzYXZlRm9ybWF0KCkge1xyXG5cdFx0dGhpcy5jb25maWcueWF4aXMuc2VyaWVzLmZvckVhY2goKGNvbCkgPT4ge1xyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0Y29sLmNvbE5hbWUgPT09IHRoaXMuY3VycmVudEZpZWxkLmNvbE5hbWUgJiZcclxuXHRcdFx0XHQhdGhpcy5jb25maWcuZmllbGRzLmZpbmQoXHJcblx0XHRcdFx0XHQoaXRlbSkgPT4gaXRlbS5jb2xOYW1lID09PSB0aGlzLmN1cnJlbnRGaWVsZC5jb2xOYW1lXHJcblx0XHRcdFx0KVxyXG5cdFx0XHQpIHtcclxuXHRcdFx0XHR0aGlzLmNvbmZpZy5maWVsZHMucHVzaCh7XHJcblx0XHRcdFx0XHRjb2xOYW1lOiB0aGlzLmN1cnJlbnRGaWVsZC5jb2xOYW1lLFxyXG5cdFx0XHRcdFx0ZGF0YVR5cGU6IFwibnVtYmVyXCIsXHJcblx0XHRcdFx0XHRkaXNwbGF5TmFtZTogdGhpcy5jdXJyZW50RmllbGQubGFuZ1ZhbHVlLFxyXG5cdFx0XHRcdFx0ZHA6IDIsXHJcblx0XHRcdFx0XHRmb3JtYXQ6IFtdLFxyXG5cdFx0XHRcdFx0Zm9ybXVsYTogbnVsbCxcclxuXHRcdFx0XHRcdGlzQ2FsY3VsYXRlZEZpZWxkOiB0cnVlLFxyXG5cdFx0XHRcdFx0aXNHcm91cDogZmFsc2UsXHJcblx0XHRcdFx0XHRpc0hpZGRlbjogZmFsc2UsXHJcblx0XHRcdFx0XHRpc1ZhbHVlOiB0cnVlLFxyXG5cdFx0XHRcdFx0bGFuZ0NvZGU6IHRoaXMuY3VycmVudEZpZWxkLmNvbE5hbWUsXHJcblx0XHRcdFx0XHRsYW5nVmFsdWU6IHRoaXMuY3VycmVudEZpZWxkLmNvbE5hbWUsXHJcblx0XHRcdFx0XHRzZXE6IHRoaXMuY29uZmlnLmZpZWxkcy5sZW5ndGggKyAxLFxyXG5cdFx0XHRcdFx0c2hvd0dyYW5kVG90YWxzOiB0aGlzLmN1cnJlbnRGaWVsZC5zaG93R3JhbmRUb3RhbHMsXHJcblx0XHRcdFx0XHRzaG93U3ViVG90YWxzOiB0aGlzLmN1cnJlbnRGaWVsZC5zaG93U3ViVG90YWxzLFxyXG5cdFx0XHRcdFx0c29ydENvbHVtbjogbnVsbCxcclxuXHRcdFx0XHRcdHZpc2libGU6IHRydWUsXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGZvciAoY29uc3QgZmllbGQgb2YgdGhpcy5jb25maWcuZmllbGRzKSB7XHJcblx0XHRcdGlmICh0aGlzLmN1cnJlbnRGaWVsZC5jb2xOYW1lID09PSBmaWVsZC5jb2xOYW1lKSB7XHJcblx0XHRcdFx0ZmllbGQuc2hvd0dyYW5kVG90YWxzID0gdGhpcy5jdXJyZW50RmllbGQuc2hvd0dyYW5kVG90YWxzO1xyXG5cdFx0XHRcdGZpZWxkLnNob3dTdWJUb3RhbHMgPSB0aGlzLmN1cnJlbnRGaWVsZC5zaG93U3ViVG90YWxzO1xyXG5cdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5mb3JtYXRDaGVja2VkIHx8XHJcblx0XHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZm9udFNldHRpbmdDaGVja2VkXHJcblx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRmaWVsZC5mb3JtYXQgPSBbXTtcclxuXHRcdFx0XHRcdGZpZWxkLmRpc3BsYXlOYW1lID0gdGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLmRpc3BsYXlOYW1lO1xyXG5cdFx0XHRcdFx0ZmllbGQuZm9ybWF0LnB1c2godGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvKTtcclxuXHRcdFx0XHR9IGVsc2UgZGVsZXRlIGZpZWxkLmZvcm1hdDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoY29uc3Qgc2VyaWVzIG9mIHRoaXMuY29uZmlnLnlheGlzLnNlcmllcykge1xyXG5cdFx0XHRpZiAodGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvLnNlbGVjdGVkRmllbGQgPT09IHNlcmllcy5jb2xOYW1lKSB7XHJcblx0XHRcdFx0c2VyaWVzLnNob3dTdWJUb3RhbHMgPSB0aGlzLmN1cnJlbnRGaWVsZC5zaG93U3ViVG90YWxzO1xyXG5cdFx0XHRcdHNlcmllcy5zaG93R3JhbmRUb3RhbHMgPSB0aGlzLmN1cnJlbnRGaWVsZC5zaG93R3JhbmRUb3RhbHM7XHJcblx0XHRcdFx0bGV0IGZpZWxkcyA9IHRoaXMuY29uZmlnLmZpZWxkcy5maWx0ZXIoXHJcblx0XHRcdFx0XHQoZWwpID0+XHJcblx0XHRcdFx0XHRcdGVsLmNvbE5hbWUgPT09IHRoaXMuY3VycmVudEZpZWxkRm9ybWF0SW5mby5zZWxlY3RlZEZpZWxkXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0XHRpZiAoZmllbGRzICYmIGZpZWxkcy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdFx0ZmllbGRzWzBdLmZvcm1hdCAmJlxyXG5cdFx0XHRcdFx0XHRmaWVsZHNbMF0uZm9ybWF0Lmxlbmd0aCAmJlxyXG5cdFx0XHRcdFx0XHRmaWVsZHNbMF0uZm9ybWF0WzBdLmZvcm1hdENoZWNrZWRcclxuXHRcdFx0XHRcdClcclxuXHRcdFx0XHRcdFx0c2VyaWVzLnRpdGxlID1cclxuXHRcdFx0XHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZGlzcGxheU5hbWUgfHxcclxuXHRcdFx0XHRcdFx0XHRmaWVsZHNbMF0ubGFuZ1ZhbHVlLnJlcGxhY2UoXCJDYWxjdWxhdGVcIiwgXCJcIikudHJpbSgpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAoc2VyaWVzLmNhbE1ldGhvZCAhPT0gXCJDYWxjdWxhdGVkRmllbGRcIilcclxuXHRcdFx0XHRcdHNlcmllcy50aXRsZSA9IHNlcmllcy5jb2xOYW1lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHR0aGlzLmRhdGEucG9ydGxldERhdGEuY29uZmlnID0gSlNPTi5zdHJpbmdpZnkodGhpcy5jb25maWcpO1xyXG5cdFx0Y29uc3QgaW5kZXggPSB0aGlzLmRhdGEucG9ydGxldHMuZmluZEluZGV4KFxyXG5cdFx0XHQoeCkgPT4geC5uZXdJZCA9PT0gdGhpcy5kYXRhLnBvcnRsZXREYXRhLm5ld0lkXHJcblx0XHQpO1xyXG5cdFx0aWYgKGluZGV4ID4gLTEpXHJcblx0XHRcdHRoaXMuZGF0YS5wb3J0bGV0c1tpbmRleF0uY29uZmlnID0gdGhpcy5kYXRhLnBvcnRsZXREYXRhLmNvbmZpZztcclxuXHRcdHRoaXMuRGFzaGJvYXJkU2VydmljZS50YWJsZUZvcm1hdC5uZXh0KHRoaXMuZGF0YS5wb3J0bGV0RGF0YS5uZXdJZCk7XHJcblx0XHR0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGNsb3NlKCkge1xyXG5cdFx0dGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBjbGVhckZvcm1hdF9BbGwoKSB7XHJcblx0XHRjb25zdCBfdGl0bGUgPVxyXG5cdFx0XHR0aGlzLnRyYW5zbGF0aW9uXHJcblx0XHRcdFx0LkFSRV9ZT1VfU1VSRV9UT19DTEVBUl9BTExfVEhFX0ZPUk1BVFRJTkdfQU5EX1NVQl9UT1RBTFNfVE9fREVGQVVMVF9TRVRUSU5HUyB8fFxyXG5cdFx0XHRcIkFyZSB5b3Ugc3VyZSB0byBjbGVhciBhbGwgdGhlIGZvcm1hdHRpbmcgYW5kIHRvdGFscyB0byBkZWZhdWx0IHNldHRpbmdzP1wiO1xyXG5cdFx0Y29uc3QgX25vID0gdGhpcy50cmFuc2xhdGlvbi5OT19QTEVBU0VfR09fQkFDSyB8fCBcIk5vLCBwbGVhc2UgZ28gYmFja1wiO1xyXG5cdFx0Y29uc3QgX3llcyA9IHRoaXMudHJhbnNsYXRpb24uWUVTX0NMRUFSX1RIRU0gfHwgXCJZZXMsIGNsZWFyIHRoZW1cIjtcclxuXHRcdC8vIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMubGF5b3V0VXRpbHNTZXJ2aWNlLmFsZXJ0RWxlbWVudChcclxuXHRcdC8vIFx0dGhpcy50cmFuc2xhdGlvbi5XQVJOSU5HIHx8IFwiLldBUk5JTkdcIixcclxuXHRcdC8vIFx0X3RpdGxlLFxyXG5cdFx0Ly8gXHRfbm8sXHJcblx0XHQvLyBcdF95ZXMsXHJcblx0XHQvLyBcdHRydWUsXHJcblx0XHQvLyBcdHRydWUsXHJcblx0XHQvLyBcdFwiNDUwcHhcIixcclxuXHRcdC8vIFx0XCIzMjBweFwiXHJcblx0XHQvLyApO1xyXG5cdFx0Y29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dDb21tb25EaWxhb2coe1xyXG5cdFx0XHR0aXRsZTogdGhpcy50cmFuc2xhdGlvbi5XQVJOSU5HIHx8IFwiLldBUk5JTkdcIixcclxuXHRcdFx0ZGVzY3JpcHRpb246IF90aXRsZSxcclxuXHRcdFx0c2F2ZUJ0bkxhYmVsOiBfeWVzLFxyXG5cdFx0XHRjYW5jZWxCdG5MYWJlbDogX25vLFxyXG5cdFx0fSk7XHJcblx0XHRkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHRpZiAocmVzID09PSBcInNhdmVcIikge1xyXG5cdFx0XHRcdHRoaXMuY29uZmlnLmZpZWxkcy5tYXAoKGVsKSA9PiB7XHJcblx0XHRcdFx0XHRkZWxldGUgZWwuZm9ybWF0O1xyXG5cdFx0XHRcdFx0ZGVsZXRlIGVsLnNob3dTdWJUb3RhbHM7XHJcblx0XHRcdFx0XHRkZWxldGUgZWwuc2hvd0dyYW5kVG90YWxzO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdC8vU01QMi0zMDEwXHJcblx0XHRcdFx0Ly9waXZvdFxyXG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZy5wb3J0bGV0VHlwZSA9PT0gXCJwaXZvdFwiKSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5jb25maWcueWF4aXMuc2VyaWVzKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuY29uZmlnLnlheGlzLnNlcmllcy5tYXAoKGVsKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0ZGVsZXRlIGVsLnNob3dTdWJUb3RhbHM7XHJcblx0XHRcdFx0XHRcdFx0ZGVsZXRlIGVsLnNob3dHcmFuZFRvdGFscztcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuZGF0YS5wb3J0bGV0RGF0YS5jb25maWcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmNvbmZpZyk7XHJcblx0XHRcdFx0Y29uc3QgaW5kZXggPSB0aGlzLmRhdGEucG9ydGxldHMuZmluZEluZGV4KFxyXG5cdFx0XHRcdFx0KHgpID0+IHgubmV3SWQgPT09IHRoaXMuZGF0YS5wb3J0bGV0RGF0YS5uZXdJZFxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0aWYgKGluZGV4ID4gLTEpXHJcblx0XHRcdFx0XHR0aGlzLmRhdGEucG9ydGxldHNbaW5kZXhdLmNvbmZpZyA9IHRoaXMuZGF0YS5wb3J0bGV0RGF0YS5jb25maWc7XHJcblx0XHRcdFx0dGhpcy5EYXNoYm9hcmRTZXJ2aWNlLnRhYmxlRm9ybWF0Lm5leHQodGhpcy5kYXRhLnBvcnRsZXREYXRhLm5ld0lkKTtcclxuXHRcdFx0XHR0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBjbGVhckZvcm1hdF9DdXJyZW50KCkge1xyXG5cdFx0dGhpcy5jdXJyZW50RmllbGRGb3JtYXRJbmZvID0gdGhpcy5zZXRGb3JtYXRHcm91cERlZmF1bHREYXRhKCk7XHJcblx0XHR0aGlzLmN1cnJlbnRGaWVsZC5zaG93U3ViVG90YWxzID0gdHJ1ZTtcclxuXHRcdHRoaXMuY3VycmVudEZpZWxkLnNob3dHcmFuZFRvdGFscyA9IHRydWU7XHJcblx0XHRpZiAoXHJcblx0XHRcdCFbXCJzdHJpbmdcIiwgXCJudmFyY2hhclwiLCBcImRhdGVcIiwgXCJkYXRldGltZVwiXS5pbmNsdWRlcyhcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZEZvcm1hdEluZm8uZGF0YVR5cGVcclxuXHRcdFx0KVxyXG5cdFx0KVxyXG5cdFx0XHR0aGlzLmFkZENvbG9yUGlja2VyU3R5bGUoKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBkaXNhYmxlZEdyYW5kVG90YWwoKSB7XHJcblx0XHRpZiAoXHJcblx0XHRcdHRoaXMuY29uZmlnLnBvcnRsZXRUeXBlICE9PSBcInBpdm90XCIgJiZcclxuXHRcdFx0dGhpcy5jb25maWcucG9ydGxldFR5cGUgIT09IFwidGFibGVcIlxyXG5cdFx0KSB7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0aWYgKHRoaXMuY29uZmlnLnBvcnRsZXRUeXBlID09PSBcInRhYmxlXCIpIHtcclxuXHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHR0aGlzLmN1cnJlbnRGaWVsZC5kYXRhVHlwZSAhPT0gXCJzdHJpbmdcIiAmJlxyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGQuZGF0YVR5cGUgIT09IFwiZGF0ZXRpbWVcIiAmJlxyXG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50RmllbGQuZGF0YVR5cGUgIT09IFwiZGF0ZVwiXHJcblx0XHRcdFx0KVxyXG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHRcdGVsc2UgcmV0dXJuIHRydWU7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuY3VycmVudEZpZWxkLmlzVmFsdWUpIHJldHVybiBmYWxzZTtcclxuXHRcdFx0XHRlbHNlIHJldHVybiB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNldEFsaWduTGlzdCgpIHtcclxuXHRcdHJldHVybiBbXHJcblx0XHRcdHtcclxuXHRcdFx0XHRuYW1lOiBcImZvcm1hdF9hbGlnbl9sZWZ0XCIsXHJcblx0XHRcdFx0Y29kZTogXCJMZWZ0XCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRuYW1lOiBcImZvcm1hdF9hbGlnbl9jZW50ZXJcIixcclxuXHRcdFx0XHRjb2RlOiBcIkNlbnRlclwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0bmFtZTogXCJmb3JtYXRfYWxpZ25fcmlnaHRcIixcclxuXHRcdFx0XHRjb2RlOiBcIlJpZ2h0XCIsXHJcblx0XHRcdH0sXHJcblx0XHRdO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzZXRGb250U2l6ZUxpc3QoKSB7XHJcblx0XHRyZXR1cm4gW1xyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiMTJweFwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiMTNweFwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiMTRweFwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiMTVweFwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiMTZweFwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiMTdweFwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiMThweFwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiMTlweFwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiMjBweFwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2V0Q29tcGFyZUxpc3QoKSB7XHJcblx0XHRyZXR1cm4gW1xyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IHRoaXMudHJhbnNsYXRpb24uTEVTU19USEFOIHx8IFwiTGVzcyBUaGFuXCIsXHJcblx0XHRcdFx0Y29kZTogXCJMZXNzVGhhblwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6XHJcblx0XHRcdFx0XHR0aGlzLnRyYW5zbGF0aW9uLkxFU1NfVEhBTl9PUl9FUVVBTF9UTyB8fFxyXG5cdFx0XHRcdFx0XCJMZXNzIFRoYW4gT3IgRXF1YWwgVG9cIixcclxuXHRcdFx0XHRjb2RlOiBcIkxlc3NUaGFuT3JFcXVhbFRvXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogdGhpcy50cmFuc2xhdGlvbi5HUkVBVEVSX1RIQU4gfHwgXCJHcmVhdGVyIFRoYW5cIixcclxuXHRcdFx0XHRjb2RlOiBcIkdyZWF0ZXJUaGFuXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTpcclxuXHRcdFx0XHRcdHRoaXMudHJhbnNsYXRpb24uR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPIHx8XHJcblx0XHRcdFx0XHRcIkdyZWF0ZXIgVGhhbiBPciBFcXVhbCBUb1wiLFxyXG5cdFx0XHRcdGNvZGU6IFwiR3JlYXRlclRoYW5PckVxdWFsVG9cIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHZhbHVlOiB0aGlzLnRyYW5zbGF0aW9uLkVRVUFMUyB8fCBcIkVxdWFsc1wiLFxyXG5cdFx0XHRcdGNvZGU6IFwiRXF1YWxzXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogdGhpcy50cmFuc2xhdGlvbi5OT1RfRVFVQUxTIHx8IFwiTm90IEVxdWFsc1wiLFxyXG5cdFx0XHRcdGNvZGU6IFwiTm90RXF1YWxzXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogdGhpcy50cmFuc2xhdGlvbi5CRVRXRUVOIHx8IFwiQmV0d2VlblwiLFxyXG5cdFx0XHRcdGNvZGU6IFwiQmV0d2VlblwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IHRoaXMudHJhbnNsYXRpb24uTk9UX0JFVFdFRU4gfHwgXCJOb3QgQmV0d2VlblwiLFxyXG5cdFx0XHRcdGNvZGU6IFwiTm90QmV0d2VlblwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2V0U3RyaW5nQW5kRGF0ZUNvbXBhcmVMaXN0KCkge1xyXG5cdFx0cmV0dXJuIFtcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHZhbHVlOiBcIkVxdWFsc1wiLFxyXG5cdFx0XHRcdGNvZGU6IFwiRXF1YWxzXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCJOb3QgRXF1YWxzXCIsXHJcblx0XHRcdFx0Y29kZTogXCJOb3RFcXVhbHNcIixcclxuXHRcdFx0fSxcclxuXHRcdF07XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNldEZvbnRGYW1pbHlMaXN0KCkge1xyXG5cdFx0cmV0dXJuIFtcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHZhbHVlOiBcIkFyaWFsXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCJTYW4gU2VyaWZcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHZhbHVlOiBcIkltcGFjdFwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiVHJlYnVjaGV0IE1TXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCJTZXJpZlwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiVmVyZGFuYVwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiQ291cmllciBOZXdcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHZhbHVlOiBcIlRpbWVzIE5ldyBSb21hblwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0dmFsdWU6IFwiVGFob21hXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHR2YWx1ZTogXCJHZXJvZ2lhXCIsXHJcblx0XHRcdH0sXHJcblx0XHRdO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzZXRGb3JtYXRHcm91cERlZmF1bHREYXRhKCkge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0c2VsZWN0ZWRGaWVsZDogdGhpcy5jdXJyZW50RmllbGQuY29sTmFtZSxcclxuXHRcdFx0ZGF0YVR5cGU6IHRoaXMuY3VycmVudEZpZWxkLmRhdGFUeXBlLFxyXG5cdFx0XHRjb21wYXJlU2VsZWN0OiBcIlwiLFxyXG5cdFx0XHRjb21wYXJlVmFsdWUxOiBudWxsLFxyXG5cdFx0XHRjb21wYXJlVmFsdWUyOiBudWxsLFxyXG5cdFx0XHRhbGlnbjogXCJcIixcclxuXHRcdFx0c2VsZWN0ZWRGb3JtYXQ6IFwiXCIsXHJcblx0XHRcdHNlbGVjdGVkRm9ybWF0RGlzcGxheTogXCJcIixcclxuXHRcdFx0Zm9udEZhbWlseVZhbHVlOiBcIlNhbiBTZXJpZlwiLFxyXG5cdFx0XHRuZWdhRm9udEZhbWlseVZhbHVlOiBcIlNhbiBTZXJpZlwiLFxyXG5cdFx0XHRuZWdhRm9udFNpemVWYWx1ZTogXCIxMnB4XCIsXHJcblx0XHRcdG5lZ2FGb250Q29sb3I6IFwiIzQ5NTA1N1wiLFxyXG5cdFx0XHRuZWdhQmFja2dyb3VuZENvbG9yOiBcIiNGOEU3MUNcIixcclxuXHRcdFx0Zm9udFNpemVWYWx1ZTogXCIxMnB4XCIsXHJcblx0XHRcdGZvbnRDb2xvcjogXCIjNDk1MDU3XCIsXHJcblx0XHRcdGJhY2tncm91bmRDb2xvcjogXCIjRjhFNzFDXCIsXHJcblx0XHRcdGRpc3BsYXlOYW1lOiBcIlwiLFxyXG5cdFx0XHRmb3JtYXRMaXN0OiBbXSxcclxuXHRcdFx0Zm9udFNldHRpbmdDaGVja2VkOiBmYWxzZSxcclxuXHRcdFx0Zm9ybWF0Q2hlY2tlZDogZmFsc2UsXHJcblx0XHRcdGRhdGVUeXBlOiBcIlwiLFxyXG5cdFx0fTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2V0UXVhcnRlckZvcm1hdCgpIHtcclxuXHRcdHJldHVybiBbXHJcblx0XHRcdHsga2V5OiBcIjAzLzIwMjFcIiwgdmFsOiAxLCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIjAzLzIxXCIsIHZhbDogMiwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XHR7IGtleTogXCIzLzIwMjFcIiwgdmFsOiAzLCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIjMvMjFcIiwgdmFsOiA0LCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIk1hcmNoIDIwMjFcIiwgdmFsOiA1LCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIk1hciwgMjAyMVwiLCB2YWw6IDYsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiTWFyY2gsIDIwMjFcIiwgdmFsOiA3LCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIlExIDIwMjFcIiwgdmFsOiA4LCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIlExIDIxXCIsIHZhbDogOSwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XHR7IGtleTogXCIyMDIxIFExXCIsIHZhbDogMTAsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiMjEgUTFcIiwgdmFsOiAxMSwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XHR7IGtleTogXCIyMDIxXCIsIHZhbDogMTIsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdF07XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNldERhdGVGb3JtYXQoKSB7XHJcblx0XHRyZXR1cm4gW1xyXG5cdFx0XHR7IGtleTogXCIxNC8wMy8yMDIxIChERC9NTS9ZWVlZKVwiLCB2YWw6IDEsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiMTQvMDMvMjEgKEREL01NL1lZKVwiLCB2YWw6IDIsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiMDMvMTQvMjAyMSAoTU0vREQvWVlZWSlcIiwgdmFsOiAzLCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIjAzLzE0LzIxIChNTS9ERC9ZWSlcIiwgdmFsOiA0LCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIjIwMjEtMDMtMTQgKFlZWVktTU0tREQpXCIsIHZhbDogNSwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XHR7IGtleTogXCIyMS0wMy0xNCAoWVktTU0tREQpXCIsIHZhbDogNiwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XHR7IGtleTogXCIxNC0wMy0yMDIxIChERC1NTS1ZWVlZKVwiLCB2YWw6IDcsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiMTQtMDMtMjEgKERELU1NLVlZKVwiLCB2YWw6IDgsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdFx0eyBrZXk6IFwiMDMtMTQtMjAyMSAoTU0tREQtWVlZWSlcIiwgdmFsOiA5LCBpc0NoZWNrZWQ6IGZhbHNlIH0sXHJcblx0XHRcdHsga2V5OiBcIjAzLTE0LTIxIChNTS1ERC1ZWSlcIiwgdmFsOiAxMCwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XHR7IGtleTogXCJNYXIgMTQsIDIwMjEgKE1NTSBERCwgWVlZWSlcIiwgdmFsOiAxMSwgaXNDaGVja2VkOiBmYWxzZSB9LFxyXG5cdFx0XHR7IGtleTogXCIxNC1NYXItMjAyMSAoREQtTU1NLVlZWVkpXCIsIHZhbDogMTIsIGlzQ2hlY2tlZDogZmFsc2UgfSxcclxuXHRcdF07XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Component, Output, EventEmitter, ChangeDetectorRef, ChangeDetectionStrategy, Input, } from "@angular/core";
|
|
7
7
|
import { DashboardService } from "../../dashboard.service";
|
|
8
|
+
import { getTranslation } from "../../../utils/utils";
|
|
8
9
|
var PortletTypeNewComponent = /** @class */ (function () {
|
|
9
10
|
function PortletTypeNewComponent(DashboardService, ref) {
|
|
10
11
|
this.DashboardService = DashboardService;
|
|
@@ -248,7 +249,7 @@ var PortletTypeNewComponent = /** @class */ (function () {
|
|
|
248
249
|
* @return {?}
|
|
249
250
|
*/
|
|
250
251
|
function () {
|
|
251
|
-
this.translation =
|
|
252
|
+
this.translation = getTranslation();
|
|
252
253
|
this.userInfo = JSON.parse(localStorage.getItem("userInfo"));
|
|
253
254
|
};
|
|
254
255
|
/**
|
|
@@ -351,4 +352,4 @@ if (false) {
|
|
|
351
352
|
*/
|
|
352
353
|
PortletTypeNewComponent.prototype.ref;
|
|
353
354
|
}
|
|
354
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGxldC10eXBlLW5ldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9yYWlzZS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2Rhc2hib2FyZC9zaWRlYmFyLWljb25saXN0L3BvcnRsZXQtdHlwZS1uZXcvcG9ydGxldC10eXBlLW5ldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ04sU0FBUyxFQUVULE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixLQUFLLEdBR0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHM0Q7SUFrQkMsaUNBQ1MsZ0JBQWtDLEVBQ2xDLEdBQXNCO1FBRHRCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFiUixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUcvQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFNbkMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBTTFDLElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDbEI7Z0JBQ0MsV0FBVyxFQUFFLE9BQU87Z0JBQ3BCLFdBQVcsRUFBRSxPQUFPO2FBQ3BCO1lBQ0Q7Z0JBQ0MsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLFdBQVcsRUFBRSxXQUFXO2FBQ3hCO1lBQ0Q7Z0JBQ0MsV0FBVyxFQUFFLE9BQU87Z0JBQ3BCLFdBQVcsRUFBRSxPQUFPO2FBQ3BCO1lBQ0Q7Z0JBQ0MsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLFdBQVcsRUFBRSxLQUFLO2FBQ2xCO1lBQ0Q7Z0JBQ0MsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLFdBQVcsRUFBRSxLQUFLO2FBQ2xCO1lBQ0Q7Z0JBQ0MsV0FBVyxFQUFFLFFBQVE7Z0JBQ3JCLFdBQVcsRUFBRSxRQUFRO2FBQ3JCO1lBQ0Q7Z0JBQ0Ms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WUFDTCxLQUFLO1lBQ0wsUUFBUTtZQUNSLE1BQU07WUFDTixNQUFNO1lBQ04sYUFBYTtZQUNiLEtBQUs7WUFDTCxPQUFPO1NBQ1A7UUFDRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2hELENBQUM7O2dCQWpPRCxTQUFTLFNBQUM7b0JBQ1YsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsdTdCQUFnRDtvQkFFaEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2lCQUMvQzs7OztnQkFSUSxnQkFBZ0I7Z0JBTnhCLGlCQUFpQjs7OytCQWdCaEIsS0FBSyxTQUFDLGNBQWM7MEJBQ3BCLEtBQUs7NEJBQ0wsS0FBSzs4QkFDTCxNQUFNOztJQXdOUiw4QkFBQztDQUFBLEFBbE9ELElBa09DO1NBNU5ZLHVCQUF1Qjs7O0lBQ25DLCtDQUF5Qzs7SUFDekMsMENBQWlCOztJQUNqQiw0Q0FBbUI7O0lBQ25CLDhDQUEyQzs7Ozs7SUFDM0MsMkNBQWlCOztJQUNqQiw4Q0FBbUI7Ozs7O0lBQ25CLDJDQUFpQjs7SUFDakIsOENBQW1COztJQUNuQix1Q0FBWTs7Ozs7SUFDWixnREFBMkM7Ozs7O0lBRzFDLG1EQUEwQzs7Ozs7SUFDMUMsc0NBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0T25Jbml0LFxyXG5cdE91dHB1dCxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcblx0SW5wdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGFzaGJvYXJkU2VydmljZSB9IGZyb20gXCIuLi8uLi9kYXNoYm9hcmQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6IFwicnMtcG9ydGxldC10eXBlLW5ld1wiLFxyXG5cdHRlbXBsYXRlVXJsOiBcIi4vcG9ydGxldC10eXBlLW5ldy5jb21wb25lbnQuaHRtbFwiLFxyXG5cdHN0eWxlVXJsczogW1wiLi9wb3J0bGV0LXR5cGUtbmV3LmNvbXBvbmVudC5zY3NzXCJdLFxyXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUG9ydGxldFR5cGVOZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblx0QElucHV0KFwiZGF0YU1hcnRDb2RlXCIpIGRhdGFNYXJ0Q29kZSA9IFwiXCI7XHJcblx0QElucHV0KCkgcG9ydGxldDtcclxuXHRASW5wdXQoKSBkYXNoYm9hcmQ7XHJcblx0QE91dHB1dCgpIHBvcnRsZXRUeXBlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdHByaXZhdGUgZGF0YW1hcnQ7XHJcblx0cHVibGljIHRyYW5zbGF0aW9uO1xyXG5cdHByaXZhdGUgdXNlckluZm87XHJcblx0cHVibGljIHBvcnRsZXRMaXN0O1xyXG5cdHB1YmxpYyB0eXBlO1xyXG5cdHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIERhc2hib2FyZFNlcnZpY2U6IERhc2hib2FyZFNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuXHQpIHtcclxuXHRcdHRoaXMucG9ydGxldExpc3QgPSBbXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwb3J0bGV0TmFtZTogXCJUYWJsZVwiLFxyXG5cdFx0XHRcdHBvcnRsZXRDb2RlOiBcInRhYmxlXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwb3J0bGV0TmFtZTogXCJUcmFuc3Bvc2VcIixcclxuXHRcdFx0XHRwb3J0bGV0Q29kZTogXCJ0cmFuc3Bvc2VcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBvcnRsZXROYW1lOiBcIlBpdm90XCIsXHJcblx0XHRcdFx0cG9ydGxldENvZGU6IFwicGl2b3RcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBvcnRsZXROYW1lOiBcIlBpZVwiLFxyXG5cdFx0XHRcdHBvcnRsZXRDb2RlOiBcInBpZVwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cG9ydGxldE5hbWU6IFwiQmFyXCIsXHJcblx0XHRcdFx0cG9ydGxldENvZGU6IFwiYmFyXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwb3J0bGV0TmFtZTogXCJDb2x1bW5cIixcclxuXHRcdFx0XHRwb3J0bGV0Q29kZTogXCJjb2x1bW5cIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBvcnRsZXROYW1lOiBcIkxpbmVcIixcclxuXHRcdFx0XHRwb3J0bGV0Q29kZTogXCJsaW5lXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwb3J0bGV0TmFtZTogXCJBcmVhXCIsXHJcblx0XHRcdFx0cG9ydGxldENvZGU6IFwiYXJlYVwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cG9ydGxldE5hbWU6IFwiUmFkYXJcIixcclxuXHRcdFx0XHRwb3J0bGV0Q29kZTogXCJyYWRhclwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XTtcclxuXHJcblx0XHR0aGlzLnBvcnRsZXRMaXN0ID0gdGhpcy5wb3J0bGV0TGlzdC5jb25jYXQoW1xyXG5cdFx0XHR7XHJcblx0XHRcdFx0cG9ydGxldE5hbWU6IFwiTmV3Q2hhcnRcIixcclxuXHRcdFx0XHRwb3J0bGV0Q29kZTogXCJuZXdjaGFydFwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cG9ydGxldE5hbWU6IFwiTmV3Q29sdW1uXCIsXHJcblx0XHRcdFx0cG9ydGxldENvZGU6IFwibmV3Y29sdW1uXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwb3J0bGV0TmFtZTogXCJOZXdMaW5lXCIsXHJcblx0XHRcdFx0cG9ydGxldENvZGU6IFwibmV3bGluZVwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cG9ydGxldE5hbWU6IFwiTmV3Q29sdW1uTGluZVwiLFxyXG5cdFx0XHRcdHBvcnRsZXRDb2RlOiBcIm5ld2NvbHVtbmxpbmVcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gU01QMi0xNzU3OC8xNzY1NO+8jOS7hSBmdW5kL2NvbXBhbnkgaGlzdG9yaWNhbCBJUlIg5Y+v6YCJ5oupXHJcblx0XHRcdC8vIFRPRE86IOmcgOimgeehruWumiBmdW5kL2NvbXBhbnkgaGlzdG9yaWNhbCBJUlIgY29kZVxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cG9ydGxldE5hbWU6IFwiSGlzdG9yaWNhbElSUlwiLFxyXG5cdFx0XHRcdHBvcnRsZXRDb2RlOiBcImhpc3RvcmljYWxJUlJcIixcclxuXHRcdFx0fSxcclxuXHRcdF0pO1xyXG5cdFx0Y29uc3QgZXhjbHVkZUxpc3QgPSBbXCJQaWVcIiwgXCJCYXJcIiwgXCJDb2x1bW5cIiwgXCJMaW5lXCIsIFwiQXJlYVwiLCBcIlJhZGFyXCJdO1xyXG5cdFx0dGhpcy5wb3J0bGV0TGlzdCA9XHJcblx0XHRcdHRoaXMucG9ydGxldExpc3QuZmlsdGVyKFxyXG5cdFx0XHRcdChpdGVtKSA9PiAhZXhjbHVkZUxpc3QuaW5jbHVkZXMoaXRlbS5wb3J0bGV0TmFtZSlcclxuXHRcdFx0KSB8fCBbXTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5nZXRJbmZvKCk7XHJcblx0XHRpZiAodGhpcy5wb3J0bGV0ICYmIHRoaXMucG9ydGxldC5maWd1cmVDb2RlKSB7XHJcblx0XHRcdGNvbnN0IGNvbmZpZ1N0ciA9IHRoaXMucG9ydGxldC5jb25maWc7XHJcblx0XHRcdGlmICghY29uZmlnU3RyKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnN0IGNvbmZpZyA9IEpTT04ucGFyc2UoY29uZmlnU3RyKTtcclxuXHRcdFx0dGhpcy50eXBlID0gY29uZmlnLnBvcnRsZXRUeXBlO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5kYXRhbWFydCA9IEpTT04ucGFyc2UodGhpcy5kYXNoYm9hcmQuY29uZmlnKS5kYXRhbWFydFZpZXdDb2RlO1xyXG5cdH1cclxuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuXHRcdFx0dGhpcy5EYXNoYm9hcmRTZXJ2aWNlLmdldHBvcnRsZXRFZGl0KCkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcclxuXHRcdFx0XHRpZiAoc3RhdHVzICYmIHRoaXMucG9ydGxldCkge1xyXG5cdFx0XHRcdFx0Y29uc3QgY29uZmlnU3RyID0gdGhpcy5wb3J0bGV0LmNvbmZpZztcclxuXHRcdFx0XHRcdGlmICghY29uZmlnU3RyKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGNvbnN0IGNvbmZpZyA9IEpTT04ucGFyc2UoY29uZmlnU3RyKTtcclxuXHRcdFx0XHRcdHRoaXMudHlwZSA9IGNvbmZpZy5wb3J0bGV0VHlwZTtcclxuXHRcdFx0XHRcdC8vIHRoaXMucG9ydGxldFR5cGUuZW1pdCh0aGlzLnR5cGUpO1xyXG5cdFx0XHRcdFx0dGhpcy5kYXRhbWFydCA9IGNvbmZpZy5kYXRhbWFydFZpZXdDb2RlO1xyXG5cdFx0XHRcdFx0dGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcblx0XHRcdFx0XHR0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHRcdC8vTWljaGFlbCAyMDIwMDUyNiBjbGVhciBvcHRpb25zIGRhdGFcclxuXHRcdHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG5cdFx0XHR0aGlzLkRhc2hib2FyZFNlcnZpY2UuZ2V0UmVzZXRidG4oKS5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xyXG5cdFx0XHRcdGlmIChzdGF0dXMpIHtcclxuXHRcdFx0XHRcdHRoaXMudHlwZSA9IFwiXCI7XHJcblx0XHRcdFx0XHR0aGlzLnBvcnRsZXRUeXBlLmVtaXQodGhpcy50eXBlKTtcclxuXHRcdFx0XHRcdHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdFx0dGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcblx0XHRcdHRoaXMuRGFzaGJvYXJkU2VydmljZS5nZXRQdXNoYnRuKCkuc3Vic2NyaWJlKChpZCkgPT4ge1xyXG5cdFx0XHRcdGlmICh0aGlzLmRhc2hib2FyZCAmJiB0aGlzLmRhc2hib2FyZC5pZCA9PT0gaWQpIHtcclxuXHRcdFx0XHRcdHRoaXMudHlwZSA9IFwiXCI7XHJcblx0XHRcdFx0XHR0aGlzLnBvcnRsZXRUeXBlLmVtaXQodGhpcy50eXBlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblx0XHRpZiAoY2hhbmdlcy5kYXRhTWFydENvZGUpIHtcclxuXHRcdFx0aWYgKHRoaXMuZGlzYWJsZWRIaXN0b3JpY2FsSVJSICYmIHRoaXMudHlwZSA9PT0gXCJoaXN0b3JpY2FsSVJSXCIpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdFBvcnRsZXRUeXBlKG51bGwpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG5cdH1cclxuXHJcblx0Z2V0IGRpc2FibGVkSGlzdG9yaWNhbElSUigpIHtcclxuXHRcdHJldHVybiAhW1xyXG5cdFx0XHRcIkZ1bmRIaXN0b3JpY2FsQ2FzaGZsb3dJUlJcIixcclxuXHRcdFx0XCJGdW5kSGlzdG9yaWNhbEdyb3NzSVJSXCIsXHJcblx0XHRdLmluY2x1ZGVzKHRoaXMuZGF0YU1hcnRDb2RlKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzZXRUb29sdGlwKGl0ZW0pIHtcclxuXHRcdGlmICghaXRlbSkgcmV0dXJuIFwiXCI7XHJcblx0XHRzd2l0Y2ggKGl0ZW0ucG9ydGxldE5hbWUpIHtcclxuXHRcdFx0Y2FzZSBcIlRhYmxlXCI6XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMudHJhbnNsYXRpb24uVEFCTEUgfHwgXCIuVEFCTEVcIjtcclxuXHRcdFx0Y2FzZSBcIlRyYW5zcG9zZVwiOlxyXG5cdFx0XHRcdHJldHVybiBgJHt0aGlzLnRyYW5zbGF0aW9uLlRSQU5TUE9TRSB8fCBcIi5UUkFOU1BPU0VcIn0gJHtcclxuXHRcdFx0XHRcdHRoaXMudHJhbnNsYXRpb24uVEFCTEUgfHwgXCIuVEFCTEVcIlxyXG5cdFx0XHRcdH1gO1xyXG5cdFx0XHRjYXNlIFwiUGl2b3RcIjpcclxuXHRcdFx0XHRyZXR1cm4gYCR7dGhpcy50cmFuc2xhdGlvbi5QSVZPVCB8fCBcIi5QSVZPVFwifSAke1xyXG5cdFx0XHRcdFx0dGhpcy50cmFuc2xhdGlvbi5UQUJMRSB8fCBcIi5UQUJMRVwiXHJcblx0XHRcdFx0fWA7XHJcblx0XHRcdGNhc2UgXCJOZXdDaGFydFwiOlxyXG5cdFx0XHRcdHJldHVybiBgJHt0aGlzLnRyYW5zbGF0aW9uLlBJVk9UIHx8IFwiLlBJVk9UXCJ9ICR7XHJcblx0XHRcdFx0XHR0aGlzLnRyYW5zbGF0aW9uLkNPTVBBTllfQ0hBUlQgfHwgXCIuQ09NUEFOWV9DSEFSVFwiXHJcblx0XHRcdFx0fWA7XHJcblx0XHRcdGNhc2UgXCJOZXdDb2x1bW5cIjpcclxuXHRcdFx0XHRyZXR1cm4gYCR7XHJcblx0XHRcdFx0XHR0aGlzLnRyYW5zbGF0aW9uLkNMVVNURVJFRF9DT0xVTU4gfHwgXCIuQ0xVU1RFUkVEX0NPTFVNTlwiXHJcblx0XHRcdFx0fSAke3RoaXMudHJhbnNsYXRpb24uQ09NUEFOWV9DSEFSVCB8fCBcIi5DT01QQU5ZX0NIQVJUXCJ9YDtcclxuXHRcdFx0Y2FzZSBcIk5ld0xpbmVcIjpcclxuXHRcdFx0XHRyZXR1cm4gYCR7dGhpcy50cmFuc2xhdGlvbi5MSU5FIHx8IFwiLkxJTkVcIn0gJHtcclxuXHRcdFx0XHRcdHRoaXMudHJhbnNsYXRpb24uQ09NUEFOWV9DSEFSVCB8fCBcIi5DT01QQU5ZX0NIQVJUXCJcclxuXHRcdFx0XHR9YDtcclxuXHRcdFx0Y2FzZSBcIk5ld0NvbHVtbkxpbmVcIjpcclxuXHRcdFx0XHRyZXR1cm4gYCR7dGhpcy50cmFuc2xhdGlvbi5MSU5FIHx8IFwiLkxJTkVcIn0gJHtcclxuXHRcdFx0XHRcdHRoaXMudHJhbnNsYXRpb24uQU5EIHx8IFwiLkFORFwiXHJcblx0XHRcdFx0fSAke3RoaXMudHJhbnNsYXRpb24uQ0xVU1RFUkVEX0NPTFVNTiB8fCBcIi5DTFVTVEVSRURfQ09MVU1OXCJ9ICR7XHJcblx0XHRcdFx0XHR0aGlzLnRyYW5zbGF0aW9uLkNPTVBBTllfQ0hBUlQgfHwgXCIuQ09NUEFOWV9DSEFSVFwiXHJcblx0XHRcdFx0fWA7XHJcblx0XHRcdGNhc2UgXCJIaXN0b3JpY2FsSVJSXCI6XHJcblx0XHRcdFx0cmV0dXJuIGAke3RoaXMudHJhbnNsYXRpb24uSElTVE9SSUNBTH0gJHt0aGlzLnRyYW5zbGF0aW9uLklSUn1gO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiBcIlwiO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHVibGljIHNlbGVjdFBvcnRsZXRUeXBlKHBvcnRsZXRDb2RlKSB7XHJcblx0XHR0aGlzLnR5cGUgPSBwb3J0bGV0Q29kZTtcclxuXHRcdHRoaXMucG9ydGxldFR5cGUuZW1pdChwb3J0bGV0Q29kZSk7XHJcblx0fVxyXG5cdHByaXZhdGUgZ2V0SW5mbygpIHtcclxuXHRcdHRoaXMudHJhbnNsYXRpb24gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidHJhbnNsYXRpb25cIikpO1xyXG5cdFx0dGhpcy51c2VySW5mbyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VySW5mb1wiKSk7XHJcblx0fVxyXG5cdHB1YmxpYyBnZXRGaW5hbmNpYWxUeXBlKCkge1xyXG5cdFx0aWYgKHRoaXMuZGF0YW1hcnQpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuZGF0YW1hcnQudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmRleE9mKFwiZmluYW5jaWFsXCIpID4gLTFcclxuXHRcdFx0XHQ/IHRydWVcclxuXHRcdFx0XHQ6IGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRwdWJsaWMgZ2V0RlBQVHlwZShjb2RlKSB7XHJcblx0XHRsZXQgdHlwZV8gPSBbXHJcblx0XHRcdFwidGFibGVcIixcclxuXHRcdFx0XCJwaXZvdFwiLFxyXG5cdFx0XHRcInBpZVwiLFxyXG5cdFx0XHRcImJhclwiLFxyXG5cdFx0XHRcImNvbHVtblwiLFxyXG5cdFx0XHRcImxpbmVcIixcclxuXHRcdFx0XCJhcmVhXCIsXHJcblx0XHRcdFwibXVsdGlTZXJpZXNcIixcclxuXHRcdFx0XCJnZW9cIixcclxuXHRcdFx0XCJyYWRhclwiLFxyXG5cdFx0XTtcclxuXHRcdHJldHVybiB0eXBlXy5pbmRleE9mKGNvZGUpID4gLTEgPyB0cnVlIDogZmFsc2U7XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
355
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGxldC10eXBlLW5ldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9yYWlzZS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2Rhc2hib2FyZC9zaWRlYmFyLWljb25saXN0L3BvcnRsZXQtdHlwZS1uZXcvcG9ydGxldC10eXBlLW5ldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ04sU0FBUyxFQUVULE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixLQUFLLEdBR0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXREO0lBa0JDLGlDQUNTLGdCQUFrQyxFQUNsQyxHQUFzQjtRQUR0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBYlIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFHL0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTW5DLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQU0xQyxJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2xCO2dCQUNDLFdBQVcsRUFBRSxPQUFPO2dCQUNwQixXQUFXLEVBQUUsT0FBTzthQUNwQjtZQUNEO2dCQUNDLFdBQVcsRUFBRSxXQUFXO2dCQUN4QixXQUFXLEVBQUUsV0FBVzthQUN4QjtZQUNEO2dCQUNDLFdBQVcsRUFBRSxPQUFPO2dCQUNwQixXQUFXLEVBQUUsT0FBTzthQUNwQjtZQUNEO2dCQUNDLFdBQVcsRUFBRSxLQUFLO2dCQUNsQixXQUFXLEVBQUUsS0FBSzthQUNsQjtZQUNEO2dCQUNDLFdBQVcsRUFBRSxLQUFLO2dCQUNsQixXQUFXLEVBQUUsS0FBSzthQUNsQjtZQUNEO2dCQUNDLFdBQVcsRUFBRSxR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Q0wsS0FBSztZQUNMLFFBQVE7WUFDUixNQUFNO1lBQ04sTUFBTTtZQUNOLGFBQWE7WUFDYixLQUFLO1lBQ0wsT0FBTztTQUNQO1FBQ0QsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDOztnQkFqT0QsU0FBUyxTQUFDO29CQUNWLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLHU3QkFBZ0Q7b0JBRWhELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztpQkFDL0M7Ozs7Z0JBVFEsZ0JBQWdCO2dCQU54QixpQkFBaUI7OzsrQkFpQmhCLEtBQUssU0FBQyxjQUFjOzBCQUNwQixLQUFLOzRCQUNMLEtBQUs7OEJBQ0wsTUFBTTs7SUF3TlIsOEJBQUM7Q0FBQSxBQWxPRCxJQWtPQztTQTVOWSx1QkFBdUI7OztJQUNuQywrQ0FBeUM7O0lBQ3pDLDBDQUFpQjs7SUFDakIsNENBQW1COztJQUNuQiw4Q0FBMkM7Ozs7O0lBQzNDLDJDQUFpQjs7SUFDakIsOENBQW1COzs7OztJQUNuQiwyQ0FBaUI7O0lBQ2pCLDhDQUFtQjs7SUFDbkIsdUNBQVk7Ozs7O0lBQ1osZ0RBQTJDOzs7OztJQUcxQyxtREFBMEM7Ozs7O0lBQzFDLHNDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdENoYW5nZURldGVjdG9yUmVmLFxyXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG5cdElucHV0LFxyXG5cdE9uQ2hhbmdlcyxcclxuXHRTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERhc2hib2FyZFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vZGFzaGJvYXJkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZ2V0VHJhbnNsYXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvdXRpbHNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiBcInJzLXBvcnRsZXQtdHlwZS1uZXdcIixcclxuXHR0ZW1wbGF0ZVVybDogXCIuL3BvcnRsZXQtdHlwZS1uZXcuY29tcG9uZW50Lmh0bWxcIixcclxuXHRzdHlsZVVybHM6IFtcIi4vcG9ydGxldC10eXBlLW5ldy5jb21wb25lbnQuc2Nzc1wiXSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvcnRsZXRUeXBlTmV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cdEBJbnB1dChcImRhdGFNYXJ0Q29kZVwiKSBkYXRhTWFydENvZGUgPSBcIlwiO1xyXG5cdEBJbnB1dCgpIHBvcnRsZXQ7XHJcblx0QElucHV0KCkgZGFzaGJvYXJkO1xyXG5cdEBPdXRwdXQoKSBwb3J0bGV0VHlwZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRwcml2YXRlIGRhdGFtYXJ0O1xyXG5cdHB1YmxpYyB0cmFuc2xhdGlvbjtcclxuXHRwcml2YXRlIHVzZXJJbmZvO1xyXG5cdHB1YmxpYyBwb3J0bGV0TGlzdDtcclxuXHRwdWJsaWMgdHlwZTtcclxuXHRwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBEYXNoYm9hcmRTZXJ2aWNlOiBEYXNoYm9hcmRTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmXHJcblx0KSB7XHJcblx0XHR0aGlzLnBvcnRsZXRMaXN0ID0gW1xyXG5cdFx0XHR7XHJcblx0XHRcdFx0cG9ydGxldE5hbWU6IFwiVGFibGVcIixcclxuXHRcdFx0XHRwb3J0bGV0Q29kZTogXCJ0YWJsZVwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cG9ydGxldE5hbWU6IFwiVHJhbnNwb3NlXCIsXHJcblx0XHRcdFx0cG9ydGxldENvZGU6IFwidHJhbnNwb3NlXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwb3J0bGV0TmFtZTogXCJQaXZvdFwiLFxyXG5cdFx0XHRcdHBvcnRsZXRDb2RlOiBcInBpdm90XCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwb3J0bGV0TmFtZTogXCJQaWVcIixcclxuXHRcdFx0XHRwb3J0bGV0Q29kZTogXCJwaWVcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBvcnRsZXROYW1lOiBcIkJhclwiLFxyXG5cdFx0XHRcdHBvcnRsZXRDb2RlOiBcImJhclwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cG9ydGxldE5hbWU6IFwiQ29sdW1uXCIsXHJcblx0XHRcdFx0cG9ydGxldENvZGU6IFwiY29sdW1uXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwb3J0bGV0TmFtZTogXCJMaW5lXCIsXHJcblx0XHRcdFx0cG9ydGxldENvZGU6IFwibGluZVwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cG9ydGxldE5hbWU6IFwiQXJlYVwiLFxyXG5cdFx0XHRcdHBvcnRsZXRDb2RlOiBcImFyZWFcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBvcnRsZXROYW1lOiBcIlJhZGFyXCIsXHJcblx0XHRcdFx0cG9ydGxldENvZGU6IFwicmFkYXJcIixcclxuXHRcdFx0fSxcclxuXHRcdF07XHJcblxyXG5cdFx0dGhpcy5wb3J0bGV0TGlzdCA9IHRoaXMucG9ydGxldExpc3QuY29uY2F0KFtcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBvcnRsZXROYW1lOiBcIk5ld0NoYXJ0XCIsXHJcblx0XHRcdFx0cG9ydGxldENvZGU6IFwibmV3Y2hhcnRcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBvcnRsZXROYW1lOiBcIk5ld0NvbHVtblwiLFxyXG5cdFx0XHRcdHBvcnRsZXRDb2RlOiBcIm5ld2NvbHVtblwiLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cG9ydGxldE5hbWU6IFwiTmV3TGluZVwiLFxyXG5cdFx0XHRcdHBvcnRsZXRDb2RlOiBcIm5ld2xpbmVcIixcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBvcnRsZXROYW1lOiBcIk5ld0NvbHVtbkxpbmVcIixcclxuXHRcdFx0XHRwb3J0bGV0Q29kZTogXCJuZXdjb2x1bW5saW5lXCIsXHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIFNNUDItMTc1NzgvMTc2NTTvvIzku4UgZnVuZC9jb21wYW55IGhpc3RvcmljYWwgSVJSIOWPr+mAieaLqVxyXG5cdFx0XHQvLyBUT0RPOiDpnIDopoHnoa7lrpogZnVuZC9jb21wYW55IGhpc3RvcmljYWwgSVJSIGNvZGVcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHBvcnRsZXROYW1lOiBcIkhpc3RvcmljYWxJUlJcIixcclxuXHRcdFx0XHRwb3J0bGV0Q29kZTogXCJoaXN0b3JpY2FsSVJSXCIsXHJcblx0XHRcdH0sXHJcblx0XHRdKTtcclxuXHRcdGNvbnN0IGV4Y2x1ZGVMaXN0ID0gW1wiUGllXCIsIFwiQmFyXCIsIFwiQ29sdW1uXCIsIFwiTGluZVwiLCBcIkFyZWFcIiwgXCJSYWRhclwiXTtcclxuXHRcdHRoaXMucG9ydGxldExpc3QgPVxyXG5cdFx0XHR0aGlzLnBvcnRsZXRMaXN0LmZpbHRlcihcclxuXHRcdFx0XHQoaXRlbSkgPT4gIWV4Y2x1ZGVMaXN0LmluY2x1ZGVzKGl0ZW0ucG9ydGxldE5hbWUpXHJcblx0XHRcdCkgfHwgW107XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdHRoaXMuZ2V0SW5mbygpO1xyXG5cdFx0aWYgKHRoaXMucG9ydGxldCAmJiB0aGlzLnBvcnRsZXQuZmlndXJlQ29kZSkge1xyXG5cdFx0XHRjb25zdCBjb25maWdTdHIgPSB0aGlzLnBvcnRsZXQuY29uZmlnO1xyXG5cdFx0XHRpZiAoIWNvbmZpZ1N0cikge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCBjb25maWcgPSBKU09OLnBhcnNlKGNvbmZpZ1N0cik7XHJcblx0XHRcdHRoaXMudHlwZSA9IGNvbmZpZy5wb3J0bGV0VHlwZTtcclxuXHRcdH1cclxuXHRcdHRoaXMuZGF0YW1hcnQgPSBKU09OLnBhcnNlKHRoaXMuZGFzaGJvYXJkLmNvbmZpZykuZGF0YW1hcnRWaWV3Q29kZTtcclxuXHR9XHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcblx0XHRcdHRoaXMuRGFzaGJvYXJkU2VydmljZS5nZXRwb3J0bGV0RWRpdCgpLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XHJcblx0XHRcdFx0aWYgKHN0YXR1cyAmJiB0aGlzLnBvcnRsZXQpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGNvbmZpZ1N0ciA9IHRoaXMucG9ydGxldC5jb25maWc7XHJcblx0XHRcdFx0XHRpZiAoIWNvbmZpZ1N0cikge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRjb25zdCBjb25maWcgPSBKU09OLnBhcnNlKGNvbmZpZ1N0cik7XHJcblx0XHRcdFx0XHR0aGlzLnR5cGUgPSBjb25maWcucG9ydGxldFR5cGU7XHJcblx0XHRcdFx0XHQvLyB0aGlzLnBvcnRsZXRUeXBlLmVtaXQodGhpcy50eXBlKTtcclxuXHRcdFx0XHRcdHRoaXMuZGF0YW1hcnQgPSBjb25maWcuZGF0YW1hcnRWaWV3Q29kZTtcclxuXHRcdFx0XHRcdHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cdFx0XHRcdFx0dGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSlcclxuXHRcdCk7XHJcblx0XHQvL01pY2hhZWwgMjAyMDA1MjYgY2xlYXIgb3B0aW9ucyBkYXRhXHJcblx0XHR0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuXHRcdFx0dGhpcy5EYXNoYm9hcmRTZXJ2aWNlLmdldFJlc2V0YnRuKCkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcclxuXHRcdFx0XHRpZiAoc3RhdHVzKSB7XHJcblx0XHRcdFx0XHR0aGlzLnR5cGUgPSBcIlwiO1xyXG5cdFx0XHRcdFx0dGhpcy5wb3J0bGV0VHlwZS5lbWl0KHRoaXMudHlwZSk7XHJcblx0XHRcdFx0XHR0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHRcdHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG5cdFx0XHR0aGlzLkRhc2hib2FyZFNlcnZpY2UuZ2V0UHVzaGJ0bigpLnN1YnNjcmliZSgoaWQpID0+IHtcclxuXHRcdFx0XHRpZiAodGhpcy5kYXNoYm9hcmQgJiYgdGhpcy5kYXNoYm9hcmQuaWQgPT09IGlkKSB7XHJcblx0XHRcdFx0XHR0aGlzLnR5cGUgPSBcIlwiO1xyXG5cdFx0XHRcdFx0dGhpcy5wb3J0bGV0VHlwZS5lbWl0KHRoaXMudHlwZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cdFx0aWYgKGNoYW5nZXMuZGF0YU1hcnRDb2RlKSB7XHJcblx0XHRcdGlmICh0aGlzLmRpc2FibGVkSGlzdG9yaWNhbElSUiAmJiB0aGlzLnR5cGUgPT09IFwiaGlzdG9yaWNhbElSUlwiKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RQb3J0bGV0VHlwZShudWxsKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWIpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcclxuXHR9XHJcblxyXG5cdGdldCBkaXNhYmxlZEhpc3RvcmljYWxJUlIoKSB7XHJcblx0XHRyZXR1cm4gIVtcclxuXHRcdFx0XCJGdW5kSGlzdG9yaWNhbENhc2hmbG93SVJSXCIsXHJcblx0XHRcdFwiRnVuZEhpc3RvcmljYWxHcm9zc0lSUlwiLFxyXG5cdFx0XS5pbmNsdWRlcyh0aGlzLmRhdGFNYXJ0Q29kZSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc2V0VG9vbHRpcChpdGVtKSB7XHJcblx0XHRpZiAoIWl0ZW0pIHJldHVybiBcIlwiO1xyXG5cdFx0c3dpdGNoIChpdGVtLnBvcnRsZXROYW1lKSB7XHJcblx0XHRcdGNhc2UgXCJUYWJsZVwiOlxyXG5cdFx0XHRcdHJldHVybiB0aGlzLnRyYW5zbGF0aW9uLlRBQkxFIHx8IFwiLlRBQkxFXCI7XHJcblx0XHRcdGNhc2UgXCJUcmFuc3Bvc2VcIjpcclxuXHRcdFx0XHRyZXR1cm4gYCR7dGhpcy50cmFuc2xhdGlvbi5UUkFOU1BPU0UgfHwgXCIuVFJBTlNQT1NFXCJ9ICR7XHJcblx0XHRcdFx0XHR0aGlzLnRyYW5zbGF0aW9uLlRBQkxFIHx8IFwiLlRBQkxFXCJcclxuXHRcdFx0XHR9YDtcclxuXHRcdFx0Y2FzZSBcIlBpdm90XCI6XHJcblx0XHRcdFx0cmV0dXJuIGAke3RoaXMudHJhbnNsYXRpb24uUElWT1QgfHwgXCIuUElWT1RcIn0gJHtcclxuXHRcdFx0XHRcdHRoaXMudHJhbnNsYXRpb24uVEFCTEUgfHwgXCIuVEFCTEVcIlxyXG5cdFx0XHRcdH1gO1xyXG5cdFx0XHRjYXNlIFwiTmV3Q2hhcnRcIjpcclxuXHRcdFx0XHRyZXR1cm4gYCR7dGhpcy50cmFuc2xhdGlvbi5QSVZPVCB8fCBcIi5QSVZPVFwifSAke1xyXG5cdFx0XHRcdFx0dGhpcy50cmFuc2xhdGlvbi5DT01QQU5ZX0NIQVJUIHx8IFwiLkNPTVBBTllfQ0hBUlRcIlxyXG5cdFx0XHRcdH1gO1xyXG5cdFx0XHRjYXNlIFwiTmV3Q29sdW1uXCI6XHJcblx0XHRcdFx0cmV0dXJuIGAke1xyXG5cdFx0XHRcdFx0dGhpcy50cmFuc2xhdGlvbi5DTFVTVEVSRURfQ09MVU1OIHx8IFwiLkNMVVNURVJFRF9DT0xVTU5cIlxyXG5cdFx0XHRcdH0gJHt0aGlzLnRyYW5zbGF0aW9uLkNPTVBBTllfQ0hBUlQgfHwgXCIuQ09NUEFOWV9DSEFSVFwifWA7XHJcblx0XHRcdGNhc2UgXCJOZXdMaW5lXCI6XHJcblx0XHRcdFx0cmV0dXJuIGAke3RoaXMudHJhbnNsYXRpb24uTElORSB8fCBcIi5MSU5FXCJ9ICR7XHJcblx0XHRcdFx0XHR0aGlzLnRyYW5zbGF0aW9uLkNPTVBBTllfQ0hBUlQgfHwgXCIuQ09NUEFOWV9DSEFSVFwiXHJcblx0XHRcdFx0fWA7XHJcblx0XHRcdGNhc2UgXCJOZXdDb2x1bW5MaW5lXCI6XHJcblx0XHRcdFx0cmV0dXJuIGAke3RoaXMudHJhbnNsYXRpb24uTElORSB8fCBcIi5MSU5FXCJ9ICR7XHJcblx0XHRcdFx0XHR0aGlzLnRyYW5zbGF0aW9uLkFORCB8fCBcIi5BTkRcIlxyXG5cdFx0XHRcdH0gJHt0aGlzLnRyYW5zbGF0aW9uLkNMVVNURVJFRF9DT0xVTU4gfHwgXCIuQ0xVU1RFUkVEX0NPTFVNTlwifSAke1xyXG5cdFx0XHRcdFx0dGhpcy50cmFuc2xhdGlvbi5DT01QQU5ZX0NIQVJUIHx8IFwiLkNPTVBBTllfQ0hBUlRcIlxyXG5cdFx0XHRcdH1gO1xyXG5cdFx0XHRjYXNlIFwiSGlzdG9yaWNhbElSUlwiOlxyXG5cdFx0XHRcdHJldHVybiBgJHt0aGlzLnRyYW5zbGF0aW9uLkhJU1RPUklDQUx9ICR7dGhpcy50cmFuc2xhdGlvbi5JUlJ9YDtcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRyZXR1cm4gXCJcIjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzZWxlY3RQb3J0bGV0VHlwZShwb3J0bGV0Q29kZSkge1xyXG5cdFx0dGhpcy50eXBlID0gcG9ydGxldENvZGU7XHJcblx0XHR0aGlzLnBvcnRsZXRUeXBlLmVtaXQocG9ydGxldENvZGUpO1xyXG5cdH1cclxuXHRwcml2YXRlIGdldEluZm8oKSB7XHJcblx0XHR0aGlzLnRyYW5zbGF0aW9uID0gZ2V0VHJhbnNsYXRpb24oKVxyXG5cdFx0dGhpcy51c2VySW5mbyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VySW5mb1wiKSk7XHJcblx0fVxyXG5cdHB1YmxpYyBnZXRGaW5hbmNpYWxUeXBlKCkge1xyXG5cdFx0aWYgKHRoaXMuZGF0YW1hcnQpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuZGF0YW1hcnQudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmRleE9mKFwiZmluYW5jaWFsXCIpID4gLTFcclxuXHRcdFx0XHQ/IHRydWVcclxuXHRcdFx0XHQ6IGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRwdWJsaWMgZ2V0RlBQVHlwZShjb2RlKSB7XHJcblx0XHRsZXQgdHlwZV8gPSBbXHJcblx0XHRcdFwidGFibGVcIixcclxuXHRcdFx0XCJwaXZvdFwiLFxyXG5cdFx0XHRcInBpZVwiLFxyXG5cdFx0XHRcImJhclwiLFxyXG5cdFx0XHRcImNvbHVtblwiLFxyXG5cdFx0XHRcImxpbmVcIixcclxuXHRcdFx0XCJhcmVhXCIsXHJcblx0XHRcdFwibXVsdGlTZXJpZXNcIixcclxuXHRcdFx0XCJnZW9cIixcclxuXHRcdFx0XCJyYWRhclwiLFxyXG5cdFx0XTtcclxuXHRcdHJldHVybiB0eXBlXy5pbmRleE9mKGNvZGUpID4gLTEgPyB0cnVlIDogZmFsc2U7XHJcblx0fVxyXG59XHJcbiJdfQ==
|