raise-common-lib 0.0.225 → 0.0.227

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.
Files changed (30) hide show
  1. package/bundles/raise-common-lib.umd.js +17 -17
  2. package/bundles/raise-common-lib.umd.js.map +1 -1
  3. package/bundles/raise-common-lib.umd.min.js +1 -1
  4. package/bundles/raise-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/lib/dashboard/dashboard-properties/data-mart-new/data-mart-new.component.js +2 -2
  6. package/esm2015/lib/dashboard/dashboardPorlets.service.js +2 -2
  7. package/esm2015/lib/dashboard/dialog-group/download/index.component.js +2 -2
  8. package/esm2015/lib/dashboard/pane-group-new.component.js +3 -3
  9. package/esm2015/lib/dashboard/sidebar-iconlist/field-filter/field-filter.component.js +1 -1
  10. package/esm2015/lib/dashboard/sidebar-iconlist/field-format/field-format.component.js +3 -3
  11. package/esm2015/lib/layout/drawer/index.component.js +1 -1
  12. package/esm5/lib/dashboard/dashboard-properties/data-mart-new/data-mart-new.component.js +2 -2
  13. package/esm5/lib/dashboard/dashboardPorlets.service.js +2 -2
  14. package/esm5/lib/dashboard/dialog-group/download/index.component.js +2 -2
  15. package/esm5/lib/dashboard/pane-group-new.component.js +3 -3
  16. package/esm5/lib/dashboard/sidebar-iconlist/field-filter/field-filter.component.js +1 -1
  17. package/esm5/lib/dashboard/sidebar-iconlist/field-format/field-format.component.js +3 -3
  18. package/esm5/lib/layout/drawer/index.component.js +1 -1
  19. package/fesm2015/raise-common-lib.js +13 -14
  20. package/fesm2015/raise-common-lib.js.map +1 -1
  21. package/fesm5/raise-common-lib.js +13 -14
  22. package/fesm5/raise-common-lib.js.map +1 -1
  23. package/lib/dashboard/dashboard-properties/data-mart-new/data-mart-new.component.d.ts +1 -1
  24. package/lib/dashboard/dashboardPorlets.service.d.ts +1 -1
  25. package/lib/dashboard/dialog-group/download/index.component.d.ts +1 -1
  26. package/lib/dashboard/pane-group-new.component.d.ts +2 -1
  27. package/lib/dashboard/sidebar-iconlist/field-format/field-format.component.d.ts +1 -1
  28. package/package.json +1 -1
  29. package/raise-common-lib.metadata.json +1 -1
  30. package/src/assets/style/style.scss +5 -0
@@ -4,7 +4,7 @@
4
4
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
5
  */
6
6
  import { Component, Inject, ChangeDetectorRef, Optional, } from "@angular/core";
7
- import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from "@angular/material";
7
+ import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
8
8
  import { ApiList } from "../../api";
9
9
  import { DashboardService } from "../../dashboard.service";
10
10
  import { DashboardPorletsService } from "../../dashboardPorlets.service";
@@ -697,4 +697,4 @@ if (false) {
697
697
  */
698
698
  DataMartNewComponent.prototype.http;
699
699
  }
