barsa-sap-ui 1.0.306 → 1.0.308

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.
@@ -87,11 +87,11 @@ export class BarsaCartableGroupComponent extends BaseViewItemPropsComponent {
87
87
  }
88
88
  }
89
89
  BarsaCartableGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaCartableGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
90
- BarsaCartableGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaCartableGroupComponent, selector: "bsu-barsa-cartable-group", outputs: { events: "events" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <li\n [interactive]=\"true\"\n fd-list-item\n [selected]=\"allItemChecked ? true : false\"\n (click)=\"onRowCheckAll()\"\n *ngIf=\"allItem\"\n>\n <div class=\"title-container\">\n <div style=\"background-color: transparent; width: 0.2rem; height: 100%\"></div>\n <span fd-list-title>\n <div style=\"height: 100%; display: flex; align-items: center\">\n <span [style.fontSize]=\"allItem.unreadCount > 0 ? 'bold' : null\">{{ '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate }}</span>\n <ng-container *ngIf=\"allItem.unreadCount > 0\">\n <strong style=\"padding: 0 2px; direction: ltr\">({{ allItem.unreadCount }})</strong>\n </ng-container>\n <span style=\"padding: 0 5px\" *ngIf=\"allItem.allCount > 0\">{{ allItem.allCount }}</span>\n </div>\n </span>\n </div>\n</li> -->\n\n<ng-container>\n <ng-container *ngIf=\"allItem\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate,\n unreadCount: allItem.unreadCount,\n allCount: allItem.allCount,\n backColor: 'transparent',\n isAll: true,\n isChecked: allItemChecked\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: parameters.CartableGroupField | rval: mo:allColumns:true,\n unreadCount: parameters.UnreadCountField | rval: mo:allColumns,\n allCount: parameters.AllCountField | rval: mo:allColumns,\n backColor: isBuiltin ? 'transparent' : (columns[0].Caption | rval: mo:columns),\n isChecked: isChecked,\n icon: parameters.IconField | rval: mo:allColumns:true,\n isBuiltin: isBuiltin\n }\n \"\n ></ng-container>\n</ng-container>\n<ng-container *ngIf=\"isLastBuiltin\">\n <li fd-list-item class=\"space\">\n <span fd-list-title></span>\n </li>\n</ng-container>\n<!-- <ng-container *ngIf=\"last\">\n <ul fd-list>\n <li fd-list-group-header>\n <span fd-list-title style=\"background:#f7f7f7\"></span>\n </li>\n <ng-container *ngFor=\"let mo2 of moDataList\">\n <ng-container *ngIf=\"'\u0633\u06CC\u0633\u062A\u0645\u06CC' | rval: mo2:allColumns\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: parameters.CartableGroupField | rval: mo2:allColumns:true,\n unreadCount: parameters.UnreadCountField | rval: mo2:allColumns,\n allCount: parameters.AllCountField | rval: mo2:allColumns,\n backColor: columns[0].Caption | rval: mo2:columns,\n isChecked: isChecked\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</ng-container> -->\n\n<!-- <li fd-list-item [selected]=\"isChecked ? true : false\" (click)=\"onRowCheck()\" [interactive]=\"true\">\n <div class=\"title-container\">\n <div [style.backgroundColor]=\"columns[0].Caption | rval: mo:columns\" style=\"width: 0.2rem; height: 100%\"></div>\n <span fd-list-title>\n <div style=\"height: 100%; display: flex; align-items: center\">\n <span [style.fontSize]=\"parameters.UnreadCountField | rval: mo:allColumns:(true ? 'bold' : null)\"\n >{{ parameters.CartableGroupField | rval: mo:allColumns:true }}\n </span>\n <ng-container *ngIf=\"parameters.UnreadCountField | rval: mo:allColumns:true\">\n <strong style=\"padding: 0 2px; direction: ltr\"\n >({{ parameters.UnreadCountField | rval: mo:allColumns:true }})</strong\n >\n </ng-container>\n <span style=\"padding: 0 5px\">{{ parameters.AllCountField | rval: mo:allColumns:true }}</span>\n </div>\n </span>\n </div>\n</li> -->\n<ng-template\n #itemTemplate\n let-caption\n let-unreadCount=\"unreadCount\"\n let-allCount=\"allCount\"\n let-backColor=\"backColor\"\n let-isAll=\"isAll\"\n let-isChecked=\"isChecked\"\n let-icon=\"icon\"\n let-isBuiltin=\"isBuiltin\"\n>\n <li\n *ngIf=\"isBuiltin || allCount > 0 || isAll\"\n fd-list-item\n [selected]=\"isChecked ? true : false\"\n (click)=\"onClick(isAll)\"\n [interactive]=\"true\"\n >\n <div class=\"title-container\">\n <div [style.backgroundColor]=\"backColor\" style=\"width: 0.2rem; height: 100%\"></div>\n <i *ngIf=\"icon\" fd-list-icon [glyph]=\"icon\"></i>\n <span fd-list-title>\n <div style=\"height: 100%; display: flex; align-items: center; column-gap: 5px\">\n <ng-container *ngIf=\"unreadCount && unreadCount > 0; else spanTemplate\">\n <strong>{{ caption }}</strong>\n <strong style=\"padding: 0 2px; direction: ltr\">({{ unreadCount }})</strong>\n </ng-container>\n <ng-template #spanTemplate>\n <span>{{ caption }}</span>\n </ng-template>\n <span style=\"padding: 0 5px\" *ngIf=\"allCount && allCount > 0\">{{ allCount }}</span>\n </div>\n </span>\n </div>\n </li>\n</ng-template>\n", styles: [":host{display:contents;width:100%;height:100%;cursor:pointer}.title-container{align-items:center;display:flex;column-gap:10px;height:100%;width:100%}li{padding:0}.space{cursor:default;pointer-events:none}.space:focus:before{border:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i2.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i2.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "pipe", type: i3.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
90
+ BarsaCartableGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaCartableGroupComponent, selector: "bsu-barsa-cartable-group", outputs: { events: "events" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <li\n [interactive]=\"true\"\n fd-list-item\n [selected]=\"allItemChecked ? true : false\"\n (click)=\"onRowCheckAll()\"\n *ngIf=\"allItem\"\n>\n <div class=\"title-container\">\n <div style=\"background-color: transparent; width: 0.2rem; height: 100%\"></div>\n <span fd-list-title>\n <div style=\"height: 100%; display: flex; align-items: center\">\n <span [style.fontSize]=\"allItem.unreadCount > 0 ? 'bold' : null\">{{ '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate }}</span>\n <ng-container *ngIf=\"allItem.unreadCount > 0\">\n <strong style=\"padding: 0 2px; direction: ltr\">({{ allItem.unreadCount }})</strong>\n </ng-container>\n <span style=\"padding: 0 5px\" *ngIf=\"allItem.allCount > 0\">{{ allItem.allCount }}</span>\n </div>\n </span>\n </div>\n</li> -->\n\n<ng-container>\n <ng-container *ngIf=\"allItem\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate,\n unreadCount: allItem.unreadCount,\n allCount: allItem.allCount,\n backColor: 'transparent',\n isAll: true,\n isChecked: allItemChecked\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: parameters.CartableGroupField | rval: mo:allColumns:true,\n unreadCount: parameters.UnreadCountField | rval: mo:allColumns,\n allCount: parameters.AllCountField | rval: mo:allColumns,\n backColor: (columns[0].Caption | rval: mo:columns),\n isChecked: isChecked,\n icon: parameters.IconField | rval: mo:allColumns:true,\n isBuiltin: isBuiltin\n }\n \"\n ></ng-container>\n</ng-container>\n<ng-container *ngIf=\"isLastBuiltin\">\n <li fd-list-item class=\"space\">\n <span fd-list-title></span>\n </li>\n</ng-container>\n<!-- <ng-container *ngIf=\"last\">\n <ul fd-list>\n <li fd-list-group-header>\n <span fd-list-title style=\"background:#f7f7f7\"></span>\n </li>\n <ng-container *ngFor=\"let mo2 of moDataList\">\n <ng-container *ngIf=\"'\u0633\u06CC\u0633\u062A\u0645\u06CC' | rval: mo2:allColumns\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: parameters.CartableGroupField | rval: mo2:allColumns:true,\n unreadCount: parameters.UnreadCountField | rval: mo2:allColumns,\n allCount: parameters.AllCountField | rval: mo2:allColumns,\n backColor: columns[0].Caption | rval: mo2:columns,\n isChecked: isChecked\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</ng-container> -->\n\n<!-- <li fd-list-item [selected]=\"isChecked ? true : false\" (click)=\"onRowCheck()\" [interactive]=\"true\">\n <div class=\"title-container\">\n <div [style.backgroundColor]=\"columns[0].Caption | rval: mo:columns\" style=\"width: 0.2rem; height: 100%\"></div>\n <span fd-list-title>\n <div style=\"height: 100%; display: flex; align-items: center\">\n <span [style.fontSize]=\"parameters.UnreadCountField | rval: mo:allColumns:(true ? 'bold' : null)\"\n >{{ parameters.CartableGroupField | rval: mo:allColumns:true }}\n </span>\n <ng-container *ngIf=\"parameters.UnreadCountField | rval: mo:allColumns:true\">\n <strong style=\"padding: 0 2px; direction: ltr\"\n >({{ parameters.UnreadCountField | rval: mo:allColumns:true }})</strong\n >\n </ng-container>\n <span style=\"padding: 0 5px\">{{ parameters.AllCountField | rval: mo:allColumns:true }}</span>\n </div>\n </span>\n </div>\n</li> -->\n<ng-template\n #itemTemplate\n let-caption\n let-unreadCount=\"unreadCount\"\n let-allCount=\"allCount\"\n let-backColor=\"backColor\"\n let-isAll=\"isAll\"\n let-isChecked=\"isChecked\"\n let-icon=\"icon\"\n let-isBuiltin=\"isBuiltin\"\n>\n <li\n *ngIf=\"isBuiltin || allCount > 0 || isAll\"\n fd-list-item\n [selected]=\"isChecked ? true : false\"\n (click)=\"onClick(isAll)\"\n [interactive]=\"true\"\n >\n <div class=\"title-container\">\n <div [style.backgroundColor]=\"backColor\" style=\"width: 0.2rem; height: 100%\"></div>\n <i *ngIf=\"icon\" fd-list-icon [glyph]=\"icon\"></i>\n <span fd-list-title>\n <div style=\"height: 100%; display: flex; align-items: center; column-gap: 5px\">\n <ng-container *ngIf=\"unreadCount && unreadCount > 0; else spanTemplate\">\n <strong>{{ caption }}</strong>\n <strong style=\"padding: 0 2px; direction: ltr\">({{ unreadCount }})</strong>\n </ng-container>\n <ng-template #spanTemplate>\n <span>{{ caption }}</span>\n </ng-template>\n <span style=\"padding: 0 5px\" *ngIf=\"allCount && allCount > 0\">{{ allCount }}</span>\n </div>\n </span>\n </div>\n </li>\n</ng-template>\n", styles: [":host{display:contents;width:100%;height:100%;cursor:pointer}.title-container{align-items:center;display:flex;column-gap:10px;height:100%;width:100%}li{padding:0}.space{cursor:default;pointer-events:none}.space:focus:before{border:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i2.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i2.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "pipe", type: i3.MoReportValuePipe, name: "rval" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaCartableGroupComponent, decorators: [{
92
92
  type: Component,
93
- args: [{ selector: 'bsu-barsa-cartable-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <li\n [interactive]=\"true\"\n fd-list-item\n [selected]=\"allItemChecked ? true : false\"\n (click)=\"onRowCheckAll()\"\n *ngIf=\"allItem\"\n>\n <div class=\"title-container\">\n <div style=\"background-color: transparent; width: 0.2rem; height: 100%\"></div>\n <span fd-list-title>\n <div style=\"height: 100%; display: flex; align-items: center\">\n <span [style.fontSize]=\"allItem.unreadCount > 0 ? 'bold' : null\">{{ '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate }}</span>\n <ng-container *ngIf=\"allItem.unreadCount > 0\">\n <strong style=\"padding: 0 2px; direction: ltr\">({{ allItem.unreadCount }})</strong>\n </ng-container>\n <span style=\"padding: 0 5px\" *ngIf=\"allItem.allCount > 0\">{{ allItem.allCount }}</span>\n </div>\n </span>\n </div>\n</li> -->\n\n<ng-container>\n <ng-container *ngIf=\"allItem\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate,\n unreadCount: allItem.unreadCount,\n allCount: allItem.allCount,\n backColor: 'transparent',\n isAll: true,\n isChecked: allItemChecked\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: parameters.CartableGroupField | rval: mo:allColumns:true,\n unreadCount: parameters.UnreadCountField | rval: mo:allColumns,\n allCount: parameters.AllCountField | rval: mo:allColumns,\n backColor: isBuiltin ? 'transparent' : (columns[0].Caption | rval: mo:columns),\n isChecked: isChecked,\n icon: parameters.IconField | rval: mo:allColumns:true,\n isBuiltin: isBuiltin\n }\n \"\n ></ng-container>\n</ng-container>\n<ng-container *ngIf=\"isLastBuiltin\">\n <li fd-list-item class=\"space\">\n <span fd-list-title></span>\n </li>\n</ng-container>\n<!-- <ng-container *ngIf=\"last\">\n <ul fd-list>\n <li fd-list-group-header>\n <span fd-list-title style=\"background:#f7f7f7\"></span>\n </li>\n <ng-container *ngFor=\"let mo2 of moDataList\">\n <ng-container *ngIf=\"'\u0633\u06CC\u0633\u062A\u0645\u06CC' | rval: mo2:allColumns\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: parameters.CartableGroupField | rval: mo2:allColumns:true,\n unreadCount: parameters.UnreadCountField | rval: mo2:allColumns,\n allCount: parameters.AllCountField | rval: mo2:allColumns,\n backColor: columns[0].Caption | rval: mo2:columns,\n isChecked: isChecked\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</ng-container> -->\n\n<!-- <li fd-list-item [selected]=\"isChecked ? true : false\" (click)=\"onRowCheck()\" [interactive]=\"true\">\n <div class=\"title-container\">\n <div [style.backgroundColor]=\"columns[0].Caption | rval: mo:columns\" style=\"width: 0.2rem; height: 100%\"></div>\n <span fd-list-title>\n <div style=\"height: 100%; display: flex; align-items: center\">\n <span [style.fontSize]=\"parameters.UnreadCountField | rval: mo:allColumns:(true ? 'bold' : null)\"\n >{{ parameters.CartableGroupField | rval: mo:allColumns:true }}\n </span>\n <ng-container *ngIf=\"parameters.UnreadCountField | rval: mo:allColumns:true\">\n <strong style=\"padding: 0 2px; direction: ltr\"\n >({{ parameters.UnreadCountField | rval: mo:allColumns:true }})</strong\n >\n </ng-container>\n <span style=\"padding: 0 5px\">{{ parameters.AllCountField | rval: mo:allColumns:true }}</span>\n </div>\n </span>\n </div>\n</li> -->\n<ng-template\n #itemTemplate\n let-caption\n let-unreadCount=\"unreadCount\"\n let-allCount=\"allCount\"\n let-backColor=\"backColor\"\n let-isAll=\"isAll\"\n let-isChecked=\"isChecked\"\n let-icon=\"icon\"\n let-isBuiltin=\"isBuiltin\"\n>\n <li\n *ngIf=\"isBuiltin || allCount > 0 || isAll\"\n fd-list-item\n [selected]=\"isChecked ? true : false\"\n (click)=\"onClick(isAll)\"\n [interactive]=\"true\"\n >\n <div class=\"title-container\">\n <div [style.backgroundColor]=\"backColor\" style=\"width: 0.2rem; height: 100%\"></div>\n <i *ngIf=\"icon\" fd-list-icon [glyph]=\"icon\"></i>\n <span fd-list-title>\n <div style=\"height: 100%; display: flex; align-items: center; column-gap: 5px\">\n <ng-container *ngIf=\"unreadCount && unreadCount > 0; else spanTemplate\">\n <strong>{{ caption }}</strong>\n <strong style=\"padding: 0 2px; direction: ltr\">({{ unreadCount }})</strong>\n </ng-container>\n <ng-template #spanTemplate>\n <span>{{ caption }}</span>\n </ng-template>\n <span style=\"padding: 0 5px\" *ngIf=\"allCount && allCount > 0\">{{ allCount }}</span>\n </div>\n </span>\n </div>\n </li>\n</ng-template>\n", styles: [":host{display:contents;width:100%;height:100%;cursor:pointer}.title-container{align-items:center;display:flex;column-gap:10px;height:100%;width:100%}li{padding:0}.space{cursor:default;pointer-events:none}.space:focus:before{border:none}\n"] }]
93
+ args: [{ selector: 'bsu-barsa-cartable-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <li\n [interactive]=\"true\"\n fd-list-item\n [selected]=\"allItemChecked ? true : false\"\n (click)=\"onRowCheckAll()\"\n *ngIf=\"allItem\"\n>\n <div class=\"title-container\">\n <div style=\"background-color: transparent; width: 0.2rem; height: 100%\"></div>\n <span fd-list-title>\n <div style=\"height: 100%; display: flex; align-items: center\">\n <span [style.fontSize]=\"allItem.unreadCount > 0 ? 'bold' : null\">{{ '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate }}</span>\n <ng-container *ngIf=\"allItem.unreadCount > 0\">\n <strong style=\"padding: 0 2px; direction: ltr\">({{ allItem.unreadCount }})</strong>\n </ng-container>\n <span style=\"padding: 0 5px\" *ngIf=\"allItem.allCount > 0\">{{ allItem.allCount }}</span>\n </div>\n </span>\n </div>\n</li> -->\n\n<ng-container>\n <ng-container *ngIf=\"allItem\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: '\u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062F' | bbbTranslate,\n unreadCount: allItem.unreadCount,\n allCount: allItem.allCount,\n backColor: 'transparent',\n isAll: true,\n isChecked: allItemChecked\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: parameters.CartableGroupField | rval: mo:allColumns:true,\n unreadCount: parameters.UnreadCountField | rval: mo:allColumns,\n allCount: parameters.AllCountField | rval: mo:allColumns,\n backColor: (columns[0].Caption | rval: mo:columns),\n isChecked: isChecked,\n icon: parameters.IconField | rval: mo:allColumns:true,\n isBuiltin: isBuiltin\n }\n \"\n ></ng-container>\n</ng-container>\n<ng-container *ngIf=\"isLastBuiltin\">\n <li fd-list-item class=\"space\">\n <span fd-list-title></span>\n </li>\n</ng-container>\n<!-- <ng-container *ngIf=\"last\">\n <ul fd-list>\n <li fd-list-group-header>\n <span fd-list-title style=\"background:#f7f7f7\"></span>\n </li>\n <ng-container *ngFor=\"let mo2 of moDataList\">\n <ng-container *ngIf=\"'\u0633\u06CC\u0633\u062A\u0645\u06CC' | rval: mo2:allColumns\">\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate;\n context: {\n $implicit: parameters.CartableGroupField | rval: mo2:allColumns:true,\n unreadCount: parameters.UnreadCountField | rval: mo2:allColumns,\n allCount: parameters.AllCountField | rval: mo2:allColumns,\n backColor: columns[0].Caption | rval: mo2:columns,\n isChecked: isChecked\n }\n \"\n ></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</ng-container> -->\n\n<!-- <li fd-list-item [selected]=\"isChecked ? true : false\" (click)=\"onRowCheck()\" [interactive]=\"true\">\n <div class=\"title-container\">\n <div [style.backgroundColor]=\"columns[0].Caption | rval: mo:columns\" style=\"width: 0.2rem; height: 100%\"></div>\n <span fd-list-title>\n <div style=\"height: 100%; display: flex; align-items: center\">\n <span [style.fontSize]=\"parameters.UnreadCountField | rval: mo:allColumns:(true ? 'bold' : null)\"\n >{{ parameters.CartableGroupField | rval: mo:allColumns:true }}\n </span>\n <ng-container *ngIf=\"parameters.UnreadCountField | rval: mo:allColumns:true\">\n <strong style=\"padding: 0 2px; direction: ltr\"\n >({{ parameters.UnreadCountField | rval: mo:allColumns:true }})</strong\n >\n </ng-container>\n <span style=\"padding: 0 5px\">{{ parameters.AllCountField | rval: mo:allColumns:true }}</span>\n </div>\n </span>\n </div>\n</li> -->\n<ng-template\n #itemTemplate\n let-caption\n let-unreadCount=\"unreadCount\"\n let-allCount=\"allCount\"\n let-backColor=\"backColor\"\n let-isAll=\"isAll\"\n let-isChecked=\"isChecked\"\n let-icon=\"icon\"\n let-isBuiltin=\"isBuiltin\"\n>\n <li\n *ngIf=\"isBuiltin || allCount > 0 || isAll\"\n fd-list-item\n [selected]=\"isChecked ? true : false\"\n (click)=\"onClick(isAll)\"\n [interactive]=\"true\"\n >\n <div class=\"title-container\">\n <div [style.backgroundColor]=\"backColor\" style=\"width: 0.2rem; height: 100%\"></div>\n <i *ngIf=\"icon\" fd-list-icon [glyph]=\"icon\"></i>\n <span fd-list-title>\n <div style=\"height: 100%; display: flex; align-items: center; column-gap: 5px\">\n <ng-container *ngIf=\"unreadCount && unreadCount > 0; else spanTemplate\">\n <strong>{{ caption }}</strong>\n <strong style=\"padding: 0 2px; direction: ltr\">({{ unreadCount }})</strong>\n </ng-container>\n <ng-template #spanTemplate>\n <span>{{ caption }}</span>\n </ng-template>\n <span style=\"padding: 0 5px\" *ngIf=\"allCount && allCount > 0\">{{ allCount }}</span>\n </div>\n </span>\n </div>\n </li>\n</ng-template>\n", styles: [":host{display:contents;width:100%;height:100%;cursor:pointer}.title-container{align-items:center;display:flex;column-gap:10px;height:100%;width:100%}li{padding:0}.space{cursor:default;pointer-events:none}.space:focus:before{border:none}\n"] }]
94
94
  }], propDecorators: { events: [{
95
95
  type: Output
96
96
  }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2FydGFibGUtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtZ3JvdXAtY2FydGFibGUvYmFyc2EtY2FydGFibGUtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtZ3JvdXAtY2FydGFibGUvYmFyc2EtY2FydGFibGUtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMEJBQTBCLEVBQXVCLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBUXZGLE1BQU0sT0FBTywyQkFBNEIsU0FBUSwwQkFBMEI7SUFOM0U7O1FBT2MsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFnQyxDQUFDO1FBT3BFLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0tBcUZ6QjtJQW5GRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbEM7UUFDRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMxQixNQUFNLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLElBQUksR0FBRyxLQUFLLFlBQVksRUFBRTtvQkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3pDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztpQkFDeEI7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxhQUFhLEVBQUU7WUFDZixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBQ0QsYUFBYTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELFlBQVk7UUFDUixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFDRCxPQUFPLENBQUMsS0FBYztRQUNsQixJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN2QjthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUNELFNBQVM7UUFDTCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDTyxhQUFhO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckYsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzNELElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUNqRCxRQUFRLEVBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUMvQixJQUFJLENBQUMsVUFBVSxDQUNsQixDQUFDO1NBQ0w7SUFDTCxDQUFDO0lBQ08sUUFBUSxDQUFDLFVBQWlDO1FBQzlDLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDbEIsT0FBTztTQUNWO1FBQ0QsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRTtnQkFDZCxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQ3BCO1lBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hHLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztZQUNyRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUNoQyxDQUFDLEVBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FDbEIsQ0FBQztZQUNGLFdBQVcsSUFBSSxLQUFLLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUM3QyxDQUFDOzt3SEE1RlEsMkJBQTJCOzRHQUEzQiwyQkFBMkIsMklDVHhDLGd6TEF3SUE7MkZEL0hhLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDSSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU07OEJBR3JDLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50LCBNZXRhb2JqZWN0RGF0YU1vZGVsIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS1jYXJ0YWJsZS1ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWNhcnRhYmxlLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1jYXJ0YWJsZS1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhQ2FydGFibGVHcm91cENvbXBvbmVudCBleHRlbmRzIEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAT3V0cHV0KCkgZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRpdGxlOiBzdHJpbmc7IGRhdGE6IGFueSB9PigpO1xuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgYWxsSXRlbTogeyB1bnJlYWRDb3VudDogbnVtYmVyOyBhbGxDb3VudDogbnVtYmVyIH07XG4gICAgYWxsSXRlbUNoZWNrZWQ6IGJvb2xlYW47XG4gICAgYnVpbHRpbkdyb3VwczogTWV0YW9iamVjdERhdGFNb2RlbFtdO1xuICAgIGlzTGFzdEJ1aWx0aW4gPSBmYWxzZTtcbiAgICBpc0J1aWx0aW46IGFueTtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGNBbGwodGhpcy5tb0RhdGFMaXN0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jaGVja1N5c3RlbWkoKTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgbGV0IGRldGVjdENoYW5nZXMgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qga2V5cyA9IFsnbW8nLCAnbW9EYXRhTGlzdCcsICdpc0NoZWNrZWQnXTtcblxuICAgICAgICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXNba2V5XSAmJiAhY2hhbmdlc1trZXldLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgdGhpc1trZXldID0gY2hhbmdlc1trZXldLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICBkZXRlY3RDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAnbW9EYXRhTGlzdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FsY0FsbChjaGFuZ2VzW2tleV0uY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tTeXN0ZW1pKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRldGVjdENoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIF9yb3dDaGVja0FsbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWxsSXRlbUNoZWNrZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFsbEl0ZW1DaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5ldmVudHMuZW1pdCh7IHRpdGxlOiAnZGVzZWxlY3RBbGwnLCBkYXRhOiBudWxsIH0pO1xuICAgICAgICB0aGlzLmV2ZW50cy5lbWl0KHsgdGl0bGU6ICdyb3dDaGVjaycsIGRhdGE6IHsgbW86IHsgSWQ6ICcwMScgfSwgaW5kZXg6IC0xIH0gfSk7XG4gICAgfVxuICAgIG9uQ2xpY2soaXNBbGw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzQWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9yb3dDaGVja0FsbCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcm93Q2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfcm93Q2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQ2hlY2tlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoeyB0aXRsZTogJ3Jvd0NoZWNrJywgZGF0YTogeyBtbzogdGhpcy5tbywgaW5kZXg6IHRoaXMuaW5kZXggfSB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hlY2tTeXN0ZW1pKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzQnVpbHRpbiA9IHRoaXMuX3JlcG9ydFZhbHVlUGlwZS50cmFuc2Zvcm0oJ9iz24zYs9iq2YXbjCcsIHRoaXMubW8sIHRoaXMuYWxsQ29sdW1ucyk7XG4gICAgICAgIGlmICh0aGlzLmluZGV4ICsgMSA8IHRoaXMubW9EYXRhTGlzdC5sZW5ndGggJiYgdGhpcy5pc0J1aWx0aW4pIHtcbiAgICAgICAgICAgIHRoaXMuaXNMYXN0QnVpbHRpbiA9ICF0aGlzLl9yZXBvcnRWYWx1ZVBpcGUudHJhbnNmb3JtKFxuICAgICAgICAgICAgICAgICfYs9uM2LPYqtmF24wnLFxuICAgICAgICAgICAgICAgIHRoaXMubW9EYXRhTGlzdFt0aGlzLmluZGV4ICsgMV0sXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxDb2x1bW5zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX2NhbGNBbGwobW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluZGV4ICE9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGFsbENvdW50ID0gMDtcbiAgICAgICAgbGV0IHVucmVhZENvdW50ID0gMDtcbiAgICAgICAgbGV0IGlzQ2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICBtb0RhdGFMaXN0LmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgICAgIGlmIChjLiRJc0NoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICBpc0NoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYWxsQ291bnRUZW1wID0gdGhpcy5fcmVwb3J0VmFsdWVQaXBlLnRyYW5zZm9ybSh0aGlzLnBhcmFtZXRlcnMuQWxsQ291bnRGaWVsZCwgYywgdGhpcy5hbGxDb2x1bW5zKTtcbiAgICAgICAgICAgIGFsbENvdW50ICs9IGlzTmFOKCthbGxDb3VudFRlbXApID8gMCA6ICthbGxDb3VudFRlbXA7XG4gICAgICAgICAgICBjb25zdCB1bnJlYWRDb3VudFRlbXAgPSB0aGlzLl9yZXBvcnRWYWx1ZVBpcGUudHJhbnNmb3JtKFxuICAgICAgICAgICAgICAgIHRoaXMucGFyYW1ldGVycy5VbnJlYWRDb3VudEZpZWxkLFxuICAgICAgICAgICAgICAgIGMsXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxDb2x1bW5zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdW5yZWFkQ291bnQgKz0gaXNOYU4oK3VucmVhZENvdW50VGVtcCkgPyAwIDogK3VucmVhZENvdW50VGVtcDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWxsSXRlbUNoZWNrZWQgPSAhaXNDaGVja2VkO1xuICAgICAgICB0aGlzLmFsbEl0ZW0gPSB7IGFsbENvdW50LCB1bnJlYWRDb3VudCB9O1xuICAgIH1cbn1cbiIsIjwhLS0gPGxpXG4gICAgW2ludGVyYWN0aXZlXT1cInRydWVcIlxuICAgIGZkLWxpc3QtaXRlbVxuICAgIFtzZWxlY3RlZF09XCJhbGxJdGVtQ2hlY2tlZCA/IHRydWUgOiBmYWxzZVwiXG4gICAgKGNsaWNrKT1cIm9uUm93Q2hlY2tBbGwoKVwiXG4gICAgKm5nSWY9XCJhbGxJdGVtXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwidGl0bGUtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgd2lkdGg6IDAuMnJlbTsgaGVpZ2h0OiAxMDAlXCI+PC9kaXY+XG4gICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmZvbnRTaXplXT1cImFsbEl0ZW0udW5yZWFkQ291bnQgPiAwID8gJ2JvbGQnIDogbnVsbFwiPnt7ICfZh9mF2Ycg2YXZiNin2LHYrycgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFsbEl0ZW0udW5yZWFkQ291bnQgPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgc3R5bGU9XCJwYWRkaW5nOiAwIDJweDsgZGlyZWN0aW9uOiBsdHJcIj4oe3sgYWxsSXRlbS51bnJlYWRDb3VudCB9fSk8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cInBhZGRpbmc6IDAgNXB4XCIgKm5nSWY9XCJhbGxJdGVtLmFsbENvdW50ID4gMFwiPnt7IGFsbEl0ZW0uYWxsQ291bnQgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuPC9saT4gLS0+XG5cbjxuZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFsbEl0ZW1cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBpdGVtVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6ICfZh9mF2Ycg2YXZiNin2LHYrycgfCBiYmJUcmFuc2xhdGUsXG4gICAgICAgICAgICAgICAgICAgIHVucmVhZENvdW50OiBhbGxJdGVtLnVucmVhZENvdW50LFxuICAgICAgICAgICAgICAgICAgICBhbGxDb3VudDogYWxsSXRlbS5hbGxDb3VudCxcbiAgICAgICAgICAgICAgICAgICAgYmFja0NvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICBpc0FsbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgaXNDaGVja2VkOiBhbGxJdGVtQ2hlY2tlZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHBhcmFtZXRlcnMuQ2FydGFibGVHcm91cEZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlLFxuICAgICAgICAgICAgICAgIHVucmVhZENvdW50OiBwYXJhbWV0ZXJzLlVucmVhZENvdW50RmllbGQgfCBydmFsOiBtbzphbGxDb2x1bW5zLFxuICAgICAgICAgICAgICAgIGFsbENvdW50OiBwYXJhbWV0ZXJzLkFsbENvdW50RmllbGQgfCBydmFsOiBtbzphbGxDb2x1bW5zLFxuICAgICAgICAgICAgICAgIGJhY2tDb2xvcjogaXNCdWlsdGluID8gJ3RyYW5zcGFyZW50JyA6IChjb2x1bW5zWzBdLkNhcHRpb24gfCBydmFsOiBtbzpjb2x1bW5zKSxcbiAgICAgICAgICAgICAgICBpc0NoZWNrZWQ6IGlzQ2hlY2tlZCxcbiAgICAgICAgICAgICAgICBpY29uOiBwYXJhbWV0ZXJzLkljb25GaWVsZCB8IHJ2YWw6IG1vOmFsbENvbHVtbnM6dHJ1ZSxcbiAgICAgICAgICAgICAgICBpc0J1aWx0aW46IGlzQnVpbHRpblxuICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTGFzdEJ1aWx0aW5cIj5cbiAgICA8bGkgZmQtbGlzdC1pdGVtIGNsYXNzPVwic3BhY2VcIj5cbiAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT48L3NwYW4+XG4gICAgPC9saT5cbjwvbmctY29udGFpbmVyPlxuPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwibGFzdFwiPlxuICAgIDx1bCBmZC1saXN0PlxuICAgICAgICA8bGkgZmQtbGlzdC1ncm91cC1oZWFkZXI+XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlIHN0eWxlPVwiYmFja2dyb3VuZDojZjdmN2Y3XCI+PC9zcGFuPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtbzIgb2YgbW9EYXRhTGlzdFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIifYs9uM2LPYqtmF24wnIHwgcnZhbDogbW8yOmFsbENvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBwYXJhbWV0ZXJzLkNhcnRhYmxlR3JvdXBGaWVsZCB8IHJ2YWw6IG1vMjphbGxDb2x1bW5zOnRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5yZWFkQ291bnQ6IHBhcmFtZXRlcnMuVW5yZWFkQ291bnRGaWVsZCB8IHJ2YWw6IG1vMjphbGxDb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbENvdW50OiBwYXJhbWV0ZXJzLkFsbENvdW50RmllbGQgfCBydmFsOiBtbzI6YWxsQ29sdW1ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrQ29sb3I6IGNvbHVtbnNbMF0uQ2FwdGlvbiB8IHJ2YWw6IG1vMjpjb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hlY2tlZDogaXNDaGVja2VkXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdWw+XG48L25nLWNvbnRhaW5lcj4gLS0+XG5cbjwhLS0gPGxpIGZkLWxpc3QtaXRlbSBbc2VsZWN0ZWRdPVwiaXNDaGVja2VkID8gdHJ1ZSA6IGZhbHNlXCIgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiIFtpbnRlcmFjdGl2ZV09XCJ0cnVlXCI+XG4gICAgPGRpdiBjbGFzcz1cInRpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiY29sdW1uc1swXS5DYXB0aW9uIHwgcnZhbDogbW86Y29sdW1uc1wiIHN0eWxlPVwid2lkdGg6IDAuMnJlbTsgaGVpZ2h0OiAxMDAlXCI+PC9kaXY+XG4gICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmZvbnRTaXplXT1cInBhcmFtZXRlcnMuVW5yZWFkQ291bnRGaWVsZCB8IHJ2YWw6IG1vOmFsbENvbHVtbnM6KHRydWUgPyAnYm9sZCcgOiBudWxsKVwiXG4gICAgICAgICAgICAgICAgICAgID57eyBwYXJhbWV0ZXJzLkNhcnRhYmxlR3JvdXBGaWVsZCB8IHJ2YWw6IG1vOmFsbENvbHVtbnM6dHJ1ZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFyYW1ldGVycy5VbnJlYWRDb3VudEZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgc3R5bGU9XCJwYWRkaW5nOiAwIDJweDsgZGlyZWN0aW9uOiBsdHJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPih7eyBwYXJhbWV0ZXJzLlVucmVhZENvdW50RmllbGQgfCBydmFsOiBtbzphbGxDb2x1bW5zOnRydWUgfX0pPC9zdHJvbmdcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwicGFkZGluZzogMCA1cHhcIj57eyBwYXJhbWV0ZXJzLkFsbENvdW50RmllbGQgfCBydmFsOiBtbzphbGxDb2x1bW5zOnRydWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuPC9saT4gLS0+XG48bmctdGVtcGxhdGVcbiAgICAjaXRlbVRlbXBsYXRlXG4gICAgbGV0LWNhcHRpb25cbiAgICBsZXQtdW5yZWFkQ291bnQ9XCJ1bnJlYWRDb3VudFwiXG4gICAgbGV0LWFsbENvdW50PVwiYWxsQ291bnRcIlxuICAgIGxldC1iYWNrQ29sb3I9XCJiYWNrQ29sb3JcIlxuICAgIGxldC1pc0FsbD1cImlzQWxsXCJcbiAgICBsZXQtaXNDaGVja2VkPVwiaXNDaGVja2VkXCJcbiAgICBsZXQtaWNvbj1cImljb25cIlxuICAgIGxldC1pc0J1aWx0aW49XCJpc0J1aWx0aW5cIlxuPlxuICAgIDxsaVxuICAgICAgICAqbmdJZj1cImlzQnVpbHRpbiB8fCBhbGxDb3VudCA+IDAgfHwgaXNBbGxcIlxuICAgICAgICBmZC1saXN0LWl0ZW1cbiAgICAgICAgW3NlbGVjdGVkXT1cImlzQ2hlY2tlZCA/IHRydWUgOiBmYWxzZVwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKGlzQWxsKVwiXG4gICAgICAgIFtpbnRlcmFjdGl2ZV09XCJ0cnVlXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJiYWNrQ29sb3JcIiBzdHlsZT1cIndpZHRoOiAwLjJyZW07IGhlaWdodDogMTAwJVwiPjwvZGl2PlxuICAgICAgICAgICAgPGkgKm5nSWY9XCJpY29uXCIgZmQtbGlzdC1pY29uIFtnbHlwaF09XCJpY29uXCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBjb2x1bW4tZ2FwOiA1cHhcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVucmVhZENvdW50ICYmIHVucmVhZENvdW50ID4gMDsgZWxzZSBzcGFuVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgY2FwdGlvbiB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBzdHlsZT1cInBhZGRpbmc6IDAgMnB4OyBkaXJlY3Rpb246IGx0clwiPih7eyB1bnJlYWRDb3VudCB9fSk8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3BhblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY2FwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJwYWRkaW5nOiAwIDVweFwiICpuZ0lmPVwiYWxsQ291bnQgJiYgYWxsQ291bnQgPiAwXCI+e3sgYWxsQ291bnQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPlxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtY2FydGFibGUtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtZ3JvdXAtY2FydGFibGUvYmFyc2EtY2FydGFibGUtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtZ3JvdXAtY2FydGFibGUvYmFyc2EtY2FydGFibGUtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMEJBQTBCLEVBQXVCLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBUXZGLE1BQU0sT0FBTywyQkFBNEIsU0FBUSwwQkFBMEI7SUFOM0U7O1FBT2MsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFnQyxDQUFDO1FBT3BFLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0tBcUZ6QjtJQW5GRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbEM7UUFDRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMxQixNQUFNLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLElBQUksR0FBRyxLQUFLLFlBQVksRUFBRTtvQkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3pDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztpQkFDeEI7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxhQUFhLEVBQUU7WUFDZixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBQ0QsYUFBYTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELFlBQVk7UUFDUixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFDRCxPQUFPLENBQUMsS0FBYztRQUNsQixJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN2QjthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUNELFNBQVM7UUFDTCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDTyxhQUFhO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckYsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzNELElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUNqRCxRQUFRLEVBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUMvQixJQUFJLENBQUMsVUFBVSxDQUNsQixDQUFDO1NBQ0w7SUFDTCxDQUFDO0lBQ08sUUFBUSxDQUFDLFVBQWlDO1FBQzlDLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDbEIsT0FBTztTQUNWO1FBQ0QsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRTtnQkFDZCxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQ3BCO1lBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hHLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztZQUNyRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUNoQyxDQUFDLEVBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FDbEIsQ0FBQztZQUNGLFdBQVcsSUFBSSxLQUFLLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUM3QyxDQUFDOzt3SEE1RlEsMkJBQTJCOzRHQUEzQiwyQkFBMkIsMklDVHhDLG94TEF3SUE7MkZEL0hhLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDSSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU07OEJBR3JDLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50LCBNZXRhb2JqZWN0RGF0YU1vZGVsIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS1jYXJ0YWJsZS1ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWNhcnRhYmxlLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1jYXJ0YWJsZS1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhQ2FydGFibGVHcm91cENvbXBvbmVudCBleHRlbmRzIEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAT3V0cHV0KCkgZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRpdGxlOiBzdHJpbmc7IGRhdGE6IGFueSB9PigpO1xuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgYWxsSXRlbTogeyB1bnJlYWRDb3VudDogbnVtYmVyOyBhbGxDb3VudDogbnVtYmVyIH07XG4gICAgYWxsSXRlbUNoZWNrZWQ6IGJvb2xlYW47XG4gICAgYnVpbHRpbkdyb3VwczogTWV0YW9iamVjdERhdGFNb2RlbFtdO1xuICAgIGlzTGFzdEJ1aWx0aW4gPSBmYWxzZTtcbiAgICBpc0J1aWx0aW46IGFueTtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGNBbGwodGhpcy5tb0RhdGFMaXN0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jaGVja1N5c3RlbWkoKTtcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgbGV0IGRldGVjdENoYW5nZXMgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qga2V5cyA9IFsnbW8nLCAnbW9EYXRhTGlzdCcsICdpc0NoZWNrZWQnXTtcblxuICAgICAgICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXNba2V5XSAmJiAhY2hhbmdlc1trZXldLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgdGhpc1trZXldID0gY2hhbmdlc1trZXldLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICBkZXRlY3RDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAnbW9EYXRhTGlzdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FsY0FsbChjaGFuZ2VzW2tleV0uY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tTeXN0ZW1pKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRldGVjdENoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIF9yb3dDaGVja0FsbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWxsSXRlbUNoZWNrZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFsbEl0ZW1DaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5ldmVudHMuZW1pdCh7IHRpdGxlOiAnZGVzZWxlY3RBbGwnLCBkYXRhOiBudWxsIH0pO1xuICAgICAgICB0aGlzLmV2ZW50cy5lbWl0KHsgdGl0bGU6ICdyb3dDaGVjaycsIGRhdGE6IHsgbW86IHsgSWQ6ICcwMScgfSwgaW5kZXg6IC0xIH0gfSk7XG4gICAgfVxuICAgIG9uQ2xpY2soaXNBbGw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzQWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9yb3dDaGVja0FsbCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcm93Q2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfcm93Q2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQ2hlY2tlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoeyB0aXRsZTogJ3Jvd0NoZWNrJywgZGF0YTogeyBtbzogdGhpcy5tbywgaW5kZXg6IHRoaXMuaW5kZXggfSB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hlY2tTeXN0ZW1pKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzQnVpbHRpbiA9IHRoaXMuX3JlcG9ydFZhbHVlUGlwZS50cmFuc2Zvcm0oJ9iz24zYs9iq2YXbjCcsIHRoaXMubW8sIHRoaXMuYWxsQ29sdW1ucyk7XG4gICAgICAgIGlmICh0aGlzLmluZGV4ICsgMSA8IHRoaXMubW9EYXRhTGlzdC5sZW5ndGggJiYgdGhpcy5pc0J1aWx0aW4pIHtcbiAgICAgICAgICAgIHRoaXMuaXNMYXN0QnVpbHRpbiA9ICF0aGlzLl9yZXBvcnRWYWx1ZVBpcGUudHJhbnNmb3JtKFxuICAgICAgICAgICAgICAgICfYs9uM2LPYqtmF24wnLFxuICAgICAgICAgICAgICAgIHRoaXMubW9EYXRhTGlzdFt0aGlzLmluZGV4ICsgMV0sXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxDb2x1bW5zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX2NhbGNBbGwobW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluZGV4ICE9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGFsbENvdW50ID0gMDtcbiAgICAgICAgbGV0IHVucmVhZENvdW50ID0gMDtcbiAgICAgICAgbGV0IGlzQ2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICBtb0RhdGFMaXN0LmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgICAgIGlmIChjLiRJc0NoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICBpc0NoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYWxsQ291bnRUZW1wID0gdGhpcy5fcmVwb3J0VmFsdWVQaXBlLnRyYW5zZm9ybSh0aGlzLnBhcmFtZXRlcnMuQWxsQ291bnRGaWVsZCwgYywgdGhpcy5hbGxDb2x1bW5zKTtcbiAgICAgICAgICAgIGFsbENvdW50ICs9IGlzTmFOKCthbGxDb3VudFRlbXApID8gMCA6ICthbGxDb3VudFRlbXA7XG4gICAgICAgICAgICBjb25zdCB1bnJlYWRDb3VudFRlbXAgPSB0aGlzLl9yZXBvcnRWYWx1ZVBpcGUudHJhbnNmb3JtKFxuICAgICAgICAgICAgICAgIHRoaXMucGFyYW1ldGVycy5VbnJlYWRDb3VudEZpZWxkLFxuICAgICAgICAgICAgICAgIGMsXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxDb2x1bW5zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdW5yZWFkQ291bnQgKz0gaXNOYU4oK3VucmVhZENvdW50VGVtcCkgPyAwIDogK3VucmVhZENvdW50VGVtcDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWxsSXRlbUNoZWNrZWQgPSAhaXNDaGVja2VkO1xuICAgICAgICB0aGlzLmFsbEl0ZW0gPSB7IGFsbENvdW50LCB1bnJlYWRDb3VudCB9O1xuICAgIH1cbn1cbiIsIjwhLS0gPGxpXG4gICAgW2ludGVyYWN0aXZlXT1cInRydWVcIlxuICAgIGZkLWxpc3QtaXRlbVxuICAgIFtzZWxlY3RlZF09XCJhbGxJdGVtQ2hlY2tlZCA/IHRydWUgOiBmYWxzZVwiXG4gICAgKGNsaWNrKT1cIm9uUm93Q2hlY2tBbGwoKVwiXG4gICAgKm5nSWY9XCJhbGxJdGVtXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwidGl0bGUtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgd2lkdGg6IDAuMnJlbTsgaGVpZ2h0OiAxMDAlXCI+PC9kaXY+XG4gICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmZvbnRTaXplXT1cImFsbEl0ZW0udW5yZWFkQ291bnQgPiAwID8gJ2JvbGQnIDogbnVsbFwiPnt7ICfZh9mF2Ycg2YXZiNin2LHYrycgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFsbEl0ZW0udW5yZWFkQ291bnQgPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgc3R5bGU9XCJwYWRkaW5nOiAwIDJweDsgZGlyZWN0aW9uOiBsdHJcIj4oe3sgYWxsSXRlbS51bnJlYWRDb3VudCB9fSk8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cInBhZGRpbmc6IDAgNXB4XCIgKm5nSWY9XCJhbGxJdGVtLmFsbENvdW50ID4gMFwiPnt7IGFsbEl0ZW0uYWxsQ291bnQgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuPC9saT4gLS0+XG5cbjxuZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFsbEl0ZW1cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBpdGVtVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6ICfZh9mF2Ycg2YXZiNin2LHYrycgfCBiYmJUcmFuc2xhdGUsXG4gICAgICAgICAgICAgICAgICAgIHVucmVhZENvdW50OiBhbGxJdGVtLnVucmVhZENvdW50LFxuICAgICAgICAgICAgICAgICAgICBhbGxDb3VudDogYWxsSXRlbS5hbGxDb3VudCxcbiAgICAgICAgICAgICAgICAgICAgYmFja0NvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICBpc0FsbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgaXNDaGVja2VkOiBhbGxJdGVtQ2hlY2tlZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHBhcmFtZXRlcnMuQ2FydGFibGVHcm91cEZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlLFxuICAgICAgICAgICAgICAgIHVucmVhZENvdW50OiBwYXJhbWV0ZXJzLlVucmVhZENvdW50RmllbGQgfCBydmFsOiBtbzphbGxDb2x1bW5zLFxuICAgICAgICAgICAgICAgIGFsbENvdW50OiBwYXJhbWV0ZXJzLkFsbENvdW50RmllbGQgfCBydmFsOiBtbzphbGxDb2x1bW5zLFxuICAgICAgICAgICAgICAgIGJhY2tDb2xvcjogKGNvbHVtbnNbMF0uQ2FwdGlvbiB8IHJ2YWw6IG1vOmNvbHVtbnMpLFxuICAgICAgICAgICAgICAgIGlzQ2hlY2tlZDogaXNDaGVja2VkLFxuICAgICAgICAgICAgICAgIGljb246IHBhcmFtZXRlcnMuSWNvbkZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlLFxuICAgICAgICAgICAgICAgIGlzQnVpbHRpbjogaXNCdWlsdGluXG4gICAgICAgICAgICB9XG4gICAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNMYXN0QnVpbHRpblwiPlxuICAgIDxsaSBmZC1saXN0LWl0ZW0gY2xhc3M9XCJzcGFjZVwiPlxuICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPjwvc3Bhbj5cbiAgICA8L2xpPlxuPC9uZy1jb250YWluZXI+XG48IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYXN0XCI+XG4gICAgPHVsIGZkLWxpc3Q+XG4gICAgICAgIDxsaSBmZC1saXN0LWdyb3VwLWhlYWRlcj5cbiAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGUgc3R5bGU9XCJiYWNrZ3JvdW5kOiNmN2Y3ZjdcIj48L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1vMiBvZiBtb0RhdGFMaXN0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiJ9iz24zYs9iq2YXbjCcgfCBydmFsOiBtbzI6YWxsQ29sdW1uc1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHBhcmFtZXRlcnMuQ2FydGFibGVHcm91cEZpZWxkIHwgcnZhbDogbW8yOmFsbENvbHVtbnM6dHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnJlYWRDb3VudDogcGFyYW1ldGVycy5VbnJlYWRDb3VudEZpZWxkIHwgcnZhbDogbW8yOmFsbENvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsQ291bnQ6IHBhcmFtZXRlcnMuQWxsQ291bnRGaWVsZCB8IHJ2YWw6IG1vMjphbGxDb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tDb2xvcjogY29sdW1uc1swXS5DYXB0aW9uIHwgcnZhbDogbW8yOmNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDaGVja2VkOiBpc0NoZWNrZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC91bD5cbjwvbmctY29udGFpbmVyPiAtLT5cblxuPCEtLSA8bGkgZmQtbGlzdC1pdGVtIFtzZWxlY3RlZF09XCJpc0NoZWNrZWQgPyB0cnVlIDogZmFsc2VcIiAoY2xpY2spPVwib25Sb3dDaGVjaygpXCIgW2ludGVyYWN0aXZlXT1cInRydWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGl0bGUtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJjb2x1bW5zWzBdLkNhcHRpb24gfCBydmFsOiBtbzpjb2x1bW5zXCIgc3R5bGU9XCJ3aWR0aDogMC4ycmVtOyBoZWlnaHQ6IDEwMCVcIj48L2Rpdj5cbiAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBbc3R5bGUuZm9udFNpemVdPVwicGFyYW1ldGVycy5VbnJlYWRDb3VudEZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczoodHJ1ZSA/ICdib2xkJyA6IG51bGwpXCJcbiAgICAgICAgICAgICAgICAgICAgPnt7IHBhcmFtZXRlcnMuQ2FydGFibGVHcm91cEZpZWxkIHwgcnZhbDogbW86YWxsQ29sdW1uczp0cnVlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXJhbWV0ZXJzLlVucmVhZENvdW50RmllbGQgfCBydmFsOiBtbzphbGxDb2x1bW5zOnRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBzdHlsZT1cInBhZGRpbmc6IDAgMnB4OyBkaXJlY3Rpb246IGx0clwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+KHt7IHBhcmFtZXRlcnMuVW5yZWFkQ291bnRGaWVsZCB8IHJ2YWw6IG1vOmFsbENvbHVtbnM6dHJ1ZSB9fSk8L3N0cm9uZ1xuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJwYWRkaW5nOiAwIDVweFwiPnt7IHBhcmFtZXRlcnMuQWxsQ291bnRGaWVsZCB8IHJ2YWw6IG1vOmFsbENvbHVtbnM6dHJ1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG48L2xpPiAtLT5cbjxuZy10ZW1wbGF0ZVxuICAgICNpdGVtVGVtcGxhdGVcbiAgICBsZXQtY2FwdGlvblxuICAgIGxldC11bnJlYWRDb3VudD1cInVucmVhZENvdW50XCJcbiAgICBsZXQtYWxsQ291bnQ9XCJhbGxDb3VudFwiXG4gICAgbGV0LWJhY2tDb2xvcj1cImJhY2tDb2xvclwiXG4gICAgbGV0LWlzQWxsPVwiaXNBbGxcIlxuICAgIGxldC1pc0NoZWNrZWQ9XCJpc0NoZWNrZWRcIlxuICAgIGxldC1pY29uPVwiaWNvblwiXG4gICAgbGV0LWlzQnVpbHRpbj1cImlzQnVpbHRpblwiXG4+XG4gICAgPGxpXG4gICAgICAgICpuZ0lmPVwiaXNCdWlsdGluIHx8IGFsbENvdW50ID4gMCB8fCBpc0FsbFwiXG4gICAgICAgIGZkLWxpc3QtaXRlbVxuICAgICAgICBbc2VsZWN0ZWRdPVwiaXNDaGVja2VkID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soaXNBbGwpXCJcbiAgICAgICAgW2ludGVyYWN0aXZlXT1cInRydWVcIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImJhY2tDb2xvclwiIHN0eWxlPVwid2lkdGg6IDAuMnJlbTsgaGVpZ2h0OiAxMDAlXCI+PC9kaXY+XG4gICAgICAgICAgICA8aSAqbmdJZj1cImljb25cIiBmZC1saXN0LWljb24gW2dseXBoXT1cImljb25cIj48L2k+XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGNvbHVtbi1nYXA6IDVweFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidW5yZWFkQ291bnQgJiYgdW5yZWFkQ291bnQgPiAwOyBlbHNlIHNwYW5UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBjYXB0aW9uIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIHN0eWxlPVwicGFkZGluZzogMCAycHg7IGRpcmVjdGlvbjogbHRyXCI+KHt7IHVucmVhZENvdW50IH19KTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzcGFuVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjYXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cInBhZGRpbmc6IDAgNXB4XCIgKm5nSWY9XCJhbGxDb3VudCAmJiBhbGxDb3VudCA+IDBcIj57eyBhbGxDb3VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -18,9 +18,9 @@ export class BarsaTableColumnComponent extends BaseColumnPropsComponent {
18
18
  }
19
19
  }
20
20
  BarsaTableColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTableColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
21
- BarsaTableColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaTableColumnComponent, selector: "bsu-barsa-table-column", providers: [FormPanelService, ColumnService], usesInheritance: true, ngImport: i0, template: "<div\n [class.editMode]=\"editMode\"\n style=\"display: flex; width: 100%\"\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\n>\n <ng-container *ngIf=\"customComponent; else columnRendererTpl\">\n <bnrc-dynamic-item-component\n [component]=\"customComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"customComponent.Settings\"\n [column]=\"column\"\n [editMode]=\"editMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n <ng-template #columnRendererTpl>\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [editMode]=\"editMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-column-renderer>\n </ng-template>\n\n <ng-container *ngIf=\"editMode\">\n <ng-container *ngFor=\"let fieldCaption of column.$MergedFieldsToColumn\">\n <ng-container *ngIf=\"fieldCaption | controlUi: layout94 as layoutConfig\">\n <bsu-layout-control\n [caption]=\"fieldCaption\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-layout-control>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .editMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .editMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor"] }, { kind: "component", type: i3.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"] }, { kind: "component", type: i4.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "rtl", "deviceName", "deviceSize"] }, { kind: "pipe", type: i2.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
21
+ BarsaTableColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaTableColumnComponent, selector: "bsu-barsa-table-column", providers: [FormPanelService, ColumnService], usesInheritance: true, ngImport: i0, template: "<div\n [class.editMode]=\"editMode\"\n style=\"display: flex; width: 100%\"\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\n>\n <ng-container *ngIf=\"customComponent; else columnRendererTpl\">\n <bnrc-dynamic-item-component\n [component]=\"customComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"customComponent.Settings\"\n [column]=\"column\"\n [value]=\"value\"\n [icon]=\"icon\"\n [editMode]=\"editMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n <ng-template #columnRendererTpl>\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"value\"\n [icon]=\"icon\"\n [editMode]=\"editMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-column-renderer>\n </ng-template>\n\n <ng-container *ngIf=\"editMode\">\n <ng-container *ngFor=\"let fieldCaption of column.$MergedFieldsToColumn\">\n <ng-container *ngIf=\"fieldCaption | controlUi: layout94 as layoutConfig\">\n <bsu-layout-control\n [caption]=\"fieldCaption\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-layout-control>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .editMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .editMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor"] }, { kind: "component", type: i3.LayoutControlComponent, selector: "bsu-layout-control", inputs: ["inlineEdit", "caption", "focusControl", "showLabel", "maxLabelWidth", "hasHorizontalText", "contentDensity", "flex", "RefreshLabel", "SetVisible"] }, { kind: "component", type: i4.ColumnRendererComponent, selector: "bsu-column-renderer,[colRenderer]", inputs: ["column", "mo", "index", "editMode", "customRowHeight", "controlUi", "formLayoutShowLabel", "isChecked", "isNewInlineMo", "rtl", "deviceName", "deviceSize", "value", "icon"] }, { kind: "pipe", type: i2.ControlUiPipe, name: "controlUi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTableColumnComponent, decorators: [{
23
23
  type: Component,
24
- args: [{ selector: 'bsu-barsa-table-column', providers: [FormPanelService, ColumnService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class.editMode]=\"editMode\"\n style=\"display: flex; width: 100%\"\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\n>\n <ng-container *ngIf=\"customComponent; else columnRendererTpl\">\n <bnrc-dynamic-item-component\n [component]=\"customComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"customComponent.Settings\"\n [column]=\"column\"\n [editMode]=\"editMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n <ng-template #columnRendererTpl>\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [editMode]=\"editMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-column-renderer>\n </ng-template>\n\n <ng-container *ngIf=\"editMode\">\n <ng-container *ngFor=\"let fieldCaption of column.$MergedFieldsToColumn\">\n <ng-container *ngIf=\"fieldCaption | controlUi: layout94 as layoutConfig\">\n <bsu-layout-control\n [caption]=\"fieldCaption\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-layout-control>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .editMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .editMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"] }]
24
+ args: [{ selector: 'bsu-barsa-table-column', providers: [FormPanelService, ColumnService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class.editMode]=\"editMode\"\n style=\"display: flex; width: 100%\"\n [style.column-gap]=\"column.$MergedFieldsToColumn?.length ? '0.2rem' : null\"\n>\n <ng-container *ngIf=\"customComponent; else columnRendererTpl\">\n <bnrc-dynamic-item-component\n [component]=\"customComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"customComponent.Settings\"\n [column]=\"column\"\n [value]=\"value\"\n [icon]=\"icon\"\n [editMode]=\"editMode\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n <ng-template #columnRendererTpl>\n <bsu-column-renderer\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"value\"\n [icon]=\"icon\"\n [editMode]=\"editMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n [controlUi]=\"column.Caption | controlUi: layout94\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-column-renderer>\n </ng-template>\n\n <ng-container *ngIf=\"editMode\">\n <ng-container *ngFor=\"let fieldCaption of column.$MergedFieldsToColumn\">\n <ng-container *ngIf=\"fieldCaption | controlUi: layout94 as layoutConfig\">\n <bsu-layout-control\n [caption]=\"fieldCaption\"\n [config]=\"layoutConfig\"\n [showLabel]=\"false\"\n [inlineEdit]=\"true\"\n (keyup.control.enter)=\"save.emit($event)\"\n (keyup.esc)=\"cancel.emit($event)\"\n (keydown.Tab)=\"tab.emit($event)\"\n ></bsu-layout-control>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .editMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .editMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.showdetails-on td{border-bottom:none!important}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}\n"] }]
25
25
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLWNvbHVtbi9iYXJzYS10YWJsZS1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtY29sdW1uL2JhcnNhLXRhYmxlLWNvbHVtbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYSx3QkFBd0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBUzVHLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFDbkUsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksV0FBVyxFQUFFO1lBQ3RDLE1BQU0sZUFBZSxHQUFjLFdBQVcsQ0FBQztZQUMvQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRTtnQkFDcEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7YUFDMUM7U0FDSjtJQUNMLENBQUM7O3NIQVZRLHlCQUF5QjswR0FBekIseUJBQXlCLGlEQUh2QixDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxpRENQaEQsd3BFQXVEQTsyRkQ3Q2EseUJBQXlCO2tCQVByQyxTQUFTOytCQUNJLHdCQUF3QixhQUd2QixDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxtQkFDM0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1QYW5lbFNlcnZpY2UsIEVqcmF5T2xnbywgQmFzZUNvbHVtblByb3BzQ29tcG9uZW50LCBDb2x1bW5TZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1jb2x1bW4nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLWNvbHVtbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2UsIENvbHVtblNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVDb2x1bW5Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29sdW1uUHJvcHNDb21wb25lbnQge1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBjb25zdCBjb2x1bW5WYWx1ZSA9IHRoaXMubW9bdGhpcy5jb2x1bW4uTmFtZV07XG4gICAgICAgIGlmICghdGhpcy5jdXN0b21Db21wb25lbnQgJiYgY29sdW1uVmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbUNvbXBvbmVudCA9IDxFanJheU9sZ28+Y29sdW1uVmFsdWU7XG4gICAgICAgICAgICBpZiAoY3VzdG9tQ29tcG9uZW50LlNlbGVjdG9yICYmIGN1c3RvbUNvbXBvbmVudC5Nb2R1bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUNvbXBvbmVudCA9IGN1c3RvbUNvbXBvbmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBbY2xhc3MuZWRpdE1vZGVdPVwiZWRpdE1vZGVcIlxuICAgIHN0eWxlPVwiZGlzcGxheTogZmxleDsgd2lkdGg6IDEwMCVcIlxuICAgIFtzdHlsZS5jb2x1bW4tZ2FwXT1cImNvbHVtbi4kTWVyZ2VkRmllbGRzVG9Db2x1bW4/Lmxlbmd0aCA/ICcwLjJyZW0nIDogbnVsbFwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUNvbXBvbmVudDsgZWxzZSBjb2x1bW5SZW5kZXJlclRwbFwiPlxuICAgICAgICA8Ym5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50XG4gICAgICAgICAgICBbY29tcG9uZW50XT1cImN1c3RvbUNvbXBvbmVudFwiXG4gICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAgICAgW3NldHRpbmddPVwiZGV0YWlsc0NvbXBvbmVudFNldHRpbmdcIlxuICAgICAgICAgICAgW3BhcmFtZXRlcnNdPVwiY3VzdG9tQ29tcG9uZW50LlNldHRpbmdzXCJcbiAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgIFtlZGl0TW9kZV09XCJlZGl0TW9kZVwiXG4gICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICA+PC9ibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNjb2x1bW5SZW5kZXJlclRwbD5cbiAgICAgICAgPGJzdS1jb2x1bW4tcmVuZGVyZXJcbiAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICBbZWRpdE1vZGVdPVwiZWRpdE1vZGVcIlxuICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgW2Zvcm1MYXlvdXRTaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICBbY29udHJvbFVpXT1cImNvbHVtbi5DYXB0aW9uIHwgY29udHJvbFVpOiBsYXlvdXQ5NFwiXG4gICAgICAgICAgICAoa2V5dXAuY29udHJvbC5lbnRlcik9XCJzYXZlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5dXAuZXNjKT1cImNhbmNlbC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24uVGFiKT1cInRhYi5lbWl0KCRldmVudClcIlxuICAgICAgICA+PC9ic3UtY29sdW1uLXJlbmRlcmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdE1vZGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGRDYXB0aW9uIG9mIGNvbHVtbi4kTWVyZ2VkRmllbGRzVG9Db2x1bW5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZENhcHRpb24gfCBjb250cm9sVWk6IGxheW91dDk0IGFzIGxheW91dENvbmZpZ1wiPlxuICAgICAgICAgICAgICAgIDxic3UtbGF5b3V0LWNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgW2NhcHRpb25dPVwiZmllbGRDYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJsYXlvdXRDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd0xhYmVsXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lubGluZUVkaXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXl1cC5jb250cm9sLmVudGVyKT1cInNhdmUuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVzYyk9XCJjYW5jZWwuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uVGFiKT1cInRhYi5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L2JzdS1sYXlvdXQtY29udHJvbD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLWNvbHVtbi9iYXJzYS10YWJsZS1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtY29sdW1uL2JhcnNhLXRhYmxlLWNvbHVtbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYSx3QkFBd0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBUzVHLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFDbkUsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksV0FBVyxFQUFFO1lBQ3RDLE1BQU0sZUFBZSxHQUFjLFdBQVcsQ0FBQztZQUMvQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRTtnQkFDcEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7YUFDMUM7U0FDSjtJQUNMLENBQUM7O3NIQVZRLHlCQUF5QjswR0FBekIseUJBQXlCLGlEQUh2QixDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxpRENQaEQsZ3hFQTJEQTsyRkRqRGEseUJBQXlCO2tCQVByQyxTQUFTOytCQUNJLHdCQUF3QixhQUd2QixDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxtQkFDM0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1QYW5lbFNlcnZpY2UsIEVqcmF5T2xnbywgQmFzZUNvbHVtblByb3BzQ29tcG9uZW50LCBDb2x1bW5TZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1jb2x1bW4nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLWNvbHVtbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2UsIENvbHVtblNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVDb2x1bW5Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29sdW1uUHJvcHNDb21wb25lbnQge1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBjb25zdCBjb2x1bW5WYWx1ZSA9IHRoaXMubW9bdGhpcy5jb2x1bW4uTmFtZV07XG4gICAgICAgIGlmICghdGhpcy5jdXN0b21Db21wb25lbnQgJiYgY29sdW1uVmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbUNvbXBvbmVudCA9IDxFanJheU9sZ28+Y29sdW1uVmFsdWU7XG4gICAgICAgICAgICBpZiAoY3VzdG9tQ29tcG9uZW50LlNlbGVjdG9yICYmIGN1c3RvbUNvbXBvbmVudC5Nb2R1bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUNvbXBvbmVudCA9IGN1c3RvbUNvbXBvbmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBbY2xhc3MuZWRpdE1vZGVdPVwiZWRpdE1vZGVcIlxuICAgIHN0eWxlPVwiZGlzcGxheTogZmxleDsgd2lkdGg6IDEwMCVcIlxuICAgIFtzdHlsZS5jb2x1bW4tZ2FwXT1cImNvbHVtbi4kTWVyZ2VkRmllbGRzVG9Db2x1bW4/Lmxlbmd0aCA/ICcwLjJyZW0nIDogbnVsbFwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbUNvbXBvbmVudDsgZWxzZSBjb2x1bW5SZW5kZXJlclRwbFwiPlxuICAgICAgICA8Ym5yYy1keW5hbWljLWl0ZW0tY29tcG9uZW50XG4gICAgICAgICAgICBbY29tcG9uZW50XT1cImN1c3RvbUNvbXBvbmVudFwiXG4gICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAgICAgW3NldHRpbmddPVwiZGV0YWlsc0NvbXBvbmVudFNldHRpbmdcIlxuICAgICAgICAgICAgW3BhcmFtZXRlcnNdPVwiY3VzdG9tQ29tcG9uZW50LlNldHRpbmdzXCJcbiAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbaWNvbl09XCJpY29uXCJcbiAgICAgICAgICAgIFtlZGl0TW9kZV09XCJlZGl0TW9kZVwiXG4gICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICBbZGV2aWNlTmFtZV09XCJkZXZpY2VOYW1lXCJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgIFthbGxDb2x1bW5zXT1cImFsbENvbHVtbnNcIlxuICAgICAgICA+PC9ibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNjb2x1bW5SZW5kZXJlclRwbD5cbiAgICAgICAgPGJzdS1jb2x1bW4tcmVuZGVyZXJcbiAgICAgICAgICAgIFttb109XCJtb1wiXG4gICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgICAgW2ljb25dPVwiaWNvblwiXG4gICAgICAgICAgICBbZWRpdE1vZGVdPVwiZWRpdE1vZGVcIlxuICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJpc0NoZWNrZWRcIlxuICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICAgICAgW2Zvcm1MYXlvdXRTaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICBbY29udHJvbFVpXT1cImNvbHVtbi5DYXB0aW9uIHwgY29udHJvbFVpOiBsYXlvdXQ5NFwiXG4gICAgICAgICAgICAoa2V5dXAuY29udHJvbC5lbnRlcik9XCJzYXZlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5dXAuZXNjKT1cImNhbmNlbC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24uVGFiKT1cInRhYi5lbWl0KCRldmVudClcIlxuICAgICAgICA+PC9ic3UtY29sdW1uLXJlbmRlcmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdE1vZGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGRDYXB0aW9uIG9mIGNvbHVtbi4kTWVyZ2VkRmllbGRzVG9Db2x1bW5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZENhcHRpb24gfCBjb250cm9sVWk6IGxheW91dDk0IGFzIGxheW91dENvbmZpZ1wiPlxuICAgICAgICAgICAgICAgIDxic3UtbGF5b3V0LWNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgW2NhcHRpb25dPVwiZmllbGRDYXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJsYXlvdXRDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd0xhYmVsXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lubGluZUVkaXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXl1cC5jb250cm9sLmVudGVyKT1cInNhdmUuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVzYyk9XCJjYW5jZWwuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uVGFiKT1cInRhYi5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L2JzdS1sYXlvdXQtY29udHJvbD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -37,10 +37,10 @@ export class BarsaTableRowComponent extends BaseViewItemPropsComponent {
37
37
  }
