coer-elements 0.0.31 → 0.0.33

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,7 +8,7 @@ export declare class CoerButton implements OnInit, OnDestroy {
8
8
  id: string;
9
9
  color: import("@angular/core").InputSignal<"default" | "primary" | "secondary" | "success" | "warning" | "danger" | "navigation">;
10
10
  type: import("@angular/core").InputSignal<"filled" | "outline" | "icon" | "icon-outline" | "icon-no-border">;
11
- icon: import("@angular/core").InputSignal<"" | "menu" | "new" | "save" | "cancel" | "import" | "excel" | "delete" | "edit" | "go" | "back">;
11
+ icon: import("@angular/core").InputSignal<"" | "new" | "save" | "cancel" | "import" | "excel" | "menu" | "delete" | "edit" | "go" | "back">;
12
12
  iconPosition: import("@angular/core").InputSignal<"left" | "right">;
13
13
  animation: import("@angular/core").InputSignal<boolean>;
14
14
  isLoading: import("@angular/core").InputSignal<boolean>;
@@ -30,7 +30,7 @@ export declare class CoerNumberBox extends ControlValue implements OnInit {
30
30
  isReadonly: import("@angular/core").InputSignal<boolean>;
31
31
  isLoading: import("@angular/core").InputSignal<boolean>;
32
32
  selectOnFocus: import("@angular/core").InputSignal<boolean>;
33
- textPosition: import("@angular/core").InputSignal<"center" | "left" | "right">;
33
+ textPosition: import("@angular/core").InputSignal<"left" | "right" | "center">;
34
34
  onKeyupEnter: import("@angular/core").OutputEmitterRef<string | number>;
35
35
  onInput: import("@angular/core").OutputEmitterRef<string | number>;
36
36
  ngOnInit(): void;
@@ -28,7 +28,7 @@ export declare class CoerTextarea extends ControlValue implements OnInit {
28
28
  isLoading: import("@angular/core").InputSignal<boolean>;
29
29
  showFooter: import("@angular/core").InputSignal<boolean>;
30
30
  resize: import("@angular/core").InputSignal<boolean>;
31
- textPosition: import("@angular/core").InputSignal<"center" | "left" | "right">;
31
+ textPosition: import("@angular/core").InputSignal<"left" | "right" | "center">;
32
32
  onInput: import("@angular/core").OutputEmitterRef<string | number>;
33
33
  ngOnInit(): void;
34
34
  get value(): string | number | null | undefined;
@@ -29,7 +29,7 @@ export declare class CoerTextBox extends ControlValue implements OnInit {
29
29
  isReadonly: import("@angular/core").InputSignal<boolean>;
30
30
  isLoading: import("@angular/core").InputSignal<boolean>;
31
31
  selectOnFocus: import("@angular/core").InputSignal<boolean>;
32
- textPosition: import("@angular/core").InputSignal<"center" | "left" | "right">;
32
+ textPosition: import("@angular/core").InputSignal<"left" | "right" | "center">;
33
33
  onKeyupEnter: import("@angular/core").OutputEmitterRef<string | number>;
34
34
  onInput: import("@angular/core").OutputEmitterRef<string | number>;
35
35
  onClickClear: import("@angular/core").OutputEmitterRef<void>;
@@ -32,7 +32,7 @@ export class CoerSidenav {
32
32
  this.sidenav = viewChild.required('matSidenav');
33
33
  this.menuList = viewChildren(CoerTreeAccordion);
34
34
  /** */
35
- this.IsMenu = (item) => item.hasOwnProperty('items');
35
+ this.IsMenu = (item) => item.hasOwnProperty('items') && Tools.IsNotOnlyWhiteSpace(item.items);
36
36
  /** */
37
37
  this.GetIcon = (item) => {
38
38
  if (item && item.hasOwnProperty('icon') && item.icon.length > 0) {
@@ -190,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
190
190
  type: Component,
191
191
  args: [{ selector: 'coer-sidenav', template: "<mat-drawer-container [hasBackdrop]=\"backdrop\">\r\n <mat-drawer\r\n #matSidenav\r\n [opened]=\"isOpen()\"\r\n (opened)=\"isOpen.set(true)\"\r\n (closed)=\"isOpen.set(false)\"\r\n [mode]=\"mode\">\r\n <div *ngFor=\"let item of _navigation()\">\r\n <!-- Menu -->\r\n <div *ngIf=\"IsMenu(item); else OptionMenu\">\r\n <coer-tree-accordion\r\n [item]=\"item\"\r\n (clickMenuOption)=\"NavigateTo($event)\"\r\n (clickMenu)=\"MenuSelected($event)\"\r\n ></coer-tree-accordion>\r\n </div>\r\n\r\n <!-- Option Menu -->\r\n <ng-template #OptionMenu>\r\n <coer-menu-option\r\n [label]=\"item.label\"\r\n [icon]=\"item?.icon\"\r\n [path]=\"item?.path\"\r\n (clickMenuOption)=\"NavigateTo($event)\"\r\n ></coer-menu-option>\r\n </ng-template>\r\n\r\n <div class=\"separator\"></div>\r\n </div>\r\n\r\n <div [ngClass]=\"{ 'backdrop': _isModalOpen() }\"></div>\r\n </mat-drawer>\r\n\r\n <!-- Main Screen -->\r\n <mat-drawer-content [ngClass]=\"{ 'margin-left-40px': (!isOpen() && showAsideMenu) }\">\r\n <aside [ngClass]=\"{ 'side-nav': true, 'd-none': !showAsideMenu }\" (click)=\"Open($event)\">\r\n <div *ngFor=\"let item of _navigation()\" (click)=\"Open($event, item)\">\r\n <span [class]=\"'icon-container ' + SetIdentityClass(item.label)\">\r\n <i [class]=\"GetIcon(item)\"></i>\r\n </span>\r\n </div>\r\n\r\n <div [ngClass]=\"{ 'backdrop': _isModalOpen() }\"></div>\r\n </aside>\r\n\r\n <ng-content></ng-content>\r\n </mat-drawer-content>\r\n</mat-drawer-container>", styles: ["mat-drawer-container{height:calc(100vh - 45px)!important}mat-drawer-container .margin-left-40px{margin-left:40px!important}mat-drawer-container mat-drawer{width:auto;min-width:200px;background-color:var(--black)!important;z-index:1!important}mat-drawer-container mat-drawer div.mat-drawer-inner-container::-webkit-scrollbar{width:1px!important}mat-drawer-container mat-drawer div.mat-drawer-inner-container::-webkit-scrollbar-thumb{background-color:var(--gray)!important;border-radius:5px!important}mat-drawer-container mat-drawer div.mat-drawer-inner-container::-webkit-scrollbar-thumb:hover{background-color:var(--gray)!important}mat-drawer-container mat-drawer div.mat-drawer-inner-container::-webkit-scrollbar-thumb:active{background-color:var(--white)!important}mat-drawer-container mat-drawer i{font-size:16px!important}mat-drawer-container mat-drawer div.separator{border:.5px solid rgba(245,245,245,.041)!important}mat-drawer-container mat-drawer-content{margin-right:0!important}mat-drawer-container mat-drawer-content aside.side-nav{background-color:var(--black)!important;width:40px!important;position:fixed!important;left:0!important;top:45px!important;bottom:0!important;cursor:pointer!important}mat-drawer-container mat-drawer-content aside.side-nav span.icon-container{width:100%!important;height:49.6px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:16px!important;border-bottom:1px solid rgba(245,245,245,.041)!important;color:var(--white)}mat-drawer-container mat-drawer-content aside.side-nav span.icon-container:hover{background-color:#2f2f2f!important}mat-drawer-container mat-drawer-content aside.side-nav span.icon-container.active-link{color:var(--orange)!important}mat-drawer-container div.backdrop{position:absolute!important;inset:0!important;background-color:#0000005b!important;z-index:1500!important}\n"] }]
192
192
  }], ctorParameters: () => [] });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1zaWRlbmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvY29tcG9uZW50cy9saWIvY29lci1zaWRlbmF2L2NvZXItc2lkZW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItc2lkZW5hdi9jb2VyLXNpZGVuYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBa0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEgsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBT3pDLE1BQU0sT0FBTyxXQUFXO0lBY3BCLFFBQVE7SUFDUixJQUFjLFFBQVE7UUFDbEIsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsUUFBUTtJQUNSLElBQWMsSUFBSTtRQUNkLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFD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QUUsS0FBSyxFQUFFLENBQUM7b0JBQ25GLE9BQU87Z0JBQ1gsQ0FBQztZQUNMLENBQUM7WUFFRCxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0FyTlEsV0FBVzttR0FBWCxXQUFXLHlMQVljLGlCQUFpQixnRUN6QnZELGszREErQ3VCOzs0RkRsQ1YsV0FBVztrQkFMdkIsU0FBUzsrQkFDSSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBXcml0YWJsZVNpZ25hbCwgaW5qZWN0LCB2aWV3Q2hpbGQsIHZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJTWVudSwgSU1lbnVTZWxlY3RlZCwgSU1lbnVPcHRpb25TZWxlY3RlZCwgSVNjcmVlblNpemUgfSBmcm9tICdjb2VyLWVsZW1lbnRzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBDb2VyVHJlZUFjY29yZGlvbiB9IGZyb20gJy4vY29lci10cmVlLWFjY29yZGlvbi9jb2VyLXRyZWUtYWNjb3JkaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGJyZWFrcG9pbnRTSUdOQUwsIGlzTW9kYWxPcGVuU0lHTkFMLCBpc01lbnVPcGVuU0lHTkFMLCBuYXZpZ2F0aW9uU0lHTkFMIH0gZnJvbSAnY29lci1lbGVtZW50cy9zaWduYWxzJztcclxuaW1wb3J0IHsgVG9vbHMsIEJyZWFkY3J1bWJzLCBNZW51LCBTY3JlZW4gfSBmcm9tICdjb2VyLWVsZW1lbnRzL3Rvb2xzJztcclxuaW1wb3J0IHsgTWF0RHJhd2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY29lci1zaWRlbmF2JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2VyLXNpZGVuYXYuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2NvZXItc2lkZW5hdi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZXJTaWRlbmF2IHtcclxuXHJcbiAgICAvL0luamVjdGlvbnNcclxuICAgIHByaXZhdGUgX3JvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG5cclxuICAgIC8vc2lnbmFsc1xyXG4gICAgcHJvdGVjdGVkIGlzT3BlbjogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBpc01lbnVPcGVuU0lHTkFMO1xyXG4gICAgcHJvdGVjdGVkIF9pc01vZGFsT3BlbjogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBpc01vZGFsT3BlblNJR05BTDtcclxuICAgIHByb3RlY3RlZCBfbmF2aWdhdGlvbjogV3JpdGFibGVTaWduYWw8SU1lbnVbXT4gPSBuYXZpZ2F0aW9uU0lHTkFMO1xyXG5cclxuICAgIC8vRWxlbWVudHNcclxuICAgIHByb3RlY3RlZCBzaWRlbmF2ID0gdmlld0NoaWxkLnJlcXVpcmVkPE1hdERyYXdlcj4oJ21hdFNpZGVuYXYnKTtcclxuICAgIHByb3RlY3RlZCBtZW51TGlzdCA9IHZpZXdDaGlsZHJlbihDb2VyVHJlZUFjY29yZGlvbik7XHJcblxyXG4gICAgLy9nZXR0ZXJcclxuICAgIHByb3RlY3RlZCBnZXQgYmFja2Ryb3AoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIFsneHMnLCAnc20nLCAnbWQnXS5pbmNsdWRlcyhicmVha3BvaW50U0lHTkFMKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vZ2V0dGVyXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IG1vZGUoKTogJ292ZXInIHwgJ3B1c2gnIHtcclxuICAgICAgICByZXR1cm4gWyd4cycsICdzbScsICdtZCddLmluY2x1ZGVzKGJyZWFrcG9pbnRTSUdOQUwoKSkgPyAnb3ZlcicgOiAncHVzaCc7XHJcbiAgICB9XHJcblxyXG4gICAgLy9nZXR0ZXJcclxuICAgIHByb3RlY3RlZCBnZXQgc2hvd0FzaWRlTWVudSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gWyd4bCcsICd4eGwnXS5pbmNsdWRlcyhicmVha3BvaW50U0lHTkFMKCkpICYmICF0aGlzLmlzT3BlbigpXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5CYWNrQnV0dG9uQnJvd3NlcigpO1xyXG5cclxuICAgICAgICB0aGlzLmlzT3Blbi5zZXQoWyd4eGwnXS5pbmNsdWRlcyhTY3JlZW4uQlJFQUtQT0lOVCkpO1xyXG5cclxuICAgICAgICBTY3JlZW4uUmVzaXplLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6ICh7IGJyZWFrcG9pbiB9OiBJU2NyZWVuU2l6ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgYnJlYWtwb2ludFNJR05BTC5zZXQoYnJlYWtwb2luKTtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuYmFja2Ryb3ApIHRoaXMuQ2xvc2UoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBOYXZpZ2F0ZVRvKHNlbGVjdGVkT3B0aW9uOiBJTWVudU9wdGlvblNlbGVjdGVkKSB7XHJcbiAgICAgICAgbGV0IHVybCA9IGAke3NlbGVjdGVkT3B0aW9uLnBhdGh9YDtcclxuICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb24ucXVlcnlQYXJhbXMubGVuZ3RoID4gMCkgdXJsICs9IGA/JHtzZWxlY3RlZE9wdGlvbi5xdWVyeVBhcmFtc31gO1xyXG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCk7XHJcblxyXG4gICAgICAgIC8vU2V0IGFjdGl2ZSBsaW5rXHJcbiAgICAgICAgdGhpcy5TZXRBY3RpdmVMaW5rKHNlbGVjdGVkT3B0aW9uKTtcclxuXHJcbiAgICAgICAgLy9DbG9zZSBNZW51XHJcbiAgICAgICAgaWYoc2VsZWN0ZWRPcHRpb24ubGV2ZWwgPT0gMSkge1xyXG4gICAgICAgICAgICBmb3IoY29uc3QgbWVudUx2MSBvZiB0aGlzLm1lbnVMaXN0KCkpIHtcclxuICAgICAgICAgICAgICAgIGZvcihjb25zdCBtZW51THYyIG9mIG1lbnVMdjEubWVudUxpc3QudG9BcnJheSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWVudUx2Mi5DbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgbWVudUx2MS5DbG9zZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBTZXRBY3RpdmVMaW5rKHNlbGVjdGVkT3B0aW9uOiBJTWVudU9wdGlvblNlbGVjdGVkIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbikge1xyXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbiA9IFRvb2xzLkJyZWFrUmVmZXJlbmNlKHNlbGVjdGVkT3B0aW9uKTtcclxuICAgICAgICAgICAgTWVudS5TZXRTZWxlY3RlZE9wdGlvbihzZWxlY3RlZE9wdGlvbik7XHJcblxyXG4gICAgICAgICAgICBsZXQgY29sbGVjdGlvbjogRWxlbWVudFtdID0gW107XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLmNvbmNhdChBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ21hdC1kcmF3ZXItY29udGFpbmVyIHNwYW4uaWNvbi1jb250YWluZXInKSkpO1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uID0gY29sbGVjdGlvbi5jb25jYXQoQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdtYXQtZHJhd2VyLWNvbnRhaW5lciBzcGFuLmxhYmVsLWNvbnRhaW5lcicpKSk7XHJcblxyXG4gICAgICAgICAgICAvL1JlbW92ZSBhY3RpdmUtbGlua1xyXG4gICAgICAgICAgICBmb3IoY29uc3QgZWxlbWVudCBvZiBjb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBpZihlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlLWxpbmsnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlLWxpbmsnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9BZGQgYWN0aXZlLWxpbmtcclxuICAgICAgICAgICAgY29uc3QgbGV2ZWxzID0gc2VsZWN0ZWRPcHRpb24udHJlZS5sZW5ndGg7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBsZXZlbHM7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgZm9yKGNvbnN0IGVsZW1lbnQgb2YgY29sbGVjdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlkZW50aXR5Q2xhc3MgPSB0aGlzLkdldElkZW50aXR5Q2xhc3Moc2VsZWN0ZWRPcHRpb24udHJlZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGlkZW50aXR5Q2xhc3MpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYWN0aXZlLWxpbmsnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb24udHJlZS5wb3AoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgT3BlbihldmVudDogTW91c2VFdmVudCwgaXRlbTogSU1lbnUgfCBudWxsID0gbnVsbCk6IHZvaWQge1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5pc09wZW4uc2V0KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLnNpZGVuYXYoKS5vcGVuKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBDbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pc09wZW4oKSkge1xyXG4gICAgICAgICAgICB0aGlzLmlzT3Blbi5zZXQoZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLnNpZGVuYXYoKS5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgVG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2lkZW5hdigpLnRvZ2dsZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBNZW51U2VsZWN0ZWQoc2VsZWN0ZWRNZW51OiBJTWVudVNlbGVjdGVkKSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkTWVudS5sZXZlbCA9PSAxKSB7XHJcbiAgICAgICAgICAgIGZvcihjb25zdCBtZW51THYxIG9mIHRoaXMubWVudUxpc3QoKSkge1xyXG4gICAgICAgICAgICAgICAgaWYobWVudUx2MS5pdGVtLmxhYmVsICE9IHNlbGVjdGVkTWVudS5sYWJlbCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IoY29uc3QgbWVudUx2MiBvZiBtZW51THYxLm1lbnVMaXN0LnRvQXJyYXkoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZW51THYyLkNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBtZW51THYxLkNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIElzTWVudSA9IChpdGVtOiBJTWVudSk6IGJvb2xlYW4gPT4gaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaXRlbXMnKTtcclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgR2V0SWNvbiA9IChpdGVtOiBJTWVudSk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0gJiYgaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaWNvbicpICYmIGl0ZW0uaWNvbiEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbS5pY29uIVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuSXNNZW51KGl0ZW0pXHJcbiAgICAgICAgICAgID8gJ2ZhLXNvbGlkIGZhLWJhcnMnXHJcbiAgICAgICAgICAgIDogJ2JpIGJpLXJlY29yZC1maWxsJztcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgU2V0SWRlbnRpdHlDbGFzcyA9IChsYWJlbDogU3RyaW5nKTogc3RyaW5nID0+IHtcclxuICAgICAgICBsZXQgaWRlbnRpdHkgPSBgbHYxJHtsYWJlbH1gO1xyXG4gICAgICAgIGlmKGlkZW50aXR5LmluY2x1ZGVzKCcgJykpIGlkZW50aXR5ID0gaWRlbnRpdHkucmVwbGFjZUFsbCgnICcsICcnKTtcclxuICAgICAgICByZXR1cm4gaWRlbnRpdHkudG9Mb3dlckNhc2UoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcml2YXRlIEdldElkZW50aXR5Q2xhc3ModHJlZTogSU1lbnVbXSk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IGlkZW50aXR5OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRyZWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWRlbnRpdHkgKz0gYGx2JHtpICsgMX0ke3RyZWVbaV0ubGFiZWx9LWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZihpZGVudGl0eS5lbmRzV2l0aCgnLScpKSBpZGVudGl0eSA9IGlkZW50aXR5LnNsaWNlKDAsIC0xKTtcclxuICAgICAgICBpZihpZGVudGl0eS5pbmNsdWRlcygnICcpKSBpZGVudGl0eSA9IGlkZW50aXR5LnJlcGxhY2VBbGwoJyAnLCAnJyk7XHJcbiAgICAgICAgcmV0dXJuIGlkZW50aXR5LnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBCYWNrQnV0dG9uQnJvd3NlcigpIHtcclxuICAgICAgICBjb25zdCBRVUVSWV9TRUxFQ1RPUiA9ICdjb2VyLW1lbnUtb3B0aW9uW25nLXJlZmxlY3QtcGF0aD1cIltwYXRoXVwiXSBtYXQtbmF2LWxpc3QuY29lci1tZW51LW9wdGlvbic7XHJcblxyXG4gICAgICAgIFNjcmVlbi5CYWNrQnV0dG9uQnJvd3Nlci5zdWJzY3JpYmUodG9QYXRoID0+IHtcclxuICAgICAgICAgICAgaWYgKHRvUGF0aC5pbmNsdWRlcygnLyMvJykpIHRvUGF0aCA9IHRvUGF0aC5zcGxpdCgnLyMnKVsxXTtcclxuICAgICAgICAgICAgaWYgKHRvUGF0aC5pbmNsdWRlcygnPycpKSB0b1BhdGggPSB0b1BhdGguc3BsaXQoJz8nKVswXTtcclxuXHJcbiAgICAgICAgICAgIC8vVmFsaWRhdGUgcGF0aFxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG1vZHVsZSBvZiBuYXZpZ2F0aW9uU0lHTkFMKCkpIHtcclxuICAgICAgICAgICAgICAgIGlmIChtb2R1bGUuaXRlbXMpIGZvciAoY29uc3Qgc3ViTW9kdWxlIG9mIG1vZHVsZS5pdGVtcykge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vTGV2ZWwgVGhyZWVcclxuICAgICAgICAgICAgICAgICAgICBpZiAoc3ViTW9kdWxlLml0ZW1zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcihjb25zdCBpdGVtIG9mIHN1Yk1vZHVsZS5pdGVtcykgaWYgKGl0ZW0ucGF0aCA9PT0gdG9QYXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihRVUVSWV9TRUxFQ1RPUi5yZXBsYWNlKCdbcGF0aF0nLCB0b1BhdGgpKSBhcyBhbnkpPy5jbGljaygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAvL0xldmVsIFR3b1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHN1Yk1vZHVsZS5wYXRoID09PSB0b1BhdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoUVVFUllfU0VMRUNUT1IucmVwbGFjZSgnW3BhdGhdJywgdG9QYXRoKSkgYXMgYW55KT8uY2xpY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvL0xldmVsIE9uZVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobW9kdWxlLnBhdGggPT09IHRvUGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFFVRVJZX1NFTEVDVE9SLnJlcGxhY2UoJ1twYXRoXScsIHRvUGF0aCkpIGFzIGFueSk/LmNsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBCcmVhZGNydW1icy5SZW1vdmUodG9QYXRoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSIsIjxtYXQtZHJhd2VyLWNvbnRhaW5lciBbaGFzQmFja2Ryb3BdPVwiYmFja2Ryb3BcIj5cclxuICAgIDxtYXQtZHJhd2VyXHJcbiAgICAgICAgI21hdFNpZGVuYXZcclxuICAgICAgICBbb3BlbmVkXT1cImlzT3BlbigpXCJcclxuICAgICAgICAob3BlbmVkKT1cImlzT3Blbi5zZXQodHJ1ZSlcIlxyXG4gICAgICAgIChjbG9zZWQpPVwiaXNPcGVuLnNldChmYWxzZSlcIlxyXG4gICAgICAgIFttb2RlXT1cIm1vZGVcIj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIF9uYXZpZ2F0aW9uKClcIj5cclxuICAgICAgICAgICAgPCEtLSBNZW51IC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiSXNNZW51KGl0ZW0pOyBlbHNlIE9wdGlvbk1lbnVcIj5cclxuICAgICAgICAgICAgICAgIDxjb2VyLXRyZWUtYWNjb3JkaW9uXHJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrTWVudU9wdGlvbik9XCJOYXZpZ2F0ZVRvKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGlja01lbnUpPVwiTWVudVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgPjwvY29lci10cmVlLWFjY29yZGlvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIE9wdGlvbiBNZW51IC0tPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI09wdGlvbk1lbnU+XHJcbiAgICAgICAgICAgICAgICA8Y29lci1tZW51LW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJpdGVtPy5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGF0aF09XCJpdGVtPy5wYXRoXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2tNZW51T3B0aW9uKT1cIk5hdmlnYXRlVG8oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICA+PC9jb2VyLW1lbnUtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ2JhY2tkcm9wJzogX2lzTW9kYWxPcGVuKCkgfVwiPjwvZGl2PlxyXG4gICAgPC9tYXQtZHJhd2VyPlxyXG5cclxuICAgIDwhLS0gTWFpbiBTY3JlZW4gLS0+XHJcbiAgICA8bWF0LWRyYXdlci1jb250ZW50IFtuZ0NsYXNzXT1cInsgJ21hcmdpbi1sZWZ0LTQwcHgnOiAoIWlzT3BlbigpICYmIHNob3dBc2lkZU1lbnUpIH1cIj5cclxuICAgICAgICA8YXNpZGUgW25nQ2xhc3NdPVwieyAnc2lkZS1uYXYnOiB0cnVlLCAnZC1ub25lJzogIXNob3dBc2lkZU1lbnUgfVwiIChjbGljayk9XCJPcGVuKCRldmVudClcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfbmF2aWdhdGlvbigpXCIgKGNsaWNrKT1cIk9wZW4oJGV2ZW50LCBpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIidpY29uLWNvbnRhaW5lciAnICsgU2V0SWRlbnRpdHlDbGFzcyhpdGVtLmxhYmVsKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJHZXRJY29uKGl0ZW0pXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnYmFja2Ryb3AnOiBfaXNNb2RhbE9wZW4oKSB9XCI+PC9kaXY+XHJcbiAgICAgICAgPC9hc2lkZT5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9tYXQtZHJhd2VyLWNvbnRlbnQ+XHJcbjwvbWF0LWRyYXdlci1jb250YWluZXI+Il19
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1zaWRlbmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZXItZWxlbWVudHMvY29tcG9uZW50cy9saWIvY29lci1zaWRlbmF2L2NvZXItc2lkZW5hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItc2lkZW5hdi9jb2VyLXNpZGVuYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBa0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEgsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBT3pDLE1BQU0sT0FBTyxXQUFXO0lBY3BCLFFBQVE7SUFDUixJQUFjLFFBQVE7UUFDbEIsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsUUFBUTtJQUNSLElBQWMsSUFBSTtRQUNkLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFD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Y0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztvQkFDbkYsT0FBTztnQkFDWCxDQUFDO1lBQ0wsQ0FBQztZQUVELFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXJOUSxXQUFXO21HQUFYLFdBQVcseUxBWWMsaUJBQWlCLGdFQ3pCdkQsazNEQStDdUI7OzRGRGxDVixXQUFXO2tCQUx2QixTQUFTOytCQUNJLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFdyaXRhYmxlU2lnbmFsLCBpbmplY3QsIHZpZXdDaGlsZCwgdmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElNZW51LCBJTWVudVNlbGVjdGVkLCBJTWVudU9wdGlvblNlbGVjdGVkLCBJU2NyZWVuU2l6ZSB9IGZyb20gJ2NvZXItZWxlbWVudHMvaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IENvZXJUcmVlQWNjb3JkaW9uIH0gZnJvbSAnLi9jb2VyLXRyZWUtYWNjb3JkaW9uL2NvZXItdHJlZS1hY2NvcmRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgYnJlYWtwb2ludFNJR05BTCwgaXNNb2RhbE9wZW5TSUdOQUwsIGlzTWVudU9wZW5TSUdOQUwsIG5hdmlnYXRpb25TSUdOQUwgfSBmcm9tICdjb2VyLWVsZW1lbnRzL3NpZ25hbHMnO1xyXG5pbXBvcnQgeyBUb29scywgQnJlYWRjcnVtYnMsIE1lbnUsIFNjcmVlbiB9IGZyb20gJ2NvZXItZWxlbWVudHMvdG9vbHMnO1xyXG5pbXBvcnQgeyBNYXREcmF3ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjb2VyLXNpZGVuYXYnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZXItc2lkZW5hdi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vY29lci1zaWRlbmF2LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29lclNpZGVuYXYge1xyXG5cclxuICAgIC8vSW5qZWN0aW9uc1xyXG4gICAgcHJpdmF0ZSBfcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblxyXG4gICAgLy9zaWduYWxzXHJcbiAgICBwcm90ZWN0ZWQgaXNPcGVuOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IGlzTWVudU9wZW5TSUdOQUw7XHJcbiAgICBwcm90ZWN0ZWQgX2lzTW9kYWxPcGVuOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IGlzTW9kYWxPcGVuU0lHTkFMO1xyXG4gICAgcHJvdGVjdGVkIF9uYXZpZ2F0aW9uOiBXcml0YWJsZVNpZ25hbDxJTWVudVtdPiA9IG5hdmlnYXRpb25TSUdOQUw7XHJcblxyXG4gICAgLy9FbGVtZW50c1xyXG4gICAgcHJvdGVjdGVkIHNpZGVuYXYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8TWF0RHJhd2VyPignbWF0U2lkZW5hdicpO1xyXG4gICAgcHJvdGVjdGVkIG1lbnVMaXN0ID0gdmlld0NoaWxkcmVuKENvZXJUcmVlQWNjb3JkaW9uKTtcclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHJvdGVjdGVkIGdldCBiYWNrZHJvcCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gWyd4cycsICdzbScsICdtZCddLmluY2x1ZGVzKGJyZWFrcG9pbnRTSUdOQUwoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9nZXR0ZXJcclxuICAgIHByb3RlY3RlZCBnZXQgbW9kZSgpOiAnb3ZlcicgfCAncHVzaCcge1xyXG4gICAgICAgIHJldHVybiBbJ3hzJywgJ3NtJywgJ21kJ10uaW5jbHVkZXMoYnJlYWtwb2ludFNJR05BTCgpKSA/ICdvdmVyJyA6ICdwdXNoJztcclxuICAgIH1cclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHJvdGVjdGVkIGdldCBzaG93QXNpZGVNZW51KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBbJ3hsJywgJ3h4bCddLmluY2x1ZGVzKGJyZWFrcG9pbnRTSUdOQUwoKSkgJiYgIXRoaXMuaXNPcGVuKClcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLkJhY2tCdXR0b25Ccm93c2VyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNPcGVuLnNldChbJ3h4bCddLmluY2x1ZGVzKFNjcmVlbi5CUkVBS1BPSU5UKSk7XHJcblxyXG4gICAgICAgIFNjcmVlbi5SZXNpemUuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKHsgYnJlYWtwb2luIH06IElTY3JlZW5TaXplKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBicmVha3BvaW50U0lHTkFMLnNldChicmVha3BvaW4pO1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5iYWNrZHJvcCkgdGhpcy5DbG9zZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIE5hdmlnYXRlVG8oc2VsZWN0ZWRPcHRpb246IElNZW51T3B0aW9uU2VsZWN0ZWQpIHtcclxuICAgICAgICBsZXQgdXJsID0gYCR7c2VsZWN0ZWRPcHRpb24ucGF0aH1gO1xyXG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbi5xdWVyeVBhcmFtcy5sZW5ndGggPiAwKSB1cmwgKz0gYD8ke3NlbGVjdGVkT3B0aW9uLnF1ZXJ5UGFyYW1zfWA7XHJcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcclxuXHJcbiAgICAgICAgLy9TZXQgYWN0aXZlIGxpbmtcclxuICAgICAgICB0aGlzLlNldEFjdGl2ZUxpbmsoc2VsZWN0ZWRPcHRpb24pO1xyXG5cclxuICAgICAgICAvL0Nsb3NlIE1lbnVcclxuICAgICAgICBpZihzZWxlY3RlZE9wdGlvbi5sZXZlbCA9PSAxKSB7XHJcbiAgICAgICAgICAgIGZvcihjb25zdCBtZW51THYxIG9mIHRoaXMubWVudUxpc3QoKSkge1xyXG4gICAgICAgICAgICAgICAgZm9yKGNvbnN0IG1lbnVMdjIgb2YgbWVudUx2MS5tZW51TGlzdC50b0FycmF5KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBtZW51THYyLkNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtZW51THYxLkNsb3NlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIFNldEFjdGl2ZUxpbmsoc2VsZWN0ZWRPcHRpb246IElNZW51T3B0aW9uU2VsZWN0ZWQgfCBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkT3B0aW9uKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uID0gVG9vbHMuQnJlYWtSZWZlcmVuY2Uoc2VsZWN0ZWRPcHRpb24pO1xyXG4gICAgICAgICAgICBNZW51LlNldFNlbGVjdGVkT3B0aW9uKHNlbGVjdGVkT3B0aW9uKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBjb2xsZWN0aW9uOiBFbGVtZW50W10gPSBbXTtcclxuICAgICAgICAgICAgY29sbGVjdGlvbiA9IGNvbGxlY3Rpb24uY29uY2F0KEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbWF0LWRyYXdlci1jb250YWluZXIgc3Bhbi5pY29uLWNvbnRhaW5lcicpKSk7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uLmNvbmNhdChBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ21hdC1kcmF3ZXItY29udGFpbmVyIHNwYW4ubGFiZWwtY29udGFpbmVyJykpKTtcclxuXHJcbiAgICAgICAgICAgIC8vUmVtb3ZlIGFjdGl2ZS1saW5rXHJcbiAgICAgICAgICAgIGZvcihjb25zdCBlbGVtZW50IG9mIGNvbGxlY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgIGlmKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUtbGluaycpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUtbGluaycpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL0FkZCBhY3RpdmUtbGlua1xyXG4gICAgICAgICAgICBjb25zdCBsZXZlbHMgPSBzZWxlY3RlZE9wdGlvbi50cmVlLmxlbmd0aDtcclxuICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IGxldmVsczsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IoY29uc3QgZWxlbWVudCBvZiBjb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaWRlbnRpdHlDbGFzcyA9IHRoaXMuR2V0SWRlbnRpdHlDbGFzcyhzZWxlY3RlZE9wdGlvbi50cmVlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoaWRlbnRpdHlDbGFzcykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdhY3RpdmUtbGluaycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbi50cmVlLnBvcCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBPcGVuKGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBJTWVudSB8IG51bGwgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc09wZW4oKSkge1xyXG4gICAgICAgICAgICB0aGlzLmlzT3Blbi5zZXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2lkZW5hdigpLm9wZW4oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIENsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2lkZW5hdigpLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBUb2dnbGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaWRlbmF2KCkudG9nZ2xlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIE1lbnVTZWxlY3RlZChzZWxlY3RlZE1lbnU6IElNZW51U2VsZWN0ZWQpIHtcclxuICAgICAgICBpZiAoc2VsZWN0ZWRNZW51LmxldmVsID09IDEpIHtcclxuICAgICAgICAgICAgZm9yKGNvbnN0IG1lbnVMdjEgb2YgdGhpcy5tZW51TGlzdCgpKSB7XHJcbiAgICAgICAgICAgICAgICBpZihtZW51THYxLml0ZW0ubGFiZWwgIT0gc2VsZWN0ZWRNZW51LmxhYmVsKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZvcihjb25zdCBtZW51THYyIG9mIG1lbnVMdjEubWVudUxpc3QudG9BcnJheSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVMdjIuQ2xvc2UoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIG1lbnVMdjEuQ2xvc2UoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgSXNNZW51ID0gKGl0ZW06IElNZW51KTogYm9vbGVhbiA9PiBpdGVtLmhhc093blByb3BlcnR5KCdpdGVtcycpICYmIFRvb2xzLklzTm90T25seVdoaXRlU3BhY2UoaXRlbS5pdGVtcyk7XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIEdldEljb24gPSAoaXRlbTogSU1lbnUpOiBzdHJpbmcgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtICYmIGl0ZW0uaGFzT3duUHJvcGVydHkoJ2ljb24nKSAmJiBpdGVtLmljb24hLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uaWNvbiFcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLklzTWVudShpdGVtKVxyXG4gICAgICAgICAgICA/ICdmYS1zb2xpZCBmYS1iYXJzJ1xyXG4gICAgICAgICAgICA6ICdiaSBiaS1yZWNvcmQtZmlsbCc7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIFNldElkZW50aXR5Q2xhc3MgPSAobGFiZWw6IFN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgbGV0IGlkZW50aXR5ID0gYGx2MSR7bGFiZWx9YDtcclxuICAgICAgICBpZihpZGVudGl0eS5pbmNsdWRlcygnICcpKSBpZGVudGl0eSA9IGlkZW50aXR5LnJlcGxhY2VBbGwoJyAnLCAnJyk7XHJcbiAgICAgICAgcmV0dXJuIGlkZW50aXR5LnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJpdmF0ZSBHZXRJZGVudGl0eUNsYXNzKHRyZWU6IElNZW51W10pOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBpZGVudGl0eTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0cmVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlkZW50aXR5ICs9IGBsdiR7aSArIDF9JHt0cmVlW2ldLmxhYmVsfS1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoaWRlbnRpdHkuZW5kc1dpdGgoJy0nKSkgaWRlbnRpdHkgPSBpZGVudGl0eS5zbGljZSgwLCAtMSk7XHJcbiAgICAgICAgaWYoaWRlbnRpdHkuaW5jbHVkZXMoJyAnKSkgaWRlbnRpdHkgPSBpZGVudGl0eS5yZXBsYWNlQWxsKCcgJywgJycpO1xyXG4gICAgICAgIHJldHVybiBpZGVudGl0eS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByaXZhdGUgQmFja0J1dHRvbkJyb3dzZXIoKSB7XHJcbiAgICAgICAgY29uc3QgUVVFUllfU0VMRUNUT1IgPSAnY29lci1tZW51LW9wdGlvbltuZy1yZWZsZWN0LXBhdGg9XCJbcGF0aF1cIl0gbWF0LW5hdi1saXN0LmNvZXItbWVudS1vcHRpb24nO1xyXG5cclxuICAgICAgICBTY3JlZW4uQmFja0J1dHRvbkJyb3dzZXIuc3Vic2NyaWJlKHRvUGF0aCA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0b1BhdGguaW5jbHVkZXMoJy8jLycpKSB0b1BhdGggPSB0b1BhdGguc3BsaXQoJy8jJylbMV07XHJcbiAgICAgICAgICAgIGlmICh0b1BhdGguaW5jbHVkZXMoJz8nKSkgdG9QYXRoID0gdG9QYXRoLnNwbGl0KCc/JylbMF07XHJcblxyXG4gICAgICAgICAgICAvL1ZhbGlkYXRlIHBhdGhcclxuICAgICAgICAgICAgZm9yIChjb25zdCBtb2R1bGUgb2YgbmF2aWdhdGlvblNJR05BTCgpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobW9kdWxlLml0ZW1zKSBmb3IgKGNvbnN0IHN1Yk1vZHVsZSBvZiBtb2R1bGUuaXRlbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL0xldmVsIFRocmVlXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1Yk1vZHVsZS5pdGVtcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IoY29uc3QgaXRlbSBvZiBzdWJNb2R1bGUuaXRlbXMpIGlmIChpdGVtLnBhdGggPT09IHRvUGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoUVVFUllfU0VMRUNUT1IucmVwbGFjZSgnW3BhdGhdJywgdG9QYXRoKSkgYXMgYW55KT8uY2xpY2soKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy9MZXZlbCBUd29cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzdWJNb2R1bGUucGF0aCA9PT0gdG9QYXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFFVRVJZX1NFTEVDVE9SLnJlcGxhY2UoJ1twYXRoXScsIHRvUGF0aCkpIGFzIGFueSk/LmNsaWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy9MZXZlbCBPbmVcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1vZHVsZS5wYXRoID09PSB0b1BhdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihRVUVSWV9TRUxFQ1RPUi5yZXBsYWNlKCdbcGF0aF0nLCB0b1BhdGgpKSBhcyBhbnkpPy5jbGljaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQnJlYWRjcnVtYnMuUmVtb3ZlKHRvUGF0aCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iLCI8bWF0LWRyYXdlci1jb250YWluZXIgW2hhc0JhY2tkcm9wXT1cImJhY2tkcm9wXCI+XHJcbiAgICA8bWF0LWRyYXdlclxyXG4gICAgICAgICNtYXRTaWRlbmF2XHJcbiAgICAgICAgW29wZW5lZF09XCJpc09wZW4oKVwiXHJcbiAgICAgICAgKG9wZW5lZCk9XCJpc09wZW4uc2V0KHRydWUpXCJcclxuICAgICAgICAoY2xvc2VkKT1cImlzT3Blbi5zZXQoZmFsc2UpXCJcclxuICAgICAgICBbbW9kZV09XCJtb2RlXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfbmF2aWdhdGlvbigpXCI+XHJcbiAgICAgICAgICAgIDwhLS0gTWVudSAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIklzTWVudShpdGVtKTsgZWxzZSBPcHRpb25NZW51XCI+XHJcbiAgICAgICAgICAgICAgICA8Y29lci10cmVlLWFjY29yZGlvblxyXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGlja01lbnVPcHRpb24pPVwiTmF2aWdhdGVUbygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2tNZW51KT1cIk1lbnVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgID48L2NvZXItdHJlZS1hY2NvcmRpb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBPcHRpb24gTWVudSAtLT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNPcHRpb25NZW51PlxyXG4gICAgICAgICAgICAgICAgPGNvZXItbWVudS1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiaXRlbT8uaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BhdGhdPVwiaXRlbT8ucGF0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrTWVudU9wdGlvbik9XCJOYXZpZ2F0ZVRvKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgPjwvY29lci1tZW51LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7ICdiYWNrZHJvcCc6IF9pc01vZGFsT3BlbigpIH1cIj48L2Rpdj5cclxuICAgIDwvbWF0LWRyYXdlcj5cclxuXHJcbiAgICA8IS0tIE1haW4gU2NyZWVuIC0tPlxyXG4gICAgPG1hdC1kcmF3ZXItY29udGVudCBbbmdDbGFzc109XCJ7ICdtYXJnaW4tbGVmdC00MHB4JzogKCFpc09wZW4oKSAmJiBzaG93QXNpZGVNZW51KSB9XCI+XHJcbiAgICAgICAgPGFzaWRlIFtuZ0NsYXNzXT1cInsgJ3NpZGUtbmF2JzogdHJ1ZSwgJ2Qtbm9uZSc6ICFzaG93QXNpZGVNZW51IH1cIiAoY2xpY2spPVwiT3BlbigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX25hdmlnYXRpb24oKVwiIChjbGljayk9XCJPcGVuKCRldmVudCwgaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCInaWNvbi1jb250YWluZXIgJyArIFNldElkZW50aXR5Q2xhc3MoaXRlbS5sYWJlbClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiR2V0SWNvbihpdGVtKVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ2JhY2tkcm9wJzogX2lzTW9kYWxPcGVuKCkgfVwiPjwvZGl2PlxyXG4gICAgICAgIDwvYXNpZGU+XHJcblxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvbWF0LWRyYXdlci1jb250ZW50PlxyXG48L21hdC1kcmF3ZXItY29udGFpbmVyPiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild, ViewChildren } from '@angular/core';
2
+ import { Tools } from 'coer-elements/tools';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@angular/common";
4
5
  import * as i2 from "@angular/material/expansion";
@@ -20,7 +21,7 @@ export class CoerTreeAccordion {
20
21
  || (this.isCollapsed && element.classList.contains('active-link'));
21
22
  };
22
23
  /** */
23
- this.IsMenu = (item) => item.hasOwnProperty('items');
24
+ this.IsMenu = (item) => item.hasOwnProperty('items') && Tools.IsNotOnlyWhiteSpace(item.items);
24
25
  }
25
26
  get _tree() {
26
27
  return [...this.tree].concat([{ ...this.item }]);
@@ -112,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
112
113
  }], clickMenu: [{
113
114
  type: Output
114
115
  }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci10cmVlLWFjY29yZGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItc2lkZW5hdi9jb2VyLXRyZWUtYWNjb3JkaW9uL2NvZXItdHJlZS1hY2NvcmRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9jb21wb25lbnRzL2xpYi9jb2VyLXNpZGVuYXYvY29lci10cmVlLWFjY29yZGlvbi9jb2VyLXRyZWUtYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTM0csTUFBTSxPQUFPLGlCQUFpQjtJQUw5QjtRQVVJLFdBQVc7UUFDSixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBRW5DLFFBQVE7UUFDQyxVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBRWxCLFNBQUksR0FBWSxFQUFFLENBQUM7UUFFNUIsU0FBUztRQUNDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDMUQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBOEJ4RCxNQUFNO1FBQ0ksYUFBUSxHQUFHLENBQUMsT0FBZ0IsRUFBVyxFQUFFO1lBQy9DLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO21CQUNuQyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtRQUMxRSxDQUFD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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElNZW51LCBJTWVudVNlbGVjdGVkLCBJTWVudU9wdGlvblNlbGVjdGVkIH0gZnJvbSAnY29lci1lbGVtZW50cy9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgTWF0RXhwYW5zaW9uUGFuZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb2VyLXRyZWUtYWNjb3JkaW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29lci10cmVlLWFjY29yZGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NvZXItdHJlZS1hY2NvcmRpb24uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2VyVHJlZUFjY29yZGlvbiB7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnZXhwYW5zaW9uUGFuZWwnKSBleHBhbnNpb25QYW5lbCE6IE1hdEV4cGFuc2lvblBhbmVsO1xyXG4gICAgQFZpZXdDaGlsZHJlbihDb2VyVHJlZUFjY29yZGlvbikgbWVudUxpc3QhOiBRdWVyeUxpc3Q8Q29lclRyZWVBY2NvcmRpb24+O1xyXG5cclxuICAgIC8vVmFyaWFibGVzXHJcbiAgICBwdWJsaWMgaXNFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGlzQ29sbGFwc2VkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvL0lucHV0c1xyXG4gICAgQElucHV0KCkgbGV2ZWw6IG51bWJlciA9IDE7XHJcbiAgICBASW5wdXQoKSBpdGVtITogSU1lbnU7XHJcbiAgICBASW5wdXQoKSB0cmVlOiBJTWVudVtdID0gW107XHJcblxyXG4gICAgLy9PdXRwdXRzXHJcbiAgICBAT3V0cHV0KCkgY2xpY2tNZW51T3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxJTWVudU9wdGlvblNlbGVjdGVkPigpO1xyXG4gICAgQE91dHB1dCgpIGNsaWNrTWVudSA9IG5ldyBFdmVudEVtaXR0ZXI8SU1lbnVTZWxlY3RlZD4oKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IF90cmVlKCk6IElNZW51W10ge1xyXG4gICAgICAgIHJldHVybiBbLi4udGhpcy50cmVlXS5jb25jYXQoW3suLi50aGlzLml0ZW19XSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldCBfaWNvbigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5pdGVtICYmIHRoaXMuaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaWNvbicpICYmIHRoaXMuaXRlbS5pY29uIS5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICA/IHRoaXMuaXRlbS5pY29uISA6ICdmYS1zb2xpZCBmYS1iYXJzJztcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJvdGVjdGVkIGdldCBtYXJnaW5MZWZ0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAkeyh0aGlzLmxldmVsIC0gMSkgKiAyMH1weGA7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByb3RlY3RlZCBnZXQgaWRlbnRpdHlDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBpZGVudGl0eTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWRlbnRpdHkgKz0gYGx2JHtpICsgMX0ke3RoaXMudHJlZVtpXS5sYWJlbH0tYDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlkZW50aXR5ICs9IGBsdiR7dGhpcy5sZXZlbH0ke3RoaXMuaXRlbS5sYWJlbH1gO1xyXG4gICAgICAgIGlmKGlkZW50aXR5LmluY2x1ZGVzKCcgJykpIGlkZW50aXR5ID0gaWRlbnRpdHkucmVwbGFjZUFsbCgnICcsICcnKTtcclxuICAgICAgICByZXR1cm4gaWRlbnRpdHkudG9Mb3dlckNhc2UoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgSXNBY3RpdmUgPSAoZWxlbWVudDogRWxlbWVudCk6IGJvb2xlYW4gPT4ge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5pc0V4cGFuZGVkICYmIHRoaXMubGV2ZWwgPiAxKVxyXG4gICAgICAgICAgICB8fCAodGhpcy5pc0NvbGxhcHNlZCAmJiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlLWxpbmsnKSlcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgSXNNZW51ID0gKGl0ZW06IElNZW51KTogYm9vbGVhbiA9PiBpdGVtLmhhc093blByb3BlcnR5KCdpdGVtcycpO1xyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBDbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICBpZih0aGlzLmlzRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmV4cGFuc2lvblBhbmVsLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHB1YmxpYyBPcGVuKCk6IHZvaWQge1xyXG4gICAgICAgIGlmKHRoaXMuaXNDb2xsYXBzZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmV4cGFuc2lvblBhbmVsLm9wZW4oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIFRvZ2dsZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkO1xyXG4gICAgICAgIHRoaXMuaXNDb2xsYXBzZWQgPSAhdGhpcy5pc0NvbGxhcHNlZDtcclxuXHJcbiAgICAgICAgdGhpcy5jbGlja01lbnUuZW1pdCh7XHJcbiAgICAgICAgICAgIGxldmVsOiB0aGlzLmxldmVsLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5pdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICBpc0V4cGFuZGVkOiB0aGlzLmlzRXhwYW5kZWQsXHJcbiAgICAgICAgICAgIGlzQ29sbGFwc2VkOiB0aGlzLmlzQ29sbGFwc2VkLFxyXG4gICAgICAgICAgICBpdGVtczogdGhpcy5pdGVtLml0ZW1zLFxyXG4gICAgICAgICAgICBpY29uOiB0aGlzLl9pY29uLFxyXG4gICAgICAgICAgICB0cmVlOiBbLi4udGhpcy5fdHJlZV1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgQ2xpY2tNZW51T3B0aW9uKG1lbnVPcHRpb246IElNZW51T3B0aW9uU2VsZWN0ZWQpOiB2b2lkIHtcclxuICAgICAgICBmb3IoY29uc3QgbWVudSBvZiB0aGlzLm1lbnVMaXN0LnRvQXJyYXkoKSkge1xyXG4gICAgICAgICAgICBpZihtZW51Lml0ZW0ubGFiZWwgIT0gbWVudU9wdGlvbi50cmVlW3RoaXMubGV2ZWxdLmxhYmVsKSB7XHJcbiAgICAgICAgICAgICAgICBtZW51LkNsb3NlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY2xpY2tNZW51T3B0aW9uLmVtaXQobWVudU9wdGlvbik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIENsaWNrTWVudShtZW51OiBJTWVudVNlbGVjdGVkKTogdm9pZCB7XHJcbiAgICAgICAgZm9yKGNvbnN0IG1lbnVMdjIgb2YgdGhpcy5tZW51TGlzdC50b0FycmF5KCkpIHtcclxuICAgICAgICAgICAgaWYgKG1lbnVMdjIuaXRlbS5sYWJlbCAhPSBtZW51LmxhYmVsKSBtZW51THYyLkNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNsaWNrTWVudS5lbWl0KG1lbnUpO1xyXG4gICAgfVxyXG59IiwiPG1hdC1hY2NvcmRpb24gY2xhc3M9XCJjb2VyLXRyZWUtYWNjb3JkaW9uXCI+XHJcbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCAjZXhwYW5zaW9uUGFuZWw+XHJcblxyXG4gICAgICAgIDwhLS0gSGVhZGVyIC0tPlxyXG4gICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciAoY2xpY2spPVwiVG9nZ2xlKClcIlxyXG4gICAgICAgICAgICBbY2xhc3NdPVwiaWRlbnRpdHlDbGFzc1wiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLW9yYW5nZSc6IChpc0V4cGFuZGVkICYmIGxldmVsID09IDEpLFxyXG4gICAgICAgICAgICAgICAgJ3RleHQtb3JhbmdlJzogSXNBY3RpdmUoaWNvbkNvbnRhaW5lcilcclxuICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gI2ljb25Db250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdtYXJnaW4tbGVmdCc6IG1hcmdpbkxlZnQgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImlkZW50aXR5Q2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb24tY29udGFpbmVyJzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQtb3JhbmdlJzogSXNBY3RpdmUoaWNvbkNvbnRhaW5lcilcclxuICAgICAgICAgICAgICAgICAgICB9XCI+IDxpIFtjbGFzc109XCJfaWNvblwiPjwvaT4gPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDxzcGFuICNsYWJlbENvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJpZGVudGl0eUNsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdsYWJlbC1jb250YWluZXInOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAndGV4dC1vcmFuZ2UnOiBJc0FjdGl2ZShsYWJlbENvbnRhaW5lcilcclxuICAgICAgICAgICAgICAgICAgICB9XCI+IHt7IGl0ZW0ubGFiZWwgfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICA8L21hdC1wYW5lbC1kZXNjcmlwdGlvbj5cclxuICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3ViSXRlbSBvZiBpdGVtLml0ZW1zXCI+XHJcbiAgICAgICAgICAgIDwhLS0gU3ViIE1lbnUgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJJc01lbnUoc3ViSXRlbSk7IGVsc2UgaXNPcHRpb25cIj5cclxuICAgICAgICAgICAgICAgIDxjb2VyLXRyZWUtYWNjb3JkaW9uXHJcbiAgICAgICAgICAgICAgICAgICAgW2xldmVsXT1cImxldmVsICsgMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwic3ViSXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RyZWVdPVwiX3RyZWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGlja01lbnVPcHRpb24pPVwiQ2xpY2tNZW51T3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGlja01lbnUpPVwiQ2xpY2tNZW51KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgPjwvY29lci10cmVlLWFjY29yZGlvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIE9wdGlvbiBNZW51IC0tPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2lzT3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGNvZXItbWVudS1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwic3ViSXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwic3ViSXRlbT8uaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BhdGhdPVwic3ViSXRlbT8ucGF0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xldmVsXT1cImxldmVsICsgMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RyZWVdPVwiX3RyZWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGlja01lbnVPcHRpb24pPVwiQ2xpY2tNZW51T3B0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgPjwvY29lci1tZW51LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuPC9tYXQtYWNjb3JkaW9uPiJdfQ==
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci10cmVlLWFjY29yZGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItc2lkZW5hdi9jb2VyLXRyZWUtYWNjb3JkaW9uL2NvZXItdHJlZS1hY2NvcmRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9jb21wb25lbnRzL2xpYi9jb2VyLXNpZGVuYXYvY29lci10cmVlLWFjY29yZGlvbi9jb2VyLXRyZWUtYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBTzVDLE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFVSSxXQUFXO1FBQ0osZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUVuQyxRQUFRO1FBQ0MsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUVsQixTQUFJLEdBQVksRUFBRSxDQUFDO1FBRTVCLFNBQVM7UUFDQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBQzFELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQThCeEQsTUFBTTtRQUNJLGFBQVEsR0FBRyxDQUFDLE9BQWdCLEVBQVcsRUFBRTtZQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQzttQkFDbkMsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENB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RyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUdJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElNZW51LCBJTWVudVNlbGVjdGVkLCBJTWVudU9wdGlvblNlbGVjdGVkIH0gZnJvbSAnY29lci1lbGVtZW50cy9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgTWF0RXhwYW5zaW9uUGFuZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQgeyBUb29scyB9IGZyb20gJ2NvZXItZWxlbWVudHMvdG9vbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb2VyLXRyZWUtYWNjb3JkaW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29lci10cmVlLWFjY29yZGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NvZXItdHJlZS1hY2NvcmRpb24uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2VyVHJlZUFjY29yZGlvbiB7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnZXhwYW5zaW9uUGFuZWwnKSBleHBhbnNpb25QYW5lbCE6IE1hdEV4cGFuc2lvblBhbmVsO1xyXG4gICAgQFZpZXdDaGlsZHJlbihDb2VyVHJlZUFjY29yZGlvbikgbWVudUxpc3QhOiBRdWVyeUxpc3Q8Q29lclRyZWVBY2NvcmRpb24+O1xyXG5cclxuICAgIC8vVmFyaWFibGVzXHJcbiAgICBwdWJsaWMgaXNFeHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGlzQ29sbGFwc2VkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvL0lucHV0c1xyXG4gICAgQElucHV0KCkgbGV2ZWw6IG51bWJlciA9IDE7XHJcbiAgICBASW5wdXQoKSBpdGVtITogSU1lbnU7XHJcbiAgICBASW5wdXQoKSB0cmVlOiBJTWVudVtdID0gW107XHJcblxyXG4gICAgLy9PdXRwdXRzXHJcbiAgICBAT3V0cHV0KCkgY2xpY2tNZW51T3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxJTWVudU9wdGlvblNlbGVjdGVkPigpO1xyXG4gICAgQE91dHB1dCgpIGNsaWNrTWVudSA9IG5ldyBFdmVudEVtaXR0ZXI8SU1lbnVTZWxlY3RlZD4oKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IF90cmVlKCk6IElNZW51W10ge1xyXG4gICAgICAgIHJldHVybiBbLi4udGhpcy50cmVlXS5jb25jYXQoW3suLi50aGlzLml0ZW19XSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldCBfaWNvbigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5pdGVtICYmIHRoaXMuaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaWNvbicpICYmIHRoaXMuaXRlbS5pY29uIS5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICA/IHRoaXMuaXRlbS5pY29uISA6ICdmYS1zb2xpZCBmYS1iYXJzJztcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJvdGVjdGVkIGdldCBtYXJnaW5MZWZ0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGAkeyh0aGlzLmxldmVsIC0gMSkgKiAyMH1weGA7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByb3RlY3RlZCBnZXQgaWRlbnRpdHlDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBpZGVudGl0eTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWRlbnRpdHkgKz0gYGx2JHtpICsgMX0ke3RoaXMudHJlZVtpXS5sYWJlbH0tYDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlkZW50aXR5ICs9IGBsdiR7dGhpcy5sZXZlbH0ke3RoaXMuaXRlbS5sYWJlbH1gO1xyXG4gICAgICAgIGlmKGlkZW50aXR5LmluY2x1ZGVzKCcgJykpIGlkZW50aXR5ID0gaWRlbnRpdHkucmVwbGFjZUFsbCgnICcsICcnKTtcclxuICAgICAgICByZXR1cm4gaWRlbnRpdHkudG9Mb3dlckNhc2UoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgSXNBY3RpdmUgPSAoZWxlbWVudDogRWxlbWVudCk6IGJvb2xlYW4gPT4ge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5pc0V4cGFuZGVkICYmIHRoaXMubGV2ZWwgPiAxKVxyXG4gICAgICAgICAgICB8fCAodGhpcy5pc0NvbGxhcHNlZCAmJiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlLWxpbmsnKSlcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgSXNNZW51ID0gKGl0ZW06IElNZW51KTogYm9vbGVhbiA9PiBpdGVtLmhhc093blByb3BlcnR5KCdpdGVtcycpICYmIFRvb2xzLklzTm90T25seVdoaXRlU3BhY2UoaXRlbS5pdGVtcyk7XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIENsb3NlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmKHRoaXMuaXNFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZXhwYW5zaW9uUGFuZWwuY2xvc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIE9wZW4oKTogdm9pZCB7XHJcbiAgICAgICAgaWYodGhpcy5pc0NvbGxhcHNlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuZXhwYW5zaW9uUGFuZWwub3BlbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgVG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNFeHBhbmRlZCA9ICF0aGlzLmlzRXhwYW5kZWQ7XHJcbiAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkO1xyXG5cclxuICAgICAgICB0aGlzLmNsaWNrTWVudS5lbWl0KHtcclxuICAgICAgICAgICAgbGV2ZWw6IHRoaXMubGV2ZWwsXHJcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLml0ZW0ubGFiZWwsXHJcbiAgICAgICAgICAgIGlzRXhwYW5kZWQ6IHRoaXMuaXNFeHBhbmRlZCxcclxuICAgICAgICAgICAgaXNDb2xsYXBzZWQ6IHRoaXMuaXNDb2xsYXBzZWQsXHJcbiAgICAgICAgICAgIGl0ZW1zOiB0aGlzLml0ZW0uaXRlbXMsXHJcbiAgICAgICAgICAgIGljb246IHRoaXMuX2ljb24sXHJcbiAgICAgICAgICAgIHRyZWU6IFsuLi50aGlzLl90cmVlXVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByb3RlY3RlZCBDbGlja01lbnVPcHRpb24obWVudU9wdGlvbjogSU1lbnVPcHRpb25TZWxlY3RlZCk6IHZvaWQge1xyXG4gICAgICAgIGZvcihjb25zdCBtZW51IG9mIHRoaXMubWVudUxpc3QudG9BcnJheSgpKSB7XHJcbiAgICAgICAgICAgIGlmKG1lbnUuaXRlbS5sYWJlbCAhPSBtZW51T3B0aW9uLnRyZWVbdGhpcy5sZXZlbF0ubGFiZWwpIHtcclxuICAgICAgICAgICAgICAgIG1lbnUuQ2xvc2UoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jbGlja01lbnVPcHRpb24uZW1pdChtZW51T3B0aW9uKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwcm90ZWN0ZWQgQ2xpY2tNZW51KG1lbnU6IElNZW51U2VsZWN0ZWQpOiB2b2lkIHtcclxuICAgICAgICBmb3IoY29uc3QgbWVudUx2MiBvZiB0aGlzLm1lbnVMaXN0LnRvQXJyYXkoKSkge1xyXG4gICAgICAgICAgICBpZiAobWVudUx2Mi5pdGVtLmxhYmVsICE9IG1lbnUubGFiZWwpIG1lbnVMdjIuQ2xvc2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY2xpY2tNZW51LmVtaXQobWVudSk7XHJcbiAgICB9XHJcbn0iLCI8bWF0LWFjY29yZGlvbiBjbGFzcz1cImNvZXItdHJlZS1hY2NvcmRpb25cIj5cclxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsICNleHBhbnNpb25QYW5lbD5cclxuXHJcbiAgICAgICAgPCEtLSBIZWFkZXIgLS0+XHJcbiAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIChjbGljayk9XCJUb2dnbGUoKVwiXHJcbiAgICAgICAgICAgIFtjbGFzc109XCJpZGVudGl0eUNsYXNzXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtb3JhbmdlJzogKGlzRXhwYW5kZWQgJiYgbGV2ZWwgPT0gMSksXHJcbiAgICAgICAgICAgICAgICAndGV4dC1vcmFuZ2UnOiBJc0FjdGl2ZShpY29uQ29udGFpbmVyKVxyXG4gICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAjaWNvbkNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ21hcmdpbi1sZWZ0JzogbWFyZ2luTGVmdCB9XCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiaWRlbnRpdHlDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnaWNvbi1jb250YWluZXInOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAndGV4dC1vcmFuZ2UnOiBJc0FjdGl2ZShpY29uQ29udGFpbmVyKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cIj4gPGkgW2NsYXNzXT1cIl9pY29uXCI+PC9pPiA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPHNwYW4gI2xhYmVsQ29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImlkZW50aXR5Q2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2xhYmVsLWNvbnRhaW5lcic6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0LW9yYW5nZSc6IElzQWN0aXZlKGxhYmVsQ29udGFpbmVyKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cIj4ge3sgaXRlbS5sYWJlbCB9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcblxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzdWJJdGVtIG9mIGl0ZW0uaXRlbXNcIj5cclxuICAgICAgICAgICAgPCEtLSBTdWIgTWVudSAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIklzTWVudShzdWJJdGVtKTsgZWxzZSBpc09wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPGNvZXItdHJlZS1hY2NvcmRpb25cclxuICAgICAgICAgICAgICAgICAgICBbbGV2ZWxdPVwibGV2ZWwgKyAxXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXRlbV09XCJzdWJJdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICBbdHJlZV09XCJfdHJlZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrTWVudU9wdGlvbik9XCJDbGlja01lbnVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrTWVudSk9XCJDbGlja01lbnUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICA+PC9jb2VyLXRyZWUtYWNjb3JkaW9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gT3B0aW9uIE1lbnUgLS0+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXNPcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8Y29lci1tZW51LW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzdWJJdGVtLmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJzdWJJdGVtPy5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGF0aF09XCJzdWJJdGVtPy5wYXRoXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGV2ZWxdPVwibGV2ZWwgKyAxXCJcclxuICAgICAgICAgICAgICAgICAgICBbdHJlZV09XCJfdHJlZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrTWVudU9wdGlvbik9XCJDbGlja01lbnVPcHRpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICA+PC9jb2VyLW1lbnUtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG48L21hdC1hY2NvcmRpb24+Il19