700
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYXJ0LW5ldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9yYWlzZS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2Rhc2hib2FyZC9kYXNoYm9hcmQtcHJvcGVydGllcy9kYXRhLW1hcnQtbmV3L2RhdGEtbWFydC1uZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04saUJBQWlCLEVBRWpCLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU9oRSxNQUFNLE9BQU8sb0JBQW9COzs7Ozs7Ozs7Ozs7O0lBa0IvQixZQUNrQyxJQUFTLEVBQ2xDLFNBQTZDLEVBQzVDLGFBQTRCLEVBQzdCLE1BQWlCLEVBQ2hCLEdBQVksRUFDYixnQkFBa0MsRUFDbEMsdUJBQWdELEVBQy9DLEdBQXNCLEVBQ1EsR0FBUSxFQUNDLElBQVM7UUFUeEIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNsQyxjQUFTLEdBQVQsU0FBUyxDQUFvQztRQUM1QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2hCLFFBQUcsR0FBSCxHQUFHLENBQVM7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Q3ZCLHVDQUFvQjs7SUFDcEIsNENBQXlCOztJQUN6Qix3Q0FBcUI7O0lBQ3JCLHNDQUFtQjs7SUFDbkIsMkNBQTJCOztJQUMzQiw4Q0FBMkI7O0lBQzNCLHdDQUF3Qjs7SUFDeEIsK0NBQTRCOztJQUM1QixtREFBbUM7O0lBaVRuQyx3Q0FBNkQ7O0lBOVMzRCxvQ0FBeUM7O0lBQ3pDLHlDQUFvRDs7Ozs7SUFDcEQsNkNBQW9DOztJQUNwQyxzQ0FBd0I7Ozs7O0lBQ3hCLG1DQUFvQjs7SUFDcEIsZ0RBQXlDOztJQUN6Qyx1REFBdUQ7Ozs7O0lBQ3ZELG1DQUE4Qjs7SUFDOUIsbUNBQThDOzs7OztJQUM5QyxvQ0FBd0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgSW5qZWN0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgT3B0aW9uYWwsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbFwiO1xyXG5pbXBvcnQgeyBBcGlMaXN0IH0gZnJvbSBcIi4uLy4uL2FwaVwiO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2Rhc2hib2FyZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhc2hib2FyZFBvcmxldHNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2Rhc2hib2FyZFBvcmxldHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyB0aHJvdHRsZSB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHsgQVBJX1NFUlZJQ0VfVE9LRU4sIFBCRl9UT0tFTiB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL0luamVjdGlvblRva2VuXCI7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtZGF0YS1tYXJ0LW5ld1wiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vZGF0YS1tYXJ0LW5ldy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9kYXRhLW1hcnQtbmV3LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YU1hcnROZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIHRyYW5zbGF0aW9uO1xyXG4gIHVzZXJJbmZvO1xyXG4gIGxhbmc7XHJcbiAgZW50aXR5VHlwZTtcclxuICBjb25maWc7XHJcblxyXG4gIHB1YmxpYyBmYXRoZXJMaXN0ID0gW107XHJcbiAgcHVibGljIHNvbkxpc3QgPSBbXTtcclxuICBwdWJsaWMgZ3JhbmRzb25MaXN0ID0gW107XHJcbiAgcHVibGljIGZhdGhlcklkID0gXCJcIjtcclxuICBwdWJsaWMgc29uSWRzID0gW107XHJcbiAgcHVibGljIHNlbGVjdGVkQWxsID0gZmFsc2U7XHJcbiAgcHVibGljIG9yZ2luR3JhbmREYXRhID0gW107XHJcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGNhY2hlRW50aXR5VHlwZSA9IFwiXCI7XHJcbiAgcHVibGljIGlzU2VsZWN0QWxsRGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEYXRhTWFydE5ld0NvbXBvbmVudD4sXHJcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIGFwaTogQXBpTGlzdCxcclxuICAgIHB1YmxpYyBkYXNoYm9hcmRTZXJ2aWNlOiBEYXNoYm9hcmRTZXJ2aWNlLFxyXG4gICAgcHVibGljIERhc2hib2FyZFBvcmxldHNTZXJ2aWNlOiBEYXNoYm9hcmRQb3JsZXRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUEJGX1RPS0VOKSBwdWJsaWMgcGJmOiBhbnksXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQSV9TRVJWSUNFX1RPS0VOKSBwcml2YXRlIGh0dHA6IGFueVxyXG4gICkge31cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0SW5mbygpO1xyXG4gICAgdGhpcy5nZXRTb3VyY2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBiZi5pbnRyb1N0ZXAubmV4dChcIm5leHRcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SW5mbygpIHtcclxuICAgIHRoaXMudHJhbnNsYXRpb24gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidHJhbnNsYXRpb25cIikpO1xyXG4gICAgdGhpcy51c2VySW5mbyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ1c2VySW5mb1wiKSk7XHJcbiAgICB0aGlzLmxhbmcgPSB0aGlzLnBiZi5nZXRMYW5ndWFnZVBhcmFtcygpO1xyXG4gICAgdGhpcy5jb25maWcgPVxyXG4gICAgICB0aGlzLmRhdGEgJiYgdGhpcy5kYXRhLmRhc2hib2FyZFxyXG4gICAgICAgID8gSlNPTi5wYXJzZSh0aGlzLmRhdGEuZGFzaGJvYXJkLmNvbmZpZylcclxuICAgICAgICA6IHt9O1xyXG4gIH1cclxuICBnZXRTb3VyY2VzKCkge1xyXG4gICAgY29uc3QgZGF0YU9iaiA9IHtcclxuICAgICAgYWNjb3VudElkOiB0aGlzLnVzZXJJbmZvLmFjY291bnRJZCxcclxuICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZyxcclxuICAgICAgZGFzaGJvYXJkVmVyc2lvbjogMixcclxuICAgIH07XHJcbiAgICB0aGlzLnBiZi5wYWdlTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnBiZi5wYWdlTG9hZGluZ18ubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuaHR0cC5wb3N0KHRoaXMuYXBpLnVybExpc3QuR2V0U291cmNlcywgZGF0YU9iaiwgKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLnBiZi5wYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBiZi5wYWdlTG9hZGluZ18ubmV4dCh0cnVlKTtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMuRGFzaGJvYXJkUG9ybGV0c1NlcnZpY2Uuc291cmNlc0RhdGFbdGhpcy5kYXRhLmRhc2hib2FyZC5pZF0gPSByZXM7XHJcbiAgICAgICAgdGhpcy5EYXNoYm9hcmRQb3JsZXRzU2VydmljZS5HZXRTb3VyY2VzUmVzID0gcmVzO1xyXG4gICAgICAgIHRoaXMuZmF0aGVyTGlzdCA9IHJlcztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmRhdGFtYXJ0SWQpIHtcclxuICAgICAgICAgIC8vIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5mYXRoZXJJZCA9IHRoaXMuY29uZmlnLmRhdGFtYXJ0SWQ7XHJcbiAgICAgICAgICB0aGlzLnNvbklkcyA9IHRoaXMuY29uZmlnLmRhdGFtYXJ0Vmlld0lkXHJcbiAgICAgICAgICAgID8gdGhpcy5jb25maWcuZGF0YW1hcnRWaWV3SWQuc3BsaXQoXCIsXCIpXHJcbiAgICAgICAgICAgIDogdGhpcy5jb25maWcudmlld3NcclxuICAgICAgICAgICAgPyB0aGlzLmNvbmZpZy52aWV3cy5tYXAoKGl0ZW0pID0+IGl0ZW0uZGF0YW1hcnRWaWV3SWQpXHJcbiAgICAgICAgICAgIDogW107XHJcbiAgICAgICAgICBsZXQgZGF0YXNvdXJjZSA9IHJlcy5maW5kKChlbCkgPT4gZWwuaWQgPT0gdGhpcy5mYXRoZXJJZCk7XHJcbiAgICAgICAgICBpZiAoZGF0YXNvdXJjZSkge1xyXG4gICAgICAgICAgICB0aGlzLmdldGRhdGFNYXJ0KGRhdGFzb3VyY2UsIHRydWUpO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuY2FjaGVFbnRpdHlUeXBlICYmIHRoaXMuY29uZmlnLmRhdGFtYXJ0SWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNhY2hlRW50aXR5VHlwZSA9IHRoaXMuZW50aXR5VHlwZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGRhdGF2aWV3ID0gZGF0YXNvdXJjZS52aWV3cy5maWx0ZXIoKGVsKSA9PlxyXG4gICAgICAgICAgICAgIHRoaXMuc29uSWRzLmluY2x1ZGVzKGVsLmlkKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUl0ZW1DaGFuZ2UoZGF0YXZpZXcsIHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmdldFNlbGVjdGVkQWxsU3RhdHVzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRBbGxTdGF0dXMoKSB7XHJcbiAgICBsZXQgbnVtID0gMDtcclxuICAgIHRoaXMuc29uTGlzdC5mb3JFYWNoKChzb24pID0+IHtcclxuICAgICAgaWYgKHNvbi5jaGVja2VkICYmIHNvbi5sYW5nQ29kZSAhPT0gXCJGSU5BTkNJQUxfRklHVVJFU1wiKSB7XHJcbiAgICAgICAgbnVtKys7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKG51bSA9PT0gdGhpcy5zb25MaXN0Lmxlbmd0aCAtIDEpIHRoaXMuc2VsZWN0ZWRBbGwgPSB0cnVlO1xyXG4gICAgZWxzZSB0aGlzLnNlbGVjdGVkQWxsID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBuZXh0U3RlcCgpIHtcclxuICAgIHRoaXMucGJmLmludHJvU3RlcC5uZXh0KFwibmV4dFwiKTtcclxuICB9XHJcblxyXG4gIGdldGRhdGFNYXJ0KGl0ZW0sIGlzSW5pdCA9IGZhbHNlKSB7XHJcbiAgICBpZiAodGhpcy5jYWNoZUVudGl0eVR5cGUgJiYgdGhpcy5jYWNoZUVudGl0eVR5cGUgPT09IGl0ZW0uZW50aXR5VHlwZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgICFpc0luaXQgJiZcclxuICAgICAgdGhpcy5jYWNoZUVudGl0eVR5cGUgJiZcclxuICAgICAgdGhpcy5jYWNoZUVudGl0eVR5cGUgIT09IGl0ZW0uZW50aXR5VHlwZVxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnN0IF90aXRsZSA9XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbi5BUkVfWU9VX1NVUkVfVE9fQ0hBTkdFX0RBVEFfTUFSVCB8fFxyXG4gICAgICAgIFwiLkFyZSB5b3Ugc3VyZSB0byBjaGFuZ2UgZW50aXR5IHR5cGUgb2YgZGF0YSBtYXJ0PyBEYXNoYm9hcmQgd2lsbCBiZSByZXNldCBzaW5jZSBlbnRpdHkgdHlwZSBpcyBjaGFuZ2VkLlwiO1xyXG4gICAgICBjb25zdCBfbm8gPSB0aGlzLnRyYW5zbGF0aW9uLk5PIHx8IFwiLk5PXCI7XHJcbiAgICAgIGNvbnN0IF95ZXMgPSB0aGlzLnRyYW5zbGF0aW9uLllFUyB8fCBcIi5ZRVNcIjtcclxuICAgICAgLy8gY29uc3QgZGlhbG9nUmVmID0gdGhpcy5sYXlvdXRVdGlsc1NlcnZpY2UuYWxlcnRFbGVtZW50KFxyXG4gICAgICAvLyBcdHRoaXMudHJhbnNsYXRpb24uV0FSTklORyB8fCBcIi5XQVJOSU5HXCIsXHJcbiAgICAgIC8vIFx0X3RpdGxlLFxyXG4gICAgICAvLyBcdF9ubyxcclxuICAgICAgLy8gXHRfeWVzLFxyXG4gICAgICAvLyBcdHRydWUsXHJcbiAgICAgIC8vIFx0dHJ1ZSxcclxuICAgICAgLy8gXHRcIjQ4MHB4XCIsXHJcbiAgICAgIC8vIFx0XCIzMjRweFwiXHJcbiAgICAgIC8vICk7XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5zaG93Q29tbW9uRGlsYW9nKHtcclxuICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGlvbi5XQVJOSU5HIHx8IFwiLldBUk5JTkdcIixcclxuICAgICAgICBkZXNjcmlwdGlvbjogX3RpdGxlLFxyXG4gICAgICAgIHNhdmVCdG5MYWJlbDogX3llcyxcclxuICAgICAgICBjYW5jZWxCdG5MYWJlbDogX25vLFxyXG4gICAgICB9KTtcclxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICBpZiAoIXJlcykge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldEZhdGhlcklkKGl0ZW0sIGlzSW5pdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRGYXRoZXJJZChpdGVtLCBpc0luaXQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRGYXRoZXJJZChpdGVtLCBpc0luaXQpIHtcclxuICAgIHRoaXMuZmF0aGVySWQgPSBpdGVtLmlkO1xyXG4gICAgdGhpcy5lbnRpdHlUeXBlID0gaXRlbS5lbnRpdHlUeXBlO1xyXG4gICAgbGV0IGlzRmlndXJlc0NoZWNrZWQgPSBmYWxzZTtcclxuICAgIGxldCBpc090aGVyQ2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgaWYgKFxyXG4gICAgICBpdGVtLnZpZXdzLmZpbmQoXHJcbiAgICAgICAgKGl0ZW0pID0+XHJcbiAgICAgICAgICBpdGVtLmxhbmdDb2RlID09PSBcIkZJTkFOQ0lBTF9GSUdVUkVTXCIgJiYgdGhpcy5zb25JZHMuaW5jbHVkZXMoaXRlbS5pZClcclxuICAgICAgKVxyXG4gICAgKSB7XHJcbiAgICAgIGlzRmlndXJlc0NoZWNrZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmlzU2VsZWN0QWxsRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBpdGVtLnZpZXdzLmZpbmQoXHJcbiAgICAgICAgKGl0ZW0pID0+XHJcbiAgICAgICAgICBpdGVtLmxhbmdDb2RlICE9PSBcIkZJTkFOQ0lBTF9GSUdVUkVTXCIgJiYgdGhpcy5zb25JZHMuaW5jbHVkZXMoaXRlbS5pZClcclxuICAgICAgKVxyXG4gICAgKVxyXG4gICAgICBpc090aGVyQ2hlY2tlZCA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5zb25MaXN0ID0gaXRlbS52aWV3cy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgbGV0IGlzRGlzYWJsZWQgPVxyXG4gICAgICAgIChpc0ZpZ3VyZXNDaGVja2VkICYmIGl0ZW0ubGFuZ0NvZGUgIT09IFwiRklOQU5DSUFMX0ZJR1VSRVNcIikgfHxcclxuICAgICAgICAoaXRlbS5sYW5nQ29kZSA9PT0gXCJGSU5BTkNJQUxfRklHVVJFU1wiICYmIGlzT3RoZXJDaGVja2VkKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5pdGVtLFxyXG4gICAgICAgIGNoZWNrZWQ6XHJcbiAgICAgICAgICB0aGlzLmNhY2hlRW50aXR5VHlwZSAmJiB0aGlzLmNhY2hlRW50aXR5VHlwZSAhPT0gdGhpcy5lbnRpdHlUeXBlXHJcbiAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgOiB0aGlzLnNvbklkcy5pbmNsdWRlcyhpdGVtLmlkKSxcclxuICAgICAgICBkaXNhYmxlZDpcclxuICAgICAgICAgIHRoaXMuY2FjaGVFbnRpdHlUeXBlICYmIHRoaXMuY2FjaGVFbnRpdHlUeXBlICE9PSB0aGlzLmVudGl0eVR5cGVcclxuICAgICAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgICAgICA6IGlzRGlzYWJsZWQsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmNhY2hlRW50aXR5VHlwZSA9IGl0ZW0uZW50aXR5VHlwZTtcclxuXHJcbiAgICBpZiAoIWlzSW5pdCkge1xyXG4gICAgICB0aGlzLnNvbklkcyA9IFtdO1xyXG4gICAgICB0aGlzLmdyYW5kc29uTGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLm9yZ2luR3JhbmREYXRhID0gW107XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBbGwgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc1NlbGVjdEFsbERpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIGlmICh0aGlzLmNhY2hlRW50aXR5VHlwZSAmJiB0aGlzLmNhY2hlRW50aXR5VHlwZSAhPT0gaXRlbS5lbnRpdHlUeXBlKSB7XHJcbiAgICAgICAgdGhpcy5zb25MaXN0ID0gaXRlbS52aWV3cy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVJdGVtQ2hhbmdlKGRhdGEsIHZhbD86IGJvb2xlYW4pIHtcclxuICAgIGlmICghZGF0YSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xyXG4gICAgICAgIGRhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnNvbklkcy5pbmNsdWRlcyhpdGVtLmlkKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNvbklkcy5wdXNoKGl0ZW0uaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS50YWJsZXMpKSB7XHJcbiAgICAgICAgICAgIGl0ZW0udGFibGVzLmZvckVhY2goKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmdyYW5kc29uTGlzdC5zb21lKChlbCkgPT4gZWwuaWQgPT09IGNoaWxkLmlkKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmFuZHNvbkxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgIC4uLmNoaWxkLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBmaW5hbmNpYWwgZmlndXJlcyBjYW7igJl0IGJlIHNlbGVjdGVkIHRvZ2V0aGVyIHdpdGggb3RoZXIgZ3JvdXBzXHJcbiAgICAgICAgaWYgKGRhdGEubGFuZ0NvZGUgIT09IFwiRklOQU5DSUFMX0ZJR1VSRVNcIikge1xyXG4gICAgICAgICAgdGhpcy5zb25MaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgaWYgKGl0ZW0ubGFuZ0NvZGUgPT09IFwiRklOQU5DSUFMX0ZJR1VSRVNcIikgaXRlbS5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAhdGhpcy5zb25MaXN0LmZpbmQoXHJcbiAgICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCAmJiBpdGVtLmxhbmdDb2RlICE9PSBcIkZJTkFOQ0lBTF9GSUdVUkVTXCJcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc29uTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0ubGFuZ0NvZGUgIT09IFwiRklOQU5DSUFMX0ZJR1VSRVNcIikgaXRlbS5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmlzU2VsZWN0QWxsRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBkYXRhLnRhYmxlcy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuZ3JhbmRzb25MaXN0LnNvbWUoKGVsKSA9PiBlbC5pZCA9PT0gaXRlbS5pZCkpIHtcclxuICAgICAgICAgICAgdGhpcy5ncmFuZHNvbkxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNvbklkcy5pbmNsdWRlcyhkYXRhLmlkKSkge1xyXG4gICAgICAgICAgdGhpcy5zb25JZHMucHVzaChkYXRhLmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JhbmRzb25MaXN0ID0gW107XHJcbiAgICAgIHRoaXMuc29uTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEubGFuZ0NvZGUgPT09IFwiRklOQU5DSUFMX0ZJR1VSRVNcIikge1xyXG4gICAgICAgICAgaXRlbS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc1NlbGVjdEFsbERpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpdGVtLmlkID09IGRhdGEuaWQpIHtcclxuICAgICAgICAgIGl0ZW0uY2hlY2tlZCA9IHZhbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGl0ZW0uY2hlY2tlZCkge1xyXG4gICAgICAgICAgaXRlbS50YWJsZXMuZm9yRWFjaCgoc29uSXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuZ3JhbmRzb25MaXN0LnNvbWUoKGVsKSA9PiBlbC5pZCA9PT0gc29uSXRlbS5pZCkpIHtcclxuICAgICAgICAgICAgICB0aGlzLmdyYW5kc29uTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgIC4uLnNvbkl0ZW0sXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBkYXRhLmxhbmdDb2RlICE9PSBcIkZJTkFOQ0lBTF9GSUdVUkVTXCIgJiZcclxuICAgICAgICAhdGhpcy5zb25MaXN0LmZpbmQoXHJcbiAgICAgICAgICAoaXRlbSkgPT4gaXRlbS5jaGVja2VkICYmIGl0ZW0ubGFuZ0NvZGUgIT09IFwiRklOQU5DSUFMX0ZJR1VSRVNcIlxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5zb25MaXN0LmZvckVhY2goKG9iaikgPT4ge1xyXG4gICAgICAgICAgaWYgKG9iai5sYW5nQ29kZSA9PT0gXCJGSU5BTkNJQUxfRklHVVJFU1wiKSBvYmouZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNvbklkcyA9IHRoaXMuc29uSWRzLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPSBkYXRhLmlkKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0U2VsZWN0ZWRBbGxTdGF0dXMoKTtcclxuICAgIHRoaXMub3JnaW5HcmFuZERhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JhbmRzb25MaXN0KSk7XHJcbiAgICBpZiAoIXRoaXMucmVmW1wiZGVzdHJveWVkXCJdKSB7XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZWxlY3RBbGwodmFsKSB7XHJcbiAgICBpZiAoIXZhbCkge1xyXG4gICAgICB0aGlzLm9yZ2luR3JhbmREYXRhID0gW107XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyYW5kc29uTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5zb25JZHMgPSBbXTtcclxuICAgIHRoaXMuc29uTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLmxhbmdDb2RlICE9PSBcIkZJTkFOQ0lBTF9GSUdVUkVTXCIpIGl0ZW0uY2hlY2tlZCA9IHZhbDtcclxuICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgIGlmIChpdGVtLmxhbmdDb2RlID09PSBcIkZJTkFOQ0lBTF9GSUdVUkVTXCIpIHtcclxuICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNvbklkcy5wdXNoKGl0ZW0uaWQpO1xyXG4gICAgICAgIGl0ZW0udGFibGVzLmZvckVhY2goKHNvbkl0ZW0pID0+IHtcclxuICAgICAgICAgIGlmICghdGhpcy5ncmFuZHNvbkxpc3Quc29tZSgoZWwpID0+IGVsLmlkID09PSBzb25JdGVtLmlkKSkge1xyXG4gICAgICAgICAgICB0aGlzLmdyYW5kc29uTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAuLi5zb25JdGVtLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoaXRlbS5sYW5nQ29kZSA9PT0gXCJGSU5BTkNJQUxfRklHVVJFU1wiKSBpdGVtLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5vcmdpbkdyYW5kRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ncmFuZHNvbkxpc3QpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkb0ZpbHRlciA9IHRocm90dGxlKCh2YWwpID0+IHRoaXMuZG9TZWFyY2godmFsKSwgMjAwKTtcclxuICBwdWJsaWMgZG9TZWFyY2godmFsKSB7XHJcbiAgICBsZXQgdGVtcExpc3QgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMub3JnaW5HcmFuZERhdGEpKTtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5ncmFuZHNvbkxpc3QgPSB0ZW1wTGlzdC5maWx0ZXIoKGl0ZW0pID0+XHJcbiAgICAgICAgaXRlbS5sYW5nVmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWwudG9Mb3dlckNhc2UoKSlcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JhbmRzb25MaXN0ID0gdGVtcExpc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIOS/neWtmOW8ueeql+etm+mAieaVsOaNrlxyXG4gIHNhdmVEYXRhKCkge1xyXG4gICAgdGhpcy5wYmYuaW50cm9TdGVwLm5leHQoXCJjb21wbGV0ZVwiKTtcclxuICAgIHRoaXMucGJmLnBhZ2VMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCBjb25maWc7XHJcbiAgICBsZXQgZGF0YW1hcnRWaWV3Q29kZSA9IHRoaXMuc29uTGlzdC5maWx0ZXIoKGVsKSA9PlxyXG4gICAgICB0aGlzLnNvbklkcy5pbmNsdWRlcyhlbC5pZClcclxuICAgICk7XHJcbiAgICBjb25maWcgPSB7XHJcbiAgICAgIGRhdGFtYXJ0SWQ6IHRoaXMuZmF0aGVySWQsXHJcbiAgICAgIGRhdGFtYXJ0Vmlld0lkOiB0aGlzLnNvbklkcy5qb2luKFwiLFwiKSxcclxuICAgICAgdmlld3M6IGRhdGFtYXJ0Vmlld0NvZGUubWFwKChlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGRhdGFtYXJ0Vmlld0lkOiBlLmlkLFxyXG4gICAgICAgICAgZGF0YW1hcnRWaWV3Q29kZTogZS5sYW5nQ29kZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KSxcclxuICAgIH07XHJcbiAgICBjb25zdCBlbnRpdHlMaXN0ID1cclxuICAgICAgdGhpcy5kYXRhLmRhc2hib2FyZC5lbnRpdHlUeXBlID09PSB0aGlzLmVudGl0eVR5cGVcclxuICAgICAgICA/IHRoaXMuRGFzaGJvYXJkUG9ybGV0c1NlcnZpY2UuZW50aXR5TGlzdFxyXG4gICAgICAgIDogW107XHJcblxyXG4gICAgY29uc3QgZGF0YU9iaiA9IHtcclxuICAgICAgZW50aXR5TGlzdCxcclxuICAgICAgYWNjb3VudElkOiB0aGlzLnVzZXJJbmZvLmFjY291bnRJZCxcclxuICAgICAgdXNlcklkOiB0aGlzLnVzZXJJbmZvLmlkLFxyXG4gICAgICBkYXNoYm9hcmRJZDogdGhpcy5kYXRhLmRhc2hib2FyZElkLFxyXG4gICAgICBkYXRhTWFydFRhYmxlczogdGhpcy5ncmFuZHNvbkxpc3QsXHJcbiAgICAgIGVudGl0eVR5cGU6IHRoaXMuZW50aXR5VHlwZSB8fCB0aGlzLmRhdGEuZGFzaGJvYXJkLmVudGl0eVR5cGUsXHJcbiAgICAgIGNvbmZpZzogSlNPTi5zdHJpbmdpZnkoY29uZmlnKSxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5odHRwLnBvc3QodGhpcy5hcGkudXJsTGlzdC5BZGREYXRhTWFydFRhYmxlcywgZGF0YU9iaiwgKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzLnN0YXR1cyA9PT0gXCJTVUNDRVNTXCIpIHtcclxuICAgICAgICBjb25zdCBfc2F2ZU1lc3NhZ2UgPVxyXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGlvbi5EQVNIQk9BUkRfUFJPUEVSVElFU19TQVZFRCB8fFxyXG4gICAgICAgICAgXCIuREFTSEJPQVJEX1BST1BFUlRJRVNfU0FWRURcIjtcclxuICAgICAgICB0aGlzLnNob3dUb2FzdChfc2F2ZU1lc3NhZ2UsIFwiU3VjY2Vzc1wiKTtcclxuICAgICAgICB0aGlzLmNvbmZpZy5kYXRhbWFydFZpZXdJZCA9IHRoaXMuc29uSWRzLmpvaW4oXCIsXCIpO1xyXG4gICAgICAgIHRoaXMuY29uZmlnLnZpZXdzID0gW107XHJcbiAgICAgICAgdGhpcy5zb25MaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHRoaXMuc29uSWRzLmZvckVhY2goKHNvbklkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLmlkID09PSBzb25JZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnLnZpZXdzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgZGF0YW1hcnRWaWV3Q29kZTogaXRlbS5sYW5nQ29kZSxcclxuICAgICAgICAgICAgICAgIGRhdGFtYXJ0Vmlld0lkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhLmRhc2hib2FyZC5jb25maWcgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmNvbmZpZyk7XHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YS5lZGl0KSB7XHJcbiAgICAgICAgICB0aGlzLkRhc2hib2FyZFBvcmxldHNTZXJ2aWNlLnBvcnRsZXRGaWVsZHNfVGVtcCA9IHt9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBlbnRpdHlMaXN0ICYmXHJcbiAgICAgICAgICBlbnRpdHlMaXN0Lmxlbmd0aCAmJlxyXG4gICAgICAgICAgdGhpcy5kYXRhLmRhc2hib2FyZC5lbnRpdHlUeXBlID09PSB0aGlzLmVudGl0eVR5cGVcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMucGJmLnRyaWdnZXJEYXNoYm9hcmRSZWZyZXNoLm5leHQoe1xyXG4gICAgICAgICAgICBlbnRpdHlMaXN0LFxyXG4gICAgICAgICAgICBpZDogdGhpcy5kYXRhLmRhc2hib2FyZC5pZCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuRGFzaGJvYXJkUG9ybGV0c1NlcnZpY2UuR2V0RGFzaGJvYXJkVjEoXHJcbiAgICAgICAgICB0aGlzLmRhdGEuZGFzaGJvYXJkSWQsXHJcbiAgICAgICAgICB0cnVlLFxyXG4gICAgICAgICAgKHJlcywgcG9ydGxldHMgPSBbXSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRhc2hib2FyZFNlcnZpY2UuY2hhbmdlbGF5b3V0Lm5leHQoe1xyXG4gICAgICAgICAgICAgIHN0YXR1czogXCJ0cnVlXCIsXHJcbiAgICAgICAgICAgICAgaWQ6IHRoaXMuZGF0YS5kYXNoYm9hcmQuaWQsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnBiZi5wYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XHJcbiAgICAgICAgICAgICAgcHVzaF9idG46IGZhbHNlLFxyXG4gICAgICAgICAgICAgIHBvcnRsZXQ6IHt9LFxyXG4gICAgICAgICAgICAgIHBvcnRsZXRzLFxyXG4gICAgICAgICAgICAgIGRhc2hib2FyZDogcmVzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBiZi5wYWdlTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucGJmLnBhZ2VMb2FkaW5nXy5uZXh0KHRydWUpO1xyXG4gICAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIGNvbnN0IF9zYXZlTWVzc2FnZSA9IHJlcy5tZXNzYWdlc1swXS5tZXNzYWdlIHx8IFwiZXJyb3JcIjtcclxuICAgICAgICB0aGlzLnNob3dUb2FzdChfc2F2ZU1lc3NhZ2UsIFwiRXJyb3JcIik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvLyB0b2FzdCBtc2dcclxuICBwdWJsaWMgc2hvd1RvYXN0KG1zZywgc3RhdHVzOiBcIlN1Y2Nlc3NcIiB8IFwiRXJyb3JcIikge1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dOb3RpZmljYXRpb24obXNnLCB7XHJcbiAgICAgIHN0YXR1cyxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvLyDlhbPpl63lvLnnqpdcclxuICBwdWJsaWMgY2xvc2VQb3B1cCgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
700
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYXJ0LW5ldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9yYWlzZS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2Rhc2hib2FyZC9kYXNoYm9hcmQtcHJvcGVydGllcy9kYXRhLW1hcnQtbmV3L2RhdGEtbWFydC1uZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04saUJBQWlCLEVBRWpCLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU9oRSxNQUFNLE9BQU8sb0JBQW9COzs7Ozs7Ozs7Ozs7O0lBa0IvQixZQUNrQyxJQUFTLEVBQ2xDLFNBQTZDLEVBQzVDLGFBQTRCLEVBQzdCLE1BQWlCLEVBQ2hCLEdBQVksRUFDYixnQkFBa0MsRUFDbEMsdUJBQWdELEVBQy9DLEdBQXNCLEVBQ1EsR0FBUSxFQUNDLElBQVM7UUFUeEIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNsQyxjQUFTLEdBQVQsU0FBUyxDQUFvQztRQUM1QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2hCLFFBQUcsR0FBSCxHQUFHLENBQVM7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Q3ZCLHVDQUFvQjs7SUFDcEIsNENBQXlCOztJQUN6Qix3Q0FBcUI7O0lBQ3JCLHNDQUFtQjs7SUFDbkIsMkNBQTJCOztJQUMzQiw4Q0FBMkI7O0lBQzNCLHdDQUF3Qjs7SUFDeEIsK0NBQTRCOztJQUM1QixtREFBbUM7O0lBaVRuQyx3Q0FBNkQ7O0lBOVMzRCxvQ0FBeUM7O0lBQ3pDLHlDQUFvRDs7Ozs7SUFDcEQsNkNBQW9DOztJQUNwQyxzQ0FBd0I7Ozs7O0lBQ3hCLG1DQUFvQjs7SUFDcEIsZ0RBQXlDOztJQUN6Qyx1REFBdUQ7Ozs7O0lBQ3ZELG1DQUE4Qjs7SUFDOUIsbUNBQThDOzs7OztJQUM5QyxvQ0FBd0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgSW5qZWN0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgT3B0aW9uYWwsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgQXBpTGlzdCB9IGZyb20gXCIuLi8uLi9hcGlcIjtcclxuaW1wb3J0IHsgRGFzaGJvYXJkU2VydmljZSB9IGZyb20gXCIuLi8uLi9kYXNoYm9hcmQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRQb3JsZXRzU2VydmljZSB9IGZyb20gXCIuLi8uLi9kYXNoYm9hcmRQb3JsZXRzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgdGhyb3R0bGUgfSBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCB7IEFQSV9TRVJWSUNFX1RPS0VOLCBQQkZfVE9LRU4gfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9JbmplY3Rpb25Ub2tlblwiO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLWRhdGEtbWFydC1uZXdcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2RhdGEtbWFydC1uZXcuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vZGF0YS1tYXJ0LW5ldy5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFNYXJ0TmV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICB0cmFuc2xhdGlvbjtcclxuICB1c2VySW5mbztcclxuICBsYW5nO1xyXG4gIGVudGl0eVR5cGU7XHJcbiAgY29uZmlnO1xyXG5cclxuICBwdWJsaWMgZmF0aGVyTGlzdCA9IFtdO1xyXG4gIHB1YmxpYyBzb25MaXN0ID0gW107XHJcbiAgcHVibGljIGdyYW5kc29uTGlzdCA9IFtdO1xyXG4gIHB1YmxpYyBmYXRoZXJJZCA9IFwiXCI7XHJcbiAgcHVibGljIHNvbklkcyA9IFtdO1xyXG4gIHB1YmxpYyBzZWxlY3RlZEFsbCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBvcmdpbkdyYW5kRGF0YSA9IFtdO1xyXG4gIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjYWNoZUVudGl0eVR5cGUgPSBcIlwiO1xyXG4gIHB1YmxpYyBpc1NlbGVjdEFsbERpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXHJcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RGF0YU1hcnROZXdDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBhcGk6IEFwaUxpc3QsXHJcbiAgICBwdWJsaWMgZGFzaGJvYXJkU2VydmljZTogRGFzaGJvYXJkU2VydmljZSxcclxuICAgIHB1YmxpYyBEYXNoYm9hcmRQb3JsZXRzU2VydmljZTogRGFzaGJvYXJkUG9ybGV0c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFBCRl9UT0tFTikgcHVibGljIHBiZjogYW55LFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBUElfU0VSVklDRV9UT0tFTikgcHJpdmF0ZSBodHRwOiBhbnlcclxuICApIHt9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmdldEluZm8oKTtcclxuICAgIHRoaXMuZ2V0U291cmNlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5wYmYuaW50cm9TdGVwLm5leHQoXCJuZXh0XCIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEluZm8oKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0aW9uID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRyYW5zbGF0aW9uXCIpKTtcclxuICAgIHRoaXMudXNlckluZm8gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXNlckluZm9cIikpO1xyXG4gICAgdGhpcy5sYW5nID0gdGhpcy5wYmYuZ2V0TGFuZ3VhZ2VQYXJhbXMoKTtcclxuICAgIHRoaXMuY29uZmlnID1cclxuICAgICAgdGhpcy5kYXRhICYmIHRoaXMuZGF0YS5kYXNoYm9hcmRcclxuICAgICAgICA/IEpTT04ucGFyc2UodGhpcy5kYXRhLmRhc2hib2FyZC5jb25maWcpXHJcbiAgICAgICAgOiB7fTtcclxuICB9XHJcbiAgZ2V0U291cmNlcygpIHtcclxuICAgIGNvbnN0IGRhdGFPYmogPSB7XHJcbiAgICAgIGFjY291bnRJZDogdGhpcy51c2VySW5mby5hY2NvdW50SWQsXHJcbiAgICAgIGxhbmd1YWdlOiB0aGlzLmxhbmcsXHJcbiAgICAgIGRhc2hib2FyZFZlcnNpb246IDIsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5wYmYucGFnZUxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5wYmYucGFnZUxvYWRpbmdfLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmh0dHAucG9zdCh0aGlzLmFwaS51cmxMaXN0LkdldFNvdXJjZXMsIGRhdGFPYmosIChyZXMpID0+IHtcclxuICAgICAgdGhpcy5wYmYucGFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5wYmYucGFnZUxvYWRpbmdfLm5leHQodHJ1ZSk7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLkRhc2hib2FyZFBvcmxldHNTZXJ2aWNlLnNvdXJjZXNEYXRhW3RoaXMuZGF0YS5kYXNoYm9hcmQuaWRdID0gcmVzO1xyXG4gICAgICAgIHRoaXMuRGFzaGJvYXJkUG9ybGV0c1NlcnZpY2UuR2V0U291cmNlc1JlcyA9IHJlcztcclxuICAgICAgICB0aGlzLmZhdGhlckxpc3QgPSByZXM7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5kYXRhbWFydElkKSB7XHJcbiAgICAgICAgICAvLyB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuZmF0aGVySWQgPSB0aGlzLmNvbmZpZy5kYXRhbWFydElkO1xyXG4gICAgICAgICAgdGhpcy5zb25JZHMgPSB0aGlzLmNvbmZpZy5kYXRhbWFydFZpZXdJZFxyXG4gICAgICAgICAgICA/IHRoaXMuY29uZmlnLmRhdGFtYXJ0Vmlld0lkLnNwbGl0KFwiLFwiKVxyXG4gICAgICAgICAgICA6IHRoaXMuY29uZmlnLnZpZXdzXHJcbiAgICAgICAgICAgID8gdGhpcy5jb25maWcudmlld3MubWFwKChpdGVtKSA9PiBpdGVtLmRhdGFtYXJ0Vmlld0lkKVxyXG4gICAgICAgICAgICA6IFtdO1xyXG4gICAgICAgICAgbGV0IGRhdGFzb3VyY2UgPSByZXMuZmluZCgoZWwpID0+IGVsLmlkID09IHRoaXMuZmF0aGVySWQpO1xyXG4gICAgICAgICAgaWYgKGRhdGFzb3VyY2UpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRkYXRhTWFydChkYXRhc291cmNlLCB0cnVlKTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmNhY2hlRW50aXR5VHlwZSAmJiB0aGlzLmNvbmZpZy5kYXRhbWFydElkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jYWNoZUVudGl0eVR5cGUgPSB0aGlzLmVudGl0eVR5cGU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCBkYXRhdmlldyA9IGRhdGFzb3VyY2Uudmlld3MuZmlsdGVyKChlbCkgPT5cclxuICAgICAgICAgICAgICB0aGlzLnNvbklkcy5pbmNsdWRlcyhlbC5pZClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVJdGVtQ2hhbmdlKGRhdGF2aWV3LCB0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRTZWxlY3RlZEFsbFN0YXR1cygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkQWxsU3RhdHVzKCkge1xyXG4gICAgbGV0IG51bSA9IDA7XHJcbiAgICB0aGlzLnNvbkxpc3QuZm9yRWFjaCgoc29uKSA9PiB7XHJcbiAgICAgIGlmIChzb24uY2hlY2tlZCAmJiBzb24ubGFuZ0NvZGUgIT09IFwiRklOQU5DSUFMX0ZJR1VSRVNcIikge1xyXG4gICAgICAgIG51bSsrO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChudW0gPT09IHRoaXMuc29uTGlzdC5sZW5ndGggLSAxKSB0aGlzLnNlbGVjdGVkQWxsID0gdHJ1ZTtcclxuICAgIGVsc2UgdGhpcy5zZWxlY3RlZEFsbCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbmV4dFN0ZXAoKSB7XHJcbiAgICB0aGlzLnBiZi5pbnRyb1N0ZXAubmV4dChcIm5leHRcIik7XHJcbiAgfVxyXG5cclxuICBnZXRkYXRhTWFydChpdGVtLCBpc0luaXQgPSBmYWxzZSkge1xyXG4gICAgaWYgKHRoaXMuY2FjaGVFbnRpdHlUeXBlICYmIHRoaXMuY2FjaGVFbnRpdHlUeXBlID09PSBpdGVtLmVudGl0eVR5cGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICAhaXNJbml0ICYmXHJcbiAgICAgIHRoaXMuY2FjaGVFbnRpdHlUeXBlICYmXHJcbiAgICAgIHRoaXMuY2FjaGVFbnRpdHlUeXBlICE9PSBpdGVtLmVudGl0eVR5cGVcclxuICAgICkge1xyXG4gICAgICBjb25zdCBfdGl0bGUgPVxyXG4gICAgICAgIHRoaXMudHJhbnNsYXRpb24uQVJFX1lPVV9TVVJFX1RPX0NIQU5HRV9EQVRBX01BUlQgfHxcclxuICAgICAgICBcIi5BcmUgeW91IHN1cmUgdG8gY2hhbmdlIGVudGl0eSB0eXBlIG9mIGRhdGEgbWFydD8gRGFzaGJvYXJkIHdpbGwgYmUgcmVzZXQgc2luY2UgZW50aXR5IHR5cGUgaXMgY2hhbmdlZC5cIjtcclxuICAgICAgY29uc3QgX25vID0gdGhpcy50cmFuc2xhdGlvbi5OTyB8fCBcIi5OT1wiO1xyXG4gICAgICBjb25zdCBfeWVzID0gdGhpcy50cmFuc2xhdGlvbi5ZRVMgfHwgXCIuWUVTXCI7XHJcbiAgICAgIC8vIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMubGF5b3V0VXRpbHNTZXJ2aWNlLmFsZXJ0RWxlbWVudChcclxuICAgICAgLy8gXHR0aGlzLnRyYW5zbGF0aW9uLldBUk5JTkcgfHwgXCIuV0FSTklOR1wiLFxyXG4gICAgICAvLyBcdF90aXRsZSxcclxuICAgICAgLy8gXHRfbm8sXHJcbiAgICAgIC8vIFx0X3llcyxcclxuICAgICAgLy8gXHR0cnVlLFxyXG4gICAgICAvLyBcdHRydWUsXHJcbiAgICAgIC8vIFx0XCI0ODBweFwiLFxyXG4gICAgICAvLyBcdFwiMzI0cHhcIlxyXG4gICAgICAvLyApO1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0NvbW1vbkRpbGFvZyh7XHJcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRpb24uV0FSTklORyB8fCBcIi5XQVJOSU5HXCIsXHJcbiAgICAgICAgZGVzY3JpcHRpb246IF90aXRsZSxcclxuICAgICAgICBzYXZlQnRuTGFiZWw6IF95ZXMsXHJcbiAgICAgICAgY2FuY2VsQnRuTGFiZWw6IF9ubyxcclxuICAgICAgfSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKCFyZXMpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXRGYXRoZXJJZChpdGVtLCBpc0luaXQpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpdGVtKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0RmF0aGVySWQoaXRlbSwgaXNJbml0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RmF0aGVySWQoaXRlbSwgaXNJbml0KSB7XHJcbiAgICB0aGlzLmZhdGhlcklkID0gaXRlbS5pZDtcclxuICAgIHRoaXMuZW50aXR5VHlwZSA9IGl0ZW0uZW50aXR5VHlwZTtcclxuICAgIGxldCBpc0ZpZ3VyZXNDaGVja2VkID0gZmFsc2U7XHJcbiAgICBsZXQgaXNPdGhlckNoZWNrZWQgPSBmYWxzZTtcclxuICAgIGlmIChcclxuICAgICAgaXRlbS52aWV3cy5maW5kKFxyXG4gICAgICAgIChpdGVtKSA9PlxyXG4gICAgICAgICAgaXRlbS5sYW5nQ29kZSA9PT0gXCJGSU5BTkNJQUxfRklHVVJFU1wiICYmIHRoaXMuc29uSWRzLmluY2x1ZGVzKGl0ZW0uaWQpXHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICBpc0ZpZ3VyZXNDaGVja2VkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5pc1NlbGVjdEFsbERpc2FibGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgaXRlbS52aWV3cy5maW5kKFxyXG4gICAgICAgIChpdGVtKSA9PlxyXG4gICAgICAgICAgaXRlbS5sYW5nQ29kZSAhPT0gXCJGSU5BTkNJQUxfRklHVVJFU1wiICYmIHRoaXMuc29uSWRzLmluY2x1ZGVzKGl0ZW0uaWQpXHJcbiAgICAgIClcclxuICAgIClcclxuICAgICAgaXNPdGhlckNoZWNrZWQgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuc29uTGlzdCA9IGl0ZW0udmlld3MubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGxldCBpc0Rpc2FibGVkID1cclxuICAgICAgICAoaXNGaWd1cmVzQ2hlY2tlZCAmJiBpdGVtLmxhbmdDb2RlICE9PSBcIkZJTkFOQ0lBTF9GSUdVUkVTXCIpIHx8XHJcbiAgICAgICAgKGl0ZW0ubGFuZ0NvZGUgPT09IFwiRklOQU5DSUFMX0ZJR1VSRVNcIiAmJiBpc090aGVyQ2hlY2tlZCk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICBjaGVja2VkOlxyXG4gICAgICAgICAgdGhpcy5jYWNoZUVudGl0eVR5cGUgJiYgdGhpcy5jYWNoZUVudGl0eVR5cGUgIT09IHRoaXMuZW50aXR5VHlwZVxyXG4gICAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICAgIDogdGhpcy5zb25JZHMuaW5jbHVkZXMoaXRlbS5pZCksXHJcbiAgICAgICAgZGlzYWJsZWQ6XHJcbiAgICAgICAgICB0aGlzLmNhY2hlRW50aXR5VHlwZSAmJiB0aGlzLmNhY2hlRW50aXR5VHlwZSAhPT0gdGhpcy5lbnRpdHlUeXBlXHJcbiAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgOiBpc0Rpc2FibGVkLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jYWNoZUVudGl0eVR5cGUgPSBpdGVtLmVudGl0eVR5cGU7XHJcblxyXG4gICAgaWYgKCFpc0luaXQpIHtcclxuICAgICAgdGhpcy5zb25JZHMgPSBbXTtcclxuICAgICAgdGhpcy5ncmFuZHNvbkxpc3QgPSBbXTtcclxuICAgICAgdGhpcy5vcmdpbkdyYW5kRGF0YSA9IFtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQWxsID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNTZWxlY3RBbGxEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICBpZiAodGhpcy5jYWNoZUVudGl0eVR5cGUgJiYgdGhpcy5jYWNoZUVudGl0eVR5cGUgIT09IGl0ZW0uZW50aXR5VHlwZSkge1xyXG4gICAgICAgIHRoaXMuc29uTGlzdCA9IGl0ZW0udmlld3MubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5pdGVtLFxyXG4gICAgICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlSXRlbUNoYW5nZShkYXRhLCB2YWw/OiBib29sZWFuKSB7XHJcbiAgICBpZiAoIWRhdGEpIHJldHVybiBmYWxzZTtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICBkYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgIGlmICghdGhpcy5zb25JZHMuaW5jbHVkZXMoaXRlbS5pZCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zb25JZHMucHVzaChpdGVtLmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0udGFibGVzKSkge1xyXG4gICAgICAgICAgICBpdGVtLnRhYmxlcy5mb3JFYWNoKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5ncmFuZHNvbkxpc3Quc29tZSgoZWwpID0+IGVsLmlkID09PSBjaGlsZC5pZCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JhbmRzb25MaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAuLi5jaGlsZCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gZmluYW5jaWFsIGZpZ3VyZXMgY2Fu4oCZdCBiZSBzZWxlY3RlZCB0b2dldGhlciB3aXRoIG90aGVyIGdyb3Vwc1xyXG4gICAgICAgIGlmIChkYXRhLmxhbmdDb2RlICE9PSBcIkZJTkFOQ0lBTF9GSUdVUkVTXCIpIHtcclxuICAgICAgICAgIHRoaXMuc29uTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLmxhbmdDb2RlID09PSBcIkZJTkFOQ0lBTF9GSUdVUkVTXCIpIGl0ZW0uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgIXRoaXMuc29uTGlzdC5maW5kKFxyXG4gICAgICAgICAgICAgIChpdGVtKSA9PiBpdGVtLmNoZWNrZWQgJiYgaXRlbS5sYW5nQ29kZSAhPT0gXCJGSU5BTkNJQUxfRklHVVJFU1wiXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLnNvbkxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChpdGVtLmxhbmdDb2RlICE9PSBcIkZJTkFOQ0lBTF9GSUdVUkVTXCIpIGl0ZW0uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5pc1NlbGVjdEFsbERpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZGF0YS50YWJsZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmdyYW5kc29uTGlzdC5zb21lKChlbCkgPT4gZWwuaWQgPT09IGl0ZW0uaWQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JhbmRzb25MaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmICghdGhpcy5zb25JZHMuaW5jbHVkZXMoZGF0YS5pZCkpIHtcclxuICAgICAgICAgIHRoaXMuc29uSWRzLnB1c2goZGF0YS5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdyYW5kc29uTGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLnNvbkxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLmxhbmdDb2RlID09PSBcIkZJTkFOQ0lBTF9GSUdVUkVTXCIpIHtcclxuICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaXNTZWxlY3RBbGxEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXRlbS5pZCA9PSBkYXRhLmlkKSB7XHJcbiAgICAgICAgICBpdGVtLmNoZWNrZWQgPSB2YWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpdGVtLmNoZWNrZWQpIHtcclxuICAgICAgICAgIGl0ZW0udGFibGVzLmZvckVhY2goKHNvbkl0ZW0pID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmdyYW5kc29uTGlzdC5zb21lKChlbCkgPT4gZWwuaWQgPT09IHNvbkl0ZW0uaWQpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5ncmFuZHNvbkxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAuLi5zb25JdGVtLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZGF0YS5sYW5nQ29kZSAhPT0gXCJGSU5BTkNJQUxfRklHVVJFU1wiICYmXHJcbiAgICAgICAgIXRoaXMuc29uTGlzdC5maW5kKFxyXG4gICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCAmJiBpdGVtLmxhbmdDb2RlICE9PSBcIkZJTkFOQ0lBTF9GSUdVUkVTXCJcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc29uTGlzdC5mb3JFYWNoKChvYmopID0+IHtcclxuICAgICAgICAgIGlmIChvYmoubGFuZ0NvZGUgPT09IFwiRklOQU5DSUFMX0ZJR1VSRVNcIikgb2JqLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zb25JZHMgPSB0aGlzLnNvbklkcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT0gZGF0YS5pZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldFNlbGVjdGVkQWxsU3RhdHVzKCk7XHJcbiAgICB0aGlzLm9yZ2luR3JhbmREYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmdyYW5kc29uTGlzdCkpO1xyXG4gICAgaWYgKCF0aGlzLnJlZltcImRlc3Ryb3llZFwiXSkge1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcztcclxuICAgIH1cclxuICB9XHJcbiAgc2VsZWN0QWxsKHZhbCkge1xyXG4gICAgaWYgKCF2YWwpIHtcclxuICAgICAgdGhpcy5vcmdpbkdyYW5kRGF0YSA9IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncmFuZHNvbkxpc3QgPSBbXTtcclxuICAgIHRoaXMuc29uSWRzID0gW107XHJcbiAgICB0aGlzLnNvbkxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoaXRlbS5sYW5nQ29kZSAhPT0gXCJGSU5BTkNJQUxfRklHVVJFU1wiKSBpdGVtLmNoZWNrZWQgPSB2YWw7XHJcbiAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICBpZiAoaXRlbS5sYW5nQ29kZSA9PT0gXCJGSU5BTkNJQUxfRklHVVJFU1wiKSB7XHJcbiAgICAgICAgICBpdGVtLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zb25JZHMucHVzaChpdGVtLmlkKTtcclxuICAgICAgICBpdGVtLnRhYmxlcy5mb3JFYWNoKChzb25JdGVtKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuZ3JhbmRzb25MaXN0LnNvbWUoKGVsKSA9PiBlbC5pZCA9PT0gc29uSXRlbS5pZCkpIHtcclxuICAgICAgICAgICAgdGhpcy5ncmFuZHNvbkxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgLi4uc29uSXRlbSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGl0ZW0ubGFuZ0NvZGUgPT09IFwiRklOQU5DSUFMX0ZJR1VSRVNcIikgaXRlbS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMub3JnaW5HcmFuZERhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JhbmRzb25MaXN0KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZG9GaWx0ZXIgPSB0aHJvdHRsZSgodmFsKSA9PiB0aGlzLmRvU2VhcmNoKHZhbCksIDIwMCk7XHJcbiAgcHVibGljIGRvU2VhcmNoKHZhbCkge1xyXG4gICAgbGV0IHRlbXBMaXN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLm9yZ2luR3JhbmREYXRhKSk7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuZ3JhbmRzb25MaXN0ID0gdGVtcExpc3QuZmlsdGVyKChpdGVtKSA9PlxyXG4gICAgICAgIGl0ZW0ubGFuZ1ZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsLnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdyYW5kc29uTGlzdCA9IHRlbXBMaXN0O1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyDkv53lrZjlvLnnqpfnrZvpgInmlbDmja5cclxuICBzYXZlRGF0YSgpIHtcclxuICAgIHRoaXMucGJmLmludHJvU3RlcC5uZXh0KFwiY29tcGxldGVcIik7XHJcbiAgICB0aGlzLnBiZi5wYWdlTG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgY29uZmlnO1xyXG4gICAgbGV0IGRhdGFtYXJ0Vmlld0NvZGUgPSB0aGlzLnNvbkxpc3QuZmlsdGVyKChlbCkgPT5cclxuICAgICAgdGhpcy5zb25JZHMuaW5jbHVkZXMoZWwuaWQpXHJcbiAgICApO1xyXG4gICAgY29uZmlnID0ge1xyXG4gICAgICBkYXRhbWFydElkOiB0aGlzLmZhdGhlcklkLFxyXG4gICAgICBkYXRhbWFydFZpZXdJZDogdGhpcy5zb25JZHMuam9pbihcIixcIiksXHJcbiAgICAgIHZpZXdzOiBkYXRhbWFydFZpZXdDb2RlLm1hcCgoZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBkYXRhbWFydFZpZXdJZDogZS5pZCxcclxuICAgICAgICAgIGRhdGFtYXJ0Vmlld0NvZGU6IGUubGFuZ0NvZGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSksXHJcbiAgICB9O1xyXG4gICAgY29uc3QgZW50aXR5TGlzdCA9XHJcbiAgICAgIHRoaXMuZGF0YS5kYXNoYm9hcmQuZW50aXR5VHlwZSA9PT0gdGhpcy5lbnRpdHlUeXBlXHJcbiAgICAgICAgPyB0aGlzLkRhc2hib2FyZFBvcmxldHNTZXJ2aWNlLmVudGl0eUxpc3RcclxuICAgICAgICA6IFtdO1xyXG5cclxuICAgIGNvbnN0IGRhdGFPYmogPSB7XHJcbiAgICAgIGVudGl0eUxpc3QsXHJcbiAgICAgIGFjY291bnRJZDogdGhpcy51c2VySW5mby5hY2NvdW50SWQsXHJcbiAgICAgIHVzZXJJZDogdGhpcy51c2VySW5mby5pZCxcclxuICAgICAgZGFzaGJvYXJkSWQ6IHRoaXMuZGF0YS5kYXNoYm9hcmRJZCxcclxuICAgICAgZGF0YU1hcnRUYWJsZXM6IHRoaXMuZ3JhbmRzb25MaXN0LFxyXG4gICAgICBlbnRpdHlUeXBlOiB0aGlzLmVudGl0eVR5cGUgfHwgdGhpcy5kYXRhLmRhc2hib2FyZC5lbnRpdHlUeXBlLFxyXG4gICAgICBjb25maWc6IEpTT04uc3RyaW5naWZ5KGNvbmZpZyksXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuaHR0cC5wb3N0KHRoaXMuYXBpLnVybExpc3QuQWRkRGF0YU1hcnRUYWJsZXMsIGRhdGFPYmosIChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IFwiU1VDQ0VTU1wiKSB7XHJcbiAgICAgICAgY29uc3QgX3NhdmVNZXNzYWdlID1cclxuICAgICAgICAgIHRoaXMudHJhbnNsYXRpb24uREFTSEJPQVJEX1BST1BFUlRJRVNfU0FWRUQgfHxcclxuICAgICAgICAgIFwiLkRBU0hCT0FSRF9QUk9QRVJUSUVTX1NBVkVEXCI7XHJcbiAgICAgICAgdGhpcy5zaG93VG9hc3QoX3NhdmVNZXNzYWdlLCBcIlN1Y2Nlc3NcIik7XHJcbiAgICAgICAgdGhpcy5jb25maWcuZGF0YW1hcnRWaWV3SWQgPSB0aGlzLnNvbklkcy5qb2luKFwiLFwiKTtcclxuICAgICAgICB0aGlzLmNvbmZpZy52aWV3cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuc29uTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNvbklkcy5mb3JFYWNoKChzb25JZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5pZCA9PT0gc29uSWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZy52aWV3cy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGRhdGFtYXJ0Vmlld0NvZGU6IGl0ZW0ubGFuZ0NvZGUsXHJcbiAgICAgICAgICAgICAgICBkYXRhbWFydFZpZXdJZDogaXRlbS5pZCxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YS5kYXNoYm9hcmQuY29uZmlnID0gSlNPTi5zdHJpbmdpZnkodGhpcy5jb25maWcpO1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGEuZWRpdCkge1xyXG4gICAgICAgICAgdGhpcy5EYXNoYm9hcmRQb3JsZXRzU2VydmljZS5wb3J0bGV0RmllbGRzX1RlbXAgPSB7fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZW50aXR5TGlzdCAmJlxyXG4gICAgICAgICAgZW50aXR5TGlzdC5sZW5ndGggJiZcclxuICAgICAgICAgIHRoaXMuZGF0YS5kYXNoYm9hcmQuZW50aXR5VHlwZSA9PT0gdGhpcy5lbnRpdHlUeXBlXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnBiZi50cmlnZ2VyRGFzaGJvYXJkUmVmcmVzaC5uZXh0KHtcclxuICAgICAgICAgICAgZW50aXR5TGlzdCxcclxuICAgICAgICAgICAgaWQ6IHRoaXMuZGF0YS5kYXNoYm9hcmQuaWQsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkRhc2hib2FyZFBvcmxldHNTZXJ2aWNlLkdldERhc2hib2FyZFYxKFxyXG4gICAgICAgICAgdGhpcy5kYXRhLmRhc2hib2FyZElkLFxyXG4gICAgICAgICAgdHJ1ZSxcclxuICAgICAgICAgIChyZXMsIHBvcnRsZXRzID0gW10pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kYXNoYm9hcmRTZXJ2aWNlLmNoYW5nZWxheW91dC5uZXh0KHtcclxuICAgICAgICAgICAgICBzdGF0dXM6IFwidHJ1ZVwiLFxyXG4gICAgICAgICAgICAgIGlkOiB0aGlzLmRhdGEuZGFzaGJvYXJkLmlkLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5wYmYucGFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xyXG4gICAgICAgICAgICAgIHB1c2hfYnRuOiBmYWxzZSxcclxuICAgICAgICAgICAgICBwb3J0bGV0OiB7fSxcclxuICAgICAgICAgICAgICBwb3J0bGV0cyxcclxuICAgICAgICAgICAgICBkYXNoYm9hcmQ6IHJlcyxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wYmYucGFnZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnBiZi5wYWdlTG9hZGluZ18ubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICBjb25zdCBfc2F2ZU1lc3NhZ2UgPSByZXMubWVzc2FnZXNbMF0ubWVzc2FnZSB8fCBcImVycm9yXCI7XHJcbiAgICAgICAgdGhpcy5zaG93VG9hc3QoX3NhdmVNZXNzYWdlLCBcIkVycm9yXCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy8gdG9hc3QgbXNnXHJcbiAgcHVibGljIHNob3dUb2FzdChtc2csIHN0YXR1czogXCJTdWNjZXNzXCIgfCBcIkVycm9yXCIpIHtcclxuICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93Tm90aWZpY2F0aW9uKG1zZywge1xyXG4gICAgICBzdGF0dXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy8g5YWz6Zet5by556qXXHJcbiAgcHVibGljIGNsb3NlUG9wdXAoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=