38
38
  }
39
39
  BarsaTableRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTableRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
40
- BarsaTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: { showDetailsInRow: "showDetailsInRow", detailsComponent: "detailsComponent", detailsColumns: "detailsColumns", detailsText: "detailsText", columnComponents: "columnComponents" }, providers: [FormPanelService], viewQueries: [{ propertyName: "detailsFormItems", first: true, predicate: ["detailsFormItems"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage || workflowState?.errorText\"\n [class.workflow-pending]=\"workflowState?.state === 'Pending'\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n [attr.colspan]=\"canView ? columnsCount + 1 : columnsCount\"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n [disabled]=\"inlineEditMode\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <div\n *ngIf=\"workflowState?.state === 'Pending'\"\n style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\"\n >\n <bsu-mask [marginTop]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\n </div>\n\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <ng-container *ngFor=\"let column of columns; let columnIndex = index\">\n <td\n *ngIf=\"(rowIndicator && columnIndex > 0) || !rowIndicator\"\n [attr.dbName]=\"column.Name\"\n #tdEl\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n </ng-container>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell [attr.colspan]=\"columns.length + 1\">\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<tr *ngIf=\"workflowState?.errorText\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell [attr.colspan]=\"columns.length + 4\">\n <fd-message-strip type=\"error\" [dismissible]=\"true\">\n {{ workflowState.errorText }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <bsu-barsa-table-column\n [mo]=\"mo\"\n [column]=\"column\"\n [customComponent]=\"column.$CustomComponent\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [inlineEditMode]=\"inlineEditMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [layout94]=\"layout94\"\n (save)=\"onEditFormPanelSave(null)\"\n (cancel)=\"onEditFormPanelCancel(null)\"\n (tab)=\"onTabKeyDown($event, index)\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\n >\n </bsu-barsa-table-column>\n</ng-template>\n<ng-template #statusIndicator>\n <bsu-barsa-column-indicator\n [hideBorderBottom]=\"!detailsCollapsed\"\n *ngIf=\"rowIndicator\"\n [backColor]=\"rowIndicatorColor\"\n >\n </bsu-barsa-column-indicator>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "formPanelCtrlId"], outputs: ["titleChanged", "moChanged", "formClose", "formRendered"] }, { kind: "component", type: i3.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor"] }, { kind: "component", type: i4.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i7.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i7.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i8.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i9.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "dismissLabel", "width", "minWidth", "marginBottom"], outputs: ["onDismiss"] }, { kind: "directive", type: i10.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i10.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "directive", type: i10.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "component", type: i11.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }, { kind: "component", type: i12.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i13.BarsaTableColumnComponent, selector: "bsu-barsa-table-column" }, { kind: "component", type: i14.BarsaColumnIndicatorComponent, selector: "bsu-barsa-column-indicator", inputs: ["backColor", "hideBorderBottom"] }, { kind: "directive", type: i15.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
+ BarsaTableRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarsaTableRowComponent, selector: "bsu-barsa-table-row", inputs: { showDetailsInRow: "showDetailsInRow", detailsComponent: "detailsComponent", detailsColumns: "detailsColumns", detailsText: "detailsText", columnComponents: "columnComponents" }, providers: [FormPanelService], viewQueries: [{ propertyName: "detailsFormItems", first: true, predicate: ["detailsFormItems"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage || workflowState?.errorText\"\n [class.workflow-pending]=\"workflowState?.state === 'Pending'\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n [attr.colspan]=\"canView ? columnsCount + 1 : columnsCount\"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n [disabled]=\"inlineEditMode\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <div\n *ngIf=\"workflowState?.state === 'Pending'\"\n style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\"\n >\n <bsu-mask [marginTop]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\n </div>\n\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <ng-container *ngFor=\"let column of columns; let columnIndex = index\">\n <td\n *ngIf=\"(rowIndicator && columnIndex > 0) || !rowIndicator\"\n [attr.dbName]=\"column.Name\"\n #tdEl\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n </ng-container>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell [attr.colspan]=\"columns.length + 1\">\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<tr *ngIf=\"workflowState?.errorText\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell [attr.colspan]=\"columns.length + 4\">\n <fd-message-strip type=\"error\" [dismissible]=\"true\">\n {{ workflowState.errorText }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <bsu-barsa-table-column\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo\"\n [icon]=\"column | columnIcon: mo\"\n [customComponent]=\"column.$CustomComponent\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [inlineEditMode]=\"inlineEditMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [layout94]=\"layout94\"\n (save)=\"onEditFormPanelSave(null)\"\n (cancel)=\"onEditFormPanelCancel(null)\"\n (tab)=\"onTabKeyDown($event, index)\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\n >\n </bsu-barsa-table-column>\n</ng-template>\n<ng-template #statusIndicator>\n <bsu-barsa-column-indicator\n [hideBorderBottom]=\"!detailsCollapsed\"\n *ngIf=\"rowIndicator\"\n [backColor]=\"rowIndicatorColor\"\n >\n </bsu-barsa-column-indicator>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "formPanelCtrlId"], outputs: ["titleChanged", "moChanged", "formClose", "formRendered"] }, { kind: "component", type: i3.DynamicItemComponent, selector: "bnrc-dynamic-item-component", inputs: ["mo", "allColumns", "moDataList", "columns", "column", "index", "last", "deviceName", "deviceSize", "rtl", "editMode", "setting", "parameters", "contextMenuItems", "canView", "formSetting", "conditionalFormats", "disableOverflowContextMenu", "navigationArrow", "isCheckList", "fields", "isChecked", "layout94$", "inlineEditMode", "isNewInlineMo", "allowInlineEdit", "typeDefId", "rowIndicator", "rowIndicatorColor"] }, { kind: "component", type: i4.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values"], outputs: ["focusChange"] }, { kind: "component", type: i7.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i7.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "checkbox", "radio", "alignLabelEnd", "inlineHelpTitle", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "id"] }, { kind: "component", type: i8.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i9.MessageStripComponent, selector: "fd-message-strip", inputs: ["class", "dismissible", "noIcon", "type", "id", "ariaLabelledBy", "ariaLabel", "dismissLabel", "width", "minWidth", "marginBottom"], outputs: ["onDismiss"] }, { kind: "directive", type: i10.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i10.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "tabindex", "hoverable", "fitContent", "noPadding", "noData", "key", "cellFocusedEventAnnouncer"] }, { kind: "directive", type: i10.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "component", type: i11.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }, { kind: "component", type: i12.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode"], outputs: ["commandClick"] }, { kind: "component", type: i13.BarsaTableColumnComponent, selector: "bsu-barsa-table-column" }, { kind: "component", type: i14.BarsaColumnIndicatorComponent, selector: "bsu-barsa-column-indicator", inputs: ["backColor", "hideBorderBottom"] }, { kind: "directive", type: i15.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i3.ColumnIconPipe, name: "columnIcon" }, { kind: "pipe", type: i3.ColumnValuePipe, name: "columnValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
41
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarsaTableRowComponent, decorators: [{
42
42
  type: Component,
43
- args: [{ selector: 'bsu-barsa-table-row', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage || workflowState?.errorText\"\n [class.workflow-pending]=\"workflowState?.state === 'Pending'\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n [attr.colspan]=\"canView ? columnsCount + 1 : columnsCount\"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n [disabled]=\"inlineEditMode\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <div\n *ngIf=\"workflowState?.state === 'Pending'\"\n style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\"\n >\n <bsu-mask [marginTop]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\n </div>\n\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <ng-container *ngFor=\"let column of columns; let columnIndex = index\">\n <td\n *ngIf=\"(rowIndicator && columnIndex > 0) || !rowIndicator\"\n [attr.dbName]=\"column.Name\"\n #tdEl\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n </ng-container>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell [attr.colspan]=\"columns.length + 1\">\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<tr *ngIf=\"workflowState?.errorText\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell [attr.colspan]=\"columns.length + 4\">\n <fd-message-strip type=\"error\" [dismissible]=\"true\">\n {{ workflowState.errorText }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <bsu-barsa-table-column\n [mo]=\"mo\"\n [column]=\"column\"\n [customComponent]=\"column.$CustomComponent\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [inlineEditMode]=\"inlineEditMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [layout94]=\"layout94\"\n (save)=\"onEditFormPanelSave(null)\"\n (cancel)=\"onEditFormPanelCancel(null)\"\n (tab)=\"onTabKeyDown($event, index)\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\n >\n </bsu-barsa-table-column>\n</ng-template>\n<ng-template #statusIndicator>\n <bsu-barsa-column-indicator\n [hideBorderBottom]=\"!detailsCollapsed\"\n *ngIf=\"rowIndicator\"\n [backColor]=\"rowIndicatorColor\"\n >\n </bsu-barsa-column-indicator>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}\n"] }]
43
+ args: [{ selector: 'bsu-barsa-table-row', providers: [FormPanelService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<tr\n [class.row-error]=\"hasError\"\n [class.showdetails-on]=\"!detailsCollapsed\"\n #trEl\n *ngIf=\"(!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [activable]=\"false\"\n [hoverable]=\"false\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [main]=\"true\"\n [focusable]=\"true\"\n [attr.aria-selected]=\"isChecked\"\n [focusable]=\"!inlineEditMode || !allowInlineEdit\"\n [class.brule-message]=\"bruleActionMessage || workflowState?.errorText\"\n [class.workflow-pending]=\"workflowState?.state === 'Pending'\"\n>\n <ng-container *ngIf=\"mo.$Group || mo.$Group === ''; else renderRow\">\n <td\n [style.padding-right]=\"rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n [style.padding-left]=\"!rtl ? 'calc( 1rem + ' + level * 12 + 'px' + ' )' : 'inherit'\"\n fd-table-cell\n [attr.colspan]=\"canView ? columnsCount + 1 : columnsCount\"\n class=\"row-group\"\n [class.mobile-mode]=\"secondaryColumns?.length\"\n [attr.level]=\"level\"\n [class.root-group]=\"level === 0\"\n >\n <button\n fd-button\n [fdType]=\"'transparent'\"\n [glyph]=\"expanded !== false ? 'navigation-down-arrow' : 'navigation-left-arrow'\"\n class=\"cell-expand\"\n [disabled]=\"inlineEditMode\"\n (click)=\"onExpandClick()\"\n ></button>\n {{ mo.$Group }}\n </td>\n </ng-container>\n <ng-template #renderRow>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell *ngIf=\"isCheckList\">\n <div\n *ngIf=\"workflowState?.state === 'Pending'\"\n style=\"position: absolute; left: 0; right: 0; bottom: 0; top: 0\"\n >\n <bsu-mask [marginTop]=\"'20px'\" [size]=\"'s'\"></bsu-mask>\n </div>\n\n <fd-checkbox [name]=\"mo.$Caption\" [ngModel]=\"isChecked\" (ngModelChange)=\"onRowCheck()\"></fd-checkbox>\n </td>\n <td\n fd-table-cell\n class=\"single-select\"\n *ngIf=\"!isCheckList\"\n (click)=\"onRowCheck()\"\n style=\"padding: 0; text-align: center\"\n >\n <ng-container\n *ngIf=\"inlineEditMode && allowInlineEdit && (hasError || saving || saved); else iconStateTemplate\"\n >\n <fd-icon *ngIf=\"hasError\" class=\"save-error\" glyph=\"error\"></fd-icon>\n <fd-busy-indicator\n *ngIf=\"saving\"\n [loading]=\"true\"\n [size]=\"'s'\"\n title=\"record saving\"\n ></fd-busy-indicator>\n <fd-icon *ngIf=\"saved\" class=\"save-success\" glyph=\"accept\"></fd-icon>\n </ng-container>\n <ng-template #iconStateTemplate>\n <fd-icon *ngIf=\"mo.$State === 'New' && !isChecked\" glyph=\"favorite\"></fd-icon>\n <fd-icon *ngIf=\"inlineEditMode && allowInlineEdit && isChecked\" glyph=\"edit\"></fd-icon>\n </ng-template>\n </td>\n <ng-container *ngFor=\"let column of columns; let columnIndex = index\">\n <td\n *ngIf=\"(rowIndicator && columnIndex > 0) || !rowIndicator\"\n [attr.dbName]=\"column.Name\"\n #tdEl\n fd-table-cell\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"tdEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n [focusable]=\"false\"\n (click)=\"onRowCheck()\"\n (dblclick)=\"onRowClick()\"\n [hoverable]=\"inlineEditMode && allowInlineEdit\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </td>\n </ng-container>\n <td\n class=\"col-context-menu\"\n *ngIf=\"contextMenuItems?.length && (!inlineEditMode || !allowInlineEdit)\"\n fd-table-cell\n >\n <bsu-ulv-context-menu\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\n [conditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [mo]=\"mo\"\n [index]=\"index\"\n (commandClick)=\"onUlvCommand()\"\n [deviceName]=\"deviceName\"\n [menuItems]=\"contextMenuItems\"\n [allColumns]=\"allColumns\"\n ></bsu-ulv-context-menu>\n </td>\n <td\n class=\"col-details\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"showDetailsInRow && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n *ngIf=\"detailsComponent?.Selector || cartableParams?.moId\"\n fd-button\n [label]=\"(detailsCollapsed ? detailsText : 'Hide') | bbbTranslate\"\n [fdType]=\"'transparent'\"\n (click)=\"onRowDetails()\"\n ></button>\n </td>\n <td\n class=\"col-view\"\n fd-table-cell\n [fitContent]=\"true\"\n *ngIf=\"!hideOpenIcon && canView && (!inlineEditMode || !allowInlineEdit)\"\n >\n <button\n fd-button\n [glyph]=\"navigationArrow\"\n [navigation]=\"true\"\n [fdType]=\"'transparent'\"\n role=\"presentation\"\n (click)=\"onRowClick()\"\n ></button>\n </td>\n </ng-template>\n</tr>\n\n<tr\n #trEl\n *ngIf=\"secondaryColumns?.length && !mo.$Group && (!mo.$Parent || parentExpanded) && visibility !== false\"\n fd-table-row\n [secondary]=\"true\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [styleIndex]=\"styleIndex\"\n [hostEl]=\"trEl\"\n [attr.aria-selected]=\"isChecked && !inlineEditMode ? true : false\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell class=\"single-select\" *ngIf=\"!isCheckList\" (click)=\"onRowCheck()\"></td>\n <td fd-table-cell colspan=\"100%\" (click)=\"onRowCheck()\">\n <p\n #pEl\n fd-table-text\n *ngFor=\"let column of secondaryColumns; let columnIndex = index; trackBy: _trackByColumn\"\n [applyConditionalFormats]=\"conditionalFormats\"\n [hostEl]=\"pEl\"\n [styleIndex]=\"styleIndex\"\n [dbName]=\"column.Name\"\n >\n <label fd-form-label>{{ column.Caption }} :</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </p>\n </td>\n</tr>\n<tr *ngIf=\"!detailsCollapsed && cartableParams?.moId\" fd-table-row class=\"showdetails\" [attr.aria-selected]=\"isChecked\">\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container>\n <bnrc-form\n (click)=\"OnCartableFormClick($event)\"\n class=\"cartable-template\"\n [params]=\"cartableParams\"\n (formClose)=\"onCartableFormClosed()\"\n ></bnrc-form>\n </ng-container>\n </td>\n</tr>\n<tr\n *ngIf=\"!detailsCollapsed && detailsComponent?.Selector\"\n fd-table-row\n class=\"showdetails\"\n [attr.aria-selected]=\"isChecked\"\n>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n\n <td fd-table-cell (click)=\"onRowCheck()\"></td>\n <td\n (click)=\"onRowCheck()\"\n fd-table-cell\n [attr.colspan]=\"\n columns.length + 1 + (contextMenuItems.length ? 1 : 0) + (canView ? 1 : 0) + (showDetailsInRow ? 1 : 0)\n \"\n >\n <ng-container *ngTemplateOutlet=\"detailsColumnsTemplate\"></ng-container>\n <ng-container *ngIf=\"detailsComponent && detailsComponent.Selector\">\n <bnrc-dynamic-item-component\n [component]=\"detailsComponent\"\n [mo]=\"mo\"\n [isChecked]=\"isChecked\"\n [setting]=\"detailsComponentSetting\"\n [parameters]=\"detailsComponent.Settings\"\n [editMode]=\"inlineEditMode\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [index]=\"index\"\n [allColumns]=\"allColumns\"\n [typeDefId]=\"typeDefId\"\n ></bnrc-dynamic-item-component>\n </ng-container>\n </td>\n</tr>\n<ng-template #detailsColumnsTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n detailsFormItems;\n context: {\n $implicit: detailsColumns,\n mo: mo,\n inlineEditMode: inlineEditMode,\n layout94: layout$\n }\n \"\n ></ng-container>\n</ng-template>\n<ng-template #detailsFormItems let-detailsColumns let-mo=\"mo\" let-inlineEditMode=\"inlineEditMode\" let-layout$=\"layout$\">\n <div class=\"form-items\">\n <div fd-form-item *ngFor=\"let column of detailsColumns; let columnIndex = index\">\n <label fd-form-label for=\"input-2\">{{ column.Caption }}</label>\n <ng-container\n *ngTemplateOutlet=\"\n columnTemplate;\n context: {\n $implicit: column,\n mo: mo,\n index: columnIndex,\n inlineEditMode: inlineEditMode,\n layout94: layout$ | async\n }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n<tr *ngIf=\"bruleActionMessage && inlineEditMode\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell [attr.colspan]=\"columns.length + 1\">\n <fd-message-strip\n *ngIf=\"bruleActionMessage.MessageType === 2\"\n [type]=\"bruleActionMessage.MessageType === 2 ? 'error' : 'information'\"\n [dismissible]=\"false\"\n >\n {{ bruleActionMessage.MessageExpression }}\n </fd-message-strip>\n </td>\n</tr>\n<tr *ngIf=\"workflowState?.errorText\" fd-table-row>\n <ng-container *ngTemplateOutlet=\"statusIndicator\"></ng-container>\n <td fd-table-cell [attr.colspan]=\"columns.length + 4\">\n <fd-message-strip type=\"error\" [dismissible]=\"true\">\n {{ workflowState.errorText }}\n </fd-message-strip>\n </td>\n</tr>\n<ng-template\n #columnTemplate\n let-column\n let-mo=\"mo\"\n let-index=\"index\"\n let-inlineEditMode=\"inlineEditMode\"\n let-layout94=\"layout94\"\n>\n <bsu-barsa-table-column\n [mo]=\"mo\"\n [column]=\"column\"\n [value]=\"column | columnValue: mo\"\n [icon]=\"column | columnIcon: mo\"\n [customComponent]=\"column.$CustomComponent\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [inlineEditMode]=\"inlineEditMode\"\n [isChecked]=\"isChecked\"\n [index]=\"index\"\n [formSetting]=\"formSetting\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [deviceSize]=\"deviceSize\"\n [layout94]=\"layout94\"\n (save)=\"onEditFormPanelSave(null)\"\n (cancel)=\"onEditFormPanelCancel(null)\"\n (tab)=\"onTabKeyDown($event, index)\"\n (changeToEditMode)=\"onColumnChangeToEditMode($event, index)\"\n >\n </bsu-barsa-table-column>\n</ng-template>\n<ng-template #statusIndicator>\n <bsu-barsa-column-indicator\n [hideBorderBottom]=\"!detailsCollapsed\"\n *ngIf=\"rowIndicator\"\n [backColor]=\"rowIndicatorColor\"\n >\n </bsu-barsa-column-indicator>\n</ng-template>\n", styles: [":host{display:contents;width:100%}:host ::ng-deep .row-group.mobile-mode{border-bottom:var(--sapList_BorderWidth, .0625rem) solid var(--sapList_BorderColor, #e4e4e4)!important}:host ::ng-deep .inlineEditMode bnrc-field-ui{padding:0;margin:0}:host ::ng-deep .inlineEditMode bsu-ui-simple-combo{margin:0!important}bsu-layout-control:not(.hide-form-item){align-items:center;height:100%;min-width:auto;width:auto}td{vertical-align:middle}tr.brule-message td{border:0}.row-group{background-color:var(--sapBackgroundColor, \"#f7f7ff\")}.cell-expand{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;font-size:.75rem;color:#0854a0;color:var(--sapContent_IconColor, #0854a0);min-width:2rem;max-width:2rem}.save-error{color:var(--sapField_InvalidColor)}.save-success{color:var(--sapField_SuccessColor)}.flow{max-width:100%}.flow-item{display:flex}.flow-item fd-micro-process-flow-icon{width:1.375rem;height:1.375rem}.flow-item h5{padding-right:.3rem}.cartable-template{padding:.5rem 0}.workflow-pending{opacity:.5;pointer-events:none;position:relative}\n"] }]
44
44
  }], propDecorators: { showDetailsInRow: [{
45
45
  type: Input
46
46
  }], detailsComponent: [{
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
55
55
  type: ViewChild,
56
56
  args: ['detailsFormItems', { static: true }]
57
57
  }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLXJvdy9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtcm93L2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxnQkFBZ0IsRUFBK0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTakgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEwQjtJQVB0RTs7UUFRYSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFPbEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDO0tBZTNCO0lBYkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsdUJBQXVCLEdBQUc7WUFDM0IsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNwQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQzNDLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxLQUFoQixJQUFJLENBQUMsV0FBVyxHQUFLLFNBQVMsRUFBQztJQUNuQyxDQUFDO0lBQ0QsWUFBWTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7O21IQXRCUSxzQkFBc0I7dUdBQXRCLHNCQUFzQiwwT0FIcEIsQ0FBQyxnQkFBZ0IsQ0FBQyxxTENSakMsaTdaQW1WQTsyRkR4VWEsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNJLHFCQUFxQixhQUdwQixDQUFDLGdCQUFnQixDQUFDLG1CQUNaLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDMkMsZ0JBQWdCO3NCQUFoRSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vRm9yUmVwb3J0TW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCwgRm9ybVBhbmVsU2VydmljZSwgRWpyYXlPbGdvLCBSZXBvcnRWaWV3Q29sdW1uIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1yb3cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVSb3dDb21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgc2hvd0RldGFpbHNJblJvdyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGRldGFpbHNDb21wb25lbnQ/OiBFanJheU9sZ287XG4gICAgQElucHV0KCkgZGV0YWlsc0NvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcbiAgICBASW5wdXQoKSBkZXRhaWxzVGV4dDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNvbHVtbkNvbXBvbmVudHM6IE1vRm9yUmVwb3J0TW9kZWwgfCBudWxsO1xuICAgIEBWaWV3Q2hpbGQoJ2RldGFpbHNGb3JtSXRlbXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBkZXRhaWxzRm9ybUl0ZW1zOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZGV0YWlsc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgZGV0YWlsc0NvbXBvbmVudFNldHRpbmc6IGFueTtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5kZXRhaWxzQ29tcG9uZW50U2V0dGluZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuc2V0dGluZyxcbiAgICAgICAgICAgICRkZXRhaWxzQ29sdW1uczogdGhpcy5kZXRhaWxzQ29sdW1ucyxcbiAgICAgICAgICAgICRkZXRhaWxzRm9ybUl0ZW1zOiB0aGlzLmRldGFpbHNGb3JtSXRlbXNcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kZXRhaWxzVGV4dCB8fD0gJ0RldGFpbHMnO1xuICAgIH1cbiAgICBvblJvd0RldGFpbHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGV0YWlsc0NvbGxhcHNlZCA9ICF0aGlzLmRldGFpbHNDb2xsYXBzZWQ7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPHRyXG4gICAgW2NsYXNzLnJvdy1lcnJvcl09XCJoYXNFcnJvclwiXG4gICAgW2NsYXNzLnNob3dkZXRhaWxzLW9uXT1cIiFkZXRhaWxzQ29sbGFwc2VkXCJcbiAgICAjdHJFbFxuICAgICpuZ0lmPVwiKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgW2FjdGl2YWJsZV09XCJmYWxzZVwiXG4gICAgW2hvdmVyYWJsZV09XCJmYWxzZVwiXG4gICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgW2hvc3RFbF09XCJ0ckVsXCJcbiAgICBbbWFpbl09XCJ0cnVlXCJcbiAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCJcbiAgICBbZm9jdXNhYmxlXT1cIiFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0XCJcbiAgICBbY2xhc3MuYnJ1bGUtbWVzc2FnZV09XCJicnVsZUFjdGlvbk1lc3NhZ2UgfHwgd29ya2Zsb3dTdGF0ZT8uZXJyb3JUZXh0XCJcbiAgICBbY2xhc3Mud29ya2Zsb3ctcGVuZGluZ109XCJ3b3JrZmxvd1N0YXRlPy5zdGF0ZSA9PT0gJ1BlbmRpbmcnXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW8uJEdyb3VwIHx8IG1vLiRHcm91cCA9PT0gJyc7IGVsc2UgcmVuZGVyUm93XCI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwicnRsID8gJ2NhbGMoIDFyZW0gKyAnICsgbGV2ZWwgKiAxMiArICdweCcgKyAnICknIDogJ2luaGVyaXQnXCJcbiAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwiIXJ0bCA/ICdjYWxjKCAxcmVtICsgJyArIGxldmVsICogMTIgKyAncHgnICsgJyApJyA6ICdpbmhlcml0J1wiXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBbYXR0ci5jb2xzcGFuXT1cImNhblZpZXcgPyBjb2x1bW5zQ291bnQgKyAxIDogY29sdW1uc0NvdW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwicm93LWdyb3VwXCJcbiAgICAgICAgICAgIFtjbGFzcy5tb2JpbGUtbW9kZV09XCJzZWNvbmRhcnlDb2x1bW5zPy5sZW5ndGhcIlxuICAgICAgICAgICAgW2F0dHIubGV2ZWxdPVwibGV2ZWxcIlxuICAgICAgICAgICAgW2NsYXNzLnJvb3QtZ3JvdXBdPVwibGV2ZWwgPT09IDBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZXhwYW5kZWQgIT09IGZhbHNlID8gJ25hdmlnYXRpb24tZG93bi1hcnJvdycgOiAnbmF2aWdhdGlvbi1sZWZ0LWFycm93J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjZWxsLWV4cGFuZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlubGluZUVkaXRNb2RlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FeHBhbmRDbGljaygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIHt7IG1vLiRHcm91cCB9fVxuICAgICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjcmVuZGVyUm93PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhdHVzSW5kaWNhdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsICpuZ0lmPVwiaXNDaGVja0xpc3RcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIndvcmtmbG93U3RhdGU/LnN0YXRlID09PSAnUGVuZGluZydcIlxuICAgICAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOyB0b3A6IDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxic3UtbWFzayBbbWFyZ2luVG9wXT1cIicyMHB4J1wiIFtzaXplXT1cIidzJ1wiPjwvYnN1LW1hc2s+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGZkLWNoZWNrYm94IFtuYW1lXT1cIm1vLiRDYXB0aW9uXCIgW25nTW9kZWxdPVwiaXNDaGVja2VkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25Sb3dDaGVjaygpXCI+PC9mZC1jaGVja2JveD5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBjbGFzcz1cInNpbmdsZS1zZWxlY3RcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiXG4gICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdCAmJiAoaGFzRXJyb3IgfHwgc2F2aW5nIHx8IHNhdmVkKTsgZWxzZSBpY29uU3RhdGVUZW1wbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJoYXNFcnJvclwiIGNsYXNzPVwic2F2ZS1lcnJvclwiIGdseXBoPVwiZXJyb3JcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgPGZkLWJ1c3ktaW5kaWNhdG9yXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2F2aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzJ1wiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwicmVjb3JkIHNhdmluZ1wiXG4gICAgICAgICAgICAgICAgPjwvZmQtYnVzeS1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJzYXZlZFwiIGNsYXNzPVwic2F2ZS1zdWNjZXNzXCIgZ2x5cGg9XCJhY2NlcHRcIj48L2ZkLWljb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvblN0YXRlVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJtby4kU3RhdGUgPT09ICdOZXcnICYmICFpc0NoZWNrZWRcIiBnbHlwaD1cImZhdm9yaXRlXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgIDxmZC1pY29uICpuZ0lmPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0ICYmIGlzQ2hlY2tlZFwiIGdseXBoPVwiZWRpdFwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgY29sdW1uSW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIocm93SW5kaWNhdG9yICYmIGNvbHVtbkluZGV4ID4gMCkgfHwgIXJvd0luZGljYXRvclwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgICAgICAgICAjdGRFbFxuICAgICAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbaG9zdEVsXT1cInRkRWxcIlxuICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgICAgIFtkYk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgICAgICAgICAgICAgIFtmb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgICAgIFtob3ZlcmFibGVdPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgY2xhc3M9XCJjb2wtY29udGV4dC1tZW51XCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dE1lbnVJdGVtcz8ubGVuZ3RoICYmICghaW5saW5lRWRpdE1vZGUgfHwgIWFsbG93SW5saW5lRWRpdClcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICA+XG4gICAgICAgICAgICA8YnN1LXVsdi1jb250ZXh0LW1lbnVcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgID48L2JzdS11bHYtY29udGV4dC1tZW51PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGRcbiAgICAgICAgICAgIGNsYXNzPVwiY29sLWRldGFpbHNcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICAgICAgW2ZpdENvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dEZXRhaWxzSW5Sb3cgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yIHx8IGNhcnRhYmxlUGFyYW1zPy5tb0lkXCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiKGRldGFpbHNDb2xsYXBzZWQgPyBkZXRhaWxzVGV4dCA6ICdIaWRlJykgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93RGV0YWlscygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBjbGFzcz1cImNvbC12aWV3XCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFtmaXRDb250ZW50XT1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaGlkZU9wZW5JY29uICYmIGNhblZpZXcgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBbbmF2aWdhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3RyPlxuXG48dHJcbiAgICAjdHJFbFxuICAgICpuZ0lmPVwic2Vjb25kYXJ5Q29sdW1ucz8ubGVuZ3RoICYmICFtby4kR3JvdXAgJiYgKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgW3NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICBbaG9zdEVsXT1cInRyRWxcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkICYmICFpbmxpbmVFZGl0TW9kZSA/IHRydWUgOiBmYWxzZVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPHRkIGZkLXRhYmxlLWNlbGwgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCIgKm5nSWY9XCIhaXNDaGVja0xpc3RcIiAoY2xpY2spPVwib25Sb3dDaGVjaygpXCI+PC90ZD5cbiAgICA8dGQgZmQtdGFibGUtY2VsbCBjb2xzcGFuPVwiMTAwJVwiIChjbGljayk9XCJvblJvd0NoZWNrKClcIj5cbiAgICAgICAgPHBcbiAgICAgICAgICAgICNwRWxcbiAgICAgICAgICAgIGZkLXRhYmxlLXRleHRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2Ygc2Vjb25kYXJ5Q29sdW1uczsgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IF90cmFja0J5Q29sdW1uXCJcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgW2hvc3RFbF09XCJwRWxcIlxuICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICBbZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWw+e3sgY29sdW1uLkNhcHRpb24gfX0gOjwvbGFiZWw+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IGlubGluZUVkaXRNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luY1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9wPlxuICAgIDwvdGQ+XG48L3RyPlxuPHRyICpuZ0lmPVwiIWRldGFpbHNDb2xsYXBzZWQgJiYgY2FydGFibGVQYXJhbXM/Lm1vSWRcIiBmZC10YWJsZS1yb3cgY2xhc3M9XCJzaG93ZGV0YWlsc1wiIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPHRkIGZkLXRhYmxlLWNlbGwgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiPjwvdGQ+XG4gICAgPHRkXG4gICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArIDEgKyAoY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPyAxIDogMCkgKyAoY2FuVmlldyA/IDEgOiAwKSArIChzaG93RGV0YWlsc0luUm93ID8gMSA6IDApXG4gICAgICAgIFwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGJucmMtZm9ybVxuICAgICAgICAgICAgICAgIChjbGljayk9XCJPbkNhcnRhYmxlRm9ybUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FydGFibGUtdGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtwYXJhbXNdPVwiY2FydGFibGVQYXJhbXNcIlxuICAgICAgICAgICAgICAgIChmb3JtQ2xvc2UpPVwib25DYXJ0YWJsZUZvcm1DbG9zZWQoKVwiXG4gICAgICAgICAgICA+PC9ibnJjLWZvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdGQ+XG48L3RyPlxuPHRyXG4gICAgKm5nSWY9XCIhZGV0YWlsc0NvbGxhcHNlZCAmJiBkZXRhaWxzQ29tcG9uZW50Py5TZWxlY3RvclwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgY2xhc3M9XCJzaG93ZGV0YWlsc1wiXG4gICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0NoZWNrZWRcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGF0dXNJbmRpY2F0b3JcIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDx0ZCBmZC10YWJsZS1jZWxsIChjbGljayk9XCJvblJvd0NoZWNrKClcIj48L3RkPlxuICAgIDx0ZFxuICAgICAgICAoY2xpY2spPVwib25Sb3dDaGVjaygpXCJcbiAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICBbYXR0ci5jb2xzcGFuXT1cIlxuICAgICAgICAgICAgY29sdW1ucy5sZW5ndGggKyAxICsgKGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID8gMSA6IDApICsgKGNhblZpZXcgPyAxIDogMCkgKyAoc2hvd0RldGFpbHNJblJvdyA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRldGFpbHNDb2x1bW5zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNDb21wb25lbnQgJiYgZGV0YWlsc0NvbXBvbmVudC5TZWxlY3RvclwiPlxuICAgICAgICAgICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxuICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiZGV0YWlsc0NvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgW3NldHRpbmddPVwiZGV0YWlsc0NvbXBvbmVudFNldHRpbmdcIlxuICAgICAgICAgICAgICAgIFtwYXJhbWV0ZXJzXT1cImRldGFpbHNDb21wb25lbnQuU2V0dGluZ3NcIlxuICAgICAgICAgICAgICAgIFtlZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgICAgICBbdHlwZURlZklkXT1cInR5cGVEZWZJZFwiXG4gICAgICAgICAgICA+PC9ibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdGQ+XG48L3RyPlxuPG5nLXRlbXBsYXRlICNkZXRhaWxzQ29sdW1uc1RlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGRldGFpbHNGb3JtSXRlbXM7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBkZXRhaWxzQ29sdW1ucyxcbiAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IGlubGluZUVkaXRNb2RlLFxuICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkXG4gICAgICAgICAgICB9XG4gICAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlsc0Zvcm1JdGVtcyBsZXQtZGV0YWlsc0NvbHVtbnMgbGV0LW1vPVwibW9cIiBsZXQtaW5saW5lRWRpdE1vZGU9XCJpbmxpbmVFZGl0TW9kZVwiIGxldC1sYXlvdXQkPVwibGF5b3V0JFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWl0ZW1zXCI+XG4gICAgICAgIDxkaXYgZmQtZm9ybS1pdGVtICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZGV0YWlsc0NvbHVtbnM7IGxldCBjb2x1bW5JbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgICA8bGFiZWwgZmQtZm9ybS1sYWJlbCBmb3I9XCJpbnB1dC0yXCI+e3sgY29sdW1uLkNhcHRpb24gfX08L2xhYmVsPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjx0ciAqbmdJZj1cImJydWxlQWN0aW9uTWVzc2FnZSAmJiBpbmxpbmVFZGl0TW9kZVwiIGZkLXRhYmxlLXJvdz5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhdHVzSW5kaWNhdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgPHRkIGZkLXRhYmxlLWNlbGwgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5zLmxlbmd0aCArIDFcIj5cbiAgICAgICAgPGZkLW1lc3NhZ2Utc3RyaXBcbiAgICAgICAgICAgICpuZ0lmPVwiYnJ1bGVBY3Rpb25NZXNzYWdlLk1lc3NhZ2VUeXBlID09PSAyXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImJydWxlQWN0aW9uTWVzc2FnZS5NZXNzYWdlVHlwZSA9PT0gMiA/ICdlcnJvcicgOiAnaW5mb3JtYXRpb24nXCJcbiAgICAgICAgICAgIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGJydWxlQWN0aW9uTWVzc2FnZS5NZXNzYWdlRXhwcmVzc2lvbiB9fVxuICAgICAgICA8L2ZkLW1lc3NhZ2Utc3RyaXA+XG4gICAgPC90ZD5cbjwvdHI+XG48dHIgKm5nSWY9XCJ3b3JrZmxvd1N0YXRlPy5lcnJvclRleHRcIiBmZC10YWJsZS1yb3c+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZCBmZC10YWJsZS1jZWxsIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5sZW5ndGggKyA0XCI+XG4gICAgICAgIDxmZC1tZXNzYWdlLXN0cmlwIHR5cGU9XCJlcnJvclwiIFtkaXNtaXNzaWJsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICB7eyB3b3JrZmxvd1N0YXRlLmVycm9yVGV4dCB9fVxuICAgICAgICA8L2ZkLW1lc3NhZ2Utc3RyaXA+XG4gICAgPC90ZD5cbjwvdHI+XG48bmctdGVtcGxhdGVcbiAgICAjY29sdW1uVGVtcGxhdGVcbiAgICBsZXQtY29sdW1uXG4gICAgbGV0LW1vPVwibW9cIlxuICAgIGxldC1pbmRleD1cImluZGV4XCJcbiAgICBsZXQtaW5saW5lRWRpdE1vZGU9XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgbGV0LWxheW91dDk0PVwibGF5b3V0OTRcIlxuPlxuICAgIDxic3UtYmFyc2EtdGFibGUtY29sdW1uXG4gICAgICAgIFttb109XCJtb1wiXG4gICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgW2N1c3RvbUNvbXBvbmVudF09XCJjb2x1bW4uJEN1c3RvbUNvbXBvbmVudFwiXG4gICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImlzQ2hlY2tlZCAmJiBpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXRcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbbGF5b3V0OTRdPVwibGF5b3V0OTRcIlxuICAgICAgICAoc2F2ZSk9XCJvbkVkaXRGb3JtUGFuZWxTYXZlKG51bGwpXCJcbiAgICAgICAgKGNhbmNlbCk9XCJvbkVkaXRGb3JtUGFuZWxDYW5jZWwobnVsbClcIlxuICAgICAgICAodGFiKT1cIm9uVGFiS2V5RG93bigkZXZlbnQsIGluZGV4KVwiXG4gICAgICAgIChjaGFuZ2VUb0VkaXRNb2RlKT1cIm9uQ29sdW1uQ2hhbmdlVG9FZGl0TW9kZSgkZXZlbnQsIGluZGV4KVwiXG4gICAgPlxuICAgIDwvYnN1LWJhcnNhLXRhYmxlLWNvbHVtbj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3N0YXR1c0luZGljYXRvcj5cbiAgICA8YnN1LWJhcnNhLWNvbHVtbi1pbmRpY2F0b3JcbiAgICAgICAgW2hpZGVCb3JkZXJCb3R0b21dPVwiIWRldGFpbHNDb2xsYXBzZWRcIlxuICAgICAgICAqbmdJZj1cInJvd0luZGljYXRvclwiXG4gICAgICAgIFtiYWNrQ29sb3JdPVwicm93SW5kaWNhdG9yQ29sb3JcIlxuICAgID5cbiAgICA8L2JzdS1iYXJzYS1jb2x1bW4taW5kaWNhdG9yPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL2JhcnNhLXRhYmxlLXJvdy9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGFibGUtcm93L2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBdUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxnQkFBZ0IsRUFBK0IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTakgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDBCQUEwQjtJQVB0RTs7UUFRYSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFPbEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDO0tBZTNCO0lBYkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsdUJBQXVCLEdBQUc7WUFDM0IsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLGVBQWUsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNwQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQzNDLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxLQUFoQixJQUFJLENBQUMsV0FBVyxHQUFLLFNBQVMsRUFBQztJQUNuQyxDQUFDO0lBQ0QsWUFBWTtRQUNSLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7O21IQXRCUSxzQkFBc0I7dUdBQXRCLHNCQUFzQiwwT0FIcEIsQ0FBQyxnQkFBZ0IsQ0FBQyxxTENSakMsMmdhQXFWQTsyRkQxVWEsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNJLHFCQUFxQixhQUdwQixDQUFDLGdCQUFnQixDQUFDLG1CQUNaLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDMkMsZ0JBQWdCO3NCQUFoRSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vRm9yUmVwb3J0TW9kZWwgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCwgRm9ybVBhbmVsU2VydmljZSwgRWpyYXlPbGdvLCBSZXBvcnRWaWV3Q29sdW1uIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS1iYXJzYS10YWJsZS1yb3cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS10YWJsZS1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRhYmxlLXJvdy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW0Zvcm1QYW5lbFNlcnZpY2VdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcnNhVGFibGVSb3dDb21wb25lbnQgZXh0ZW5kcyBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgc2hvd0RldGFpbHNJblJvdyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGRldGFpbHNDb21wb25lbnQ/OiBFanJheU9sZ287XG4gICAgQElucHV0KCkgZGV0YWlsc0NvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcbiAgICBASW5wdXQoKSBkZXRhaWxzVGV4dDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNvbHVtbkNvbXBvbmVudHM6IE1vRm9yUmVwb3J0TW9kZWwgfCBudWxsO1xuICAgIEBWaWV3Q2hpbGQoJ2RldGFpbHNGb3JtSXRlbXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBkZXRhaWxzRm9ybUl0ZW1zOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZGV0YWlsc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgZGV0YWlsc0NvbXBvbmVudFNldHRpbmc6IGFueTtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5kZXRhaWxzQ29tcG9uZW50U2V0dGluZyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuc2V0dGluZyxcbiAgICAgICAgICAgICRkZXRhaWxzQ29sdW1uczogdGhpcy5kZXRhaWxzQ29sdW1ucyxcbiAgICAgICAgICAgICRkZXRhaWxzRm9ybUl0ZW1zOiB0aGlzLmRldGFpbHNGb3JtSXRlbXNcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kZXRhaWxzVGV4dCB8fD0gJ0RldGFpbHMnO1xuICAgIH1cbiAgICBvblJvd0RldGFpbHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGV0YWlsc0NvbGxhcHNlZCA9ICF0aGlzLmRldGFpbHNDb2xsYXBzZWQ7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPHRyXG4gICAgW2NsYXNzLnJvdy1lcnJvcl09XCJoYXNFcnJvclwiXG4gICAgW2NsYXNzLnNob3dkZXRhaWxzLW9uXT1cIiFkZXRhaWxzQ29sbGFwc2VkXCJcbiAgICAjdHJFbFxuICAgICpuZ0lmPVwiKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgW2FjdGl2YWJsZV09XCJmYWxzZVwiXG4gICAgW2hvdmVyYWJsZV09XCJmYWxzZVwiXG4gICAgW2FwcGx5Q29uZGl0aW9uYWxGb3JtYXRzXT1cImNvbmRpdGlvbmFsRm9ybWF0c1wiXG4gICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgW2hvc3RFbF09XCJ0ckVsXCJcbiAgICBbbWFpbl09XCJ0cnVlXCJcbiAgICBbZm9jdXNhYmxlXT1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCJcbiAgICBbZm9jdXNhYmxlXT1cIiFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0XCJcbiAgICBbY2xhc3MuYnJ1bGUtbWVzc2FnZV09XCJicnVsZUFjdGlvbk1lc3NhZ2UgfHwgd29ya2Zsb3dTdGF0ZT8uZXJyb3JUZXh0XCJcbiAgICBbY2xhc3Mud29ya2Zsb3ctcGVuZGluZ109XCJ3b3JrZmxvd1N0YXRlPy5zdGF0ZSA9PT0gJ1BlbmRpbmcnXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW8uJEdyb3VwIHx8IG1vLiRHcm91cCA9PT0gJyc7IGVsc2UgcmVuZGVyUm93XCI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwicnRsID8gJ2NhbGMoIDFyZW0gKyAnICsgbGV2ZWwgKiAxMiArICdweCcgKyAnICknIDogJ2luaGVyaXQnXCJcbiAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwiIXJ0bCA/ICdjYWxjKCAxcmVtICsgJyArIGxldmVsICogMTIgKyAncHgnICsgJyApJyA6ICdpbmhlcml0J1wiXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBbYXR0ci5jb2xzcGFuXT1cImNhblZpZXcgPyBjb2x1bW5zQ291bnQgKyAxIDogY29sdW1uc0NvdW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwicm93LWdyb3VwXCJcbiAgICAgICAgICAgIFtjbGFzcy5tb2JpbGUtbW9kZV09XCJzZWNvbmRhcnlDb2x1bW5zPy5sZW5ndGhcIlxuICAgICAgICAgICAgW2F0dHIubGV2ZWxdPVwibGV2ZWxcIlxuICAgICAgICAgICAgW2NsYXNzLnJvb3QtZ3JvdXBdPVwibGV2ZWwgPT09IDBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZXhwYW5kZWQgIT09IGZhbHNlID8gJ25hdmlnYXRpb24tZG93bi1hcnJvdycgOiAnbmF2aWdhdGlvbi1sZWZ0LWFycm93J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjZWxsLWV4cGFuZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlubGluZUVkaXRNb2RlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FeHBhbmRDbGljaygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIHt7IG1vLiRHcm91cCB9fVxuICAgICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjcmVuZGVyUm93PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhdHVzSW5kaWNhdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZCBmZC10YWJsZS1jZWxsICpuZ0lmPVwiaXNDaGVja0xpc3RcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIndvcmtmbG93U3RhdGU/LnN0YXRlID09PSAnUGVuZGluZydcIlxuICAgICAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOyB0b3A6IDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxic3UtbWFzayBbbWFyZ2luVG9wXT1cIicyMHB4J1wiIFtzaXplXT1cIidzJ1wiPjwvYnN1LW1hc2s+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGZkLWNoZWNrYm94IFtuYW1lXT1cIm1vLiRDYXB0aW9uXCIgW25nTW9kZWxdPVwiaXNDaGVja2VkXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25Sb3dDaGVjaygpXCI+PC9mZC1jaGVja2JveD5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICBjbGFzcz1cInNpbmdsZS1zZWxlY3RcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaXNDaGVja0xpc3RcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiXG4gICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlubGluZUVkaXRNb2RlICYmIGFsbG93SW5saW5lRWRpdCAmJiAoaGFzRXJyb3IgfHwgc2F2aW5nIHx8IHNhdmVkKTsgZWxzZSBpY29uU3RhdGVUZW1wbGF0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJoYXNFcnJvclwiIGNsYXNzPVwic2F2ZS1lcnJvclwiIGdseXBoPVwiZXJyb3JcIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgPGZkLWJ1c3ktaW5kaWNhdG9yXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2F2aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzJ1wiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwicmVjb3JkIHNhdmluZ1wiXG4gICAgICAgICAgICAgICAgPjwvZmQtYnVzeS1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJzYXZlZFwiIGNsYXNzPVwic2F2ZS1zdWNjZXNzXCIgZ2x5cGg9XCJhY2NlcHRcIj48L2ZkLWljb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvblN0YXRlVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGZkLWljb24gKm5nSWY9XCJtby4kU3RhdGUgPT09ICdOZXcnICYmICFpc0NoZWNrZWRcIiBnbHlwaD1cImZhdm9yaXRlXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgIDxmZC1pY29uICpuZ0lmPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0ICYmIGlzQ2hlY2tlZFwiIGdseXBoPVwiZWRpdFwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgY29sdW1uSW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIocm93SW5kaWNhdG9yICYmIGNvbHVtbkluZGV4ID4gMCkgfHwgIXJvd0luZGljYXRvclwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgICAgICAgICAjdGRFbFxuICAgICAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgICAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbaG9zdEVsXT1cInRkRWxcIlxuICAgICAgICAgICAgICAgIFtzdHlsZUluZGV4XT1cInN0eWxlSW5kZXhcIlxuICAgICAgICAgICAgICAgIFtkYk5hbWVdPVwiY29sdW1uLk5hbWVcIlxuICAgICAgICAgICAgICAgIFtmb2N1c2FibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgICAgIFtob3ZlcmFibGVdPVwiaW5saW5lRWRpdE1vZGUgJiYgYWxsb3dJbmxpbmVFZGl0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQ5NDogbGF5b3V0JCB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICAgY2xhc3M9XCJjb2wtY29udGV4dC1tZW51XCJcbiAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dE1lbnVJdGVtcz8ubGVuZ3RoICYmICghaW5saW5lRWRpdE1vZGUgfHwgIWFsbG93SW5saW5lRWRpdClcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICA+XG4gICAgICAgICAgICA8YnN1LXVsdi1jb250ZXh0LW1lbnVcbiAgICAgICAgICAgICAgICBbZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVdPVwiZGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnVcIlxuICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICAgICAgICAgICAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICAgICAgICAgICAgICBbbW9dPVwibW9cIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgKGNvbW1hbmRDbGljayk9XCJvblVsdkNvbW1hbmQoKVwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW21lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgID48L2JzdS11bHYtY29udGV4dC1tZW51PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGRcbiAgICAgICAgICAgIGNsYXNzPVwiY29sLWRldGFpbHNcIlxuICAgICAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICAgICAgW2ZpdENvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dEZXRhaWxzSW5Sb3cgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNDb21wb25lbnQ/LlNlbGVjdG9yIHx8IGNhcnRhYmxlUGFyYW1zPy5tb0lkXCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiKGRldGFpbHNDb2xsYXBzZWQgPyBkZXRhaWxzVGV4dCA6ICdIaWRlJykgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93RGV0YWlscygpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkXG4gICAgICAgICAgICBjbGFzcz1cImNvbC12aWV3XCJcbiAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgIFtmaXRDb250ZW50XT1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaGlkZU9wZW5JY29uICYmIGNhblZpZXcgJiYgKCFpbmxpbmVFZGl0TW9kZSB8fCAhYWxsb3dJbmxpbmVFZGl0KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwibmF2aWdhdGlvbkFycm93XCJcbiAgICAgICAgICAgICAgICBbbmF2aWdhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJvd0NsaWNrKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3RyPlxuXG48dHJcbiAgICAjdHJFbFxuICAgICpuZ0lmPVwic2Vjb25kYXJ5Q29sdW1ucz8ubGVuZ3RoICYmICFtby4kR3JvdXAgJiYgKCFtby4kUGFyZW50IHx8IHBhcmVudEV4cGFuZGVkKSAmJiB2aXNpYmlsaXR5ICE9PSBmYWxzZVwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgW3NlY29uZGFyeV09XCJ0cnVlXCJcbiAgICBbYXBwbHlDb25kaXRpb25hbEZvcm1hdHNdPVwiY29uZGl0aW9uYWxGb3JtYXRzXCJcbiAgICBbc3R5bGVJbmRleF09XCJzdHlsZUluZGV4XCJcbiAgICBbaG9zdEVsXT1cInRyRWxcIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkICYmICFpbmxpbmVFZGl0TW9kZSA/IHRydWUgOiBmYWxzZVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPHRkIGZkLXRhYmxlLWNlbGwgY2xhc3M9XCJzaW5nbGUtc2VsZWN0XCIgKm5nSWY9XCIhaXNDaGVja0xpc3RcIiAoY2xpY2spPVwib25Sb3dDaGVjaygpXCI+PC90ZD5cbiAgICA8dGQgZmQtdGFibGUtY2VsbCBjb2xzcGFuPVwiMTAwJVwiIChjbGljayk9XCJvblJvd0NoZWNrKClcIj5cbiAgICAgICAgPHBcbiAgICAgICAgICAgICNwRWxcbiAgICAgICAgICAgIGZkLXRhYmxlLXRleHRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2Ygc2Vjb25kYXJ5Q29sdW1uczsgbGV0IGNvbHVtbkluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IF90cmFja0J5Q29sdW1uXCJcbiAgICAgICAgICAgIFthcHBseUNvbmRpdGlvbmFsRm9ybWF0c109XCJjb25kaXRpb25hbEZvcm1hdHNcIlxuICAgICAgICAgICAgW2hvc3RFbF09XCJwRWxcIlxuICAgICAgICAgICAgW3N0eWxlSW5kZXhdPVwic3R5bGVJbmRleFwiXG4gICAgICAgICAgICBbZGJOYW1lXT1cImNvbHVtbi5OYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWw+e3sgY29sdW1uLkNhcHRpb24gfX0gOjwvbGFiZWw+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgICAgbW86IG1vLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IGlubGluZUVkaXRNb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0OTQ6IGxheW91dCQgfCBhc3luY1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9wPlxuICAgIDwvdGQ+XG48L3RyPlxuPHRyICpuZ0lmPVwiIWRldGFpbHNDb2xsYXBzZWQgJiYgY2FydGFibGVQYXJhbXM/Lm1vSWRcIiBmZC10YWJsZS1yb3cgY2xhc3M9XCJzaG93ZGV0YWlsc1wiIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNDaGVja2VkXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPHRkIGZkLXRhYmxlLWNlbGwgKGNsaWNrKT1cIm9uUm93Q2hlY2soKVwiPjwvdGQ+XG4gICAgPHRkXG4gICAgICAgIChjbGljayk9XCJvblJvd0NoZWNrKClcIlxuICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiXG4gICAgICAgICAgICBjb2x1bW5zLmxlbmd0aCArIDEgKyAoY29udGV4dE1lbnVJdGVtcy5sZW5ndGggPyAxIDogMCkgKyAoY2FuVmlldyA/IDEgOiAwKSArIChzaG93RGV0YWlsc0luUm93ID8gMSA6IDApXG4gICAgICAgIFwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGJucmMtZm9ybVxuICAgICAgICAgICAgICAgIChjbGljayk9XCJPbkNhcnRhYmxlRm9ybUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FydGFibGUtdGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtwYXJhbXNdPVwiY2FydGFibGVQYXJhbXNcIlxuICAgICAgICAgICAgICAgIChmb3JtQ2xvc2UpPVwib25DYXJ0YWJsZUZvcm1DbG9zZWQoKVwiXG4gICAgICAgICAgICA+PC9ibnJjLWZvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdGQ+XG48L3RyPlxuPHRyXG4gICAgKm5nSWY9XCIhZGV0YWlsc0NvbGxhcHNlZCAmJiBkZXRhaWxzQ29tcG9uZW50Py5TZWxlY3RvclwiXG4gICAgZmQtdGFibGUtcm93XG4gICAgY2xhc3M9XCJzaG93ZGV0YWlsc1wiXG4gICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0NoZWNrZWRcIlxuPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGF0dXNJbmRpY2F0b3JcIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDx0ZCBmZC10YWJsZS1jZWxsIChjbGljayk9XCJvblJvd0NoZWNrKClcIj48L3RkPlxuICAgIDx0ZFxuICAgICAgICAoY2xpY2spPVwib25Sb3dDaGVjaygpXCJcbiAgICAgICAgZmQtdGFibGUtY2VsbFxuICAgICAgICBbYXR0ci5jb2xzcGFuXT1cIlxuICAgICAgICAgICAgY29sdW1ucy5sZW5ndGggKyAxICsgKGNvbnRleHRNZW51SXRlbXMubGVuZ3RoID8gMSA6IDApICsgKGNhblZpZXcgPyAxIDogMCkgKyAoc2hvd0RldGFpbHNJblJvdyA/IDEgOiAwKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRldGFpbHNDb2x1bW5zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNDb21wb25lbnQgJiYgZGV0YWlsc0NvbXBvbmVudC5TZWxlY3RvclwiPlxuICAgICAgICAgICAgPGJucmMtZHluYW1pYy1pdGVtLWNvbXBvbmVudFxuICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiZGV0YWlsc0NvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgW21vXT1cIm1vXCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgW3NldHRpbmddPVwiZGV0YWlsc0NvbXBvbmVudFNldHRpbmdcIlxuICAgICAgICAgICAgICAgIFtwYXJhbWV0ZXJzXT1cImRldGFpbHNDb21wb25lbnQuU2V0dGluZ3NcIlxuICAgICAgICAgICAgICAgIFtlZGl0TW9kZV09XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1TZXR0aW5nXT1cImZvcm1TZXR0aW5nXCJcbiAgICAgICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICBbYWxsQ29sdW1uc109XCJhbGxDb2x1bW5zXCJcbiAgICAgICAgICAgICAgICBbdHlwZURlZklkXT1cInR5cGVEZWZJZFwiXG4gICAgICAgICAgICA+PC9ibnJjLWR5bmFtaWMtaXRlbS1jb21wb25lbnQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdGQ+XG48L3RyPlxuPG5nLXRlbXBsYXRlICNkZXRhaWxzQ29sdW1uc1RlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGRldGFpbHNGb3JtSXRlbXM7XG4gICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBkZXRhaWxzQ29sdW1ucyxcbiAgICAgICAgICAgICAgICBtbzogbW8sXG4gICAgICAgICAgICAgICAgaW5saW5lRWRpdE1vZGU6IGlubGluZUVkaXRNb2RlLFxuICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkXG4gICAgICAgICAgICB9XG4gICAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlsc0Zvcm1JdGVtcyBsZXQtZGV0YWlsc0NvbHVtbnMgbGV0LW1vPVwibW9cIiBsZXQtaW5saW5lRWRpdE1vZGU9XCJpbmxpbmVFZGl0TW9kZVwiIGxldC1sYXlvdXQkPVwibGF5b3V0JFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWl0ZW1zXCI+XG4gICAgICAgIDxkaXYgZmQtZm9ybS1pdGVtICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZGV0YWlsc0NvbHVtbnM7IGxldCBjb2x1bW5JbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgICA8bGFiZWwgZmQtZm9ybS1sYWJlbCBmb3I9XCJpbnB1dC0yXCI+e3sgY29sdW1uLkNhcHRpb24gfX08L2xhYmVsPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtblRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vOiBtbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUVkaXRNb2RlOiBpbmxpbmVFZGl0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dDk0OiBsYXlvdXQkIHwgYXN5bmNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjx0ciAqbmdJZj1cImJydWxlQWN0aW9uTWVzc2FnZSAmJiBpbmxpbmVFZGl0TW9kZVwiIGZkLXRhYmxlLXJvdz5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhdHVzSW5kaWNhdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgPHRkIGZkLXRhYmxlLWNlbGwgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5zLmxlbmd0aCArIDFcIj5cbiAgICAgICAgPGZkLW1lc3NhZ2Utc3RyaXBcbiAgICAgICAgICAgICpuZ0lmPVwiYnJ1bGVBY3Rpb25NZXNzYWdlLk1lc3NhZ2VUeXBlID09PSAyXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImJydWxlQWN0aW9uTWVzc2FnZS5NZXNzYWdlVHlwZSA9PT0gMiA/ICdlcnJvcicgOiAnaW5mb3JtYXRpb24nXCJcbiAgICAgICAgICAgIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGJydWxlQWN0aW9uTWVzc2FnZS5NZXNzYWdlRXhwcmVzc2lvbiB9fVxuICAgICAgICA8L2ZkLW1lc3NhZ2Utc3RyaXA+XG4gICAgPC90ZD5cbjwvdHI+XG48dHIgKm5nSWY9XCJ3b3JrZmxvd1N0YXRlPy5lcnJvclRleHRcIiBmZC10YWJsZS1yb3c+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c0luZGljYXRvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDx0ZCBmZC10YWJsZS1jZWxsIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5sZW5ndGggKyA0XCI+XG4gICAgICAgIDxmZC1tZXNzYWdlLXN0cmlwIHR5cGU9XCJlcnJvclwiIFtkaXNtaXNzaWJsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICB7eyB3b3JrZmxvd1N0YXRlLmVycm9yVGV4dCB9fVxuICAgICAgICA8L2ZkLW1lc3NhZ2Utc3RyaXA+XG4gICAgPC90ZD5cbjwvdHI+XG48bmctdGVtcGxhdGVcbiAgICAjY29sdW1uVGVtcGxhdGVcbiAgICBsZXQtY29sdW1uXG4gICAgbGV0LW1vPVwibW9cIlxuICAgIGxldC1pbmRleD1cImluZGV4XCJcbiAgICBsZXQtaW5saW5lRWRpdE1vZGU9XCJpbmxpbmVFZGl0TW9kZVwiXG4gICAgbGV0LWxheW91dDk0PVwibGF5b3V0OTRcIlxuPlxuICAgIDxic3UtYmFyc2EtdGFibGUtY29sdW1uXG4gICAgICAgIFttb109XCJtb1wiXG4gICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbHVtbiB8IGNvbHVtblZhbHVlOiBtb1wiXG4gICAgICAgIFtpY29uXT1cImNvbHVtbiB8IGNvbHVtbkljb246IG1vXCJcbiAgICAgICAgW2N1c3RvbUNvbXBvbmVudF09XCJjb2x1bW4uJEN1c3RvbUNvbXBvbmVudFwiXG4gICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImlzQ2hlY2tlZCAmJiBpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXRcIlxuICAgICAgICBbaW5saW5lRWRpdE1vZGVdPVwiaW5saW5lRWRpdE1vZGVcIlxuICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgIFtmb3JtU2V0dGluZ109XCJmb3JtU2V0dGluZ1wiXG4gICAgICAgIFtydGxdPVwicnRsXCJcbiAgICAgICAgW2RldmljZU5hbWVdPVwiZGV2aWNlTmFtZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICBbbGF5b3V0OTRdPVwibGF5b3V0OTRcIlxuICAgICAgICAoc2F2ZSk9XCJvbkVkaXRGb3JtUGFuZWxTYXZlKG51bGwpXCJcbiAgICAgICAgKGNhbmNlbCk9XCJvbkVkaXRGb3JtUGFuZWxDYW5jZWwobnVsbClcIlxuICAgICAgICAodGFiKT1cIm9uVGFiS2V5RG93bigkZXZlbnQsIGluZGV4KVwiXG4gICAgICAgIChjaGFuZ2VUb0VkaXRNb2RlKT1cIm9uQ29sdW1uQ2hhbmdlVG9FZGl0TW9kZSgkZXZlbnQsIGluZGV4KVwiXG4gICAgPlxuICAgIDwvYnN1LWJhcnNhLXRhYmxlLWNvbHVtbj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3N0YXR1c0luZGljYXRvcj5cbiAgICA8YnN1LWJhcnNhLWNvbHVtbi1pbmRpY2F0b3JcbiAgICAgICAgW2hpZGVCb3JkZXJCb3R0b21dPVwiIWRldGFpbHNDb2xsYXBzZWRcIlxuICAgICAgICAqbmdJZj1cInJvd0luZGljYXRvclwiXG4gICAgICAgIFtiYWNrQ29sb3JdPVwicm93SW5kaWNhdG9yQ29sb3JcIlxuICAgID5cbiAgICA8L2JzdS1iYXJzYS1jb2x1bW4taW5kaWNhdG9yPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==