@symphony-talent/component-library 4.178.0 → 4.180.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -81,3 +81,4 @@ coverageIstanbulReporter: {
81
81
  ## Commiting Changes
82
82
 
83
83
  When you have made changes to the files you want to commit please use the `git add` command and to get the commitizen wizard to walk you through the commit message then you can run `npm run commit` command.
84
+
@@ -16,6 +16,7 @@ export class InputSearchCheckboxDropdownComponent {
16
16
  this.renderer = renderer;
17
17
  this.cdRef = cdRef;
18
18
  this.scrollHeightPercentage = 50; // setting the default to 50
19
+ this.hasCaptalise = true; // to check if the text should be capitalized or not
19
20
  this.deselectItem = new EventEmitter();
20
21
  this.selectItem = new EventEmitter();
21
22
  this.searchInputChange = new EventEmitter();
@@ -152,7 +153,9 @@ export class InputSearchCheckboxDropdownComponent {
152
153
  if (this.multiSelectSearch.selectedDropdownList) {
153
154
  this.multiSelectSearch.searchInput =
154
155
  this.multiSelectSearch.selectedDropdownList
155
- .map((dropdownlist) => this.capitalizeFirstChar.transform(dropdownlist.name))
156
+ .map((dropdownlist) => this.hasCaptalise
157
+ ? this.capitalizeFirstChar.transform(dropdownlist.name)
158
+ : dropdownlist.name)
156
159
  .join(', ');
157
160
  }
158
161
  }
@@ -178,10 +181,10 @@ export class InputSearchCheckboxDropdownComponent {
178
181
  }
179
182
  }
180
183
  InputSearchCheckboxDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputSearchCheckboxDropdownComponent, deps: [{ token: i1.CapitalizeFirstCharacterPipe }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
181
- InputSearchCheckboxDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputSearchCheckboxDropdownComponent, selector: "symphony-input-search-checkbox-dropdown", inputs: { isDisabled: "isDisabled", multiSelectSearch: "multiSelectSearch", enablePlaceHolder: "enablePlaceHolder", scrollHeightPercentage: "scrollHeightPercentage", isLoadingData: "isLoadingData", isLoadingInitialData: "isLoadingInitialData", isInverse: "isInverse", size: "size", disableSearch: "disableSearch" }, outputs: { deselectItem: "deselectItem", selectItem: "selectItem", searchInputChange: "searchInputChange", selectionRetain: "selectionRetain", clearAll: "clearAll", conditionCheck: "conditionCheck", createNewItem: "createNewItem", scrollEnd: "scrollEnd", initializeDropdown: "initializeDropdown" }, viewQueries: [{ propertyName: "pop", first: true, predicate: ["pop"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n<div [ngClass]=\"{ 'isInverse': isInverse }\">\n <div\n *ngIf=\"multiSelectSearch.componentHeading\"\n class=\"sfx-filter-label sfx-d-inline-block\"\n >\n <b\n >{{ enablePlaceHolder ? \"\" : multiSelectSearch.componentHeading }}\n <span *ngIf=\"multiSelectSearch.required\" class=\"requiredField\">*</span>\n </b>\n </div>\n <div *ngIf=\"multiSelectSearch.condition\" class=\"sfx-switch-field pull-right\">\n <input\n type=\"radio\"\n id=\"radio-and-{{ conditionSelectionId }}\"\n name=\"radio-and-{{ conditionSelectionId }}\"\n value=\"yes\"\n (click)=\"onConditionClick(' AND ')\"\n [checked]=\"multiSelectSearch.condition === ' AND '\"\n />\n <label class=\"Font400\" for=\"radio-and-{{ conditionSelectionId }}\"\n >and</label\n >\n <input\n type=\"radio\"\n id=\"radio-or-{{ conditionSelectionId }}\"\n name=\"radio-or-{{ conditionSelectionId }}\"\n value=\"yes\"\n (click)=\"onConditionClick(' OR ')\"\n [checked]=\"multiSelectSearch.condition === ' OR '\"\n />\n <label class=\"Font400\" for=\"radio-or-{{ conditionSelectionId }}\">or</label>\n </div>\n <div\n class=\"sfx-custom-dropdown-wrap\"\n [ngClass]=\"{ open: openDropdown }\"\n dropdown\n #dropdown=\"bs-dropdown\"\n (onShown)=\"toggleDropdown()\"\n [insideClick]=\"true\"\n (onHidden)=\"onOkClick(true)\"\n >\n <input\n [ngClass]=\"{ 'invalid-control': isInvalid }\"\n (click)=\"dropdown.isOpen = true\"\n type=\"text\"\n id=\"dropdown-search-{{ multiSelectSearch.componentHeading | trimId}}\"\n [(ngModel)]=\"multiSelectSearch.searchInput\"\n (ngModelChange)=\"onSearchInputChange()\"\n dropdownToggle\n popover=\"{{ popOverText() }}\"\n containerClass=\"sfx-input-popover\"\n triggers=\"\"\n placement=\"top\"\n #pop=\"bs-popover\"\n (mouseenter)=\"showPop()\"\n (mouseleave)=\"onPopMouseLeave()\"\n (focus)=\"onFocusClick(true)\"\n (blur)=\"onFocusClick(false)\"\n class=\"sfx-placeholder\"\n placeholder=\"{{\n enablePlaceHolder ? multiSelectSearch.componentHeading : ''\n }}\"\n autocomplete=\"off\"\n [disabled]=\"isDisabled\"\n [readonly]=\"disableSearch\"\n />\n <symphony-icon *ngIf=\"!disableSearch\" [size]=\"size\" [icon]=\"'si-search-new'\"></symphony-icon>\n <div *dropdownMenu>\n <div class=\"sfx-custom-dropdown\" *ngIf=\"openDropdown\">\n <div *ngIf=\"multiSelectSearch.isSelectAllEnabled\" class=\"sfx-select-all-toggle\">\n <span class=\"sfx-font-bold sfx-mr-10\">Select All</span>\n <symphony-input-toggle\n [isToggled]=\"isAllToggled\"\n [isInverse]=\"false\"\n (toggleClick)=\"onToggleClick($event)\"\n ></symphony-input-toggle>\n </div>\n <!-- Create And Add Tags -->\n <div\n class=\"sfx-create-new-items\"\n *ngIf=\"\n multiSelectSearch.labelCreateNewItems &&\n multiSelectSearch.showCreateNewItems\n \"\n (click)=\"onCreateNewItem()\"\n [ngClass]=\"{\n 'sfx-font-bold': multiSelectSearch.showCreateNewModal\n }\"\n >\n {{ multiSelectSearch.labelCreateNewItems }}\n <span\n class=\"sfx-font-bold\"\n *ngIf=\"!multiSelectSearch.showCreateNewModal\"\n >&nbsp;&apos;\n {{ multiSelectSearch.searchInput | capitalizeFirstCharacter }}&apos;\n </span>\n <i class=\"sfx-icon-Plus sfx-create-new-items-icon\"></i>\n </div>\n <!-- Create And Add Tags ends here -->\n <!-- selected list div -->\n <div\n class=\"sfx-dropdown-selected sfx-custom-scroll\"\n *ngIf=\"multiSelectSearch.selectedDropdownList.length > 0 && !multiSelectSearch.isSelectAllEnabled\"\n >\n <div\n class=\"sfx-d-inline-block\"\n *ngFor=\"let selectedItem of multiSelectSearch.selectedDropdownList\"\n >\n <div\n (click)=\"onDeselectItem(selectedItem); $event.stopPropagation()\"\n class=\"sfx-checkbox sfx-d-inline-block\"\n >\n <input\n type=\"checkbox\"\n checked\n class=\"sfx-checkbox-input\"\n id=\"{{ selectedItem.id }}_{{ selectedItem.name }}\"\n />\n <label\n class=\"Font400\"\n for=\"{{ selectedItem.id }}_{{ selectedItem.name }}\"\n >{{ selectedItem.name | capitalizeFirstCharacter }}\n <br />\n <span\n *ngIf=\"selectedItem.additionalInfo\"\n class=\"selected-additional-info\"\n >\n {{ selectedItem.additionalInfo }}</span\n >\n </label>\n </div>\n <div></div>\n </div>\n </div>\n <!-- selected list div ends here -->\n <!-- Search list -->\n <div\n class=\"sfx-dropdown-unselected sfx-custom-scroll\"\n (scroll)=\"scrollHandler($event)\"\n *ngIf=\"multiSelectSearch.searchedDropdownList.length > 0\"\n >\n <div\n id=\"dropdown-triggers-manually\"\n *ngFor=\"\n let filterDropdownOption of multiSelectSearch.searchedDropdownList\n \"\n >\n <div class=\"sfx-checkbox\">\n <input\n type=\"checkbox\"\n id=\"{{ filterDropdownOption.id }}_{{\n filterDropdownOption.name | trimId\n }}\"\n class=\"sfx-checkbox-input\"\n [disabled]=\"multiSelectSearch.hasMaxSelections\"\n (click)=\"\n onSelectItem(filterDropdownOption); $event.stopPropagation()\n \"\n [(ngModel)]=\"filterDropdownOption.isChecked\"\n />\n <label\n class=\"Font400\"\n for=\"{{ filterDropdownOption.id }}_{{\n filterDropdownOption.name | trimId\n }}\"\n >{{ filterDropdownOption.name | capitalizeFirstCharacter }}\n <br />\n <span\n *ngIf=\"filterDropdownOption.additionalInfo\"\n class=\"additional-info\"\n >\n {{ filterDropdownOption.additionalInfo }}</span\n >\n </label>\n </div>\n <div></div>\n </div>\n <div>\n <symphony-sfx-loader\n [hidden]=\"!isLoadingData\"\n ></symphony-sfx-loader>\n </div>\n </div>\n <symphony-sfx-loader\n [hidden]=\"!isLoadingInitialData\"\n ></symphony-sfx-loader>\n <!-- search list ends here -->\n <!-- Footer -->\n <div *ngIf=\"openDropdown\" class=\"sfx-filter-item-footer\">\n <button\n type=\"button\"\n class=\"pull-left\"\n [disabled]=\"\n !(\n multiSelectSearch.selectedDropdownList &&\n multiSelectSearch.selectedDropdownList.length > 0\n )\n \"\n (click)=\"onClearAllClick()\"\n >\n Clear All\n </button>\n <a href=\"javascript:;\" (click)=\"onOkClick()\" class=\"pull-right\">OK</a>\n </div>\n <!-- End Footer -->\n </div>\n </div>\n </div>\n <div *ngIf=\"isInvalid\" class=\"error-message\">\n Please select a valid option\n </div>\n</div>", styles: [".sfx-input-popover{word-wrap:break-word;max-width:100%}.sfx-placeholder:-ms-input-placeholder{color:#000}.sfx-placeholder::-moz-placeholder{color:#000}.sfx-placeholder::placeholder{color:#000}.requiredField{color:#000}.error-message{color:#ac4463}.invalid-control{border:1px solid #AC4463!important}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input~label{color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input:not(:checked)~label:after{border:2px solid #000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input:checked~label:before{border-bottom:2px solid #000;border-right:2px solid #000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input:checked~label:after{background-color:#fff;border:2px solid #000}.sfx-custom-dropdown-wrap{position:relative;padding:.3rem;width:100%}.sfx-custom-dropdown-wrap input{width:100%;border:1px solid #d0d0d0;height:40px;border-radius:4px;background:#fff;color:#000;outline:none;padding-left:.9375rem;padding-right:1.875rem;line-height:25px}.sfx-custom-dropdown-wrap symphony-icon{right:17px;bottom:13px;position:absolute;color:#000;z-index:2}.sfx-custom-dropdown-wrap .sfx-custom-dropdown{background:#fff;position:absolute;width:100%;z-index:4;left:0;border-width:0px 1px 1px 1px;border-style:solid;border-color:#d9d9d9}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox{margin:0;padding:.625rem 1.25rem}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox:hover{background:#E4E7EF;color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected{border-bottom:1px solid #d9d9d9;padding-bottom:.625rem;padding-top:.625rem;max-height:220px;overflow-y:auto}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover{background:#fff;color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:not(:checked),.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:checked{position:absolute}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input~label{color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:not(:checked)~label:after{border-color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:checked~label:before{border-bottom-color:#000;border-right-color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:checked~label:after{background-color:#fff;border-color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected{padding-bottom:.625rem;padding-top:.625rem;border-bottom:1px solid #d9d9d9;max-height:220px;overflow-y:auto}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-select-all-toggle{padding:15px 20px;border-bottom:1px solid #d9d9d9}.sfx-custom-dropdown-wrap.open{background:#fff}.sfx-custom-dropdown-wrap.open .tree-node-checkbox{height:auto;width:auto}.sfx-custom-dropdown-wrap.open .sfx-create-new-items{padding:.625rem 1.5625rem .625rem 1.25rem;position:relative;border-bottom:1px solid #d0d0d0;cursor:pointer}.sfx-custom-dropdown-wrap.open .sfx-create-new-items .sfx-create-new-items-icon{font-size:.625rem;position:absolute;right:.9375rem;top:.9375rem}.sfx-custom-dropdown-wrap.open input{z-index:2;position:relative;background:#ffffff;color:#000}.sfx-custom-dropdown-wrap.open symphony-icon{color:#000}.sfx-custom-dropdown-wrap.open:after{content:\" \";position:absolute;top:0;left:0;display:inline-block;width:100%;height:100%;z-index:1;border-width:1px 1px 0px 1px;border-style:solid;border-color:#d9d9d9}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar{width:12px}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar-track,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar-track{box-shadow:inset 0 0 3px transparent;border-radius:30px}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar-thumb,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:30px}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar-thumb:hover,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar-thumb:hover{cursor:pointer}.sfx-filter-item-footer{display:inline-block;width:100%;padding:1.875rem 1.25rem 1.5625rem;font-family:runda,sans-serif;font-weight:500}.sfx-filter-item-footer a{cursor:pointer}.sfx-filter-item-footer button{color:#712ace;background:transparent;border:none;padding:0}.sfx-filter-item-footer button:disabled{opacity:.5;cursor:not-allowed}.sfx-checkbox .sfx-checkbox-input~label{color:#fff}.sfx-checkbox .sfx-checkbox-input:not(:checked)~label:after{border:2px solid #fff}.sfx-checkbox .sfx-checkbox-input:checked~label:before{border-bottom:2px solid #fff;border-right:2px solid #fff}.sfx-checkbox .sfx-checkbox-input:checked~label:after{background-color:#212121;border:2px solid #fff}.sfx-checkbox{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-checkbox .sfx-checkbox-input:not(:checked),.sfx-checkbox .sfx-checkbox-input:checked{opacity:0;position:absolute;margin:0;z-index:-1;width:0;height:0;overflow:hidden;left:0;pointer-events:none}.sfx-checkbox .sfx-checkbox-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;padding-left:36px;font-family:runda,sans-serif;font-weight:400;margin:0;word-break:break-word}.sfx-checkbox .sfx-checkbox-input~label.sfx-font-reg{font-family:runda,sans-serif}.sfx-checkbox .sfx-checkbox-input~label:before{transform:translateZ(0);transition:all 0s ease-in;position:absolute;content:\"\";left:0;border-radius:2px}.sfx-checkbox .sfx-checkbox-input~label:after{position:absolute;content:\"\";left:0;border-radius:2px;top:0}.sfx-checkbox .sfx-checkbox-input~label .additional-info,.sfx-checkbox .sfx-checkbox-input~label .selected-additional-info{font-size:12px;color:#565656}.sfx-checkbox .sfx-checkbox-input:not(:checked)~label:before{width:9px;height:15px;border:none;top:1px;left:0;transform:rotate(37deg) scale(.1);transform-origin:100% 100%}.sfx-checkbox .sfx-checkbox-input:not(:checked)~label:after{width:20px;height:20px;border:2px solid #000;z-index:0;border-radius:4px}.sfx-checkbox .sfx-checkbox-input:checked~label:before{top:3px;left:3px;width:6px;height:12px;border-top:0px solid transparent;border-left:0px solid transparent;border-bottom:2px solid #000;border-right:2px solid #000;z-index:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:rotate(37deg) scale(1);transform-origin:100% 100%;border-radius:0}.sfx-checkbox .sfx-checkbox-input:checked~label:after{width:20px;height:20px;background-color:#fff;border:2px solid #000;border-radius:4px}.sfx-checkbox .sfx-checkbox-input:disabled~label{opacity:.3;pointer-events:none}.sfx-checkbox:hover .sfx-checkbox-input~label .additional-info{color:#fff}.sfx-filter-label{font-family:runda,sans-serif;font-weight:500;margin-bottom:.3rem;padding-left:.3rem;line-height:25px}.isInverse .sfx-custom-dropdown-wrap input{border-color:#5b6d80}\n"], components: [{ type: i2.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i3.InputToggleComponent, selector: "symphony-input-toggle", inputs: ["isToggled", "isInverse"], outputs: ["toggleClick"] }, { type: i4.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message", "hasCustomMessage"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.BsDropdownDirective, selector: "[bsDropdown],[dropdown]", inputs: ["autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen", "placement", "triggers", "container", "dropup"], outputs: ["onShown", "onHidden", "isOpenChange"], exportAs: ["bs-dropdown"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.PopoverDirective, selector: "[popover]", inputs: ["outsideClick", "containerClass", "isOpen", "adaptivePosition", "popover", "popoverContext", "popoverTitle", "placement", "triggers", "container", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }], pipes: { "trimId": i9.TrimIdPipe, "capitalizeFirstCharacter": i1.CapitalizeFirstCharacterPipe } });
184
+ InputSearchCheckboxDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputSearchCheckboxDropdownComponent, selector: "symphony-input-search-checkbox-dropdown", inputs: { isDisabled: "isDisabled", multiSelectSearch: "multiSelectSearch", enablePlaceHolder: "enablePlaceHolder", scrollHeightPercentage: "scrollHeightPercentage", isLoadingData: "isLoadingData", isLoadingInitialData: "isLoadingInitialData", isInverse: "isInverse", size: "size", disableSearch: "disableSearch", hasCaptalise: "hasCaptalise" }, outputs: { deselectItem: "deselectItem", selectItem: "selectItem", searchInputChange: "searchInputChange", selectionRetain: "selectionRetain", clearAll: "clearAll", conditionCheck: "conditionCheck", createNewItem: "createNewItem", scrollEnd: "scrollEnd", initializeDropdown: "initializeDropdown" }, viewQueries: [{ propertyName: "pop", first: true, predicate: ["pop"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\n<div [ngClass]=\"{ 'isInverse': isInverse }\">\n <div\n *ngIf=\"multiSelectSearch.componentHeading\"\n class=\"sfx-filter-label sfx-d-inline-block\"\n >\n <b\n >{{ enablePlaceHolder ? \"\" : multiSelectSearch.componentHeading }}\n <span *ngIf=\"multiSelectSearch.required\" class=\"requiredField\">*</span>\n </b>\n </div>\n <div *ngIf=\"multiSelectSearch.condition\" class=\"sfx-switch-field pull-right\">\n <input\n type=\"radio\"\n id=\"radio-and-{{ conditionSelectionId }}\"\n name=\"radio-and-{{ conditionSelectionId }}\"\n value=\"yes\"\n (click)=\"onConditionClick(' AND ')\"\n [checked]=\"multiSelectSearch.condition === ' AND '\"\n />\n <label class=\"Font400\" for=\"radio-and-{{ conditionSelectionId }}\"\n >and</label\n >\n <input\n type=\"radio\"\n id=\"radio-or-{{ conditionSelectionId }}\"\n name=\"radio-or-{{ conditionSelectionId }}\"\n value=\"yes\"\n (click)=\"onConditionClick(' OR ')\"\n [checked]=\"multiSelectSearch.condition === ' OR '\"\n />\n <label class=\"Font400\" for=\"radio-or-{{ conditionSelectionId }}\">or</label>\n </div>\n <div\n class=\"sfx-custom-dropdown-wrap\"\n [ngClass]=\"{ open: openDropdown }\"\n dropdown\n #dropdown=\"bs-dropdown\"\n (onShown)=\"toggleDropdown()\"\n [insideClick]=\"true\"\n (onHidden)=\"onOkClick(true)\"\n >\n <input\n [ngClass]=\"{ 'invalid-control': isInvalid }\"\n (click)=\"dropdown.isOpen = true\"\n type=\"text\"\n id=\"dropdown-search-{{ multiSelectSearch.componentHeading | trimId}}\"\n [(ngModel)]=\"multiSelectSearch.searchInput\"\n (ngModelChange)=\"onSearchInputChange()\"\n dropdownToggle\n popover=\"{{ popOverText() }}\"\n containerClass=\"sfx-input-popover\"\n triggers=\"\"\n placement=\"top\"\n #pop=\"bs-popover\"\n (mouseenter)=\"showPop()\"\n (mouseleave)=\"onPopMouseLeave()\"\n (focus)=\"onFocusClick(true)\"\n (blur)=\"onFocusClick(false)\"\n class=\"sfx-placeholder\"\n placeholder=\"{{\n enablePlaceHolder ? multiSelectSearch.componentHeading : ''\n }}\"\n autocomplete=\"off\"\n [disabled]=\"isDisabled\"\n [readonly]=\"disableSearch\"\n />\n <symphony-icon *ngIf=\"!disableSearch\" [size]=\"size\" [icon]=\"'si-search-new'\"></symphony-icon>\n <div *dropdownMenu>\n <div class=\"sfx-custom-dropdown\" *ngIf=\"openDropdown\">\n <div *ngIf=\"multiSelectSearch.isSelectAllEnabled\" class=\"sfx-select-all-toggle\">\n <span class=\"sfx-font-bold sfx-mr-10\">Select All</span>\n <symphony-input-toggle\n [isToggled]=\"isAllToggled\"\n [isInverse]=\"false\"\n (toggleClick)=\"onToggleClick($event)\"\n ></symphony-input-toggle>\n </div>\n <!-- Create And Add Tags -->\n <div\n class=\"sfx-create-new-items\"\n *ngIf=\"\n multiSelectSearch.labelCreateNewItems &&\n multiSelectSearch.showCreateNewItems\n \"\n (click)=\"onCreateNewItem()\"\n [ngClass]=\"{\n 'sfx-font-bold': multiSelectSearch.showCreateNewModal\n }\"\n >\n {{ multiSelectSearch.labelCreateNewItems }}\n <span\n class=\"sfx-font-bold\"\n *ngIf=\"!multiSelectSearch.showCreateNewModal\"\n >&nbsp;&apos;\n <span *ngIf=\"hasCaptalise\"\n >{{ multiSelectSearch.searchInput | capitalizeFirstCharacter }}</span\n ><span *ngIf=\"!hasCaptalise\"\n >{{ multiSelectSearch.searchInput }}</span\n >&apos;\n </span>\n <i class=\"sfx-icon-Plus sfx-create-new-items-icon\"></i>\n </div>\n <!-- Create And Add Tags ends here -->\n <!-- selected list div -->\n <div\n class=\"sfx-dropdown-selected sfx-custom-scroll\"\n *ngIf=\"multiSelectSearch.selectedDropdownList.length > 0 && !multiSelectSearch.isSelectAllEnabled\"\n >\n <div\n class=\"sfx-d-inline-block\"\n *ngFor=\"let selectedItem of multiSelectSearch.selectedDropdownList\"\n >\n <div\n (click)=\"onDeselectItem(selectedItem); $event.stopPropagation()\"\n class=\"sfx-checkbox sfx-d-inline-block\"\n >\n <input\n type=\"checkbox\"\n checked\n class=\"sfx-checkbox-input\"\n id=\"{{ selectedItem.id }}_{{ selectedItem.name }}\"\n />\n <label\n class=\"Font400\"\n for=\"{{ selectedItem.id }}_{{ selectedItem.name }}\"\n ><span *ngIf=\"hasCaptalise\">{{ selectedItem.name | capitalizeFirstCharacter }}</span><span *ngIf=\"!hasCaptalise\" style=\"white-space: pre\">{{ selectedItem.name }}</span>\n <br />\n <span\n *ngIf=\"selectedItem.additionalInfo\"\n class=\"selected-additional-info\"\n >\n {{ selectedItem.additionalInfo }}</span\n >\n </label>\n </div>\n <div></div>\n </div>\n </div>\n <!-- selected list div ends here -->\n <!-- Search list -->\n <div\n class=\"sfx-dropdown-unselected sfx-custom-scroll\"\n (scroll)=\"scrollHandler($event)\"\n *ngIf=\"multiSelectSearch.searchedDropdownList.length > 0\"\n >\n <div\n id=\"dropdown-triggers-manually\"\n *ngFor=\"\n let filterDropdownOption of multiSelectSearch.searchedDropdownList\n \"\n >\n <div class=\"sfx-checkbox\">\n <input\n type=\"checkbox\"\n id=\"{{ filterDropdownOption.id }}_{{\n filterDropdownOption.name | trimId\n }}\"\n class=\"sfx-checkbox-input\"\n [disabled]=\"multiSelectSearch.hasMaxSelections\"\n (click)=\"\n onSelectItem(filterDropdownOption); $event.stopPropagation()\n \"\n [(ngModel)]=\"filterDropdownOption.isChecked\"\n />\n <label\n class=\"Font400\"\n for=\"{{ filterDropdownOption.id }}_{{\n filterDropdownOption.name | trimId\n }}\"\n ><span *ngIf=\"hasCaptalise\">{{ filterDropdownOption.name | capitalizeFirstCharacter }}</span><span *ngIf=\"!hasCaptalise\" style=\"white-space: pre\">{{ filterDropdownOption.name }}</span>\n <br />\n <span\n *ngIf=\"filterDropdownOption.additionalInfo\"\n class=\"additional-info\"\n >\n {{ filterDropdownOption.additionalInfo }}</span\n >\n </label>\n </div>\n <div></div>\n </div>\n <div>\n <symphony-sfx-loader\n [hidden]=\"!isLoadingData\"\n ></symphony-sfx-loader>\n </div>\n </div>\n <symphony-sfx-loader\n [hidden]=\"!isLoadingInitialData\"\n ></symphony-sfx-loader>\n <!-- search list ends here -->\n <!-- Footer -->\n <div *ngIf=\"openDropdown\" class=\"sfx-filter-item-footer\">\n <button\n type=\"button\"\n class=\"pull-left\"\n [disabled]=\"\n !(\n multiSelectSearch.selectedDropdownList &&\n multiSelectSearch.selectedDropdownList.length > 0\n )\n \"\n (click)=\"onClearAllClick()\"\n >\n Clear All\n </button>\n <a href=\"javascript:;\" (click)=\"onOkClick()\" class=\"pull-right\">OK</a>\n </div>\n <!-- End Footer -->\n </div>\n </div>\n </div>\n <div *ngIf=\"isInvalid\" class=\"error-message\">\n Please select a valid option\n </div>\n</div>", styles: [".sfx-input-popover{word-wrap:break-word;max-width:100%}.sfx-placeholder:-ms-input-placeholder{color:#000}.sfx-placeholder::-moz-placeholder{color:#000}.sfx-placeholder::placeholder{color:#000}.requiredField{color:#000}.error-message{color:#ac4463}.invalid-control{border:1px solid #AC4463!important}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input~label{color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input:not(:checked)~label:after{border:2px solid #000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input:checked~label:before{border-bottom:2px solid #000;border-right:2px solid #000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input:checked~label:after{background-color:#fff;border:2px solid #000}.sfx-custom-dropdown-wrap{position:relative;padding:.3rem;width:100%}.sfx-custom-dropdown-wrap input{width:100%;border:1px solid #d0d0d0;height:40px;border-radius:4px;background:#fff;color:#000;outline:none;padding-left:.9375rem;padding-right:1.875rem;line-height:25px}.sfx-custom-dropdown-wrap symphony-icon{right:17px;bottom:13px;position:absolute;color:#000;z-index:2}.sfx-custom-dropdown-wrap .sfx-custom-dropdown{background:#fff;position:absolute;width:100%;z-index:4;left:0;border-width:0px 1px 1px 1px;border-style:solid;border-color:#d9d9d9}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox{margin:0;padding:.625rem 1.25rem}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox:hover{background:#E4E7EF;color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected{border-bottom:1px solid #d9d9d9;padding-bottom:.625rem;padding-top:.625rem;max-height:220px;overflow-y:auto}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover{background:#fff;color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:not(:checked),.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:checked{position:absolute}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input~label{color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:not(:checked)~label:after{border-color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:checked~label:before{border-bottom-color:#000;border-right-color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:checked~label:after{background-color:#fff;border-color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected{padding-bottom:.625rem;padding-top:.625rem;border-bottom:1px solid #d9d9d9;max-height:220px;overflow-y:auto}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-select-all-toggle{padding:15px 20px;border-bottom:1px solid #d9d9d9}.sfx-custom-dropdown-wrap.open{background:#fff}.sfx-custom-dropdown-wrap.open .tree-node-checkbox{height:auto;width:auto}.sfx-custom-dropdown-wrap.open .sfx-create-new-items{padding:.625rem 1.5625rem .625rem 1.25rem;position:relative;border-bottom:1px solid #d0d0d0;cursor:pointer}.sfx-custom-dropdown-wrap.open .sfx-create-new-items .sfx-create-new-items-icon{font-size:.625rem;position:absolute;right:.9375rem;top:.9375rem}.sfx-custom-dropdown-wrap.open input{z-index:2;position:relative;background:#ffffff;color:#000}.sfx-custom-dropdown-wrap.open symphony-icon{color:#000}.sfx-custom-dropdown-wrap.open:after{content:\" \";position:absolute;top:0;left:0;display:inline-block;width:100%;height:100%;z-index:1;border-width:1px 1px 0px 1px;border-style:solid;border-color:#d9d9d9}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar{width:12px}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar-track,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar-track{box-shadow:inset 0 0 3px transparent;border-radius:30px}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar-thumb,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:30px}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar-thumb:hover,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar-thumb:hover{cursor:pointer}.sfx-filter-item-footer{display:inline-block;width:100%;padding:1.875rem 1.25rem 1.5625rem;font-family:runda,sans-serif;font-weight:500}.sfx-filter-item-footer a{cursor:pointer}.sfx-filter-item-footer button{color:#712ace;background:transparent;border:none;padding:0}.sfx-filter-item-footer button:disabled{opacity:.5;cursor:not-allowed}.sfx-checkbox .sfx-checkbox-input~label{color:#fff}.sfx-checkbox .sfx-checkbox-input:not(:checked)~label:after{border:2px solid #fff}.sfx-checkbox .sfx-checkbox-input:checked~label:before{border-bottom:2px solid #fff;border-right:2px solid #fff}.sfx-checkbox .sfx-checkbox-input:checked~label:after{background-color:#212121;border:2px solid #fff}.sfx-checkbox{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-checkbox .sfx-checkbox-input:not(:checked),.sfx-checkbox .sfx-checkbox-input:checked{opacity:0;position:absolute;margin:0;z-index:-1;width:0;height:0;overflow:hidden;left:0;pointer-events:none}.sfx-checkbox .sfx-checkbox-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;padding-left:36px;font-family:runda,sans-serif;font-weight:400;margin:0;word-break:break-word}.sfx-checkbox .sfx-checkbox-input~label.sfx-font-reg{font-family:runda,sans-serif}.sfx-checkbox .sfx-checkbox-input~label:before{transform:translateZ(0);transition:all 0s ease-in;position:absolute;content:\"\";left:0;border-radius:2px}.sfx-checkbox .sfx-checkbox-input~label:after{position:absolute;content:\"\";left:0;border-radius:2px;top:0}.sfx-checkbox .sfx-checkbox-input~label .additional-info,.sfx-checkbox .sfx-checkbox-input~label .selected-additional-info{font-size:12px;color:#565656}.sfx-checkbox .sfx-checkbox-input:not(:checked)~label:before{width:9px;height:15px;border:none;top:1px;left:0;transform:rotate(37deg) scale(.1);transform-origin:100% 100%}.sfx-checkbox .sfx-checkbox-input:not(:checked)~label:after{width:20px;height:20px;border:2px solid #000;z-index:0;border-radius:4px}.sfx-checkbox .sfx-checkbox-input:checked~label:before{top:3px;left:3px;width:6px;height:12px;border-top:0px solid transparent;border-left:0px solid transparent;border-bottom:2px solid #000;border-right:2px solid #000;z-index:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:rotate(37deg) scale(1);transform-origin:100% 100%;border-radius:0}.sfx-checkbox .sfx-checkbox-input:checked~label:after{width:20px;height:20px;background-color:#fff;border:2px solid #000;border-radius:4px}.sfx-checkbox .sfx-checkbox-input:disabled~label{opacity:.3;pointer-events:none}.sfx-checkbox:hover .sfx-checkbox-input~label .additional-info{color:#fff}.sfx-filter-label{font-family:runda,sans-serif;font-weight:500;margin-bottom:.3rem;padding-left:.3rem;line-height:25px}.isInverse .sfx-custom-dropdown-wrap input{border-color:#5b6d80}\n"], components: [{ type: i2.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i3.InputToggleComponent, selector: "symphony-input-toggle", inputs: ["isToggled", "isInverse"], outputs: ["toggleClick"] }, { type: i4.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message", "hasCustomMessage"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.BsDropdownDirective, selector: "[bsDropdown],[dropdown]", inputs: ["autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen", "placement", "triggers", "container", "dropup"], outputs: ["onShown", "onHidden", "isOpenChange"], exportAs: ["bs-dropdown"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.PopoverDirective, selector: "[popover]", inputs: ["outsideClick", "containerClass", "isOpen", "adaptivePosition", "popover", "popoverContext", "popoverTitle", "placement", "triggers", "container", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }], pipes: { "trimId": i9.TrimIdPipe, "capitalizeFirstCharacter": i1.CapitalizeFirstCharacterPipe } });
182
185
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputSearchCheckboxDropdownComponent, decorators: [{
183
186
  type: Component,
184
- args: [{ selector: 'symphony-input-search-checkbox-dropdown', template: "\n<div [ngClass]=\"{ 'isInverse': isInverse }\">\n <div\n *ngIf=\"multiSelectSearch.componentHeading\"\n class=\"sfx-filter-label sfx-d-inline-block\"\n >\n <b\n >{{ enablePlaceHolder ? \"\" : multiSelectSearch.componentHeading }}\n <span *ngIf=\"multiSelectSearch.required\" class=\"requiredField\">*</span>\n </b>\n </div>\n <div *ngIf=\"multiSelectSearch.condition\" class=\"sfx-switch-field pull-right\">\n <input\n type=\"radio\"\n id=\"radio-and-{{ conditionSelectionId }}\"\n name=\"radio-and-{{ conditionSelectionId }}\"\n value=\"yes\"\n (click)=\"onConditionClick(' AND ')\"\n [checked]=\"multiSelectSearch.condition === ' AND '\"\n />\n <label class=\"Font400\" for=\"radio-and-{{ conditionSelectionId }}\"\n >and</label\n >\n <input\n type=\"radio\"\n id=\"radio-or-{{ conditionSelectionId }}\"\n name=\"radio-or-{{ conditionSelectionId }}\"\n value=\"yes\"\n (click)=\"onConditionClick(' OR ')\"\n [checked]=\"multiSelectSearch.condition === ' OR '\"\n />\n <label class=\"Font400\" for=\"radio-or-{{ conditionSelectionId }}\">or</label>\n </div>\n <div\n class=\"sfx-custom-dropdown-wrap\"\n [ngClass]=\"{ open: openDropdown }\"\n dropdown\n #dropdown=\"bs-dropdown\"\n (onShown)=\"toggleDropdown()\"\n [insideClick]=\"true\"\n (onHidden)=\"onOkClick(true)\"\n >\n <input\n [ngClass]=\"{ 'invalid-control': isInvalid }\"\n (click)=\"dropdown.isOpen = true\"\n type=\"text\"\n id=\"dropdown-search-{{ multiSelectSearch.componentHeading | trimId}}\"\n [(ngModel)]=\"multiSelectSearch.searchInput\"\n (ngModelChange)=\"onSearchInputChange()\"\n dropdownToggle\n popover=\"{{ popOverText() }}\"\n containerClass=\"sfx-input-popover\"\n triggers=\"\"\n placement=\"top\"\n #pop=\"bs-popover\"\n (mouseenter)=\"showPop()\"\n (mouseleave)=\"onPopMouseLeave()\"\n (focus)=\"onFocusClick(true)\"\n (blur)=\"onFocusClick(false)\"\n class=\"sfx-placeholder\"\n placeholder=\"{{\n enablePlaceHolder ? multiSelectSearch.componentHeading : ''\n }}\"\n autocomplete=\"off\"\n [disabled]=\"isDisabled\"\n [readonly]=\"disableSearch\"\n />\n <symphony-icon *ngIf=\"!disableSearch\" [size]=\"size\" [icon]=\"'si-search-new'\"></symphony-icon>\n <div *dropdownMenu>\n <div class=\"sfx-custom-dropdown\" *ngIf=\"openDropdown\">\n <div *ngIf=\"multiSelectSearch.isSelectAllEnabled\" class=\"sfx-select-all-toggle\">\n <span class=\"sfx-font-bold sfx-mr-10\">Select All</span>\n <symphony-input-toggle\n [isToggled]=\"isAllToggled\"\n [isInverse]=\"false\"\n (toggleClick)=\"onToggleClick($event)\"\n ></symphony-input-toggle>\n </div>\n <!-- Create And Add Tags -->\n <div\n class=\"sfx-create-new-items\"\n *ngIf=\"\n multiSelectSearch.labelCreateNewItems &&\n multiSelectSearch.showCreateNewItems\n \"\n (click)=\"onCreateNewItem()\"\n [ngClass]=\"{\n 'sfx-font-bold': multiSelectSearch.showCreateNewModal\n }\"\n >\n {{ multiSelectSearch.labelCreateNewItems }}\n <span\n class=\"sfx-font-bold\"\n *ngIf=\"!multiSelectSearch.showCreateNewModal\"\n >&nbsp;&apos;\n {{ multiSelectSearch.searchInput | capitalizeFirstCharacter }}&apos;\n </span>\n <i class=\"sfx-icon-Plus sfx-create-new-items-icon\"></i>\n </div>\n <!-- Create And Add Tags ends here -->\n <!-- selected list div -->\n <div\n class=\"sfx-dropdown-selected sfx-custom-scroll\"\n *ngIf=\"multiSelectSearch.selectedDropdownList.length > 0 && !multiSelectSearch.isSelectAllEnabled\"\n >\n <div\n class=\"sfx-d-inline-block\"\n *ngFor=\"let selectedItem of multiSelectSearch.selectedDropdownList\"\n >\n <div\n (click)=\"onDeselectItem(selectedItem); $event.stopPropagation()\"\n class=\"sfx-checkbox sfx-d-inline-block\"\n >\n <input\n type=\"checkbox\"\n checked\n class=\"sfx-checkbox-input\"\n id=\"{{ selectedItem.id }}_{{ selectedItem.name }}\"\n />\n <label\n class=\"Font400\"\n for=\"{{ selectedItem.id }}_{{ selectedItem.name }}\"\n >{{ selectedItem.name | capitalizeFirstCharacter }}\n <br />\n <span\n *ngIf=\"selectedItem.additionalInfo\"\n class=\"selected-additional-info\"\n >\n {{ selectedItem.additionalInfo }}</span\n >\n </label>\n </div>\n <div></div>\n </div>\n </div>\n <!-- selected list div ends here -->\n <!-- Search list -->\n <div\n class=\"sfx-dropdown-unselected sfx-custom-scroll\"\n (scroll)=\"scrollHandler($event)\"\n *ngIf=\"multiSelectSearch.searchedDropdownList.length > 0\"\n >\n <div\n id=\"dropdown-triggers-manually\"\n *ngFor=\"\n let filterDropdownOption of multiSelectSearch.searchedDropdownList\n \"\n >\n <div class=\"sfx-checkbox\">\n <input\n type=\"checkbox\"\n id=\"{{ filterDropdownOption.id }}_{{\n filterDropdownOption.name | trimId\n }}\"\n class=\"sfx-checkbox-input\"\n [disabled]=\"multiSelectSearch.hasMaxSelections\"\n (click)=\"\n onSelectItem(filterDropdownOption); $event.stopPropagation()\n \"\n [(ngModel)]=\"filterDropdownOption.isChecked\"\n />\n <label\n class=\"Font400\"\n for=\"{{ filterDropdownOption.id }}_{{\n filterDropdownOption.name | trimId\n }}\"\n >{{ filterDropdownOption.name | capitalizeFirstCharacter }}\n <br />\n <span\n *ngIf=\"filterDropdownOption.additionalInfo\"\n class=\"additional-info\"\n >\n {{ filterDropdownOption.additionalInfo }}</span\n >\n </label>\n </div>\n <div></div>\n </div>\n <div>\n <symphony-sfx-loader\n [hidden]=\"!isLoadingData\"\n ></symphony-sfx-loader>\n </div>\n </div>\n <symphony-sfx-loader\n [hidden]=\"!isLoadingInitialData\"\n ></symphony-sfx-loader>\n <!-- search list ends here -->\n <!-- Footer -->\n <div *ngIf=\"openDropdown\" class=\"sfx-filter-item-footer\">\n <button\n type=\"button\"\n class=\"pull-left\"\n [disabled]=\"\n !(\n multiSelectSearch.selectedDropdownList &&\n multiSelectSearch.selectedDropdownList.length > 0\n )\n \"\n (click)=\"onClearAllClick()\"\n >\n Clear All\n </button>\n <a href=\"javascript:;\" (click)=\"onOkClick()\" class=\"pull-right\">OK</a>\n </div>\n <!-- End Footer -->\n </div>\n </div>\n </div>\n <div *ngIf=\"isInvalid\" class=\"error-message\">\n Please select a valid option\n </div>\n</div>", styles: [".sfx-input-popover{word-wrap:break-word;max-width:100%}.sfx-placeholder:-ms-input-placeholder{color:#000}.sfx-placeholder::-moz-placeholder{color:#000}.sfx-placeholder::placeholder{color:#000}.requiredField{color:#000}.error-message{color:#ac4463}.invalid-control{border:1px solid #AC4463!important}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input~label{color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input:not(:checked)~label:after{border:2px solid #000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input:checked~label:before{border-bottom:2px solid #000;border-right:2px solid #000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input:checked~label:after{background-color:#fff;border:2px solid #000}.sfx-custom-dropdown-wrap{position:relative;padding:.3rem;width:100%}.sfx-custom-dropdown-wrap input{width:100%;border:1px solid #d0d0d0;height:40px;border-radius:4px;background:#fff;color:#000;outline:none;padding-left:.9375rem;padding-right:1.875rem;line-height:25px}.sfx-custom-dropdown-wrap symphony-icon{right:17px;bottom:13px;position:absolute;color:#000;z-index:2}.sfx-custom-dropdown-wrap .sfx-custom-dropdown{background:#fff;position:absolute;width:100%;z-index:4;left:0;border-width:0px 1px 1px 1px;border-style:solid;border-color:#d9d9d9}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox{margin:0;padding:.625rem 1.25rem}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox:hover{background:#E4E7EF;color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected{border-bottom:1px solid #d9d9d9;padding-bottom:.625rem;padding-top:.625rem;max-height:220px;overflow-y:auto}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover{background:#fff;color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:not(:checked),.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:checked{position:absolute}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input~label{color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:not(:checked)~label:after{border-color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:checked~label:before{border-bottom-color:#000;border-right-color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:checked~label:after{background-color:#fff;border-color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected{padding-bottom:.625rem;padding-top:.625rem;border-bottom:1px solid #d9d9d9;max-height:220px;overflow-y:auto}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-select-all-toggle{padding:15px 20px;border-bottom:1px solid #d9d9d9}.sfx-custom-dropdown-wrap.open{background:#fff}.sfx-custom-dropdown-wrap.open .tree-node-checkbox{height:auto;width:auto}.sfx-custom-dropdown-wrap.open .sfx-create-new-items{padding:.625rem 1.5625rem .625rem 1.25rem;position:relative;border-bottom:1px solid #d0d0d0;cursor:pointer}.sfx-custom-dropdown-wrap.open .sfx-create-new-items .sfx-create-new-items-icon{font-size:.625rem;position:absolute;right:.9375rem;top:.9375rem}.sfx-custom-dropdown-wrap.open input{z-index:2;position:relative;background:#ffffff;color:#000}.sfx-custom-dropdown-wrap.open symphony-icon{color:#000}.sfx-custom-dropdown-wrap.open:after{content:\" \";position:absolute;top:0;left:0;display:inline-block;width:100%;height:100%;z-index:1;border-width:1px 1px 0px 1px;border-style:solid;border-color:#d9d9d9}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar{width:12px}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar-track,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar-track{box-shadow:inset 0 0 3px transparent;border-radius:30px}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar-thumb,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:30px}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar-thumb:hover,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar-thumb:hover{cursor:pointer}.sfx-filter-item-footer{display:inline-block;width:100%;padding:1.875rem 1.25rem 1.5625rem;font-family:runda,sans-serif;font-weight:500}.sfx-filter-item-footer a{cursor:pointer}.sfx-filter-item-footer button{color:#712ace;background:transparent;border:none;padding:0}.sfx-filter-item-footer button:disabled{opacity:.5;cursor:not-allowed}.sfx-checkbox .sfx-checkbox-input~label{color:#fff}.sfx-checkbox .sfx-checkbox-input:not(:checked)~label:after{border:2px solid #fff}.sfx-checkbox .sfx-checkbox-input:checked~label:before{border-bottom:2px solid #fff;border-right:2px solid #fff}.sfx-checkbox .sfx-checkbox-input:checked~label:after{background-color:#212121;border:2px solid #fff}.sfx-checkbox{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-checkbox .sfx-checkbox-input:not(:checked),.sfx-checkbox .sfx-checkbox-input:checked{opacity:0;position:absolute;margin:0;z-index:-1;width:0;height:0;overflow:hidden;left:0;pointer-events:none}.sfx-checkbox .sfx-checkbox-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;padding-left:36px;font-family:runda,sans-serif;font-weight:400;margin:0;word-break:break-word}.sfx-checkbox .sfx-checkbox-input~label.sfx-font-reg{font-family:runda,sans-serif}.sfx-checkbox .sfx-checkbox-input~label:before{transform:translateZ(0);transition:all 0s ease-in;position:absolute;content:\"\";left:0;border-radius:2px}.sfx-checkbox .sfx-checkbox-input~label:after{position:absolute;content:\"\";left:0;border-radius:2px;top:0}.sfx-checkbox .sfx-checkbox-input~label .additional-info,.sfx-checkbox .sfx-checkbox-input~label .selected-additional-info{font-size:12px;color:#565656}.sfx-checkbox .sfx-checkbox-input:not(:checked)~label:before{width:9px;height:15px;border:none;top:1px;left:0;transform:rotate(37deg) scale(.1);transform-origin:100% 100%}.sfx-checkbox .sfx-checkbox-input:not(:checked)~label:after{width:20px;height:20px;border:2px solid #000;z-index:0;border-radius:4px}.sfx-checkbox .sfx-checkbox-input:checked~label:before{top:3px;left:3px;width:6px;height:12px;border-top:0px solid transparent;border-left:0px solid transparent;border-bottom:2px solid #000;border-right:2px solid #000;z-index:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:rotate(37deg) scale(1);transform-origin:100% 100%;border-radius:0}.sfx-checkbox .sfx-checkbox-input:checked~label:after{width:20px;height:20px;background-color:#fff;border:2px solid #000;border-radius:4px}.sfx-checkbox .sfx-checkbox-input:disabled~label{opacity:.3;pointer-events:none}.sfx-checkbox:hover .sfx-checkbox-input~label .additional-info{color:#fff}.sfx-filter-label{font-family:runda,sans-serif;font-weight:500;margin-bottom:.3rem;padding-left:.3rem;line-height:25px}.isInverse .sfx-custom-dropdown-wrap input{border-color:#5b6d80}\n"] }]
187
+ args: [{ selector: 'symphony-input-search-checkbox-dropdown', template: "\n<div [ngClass]=\"{ 'isInverse': isInverse }\">\n <div\n *ngIf=\"multiSelectSearch.componentHeading\"\n class=\"sfx-filter-label sfx-d-inline-block\"\n >\n <b\n >{{ enablePlaceHolder ? \"\" : multiSelectSearch.componentHeading }}\n <span *ngIf=\"multiSelectSearch.required\" class=\"requiredField\">*</span>\n </b>\n </div>\n <div *ngIf=\"multiSelectSearch.condition\" class=\"sfx-switch-field pull-right\">\n <input\n type=\"radio\"\n id=\"radio-and-{{ conditionSelectionId }}\"\n name=\"radio-and-{{ conditionSelectionId }}\"\n value=\"yes\"\n (click)=\"onConditionClick(' AND ')\"\n [checked]=\"multiSelectSearch.condition === ' AND '\"\n />\n <label class=\"Font400\" for=\"radio-and-{{ conditionSelectionId }}\"\n >and</label\n >\n <input\n type=\"radio\"\n id=\"radio-or-{{ conditionSelectionId }}\"\n name=\"radio-or-{{ conditionSelectionId }}\"\n value=\"yes\"\n (click)=\"onConditionClick(' OR ')\"\n [checked]=\"multiSelectSearch.condition === ' OR '\"\n />\n <label class=\"Font400\" for=\"radio-or-{{ conditionSelectionId }}\">or</label>\n </div>\n <div\n class=\"sfx-custom-dropdown-wrap\"\n [ngClass]=\"{ open: openDropdown }\"\n dropdown\n #dropdown=\"bs-dropdown\"\n (onShown)=\"toggleDropdown()\"\n [insideClick]=\"true\"\n (onHidden)=\"onOkClick(true)\"\n >\n <input\n [ngClass]=\"{ 'invalid-control': isInvalid }\"\n (click)=\"dropdown.isOpen = true\"\n type=\"text\"\n id=\"dropdown-search-{{ multiSelectSearch.componentHeading | trimId}}\"\n [(ngModel)]=\"multiSelectSearch.searchInput\"\n (ngModelChange)=\"onSearchInputChange()\"\n dropdownToggle\n popover=\"{{ popOverText() }}\"\n containerClass=\"sfx-input-popover\"\n triggers=\"\"\n placement=\"top\"\n #pop=\"bs-popover\"\n (mouseenter)=\"showPop()\"\n (mouseleave)=\"onPopMouseLeave()\"\n (focus)=\"onFocusClick(true)\"\n (blur)=\"onFocusClick(false)\"\n class=\"sfx-placeholder\"\n placeholder=\"{{\n enablePlaceHolder ? multiSelectSearch.componentHeading : ''\n }}\"\n autocomplete=\"off\"\n [disabled]=\"isDisabled\"\n [readonly]=\"disableSearch\"\n />\n <symphony-icon *ngIf=\"!disableSearch\" [size]=\"size\" [icon]=\"'si-search-new'\"></symphony-icon>\n <div *dropdownMenu>\n <div class=\"sfx-custom-dropdown\" *ngIf=\"openDropdown\">\n <div *ngIf=\"multiSelectSearch.isSelectAllEnabled\" class=\"sfx-select-all-toggle\">\n <span class=\"sfx-font-bold sfx-mr-10\">Select All</span>\n <symphony-input-toggle\n [isToggled]=\"isAllToggled\"\n [isInverse]=\"false\"\n (toggleClick)=\"onToggleClick($event)\"\n ></symphony-input-toggle>\n </div>\n <!-- Create And Add Tags -->\n <div\n class=\"sfx-create-new-items\"\n *ngIf=\"\n multiSelectSearch.labelCreateNewItems &&\n multiSelectSearch.showCreateNewItems\n \"\n (click)=\"onCreateNewItem()\"\n [ngClass]=\"{\n 'sfx-font-bold': multiSelectSearch.showCreateNewModal\n }\"\n >\n {{ multiSelectSearch.labelCreateNewItems }}\n <span\n class=\"sfx-font-bold\"\n *ngIf=\"!multiSelectSearch.showCreateNewModal\"\n >&nbsp;&apos;\n <span *ngIf=\"hasCaptalise\"\n >{{ multiSelectSearch.searchInput | capitalizeFirstCharacter }}</span\n ><span *ngIf=\"!hasCaptalise\"\n >{{ multiSelectSearch.searchInput }}</span\n >&apos;\n </span>\n <i class=\"sfx-icon-Plus sfx-create-new-items-icon\"></i>\n </div>\n <!-- Create And Add Tags ends here -->\n <!-- selected list div -->\n <div\n class=\"sfx-dropdown-selected sfx-custom-scroll\"\n *ngIf=\"multiSelectSearch.selectedDropdownList.length > 0 && !multiSelectSearch.isSelectAllEnabled\"\n >\n <div\n class=\"sfx-d-inline-block\"\n *ngFor=\"let selectedItem of multiSelectSearch.selectedDropdownList\"\n >\n <div\n (click)=\"onDeselectItem(selectedItem); $event.stopPropagation()\"\n class=\"sfx-checkbox sfx-d-inline-block\"\n >\n <input\n type=\"checkbox\"\n checked\n class=\"sfx-checkbox-input\"\n id=\"{{ selectedItem.id }}_{{ selectedItem.name }}\"\n />\n <label\n class=\"Font400\"\n for=\"{{ selectedItem.id }}_{{ selectedItem.name }}\"\n ><span *ngIf=\"hasCaptalise\">{{ selectedItem.name | capitalizeFirstCharacter }}</span><span *ngIf=\"!hasCaptalise\" style=\"white-space: pre\">{{ selectedItem.name }}</span>\n <br />\n <span\n *ngIf=\"selectedItem.additionalInfo\"\n class=\"selected-additional-info\"\n >\n {{ selectedItem.additionalInfo }}</span\n >\n </label>\n </div>\n <div></div>\n </div>\n </div>\n <!-- selected list div ends here -->\n <!-- Search list -->\n <div\n class=\"sfx-dropdown-unselected sfx-custom-scroll\"\n (scroll)=\"scrollHandler($event)\"\n *ngIf=\"multiSelectSearch.searchedDropdownList.length > 0\"\n >\n <div\n id=\"dropdown-triggers-manually\"\n *ngFor=\"\n let filterDropdownOption of multiSelectSearch.searchedDropdownList\n \"\n >\n <div class=\"sfx-checkbox\">\n <input\n type=\"checkbox\"\n id=\"{{ filterDropdownOption.id }}_{{\n filterDropdownOption.name | trimId\n }}\"\n class=\"sfx-checkbox-input\"\n [disabled]=\"multiSelectSearch.hasMaxSelections\"\n (click)=\"\n onSelectItem(filterDropdownOption); $event.stopPropagation()\n \"\n [(ngModel)]=\"filterDropdownOption.isChecked\"\n />\n <label\n class=\"Font400\"\n for=\"{{ filterDropdownOption.id }}_{{\n filterDropdownOption.name | trimId\n }}\"\n ><span *ngIf=\"hasCaptalise\">{{ filterDropdownOption.name | capitalizeFirstCharacter }}</span><span *ngIf=\"!hasCaptalise\" style=\"white-space: pre\">{{ filterDropdownOption.name }}</span>\n <br />\n <span\n *ngIf=\"filterDropdownOption.additionalInfo\"\n class=\"additional-info\"\n >\n {{ filterDropdownOption.additionalInfo }}</span\n >\n </label>\n </div>\n <div></div>\n </div>\n <div>\n <symphony-sfx-loader\n [hidden]=\"!isLoadingData\"\n ></symphony-sfx-loader>\n </div>\n </div>\n <symphony-sfx-loader\n [hidden]=\"!isLoadingInitialData\"\n ></symphony-sfx-loader>\n <!-- search list ends here -->\n <!-- Footer -->\n <div *ngIf=\"openDropdown\" class=\"sfx-filter-item-footer\">\n <button\n type=\"button\"\n class=\"pull-left\"\n [disabled]=\"\n !(\n multiSelectSearch.selectedDropdownList &&\n multiSelectSearch.selectedDropdownList.length > 0\n )\n \"\n (click)=\"onClearAllClick()\"\n >\n Clear All\n </button>\n <a href=\"javascript:;\" (click)=\"onOkClick()\" class=\"pull-right\">OK</a>\n </div>\n <!-- End Footer -->\n </div>\n </div>\n </div>\n <div *ngIf=\"isInvalid\" class=\"error-message\">\n Please select a valid option\n </div>\n</div>", styles: [".sfx-input-popover{word-wrap:break-word;max-width:100%}.sfx-placeholder:-ms-input-placeholder{color:#000}.sfx-placeholder::-moz-placeholder{color:#000}.sfx-placeholder::placeholder{color:#000}.requiredField{color:#000}.error-message{color:#ac4463}.invalid-control{border:1px solid #AC4463!important}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input~label{color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input:not(:checked)~label:after{border:2px solid #000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input:checked~label:before{border-bottom:2px solid #000;border-right:2px solid #000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox .sfx-checkbox-input:checked~label:after{background-color:#fff;border:2px solid #000}.sfx-custom-dropdown-wrap{position:relative;padding:.3rem;width:100%}.sfx-custom-dropdown-wrap input{width:100%;border:1px solid #d0d0d0;height:40px;border-radius:4px;background:#fff;color:#000;outline:none;padding-left:.9375rem;padding-right:1.875rem;line-height:25px}.sfx-custom-dropdown-wrap symphony-icon{right:17px;bottom:13px;position:absolute;color:#000;z-index:2}.sfx-custom-dropdown-wrap .sfx-custom-dropdown{background:#fff;position:absolute;width:100%;z-index:4;left:0;border-width:0px 1px 1px 1px;border-style:solid;border-color:#d9d9d9}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox{margin:0;padding:.625rem 1.25rem}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-checkbox:hover{background:#E4E7EF;color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected{border-bottom:1px solid #d9d9d9;padding-bottom:.625rem;padding-top:.625rem;max-height:220px;overflow-y:auto}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover{background:#fff;color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:not(:checked),.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:checked{position:absolute}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input~label{color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:not(:checked)~label:after{border-color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:checked~label:before{border-bottom-color:#000;border-right-color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected .sfx-checkbox:hover .sfx-checkbox-input:checked~label:after{background-color:#fff;border-color:#000}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected{padding-bottom:.625rem;padding-top:.625rem;border-bottom:1px solid #d9d9d9;max-height:220px;overflow-y:auto}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-select-all-toggle{padding:15px 20px;border-bottom:1px solid #d9d9d9}.sfx-custom-dropdown-wrap.open{background:#fff}.sfx-custom-dropdown-wrap.open .tree-node-checkbox{height:auto;width:auto}.sfx-custom-dropdown-wrap.open .sfx-create-new-items{padding:.625rem 1.5625rem .625rem 1.25rem;position:relative;border-bottom:1px solid #d0d0d0;cursor:pointer}.sfx-custom-dropdown-wrap.open .sfx-create-new-items .sfx-create-new-items-icon{font-size:.625rem;position:absolute;right:.9375rem;top:.9375rem}.sfx-custom-dropdown-wrap.open input{z-index:2;position:relative;background:#ffffff;color:#000}.sfx-custom-dropdown-wrap.open symphony-icon{color:#000}.sfx-custom-dropdown-wrap.open:after{content:\" \";position:absolute;top:0;left:0;display:inline-block;width:100%;height:100%;z-index:1;border-width:1px 1px 0px 1px;border-style:solid;border-color:#d9d9d9}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar{width:12px}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar-track,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar-track{box-shadow:inset 0 0 3px transparent;border-radius:30px}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar-thumb,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:30px}.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-selected::-webkit-scrollbar-thumb:hover,.sfx-custom-dropdown-wrap .sfx-custom-dropdown .sfx-dropdown-unselected::-webkit-scrollbar-thumb:hover{cursor:pointer}.sfx-filter-item-footer{display:inline-block;width:100%;padding:1.875rem 1.25rem 1.5625rem;font-family:runda,sans-serif;font-weight:500}.sfx-filter-item-footer a{cursor:pointer}.sfx-filter-item-footer button{color:#712ace;background:transparent;border:none;padding:0}.sfx-filter-item-footer button:disabled{opacity:.5;cursor:not-allowed}.sfx-checkbox .sfx-checkbox-input~label{color:#fff}.sfx-checkbox .sfx-checkbox-input:not(:checked)~label:after{border:2px solid #fff}.sfx-checkbox .sfx-checkbox-input:checked~label:before{border-bottom:2px solid #fff;border-right:2px solid #fff}.sfx-checkbox .sfx-checkbox-input:checked~label:after{background-color:#212121;border:2px solid #fff}.sfx-checkbox{margin:10px 0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sfx-checkbox .sfx-checkbox-input:not(:checked),.sfx-checkbox .sfx-checkbox-input:checked{opacity:0;position:absolute;margin:0;z-index:-1;width:0;height:0;overflow:hidden;left:0;pointer-events:none}.sfx-checkbox .sfx-checkbox-input~label{display:inline-block;position:relative;cursor:pointer;height:100%;line-height:20px;font-size:14px;color:#000;padding-left:36px;font-family:runda,sans-serif;font-weight:400;margin:0;word-break:break-word}.sfx-checkbox .sfx-checkbox-input~label.sfx-font-reg{font-family:runda,sans-serif}.sfx-checkbox .sfx-checkbox-input~label:before{transform:translateZ(0);transition:all 0s ease-in;position:absolute;content:\"\";left:0;border-radius:2px}.sfx-checkbox .sfx-checkbox-input~label:after{position:absolute;content:\"\";left:0;border-radius:2px;top:0}.sfx-checkbox .sfx-checkbox-input~label .additional-info,.sfx-checkbox .sfx-checkbox-input~label .selected-additional-info{font-size:12px;color:#565656}.sfx-checkbox .sfx-checkbox-input:not(:checked)~label:before{width:9px;height:15px;border:none;top:1px;left:0;transform:rotate(37deg) scale(.1);transform-origin:100% 100%}.sfx-checkbox .sfx-checkbox-input:not(:checked)~label:after{width:20px;height:20px;border:2px solid #000;z-index:0;border-radius:4px}.sfx-checkbox .sfx-checkbox-input:checked~label:before{top:3px;left:3px;width:6px;height:12px;border-top:0px solid transparent;border-left:0px solid transparent;border-bottom:2px solid #000;border-right:2px solid #000;z-index:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:rotate(37deg) scale(1);transform-origin:100% 100%;border-radius:0}.sfx-checkbox .sfx-checkbox-input:checked~label:after{width:20px;height:20px;background-color:#fff;border:2px solid #000;border-radius:4px}.sfx-checkbox .sfx-checkbox-input:disabled~label{opacity:.3;pointer-events:none}.sfx-checkbox:hover .sfx-checkbox-input~label .additional-info{color:#fff}.sfx-filter-label{font-family:runda,sans-serif;font-weight:500;margin-bottom:.3rem;padding-left:.3rem;line-height:25px}.isInverse .sfx-custom-dropdown-wrap input{border-color:#5b6d80}\n"] }]
185
188
  }], ctorParameters: function () { return [{ type: i1.CapitalizeFirstCharacterPipe }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { pop: [{
186
189
  type: ViewChild,
187
190
  args: ['pop', { static: false }]
@@ -206,6 +209,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
206
209
  type: Input
207
210
  }], disableSearch: [{
208
211
  type: Input
212
+ }], hasCaptalise: [{
213
+ type: Input
209
214
  }], deselectItem: [{
210
215
  type: Output
211
216
  }], selectItem: [{
@@ -225,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
225
230
  }], initializeDropdown: [{
226
231
  type: Output
227
232
  }] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvYXRvbXMvaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duL2lucHV0LXNlYXJjaC1jaGVja2JveC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXNlYXJjaC1jaGVja2JveC1kcm9wZG93bi9pbnB1dC1zZWFyY2gtY2hlY2tib3gtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEdBT1YsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7QUFZN0IsTUFBTSxPQUFPLG9DQUFvQztJQW1DL0MsWUFDVSxtQkFBaUQsRUFDakQsUUFBbUIsRUFDbkIsS0FBd0I7UUFGeEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUE4QjtRQUNqRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBN0J6QiwyQkFBc0IsR0FBVyxFQUFFLENBQUMsQ0FBQyw0QkFBNEI7UUFPaEUsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBNkIsQ0FBQztRQUM3RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFDM0Qsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMvQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUIs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XG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgVmlld0NoaWxkLFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFJlbmRlcmVyMixcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcblxuaW1wb3J0IHsgUG9wb3ZlckRpcmVjdGl2ZSB9IGZyb20gJ25neC1ib290c3RyYXAvcG9wb3Zlcic7XG5pbXBvcnQgeyB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FwaXRhbGl6ZUZpcnN0Q2hhcmFjdGVyUGlwZSB9IGZyb20gJy4vY2FwaXRhbGl6ZS1maXJzdC1jaGFyYWN0ZXIucGlwZSc7XG5pbXBvcnQge1xuICBNdWx0aVNlbGVjdERhdGFNb2R1bGUsXG4gIE11bHRpc2VsZWN0U2VhcmNoQ2hlY2tib3gsXG59IGZyb20gJy4vaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3ltcGhvbnktaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXNlYXJjaC1jaGVja2JveC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LXNlYXJjaC1jaGVja2JveC1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElucHV0U2VhcmNoQ2hlY2tib3hEcm9wZG93bkNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0XG57XG4gIEBWaWV3Q2hpbGQoJ3BvcCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwb3A6IFBvcG92ZXJEaXJlY3RpdmU7XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJykgZHJvcGRvd246IEJzRHJvcGRvd25EaXJlY3RpdmU7XG5cbiAgQElucHV0KCkgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgbXVsdGlTZWxlY3RTZWFyY2g6IE11bHRpU2VsZWN0RGF0YU1vZHVsZTtcbiAgQElucHV0KCkgZW5hYmxlUGxhY2VIb2xkZXI6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNjcm9sbEhlaWdodFBlcmNlbnRhZ2U6IG51bWJlciA9IDUwOyAvLyBzZXR0aW5nIHRoZSBkZWZhdWx0IHRvIDUwXG4gIEBJbnB1dCgpIGlzTG9hZGluZ0RhdGE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzTG9hZGluZ0luaXRpYWxEYXRhOiBib29sZWFuO1xuICBASW5wdXQoKSBpc0ludmVyc2U6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNpemU6IHN0cmluZztcbiAgQElucHV0KCkgZGlzYWJsZVNlYXJjaDogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgZGVzZWxlY3RJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxNdWx0aXNlbGVjdFNlYXJjaENoZWNrYm94PigpO1xuICBAT3V0cHV0KCkgc2VsZWN0SXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8TXVsdGlzZWxlY3RTZWFyY2hDaGVja2JveD4oKTtcbiAgQE91dHB1dCgpIHNlYXJjaElucHV0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25SZXRhaW4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjbGVhckFsbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNvbmRpdGlvbkNoZWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjcmVhdGVOZXdJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBzY3JvbGxFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBpbml0aWFsaXplRHJvcGRvd24gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIGlzQWxsVG9nZ2xlZDogYm9vbGVhbjtcbiAgcHVibGljIHBvcE1vdXNlTGVmdDogYm9vbGVhbjtcbiAgcHVibGljIG9wZW5Ecm9wZG93biA9IGZhbHNlO1xuICBwdWJsaWMgc2VsZWN0ZWQgPSB0cnVlO1xuICBwdWJsaWMgY29uZGl0aW9uU2VsZWN0aW9uSWQ6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgaGFzT2theUJ1dHRvbkJlZW5DbGlja2VkOiBib29sZWFuO1xuICBwdWJsaWMgaXNJbkZvY3VzID0gZmFsc2U7XG4gIHB1YmxpYyBpc0ludmFsaWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjYXBpdGFsaXplRmlyc3RDaGFyOiBDYXBpdGFsaXplRmlyc3RDaGFyYWN0ZXJQaXBlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRJdGVtc1RleHQoKTtcbiAgICB0aGlzLnNpemU9ICcxNHB4J1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTZWxlY3RlZEl0ZW1zVGV4dCgpO1xuICAgIC8vIHJhZGlvIGJ1dHRvbiBpZCBnZW5lcmF0b3IsIHRvIHByb3ZpZGUgdW5pcXVlIGlkcyBmb3IgYWR2YW5jZWQgc2VhcmNoIGFuZCBlZGl0IHNtYXJ0IGZvbGRlci5cbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5jb21wb25lbnRIZWFkaW5nKSB7XG4gICAgICB0aGlzLmNvbmRpdGlvblNlbGVjdGlvbklkID1cbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5jb21wb25lbnRIZWFkaW5nLnJlcGxhY2UoL1xccy9nLCAnJyk7XG5cbiAgICAgIC8vIEZvciBDdXN0b20gRmllbGRzXG4gICAgICB0aGlzLmNvbmRpdGlvblNlbGVjdGlvbklkID0gdGhpcy5jb25kaXRpb25TZWxlY3Rpb25JZC5yZXBsYWNlKFxuICAgICAgICAvW15hLXpBLVpdL2csXG4gICAgICAgICcnXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5tb2RlbElkZW50aWZpZXIpIHtcbiAgICAgIHRoaXMuY29uZGl0aW9uU2VsZWN0aW9uSWQgPVxuICAgICAgICB0aGlzLmNvbmRpdGlvblNlbGVjdGlvbklkICtcbiAgICAgICAgJ18nICtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5tb2RlbElkZW50aWZpZXIucmVwbGFjZSgvXFxzL2csICcnKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubXVsdGlTZWxlY3RTZWFyY2guaXNFeHBhbmRlZE9uSW5pdGlhbGl6ZSkge1xuICAgICAgdGhpcy5kcm9wZG93bi5pc09wZW4gPSB0cnVlO1xuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG4gIGZvY3VzT25TZWFyY2hJbnB1dCgpIHtcbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5jb21wb25lbnRIZWFkaW5nKSB7XG4gICAgICBsZXQgZm9jdXNUZXh0ID0gdGhpcy5yZW5kZXJlci5zZWxlY3RSb290RWxlbWVudChgI2Ryb3Bkb3duLXNlYXJjaC0ke3RoaXMubXVsdGlTZWxlY3RTZWFyY2guY29tcG9uZW50SGVhZGluZy5yZXBsYWNlKC9bXlxcd10vZywgXCJcIil9YClcbiAgICAgIGZvY3VzVGV4dC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbEhhbmRsZXIoZXZlbnQpOiB2b2lkIHtcbiAgICAvLyB0cmlnZ2VyIGFuIGV2ZW50IG9uIGVuZCBvZiB0aGUgc2Nyb2xsXG4gICAgaWYgKFxuICAgICAgZXZlbnQudGFyZ2V0Lm9mZnNldEhlaWdodCArIGV2ZW50LnRhcmdldC5zY3JvbGxUb3AgPj1cbiAgICAgIGV2ZW50LnRhcmdldC5zY3JvbGxIZWlnaHQgKiAodGhpcy5zY3JvbGxIZWlnaHRQZXJjZW50YWdlIC8gMTAwKVxuICAgICkge1xuICAgICAgdGhpcy5zY3JvbGxFbmQuZW1pdCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaElucHV0Q2hhbmdlKCkge1xuICAgIHRoaXMuc2VhcmNoSW5wdXRDaGFuZ2UuZW1pdCh0aGlzLm11bHRpU2VsZWN0U2VhcmNoLnNlYXJjaElucHV0KTtcbiAgfVxuXG4gIG9uRGVzZWxlY3RJdGVtKGRlc2VsZWN0ZWRJdGVtKSB7XG4gICAgdGhpcy5mb2N1c09uU2VhcmNoSW5wdXQoKTtcbiAgICB0aGlzLmRlc2VsZWN0SXRlbS5lbWl0KGRlc2VsZWN0ZWRJdGVtKTtcbiAgfVxuXG4gIG9uU2VsZWN0SXRlbShzZWxlY3RlZEl0ZW0pIHtcbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5pc1NlbGVjdEFsbEVuYWJsZWQgPT0gdHJ1ZSkge1xuICAgICAgc2VsZWN0ZWRJdGVtLmlzQ2hlY2tlZCA9ICFzZWxlY3RlZEl0ZW0uaXNDaGVja2VkO1xuICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5zZWxlY3RlZERyb3Bkb3duTGlzdCA9XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RTZWFyY2guc2VhcmNoZWREcm9wZG93bkxpc3QuZmlsdGVyKFxuICAgICAgICAgIChzZWxlY3RlZEFsbEl0ZW0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZEFsbEl0ZW0uaXNDaGVja2VkID09IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0U2VhcmNoLnNlbGVjdGVkRHJvcGRvd25MaXN0Lmxlbmd0aCA9PVxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0U2VhcmNoLnNlYXJjaGVkRHJvcGRvd25MaXN0Lmxlbmd0aFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuaXNBbGxUb2dnbGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNBbGxUb2dnbGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBcbiAgICB0aGlzLmZvY3VzT25TZWFyY2hJbnB1dCgpO1xuICAgIHRoaXMuc2VsZWN0SXRlbS5lbWl0KHNlbGVjdGVkSXRlbSk7XG4gIH1cblxuICBvbkNsZWFyQWxsQ2xpY2soKSB7XG4gICAgdGhpcy5mb2N1c09uU2VhcmNoSW5wdXQoKTtcbiAgICB0aGlzLm11bHRpU2VsZWN0U2VhcmNoLnNlYXJjaElucHV0ID0gJyc7XG4gICAgdGhpcy5jbGVhckFsbC5lbWl0KCk7XG4gIH1cblxuICBvbk9rQ2xpY2soaXNIaWRkZW4gPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5pc0V4cGFuZGVkT25Jbml0aWFsaXplIHx8ICFpc0hpZGRlbikge1xuICAgICAgaWYgKCF0aGlzLmlzSW5Gb2N1cykge1xuICAgICAgICBpZiAoIXRoaXMubXVsdGlTZWxlY3RTZWFyY2guaXNFeHBhbmRlZE9uSW5pdGlhbGl6ZSkge1xuICAgICAgICAgIHRoaXMub3BlbkRyb3Bkb3duID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEl0ZW1zVGV4dCgpO1xuICAgICAgICBpZiAoIXRoaXMuaGFzT2theUJ1dHRvbkJlZW5DbGlja2VkKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3Rpb25SZXRhaW4uZW1pdCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5pc0V4cGFuZGVkT25Jbml0aWFsaXplKSB7XG4gICAgICAgICAgdGhpcy5oYXNPa2F5QnV0dG9uQmVlbkNsaWNrZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oKSB7XG4gICAgaWYgKCF0aGlzLm9wZW5Ecm9wZG93bikge1xuICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5zZWFyY2hJbnB1dCA9ICcnO1xuICAgICAgdGhpcy5pbml0aWFsaXplRHJvcGRvd24uZW1pdCh0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5oYXNPa2F5QnV0dG9uQmVlbkNsaWNrZWQgPSBmYWxzZTtcbiAgICB0aGlzLm9wZW5Ecm9wZG93biA9IHRydWU7XG4gIH1cblxuICBwb3BPdmVyVGV4dCgpIHtcbiAgICBpZiAoIXRoaXMub3BlbkRyb3Bkb3duKSB7XG4gICAgICByZXR1cm4gdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5zZWFyY2hJbnB1dDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzaG93UG9wKCkge1xuICAgIHRoaXMucG9wTW91c2VMZWZ0ID0gZmFsc2U7XG5cbiAgICBjb25zdCBzY2hlZHVsZXIgPSB0aW1lcig1MDApO1xuICAgIHNjaGVkdWxlci5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnBvcE1vdXNlTGVmdCAmJiB0aGlzLnBvcCkge1xuICAgICAgICB0aGlzLnBvcC5zaG93KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvblBvcE1vdXNlTGVhdmUoKSB7XG4gICAgdGhpcy5wb3BNb3VzZUxlZnQgPSB0cnVlO1xuICAgIHRoaXMucG9wLmhpZGUoKTtcbiAgfVxuXG4gIG9uQ29uZGl0aW9uQ2xpY2soY29uZGl0aW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbmRpdGlvbkNoZWNrLmVtaXQoY29uZGl0aW9uKTtcbiAgfVxuXG4gIHNldFNlbGVjdGVkSXRlbXNUZXh0KCkge1xuICAgIGlmICghdGhpcy5vcGVuRHJvcGRvd24pIHtcbiAgICAgIGlmICh0aGlzLm11bHRpU2VsZWN0U2VhcmNoKSB7XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RTZWFyY2guc2VhcmNoSW5wdXQgPSAnJztcblxuICAgICAgICBpZiAodGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5zZWxlY3RlZERyb3Bkb3duTGlzdCkge1xuICAgICAgICAgIHRoaXMubXVsdGlTZWxlY3RTZWFyY2guc2VhcmNoSW5wdXQgPVxuICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5zZWxlY3RlZERyb3Bkb3duTGlzdFxuICAgICAgICAgICAgICAubWFwKChkcm9wZG93bmxpc3QpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5jYXBpdGFsaXplRmlyc3RDaGFyLnRyYW5zZm9ybShkcm9wZG93bmxpc3QubmFtZSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAuam9pbignLCAnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uQ3JlYXRlTmV3SXRlbSgpIHtcbiAgICB0aGlzLmNyZWF0ZU5ld0l0ZW0uZW1pdCh0aGlzLm11bHRpU2VsZWN0U2VhcmNoLnNlYXJjaElucHV0KTtcbiAgfVxuXG4gIG9uRm9jdXNDbGljayhpc0luRm9jdXM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzSW5Gb2N1cyA9IGlzSW5Gb2N1cztcbiAgfVxuXG4gIG9uVG9nZ2xlQ2xpY2soZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQgPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5zZWFyY2hlZERyb3Bkb3duTGlzdC5mb3JFYWNoKFxuICAgICAgICAoZHJvcGRvd25saXN0KSA9PiAoZHJvcGRvd25saXN0LmlzQ2hlY2tlZCA9IHRydWUpXG4gICAgICApO1xuICAgICAgdGhpcy5pc0FsbFRvZ2dsZWQgPSB0cnVlO1xuICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5zZWxlY3RlZERyb3Bkb3duTGlzdCA9XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RTZWFyY2guc2VhcmNoZWREcm9wZG93bkxpc3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNBbGxUb2dnbGVkID0gZmFsc2U7XG4gICAgICB0aGlzLm11bHRpU2VsZWN0U2VhcmNoLnNlYXJjaGVkRHJvcGRvd25MaXN0LmZvckVhY2goXG4gICAgICAgIChkcm9wZG93bmxpc3QpID0+IChkcm9wZG93bmxpc3QuaXNDaGVja2VkID0gZmFsc2UpXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiXG48ZGl2IFtuZ0NsYXNzXT1cInsgJ2lzSW52ZXJzZSc6IGlzSW52ZXJzZSB9XCI+XG4gIDxkaXZcbiAgICAqbmdJZj1cIm11bHRpU2VsZWN0U2VhcmNoLmNvbXBvbmVudEhlYWRpbmdcIlxuICAgIGNsYXNzPVwic2Z4LWZpbHRlci1sYWJlbCBzZngtZC1pbmxpbmUtYmxvY2tcIlxuICA+XG4gICAgPGJcbiAgICAgID57eyBlbmFibGVQbGFjZUhvbGRlciA/IFwiXCIgOiBtdWx0aVNlbGVjdFNlYXJjaC5jb21wb25lbnRIZWFkaW5nIH19XG4gICAgICA8c3BhbiAqbmdJZj1cIm11bHRpU2VsZWN0U2VhcmNoLnJlcXVpcmVkXCIgY2xhc3M9XCJyZXF1aXJlZEZpZWxkXCI+Kjwvc3Bhbj5cbiAgICA8L2I+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwibXVsdGlTZWxlY3RTZWFyY2guY29uZGl0aW9uXCIgY2xhc3M9XCJzZngtc3dpdGNoLWZpZWxkIHB1bGwtcmlnaHRcIj5cbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICBpZD1cInJhZGlvLWFuZC17eyBjb25kaXRpb25TZWxlY3Rpb25JZCB9fVwiXG4gICAgICBuYW1lPVwicmFkaW8tYW5kLXt7IGNvbmRpdGlvblNlbGVjdGlvbklkIH19XCJcbiAgICAgIHZhbHVlPVwieWVzXCJcbiAgICAgIChjbGljayk9XCJvbkNvbmRpdGlvbkNsaWNrKCcgQU5EICcpXCJcbiAgICAgIFtjaGVja2VkXT1cIm11bHRpU2VsZWN0U2VhcmNoLmNvbmRpdGlvbiA9PT0gJyBBTkQgJ1wiXG4gICAgLz5cbiAgICA8bGFiZWwgY2xhc3M9XCJGb250NDAwXCIgZm9yPVwicmFkaW8tYW5kLXt7IGNvbmRpdGlvblNlbGVjdGlvbklkIH19XCJcbiAgICAgID5hbmQ8L2xhYmVsXG4gICAgPlxuICAgIDxpbnB1dFxuICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgIGlkPVwicmFkaW8tb3Ite3sgY29uZGl0aW9uU2VsZWN0aW9uSWQgfX1cIlxuICAgICAgbmFtZT1cInJhZGlvLW9yLXt7IGNvbmRpdGlvblNlbGVjdGlvbklkIH19XCJcbiAgICAgIHZhbHVlPVwieWVzXCJcbiAgICAgIChjbGljayk9XCJvbkNvbmRpdGlvbkNsaWNrKCcgT1IgJylcIlxuICAgICAgW2NoZWNrZWRdPVwibXVsdGlTZWxlY3RTZWFyY2guY29uZGl0aW9uID09PSAnIE9SICdcIlxuICAgIC8+XG4gICAgPGxhYmVsIGNsYXNzPVwiRm9udDQwMFwiIGZvcj1cInJhZGlvLW9yLXt7IGNvbmRpdGlvblNlbGVjdGlvbklkIH19XCI+b3I8L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2Z4LWN1c3RvbS1kcm9wZG93bi13cmFwXCJcbiAgICBbbmdDbGFzc109XCJ7IG9wZW46IG9wZW5Ecm9wZG93biB9XCJcbiAgICBkcm9wZG93blxuICAgICNkcm9wZG93bj1cImJzLWRyb3Bkb3duXCJcbiAgICAob25TaG93bik9XCJ0b2dnbGVEcm9wZG93bigpXCJcbiAgICBbaW5zaWRlQ2xpY2tdPVwidHJ1ZVwiXG4gICAgKG9uSGlkZGVuKT1cIm9uT2tDbGljayh0cnVlKVwiXG4gID5cbiAgICA8aW5wdXRcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2ludmFsaWQtY29udHJvbCc6IGlzSW52YWxpZCB9XCJcbiAgICAgIChjbGljayk9XCJkcm9wZG93bi5pc09wZW4gPSB0cnVlXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIGlkPVwiZHJvcGRvd24tc2VhcmNoLXt7IG11bHRpU2VsZWN0U2VhcmNoLmNvbXBvbmVudEhlYWRpbmcgfCB0cmltSWR9fVwiXG4gICAgICBbKG5nTW9kZWwpXT1cIm11bHRpU2VsZWN0U2VhcmNoLnNlYXJjaElucHV0XCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoSW5wdXRDaGFuZ2UoKVwiXG4gICAgICBkcm9wZG93blRvZ2dsZVxuICAgICAgcG9wb3Zlcj1cInt7IHBvcE92ZXJUZXh0KCkgfX1cIlxuICAgICAgY29udGFpbmVyQ2xhc3M9XCJzZngtaW5wdXQtcG9wb3ZlclwiXG4gICAgICB0cmlnZ2Vycz1cIlwiXG4gICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgI3BvcD1cImJzLXBvcG92ZXJcIlxuICAgICAgKG1vdXNlZW50ZXIpPVwic2hvd1BvcCgpXCJcbiAgICAgIChtb3VzZWxlYXZlKT1cIm9uUG9wTW91c2VMZWF2ZSgpXCJcbiAgICAgIChmb2N1cyk9XCJvbkZvY3VzQ2xpY2sodHJ1ZSlcIlxuICAgICAgKGJsdXIpPVwib25Gb2N1c0NsaWNrKGZhbHNlKVwiXG4gICAgICBjbGFzcz1cInNmeC1wbGFjZWhvbGRlclwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7XG4gICAgICAgIGVuYWJsZVBsYWNlSG9sZGVyID8gbXVsdGlTZWxlY3RTZWFyY2guY29tcG9uZW50SGVhZGluZyA6ICcnXG4gICAgICB9fVwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cImRpc2FibGVTZWFyY2hcIlxuICAgIC8+XG4gICAgPHN5bXBob255LWljb24gKm5nSWY9XCIhZGlzYWJsZVNlYXJjaFwiIFtzaXplXT1cInNpemVcIiBbaWNvbl09XCInc2ktc2VhcmNoLW5ldydcIj48L3N5bXBob255LWljb24+XG4gICAgPGRpdiAqZHJvcGRvd25NZW51PlxuICAgICAgPGRpdiBjbGFzcz1cInNmeC1jdXN0b20tZHJvcGRvd25cIiAqbmdJZj1cIm9wZW5Ecm9wZG93blwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibXVsdGlTZWxlY3RTZWFyY2guaXNTZWxlY3RBbGxFbmFibGVkXCIgY2xhc3M9XCJzZngtc2VsZWN0LWFsbC10b2dnbGVcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNmeC1mb250LWJvbGQgc2Z4LW1yLTEwXCI+U2VsZWN0IEFsbDwvc3Bhbj5cbiAgICAgICAgICA8c3ltcGhvbnktaW5wdXQtdG9nZ2xlXG4gICAgICAgICAgW2lzVG9nZ2xlZF09XCJpc0FsbFRvZ2dsZWRcIlxuICAgICAgICAgIFtpc0ludmVyc2VdPVwiZmFsc2VcIlxuICAgICAgICAgICh0b2dnbGVDbGljayk9XCJvblRvZ2dsZUNsaWNrKCRldmVudClcIlxuICAgICAgICAgID48L3N5bXBob255LWlucHV0LXRvZ2dsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQ3JlYXRlIEFuZCBBZGQgVGFncyAtLT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2Z4LWNyZWF0ZS1uZXctaXRlbXNcIlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBtdWx0aVNlbGVjdFNlYXJjaC5sYWJlbENyZWF0ZU5ld0l0ZW1zICYmXG4gICAgICAgICAgICBtdWx0aVNlbGVjdFNlYXJjaC5zaG93Q3JlYXRlTmV3SXRlbXNcbiAgICAgICAgICBcIlxuICAgICAgICAgIChjbGljayk9XCJvbkNyZWF0ZU5ld0l0ZW0oKVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3NmeC1mb250LWJvbGQnOiBtdWx0aVNlbGVjdFNlYXJjaC5zaG93Q3JlYXRlTmV3TW9kYWxcbiAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IG11bHRpU2VsZWN0U2VhcmNoLmxhYmVsQ3JlYXRlTmV3SXRlbXMgfX1cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJzZngtZm9udC1ib2xkXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIW11bHRpU2VsZWN0U2VhcmNoLnNob3dDcmVhdGVOZXdNb2RhbFwiXG4gICAgICAgICAgICA+Jm5ic3A7JmFwb3M7XG4gICAgICAgICAgICB7eyBtdWx0aVNlbGVjdFNlYXJjaC5zZWFyY2hJbnB1dCB8IGNhcGl0YWxpemVGaXJzdENoYXJhY3RlciB9fSZhcG9zO1xuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8aSBjbGFzcz1cInNmeC1pY29uLVBsdXMgc2Z4LWNyZWF0ZS1uZXctaXRlbXMtaWNvblwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQ3JlYXRlIEFuZCBBZGQgVGFncyBlbmRzIGhlcmUgLS0+XG4gICAgICAgIDwhLS0gc2VsZWN0ZWQgbGlzdCBkaXYgLS0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNmeC1kcm9wZG93bi1zZWxlY3RlZCBzZngtY3VzdG9tLXNjcm9sbFwiXG4gICAgICAgICAgKm5nSWY9XCJtdWx0aVNlbGVjdFNlYXJjaC5zZWxlY3RlZERyb3Bkb3duTGlzdC5sZW5ndGggPiAwICYmICFtdWx0aVNlbGVjdFNlYXJjaC5pc1NlbGVjdEFsbEVuYWJsZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJzZngtZC1pbmxpbmUtYmxvY2tcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNlbGVjdGVkSXRlbSBvZiBtdWx0aVNlbGVjdFNlYXJjaC5zZWxlY3RlZERyb3Bkb3duTGlzdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25EZXNlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZngtY2hlY2tib3ggc2Z4LWQtaW5saW5lLWJsb2NrXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBjaGVja2VkXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZngtY2hlY2tib3gtaW5wdXRcIlxuICAgICAgICAgICAgICAgIGlkPVwie3sgc2VsZWN0ZWRJdGVtLmlkIH19X3t7IHNlbGVjdGVkSXRlbS5uYW1lIH19XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJGb250NDAwXCJcbiAgICAgICAgICAgICAgICBmb3I9XCJ7eyBzZWxlY3RlZEl0ZW0uaWQgfX1fe3sgc2VsZWN0ZWRJdGVtLm5hbWUgfX1cIlxuICAgICAgICAgICAgICAgID57eyBzZWxlY3RlZEl0ZW0ubmFtZSB8IGNhcGl0YWxpemVGaXJzdENoYXJhY3RlciB9fVxuICAgICAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkSXRlbS5hZGRpdGlvbmFsSW5mb1wiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkLWFkZGl0aW9uYWwtaW5mb1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgc2VsZWN0ZWRJdGVtLmFkZGl0aW9uYWxJbmZvIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBzZWxlY3RlZCBsaXN0IGRpdiBlbmRzIGhlcmUgLS0+XG4gICAgICAgIDwhLS0gU2VhcmNoIGxpc3QgIC0tPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZngtZHJvcGRvd24tdW5zZWxlY3RlZCBzZngtY3VzdG9tLXNjcm9sbFwiXG4gICAgICAgICAgKHNjcm9sbCk9XCJzY3JvbGxIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICpuZ0lmPVwibXVsdGlTZWxlY3RTZWFyY2guc2VhcmNoZWREcm9wZG93bkxpc3QubGVuZ3RoID4gMFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBpZD1cImRyb3Bkb3duLXRyaWdnZXJzLW1hbnVhbGx5XCJcbiAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICBsZXQgZmlsdGVyRHJvcGRvd25PcHRpb24gb2YgbXVsdGlTZWxlY3RTZWFyY2guc2VhcmNoZWREcm9wZG93bkxpc3RcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNmeC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIGlkPVwie3sgZmlsdGVyRHJvcGRvd25PcHRpb24uaWQgfX1fe3tcbiAgICAgICAgICAgICAgICAgIGZpbHRlckRyb3Bkb3duT3B0aW9uLm5hbWUgfCB0cmltSWRcbiAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZngtY2hlY2tib3gtaW5wdXRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJtdWx0aVNlbGVjdFNlYXJjaC5oYXNNYXhTZWxlY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgb25TZWxlY3RJdGVtKGZpbHRlckRyb3Bkb3duT3B0aW9uKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlckRyb3Bkb3duT3B0aW9uLmlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiRm9udDQwMFwiXG4gICAgICAgICAgICAgICAgZm9yPVwie3sgZmlsdGVyRHJvcGRvd25PcHRpb24uaWQgfX1fe3tcbiAgICAgICAgICAgICAgICAgIGZpbHRlckRyb3Bkb3duT3B0aW9uLm5hbWUgfCB0cmltSWRcbiAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPnt7IGZpbHRlckRyb3Bkb3duT3B0aW9uLm5hbWUgfCBjYXBpdGFsaXplRmlyc3RDaGFyYWN0ZXIgfX1cbiAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmaWx0ZXJEcm9wZG93bk9wdGlvbi5hZGRpdGlvbmFsSW5mb1wiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZGl0aW9uYWwtaW5mb1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgZmlsdGVyRHJvcGRvd25PcHRpb24uYWRkaXRpb25hbEluZm8gfX08L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzeW1waG9ueS1zZngtbG9hZGVyXG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiIWlzTG9hZGluZ0RhdGFcIlxuICAgICAgICAgICAgPjwvc3ltcGhvbnktc2Z4LWxvYWRlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzeW1waG9ueS1zZngtbG9hZGVyXG4gICAgICAgICAgW2hpZGRlbl09XCIhaXNMb2FkaW5nSW5pdGlhbERhdGFcIlxuICAgICAgICA+PC9zeW1waG9ueS1zZngtbG9hZGVyPlxuICAgICAgICA8IS0tIHNlYXJjaCBsaXN0IGVuZHMgaGVyZSAtLT5cbiAgICAgICAgPCEtLSBGb290ZXIgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJvcGVuRHJvcGRvd25cIiBjbGFzcz1cInNmeC1maWx0ZXItaXRlbS1mb290ZXJcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwicHVsbC1sZWZ0XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICBtdWx0aVNlbGVjdFNlYXJjaC5zZWxlY3RlZERyb3Bkb3duTGlzdCAmJlxuICAgICAgICAgICAgICAgIG11bHRpU2VsZWN0U2VhcmNoLnNlbGVjdGVkRHJvcGRvd25MaXN0Lmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyQWxsQ2xpY2soKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQ2xlYXIgQWxsXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJvbk9rQ2xpY2soKVwiIGNsYXNzPVwicHVsbC1yaWdodFwiPk9LPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBFbmQgRm9vdGVyIC0tPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+XG4gICAgUGxlYXNlIHNlbGVjdCBhIHZhbGlkIG9wdGlvblxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvYXRvbXMvaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duL2lucHV0LXNlYXJjaC1jaGVja2JveC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXNlYXJjaC1jaGVja2JveC1kcm9wZG93bi9pbnB1dC1zZWFyY2gtY2hlY2tib3gtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEdBT1YsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7QUFZN0IsTUFBTSxPQUFPLG9DQUFvQztJQW9DL0MsWUFDVSxtQkFBaUQsRUFDakQsUUFBbUIsRUFDbkIsS0FBd0I7UUFGeEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUE4QjtRQUNqRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBOUJ6QiwyQkFBc0IsR0FBVyxFQUFFLENBQUMsQ0FBQyw0QkFBNEI7UUFNakUsaUJBQVksR0FBYSxJQUFJLENBQUMsQ0FBQyxvREFBb0Q7UUFFbEYsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBNkIsQ0FBQztRQUM3RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFDM0Qsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMvQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFD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O2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBWaWV3Q2hpbGQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgUmVuZGVyZXIyLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJ25neC1ib290c3RyYXAvZHJvcGRvd24nO1xuXG5pbXBvcnQgeyBQb3BvdmVyRGlyZWN0aXZlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wb3BvdmVyJztcbmltcG9ydCB7IHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXBpdGFsaXplRmlyc3RDaGFyYWN0ZXJQaXBlIH0gZnJvbSAnLi9jYXBpdGFsaXplLWZpcnN0LWNoYXJhY3Rlci5waXBlJztcbmltcG9ydCB7XG4gIE11bHRpU2VsZWN0RGF0YU1vZHVsZSxcbiAgTXVsdGlzZWxlY3RTZWFyY2hDaGVja2JveCxcbn0gZnJvbSAnLi9pbnB1dC1zZWFyY2gtY2hlY2tib3gtZHJvcGRvd24ubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1pbnB1dC1zZWFyY2gtY2hlY2tib3gtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtc2VhcmNoLWNoZWNrYm94LWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRTZWFyY2hDaGVja2JveERyb3Bkb3duQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXRcbntcbiAgQFZpZXdDaGlsZCgncG9wJywgeyBzdGF0aWM6IGZhbHNlIH0pIHBvcDogUG9wb3ZlckRpcmVjdGl2ZTtcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd24nKSBkcm9wZG93bjogQnNEcm9wZG93bkRpcmVjdGl2ZTtcblxuICBASW5wdXQoKSBpc0Rpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBtdWx0aVNlbGVjdFNlYXJjaDogTXVsdGlTZWxlY3REYXRhTW9kdWxlO1xuICBASW5wdXQoKSBlbmFibGVQbGFjZUhvbGRlcjogYm9vbGVhbjtcbiAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0UGVyY2VudGFnZTogbnVtYmVyID0gNTA7IC8vIHNldHRpbmcgdGhlIGRlZmF1bHQgdG8gNTBcbiAgQElucHV0KCkgaXNMb2FkaW5nRGF0YTogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNMb2FkaW5nSW5pdGlhbERhdGE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzSW52ZXJzZTogYm9vbGVhbjtcbiAgQElucHV0KCkgc2l6ZTogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlU2VhcmNoOiBib29sZWFuO1xuICBASW5wdXQoKSBoYXNDYXB0YWxpc2UgOiBib29sZWFuID0gdHJ1ZTsgLy8gdG8gY2hlY2sgaWYgdGhlIHRleHQgc2hvdWxkIGJlIGNhcGl0YWxpemVkIG9yIG5vdFxuXG4gIEBPdXRwdXQoKSBkZXNlbGVjdEl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPE11bHRpc2VsZWN0U2VhcmNoQ2hlY2tib3g+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxNdWx0aXNlbGVjdFNlYXJjaENoZWNrYm94PigpO1xuICBAT3V0cHV0KCkgc2VhcmNoSW5wdXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvblJldGFpbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsZWFyQWxsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY29uZGl0aW9uQ2hlY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGNyZWF0ZU5ld0l0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHNjcm9sbEVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGluaXRpYWxpemVEcm9wZG93biA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgaXNBbGxUb2dnbGVkOiBib29sZWFuO1xuICBwdWJsaWMgcG9wTW91c2VMZWZ0OiBib29sZWFuO1xuICBwdWJsaWMgb3BlbkRyb3Bkb3duID0gZmFsc2U7XG4gIHB1YmxpYyBzZWxlY3RlZCA9IHRydWU7XG4gIHB1YmxpYyBjb25kaXRpb25TZWxlY3Rpb25JZDogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBoYXNPa2F5QnV0dG9uQmVlbkNsaWNrZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0luRm9jdXMgPSBmYWxzZTtcbiAgcHVibGljIGlzSW52YWxpZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNhcGl0YWxpemVGaXJzdENoYXI6IENhcGl0YWxpemVGaXJzdENoYXJhY3RlclBpcGUsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTZWxlY3RlZEl0ZW1zVGV4dCgpO1xuICAgIHRoaXMuc2l6ZT0gJzE0cHgnXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFNlbGVjdGVkSXRlbXNUZXh0KCk7XG4gICAgLy8gcmFkaW8gYnV0dG9uIGlkIGdlbmVyYXRvciwgdG8gcHJvdmlkZSB1bmlxdWUgaWRzIGZvciBhZHZhbmNlZCBzZWFyY2ggYW5kIGVkaXQgc21hcnQgZm9sZGVyLlxuICAgIGlmICh0aGlzLm11bHRpU2VsZWN0U2VhcmNoLmNvbXBvbmVudEhlYWRpbmcpIHtcbiAgICAgIHRoaXMuY29uZGl0aW9uU2VsZWN0aW9uSWQgPVxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0U2VhcmNoLmNvbXBvbmVudEhlYWRpbmcucmVwbGFjZSgvXFxzL2csICcnKTtcblxuICAgICAgLy8gRm9yIEN1c3RvbSBGaWVsZHNcbiAgICAgIHRoaXMuY29uZGl0aW9uU2VsZWN0aW9uSWQgPSB0aGlzLmNvbmRpdGlvblNlbGVjdGlvbklkLnJlcGxhY2UoXG4gICAgICAgIC9bXmEtekEtWl0vZyxcbiAgICAgICAgJydcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLm11bHRpU2VsZWN0U2VhcmNoLm1vZGVsSWRlbnRpZmllcikge1xuICAgICAgdGhpcy5jb25kaXRpb25TZWxlY3Rpb25JZCA9XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU2VsZWN0aW9uSWQgK1xuICAgICAgICAnXycgK1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0U2VhcmNoLm1vZGVsSWRlbnRpZmllci5yZXBsYWNlKC9cXHMvZywgJycpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5pc0V4cGFuZGVkT25Jbml0aWFsaXplKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duLmlzT3BlbiA9IHRydWU7XG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cbiAgZm9jdXNPblNlYXJjaElucHV0KCkge1xuICAgIGlmICh0aGlzLm11bHRpU2VsZWN0U2VhcmNoLmNvbXBvbmVudEhlYWRpbmcpIHtcbiAgICAgIGxldCBmb2N1c1RleHQgPSB0aGlzLnJlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KGAjZHJvcGRvd24tc2VhcmNoLSR7dGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5jb21wb25lbnRIZWFkaW5nLnJlcGxhY2UoL1teXFx3XS9nLCBcIlwiKX1gKVxuICAgICAgZm9jdXNUZXh0LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgc2Nyb2xsSGFuZGxlcihldmVudCk6IHZvaWQge1xuICAgIC8vIHRyaWdnZXIgYW4gZXZlbnQgb24gZW5kIG9mIHRoZSBzY3JvbGxcbiAgICBpZiAoXG4gICAgICBldmVudC50YXJnZXQub2Zmc2V0SGVpZ2h0ICsgZXZlbnQudGFyZ2V0LnNjcm9sbFRvcCA+PVxuICAgICAgZXZlbnQudGFyZ2V0LnNjcm9sbEhlaWdodCAqICh0aGlzLnNjcm9sbEhlaWdodFBlcmNlbnRhZ2UgLyAxMDApXG4gICAgKSB7XG4gICAgICB0aGlzLnNjcm9sbEVuZC5lbWl0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoSW5wdXRDaGFuZ2UoKSB7XG4gICAgdGhpcy5zZWFyY2hJbnB1dENoYW5nZS5lbWl0KHRoaXMubXVsdGlTZWxlY3RTZWFyY2guc2VhcmNoSW5wdXQpO1xuICB9XG5cbiAgb25EZXNlbGVjdEl0ZW0oZGVzZWxlY3RlZEl0ZW0pIHtcbiAgICB0aGlzLmZvY3VzT25TZWFyY2hJbnB1dCgpO1xuICAgIHRoaXMuZGVzZWxlY3RJdGVtLmVtaXQoZGVzZWxlY3RlZEl0ZW0pO1xuICB9XG5cbiAgb25TZWxlY3RJdGVtKHNlbGVjdGVkSXRlbSkge1xuICAgIGlmICh0aGlzLm11bHRpU2VsZWN0U2VhcmNoLmlzU2VsZWN0QWxsRW5hYmxlZCA9PSB0cnVlKSB7XG4gICAgICBzZWxlY3RlZEl0ZW0uaXNDaGVja2VkID0gIXNlbGVjdGVkSXRlbS5pc0NoZWNrZWQ7XG4gICAgICB0aGlzLm11bHRpU2VsZWN0U2VhcmNoLnNlbGVjdGVkRHJvcGRvd25MaXN0ID1cbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5zZWFyY2hlZERyb3Bkb3duTGlzdC5maWx0ZXIoXG4gICAgICAgICAgKHNlbGVjdGVkQWxsSXRlbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkQWxsSXRlbS5pc0NoZWNrZWQgPT0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RTZWFyY2guc2VsZWN0ZWREcm9wZG93bkxpc3QubGVuZ3RoID09XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RTZWFyY2guc2VhcmNoZWREcm9wZG93bkxpc3QubGVuZ3RoXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5pc0FsbFRvZ2dsZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc0FsbFRvZ2dsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IFxuICAgIHRoaXMuZm9jdXNPblNlYXJjaElucHV0KCk7XG4gICAgdGhpcy5zZWxlY3RJdGVtLmVtaXQoc2VsZWN0ZWRJdGVtKTtcbiAgfVxuXG4gIG9uQ2xlYXJBbGxDbGljaygpIHtcbiAgICB0aGlzLmZvY3VzT25TZWFyY2hJbnB1dCgpO1xuICAgIHRoaXMubXVsdGlTZWxlY3RTZWFyY2guc2VhcmNoSW5wdXQgPSAnJztcbiAgICB0aGlzLmNsZWFyQWxsLmVtaXQoKTtcbiAgfVxuXG4gIG9uT2tDbGljayhpc0hpZGRlbiA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLm11bHRpU2VsZWN0U2VhcmNoLmlzRXhwYW5kZWRPbkluaXRpYWxpemUgfHwgIWlzSGlkZGVuKSB7XG4gICAgICBpZiAoIXRoaXMuaXNJbkZvY3VzKSB7XG4gICAgICAgIGlmICghdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5pc0V4cGFuZGVkT25Jbml0aWFsaXplKSB7XG4gICAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFNlbGVjdGVkSXRlbXNUZXh0KCk7XG4gICAgICAgIGlmICghdGhpcy5oYXNPa2F5QnV0dG9uQmVlbkNsaWNrZWQpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvblJldGFpbi5lbWl0KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLm11bHRpU2VsZWN0U2VhcmNoLmlzRXhwYW5kZWRPbkluaXRpYWxpemUpIHtcbiAgICAgICAgICB0aGlzLmhhc09rYXlCdXR0b25CZWVuQ2xpY2tlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0b2dnbGVEcm9wZG93bigpIHtcbiAgICBpZiAoIXRoaXMub3BlbkRyb3Bkb3duKSB7XG4gICAgICB0aGlzLm11bHRpU2VsZWN0U2VhcmNoLnNlYXJjaElucHV0ID0gJyc7XG4gICAgICB0aGlzLmluaXRpYWxpemVEcm9wZG93bi5lbWl0KHRydWUpO1xuICAgIH1cbiAgICB0aGlzLmhhc09rYXlCdXR0b25CZWVuQ2xpY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMub3BlbkRyb3Bkb3duID0gdHJ1ZTtcbiAgfVxuXG4gIHBvcE92ZXJUZXh0KCkge1xuICAgIGlmICghdGhpcy5vcGVuRHJvcGRvd24pIHtcbiAgICAgIHJldHVybiB0aGlzLm11bHRpU2VsZWN0U2VhcmNoLnNlYXJjaElucHV0O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHNob3dQb3AoKSB7XG4gICAgdGhpcy5wb3BNb3VzZUxlZnQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHNjaGVkdWxlciA9IHRpbWVyKDUwMCk7XG4gICAgc2NoZWR1bGVyLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMucG9wTW91c2VMZWZ0ICYmIHRoaXMucG9wKSB7XG4gICAgICAgIHRoaXMucG9wLnNob3coKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG9uUG9wTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLnBvcE1vdXNlTGVmdCA9IHRydWU7XG4gICAgdGhpcy5wb3AuaGlkZSgpO1xuICB9XG5cbiAgb25Db25kaXRpb25DbGljayhjb25kaXRpb246IHN0cmluZykge1xuICAgIHRoaXMuY29uZGl0aW9uQ2hlY2suZW1pdChjb25kaXRpb24pO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRJdGVtc1RleHQoKSB7XG4gICAgaWYgKCF0aGlzLm9wZW5Ecm9wZG93bikge1xuICAgICAgaWYgKHRoaXMubXVsdGlTZWxlY3RTZWFyY2gpIHtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5zZWFyY2hJbnB1dCA9ICcnO1xuXG4gICAgICAgIGlmICh0aGlzLm11bHRpU2VsZWN0U2VhcmNoLnNlbGVjdGVkRHJvcGRvd25MaXN0KSB7XG4gICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5zZWFyY2hJbnB1dCA9XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0U2VhcmNoLnNlbGVjdGVkRHJvcGRvd25MaXN0XG4gICAgICAgICAgICAgIC5tYXAoKGRyb3Bkb3dubGlzdCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmhhc0NhcHRhbGlzZVxuICAgICAgICAgICAgICAgICAgPyB0aGlzLmNhcGl0YWxpemVGaXJzdENoYXIudHJhbnNmb3JtKGRyb3Bkb3dubGlzdC5uYW1lKVxuICAgICAgICAgICAgICAgICAgOiBkcm9wZG93bmxpc3QubmFtZVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5qb2luKCcsICcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25DcmVhdGVOZXdJdGVtKCkge1xuICAgIHRoaXMuY3JlYXRlTmV3SXRlbS5lbWl0KHRoaXMubXVsdGlTZWxlY3RTZWFyY2guc2VhcmNoSW5wdXQpO1xuICB9XG5cbiAgb25Gb2N1c0NsaWNrKGlzSW5Gb2N1czogYm9vbGVhbikge1xuICAgIHRoaXMuaXNJbkZvY3VzID0gaXNJbkZvY3VzO1xuICB9XG5cbiAgb25Ub2dnbGVDbGljayhldmVudCkge1xuICAgIGlmIChldmVudCA9PSB0cnVlKSB7XG4gICAgICB0aGlzLm11bHRpU2VsZWN0U2VhcmNoLnNlYXJjaGVkRHJvcGRvd25MaXN0LmZvckVhY2goXG4gICAgICAgIChkcm9wZG93bmxpc3QpID0+IChkcm9wZG93bmxpc3QuaXNDaGVja2VkID0gdHJ1ZSlcbiAgICAgICk7XG4gICAgICB0aGlzLmlzQWxsVG9nZ2xlZCA9IHRydWU7XG4gICAgICB0aGlzLm11bHRpU2VsZWN0U2VhcmNoLnNlbGVjdGVkRHJvcGRvd25MaXN0ID1cbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdFNlYXJjaC5zZWFyY2hlZERyb3Bkb3duTGlzdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc0FsbFRvZ2dsZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMubXVsdGlTZWxlY3RTZWFyY2guc2VhcmNoZWREcm9wZG93bkxpc3QuZm9yRWFjaChcbiAgICAgICAgKGRyb3Bkb3dubGlzdCkgPT4gKGRyb3Bkb3dubGlzdC5pc0NoZWNrZWQgPSBmYWxzZSlcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCJcbjxkaXYgW25nQ2xhc3NdPVwieyAnaXNJbnZlcnNlJzogaXNJbnZlcnNlIH1cIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwibXVsdGlTZWxlY3RTZWFyY2guY29tcG9uZW50SGVhZGluZ1wiXG4gICAgY2xhc3M9XCJzZngtZmlsdGVyLWxhYmVsIHNmeC1kLWlubGluZS1ibG9ja1wiXG4gID5cbiAgICA8YlxuICAgICAgPnt7IGVuYWJsZVBsYWNlSG9sZGVyID8gXCJcIiA6IG11bHRpU2VsZWN0U2VhcmNoLmNvbXBvbmVudEhlYWRpbmcgfX1cbiAgICAgIDxzcGFuICpuZ0lmPVwibXVsdGlTZWxlY3RTZWFyY2gucmVxdWlyZWRcIiBjbGFzcz1cInJlcXVpcmVkRmllbGRcIj4qPC9zcGFuPlxuICAgIDwvYj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJtdWx0aVNlbGVjdFNlYXJjaC5jb25kaXRpb25cIiBjbGFzcz1cInNmeC1zd2l0Y2gtZmllbGQgcHVsbC1yaWdodFwiPlxuICAgIDxpbnB1dFxuICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgIGlkPVwicmFkaW8tYW5kLXt7IGNvbmRpdGlvblNlbGVjdGlvbklkIH19XCJcbiAgICAgIG5hbWU9XCJyYWRpby1hbmQte3sgY29uZGl0aW9uU2VsZWN0aW9uSWQgfX1cIlxuICAgICAgdmFsdWU9XCJ5ZXNcIlxuICAgICAgKGNsaWNrKT1cIm9uQ29uZGl0aW9uQ2xpY2soJyBBTkQgJylcIlxuICAgICAgW2NoZWNrZWRdPVwibXVsdGlTZWxlY3RTZWFyY2guY29uZGl0aW9uID09PSAnIEFORCAnXCJcbiAgICAvPlxuICAgIDxsYWJlbCBjbGFzcz1cIkZvbnQ0MDBcIiBmb3I9XCJyYWRpby1hbmQte3sgY29uZGl0aW9uU2VsZWN0aW9uSWQgfX1cIlxuICAgICAgPmFuZDwvbGFiZWxcbiAgICA+XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgaWQ9XCJyYWRpby1vci17eyBjb25kaXRpb25TZWxlY3Rpb25JZCB9fVwiXG4gICAgICBuYW1lPVwicmFkaW8tb3Ite3sgY29uZGl0aW9uU2VsZWN0aW9uSWQgfX1cIlxuICAgICAgdmFsdWU9XCJ5ZXNcIlxuICAgICAgKGNsaWNrKT1cIm9uQ29uZGl0aW9uQ2xpY2soJyBPUiAnKVwiXG4gICAgICBbY2hlY2tlZF09XCJtdWx0aVNlbGVjdFNlYXJjaC5jb25kaXRpb24gPT09ICcgT1IgJ1wiXG4gICAgLz5cbiAgICA8bGFiZWwgY2xhc3M9XCJGb250NDAwXCIgZm9yPVwicmFkaW8tb3Ite3sgY29uZGl0aW9uU2VsZWN0aW9uSWQgfX1cIj5vcjwvbGFiZWw+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJzZngtY3VzdG9tLWRyb3Bkb3duLXdyYXBcIlxuICAgIFtuZ0NsYXNzXT1cInsgb3Blbjogb3BlbkRyb3Bkb3duIH1cIlxuICAgIGRyb3Bkb3duXG4gICAgI2Ryb3Bkb3duPVwiYnMtZHJvcGRvd25cIlxuICAgIChvblNob3duKT1cInRvZ2dsZURyb3Bkb3duKClcIlxuICAgIFtpbnNpZGVDbGlja109XCJ0cnVlXCJcbiAgICAob25IaWRkZW4pPVwib25Pa0NsaWNrKHRydWUpXCJcbiAgPlxuICAgIDxpbnB1dFxuICAgICAgW25nQ2xhc3NdPVwieyAnaW52YWxpZC1jb250cm9sJzogaXNJbnZhbGlkIH1cIlxuICAgICAgKGNsaWNrKT1cImRyb3Bkb3duLmlzT3BlbiA9IHRydWVcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgaWQ9XCJkcm9wZG93bi1zZWFyY2gte3sgbXVsdGlTZWxlY3RTZWFyY2guY29tcG9uZW50SGVhZGluZyB8IHRyaW1JZH19XCJcbiAgICAgIFsobmdNb2RlbCldPVwibXVsdGlTZWxlY3RTZWFyY2guc2VhcmNoSW5wdXRcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2hJbnB1dENoYW5nZSgpXCJcbiAgICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgICBwb3BvdmVyPVwie3sgcG9wT3ZlclRleHQoKSB9fVwiXG4gICAgICBjb250YWluZXJDbGFzcz1cInNmeC1pbnB1dC1wb3BvdmVyXCJcbiAgICAgIHRyaWdnZXJzPVwiXCJcbiAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgICAjcG9wPVwiYnMtcG9wb3ZlclwiXG4gICAgICAobW91c2VlbnRlcik9XCJzaG93UG9wKClcIlxuICAgICAgKG1vdXNlbGVhdmUpPVwib25Qb3BNb3VzZUxlYXZlKClcIlxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXNDbGljayh0cnVlKVwiXG4gICAgICAoYmx1cik9XCJvbkZvY3VzQ2xpY2soZmFsc2UpXCJcbiAgICAgIGNsYXNzPVwic2Z4LXBsYWNlaG9sZGVyXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3tcbiAgICAgICAgZW5hYmxlUGxhY2VIb2xkZXIgPyBtdWx0aVNlbGVjdFNlYXJjaC5jb21wb25lbnRIZWFkaW5nIDogJydcbiAgICAgIH19XCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwiZGlzYWJsZVNlYXJjaFwiXG4gICAgLz5cbiAgICA8c3ltcGhvbnktaWNvbiAqbmdJZj1cIiFkaXNhYmxlU2VhcmNoXCIgW3NpemVdPVwic2l6ZVwiIFtpY29uXT1cIidzaS1zZWFyY2gtbmV3J1wiPjwvc3ltcGhvbnktaWNvbj5cbiAgICA8ZGl2ICpkcm9wZG93bk1lbnU+XG4gICAgICA8ZGl2IGNsYXNzPVwic2Z4LWN1c3RvbS1kcm9wZG93blwiICpuZ0lmPVwib3BlbkRyb3Bkb3duXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJtdWx0aVNlbGVjdFNlYXJjaC5pc1NlbGVjdEFsbEVuYWJsZWRcIiBjbGFzcz1cInNmeC1zZWxlY3QtYWxsLXRvZ2dsZVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2Z4LWZvbnQtYm9sZCBzZngtbXItMTBcIj5TZWxlY3QgQWxsPC9zcGFuPlxuICAgICAgICAgIDxzeW1waG9ueS1pbnB1dC10b2dnbGVcbiAgICAgICAgICBbaXNUb2dnbGVkXT1cImlzQWxsVG9nZ2xlZFwiXG4gICAgICAgICAgW2lzSW52ZXJzZV09XCJmYWxzZVwiXG4gICAgICAgICAgKHRvZ2dsZUNsaWNrKT1cIm9uVG9nZ2xlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgPjwvc3ltcGhvbnktaW5wdXQtdG9nZ2xlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBDcmVhdGUgQW5kIEFkZCBUYWdzIC0tPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZngtY3JlYXRlLW5ldy1pdGVtc1wiXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIG11bHRpU2VsZWN0U2VhcmNoLmxhYmVsQ3JlYXRlTmV3SXRlbXMgJiZcbiAgICAgICAgICAgIG11bHRpU2VsZWN0U2VhcmNoLnNob3dDcmVhdGVOZXdJdGVtc1xuICAgICAgICAgIFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ3JlYXRlTmV3SXRlbSgpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnc2Z4LWZvbnQtYm9sZCc6IG11bHRpU2VsZWN0U2VhcmNoLnNob3dDcmVhdGVOZXdNb2RhbFxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgbXVsdGlTZWxlY3RTZWFyY2gubGFiZWxDcmVhdGVOZXdJdGVtcyB9fVxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInNmeC1mb250LWJvbGRcIlxuICAgICAgICAgICAgKm5nSWY9XCIhbXVsdGlTZWxlY3RTZWFyY2guc2hvd0NyZWF0ZU5ld01vZGFsXCJcbiAgICAgICAgICAgID4mbmJzcDsmYXBvcztcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaGFzQ2FwdGFsaXNlXCJcbiAgICAgICAgICAgICAgPnt7IG11bHRpU2VsZWN0U2VhcmNoLnNlYXJjaElucHV0IHwgY2FwaXRhbGl6ZUZpcnN0Q2hhcmFjdGVyIH19PC9zcGFuXG4gICAgICAgICAgICA+PHNwYW4gKm5nSWY9XCIhaGFzQ2FwdGFsaXNlXCJcbiAgICAgICAgICAgICAgPnt7IG11bHRpU2VsZWN0U2VhcmNoLnNlYXJjaElucHV0IH19PC9zcGFuXG4gICAgICAgICAgICA+JmFwb3M7XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxpIGNsYXNzPVwic2Z4LWljb24tUGx1cyBzZngtY3JlYXRlLW5ldy1pdGVtcy1pY29uXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBDcmVhdGUgQW5kIEFkZCBUYWdzIGVuZHMgaGVyZSAtLT5cbiAgICAgICAgPCEtLSBzZWxlY3RlZCBsaXN0IGRpdiAtLT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2Z4LWRyb3Bkb3duLXNlbGVjdGVkIHNmeC1jdXN0b20tc2Nyb2xsXCJcbiAgICAgICAgICAqbmdJZj1cIm11bHRpU2VsZWN0U2VhcmNoLnNlbGVjdGVkRHJvcGRvd25MaXN0Lmxlbmd0aCA+IDAgJiYgIW11bHRpU2VsZWN0U2VhcmNoLmlzU2VsZWN0QWxsRW5hYmxlZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNmeC1kLWlubGluZS1ibG9ja1wiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgc2VsZWN0ZWRJdGVtIG9mIG11bHRpU2VsZWN0U2VhcmNoLnNlbGVjdGVkRHJvcGRvd25MaXN0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkRlc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW0pOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICBjbGFzcz1cInNmeC1jaGVja2JveCBzZngtZC1pbmxpbmUtYmxvY2tcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIGNoZWNrZWRcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNmeC1jaGVja2JveC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgaWQ9XCJ7eyBzZWxlY3RlZEl0ZW0uaWQgfX1fe3sgc2VsZWN0ZWRJdGVtLm5hbWUgfX1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBjbGFzcz1cIkZvbnQ0MDBcIlxuICAgICAgICAgICAgICAgIGZvcj1cInt7IHNlbGVjdGVkSXRlbS5pZCB9fV97eyBzZWxlY3RlZEl0ZW0ubmFtZSB9fVwiXG4gICAgICAgICAgICAgICAgPjxzcGFuICpuZ0lmPVwiaGFzQ2FwdGFsaXNlXCI+e3sgc2VsZWN0ZWRJdGVtLm5hbWUgfCBjYXBpdGFsaXplRmlyc3RDaGFyYWN0ZXIgfX08L3NwYW4+PHNwYW4gKm5nSWY9XCIhaGFzQ2FwdGFsaXNlXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogcHJlXCI+e3sgc2VsZWN0ZWRJdGVtLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRJdGVtLmFkZGl0aW9uYWxJbmZvXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtYWRkaXRpb25hbC1pbmZvXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBzZWxlY3RlZEl0ZW0uYWRkaXRpb25hbEluZm8gfX08L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIHNlbGVjdGVkIGxpc3QgZGl2IGVuZHMgaGVyZSAtLT5cbiAgICAgICAgPCEtLSBTZWFyY2ggbGlzdCAgLS0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNmeC1kcm9wZG93bi11bnNlbGVjdGVkIHNmeC1jdXN0b20tc2Nyb2xsXCJcbiAgICAgICAgICAoc2Nyb2xsKT1cInNjcm9sbEhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgICAgKm5nSWY9XCJtdWx0aVNlbGVjdFNlYXJjaC5zZWFyY2hlZERyb3Bkb3duTGlzdC5sZW5ndGggPiAwXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGlkPVwiZHJvcGRvd24tdHJpZ2dlcnMtbWFudWFsbHlcIlxuICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgIGxldCBmaWx0ZXJEcm9wZG93bk9wdGlvbiBvZiBtdWx0aVNlbGVjdFNlYXJjaC5zZWFyY2hlZERyb3Bkb3duTGlzdFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Z4LWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgaWQ9XCJ7eyBmaWx0ZXJEcm9wZG93bk9wdGlvbi5pZCB9fV97e1xuICAgICAgICAgICAgICAgICAgZmlsdGVyRHJvcGRvd25PcHRpb24ubmFtZSB8IHRyaW1JZFxuICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNmeC1jaGVja2JveC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm11bHRpU2VsZWN0U2VhcmNoLmhhc01heFNlbGVjdGlvbnNcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICBvblNlbGVjdEl0ZW0oZmlsdGVyRHJvcGRvd25PcHRpb24pOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyRHJvcGRvd25PcHRpb24uaXNDaGVja2VkXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJGb250NDAwXCJcbiAgICAgICAgICAgICAgICBmb3I9XCJ7eyBmaWx0ZXJEcm9wZG93bk9wdGlvbi5pZCB9fV97e1xuICAgICAgICAgICAgICAgICAgZmlsdGVyRHJvcGRvd25PcHRpb24ubmFtZSB8IHRyaW1JZFxuICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+PHNwYW4gKm5nSWY9XCJoYXNDYXB0YWxpc2VcIj57eyBmaWx0ZXJEcm9wZG93bk9wdGlvbi5uYW1lIHwgY2FwaXRhbGl6ZUZpcnN0Q2hhcmFjdGVyIH19PC9zcGFuPjxzcGFuICpuZ0lmPVwiIWhhc0NhcHRhbGlzZVwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IHByZVwiPnt7IGZpbHRlckRyb3Bkb3duT3B0aW9uLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsdGVyRHJvcGRvd25PcHRpb24uYWRkaXRpb25hbEluZm9cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGRpdGlvbmFsLWluZm9cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGZpbHRlckRyb3Bkb3duT3B0aW9uLmFkZGl0aW9uYWxJbmZvIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3ltcGhvbnktc2Z4LWxvYWRlclxuICAgICAgICAgICAgICBbaGlkZGVuXT1cIiFpc0xvYWRpbmdEYXRhXCJcbiAgICAgICAgICAgID48L3N5bXBob255LXNmeC1sb2FkZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c3ltcGhvbnktc2Z4LWxvYWRlclxuICAgICAgICAgIFtoaWRkZW5dPVwiIWlzTG9hZGluZ0luaXRpYWxEYXRhXCJcbiAgICAgICAgPjwvc3ltcGhvbnktc2Z4LWxvYWRlcj5cbiAgICAgICAgPCEtLSBzZWFyY2ggbGlzdCBlbmRzIGhlcmUgLS0+XG4gICAgICAgIDwhLS0gRm9vdGVyIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwib3BlbkRyb3Bkb3duXCIgY2xhc3M9XCJzZngtZmlsdGVyLWl0ZW0tZm9vdGVyXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInB1bGwtbGVmdFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgbXVsdGlTZWxlY3RTZWFyY2guc2VsZWN0ZWREcm9wZG93bkxpc3QgJiZcbiAgICAgICAgICAgICAgICBtdWx0aVNlbGVjdFNlYXJjaC5zZWxlY3RlZERyb3Bkb3duTGlzdC5sZW5ndGggPiAwXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGVhckFsbENsaWNrKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIENsZWFyIEFsbFxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAoY2xpY2spPVwib25Pa0NsaWNrKClcIiBjbGFzcz1cInB1bGwtcmlnaHRcIj5PSzwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gRW5kIEZvb3RlciAtLT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImlzSW52YWxpZFwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxuICAgIFBsZWFzZSBzZWxlY3QgYSB2YWxpZCBvcHRpb25cbiAgPC9kaXY+XG48L2Rpdj4iXX0=